SillyTavern/public/lib/pdf.worker.mjs.map

1 line
4.7 MiB
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"pdf.worker.mjs","mappings":"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AR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,EAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,EAAF,IAAQ,GAAR;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,IAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,GAAF,IAAS,KAAT;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,GAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,KAAV;EACAA,CAAA,CAAE,IAAF,IAAU,KAAV;EACAA,CAAA,CAAE,IAAF,IAAU,KAAV;EACAA,CAAA,CAAE,IAAF,IAAU,KAAV;EACAA,CAAA,CAAE,IAAF,IAAU,KAAV;EACAA,CAAA,CAAE,IAAF,IAAU,KAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;EACAA,CAAA,CAAE,IAAF,IAAU,IAAV;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GAAF,IAAS,EAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,EAAT;EACAA,CAAA,CAAE,GAAF,IAAS,EAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,CAAA,CAAE,GAAF,IAAS,GAAT;EACAA,C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","sources":["webpack://pdf.js/webpack/bootstrap","webpack://pdf.js/webpack/runtime/define property getters","webpack://pdf.js/webpack/runtime/hasOwnProperty shorthand","webpack://pdf.js/src/shared/util.js","webpack://pdf.js/src/core/primitives.js","webpack://pdf.js/src/core/base_stream.js","webpack://pdf.js/src/core/core_utils.js","webpack://pdf.js/src/core/stream.js","webpack://pdf.js/src/core/chunked_stream.js","webpack://pdf.js/src/core/colorspace.js","webpack://pdf.js/src/core/binary_cmap.js","webpack://pdf.js/src/core/decode_stream.js","webpack://pdf.js/src/core/ascii_85_stream.js","webpack://pdf.js/src/core/ascii_hex_stream.js","webpack://pdf.js/src/core/ccitt.js","webpack://pdf.js/src/core/ccitt_stream.js","webpack://pdf.js/src/core/flate_stream.js","webpack://pdf.js/src/core/arithmetic_decoder.js","webpack://pdf.js/src/core/jbig2.js","webpack://pdf.js/src/core/jbig2_stream.js","webpack://pdf.js/src/shared/image_utils.js","webpack://pdf.js/src/core/jpg.js","webpack://pdf.js/src/core/jpeg_stream.js","webpack://pdf.js/src/core/jpx.js","webpack://pdf.js/src/core/jpx_stream.js","webpack://pdf.js/src/core/lzw_stream.js","webpack://pdf.js/src/core/predictor_stream.js","webpack://pdf.js/src/core/run_length_stream.js","webpack://pdf.js/src/core/parser.js","webpack://pdf.js/src/core/cmap.js","webpack://pdf.js/src/core/charsets.js","webpack://pdf.js/src/core/encodings.js","webpack://pdf.js/src/core/cff_parser.js","webpack://pdf.js/src/core/glyphlist.js","webpack://pdf.js/src/core/unicode.js","webpack://pdf.js/src/core/fonts_utils.js","webpack://pdf.js/src/core/standard_fonts.js","webpack://pdf.js/src/core/to_unicode_map.js","webpack://pdf.js/src/core/cff_font.js","webpack://pdf.js/src/core/font_renderer.js","webpack://pdf.js/src/core/metrics.js","webpack://pdf.js/src/core/glyf.js","webpack://pdf.js/src/core/opentype_file_builder.js","webpack://pdf.js/src/core/type1_parser.js","webpack://pdf.js/src/core/type1_font.js","webpack://pdf.js/src/core/fonts.js","webpack://pdf.js/src/core/pattern.js","webpack://pdf.js/src/core/calibri_factors.js","webpack://pdf.js/src/core/helvetica_factors.js","webpack://pdf.js/src/core/liberationsans_widths.js","webpack://pdf.js/src/core/myriadpro_factors.js","webpack://pdf.js/src/core/segoeui_factors.js","webpack://pdf.js/src/core/xfa_fonts.js","webpack://pdf.js/src/core/ps_parser.js","webpack://pdf.js/src/core/image_utils.js","webpack://pdf.js/src/core/function.js","webpack://pdf.js/src/core/bidi.js","webpack://pdf.js/src/core/font_substitutions.js","webpack://pdf.js/src/core/image_resizer.js","webpack://pdf.js/src/shared/murmurhash3.js","webpack://pdf.js/src/core/operator_list.js","webpack://pdf.js/src/core/image.js","webpack://pdf.js/src/core/evaluator.js","webpack://pdf.js/src/core/default_appearance.js","webpack://pdf.js/src/core/name_number_tree.js","webpack://pdf.js/src/core/cleanup_helper.js","webpack://pdf.js/src/core/file_spec.js","webpack://pdf.js/src/core/xml_parser.js","webpack://pdf.js/src/core/metadata_parser.js","webpack://pdf.js/src/core/decrypt_stream.js","webpack://pdf.js/src/core/crypto.js","webpack://pdf.js/src/core/writer.js","webpack://pdf.js/src/core/struct_tree.js","webpack://pdf.js/src/core/catalog.js","webpack://pdf.js/src/core/object_loader.js","webpack://pdf.js/src/core/xfa/symbol_utils.js","webpack://pdf.js/src/core/xfa/namespaces.js","webpack://pdf.js/src/core/xfa/utils.js","webpack://pdf.js/src/core/xfa/fonts.js","webpack://pdf.js/src/core/xfa/text.js","webpack://pdf.js/src/core/xfa/som.js","webpack://pdf.js/src/core/xfa/xfa_object.js","webpack://pdf.js/src/core/xfa/html_utils.js","webpack://pdf.js/src/core/xfa/layout.js","webpack://pdf.js/src/core/xfa/template.js","webpack://pdf.js/src/core/xfa/bind.js","webpack://pdf.js/src/core/xfa/data.js","webpack://pdf.js/src/core/xfa/config.js","webpack://pdf.js/src/core/xfa/connection_set.js","webpack://pdf.js/src/core/xfa/datasets.js","webpack://pdf.js/src/core/xfa/locale_set.js","webpack://pdf.js/src/core/xfa/signature.js","webpack://pdf.js/src/core/xfa/stylesheet.js","webpack://pdf.js/src/core/xfa/xdp.js","webpack://pdf.js/src/core/xfa/xhtml.js","webpack://pdf.js/src/core/xfa/setup.js","webpack://pdf.js/src/core/xfa/unknown.js","webpack://pdf.js/src/core/xfa/builder.js","webpack://pdf.js/src/core/xfa/parser.js","webpack://pdf.js/src/core/xfa/factory.js","webpack://pdf.js/src/core/annotation.js","webpack://pdf.js/src/core/dataset_reader.js","webpack://pdf.js/src/core/xref.js","webpack://pdf.js/src/core/document.js","webpack://pdf.js/src/core/pdf_manager.js","webpack://pdf.js/src/shared/message_handler.js","webpack://pdf.js/src/core/worker_stream.js","webpack://pdf.js/src/core/worker.js","webpack://pdf.js/src/pdf.worker.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals process */\n\n// NW.js / Electron is a browser context, but copies some Node.js objects; see\n// http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n// https://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n typeof process === \"object\" &&\n process + \"\" === \"[object process]\" &&\n !process.versions.nw &&\n !(process.versions.electron && process.type && process.type !== \"browser\");\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\nconst MAX_IMAGE_SIZE_TO_CACHE = 10e6; // Ten megabytes.\n\n// Represent the percentage of the height of a single-line field over\n// the font size. Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n * - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n * `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n * - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n * annotations are rendered onto the canvas (i.e. by being included in the\n * operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n * and their `annotationMode`-option.\n * - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n * `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n SAVE: 0x08,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3,\n};\n\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\n\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n HIGHLIGHT: 9,\n STAMP: 13,\n INK: 15,\n};\n\nconst AnnotationEditorParamsType = {\n RESIZE: 1,\n CREATE: 2,\n FREETEXT_SIZE: 11,\n FREETEXT_COLOR: 12,\n FREETEXT_OPACITY: 13,\n INK_COLOR: 21,\n INK_THICKNESS: 22,\n INK_OPACITY: 23,\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\",\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n // PLEASE NOTE: We purposely keep any removed operators commented out, since\n // re-numbering the list would risk breaking third-party users.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n // beginAnnotations: 78,\n // endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n // paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n switch (url?.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} [baseUrl] - An absolute URL.\n * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n // Avoid accidentally matching a *relative* URL pointing to a file named\n // e.g. \"www.pdf\" or similar.\n if (dots?.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch {\n /* `new URL()` will throw on incorrect data. */\n }\n return null;\n}\n\nfunction shadow(obj, prop, value, nonSerializable = false) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n prop in obj,\n `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n );\n }\n Object.defineProperty(obj, prop, {\n value,\n enumerable: !nonSerializable,\n configurable: true,\n writable: false,\n });\n return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n // eslint-disable-next-line no-shadow\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\n return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\n\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes?.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\nfunction string32(value) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n `string32: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode(\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(\"\"); // eslint-disable-line no-new, no-new-func\n return true;\n } catch {\n return false;\n }\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(\n this,\n \"isOffscreenCanvasSupported\",\n typeof OffscreenCanvas !== \"undefined\"\n );\n }\n\n static get platform() {\n if (\n (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n (typeof navigator !== \"undefined\" &&\n typeof navigator?.platform === \"string\")\n ) {\n return shadow(this, \"platform\", {\n isMac: navigator.platform.includes(\"Mac\"),\n });\n }\n return shadow(this, \"platform\", { isMac: false });\n }\n\n static get isCSSRoundSupported() {\n return shadow(\n this,\n \"isCSSRoundSupported\",\n globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\")\n );\n }\n}\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n // Apply a scaling matrix to some min/max values.\n // If a scaling factor is negative then min and max must be\n // swaped.\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n\n // Concatenates two transformation matrices together and returns the result.\n static transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5],\n ];\n }\n\n // For 2d affine transforms\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = this.applyTransform(r, m);\n const p2 = this.applyTransform(r.slice(2, 4), m);\n const p3 = this.applyTransform([r[0], r[3]], m);\n const p4 = this.applyTransform([r[2], r[1]], m);\n return [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1]),\n ];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / d,\n -m[1] / d,\n -m[2] / d,\n m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d,\n (m[4] * m[1] - m[5] * m[0]) / d,\n ];\n }\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n static normalizeRect(rect) {\n const r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'null'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n const xLow = Math.max(\n Math.min(rect1[0], rect1[2]),\n Math.min(rect2[0], rect2[2])\n );\n const xHigh = Math.min(\n Math.max(rect1[0], rect1[2]),\n Math.max(rect2[0], rect2[2])\n );\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(\n Math.min(rect1[1], rect1[3]),\n Math.min(rect2[1], rect2[3])\n );\n const yHigh = Math.min(\n Math.max(rect1[1], rect1[3]),\n Math.max(rect2[1], rect2[3])\n );\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] =\n mt * mt * mt * x0 +\n 3 * mt * mt * t * x1 +\n 3 * mt * t * t * x2 +\n t * t * t * x3;\n bounds[1][j] =\n mt * mt * mt * y0 +\n 3 * mt * mt * t * y1 +\n 3 * mt * t * t * y2 +\n t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n return [\n Math.min(...bounds[0]),\n Math.min(...bounds[1]),\n Math.max(...bounds[0]),\n Math.max(...bounds[1]),\n ];\n }\n}\n\nconst PDFStringTranslateTable = [\n 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,\n 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n // See section 7.9.2.2 Text String Type.\n // The string can contain some language codes bracketed with 0x0b,\n // so we must remove them.\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n if (str.length % 2 === 1) {\n str = str.slice(0, -1);\n }\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, { fatal: true });\n const buffer = stringToBytes(str);\n const decoded = decoder.decode(buffer);\n if (!decoded.includes(\"\\x1b\")) {\n return decoded;\n }\n return decoded.replaceAll(/\\x1b[^\\x1b]*(?:\\x1b|$)/g, \"\");\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n // ISO Latin 1\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const charCode = str.charCodeAt(i);\n if (charCode === 0x1b) {\n // eslint-disable-next-line no-empty\n while (++i < ii && str.charCodeAt(i) !== 0x1b) {}\n continue;\n }\n const code = PDFStringTranslateTable[charCode];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v?.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [\n date.getUTCFullYear().toString(),\n (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n date.getUTCDate().toString().padStart(2, \"0\"),\n date.getUTCHours().toString().padStart(2, \"0\"),\n date.getUTCMinutes().toString().padStart(2, \"0\"),\n date.getUTCSeconds().toString().padStart(2, \"0\"),\n ];\n\n return buffer.join(\"\");\n}\n\nclass PromiseCapability {\n #settled = false;\n\n constructor() {\n /**\n * @type {Promise<any>} The Promise object.\n */\n this.promise = new Promise((resolve, reject) => {\n /**\n * @type {function} Fulfills the Promise.\n */\n this.resolve = data => {\n this.#settled = true;\n resolve(data);\n };\n\n /**\n * @type {function} Rejects the Promise.\n */\n this.reject = reason => {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(reason instanceof Error, 'Expected valid \"reason\" argument.');\n }\n this.#settled = true;\n reject(reason);\n };\n });\n }\n\n /**\n * @type {boolean} If the Promise has been fulfilled/rejected.\n */\n get settled() {\n return this.#settled;\n }\n}\n\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n if (!NormalizeRegex) {\n // In order to generate the following regex:\n // - create a PDF containing all the chars in the range 0000-FFFF with\n // a NFKC which is different of the char.\n // - copy and paste all those chars and get the ones where NFKC is\n // required.\n // It appears that most the chars here contain some ligatures.\n NormalizeRegex =\n /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc-\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa-\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n NormalizationMap = new Map([[\"ſt\", \"ſt\"]]);\n }\n return str.replaceAll(NormalizeRegex, (_, p1, p2) => {\n return p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2);\n });\n}\n\nfunction getUuid() {\n if (\n (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n (typeof crypto !== \"undefined\" && typeof crypto?.randomUUID === \"function\")\n ) {\n return crypto.randomUUID();\n }\n const buf = new Uint8Array(32);\n if (\n typeof crypto !== \"undefined\" &&\n typeof crypto?.getRandomValues === \"function\"\n ) {\n crypto.getRandomValues(buf);\n } else {\n for (let i = 0; i < 32; i++) {\n buf[i] = Math.floor(Math.random() * 255);\n }\n }\n return bytesToString(buf);\n}\n\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\n\nexport {\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationEditorParamsType,\n AnnotationEditorPrefix,\n AnnotationEditorType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMode,\n AnnotationPrefix,\n AnnotationReplyType,\n AnnotationType,\n assert,\n BaseException,\n BASELINE_FACTOR,\n bytesToString,\n CMapCompressionType,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n FeatureTest,\n FONT_IDENTITY_MATRIX,\n FormatError,\n getModificationDate,\n getUuid,\n getVerbosityLevel,\n IDENTITY_MATRIX,\n ImageKind,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isArrayEqual,\n isNodeJS,\n LINE_DESCENT_FACTOR,\n LINE_FACTOR,\n MAX_IMAGE_SIZE_TO_CACHE,\n MissingPDFException,\n normalizeUnicode,\n objectFromMap,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n PromiseCapability,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n utf8StringToString,\n Util,\n VerbosityLevel,\n warn,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, shadow, unreachable } from \"../shared/util.js\";\n\nconst CIRCULAR_REF = Symbol(\"CIRCULAR_REF\");\nconst EOF = Symbol(\"EOF\");\n\nlet CmdCache = Object.create(null);\nlet NameCache = Object.create(null);\nlet RefCache = Object.create(null);\n\nfunction clearPrimitiveCaches() {\n CmdCache = Object.create(null);\n NameCache = Object.create(null);\n RefCache = Object.create(null);\n}\n\nclass Name {\n constructor(name) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n typeof name !== \"string\"\n ) {\n unreachable('Name: The \"name\" must be a string.');\n }\n this.name = name;\n }\n\n static get(name) {\n // eslint-disable-next-line no-restricted-syntax\n return (NameCache[name] ||= new Name(name));\n }\n}\n\nclass Cmd {\n constructor(cmd) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n typeof cmd !== \"string\"\n ) {\n unreachable('Cmd: The \"cmd\" must be a string.');\n }\n this.cmd = cmd;\n }\n\n static get(cmd) {\n // eslint-disable-next-line no-restricted-syntax\n return (CmdCache[cmd] ||= new Cmd(cmd));\n }\n}\n\nconst nonSerializable = function nonSerializableClosure() {\n return nonSerializable; // Creating closure on some variable.\n};\n\nclass Dict {\n constructor(xref = null) {\n // Map should only be used internally, use functions below to access.\n this._map = Object.create(null);\n this.xref = xref;\n this.objId = null;\n this.suppressEncryption = false;\n this.__nonSerializable__ = nonSerializable; // Disable cloning of the Dict.\n }\n\n assignXref(newXref) {\n this.xref = newXref;\n }\n\n get size() {\n return Object.keys(this._map).length;\n }\n\n // Automatically dereferences Ref objects.\n get(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.get: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n return this.xref.fetch(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Same as get(), but returns a promise and uses fetchIfRefAsync().\n async getAsync(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.getAsync: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n return this.xref.fetchAsync(value, this.suppressEncryption);\n }\n return value;\n }\n\n // Same as get(), but dereferences all elements if the result is an Array.\n getArray(key1, key2, key3) {\n let value = this._map[key1];\n if (value === undefined && key2 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key2.length < key1.length\n ) {\n unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n }\n value = this._map[key2];\n if (value === undefined && key3 !== undefined) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n key3.length < key2.length\n ) {\n unreachable(\"Dict.getArray: Expected keys to be ordered by length.\");\n }\n value = this._map[key3];\n }\n }\n if (value instanceof Ref && this.xref) {\n value = this.xref.fetch(value, this.suppressEncryption);\n }\n\n if (Array.isArray(value)) {\n value = value.slice(); // Ensure that we don't modify the Dict data.\n for (let i = 0, ii = value.length; i < ii; i++) {\n if (value[i] instanceof Ref && this.xref) {\n value[i] = this.xref.fetch(value[i], this.suppressEncryption);\n }\n }\n }\n return value;\n }\n\n // No dereferencing.\n getRaw(key) {\n return this._map[key];\n }\n\n getKeys() {\n return Object.keys(this._map);\n }\n\n // No dereferencing.\n getRawValues() {\n return Object.values(this._map);\n }\n\n set(key, value) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n if (typeof key !== \"string\") {\n unreachable('Dict.set: The \"key\" must be a string.');\n } else if (value === undefined) {\n unreachable('Dict.set: The \"value\" cannot be undefined.');\n }\n }\n this._map[key] = value;\n }\n\n has(key) {\n return this._map[key] !== undefined;\n }\n\n forEach(callback) {\n for (const key in this._map) {\n callback(key, this.get(key));\n }\n }\n\n static get empty() {\n const emptyDict = new Dict(null);\n\n emptyDict.set = (key, value) => {\n unreachable(\"Should not call `set` on the empty dictionary.\");\n };\n return shadow(this, \"empty\", emptyDict);\n }\n\n static merge({ xref, dictArray, mergeSubDicts = false }) {\n const mergedDict = new Dict(xref),\n properties = new Map();\n\n for (const dict of dictArray) {\n if (!(dict instanceof Dict)) {\n continue;\n }\n for (const [key, value] of Object.entries(dict._map)) {\n let property = properties.get(key);\n if (property === undefined) {\n property = [];\n properties.set(key, property);\n } else if (!mergeSubDicts || !(value instanceof Dict)) {\n // Ignore additional entries, if either:\n // - This is a \"shallow\" merge, where only the first element matters.\n // - The value is *not* a `Dict`, since other types cannot be merged.\n continue;\n }\n property.push(value);\n }\n }\n for (const [name, values] of properties) {\n if (values.length === 1 || !(values[0] instanceof Dict)) {\n mergedDict._map[name] = values[0];\n continue;\n }\n const subDict = new Dict(xref);\n\n for (const dict of values) {\n for (const [key, value] of Object.entries(dict._map)) {\n if (subDict._map[key] === undefined) {\n subDict._map[key] = value;\n }\n }\n }\n if (subDict.size > 0) {\n mergedDict._map[name] = subDict;\n }\n }\n properties.clear();\n\n return mergedDict.size > 0 ? mergedDict : Dict.empty;\n }\n\n clone() {\n const dict = new Dict(this.xref);\n for (const key of this.getKeys()) {\n dict.set(key, this.getRaw(key));\n }\n return dict;\n }\n}\n\nclass Ref {\n constructor(num, gen) {\n this.num = num;\n this.gen = gen;\n }\n\n toString() {\n // This function is hot, so we make the string as compact as possible.\n // |this.gen| is almost always zero, so we treat that case specially.\n if (this.gen === 0) {\n return `${this.num}R`;\n }\n return `${this.num}R${this.gen}`;\n }\n\n static fromString(str) {\n const ref = RefCache[str];\n if (ref) {\n return ref;\n }\n const m = /^(\\d+)R(\\d*)$/.exec(str);\n if (!m || m[1] === \"0\") {\n return null;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n return (RefCache[str] = new Ref(\n parseInt(m[1]),\n !m[2] ? 0 : parseInt(m[2])\n ));\n }\n\n static get(num, gen) {\n const key = gen === 0 ? `${num}R` : `${num}R${gen}`;\n // eslint-disable-next-line no-restricted-syntax\n return (RefCache[key] ||= new Ref(num, gen));\n }\n}\n\n// The reference is identified by number and generation.\n// This structure stores only one instance of the reference.\nclass RefSet {\n constructor(parent = null) {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n parent &&\n !(parent instanceof RefSet)\n ) {\n unreachable('RefSet: Invalid \"parent\" value.');\n }\n this._set = new Set(parent?._set);\n }\n\n has(ref) {\n return this._set.has(ref.toString());\n }\n\n put(ref) {\n this._set.add(ref.toString());\n }\n\n remove(ref) {\n this._set.delete(ref.toString());\n }\n\n [Symbol.iterator]() {\n return this._set.values();\n }\n\n clear() {\n this._set.clear();\n }\n}\n\nclass RefSetCache {\n constructor() {\n this._map = new Map();\n }\n\n get size() {\n return this._map.size;\n }\n\n get(ref) {\n return this._map.get(ref.toString());\n }\n\n has(ref) {\n return this._map.has(ref.toString());\n }\n\n put(ref, obj) {\n this._map.set(ref.toString(), obj);\n }\n\n putAlias(ref, aliasRef) {\n this._map.set(ref.toString(), this.get(aliasRef));\n }\n\n [Symbol.iterator]() {\n return this._map.values();\n }\n\n clear() {\n this._map.clear();\n }\n}\n\nfunction isName(v, name) {\n return v instanceof Name && (name === undefined || v.name === name);\n}\n\nfunction isCmd(v, cmd) {\n return v instanceof Cmd && (cmd === undefined || v.cmd === cmd);\n}\n\nfunction isDict(v, type) {\n return (\n v instanceof Dict && (type === undefined || isName(v.get(\"Type\"), type))\n );\n}\n\nfunction isRefsEqual(v1, v2) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n v1 instanceof Ref && v2 instanceof Ref,\n \"isRefsEqual: Both parameters should be `Ref`s.\"\n );\n }\n return v1.num === v2.num && v1.gen === v2.gen;\n}\n\nexport {\n CIRCULAR_REF,\n clearPrimitiveCaches,\n Cmd,\n Dict,\n EOF,\n isCmd,\n isDict,\n isName,\n isRefsEqual,\n Name,\n Ref,\n RefSet,\n RefSetCache,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bytesToString, shadow, unreachable } from \"../shared/util.js\";\n\nclass BaseStream {\n constructor() {\n if (this.constructor === BaseStream) {\n unreachable(\"Cannot initialize BaseStream.\");\n }\n }\n\n // eslint-disable-next-line getter-return\n get length() {\n unreachable(\"Abstract getter `length` accessed\");\n }\n\n // eslint-disable-next-line getter-return\n get isEmpty() {\n unreachable(\"Abstract getter `isEmpty` accessed\");\n }\n\n get isDataLoaded() {\n return shadow(this, \"isDataLoaded\", true);\n }\n\n getByte() {\n unreachable(\"Abstract method `getByte` called\");\n }\n\n getBytes(length) {\n unreachable(\"Abstract method `getBytes` called\");\n }\n\n peekByte() {\n const peekedByte = this.getByte();\n if (peekedByte !== -1) {\n this.pos--;\n }\n return peekedByte;\n }\n\n peekBytes(length) {\n const bytes = this.getBytes(length);\n this.pos -= bytes.length;\n return bytes;\n }\n\n getUint16() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n if (b0 === -1 || b1 === -1) {\n return -1;\n }\n return (b0 << 8) + b1;\n }\n\n getInt32() {\n const b0 = this.getByte();\n const b1 = this.getByte();\n const b2 = this.getByte();\n const b3 = this.getByte();\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n }\n\n getByteRange(begin, end) {\n unreachable(\"Abstract method `getByteRange` called\");\n }\n\n getString(length) {\n return bytesToString(this.getBytes(length));\n }\n\n skip(n) {\n this.pos += n || 1;\n }\n\n reset() {\n unreachable(\"Abstract method `reset` called\");\n }\n\n moveStart() {\n unreachable(\"Abstract method `moveStart` called\");\n }\n\n makeSubStream(start, length, dict = null) {\n unreachable(\"Abstract method `makeSubStream` called\");\n }\n\n /**\n * @returns {Array | null}\n */\n getBaseStreams() {\n return null;\n }\n}\n\nexport { BaseStream };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AnnotationEditorPrefix,\n assert,\n BaseException,\n objectSize,\n stringToPDFString,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\n\nconst PDF_VERSION_REGEXP = /^[1-9]\\.\\d$/;\n\nfunction getLookupTableFactory(initializer) {\n let lookup;\n return function () {\n if (initializer) {\n lookup = Object.create(null);\n initializer(lookup);\n initializer = null;\n }\n return lookup;\n };\n}\n\nclass MissingDataException extends BaseException {\n constructor(begin, end) {\n super(`Missing data [${begin}, ${end})`, \"MissingDataException\");\n this.begin = begin;\n this.end = end;\n }\n}\n\nclass ParserEOFException extends BaseException {\n constructor(msg) {\n super(msg, \"ParserEOFException\");\n }\n}\n\nclass XRefEntryException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefEntryException\");\n }\n}\n\nclass XRefParseException extends BaseException {\n constructor(msg) {\n super(msg, \"XRefParseException\");\n }\n}\n\n/**\n * Combines multiple ArrayBuffers into a single Uint8Array.\n * @param {Array<ArrayBuffer>} arr - An array of ArrayBuffers.\n * @returns {Uint8Array}\n */\nfunction arrayBuffersToBytes(arr) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n for (const item of arr) {\n assert(\n item instanceof ArrayBuffer,\n \"arrayBuffersToBytes - expected an ArrayBuffer.\"\n );\n }\n }\n const length = arr.length;\n if (length === 0) {\n return new Uint8Array(0);\n }\n if (length === 1) {\n return new Uint8Array(arr[0]);\n }\n let dataLength = 0;\n for (let i = 0; i < length; i++) {\n dataLength += arr[i].byteLength;\n }\n const data = new Uint8Array(dataLength);\n let pos = 0;\n for (let i = 0; i < length; i++) {\n const item = new Uint8Array(arr[i]);\n data.set(item, pos);\n pos += item.byteLength;\n }\n return data;\n}\n\n/**\n * Get the value of an inheritable property.\n *\n * If the PDF specification explicitly lists a property in a dictionary as\n * inheritable, then the value of the property may be present in the dictionary\n * itself or in one or more parents of the dictionary.\n *\n * If the key is not found in the tree, `undefined` is returned. Otherwise,\n * the value for the key is returned or, if `stopWhenFound` is `false`, a list\n * of values is returned.\n *\n * @param {Dict} dict - Dictionary from where to start the traversal.\n * @param {string} key - The key of the property to find the value for.\n * @param {boolean} getArray - Whether or not the value should be fetched as an\n * array. The default value is `false`.\n * @param {boolean} stopWhenFound - Whether or not to stop the traversal when\n * the key is found. If set to `false`, we always walk up the entire parent\n * chain, for example to be able to find `\\Resources` placed on multiple\n * levels of the tree. The default value is `true`.\n */\nfunction getInheritableProperty({\n dict,\n key,\n getArray = false,\n stopWhenFound = true,\n}) {\n let values;\n const visited = new RefSet();\n\n while (dict instanceof Dict && !(dict.objId && visited.has(dict.objId))) {\n if (dict.objId) {\n visited.put(dict.objId);\n }\n const value = getArray ? dict.getArray(key) : dict.get(key);\n if (value !== undefined) {\n if (stopWhenFound) {\n return value;\n }\n (values ||= []).push(value);\n }\n dict = dict.get(\"Parent\");\n }\n return values;\n}\n\n// prettier-ignore\nconst ROMAN_NUMBER_MAP = [\n \"\", \"C\", \"CC\", \"CCC\", \"CD\", \"D\", \"DC\", \"DCC\", \"DCCC\", \"CM\",\n \"\", \"X\", \"XX\", \"XXX\", \"XL\", \"L\", \"LX\", \"LXX\", \"LXXX\", \"XC\",\n \"\", \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"\n];\n\n/**\n * Converts positive integers to (upper case) Roman numerals.\n * @param {number} number - The number that should be converted.\n * @param {boolean} lowerCase - Indicates if the result should be converted\n * to lower case letters. The default value is `false`.\n * @returns {string} The resulting Roman number.\n */\nfunction toRomanNumerals(number, lowerCase = false) {\n assert(\n Number.isInteger(number) && number > 0,\n \"The number should be a positive integer.\"\n );\n const romanBuf = [];\n let pos;\n // Thousands\n while (number >= 1000) {\n number -= 1000;\n romanBuf.push(\"M\");\n }\n // Hundreds\n pos = (number / 100) | 0;\n number %= 100;\n romanBuf.push(ROMAN_NUMBER_MAP[pos]);\n // Tens\n pos = (number / 10) | 0;\n number %= 10;\n romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);\n // Ones\n romanBuf.push(ROMAN_NUMBER_MAP[20 + number]); // eslint-disable-line unicorn/no-array-push-push\n\n const romanStr = romanBuf.join(\"\");\n return lowerCase ? romanStr.toLowerCase() : romanStr;\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\n return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, offset) {\n return (data[offset] << 24) >> 24;\n}\n\nfunction readUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n return (\n ((data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]) >>>\n 0\n );\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isWhiteSpace(ch) {\n return ch === 0x20 || ch === 0x09 || ch === 0x0d || ch === 0x0a;\n}\n\n/**\n * AcroForm field names use an array like notation to refer to\n * repeated XFA elements e.g. foo.bar[nnn].\n * see: XFA Spec Chapter 3 - Repeated Elements\n *\n * @param {string} path - XFA path name.\n * @returns {Array} - Array of Objects with the name and pos of\n * each part of the path.\n */\nfunction parseXFAPath(path) {\n const positionPattern = /(.+)\\[(\\d+)\\]$/;\n return path.split(\".\").map(component => {\n const m = component.match(positionPattern);\n if (m) {\n return { name: m[1], pos: parseInt(m[2], 10) };\n }\n return { name: component, pos: 0 };\n });\n}\n\nfunction escapePDFName(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n // Whitespace or delimiters aren't regular chars, so escape them.\n if (\n char < 0x21 ||\n char > 0x7e ||\n char === 0x23 /* # */ ||\n char === 0x28 /* ( */ ||\n char === 0x29 /* ) */ ||\n char === 0x3c /* < */ ||\n char === 0x3e /* > */ ||\n char === 0x5b /* [ */ ||\n char === 0x5d /* ] */ ||\n char === 0x7b /* { */ ||\n char === 0x7d /* } */ ||\n char === 0x2f /* / */ ||\n char === 0x25 /* % */\n ) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`#${char.toString(16)}`);\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n\n return buffer.join(\"\");\n}\n\n// Replace \"(\", \")\", \"\\n\", \"\\r\" and \"\\\" by \"\\(\", \"\\)\", \"\\\\n\", \"\\\\r\" and \"\\\\\"\n// in order to write it in a PDF file.\nfunction escapeString(str) {\n return str.replaceAll(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n return `\\\\${match}`;\n });\n}\n\nfunction _collectJS(entry, xref, list, parents) {\n if (!entry) {\n return;\n }\n\n let parent = null;\n if (entry instanceof Ref) {\n if (parents.has(entry)) {\n // If we've already found entry then we've a cycle.\n return;\n }\n parent = entry;\n parents.put(parent);\n entry = xref.fetch(entry);\n }\n if (Array.isArray(entry)) {\n for (const element of entry) {\n _collectJS(element, xref, list, parents);\n }\n } else if (entry instanceof Dict) {\n if (isName(entry.get(\"S\"), \"JavaScript\")) {\n const js = entry.get(\"JS\");\n let code;\n if (js instanceof BaseStream) {\n code = js.getString();\n } else if (typeof js === \"string\") {\n code = js;\n }\n code &&= stringToPDFString(code).replaceAll(\"\\x00\", \"\");\n if (code) {\n list.push(code);\n }\n }\n _collectJS(entry.getRaw(\"Next\"), xref, list, parents);\n }\n\n if (parent) {\n parents.remove(parent);\n }\n}\n\nfunction collectActions(xref, dict, eventType) {\n const actions = Object.create(null);\n const additionalActionsDicts = getInheritableProperty({\n dict,\n key: \"AA\",\n stopWhenFound: false,\n });\n if (additionalActionsDicts) {\n // additionalActionsDicts contains dicts from ancestors\n // as they're found in the tree from bottom to top.\n // So the dicts are visited in reverse order to guarantee\n // that actions from elder ancestors will be overwritten\n // by ones from younger ancestors.\n for (let i = additionalActionsDicts.length - 1; i >= 0; i--) {\n const additionalActions = additionalActionsDicts[i];\n if (!(additionalActions instanceof Dict)) {\n continue;\n }\n for (const key of additionalActions.getKeys()) {\n const action = eventType[key];\n if (!action) {\n continue;\n }\n const actionDict = additionalActions.getRaw(key);\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions[action] = list;\n }\n }\n }\n }\n // Collect the Action if any (we may have one on pushbutton).\n if (dict.has(\"A\")) {\n const actionDict = dict.get(\"A\");\n const parents = new RefSet();\n const list = [];\n _collectJS(actionDict, xref, list, parents);\n if (list.length > 0) {\n actions.Action = list;\n }\n }\n return objectSize(actions) > 0 ? actions : null;\n}\n\nconst XMLEntities = {\n /* < */ 0x3c: \"&lt;\",\n /* > */ 0x3e: \"&gt;\",\n /* & */ 0x26: \"&amp;\",\n /* \" */ 0x22: \"&quot;\",\n /* ' */ 0x27: \"&apos;\",\n};\n\nfunction encodeToXmlString(str) {\n const buffer = [];\n let start = 0;\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.codePointAt(i);\n if (0x20 <= char && char <= 0x7e) {\n // ascii\n const entity = XMLEntities[char];\n if (entity) {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(entity);\n start = i + 1;\n }\n } else {\n if (start < i) {\n buffer.push(str.substring(start, i));\n }\n buffer.push(`&#x${char.toString(16).toUpperCase()};`);\n if (char > 0xd7ff && (char < 0xe000 || char > 0xfffd)) {\n // char is represented by two u16\n i++;\n }\n start = i + 1;\n }\n }\n\n if (buffer.length === 0) {\n return str;\n }\n if (start < str.length) {\n buffer.push(str.substring(start, str.length));\n }\n return buffer.join(\"\");\n}\n\nfunction validateFontName(fontFamily, mustWarn = false) {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/string.\n const m = /^(\"|').*(\"|')$/.exec(fontFamily);\n if (m && m[1] === m[2]) {\n const re = new RegExp(`[^\\\\\\\\]${m[1]}`);\n if (re.test(fontFamily.slice(1, -1))) {\n if (mustWarn) {\n warn(`FontFamily contains unescaped ${m[1]}: ${fontFamily}.`);\n }\n return false;\n }\n } else {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident.\n for (const ident of fontFamily.split(/[ \\t]+/)) {\n if (/^(\\d|(-(\\d|-)))/.test(ident) || !/^[\\w-\\\\]+$/.test(ident)) {\n if (mustWarn) {\n warn(`FontFamily contains invalid <custom-ident>: ${fontFamily}.`);\n }\n return false;\n }\n }\n }\n return true;\n}\n\nfunction validateCSSFont(cssFontInfo) {\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-style.\n const DEFAULT_CSS_FONT_OBLIQUE = \"14\";\n // See https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight.\n const DEFAULT_CSS_FONT_WEIGHT = \"400\";\n const CSS_FONT_WEIGHT_VALUES = new Set([\n \"100\",\n \"200\",\n \"300\",\n \"400\",\n \"500\",\n \"600\",\n \"700\",\n \"800\",\n \"900\",\n \"1000\",\n \"normal\",\n \"bold\",\n \"bolder\",\n \"lighter\",\n ]);\n\n const { fontFamily, fontWeight, italicAngle } = cssFontInfo;\n\n if (!validateFontName(fontFamily, true)) {\n return false;\n }\n\n const weight = fontWeight ? fontWeight.toString() : \"\";\n cssFontInfo.fontWeight = CSS_FONT_WEIGHT_VALUES.has(weight)\n ? weight\n : DEFAULT_CSS_FONT_WEIGHT;\n\n const angle = parseFloat(italicAngle);\n cssFontInfo.italicAngle =\n isNaN(angle) || angle < -90 || angle > 90\n ? DEFAULT_CSS_FONT_OBLIQUE\n : italicAngle.toString();\n\n return true;\n}\n\nfunction recoverJsURL(str) {\n // Attempt to recover valid URLs from `JS` entries with certain\n // white-listed formats:\n // - window.open('http://example.com')\n // - app.launchURL('http://example.com', true)\n // - xfa.host.gotoURL('http://example.com')\n const URL_OPEN_METHODS = [\"app.launchURL\", \"window.open\", \"xfa.host.gotoURL\"];\n const regex = new RegExp(\n \"^\\\\s*(\" +\n URL_OPEN_METHODS.join(\"|\").replaceAll(\".\", \"\\\\.\") +\n \")\\\\((?:'|\\\")([^'\\\"]*)(?:'|\\\")(?:,\\\\s*(\\\\w+)\\\\)|\\\\))\",\n \"i\"\n );\n\n const jsUrl = regex.exec(str);\n if (jsUrl?.[2]) {\n const url = jsUrl[2];\n let newWindow = false;\n\n if (jsUrl[3] === \"true\" && jsUrl[1] === \"app.launchURL\") {\n newWindow = true;\n }\n return { url, newWindow };\n }\n\n return null;\n}\n\nfunction numberToString(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const roundedValue = Math.round(value * 100);\n if (roundedValue % 100 === 0) {\n return (roundedValue / 100).toString();\n }\n\n if (roundedValue % 10 === 0) {\n return value.toFixed(1);\n }\n\n return value.toFixed(2);\n}\n\nfunction getNewAnnotationsMap(annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n const newAnnotationsByPage = new Map();\n // The concept of page in a XFA is very different, so\n // editing is just not implemented.\n for (const [key, value] of annotationStorage) {\n if (!key.startsWith(AnnotationEditorPrefix)) {\n continue;\n }\n let annotations = newAnnotationsByPage.get(value.pageIndex);\n if (!annotations) {\n annotations = [];\n newAnnotationsByPage.set(value.pageIndex, annotations);\n }\n annotations.push(value);\n }\n return newAnnotationsByPage.size > 0 ? newAnnotationsByPage : null;\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16HexString(str) {\n const buf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(\n ((char >> 8) & 0xff).toString(16).padStart(2, \"0\"),\n (char & 0xff).toString(16).padStart(2, \"0\")\n );\n }\n return buf.join(\"\");\n}\n\nfunction stringToUTF16String(str, bigEndian = false) {\n const buf = [];\n if (bigEndian) {\n buf.push(\"\\xFE\\xFF\");\n }\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(\n String.fromCharCode((char >> 8) & 0xff),\n String.fromCharCode(char & 0xff)\n );\n }\n return buf.join(\"\");\n}\n\nfunction getRotationMatrix(rotation, width, height) {\n switch (rotation) {\n case 90:\n return [0, 1, -1, 0, width, 0];\n case 180:\n return [-1, 0, 0, -1, width, height];\n case 270:\n return [0, -1, 1, 0, 0, height];\n default:\n throw new Error(\"Invalid rotation\");\n }\n}\n\nexport {\n arrayBuffersToBytes,\n collectActions,\n encodeToXmlString,\n escapePDFName,\n escapeString,\n getInheritableProperty,\n getLookupTableFactory,\n getNewAnnotationsMap,\n getRotationMatrix,\n isAscii,\n isWhiteSpace,\n log2,\n MissingDataException,\n numberToString,\n ParserEOFException,\n parseXFAPath,\n PDF_VERSION_REGEXP,\n readInt8,\n readUint16,\n readUint32,\n recoverJsURL,\n stringToUTF16HexString,\n stringToUTF16String,\n toRomanNumerals,\n validateCSSFont,\n validateFontName,\n XRefEntryException,\n XRefParseException,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { stringToBytes } from \"../shared/util.js\";\n\nclass Stream extends BaseStream {\n constructor(arrayBuffer, start, length, dict) {\n super();\n\n this.bytes =\n arrayBuffer instanceof Uint8Array\n ? arrayBuffer\n : new Uint8Array(arrayBuffer);\n this.start = start || 0;\n this.pos = this.start;\n this.end = start + length || this.bytes.length;\n this.dict = dict;\n }\n\n get length() {\n return this.end - this.start;\n }\n\n get isEmpty() {\n return this.length === 0;\n }\n\n getByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.bytes[this.pos++];\n }\n\n getBytes(length) {\n const bytes = this.bytes;\n const pos = this.pos;\n const strEnd = this.end;\n\n if (!length) {\n return bytes.subarray(pos, strEnd);\n }\n let end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n this.pos = end;\n return bytes.subarray(pos, end);\n }\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n if (end > this.end) {\n end = this.end;\n }\n return this.bytes.subarray(begin, end);\n }\n\n reset() {\n this.pos = this.start;\n }\n\n moveStart() {\n this.start = this.pos;\n }\n\n makeSubStream(start, length, dict = null) {\n return new Stream(this.bytes.buffer, start, length, dict);\n }\n}\n\nclass StringStream extends Stream {\n constructor(str) {\n super(stringToBytes(str));\n }\n}\n\nclass NullStream extends Stream {\n constructor() {\n super(new Uint8Array(0));\n }\n}\n\nexport { NullStream, Stream, StringStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { arrayBuffersToBytes, MissingDataException } from \"./core_utils.js\";\nimport { assert, PromiseCapability } from \"../shared/util.js\";\nimport { Stream } from \"./stream.js\";\n\nclass ChunkedStream extends Stream {\n constructor(length, chunkSize, manager) {\n super(\n /* arrayBuffer = */ new Uint8Array(length),\n /* start = */ 0,\n /* length = */ length,\n /* dict = */ null\n );\n\n this.chunkSize = chunkSize;\n this._loadedChunks = new Set();\n this.numChunks = Math.ceil(length / chunkSize);\n this.manager = manager;\n this.progressiveDataLength = 0;\n this.lastSuccessfulEnsureByteChunk = -1; // Single-entry cache\n }\n\n // If a particular stream does not implement one or more of these methods,\n // an error should be thrown.\n getMissingChunks() {\n const chunks = [];\n for (let chunk = 0, n = this.numChunks; chunk < n; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n chunks.push(chunk);\n }\n }\n return chunks;\n }\n\n get numChunksLoaded() {\n return this._loadedChunks.size;\n }\n\n get isDataLoaded() {\n return this.numChunksLoaded === this.numChunks;\n }\n\n onReceiveData(begin, chunk) {\n const chunkSize = this.chunkSize;\n if (begin % chunkSize !== 0) {\n throw new Error(`Bad begin offset: ${begin}`);\n }\n\n // Using `this.length` is inaccurate here since `this.start` can be moved\n // (see the `moveStart` method).\n const end = begin + chunk.byteLength;\n if (end % chunkSize !== 0 && end !== this.bytes.length) {\n throw new Error(`Bad end offset: ${end}`);\n }\n\n this.bytes.set(new Uint8Array(chunk), begin);\n const beginChunk = Math.floor(begin / chunkSize);\n const endChunk = Math.floor((end - 1) / chunkSize) + 1;\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n // Since a value can only occur *once* in a `Set`, there's no need to\n // manually check `Set.prototype.has()` before adding the value here.\n this._loadedChunks.add(curChunk);\n }\n }\n\n onReceiveProgressiveData(data) {\n let position = this.progressiveDataLength;\n const beginChunk = Math.floor(position / this.chunkSize);\n\n this.bytes.set(new Uint8Array(data), position);\n position += data.byteLength;\n this.progressiveDataLength = position;\n const endChunk =\n position >= this.end\n ? this.numChunks\n : Math.floor(position / this.chunkSize);\n\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n // Since a value can only occur *once* in a `Set`, there's no need to\n // manually check `Set.prototype.has()` before adding the value here.\n this._loadedChunks.add(curChunk);\n }\n }\n\n ensureByte(pos) {\n if (pos < this.progressiveDataLength) {\n return;\n }\n\n const chunk = Math.floor(pos / this.chunkSize);\n if (chunk > this.numChunks) {\n return;\n }\n if (chunk === this.lastSuccessfulEnsureByteChunk) {\n return;\n }\n\n if (!this._loadedChunks.has(chunk)) {\n throw new MissingDataException(pos, pos + 1);\n }\n this.lastSuccessfulEnsureByteChunk = chunk;\n }\n\n ensureRange(begin, end) {\n if (begin >= end) {\n return;\n }\n if (end <= this.progressiveDataLength) {\n return;\n }\n\n const beginChunk = Math.floor(begin / this.chunkSize);\n if (beginChunk > this.numChunks) {\n return;\n }\n const endChunk = Math.min(\n Math.floor((end - 1) / this.chunkSize) + 1,\n this.numChunks\n );\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n throw new MissingDataException(begin, end);\n }\n }\n }\n\n nextEmptyChunk(beginChunk) {\n const numChunks = this.numChunks;\n for (let i = 0; i < numChunks; ++i) {\n const chunk = (beginChunk + i) % numChunks; // Wrap around to beginning.\n if (!this._loadedChunks.has(chunk)) {\n return chunk;\n }\n }\n return null;\n }\n\n hasChunk(chunk) {\n return this._loadedChunks.has(chunk);\n }\n\n getByte() {\n const pos = this.pos;\n if (pos >= this.end) {\n return -1;\n }\n if (pos >= this.progressiveDataLength) {\n this.ensureByte(pos);\n }\n return this.bytes[this.pos++];\n }\n\n getBytes(length) {\n const bytes = this.bytes;\n const pos = this.pos;\n const strEnd = this.end;\n\n if (!length) {\n if (strEnd > this.progressiveDataLength) {\n this.ensureRange(pos, strEnd);\n }\n return bytes.subarray(pos, strEnd);\n }\n\n let end = pos + length;\n if (end > strEnd) {\n end = strEnd;\n }\n if (end > this.progressiveDataLength) {\n this.ensureRange(pos, end);\n }\n\n this.pos = end;\n return bytes.subarray(pos, end);\n }\n\n getByteRange(begin, end) {\n if (begin < 0) {\n begin = 0;\n }\n if (end > this.end) {\n end = this.end;\n }\n if (end > this.progressiveDataLength) {\n this.ensureRange(begin, end);\n }\n return this.bytes.subarray(begin, end);\n }\n\n makeSubStream(start, length, dict = null) {\n if (length) {\n if (start + length > this.progressiveDataLength) {\n this.ensureRange(start, start + length);\n }\n } else if (start >= this.progressiveDataLength) {\n // When the `length` is undefined you do *not*, under any circumstances,\n // want to fallback on calling `this.ensureRange(start, this.end)` since\n // that would force the *entire* PDF file to be loaded, thus completely\n // breaking the whole purpose of using streaming and/or range requests.\n //\n // However, not doing any checking here could very easily lead to wasted\n // time/resources during e.g. parsing, since `MissingDataException`s will\n // require data to be re-parsed, which we attempt to minimize by at least\n // checking that the *beginning* of the data is available here.\n this.ensureByte(start);\n }\n\n function ChunkedStreamSubstream() {}\n ChunkedStreamSubstream.prototype = Object.create(this);\n ChunkedStreamSubstream.prototype.getMissingChunks = function () {\n const chunkSize = this.chunkSize;\n const beginChunk = Math.floor(this.start / chunkSize);\n const endChunk = Math.floor((this.end - 1) / chunkSize) + 1;\n const missingChunks = [];\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!this._loadedChunks.has(chunk)) {\n missingChunks.push(chunk);\n }\n }\n return missingChunks;\n };\n Object.defineProperty(ChunkedStreamSubstream.prototype, \"isDataLoaded\", {\n get() {\n if (this.numChunksLoaded === this.numChunks) {\n return true;\n }\n return this.getMissingChunks().length === 0;\n },\n configurable: true,\n });\n\n const subStream = new ChunkedStreamSubstream();\n subStream.pos = subStream.start = start;\n subStream.end = start + length || this.end;\n subStream.dict = dict;\n return subStream;\n }\n\n getBaseStreams() {\n return [this];\n }\n}\n\nclass ChunkedStreamManager {\n constructor(pdfNetworkStream, args) {\n this.length = args.length;\n this.chunkSize = args.rangeChunkSize;\n this.stream = new ChunkedStream(this.length, this.chunkSize, this);\n this.pdfNetworkStream = pdfNetworkStream;\n this.disableAutoFetch = args.disableAutoFetch;\n this.msgHandler = args.msgHandler;\n\n this.currRequestId = 0;\n\n this._chunksNeededByRequest = new Map();\n this._requestsByChunk = new Map();\n this._promisesByRequest = new Map();\n this.progressiveDataLength = 0;\n this.aborted = false;\n\n this._loadedStreamCapability = new PromiseCapability();\n }\n\n sendRequest(begin, end) {\n const rangeReader = this.pdfNetworkStream.getRangeReader(begin, end);\n if (!rangeReader.isStreamingSupported) {\n rangeReader.onProgress = this.onProgress.bind(this);\n }\n\n let chunks = [],\n loaded = 0;\n return new Promise((resolve, reject) => {\n const readChunk = ({ value, done }) => {\n try {\n if (done) {\n const chunkData = arrayBuffersToBytes(chunks);\n chunks = null;\n resolve(chunkData);\n return;\n }\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n value instanceof ArrayBuffer,\n \"readChunk (sendRequest) - expected an ArrayBuffer.\"\n );\n }\n loaded += value.byteLength;\n\n if (rangeReader.isStreamingSupported) {\n this.onProgress({ loaded });\n }\n\n chunks.push(value);\n rangeReader.read().then(readChunk, reject);\n } catch (e) {\n reject(e);\n }\n };\n rangeReader.read().then(readChunk, reject);\n }).then(data => {\n if (this.aborted) {\n return; // Ignoring any data after abort.\n }\n this.onReceiveData({ chunk: data, begin });\n });\n }\n\n /**\n * Get all the chunks that are not yet loaded and group them into\n * contiguous ranges to load in as few requests as possible.\n */\n requestAllChunks(noFetch = false) {\n if (!noFetch) {\n const missingChunks = this.stream.getMissingChunks();\n this._requestChunks(missingChunks);\n }\n return this._loadedStreamCapability.promise;\n }\n\n _requestChunks(chunks) {\n const requestId = this.currRequestId++;\n\n const chunksNeeded = new Set();\n this._chunksNeededByRequest.set(requestId, chunksNeeded);\n for (const chunk of chunks) {\n if (!this.stream.hasChunk(chunk)) {\n chunksNeeded.add(chunk);\n }\n }\n\n if (chunksNeeded.size === 0) {\n return Promise.resolve();\n }\n\n const capability = new PromiseCapability();\n this._promisesByRequest.set(requestId, capability);\n\n const chunksToRequest = [];\n for (const chunk of chunksNeeded) {\n let requestIds = this._requestsByChunk.get(chunk);\n if (!requestIds) {\n requestIds = [];\n this._requestsByChunk.set(chunk, requestIds);\n\n chunksToRequest.push(chunk);\n }\n requestIds.push(requestId);\n }\n\n if (chunksToRequest.length > 0) {\n const groupedChunksToRequest = this.groupChunks(chunksToRequest);\n for (const groupedChunk of groupedChunksToRequest) {\n const begin = groupedChunk.beginChunk * this.chunkSize;\n const end = Math.min(\n groupedChunk.endChunk * this.chunkSize,\n this.length\n );\n this.sendRequest(begin, end).catch(capability.reject);\n }\n }\n\n return capability.promise.catch(reason => {\n if (this.aborted) {\n return; // Ignoring any pending requests after abort.\n }\n throw reason;\n });\n }\n\n getStream() {\n return this.stream;\n }\n\n /**\n * Loads any chunks in the requested range that are not yet loaded.\n */\n requestRange(begin, end) {\n end = Math.min(end, this.length);\n\n const beginChunk = this.getBeginChunk(begin);\n const endChunk = this.getEndChunk(end);\n\n const chunks = [];\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n chunks.push(chunk);\n }\n return this._requestChunks(chunks);\n }\n\n requestRanges(ranges = []) {\n const chunksToRequest = [];\n for (const range of ranges) {\n const beginChunk = this.getBeginChunk(range.begin);\n const endChunk = this.getEndChunk(range.end);\n for (let chunk = beginChunk; chunk < endChunk; ++chunk) {\n if (!chunksToRequest.includes(chunk)) {\n chunksToRequest.push(chunk);\n }\n }\n }\n\n chunksToRequest.sort(function (a, b) {\n return a - b;\n });\n return this._requestChunks(chunksToRequest);\n }\n\n /**\n * Groups a sorted array of chunks into as few contiguous larger\n * chunks as possible.\n */\n groupChunks(chunks) {\n const groupedChunks = [];\n let beginChunk = -1;\n let prevChunk = -1;\n\n for (let i = 0, ii = chunks.length; i < ii; ++i) {\n const chunk = chunks[i];\n if (beginChunk < 0) {\n beginChunk = chunk;\n }\n\n if (prevChunk >= 0 && prevChunk + 1 !== chunk) {\n groupedChunks.push({ beginChunk, endChunk: prevChunk + 1 });\n beginChunk = chunk;\n }\n if (i + 1 === chunks.length) {\n groupedChunks.push({ beginChunk, endChunk: chunk + 1 });\n }\n\n prevChunk = chunk;\n }\n return groupedChunks;\n }\n\n onProgress(args) {\n this.msgHandler.send(\"DocProgress\", {\n loaded: this.stream.numChunksLoaded * this.chunkSize + args.loaded,\n total: this.length,\n });\n }\n\n onReceiveData(args) {\n const chunk = args.chunk;\n const isProgressive = args.begin === undefined;\n const begin = isProgressive ? this.progressiveDataLength : args.begin;\n const end = begin + chunk.byteLength;\n\n const beginChunk = Math.floor(begin / this.chunkSize);\n const endChunk =\n end < this.length\n ? Math.floor(end / this.chunkSize)\n : Math.ceil(end / this.chunkSize);\n\n if (isProgressive) {\n this.stream.onReceiveProgressiveData(chunk);\n this.progressiveDataLength = end;\n } else {\n this.stream.onReceiveData(begin, chunk);\n }\n\n if (this.stream.isDataLoaded) {\n this._loadedStreamCapability.resolve(this.stream);\n }\n\n const loadedRequests = [];\n for (let curChunk = beginChunk; curChunk < endChunk; ++curChunk) {\n // The server might return more chunks than requested.\n const requestIds = this._requestsByChunk.get(curChunk);\n if (!requestIds) {\n continue;\n }\n this._requestsByChunk.delete(curChunk);\n\n for (const requestId of requestIds) {\n const chunksNeeded = this._chunksNeededByRequest.get(requestId);\n if (chunksNeeded.has(curChunk)) {\n chunksNeeded.delete(curChunk);\n }\n\n if (chunksNeeded.size > 0) {\n continue;\n }\n loadedRequests.push(requestId);\n }\n }\n\n // If there are no pending requests, automatically fetch the next\n // unfetched chunk of the PDF file.\n if (!this.disableAutoFetch && this._requestsByChunk.size === 0) {\n let nextEmptyChunk;\n if (this.stream.numChunksLoaded === 1) {\n // This is a special optimization so that after fetching the first\n // chunk, rather than fetching the second chunk, we fetch the last\n // chunk.\n const lastChunk = this.stream.numChunks - 1;\n if (!this.stream.hasChunk(lastChunk)) {\n nextEmptyChunk = lastChunk;\n }\n } else {\n nextEmptyChunk = this.stream.nextEmptyChunk(endChunk);\n }\n if (Number.isInteger(nextEmptyChunk)) {\n this._requestChunks([nextEmptyChunk]);\n }\n }\n\n for (const requestId of loadedRequests) {\n const capability = this._promisesByRequest.get(requestId);\n this._promisesByRequest.delete(requestId);\n capability.resolve();\n }\n\n this.msgHandler.send(\"DocProgress\", {\n loaded: this.stream.numChunksLoaded * this.chunkSize,\n total: this.length,\n });\n }\n\n onError(err) {\n this._loadedStreamCapability.reject(err);\n }\n\n getBeginChunk(begin) {\n return Math.floor(begin / this.chunkSize);\n }\n\n getEndChunk(end) {\n return Math.floor((end - 1) / this.chunkSize) + 1;\n }\n\n abort(reason) {\n this.aborted = true;\n this.pdfNetworkStream?.cancelAllRequests(reason);\n\n for (const capability of this._promisesByRequest.values()) {\n capability.reject(reason);\n }\n }\n}\n\nexport { ChunkedStream, ChunkedStreamManager };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FormatError,\n info,\n shadow,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, Name, Ref } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\n/**\n * Resizes an RGB image with 3 components.\n * @param {TypedArray} src - The source buffer.\n * @param {TypedArray} dest - The destination buffer.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @param {number} alpha01 - Size reserved for the alpha channel.\n */\nfunction resizeRgbImage(src, dest, w1, h1, w2, h2, alpha01) {\n const COMPONENTS = 3;\n alpha01 = alpha01 !== 1 ? 0 : alpha01;\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let newIndex = 0,\n oldIndex;\n const xScaled = new Uint16Array(w2);\n const w1Scanline = w1 * COMPONENTS;\n\n for (let i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio) * COMPONENTS;\n }\n for (let i = 0; i < h2; i++) {\n const py = Math.floor(i * yRatio) * w1Scanline;\n for (let j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n dest[newIndex++] = src[oldIndex++];\n newIndex += alpha01;\n }\n }\n}\n\nclass ColorSpace {\n constructor(name, numComps) {\n if (this.constructor === ColorSpace) {\n unreachable(\"Cannot initialize ColorSpace.\");\n }\n this.name = name;\n this.numComps = numComps;\n }\n\n /**\n * Converts the color value to the RGB color. The color components are\n * located in the src array starting from the srcOffset. Returns the array\n * of the rgb components, each value ranging from [0,255].\n */\n getRgb(src, srcOffset) {\n const rgb = new Uint8ClampedArray(3);\n this.getRgbItem(src, srcOffset, rgb, 0);\n return rgb;\n }\n\n /**\n * Converts the color value to the RGB color, similar to the getRgb method.\n * The result placed into the dest array starting from the destOffset.\n */\n getRgbItem(src, srcOffset, dest, destOffset) {\n unreachable(\"Should not call ColorSpace.getRgbItem\");\n }\n\n /**\n * Converts the specified number of the color values to the RGB colors.\n * The colors are located in the src array starting from the srcOffset.\n * The result is placed into the dest array starting from the destOffset.\n * The src array items shall be in [0,2^bits) range, the dest array items\n * will be in [0,255] range. alpha01 indicates how many alpha components\n * there are in the dest array; it will be either 0 (RGB array) or 1 (RGBA\n * array).\n */\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n unreachable(\"Should not call ColorSpace.getRgbBuffer\");\n }\n\n /**\n * Determines the number of bytes required to store the result of the\n * conversion done by the getRgbBuffer method. As in getRgbBuffer,\n * |alpha01| is either 0 (RGB output) or 1 (RGBA output).\n */\n getOutputLength(inputLength, alpha01) {\n unreachable(\"Should not call ColorSpace.getOutputLength\");\n }\n\n /**\n * Returns true if source data will be equal the result/output data.\n */\n isPassthrough(bits) {\n return false;\n }\n\n /**\n * Refer to the static `ColorSpace.isDefaultDecode` method below.\n */\n isDefaultDecode(decodeMap, bpc) {\n return ColorSpace.isDefaultDecode(decodeMap, this.numComps);\n }\n\n /**\n * Fills in the RGB colors in the destination buffer. alpha01 indicates\n * how many alpha components there are in the dest array; it will be either\n * 0 (RGB array) or 1 (RGBA array).\n */\n fillRgb(\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n actualHeight,\n bpc,\n comps,\n alpha01\n ) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'ColorSpace.fillRgb: Unsupported \"dest\" type.'\n );\n }\n const count = originalWidth * originalHeight;\n let rgbBuf = null;\n const numComponentColors = 1 << bpc;\n const needsResizing = originalHeight !== height || originalWidth !== width;\n\n if (this.isPassthrough(bpc)) {\n rgbBuf = comps;\n } else if (\n this.numComps === 1 &&\n count > numComponentColors &&\n this.name !== \"DeviceGray\" &&\n this.name !== \"DeviceRGB\"\n ) {\n // Optimization: create a color map when there is just one component and\n // we are converting more colors than the size of the color map. We\n // don't build the map if the colorspace is gray or rgb since those\n // methods are faster than building a map. This mainly offers big speed\n // ups for indexed and alternate colorspaces.\n //\n // TODO it may be worth while to cache the color map. While running\n // testing I never hit a cache so I will leave that out for now (perhaps\n // we are reparsing colorspaces too much?).\n const allColors =\n bpc <= 8\n ? new Uint8Array(numComponentColors)\n : new Uint16Array(numComponentColors);\n for (let i = 0; i < numComponentColors; i++) {\n allColors[i] = i;\n }\n const colorMap = new Uint8ClampedArray(numComponentColors * 3);\n this.getRgbBuffer(\n allColors,\n 0,\n numComponentColors,\n colorMap,\n 0,\n bpc,\n /* alpha01 = */ 0\n );\n\n if (!needsResizing) {\n // Fill in the RGB values directly into |dest|.\n let destPos = 0;\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n dest[destPos++] = colorMap[key];\n dest[destPos++] = colorMap[key + 1];\n dest[destPos++] = colorMap[key + 2];\n destPos += alpha01;\n }\n } else {\n rgbBuf = new Uint8Array(count * 3);\n let rgbPos = 0;\n for (let i = 0; i < count; ++i) {\n const key = comps[i] * 3;\n rgbBuf[rgbPos++] = colorMap[key];\n rgbBuf[rgbPos++] = colorMap[key + 1];\n rgbBuf[rgbPos++] = colorMap[key + 2];\n }\n }\n } else if (!needsResizing) {\n // Fill in the RGB values directly into |dest|.\n this.getRgbBuffer(comps, 0, width * actualHeight, dest, 0, bpc, alpha01);\n } else {\n rgbBuf = new Uint8ClampedArray(count * 3);\n this.getRgbBuffer(comps, 0, count, rgbBuf, 0, bpc, /* alpha01 = */ 0);\n }\n\n if (rgbBuf) {\n if (needsResizing) {\n resizeRgbImage(\n rgbBuf,\n dest,\n originalWidth,\n originalHeight,\n width,\n height,\n alpha01\n );\n } else {\n let destPos = 0,\n rgbPos = 0;\n for (let i = 0, ii = width * actualHeight; i < ii; i++) {\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n dest[destPos++] = rgbBuf[rgbPos++];\n destPos += alpha01;\n }\n }\n }\n }\n\n /**\n * True if the colorspace has components in the default range of [0, 1].\n * This should be true for all colorspaces except for lab color spaces\n * which are [0,100], [-128, 127], [-128, 127].\n */\n get usesZeroToOneRange() {\n return shadow(this, \"usesZeroToOneRange\", true);\n }\n\n /**\n * @private\n */\n static _cache(cacheKey, xref, localColorSpaceCache, parsedColorSpace) {\n if (!localColorSpaceCache) {\n throw new Error(\n 'ColorSpace._cache - expected \"localColorSpaceCache\" argument.'\n );\n }\n if (!parsedColorSpace) {\n throw new Error(\n 'ColorSpace._cache - expected \"parsedColorSpace\" argument.'\n );\n }\n let csName, csRef;\n if (cacheKey instanceof Ref) {\n csRef = cacheKey;\n\n // If parsing succeeded, we know that this call cannot throw.\n cacheKey = xref.fetch(cacheKey);\n }\n if (cacheKey instanceof Name) {\n csName = cacheKey.name;\n }\n if (csName || csRef) {\n localColorSpaceCache.set(csName, csRef, parsedColorSpace);\n }\n }\n\n static getCached(cacheKey, xref, localColorSpaceCache) {\n if (!localColorSpaceCache) {\n throw new Error(\n 'ColorSpace.getCached - expected \"localColorSpaceCache\" argument.'\n );\n }\n if (cacheKey instanceof Ref) {\n const localColorSpace = localColorSpaceCache.getByRef(cacheKey);\n if (localColorSpace) {\n return localColorSpace;\n }\n\n try {\n cacheKey = xref.fetch(cacheKey);\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n // Any errors should be handled during parsing, rather than here.\n }\n }\n if (cacheKey instanceof Name) {\n const localColorSpace = localColorSpaceCache.getByName(cacheKey.name);\n if (localColorSpace) {\n return localColorSpace;\n }\n }\n return null;\n }\n\n static async parseAsync({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n !this.getCached(cs, xref, localColorSpaceCache),\n \"Expected `ColorSpace.getCached` to have been manually checked \" +\n \"before calling `ColorSpace.parseAsync`.\"\n );\n }\n const parsedColorSpace = this._parse(\n cs,\n xref,\n resources,\n pdfFunctionFactory\n );\n\n // Attempt to cache the parsed ColorSpace, by name and/or reference.\n this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n return parsedColorSpace;\n }\n\n static parse({\n cs,\n xref,\n resources = null,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n const cachedColorSpace = this.getCached(cs, xref, localColorSpaceCache);\n if (cachedColorSpace) {\n return cachedColorSpace;\n }\n const parsedColorSpace = this._parse(\n cs,\n xref,\n resources,\n pdfFunctionFactory\n );\n\n // Attempt to cache the parsed ColorSpace, by name and/or reference.\n this._cache(cs, xref, localColorSpaceCache, parsedColorSpace);\n\n return parsedColorSpace;\n }\n\n /**\n * @private\n */\n static _parse(cs, xref, resources = null, pdfFunctionFactory) {\n cs = xref.fetchIfRef(cs);\n if (cs instanceof Name) {\n switch (cs.name) {\n case \"G\":\n case \"DeviceGray\":\n return this.singletons.gray;\n case \"RGB\":\n case \"DeviceRGB\":\n return this.singletons.rgb;\n case \"CMYK\":\n case \"DeviceCMYK\":\n return this.singletons.cmyk;\n case \"Pattern\":\n return new PatternCS(/* baseCS = */ null);\n default:\n if (resources instanceof Dict) {\n const colorSpaces = resources.get(\"ColorSpace\");\n if (colorSpaces instanceof Dict) {\n const resourcesCS = colorSpaces.get(cs.name);\n if (resourcesCS) {\n if (resourcesCS instanceof Name) {\n return this._parse(\n resourcesCS,\n xref,\n resources,\n pdfFunctionFactory\n );\n }\n cs = resourcesCS;\n break;\n }\n }\n }\n throw new FormatError(`Unrecognized ColorSpace: ${cs.name}`);\n }\n }\n if (Array.isArray(cs)) {\n const mode = xref.fetchIfRef(cs[0]).name;\n let params, numComps, baseCS, whitePoint, blackPoint, gamma;\n\n switch (mode) {\n case \"G\":\n case \"DeviceGray\":\n return this.singletons.gray;\n case \"RGB\":\n case \"DeviceRGB\":\n return this.singletons.rgb;\n case \"CMYK\":\n case \"DeviceCMYK\":\n return this.singletons.cmyk;\n case \"CalGray\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.get(\"Gamma\");\n return new CalGrayCS(whitePoint, blackPoint, gamma);\n case \"CalRGB\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n gamma = params.getArray(\"Gamma\");\n const matrix = params.getArray(\"Matrix\");\n return new CalRGBCS(whitePoint, blackPoint, gamma, matrix);\n case \"ICCBased\":\n const stream = xref.fetchIfRef(cs[1]);\n const dict = stream.dict;\n numComps = dict.get(\"N\");\n const alt = dict.get(\"Alternate\");\n if (alt) {\n const altCS = this._parse(alt, xref, resources, pdfFunctionFactory);\n // Ensure that the number of components are correct,\n // and also (indirectly) that it is not a PatternCS.\n if (altCS.numComps === numComps) {\n return altCS;\n }\n warn(\"ICCBased color space: Ignoring incorrect /Alternate entry.\");\n }\n if (numComps === 1) {\n return this.singletons.gray;\n } else if (numComps === 3) {\n return this.singletons.rgb;\n } else if (numComps === 4) {\n return this.singletons.cmyk;\n }\n break;\n case \"Pattern\":\n baseCS = cs[1] || null;\n if (baseCS) {\n baseCS = this._parse(baseCS, xref, resources, pdfFunctionFactory);\n }\n return new PatternCS(baseCS);\n case \"I\":\n case \"Indexed\":\n baseCS = this._parse(cs[1], xref, resources, pdfFunctionFactory);\n const hiVal = xref.fetchIfRef(cs[2]) + 1;\n const lookup = xref.fetchIfRef(cs[3]);\n return new IndexedCS(baseCS, hiVal, lookup);\n case \"Separation\":\n case \"DeviceN\":\n const name = xref.fetchIfRef(cs[1]);\n numComps = Array.isArray(name) ? name.length : 1;\n baseCS = this._parse(cs[2], xref, resources, pdfFunctionFactory);\n const tintFn = pdfFunctionFactory.create(cs[3]);\n return new AlternateCS(numComps, baseCS, tintFn);\n case \"Lab\":\n params = xref.fetchIfRef(cs[1]);\n whitePoint = params.getArray(\"WhitePoint\");\n blackPoint = params.getArray(\"BlackPoint\");\n const range = params.getArray(\"Range\");\n return new LabCS(whitePoint, blackPoint, range);\n default:\n throw new FormatError(`Unimplemented ColorSpace object: ${mode}`);\n }\n }\n throw new FormatError(`Unrecognized ColorSpace object: ${cs}`);\n }\n\n /**\n * Checks if a decode map matches the default decode map for a color space.\n * This handles the general decode maps where there are two values per\n * component, e.g. [0, 1, 0, 1, 0, 1] for a RGB color.\n * This does not handle Lab, Indexed, or Pattern decode maps since they are\n * slightly different.\n * @param {Array} decode - Decode map (usually from an image).\n * @param {number} numComps - Number of components the color space has.\n */\n static isDefaultDecode(decode, numComps) {\n if (!Array.isArray(decode)) {\n return true;\n }\n if (numComps * 2 !== decode.length) {\n warn(\"The decode map is not the correct length\");\n return true;\n }\n for (let i = 0, ii = decode.length; i < ii; i += 2) {\n if (decode[i] !== 0 || decode[i + 1] !== 1) {\n return false;\n }\n }\n return true;\n }\n\n static get singletons() {\n return shadow(this, \"singletons\", {\n get gray() {\n return shadow(this, \"gray\", new DeviceGrayCS());\n },\n get rgb() {\n return shadow(this, \"rgb\", new DeviceRgbCS());\n },\n get cmyk() {\n return shadow(this, \"cmyk\", new DeviceCmykCS());\n },\n });\n }\n}\n\n/**\n * Alternate color space handles both Separation and DeviceN color spaces. A\n * Separation color space is actually just a DeviceN with one color component.\n * Both color spaces use a tinting function to convert colors to a base color\n * space.\n *\n * The default color is `new Float32Array(new Array(numComps).fill(1))`.\n */\nclass AlternateCS extends ColorSpace {\n constructor(numComps, base, tintFn) {\n super(\"Alternate\", numComps);\n this.base = base;\n this.tintFn = tintFn;\n this.tmpBuf = new Float32Array(base.numComps);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'AlternateCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const tmpBuf = this.tmpBuf;\n this.tintFn(src, srcOffset, tmpBuf, 0);\n this.base.getRgbItem(tmpBuf, 0, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'AlternateCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const tintFn = this.tintFn;\n const base = this.base;\n const scale = 1 / ((1 << bits) - 1);\n const baseNumComps = base.numComps;\n const usesZeroToOneRange = base.usesZeroToOneRange;\n const isPassthrough =\n (base.isPassthrough(8) || !usesZeroToOneRange) && alpha01 === 0;\n let pos = isPassthrough ? destOffset : 0;\n const baseBuf = isPassthrough\n ? dest\n : new Uint8ClampedArray(baseNumComps * count);\n const numComps = this.numComps;\n\n const scaled = new Float32Array(numComps);\n const tinted = new Float32Array(baseNumComps);\n let i, j;\n\n for (i = 0; i < count; i++) {\n for (j = 0; j < numComps; j++) {\n scaled[j] = src[srcOffset++] * scale;\n }\n tintFn(scaled, 0, tinted, 0);\n if (usesZeroToOneRange) {\n for (j = 0; j < baseNumComps; j++) {\n baseBuf[pos++] = tinted[j] * 255;\n }\n } else {\n base.getRgbItem(tinted, 0, baseBuf, pos);\n pos += baseNumComps;\n }\n }\n\n if (!isPassthrough) {\n base.getRgbBuffer(baseBuf, 0, count, dest, destOffset, 8, alpha01);\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(\n (inputLength * this.base.numComps) / this.numComps,\n alpha01\n );\n }\n}\n\nclass PatternCS extends ColorSpace {\n constructor(baseCS) {\n super(\"Pattern\", null);\n this.base = baseCS;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n unreachable(\"Should not call PatternCS.isDefaultDecode\");\n }\n}\n\n/**\n * The default color is `new Uint8Array([0])`.\n */\nclass IndexedCS extends ColorSpace {\n constructor(base, highVal, lookup) {\n super(\"Indexed\", 1);\n this.base = base;\n this.highVal = highVal;\n\n const length = base.numComps * highVal;\n this.lookup = new Uint8Array(length);\n\n if (lookup instanceof BaseStream) {\n const bytes = lookup.getBytes(length);\n this.lookup.set(bytes);\n } else if (typeof lookup === \"string\") {\n for (let i = 0; i < length; ++i) {\n this.lookup[i] = lookup.charCodeAt(i) & 0xff;\n }\n } else {\n throw new FormatError(`IndexedCS - unrecognized lookup table: ${lookup}`);\n }\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'IndexedCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const numComps = this.base.numComps;\n const start = src[srcOffset] * numComps;\n this.base.getRgbBuffer(this.lookup, start, 1, dest, destOffset, 8, 0);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'IndexedCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const base = this.base;\n const numComps = base.numComps;\n const outputDelta = base.getOutputLength(numComps, alpha01);\n const lookup = this.lookup;\n\n for (let i = 0; i < count; ++i) {\n const lookupPos = src[srcOffset++] * numComps;\n base.getRgbBuffer(lookup, lookupPos, 1, dest, destOffset, 8, alpha01);\n destOffset += outputDelta;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return this.base.getOutputLength(inputLength * this.base.numComps, alpha01);\n }\n\n isDefaultDecode(decodeMap, bpc) {\n if (!Array.isArray(decodeMap)) {\n return true;\n }\n if (decodeMap.length !== 2) {\n warn(\"Decode map length is not correct\");\n return true;\n }\n if (!Number.isInteger(bpc) || bpc < 1) {\n warn(\"Bits per component is not correct\");\n return true;\n }\n return decodeMap[0] === 0 && decodeMap[1] === (1 << bpc) - 1;\n }\n}\n\n/**\n * The default color is `new Float32Array([0])`.\n */\nclass DeviceGrayCS extends ColorSpace {\n constructor() {\n super(\"DeviceGray\", 1);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceGrayCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n const c = src[srcOffset] * 255;\n dest[destOffset] = dest[destOffset + 1] = dest[destOffset + 2] = c;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n for (let i = 0; i < count; ++i) {\n const c = scale * src[j++];\n dest[q++] = c;\n dest[q++] = c;\n dest[q++] = c;\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass DeviceRgbCS extends ColorSpace {\n constructor() {\n super(\"DeviceRGB\", 3);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n dest[destOffset] = src[srcOffset] * 255;\n dest[destOffset + 1] = src[srcOffset + 1] * 255;\n dest[destOffset + 2] = src[srcOffset + 2] * 255;\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceRgbCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n if (bits === 8 && alpha01 === 0) {\n dest.set(src.subarray(srcOffset, srcOffset + count * 3), destOffset);\n return;\n }\n const scale = 255 / ((1 << bits) - 1);\n let j = srcOffset,\n q = destOffset;\n for (let i = 0; i < count; ++i) {\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n dest[q++] = scale * src[j++];\n q += alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n\n isPassthrough(bits) {\n return bits === 8;\n }\n}\n\n/**\n * The default color is `new Float32Array([0, 0, 0, 1])`.\n */\nclass DeviceCmykCS extends ColorSpace {\n constructor() {\n super(\"DeviceCMYK\", 4);\n }\n\n // The coefficients below was found using numerical analysis: the method of\n // steepest descent for the sum((f_i - color_value_i)^2) for r/g/b colors,\n // where color_value is the tabular value from the table of sampled RGB colors\n // from CMYK US Web Coated (SWOP) colorspace, and f_i is the corresponding\n // CMYK color conversion using the estimation below:\n // f(A, B,.. N) = Acc+Bcm+Ccy+Dck+c+Fmm+Gmy+Hmk+Im+Jyy+Kyk+Ly+Mkk+Nk+255\n #toRgb(src, srcOffset, srcScale, dest, destOffset) {\n const c = src[srcOffset] * srcScale;\n const m = src[srcOffset + 1] * srcScale;\n const y = src[srcOffset + 2] * srcScale;\n const k = src[srcOffset + 3] * srcScale;\n\n dest[destOffset] =\n 255 +\n c *\n (-4.387332384609988 * c +\n 54.48615194189176 * m +\n 18.82290502165302 * y +\n 212.25662451639585 * k +\n -285.2331026137004) +\n m *\n (1.7149763477362134 * m -\n 5.6096736904047315 * y +\n -17.873870861415444 * k -\n 5.497006427196366) +\n y *\n (-2.5217340131683033 * y - 21.248923337353073 * k + 17.5119270841813) +\n k * (-21.86122147463605 * k - 189.48180835922747);\n\n dest[destOffset + 1] =\n 255 +\n c *\n (8.841041422036149 * c +\n 60.118027045597366 * m +\n 6.871425592049007 * y +\n 31.159100130055922 * k +\n -79.2970844816548) +\n m *\n (-15.310361306967817 * m +\n 17.575251261109482 * y +\n 131.35250912493976 * k -\n 190.9453302588951) +\n y * (4.444339102852739 * y + 9.8632861493405 * k - 24.86741582555878) +\n k * (-20.737325471181034 * k - 187.80453709719578);\n\n dest[destOffset + 2] =\n 255 +\n c *\n (0.8842522430003296 * c +\n 8.078677503112928 * m +\n 30.89978309703729 * y -\n 0.23883238689178934 * k +\n -14.183576799673286) +\n m *\n (10.49593273432072 * m +\n 63.02378494754052 * y +\n 50.606957656360734 * k -\n 112.23884253719248) +\n y *\n (0.03296041114873217 * y +\n 115.60384449646641 * k +\n -193.58209356861505) +\n k * (-22.33816807309886 * k - 180.12613974708367);\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceCmykCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n this.#toRgb(src, srcOffset, 1, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'DeviceCmykCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n for (let i = 0; i < count; i++) {\n this.#toRgb(src, srcOffset, scale, dest, destOffset);\n srcOffset += 4;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength / 4) * (3 + alpha01)) | 0;\n }\n}\n\n/**\n * CalGrayCS: Based on \"PDF Reference, Sixth Ed\", p.245\n *\n * The default color is `new Float32Array([0])`.\n */\nclass CalGrayCS extends ColorSpace {\n constructor(whitePoint, blackPoint, gamma) {\n super(\"CalGray\", 1);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space CalGray\"\n );\n }\n // Translate arguments to spec variables.\n [this.XW, this.YW, this.ZW] = whitePoint;\n [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];\n this.G = gamma || 1;\n\n // Validate variables as per spec.\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new FormatError(\n `Invalid WhitePoint components for ${this.name}, no fallback available`\n );\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n info(`Invalid BlackPoint for ${this.name}, falling back to default.`);\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.XB !== 0 || this.YB !== 0 || this.ZB !== 0) {\n warn(\n `${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ` +\n `ZB: ${this.ZB}, only default values are supported.`\n );\n }\n\n if (this.G < 1) {\n info(\n `Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`\n );\n this.G = 1;\n }\n }\n\n #toRgb(src, srcOffset, dest, destOffset, scale) {\n // A represents a gray component of a calibrated gray space.\n // A <---> AG in the spec\n const A = src[srcOffset] * scale;\n const AG = A ** this.G;\n\n // Computes L as per spec. ( = this.YW * AG )\n // Except if other than default BlackPoint values are used.\n const L = this.YW * AG;\n // http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html, Ch 4.\n // Convert values to rgb range [0, 255].\n const val = Math.max(295.8 * L ** 0.3333333333333333 - 40.8, 0);\n dest[destOffset] = val;\n dest[destOffset + 1] = val;\n dest[destOffset + 2] = val;\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalGrayCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n this.#toRgb(src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalGrayCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n this.#toRgb(src, srcOffset, dest, destOffset, scale);\n srcOffset += 1;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return inputLength * (3 + alpha01);\n }\n}\n\n/**\n * CalRGBCS: Based on \"PDF Reference, Sixth Ed\", p.247\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass CalRGBCS extends ColorSpace {\n // See http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html for these\n // matrices.\n // prettier-ignore\n static #BRADFORD_SCALE_MATRIX = new Float32Array([\n 0.8951, 0.2664, -0.1614,\n -0.7502, 1.7135, 0.0367,\n 0.0389, -0.0685, 1.0296]);\n\n // prettier-ignore\n static #BRADFORD_SCALE_INVERSE_MATRIX = new Float32Array([\n 0.9869929, -0.1470543, 0.1599627,\n 0.4323053, 0.5183603, 0.0492912,\n -0.0085287, 0.0400428, 0.9684867]);\n\n // See http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html.\n // prettier-ignore\n static #SRGB_D65_XYZ_TO_RGB_MATRIX = new Float32Array([\n 3.2404542, -1.5371385, -0.4985314,\n -0.9692660, 1.8760108, 0.0415560,\n 0.0556434, -0.2040259, 1.0572252]);\n\n static #FLAT_WHITEPOINT_MATRIX = new Float32Array([1, 1, 1]);\n\n static #tempNormalizeMatrix = new Float32Array(3);\n\n static #tempConvertMatrix1 = new Float32Array(3);\n\n static #tempConvertMatrix2 = new Float32Array(3);\n\n static #DECODE_L_CONSTANT = ((8 + 16) / 116) ** 3 / 8.0;\n\n constructor(whitePoint, blackPoint, gamma, matrix) {\n super(\"CalRGB\", 3);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space CalRGB\"\n );\n }\n // Translate arguments to spec variables.\n const [XW, YW, ZW] = (this.whitePoint = whitePoint);\n const [XB, YB, ZB] = (this.blackPoint = blackPoint || new Float32Array(3));\n\n [this.GR, this.GG, this.GB] = gamma || new Float32Array([1, 1, 1]);\n [\n this.MXA,\n this.MYA,\n this.MZA,\n this.MXB,\n this.MYB,\n this.MZB,\n this.MXC,\n this.MYC,\n this.MZC,\n ] = matrix || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);\n\n // Validate variables as per spec.\n if (XW < 0 || ZW < 0 || YW !== 1) {\n throw new FormatError(\n `Invalid WhitePoint components for ${this.name}, no fallback available`\n );\n }\n\n if (XB < 0 || YB < 0 || ZB < 0) {\n info(\n `Invalid BlackPoint for ${this.name} [${XB}, ${YB}, ${ZB}], ` +\n \"falling back to default.\"\n );\n this.blackPoint = new Float32Array(3);\n }\n\n if (this.GR < 0 || this.GG < 0 || this.GB < 0) {\n info(\n `Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ` +\n `${this.name}, falling back to default.`\n );\n this.GR = this.GG = this.GB = 1;\n }\n }\n\n #matrixProduct(a, b, result) {\n result[0] = a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n result[1] = a[3] * b[0] + a[4] * b[1] + a[5] * b[2];\n result[2] = a[6] * b[0] + a[7] * b[1] + a[8] * b[2];\n }\n\n #toFlat(sourceWhitePoint, LMS, result) {\n result[0] = (LMS[0] * 1) / sourceWhitePoint[0];\n result[1] = (LMS[1] * 1) / sourceWhitePoint[1];\n result[2] = (LMS[2] * 1) / sourceWhitePoint[2];\n }\n\n #toD65(sourceWhitePoint, LMS, result) {\n const D65X = 0.95047;\n const D65Y = 1;\n const D65Z = 1.08883;\n\n result[0] = (LMS[0] * D65X) / sourceWhitePoint[0];\n result[1] = (LMS[1] * D65Y) / sourceWhitePoint[1];\n result[2] = (LMS[2] * D65Z) / sourceWhitePoint[2];\n }\n\n #sRGBTransferFunction(color) {\n // See http://en.wikipedia.org/wiki/SRGB.\n if (color <= 0.0031308) {\n return this.#adjustToRange(0, 1, 12.92 * color);\n }\n // Optimization:\n // If color is close enough to 1, skip calling the following transform\n // since calling Math.pow is expensive. If color is larger than\n // the threshold, the final result is larger than 254.5 since\n // ((1 + 0.055) * 0.99554525 ** (1 / 2.4) - 0.055) * 255 ===\n // 254.50000003134699\n if (color >= 0.99554525) {\n return 1;\n }\n return this.#adjustToRange(0, 1, (1 + 0.055) * color ** (1 / 2.4) - 0.055);\n }\n\n #adjustToRange(min, max, value) {\n return Math.max(min, Math.min(max, value));\n }\n\n #decodeL(L) {\n if (L < 0) {\n return -this.#decodeL(-L);\n }\n if (L > 8.0) {\n return ((L + 16) / 116) ** 3;\n }\n return L * CalRGBCS.#DECODE_L_CONSTANT;\n }\n\n #compensateBlackPoint(sourceBlackPoint, XYZ_Flat, result) {\n // In case the blackPoint is already the default blackPoint then there is\n // no need to do compensation.\n if (\n sourceBlackPoint[0] === 0 &&\n sourceBlackPoint[1] === 0 &&\n sourceBlackPoint[2] === 0\n ) {\n result[0] = XYZ_Flat[0];\n result[1] = XYZ_Flat[1];\n result[2] = XYZ_Flat[2];\n return;\n }\n\n // For the blackPoint calculation details, please see\n // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n // AdobeBPC.pdf.\n // The destination blackPoint is the default blackPoint [0, 0, 0].\n const zeroDecodeL = this.#decodeL(0);\n\n const X_DST = zeroDecodeL;\n const X_SRC = this.#decodeL(sourceBlackPoint[0]);\n\n const Y_DST = zeroDecodeL;\n const Y_SRC = this.#decodeL(sourceBlackPoint[1]);\n\n const Z_DST = zeroDecodeL;\n const Z_SRC = this.#decodeL(sourceBlackPoint[2]);\n\n const X_Scale = (1 - X_DST) / (1 - X_SRC);\n const X_Offset = 1 - X_Scale;\n\n const Y_Scale = (1 - Y_DST) / (1 - Y_SRC);\n const Y_Offset = 1 - Y_Scale;\n\n const Z_Scale = (1 - Z_DST) / (1 - Z_SRC);\n const Z_Offset = 1 - Z_Scale;\n\n result[0] = XYZ_Flat[0] * X_Scale + X_Offset;\n result[1] = XYZ_Flat[1] * Y_Scale + Y_Offset;\n result[2] = XYZ_Flat[2] * Z_Scale + Z_Offset;\n }\n\n #normalizeWhitePointToFlat(sourceWhitePoint, XYZ_In, result) {\n // In case the whitePoint is already flat then there is no need to do\n // normalization.\n if (sourceWhitePoint[0] === 1 && sourceWhitePoint[2] === 1) {\n result[0] = XYZ_In[0];\n result[1] = XYZ_In[1];\n result[2] = XYZ_In[2];\n return;\n }\n\n const LMS = result;\n this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n const LMS_Flat = CalRGBCS.#tempNormalizeMatrix;\n this.#toFlat(sourceWhitePoint, LMS, LMS_Flat);\n\n this.#matrixProduct(\n CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX,\n LMS_Flat,\n result\n );\n }\n\n #normalizeWhitePointToD65(sourceWhitePoint, XYZ_In, result) {\n const LMS = result;\n this.#matrixProduct(CalRGBCS.#BRADFORD_SCALE_MATRIX, XYZ_In, LMS);\n\n const LMS_D65 = CalRGBCS.#tempNormalizeMatrix;\n this.#toD65(sourceWhitePoint, LMS, LMS_D65);\n\n this.#matrixProduct(\n CalRGBCS.#BRADFORD_SCALE_INVERSE_MATRIX,\n LMS_D65,\n result\n );\n }\n\n #toRgb(src, srcOffset, dest, destOffset, scale) {\n // A, B and C represent a red, green and blue components of a calibrated\n // rgb space.\n const A = this.#adjustToRange(0, 1, src[srcOffset] * scale);\n const B = this.#adjustToRange(0, 1, src[srcOffset + 1] * scale);\n const C = this.#adjustToRange(0, 1, src[srcOffset + 2] * scale);\n\n // A <---> AGR in the spec\n // B <---> BGG in the spec\n // C <---> CGB in the spec\n const AGR = A === 1 ? 1 : A ** this.GR;\n const BGG = B === 1 ? 1 : B ** this.GG;\n const CGB = C === 1 ? 1 : C ** this.GB;\n\n // Computes intermediate variables L, M, N as per spec.\n // To decode X, Y, Z values map L, M, N directly to them.\n const X = this.MXA * AGR + this.MXB * BGG + this.MXC * CGB;\n const Y = this.MYA * AGR + this.MYB * BGG + this.MYC * CGB;\n const Z = this.MZA * AGR + this.MZB * BGG + this.MZC * CGB;\n\n // The following calculations are based on this document:\n // http://www.adobe.com/content/dam/Adobe/en/devnet/photoshop/sdk/\n // AdobeBPC.pdf.\n const XYZ = CalRGBCS.#tempConvertMatrix1;\n XYZ[0] = X;\n XYZ[1] = Y;\n XYZ[2] = Z;\n const XYZ_Flat = CalRGBCS.#tempConvertMatrix2;\n\n this.#normalizeWhitePointToFlat(this.whitePoint, XYZ, XYZ_Flat);\n\n const XYZ_Black = CalRGBCS.#tempConvertMatrix1;\n this.#compensateBlackPoint(this.blackPoint, XYZ_Flat, XYZ_Black);\n\n const XYZ_D65 = CalRGBCS.#tempConvertMatrix2;\n this.#normalizeWhitePointToD65(\n CalRGBCS.#FLAT_WHITEPOINT_MATRIX,\n XYZ_Black,\n XYZ_D65\n );\n\n const SRGB = CalRGBCS.#tempConvertMatrix1;\n this.#matrixProduct(CalRGBCS.#SRGB_D65_XYZ_TO_RGB_MATRIX, XYZ_D65, SRGB);\n\n // Convert the values to rgb range [0, 255].\n dest[destOffset] = this.#sRGBTransferFunction(SRGB[0]) * 255;\n dest[destOffset + 1] = this.#sRGBTransferFunction(SRGB[1]) * 255;\n dest[destOffset + 2] = this.#sRGBTransferFunction(SRGB[2]) * 255;\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalRGBCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n this.#toRgb(src, srcOffset, dest, destOffset, 1);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'CalRGBCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const scale = 1 / ((1 << bits) - 1);\n\n for (let i = 0; i < count; ++i) {\n this.#toRgb(src, srcOffset, dest, destOffset, scale);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n}\n\n/**\n * LabCS: Based on \"PDF Reference, Sixth Ed\", p.250\n *\n * The default color is `new Float32Array([0, 0, 0])`.\n */\nclass LabCS extends ColorSpace {\n constructor(whitePoint, blackPoint, range) {\n super(\"Lab\", 3);\n\n if (!whitePoint) {\n throw new FormatError(\n \"WhitePoint missing - required for color space Lab\"\n );\n }\n // Translate args to spec variables\n [this.XW, this.YW, this.ZW] = whitePoint;\n [this.amin, this.amax, this.bmin, this.bmax] = range || [\n -100, 100, -100, 100,\n ];\n\n // These are here just for completeness - the spec doesn't offer any\n // formulas that use BlackPoint in Lab\n [this.XB, this.YB, this.ZB] = blackPoint || [0, 0, 0];\n\n // Validate vars as per spec\n if (this.XW < 0 || this.ZW < 0 || this.YW !== 1) {\n throw new FormatError(\n \"Invalid WhitePoint components, no fallback available\"\n );\n }\n\n if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {\n info(\"Invalid BlackPoint, falling back to default\");\n this.XB = this.YB = this.ZB = 0;\n }\n\n if (this.amin > this.amax || this.bmin > this.bmax) {\n info(\"Invalid Range, falling back to defaults\");\n this.amin = -100;\n this.amax = 100;\n this.bmin = -100;\n this.bmax = 100;\n }\n }\n\n // Function g(x) from spec\n #fn_g(x) {\n return x >= 6 / 29 ? x ** 3 : (108 / 841) * (x - 4 / 29);\n }\n\n #decode(value, high1, low2, high2) {\n return low2 + (value * (high2 - low2)) / high1;\n }\n\n // If decoding is needed maxVal should be 2^bits per component - 1.\n #toRgb(src, srcOffset, maxVal, dest, destOffset) {\n // XXX: Lab input is in the range of [0, 100], [amin, amax], [bmin, bmax]\n // not the usual [0, 1]. If a command like setFillColor is used the src\n // values will already be within the correct range. However, if we are\n // converting an image we have to map the values to the correct range given\n // above.\n // Ls,as,bs <---> L*,a*,b* in the spec\n let Ls = src[srcOffset];\n let as = src[srcOffset + 1];\n let bs = src[srcOffset + 2];\n if (maxVal !== false) {\n Ls = this.#decode(Ls, maxVal, 0, 100);\n as = this.#decode(as, maxVal, this.amin, this.amax);\n bs = this.#decode(bs, maxVal, this.bmin, this.bmax);\n }\n\n // Adjust limits of 'as' and 'bs'\n if (as > this.amax) {\n as = this.amax;\n } else if (as < this.amin) {\n as = this.amin;\n }\n if (bs > this.bmax) {\n bs = this.bmax;\n } else if (bs < this.bmin) {\n bs = this.bmin;\n }\n\n // Computes intermediate variables X,Y,Z as per spec\n const M = (Ls + 16) / 116;\n const L = M + as / 500;\n const N = M - bs / 200;\n\n const X = this.XW * this.#fn_g(L);\n const Y = this.YW * this.#fn_g(M);\n const Z = this.ZW * this.#fn_g(N);\n\n let r, g, b;\n // Using different conversions for D50 and D65 white points,\n // per http://www.color.org/srgb.pdf\n if (this.ZW < 1) {\n // Assuming D50 (X=0.9642, Y=1.00, Z=0.8249)\n r = X * 3.1339 + Y * -1.617 + Z * -0.4906;\n g = X * -0.9785 + Y * 1.916 + Z * 0.0333;\n b = X * 0.072 + Y * -0.229 + Z * 1.4057;\n } else {\n // Assuming D65 (X=0.9505, Y=1.00, Z=1.0888)\n r = X * 3.2406 + Y * -1.5372 + Z * -0.4986;\n g = X * -0.9689 + Y * 1.8758 + Z * 0.0415;\n b = X * 0.0557 + Y * -0.204 + Z * 1.057;\n }\n // Convert the color values to the [0,255] range (clamping is automatic).\n dest[destOffset] = Math.sqrt(r) * 255;\n dest[destOffset + 1] = Math.sqrt(g) * 255;\n dest[destOffset + 2] = Math.sqrt(b) * 255;\n }\n\n getRgbItem(src, srcOffset, dest, destOffset) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'LabCS.getRgbItem: Unsupported \"dest\" type.'\n );\n }\n this.#toRgb(src, srcOffset, false, dest, destOffset);\n }\n\n getRgbBuffer(src, srcOffset, count, dest, destOffset, bits, alpha01) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n dest instanceof Uint8ClampedArray,\n 'LabCS.getRgbBuffer: Unsupported \"dest\" type.'\n );\n }\n const maxVal = (1 << bits) - 1;\n for (let i = 0; i < count; i++) {\n this.#toRgb(src, srcOffset, maxVal, dest, destOffset);\n srcOffset += 3;\n destOffset += 3 + alpha01;\n }\n }\n\n getOutputLength(inputLength, alpha01) {\n return ((inputLength * (3 + alpha01)) / 3) | 0;\n }\n\n isDefaultDecode(decodeMap, bpc) {\n // XXX: Decoding is handled with the lab conversion because of the strange\n // ranges that are used.\n return true;\n }\n\n get usesZeroToOneRange() {\n return shadow(this, \"usesZeroToOneRange\", false);\n }\n}\n\nexport { ColorSpace };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormatError } from \"../shared/util.js\";\n\nfunction hexToInt(a, size) {\n let n = 0;\n for (let i = 0; i <= size; i++) {\n n = (n << 8) | a[i];\n }\n return n >>> 0;\n}\n\nfunction hexToStr(a, size) {\n // This code is hot. Special-case some common values to avoid creating an\n // object with subarray().\n if (size === 1) {\n return String.fromCharCode(a[0], a[1]);\n }\n if (size === 3) {\n return String.fromCharCode(a[0], a[1], a[2], a[3]);\n }\n return String.fromCharCode(...a.subarray(0, size + 1));\n}\n\nfunction addHex(a, b, size) {\n let c = 0;\n for (let i = size; i >= 0; i--) {\n c += a[i] + b[i];\n a[i] = c & 255;\n c >>= 8;\n }\n}\n\nfunction incHex(a, size) {\n let c = 1;\n for (let i = size; i >= 0 && c > 0; i--) {\n c += a[i];\n a[i] = c & 255;\n c >>= 8;\n }\n}\n\nconst MAX_NUM_SIZE = 16;\nconst MAX_ENCODED_NUM_SIZE = 19; // ceil(MAX_NUM_SIZE * 7 / 8)\n\nclass BinaryCMapStream {\n constructor(data) {\n this.buffer = data;\n this.pos = 0;\n this.end = data.length;\n this.tmpBuf = new Uint8Array(MAX_ENCODED_NUM_SIZE);\n }\n\n readByte() {\n if (this.pos >= this.end) {\n return -1;\n }\n return this.buffer[this.pos++];\n }\n\n readNumber() {\n let n = 0;\n let last;\n do {\n const b = this.readByte();\n if (b < 0) {\n throw new FormatError(\"unexpected EOF in bcmap\");\n }\n last = !(b & 0x80);\n n = (n << 7) | (b & 0x7f);\n } while (!last);\n return n;\n }\n\n readSigned() {\n const n = this.readNumber();\n return n & 1 ? ~(n >>> 1) : n >>> 1;\n }\n\n readHex(num, size) {\n num.set(this.buffer.subarray(this.pos, this.pos + size + 1));\n this.pos += size + 1;\n }\n\n readHexNumber(num, size) {\n let last;\n const stack = this.tmpBuf;\n let sp = 0;\n do {\n const b = this.readByte();\n if (b < 0) {\n throw new FormatError(\"unexpected EOF in bcmap\");\n }\n last = !(b & 0x80);\n stack[sp++] = b & 0x7f;\n } while (!last);\n let i = size,\n buffer = 0,\n bufferSize = 0;\n while (i >= 0) {\n while (bufferSize < 8 && stack.length > 0) {\n buffer |= stack[--sp] << bufferSize;\n bufferSize += 7;\n }\n num[i] = buffer & 255;\n i--;\n buffer >>= 8;\n bufferSize -= 8;\n }\n }\n\n readHexSigned(num, size) {\n this.readHexNumber(num, size);\n const sign = num[size] & 1 ? 255 : 0;\n let c = 0;\n for (let i = 0; i <= size; i++) {\n c = ((c & 1) << 8) | num[i];\n num[i] = (c >> 1) ^ sign;\n }\n }\n\n readString() {\n const len = this.readNumber(),\n buf = new Array(len);\n for (let i = 0; i < len; i++) {\n buf[i] = this.readNumber();\n }\n return String.fromCharCode(...buf);\n }\n}\n\nclass BinaryCMapReader {\n async process(data, cMap, extend) {\n const stream = new BinaryCMapStream(data);\n const header = stream.readByte();\n cMap.vertical = !!(header & 1);\n\n let useCMap = null;\n const start = new Uint8Array(MAX_NUM_SIZE);\n const end = new Uint8Array(MAX_NUM_SIZE);\n const char = new Uint8Array(MAX_NUM_SIZE);\n const charCode = new Uint8Array(MAX_NUM_SIZE);\n const tmp = new Uint8Array(MAX_NUM_SIZE);\n let code;\n\n let b;\n while ((b = stream.readByte()) >= 0) {\n const type = b >> 5;\n if (type === 7) {\n // metadata, e.g. comment or usecmap\n switch (b & 0x1f) {\n case 0:\n stream.readString(); // skipping comment\n break;\n case 1:\n useCMap = stream.readString();\n break;\n }\n continue;\n }\n const sequence = !!(b & 0x10);\n const dataSize = b & 15;\n\n if (dataSize + 1 > MAX_NUM_SIZE) {\n throw new Error(\"BinaryCMapReader.process: Invalid dataSize.\");\n }\n\n const ucs2DataSize = 1;\n const subitemsCount = stream.readNumber();\n switch (type) {\n case 0: // codespacerange\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(\n dataSize + 1,\n hexToInt(start, dataSize),\n hexToInt(end, dataSize)\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n cMap.addCodespaceRange(\n dataSize + 1,\n hexToInt(start, dataSize),\n hexToInt(end, dataSize)\n );\n }\n break;\n case 1: // notdefrange\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber(); // code\n // undefined range, skipping\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n stream.readNumber(); // code\n // nop\n }\n break;\n case 2: // cidchar\n stream.readHex(char, dataSize);\n code = stream.readNumber();\n cMap.mapOne(hexToInt(char, dataSize), code);\n for (let i = 1; i < subitemsCount; i++) {\n incHex(char, dataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, dataSize);\n addHex(char, tmp, dataSize);\n }\n code = stream.readSigned() + (code + 1);\n cMap.mapOne(hexToInt(char, dataSize), code);\n }\n break;\n case 3: // cidrange\n stream.readHex(start, dataSize);\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(\n hexToInt(start, dataSize),\n hexToInt(end, dataSize),\n code\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, dataSize);\n if (!sequence) {\n stream.readHexNumber(start, dataSize);\n addHex(start, end, dataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, dataSize);\n addHex(end, start, dataSize);\n code = stream.readNumber();\n cMap.mapCidRange(\n hexToInt(start, dataSize),\n hexToInt(end, dataSize),\n code\n );\n }\n break;\n case 4: // bfchar\n stream.readHex(char, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapOne(\n hexToInt(char, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(char, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(tmp, ucs2DataSize);\n addHex(char, tmp, ucs2DataSize);\n }\n incHex(charCode, dataSize);\n stream.readHexSigned(tmp, dataSize);\n addHex(charCode, tmp, dataSize);\n cMap.mapOne(\n hexToInt(char, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n }\n break;\n case 5: // bfrange\n stream.readHex(start, ucs2DataSize);\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(\n hexToInt(start, ucs2DataSize),\n hexToInt(end, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n for (let i = 1; i < subitemsCount; i++) {\n incHex(end, ucs2DataSize);\n if (!sequence) {\n stream.readHexNumber(start, ucs2DataSize);\n addHex(start, end, ucs2DataSize);\n } else {\n start.set(end);\n }\n stream.readHexNumber(end, ucs2DataSize);\n addHex(end, start, ucs2DataSize);\n stream.readHex(charCode, dataSize);\n cMap.mapBfRange(\n hexToInt(start, ucs2DataSize),\n hexToInt(end, ucs2DataSize),\n hexToStr(charCode, dataSize)\n );\n }\n break;\n default:\n throw new Error(`BinaryCMapReader.process - unknown type: ${type}`);\n }\n }\n\n if (useCMap) {\n return extend(useCMap);\n }\n return cMap;\n }\n}\n\nexport { BinaryCMapReader };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { Stream } from \"./stream.js\";\n\n// Lots of DecodeStreams are created whose buffers are never used. For these\n// we share a single empty buffer. This is (a) space-efficient and (b) avoids\n// having special cases that would be required if we used |null| for an empty\n// buffer.\nconst emptyBuffer = new Uint8Array(0);\n\n// Super class for the decoding streams.\nclass DecodeStream extends BaseStream {\n constructor(maybeMinBufferLength) {\n super();\n this._rawMinBufferLength = maybeMinBufferLength || 0;\n\n this.pos = 0;\n this.bufferLength = 0;\n this.eof = false;\n this.buffer = emptyBuffer;\n this.minBufferLength = 512;\n if (maybeMinBufferLength) {\n // Compute the first power of two that is as big as maybeMinBufferLength.\n while (this.minBufferLength < maybeMinBufferLength) {\n this.minBufferLength *= 2;\n }\n }\n }\n\n get isEmpty() {\n while (!this.eof && this.bufferLength === 0) {\n this.readBlock();\n }\n return this.bufferLength === 0;\n }\n\n ensureBuffer(requested) {\n const buffer = this.buffer;\n if (requested <= buffer.byteLength) {\n return buffer;\n }\n let size = this.minBufferLength;\n while (size < requested) {\n size *= 2;\n }\n const buffer2 = new Uint8Array(size);\n buffer2.set(buffer);\n return (this.buffer = buffer2);\n }\n\n getByte() {\n const pos = this.pos;\n while (this.bufferLength <= pos) {\n if (this.eof) {\n return -1;\n }\n this.readBlock();\n }\n return this.buffer[this.pos++];\n }\n\n getBytes(length) {\n const pos = this.pos;\n let end;\n\n if (length) {\n this.ensureBuffer(pos + length);\n end = pos + length;\n\n while (!this.eof && this.bufferLength < end) {\n this.readBlock();\n }\n const bufEnd = this.bufferLength;\n if (end > bufEnd) {\n end = bufEnd;\n }\n } else {\n while (!this.eof) {\n this.readBlock();\n }\n end = this.bufferLength;\n }\n\n this.pos = end;\n return this.buffer.subarray(pos, end);\n }\n\n reset() {\n this.pos = 0;\n }\n\n makeSubStream(start, length, dict = null) {\n if (length === undefined) {\n while (!this.eof) {\n this.readBlock();\n }\n } else {\n const end = start + length;\n while (this.bufferLength <= end && !this.eof) {\n this.readBlock();\n }\n }\n return new Stream(this.buffer, start, length, dict);\n }\n\n getBaseStreams() {\n return this.str ? this.str.getBaseStreams() : null;\n }\n}\n\nclass StreamsSequenceStream extends DecodeStream {\n constructor(streams, onError = null) {\n let maybeLength = 0;\n for (const stream of streams) {\n maybeLength +=\n stream instanceof DecodeStream\n ? stream._rawMinBufferLength\n : stream.length;\n }\n super(maybeLength);\n\n this.streams = streams;\n this._onError = onError;\n }\n\n readBlock() {\n const streams = this.streams;\n if (streams.length === 0) {\n this.eof = true;\n return;\n }\n const stream = streams.shift();\n let chunk;\n try {\n chunk = stream.getBytes();\n } catch (reason) {\n if (this._onError) {\n this._onError(reason, stream.dict?.objId);\n return;\n }\n throw reason;\n }\n const bufferLength = this.bufferLength;\n const newLength = bufferLength + chunk.length;\n const buffer = this.ensureBuffer(newLength);\n buffer.set(chunk, bufferLength);\n this.bufferLength = newLength;\n }\n\n getBaseStreams() {\n const baseStreamsBuf = [];\n for (const stream of this.streams) {\n const baseStreams = stream.getBaseStreams();\n if (baseStreams) {\n baseStreamsBuf.push(...baseStreams);\n }\n }\n return baseStreamsBuf.length > 0 ? baseStreamsBuf : null;\n }\n}\n\nexport { DecodeStream, StreamsSequenceStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\n\nclass Ascii85Stream extends DecodeStream {\n constructor(str, maybeLength) {\n // Most streams increase in size when decoded, but Ascii85 streams\n // typically shrink by ~20%.\n if (maybeLength) {\n maybeLength *= 0.8;\n }\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n this.input = new Uint8Array(5);\n }\n\n readBlock() {\n const TILDA_CHAR = 0x7e; // '~'\n const Z_LOWER_CHAR = 0x7a; // 'z'\n const EOF = -1;\n\n const str = this.str;\n\n let c = str.getByte();\n while (isWhiteSpace(c)) {\n c = str.getByte();\n }\n\n if (c === EOF || c === TILDA_CHAR) {\n this.eof = true;\n return;\n }\n\n const bufferLength = this.bufferLength;\n let buffer, i;\n\n // special code for z\n if (c === Z_LOWER_CHAR) {\n buffer = this.ensureBuffer(bufferLength + 4);\n for (i = 0; i < 4; ++i) {\n buffer[bufferLength + i] = 0;\n }\n this.bufferLength += 4;\n } else {\n const input = this.input;\n input[0] = c;\n for (i = 1; i < 5; ++i) {\n c = str.getByte();\n while (isWhiteSpace(c)) {\n c = str.getByte();\n }\n\n input[i] = c;\n\n if (c === EOF || c === TILDA_CHAR) {\n break;\n }\n }\n buffer = this.ensureBuffer(bufferLength + i - 1);\n this.bufferLength += i - 1;\n\n // partial ending;\n if (i < 5) {\n for (; i < 5; ++i) {\n input[i] = 0x21 + 84;\n }\n this.eof = true;\n }\n let t = 0;\n for (i = 0; i < 5; ++i) {\n t = t * 85 + (input[i] - 0x21);\n }\n\n for (i = 3; i >= 0; --i) {\n buffer[bufferLength + i] = t & 0xff;\n t >>= 8;\n }\n }\n }\n}\n\nexport { Ascii85Stream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass AsciiHexStream extends DecodeStream {\n constructor(str, maybeLength) {\n // Most streams increase in size when decoded, but AsciiHex streams shrink\n // by 50%.\n if (maybeLength) {\n maybeLength *= 0.5;\n }\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n\n this.firstDigit = -1;\n }\n\n readBlock() {\n const UPSTREAM_BLOCK_SIZE = 8000;\n const bytes = this.str.getBytes(UPSTREAM_BLOCK_SIZE);\n if (!bytes.length) {\n this.eof = true;\n return;\n }\n\n const maxDecodeLength = (bytes.length + 1) >> 1;\n const buffer = this.ensureBuffer(this.bufferLength + maxDecodeLength);\n let bufferLength = this.bufferLength;\n\n let firstDigit = this.firstDigit;\n for (const ch of bytes) {\n let digit;\n if (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) {\n digit = ch & 0x0f;\n } else if (\n (ch >= /* 'A' = */ 0x41 && ch <= /* 'Z' = */ 0x46) ||\n (ch >= /* 'a' = */ 0x61 && ch <= /* 'z' = */ 0x66)\n ) {\n digit = (ch & 0x0f) + 9;\n } else if (ch === /* '>' = */ 0x3e) {\n this.eof = true;\n break;\n } else {\n // Probably whitespace, ignoring.\n continue;\n }\n if (firstDigit < 0) {\n firstDigit = digit;\n } else {\n buffer[bufferLength++] = (firstDigit << 4) | digit;\n firstDigit = -1;\n }\n }\n if (firstDigit >= 0 && this.eof) {\n // incomplete byte\n buffer[bufferLength++] = firstDigit << 4;\n firstDigit = -1;\n }\n this.firstDigit = firstDigit;\n this.bufferLength = bufferLength;\n }\n}\n\nexport { AsciiHexStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The CCITT stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { FormatError, info } from \"../shared/util.js\";\n\n/**\n * @typedef {Object} CCITTFaxDecoderSource\n * @property {function} next - Method that return one byte of data for decoding,\n * or -1 when EOF is reached.\n */\n\nconst ccittEOL = -2;\nconst ccittEOF = -1;\nconst twoDimPass = 0;\nconst twoDimHoriz = 1;\nconst twoDimVert0 = 2;\nconst twoDimVertR1 = 3;\nconst twoDimVertL1 = 4;\nconst twoDimVertR2 = 5;\nconst twoDimVertL2 = 6;\nconst twoDimVertR3 = 7;\nconst twoDimVertL3 = 8;\n\n// prettier-ignore\nconst twoDimTable = [\n [-1, -1], [-1, -1], // 000000x\n [7, twoDimVertL3], // 0000010\n [7, twoDimVertR3], // 0000011\n [6, twoDimVertL2], [6, twoDimVertL2], // 000010x\n [6, twoDimVertR2], [6, twoDimVertR2], // 000011x\n [4, twoDimPass], [4, twoDimPass], // 0001xxx\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [4, twoDimPass], [4, twoDimPass],\n [3, twoDimHoriz], [3, twoDimHoriz], // 001xxxx\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimHoriz], [3, twoDimHoriz],\n [3, twoDimVertL1], [3, twoDimVertL1], // 010xxxx\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertL1], [3, twoDimVertL1],\n [3, twoDimVertR1], [3, twoDimVertR1], // 011xxxx\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [3, twoDimVertR1], [3, twoDimVertR1],\n [1, twoDimVert0], [1, twoDimVert0], // 1xxxxxx\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0],\n [1, twoDimVert0], [1, twoDimVert0]\n];\n\n// prettier-ignore\nconst whiteTable1 = [\n [-1, -1], // 00000\n [12, ccittEOL], // 00001\n [-1, -1], [-1, -1], // 0001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 011xx\n [11, 1792], [11, 1792], // 1000x\n [12, 1984], // 10010\n [12, 2048], // 10011\n [12, 2112], // 10100\n [12, 2176], // 10101\n [12, 2240], // 10110\n [12, 2304], // 10111\n [11, 1856], [11, 1856], // 1100x\n [11, 1920], [11, 1920], // 1101x\n [12, 2368], // 11100\n [12, 2432], // 11101\n [12, 2496], // 11110\n [12, 2560] // 11111\n];\n\n// prettier-ignore\nconst whiteTable2 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000000xx\n [8, 29], [8, 29], // 00000010x\n [8, 30], [8, 30], // 00000011x\n [8, 45], [8, 45], // 00000100x\n [8, 46], [8, 46], // 00000101x\n [7, 22], [7, 22], [7, 22], [7, 22], // 0000011xx\n [7, 23], [7, 23], [7, 23], [7, 23], // 0000100xx\n [8, 47], [8, 47], // 00001010x\n [8, 48], [8, 48], // 00001011x\n [6, 13], [6, 13], [6, 13], [6, 13], // 000011xxx\n [6, 13], [6, 13], [6, 13], [6, 13],\n [7, 20], [7, 20], [7, 20], [7, 20], // 0001000xx\n [8, 33], [8, 33], // 00010010x\n [8, 34], [8, 34], // 00010011x\n [8, 35], [8, 35], // 00010100x\n [8, 36], [8, 36], // 00010101x\n [8, 37], [8, 37], // 00010110x\n [8, 38], [8, 38], // 00010111x\n [7, 19], [7, 19], [7, 19], [7, 19], // 0001100xx\n [8, 31], [8, 31], // 00011010x\n [8, 32], [8, 32], // 00011011x\n [6, 1], [6, 1], [6, 1], [6, 1], // 000111xxx\n [6, 1], [6, 1], [6, 1], [6, 1],\n [6, 12], [6, 12], [6, 12], [6, 12], // 001000xxx\n [6, 12], [6, 12], [6, 12], [6, 12],\n [8, 53], [8, 53], // 00100100x\n [8, 54], [8, 54], // 00100101x\n [7, 26], [7, 26], [7, 26], [7, 26], // 0010011xx\n [8, 39], [8, 39], // 00101000x\n [8, 40], [8, 40], // 00101001x\n [8, 41], [8, 41], // 00101010x\n [8, 42], [8, 42], // 00101011x\n [8, 43], [8, 43], // 00101100x\n [8, 44], [8, 44], // 00101101x\n [7, 21], [7, 21], [7, 21], [7, 21], // 0010111xx\n [7, 28], [7, 28], [7, 28], [7, 28], // 0011000xx\n [8, 61], [8, 61], // 00110010x\n [8, 62], [8, 62], // 00110011x\n [8, 63], [8, 63], // 00110100x\n [8, 0], [8, 0], // 00110101x\n [8, 320], [8, 320], // 00110110x\n [8, 384], [8, 384], // 00110111x\n [5, 10], [5, 10], [5, 10], [5, 10], // 00111xxxx\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 10], [5, 10], [5, 10], [5, 10],\n [5, 11], [5, 11], [5, 11], [5, 11], // 01000xxxx\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [5, 11], [5, 11], [5, 11], [5, 11],\n [7, 27], [7, 27], [7, 27], [7, 27], // 0100100xx\n [8, 59], [8, 59], // 01001010x\n [8, 60], [8, 60], // 01001011x\n [9, 1472], // 010011000\n [9, 1536], // 010011001\n [9, 1600], // 010011010\n [9, 1728], // 010011011\n [7, 18], [7, 18], [7, 18], [7, 18], // 0100111xx\n [7, 24], [7, 24], [7, 24], [7, 24], // 0101000xx\n [8, 49], [8, 49], // 01010010x\n [8, 50], [8, 50], // 01010011x\n [8, 51], [8, 51], // 01010100x\n [8, 52], [8, 52], // 01010101x\n [7, 25], [7, 25], [7, 25], [7, 25], // 0101011xx\n [8, 55], [8, 55], // 01011000x\n [8, 56], [8, 56], // 01011001x\n [8, 57], [8, 57], // 01011010x\n [8, 58], [8, 58], // 01011011x\n [6, 192], [6, 192], [6, 192], [6, 192], // 010111xxx\n [6, 192], [6, 192], [6, 192], [6, 192],\n [6, 1664], [6, 1664], [6, 1664], [6, 1664], // 011000xxx\n [6, 1664], [6, 1664], [6, 1664], [6, 1664],\n [8, 448], [8, 448], // 01100100x\n [8, 512], [8, 512], // 01100101x\n [9, 704], // 011001100\n [9, 768], // 011001101\n [8, 640], [8, 640], // 01100111x\n [8, 576], [8, 576], // 01101000x\n [9, 832], // 011010010\n [9, 896], // 011010011\n [9, 960], // 011010100\n [9, 1024], // 011010101\n [9, 1088], // 011010110\n [9, 1152], // 011010111\n [9, 1216], // 011011000\n [9, 1280], // 011011001\n [9, 1344], // 011011010\n [9, 1408], // 011011011\n [7, 256], [7, 256], [7, 256], [7, 256], // 0110111xx\n [4, 2], [4, 2], [4, 2], [4, 2], // 0111xxxxx\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 2], [4, 2], [4, 2], [4, 2],\n [4, 3], [4, 3], [4, 3], [4, 3], // 1000xxxxx\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [4, 3], [4, 3], [4, 3], [4, 3],\n [5, 128], [5, 128], [5, 128], [5, 128], // 10010xxxx\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 128], [5, 128], [5, 128], [5, 128],\n [5, 8], [5, 8], [5, 8], [5, 8], // 10011xxxx\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 8], [5, 8], [5, 8], [5, 8],\n [5, 9], [5, 9], [5, 9], [5, 9], // 10100xxxx\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [5, 9], [5, 9], [5, 9], [5, 9],\n [6, 16], [6, 16], [6, 16], [6, 16], // 101010xxx\n [6, 16], [6, 16], [6, 16], [6, 16],\n [6, 17], [6, 17], [6, 17], [6, 17], // 101011xxx\n [6, 17], [6, 17], [6, 17], [6, 17],\n [4, 4], [4, 4], [4, 4], [4, 4], // 1011xxxxx\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 4], [4, 4], [4, 4], [4, 4],\n [4, 5], [4, 5], [4, 5], [4, 5], // 1100xxxxx\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [4, 5], [4, 5], [4, 5], [4, 5],\n [6, 14], [6, 14], [6, 14], [6, 14], // 110100xxx\n [6, 14], [6, 14], [6, 14], [6, 14],\n [6, 15], [6, 15], [6, 15], [6, 15], // 110101xxx\n [6, 15], [6, 15], [6, 15], [6, 15],\n [5, 64], [5, 64], [5, 64], [5, 64], // 11011xxxx\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [5, 64], [5, 64], [5, 64], [5, 64],\n [4, 6], [4, 6], [4, 6], [4, 6], // 1110xxxxx\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 6], [4, 6], [4, 6], [4, 6],\n [4, 7], [4, 7], [4, 7], [4, 7], // 1111xxxxx\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7],\n [4, 7], [4, 7], [4, 7], [4, 7]\n];\n\n// prettier-ignore\nconst blackTable1 = [\n [-1, -1], [-1, -1], // 000000000000x\n [12, ccittEOL], [12, ccittEOL], // 000000000001x\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000001xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000010xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000011xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000100xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000101xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000110xx\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 00000000111xx\n [11, 1792], [11, 1792], [11, 1792], [11, 1792], // 00000001000xx\n [12, 1984], [12, 1984], // 000000010010x\n [12, 2048], [12, 2048], // 000000010011x\n [12, 2112], [12, 2112], // 000000010100x\n [12, 2176], [12, 2176], // 000000010101x\n [12, 2240], [12, 2240], // 000000010110x\n [12, 2304], [12, 2304], // 000000010111x\n [11, 1856], [11, 1856], [11, 1856], [11, 1856], // 00000001100xx\n [11, 1920], [11, 1920], [11, 1920], [11, 1920], // 00000001101xx\n [12, 2368], [12, 2368], // 000000011100x\n [12, 2432], [12, 2432], // 000000011101x\n [12, 2496], [12, 2496], // 000000011110x\n [12, 2560], [12, 2560], // 000000011111x\n [10, 18], [10, 18], [10, 18], [10, 18], // 0000001000xxx\n [10, 18], [10, 18], [10, 18], [10, 18],\n [12, 52], [12, 52], // 000000100100x\n [13, 640], // 0000001001010\n [13, 704], // 0000001001011\n [13, 768], // 0000001001100\n [13, 832], // 0000001001101\n [12, 55], [12, 55], // 000000100111x\n [12, 56], [12, 56], // 000000101000x\n [13, 1280], // 0000001010010\n [13, 1344], // 0000001010011\n [13, 1408], // 0000001010100\n [13, 1472], // 0000001010101\n [12, 59], [12, 59], // 000000101011x\n [12, 60], [12, 60], // 000000101100x\n [13, 1536], // 0000001011010\n [13, 1600], // 0000001011011\n [11, 24], [11, 24], [11, 24], [11, 24], // 00000010111xx\n [11, 25], [11, 25], [11, 25], [11, 25], // 00000011000xx\n [13, 1664], // 0000001100100\n [13, 1728], // 0000001100101\n [12, 320], [12, 320], // 000000110011x\n [12, 384], [12, 384], // 000000110100x\n [12, 448], [12, 448], // 000000110101x\n [13, 512], // 0000001101100\n [13, 576], // 0000001101101\n [12, 53], [12, 53], // 000000110111x\n [12, 54], [12, 54], // 000000111000x\n [13, 896], // 0000001110010\n [13, 960], // 0000001110011\n [13, 1024], // 0000001110100\n [13, 1088], // 0000001110101\n [13, 1152], // 0000001110110\n [13, 1216], // 0000001110111\n [10, 64], [10, 64], [10, 64], [10, 64], // 0000001111xxx\n [10, 64], [10, 64], [10, 64], [10, 64]\n];\n\n// prettier-ignore\nconst blackTable2 = [\n [8, 13], [8, 13], [8, 13], [8, 13], // 00000100xxxx\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [8, 13], [8, 13], [8, 13], [8, 13],\n [11, 23], [11, 23], // 00000101000x\n [12, 50], // 000001010010\n [12, 51], // 000001010011\n [12, 44], // 000001010100\n [12, 45], // 000001010101\n [12, 46], // 000001010110\n [12, 47], // 000001010111\n [12, 57], // 000001011000\n [12, 58], // 000001011001\n [12, 61], // 000001011010\n [12, 256], // 000001011011\n [10, 16], [10, 16], [10, 16], [10, 16], // 0000010111xx\n [10, 17], [10, 17], [10, 17], [10, 17], // 0000011000xx\n [12, 48], // 000001100100\n [12, 49], // 000001100101\n [12, 62], // 000001100110\n [12, 63], // 000001100111\n [12, 30], // 000001101000\n [12, 31], // 000001101001\n [12, 32], // 000001101010\n [12, 33], // 000001101011\n [12, 40], // 000001101100\n [12, 41], // 000001101101\n [11, 22], [11, 22], // 00000110111x\n [8, 14], [8, 14], [8, 14], [8, 14], // 00000111xxxx\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [8, 14], [8, 14], [8, 14], [8, 14],\n [7, 10], [7, 10], [7, 10], [7, 10], // 0000100xxxxx\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 10], [7, 10], [7, 10], [7, 10],\n [7, 11], [7, 11], [7, 11], [7, 11], // 0000101xxxxx\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [7, 11], [7, 11], [7, 11], [7, 11],\n [9, 15], [9, 15], [9, 15], [9, 15], // 000011000xxx\n [9, 15], [9, 15], [9, 15], [9, 15],\n [12, 128], // 000011001000\n [12, 192], // 000011001001\n [12, 26], // 000011001010\n [12, 27], // 000011001011\n [12, 28], // 000011001100\n [12, 29], // 000011001101\n [11, 19], [11, 19], // 00001100111x\n [11, 20], [11, 20], // 00001101000x\n [12, 34], // 000011010010\n [12, 35], // 000011010011\n [12, 36], // 000011010100\n [12, 37], // 000011010101\n [12, 38], // 000011010110\n [12, 39], // 000011010111\n [11, 21], [11, 21], // 00001101100x\n [12, 42], // 000011011010\n [12, 43], // 000011011011\n [10, 0], [10, 0], [10, 0], [10, 0], // 0000110111xx\n [7, 12], [7, 12], [7, 12], [7, 12], // 0000111xxxxx\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12],\n [7, 12], [7, 12], [7, 12], [7, 12]\n];\n\n// prettier-ignore\nconst blackTable3 = [\n [-1, -1], [-1, -1], [-1, -1], [-1, -1], // 0000xx\n [6, 9], // 000100\n [6, 8], // 000101\n [5, 7], [5, 7], // 00011x\n [4, 6], [4, 6], [4, 6], [4, 6], // 0010xx\n [4, 5], [4, 5], [4, 5], [4, 5], // 0011xx\n [3, 1], [3, 1], [3, 1], [3, 1], // 010xxx\n [3, 1], [3, 1], [3, 1], [3, 1],\n [3, 4], [3, 4], [3, 4], [3, 4], // 011xxx\n [3, 4], [3, 4], [3, 4], [3, 4],\n [2, 3], [2, 3], [2, 3], [2, 3], // 10xxxx\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 3], [2, 3], [2, 3], [2, 3],\n [2, 2], [2, 2], [2, 2], [2, 2], // 11xxxx\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2],\n [2, 2], [2, 2], [2, 2], [2, 2]\n];\n\n/**\n * @param {CCITTFaxDecoderSource} source - The data which should be decoded.\n * @param {Object} [options] - Decoding options.\n */\nclass CCITTFaxDecoder {\n constructor(source, options = {}) {\n if (!source || typeof source.next !== \"function\") {\n throw new Error('CCITTFaxDecoder - invalid \"source\" parameter.');\n }\n this.source = source;\n this.eof = false;\n\n this.encoding = options.K || 0;\n this.eoline = options.EndOfLine || false;\n this.byteAlign = options.EncodedByteAlign || false;\n this.columns = options.Columns || 1728;\n this.rows = options.Rows || 0;\n this.eoblock = options.EndOfBlock ?? true;\n this.black = options.BlackIs1 || false;\n\n this.codingLine = new Uint32Array(this.columns + 1);\n this.refLine = new Uint32Array(this.columns + 2);\n\n this.codingLine[0] = this.columns;\n this.codingPos = 0;\n\n this.row = 0;\n this.nextLine2D = this.encoding < 0;\n this.inputBits = 0;\n this.inputBuf = 0;\n this.outputBits = 0;\n this.rowsDone = false;\n\n let code1;\n while ((code1 = this._lookBits(12)) === 0) {\n this._eatBits(1);\n }\n if (code1 === 1) {\n this._eatBits(12);\n }\n if (this.encoding > 0) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n }\n\n readNextChar() {\n if (this.eof) {\n return -1;\n }\n const refLine = this.refLine;\n const codingLine = this.codingLine;\n const columns = this.columns;\n\n let refPos, blackPixels, bits, i;\n\n if (this.outputBits === 0) {\n if (this.rowsDone) {\n this.eof = true;\n }\n if (this.eof) {\n return -1;\n }\n this.err = false;\n\n let code1, code2, code3;\n if (this.nextLine2D) {\n for (i = 0; codingLine[i] < columns; ++i) {\n refLine[i] = codingLine[i];\n }\n refLine[i++] = columns;\n refLine[i] = columns;\n codingLine[0] = 0;\n this.codingPos = 0;\n refPos = 0;\n blackPixels = 0;\n\n while (codingLine[this.codingPos] < columns) {\n code1 = this._getTwoDimCode();\n switch (code1) {\n case twoDimPass:\n this._addPixels(refLine[refPos + 1], blackPixels);\n if (refLine[refPos + 1] < columns) {\n refPos += 2;\n }\n break;\n case twoDimHoriz:\n code1 = code2 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n do {\n code2 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n if (codingLine[this.codingPos] < columns) {\n this._addPixels(\n codingLine[this.codingPos] + code2,\n blackPixels ^ 1\n );\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n break;\n case twoDimVertR3:\n this._addPixels(refLine[refPos] + 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR2:\n this._addPixels(refLine[refPos] + 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertR1:\n this._addPixels(refLine[refPos] + 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVert0:\n this._addPixels(refLine[refPos], blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n ++refPos;\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL3:\n this._addPixelsNeg(refLine[refPos] - 3, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL2:\n this._addPixelsNeg(refLine[refPos] - 2, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case twoDimVertL1:\n this._addPixelsNeg(refLine[refPos] - 1, blackPixels);\n blackPixels ^= 1;\n if (codingLine[this.codingPos] < columns) {\n if (refPos > 0) {\n --refPos;\n } else {\n ++refPos;\n }\n while (\n refLine[refPos] <= codingLine[this.codingPos] &&\n refLine[refPos] < columns\n ) {\n refPos += 2;\n }\n }\n break;\n case ccittEOF:\n this._addPixels(columns, 0);\n this.eof = true;\n break;\n default:\n info(\"bad 2d code\");\n this._addPixels(columns, 0);\n this.err = true;\n }\n }\n } else {\n codingLine[0] = 0;\n this.codingPos = 0;\n blackPixels = 0;\n while (codingLine[this.codingPos] < columns) {\n code1 = 0;\n if (blackPixels) {\n do {\n code1 += code3 = this._getBlackCode();\n } while (code3 >= 64);\n } else {\n do {\n code1 += code3 = this._getWhiteCode();\n } while (code3 >= 64);\n }\n this._addPixels(codingLine[this.codingPos] + code1, blackPixels);\n blackPixels ^= 1;\n }\n }\n\n let gotEOL = false;\n\n if (this.byteAlign) {\n this.inputBits &= ~7;\n }\n\n if (!this.eoblock && this.row === this.rows - 1) {\n this.rowsDone = true;\n } else {\n code1 = this._lookBits(12);\n if (this.eoline) {\n while (code1 !== ccittEOF && code1 !== 1) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n } else {\n while (code1 === 0) {\n this._eatBits(1);\n code1 = this._lookBits(12);\n }\n }\n if (code1 === 1) {\n this._eatBits(12);\n gotEOL = true;\n } else if (code1 === ccittEOF) {\n this.eof = true;\n }\n }\n\n if (!this.eof && this.encoding > 0 && !this.rowsDone) {\n this.nextLine2D = !this._lookBits(1);\n this._eatBits(1);\n }\n\n if (this.eoblock && gotEOL && this.byteAlign) {\n code1 = this._lookBits(12);\n if (code1 === 1) {\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n if (this.encoding >= 0) {\n for (i = 0; i < 4; ++i) {\n code1 = this._lookBits(12);\n if (code1 !== 1) {\n info(\"bad rtc code: \" + code1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._lookBits(1);\n this._eatBits(1);\n }\n }\n }\n this.eof = true;\n }\n } else if (this.err && this.eoline) {\n while (true) {\n code1 = this._lookBits(13);\n if (code1 === ccittEOF) {\n this.eof = true;\n return -1;\n }\n if (code1 >> 1 === 1) {\n break;\n }\n this._eatBits(1);\n }\n this._eatBits(12);\n if (this.encoding > 0) {\n this._eatBits(1);\n this.nextLine2D = !(code1 & 1);\n }\n }\n\n this.outputBits =\n codingLine[0] > 0\n ? codingLine[(this.codingPos = 0)]\n : codingLine[(this.codingPos = 1)];\n this.row++;\n }\n\n let c;\n if (this.outputBits >= 8) {\n c = this.codingPos & 1 ? 0 : 0xff;\n this.outputBits -= 8;\n if (this.outputBits === 0 && codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits =\n codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n }\n } else {\n bits = 8;\n c = 0;\n do {\n if (typeof this.outputBits !== \"number\") {\n throw new FormatError(\n 'Invalid /CCITTFaxDecode data, \"outputBits\" must be a number.'\n );\n }\n\n if (this.outputBits > bits) {\n c <<= bits;\n if (!(this.codingPos & 1)) {\n c |= 0xff >> (8 - bits);\n }\n this.outputBits -= bits;\n bits = 0;\n } else {\n c <<= this.outputBits;\n if (!(this.codingPos & 1)) {\n c |= 0xff >> (8 - this.outputBits);\n }\n bits -= this.outputBits;\n this.outputBits = 0;\n if (codingLine[this.codingPos] < columns) {\n this.codingPos++;\n this.outputBits =\n codingLine[this.codingPos] - codingLine[this.codingPos - 1];\n } else if (bits > 0) {\n c <<= bits;\n bits = 0;\n }\n }\n } while (bits);\n }\n if (this.black) {\n c ^= 0xff;\n }\n return c;\n }\n\n /**\n * @private\n */\n _addPixels(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n info(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n if ((codingPos & 1) ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n }\n this.codingPos = codingPos;\n }\n\n /**\n * @private\n */\n _addPixelsNeg(a1, blackPixels) {\n const codingLine = this.codingLine;\n let codingPos = this.codingPos;\n\n if (a1 > codingLine[codingPos]) {\n if (a1 > this.columns) {\n info(\"row is wrong length\");\n this.err = true;\n a1 = this.columns;\n }\n if ((codingPos & 1) ^ blackPixels) {\n ++codingPos;\n }\n\n codingLine[codingPos] = a1;\n } else if (a1 < codingLine[codingPos]) {\n if (a1 < 0) {\n info(\"invalid code\");\n this.err = true;\n a1 = 0;\n }\n while (codingPos > 0 && a1 < codingLine[codingPos - 1]) {\n --codingPos;\n }\n codingLine[codingPos] = a1;\n }\n\n this.codingPos = codingPos;\n }\n\n /**\n * This function returns the code found from the table.\n * The start and end parameters set the boundaries for searching the table.\n * The limit parameter is optional. Function returns an array with three\n * values. The first array element indicates whether a valid code is being\n * returned. The second array element is the actual code. The third array\n * element indicates whether EOF was reached.\n * @private\n */\n _findTableCode(start, end, table, limit) {\n const limitValue = limit || 0;\n for (let i = start; i <= end; ++i) {\n let code = this._lookBits(i);\n if (code === ccittEOF) {\n return [true, 1, false];\n }\n if (i < end) {\n code <<= end - i;\n }\n if (!limitValue || code >= limitValue) {\n const p = table[code - limitValue];\n if (p[0] === i) {\n this._eatBits(i);\n return [true, p[1], true];\n }\n }\n }\n return [false, 0, false];\n }\n\n /**\n * @private\n */\n _getTwoDimCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(7);\n p = twoDimTable[code];\n if (p?.[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n const result = this._findTableCode(1, 7, twoDimTable);\n if (result[0] && result[2]) {\n return result[1];\n }\n }\n info(\"Bad two dim code\");\n return ccittEOF;\n }\n\n /**\n * @private\n */\n _getWhiteCode() {\n let code = 0;\n let p;\n if (this.eoblock) {\n code = this._lookBits(12);\n if (code === ccittEOF) {\n return 1;\n }\n\n p = code >> 5 === 0 ? whiteTable1[code] : whiteTable2[code >> 3];\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(1, 9, whiteTable2);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(11, 12, whiteTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info(\"bad white code\");\n this._eatBits(1);\n return 1;\n }\n\n /**\n * @private\n */\n _getBlackCode() {\n let code, p;\n if (this.eoblock) {\n code = this._lookBits(13);\n if (code === ccittEOF) {\n return 1;\n }\n if (code >> 7 === 0) {\n p = blackTable1[code];\n } else if (code >> 9 === 0 && code >> 7 !== 0) {\n p = blackTable2[(code >> 1) - 64];\n } else {\n p = blackTable3[code >> 7];\n }\n\n if (p[0] > 0) {\n this._eatBits(p[0]);\n return p[1];\n }\n } else {\n let result = this._findTableCode(2, 6, blackTable3);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(7, 12, blackTable2, 64);\n if (result[0]) {\n return result[1];\n }\n\n result = this._findTableCode(10, 13, blackTable1);\n if (result[0]) {\n return result[1];\n }\n }\n info(\"bad black code\");\n this._eatBits(1);\n return 1;\n }\n\n /**\n * @private\n */\n _lookBits(n) {\n let c;\n while (this.inputBits < n) {\n if ((c = this.source.next()) === -1) {\n if (this.inputBits === 0) {\n return ccittEOF;\n }\n return (this.inputBuf << (n - this.inputBits)) & (0xffff >> (16 - n));\n }\n this.inputBuf = (this.inputBuf << 8) | c;\n this.inputBits += 8;\n }\n return (this.inputBuf >> (this.inputBits - n)) & (0xffff >> (16 - n));\n }\n\n /**\n * @private\n */\n _eatBits(n) {\n if ((this.inputBits -= n) < 0) {\n this.inputBits = 0;\n }\n }\n}\n\nexport { CCITTFaxDecoder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\n\nclass CCITTFaxStream extends DecodeStream {\n constructor(str, maybeLength, params) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n\n if (!(params instanceof Dict)) {\n params = Dict.empty;\n }\n\n const source = {\n next() {\n return str.getByte();\n },\n };\n this.ccittFaxDecoder = new CCITTFaxDecoder(source, {\n K: params.get(\"K\"),\n EndOfLine: params.get(\"EndOfLine\"),\n EncodedByteAlign: params.get(\"EncodedByteAlign\"),\n Columns: params.get(\"Columns\"),\n Rows: params.get(\"Rows\"),\n EndOfBlock: params.get(\"EndOfBlock\"),\n BlackIs1: params.get(\"BlackIs1\"),\n });\n }\n\n readBlock() {\n while (!this.eof) {\n const c = this.ccittFaxDecoder.readNextChar();\n if (c === -1) {\n this.eof = true;\n return;\n }\n this.ensureBuffer(this.bufferLength + 1);\n this.buffer[this.bufferLength++] = c;\n }\n }\n}\n\nexport { CCITTFaxStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* Copyright 1996-2003 Glyph & Cog, LLC\n *\n * The flate stream implementation contained in this file is a JavaScript port\n * of XPDF's implementation, made available under the Apache 2.0 open source\n * license.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { FormatError } from \"../shared/util.js\";\n\nconst codeLenCodeMap = new Int32Array([\n 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15,\n]);\n\nconst lengthDecode = new Int32Array([\n 0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a,\n 0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f,\n 0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073,\n 0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102,\n]);\n\nconst distDecode = new Int32Array([\n 0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d,\n 0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1,\n 0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01,\n 0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001,\n]);\n\nconst fixedLitCodeTab = [\n new Int32Array([\n 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0,\n 0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0,\n 0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0,\n 0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0,\n 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8,\n 0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8,\n 0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8,\n 0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8,\n 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4,\n 0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4,\n 0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4,\n 0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4,\n 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc,\n 0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec,\n 0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc,\n 0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc,\n 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2,\n 0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2,\n 0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2,\n 0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2,\n 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca,\n 0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea,\n 0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da,\n 0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa,\n 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6,\n 0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6,\n 0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6,\n 0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6,\n 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce,\n 0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee,\n 0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de,\n 0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe,\n 0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1,\n 0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1,\n 0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1,\n 0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1,\n 0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9,\n 0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9,\n 0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9,\n 0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9,\n 0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5,\n 0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5,\n 0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5,\n 0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5,\n 0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd,\n 0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed,\n 0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd,\n 0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd,\n 0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3,\n 0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3,\n 0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3,\n 0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3,\n 0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb,\n 0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb,\n 0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db,\n 0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb,\n 0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7,\n 0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7,\n 0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7,\n 0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7,\n 0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf,\n 0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef,\n 0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df,\n 0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff,\n ]),\n 9,\n];\n\nconst fixedDistCodeTab = [\n new Int32Array([\n 0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c,\n 0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000,\n 0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d,\n 0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000,\n ]),\n 5,\n];\n\nclass FlateStream extends DecodeStream {\n constructor(str, maybeLength) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n\n const cmf = str.getByte();\n const flg = str.getByte();\n if (cmf === -1 || flg === -1) {\n throw new FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`);\n }\n if ((cmf & 0x0f) !== 0x08) {\n throw new FormatError(\n `Unknown compression method in flate stream: ${cmf}, ${flg}`\n );\n }\n if (((cmf << 8) + flg) % 31 !== 0) {\n throw new FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);\n }\n if (flg & 0x20) {\n throw new FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`);\n }\n\n this.codeSize = 0;\n this.codeBuf = 0;\n }\n\n getBits(bits) {\n const str = this.str;\n let codeSize = this.codeSize;\n let codeBuf = this.codeBuf;\n\n let b;\n while (codeSize < bits) {\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad encoding in flate stream\");\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n b = codeBuf & ((1 << bits) - 1);\n this.codeBuf = codeBuf >> bits;\n this.codeSize = codeSize -= bits;\n\n return b;\n }\n\n getCode(table) {\n const str = this.str;\n const codes = table[0];\n const maxLen = table[1];\n let codeSize = this.codeSize;\n let codeBuf = this.codeBuf;\n\n let b;\n while (codeSize < maxLen) {\n if ((b = str.getByte()) === -1) {\n // premature end of stream. code might however still be valid.\n // codeSize < codeLen check below guards against incomplete codeVal.\n break;\n }\n codeBuf |= b << codeSize;\n codeSize += 8;\n }\n const code = codes[codeBuf & ((1 << maxLen) - 1)];\n const codeLen = code >> 16;\n const codeVal = code & 0xffff;\n if (codeLen < 1 || codeSize < codeLen) {\n throw new FormatError(\"Bad encoding in flate stream\");\n }\n this.codeBuf = codeBuf >> codeLen;\n this.codeSize = codeSize - codeLen;\n return codeVal;\n }\n\n generateHuffmanTable(lengths) {\n const n = lengths.length;\n\n // find max code length\n let maxLen = 0;\n let i;\n for (i = 0; i < n; ++i) {\n if (lengths[i] > maxLen) {\n maxLen = lengths[i];\n }\n }\n\n // build the table\n const size = 1 << maxLen;\n const codes = new Int32Array(size);\n for (\n let len = 1, code = 0, skip = 2;\n len <= maxLen;\n ++len, code <<= 1, skip <<= 1\n ) {\n for (let val = 0; val < n; ++val) {\n if (lengths[val] === len) {\n // bit-reverse the code\n let code2 = 0;\n let t = code;\n for (i = 0; i < len; ++i) {\n code2 = (code2 << 1) | (t & 1);\n t >>= 1;\n }\n\n // fill the table entries\n for (i = code2; i < size; i += skip) {\n codes[i] = (len << 16) | val;\n }\n ++code;\n }\n }\n }\n\n return [codes, maxLen];\n }\n\n readBlock() {\n let buffer, len;\n const str = this.str;\n // read block header\n let hdr = this.getBits(3);\n if (hdr & 1) {\n this.eof = true;\n }\n hdr >>= 1;\n\n if (hdr === 0) {\n // uncompressed block\n let b;\n\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n let blockLen = b;\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n blockLen |= b << 8;\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n let check = b;\n if ((b = str.getByte()) === -1) {\n throw new FormatError(\"Bad block header in flate stream\");\n }\n check |= b << 8;\n if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {\n // Ignoring error for bad \"empty\" block (see issue 1277)\n throw new FormatError(\"Bad uncompressed block length in flate stream\");\n }\n\n this.codeBuf = 0;\n this.codeSize = 0;\n\n const bufferLength = this.bufferLength,\n end = bufferLength + blockLen;\n buffer = this.ensureBuffer(end);\n this.bufferLength = end;\n\n if (blockLen === 0) {\n if (str.peekByte() === -1) {\n this.eof = true;\n }\n } else {\n const block = str.getBytes(blockLen);\n buffer.set(block, bufferLength);\n if (block.length < blockLen) {\n this.eof = true;\n }\n }\n return;\n }\n\n let litCodeTable;\n let distCodeTable;\n if (hdr === 1) {\n // compressed block, fixed codes\n litCodeTable = fixedLitCodeTab;\n distCodeTable = fixedDistCodeTab;\n } else if (hdr === 2) {\n // compressed block, dynamic codes\n const numLitCodes = this.getBits(5) + 257;\n const numDistCodes = this.getBits(5) + 1;\n const numCodeLenCodes = this.getBits(4) + 4;\n\n // build the code lengths code table\n const codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length);\n\n let i;\n for (i = 0; i < numCodeLenCodes; ++i) {\n codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3);\n }\n const codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths);\n\n // build the literal and distance code tables\n len = 0;\n i = 0;\n const codes = numLitCodes + numDistCodes;\n const codeLengths = new Uint8Array(codes);\n let bitsLength, bitsOffset, what;\n while (i < codes) {\n const code = this.getCode(codeLenCodeTab);\n if (code === 16) {\n bitsLength = 2;\n bitsOffset = 3;\n what = len;\n } else if (code === 17) {\n bitsLength = 3;\n bitsOffset = 3;\n what = len = 0;\n } else if (code === 18) {\n bitsLength = 7;\n bitsOffset = 11;\n what = len = 0;\n } else {\n codeLengths[i++] = len = code;\n continue;\n }\n\n let repeatLength = this.getBits(bitsLength) + bitsOffset;\n while (repeatLength-- > 0) {\n codeLengths[i++] = what;\n }\n }\n\n litCodeTable = this.generateHuffmanTable(\n codeLengths.subarray(0, numLitCodes)\n );\n distCodeTable = this.generateHuffmanTable(\n codeLengths.subarray(numLitCodes, codes)\n );\n } else {\n throw new FormatError(\"Unknown block type in flate stream\");\n }\n\n buffer = this.buffer;\n let limit = buffer ? buffer.length : 0;\n let pos = this.bufferLength;\n while (true) {\n let code1 = this.getCode(litCodeTable);\n if (code1 < 256) {\n if (pos + 1 >= limit) {\n buffer = this.ensureBuffer(pos + 1);\n limit = buffer.length;\n }\n buffer[pos++] = code1;\n continue;\n }\n if (code1 === 256) {\n this.bufferLength = pos;\n return;\n }\n code1 -= 257;\n code1 = lengthDecode[code1];\n let code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n len = (code1 & 0xffff) + code2;\n code1 = this.getCode(distCodeTable);\n code1 = distDecode[code1];\n code2 = code1 >> 16;\n if (code2 > 0) {\n code2 = this.getBits(code2);\n }\n const dist = (code1 & 0xffff) + code2;\n if (pos + len >= limit) {\n buffer = this.ensureBuffer(pos + len);\n limit = buffer.length;\n }\n for (let k = 0; k < len; ++k, ++pos) {\n buffer[pos] = buffer[pos - dist];\n }\n }\n }\n}\n\nexport { FlateStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Table C-2\nconst QeTable = [\n { qe: 0x5601, nmps: 1, nlps: 1, switchFlag: 1 },\n { qe: 0x3401, nmps: 2, nlps: 6, switchFlag: 0 },\n { qe: 0x1801, nmps: 3, nlps: 9, switchFlag: 0 },\n { qe: 0x0ac1, nmps: 4, nlps: 12, switchFlag: 0 },\n { qe: 0x0521, nmps: 5, nlps: 29, switchFlag: 0 },\n { qe: 0x0221, nmps: 38, nlps: 33, switchFlag: 0 },\n { qe: 0x5601, nmps: 7, nlps: 6, switchFlag: 1 },\n { qe: 0x5401, nmps: 8, nlps: 14, switchFlag: 0 },\n { qe: 0x4801, nmps: 9, nlps: 14, switchFlag: 0 },\n { qe: 0x3801, nmps: 10, nlps: 14, switchFlag: 0 },\n { qe: 0x3001, nmps: 11, nlps: 17, switchFlag: 0 },\n { qe: 0x2401, nmps: 12, nlps: 18, switchFlag: 0 },\n { qe: 0x1c01, nmps: 13, nlps: 20, switchFlag: 0 },\n { qe: 0x1601, nmps: 29, nlps: 21, switchFlag: 0 },\n { qe: 0x5601, nmps: 15, nlps: 14, switchFlag: 1 },\n { qe: 0x5401, nmps: 16, nlps: 14, switchFlag: 0 },\n { qe: 0x5101, nmps: 17, nlps: 15, switchFlag: 0 },\n { qe: 0x4801, nmps: 18, nlps: 16, switchFlag: 0 },\n { qe: 0x3801, nmps: 19, nlps: 17, switchFlag: 0 },\n { qe: 0x3401, nmps: 20, nlps: 18, switchFlag: 0 },\n { qe: 0x3001, nmps: 21, nlps: 19, switchFlag: 0 },\n { qe: 0x2801, nmps: 22, nlps: 19, switchFlag: 0 },\n { qe: 0x2401, nmps: 23, nlps: 20, switchFlag: 0 },\n { qe: 0x2201, nmps: 24, nlps: 21, switchFlag: 0 },\n { qe: 0x1c01, nmps: 25, nlps: 22, switchFlag: 0 },\n { qe: 0x1801, nmps: 26, nlps: 23, switchFlag: 0 },\n { qe: 0x1601, nmps: 27, nlps: 24, switchFlag: 0 },\n { qe: 0x1401, nmps: 28, nlps: 25, switchFlag: 0 },\n { qe: 0x1201, nmps: 29, nlps: 26, switchFlag: 0 },\n { qe: 0x1101, nmps: 30, nlps: 27, switchFlag: 0 },\n { qe: 0x0ac1, nmps: 31, nlps: 28, switchFlag: 0 },\n { qe: 0x09c1, nmps: 32, nlps: 29, switchFlag: 0 },\n { qe: 0x08a1, nmps: 33, nlps: 30, switchFlag: 0 },\n { qe: 0x0521, nmps: 34, nlps: 31, switchFlag: 0 },\n { qe: 0x0441, nmps: 35, nlps: 32, switchFlag: 0 },\n { qe: 0x02a1, nmps: 36, nlps: 33, switchFlag: 0 },\n { qe: 0x0221, nmps: 37, nlps: 34, switchFlag: 0 },\n { qe: 0x0141, nmps: 38, nlps: 35, switchFlag: 0 },\n { qe: 0x0111, nmps: 39, nlps: 36, switchFlag: 0 },\n { qe: 0x0085, nmps: 40, nlps: 37, switchFlag: 0 },\n { qe: 0x0049, nmps: 41, nlps: 38, switchFlag: 0 },\n { qe: 0x0025, nmps: 42, nlps: 39, switchFlag: 0 },\n { qe: 0x0015, nmps: 43, nlps: 40, switchFlag: 0 },\n { qe: 0x0009, nmps: 44, nlps: 41, switchFlag: 0 },\n { qe: 0x0005, nmps: 45, nlps: 42, switchFlag: 0 },\n { qe: 0x0001, nmps: 45, nlps: 43, switchFlag: 0 },\n { qe: 0x5601, nmps: 46, nlps: 46, switchFlag: 0 },\n];\n\n/**\n * This class implements the QM Coder decoding as defined in\n * JPEG 2000 Part I Final Committee Draft Version 1.0\n * Annex C.3 Arithmetic decoding procedure\n * available at http://www.jpeg.org/public/fcd15444-1.pdf\n *\n * The arithmetic decoder is used in conjunction with context models to decode\n * JPEG2000 and JBIG2 streams.\n */\nclass ArithmeticDecoder {\n // C.3.5 Initialisation of the decoder (INITDEC)\n constructor(data, start, end) {\n this.data = data;\n this.bp = start;\n this.dataEnd = end;\n\n this.chigh = data[start];\n this.clow = 0;\n\n this.byteIn();\n\n this.chigh = ((this.chigh << 7) & 0xffff) | ((this.clow >> 9) & 0x7f);\n this.clow = (this.clow << 7) & 0xffff;\n this.ct -= 7;\n this.a = 0x8000;\n }\n\n // C.3.4 Compressed data input (BYTEIN)\n byteIn() {\n const data = this.data;\n let bp = this.bp;\n\n if (data[bp] === 0xff) {\n if (data[bp + 1] > 0x8f) {\n this.clow += 0xff00;\n this.ct = 8;\n } else {\n bp++;\n this.clow += data[bp] << 9;\n this.ct = 7;\n this.bp = bp;\n }\n } else {\n bp++;\n this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xff00;\n this.ct = 8;\n this.bp = bp;\n }\n if (this.clow > 0xffff) {\n this.chigh += this.clow >> 16;\n this.clow &= 0xffff;\n }\n }\n\n // C.3.2 Decoding a decision (DECODE)\n readBit(contexts, pos) {\n // Contexts are packed into 1 byte:\n // highest 7 bits carry cx.index, lowest bit carries cx.mps\n let cx_index = contexts[pos] >> 1,\n cx_mps = contexts[pos] & 1;\n const qeTableIcx = QeTable[cx_index];\n const qeIcx = qeTableIcx.qe;\n let d;\n let a = this.a - qeIcx;\n\n if (this.chigh < qeIcx) {\n // exchangeLps\n if (a < qeIcx) {\n a = qeIcx;\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n } else {\n a = qeIcx;\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n }\n } else {\n this.chigh -= qeIcx;\n if ((a & 0x8000) !== 0) {\n this.a = a;\n return cx_mps;\n }\n // exchangeMps\n if (a < qeIcx) {\n d = 1 ^ cx_mps;\n if (qeTableIcx.switchFlag === 1) {\n cx_mps = d;\n }\n cx_index = qeTableIcx.nlps;\n } else {\n d = cx_mps;\n cx_index = qeTableIcx.nmps;\n }\n }\n // C.3.3 renormD;\n do {\n if (this.ct === 0) {\n this.byteIn();\n }\n\n a <<= 1;\n this.chigh = ((this.chigh << 1) & 0xffff) | ((this.clow >> 15) & 1);\n this.clow = (this.clow << 1) & 0xffff;\n this.ct--;\n } while ((a & 0x8000) === 0);\n this.a = a;\n\n contexts[pos] = (cx_index << 1) | cx_mps;\n return d;\n }\n}\n\nexport { ArithmeticDecoder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, shadow } from \"../shared/util.js\";\nimport { log2, readInt8, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\nimport { CCITTFaxDecoder } from \"./ccitt.js\";\n\nclass Jbig2Error extends BaseException {\n constructor(msg) {\n super(`JBIG2 error: ${msg}`, \"Jbig2Error\");\n }\n}\n\n// Utility data structures\nclass ContextCache {\n getContexts(id) {\n if (id in this) {\n return this[id];\n }\n return (this[id] = new Int8Array(1 << 16));\n }\n}\n\nclass DecodingContext {\n constructor(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n }\n\n get decoder() {\n const decoder = new ArithmeticDecoder(this.data, this.start, this.end);\n return shadow(this, \"decoder\", decoder);\n }\n\n get contextCache() {\n const cache = new ContextCache();\n return shadow(this, \"contextCache\", cache);\n }\n}\n\nconst MAX_INT_32 = 2 ** 31 - 1;\nconst MIN_INT_32 = -(2 ** 31);\n\n// Annex A. Arithmetic Integer Decoding Procedure\n// A.2 Procedure for decoding values\nfunction decodeInteger(contextCache, procedure, decoder) {\n const contexts = contextCache.getContexts(procedure);\n let prev = 1;\n\n function readBits(length) {\n let v = 0;\n for (let i = 0; i < length; i++) {\n const bit = decoder.readBit(contexts, prev);\n prev = prev < 256 ? (prev << 1) | bit : (((prev << 1) | bit) & 511) | 256;\n v = (v << 1) | bit;\n }\n return v >>> 0;\n }\n\n const sign = readBits(1);\n // prettier-ignore\n /* eslint-disable no-nested-ternary */\n const value = readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(1) ?\n (readBits(32) + 4436) :\n readBits(12) + 340) :\n readBits(8) + 84) :\n readBits(6) + 20) :\n readBits(4) + 4) :\n readBits(2);\n /* eslint-enable no-nested-ternary */\n let signedValue;\n if (sign === 0) {\n signedValue = value;\n } else if (value > 0) {\n signedValue = -value;\n }\n // Ensure that the integer value doesn't underflow or overflow.\n if (signedValue >= MIN_INT_32 && signedValue <= MAX_INT_32) {\n return signedValue;\n }\n return null;\n}\n\n// A.3 The IAID decoding procedure\nfunction decodeIAID(contextCache, decoder, codeLength) {\n const contexts = contextCache.getContexts(\"IAID\");\n\n let prev = 1;\n for (let i = 0; i < codeLength; i++) {\n const bit = decoder.readBit(contexts, prev);\n prev = (prev << 1) | bit;\n }\n if (codeLength < 31) {\n return prev & ((1 << codeLength) - 1);\n }\n return prev & 0x7fffffff;\n}\n\n// 7.3 Segment types\nconst SegmentTypes = [\n \"SymbolDictionary\",\n null,\n null,\n null,\n \"IntermediateTextRegion\",\n null,\n \"ImmediateTextRegion\",\n \"ImmediateLosslessTextRegion\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"PatternDictionary\",\n null,\n null,\n null,\n \"IntermediateHalftoneRegion\",\n null,\n \"ImmediateHalftoneRegion\",\n \"ImmediateLosslessHalftoneRegion\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"IntermediateGenericRegion\",\n null,\n \"ImmediateGenericRegion\",\n \"ImmediateLosslessGenericRegion\",\n \"IntermediateGenericRefinementRegion\",\n null,\n \"ImmediateGenericRefinementRegion\",\n \"ImmediateLosslessGenericRefinementRegion\",\n null,\n null,\n null,\n null,\n \"PageInformation\",\n \"EndOfPage\",\n \"EndOfStripe\",\n \"EndOfFile\",\n \"Profiles\",\n \"Tables\",\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n \"Extension\",\n];\n\nconst CodingTemplates = [\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: 2, y: -1 },\n { x: -4, y: 0 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: 2, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: 2, y: -1 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -1, y: -2 },\n { x: 0, y: -2 },\n { x: 1, y: -2 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n [\n { x: -3, y: -1 },\n { x: -2, y: -1 },\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -4, y: 0 },\n { x: -3, y: 0 },\n { x: -2, y: 0 },\n { x: -1, y: 0 },\n ],\n];\n\nconst RefinementTemplates = [\n {\n coding: [\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n ],\n reference: [\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: -1, y: 1 },\n { x: 0, y: 1 },\n { x: 1, y: 1 },\n ],\n },\n {\n coding: [\n { x: -1, y: -1 },\n { x: 0, y: -1 },\n { x: 1, y: -1 },\n { x: -1, y: 0 },\n ],\n reference: [\n { x: 0, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: 0 },\n { x: 1, y: 0 },\n { x: 0, y: 1 },\n { x: 1, y: 1 },\n ],\n },\n];\n\n// See 6.2.5.7 Decoding the bitmap.\nconst ReusedContexts = [\n 0x9b25, // 10011 0110010 0101\n 0x0795, // 0011 110010 101\n 0x00e5, // 001 11001 01\n 0x0195, // 011001 0101\n];\n\nconst RefinementReusedContexts = [\n 0x0020, // '000' + '0' (coding) + '00010000' + '0' (reference)\n 0x0008, // '0000' + '001000'\n];\n\nfunction decodeBitmapTemplate0(width, height, decodingContext) {\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GB\");\n const bitmap = [];\n let contextLabel, i, j, pixel, row, row1, row2;\n\n // ...ooooo....\n // ..ooooooo... Context template for current pixel (X)\n // .ooooX...... (concatenate values of 'o'-pixels to get contextLabel)\n const OLD_PIXEL_MASK = 0x7bf7; // 01111 0111111 0111\n\n for (i = 0; i < height; i++) {\n row = bitmap[i] = new Uint8Array(width);\n row1 = i < 1 ? row : bitmap[i - 1];\n row2 = i < 2 ? row : bitmap[i - 2];\n\n // At the beginning of each row:\n // Fill contextLabel with pixels that are above/right of (X)\n contextLabel =\n (row2[0] << 13) |\n (row2[1] << 12) |\n (row2[2] << 11) |\n (row1[0] << 7) |\n (row1[1] << 6) |\n (row1[2] << 5) |\n (row1[3] << 4);\n\n for (j = 0; j < width; j++) {\n row[j] = pixel = decoder.readBit(contexts, contextLabel);\n\n // At each pixel: Clear contextLabel pixels that are shifted\n // out of the context, then add new ones.\n contextLabel =\n ((contextLabel & OLD_PIXEL_MASK) << 1) |\n (j + 3 < width ? row2[j + 3] << 11 : 0) |\n (j + 4 < width ? row1[j + 4] << 4 : 0) |\n pixel;\n }\n }\n\n return bitmap;\n}\n\n// 6.2 Generic Region Decoding Procedure\nfunction decodeBitmap(\n mmr,\n width,\n height,\n templateIndex,\n prediction,\n skip,\n at,\n decodingContext\n) {\n if (mmr) {\n const input = new Reader(\n decodingContext.data,\n decodingContext.start,\n decodingContext.end\n );\n return decodeMMRBitmap(input, width, height, false);\n }\n\n // Use optimized version for the most common case\n if (\n templateIndex === 0 &&\n !skip &&\n !prediction &&\n at.length === 4 &&\n at[0].x === 3 &&\n at[0].y === -1 &&\n at[1].x === -3 &&\n at[1].y === -1 &&\n at[2].x === 2 &&\n at[2].y === -2 &&\n at[3].x === -2 &&\n at[3].y === -2\n ) {\n return decodeBitmapTemplate0(width, height, decodingContext);\n }\n\n const useskip = !!skip;\n const template = CodingTemplates[templateIndex].concat(at);\n\n // Sorting is non-standard, and it is not required. But sorting increases\n // the number of template bits that can be reused from the previous\n // contextLabel in the main loop.\n template.sort(function (a, b) {\n return a.y - b.y || a.x - b.x;\n });\n\n const templateLength = template.length;\n const templateX = new Int8Array(templateLength);\n const templateY = new Int8Array(templateLength);\n const changingTemplateEntries = [];\n let reuseMask = 0,\n minX = 0,\n maxX = 0,\n minY = 0;\n let c, k;\n\n for (k = 0; k < templateLength; k++) {\n templateX[k] = template[k].x;\n templateY[k] = template[k].y;\n minX = Math.min(minX, template[k].x);\n maxX = Math.max(maxX, template[k].x);\n minY = Math.min(minY, template[k].y);\n // Check if the template pixel appears in two consecutive context labels,\n // so it can be reused. Otherwise, we add it to the list of changing\n // template entries.\n if (\n k < templateLength - 1 &&\n template[k].y === template[k + 1].y &&\n template[k].x === template[k + 1].x - 1\n ) {\n reuseMask |= 1 << (templateLength - 1 - k);\n } else {\n changingTemplateEntries.push(k);\n }\n }\n const changingEntriesLength = changingTemplateEntries.length;\n\n const changingTemplateX = new Int8Array(changingEntriesLength);\n const changingTemplateY = new Int8Array(changingEntriesLength);\n const changingTemplateBit = new Uint16Array(changingEntriesLength);\n for (c = 0; c < changingEntriesLength; c++) {\n k = changingTemplateEntries[c];\n changingTemplateX[c] = template[k].x;\n changingTemplateY[c] = template[k].y;\n changingTemplateBit[c] = 1 << (templateLength - 1 - k);\n }\n\n // Get the safe bounding box edges from the width, height, minX, maxX, minY\n const sbb_left = -minX;\n const sbb_top = -minY;\n const sbb_right = width - maxX;\n\n const pseudoPixelContext = ReusedContexts[templateIndex];\n let row = new Uint8Array(width);\n const bitmap = [];\n\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GB\");\n\n let ltp = 0,\n j,\n i0,\n j0,\n contextLabel = 0,\n bit,\n shift;\n for (let i = 0; i < height; i++) {\n if (prediction) {\n const sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n bitmap.push(row); // duplicate previous row\n continue;\n }\n }\n row = new Uint8Array(row);\n bitmap.push(row);\n for (j = 0; j < width; j++) {\n if (useskip && skip[i][j]) {\n row[j] = 0;\n continue;\n }\n // Are we in the middle of a scanline, so we can reuse contextLabel\n // bits?\n if (j >= sbb_left && j < sbb_right && i >= sbb_top) {\n // If yes, we can just shift the bits that are reusable and only\n // fetch the remaining ones.\n contextLabel = (contextLabel << 1) & reuseMask;\n for (k = 0; k < changingEntriesLength; k++) {\n i0 = i + changingTemplateY[k];\n j0 = j + changingTemplateX[k];\n bit = bitmap[i0][j0];\n if (bit) {\n bit = changingTemplateBit[k];\n contextLabel |= bit;\n }\n }\n } else {\n // compute the contextLabel from scratch\n contextLabel = 0;\n shift = templateLength - 1;\n for (k = 0; k < templateLength; k++, shift--) {\n j0 = j + templateX[k];\n if (j0 >= 0 && j0 < width) {\n i0 = i + templateY[k];\n if (i0 >= 0) {\n bit = bitmap[i0][j0];\n if (bit) {\n contextLabel |= bit << shift;\n }\n }\n }\n }\n }\n const pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n return bitmap;\n}\n\n// 6.3.2 Generic Refinement Region Decoding Procedure\nfunction decodeRefinement(\n width,\n height,\n templateIndex,\n referenceBitmap,\n offsetX,\n offsetY,\n prediction,\n at,\n decodingContext\n) {\n let codingTemplate = RefinementTemplates[templateIndex].coding;\n if (templateIndex === 0) {\n codingTemplate = codingTemplate.concat([at[0]]);\n }\n const codingTemplateLength = codingTemplate.length;\n const codingTemplateX = new Int32Array(codingTemplateLength);\n const codingTemplateY = new Int32Array(codingTemplateLength);\n let k;\n for (k = 0; k < codingTemplateLength; k++) {\n codingTemplateX[k] = codingTemplate[k].x;\n codingTemplateY[k] = codingTemplate[k].y;\n }\n\n let referenceTemplate = RefinementTemplates[templateIndex].reference;\n if (templateIndex === 0) {\n referenceTemplate = referenceTemplate.concat([at[1]]);\n }\n const referenceTemplateLength = referenceTemplate.length;\n const referenceTemplateX = new Int32Array(referenceTemplateLength);\n const referenceTemplateY = new Int32Array(referenceTemplateLength);\n for (k = 0; k < referenceTemplateLength; k++) {\n referenceTemplateX[k] = referenceTemplate[k].x;\n referenceTemplateY[k] = referenceTemplate[k].y;\n }\n const referenceWidth = referenceBitmap[0].length;\n const referenceHeight = referenceBitmap.length;\n\n const pseudoPixelContext = RefinementReusedContexts[templateIndex];\n const bitmap = [];\n\n const decoder = decodingContext.decoder;\n const contexts = decodingContext.contextCache.getContexts(\"GR\");\n\n let ltp = 0;\n for (let i = 0; i < height; i++) {\n if (prediction) {\n const sltp = decoder.readBit(contexts, pseudoPixelContext);\n ltp ^= sltp;\n if (ltp) {\n throw new Jbig2Error(\"prediction is not supported\");\n }\n }\n const row = new Uint8Array(width);\n bitmap.push(row);\n for (let j = 0; j < width; j++) {\n let i0, j0;\n let contextLabel = 0;\n for (k = 0; k < codingTemplateLength; k++) {\n i0 = i + codingTemplateY[k];\n j0 = j + codingTemplateX[k];\n if (i0 < 0 || j0 < 0 || j0 >= width) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | bitmap[i0][j0];\n }\n }\n for (k = 0; k < referenceTemplateLength; k++) {\n i0 = i + referenceTemplateY[k] - offsetY;\n j0 = j + referenceTemplateX[k] - offsetX;\n if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) {\n contextLabel <<= 1; // out of bound pixel\n } else {\n contextLabel = (contextLabel << 1) | referenceBitmap[i0][j0];\n }\n }\n const pixel = decoder.readBit(contexts, contextLabel);\n row[j] = pixel;\n }\n }\n\n return bitmap;\n}\n\n// 6.5.5 Decoding the symbol dictionary\nfunction decodeSymbolDictionary(\n huffman,\n refinement,\n symbols,\n numberOfNewSymbols,\n numberOfExportedSymbols,\n huffmanTables,\n templateIndex,\n at,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n huffmanInput\n) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"symbol refinement with Huffman is not supported\");\n }\n\n const newSymbols = [];\n let currentHeight = 0;\n let symbolCodeLength = log2(symbols.length + numberOfNewSymbols);\n\n const decoder = decodingContext.decoder;\n const contextCache = decodingContext.contextCache;\n let tableB1, symbolWidths;\n if (huffman) {\n tableB1 = getStandardTable(1); // standard table B.1\n symbolWidths = [];\n symbolCodeLength = Math.max(symbolCodeLength, 1); // 6.5.8.2.3\n }\n\n while (newSymbols.length < numberOfNewSymbols) {\n const deltaHeight = huffman\n ? huffmanTables.tableDeltaHeight.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADH\", decoder); // 6.5.6\n currentHeight += deltaHeight;\n let currentWidth = 0,\n totalWidth = 0;\n const firstSymbol = huffman ? symbolWidths.length : 0;\n while (true) {\n const deltaWidth = huffman\n ? huffmanTables.tableDeltaWidth.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADW\", decoder); // 6.5.7\n if (deltaWidth === null) {\n break; // OOB\n }\n currentWidth += deltaWidth;\n totalWidth += currentWidth;\n let bitmap;\n if (refinement) {\n // 6.5.8.2 Refinement/aggregate-coded symbol bitmap\n const numberOfInstances = decodeInteger(contextCache, \"IAAI\", decoder);\n if (numberOfInstances > 1) {\n bitmap = decodeTextRegion(\n huffman,\n refinement,\n currentWidth,\n currentHeight,\n 0,\n numberOfInstances,\n 1, // strip size\n symbols.concat(newSymbols),\n symbolCodeLength,\n 0, // transposed\n 0, // ds offset\n 1, // top left 7.4.3.1.1\n 0, // OR operator\n huffmanTables,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n 0,\n huffmanInput\n );\n } else {\n const symbolId = decodeIAID(contextCache, decoder, symbolCodeLength);\n const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n const symbol =\n symbolId < symbols.length\n ? symbols[symbolId]\n : newSymbols[symbolId - symbols.length];\n bitmap = decodeRefinement(\n currentWidth,\n currentHeight,\n refinementTemplateIndex,\n symbol,\n rdx,\n rdy,\n false,\n refinementAt,\n decodingContext\n );\n }\n newSymbols.push(bitmap);\n } else if (huffman) {\n // Store only symbol width and decode a collective bitmap when the\n // height class is done.\n symbolWidths.push(currentWidth);\n } else {\n // 6.5.8.1 Direct-coded symbol bitmap\n bitmap = decodeBitmap(\n false,\n currentWidth,\n currentHeight,\n templateIndex,\n false,\n null,\n at,\n decodingContext\n );\n newSymbols.push(bitmap);\n }\n }\n if (huffman && !refinement) {\n // 6.5.9 Height class collective bitmap\n const bitmapSize = huffmanTables.tableBitmapSize.decode(huffmanInput);\n huffmanInput.byteAlign();\n let collectiveBitmap;\n if (bitmapSize === 0) {\n // Uncompressed collective bitmap\n collectiveBitmap = readUncompressedBitmap(\n huffmanInput,\n totalWidth,\n currentHeight\n );\n } else {\n // MMR collective bitmap\n const originalEnd = huffmanInput.end;\n const bitmapEnd = huffmanInput.position + bitmapSize;\n huffmanInput.end = bitmapEnd;\n collectiveBitmap = decodeMMRBitmap(\n huffmanInput,\n totalWidth,\n currentHeight,\n false\n );\n huffmanInput.end = originalEnd;\n huffmanInput.position = bitmapEnd;\n }\n const numberOfSymbolsDecoded = symbolWidths.length;\n if (firstSymbol === numberOfSymbolsDecoded - 1) {\n // collectiveBitmap is a single symbol.\n newSymbols.push(collectiveBitmap);\n } else {\n // Divide collectiveBitmap into symbols.\n let i,\n y,\n xMin = 0,\n xMax,\n bitmapWidth,\n symbolBitmap;\n for (i = firstSymbol; i < numberOfSymbolsDecoded; i++) {\n bitmapWidth = symbolWidths[i];\n xMax = xMin + bitmapWidth;\n symbolBitmap = [];\n for (y = 0; y < currentHeight; y++) {\n symbolBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n newSymbols.push(symbolBitmap);\n xMin = xMax;\n }\n }\n }\n }\n\n // 6.5.10 Exported symbols\n const exportedSymbols = [],\n flags = [];\n let currentFlag = false,\n i,\n ii;\n const totalSymbolsLength = symbols.length + numberOfNewSymbols;\n while (flags.length < totalSymbolsLength) {\n let runLength = huffman\n ? tableB1.decode(huffmanInput)\n : decodeInteger(contextCache, \"IAEX\", decoder);\n while (runLength--) {\n flags.push(currentFlag);\n }\n currentFlag = !currentFlag;\n }\n for (i = 0, ii = symbols.length; i < ii; i++) {\n if (flags[i]) {\n exportedSymbols.push(symbols[i]);\n }\n }\n for (let j = 0; j < numberOfNewSymbols; i++, j++) {\n if (flags[i]) {\n exportedSymbols.push(newSymbols[j]);\n }\n }\n return exportedSymbols;\n}\n\nfunction decodeTextRegion(\n huffman,\n refinement,\n width,\n height,\n defaultPixelValue,\n numberOfSymbolInstances,\n stripSize,\n inputSymbols,\n symbolCodeLength,\n transposed,\n dsOffset,\n referenceCorner,\n combinationOperator,\n huffmanTables,\n refinementTemplateIndex,\n refinementAt,\n decodingContext,\n logStripSize,\n huffmanInput\n) {\n if (huffman && refinement) {\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n // Prepare bitmap\n const bitmap = [];\n let i, row;\n for (i = 0; i < height; i++) {\n row = new Uint8Array(width);\n if (defaultPixelValue) {\n for (let j = 0; j < width; j++) {\n row[j] = defaultPixelValue;\n }\n }\n bitmap.push(row);\n }\n\n const decoder = decodingContext.decoder;\n const contextCache = decodingContext.contextCache;\n\n let stripT = huffman\n ? -huffmanTables.tableDeltaT.decode(huffmanInput)\n : -decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n let firstS = 0;\n i = 0;\n while (i < numberOfSymbolInstances) {\n const deltaT = huffman\n ? huffmanTables.tableDeltaT.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADT\", decoder); // 6.4.6\n stripT += deltaT;\n\n const deltaFirstS = huffman\n ? huffmanTables.tableFirstS.decode(huffmanInput)\n : decodeInteger(contextCache, \"IAFS\", decoder); // 6.4.7\n firstS += deltaFirstS;\n let currentS = firstS;\n do {\n let currentT = 0; // 6.4.9\n if (stripSize > 1) {\n currentT = huffman\n ? huffmanInput.readBits(logStripSize)\n : decodeInteger(contextCache, \"IAIT\", decoder);\n }\n const t = stripSize * stripT + currentT;\n const symbolId = huffman\n ? huffmanTables.symbolIDTable.decode(huffmanInput)\n : decodeIAID(contextCache, decoder, symbolCodeLength);\n const applyRefinement =\n refinement &&\n (huffman\n ? huffmanInput.readBit()\n : decodeInteger(contextCache, \"IARI\", decoder));\n let symbolBitmap = inputSymbols[symbolId];\n let symbolWidth = symbolBitmap[0].length;\n let symbolHeight = symbolBitmap.length;\n if (applyRefinement) {\n const rdw = decodeInteger(contextCache, \"IARDW\", decoder); // 6.4.11.1\n const rdh = decodeInteger(contextCache, \"IARDH\", decoder); // 6.4.11.2\n const rdx = decodeInteger(contextCache, \"IARDX\", decoder); // 6.4.11.3\n const rdy = decodeInteger(contextCache, \"IARDY\", decoder); // 6.4.11.4\n symbolWidth += rdw;\n symbolHeight += rdh;\n symbolBitmap = decodeRefinement(\n symbolWidth,\n symbolHeight,\n refinementTemplateIndex,\n symbolBitmap,\n (rdw >> 1) + rdx,\n (rdh >> 1) + rdy,\n false,\n refinementAt,\n decodingContext\n );\n }\n const offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight - 1);\n const offsetS = currentS - (referenceCorner & 2 ? symbolWidth - 1 : 0);\n let s2, t2, symbolRow;\n if (transposed) {\n // Place Symbol Bitmap from T1,S1\n for (s2 = 0; s2 < symbolHeight; s2++) {\n row = bitmap[offsetS + s2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[s2];\n // To ignore Parts of Symbol bitmap which goes\n // outside bitmap region\n const maxWidth = Math.min(width - offsetT, symbolWidth);\n switch (combinationOperator) {\n case 0: // OR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] |= symbolRow[t2];\n }\n break;\n case 2: // XOR\n for (t2 = 0; t2 < maxWidth; t2++) {\n row[offsetT + t2] ^= symbolRow[t2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n currentS += symbolHeight - 1;\n } else {\n for (t2 = 0; t2 < symbolHeight; t2++) {\n row = bitmap[offsetT + t2];\n if (!row) {\n continue;\n }\n symbolRow = symbolBitmap[t2];\n switch (combinationOperator) {\n case 0: // OR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] |= symbolRow[s2];\n }\n break;\n case 2: // XOR\n for (s2 = 0; s2 < symbolWidth; s2++) {\n row[offsetS + s2] ^= symbolRow[s2];\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n currentS += symbolWidth - 1;\n }\n i++;\n const deltaS = huffman\n ? huffmanTables.tableDeltaS.decode(huffmanInput)\n : decodeInteger(contextCache, \"IADS\", decoder); // 6.4.8\n if (deltaS === null) {\n break; // OOB\n }\n currentS += deltaS + dsOffset;\n } while (true);\n }\n return bitmap;\n}\n\nfunction decodePatternDictionary(\n mmr,\n patternWidth,\n patternHeight,\n maxPatternIndex,\n template,\n decodingContext\n) {\n const at = [];\n if (!mmr) {\n at.push({\n x: -patternWidth,\n y: 0,\n });\n if (template === 0) {\n at.push(\n {\n x: -3,\n y: -1,\n },\n {\n x: 2,\n y: -2,\n },\n {\n x: -2,\n y: -2,\n }\n );\n }\n }\n const collectiveWidth = (maxPatternIndex + 1) * patternWidth;\n const collectiveBitmap = decodeBitmap(\n mmr,\n collectiveWidth,\n patternHeight,\n template,\n false,\n null,\n at,\n decodingContext\n );\n // Divide collective bitmap into patterns.\n const patterns = [];\n for (let i = 0; i <= maxPatternIndex; i++) {\n const patternBitmap = [];\n const xMin = patternWidth * i;\n const xMax = xMin + patternWidth;\n for (let y = 0; y < patternHeight; y++) {\n patternBitmap.push(collectiveBitmap[y].subarray(xMin, xMax));\n }\n patterns.push(patternBitmap);\n }\n return patterns;\n}\n\nfunction decodeHalftoneRegion(\n mmr,\n patterns,\n template,\n regionWidth,\n regionHeight,\n defaultPixelValue,\n enableSkip,\n combinationOperator,\n gridWidth,\n gridHeight,\n gridOffsetX,\n gridOffsetY,\n gridVectorX,\n gridVectorY,\n decodingContext\n) {\n const skip = null;\n if (enableSkip) {\n throw new Jbig2Error(\"skip is not supported\");\n }\n if (combinationOperator !== 0) {\n throw new Jbig2Error(\n `operator \"${combinationOperator}\" is not supported in halftone region`\n );\n }\n\n // Prepare bitmap.\n const regionBitmap = [];\n let i, j, row;\n for (i = 0; i < regionHeight; i++) {\n row = new Uint8Array(regionWidth);\n if (defaultPixelValue) {\n for (j = 0; j < regionWidth; j++) {\n row[j] = defaultPixelValue;\n }\n }\n regionBitmap.push(row);\n }\n\n const numberOfPatterns = patterns.length;\n const pattern0 = patterns[0];\n const patternWidth = pattern0[0].length,\n patternHeight = pattern0.length;\n const bitsPerValue = log2(numberOfPatterns);\n const at = [];\n if (!mmr) {\n at.push({\n x: template <= 1 ? 3 : 2,\n y: -1,\n });\n if (template === 0) {\n at.push(\n {\n x: -3,\n y: -1,\n },\n {\n x: 2,\n y: -2,\n },\n {\n x: -2,\n y: -2,\n }\n );\n }\n }\n // Annex C. Gray-scale Image Decoding Procedure.\n const grayScaleBitPlanes = [];\n let mmrInput, bitmap;\n if (mmr) {\n // MMR bit planes are in one continuous stream. Only EOFB codes indicate\n // the end of each bitmap, so EOFBs must be decoded.\n mmrInput = new Reader(\n decodingContext.data,\n decodingContext.start,\n decodingContext.end\n );\n }\n for (i = bitsPerValue - 1; i >= 0; i--) {\n if (mmr) {\n bitmap = decodeMMRBitmap(mmrInput, gridWidth, gridHeight, true);\n } else {\n bitmap = decodeBitmap(\n false,\n gridWidth,\n gridHeight,\n template,\n false,\n skip,\n at,\n decodingContext\n );\n }\n grayScaleBitPlanes[i] = bitmap;\n }\n // 6.6.5.2 Rendering the patterns.\n let mg, ng, bit, patternIndex, patternBitmap, x, y, patternRow, regionRow;\n for (mg = 0; mg < gridHeight; mg++) {\n for (ng = 0; ng < gridWidth; ng++) {\n bit = 0;\n patternIndex = 0;\n for (j = bitsPerValue - 1; j >= 0; j--) {\n bit ^= grayScaleBitPlanes[j][mg][ng]; // Gray decoding\n patternIndex |= bit << j;\n }\n patternBitmap = patterns[patternIndex];\n x = (gridOffsetX + mg * gridVectorY + ng * gridVectorX) >> 8;\n y = (gridOffsetY + mg * gridVectorX - ng * gridVectorY) >> 8;\n // Draw patternBitmap at (x, y).\n if (\n x >= 0 &&\n x + patternWidth <= regionWidth &&\n y >= 0 &&\n y + patternHeight <= regionHeight\n ) {\n for (i = 0; i < patternHeight; i++) {\n regionRow = regionBitmap[y + i];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionRow[x + j] |= patternRow[j];\n }\n }\n } else {\n let regionX, regionY;\n for (i = 0; i < patternHeight; i++) {\n regionY = y + i;\n if (regionY < 0 || regionY >= regionHeight) {\n continue;\n }\n regionRow = regionBitmap[regionY];\n patternRow = patternBitmap[i];\n for (j = 0; j < patternWidth; j++) {\n regionX = x + j;\n if (regionX >= 0 && regionX < regionWidth) {\n regionRow[regionX] |= patternRow[j];\n }\n }\n }\n }\n }\n }\n return regionBitmap;\n}\n\nfunction readSegmentHeader(data, start) {\n const segmentHeader = {};\n segmentHeader.number = readUint32(data, start);\n const flags = data[start + 4];\n const segmentType = flags & 0x3f;\n if (!SegmentTypes[segmentType]) {\n throw new Jbig2Error(\"invalid segment type: \" + segmentType);\n }\n segmentHeader.type = segmentType;\n segmentHeader.typeName = SegmentTypes[segmentType];\n segmentHeader.deferredNonRetain = !!(flags & 0x80);\n\n const pageAssociationFieldSize = !!(flags & 0x40);\n const referredFlags = data[start + 5];\n let referredToCount = (referredFlags >> 5) & 7;\n const retainBits = [referredFlags & 31];\n let position = start + 6;\n if (referredFlags === 7) {\n referredToCount = readUint32(data, position - 1) & 0x1fffffff;\n position += 3;\n let bytes = (referredToCount + 7) >> 3;\n retainBits[0] = data[position++];\n while (--bytes > 0) {\n retainBits.push(data[position++]);\n }\n } else if (referredFlags === 5 || referredFlags === 6) {\n throw new Jbig2Error(\"invalid referred-to flags\");\n }\n\n segmentHeader.retainBits = retainBits;\n\n let referredToSegmentNumberSize = 4;\n if (segmentHeader.number <= 256) {\n referredToSegmentNumberSize = 1;\n } else if (segmentHeader.number <= 65536) {\n referredToSegmentNumberSize = 2;\n }\n const referredTo = [];\n let i, ii;\n for (i = 0; i < referredToCount; i++) {\n let number;\n if (referredToSegmentNumberSize === 1) {\n number = data[position];\n } else if (referredToSegmentNumberSize === 2) {\n number = readUint16(data, position);\n } else {\n number = readUint32(data, position);\n }\n referredTo.push(number);\n position += referredToSegmentNumberSize;\n }\n segmentHeader.referredTo = referredTo;\n if (!pageAssociationFieldSize) {\n segmentHeader.pageAssociation = data[position++];\n } else {\n segmentHeader.pageAssociation = readUint32(data, position);\n position += 4;\n }\n segmentHeader.length = readUint32(data, position);\n position += 4;\n\n if (segmentHeader.length === 0xffffffff) {\n // 7.2.7 Segment data length, unknown segment length\n if (segmentType === 38) {\n // ImmediateGenericRegion\n const genericRegionInfo = readRegionSegmentInformation(data, position);\n const genericRegionSegmentFlags =\n data[position + RegionSegmentInformationFieldLength];\n const genericRegionMmr = !!(genericRegionSegmentFlags & 1);\n // searching for the segment end\n const searchPatternLength = 6;\n const searchPattern = new Uint8Array(searchPatternLength);\n if (!genericRegionMmr) {\n searchPattern[0] = 0xff;\n searchPattern[1] = 0xac;\n }\n searchPattern[2] = (genericRegionInfo.height >>> 24) & 0xff;\n searchPattern[3] = (genericRegionInfo.height >> 16) & 0xff;\n searchPattern[4] = (genericRegionInfo.height >> 8) & 0xff;\n searchPattern[5] = genericRegionInfo.height & 0xff;\n for (i = position, ii = data.length; i < ii; i++) {\n let j = 0;\n while (j < searchPatternLength && searchPattern[j] === data[i + j]) {\n j++;\n }\n if (j === searchPatternLength) {\n segmentHeader.length = i + searchPatternLength;\n break;\n }\n }\n if (segmentHeader.length === 0xffffffff) {\n throw new Jbig2Error(\"segment end was not found\");\n }\n } else {\n throw new Jbig2Error(\"invalid unknown segment length\");\n }\n }\n segmentHeader.headerEnd = position;\n return segmentHeader;\n}\n\nfunction readSegments(header, data, start, end) {\n const segments = [];\n let position = start;\n while (position < end) {\n const segmentHeader = readSegmentHeader(data, position);\n position = segmentHeader.headerEnd;\n const segment = {\n header: segmentHeader,\n data,\n };\n if (!header.randomAccess) {\n segment.start = position;\n position += segmentHeader.length;\n segment.end = position;\n }\n segments.push(segment);\n if (segmentHeader.type === 51) {\n break; // end of file is found\n }\n }\n if (header.randomAccess) {\n for (let i = 0, ii = segments.length; i < ii; i++) {\n segments[i].start = position;\n position += segments[i].header.length;\n segments[i].end = position;\n }\n }\n return segments;\n}\n\n// 7.4.1 Region segment information field\nfunction readRegionSegmentInformation(data, start) {\n return {\n width: readUint32(data, start),\n height: readUint32(data, start + 4),\n x: readUint32(data, start + 8),\n y: readUint32(data, start + 12),\n combinationOperator: data[start + 16] & 7,\n };\n}\nconst RegionSegmentInformationFieldLength = 17;\n\nfunction processSegment(segment, visitor) {\n const header = segment.header;\n\n const data = segment.data,\n end = segment.end;\n let position = segment.start;\n let args, at, i, atLength;\n switch (header.type) {\n case 0: // SymbolDictionary\n // 7.4.2 Symbol dictionary segment syntax\n const dictionary = {};\n const dictionaryFlags = readUint16(data, position); // 7.4.2.1.1\n dictionary.huffman = !!(dictionaryFlags & 1);\n dictionary.refinement = !!(dictionaryFlags & 2);\n dictionary.huffmanDHSelector = (dictionaryFlags >> 2) & 3;\n dictionary.huffmanDWSelector = (dictionaryFlags >> 4) & 3;\n dictionary.bitmapSizeSelector = (dictionaryFlags >> 6) & 1;\n dictionary.aggregationInstancesSelector = (dictionaryFlags >> 7) & 1;\n dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256);\n dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512);\n dictionary.template = (dictionaryFlags >> 10) & 3;\n dictionary.refinementTemplate = (dictionaryFlags >> 12) & 1;\n position += 2;\n if (!dictionary.huffman) {\n atLength = dictionary.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.at = at;\n }\n if (dictionary.refinement && !dictionary.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n dictionary.refinementAt = at;\n }\n dictionary.numberOfExportedSymbols = readUint32(data, position);\n position += 4;\n dictionary.numberOfNewSymbols = readUint32(data, position);\n position += 4;\n args = [\n dictionary,\n header.number,\n header.referredTo,\n data,\n position,\n end,\n ];\n break;\n case 6: // ImmediateTextRegion\n case 7: // ImmediateLosslessTextRegion\n const textRegion = {};\n textRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const textRegionSegmentFlags = readUint16(data, position);\n position += 2;\n textRegion.huffman = !!(textRegionSegmentFlags & 1);\n textRegion.refinement = !!(textRegionSegmentFlags & 2);\n textRegion.logStripSize = (textRegionSegmentFlags >> 2) & 3;\n textRegion.stripSize = 1 << textRegion.logStripSize;\n textRegion.referenceCorner = (textRegionSegmentFlags >> 4) & 3;\n textRegion.transposed = !!(textRegionSegmentFlags & 64);\n textRegion.combinationOperator = (textRegionSegmentFlags >> 7) & 3;\n textRegion.defaultPixelValue = (textRegionSegmentFlags >> 9) & 1;\n textRegion.dsOffset = (textRegionSegmentFlags << 17) >> 27;\n textRegion.refinementTemplate = (textRegionSegmentFlags >> 15) & 1;\n if (textRegion.huffman) {\n const textRegionHuffmanFlags = readUint16(data, position);\n position += 2;\n textRegion.huffmanFS = textRegionHuffmanFlags & 3;\n textRegion.huffmanDS = (textRegionHuffmanFlags >> 2) & 3;\n textRegion.huffmanDT = (textRegionHuffmanFlags >> 4) & 3;\n textRegion.huffmanRefinementDW = (textRegionHuffmanFlags >> 6) & 3;\n textRegion.huffmanRefinementDH = (textRegionHuffmanFlags >> 8) & 3;\n textRegion.huffmanRefinementDX = (textRegionHuffmanFlags >> 10) & 3;\n textRegion.huffmanRefinementDY = (textRegionHuffmanFlags >> 12) & 3;\n textRegion.huffmanRefinementSizeSelector = !!(\n textRegionHuffmanFlags & 0x4000\n );\n }\n if (textRegion.refinement && !textRegion.refinementTemplate) {\n at = [];\n for (i = 0; i < 2; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n textRegion.refinementAt = at;\n }\n textRegion.numberOfSymbolInstances = readUint32(data, position);\n position += 4;\n args = [textRegion, header.referredTo, data, position, end];\n break;\n case 16: // PatternDictionary\n // 7.4.4. Pattern dictionary segment syntax\n const patternDictionary = {};\n const patternDictionaryFlags = data[position++];\n patternDictionary.mmr = !!(patternDictionaryFlags & 1);\n patternDictionary.template = (patternDictionaryFlags >> 1) & 3;\n patternDictionary.patternWidth = data[position++];\n patternDictionary.patternHeight = data[position++];\n patternDictionary.maxPatternIndex = readUint32(data, position);\n position += 4;\n args = [patternDictionary, header.number, data, position, end];\n break;\n case 22: // ImmediateHalftoneRegion\n case 23: // ImmediateLosslessHalftoneRegion\n // 7.4.5 Halftone region segment syntax\n const halftoneRegion = {};\n halftoneRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const halftoneRegionFlags = data[position++];\n halftoneRegion.mmr = !!(halftoneRegionFlags & 1);\n halftoneRegion.template = (halftoneRegionFlags >> 1) & 3;\n halftoneRegion.enableSkip = !!(halftoneRegionFlags & 8);\n halftoneRegion.combinationOperator = (halftoneRegionFlags >> 4) & 7;\n halftoneRegion.defaultPixelValue = (halftoneRegionFlags >> 7) & 1;\n halftoneRegion.gridWidth = readUint32(data, position);\n position += 4;\n halftoneRegion.gridHeight = readUint32(data, position);\n position += 4;\n halftoneRegion.gridOffsetX = readUint32(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridOffsetY = readUint32(data, position) & 0xffffffff;\n position += 4;\n halftoneRegion.gridVectorX = readUint16(data, position);\n position += 2;\n halftoneRegion.gridVectorY = readUint16(data, position);\n position += 2;\n args = [halftoneRegion, header.referredTo, data, position, end];\n break;\n case 38: // ImmediateGenericRegion\n case 39: // ImmediateLosslessGenericRegion\n const genericRegion = {};\n genericRegion.info = readRegionSegmentInformation(data, position);\n position += RegionSegmentInformationFieldLength;\n const genericRegionSegmentFlags = data[position++];\n genericRegion.mmr = !!(genericRegionSegmentFlags & 1);\n genericRegion.template = (genericRegionSegmentFlags >> 1) & 3;\n genericRegion.prediction = !!(genericRegionSegmentFlags & 8);\n if (!genericRegion.mmr) {\n atLength = genericRegion.template === 0 ? 4 : 1;\n at = [];\n for (i = 0; i < atLength; i++) {\n at.push({\n x: readInt8(data, position),\n y: readInt8(data, position + 1),\n });\n position += 2;\n }\n genericRegion.at = at;\n }\n args = [genericRegion, data, position, end];\n break;\n case 48: // PageInformation\n const pageInfo = {\n width: readUint32(data, position),\n height: readUint32(data, position + 4),\n resolutionX: readUint32(data, position + 8),\n resolutionY: readUint32(data, position + 12),\n };\n if (pageInfo.height === 0xffffffff) {\n delete pageInfo.height;\n }\n const pageSegmentFlags = data[position + 16];\n readUint16(data, position + 17); // pageStripingInformation\n pageInfo.lossless = !!(pageSegmentFlags & 1);\n pageInfo.refinement = !!(pageSegmentFlags & 2);\n pageInfo.defaultPixelValue = (pageSegmentFlags >> 2) & 1;\n pageInfo.combinationOperator = (pageSegmentFlags >> 3) & 3;\n pageInfo.requiresBuffer = !!(pageSegmentFlags & 32);\n pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64);\n args = [pageInfo];\n break;\n case 49: // EndOfPage\n break;\n case 50: // EndOfStripe\n break;\n case 51: // EndOfFile\n break;\n case 53: // Tables\n args = [header.number, data, position, end];\n break;\n case 62: // 7.4.15 defines 2 extension types which\n // are comments and can be ignored.\n break;\n default:\n throw new Jbig2Error(\n `segment type ${header.typeName}(${header.type}) is not implemented`\n );\n }\n const callbackName = \"on\" + header.typeName;\n if (callbackName in visitor) {\n // eslint-disable-next-line prefer-spread\n visitor[callbackName].apply(visitor, args);\n }\n}\n\nfunction processSegments(segments, visitor) {\n for (let i = 0, ii = segments.length; i < ii; i++) {\n processSegment(segments[i], visitor);\n }\n}\n\nfunction parseJbig2Chunks(chunks) {\n const visitor = new SimpleSegmentVisitor();\n for (let i = 0, ii = chunks.length; i < ii; i++) {\n const chunk = chunks[i];\n const segments = readSegments({}, chunk.data, chunk.start, chunk.end);\n processSegments(segments, visitor);\n }\n return visitor.buffer;\n}\n\nfunction parseJbig2(data) {\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"IMAGE_DECODERS\")) {\n throw new Error(\"Not implemented: parseJbig2\");\n }\n const end = data.length;\n let position = 0;\n\n if (\n data[position] !== 0x97 ||\n data[position + 1] !== 0x4a ||\n data[position + 2] !== 0x42 ||\n data[position + 3] !== 0x32 ||\n data[position + 4] !== 0x0d ||\n data[position + 5] !== 0x0a ||\n data[position + 6] !== 0x1a ||\n data[position + 7] !== 0x0a\n ) {\n throw new Jbig2Error(\"parseJbig2 - invalid header.\");\n }\n\n const header = Object.create(null);\n position += 8;\n const flags = data[position++];\n header.randomAccess = !(flags & 1);\n if (!(flags & 2)) {\n header.numberOfPages = readUint32(data, position);\n position += 4;\n }\n\n const segments = readSegments(header, data, position, end);\n const visitor = new SimpleSegmentVisitor();\n processSegments(segments, visitor);\n\n const { width, height } = visitor.currentPageInfo;\n const bitPacked = visitor.buffer;\n const imgData = new Uint8ClampedArray(width * height);\n let q = 0,\n k = 0;\n for (let i = 0; i < height; i++) {\n let mask = 0,\n buffer;\n for (let j = 0; j < width; j++) {\n if (!mask) {\n mask = 128;\n buffer = bitPacked[k++];\n }\n imgData[q++] = buffer & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n return { imgData, width, height };\n}\n\nclass SimpleSegmentVisitor {\n onPageInformation(info) {\n this.currentPageInfo = info;\n const rowSize = (info.width + 7) >> 3;\n const buffer = new Uint8ClampedArray(rowSize * info.height);\n // The contents of ArrayBuffers are initialized to 0.\n // Fill the buffer with 0xFF only if info.defaultPixelValue is set\n if (info.defaultPixelValue) {\n buffer.fill(0xff);\n }\n this.buffer = buffer;\n }\n\n drawBitmap(regionInfo, bitmap) {\n const pageInfo = this.currentPageInfo;\n const width = regionInfo.width,\n height = regionInfo.height;\n const rowSize = (pageInfo.width + 7) >> 3;\n const combinationOperator = pageInfo.combinationOperatorOverride\n ? regionInfo.combinationOperator\n : pageInfo.combinationOperator;\n const buffer = this.buffer;\n const mask0 = 128 >> (regionInfo.x & 7);\n let offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3);\n let i, j, mask, offset;\n switch (combinationOperator) {\n case 0: // OR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] |= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n case 2: // XOR\n for (i = 0; i < height; i++) {\n mask = mask0;\n offset = offset0;\n for (j = 0; j < width; j++) {\n if (bitmap[i][j]) {\n buffer[offset] ^= mask;\n }\n mask >>= 1;\n if (!mask) {\n mask = 128;\n offset++;\n }\n }\n offset0 += rowSize;\n }\n break;\n default:\n throw new Jbig2Error(\n `operator ${combinationOperator} is not supported`\n );\n }\n }\n\n onImmediateGenericRegion(region, data, start, end) {\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeBitmap(\n region.mmr,\n regionInfo.width,\n regionInfo.height,\n region.template,\n region.prediction,\n null,\n region.at,\n decodingContext\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessGenericRegion() {\n this.onImmediateGenericRegion(...arguments);\n }\n\n onSymbolDictionary(\n dictionary,\n currentSegment,\n referredSegments,\n data,\n start,\n end\n ) {\n let huffmanTables, huffmanInput;\n if (dictionary.huffman) {\n huffmanTables = getSymbolDictionaryHuffmanTables(\n dictionary,\n referredSegments,\n this.customTables\n );\n huffmanInput = new Reader(data, start, end);\n }\n\n // Combines exported symbols from all referred segments\n let symbols = this.symbols;\n if (!symbols) {\n this.symbols = symbols = {};\n }\n\n const inputSymbols = [];\n for (const referredSegment of referredSegments) {\n const referredSymbols = symbols[referredSegment];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols.push(...referredSymbols);\n }\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n symbols[currentSegment] = decodeSymbolDictionary(\n dictionary.huffman,\n dictionary.refinement,\n inputSymbols,\n dictionary.numberOfNewSymbols,\n dictionary.numberOfExportedSymbols,\n huffmanTables,\n dictionary.template,\n dictionary.at,\n dictionary.refinementTemplate,\n dictionary.refinementAt,\n decodingContext,\n huffmanInput\n );\n }\n\n onImmediateTextRegion(region, referredSegments, data, start, end) {\n const regionInfo = region.info;\n let huffmanTables, huffmanInput;\n\n // Combines exported symbols from all referred segments\n const symbols = this.symbols;\n const inputSymbols = [];\n for (const referredSegment of referredSegments) {\n const referredSymbols = symbols[referredSegment];\n // referredSymbols is undefined when we have a reference to a Tables\n // segment instead of a SymbolDictionary.\n if (referredSymbols) {\n inputSymbols.push(...referredSymbols);\n }\n }\n const symbolCodeLength = log2(inputSymbols.length);\n if (region.huffman) {\n huffmanInput = new Reader(data, start, end);\n huffmanTables = getTextRegionHuffmanTables(\n region,\n referredSegments,\n this.customTables,\n inputSymbols.length,\n huffmanInput\n );\n }\n\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeTextRegion(\n region.huffman,\n region.refinement,\n regionInfo.width,\n regionInfo.height,\n region.defaultPixelValue,\n region.numberOfSymbolInstances,\n region.stripSize,\n inputSymbols,\n symbolCodeLength,\n region.transposed,\n region.dsOffset,\n region.referenceCorner,\n region.combinationOperator,\n huffmanTables,\n region.refinementTemplate,\n region.refinementAt,\n decodingContext,\n region.logStripSize,\n huffmanInput\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessTextRegion() {\n this.onImmediateTextRegion(...arguments);\n }\n\n onPatternDictionary(dictionary, currentSegment, data, start, end) {\n let patterns = this.patterns;\n if (!patterns) {\n this.patterns = patterns = {};\n }\n const decodingContext = new DecodingContext(data, start, end);\n patterns[currentSegment] = decodePatternDictionary(\n dictionary.mmr,\n dictionary.patternWidth,\n dictionary.patternHeight,\n dictionary.maxPatternIndex,\n dictionary.template,\n decodingContext\n );\n }\n\n onImmediateHalftoneRegion(region, referredSegments, data, start, end) {\n // HalftoneRegion refers to exactly one PatternDictionary.\n const patterns = this.patterns[referredSegments[0]];\n const regionInfo = region.info;\n const decodingContext = new DecodingContext(data, start, end);\n const bitmap = decodeHalftoneRegion(\n region.mmr,\n patterns,\n region.template,\n regionInfo.width,\n regionInfo.height,\n region.defaultPixelValue,\n region.enableSkip,\n region.combinationOperator,\n region.gridWidth,\n region.gridHeight,\n region.gridOffsetX,\n region.gridOffsetY,\n region.gridVectorX,\n region.gridVectorY,\n decodingContext\n );\n this.drawBitmap(regionInfo, bitmap);\n }\n\n onImmediateLosslessHalftoneRegion() {\n this.onImmediateHalftoneRegion(...arguments);\n }\n\n onTables(currentSegment, data, start, end) {\n let customTables = this.customTables;\n if (!customTables) {\n this.customTables = customTables = {};\n }\n customTables[currentSegment] = decodeTablesSegment(data, start, end);\n }\n}\n\nclass HuffmanLine {\n constructor(lineData) {\n if (lineData.length === 2) {\n // OOB line.\n this.isOOB = true;\n this.rangeLow = 0;\n this.prefixLength = lineData[0];\n this.rangeLength = 0;\n this.prefixCode = lineData[1];\n this.isLowerRange = false;\n } else {\n // Normal, upper range or lower range line.\n // Upper range lines are processed like normal lines.\n this.isOOB = false;\n this.rangeLow = lineData[0];\n this.prefixLength = lineData[1];\n this.rangeLength = lineData[2];\n this.prefixCode = lineData[3];\n this.isLowerRange = lineData[4] === \"lower\";\n }\n }\n}\n\nclass HuffmanTreeNode {\n constructor(line) {\n this.children = [];\n if (line) {\n // Leaf node\n this.isLeaf = true;\n this.rangeLength = line.rangeLength;\n this.rangeLow = line.rangeLow;\n this.isLowerRange = line.isLowerRange;\n this.isOOB = line.isOOB;\n } else {\n // Intermediate or root node\n this.isLeaf = false;\n }\n }\n\n buildTree(line, shift) {\n const bit = (line.prefixCode >> shift) & 1;\n if (shift <= 0) {\n // Create a leaf node.\n this.children[bit] = new HuffmanTreeNode(line);\n } else {\n // Create an intermediate node and continue recursively.\n let node = this.children[bit];\n if (!node) {\n this.children[bit] = node = new HuffmanTreeNode(null);\n }\n node.buildTree(line, shift - 1);\n }\n }\n\n decodeNode(reader) {\n if (this.isLeaf) {\n if (this.isOOB) {\n return null;\n }\n const htOffset = reader.readBits(this.rangeLength);\n return this.rangeLow + (this.isLowerRange ? -htOffset : htOffset);\n }\n const node = this.children[reader.readBit()];\n if (!node) {\n throw new Jbig2Error(\"invalid Huffman data\");\n }\n return node.decodeNode(reader);\n }\n}\n\nclass HuffmanTable {\n constructor(lines, prefixCodesDone) {\n if (!prefixCodesDone) {\n this.assignPrefixCodes(lines);\n }\n // Create Huffman tree.\n this.rootNode = new HuffmanTreeNode(null);\n for (let i = 0, ii = lines.length; i < ii; i++) {\n const line = lines[i];\n if (line.prefixLength > 0) {\n this.rootNode.buildTree(line, line.prefixLength - 1);\n }\n }\n }\n\n decode(reader) {\n return this.rootNode.decodeNode(reader);\n }\n\n assignPrefixCodes(lines) {\n // Annex B.3 Assigning the prefix codes.\n const linesLength = lines.length;\n let prefixLengthMax = 0;\n for (let i = 0; i < linesLength; i++) {\n prefixLengthMax = Math.max(prefixLengthMax, lines[i].prefixLength);\n }\n\n const histogram = new Uint32Array(prefixLengthMax + 1);\n for (let i = 0; i < linesLength; i++) {\n histogram[lines[i].prefixLength]++;\n }\n let currentLength = 1,\n firstCode = 0,\n currentCode,\n currentTemp,\n line;\n histogram[0] = 0;\n\n while (currentLength <= prefixLengthMax) {\n firstCode = (firstCode + histogram[currentLength - 1]) << 1;\n currentCode = firstCode;\n currentTemp = 0;\n while (currentTemp < linesLength) {\n line = lines[currentTemp];\n if (line.prefixLength === currentLength) {\n line.prefixCode = currentCode;\n currentCode++;\n }\n currentTemp++;\n }\n currentLength++;\n }\n }\n}\n\nfunction decodeTablesSegment(data, start, end) {\n // Decodes a Tables segment, i.e., a custom Huffman table.\n // Annex B.2 Code table structure.\n const flags = data[start];\n const lowestValue = readUint32(data, start + 1) & 0xffffffff;\n const highestValue = readUint32(data, start + 5) & 0xffffffff;\n const reader = new Reader(data, start + 9, end);\n\n const prefixSizeBits = ((flags >> 1) & 7) + 1;\n const rangeSizeBits = ((flags >> 4) & 7) + 1;\n const lines = [];\n let prefixLength,\n rangeLength,\n currentRangeLow = lowestValue;\n\n // Normal table lines\n do {\n prefixLength = reader.readBits(prefixSizeBits);\n rangeLength = reader.readBits(rangeSizeBits);\n lines.push(\n new HuffmanLine([currentRangeLow, prefixLength, rangeLength, 0])\n );\n currentRangeLow += 1 << rangeLength;\n } while (currentRangeLow < highestValue);\n\n // Lower range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([lowestValue - 1, prefixLength, 32, 0, \"lower\"]));\n\n // Upper range table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([highestValue, prefixLength, 32, 0]));\n\n if (flags & 1) {\n // Out-of-band table line\n prefixLength = reader.readBits(prefixSizeBits);\n lines.push(new HuffmanLine([prefixLength, 0]));\n }\n\n return new HuffmanTable(lines, false);\n}\n\nconst standardTablesCache = {};\n\nfunction getStandardTable(number) {\n // Annex B.5 Standard Huffman tables.\n let table = standardTablesCache[number];\n if (table) {\n return table;\n }\n let lines;\n switch (number) {\n case 1:\n lines = [\n [0, 1, 4, 0x0],\n [16, 2, 8, 0x2],\n [272, 3, 16, 0x6],\n [65808, 3, 32, 0x7], // upper\n ];\n break;\n case 2:\n lines = [\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xe],\n [11, 5, 6, 0x1e],\n [75, 6, 32, 0x3e], // upper\n [6, 0x3f], // OOB\n ];\n break;\n case 3:\n lines = [\n [-256, 8, 8, 0xfe],\n [0, 1, 0, 0x0],\n [1, 2, 0, 0x2],\n [2, 3, 0, 0x6],\n [3, 4, 3, 0xe],\n [11, 5, 6, 0x1e],\n [-257, 8, 32, 0xff, \"lower\"],\n [75, 7, 32, 0x7e], // upper\n [6, 0x3e], // OOB\n ];\n break;\n case 4:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xe],\n [12, 5, 6, 0x1e],\n [76, 5, 32, 0x1f], // upper\n ];\n break;\n case 5:\n lines = [\n [-255, 7, 8, 0x7e],\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 0, 0x6],\n [4, 4, 3, 0xe],\n [12, 5, 6, 0x1e],\n [-256, 7, 32, 0x7f, \"lower\"],\n [76, 6, 32, 0x3e], // upper\n ];\n break;\n case 6:\n lines = [\n [-2048, 5, 10, 0x1c],\n [-1024, 4, 9, 0x8],\n [-512, 4, 8, 0x9],\n [-256, 4, 7, 0xa],\n [-128, 5, 6, 0x1d],\n [-64, 5, 5, 0x1e],\n [-32, 4, 5, 0xb],\n [0, 2, 7, 0x0],\n [128, 3, 7, 0x2],\n [256, 3, 8, 0x3],\n [512, 4, 9, 0xc],\n [1024, 4, 10, 0xd],\n [-2049, 6, 32, 0x3e, \"lower\"],\n [2048, 6, 32, 0x3f], // upper\n ];\n break;\n case 7:\n lines = [\n [-1024, 4, 9, 0x8],\n [-512, 3, 8, 0x0],\n [-256, 4, 7, 0x9],\n [-128, 5, 6, 0x1a],\n [-64, 5, 5, 0x1b],\n [-32, 4, 5, 0xa],\n [0, 4, 5, 0xb],\n [32, 5, 5, 0x1c],\n [64, 5, 6, 0x1d],\n [128, 4, 7, 0xc],\n [256, 3, 8, 0x1],\n [512, 3, 9, 0x2],\n [1024, 3, 10, 0x3],\n [-1025, 5, 32, 0x1e, \"lower\"],\n [2048, 5, 32, 0x1f], // upper\n ];\n break;\n case 8:\n lines = [\n [-15, 8, 3, 0xfc],\n [-7, 9, 1, 0x1fc],\n [-5, 8, 1, 0xfd],\n [-3, 9, 0, 0x1fd],\n [-2, 7, 0, 0x7c],\n [-1, 4, 0, 0xa],\n [0, 2, 1, 0x0],\n [2, 5, 0, 0x1a],\n [3, 6, 0, 0x3a],\n [4, 3, 4, 0x4],\n [20, 6, 1, 0x3b],\n [22, 4, 4, 0xb],\n [38, 4, 5, 0xc],\n [70, 5, 6, 0x1b],\n [134, 5, 7, 0x1c],\n [262, 6, 7, 0x3c],\n [390, 7, 8, 0x7d],\n [646, 6, 10, 0x3d],\n [-16, 9, 32, 0x1fe, \"lower\"],\n [1670, 9, 32, 0x1ff], // upper\n [2, 0x1], // OOB\n ];\n break;\n case 9:\n lines = [\n [-31, 8, 4, 0xfc],\n [-15, 9, 2, 0x1fc],\n [-11, 8, 2, 0xfd],\n [-7, 9, 1, 0x1fd],\n [-5, 7, 1, 0x7c],\n [-3, 4, 1, 0xa],\n [-1, 3, 1, 0x2],\n [1, 3, 1, 0x3],\n [3, 5, 1, 0x1a],\n [5, 6, 1, 0x3a],\n [7, 3, 5, 0x4],\n [39, 6, 2, 0x3b],\n [43, 4, 5, 0xb],\n [75, 4, 6, 0xc],\n [139, 5, 7, 0x1b],\n [267, 5, 8, 0x1c],\n [523, 6, 8, 0x3c],\n [779, 7, 9, 0x7d],\n [1291, 6, 11, 0x3d],\n [-32, 9, 32, 0x1fe, \"lower\"],\n [3339, 9, 32, 0x1ff], // upper\n [2, 0x0], // OOB\n ];\n break;\n case 10:\n lines = [\n [-21, 7, 4, 0x7a],\n [-5, 8, 0, 0xfc],\n [-4, 7, 0, 0x7b],\n [-3, 5, 0, 0x18],\n [-2, 2, 2, 0x0],\n [2, 5, 0, 0x19],\n [3, 6, 0, 0x36],\n [4, 7, 0, 0x7c],\n [5, 8, 0, 0xfd],\n [6, 2, 6, 0x1],\n [70, 5, 5, 0x1a],\n [102, 6, 5, 0x37],\n [134, 6, 6, 0x38],\n [198, 6, 7, 0x39],\n [326, 6, 8, 0x3a],\n [582, 6, 9, 0x3b],\n [1094, 6, 10, 0x3c],\n [2118, 7, 11, 0x7d],\n [-22, 8, 32, 0xfe, \"lower\"],\n [4166, 8, 32, 0xff], // upper\n [2, 0x2], // OOB\n ];\n break;\n case 11:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 1, 0x2],\n [4, 4, 0, 0xc],\n [5, 4, 1, 0xd],\n [7, 5, 1, 0x1c],\n [9, 5, 2, 0x1d],\n [13, 6, 2, 0x3c],\n [17, 7, 2, 0x7a],\n [21, 7, 3, 0x7b],\n [29, 7, 4, 0x7c],\n [45, 7, 5, 0x7d],\n [77, 7, 6, 0x7e],\n [141, 7, 32, 0x7f], // upper\n ];\n break;\n case 12:\n lines = [\n [1, 1, 0, 0x0],\n [2, 2, 0, 0x2],\n [3, 3, 1, 0x6],\n [5, 5, 0, 0x1c],\n [6, 5, 1, 0x1d],\n [8, 6, 1, 0x3c],\n [10, 7, 0, 0x7a],\n [11, 7, 1, 0x7b],\n [13, 7, 2, 0x7c],\n [17, 7, 3, 0x7d],\n [25, 7, 4, 0x7e],\n [41, 8, 5, 0xfe],\n [73, 8, 32, 0xff], // upper\n ];\n break;\n case 13:\n lines = [\n [1, 1, 0, 0x0],\n [2, 3, 0, 0x4],\n [3, 4, 0, 0xc],\n [4, 5, 0, 0x1c],\n [5, 4, 1, 0xd],\n [7, 3, 3, 0x5],\n [15, 6, 1, 0x3a],\n [17, 6, 2, 0x3b],\n [21, 6, 3, 0x3c],\n [29, 6, 4, 0x3d],\n [45, 6, 5, 0x3e],\n [77, 7, 6, 0x7e],\n [141, 7, 32, 0x7f], // upper\n ];\n break;\n case 14:\n lines = [\n [-2, 3, 0, 0x4],\n [-1, 3, 0, 0x5],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x6],\n [2, 3, 0, 0x7],\n ];\n break;\n case 15:\n lines = [\n [-24, 7, 4, 0x7c],\n [-8, 6, 2, 0x3c],\n [-4, 5, 1, 0x1c],\n [-2, 4, 0, 0xc],\n [-1, 3, 0, 0x4],\n [0, 1, 0, 0x0],\n [1, 3, 0, 0x5],\n [2, 4, 0, 0xd],\n [3, 5, 1, 0x1d],\n [5, 6, 2, 0x3d],\n [9, 7, 4, 0x7d],\n [-25, 7, 32, 0x7e, \"lower\"],\n [25, 7, 32, 0x7f], // upper\n ];\n break;\n default:\n throw new Jbig2Error(`standard table B.${number} does not exist`);\n }\n\n for (let i = 0, ii = lines.length; i < ii; i++) {\n lines[i] = new HuffmanLine(lines[i]);\n }\n table = new HuffmanTable(lines, true);\n standardTablesCache[number] = table;\n return table;\n}\n\nclass Reader {\n constructor(data, start, end) {\n this.data = data;\n this.start = start;\n this.end = end;\n this.position = start;\n this.shift = -1;\n this.currentByte = 0;\n }\n\n readBit() {\n if (this.shift < 0) {\n if (this.position >= this.end) {\n throw new Jbig2Error(\"end of data while reading bit\");\n }\n this.currentByte = this.data[this.position++];\n this.shift = 7;\n }\n const bit = (this.currentByte >> this.shift) & 1;\n this.shift--;\n return bit;\n }\n\n readBits(numBits) {\n let result = 0,\n i;\n for (i = numBits - 1; i >= 0; i--) {\n result |= this.readBit() << i;\n }\n return result;\n }\n\n byteAlign() {\n this.shift = -1;\n }\n\n next() {\n if (this.position >= this.end) {\n return -1;\n }\n return this.data[this.position++];\n }\n}\n\nfunction getCustomHuffmanTable(index, referredTo, customTables) {\n // Returns a Tables segment that has been earlier decoded.\n // See 7.4.2.1.6 (symbol dictionary) or 7.4.3.1.6 (text region).\n let currentIndex = 0;\n for (let i = 0, ii = referredTo.length; i < ii; i++) {\n const table = customTables[referredTo[i]];\n if (table) {\n if (index === currentIndex) {\n return table;\n }\n currentIndex++;\n }\n }\n throw new Jbig2Error(\"can't find custom Huffman table\");\n}\n\nfunction getTextRegionHuffmanTables(\n textRegion,\n referredTo,\n customTables,\n numberOfSymbols,\n reader\n) {\n // 7.4.3.1.7 Symbol ID Huffman table decoding\n\n // Read code lengths for RUNCODEs 0...34.\n const codes = [];\n for (let i = 0; i <= 34; i++) {\n const codeLength = reader.readBits(4);\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n }\n // Assign Huffman codes for RUNCODEs.\n const runCodesTable = new HuffmanTable(codes, false);\n\n // Read a Huffman code using the assignment above.\n // Interpret the RUNCODE codes and the additional bits (if any).\n codes.length = 0;\n for (let i = 0; i < numberOfSymbols; ) {\n const codeLength = runCodesTable.decode(reader);\n if (codeLength >= 32) {\n let repeatedLength, numberOfRepeats, j;\n switch (codeLength) {\n case 32:\n if (i === 0) {\n throw new Jbig2Error(\"no previous value in symbol ID table\");\n }\n numberOfRepeats = reader.readBits(2) + 3;\n repeatedLength = codes[i - 1].prefixLength;\n break;\n case 33:\n numberOfRepeats = reader.readBits(3) + 3;\n repeatedLength = 0;\n break;\n case 34:\n numberOfRepeats = reader.readBits(7) + 11;\n repeatedLength = 0;\n break;\n default:\n throw new Jbig2Error(\"invalid code length in symbol ID table\");\n }\n for (j = 0; j < numberOfRepeats; j++) {\n codes.push(new HuffmanLine([i, repeatedLength, 0, 0]));\n i++;\n }\n } else {\n codes.push(new HuffmanLine([i, codeLength, 0, 0]));\n i++;\n }\n }\n reader.byteAlign();\n const symbolIDTable = new HuffmanTable(codes, false);\n\n // 7.4.3.1.6 Text region segment Huffman table selection\n\n let customIndex = 0,\n tableFirstS,\n tableDeltaS,\n tableDeltaT;\n\n switch (textRegion.huffmanFS) {\n case 0:\n case 1:\n tableFirstS = getStandardTable(textRegion.huffmanFS + 6);\n break;\n case 3:\n tableFirstS = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman FS selector\");\n }\n\n switch (textRegion.huffmanDS) {\n case 0:\n case 1:\n case 2:\n tableDeltaS = getStandardTable(textRegion.huffmanDS + 8);\n break;\n case 3:\n tableDeltaS = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DS selector\");\n }\n\n switch (textRegion.huffmanDT) {\n case 0:\n case 1:\n case 2:\n tableDeltaT = getStandardTable(textRegion.huffmanDT + 11);\n break;\n case 3:\n tableDeltaT = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DT selector\");\n }\n\n if (textRegion.refinement) {\n // Load tables RDW, RDH, RDX and RDY.\n throw new Jbig2Error(\"refinement with Huffman is not supported\");\n }\n\n return {\n symbolIDTable,\n tableFirstS,\n tableDeltaS,\n tableDeltaT,\n };\n}\n\nfunction getSymbolDictionaryHuffmanTables(\n dictionary,\n referredTo,\n customTables\n) {\n // 7.4.2.1.6 Symbol dictionary segment Huffman table selection\n\n let customIndex = 0,\n tableDeltaHeight,\n tableDeltaWidth;\n switch (dictionary.huffmanDHSelector) {\n case 0:\n case 1:\n tableDeltaHeight = getStandardTable(dictionary.huffmanDHSelector + 4);\n break;\n case 3:\n tableDeltaHeight = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DH selector\");\n }\n\n switch (dictionary.huffmanDWSelector) {\n case 0:\n case 1:\n tableDeltaWidth = getStandardTable(dictionary.huffmanDWSelector + 2);\n break;\n case 3:\n tableDeltaWidth = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n break;\n default:\n throw new Jbig2Error(\"invalid Huffman DW selector\");\n }\n\n let tableBitmapSize, tableAggregateInstances;\n if (dictionary.bitmapSizeSelector) {\n tableBitmapSize = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n customIndex++;\n } else {\n tableBitmapSize = getStandardTable(1);\n }\n\n if (dictionary.aggregationInstancesSelector) {\n tableAggregateInstances = getCustomHuffmanTable(\n customIndex,\n referredTo,\n customTables\n );\n } else {\n tableAggregateInstances = getStandardTable(1);\n }\n\n return {\n tableDeltaHeight,\n tableDeltaWidth,\n tableBitmapSize,\n tableAggregateInstances,\n };\n}\n\nfunction readUncompressedBitmap(reader, width, height) {\n const bitmap = [];\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n for (let x = 0; x < width; x++) {\n row[x] = reader.readBit();\n }\n reader.byteAlign();\n }\n return bitmap;\n}\n\nfunction decodeMMRBitmap(input, width, height, endOfBlock) {\n // MMR is the same compression algorithm as the PDF filter\n // CCITTFaxDecode with /K -1.\n const params = {\n K: -1,\n Columns: width,\n Rows: height,\n BlackIs1: true,\n EndOfBlock: endOfBlock,\n };\n const decoder = new CCITTFaxDecoder(input, params);\n const bitmap = [];\n let currentByte,\n eof = false;\n\n for (let y = 0; y < height; y++) {\n const row = new Uint8Array(width);\n bitmap.push(row);\n let shift = -1;\n for (let x = 0; x < width; x++) {\n if (shift < 0) {\n currentByte = decoder.readNextChar();\n if (currentByte === -1) {\n // Set the rest of the bits to zero.\n currentByte = 0;\n eof = true;\n }\n shift = 7;\n }\n row[x] = (currentByte >> shift) & 1;\n shift--;\n }\n }\n\n if (endOfBlock && !eof) {\n // Read until EOFB has been consumed.\n const lookForEOFLimit = 5;\n for (let i = 0; i < lookForEOFLimit; i++) {\n if (decoder.readNextChar() === -1) {\n break;\n }\n }\n }\n\n return bitmap;\n}\n\nclass Jbig2Image {\n parseChunks(chunks) {\n return parseJbig2Chunks(chunks);\n }\n\n parse(data) {\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"IMAGE_DECODERS\")) {\n throw new Error(\"Not implemented: Jbig2Image.parse\");\n }\n const { imgData, width, height } = parseJbig2(data);\n this.width = width;\n this.height = height;\n return imgData;\n }\n}\n\nexport { Jbig2Image };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseStream } from \"./base_stream.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { Jbig2Image } from \"./jbig2.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JBIG2's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nclass Jbig2Stream extends DecodeStream {\n constructor(stream, maybeLength, params) {\n super(maybeLength);\n\n this.stream = stream;\n this.dict = stream.dict;\n this.maybeLength = maybeLength;\n this.params = params;\n }\n\n get bytes() {\n // If `this.maybeLength` is null, we'll get the entire stream.\n return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n }\n\n ensureBuffer(requested) {\n // No-op, since `this.readBlock` will always parse the entire image and\n // directly insert all of its data into `this.buffer`.\n }\n\n readBlock() {\n if (this.eof) {\n return;\n }\n const jbig2Image = new Jbig2Image();\n\n const chunks = [];\n if (this.params instanceof Dict) {\n const globalsStream = this.params.get(\"JBIG2Globals\");\n if (globalsStream instanceof BaseStream) {\n const globals = globalsStream.getBytes();\n chunks.push({ data: globals, start: 0, end: globals.length });\n }\n }\n chunks.push({ data: this.bytes, start: 0, end: this.bytes.length });\n const data = jbig2Image.parseChunks(chunks);\n const dataLength = data.length;\n\n // JBIG2 had black as 1 and white as 0, inverting the colors\n for (let i = 0; i < dataLength; i++) {\n data[i] ^= 0xff;\n }\n this.buffer = data;\n this.bufferLength = dataLength;\n this.eof = true;\n }\n}\n\nexport { Jbig2Stream };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FeatureTest, ImageKind } from \"./util.js\";\n\nfunction convertToRGBA(params) {\n switch (params.kind) {\n case ImageKind.GRAYSCALE_1BPP:\n return convertBlackAndWhiteToRGBA(params);\n case ImageKind.RGB_24BPP:\n return convertRGBToRGBA(params);\n }\n\n return null;\n}\n\nfunction convertBlackAndWhiteToRGBA({\n src,\n srcPos = 0,\n dest,\n width,\n height,\n nonBlackColor = 0xffffffff,\n inverseDecode = false,\n}) {\n const black = FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = inverseDecode\n ? [nonBlackColor, black]\n : [black, nonBlackColor];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n let destPos = 0;\n\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & (1 << (7 - j)) ? oneMapping : zeroMapping;\n }\n }\n return { srcPos, destPos };\n}\n\nfunction convertRGBToRGBA({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height,\n}) {\n let i = 0;\n const len32 = src.length >> 2;\n const src32 = new Uint32Array(src.buffer, srcPos, len32);\n\n if (FeatureTest.isLittleEndian) {\n // It's a way faster to do the shuffle manually instead of working\n // component by component with some Uint8 arrays.\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i]; // R2B1G1R1\n const s2 = src32[i + 1]; // G3R3B2G2\n const s3 = src32[i + 2]; // B4G4R4B3\n\n dest[destPos] = s1 | 0xff000000;\n dest[destPos + 1] = (s1 >>> 24) | (s2 << 8) | 0xff000000;\n dest[destPos + 2] = (s2 >>> 16) | (s3 << 16) | 0xff000000;\n dest[destPos + 3] = (s3 >>> 8) | 0xff000000;\n }\n\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] =\n src[j] | (src[j + 1] << 8) | (src[j + 2] << 16) | 0xff000000;\n }\n } else {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i]; // R1G1B1R2\n const s2 = src32[i + 1]; // G2B2R3G3\n const s3 = src32[i + 2]; // B3R4G4B4\n\n dest[destPos] = s1 | 0xff;\n dest[destPos + 1] = (s1 << 24) | (s2 >>> 8) | 0xff;\n dest[destPos + 2] = (s2 << 16) | (s3 >>> 16) | 0xff;\n dest[destPos + 3] = (s3 << 8) | 0xff;\n }\n\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] =\n (src[j] << 24) | (src[j + 1] << 16) | (src[j + 2] << 8) | 0xff;\n }\n }\n\n return { srcPos, destPos };\n}\n\nfunction grayToRGBA(src, dest) {\n if (FeatureTest.isLittleEndian) {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = (src[i] * 0x10101) | 0xff000000;\n }\n } else {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = (src[i] * 0x1010100) | 0x000000ff;\n }\n }\n}\n\nexport { convertBlackAndWhiteToRGBA, convertToRGBA, grayToRGBA };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the 'License');\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an 'AS IS' BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert, BaseException, warn } from \"../shared/util.js\";\nimport { grayToRGBA } from \"../shared/image_utils.js\";\nimport { readUint16 } from \"./core_utils.js\";\n\nclass JpegError extends BaseException {\n constructor(msg) {\n super(`JPEG error: ${msg}`, \"JpegError\");\n }\n}\n\nclass DNLMarkerError extends BaseException {\n constructor(message, scanLines) {\n super(message, \"DNLMarkerError\");\n this.scanLines = scanLines;\n }\n}\n\nclass EOIMarkerError extends BaseException {\n constructor(msg) {\n super(msg, \"EOIMarkerError\");\n }\n}\n\n/**\n * This code was forked from https://github.com/notmasteryet/jpgjs.\n * The original version was created by GitHub user notmasteryet.\n *\n * - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n * (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n * - The JFIF specification can be found in the JPEG File Interchange Format\n * (www.w3.org/Graphics/JPEG/jfif3.pdf)\n * - The Adobe Application-Specific JPEG markers in the\n * Supporting the DCT Filters in PostScript Level 2, Technical Note #5116\n * (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n */\n\n// prettier-ignore\nconst dctZigZag = new Uint8Array([\n 0,\n 1, 8,\n 16, 9, 2,\n 3, 10, 17, 24,\n 32, 25, 18, 11, 4,\n 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6,\n 7, 14, 21, 28, 35, 42, 49, 56,\n 57, 50, 43, 36, 29, 22, 15,\n 23, 30, 37, 44, 51, 58,\n 59, 52, 45, 38, 31,\n 39, 46, 53, 60,\n 61, 54, 47,\n 55, 62,\n 63\n]);\n\nconst dctCos1 = 4017; // cos(pi/16)\nconst dctSin1 = 799; // sin(pi/16)\nconst dctCos3 = 3406; // cos(3*pi/16)\nconst dctSin3 = 2276; // sin(3*pi/16)\nconst dctCos6 = 1567; // cos(6*pi/16)\nconst dctSin6 = 3784; // sin(6*pi/16)\nconst dctSqrt2 = 5793; // sqrt(2)\nconst dctSqrt1d2 = 2896; // sqrt(2) / 2\n\nfunction buildHuffmanTable(codeLengths, values) {\n let k = 0,\n i,\n j,\n length = 16;\n while (length > 0 && !codeLengths[length - 1]) {\n length--;\n }\n const code = [{ children: [], index: 0 }];\n let p = code[0],\n q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n}\n\nfunction getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n}\n\nfunction decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successivePrev,\n successive,\n parseDNLMarker = false\n) {\n const mcusPerLine = frame.mcusPerLine;\n const progressive = frame.progressive;\n\n const startOffset = offset;\n let bitsData = 0,\n bitsCount = 0;\n\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData === 0xff) {\n const nextByte = data[offset++];\n if (nextByte) {\n if (nextByte === /* DNL = */ 0xdc && parseDNLMarker) {\n offset += 2; // Skip marker length.\n\n const scanLines = readUint16(data, offset);\n offset += 2;\n if (scanLines > 0 && scanLines !== frame.scanLines) {\n throw new DNLMarkerError(\n \"Found DNL marker (0xFFDC) while parsing scan data\",\n scanLines\n );\n }\n } else if (nextByte === /* EOI = */ 0xd9) {\n if (parseDNLMarker) {\n // NOTE: only 8-bit JPEG images are supported in this decoder.\n const maybeScanLines = blockRow * (frame.precision === 8 ? 8 : 0);\n // Heuristic to attempt to handle corrupt JPEG images with too\n // large `scanLines` parameter, by falling back to the currently\n // parsed number of scanLines when it's at least (approximately)\n // one \"half\" order of magnitude smaller than expected (fixes\n // issue10880.pdf, issue10989.pdf, issue15492.pdf).\n if (\n maybeScanLines > 0 &&\n Math.round(frame.scanLines / maybeScanLines) >= 5\n ) {\n throw new DNLMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data, \" +\n \"possibly caused by incorrect `scanLines` parameter\",\n maybeScanLines\n );\n }\n }\n throw new EOIMarkerError(\n \"Found EOI marker (0xFFD9) while parsing scan data\"\n );\n }\n throw new JpegError(\n `unexpected marker ${((bitsData << 8) | nextByte).toString(16)}`\n );\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n let node = tree;\n while (true) {\n node = node[readBit()];\n switch (typeof node) {\n case \"number\":\n return node;\n case \"object\":\n continue;\n }\n throw new JpegError(\"invalid huffman sequence\");\n }\n }\n\n function receive(length) {\n let n = 0;\n while (length > 0) {\n n = (n << 1) | readBit();\n length--;\n }\n return n;\n }\n\n function receiveAndExtend(length) {\n if (length === 1) {\n return readBit() === 1 ? 1 : -1;\n }\n const n = receive(length);\n if (n >= 1 << (length - 1)) {\n return n;\n }\n return n + (-1 << length) + 1;\n }\n\n function decodeBaseline(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[blockOffset] = component.pred += diff;\n let k = 1;\n while (k < 64) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] = receiveAndExtend(s);\n k++;\n }\n }\n\n function decodeDCFirst(component, blockOffset) {\n const t = decodeHuffman(component.huffmanTableDC);\n const diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[blockOffset] = component.pred += diff;\n }\n\n function decodeDCSuccessive(component, blockOffset) {\n component.blockData[blockOffset] |= readBit() << successive;\n }\n\n let eobrun = 0;\n function decodeACFirst(component, blockOffset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n let k = spectralStart;\n const e = spectralEnd;\n while (k <= e) {\n const rs = decodeHuffman(component.huffmanTableAC);\n const s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n const z = dctZigZag[k];\n component.blockData[blockOffset + z] =\n receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n let successiveACState = 0,\n successiveACNextValue;\n function decodeACSuccessive(component, blockOffset) {\n let k = spectralStart;\n const e = spectralEnd;\n let r = 0;\n let s;\n let rs;\n while (k <= e) {\n const offsetZ = blockOffset + dctZigZag[k];\n const sign = component.blockData[offsetZ] < 0 ? -1 : 1;\n switch (successiveACState) {\n case 0: // initial state\n rs = decodeHuffman(component.huffmanTableAC);\n s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) {\n throw new JpegError(\"invalid ACn encoding\");\n }\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1: // skipping r zero items\n case 2:\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n r--;\n if (r === 0) {\n successiveACState = successiveACState === 2 ? 3 : 0;\n }\n }\n break;\n case 3: // set value for a zero item\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n } else {\n component.blockData[offsetZ] = successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (component.blockData[offsetZ]) {\n component.blockData[offsetZ] += sign * (readBit() << successive);\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) {\n successiveACState = 0;\n }\n }\n }\n\n let blockRow = 0;\n function decodeMcu(component, decode, mcu, row, col) {\n const mcuRow = (mcu / mcusPerLine) | 0;\n const mcuCol = mcu % mcusPerLine;\n blockRow = mcuRow * component.v + row;\n const blockCol = mcuCol * component.h + col;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n function decodeBlock(component, decode, mcu) {\n blockRow = (mcu / component.blocksPerLine) | 0;\n const blockCol = mcu % component.blocksPerLine;\n const blockOffset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, blockOffset);\n }\n\n const componentsLength = components.length;\n let component, i, j, k, n;\n let decodeFn;\n if (progressive) {\n if (spectralStart === 0) {\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n } else {\n decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n }\n } else {\n decodeFn = decodeBaseline;\n }\n\n let mcu = 0,\n fileMarker;\n const mcuExpected =\n componentsLength === 1\n ? components[0].blocksPerLine * components[0].blocksPerColumn\n : mcusPerLine * frame.mcusPerColumn;\n\n let h, v;\n while (mcu <= mcuExpected) {\n // reset interval stuff\n const mcuToRead = resetInterval\n ? Math.min(mcuExpected - mcu, resetInterval)\n : mcuExpected;\n\n // The `mcuToRead === 0` case should only occur when all of the expected\n // MCU data has been already parsed, i.e. when `mcu === mcuExpected`, but\n // some corrupt JPEG images contain more data than intended and we thus\n // want to skip over any extra RSTx markers below (fixes issue11794.pdf).\n if (mcuToRead > 0) {\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength === 1) {\n component = components[0];\n for (n = 0; n < mcuToRead; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < mcuToRead; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n }\n\n // find marker\n bitsCount = 0;\n fileMarker = findNextFileMarker(data, offset);\n if (!fileMarker) {\n break; // Reached the end of the image data without finding any marker.\n }\n if (fileMarker.invalid) {\n // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip\n // past those to attempt to find a valid marker (fixes issue4090.pdf).\n const partialMsg = mcuToRead > 0 ? \"unexpected\" : \"excessive\";\n warn(\n `decodeScan - ${partialMsg} MCU data, current marker is: ${fileMarker.invalid}`\n );\n offset = fileMarker.offset;\n }\n if (fileMarker.marker >= 0xffd0 && fileMarker.marker <= 0xffd7) {\n // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n}\n\n// A port of poppler's IDCT method which in turn is taken from:\n// Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n// 'Practical Fast 1-D DCT Algorithms with 11 Multiplications',\n// IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n// 988-991.\nfunction quantizeAndInverse(component, blockBufferOffset, p) {\n const qt = component.quantizationTable,\n blockData = component.blockData;\n let v0, v1, v2, v3, v4, v5, v6, v7;\n let p0, p1, p2, p3, p4, p5, p6, p7;\n let t;\n\n if (!qt) {\n throw new JpegError(\"missing required Quantization Table.\");\n }\n\n // inverse DCT on rows\n for (let row = 0; row < 64; row += 8) {\n // gather block data\n p0 = blockData[blockBufferOffset + row];\n p1 = blockData[blockBufferOffset + row + 1];\n p2 = blockData[blockBufferOffset + row + 2];\n p3 = blockData[blockBufferOffset + row + 3];\n p4 = blockData[blockBufferOffset + row + 4];\n p5 = blockData[blockBufferOffset + row + 5];\n p6 = blockData[blockBufferOffset + row + 6];\n p7 = blockData[blockBufferOffset + row + 7];\n\n // dequant p0\n p0 *= qt[row];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 512) >> 10;\n p[row] = t;\n p[row + 1] = t;\n p[row + 2] = t;\n p[row + 3] = t;\n p[row + 4] = t;\n p[row + 5] = t;\n p[row + 6] = t;\n p[row + 7] = t;\n continue;\n }\n // dequant p1 ... p7\n p1 *= qt[row + 1];\n p2 *= qt[row + 2];\n p3 *= qt[row + 3];\n p4 *= qt[row + 4];\n p5 *= qt[row + 5];\n p6 *= qt[row + 6];\n p7 *= qt[row + 7];\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 128) >> 8;\n v1 = (dctSqrt2 * p4 + 128) >> 8;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8;\n v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8;\n v5 = p3 << 4;\n v6 = p5 << 4;\n\n // stage 3\n v0 = (v0 + v1 + 1) >> 1;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[row] = v0 + v7;\n p[row + 7] = v0 - v7;\n p[row + 1] = v1 + v6;\n p[row + 6] = v1 - v6;\n p[row + 2] = v2 + v5;\n p[row + 5] = v2 - v5;\n p[row + 3] = v3 + v4;\n p[row + 4] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (let col = 0; col < 8; ++col) {\n p0 = p[col];\n p1 = p[col + 8];\n p2 = p[col + 16];\n p3 = p[col + 24];\n p4 = p[col + 32];\n p5 = p[col + 40];\n p6 = p[col + 48];\n p7 = p[col + 56];\n\n // check for all-zero AC coefficients\n if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) {\n t = (dctSqrt2 * p0 + 8192) >> 14;\n // Convert to 8-bit.\n if (t < -2040) {\n t = 0;\n } else if (t >= 2024) {\n t = 255;\n } else {\n t = (t + 2056) >> 4;\n }\n blockData[blockBufferOffset + col] = t;\n blockData[blockBufferOffset + col + 8] = t;\n blockData[blockBufferOffset + col + 16] = t;\n blockData[blockBufferOffset + col + 24] = t;\n blockData[blockBufferOffset + col + 32] = t;\n blockData[blockBufferOffset + col + 40] = t;\n blockData[blockBufferOffset + col + 48] = t;\n blockData[blockBufferOffset + col + 56] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p0 + 2048) >> 12;\n v1 = (dctSqrt2 * p4 + 2048) >> 12;\n v2 = p2;\n v3 = p6;\n v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12;\n v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12;\n v5 = p3;\n v6 = p5;\n\n // stage 3\n // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when\n // converting to UInt8 range later.\n v0 = ((v0 + v1 + 1) >> 1) + 4112;\n v1 = v0 - v1;\n t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n v3 = t;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = v4 - v6;\n v7 = (v7 + v5 + 1) >> 1;\n v5 = v7 - v5;\n\n // stage 2\n v0 = (v0 + v3 + 1) >> 1;\n v3 = v0 - v3;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = v1 - v2;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p0 = v0 + v7;\n p7 = v0 - v7;\n p1 = v1 + v6;\n p6 = v1 - v6;\n p2 = v2 + v5;\n p5 = v2 - v5;\n p3 = v3 + v4;\n p4 = v3 - v4;\n\n // Convert to 8-bit integers.\n if (p0 < 16) {\n p0 = 0;\n } else if (p0 >= 4080) {\n p0 = 255;\n } else {\n p0 >>= 4;\n }\n if (p1 < 16) {\n p1 = 0;\n } else if (p1 >= 4080) {\n p1 = 255;\n } else {\n p1 >>= 4;\n }\n if (p2 < 16) {\n p2 = 0;\n } else if (p2 >= 4080) {\n p2 = 255;\n } else {\n p2 >>= 4;\n }\n if (p3 < 16) {\n p3 = 0;\n } else if (p3 >= 4080) {\n p3 = 255;\n } else {\n p3 >>= 4;\n }\n if (p4 < 16) {\n p4 = 0;\n } else if (p4 >= 4080) {\n p4 = 255;\n } else {\n p4 >>= 4;\n }\n if (p5 < 16) {\n p5 = 0;\n } else if (p5 >= 4080) {\n p5 = 255;\n } else {\n p5 >>= 4;\n }\n if (p6 < 16) {\n p6 = 0;\n } else if (p6 >= 4080) {\n p6 = 255;\n } else {\n p6 >>= 4;\n }\n if (p7 < 16) {\n p7 = 0;\n } else if (p7 >= 4080) {\n p7 = 255;\n } else {\n p7 >>= 4;\n }\n\n // store block data\n blockData[blockBufferOffset + col] = p0;\n blockData[blockBufferOffset + col + 8] = p1;\n blockData[blockBufferOffset + col + 16] = p2;\n blockData[blockBufferOffset + col + 24] = p3;\n blockData[blockBufferOffset + col + 32] = p4;\n blockData[blockBufferOffset + col + 40] = p5;\n blockData[blockBufferOffset + col + 48] = p6;\n blockData[blockBufferOffset + col + 56] = p7;\n }\n}\n\nfunction buildComponentData(frame, component) {\n const blocksPerLine = component.blocksPerLine;\n const blocksPerColumn = component.blocksPerColumn;\n const computationBuffer = new Int16Array(64);\n\n for (let blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (let blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n const offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n return component.blockData;\n}\n\nfunction findNextFileMarker(data, currentPos, startPos = currentPos) {\n const maxPos = data.length - 1;\n let newPos = startPos < currentPos ? startPos : currentPos;\n\n if (currentPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n const currentMarker = readUint16(data, currentPos);\n if (currentMarker >= 0xffc0 && currentMarker <= 0xfffe) {\n return {\n invalid: null,\n marker: currentMarker,\n offset: currentPos,\n };\n }\n let newMarker = readUint16(data, newPos);\n while (!(newMarker >= 0xffc0 && newMarker <= 0xfffe)) {\n if (++newPos >= maxPos) {\n return null; // Don't attempt to read non-existent data and just return.\n }\n newMarker = readUint16(data, newPos);\n }\n return {\n invalid: currentMarker.toString(16),\n marker: newMarker,\n offset: newPos,\n };\n}\n\nclass JpegImage {\n constructor({ decodeTransform = null, colorTransform = -1 } = {}) {\n this._decodeTransform = decodeTransform;\n this._colorTransform = colorTransform;\n }\n\n parse(data, { dnlScanLines = null } = {}) {\n function readDataBlock() {\n const length = readUint16(data, offset);\n offset += 2;\n let endOffset = offset + length - 2;\n\n const fileMarker = findNextFileMarker(data, endOffset, offset);\n if (fileMarker?.invalid) {\n warn(\n \"readDataBlock - incorrect length, current marker is: \" +\n fileMarker.invalid\n );\n endOffset = fileMarker.offset;\n }\n\n const array = data.subarray(offset, endOffset);\n offset += array.length;\n return array;\n }\n\n function prepareComponents(frame) {\n const mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n const mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n for (const component of frame.components) {\n const blocksPerLine = Math.ceil(\n (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n );\n const blocksPerColumn = Math.ceil(\n (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n );\n const blocksPerLineForMcu = mcusPerLine * component.h;\n const blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n const blocksBufferSize =\n 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n\n let offset = 0;\n let jfif = null;\n let adobe = null;\n let frame, resetInterval;\n let numSOSMarkers = 0;\n const quantizationTables = [];\n const huffmanTablesAC = [],\n huffmanTablesDC = [];\n\n let fileMarker = readUint16(data, offset);\n offset += 2;\n if (fileMarker !== /* SOI (Start of Image) = */ 0xffd8) {\n throw new JpegError(\"SOI not found\");\n }\n fileMarker = readUint16(data, offset);\n offset += 2;\n\n markerLoop: while (fileMarker !== /* EOI (End of Image) = */ 0xffd9) {\n let i, j, l;\n switch (fileMarker) {\n case 0xffe0: // APP0 (Application Specific)\n case 0xffe1: // APP1\n case 0xffe2: // APP2\n case 0xffe3: // APP3\n case 0xffe4: // APP4\n case 0xffe5: // APP5\n case 0xffe6: // APP6\n case 0xffe7: // APP7\n case 0xffe8: // APP8\n case 0xffe9: // APP9\n case 0xffea: // APP10\n case 0xffeb: // APP11\n case 0xffec: // APP12\n case 0xffed: // APP13\n case 0xffee: // APP14\n case 0xffef: // APP15\n case 0xfffe: // COM (Comment)\n const appData = readDataBlock();\n\n if (fileMarker === 0xffe0) {\n // 'JFIF\\x00'\n if (\n appData[0] === 0x4a &&\n appData[1] === 0x46 &&\n appData[2] === 0x49 &&\n appData[3] === 0x46 &&\n appData[4] === 0\n ) {\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(\n 14,\n 14 + 3 * appData[12] * appData[13]\n ),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xffee) {\n // 'Adobe'\n if (\n appData[0] === 0x41 &&\n appData[1] === 0x64 &&\n appData[2] === 0x6f &&\n appData[3] === 0x62 &&\n appData[4] === 0x65\n ) {\n adobe = {\n version: (appData[5] << 8) | appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11],\n };\n }\n }\n break;\n\n case 0xffdb: // DQT (Define Quantization Tables)\n const quantizationTablesLength = readUint16(data, offset);\n offset += 2;\n const quantizationTablesEnd = quantizationTablesLength + offset - 2;\n let z;\n while (offset < quantizationTablesEnd) {\n const quantizationTableSpec = data[offset++];\n const tableData = new Uint16Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n // 8 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n // 16 bit values\n for (j = 0; j < 64; j++) {\n z = dctZigZag[j];\n tableData[z] = readUint16(data, offset);\n offset += 2;\n }\n } else {\n throw new JpegError(\"DQT - invalid table spec\");\n }\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n\n case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n if (frame) {\n throw new JpegError(\"Only single frame JPEGs supported\");\n }\n offset += 2; // Skip marker length.\n\n frame = {};\n frame.extended = fileMarker === 0xffc1;\n frame.progressive = fileMarker === 0xffc2;\n frame.precision = data[offset++];\n const sofScanLines = readUint16(data, offset);\n offset += 2;\n frame.scanLines = dnlScanLines || sofScanLines;\n frame.samplesPerLine = readUint16(data, offset);\n offset += 2;\n frame.components = [];\n frame.componentIds = {};\n const componentsCount = data[offset++];\n let maxH = 0,\n maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n const componentId = data[offset];\n const h = data[offset + 1] >> 4;\n const v = data[offset + 1] & 15;\n if (maxH < h) {\n maxH = h;\n }\n if (maxV < v) {\n maxV = v;\n }\n const qId = data[offset + 2];\n l = frame.components.push({\n h,\n v,\n quantizationId: qId,\n quantizationTable: null, // See comment below.\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xffc4: // DHT (Define Huffman Tables)\n const huffmanLength = readUint16(data, offset);\n offset += 2;\n for (i = 2; i < huffmanLength; ) {\n const huffmanTableSpec = data[offset++];\n const codeLengths = new Uint8Array(16);\n let codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++) {\n codeLengthSum += codeLengths[j] = data[offset];\n }\n const huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++) {\n huffmanValues[j] = data[offset];\n }\n i += 17 + codeLengthSum;\n\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n huffmanTableSpec & 15\n ] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n\n case 0xffdd: // DRI (Define Restart Interval)\n offset += 2; // Skip marker length.\n\n resetInterval = readUint16(data, offset);\n offset += 2;\n break;\n\n case 0xffda: // SOS (Start of Scan)\n // A DNL marker (0xFFDC), if it exists, is only allowed at the end\n // of the first scan segment and may only occur once in an image.\n // Furthermore, to prevent an infinite loop, do *not* attempt to\n // parse DNL markers during re-parsing of the JPEG scan data.\n const parseDNLMarker = ++numSOSMarkers === 1 && !dnlScanLines;\n\n offset += 2; // Skip marker length.\n\n const selectorsCount = data[offset++],\n components = [];\n for (i = 0; i < selectorsCount; i++) {\n const index = data[offset++];\n const componentIndex = frame.componentIds[index];\n const component = frame.components[componentIndex];\n component.index = index;\n const tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n const spectralStart = data[offset++],\n spectralEnd = data[offset++],\n successiveApproximation = data[offset++];\n try {\n const processed = decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successiveApproximation >> 4,\n successiveApproximation & 15,\n parseDNLMarker\n );\n offset += processed;\n } catch (ex) {\n if (ex instanceof DNLMarkerError) {\n warn(`${ex.message} -- attempting to re-parse the JPEG image.`);\n return this.parse(data, { dnlScanLines: ex.scanLines });\n } else if (ex instanceof EOIMarkerError) {\n warn(`${ex.message} -- ignoring the rest of the image data.`);\n break markerLoop;\n }\n throw ex;\n }\n break;\n\n case 0xffdc: // DNL (Define Number of Lines)\n // Ignore the marker, since it's being handled in `decodeScan`.\n offset += 4;\n break;\n\n case 0xffff: // Fill bytes\n if (data[offset] !== 0xff) {\n // Avoid skipping a valid marker.\n offset--;\n }\n break;\n\n default:\n // Could be incorrect encoding -- the last 0xFF byte of the previous\n // block could have been eaten by the encoder, hence we fallback to\n // `startPos = offset - 3` when looking for the next valid marker.\n const nextFileMarker = findNextFileMarker(\n data,\n /* currentPos = */ offset - 2,\n /* startPos = */ offset - 3\n );\n if (nextFileMarker?.invalid) {\n warn(\n \"JpegImage.parse - unexpected data, current marker is: \" +\n nextFileMarker.invalid\n );\n offset = nextFileMarker.offset;\n break;\n }\n if (!nextFileMarker || offset >= data.length - 1) {\n warn(\n \"JpegImage.parse - reached the end of the image data \" +\n \"without finding an EOI marker (0xFFD9).\"\n );\n break markerLoop;\n }\n throw new JpegError(\n \"JpegImage.parse - unknown marker: \" + fileMarker.toString(16)\n );\n }\n fileMarker = readUint16(data, offset);\n offset += 2;\n }\n\n if (!frame) {\n throw new JpegError(\"JpegImage.parse - no frame data found.\");\n }\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n for (const component of frame.components) {\n // Prevent errors when DQT markers are placed after SOF{n} markers,\n // by assigning the `quantizationTable` entry after the entire image\n // has been parsed (fixes issue7406.pdf).\n const quantizationTable = quantizationTables[component.quantizationId];\n if (quantizationTable) {\n component.quantizationTable = quantizationTable;\n }\n\n this.components.push({\n index: component.index,\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn,\n });\n }\n this.numComponents = this.components.length;\n return undefined;\n }\n\n _getLinearizedBlockData(width, height, isSourcePDF = false) {\n const scaleX = this.width / width,\n scaleY = this.height / height;\n\n let component, componentScaleX, componentScaleY, blocksPerScanline;\n let x, y, i, j, k;\n let index;\n let offset = 0;\n let output;\n const numComponents = this.components.length;\n const dataLength = width * height * numComponents;\n const data = new Uint8ClampedArray(dataLength);\n const xScaleBlockOffset = new Uint32Array(width);\n const mask3LSB = 0xfffffff8; // used to clear the 3 LSBs\n let lastComponentScaleX;\n\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n output = component.output;\n blocksPerScanline = (component.blocksPerLine + 1) << 3;\n // Precalculate the `xScaleBlockOffset`. Since it doesn't depend on the\n // component data, that's only necessary when `componentScaleX` changes.\n if (componentScaleX !== lastComponentScaleX) {\n for (x = 0; x < width; x++) {\n j = 0 | (x * componentScaleX);\n xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7);\n }\n lastComponentScaleX = componentScaleX;\n }\n // linearize the blocks of the component\n for (y = 0; y < height; y++) {\n j = 0 | (y * componentScaleY);\n index = (blocksPerScanline * (j & mask3LSB)) | ((j & 7) << 3);\n for (x = 0; x < width; x++) {\n data[offset] = output[index + xScaleBlockOffset[x]];\n offset += numComponents;\n }\n }\n }\n\n // decodeTransform contains pairs of multiplier (-256..256) and additive\n let transform = this._decodeTransform;\n\n // In PDF files, JPEG images with CMYK colour spaces are usually inverted\n // (this can be observed by extracting the raw image data).\n // Since the conversion algorithms (see below) were written primarily for\n // the PDF use-cases, attempting to use `JpegImage` to parse standalone\n // JPEG (CMYK) images may thus result in inverted images (see issue 9513).\n //\n // Unfortunately it's not (always) possible to tell, from the image data\n // alone, if it needs to be inverted. Thus in an attempt to provide better\n // out-of-box behaviour when `JpegImage` is used standalone, default to\n // inverting JPEG (CMYK) images if and only if the image data does *not*\n // come from a PDF file and no `decodeTransform` was passed by the user.\n if (!isSourcePDF && numComponents === 4 && !transform) {\n transform = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]);\n }\n\n if (transform) {\n for (i = 0; i < dataLength; ) {\n for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) {\n data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1];\n }\n }\n }\n return data;\n }\n\n get _isColorConversionNeeded() {\n if (this.adobe) {\n // The adobe transform marker overrides any previous setting.\n return !!this.adobe.transformCode;\n }\n if (this.numComponents === 3) {\n if (this._colorTransform === 0) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `0`,\n // then the colours should *not* be transformed.\n return false;\n } else if (\n this.components[0].index === /* \"R\" = */ 0x52 &&\n this.components[1].index === /* \"G\" = */ 0x47 &&\n this.components[2].index === /* \"B\" = */ 0x42\n ) {\n // If the three components are indexed as RGB in ASCII\n // then the colours should *not* be transformed.\n return false;\n }\n return true;\n }\n // `this.numComponents !== 3`\n if (this._colorTransform === 1) {\n // If the Adobe transform marker is not present and the image\n // dictionary has a 'ColorTransform' entry, explicitly set to `1`,\n // then the colours should be transformed.\n return true;\n }\n return false;\n }\n\n _convertYccToRgb(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 3) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = Y - 179.456 + 1.402 * Cr;\n data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n data[i + 2] = Y - 226.816 + 1.772 * Cb;\n }\n return data;\n }\n\n _convertYccToRgba(data, out) {\n for (let i = 0, j = 0, length = data.length; i < length; i += 3, j += 4) {\n const Y = data[i];\n const Cb = data[i + 1];\n const Cr = data[i + 2];\n out[j] = Y - 179.456 + 1.402 * Cr;\n out[j + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr;\n out[j + 2] = Y - 226.816 + 1.772 * Cb;\n out[j + 3] = 255;\n }\n return out;\n }\n\n _convertYcckToRgb(data) {\n let Y, Cb, Cr, k;\n let offset = 0;\n for (let i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n k = data[i + 3];\n\n data[offset++] =\n -122.67195406894 +\n Cb *\n (-6.60635669420364e-5 * Cb +\n 0.000437130475926232 * Cr -\n 5.4080610064599e-5 * Y +\n 0.00048449797120281 * k -\n 0.154362151871126) +\n Cr *\n (-0.000957964378445773 * Cr +\n 0.000817076911346625 * Y -\n 0.00477271405408747 * k +\n 1.53380253221734) +\n Y *\n (0.000961250184130688 * Y -\n 0.00266257332283933 * k +\n 0.48357088451265) +\n k * (-0.000336197177618394 * k + 0.484791561490776);\n\n data[offset++] =\n 107.268039397724 +\n Cb *\n (2.19927104525741e-5 * Cb -\n 0.000640992018297945 * Cr +\n 0.000659397001245577 * Y +\n 0.000426105652938837 * k -\n 0.176491792462875) +\n Cr *\n (-0.000778269941513683 * Cr +\n 0.00130872261408275 * Y +\n 0.000770482631801132 * k -\n 0.151051492775562) +\n Y *\n (0.00126935368114843 * Y -\n 0.00265090189010898 * k +\n 0.25802910206845) +\n k * (-0.000318913117588328 * k - 0.213742400323665);\n\n data[offset++] =\n -20.810012546947 +\n Cb *\n (-0.000570115196973677 * Cb -\n 2.63409051004589e-5 * Cr +\n 0.0020741088115012 * Y -\n 0.00288260236853442 * k +\n 0.814272968359295) +\n Cr *\n (-1.53496057440975e-5 * Cr -\n 0.000132689043961446 * Y +\n 0.000560833691242812 * k -\n 0.195152027534049) +\n Y *\n (0.00174418132927582 * Y -\n 0.00255243321439347 * k +\n 0.116935020465145) +\n k * (-0.000343531996510555 * k + 0.24165260232407);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n }\n\n _convertYcckToRgba(data) {\n for (let i = 0, length = data.length; i < length; i += 4) {\n const Y = data[i];\n const Cb = data[i + 1];\n const Cr = data[i + 2];\n const k = data[i + 3];\n\n data[i] =\n -122.67195406894 +\n Cb *\n (-6.60635669420364e-5 * Cb +\n 0.000437130475926232 * Cr -\n 5.4080610064599e-5 * Y +\n 0.00048449797120281 * k -\n 0.154362151871126) +\n Cr *\n (-0.000957964378445773 * Cr +\n 0.000817076911346625 * Y -\n 0.00477271405408747 * k +\n 1.53380253221734) +\n Y *\n (0.000961250184130688 * Y -\n 0.00266257332283933 * k +\n 0.48357088451265) +\n k * (-0.000336197177618394 * k + 0.484791561490776);\n\n data[i + 1] =\n 107.268039397724 +\n Cb *\n (2.19927104525741e-5 * Cb -\n 0.000640992018297945 * Cr +\n 0.000659397001245577 * Y +\n 0.000426105652938837 * k -\n 0.176491792462875) +\n Cr *\n (-0.000778269941513683 * Cr +\n 0.00130872261408275 * Y +\n 0.000770482631801132 * k -\n 0.151051492775562) +\n Y *\n (0.00126935368114843 * Y -\n 0.00265090189010898 * k +\n 0.25802910206845) +\n k * (-0.000318913117588328 * k - 0.213742400323665);\n\n data[i + 2] =\n -20.810012546947 +\n Cb *\n (-0.000570115196973677 * Cb -\n 2.63409051004589e-5 * Cr +\n 0.0020741088115012 * Y -\n 0.00288260236853442 * k +\n 0.814272968359295) +\n Cr *\n (-1.53496057440975e-5 * Cr -\n 0.000132689043961446 * Y +\n 0.000560833691242812 * k -\n 0.195152027534049) +\n Y *\n (0.00174418132927582 * Y -\n 0.00255243321439347 * k +\n 0.116935020465145) +\n k * (-0.000343531996510555 * k + 0.24165260232407);\n data[i + 3] = 255;\n }\n return data;\n }\n\n _convertYcckToCmyk(data) {\n let Y, Cb, Cr;\n for (let i = 0, length = data.length; i < length; i += 4) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n data[i] = 434.456 - Y - 1.402 * Cr;\n data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr;\n data[i + 2] = 481.816 - Y - 1.772 * Cb;\n // K in data[i + 3] is unchanged\n }\n return data;\n }\n\n _convertCmykToRgb(data) {\n let c, m, y, k;\n let offset = 0;\n for (let i = 0, length = data.length; i < length; i += 4) {\n c = data[i];\n m = data[i + 1];\n y = data[i + 2];\n k = data[i + 3];\n\n data[offset++] =\n 255 +\n c *\n (-0.00006747147073602441 * c +\n 0.0008379262121013727 * m +\n 0.0002894718188643294 * y +\n 0.003264231057537806 * k -\n 1.1185611867203937) +\n m *\n (0.000026374107616089405 * m -\n 0.00008626949158638572 * y -\n 0.0002748769067499491 * k -\n 0.02155688794978967) +\n y *\n (-0.00003878099212869363 * y -\n 0.0003267808279485286 * k +\n 0.0686742238595345) -\n k * (0.0003361971776183937 * k + 0.7430659151342254);\n\n data[offset++] =\n 255 +\n c *\n (0.00013596372813588848 * c +\n 0.000924537132573585 * m +\n 0.00010567359618683593 * y +\n 0.0004791864687436512 * k -\n 0.3109689587515875) +\n m *\n (-0.00023545346108370344 * m +\n 0.0002702845253534714 * y +\n 0.0020200308977307156 * k -\n 0.7488052167015494) +\n y *\n (0.00006834815998235662 * y +\n 0.00015168452363460973 * k -\n 0.09751927774728933) -\n k * (0.0003189131175883281 * k + 0.7364883807733168);\n\n data[offset++] =\n 255 +\n c *\n (0.000013598650411385307 * c +\n 0.00012423956175490851 * m +\n 0.0004751985097583589 * y -\n 0.0000036729317476630422 * k -\n 0.05562186980264034) +\n m *\n (0.00016141380598724676 * m +\n 0.0009692239130725186 * y +\n 0.0007782692450036253 * k -\n 0.44015232367526463) +\n y *\n (5.068882914068769e-7 * y +\n 0.0017778369011375071 * k -\n 0.7591454649749609) -\n k * (0.0003435319965105553 * k + 0.7063770186160144);\n }\n // Ensure that only the converted RGB data is returned.\n return data.subarray(0, offset);\n }\n\n _convertCmykToRgba(data) {\n for (let i = 0, length = data.length; i < length; i += 4) {\n const c = data[i];\n const m = data[i + 1];\n const y = data[i + 2];\n const k = data[i + 3];\n\n data[i] =\n 255 +\n c *\n (-0.00006747147073602441 * c +\n 0.0008379262121013727 * m +\n 0.0002894718188643294 * y +\n 0.003264231057537806 * k -\n 1.1185611867203937) +\n m *\n (0.000026374107616089405 * m -\n 0.00008626949158638572 * y -\n 0.0002748769067499491 * k -\n 0.02155688794978967) +\n y *\n (-0.00003878099212869363 * y -\n 0.0003267808279485286 * k +\n 0.0686742238595345) -\n k * (0.0003361971776183937 * k + 0.7430659151342254);\n\n data[i + 1] =\n 255 +\n c *\n (0.00013596372813588848 * c +\n 0.000924537132573585 * m +\n 0.00010567359618683593 * y +\n 0.0004791864687436512 * k -\n 0.3109689587515875) +\n m *\n (-0.00023545346108370344 * m +\n 0.0002702845253534714 * y +\n 0.0020200308977307156 * k -\n 0.7488052167015494) +\n y *\n (0.00006834815998235662 * y +\n 0.00015168452363460973 * k -\n 0.09751927774728933) -\n k * (0.0003189131175883281 * k + 0.7364883807733168);\n\n data[i + 2] =\n 255 +\n c *\n (0.000013598650411385307 * c +\n 0.00012423956175490851 * m +\n 0.0004751985097583589 * y -\n 0.0000036729317476630422 * k -\n 0.05562186980264034) +\n m *\n (0.00016141380598724676 * m +\n 0.0009692239130725186 * y +\n 0.0007782692450036253 * k -\n 0.44015232367526463) +\n y *\n (5.068882914068769e-7 * y +\n 0.0017778369011375071 * k -\n 0.7591454649749609) -\n k * (0.0003435319965105553 * k + 0.7063770186160144);\n data[i + 3] = 255;\n }\n return data;\n }\n\n getData({\n width,\n height,\n forceRGBA = false,\n forceRGB = false,\n isSourcePDF = false,\n }) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n isSourcePDF === true,\n 'JpegImage.getData: Unexpected \"isSourcePDF\" value for PDF files.'\n );\n }\n if (this.numComponents > 4) {\n throw new JpegError(\"Unsupported color mode\");\n }\n // Type of data: Uint8ClampedArray(width * height * numComponents)\n const data = this._getLinearizedBlockData(width, height, isSourcePDF);\n\n if (this.numComponents === 1 && (forceRGBA || forceRGB)) {\n const len = data.length * (forceRGBA ? 4 : 3);\n const rgbaData = new Uint8ClampedArray(len);\n let offset = 0;\n if (forceRGBA) {\n grayToRGBA(data, new Uint32Array(rgbaData.buffer));\n } else {\n for (const grayColor of data) {\n rgbaData[offset++] = grayColor;\n rgbaData[offset++] = grayColor;\n rgbaData[offset++] = grayColor;\n }\n }\n return rgbaData;\n } else if (this.numComponents === 3 && this._isColorConversionNeeded) {\n if (forceRGBA) {\n const rgbaData = new Uint8ClampedArray((data.length / 3) * 4);\n return this._convertYccToRgba(data, rgbaData);\n }\n return this._convertYccToRgb(data);\n } else if (this.numComponents === 4) {\n if (this._isColorConversionNeeded) {\n if (forceRGBA) {\n return this._convertYcckToRgba(data);\n }\n if (forceRGB) {\n return this._convertYcckToRgb(data);\n }\n return this._convertYcckToCmyk(data);\n } else if (forceRGBA) {\n return this._convertCmykToRgba(data);\n } else if (forceRGB) {\n return this._convertCmykToRgb(data);\n }\n }\n return data;\n }\n}\n\nexport { JpegImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { JpegImage } from \"./jpg.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JPEG's we use a library to decode these images and the stream behaves\n * like all the other DecodeStreams.\n */\nclass JpegStream extends DecodeStream {\n constructor(stream, maybeLength, params) {\n // Some images may contain 'junk' before the SOI (start-of-image) marker.\n // Note: this seems to mainly affect inline images.\n let ch;\n while ((ch = stream.getByte()) !== -1) {\n // Find the first byte of the SOI marker (0xFFD8).\n if (ch === 0xff) {\n stream.skip(-1); // Reset the stream position to the SOI.\n break;\n }\n }\n super(maybeLength);\n\n this.stream = stream;\n this.dict = stream.dict;\n this.maybeLength = maybeLength;\n this.params = params;\n }\n\n get bytes() {\n // If `this.maybeLength` is null, we'll get the entire stream.\n return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n }\n\n ensureBuffer(requested) {\n // No-op, since `this.readBlock` will always parse the entire image and\n // directly insert all of its data into `this.buffer`.\n }\n\n readBlock() {\n if (this.eof) {\n return;\n }\n const jpegOptions = {\n decodeTransform: undefined,\n colorTransform: undefined,\n };\n\n // Checking if values need to be transformed before conversion.\n const decodeArr = this.dict.getArray(\"D\", \"Decode\");\n if ((this.forceRGBA || this.forceRGB) && Array.isArray(decodeArr)) {\n const bitsPerComponent = this.dict.get(\"BPC\", \"BitsPerComponent\") || 8;\n const decodeArrLength = decodeArr.length;\n const transform = new Int32Array(decodeArrLength);\n let transformNeeded = false;\n const maxValue = (1 << bitsPerComponent) - 1;\n for (let i = 0; i < decodeArrLength; i += 2) {\n transform[i] = ((decodeArr[i + 1] - decodeArr[i]) * 256) | 0;\n transform[i + 1] = (decodeArr[i] * maxValue) | 0;\n if (transform[i] !== 256 || transform[i + 1] !== 0) {\n transformNeeded = true;\n }\n }\n if (transformNeeded) {\n jpegOptions.decodeTransform = transform;\n }\n }\n // Fetching the 'ColorTransform' entry, if it exists.\n if (this.params instanceof Dict) {\n const colorTransform = this.params.get(\"ColorTransform\");\n if (Number.isInteger(colorTransform)) {\n jpegOptions.colorTransform = colorTransform;\n }\n }\n const jpegImage = new JpegImage(jpegOptions);\n\n jpegImage.parse(this.bytes);\n const data = jpegImage.getData({\n width: this.drawWidth,\n height: this.drawHeight,\n forceRGBA: this.forceRGBA,\n forceRGB: this.forceRGB,\n isSourcePDF: true,\n });\n this.buffer = data;\n this.bufferLength = data.length;\n this.eof = true;\n }\n}\n\nexport { JpegStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseException, info, unreachable, warn } from \"../shared/util.js\";\nimport { log2, readUint16, readUint32 } from \"./core_utils.js\";\nimport { ArithmeticDecoder } from \"./arithmetic_decoder.js\";\n\nclass JpxError extends BaseException {\n constructor(msg) {\n super(`JPX error: ${msg}`, \"JpxError\");\n }\n}\n\n// Table E.1\nconst SubbandsGainLog2 = {\n LL: 0,\n LH: 1,\n HL: 1,\n HH: 2,\n};\n\nclass JpxImage {\n constructor() {\n this.failOnCorruptedImage = false;\n }\n\n parse(data) {\n const head = readUint16(data, 0);\n // No box header, immediate start of codestream (SOC)\n if (head === 0xff4f) {\n this.parseCodestream(data, 0, data.length);\n return;\n }\n\n const length = data.length;\n let position = 0;\n while (position < length) {\n let headerSize = 8;\n let lbox = readUint32(data, position);\n const tbox = readUint32(data, position + 4);\n position += headerSize;\n if (lbox === 1) {\n // XLBox: read UInt64 according to spec.\n // JavaScript's int precision of 53 bit should be sufficient here.\n lbox =\n readUint32(data, position) * 4294967296 +\n readUint32(data, position + 4);\n position += 8;\n headerSize += 8;\n }\n if (lbox === 0) {\n lbox = length - position + headerSize;\n }\n if (lbox < headerSize) {\n throw new JpxError(\"Invalid box field size\");\n }\n const dataLength = lbox - headerSize;\n let jumpDataLength = true;\n switch (tbox) {\n case 0x6a703268: // 'jp2h'\n jumpDataLength = false; // parsing child boxes\n break;\n case 0x636f6c72: // 'colr'\n // Colorspaces are not used, the CS from the PDF is used.\n const method = data[position];\n if (method === 1) {\n // enumerated colorspace\n const colorspace = readUint32(data, position + 3);\n switch (colorspace) {\n case 16: // this indicates a sRGB colorspace\n case 17: // this indicates a grayscale colorspace\n case 18: // this indicates a YUV colorspace\n break;\n default:\n warn(\"Unknown colorspace \" + colorspace);\n break;\n }\n } else if (method === 2) {\n info(\"ICC profile not supported\");\n }\n break;\n case 0x6a703263: // 'jp2c'\n this.parseCodestream(data, position, position + dataLength);\n break;\n case 0x6a502020: // 'jP\\024\\024'\n if (readUint32(data, position) !== 0x0d0a870a) {\n warn(\"Invalid JP2 signature\");\n }\n break;\n // The following header types are valid but currently not used:\n case 0x6a501a1a: // 'jP\\032\\032'\n case 0x66747970: // 'ftyp'\n case 0x72726571: // 'rreq'\n case 0x72657320: // 'res '\n case 0x69686472: // 'ihdr'\n break;\n default:\n const headerType = String.fromCharCode(\n (tbox >> 24) & 0xff,\n (tbox >> 16) & 0xff,\n (tbox >> 8) & 0xff,\n tbox & 0xff\n );\n warn(`Unsupported header type ${tbox} (${headerType}).`);\n break;\n }\n if (jumpDataLength) {\n position += dataLength;\n }\n }\n }\n\n parseImageProperties(stream) {\n let newByte = stream.getByte();\n while (newByte >= 0) {\n const oldByte = newByte;\n newByte = stream.getByte();\n const code = (oldByte << 8) | newByte;\n // Image and tile size (SIZ)\n if (code === 0xff51) {\n stream.skip(4);\n const Xsiz = stream.getInt32() >>> 0; // Byte 4\n const Ysiz = stream.getInt32() >>> 0; // Byte 8\n const XOsiz = stream.getInt32() >>> 0; // Byte 12\n const YOsiz = stream.getInt32() >>> 0; // Byte 16\n stream.skip(16);\n const Csiz = stream.getUint16(); // Byte 36\n this.width = Xsiz - XOsiz;\n this.height = Ysiz - YOsiz;\n this.componentsCount = Csiz;\n // Results are always returned as `Uint8ClampedArray`s.\n this.bitsPerComponent = 8;\n return;\n }\n }\n throw new JpxError(\"No size marker found in JPX stream\");\n }\n\n parseCodestream(data, start, end) {\n const context = {};\n let doNotRecover = false;\n try {\n let position = start;\n while (position + 1 < end) {\n const code = readUint16(data, position);\n position += 2;\n\n let length = 0,\n j,\n sqcd,\n spqcds,\n spqcdSize,\n scalarExpounded,\n tile;\n switch (code) {\n case 0xff4f: // Start of codestream (SOC)\n context.mainHeader = true;\n break;\n case 0xffd9: // End of codestream (EOC)\n break;\n case 0xff51: // Image and tile size (SIZ)\n length = readUint16(data, position);\n const siz = {};\n siz.Xsiz = readUint32(data, position + 4);\n siz.Ysiz = readUint32(data, position + 8);\n siz.XOsiz = readUint32(data, position + 12);\n siz.YOsiz = readUint32(data, position + 16);\n siz.XTsiz = readUint32(data, position + 20);\n siz.YTsiz = readUint32(data, position + 24);\n siz.XTOsiz = readUint32(data, position + 28);\n siz.YTOsiz = readUint32(data, position + 32);\n const componentsCount = readUint16(data, position + 36);\n siz.Csiz = componentsCount;\n const components = [];\n j = position + 38;\n for (let i = 0; i < componentsCount; i++) {\n const component = {\n precision: (data[j] & 0x7f) + 1,\n isSigned: !!(data[j] & 0x80),\n XRsiz: data[j + 1],\n YRsiz: data[j + 2],\n };\n j += 3;\n calculateComponentDimensions(component, siz);\n components.push(component);\n }\n context.SIZ = siz;\n context.components = components;\n calculateTileGrids(context, components);\n context.QCC = [];\n context.COC = [];\n break;\n case 0xff5c: // Quantization default (QCD)\n length = readUint16(data, position);\n const qcd = {};\n j = position + 2;\n sqcd = data[j++];\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n qcd.noQuantization = spqcdSize === 8;\n qcd.scalarExpounded = scalarExpounded;\n qcd.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n const spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcd.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCD = qcd;\n } else {\n context.currentTile.QCD = qcd;\n context.currentTile.QCC = [];\n }\n break;\n case 0xff5d: // Quantization component (QCC)\n length = readUint16(data, position);\n const qcc = {};\n j = position + 2;\n let cqcc;\n if (context.SIZ.Csiz < 257) {\n cqcc = data[j++];\n } else {\n cqcc = readUint16(data, j);\n j += 2;\n }\n sqcd = data[j++];\n switch (sqcd & 0x1f) {\n case 0:\n spqcdSize = 8;\n scalarExpounded = true;\n break;\n case 1:\n spqcdSize = 16;\n scalarExpounded = false;\n break;\n case 2:\n spqcdSize = 16;\n scalarExpounded = true;\n break;\n default:\n throw new Error(\"Invalid SQcd value \" + sqcd);\n }\n qcc.noQuantization = spqcdSize === 8;\n qcc.scalarExpounded = scalarExpounded;\n qcc.guardBits = sqcd >> 5;\n spqcds = [];\n while (j < length + position) {\n const spqcd = {};\n if (spqcdSize === 8) {\n spqcd.epsilon = data[j++] >> 3;\n spqcd.mu = 0;\n } else {\n spqcd.epsilon = data[j] >> 3;\n spqcd.mu = ((data[j] & 0x7) << 8) | data[j + 1];\n j += 2;\n }\n spqcds.push(spqcd);\n }\n qcc.SPqcds = spqcds;\n if (context.mainHeader) {\n context.QCC[cqcc] = qcc;\n } else {\n context.currentTile.QCC[cqcc] = qcc;\n }\n break;\n case 0xff52: // Coding style default (COD)\n length = readUint16(data, position);\n const cod = {};\n j = position + 2;\n const scod = data[j++];\n cod.entropyCoderWithCustomPrecincts = !!(scod & 1);\n cod.sopMarkerUsed = !!(scod & 2);\n cod.ephMarkerUsed = !!(scod & 4);\n cod.progressionOrder = data[j++];\n cod.layersCount = readUint16(data, j);\n j += 2;\n cod.multipleComponentTransform = data[j++];\n\n cod.decompositionLevelsCount = data[j++];\n cod.xcb = (data[j++] & 0xf) + 2;\n cod.ycb = (data[j++] & 0xf) + 2;\n const blockStyle = data[j++];\n cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1);\n cod.resetContextProbabilities = !!(blockStyle & 2);\n cod.terminationOnEachCodingPass = !!(blockStyle & 4);\n cod.verticallyStripe = !!(blockStyle & 8);\n cod.predictableTermination = !!(blockStyle & 16);\n cod.segmentationSymbolUsed = !!(blockStyle & 32);\n cod.reversibleTransformation = data[j++];\n if (cod.entropyCoderWithCustomPrecincts) {\n const precinctsSizes = [];\n while (j < length + position) {\n const precinctsSize = data[j++];\n precinctsSizes.push({\n PPx: precinctsSize & 0xf,\n PPy: precinctsSize >> 4,\n });\n }\n cod.precinctsSizes = precinctsSizes;\n }\n const unsupported = [];\n if (cod.selectiveArithmeticCodingBypass) {\n unsupported.push(\"selectiveArithmeticCodingBypass\");\n }\n if (cod.terminationOnEachCodingPass) {\n unsupported.push(\"terminationOnEachCodingPass\");\n }\n if (cod.verticallyStripe) {\n unsupported.push(\"verticallyStripe\");\n }\n if (cod.predictableTermination) {\n unsupported.push(\"predictableTermination\");\n }\n if (unsupported.length > 0) {\n doNotRecover = true;\n warn(`JPX: Unsupported COD options (${unsupported.join(\", \")}).`);\n }\n if (context.mainHeader) {\n context.COD = cod;\n } else {\n context.currentTile.COD = cod;\n context.currentTile.COC = [];\n }\n break;\n case 0xff90: // Start of tile-part (SOT)\n length = readUint16(data, position);\n tile = {};\n tile.index = readUint16(data, position + 2);\n tile.length = readUint32(data, position + 4);\n tile.dataEnd = tile.length + position - 2;\n tile.partIndex = data[position + 8];\n tile.partsCount = data[position + 9];\n\n context.mainHeader = false;\n if (tile.partIndex === 0) {\n // reset component specific settings\n tile.COD = context.COD;\n tile.COC = context.COC.slice(0); // clone of the global COC\n tile.QCD = context.QCD;\n tile.QCC = context.QCC.slice(0); // clone of the global COC\n }\n context.currentTile = tile;\n break;\n case 0xff93: // Start of data (SOD)\n tile = context.currentTile;\n if (tile.partIndex === 0) {\n initializeTile(context, tile.index);\n buildPackets(context);\n }\n\n // moving to the end of the data\n length = tile.dataEnd - position;\n parseTilePackets(context, data, position, length);\n break;\n case 0xff53: // Coding style component (COC)\n warn(\"JPX: Codestream code 0xFF53 (COC) is not implemented.\");\n /* falls through */\n case 0xff55: // Tile-part lengths, main header (TLM)\n case 0xff57: // Packet length, main header (PLM)\n case 0xff58: // Packet length, tile-part header (PLT)\n case 0xff64: // Comment (COM)\n length = readUint16(data, position);\n // skipping content\n break;\n default:\n throw new Error(\"Unknown codestream code: \" + code.toString(16));\n }\n position += length;\n }\n } catch (e) {\n if (doNotRecover || this.failOnCorruptedImage) {\n throw new JpxError(e.message);\n } else {\n warn(`JPX: Trying to recover from: \"${e.message}\".`);\n }\n }\n this.tiles = transformComponents(context);\n this.width = context.SIZ.Xsiz - context.SIZ.XOsiz;\n this.height = context.SIZ.Ysiz - context.SIZ.YOsiz;\n this.componentsCount = context.SIZ.Csiz;\n }\n}\n\nfunction calculateComponentDimensions(component, siz) {\n // Section B.2 Component mapping\n component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);\n component.x1 = Math.ceil(siz.Xsiz / component.XRsiz);\n component.y0 = Math.ceil(siz.YOsiz / component.YRsiz);\n component.y1 = Math.ceil(siz.Ysiz / component.YRsiz);\n component.width = component.x1 - component.x0;\n component.height = component.y1 - component.y0;\n}\nfunction calculateTileGrids(context, components) {\n const siz = context.SIZ;\n // Section B.3 Division into tile and tile-components\n const tiles = [];\n let tile;\n const numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz);\n const numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz);\n for (let q = 0; q < numYtiles; q++) {\n for (let p = 0; p < numXtiles; p++) {\n tile = {};\n tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz);\n tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz);\n tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz);\n tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz);\n tile.width = tile.tx1 - tile.tx0;\n tile.height = tile.ty1 - tile.ty0;\n tile.components = [];\n tiles.push(tile);\n }\n }\n context.tiles = tiles;\n\n const componentsCount = siz.Csiz;\n for (let i = 0, ii = componentsCount; i < ii; i++) {\n const component = components[i];\n for (let j = 0, jj = tiles.length; j < jj; j++) {\n const tileComponent = {};\n tile = tiles[j];\n tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz);\n tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz);\n tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz);\n tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz);\n tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0;\n tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0;\n tile.components[i] = tileComponent;\n }\n }\n}\nfunction getBlocksDimensions(context, component, r) {\n const codOrCoc = component.codingStyleParameters;\n const result = {};\n if (!codOrCoc.entropyCoderWithCustomPrecincts) {\n result.PPx = 15;\n result.PPy = 15;\n } else {\n result.PPx = codOrCoc.precinctsSizes[r].PPx;\n result.PPy = codOrCoc.precinctsSizes[r].PPy;\n }\n // calculate codeblock size as described in section B.7\n result.xcb_ =\n r > 0\n ? Math.min(codOrCoc.xcb, result.PPx - 1)\n : Math.min(codOrCoc.xcb, result.PPx);\n result.ycb_ =\n r > 0\n ? Math.min(codOrCoc.ycb, result.PPy - 1)\n : Math.min(codOrCoc.ycb, result.PPy);\n return result;\n}\nfunction buildPrecincts(context, resolution, dimensions) {\n // Section B.6 Division resolution to precincts\n const precinctWidth = 1 << dimensions.PPx;\n const precinctHeight = 1 << dimensions.PPy;\n // Jasper introduces codeblock groups for mapping each subband codeblocks\n // to precincts. Precinct partition divides a resolution according to width\n // and height parameters. The subband that belongs to the resolution level\n // has a different size than the level, unless it is the zero resolution.\n\n // From Jasper documentation: jpeg2000.pdf, section K: Tier-2 coding:\n // The precinct partitioning for a particular subband is derived from a\n // partitioning of its parent LL band (i.e., the LL band at the next higher\n // resolution level)... The LL band associated with each resolution level is\n // divided into precincts... Each of the resulting precinct regions is then\n // mapped into its child subbands (if any) at the next lower resolution\n // level. This is accomplished by using the coordinate transformation\n // (u, v) = (ceil(x/2), ceil(y/2)) where (x, y) and (u, v) are the\n // coordinates of a point in the LL band and child subband, respectively.\n const isZeroRes = resolution.resLevel === 0;\n const precinctWidthInSubband = 1 << (dimensions.PPx + (isZeroRes ? 0 : -1));\n const precinctHeightInSubband = 1 << (dimensions.PPy + (isZeroRes ? 0 : -1));\n const numprecinctswide =\n resolution.trx1 > resolution.trx0\n ? Math.ceil(resolution.trx1 / precinctWidth) -\n Math.floor(resolution.trx0 / precinctWidth)\n : 0;\n const numprecinctshigh =\n resolution.try1 > resolution.try0\n ? Math.ceil(resolution.try1 / precinctHeight) -\n Math.floor(resolution.try0 / precinctHeight)\n : 0;\n const numprecincts = numprecinctswide * numprecinctshigh;\n\n resolution.precinctParameters = {\n precinctWidth,\n precinctHeight,\n numprecinctswide,\n numprecinctshigh,\n numprecincts,\n precinctWidthInSubband,\n precinctHeightInSubband,\n };\n}\nfunction buildCodeblocks(context, subband, dimensions) {\n // Section B.7 Division sub-band into code-blocks\n const xcb_ = dimensions.xcb_;\n const ycb_ = dimensions.ycb_;\n const codeblockWidth = 1 << xcb_;\n const codeblockHeight = 1 << ycb_;\n const cbx0 = subband.tbx0 >> xcb_;\n const cby0 = subband.tby0 >> ycb_;\n const cbx1 = (subband.tbx1 + codeblockWidth - 1) >> xcb_;\n const cby1 = (subband.tby1 + codeblockHeight - 1) >> ycb_;\n const precinctParameters = subband.resolution.precinctParameters;\n const codeblocks = [];\n const precincts = [];\n let i, j, codeblock, precinctNumber;\n for (j = cby0; j < cby1; j++) {\n for (i = cbx0; i < cbx1; i++) {\n codeblock = {\n cbx: i,\n cby: j,\n tbx0: codeblockWidth * i,\n tby0: codeblockHeight * j,\n tbx1: codeblockWidth * (i + 1),\n tby1: codeblockHeight * (j + 1),\n };\n\n codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0);\n codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0);\n codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1);\n codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1);\n\n // Calculate precinct number for this codeblock, codeblock position\n // should be relative to its subband, use actual dimension and position\n // See comment about codeblock group width and height\n const pi = Math.floor(\n (codeblock.tbx0_ - subband.tbx0) /\n precinctParameters.precinctWidthInSubband\n );\n const pj = Math.floor(\n (codeblock.tby0_ - subband.tby0) /\n precinctParameters.precinctHeightInSubband\n );\n precinctNumber = pi + pj * precinctParameters.numprecinctswide;\n\n codeblock.precinctNumber = precinctNumber;\n codeblock.subbandType = subband.type;\n codeblock.Lblock = 3;\n\n if (\n codeblock.tbx1_ <= codeblock.tbx0_ ||\n codeblock.tby1_ <= codeblock.tby0_\n ) {\n continue;\n }\n codeblocks.push(codeblock);\n // building precinct for the sub-band\n let precinct = precincts[precinctNumber];\n if (precinct !== undefined) {\n if (i < precinct.cbxMin) {\n precinct.cbxMin = i;\n } else if (i > precinct.cbxMax) {\n precinct.cbxMax = i;\n }\n if (j < precinct.cbyMin) {\n precinct.cbxMin = j;\n } else if (j > precinct.cbyMax) {\n precinct.cbyMax = j;\n }\n } else {\n precincts[precinctNumber] = precinct = {\n cbxMin: i,\n cbyMin: j,\n cbxMax: i,\n cbyMax: j,\n };\n }\n codeblock.precinct = precinct;\n }\n }\n subband.codeblockParameters = {\n codeblockWidth: xcb_,\n codeblockHeight: ycb_,\n numcodeblockwide: cbx1 - cbx0 + 1,\n numcodeblockhigh: cby1 - cby0 + 1,\n };\n subband.codeblocks = codeblocks;\n subband.precincts = precincts;\n}\nfunction createPacket(resolution, precinctNumber, layerNumber) {\n const precinctCodeblocks = [];\n // Section B.10.8 Order of info in packet\n const subbands = resolution.subbands;\n // sub-bands already ordered in 'LL', 'HL', 'LH', and 'HH' sequence\n for (let i = 0, ii = subbands.length; i < ii; i++) {\n const subband = subbands[i];\n const codeblocks = subband.codeblocks;\n for (let j = 0, jj = codeblocks.length; j < jj; j++) {\n const codeblock = codeblocks[j];\n if (codeblock.precinctNumber !== precinctNumber) {\n continue;\n }\n precinctCodeblocks.push(codeblock);\n }\n }\n return {\n layerNumber,\n codeblocks: precinctCodeblocks,\n };\n}\nfunction LayerResolutionComponentPositionIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let maxDecompositionLevelsCount = 0;\n for (let q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount\n );\n }\n\n let l = 0,\n r = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.1 Layer-resolution-component-position\n for (; l < layersCount; l++) {\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; i < componentsCount; i++) {\n const component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts; ) {\n const packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n r = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ResolutionLayerComponentPositionIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let maxDecompositionLevelsCount = 0;\n for (let q = 0; q < componentsCount; q++) {\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n tile.components[q].codingStyleParameters.decompositionLevelsCount\n );\n }\n\n let r = 0,\n l = 0,\n i = 0,\n k = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.2 Resolution-layer-component-position\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; l < layersCount; l++) {\n for (; i < componentsCount; i++) {\n const component = tile.components[i];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n for (; k < numprecincts; ) {\n const packet = createPacket(resolution, k, l);\n k++;\n return packet;\n }\n k = 0;\n }\n i = 0;\n }\n l = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ResolutionPositionComponentLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n let l, r, c, p;\n let maxDecompositionLevelsCount = 0;\n for (c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n maxDecompositionLevelsCount = Math.max(\n maxDecompositionLevelsCount,\n component.codingStyleParameters.decompositionLevelsCount\n );\n }\n const maxNumPrecinctsInLevel = new Int32Array(\n maxDecompositionLevelsCount + 1\n );\n for (r = 0; r <= maxDecompositionLevelsCount; ++r) {\n let maxNumPrecincts = 0;\n for (c = 0; c < componentsCount; ++c) {\n const resolutions = tile.components[c].resolutions;\n if (r < resolutions.length) {\n maxNumPrecincts = Math.max(\n maxNumPrecincts,\n resolutions[r].precinctParameters.numprecincts\n );\n }\n }\n maxNumPrecinctsInLevel[r] = maxNumPrecincts;\n }\n l = 0;\n r = 0;\n c = 0;\n p = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.3 Resolution-position-component-layer\n for (; r <= maxDecompositionLevelsCount; r++) {\n for (; p < maxNumPrecinctsInLevel[r]; p++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n if (r > component.codingStyleParameters.decompositionLevelsCount) {\n continue;\n }\n const resolution = component.resolutions[r];\n const numprecincts = resolution.precinctParameters.numprecincts;\n if (p >= numprecincts) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, p, l);\n l++;\n return packet;\n }\n l = 0;\n }\n c = 0;\n }\n p = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction PositionComponentResolutionLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n const precinctsSizes = getPrecinctSizesInImageScale(tile);\n const precinctsIterationSizes = precinctsSizes;\n let l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.4 Position-component-resolution-layer\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n for (; r <= decompositionLevelsCount; r++) {\n const resolution = component.resolutions[r];\n const sizeInImageScale =\n precinctsSizes.components[c].resolutions[r];\n const k = getPrecinctIndexIfExist(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution\n );\n if (k === null) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n c = 0;\n }\n px = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction ComponentPositionResolutionLayerIterator(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const layersCount = tile.codingStyleDefaultParameters.layersCount;\n const componentsCount = siz.Csiz;\n const precinctsSizes = getPrecinctSizesInImageScale(tile);\n let l = 0,\n r = 0,\n c = 0,\n px = 0,\n py = 0;\n\n this.nextPacket = function JpxImage_nextPacket() {\n // Section B.12.1.5 Component-position-resolution-layer\n for (; c < componentsCount; ++c) {\n const component = tile.components[c];\n const precinctsIterationSizes = precinctsSizes.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n for (; py < precinctsIterationSizes.maxNumHigh; py++) {\n for (; px < precinctsIterationSizes.maxNumWide; px++) {\n for (; r <= decompositionLevelsCount; r++) {\n const resolution = component.resolutions[r];\n const sizeInImageScale = precinctsIterationSizes.resolutions[r];\n const k = getPrecinctIndexIfExist(\n px,\n py,\n sizeInImageScale,\n precinctsIterationSizes,\n resolution\n );\n if (k === null) {\n continue;\n }\n for (; l < layersCount; ) {\n const packet = createPacket(resolution, k, l);\n l++;\n return packet;\n }\n l = 0;\n }\n r = 0;\n }\n px = 0;\n }\n py = 0;\n }\n throw new JpxError(\"Out of packets\");\n };\n}\nfunction getPrecinctIndexIfExist(\n pxIndex,\n pyIndex,\n sizeInImageScale,\n precinctIterationSizes,\n resolution\n) {\n const posX = pxIndex * precinctIterationSizes.minWidth;\n const posY = pyIndex * precinctIterationSizes.minHeight;\n if (\n posX % sizeInImageScale.width !== 0 ||\n posY % sizeInImageScale.height !== 0\n ) {\n return null;\n }\n const startPrecinctRowIndex =\n (posY / sizeInImageScale.width) *\n resolution.precinctParameters.numprecinctswide;\n return posX / sizeInImageScale.height + startPrecinctRowIndex;\n}\nfunction getPrecinctSizesInImageScale(tile) {\n const componentsCount = tile.components.length;\n let minWidth = Number.MAX_VALUE;\n let minHeight = Number.MAX_VALUE;\n let maxNumWide = 0;\n let maxNumHigh = 0;\n const sizePerComponent = new Array(componentsCount);\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n const sizePerResolution = new Array(decompositionLevelsCount + 1);\n let minWidthCurrentComponent = Number.MAX_VALUE;\n let minHeightCurrentComponent = Number.MAX_VALUE;\n let maxNumWideCurrentComponent = 0;\n let maxNumHighCurrentComponent = 0;\n let scale = 1;\n for (let r = decompositionLevelsCount; r >= 0; --r) {\n const resolution = component.resolutions[r];\n const widthCurrentResolution =\n scale * resolution.precinctParameters.precinctWidth;\n const heightCurrentResolution =\n scale * resolution.precinctParameters.precinctHeight;\n minWidthCurrentComponent = Math.min(\n minWidthCurrentComponent,\n widthCurrentResolution\n );\n minHeightCurrentComponent = Math.min(\n minHeightCurrentComponent,\n heightCurrentResolution\n );\n maxNumWideCurrentComponent = Math.max(\n maxNumWideCurrentComponent,\n resolution.precinctParameters.numprecinctswide\n );\n maxNumHighCurrentComponent = Math.max(\n maxNumHighCurrentComponent,\n resolution.precinctParameters.numprecinctshigh\n );\n sizePerResolution[r] = {\n width: widthCurrentResolution,\n height: heightCurrentResolution,\n };\n scale <<= 1;\n }\n minWidth = Math.min(minWidth, minWidthCurrentComponent);\n minHeight = Math.min(minHeight, minHeightCurrentComponent);\n maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent);\n maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent);\n sizePerComponent[c] = {\n resolutions: sizePerResolution,\n minWidth: minWidthCurrentComponent,\n minHeight: minHeightCurrentComponent,\n maxNumWide: maxNumWideCurrentComponent,\n maxNumHigh: maxNumHighCurrentComponent,\n };\n }\n return {\n components: sizePerComponent,\n minWidth,\n minHeight,\n maxNumWide,\n maxNumHigh,\n };\n}\nfunction buildPackets(context) {\n const siz = context.SIZ;\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const componentsCount = siz.Csiz;\n // Creating resolutions and sub-bands for each component\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const decompositionLevelsCount =\n component.codingStyleParameters.decompositionLevelsCount;\n // Section B.5 Resolution levels and sub-bands\n const resolutions = [];\n const subbands = [];\n for (let r = 0; r <= decompositionLevelsCount; r++) {\n const blocksDimensions = getBlocksDimensions(context, component, r);\n const resolution = {};\n const scale = 1 << (decompositionLevelsCount - r);\n resolution.trx0 = Math.ceil(component.tcx0 / scale);\n resolution.try0 = Math.ceil(component.tcy0 / scale);\n resolution.trx1 = Math.ceil(component.tcx1 / scale);\n resolution.try1 = Math.ceil(component.tcy1 / scale);\n resolution.resLevel = r;\n buildPrecincts(context, resolution, blocksDimensions);\n resolutions.push(resolution);\n\n let subband;\n if (r === 0) {\n // one sub-band (LL) with last decomposition\n subband = {};\n subband.type = \"LL\";\n subband.tbx0 = Math.ceil(component.tcx0 / scale);\n subband.tby0 = Math.ceil(component.tcy0 / scale);\n subband.tbx1 = Math.ceil(component.tcx1 / scale);\n subband.tby1 = Math.ceil(component.tcy1 / scale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolution.subbands = [subband];\n } else {\n const bscale = 1 << (decompositionLevelsCount - r + 1);\n const resolutionSubbands = [];\n // three sub-bands (HL, LH and HH) with rest of decompositions\n subband = {};\n subband.type = \"HL\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n subband = {};\n subband.type = \"LH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n subband = {};\n subband.type = \"HH\";\n subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5);\n subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5);\n subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5);\n subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5);\n subband.resolution = resolution;\n buildCodeblocks(context, subband, blocksDimensions);\n subbands.push(subband);\n resolutionSubbands.push(subband);\n\n resolution.subbands = resolutionSubbands;\n }\n }\n component.resolutions = resolutions;\n component.subbands = subbands;\n }\n // Generate the packets sequence\n const progressionOrder = tile.codingStyleDefaultParameters.progressionOrder;\n switch (progressionOrder) {\n case 0:\n tile.packetsIterator = new LayerResolutionComponentPositionIterator(\n context\n );\n break;\n case 1:\n tile.packetsIterator = new ResolutionLayerComponentPositionIterator(\n context\n );\n break;\n case 2:\n tile.packetsIterator = new ResolutionPositionComponentLayerIterator(\n context\n );\n break;\n case 3:\n tile.packetsIterator = new PositionComponentResolutionLayerIterator(\n context\n );\n break;\n case 4:\n tile.packetsIterator = new ComponentPositionResolutionLayerIterator(\n context\n );\n break;\n default:\n throw new JpxError(`Unsupported progression order ${progressionOrder}`);\n }\n}\nfunction parseTilePackets(context, data, offset, dataLength) {\n let position = 0;\n let buffer,\n bufferSize = 0,\n skipNextBit = false;\n function readBits(count) {\n while (bufferSize < count) {\n const b = data[offset + position];\n position++;\n if (skipNextBit) {\n buffer = (buffer << 7) | b;\n bufferSize += 7;\n skipNextBit = false;\n } else {\n buffer = (buffer << 8) | b;\n bufferSize += 8;\n }\n if (b === 0xff) {\n skipNextBit = true;\n }\n }\n bufferSize -= count;\n return (buffer >>> bufferSize) & ((1 << count) - 1);\n }\n function skipMarkerIfEqual(value) {\n if (\n data[offset + position - 1] === 0xff &&\n data[offset + position] === value\n ) {\n skipBytes(1);\n return true;\n } else if (\n data[offset + position] === 0xff &&\n data[offset + position + 1] === value\n ) {\n skipBytes(2);\n return true;\n }\n return false;\n }\n function skipBytes(count) {\n position += count;\n }\n function alignToByte() {\n bufferSize = 0;\n if (skipNextBit) {\n position++;\n skipNextBit = false;\n }\n }\n function readCodingpasses() {\n if (readBits(1) === 0) {\n return 1;\n }\n if (readBits(1) === 0) {\n return 2;\n }\n let value = readBits(2);\n if (value < 3) {\n return value + 3;\n }\n value = readBits(5);\n if (value < 31) {\n return value + 6;\n }\n value = readBits(7);\n return value + 37;\n }\n const tileIndex = context.currentTile.index;\n const tile = context.tiles[tileIndex];\n const sopMarkerUsed = context.COD.sopMarkerUsed;\n const ephMarkerUsed = context.COD.ephMarkerUsed;\n const packetsIterator = tile.packetsIterator;\n while (position < dataLength) {\n alignToByte();\n if (sopMarkerUsed && skipMarkerIfEqual(0x91)) {\n // Skip also marker segment length and packet sequence ID\n skipBytes(4);\n }\n const packet = packetsIterator.nextPacket();\n if (!readBits(1)) {\n continue;\n }\n const layerNumber = packet.layerNumber,\n queue = [];\n let codeblock;\n for (let i = 0, ii = packet.codeblocks.length; i < ii; i++) {\n codeblock = packet.codeblocks[i];\n let precinct = codeblock.precinct;\n const codeblockColumn = codeblock.cbx - precinct.cbxMin;\n const codeblockRow = codeblock.cby - precinct.cbyMin;\n let codeblockIncluded = false;\n let firstTimeInclusion = false;\n let valueReady, zeroBitPlanesTree;\n if (codeblock.included !== undefined) {\n codeblockIncluded = !!readBits(1);\n } else {\n // reading inclusion tree\n precinct = codeblock.precinct;\n let inclusionTree;\n if (precinct.inclusionTree !== undefined) {\n inclusionTree = precinct.inclusionTree;\n } else {\n // building inclusion and zero bit-planes trees\n const width = precinct.cbxMax - precinct.cbxMin + 1;\n const height = precinct.cbyMax - precinct.cbyMin + 1;\n inclusionTree = new InclusionTree(width, height, layerNumber);\n zeroBitPlanesTree = new TagTree(width, height);\n precinct.inclusionTree = inclusionTree;\n precinct.zeroBitPlanesTree = zeroBitPlanesTree;\n for (let l = 0; l < layerNumber; l++) {\n if (readBits(1) !== 0) {\n throw new JpxError(\"Invalid tag tree\");\n }\n }\n }\n\n if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) {\n while (true) {\n if (readBits(1)) {\n valueReady = !inclusionTree.nextLevel();\n if (valueReady) {\n codeblock.included = true;\n codeblockIncluded = firstTimeInclusion = true;\n break;\n }\n } else {\n inclusionTree.incrementValue(layerNumber);\n break;\n }\n }\n }\n }\n if (!codeblockIncluded) {\n continue;\n }\n if (firstTimeInclusion) {\n zeroBitPlanesTree = precinct.zeroBitPlanesTree;\n zeroBitPlanesTree.reset(codeblockColumn, codeblockRow);\n while (true) {\n if (readBits(1)) {\n valueReady = !zeroBitPlanesTree.nextLevel();\n if (valueReady) {\n break;\n }\n } else {\n zeroBitPlanesTree.incrementValue();\n }\n }\n codeblock.zeroBitPlanes = zeroBitPlanesTree.value;\n }\n const codingpasses = readCodingpasses();\n while (readBits(1)) {\n codeblock.Lblock++;\n }\n const codingpassesLog2 = log2(codingpasses);\n // rounding down log2\n const bits =\n (codingpasses < 1 << codingpassesLog2\n ? codingpassesLog2 - 1\n : codingpassesLog2) + codeblock.Lblock;\n const codedDataLength = readBits(bits);\n queue.push({\n codeblock,\n codingpasses,\n dataLength: codedDataLength,\n });\n }\n alignToByte();\n if (ephMarkerUsed) {\n skipMarkerIfEqual(0x92);\n }\n while (queue.length > 0) {\n const packetItem = queue.shift();\n codeblock = packetItem.codeblock;\n if (codeblock.data === undefined) {\n codeblock.data = [];\n }\n codeblock.data.push({\n data,\n start: offset + position,\n end: offset + position + packetItem.dataLength,\n codingpasses: packetItem.codingpasses,\n });\n position += packetItem.dataLength;\n }\n }\n return position;\n}\nfunction copyCoefficients(\n coefficients,\n levelWidth,\n levelHeight,\n subband,\n delta,\n mb,\n reversible,\n segmentationSymbolUsed,\n resetContextProbabilities\n) {\n const x0 = subband.tbx0;\n const y0 = subband.tby0;\n const width = subband.tbx1 - subband.tbx0;\n const codeblocks = subband.codeblocks;\n const right = subband.type.charAt(0) === \"H\" ? 1 : 0;\n const bottom = subband.type.charAt(1) === \"H\" ? levelWidth : 0;\n\n for (let i = 0, ii = codeblocks.length; i < ii; ++i) {\n const codeblock = codeblocks[i];\n const blockWidth = codeblock.tbx1_ - codeblock.tbx0_;\n const blockHeight = codeblock.tby1_ - codeblock.tby0_;\n if (blockWidth === 0 || blockHeight === 0) {\n continue;\n }\n if (codeblock.data === undefined) {\n continue;\n }\n\n const bitModel = new BitModel(\n blockWidth,\n blockHeight,\n codeblock.subbandType,\n codeblock.zeroBitPlanes,\n mb\n );\n let currentCodingpassType = 2; // first bit plane starts from cleanup\n\n // collect data\n const data = codeblock.data;\n let totalLength = 0,\n codingpasses = 0;\n let j, jj, dataItem;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n totalLength += dataItem.end - dataItem.start;\n codingpasses += dataItem.codingpasses;\n }\n const encodedData = new Uint8Array(totalLength);\n let position = 0;\n for (j = 0, jj = data.length; j < jj; j++) {\n dataItem = data[j];\n const chunk = dataItem.data.subarray(dataItem.start, dataItem.end);\n encodedData.set(chunk, position);\n position += chunk.length;\n }\n // decoding the item\n const decoder = new ArithmeticDecoder(encodedData, 0, totalLength);\n bitModel.setDecoder(decoder);\n\n for (j = 0; j < codingpasses; j++) {\n switch (currentCodingpassType) {\n case 0:\n bitModel.runSignificancePropagationPass();\n break;\n case 1:\n bitModel.runMagnitudeRefinementPass();\n break;\n case 2:\n bitModel.runCleanupPass();\n if (segmentationSymbolUsed) {\n bitModel.checkSegmentationSymbol();\n }\n break;\n }\n\n if (resetContextProbabilities) {\n bitModel.reset();\n }\n\n currentCodingpassType = (currentCodingpassType + 1) % 3;\n }\n\n let offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width;\n const sign = bitModel.coefficentsSign;\n const magnitude = bitModel.coefficentsMagnitude;\n const bitsDecoded = bitModel.bitsDecoded;\n const magnitudeCorrection = reversible ? 0 : 0.5;\n let k, n, nb;\n position = 0;\n // Do the interleaving of Section F.3.3 here, so we do not need\n // to copy later. LL level is not interleaved, just copied.\n const interleave = subband.type !== \"LL\";\n for (j = 0; j < blockHeight; j++) {\n const row = (offset / width) | 0; // row in the non-interleaved subband\n const levelOffset = 2 * row * (levelWidth - width) + right + bottom;\n for (k = 0; k < blockWidth; k++) {\n n = magnitude[position];\n if (n !== 0) {\n n = (n + magnitudeCorrection) * delta;\n if (sign[position] !== 0) {\n n = -n;\n }\n nb = bitsDecoded[position];\n const pos = interleave ? levelOffset + (offset << 1) : offset;\n coefficients[pos] = reversible && nb >= mb ? n : n * (1 << (mb - nb));\n }\n offset++;\n position++;\n }\n offset += width - blockWidth;\n }\n }\n}\nfunction transformTile(context, tile, c) {\n const component = tile.components[c];\n const codingStyleParameters = component.codingStyleParameters;\n const quantizationParameters = component.quantizationParameters;\n const decompositionLevelsCount =\n codingStyleParameters.decompositionLevelsCount;\n const spqcds = quantizationParameters.SPqcds;\n const scalarExpounded = quantizationParameters.scalarExpounded;\n const guardBits = quantizationParameters.guardBits;\n const segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed;\n const resetContextProbabilities =\n codingStyleParameters.resetContextProbabilities;\n const precision = context.components[c].precision;\n\n const reversible = codingStyleParameters.reversibleTransformation;\n const transform = reversible\n ? new ReversibleTransform()\n : new IrreversibleTransform();\n\n const subbandCoefficients = [];\n let b = 0;\n for (let i = 0; i <= decompositionLevelsCount; i++) {\n const resolution = component.resolutions[i];\n\n const width = resolution.trx1 - resolution.trx0;\n const height = resolution.try1 - resolution.try0;\n // Allocate space for the whole sublevel.\n const coefficients = new Float32Array(width * height);\n\n for (let j = 0, jj = resolution.subbands.length; j < jj; j++) {\n let mu, epsilon;\n if (!scalarExpounded) {\n // formula E-5\n mu = spqcds[0].mu;\n epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0);\n } else {\n mu = spqcds[b].mu;\n epsilon = spqcds[b].epsilon;\n b++;\n }\n\n const subband = resolution.subbands[j];\n const gainLog2 = SubbandsGainLog2[subband.type];\n\n // calculate quantization coefficient (Section E.1.1.1)\n const delta = reversible\n ? 1\n : 2 ** (precision + gainLog2 - epsilon) * (1 + mu / 2048);\n const mb = guardBits + epsilon - 1;\n\n // In the first resolution level, copyCoefficients will fill the\n // whole array with coefficients. In the succeeding passes,\n // copyCoefficients will consecutively fill in the values that belong\n // to the interleaved positions of the HL, LH, and HH coefficients.\n // The LL coefficients will then be interleaved in Transform.iterate().\n copyCoefficients(\n coefficients,\n width,\n height,\n subband,\n delta,\n mb,\n reversible,\n segmentationSymbolUsed,\n resetContextProbabilities\n );\n }\n subbandCoefficients.push({\n width,\n height,\n items: coefficients,\n });\n }\n\n const result = transform.calculate(\n subbandCoefficients,\n component.tcx0,\n component.tcy0\n );\n return {\n left: component.tcx0,\n top: component.tcy0,\n width: result.width,\n height: result.height,\n items: result.items,\n };\n}\nfunction transformComponents(context) {\n const siz = context.SIZ;\n const components = context.components;\n const componentsCount = siz.Csiz;\n const resultImages = [];\n for (let i = 0, ii = context.tiles.length; i < ii; i++) {\n const tile = context.tiles[i];\n const transformedTiles = [];\n for (let c = 0; c < componentsCount; c++) {\n transformedTiles[c] = transformTile(context, tile, c);\n }\n const tile0 = transformedTiles[0];\n const out = new Uint8ClampedArray(tile0.items.length * componentsCount);\n const result = {\n left: tile0.left,\n top: tile0.top,\n width: tile0.width,\n height: tile0.height,\n items: out,\n };\n\n // Section G.2.2 Inverse multi component transform\n let shift, offset;\n let pos = 0,\n j,\n jj,\n y0,\n y1,\n y2;\n if (tile.codingStyleDefaultParameters.multipleComponentTransform) {\n const fourComponents = componentsCount === 4;\n const y0items = transformedTiles[0].items;\n const y1items = transformedTiles[1].items;\n const y2items = transformedTiles[2].items;\n const y3items = fourComponents ? transformedTiles[3].items : null;\n\n // HACK: The multiple component transform formulas below assume that\n // all components have the same precision. With this in mind, we\n // compute shift and offset only once.\n shift = components[0].precision - 8;\n offset = (128 << shift) + 0.5;\n\n const component0 = tile.components[0];\n const alpha01 = componentsCount - 3;\n jj = y0items.length;\n if (!component0.codingStyleParameters.reversibleTransformation) {\n // inverse irreversible multiple component transform\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n out[pos++] = (y0 + 1.402 * y2) >> shift;\n out[pos++] = (y0 - 0.34413 * y1 - 0.71414 * y2) >> shift;\n out[pos++] = (y0 + 1.772 * y1) >> shift;\n }\n } else {\n // inverse reversible multiple component transform\n for (j = 0; j < jj; j++, pos += alpha01) {\n y0 = y0items[j] + offset;\n y1 = y1items[j];\n y2 = y2items[j];\n const g = y0 - ((y2 + y1) >> 2);\n\n out[pos++] = (g + y2) >> shift;\n out[pos++] = g >> shift;\n out[pos++] = (g + y1) >> shift;\n }\n }\n if (fourComponents) {\n for (j = 0, pos = 3; j < jj; j++, pos += 4) {\n out[pos] = (y3items[j] + offset) >> shift;\n }\n }\n } else {\n // no multi-component transform\n for (let c = 0; c < componentsCount; c++) {\n const items = transformedTiles[c].items;\n shift = components[c].precision - 8;\n offset = (128 << shift) + 0.5;\n for (pos = c, j = 0, jj = items.length; j < jj; j++) {\n out[pos] = (items[j] + offset) >> shift;\n pos += componentsCount;\n }\n }\n }\n resultImages.push(result);\n }\n return resultImages;\n}\nfunction initializeTile(context, tileIndex) {\n const siz = context.SIZ;\n const componentsCount = siz.Csiz;\n const tile = context.tiles[tileIndex];\n for (let c = 0; c < componentsCount; c++) {\n const component = tile.components[c];\n const qcdOrQcc =\n context.currentTile.QCC[c] !== undefined\n ? context.currentTile.QCC[c]\n : context.currentTile.QCD;\n component.quantizationParameters = qcdOrQcc;\n const codOrCoc =\n context.currentTile.COC[c] !== undefined\n ? context.currentTile.COC[c]\n : context.currentTile.COD;\n component.codingStyleParameters = codOrCoc;\n }\n tile.codingStyleDefaultParameters = context.currentTile.COD;\n}\n\n// Section B.10.2 Tag trees\nclass TagTree {\n constructor(width, height) {\n const levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\n for (let i = 0; i < levelsLength; i++) {\n const level = {\n width,\n height,\n items: [],\n };\n this.levels.push(level);\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n reset(i, j) {\n let currentLevel = 0,\n value = 0,\n level;\n while (currentLevel < this.levels.length) {\n level = this.levels[currentLevel];\n const index = i + j * level.width;\n if (level.items[index] !== undefined) {\n value = level.items[index];\n break;\n }\n level.index = index;\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n currentLevel--;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n this.currentLevel = currentLevel;\n delete this.value;\n }\n\n incrementValue() {\n const level = this.levels[this.currentLevel];\n level.items[level.index]++;\n }\n\n nextLevel() {\n let currentLevel = this.currentLevel;\n let level = this.levels[currentLevel];\n const value = level.items[level.index];\n currentLevel--;\n if (currentLevel < 0) {\n this.value = value;\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n}\n\nclass InclusionTree {\n constructor(width, height, defaultValue) {\n const levelsLength = log2(Math.max(width, height)) + 1;\n this.levels = [];\n for (let i = 0; i < levelsLength; i++) {\n const items = new Uint8Array(width * height);\n for (let j = 0, jj = items.length; j < jj; j++) {\n items[j] = defaultValue;\n }\n\n const level = {\n width,\n height,\n items,\n };\n this.levels.push(level);\n\n width = Math.ceil(width / 2);\n height = Math.ceil(height / 2);\n }\n }\n\n reset(i, j, stopValue) {\n let currentLevel = 0;\n while (currentLevel < this.levels.length) {\n const level = this.levels[currentLevel];\n const index = i + j * level.width;\n level.index = index;\n const value = level.items[index];\n\n if (value === 0xff) {\n break;\n }\n\n if (value > stopValue) {\n this.currentLevel = currentLevel;\n // already know about this one, propagating the value to top levels\n this.propagateValues();\n return false;\n }\n\n i >>= 1;\n j >>= 1;\n currentLevel++;\n }\n this.currentLevel = currentLevel - 1;\n return true;\n }\n\n incrementValue(stopValue) {\n const level = this.levels[this.currentLevel];\n level.items[level.index] = stopValue + 1;\n this.propagateValues();\n }\n\n propagateValues() {\n let levelIndex = this.currentLevel;\n let level = this.levels[levelIndex];\n const currentValue = level.items[level.index];\n while (--levelIndex >= 0) {\n level = this.levels[levelIndex];\n level.items[level.index] = currentValue;\n }\n }\n\n nextLevel() {\n let currentLevel = this.currentLevel;\n let level = this.levels[currentLevel];\n const value = level.items[level.index];\n level.items[level.index] = 0xff;\n currentLevel--;\n if (currentLevel < 0) {\n return false;\n }\n\n this.currentLevel = currentLevel;\n level = this.levels[currentLevel];\n level.items[level.index] = value;\n return true;\n }\n}\n\n// Section D. Coefficient bit modeling\nclass BitModel {\n static UNIFORM_CONTEXT = 17;\n\n static RUNLENGTH_CONTEXT = 18;\n\n // Table D-1\n // The index is binary presentation: 0dddvvhh, ddd - sum of Di (0..4),\n // vv - sum of Vi (0..2), and hh - sum of Hi (0..2)\n static LLAndLHContextsLabel = new Uint8Array([\n 0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4,\n 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6,\n 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8,\n ]);\n\n static HLContextLabel = new Uint8Array([\n 0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8,\n 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3,\n 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8,\n ]);\n\n static HHContextLabel = new Uint8Array([\n 0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5,\n 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8,\n 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8,\n ]);\n\n constructor(width, height, subband, zeroBitPlanes, mb) {\n this.width = width;\n this.height = height;\n\n let contextLabelTable;\n if (subband === \"HH\") {\n contextLabelTable = BitModel.HHContextLabel;\n } else if (subband === \"HL\") {\n contextLabelTable = BitModel.HLContextLabel;\n } else {\n contextLabelTable = BitModel.LLAndLHContextsLabel;\n }\n this.contextLabelTable = contextLabelTable;\n\n const coefficientCount = width * height;\n\n // coefficients outside the encoding region treated as insignificant\n // add border state cells for significanceState\n this.neighborsSignificance = new Uint8Array(coefficientCount);\n this.coefficentsSign = new Uint8Array(coefficientCount);\n let coefficentsMagnitude;\n if (mb > 14) {\n coefficentsMagnitude = new Uint32Array(coefficientCount);\n } else if (mb > 6) {\n coefficentsMagnitude = new Uint16Array(coefficientCount);\n } else {\n coefficentsMagnitude = new Uint8Array(coefficientCount);\n }\n this.coefficentsMagnitude = coefficentsMagnitude;\n this.processingFlags = new Uint8Array(coefficientCount);\n\n const bitsDecoded = new Uint8Array(coefficientCount);\n if (zeroBitPlanes !== 0) {\n for (let i = 0; i < coefficientCount; i++) {\n bitsDecoded[i] = zeroBitPlanes;\n }\n }\n this.bitsDecoded = bitsDecoded;\n\n this.reset();\n }\n\n setDecoder(decoder) {\n this.decoder = decoder;\n }\n\n reset() {\n // We have 17 contexts that are accessed via context labels,\n // plus the uniform and runlength context.\n this.contexts = new Int8Array(19);\n\n // Contexts are packed into 1 byte:\n // highest 7 bits carry the index, lowest bit carries mps\n this.contexts[0] = (4 << 1) | 0;\n this.contexts[BitModel.UNIFORM_CONTEXT] = (46 << 1) | 0;\n this.contexts[BitModel.RUNLENGTH_CONTEXT] = (3 << 1) | 0;\n }\n\n setNeighborsSignificance(row, column, index) {\n const neighborsSignificance = this.neighborsSignificance;\n const width = this.width,\n height = this.height;\n const left = column > 0;\n const right = column + 1 < width;\n let i;\n\n if (row > 0) {\n i = index - width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (row + 1 < height) {\n i = index + width;\n if (left) {\n neighborsSignificance[i - 1] += 0x10;\n }\n if (right) {\n neighborsSignificance[i + 1] += 0x10;\n }\n neighborsSignificance[i] += 0x04;\n }\n\n if (left) {\n neighborsSignificance[index - 1] += 0x01;\n }\n if (right) {\n neighborsSignificance[index + 1] += 0x01;\n }\n neighborsSignificance[index] |= 0x80;\n }\n\n runSignificancePropagationPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n const neighborsSignificance = this.neighborsSignificance;\n const processingFlags = this.processingFlags;\n const contexts = this.contexts;\n const labels = this.contextLabelTable;\n const bitsDecoded = this.bitsDecoded;\n const processedInverseMask = ~1;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n\n for (let i0 = 0; i0 < height; i0 += 4) {\n for (let j = 0; j < width; j++) {\n let index = i0 * width + j;\n for (let i1 = 0; i1 < 4; i1++, index += width) {\n const i = i0 + i1;\n if (i >= height) {\n break;\n }\n // clear processed flag first\n processingFlags[index] &= processedInverseMask;\n\n if (coefficentsMagnitude[index] || !neighborsSignificance[index]) {\n continue;\n }\n\n const contextLabel = labels[neighborsSignificance[index]];\n const decision = decoder.readBit(contexts, contextLabel);\n if (decision) {\n const sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n }\n\n decodeSignBit(row, column, index) {\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n let contribution, sign0, sign1, significance1;\n let contextLabel, decoded;\n\n // calculate horizontal contribution\n significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0;\n if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) {\n sign1 = coefficentsSign[index + 1];\n if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign1 - sign0;\n } else {\n contribution = 1 - sign1 - sign1;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - 1];\n contribution = 1 - sign0 - sign0;\n } else {\n contribution = 0;\n }\n const horizontalContribution = 3 * contribution;\n\n // calculate vertical contribution and combine with the horizontal\n significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0;\n if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) {\n sign1 = coefficentsSign[index + width];\n if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign1 - sign0 + horizontalContribution;\n } else {\n contribution = 1 - sign1 - sign1 + horizontalContribution;\n }\n } else if (significance1) {\n sign0 = coefficentsSign[index - width];\n contribution = 1 - sign0 - sign0 + horizontalContribution;\n } else {\n contribution = horizontalContribution;\n }\n\n if (contribution >= 0) {\n contextLabel = 9 + contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel);\n } else {\n contextLabel = 9 - contribution;\n decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1;\n }\n return decoded;\n }\n\n runMagnitudeRefinementPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const neighborsSignificance = this.neighborsSignificance;\n const contexts = this.contexts;\n const bitsDecoded = this.bitsDecoded;\n const processingFlags = this.processingFlags;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n const length = width * height;\n const width4 = width * 4;\n\n for (let index0 = 0, indexNext; index0 < length; index0 = indexNext) {\n indexNext = Math.min(length, index0 + width4);\n for (let j = 0; j < width; j++) {\n for (let index = index0 + j; index < indexNext; index += width) {\n // significant but not those that have just become\n if (\n !coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0\n ) {\n continue;\n }\n\n let contextLabel = 16;\n if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) {\n processingFlags[index] ^= firstMagnitudeBitMask;\n // first refinement\n const significance = neighborsSignificance[index] & 127;\n contextLabel = significance === 0 ? 15 : 14;\n }\n\n const bit = decoder.readBit(contexts, contextLabel);\n coefficentsMagnitude[index] =\n (coefficentsMagnitude[index] << 1) | bit;\n bitsDecoded[index]++;\n processingFlags[index] |= processedMask;\n }\n }\n }\n }\n\n runCleanupPass() {\n const decoder = this.decoder;\n const width = this.width,\n height = this.height;\n const neighborsSignificance = this.neighborsSignificance;\n const coefficentsMagnitude = this.coefficentsMagnitude;\n const coefficentsSign = this.coefficentsSign;\n const contexts = this.contexts;\n const labels = this.contextLabelTable;\n const bitsDecoded = this.bitsDecoded;\n const processingFlags = this.processingFlags;\n const processedMask = 1;\n const firstMagnitudeBitMask = 2;\n const oneRowDown = width;\n const twoRowsDown = width * 2;\n const threeRowsDown = width * 3;\n let iNext;\n for (let i0 = 0; i0 < height; i0 = iNext) {\n iNext = Math.min(i0 + 4, height);\n const indexBase = i0 * width;\n const checkAllEmpty = i0 + 3 < height;\n for (let j = 0; j < width; j++) {\n const index0 = indexBase + j;\n // using the property: labels[neighborsSignificance[index]] === 0\n // when neighborsSignificance[index] === 0\n const allEmpty =\n checkAllEmpty &&\n processingFlags[index0] === 0 &&\n processingFlags[index0 + oneRowDown] === 0 &&\n processingFlags[index0 + twoRowsDown] === 0 &&\n processingFlags[index0 + threeRowsDown] === 0 &&\n neighborsSignificance[index0] === 0 &&\n neighborsSignificance[index0 + oneRowDown] === 0 &&\n neighborsSignificance[index0 + twoRowsDown] === 0 &&\n neighborsSignificance[index0 + threeRowsDown] === 0;\n let i1 = 0,\n index = index0;\n let i = i0,\n sign;\n if (allEmpty) {\n const hasSignificantCoefficent = decoder.readBit(\n contexts,\n BitModel.RUNLENGTH_CONTEXT\n );\n if (!hasSignificantCoefficent) {\n bitsDecoded[index0]++;\n bitsDecoded[index0 + oneRowDown]++;\n bitsDecoded[index0 + twoRowsDown]++;\n bitsDecoded[index0 + threeRowsDown]++;\n continue; // next column\n }\n i1 =\n (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT);\n if (i1 !== 0) {\n i = i0 + i1;\n index += i1 * width;\n }\n\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n\n index = index0;\n for (let i2 = i0; i2 <= i; i2++, index += width) {\n bitsDecoded[index]++;\n }\n\n i1++;\n }\n for (i = i0 + i1; i < iNext; i++, index += width) {\n if (\n coefficentsMagnitude[index] ||\n (processingFlags[index] & processedMask) !== 0\n ) {\n continue;\n }\n\n const contextLabel = labels[neighborsSignificance[index]];\n const decision = decoder.readBit(contexts, contextLabel);\n if (decision === 1) {\n sign = this.decodeSignBit(i, j, index);\n coefficentsSign[index] = sign;\n coefficentsMagnitude[index] = 1;\n this.setNeighborsSignificance(i, j, index);\n processingFlags[index] |= firstMagnitudeBitMask;\n }\n bitsDecoded[index]++;\n }\n }\n }\n }\n\n checkSegmentationSymbol() {\n const decoder = this.decoder;\n const contexts = this.contexts;\n const symbol =\n (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 3) |\n (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 2) |\n (decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT) << 1) |\n decoder.readBit(contexts, BitModel.UNIFORM_CONTEXT);\n if (symbol !== 0xa) {\n throw new JpxError(\"Invalid segmentation symbol\");\n }\n }\n}\n\n// Section F, Discrete wavelet transformation\nclass Transform {\n constructor() {\n if (this.constructor === Transform) {\n unreachable(\"Cannot initialize Transform.\");\n }\n }\n\n calculate(subbands, u0, v0) {\n let ll = subbands[0];\n for (let i = 1, ii = subbands.length; i < ii; i++) {\n ll = this.iterate(ll, subbands[i], u0, v0);\n }\n return ll;\n }\n\n extend(buffer, offset, size) {\n // Section F.3.7 extending... using max extension of 4\n let i1 = offset - 1,\n j1 = offset + 1;\n let i2 = offset + size - 2,\n j2 = offset + size;\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1--] = buffer[j1++];\n buffer[j2++] = buffer[i2--];\n buffer[i1] = buffer[j1];\n buffer[j2] = buffer[i2];\n }\n\n filter(x, offset, length) {\n unreachable(\"Abstract method `filter` called\");\n }\n\n iterate(ll, hl_lh_hh, u0, v0) {\n const llWidth = ll.width,\n llHeight = ll.height;\n let llItems = ll.items;\n const width = hl_lh_hh.width;\n const height = hl_lh_hh.height;\n const items = hl_lh_hh.items;\n let i, j, k, l, u, v;\n\n // Interleave LL according to Section F.3.3\n for (k = 0, i = 0; i < llHeight; i++) {\n l = i * 2 * width;\n for (j = 0; j < llWidth; j++, k++, l += 2) {\n items[l] = llItems[k];\n }\n }\n // The LL band is not needed anymore.\n llItems = ll.items = null;\n\n const bufferPadding = 4;\n const rowBuffer = new Float32Array(width + 2 * bufferPadding);\n\n // Section F.3.4 HOR_SR\n if (width === 1) {\n // if width = 1, when u0 even keep items as is, when odd divide by 2\n if ((u0 & 1) !== 0) {\n for (v = 0, k = 0; v < height; v++, k += width) {\n items[k] *= 0.5;\n }\n }\n } else {\n for (v = 0, k = 0; v < height; v++, k += width) {\n rowBuffer.set(items.subarray(k, k + width), bufferPadding);\n\n this.extend(rowBuffer, bufferPadding, width);\n this.filter(rowBuffer, bufferPadding, width);\n\n items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k);\n }\n }\n\n // Accesses to the items array can take long, because it may not fit into\n // CPU cache and has to be fetched from main memory. Since subsequent\n // accesses to the items array are not local when reading columns, we\n // have a cache miss every time. To reduce cache misses, get up to\n // 'numBuffers' items at a time and store them into the individual\n // buffers. The colBuffers should be small enough to fit into CPU cache.\n let numBuffers = 16;\n const colBuffers = [];\n for (i = 0; i < numBuffers; i++) {\n colBuffers.push(new Float32Array(height + 2 * bufferPadding));\n }\n let b,\n currentBuffer = 0;\n ll = bufferPadding + height;\n\n // Section F.3.5 VER_SR\n if (height === 1) {\n // if height = 1, when v0 even keep items as is, when odd divide by 2\n if ((v0 & 1) !== 0) {\n for (u = 0; u < width; u++) {\n items[u] *= 0.5;\n }\n }\n } else {\n for (u = 0; u < width; u++) {\n // if we ran out of buffers, copy several image columns at once\n if (currentBuffer === 0) {\n numBuffers = Math.min(width - u, numBuffers);\n for (k = u, l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n colBuffers[b][l] = items[k + b];\n }\n }\n currentBuffer = numBuffers;\n }\n\n currentBuffer--;\n const buffer = colBuffers[currentBuffer];\n this.extend(buffer, bufferPadding, height);\n this.filter(buffer, bufferPadding, height);\n\n // If this is last buffer in this group of buffers, flush all buffers.\n if (currentBuffer === 0) {\n k = u - numBuffers + 1;\n for (l = bufferPadding; l < ll; k += width, l++) {\n for (b = 0; b < numBuffers; b++) {\n items[k + b] = colBuffers[b][l];\n }\n }\n }\n }\n }\n\n return { width, height, items };\n }\n}\n\n// Section 3.8.2 Irreversible 9-7 filter\nclass IrreversibleTransform extends Transform {\n filter(x, offset, length) {\n const len = length >> 1;\n offset |= 0;\n let j, n, current, next;\n\n const alpha = -1.586134342059924;\n const beta = -0.052980118572961;\n const gamma = 0.882911075530934;\n const delta = 0.443506852043971;\n const K = 1.230174104914001;\n const K_ = 1 / K;\n\n // step 1 is combined with step 3\n\n // step 2\n j = offset - 3;\n for (n = len + 4; n--; j += 2) {\n x[j] *= K_;\n }\n\n // step 1 & 3\n j = offset - 2;\n current = delta * x[j - 1];\n for (n = len + 3; n--; j += 2) {\n next = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n if (n--) {\n j += 2;\n current = delta * x[j + 1];\n x[j] = K * x[j] - current - next;\n } else {\n break;\n }\n }\n\n // step 4\n j = offset - 1;\n current = gamma * x[j - 1];\n for (n = len + 2; n--; j += 2) {\n next = gamma * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = gamma * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n // step 5\n j = offset;\n current = beta * x[j - 1];\n for (n = len + 1; n--; j += 2) {\n next = beta * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = beta * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n\n // step 6\n if (len !== 0) {\n j = offset + 1;\n current = alpha * x[j - 1];\n for (n = len; n--; j += 2) {\n next = alpha * x[j + 1];\n x[j] -= current + next;\n if (n--) {\n j += 2;\n current = alpha * x[j + 1];\n x[j] -= current + next;\n } else {\n break;\n }\n }\n }\n }\n}\n\n// Section 3.8.1 Reversible 5-3 filter\nclass ReversibleTransform extends Transform {\n filter(x, offset, length) {\n const len = length >> 1;\n offset |= 0;\n let j, n;\n\n for (j = offset, n = len + 1; n--; j += 2) {\n x[j] -= (x[j - 1] + x[j + 1] + 2) >> 2;\n }\n\n for (j = offset + 1, n = len; n--; j += 2) {\n x[j] += (x[j - 1] + x[j + 1]) >> 1;\n }\n }\n}\n\nexport { JpxImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { JpxImage } from \"./jpx.js\";\nimport { shadow } from \"../shared/util.js\";\n\n/**\n * For JPEG 2000's we use a library to decode these images and\n * the stream behaves like all the other DecodeStreams.\n */\nclass JpxStream extends DecodeStream {\n constructor(stream, maybeLength, params) {\n super(maybeLength);\n\n this.stream = stream;\n this.dict = stream.dict;\n this.maybeLength = maybeLength;\n this.params = params;\n }\n\n get bytes() {\n // If `this.maybeLength` is null, we'll get the entire stream.\n return shadow(this, \"bytes\", this.stream.getBytes(this.maybeLength));\n }\n\n ensureBuffer(requested) {\n // No-op, since `this.readBlock` will always parse the entire image and\n // directly insert all of its data into `this.buffer`.\n }\n\n readBlock() {\n if (this.eof) {\n return;\n }\n const jpxImage = new JpxImage();\n jpxImage.parse(this.bytes);\n\n const width = jpxImage.width;\n const height = jpxImage.height;\n const componentsCount = jpxImage.componentsCount;\n const tileCount = jpxImage.tiles.length;\n if (tileCount === 1) {\n this.buffer = jpxImage.tiles[0].items;\n } else {\n const data = new Uint8ClampedArray(width * height * componentsCount);\n\n for (let k = 0; k < tileCount; k++) {\n const tileComponents = jpxImage.tiles[k];\n const tileWidth = tileComponents.width;\n const tileHeight = tileComponents.height;\n const tileLeft = tileComponents.left;\n const tileTop = tileComponents.top;\n\n const src = tileComponents.items;\n let srcPosition = 0;\n let dataPosition = (width * tileTop + tileLeft) * componentsCount;\n const imgRowSize = width * componentsCount;\n const tileRowSize = tileWidth * componentsCount;\n\n for (let j = 0; j < tileHeight; j++) {\n const rowBytes = src.subarray(srcPosition, srcPosition + tileRowSize);\n data.set(rowBytes, dataPosition);\n srcPosition += tileRowSize;\n dataPosition += imgRowSize;\n }\n }\n this.buffer = data;\n }\n this.bufferLength = this.buffer.length;\n this.eof = true;\n }\n}\n\nexport { JpxStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass LZWStream extends DecodeStream {\n constructor(str, maybeLength, earlyChange) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n this.cachedData = 0;\n this.bitsCached = 0;\n\n const maxLzwDictionarySize = 4096;\n const lzwState = {\n earlyChange,\n codeLength: 9,\n nextCode: 258,\n dictionaryValues: new Uint8Array(maxLzwDictionarySize),\n dictionaryLengths: new Uint16Array(maxLzwDictionarySize),\n dictionaryPrevCodes: new Uint16Array(maxLzwDictionarySize),\n currentSequence: new Uint8Array(maxLzwDictionarySize),\n currentSequenceLength: 0,\n };\n for (let i = 0; i < 256; ++i) {\n lzwState.dictionaryValues[i] = i;\n lzwState.dictionaryLengths[i] = 1;\n }\n this.lzwState = lzwState;\n }\n\n readBits(n) {\n let bitsCached = this.bitsCached;\n let cachedData = this.cachedData;\n while (bitsCached < n) {\n const c = this.str.getByte();\n if (c === -1) {\n this.eof = true;\n return null;\n }\n cachedData = (cachedData << 8) | c;\n bitsCached += 8;\n }\n this.bitsCached = bitsCached -= n;\n this.cachedData = cachedData;\n this.lastCode = null;\n return (cachedData >>> bitsCached) & ((1 << n) - 1);\n }\n\n readBlock() {\n const blockSize = 512,\n decodedSizeDelta = blockSize;\n let estimatedDecodedSize = blockSize * 2;\n let i, j, q;\n\n const lzwState = this.lzwState;\n if (!lzwState) {\n return; // eof was found\n }\n\n const earlyChange = lzwState.earlyChange;\n let nextCode = lzwState.nextCode;\n const dictionaryValues = lzwState.dictionaryValues;\n const dictionaryLengths = lzwState.dictionaryLengths;\n const dictionaryPrevCodes = lzwState.dictionaryPrevCodes;\n let codeLength = lzwState.codeLength;\n let prevCode = lzwState.prevCode;\n const currentSequence = lzwState.currentSequence;\n let currentSequenceLength = lzwState.currentSequenceLength;\n\n let decodedLength = 0;\n let currentBufferLength = this.bufferLength;\n let buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n\n for (i = 0; i < blockSize; i++) {\n const code = this.readBits(codeLength);\n const hasPrev = currentSequenceLength > 0;\n if (code < 256) {\n currentSequence[0] = code;\n currentSequenceLength = 1;\n } else if (code >= 258) {\n if (code < nextCode) {\n currentSequenceLength = dictionaryLengths[code];\n for (j = currentSequenceLength - 1, q = code; j >= 0; j--) {\n currentSequence[j] = dictionaryValues[q];\n q = dictionaryPrevCodes[q];\n }\n } else {\n currentSequence[currentSequenceLength++] = currentSequence[0];\n }\n } else if (code === 256) {\n codeLength = 9;\n nextCode = 258;\n currentSequenceLength = 0;\n continue;\n } else {\n this.eof = true;\n delete this.lzwState;\n break;\n }\n\n if (hasPrev) {\n dictionaryPrevCodes[nextCode] = prevCode;\n dictionaryLengths[nextCode] = dictionaryLengths[prevCode] + 1;\n dictionaryValues[nextCode] = currentSequence[0];\n nextCode++;\n codeLength =\n (nextCode + earlyChange) & (nextCode + earlyChange - 1)\n ? codeLength\n : Math.min(\n Math.log(nextCode + earlyChange) / 0.6931471805599453 + 1,\n 12\n ) | 0;\n }\n prevCode = code;\n\n decodedLength += currentSequenceLength;\n if (estimatedDecodedSize < decodedLength) {\n do {\n estimatedDecodedSize += decodedSizeDelta;\n } while (estimatedDecodedSize < decodedLength);\n buffer = this.ensureBuffer(this.bufferLength + estimatedDecodedSize);\n }\n for (j = 0; j < currentSequenceLength; j++) {\n buffer[currentBufferLength++] = currentSequence[j];\n }\n }\n lzwState.nextCode = nextCode;\n lzwState.codeLength = codeLength;\n lzwState.prevCode = prevCode;\n lzwState.currentSequenceLength = currentSequenceLength;\n\n this.bufferLength = currentBufferLength;\n }\n}\n\nexport { LZWStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { Dict } from \"./primitives.js\";\nimport { FormatError } from \"../shared/util.js\";\n\nclass PredictorStream extends DecodeStream {\n constructor(str, maybeLength, params) {\n super(maybeLength);\n\n if (!(params instanceof Dict)) {\n return str; // no prediction\n }\n const predictor = (this.predictor = params.get(\"Predictor\") || 1);\n\n if (predictor <= 1) {\n return str; // no prediction\n }\n if (predictor !== 2 && (predictor < 10 || predictor > 15)) {\n throw new FormatError(`Unsupported predictor: ${predictor}`);\n }\n\n this.readBlock = predictor === 2 ? this.readBlockTiff : this.readBlockPng;\n\n this.str = str;\n this.dict = str.dict;\n\n const colors = (this.colors = params.get(\"Colors\") || 1);\n const bits = (this.bits = params.get(\"BPC\", \"BitsPerComponent\") || 8);\n const columns = (this.columns = params.get(\"Columns\") || 1);\n\n this.pixBytes = (colors * bits + 7) >> 3;\n this.rowBytes = (columns * colors * bits + 7) >> 3;\n\n return this;\n }\n\n readBlockTiff() {\n const rowBytes = this.rowBytes;\n\n const bufferLength = this.bufferLength;\n const buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n const bits = this.bits;\n const colors = this.colors;\n\n const rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n if (this.eof) {\n return;\n }\n\n let inbuf = 0,\n outbuf = 0;\n let inbits = 0,\n outbits = 0;\n let pos = bufferLength;\n let i;\n\n if (bits === 1 && colors === 1) {\n // Optimized version of the loop in the \"else\"-branch\n // for 1 bit-per-component and 1 color TIFF images.\n for (i = 0; i < rowBytes; ++i) {\n let c = rawBytes[i] ^ inbuf;\n c ^= c >> 1;\n c ^= c >> 2;\n c ^= c >> 4;\n inbuf = (c & 1) << 7;\n buffer[pos++] = c;\n }\n } else if (bits === 8) {\n for (i = 0; i < colors; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[pos] = buffer[pos - colors] + rawBytes[i];\n pos++;\n }\n } else if (bits === 16) {\n const bytesPerPixel = colors * 2;\n for (i = 0; i < bytesPerPixel; ++i) {\n buffer[pos++] = rawBytes[i];\n }\n for (; i < rowBytes; i += 2) {\n const sum =\n ((rawBytes[i] & 0xff) << 8) +\n (rawBytes[i + 1] & 0xff) +\n ((buffer[pos - bytesPerPixel] & 0xff) << 8) +\n (buffer[pos - bytesPerPixel + 1] & 0xff);\n buffer[pos++] = (sum >> 8) & 0xff;\n buffer[pos++] = sum & 0xff;\n }\n } else {\n const compArray = new Uint8Array(colors + 1);\n const bitMask = (1 << bits) - 1;\n let j = 0,\n k = bufferLength;\n const columns = this.columns;\n for (i = 0; i < columns; ++i) {\n for (let kk = 0; kk < colors; ++kk) {\n if (inbits < bits) {\n inbuf = (inbuf << 8) | (rawBytes[j++] & 0xff);\n inbits += 8;\n }\n compArray[kk] =\n (compArray[kk] + (inbuf >> (inbits - bits))) & bitMask;\n inbits -= bits;\n outbuf = (outbuf << bits) | compArray[kk];\n outbits += bits;\n if (outbits >= 8) {\n buffer[k++] = (outbuf >> (outbits - 8)) & 0xff;\n outbits -= 8;\n }\n }\n }\n if (outbits > 0) {\n buffer[k++] =\n (outbuf << (8 - outbits)) + (inbuf & ((1 << (8 - outbits)) - 1));\n }\n }\n this.bufferLength += rowBytes;\n }\n\n readBlockPng() {\n const rowBytes = this.rowBytes;\n const pixBytes = this.pixBytes;\n\n const predictor = this.str.getByte();\n const rawBytes = this.str.getBytes(rowBytes);\n this.eof = !rawBytes.length;\n if (this.eof) {\n return;\n }\n\n const bufferLength = this.bufferLength;\n const buffer = this.ensureBuffer(bufferLength + rowBytes);\n\n let prevRow = buffer.subarray(bufferLength - rowBytes, bufferLength);\n if (prevRow.length === 0) {\n prevRow = new Uint8Array(rowBytes);\n }\n\n let i,\n j = bufferLength,\n up,\n c;\n switch (predictor) {\n case 0:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n break;\n case 1:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] = (buffer[j - pixBytes] + rawBytes[i]) & 0xff;\n j++;\n }\n break;\n case 2:\n for (i = 0; i < rowBytes; ++i) {\n buffer[j++] = (prevRow[i] + rawBytes[i]) & 0xff;\n }\n break;\n case 3:\n for (i = 0; i < pixBytes; ++i) {\n buffer[j++] = (prevRow[i] >> 1) + rawBytes[i];\n }\n for (; i < rowBytes; ++i) {\n buffer[j] =\n (((prevRow[i] + buffer[j - pixBytes]) >> 1) + rawBytes[i]) & 0xff;\n j++;\n }\n break;\n case 4:\n // we need to save the up left pixels values. the simplest way\n // is to create a new buffer\n for (i = 0; i < pixBytes; ++i) {\n up = prevRow[i];\n c = rawBytes[i];\n buffer[j++] = up + c;\n }\n for (; i < rowBytes; ++i) {\n up = prevRow[i];\n const upLeft = prevRow[i - pixBytes];\n const left = buffer[j - pixBytes];\n const p = left + up - upLeft;\n\n let pa = p - left;\n if (pa < 0) {\n pa = -pa;\n }\n let pb = p - up;\n if (pb < 0) {\n pb = -pb;\n }\n let pc = p - upLeft;\n if (pc < 0) {\n pc = -pc;\n }\n\n c = rawBytes[i];\n if (pa <= pb && pa <= pc) {\n buffer[j++] = left + c;\n } else if (pb <= pc) {\n buffer[j++] = up + c;\n } else {\n buffer[j++] = upLeft + c;\n }\n }\n break;\n default:\n throw new FormatError(`Unsupported predictor: ${predictor}`);\n }\n this.bufferLength += rowBytes;\n }\n}\n\nexport { PredictorStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nclass RunLengthStream extends DecodeStream {\n constructor(str, maybeLength) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n }\n\n readBlock() {\n // The repeatHeader has following format. The first byte defines type of run\n // and amount of bytes to repeat/copy: n = 0 through 127 - copy next n bytes\n // (in addition to the second byte from the header), n = 129 through 255 -\n // duplicate the second byte from the header (257 - n) times, n = 128 - end.\n const repeatHeader = this.str.getBytes(2);\n if (!repeatHeader || repeatHeader.length < 2 || repeatHeader[0] === 128) {\n this.eof = true;\n return;\n }\n\n let buffer;\n let bufferLength = this.bufferLength;\n let n = repeatHeader[0];\n if (n < 128) {\n // copy n bytes\n buffer = this.ensureBuffer(bufferLength + n + 1);\n buffer[bufferLength++] = repeatHeader[1];\n if (n > 0) {\n const source = this.str.getBytes(n);\n buffer.set(source, bufferLength);\n bufferLength += n;\n }\n } else {\n n = 257 - n;\n const b = repeatHeader[1];\n buffer = this.ensureBuffer(bufferLength + n + 1);\n for (let i = 0; i < n; i++) {\n buffer[bufferLength++] = b;\n }\n }\n this.bufferLength = bufferLength;\n }\n}\n\nexport { RunLengthStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n FormatError,\n info,\n warn,\n} from \"../shared/util.js\";\nimport { Cmd, Dict, EOF, isCmd, Name, Ref } from \"./primitives.js\";\nimport {\n isWhiteSpace,\n MissingDataException,\n ParserEOFException,\n} from \"./core_utils.js\";\nimport { NullStream, Stream } from \"./stream.js\";\nimport { Ascii85Stream } from \"./ascii_85_stream.js\";\nimport { AsciiHexStream } from \"./ascii_hex_stream.js\";\nimport { CCITTFaxStream } from \"./ccitt_stream.js\";\nimport { FlateStream } from \"./flate_stream.js\";\nimport { Jbig2Stream } from \"./jbig2_stream.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { JpxStream } from \"./jpx_stream.js\";\nimport { LZWStream } from \"./lzw_stream.js\";\nimport { PredictorStream } from \"./predictor_stream.js\";\nimport { RunLengthStream } from \"./run_length_stream.js\";\n\nconst MAX_LENGTH_TO_CACHE = 1000;\n\nfunction getInlineImageCacheKey(bytes) {\n const strBuf = [],\n ii = bytes.length;\n let i = 0;\n while (i < ii - 1) {\n strBuf.push((bytes[i++] << 8) | bytes[i++]);\n }\n // Handle an odd number of elements.\n if (i < ii) {\n strBuf.push(bytes[i]);\n }\n // We purposely include the \"raw\" length in the cacheKey, to prevent any\n // possible issues with hash collisions in the inline image cache.\n // Here we also assume that `strBuf` is never larger than 8192 elements,\n // please refer to the `bytesToString` implementation.\n return ii + \"_\" + String.fromCharCode.apply(null, strBuf);\n}\n\nclass Parser {\n constructor({ lexer, xref, allowStreams = false, recoveryMode = false }) {\n this.lexer = lexer;\n this.xref = xref;\n this.allowStreams = allowStreams;\n this.recoveryMode = recoveryMode;\n\n this.imageCache = Object.create(null);\n this._imageId = 0;\n this.refill();\n }\n\n refill() {\n this.buf1 = this.lexer.getObj();\n this.buf2 = this.lexer.getObj();\n }\n\n shift() {\n if (this.buf2 instanceof Cmd && this.buf2.cmd === \"ID\") {\n this.buf1 = this.buf2;\n this.buf2 = null;\n } else {\n this.buf1 = this.buf2;\n this.buf2 = this.lexer.getObj();\n }\n }\n\n tryShift() {\n try {\n this.shift();\n return true;\n } catch (e) {\n if (e instanceof MissingDataException) {\n throw e;\n }\n // Upon failure, the caller should reset this.lexer.pos to a known good\n // state and call this.shift() twice to reset the buffers.\n return false;\n }\n }\n\n getObj(cipherTransform = null) {\n const buf1 = this.buf1;\n this.shift();\n\n if (buf1 instanceof Cmd) {\n switch (buf1.cmd) {\n case \"BI\": // inline image\n return this.makeInlineImage(cipherTransform);\n case \"[\": // array\n const array = [];\n while (!isCmd(this.buf1, \"]\") && this.buf1 !== EOF) {\n array.push(this.getObj(cipherTransform));\n }\n if (this.buf1 === EOF) {\n if (this.recoveryMode) {\n return array;\n }\n throw new ParserEOFException(\"End of file inside array.\");\n }\n this.shift();\n return array;\n case \"<<\": // dictionary or stream\n const dict = new Dict(this.xref);\n while (!isCmd(this.buf1, \">>\") && this.buf1 !== EOF) {\n if (!(this.buf1 instanceof Name)) {\n info(\"Malformed dictionary: key must be a name object\");\n this.shift();\n continue;\n }\n\n const key = this.buf1.name;\n this.shift();\n if (this.buf1 === EOF) {\n break;\n }\n dict.set(key, this.getObj(cipherTransform));\n }\n if (this.buf1 === EOF) {\n if (this.recoveryMode) {\n return dict;\n }\n throw new ParserEOFException(\"End of file inside dictionary.\");\n }\n\n // Stream objects are not allowed inside content streams or\n // object streams.\n if (isCmd(this.buf2, \"stream\")) {\n return this.allowStreams\n ? this.makeStream(dict, cipherTransform)\n : dict;\n }\n this.shift();\n return dict;\n default: // simple object\n return buf1;\n }\n }\n\n if (Number.isInteger(buf1)) {\n // indirect reference or integer\n if (Number.isInteger(this.buf1) && isCmd(this.buf2, \"R\")) {\n const ref = Ref.get(buf1, this.buf1);\n this.shift();\n this.shift();\n return ref;\n }\n return buf1;\n }\n\n if (typeof buf1 === \"string\") {\n if (cipherTransform) {\n return cipherTransform.decryptString(buf1);\n }\n return buf1;\n }\n\n // simple object\n return buf1;\n }\n\n /**\n * Find the end of the stream by searching for the /EI\\s/.\n * @returns {number} The inline stream length.\n */\n findDefaultInlineStreamEnd(stream) {\n const E = 0x45,\n I = 0x49,\n SPACE = 0x20,\n LF = 0xa,\n CR = 0xd,\n NUL = 0x0;\n const { knownCommands } = this.lexer,\n startPos = stream.pos,\n n = 15;\n let state = 0,\n ch,\n maybeEIPos;\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(state === 2, \"findDefaultInlineStreamEnd - invalid state.\");\n }\n if (ch === SPACE || ch === LF || ch === CR) {\n maybeEIPos = stream.pos;\n // Let's check that the next `n` bytes are ASCII... just to be sure.\n const followingBytes = stream.peekBytes(n);\n\n const ii = followingBytes.length;\n if (ii === 0) {\n break; // The end of the stream was reached, nothing to check.\n }\n for (let i = 0; i < ii; i++) {\n ch = followingBytes[i];\n if (ch === NUL && followingBytes[i + 1] !== NUL) {\n // NUL bytes are not supposed to occur *outside* of inline\n // images, but some PDF generators violate that assumption,\n // thus breaking the EI detection heuristics used below.\n //\n // However, we can't unconditionally treat NUL bytes as \"ASCII\",\n // since that *could* result in inline images being truncated.\n //\n // To attempt to address this, we'll still treat any *sequence*\n // of NUL bytes as non-ASCII, but for a *single* NUL byte we'll\n // continue checking the `followingBytes` (fixes issue8823.pdf).\n continue;\n }\n if (ch !== LF && ch !== CR && (ch < SPACE || ch > 0x7f)) {\n // Not a LF, CR, SPACE or any visible ASCII character, i.e.\n // it's binary stuff. Resetting the state.\n state = 0;\n break;\n }\n }\n\n if (state !== 2) {\n continue;\n }\n if (!knownCommands) {\n warn(\n \"findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.\"\n );\n continue;\n }\n // Check that the \"EI\" sequence isn't part of the image data, since\n // that would cause the image to be truncated (fixes issue11124.pdf).\n const tmpLexer = new Lexer(\n new Stream(followingBytes.slice()),\n knownCommands\n );\n // Reduce the number of (potential) warning messages.\n tmpLexer._hexStringWarn = () => {};\n let numArgs = 0;\n\n while (true) {\n const nextObj = tmpLexer.getObj();\n\n if (nextObj === EOF) {\n state = 0; // No valid command found, resetting the state.\n break;\n }\n if (nextObj instanceof Cmd) {\n const knownCommand = knownCommands[nextObj.cmd];\n if (!knownCommand) {\n // Not a valid command, i.e. the inline image data *itself*\n // contains an \"EI\" sequence. Resetting the state.\n state = 0;\n break;\n } else if (\n knownCommand.variableArgs\n ? numArgs <= knownCommand.numArgs\n : numArgs === knownCommand.numArgs\n ) {\n break; // Valid command found.\n }\n numArgs = 0;\n continue;\n }\n numArgs++;\n }\n\n if (state === 2) {\n break; // Finished!\n }\n } else {\n state = 0;\n }\n }\n }\n\n if (ch === -1) {\n warn(\n \"findDefaultInlineStreamEnd: \" +\n \"Reached the end of the stream without finding a valid EI marker\"\n );\n if (maybeEIPos) {\n warn('... trying to recover by using the last \"EI\" occurrence.');\n stream.skip(-(stream.pos - maybeEIPos)); // Reset the stream position.\n }\n }\n\n let endOffset = 4;\n stream.skip(-endOffset); // Set the stream position to just before \"EI\".\n ch = stream.peekByte();\n stream.skip(endOffset); // ... and remember to reset the stream position.\n\n // Ensure that we don't accidentally truncate the inline image, when the\n // data is immediately followed by the \"EI\" marker (fixes issue10388.pdf).\n if (!isWhiteSpace(ch)) {\n endOffset--;\n }\n return stream.pos - endOffset - startPos;\n }\n\n /**\n * Find the EOI (end-of-image) marker 0xFFD9 of the stream.\n * @returns {number} The inline stream length.\n */\n findDCTDecodeInlineStreamEnd(stream) {\n const startPos = stream.pos;\n let foundEOI = false,\n b,\n markerLength;\n while ((b = stream.getByte()) !== -1) {\n if (b !== 0xff) {\n // Not a valid marker.\n continue;\n }\n switch (stream.getByte()) {\n case 0x00: // Byte stuffing.\n // 0xFF00 appears to be a very common byte sequence in JPEG images.\n break;\n\n case 0xff: // Fill byte.\n // Avoid skipping a valid marker, resetting the stream position.\n stream.skip(-1);\n break;\n\n case 0xd9: // EOI\n foundEOI = true;\n break;\n\n case 0xc0: // SOF0\n case 0xc1: // SOF1\n case 0xc2: // SOF2\n case 0xc3: // SOF3\n /* falls through */\n case 0xc5: // SOF5\n case 0xc6: // SOF6\n case 0xc7: // SOF7\n /* falls through */\n case 0xc9: // SOF9\n case 0xca: // SOF10\n case 0xcb: // SOF11\n /* falls through */\n case 0xcd: // SOF13\n case 0xce: // SOF14\n case 0xcf: // SOF15\n /* falls through */\n case 0xc4: // DHT\n case 0xcc: // DAC\n /* falls through */\n case 0xda: // SOS\n case 0xdb: // DQT\n case 0xdc: // DNL\n case 0xdd: // DRI\n case 0xde: // DHP\n case 0xdf: // EXP\n /* falls through */\n case 0xe0: // APP0\n case 0xe1: // APP1\n case 0xe2: // APP2\n case 0xe3: // APP3\n case 0xe4: // APP4\n case 0xe5: // APP5\n case 0xe6: // APP6\n case 0xe7: // APP7\n case 0xe8: // APP8\n case 0xe9: // APP9\n case 0xea: // APP10\n case 0xeb: // APP11\n case 0xec: // APP12\n case 0xed: // APP13\n case 0xee: // APP14\n case 0xef: // APP15\n /* falls through */\n case 0xfe: // COM\n // The marker should be followed by the length of the segment.\n markerLength = stream.getUint16();\n if (markerLength > 2) {\n // |markerLength| contains the byte length of the marker segment,\n // including its own length (2 bytes) and excluding the marker.\n stream.skip(markerLength - 2); // Jump to the next marker.\n } else {\n // The marker length is invalid, resetting the stream position.\n stream.skip(-2);\n }\n break;\n }\n if (foundEOI) {\n break;\n }\n }\n const length = stream.pos - startPos;\n if (b === -1) {\n warn(\n \"Inline DCTDecode image stream: \" +\n \"EOI marker not found, searching for /EI/ instead.\"\n );\n stream.skip(-length); // Reset the stream position.\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n /**\n * Find the EOD (end-of-data) marker '~>' (i.e. TILDE + GT) of the stream.\n * @returns {number} The inline stream length.\n */\n findASCII85DecodeInlineStreamEnd(stream) {\n const TILDE = 0x7e,\n GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === TILDE) {\n const tildePos = stream.pos;\n\n ch = stream.peekByte();\n // Handle corrupt PDF documents which contains whitespace \"inside\" of\n // the EOD marker (fixes issue10614.pdf).\n while (isWhiteSpace(ch)) {\n stream.skip();\n ch = stream.peekByte();\n }\n if (ch === GT) {\n stream.skip();\n break;\n }\n // Handle corrupt PDF documents which contains truncated EOD markers,\n // where the '>' character is missing (fixes issue11385.pdf).\n if (stream.pos > tildePos) {\n const maybeEI = stream.peekBytes(2);\n if (maybeEI[0] === /* E = */ 0x45 && maybeEI[1] === /* I = */ 0x49) {\n break;\n }\n }\n }\n }\n const length = stream.pos - startPos;\n if (ch === -1) {\n warn(\n \"Inline ASCII85Decode image stream: \" +\n \"EOD marker not found, searching for /EI/ instead.\"\n );\n stream.skip(-length); // Reset the stream position.\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n /**\n * Find the EOD (end-of-data) marker '>' (i.e. GT) of the stream.\n * @returns {number} The inline stream length.\n */\n findASCIIHexDecodeInlineStreamEnd(stream) {\n const GT = 0x3e;\n const startPos = stream.pos;\n let ch;\n while ((ch = stream.getByte()) !== -1) {\n if (ch === GT) {\n break;\n }\n }\n const length = stream.pos - startPos;\n if (ch === -1) {\n warn(\n \"Inline ASCIIHexDecode image stream: \" +\n \"EOD marker not found, searching for /EI/ instead.\"\n );\n stream.skip(-length); // Reset the stream position.\n return this.findDefaultInlineStreamEnd(stream);\n }\n this.inlineStreamSkipEI(stream);\n return length;\n }\n\n /**\n * Skip over the /EI/ for streams where we search for an EOD marker.\n */\n inlineStreamSkipEI(stream) {\n const E = 0x45,\n I = 0x49;\n let state = 0,\n ch;\n while ((ch = stream.getByte()) !== -1) {\n if (state === 0) {\n state = ch === E ? 1 : 0;\n } else if (state === 1) {\n state = ch === I ? 2 : 0;\n } else if (state === 2) {\n break;\n }\n }\n }\n\n makeInlineImage(cipherTransform) {\n const lexer = this.lexer;\n const stream = lexer.stream;\n\n // Parse dictionary, but initialize it lazily to improve performance with\n // cached inline images (see issue 2618).\n const dictMap = Object.create(null);\n let dictLength;\n while (!isCmd(this.buf1, \"ID\") && this.buf1 !== EOF) {\n if (!(this.buf1 instanceof Name)) {\n throw new FormatError(\"Dictionary key must be a name object\");\n }\n const key = this.buf1.name;\n this.shift();\n if (this.buf1 === EOF) {\n break;\n }\n dictMap[key] = this.getObj(cipherTransform);\n }\n if (lexer.beginInlineImagePos !== -1) {\n dictLength = stream.pos - lexer.beginInlineImagePos;\n }\n\n // Extract the name of the first (i.e. the current) image filter.\n const filter = this.xref.fetchIfRef(dictMap.F || dictMap.Filter);\n let filterName;\n if (filter instanceof Name) {\n filterName = filter.name;\n } else if (Array.isArray(filter)) {\n const filterZero = this.xref.fetchIfRef(filter[0]);\n if (filterZero instanceof Name) {\n filterName = filterZero.name;\n }\n }\n\n // Parse image stream.\n const startPos = stream.pos;\n let length;\n switch (filterName) {\n case \"DCT\":\n case \"DCTDecode\":\n length = this.findDCTDecodeInlineStreamEnd(stream);\n break;\n case \"A85\":\n case \"ASCII85Decode\":\n length = this.findASCII85DecodeInlineStreamEnd(stream);\n break;\n case \"AHx\":\n case \"ASCIIHexDecode\":\n length = this.findASCIIHexDecodeInlineStreamEnd(stream);\n break;\n default:\n length = this.findDefaultInlineStreamEnd(stream);\n }\n\n // Cache all images below the MAX_LENGTH_TO_CACHE threshold by their\n // stringified content, to prevent possible hash collisions.\n let cacheKey;\n if (length < MAX_LENGTH_TO_CACHE && dictLength > 0) {\n const initialStreamPos = stream.pos;\n // Set the stream position to the beginning of the dictionary data...\n stream.pos = lexer.beginInlineImagePos;\n // ... and fetch the bytes of the dictionary *and* the inline image.\n cacheKey = getInlineImageCacheKey(stream.getBytes(dictLength + length));\n // Finally, don't forget to reset the stream position.\n stream.pos = initialStreamPos;\n\n const cacheEntry = this.imageCache[cacheKey];\n if (cacheEntry !== undefined) {\n this.buf2 = Cmd.get(\"EI\");\n this.shift();\n\n cacheEntry.reset();\n return cacheEntry;\n }\n }\n\n const dict = new Dict(this.xref);\n for (const key in dictMap) {\n dict.set(key, dictMap[key]);\n }\n let imageStream = stream.makeSubStream(startPos, length, dict);\n if (cipherTransform) {\n imageStream = cipherTransform.createStream(imageStream, length);\n }\n\n imageStream = this.filter(imageStream, dict, length);\n imageStream.dict = dict;\n if (cacheKey !== undefined) {\n imageStream.cacheKey = `inline_img_${++this._imageId}`;\n this.imageCache[cacheKey] = imageStream;\n }\n\n this.buf2 = Cmd.get(\"EI\");\n this.shift();\n\n return imageStream;\n }\n\n _findStreamLength(startPos, signature) {\n const { stream } = this.lexer;\n stream.pos = startPos;\n\n const SCAN_BLOCK_LENGTH = 2048;\n const signatureLength = signature.length;\n\n while (stream.pos < stream.end) {\n const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n const scanLength = scanBytes.length - signatureLength;\n\n if (scanLength <= 0) {\n break;\n }\n let pos = 0;\n while (pos < scanLength) {\n let j = 0;\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found.\n stream.pos += pos;\n return stream.pos - startPos;\n }\n pos++;\n }\n stream.pos += scanLength;\n }\n return -1;\n }\n\n makeStream(dict, cipherTransform) {\n const lexer = this.lexer;\n let stream = lexer.stream;\n\n // Get the stream's start position.\n lexer.skipToNextLine();\n const startPos = stream.pos - 1;\n\n // Get the length.\n let length = dict.get(\"Length\");\n if (!Number.isInteger(length)) {\n info(`Bad length \"${length && length.toString()}\" in stream.`);\n length = 0;\n }\n\n // Skip over the stream data.\n stream.pos = startPos + length;\n lexer.nextChar();\n\n // Shift '>>' and check whether the new object marks the end of the stream.\n if (this.tryShift() && isCmd(this.buf2, \"endstream\")) {\n this.shift(); // 'stream'\n } else {\n // Bad stream length, scanning for endstream command.\n const ENDSTREAM_SIGNATURE = new Uint8Array([\n 0x65, 0x6e, 0x64, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,\n ]);\n let actualLength = this._findStreamLength(startPos, ENDSTREAM_SIGNATURE);\n if (actualLength < 0) {\n // Only allow limited truncation of the endstream signature,\n // to prevent false positives.\n const MAX_TRUNCATION = 1;\n // Check if the PDF generator included truncated endstream commands,\n // such as e.g. \"endstrea\" (fixes issue10004.pdf).\n for (let i = 1; i <= MAX_TRUNCATION; i++) {\n const end = ENDSTREAM_SIGNATURE.length - i;\n const TRUNCATED_SIGNATURE = ENDSTREAM_SIGNATURE.slice(0, end);\n\n const maybeLength = this._findStreamLength(\n startPos,\n TRUNCATED_SIGNATURE\n );\n if (maybeLength >= 0) {\n // Ensure that the byte immediately following the truncated\n // endstream command is a space, to prevent false positives.\n const lastByte = stream.peekBytes(end + 1)[end];\n if (!isWhiteSpace(lastByte)) {\n break;\n }\n info(\n `Found \"${bytesToString(TRUNCATED_SIGNATURE)}\" when ` +\n \"searching for endstream command.\"\n );\n actualLength = maybeLength;\n break;\n }\n }\n\n if (actualLength < 0) {\n throw new FormatError(\"Missing endstream command.\");\n }\n }\n length = actualLength;\n\n lexer.nextChar();\n this.shift();\n this.shift();\n }\n this.shift(); // 'endstream'\n\n stream = stream.makeSubStream(startPos, length, dict);\n if (cipherTransform) {\n stream = cipherTransform.createStream(stream, length);\n }\n stream = this.filter(stream, dict, length);\n stream.dict = dict;\n return stream;\n }\n\n filter(stream, dict, length) {\n let filter = dict.get(\"F\", \"Filter\");\n let params = dict.get(\"DP\", \"DecodeParms\");\n\n if (filter instanceof Name) {\n if (Array.isArray(params)) {\n warn(\"/DecodeParms should not be an Array, when /Filter is a Name.\");\n }\n return this.makeFilter(stream, filter.name, length, params);\n }\n\n let maybeLength = length;\n if (Array.isArray(filter)) {\n const filterArray = filter;\n const paramsArray = params;\n for (let i = 0, ii = filterArray.length; i < ii; ++i) {\n filter = this.xref.fetchIfRef(filterArray[i]);\n if (!(filter instanceof Name)) {\n throw new FormatError(`Bad filter name \"${filter}\"`);\n }\n\n params = null;\n if (Array.isArray(paramsArray) && i in paramsArray) {\n params = this.xref.fetchIfRef(paramsArray[i]);\n }\n stream = this.makeFilter(stream, filter.name, maybeLength, params);\n // After the first stream the `length` variable is invalid.\n maybeLength = null;\n }\n }\n return stream;\n }\n\n makeFilter(stream, name, maybeLength, params) {\n // Since the 'Length' entry in the stream dictionary can be completely\n // wrong, e.g. zero for non-empty streams, only skip parsing the stream\n // when we can be absolutely certain that it actually is empty.\n if (maybeLength === 0) {\n warn(`Empty \"${name}\" stream.`);\n return new NullStream();\n }\n\n try {\n switch (name) {\n case \"Fl\":\n case \"FlateDecode\":\n if (params) {\n return new PredictorStream(\n new FlateStream(stream, maybeLength),\n maybeLength,\n params\n );\n }\n return new FlateStream(stream, maybeLength);\n case \"LZW\":\n case \"LZWDecode\":\n let earlyChange = 1;\n if (params) {\n if (params.has(\"EarlyChange\")) {\n earlyChange = params.get(\"EarlyChange\");\n }\n return new PredictorStream(\n new LZWStream(stream, maybeLength, earlyChange),\n maybeLength,\n params\n );\n }\n return new LZWStream(stream, maybeLength, earlyChange);\n case \"DCT\":\n case \"DCTDecode\":\n return new JpegStream(stream, maybeLength, params);\n case \"JPX\":\n case \"JPXDecode\":\n return new JpxStream(stream, maybeLength, params);\n case \"A85\":\n case \"ASCII85Decode\":\n return new Ascii85Stream(stream, maybeLength);\n case \"AHx\":\n case \"ASCIIHexDecode\":\n return new AsciiHexStream(stream, maybeLength);\n case \"CCF\":\n case \"CCITTFaxDecode\":\n return new CCITTFaxStream(stream, maybeLength, params);\n case \"RL\":\n case \"RunLengthDecode\":\n return new RunLengthStream(stream, maybeLength);\n case \"JBIG2Decode\":\n return new Jbig2Stream(stream, maybeLength, params);\n }\n warn(`Filter \"${name}\" is not supported.`);\n return stream;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`Invalid stream: \"${ex}\"`);\n return new NullStream();\n }\n }\n}\n\n// A '1' in this array means the character is white space. A '1' or\n// '2' means the character ends a name or command.\n// prettier-ignore\nconst specialChars = [\n 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, // 0x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x\n 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, // 2x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, // 3x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 4x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 5x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 6x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, // 7x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 8x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 9x\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ax\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // bx\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // cx\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // dx\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // ex\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 // fx\n];\n\nfunction toHexDigit(ch) {\n if (ch >= /* '0' = */ 0x30 && ch /* '9' = */ <= 0x39) {\n return ch & 0x0f;\n }\n if (\n (ch >= /* 'A' = */ 0x41 && ch <= /* 'F' = */ 0x46) ||\n (ch >= /* 'a' = */ 0x61 && ch <= /* 'f' = */ 0x66)\n ) {\n return (ch & 0x0f) + 9;\n }\n return -1;\n}\n\nclass Lexer {\n constructor(stream, knownCommands = null) {\n this.stream = stream;\n this.nextChar();\n\n // While lexing, we build up many strings one char at a time. Using += for\n // this can result in lots of garbage strings. It's better to build an\n // array of single-char strings and then join() them together at the end.\n // And reusing a single array (i.e. |this.strBuf|) over and over for this\n // purpose uses less memory than using a new array for each string.\n this.strBuf = [];\n\n // The PDFs might have \"glued\" commands with other commands, operands or\n // literals, e.g. \"q1\". The knownCommands is a dictionary of the valid\n // commands and their prefixes. The prefixes are built the following way:\n // if there a command that is a prefix of the other valid command or\n // literal (e.g. 'f' and 'false') the following prefixes must be included,\n // 'fa', 'fal', 'fals'. The prefixes are not needed, if the command has no\n // other commands or literals as a prefix. The knowCommands is optional.\n this.knownCommands = knownCommands;\n\n this._hexStringNumWarn = 0;\n this.beginInlineImagePos = -1;\n }\n\n nextChar() {\n return (this.currentChar = this.stream.getByte());\n }\n\n peekChar() {\n return this.stream.peekByte();\n }\n\n getNumber() {\n let ch = this.currentChar;\n let eNotation = false;\n let divideBy = 0; // Different from 0 if it's a floating point value.\n let sign = 1;\n\n if (ch === /* '-' = */ 0x2d) {\n sign = -1;\n ch = this.nextChar();\n\n if (ch === /* '-' = */ 0x2d) {\n // Ignore double negative (this is consistent with Adobe Reader).\n ch = this.nextChar();\n }\n } else if (ch === /* '+' = */ 0x2b) {\n ch = this.nextChar();\n }\n if (ch === /* LF = */ 0x0a || ch === /* CR = */ 0x0d) {\n // Ignore line-breaks (this is consistent with Adobe Reader).\n do {\n ch = this.nextChar();\n } while (ch === 0x0a || ch === 0x0d);\n }\n if (ch === /* '.' = */ 0x2e) {\n divideBy = 10;\n ch = this.nextChar();\n }\n if (ch < /* '0' = */ 0x30 || ch > /* '9' = */ 0x39) {\n const msg = `Invalid number: ${String.fromCharCode(ch)} (charCode ${ch})`;\n\n if (isWhiteSpace(ch) || ch === /* EOF = */ -1) {\n // This is consistent with Adobe Reader (fixes issue9252.pdf,\n // issue15604.pdf, bug1753983.pdf).\n info(`Lexer.getNumber - \"${msg}\".`);\n return 0;\n }\n throw new FormatError(msg);\n }\n\n let baseValue = ch - 0x30; // '0'\n let powerValue = 0;\n let powerValueSign = 1;\n\n while ((ch = this.nextChar()) >= 0) {\n if (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) {\n const currentDigit = ch - 0x30; // '0'\n if (eNotation) {\n // We are after an 'e' or 'E'.\n powerValue = powerValue * 10 + currentDigit;\n } else {\n if (divideBy !== 0) {\n // We are after a point.\n divideBy *= 10;\n }\n baseValue = baseValue * 10 + currentDigit;\n }\n } else if (ch === /* '.' = */ 0x2e) {\n if (divideBy === 0) {\n divideBy = 1;\n } else {\n // A number can have only one dot.\n break;\n }\n } else if (ch === /* '-' = */ 0x2d) {\n // Ignore minus signs in the middle of numbers to match\n // Adobe's behavior.\n warn(\"Badly formatted number: minus sign in the middle\");\n } else if (ch === /* 'E' = */ 0x45 || ch === /* 'e' = */ 0x65) {\n // 'E' can be either a scientific notation or the beginning of a new\n // operator.\n ch = this.peekChar();\n if (ch === /* '+' = */ 0x2b || ch === /* '-' = */ 0x2d) {\n powerValueSign = ch === 0x2d ? -1 : 1;\n this.nextChar(); // Consume the sign character.\n } else if (ch < /* '0' = */ 0x30 || ch > /* '9' = */ 0x39) {\n // The 'E' must be the beginning of a new operator.\n break;\n }\n eNotation = true;\n } else {\n // The last character doesn't belong to us.\n break;\n }\n }\n\n if (divideBy !== 0) {\n baseValue /= divideBy;\n }\n if (eNotation) {\n baseValue *= 10 ** (powerValueSign * powerValue);\n }\n return sign * baseValue;\n }\n\n getString() {\n let numParen = 1;\n let done = false;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n\n let ch = this.nextChar();\n while (true) {\n let charBuffered = false;\n switch (ch | 0) {\n case -1:\n warn(\"Unterminated string\");\n done = true;\n break;\n case 0x28: // '('\n ++numParen;\n strBuf.push(\"(\");\n break;\n case 0x29: // ')'\n if (--numParen === 0) {\n this.nextChar(); // consume strings ')'\n done = true;\n } else {\n strBuf.push(\")\");\n }\n break;\n case 0x5c: // '\\\\'\n ch = this.nextChar();\n switch (ch) {\n case -1:\n warn(\"Unterminated string\");\n done = true;\n break;\n case 0x6e: // 'n'\n strBuf.push(\"\\n\");\n break;\n case 0x72: // 'r'\n strBuf.push(\"\\r\");\n break;\n case 0x74: // 't'\n strBuf.push(\"\\t\");\n break;\n case 0x62: // 'b'\n strBuf.push(\"\\b\");\n break;\n case 0x66: // 'f'\n strBuf.push(\"\\f\");\n break;\n case 0x5c: // '\\'\n case 0x28: // '('\n case 0x29: // ')'\n strBuf.push(String.fromCharCode(ch));\n break;\n case 0x30: // '0'\n case 0x31: // '1'\n case 0x32: // '2'\n case 0x33: // '3'\n case 0x34: // '4'\n case 0x35: // '5'\n case 0x36: // '6'\n case 0x37: // '7'\n let x = ch & 0x0f;\n ch = this.nextChar();\n charBuffered = true;\n if (ch >= /* '0' = */ 0x30 && ch <= /* '7' = */ 0x37) {\n x = (x << 3) + (ch & 0x0f);\n ch = this.nextChar();\n if (ch >= /* '0' = */ 0x30 && ch /* '7' = */ <= 0x37) {\n charBuffered = false;\n x = (x << 3) + (ch & 0x0f);\n }\n }\n strBuf.push(String.fromCharCode(x));\n break;\n case 0x0d: // CR\n if (this.peekChar() === /* LF = */ 0x0a) {\n this.nextChar();\n }\n break;\n case 0x0a: // LF\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n break;\n default:\n strBuf.push(String.fromCharCode(ch));\n break;\n }\n if (done) {\n break;\n }\n if (!charBuffered) {\n ch = this.nextChar();\n }\n }\n return strBuf.join(\"\");\n }\n\n getName() {\n let ch, previousCh;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n if (ch === /* '#' = */ 0x23) {\n ch = this.nextChar();\n if (specialChars[ch]) {\n warn(\n \"Lexer_getName: \" +\n \"NUMBER SIGN (#) should be followed by a hexadecimal number.\"\n );\n strBuf.push(\"#\");\n break;\n }\n const x = toHexDigit(ch);\n if (x !== -1) {\n previousCh = ch;\n ch = this.nextChar();\n const x2 = toHexDigit(ch);\n if (x2 === -1) {\n warn(\n `Lexer_getName: Illegal digit (${String.fromCharCode(ch)}) ` +\n \"in hexadecimal number.\"\n );\n strBuf.push(\"#\", String.fromCharCode(previousCh));\n if (specialChars[ch]) {\n break;\n }\n strBuf.push(String.fromCharCode(ch));\n continue;\n }\n strBuf.push(String.fromCharCode((x << 4) | x2));\n } else {\n strBuf.push(\"#\", String.fromCharCode(ch));\n }\n } else {\n strBuf.push(String.fromCharCode(ch));\n }\n }\n if (strBuf.length > 127) {\n warn(`Name token is longer than allowed by the spec: ${strBuf.length}`);\n }\n return Name.get(strBuf.join(\"\"));\n }\n\n /**\n * @private\n */\n _hexStringWarn(ch) {\n const MAX_HEX_STRING_NUM_WARN = 5;\n\n if (this._hexStringNumWarn++ === MAX_HEX_STRING_NUM_WARN) {\n warn(\"getHexString - ignoring additional invalid characters.\");\n return;\n }\n if (this._hexStringNumWarn > MAX_HEX_STRING_NUM_WARN) {\n // Limit the number of warning messages printed for a `this.getHexString`\n // invocation, since corrupt PDF documents may otherwise spam the console\n // enough to affect general performance negatively.\n return;\n }\n warn(`getHexString - ignoring invalid character: ${ch}`);\n }\n\n getHexString() {\n const strBuf = this.strBuf;\n strBuf.length = 0;\n let ch = this.currentChar;\n let isFirstHex = true;\n let firstDigit, secondDigit;\n this._hexStringNumWarn = 0;\n\n while (true) {\n if (ch < 0) {\n warn(\"Unterminated hex string\");\n break;\n } else if (ch === /* '>' = */ 0x3e) {\n this.nextChar();\n break;\n } else if (specialChars[ch] === 1) {\n ch = this.nextChar();\n continue;\n } else {\n if (isFirstHex) {\n firstDigit = toHexDigit(ch);\n if (firstDigit === -1) {\n this._hexStringWarn(ch);\n ch = this.nextChar();\n continue;\n }\n } else {\n secondDigit = toHexDigit(ch);\n if (secondDigit === -1) {\n this._hexStringWarn(ch);\n ch = this.nextChar();\n continue;\n }\n strBuf.push(String.fromCharCode((firstDigit << 4) | secondDigit));\n }\n isFirstHex = !isFirstHex;\n ch = this.nextChar();\n }\n }\n return strBuf.join(\"\");\n }\n\n getObj() {\n // Skip whitespace and comments.\n let comment = false;\n let ch = this.currentChar;\n while (true) {\n if (ch < 0) {\n return EOF;\n }\n if (comment) {\n if (ch === /* LF = */ 0x0a || ch === /* CR = */ 0x0d) {\n comment = false;\n }\n } else if (ch === /* '%' = */ 0x25) {\n comment = true;\n } else if (specialChars[ch] !== 1) {\n break;\n }\n ch = this.nextChar();\n }\n\n // Start reading a token.\n switch (ch | 0) {\n case 0x30: // '0'\n case 0x31: // '1'\n case 0x32: // '2'\n case 0x33: // '3'\n case 0x34: // '4'\n case 0x35: // '5'\n case 0x36: // '6'\n case 0x37: // '7'\n case 0x38: // '8'\n case 0x39: // '9'\n case 0x2b: // '+'\n case 0x2d: // '-'\n case 0x2e: // '.'\n return this.getNumber();\n case 0x28: // '('\n return this.getString();\n case 0x2f: // '/'\n return this.getName();\n // array punctuation\n case 0x5b: // '['\n this.nextChar();\n return Cmd.get(\"[\");\n case 0x5d: // ']'\n this.nextChar();\n return Cmd.get(\"]\");\n // hex string or dict punctuation\n case 0x3c: // '<'\n ch = this.nextChar();\n if (ch === 0x3c) {\n // dict punctuation\n this.nextChar();\n return Cmd.get(\"<<\");\n }\n return this.getHexString();\n // dict punctuation\n case 0x3e: // '>'\n ch = this.nextChar();\n if (ch === 0x3e) {\n this.nextChar();\n return Cmd.get(\">>\");\n }\n return Cmd.get(\">\");\n case 0x7b: // '{'\n this.nextChar();\n return Cmd.get(\"{\");\n case 0x7d: // '}'\n this.nextChar();\n return Cmd.get(\"}\");\n case 0x29: // ')'\n // Consume the current character in order to avoid permanently hanging\n // the worker thread if `Lexer.getObj` is called from within a loop\n // containing try-catch statements, since we would otherwise attempt\n // to parse the *same* character over and over (fixes issue8061.pdf).\n this.nextChar();\n throw new FormatError(`Illegal character: ${ch}`);\n }\n\n // Start reading a command.\n let str = String.fromCharCode(ch);\n // A valid command cannot start with a non-visible ASCII character,\n // and the next character may be (the start of) a valid command.\n if (ch < 0x20 || ch > 0x7f) {\n const nextCh = this.peekChar();\n if (nextCh >= 0x20 && nextCh <= 0x7f) {\n this.nextChar();\n return Cmd.get(str);\n }\n }\n const knownCommands = this.knownCommands;\n let knownCommandFound = knownCommands?.[str] !== undefined;\n while ((ch = this.nextChar()) >= 0 && !specialChars[ch]) {\n // Stop if a known command is found and next character does not make\n // the string a command.\n const possibleCommand = str + String.fromCharCode(ch);\n if (knownCommandFound && knownCommands[possibleCommand] === undefined) {\n break;\n }\n if (str.length === 128) {\n throw new FormatError(`Command token too long: ${str.length}`);\n }\n str = possibleCommand;\n knownCommandFound = knownCommands?.[str] !== undefined;\n }\n if (str === \"true\") {\n return true;\n }\n if (str === \"false\") {\n return false;\n }\n if (str === \"null\") {\n return null;\n }\n\n if (str === \"BI\") {\n // Keep track of the current stream position, since it's needed in order\n // to correctly cache inline images; see `Parser.makeInlineImage`.\n this.beginInlineImagePos = this.stream.pos;\n }\n\n return Cmd.get(str);\n }\n\n skipToNextLine() {\n let ch = this.currentChar;\n while (ch >= 0) {\n if (ch === /* CR = */ 0x0d) {\n ch = this.nextChar();\n if (ch === /* LF = */ 0x0a) {\n this.nextChar();\n }\n break;\n } else if (ch === /* LF = */ 0x0a) {\n this.nextChar();\n break;\n }\n ch = this.nextChar();\n }\n }\n}\n\nclass Linearization {\n static create(stream) {\n function getInt(linDict, name, allowZeroValue = false) {\n const obj = linDict.get(name);\n if (Number.isInteger(obj) && (allowZeroValue ? obj >= 0 : obj > 0)) {\n return obj;\n }\n throw new Error(\n `The \"${name}\" parameter in the linearization ` +\n \"dictionary is invalid.\"\n );\n }\n\n function getHints(linDict) {\n const hints = linDict.get(\"H\");\n let hintsLength;\n\n if (\n Array.isArray(hints) &&\n ((hintsLength = hints.length) === 2 || hintsLength === 4)\n ) {\n for (let index = 0; index < hintsLength; index++) {\n const hint = hints[index];\n if (!(Number.isInteger(hint) && hint > 0)) {\n throw new Error(\n `Hint (${index}) in the linearization dictionary is invalid.`\n );\n }\n }\n return hints;\n }\n throw new Error(\"Hint array in the linearization dictionary is invalid.\");\n }\n\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: null,\n });\n const obj1 = parser.getObj();\n const obj2 = parser.getObj();\n const obj3 = parser.getObj();\n const linDict = parser.getObj();\n let obj, length;\n if (\n !(\n Number.isInteger(obj1) &&\n Number.isInteger(obj2) &&\n isCmd(obj3, \"obj\") &&\n linDict instanceof Dict &&\n typeof (obj = linDict.get(\"Linearized\")) === \"number\" &&\n obj > 0\n )\n ) {\n return null; // No valid linearization dictionary found.\n } else if ((length = getInt(linDict, \"L\")) !== stream.length) {\n throw new Error(\n 'The \"L\" parameter in the linearization dictionary ' +\n \"does not equal the stream length.\"\n );\n }\n return {\n length,\n hints: getHints(linDict),\n objectNumberFirst: getInt(linDict, \"O\"),\n endFirst: getInt(linDict, \"E\"),\n numPages: getInt(linDict, \"N\"),\n mainXRefEntriesOffset: getInt(linDict, \"T\"),\n pageFirst: linDict.has(\"P\")\n ? getInt(linDict, \"P\", /* allowZeroValue = */ true)\n : 0,\n };\n }\n}\n\nexport { Lexer, Linearization, Parser };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CMapCompressionType,\n FormatError,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { Cmd, EOF, isCmd, Name } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { BinaryCMapReader } from \"./binary_cmap.js\";\nimport { Lexer } from \"./parser.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\n\nconst BUILT_IN_CMAPS = [\n // << Start unicode maps.\n \"Adobe-GB1-UCS2\",\n \"Adobe-CNS1-UCS2\",\n \"Adobe-Japan1-UCS2\",\n \"Adobe-Korea1-UCS2\",\n // >> End unicode maps.\n \"78-EUC-H\",\n \"78-EUC-V\",\n \"78-H\",\n \"78-RKSJ-H\",\n \"78-RKSJ-V\",\n \"78-V\",\n \"78ms-RKSJ-H\",\n \"78ms-RKSJ-V\",\n \"83pv-RKSJ-H\",\n \"90ms-RKSJ-H\",\n \"90ms-RKSJ-V\",\n \"90msp-RKSJ-H\",\n \"90msp-RKSJ-V\",\n \"90pv-RKSJ-H\",\n \"90pv-RKSJ-V\",\n \"Add-H\",\n \"Add-RKSJ-H\",\n \"Add-RKSJ-V\",\n \"Add-V\",\n \"Adobe-CNS1-0\",\n \"Adobe-CNS1-1\",\n \"Adobe-CNS1-2\",\n \"Adobe-CNS1-3\",\n \"Adobe-CNS1-4\",\n \"Adobe-CNS1-5\",\n \"Adobe-CNS1-6\",\n \"Adobe-GB1-0\",\n \"Adobe-GB1-1\",\n \"Adobe-GB1-2\",\n \"Adobe-GB1-3\",\n \"Adobe-GB1-4\",\n \"Adobe-GB1-5\",\n \"Adobe-Japan1-0\",\n \"Adobe-Japan1-1\",\n \"Adobe-Japan1-2\",\n \"Adobe-Japan1-3\",\n \"Adobe-Japan1-4\",\n \"Adobe-Japan1-5\",\n \"Adobe-Japan1-6\",\n \"Adobe-Korea1-0\",\n \"Adobe-Korea1-1\",\n \"Adobe-Korea1-2\",\n \"B5-H\",\n \"B5-V\",\n \"B5pc-H\",\n \"B5pc-V\",\n \"CNS-EUC-H\",\n \"CNS-EUC-V\",\n \"CNS1-H\",\n \"CNS1-V\",\n \"CNS2-H\",\n \"CNS2-V\",\n \"ETHK-B5-H\",\n \"ETHK-B5-V\",\n \"ETen-B5-H\",\n \"ETen-B5-V\",\n \"ETenms-B5-H\",\n \"ETenms-B5-V\",\n \"EUC-H\",\n \"EUC-V\",\n \"Ext-H\",\n \"Ext-RKSJ-H\",\n \"Ext-RKSJ-V\",\n \"Ext-V\",\n \"GB-EUC-H\",\n \"GB-EUC-V\",\n \"GB-H\",\n \"GB-V\",\n \"GBK-EUC-H\",\n \"GBK-EUC-V\",\n \"GBK2K-H\",\n \"GBK2K-V\",\n \"GBKp-EUC-H\",\n \"GBKp-EUC-V\",\n \"GBT-EUC-H\",\n \"GBT-EUC-V\",\n \"GBT-H\",\n \"GBT-V\",\n \"GBTpc-EUC-H\",\n \"GBTpc-EUC-V\",\n \"GBpc-EUC-H\",\n \"GBpc-EUC-V\",\n \"H\",\n \"HKdla-B5-H\",\n \"HKdla-B5-V\",\n \"HKdlb-B5-H\",\n \"HKdlb-B5-V\",\n \"HKgccs-B5-H\",\n \"HKgccs-B5-V\",\n \"HKm314-B5-H\",\n \"HKm314-B5-V\",\n \"HKm471-B5-H\",\n \"HKm471-B5-V\",\n \"HKscs-B5-H\",\n \"HKscs-B5-V\",\n \"Hankaku\",\n \"Hiragana\",\n \"KSC-EUC-H\",\n \"KSC-EUC-V\",\n \"KSC-H\",\n \"KSC-Johab-H\",\n \"KSC-Johab-V\",\n \"KSC-V\",\n \"KSCms-UHC-H\",\n \"KSCms-UHC-HW-H\",\n \"KSCms-UHC-HW-V\",\n \"KSCms-UHC-V\",\n \"KSCpc-EUC-H\",\n \"KSCpc-EUC-V\",\n \"Katakana\",\n \"NWP-H\",\n \"NWP-V\",\n \"RKSJ-H\",\n \"RKSJ-V\",\n \"Roman\",\n \"UniCNS-UCS2-H\",\n \"UniCNS-UCS2-V\",\n \"UniCNS-UTF16-H\",\n \"UniCNS-UTF16-V\",\n \"UniCNS-UTF32-H\",\n \"UniCNS-UTF32-V\",\n \"UniCNS-UTF8-H\",\n \"UniCNS-UTF8-V\",\n \"UniGB-UCS2-H\",\n \"UniGB-UCS2-V\",\n \"UniGB-UTF16-H\",\n \"UniGB-UTF16-V\",\n \"UniGB-UTF32-H\",\n \"UniGB-UTF32-V\",\n \"UniGB-UTF8-H\",\n \"UniGB-UTF8-V\",\n \"UniJIS-UCS2-H\",\n \"UniJIS-UCS2-HW-H\",\n \"UniJIS-UCS2-HW-V\",\n \"UniJIS-UCS2-V\",\n \"UniJIS-UTF16-H\",\n \"UniJIS-UTF16-V\",\n \"UniJIS-UTF32-H\",\n \"UniJIS-UTF32-V\",\n \"UniJIS-UTF8-H\",\n \"UniJIS-UTF8-V\",\n \"UniJIS2004-UTF16-H\",\n \"UniJIS2004-UTF16-V\",\n \"UniJIS2004-UTF32-H\",\n \"UniJIS2004-UTF32-V\",\n \"UniJIS2004-UTF8-H\",\n \"UniJIS2004-UTF8-V\",\n \"UniJISPro-UCS2-HW-V\",\n \"UniJISPro-UCS2-V\",\n \"UniJISPro-UTF8-V\",\n \"UniJISX0213-UTF32-H\",\n \"UniJISX0213-UTF32-V\",\n \"UniJISX02132004-UTF32-H\",\n \"UniJISX02132004-UTF32-V\",\n \"UniKS-UCS2-H\",\n \"UniKS-UCS2-V\",\n \"UniKS-UTF16-H\",\n \"UniKS-UTF16-V\",\n \"UniKS-UTF32-H\",\n \"UniKS-UTF32-V\",\n \"UniKS-UTF8-H\",\n \"UniKS-UTF8-V\",\n \"V\",\n \"WP-Symbol\",\n];\n\n// Heuristic to avoid hanging the worker-thread for CMap data with ridiculously\n// large ranges, such as e.g. 0xFFFFFFFF (fixes issue11922_reduced.pdf).\nconst MAX_MAP_RANGE = 2 ** 24 - 1; // = 0xFFFFFF\n\n// CMap, not to be confused with TrueType's cmap.\nclass CMap {\n constructor(builtInCMap = false) {\n // Codespace ranges are stored as follows:\n // [[1BytePairs], [2BytePairs], [3BytePairs], [4BytePairs]]\n // where nBytePairs are ranges e.g. [low1, high1, low2, high2, ...]\n this.codespaceRanges = [[], [], [], []];\n this.numCodespaceRanges = 0;\n // Map entries have one of two forms.\n // - cid chars are 16-bit unsigned integers, stored as integers.\n // - bf chars are variable-length byte sequences, stored as strings, with\n // one byte per character.\n this._map = [];\n this.name = \"\";\n this.vertical = false;\n this.useCMap = null;\n this.builtInCMap = builtInCMap;\n }\n\n addCodespaceRange(n, low, high) {\n this.codespaceRanges[n - 1].push(low, high);\n this.numCodespaceRanges++;\n }\n\n mapCidRange(low, high, dstLow) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapCidRange - ignoring data above MAX_MAP_RANGE.\");\n }\n while (low <= high) {\n this._map[low++] = dstLow++;\n }\n }\n\n mapBfRange(low, high, dstLow) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapBfRange - ignoring data above MAX_MAP_RANGE.\");\n }\n const lastByte = dstLow.length - 1;\n while (low <= high) {\n this._map[low++] = dstLow;\n // Only the last byte has to be incremented (in the normal case).\n const nextCharCode = dstLow.charCodeAt(lastByte) + 1;\n if (nextCharCode > 0xff) {\n dstLow =\n dstLow.substring(0, lastByte - 1) +\n String.fromCharCode(dstLow.charCodeAt(lastByte - 1) + 1) +\n \"\\x00\";\n continue;\n }\n dstLow =\n dstLow.substring(0, lastByte) + String.fromCharCode(nextCharCode);\n }\n }\n\n mapBfRangeToArray(low, high, array) {\n if (high - low > MAX_MAP_RANGE) {\n throw new Error(\"mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.\");\n }\n const ii = array.length;\n let i = 0;\n while (low <= high && i < ii) {\n this._map[low] = array[i++];\n ++low;\n }\n }\n\n // This is used for both bf and cid chars.\n mapOne(src, dst) {\n this._map[src] = dst;\n }\n\n lookup(code) {\n return this._map[code];\n }\n\n contains(code) {\n return this._map[code] !== undefined;\n }\n\n forEach(callback) {\n // Most maps have fewer than 65536 entries, and for those we use normal\n // array iteration. But really sparse tables are possible -- e.g. with\n // indices in the *billions*. For such tables we use for..in, which isn't\n // ideal because it stringifies the indices for all present elements, but\n // it does avoid iterating over every undefined entry.\n const map = this._map;\n const length = map.length;\n if (length <= 0x10000) {\n for (let i = 0; i < length; i++) {\n if (map[i] !== undefined) {\n callback(i, map[i]);\n }\n }\n } else {\n for (const i in map) {\n callback(i, map[i]);\n }\n }\n }\n\n charCodeOf(value) {\n // `Array.prototype.indexOf` is *extremely* inefficient for arrays which\n // are both very sparse and very large (see issue8372.pdf).\n const map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n }\n\n getMap() {\n return this._map;\n }\n\n readCharCode(str, offset, out) {\n let c = 0;\n const codespaceRanges = this.codespaceRanges;\n // 9.7.6.2 CMap Mapping\n // The code length is at most 4.\n for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n c = ((c << 8) | str.charCodeAt(offset + n)) >>> 0;\n // Check each codespace range to see if it falls within.\n const codespaceRange = codespaceRanges[n];\n for (let k = 0, kk = codespaceRange.length; k < kk; ) {\n const low = codespaceRange[k++];\n const high = codespaceRange[k++];\n if (c >= low && c <= high) {\n out.charcode = c;\n out.length = n + 1;\n return;\n }\n }\n }\n out.charcode = 0;\n out.length = 1;\n }\n\n getCharCodeLength(charCode) {\n const codespaceRanges = this.codespaceRanges;\n for (let n = 0, nn = codespaceRanges.length; n < nn; n++) {\n // Check each codespace range to see if it falls within.\n const codespaceRange = codespaceRanges[n];\n for (let k = 0, kk = codespaceRange.length; k < kk; ) {\n const low = codespaceRange[k++];\n const high = codespaceRange[k++];\n if (charCode >= low && charCode <= high) {\n return n + 1;\n }\n }\n }\n return 1;\n }\n\n get length() {\n return this._map.length;\n }\n\n get isIdentityCMap() {\n if (!(this.name === \"Identity-H\" || this.name === \"Identity-V\")) {\n return false;\n }\n if (this._map.length !== 0x10000) {\n return false;\n }\n for (let i = 0; i < 0x10000; i++) {\n if (this._map[i] !== i) {\n return false;\n }\n }\n return true;\n }\n}\n\n// A special case of CMap, where the _map array implicitly has a length of\n// 65536 and each element is equal to its index.\nclass IdentityCMap extends CMap {\n constructor(vertical, n) {\n super();\n\n this.vertical = vertical;\n this.addCodespaceRange(n, 0, 0xffff);\n }\n\n mapCidRange(low, high, dstLow) {\n unreachable(\"should not call mapCidRange\");\n }\n\n mapBfRange(low, high, dstLow) {\n unreachable(\"should not call mapBfRange\");\n }\n\n mapBfRangeToArray(low, high, array) {\n unreachable(\"should not call mapBfRangeToArray\");\n }\n\n mapOne(src, dst) {\n unreachable(\"should not call mapCidOne\");\n }\n\n lookup(code) {\n return Number.isInteger(code) && code <= 0xffff ? code : undefined;\n }\n\n contains(code) {\n return Number.isInteger(code) && code <= 0xffff;\n }\n\n forEach(callback) {\n for (let i = 0; i <= 0xffff; i++) {\n callback(i, i);\n }\n }\n\n charCodeOf(value) {\n return Number.isInteger(value) && value <= 0xffff ? value : -1;\n }\n\n getMap() {\n // Sometimes identity maps must be instantiated, but it's rare.\n const map = new Array(0x10000);\n for (let i = 0; i <= 0xffff; i++) {\n map[i] = i;\n }\n return map;\n }\n\n get length() {\n return 0x10000;\n }\n\n // eslint-disable-next-line getter-return\n get isIdentityCMap() {\n unreachable(\"should not access .isIdentityCMap\");\n }\n}\n\nfunction strToInt(str) {\n let a = 0;\n for (let i = 0; i < str.length; i++) {\n a = (a << 8) | str.charCodeAt(i);\n }\n return a >>> 0;\n}\n\nfunction expectString(obj) {\n if (typeof obj !== \"string\") {\n throw new FormatError(\"Malformed CMap: expected string.\");\n }\n}\n\nfunction expectInt(obj) {\n if (!Number.isInteger(obj)) {\n throw new FormatError(\"Malformed CMap: expected int.\");\n }\n}\n\nfunction parseBfChar(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endbfchar\")) {\n return;\n }\n expectString(obj);\n const src = strToInt(obj);\n obj = lexer.getObj();\n // TODO are /dstName used?\n expectString(obj);\n const dst = obj;\n cMap.mapOne(src, dst);\n }\n}\n\nfunction parseBfRange(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endbfrange\")) {\n return;\n }\n expectString(obj);\n const low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n const high = strToInt(obj);\n obj = lexer.getObj();\n if (Number.isInteger(obj) || typeof obj === \"string\") {\n const dstLow = Number.isInteger(obj) ? String.fromCharCode(obj) : obj;\n cMap.mapBfRange(low, high, dstLow);\n } else if (isCmd(obj, \"[\")) {\n obj = lexer.getObj();\n const array = [];\n while (!isCmd(obj, \"]\") && obj !== EOF) {\n array.push(obj);\n obj = lexer.getObj();\n }\n cMap.mapBfRangeToArray(low, high, array);\n } else {\n break;\n }\n }\n throw new FormatError(\"Invalid bf range.\");\n}\n\nfunction parseCidChar(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endcidchar\")) {\n return;\n }\n expectString(obj);\n const src = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n const dst = obj;\n cMap.mapOne(src, dst);\n }\n}\n\nfunction parseCidRange(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endcidrange\")) {\n return;\n }\n expectString(obj);\n const low = strToInt(obj);\n obj = lexer.getObj();\n expectString(obj);\n const high = strToInt(obj);\n obj = lexer.getObj();\n expectInt(obj);\n const dstLow = obj;\n cMap.mapCidRange(low, high, dstLow);\n }\n}\n\nfunction parseCodespaceRange(cMap, lexer) {\n while (true) {\n let obj = lexer.getObj();\n if (obj === EOF) {\n break;\n }\n if (isCmd(obj, \"endcodespacerange\")) {\n return;\n }\n if (typeof obj !== \"string\") {\n break;\n }\n const low = strToInt(obj);\n obj = lexer.getObj();\n if (typeof obj !== \"string\") {\n break;\n }\n const high = strToInt(obj);\n cMap.addCodespaceRange(obj.length, low, high);\n }\n throw new FormatError(\"Invalid codespace range.\");\n}\n\nfunction parseWMode(cMap, lexer) {\n const obj = lexer.getObj();\n if (Number.isInteger(obj)) {\n cMap.vertical = !!obj;\n }\n}\n\nfunction parseCMapName(cMap, lexer) {\n const obj = lexer.getObj();\n if (obj instanceof Name) {\n cMap.name = obj.name;\n }\n}\n\nasync function parseCMap(cMap, lexer, fetchBuiltInCMap, useCMap) {\n let previous, embeddedUseCMap;\n objLoop: while (true) {\n try {\n const obj = lexer.getObj();\n if (obj === EOF) {\n break;\n } else if (obj instanceof Name) {\n if (obj.name === \"WMode\") {\n parseWMode(cMap, lexer);\n } else if (obj.name === \"CMapName\") {\n parseCMapName(cMap, lexer);\n }\n previous = obj;\n } else if (obj instanceof Cmd) {\n switch (obj.cmd) {\n case \"endcmap\":\n break objLoop;\n case \"usecmap\":\n if (previous instanceof Name) {\n embeddedUseCMap = previous.name;\n }\n break;\n case \"begincodespacerange\":\n parseCodespaceRange(cMap, lexer);\n break;\n case \"beginbfchar\":\n parseBfChar(cMap, lexer);\n break;\n case \"begincidchar\":\n parseCidChar(cMap, lexer);\n break;\n case \"beginbfrange\":\n parseBfRange(cMap, lexer);\n break;\n case \"begincidrange\":\n parseCidRange(cMap, lexer);\n break;\n }\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Invalid cMap data: \" + ex);\n continue;\n }\n }\n\n if (!useCMap && embeddedUseCMap) {\n // Load the useCMap definition from the file only if there wasn't one\n // specified.\n useCMap = embeddedUseCMap;\n }\n if (useCMap) {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n }\n return cMap;\n}\n\nasync function extendCMap(cMap, fetchBuiltInCMap, useCMap) {\n cMap.useCMap = await createBuiltInCMap(useCMap, fetchBuiltInCMap);\n // If there aren't any code space ranges defined clone all the parent ones\n // into this cMap.\n if (cMap.numCodespaceRanges === 0) {\n const useCodespaceRanges = cMap.useCMap.codespaceRanges;\n for (let i = 0; i < useCodespaceRanges.length; i++) {\n cMap.codespaceRanges[i] = useCodespaceRanges[i].slice();\n }\n cMap.numCodespaceRanges = cMap.useCMap.numCodespaceRanges;\n }\n // Merge the map into the current one, making sure not to override\n // any previously defined entries.\n cMap.useCMap.forEach(function (key, value) {\n if (!cMap.contains(key)) {\n cMap.mapOne(key, cMap.useCMap.lookup(key));\n }\n });\n\n return cMap;\n}\n\nasync function createBuiltInCMap(name, fetchBuiltInCMap) {\n if (name === \"Identity-H\") {\n return new IdentityCMap(false, 2);\n } else if (name === \"Identity-V\") {\n return new IdentityCMap(true, 2);\n }\n if (!BUILT_IN_CMAPS.includes(name)) {\n throw new Error(\"Unknown CMap name: \" + name);\n }\n if (!fetchBuiltInCMap) {\n throw new Error(\"Built-in CMap parameters are not provided.\");\n }\n\n const { cMapData, compressionType } = await fetchBuiltInCMap(name);\n const cMap = new CMap(true);\n\n if (compressionType === CMapCompressionType.BINARY) {\n return new BinaryCMapReader().process(cMapData, cMap, useCMap => {\n return extendCMap(cMap, fetchBuiltInCMap, useCMap);\n });\n }\n if (compressionType === CMapCompressionType.NONE) {\n const lexer = new Lexer(new Stream(cMapData));\n return parseCMap(cMap, lexer, fetchBuiltInCMap, null);\n }\n throw new Error(`Invalid CMap \"compressionType\" value: ${compressionType}`);\n}\n\nclass CMapFactory {\n static async create({ encoding, fetchBuiltInCMap, useCMap }) {\n if (encoding instanceof Name) {\n return createBuiltInCMap(encoding.name, fetchBuiltInCMap);\n } else if (encoding instanceof BaseStream) {\n const parsedCMap = await parseCMap(\n /* cMap = */ new CMap(),\n /* lexer = */ new Lexer(encoding),\n fetchBuiltInCMap,\n useCMap\n );\n\n if (parsedCMap.isIdentityCMap) {\n return createBuiltInCMap(parsedCMap.name, fetchBuiltInCMap);\n }\n return parsedCMap;\n }\n throw new Error(\"Encoding required.\");\n }\n}\n\nexport { CMap, CMapFactory, IdentityCMap };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// prettier-ignore\nconst ISOAdobeCharset = [\n \".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\",\n \"percent\", \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\",\n \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\",\n \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\",\n \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\",\n \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\",\n \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\",\n \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\",\n \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\",\n \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\",\n \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\",\n \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\",\n \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\",\n \"perthousand\", \"questiondown\", \"grave\", \"acute\", \"circumflex\", \"tilde\",\n \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"ring\", \"cedilla\",\n \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"AE\", \"ordfeminine\",\n \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\", \"dotlessi\", \"lslash\",\n \"oslash\", \"oe\", \"germandbls\", \"onesuperior\", \"logicalnot\", \"mu\",\n \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\", \"onequarter\",\n \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\", \"twosuperior\",\n \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\", \"copyright\",\n \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\", \"Atilde\",\n \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\", \"Iacute\",\n \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\", \"Ocircumflex\",\n \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\", \"Ucircumflex\",\n \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\", \"aacute\",\n \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\", \"ccedilla\",\n \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\", \"icircumflex\",\n \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\", \"odieresis\",\n \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\", \"udieresis\",\n \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\"\n];\n\n// prettier-ignore\nconst ExpertCharset = [\n \".notdef\", \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"dollaroldstyle\",\n \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\",\n \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\",\n \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\",\n \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\",\n \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\",\n \"colon\", \"semicolon\", \"commasuperior\", \"threequartersemdash\",\n \"periodsuperior\", \"questionsmall\", \"asuperior\", \"bsuperior\",\n \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\",\n \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\",\n \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\",\n \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\",\n \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\",\n \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\",\n \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\",\n \"onefitted\", \"rupiah\", \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\",\n \"Lslashsmall\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\",\n \"Brevesmall\", \"Caronsmall\", \"Dotaccentsmall\", \"Macronsmall\",\n \"figuredash\", \"hypheninferior\", \"Ogoneksmall\", \"Ringsmall\",\n \"Cedillasmall\", \"onequarter\", \"onehalf\", \"threequarters\",\n \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\",\n \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\",\n \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\",\n \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\",\n \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\",\n \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\",\n \"periodinferior\", \"commainferior\", \"Agravesmall\", \"Aacutesmall\",\n \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\",\n \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\",\n \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\",\n \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\",\n \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\",\n \"Ydieresissmall\"\n];\n\n// prettier-ignore\nconst ExpertSubsetCharset = [\n \".notdef\", \"space\", \"dollaroldstyle\", \"dollarsuperior\",\n \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\",\n \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\",\n \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\",\n \"eightoldstyle\", \"nineoldstyle\", \"colon\", \"semicolon\", \"commasuperior\",\n \"threequartersemdash\", \"periodsuperior\", \"asuperior\", \"bsuperior\",\n \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\", \"lsuperior\",\n \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n \"tsuperior\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\",\n \"parenrightinferior\", \"hyphensuperior\", \"colonmonetary\", \"onefitted\",\n \"rupiah\", \"centoldstyle\", \"figuredash\", \"hypheninferior\", \"onequarter\",\n \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"zerosuperior\", \"onesuperior\",\n \"twosuperior\", \"threesuperior\", \"foursuperior\", \"fivesuperior\",\n \"sixsuperior\", \"sevensuperior\", \"eightsuperior\", \"ninesuperior\",\n \"zeroinferior\", \"oneinferior\", \"twoinferior\", \"threeinferior\",\n \"fourinferior\", \"fiveinferior\", \"sixinferior\", \"seveninferior\",\n \"eightinferior\", \"nineinferior\", \"centinferior\", \"dollarinferior\",\n \"periodinferior\", \"commainferior\"\n];\n\nexport { ExpertCharset, ExpertSubsetCharset, ISOAdobeCharset };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// prettier-ignore\nconst ExpertEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"\", \"dollaroldstyle\",\n \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\", \"parenleftsuperior\",\n \"parenrightsuperior\", \"twodotenleader\", \"onedotenleader\", \"comma\",\n \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\", \"oneoldstyle\",\n \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\",\n \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"colon\",\n \"semicolon\", \"commasuperior\", \"threequartersemdash\", \"periodsuperior\",\n \"questionsmall\", \"\", \"asuperior\", \"bsuperior\", \"centsuperior\", \"dsuperior\",\n \"esuperior\", \"\", \"\", \"\", \"isuperior\", \"\", \"\", \"lsuperior\", \"msuperior\",\n \"nsuperior\", \"osuperior\", \"\", \"\", \"rsuperior\", \"ssuperior\", \"tsuperior\",\n \"\", \"ff\", \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\",\n \"parenrightinferior\", \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\",\n \"Asmall\", \"Bsmall\", \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\",\n \"Hsmall\", \"Ismall\", \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\",\n \"Osmall\", \"Psmall\", \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\",\n \"Vsmall\", \"Wsmall\", \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\",\n \"onefitted\", \"rupiah\", \"Tildesmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\",\n \"\", \"\", \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\",\n \"Caronsmall\", \"\", \"Dotaccentsmall\", \"\", \"\", \"Macronsmall\", \"\", \"\",\n \"figuredash\", \"hypheninferior\", \"\", \"\", \"Ogoneksmall\", \"Ringsmall\",\n \"Cedillasmall\", \"\", \"\", \"\", \"onequarter\", \"onehalf\", \"threequarters\",\n \"questiondownsmall\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"zerosuperior\",\n \"onesuperior\", \"twosuperior\", \"threesuperior\", \"foursuperior\",\n \"fivesuperior\", \"sixsuperior\", \"sevensuperior\", \"eightsuperior\",\n \"ninesuperior\", \"zeroinferior\", \"oneinferior\", \"twoinferior\",\n \"threeinferior\", \"fourinferior\", \"fiveinferior\", \"sixinferior\",\n \"seveninferior\", \"eightinferior\", \"nineinferior\", \"centinferior\",\n \"dollarinferior\", \"periodinferior\", \"commainferior\", \"Agravesmall\",\n \"Aacutesmall\", \"Acircumflexsmall\", \"Atildesmall\", \"Adieresissmall\",\n \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\", \"Egravesmall\", \"Eacutesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Igravesmall\", \"Iacutesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ethsmall\", \"Ntildesmall\",\n \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\", \"Otildesmall\",\n \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\", \"Uacutesmall\",\n \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\", \"Thornsmall\",\n \"Ydieresissmall\"];\n\n// prettier-ignore\nconst MacExpertEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclamsmall\", \"Hungarumlautsmall\", \"centoldstyle\",\n \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\", \"Acutesmall\",\n \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"comma\", \"hyphen\", \"period\", \"fraction\", \"zerooldstyle\",\n \"oneoldstyle\", \"twooldstyle\", \"threeoldstyle\", \"fouroldstyle\",\n \"fiveoldstyle\", \"sixoldstyle\", \"sevenoldstyle\", \"eightoldstyle\",\n \"nineoldstyle\", \"colon\", \"semicolon\", \"\", \"threequartersemdash\", \"\",\n \"questionsmall\", \"\", \"\", \"\", \"\", \"Ethsmall\", \"\", \"\", \"onequarter\",\n \"onehalf\", \"threequarters\", \"oneeighth\", \"threeeighths\", \"fiveeighths\",\n \"seveneighths\", \"onethird\", \"twothirds\", \"\", \"\", \"\", \"\", \"\", \"\", \"ff\",\n \"fi\", \"fl\", \"ffi\", \"ffl\", \"parenleftinferior\", \"\", \"parenrightinferior\",\n \"Circumflexsmall\", \"hypheninferior\", \"Gravesmall\", \"Asmall\", \"Bsmall\",\n \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\",\n \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\",\n \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\",\n \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\",\n \"Tildesmall\", \"\", \"\", \"asuperior\", \"centsuperior\", \"\", \"\", \"\", \"\",\n \"Aacutesmall\", \"Agravesmall\", \"Acircumflexsmall\", \"Adieresissmall\",\n \"Atildesmall\", \"Aringsmall\", \"Ccedillasmall\", \"Eacutesmall\", \"Egravesmall\",\n \"Ecircumflexsmall\", \"Edieresissmall\", \"Iacutesmall\", \"Igravesmall\",\n \"Icircumflexsmall\", \"Idieresissmall\", \"Ntildesmall\", \"Oacutesmall\",\n \"Ogravesmall\", \"Ocircumflexsmall\", \"Odieresissmall\", \"Otildesmall\",\n \"Uacutesmall\", \"Ugravesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"\",\n \"eightsuperior\", \"fourinferior\", \"threeinferior\", \"sixinferior\",\n \"eightinferior\", \"seveninferior\", \"Scaronsmall\", \"\", \"centinferior\",\n \"twoinferior\", \"\", \"Dieresissmall\", \"\", \"Caronsmall\", \"osuperior\",\n \"fiveinferior\", \"\", \"commainferior\", \"periodinferior\", \"Yacutesmall\", \"\",\n \"dollarinferior\", \"\", \"\", \"Thornsmall\", \"\", \"nineinferior\", \"zeroinferior\",\n \"Zcaronsmall\", \"AEsmall\", \"Oslashsmall\", \"questiondownsmall\",\n \"oneinferior\", \"Lslashsmall\", \"\", \"\", \"\", \"\", \"\", \"\", \"Cedillasmall\", \"\",\n \"\", \"\", \"\", \"\", \"OEsmall\", \"figuredash\", \"hyphensuperior\", \"\", \"\", \"\", \"\",\n \"exclamdownsmall\", \"\", \"Ydieresissmall\", \"\", \"onesuperior\", \"twosuperior\",\n \"threesuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\",\n \"sevensuperior\", \"ninesuperior\", \"zerosuperior\", \"\", \"esuperior\",\n \"rsuperior\", \"tsuperior\", \"\", \"\", \"isuperior\", \"ssuperior\", \"dsuperior\",\n \"\", \"\", \"\", \"\", \"\", \"lsuperior\", \"Ogoneksmall\", \"Brevesmall\",\n \"Macronsmall\", \"bsuperior\", \"nsuperior\", \"msuperior\", \"commasuperior\",\n \"periodsuperior\", \"Dotaccentsmall\", \"Ringsmall\", \"\", \"\", \"\", \"\"];\n\n// prettier-ignore\nconst MacRomanEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\",\n \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\",\n \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"\",\n \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\", \"Odieresis\",\n \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\", \"atilde\",\n \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\",\n \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\",\n \"ograve\", \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\",\n \"ucircumflex\", \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\",\n \"section\", \"bullet\", \"paragraph\", \"germandbls\", \"registered\", \"copyright\",\n \"trademark\", \"acute\", \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\",\n \"plusminus\", \"lessequal\", \"greaterequal\", \"yen\", \"mu\", \"partialdiff\",\n \"summation\", \"product\", \"pi\", \"integral\", \"ordfeminine\", \"ordmasculine\",\n \"Omega\", \"ae\", \"oslash\", \"questiondown\", \"exclamdown\", \"logicalnot\",\n \"radical\", \"florin\", \"approxequal\", \"Delta\", \"guillemotleft\",\n \"guillemotright\", \"ellipsis\", \"space\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\",\n \"oe\", \"endash\", \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\",\n \"quoteright\", \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\",\n \"currency\", \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\",\n \"periodcentered\", \"quotesinglbase\", \"quotedblbase\", \"perthousand\",\n \"Acircumflex\", \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\",\n \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\",\n \"Ograve\", \"Uacute\", \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\",\n \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\",\n \"ogonek\", \"caron\"];\n\n// prettier-ignore\nconst StandardEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n \"asciicircum\", \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\",\n \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\",\n \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"exclamdown\",\n \"cent\", \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n \"guilsinglright\", \"fi\", \"fl\", \"\", \"endash\", \"dagger\", \"daggerdbl\",\n \"periodcentered\", \"\", \"paragraph\", \"bullet\", \"quotesinglbase\",\n \"quotedblbase\", \"quotedblright\", \"guillemotright\", \"ellipsis\",\n \"perthousand\", \"\", \"questiondown\", \"\", \"grave\", \"acute\", \"circumflex\",\n \"tilde\", \"macron\", \"breve\", \"dotaccent\", \"dieresis\", \"\", \"ring\", \"cedilla\",\n \"\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"AE\", \"\", \"ordfeminine\", \"\", \"\",\n \"\", \"\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"\", \"\", \"\", \"\", \"\", \"ae\",\n \"\", \"\", \"\", \"dotlessi\", \"\", \"\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"\",\n \"\", \"\", \"\"];\n\n// prettier-ignore\nconst WinAnsiEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quotesingle\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\",\n \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\",\n \"less\", \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\",\n \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\",\n \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\",\n \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\",\n \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\",\n \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\",\n \"bullet\", \"Euro\", \"bullet\", \"quotesinglbase\", \"florin\", \"quotedblbase\",\n \"ellipsis\", \"dagger\", \"daggerdbl\", \"circumflex\", \"perthousand\", \"Scaron\",\n \"guilsinglleft\", \"OE\", \"bullet\", \"Zcaron\", \"bullet\", \"bullet\", \"quoteleft\",\n \"quoteright\", \"quotedblleft\", \"quotedblright\", \"bullet\", \"endash\",\n \"emdash\", \"tilde\", \"trademark\", \"scaron\", \"guilsinglright\", \"oe\", \"bullet\",\n \"zcaron\", \"Ydieresis\", \"space\", \"exclamdown\", \"cent\", \"sterling\",\n \"currency\", \"yen\", \"brokenbar\", \"section\", \"dieresis\", \"copyright\",\n \"ordfeminine\", \"guillemotleft\", \"logicalnot\", \"hyphen\", \"registered\",\n \"macron\", \"degree\", \"plusminus\", \"twosuperior\", \"threesuperior\", \"acute\",\n \"mu\", \"paragraph\", \"periodcentered\", \"cedilla\", \"onesuperior\",\n \"ordmasculine\", \"guillemotright\", \"onequarter\", \"onehalf\", \"threequarters\",\n \"questiondown\", \"Agrave\", \"Aacute\", \"Acircumflex\", \"Atilde\", \"Adieresis\",\n \"Aring\", \"AE\", \"Ccedilla\", \"Egrave\", \"Eacute\", \"Ecircumflex\", \"Edieresis\",\n \"Igrave\", \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Eth\", \"Ntilde\", \"Ograve\",\n \"Oacute\", \"Ocircumflex\", \"Otilde\", \"Odieresis\", \"multiply\", \"Oslash\",\n \"Ugrave\", \"Uacute\", \"Ucircumflex\", \"Udieresis\", \"Yacute\", \"Thorn\",\n \"germandbls\", \"agrave\", \"aacute\", \"acircumflex\", \"atilde\", \"adieresis\",\n \"aring\", \"ae\", \"ccedilla\", \"egrave\", \"eacute\", \"ecircumflex\", \"edieresis\",\n \"igrave\", \"iacute\", \"icircumflex\", \"idieresis\", \"eth\", \"ntilde\", \"ograve\",\n \"oacute\", \"ocircumflex\", \"otilde\", \"odieresis\", \"divide\", \"oslash\",\n \"ugrave\", \"uacute\", \"ucircumflex\", \"udieresis\", \"yacute\", \"thorn\",\n \"ydieresis\"];\n\n// prettier-ignore\nconst SymbolSetEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"exclam\", \"universal\", \"numbersign\", \"existential\", \"percent\",\n \"ampersand\", \"suchthat\", \"parenleft\", \"parenright\", \"asteriskmath\", \"plus\",\n \"comma\", \"minus\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\",\n \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\",\n \"equal\", \"greater\", \"question\", \"congruent\", \"Alpha\", \"Beta\", \"Chi\",\n \"Delta\", \"Epsilon\", \"Phi\", \"Gamma\", \"Eta\", \"Iota\", \"theta1\", \"Kappa\",\n \"Lambda\", \"Mu\", \"Nu\", \"Omicron\", \"Pi\", \"Theta\", \"Rho\", \"Sigma\", \"Tau\",\n \"Upsilon\", \"sigma1\", \"Omega\", \"Xi\", \"Psi\", \"Zeta\", \"bracketleft\",\n \"therefore\", \"bracketright\", \"perpendicular\", \"underscore\", \"radicalex\",\n \"alpha\", \"beta\", \"chi\", \"delta\", \"epsilon\", \"phi\", \"gamma\", \"eta\", \"iota\",\n \"phi1\", \"kappa\", \"lambda\", \"mu\", \"nu\", \"omicron\", \"pi\", \"theta\", \"rho\",\n \"sigma\", \"tau\", \"upsilon\", \"omega1\", \"omega\", \"xi\", \"psi\", \"zeta\",\n \"braceleft\", \"bar\", \"braceright\", \"similar\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"Euro\", \"Upsilon1\", \"minute\", \"lessequal\",\n \"fraction\", \"infinity\", \"florin\", \"club\", \"diamond\", \"heart\", \"spade\",\n \"arrowboth\", \"arrowleft\", \"arrowup\", \"arrowright\", \"arrowdown\", \"degree\",\n \"plusminus\", \"second\", \"greaterequal\", \"multiply\", \"proportional\",\n \"partialdiff\", \"bullet\", \"divide\", \"notequal\", \"equivalence\",\n \"approxequal\", \"ellipsis\", \"arrowvertex\", \"arrowhorizex\", \"carriagereturn\",\n \"aleph\", \"Ifraktur\", \"Rfraktur\", \"weierstrass\", \"circlemultiply\",\n \"circleplus\", \"emptyset\", \"intersection\", \"union\", \"propersuperset\",\n \"reflexsuperset\", \"notsubset\", \"propersubset\", \"reflexsubset\", \"element\",\n \"notelement\", \"angle\", \"gradient\", \"registerserif\", \"copyrightserif\",\n \"trademarkserif\", \"product\", \"radical\", \"dotmath\", \"logicalnot\",\n \"logicaland\", \"logicalor\", \"arrowdblboth\", \"arrowdblleft\", \"arrowdblup\",\n \"arrowdblright\", \"arrowdbldown\", \"lozenge\", \"angleleft\", \"registersans\",\n \"copyrightsans\", \"trademarksans\", \"summation\", \"parenlefttp\",\n \"parenleftex\", \"parenleftbt\", \"bracketlefttp\", \"bracketleftex\",\n \"bracketleftbt\", \"bracelefttp\", \"braceleftmid\", \"braceleftbt\", \"braceex\",\n \"\", \"angleright\", \"integral\", \"integraltp\", \"integralex\", \"integralbt\",\n \"parenrighttp\", \"parenrightex\", \"parenrightbt\", \"bracketrighttp\",\n \"bracketrightex\", \"bracketrightbt\", \"bracerighttp\", \"bracerightmid\",\n \"bracerightbt\", \"\"];\n\n// prettier-ignore\nconst ZapfDingbatsEncoding = [\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"space\", \"a1\", \"a2\", \"a202\", \"a3\", \"a4\", \"a5\", \"a119\", \"a118\", \"a117\",\n \"a11\", \"a12\", \"a13\", \"a14\", \"a15\", \"a16\", \"a105\", \"a17\", \"a18\", \"a19\",\n \"a20\", \"a21\", \"a22\", \"a23\", \"a24\", \"a25\", \"a26\", \"a27\", \"a28\", \"a6\", \"a7\",\n \"a8\", \"a9\", \"a10\", \"a29\", \"a30\", \"a31\", \"a32\", \"a33\", \"a34\", \"a35\", \"a36\",\n \"a37\", \"a38\", \"a39\", \"a40\", \"a41\", \"a42\", \"a43\", \"a44\", \"a45\", \"a46\",\n \"a47\", \"a48\", \"a49\", \"a50\", \"a51\", \"a52\", \"a53\", \"a54\", \"a55\", \"a56\",\n \"a57\", \"a58\", \"a59\", \"a60\", \"a61\", \"a62\", \"a63\", \"a64\", \"a65\", \"a66\",\n \"a67\", \"a68\", \"a69\", \"a70\", \"a71\", \"a72\", \"a73\", \"a74\", \"a203\", \"a75\",\n \"a204\", \"a76\", \"a77\", \"a78\", \"a79\", \"a81\", \"a82\", \"a83\", \"a84\", \"a97\",\n \"a98\", \"a99\", \"a100\", \"\", \"a89\", \"a90\", \"a93\", \"a94\", \"a91\", \"a92\", \"a205\",\n \"a85\", \"a206\", \"a86\", \"a87\", \"a88\", \"a95\", \"a96\", \"\", \"\", \"\", \"\", \"\", \"\",\n \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"\", \"a101\", \"a102\", \"a103\",\n \"a104\", \"a106\", \"a107\", \"a108\", \"a112\", \"a111\", \"a110\", \"a109\", \"a120\",\n \"a121\", \"a122\", \"a123\", \"a124\", \"a125\", \"a126\", \"a127\", \"a128\", \"a129\",\n \"a130\", \"a131\", \"a132\", \"a133\", \"a134\", \"a135\", \"a136\", \"a137\", \"a138\",\n \"a139\", \"a140\", \"a141\", \"a142\", \"a143\", \"a144\", \"a145\", \"a146\", \"a147\",\n \"a148\", \"a149\", \"a150\", \"a151\", \"a152\", \"a153\", \"a154\", \"a155\", \"a156\",\n \"a157\", \"a158\", \"a159\", \"a160\", \"a161\", \"a163\", \"a164\", \"a196\", \"a165\",\n \"a192\", \"a166\", \"a167\", \"a168\", \"a169\", \"a170\", \"a171\", \"a172\", \"a173\",\n \"a162\", \"a174\", \"a175\", \"a176\", \"a177\", \"a178\", \"a179\", \"a193\", \"a180\",\n \"a199\", \"a181\", \"a200\", \"a182\", \"\", \"a201\", \"a183\", \"a184\", \"a197\", \"a185\",\n \"a194\", \"a198\", \"a186\", \"a195\", \"a187\", \"a188\", \"a189\", \"a190\", \"a191\", \"\"];\n\nfunction getEncoding(encodingName) {\n switch (encodingName) {\n case \"WinAnsiEncoding\":\n return WinAnsiEncoding;\n case \"StandardEncoding\":\n return StandardEncoding;\n case \"MacRomanEncoding\":\n return MacRomanEncoding;\n case \"SymbolSetEncoding\":\n return SymbolSetEncoding;\n case \"ZapfDingbatsEncoding\":\n return ZapfDingbatsEncoding;\n case \"ExpertEncoding\":\n return ExpertEncoding;\n case \"MacExpertEncoding\":\n return MacExpertEncoding;\n default:\n return null;\n }\n}\n\nexport {\n ExpertEncoding,\n getEncoding,\n MacRomanEncoding,\n StandardEncoding,\n SymbolSetEncoding,\n WinAnsiEncoding,\n ZapfDingbatsEncoding,\n};\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n bytesToString,\n FormatError,\n info,\n shadow,\n stringToBytes,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport {\n ExpertCharset,\n ExpertSubsetCharset,\n ISOAdobeCharset,\n} from \"./charsets.js\";\nimport { ExpertEncoding, StandardEncoding } from \"./encodings.js\";\n\n// Maximum subroutine call depth of type 2 charstrings. Matches OTS.\nconst MAX_SUBR_NESTING = 10;\n\n/**\n * The CFF class takes a Type1 file and wrap it into a\n * 'Compact Font Format' which itself embed Type2 charstrings.\n */\n// prettier-ignore\nconst CFFStandardStrings = [\n \".notdef\", \"space\", \"exclam\", \"quotedbl\", \"numbersign\", \"dollar\", \"percent\",\n \"ampersand\", \"quoteright\", \"parenleft\", \"parenright\", \"asterisk\", \"plus\",\n \"comma\", \"hyphen\", \"period\", \"slash\", \"zero\", \"one\", \"two\", \"three\", \"four\",\n \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"colon\", \"semicolon\", \"less\",\n \"equal\", \"greater\", \"question\", \"at\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\",\n \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\",\n \"X\", \"Y\", \"Z\", \"bracketleft\", \"backslash\", \"bracketright\", \"asciicircum\",\n \"underscore\", \"quoteleft\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\",\n \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\",\n \"z\", \"braceleft\", \"bar\", \"braceright\", \"asciitilde\", \"exclamdown\", \"cent\",\n \"sterling\", \"fraction\", \"yen\", \"florin\", \"section\", \"currency\",\n \"quotesingle\", \"quotedblleft\", \"guillemotleft\", \"guilsinglleft\",\n \"guilsinglright\", \"fi\", \"fl\", \"endash\", \"dagger\", \"daggerdbl\",\n \"periodcentered\", \"paragraph\", \"bullet\", \"quotesinglbase\", \"quotedblbase\",\n \"quotedblright\", \"guillemotright\", \"ellipsis\", \"perthousand\", \"questiondown\",\n \"grave\", \"acute\", \"circumflex\", \"tilde\", \"macron\", \"breve\", \"dotaccent\",\n \"dieresis\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\", \"emdash\",\n \"AE\", \"ordfeminine\", \"Lslash\", \"Oslash\", \"OE\", \"ordmasculine\", \"ae\",\n \"dotlessi\", \"lslash\", \"oslash\", \"oe\", \"germandbls\", \"onesuperior\",\n \"logicalnot\", \"mu\", \"trademark\", \"Eth\", \"onehalf\", \"plusminus\", \"Thorn\",\n \"onequarter\", \"divide\", \"brokenbar\", \"degree\", \"thorn\", \"threequarters\",\n \"twosuperior\", \"registered\", \"minus\", \"eth\", \"multiply\", \"threesuperior\",\n \"copyright\", \"Aacute\", \"Acircumflex\", \"Adieresis\", \"Agrave\", \"Aring\",\n \"Atilde\", \"Ccedilla\", \"Eacute\", \"Ecircumflex\", \"Edieresis\", \"Egrave\",\n \"Iacute\", \"Icircumflex\", \"Idieresis\", \"Igrave\", \"Ntilde\", \"Oacute\",\n \"Ocircumflex\", \"Odieresis\", \"Ograve\", \"Otilde\", \"Scaron\", \"Uacute\",\n \"Ucircumflex\", \"Udieresis\", \"Ugrave\", \"Yacute\", \"Ydieresis\", \"Zcaron\",\n \"aacute\", \"acircumflex\", \"adieresis\", \"agrave\", \"aring\", \"atilde\",\n \"ccedilla\", \"eacute\", \"ecircumflex\", \"edieresis\", \"egrave\", \"iacute\",\n \"icircumflex\", \"idieresis\", \"igrave\", \"ntilde\", \"oacute\", \"ocircumflex\",\n \"odieresis\", \"ograve\", \"otilde\", \"scaron\", \"uacute\", \"ucircumflex\",\n \"udieresis\", \"ugrave\", \"yacute\", \"ydieresis\", \"zcaron\", \"exclamsmall\",\n \"Hungarumlautsmall\", \"dollaroldstyle\", \"dollarsuperior\", \"ampersandsmall\",\n \"Acutesmall\", \"parenleftsuperior\", \"parenrightsuperior\", \"twodotenleader\",\n \"onedotenleader\", \"zerooldstyle\", \"oneoldstyle\", \"twooldstyle\",\n \"threeoldstyle\", \"fouroldstyle\", \"fiveoldstyle\", \"sixoldstyle\",\n \"sevenoldstyle\", \"eightoldstyle\", \"nineoldstyle\", \"commasuperior\",\n \"threequartersemdash\", \"periodsuperior\", \"questionsmall\", \"asuperior\",\n \"bsuperior\", \"centsuperior\", \"dsuperior\", \"esuperior\", \"isuperior\",\n \"lsuperior\", \"msuperior\", \"nsuperior\", \"osuperior\", \"rsuperior\", \"ssuperior\",\n \"tsuperior\", \"ff\", \"ffi\", \"ffl\", \"parenleftinferior\", \"parenrightinferior\",\n \"Circumflexsmall\", \"hyphensuperior\", \"Gravesmall\", \"Asmall\", \"Bsmall\",\n \"Csmall\", \"Dsmall\", \"Esmall\", \"Fsmall\", \"Gsmall\", \"Hsmall\", \"Ismall\",\n \"Jsmall\", \"Ksmall\", \"Lsmall\", \"Msmall\", \"Nsmall\", \"Osmall\", \"Psmall\",\n \"Qsmall\", \"Rsmall\", \"Ssmall\", \"Tsmall\", \"Usmall\", \"Vsmall\", \"Wsmall\",\n \"Xsmall\", \"Ysmall\", \"Zsmall\", \"colonmonetary\", \"onefitted\", \"rupiah\",\n \"Tildesmall\", \"exclamdownsmall\", \"centoldstyle\", \"Lslashsmall\",\n \"Scaronsmall\", \"Zcaronsmall\", \"Dieresissmall\", \"Brevesmall\", \"Caronsmall\",\n \"Dotaccentsmall\", \"Macronsmall\", \"figuredash\", \"hypheninferior\",\n \"Ogoneksmall\", \"Ringsmall\", \"Cedillasmall\", \"questiondownsmall\", \"oneeighth\",\n \"threeeighths\", \"fiveeighths\", \"seveneighths\", \"onethird\", \"twothirds\",\n \"zerosuperior\", \"foursuperior\", \"fivesuperior\", \"sixsuperior\",\n \"sevensuperior\", \"eightsuperior\", \"ninesuperior\", \"zeroinferior\",\n \"oneinferior\", \"twoinferior\", \"threeinferior\", \"fourinferior\",\n \"fiveinferior\", \"sixinferior\", \"seveninferior\", \"eightinferior\",\n \"nineinferior\", \"centinferior\", \"dollarinferior\", \"periodinferior\",\n \"commainferior\", \"Agravesmall\", \"Aacutesmall\", \"Acircumflexsmall\",\n \"Atildesmall\", \"Adieresissmall\", \"Aringsmall\", \"AEsmall\", \"Ccedillasmall\",\n \"Egravesmall\", \"Eacutesmall\", \"Ecircumflexsmall\", \"Edieresissmall\",\n \"Igravesmall\", \"Iacutesmall\", \"Icircumflexsmall\", \"Idieresissmall\",\n \"Ethsmall\", \"Ntildesmall\", \"Ogravesmall\", \"Oacutesmall\", \"Ocircumflexsmall\",\n \"Otildesmall\", \"Odieresissmall\", \"OEsmall\", \"Oslashsmall\", \"Ugravesmall\",\n \"Uacutesmall\", \"Ucircumflexsmall\", \"Udieresissmall\", \"Yacutesmall\",\n \"Thornsmall\", \"Ydieresissmall\", \"001.000\", \"001.001\", \"001.002\", \"001.003\",\n \"Black\", \"Bold\", \"Book\", \"Light\", \"Medium\", \"Regular\", \"Roman\", \"Semibold\"\n];\n\nconst NUM_STANDARD_CFF_STRINGS = 391;\n\nconst CharstringValidationData = [\n /* 0 */ null,\n /* 1 */ { id: \"hstem\", min: 2, stackClearing: true, stem: true },\n /* 2 */ null,\n /* 3 */ { id: \"vstem\", min: 2, stackClearing: true, stem: true },\n /* 4 */ { id: \"vmoveto\", min: 1, stackClearing: true },\n /* 5 */ { id: \"rlineto\", min: 2, resetStack: true },\n /* 6 */ { id: \"hlineto\", min: 1, resetStack: true },\n /* 7 */ { id: \"vlineto\", min: 1, resetStack: true },\n /* 8 */ { id: \"rrcurveto\", min: 6, resetStack: true },\n /* 9 */ null,\n /* 10 */ { id: \"callsubr\", min: 1, undefStack: true },\n /* 11 */ { id: \"return\", min: 0, undefStack: true },\n /* 12 */ null,\n /* 13 */ null,\n /* 14 */ { id: \"endchar\", min: 0, stackClearing: true },\n /* 15 */ null,\n /* 16 */ null,\n /* 17 */ null,\n /* 18 */ { id: \"hstemhm\", min: 2, stackClearing: true, stem: true },\n /* 19 */ { id: \"hintmask\", min: 0, stackClearing: true },\n /* 20 */ { id: \"cntrmask\", min: 0, stackClearing: true },\n /* 21 */ { id: \"rmoveto\", min: 2, stackClearing: true },\n /* 22 */ { id: \"hmoveto\", min: 1, stackClearing: true },\n /* 23 */ { id: \"vstemhm\", min: 2, stackClearing: true, stem: true },\n /* 24 */ { id: \"rcurveline\", min: 8, resetStack: true },\n /* 25 */ { id: \"rlinecurve\", min: 8, resetStack: true },\n /* 26 */ { id: \"vvcurveto\", min: 4, resetStack: true },\n /* 27 */ { id: \"hhcurveto\", min: 4, resetStack: true },\n /* 28 */ null, // shortint\n /* 29 */ { id: \"callgsubr\", min: 1, undefStack: true },\n /* 30 */ { id: \"vhcurveto\", min: 4, resetStack: true },\n /* 31 */ { id: \"hvcurveto\", min: 4, resetStack: true },\n];\n\nconst CharstringValidationData12 = [\n null,\n null,\n null,\n { id: \"and\", min: 2, stackDelta: -1 },\n { id: \"or\", min: 2, stackDelta: -1 },\n { id: \"not\", min: 1, stackDelta: 0 },\n null,\n null,\n null,\n { id: \"abs\", min: 1, stackDelta: 0 },\n {\n id: \"add\",\n min: 2,\n stackDelta: -1,\n stackFn(stack, index) {\n stack[index - 2] = stack[index - 2] + stack[index - 1];\n },\n },\n {\n id: \"sub\",\n min: 2,\n stackDelta: -1,\n stackFn(stack, index) {\n stack[index - 2] = stack[index - 2] - stack[index - 1];\n },\n },\n {\n id: \"div\",\n min: 2,\n stackDelta: -1,\n stackFn(stack, index) {\n stack[index - 2] = stack[index - 2] / stack[index - 1];\n },\n },\n null,\n {\n id: \"neg\",\n min: 1,\n stackDelta: 0,\n stackFn(stack, index) {\n stack[index - 1] = -stack[index - 1];\n },\n },\n { id: \"eq\", min: 2, stackDelta: -1 },\n null,\n null,\n { id: \"drop\", min: 1, stackDelta: -1 },\n null,\n { id: \"put\", min: 2, stackDelta: -2 },\n { id: \"get\", min: 1, stackDelta: 0 },\n { id: \"ifelse\", min: 4, stackDelta: -3 },\n { id: \"random\", min: 0, stackDelta: 1 },\n {\n id: \"mul\",\n min: 2,\n stackDelta: -1,\n stackFn(stack, index) {\n stack[index - 2] = stack[index - 2] * stack[index - 1];\n },\n },\n null,\n { id: \"sqrt\", min: 1, stackDelta: 0 },\n { id: \"dup\", min: 1, stackDelta: 1 },\n { id: \"exch\", min: 2, stackDelta: 0 },\n { id: \"index\", min: 2, stackDelta: 0 },\n { id: \"roll\", min: 3, stackDelta: -2 },\n null,\n null,\n null,\n { id: \"hflex\", min: 7, resetStack: true },\n { id: \"flex\", min: 13, resetStack: true },\n { id: \"hflex1\", min: 9, resetStack: true },\n { id: \"flex1\", min: 11, resetStack: true },\n];\n\nclass CFFParser {\n constructor(file, properties, seacAnalysisEnabled) {\n this.bytes = file.getBytes();\n this.properties = properties;\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n }\n\n parse() {\n const properties = this.properties;\n const cff = new CFF();\n this.cff = cff;\n\n // The first five sections must be in order, all the others are reached\n // via offsets contained in one of the below.\n const header = this.parseHeader();\n const nameIndex = this.parseIndex(header.endPos);\n const topDictIndex = this.parseIndex(nameIndex.endPos);\n const stringIndex = this.parseIndex(topDictIndex.endPos);\n const globalSubrIndex = this.parseIndex(stringIndex.endPos);\n\n const topDictParsed = this.parseDict(topDictIndex.obj.get(0));\n const topDict = this.createDict(CFFTopDict, topDictParsed, cff.strings);\n\n cff.header = header.obj;\n cff.names = this.parseNameIndex(nameIndex.obj);\n cff.strings = this.parseStringIndex(stringIndex.obj);\n cff.topDict = topDict;\n cff.globalSubrIndex = globalSubrIndex.obj;\n\n this.parsePrivateDict(cff.topDict);\n\n cff.isCIDFont = topDict.hasName(\"ROS\");\n\n const charStringOffset = topDict.getByName(\"CharStrings\");\n const charStringIndex = this.parseIndex(charStringOffset).obj;\n\n const fontMatrix = topDict.getByName(\"FontMatrix\");\n if (fontMatrix) {\n properties.fontMatrix = fontMatrix;\n }\n\n const fontBBox = topDict.getByName(\"FontBBox\");\n if (fontBBox) {\n // adjusting ascent/descent\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n }\n\n let charset, encoding;\n if (cff.isCIDFont) {\n const fdArrayIndex = this.parseIndex(topDict.getByName(\"FDArray\")).obj;\n for (let i = 0, ii = fdArrayIndex.count; i < ii; ++i) {\n const dictRaw = fdArrayIndex.get(i);\n const fontDict = this.createDict(\n CFFTopDict,\n this.parseDict(dictRaw),\n cff.strings\n );\n this.parsePrivateDict(fontDict);\n cff.fdArray.push(fontDict);\n }\n // cid fonts don't have an encoding\n encoding = null;\n charset = this.parseCharsets(\n topDict.getByName(\"charset\"),\n charStringIndex.count,\n cff.strings,\n true\n );\n cff.fdSelect = this.parseFDSelect(\n topDict.getByName(\"FDSelect\"),\n charStringIndex.count\n );\n } else {\n charset = this.parseCharsets(\n topDict.getByName(\"charset\"),\n charStringIndex.count,\n cff.strings,\n false\n );\n encoding = this.parseEncoding(\n topDict.getByName(\"Encoding\"),\n properties,\n cff.strings,\n charset.charset\n );\n }\n\n cff.charset = charset;\n cff.encoding = encoding;\n\n const charStringsAndSeacs = this.parseCharStrings({\n charStrings: charStringIndex,\n localSubrIndex: topDict.privateDict.subrsIndex,\n globalSubrIndex: globalSubrIndex.obj,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray,\n privateDict: topDict.privateDict,\n });\n cff.charStrings = charStringsAndSeacs.charStrings;\n cff.seacs = charStringsAndSeacs.seacs;\n cff.widths = charStringsAndSeacs.widths;\n\n return cff;\n }\n\n parseHeader() {\n let bytes = this.bytes;\n const bytesLength = bytes.length;\n let offset = 0;\n\n // Prevent an infinite loop, by checking that the offset is within the\n // bounds of the bytes array. Necessary in empty, or invalid, font files.\n while (offset < bytesLength && bytes[offset] !== 1) {\n ++offset;\n }\n if (offset >= bytesLength) {\n throw new FormatError(\"Invalid CFF header\");\n }\n if (offset !== 0) {\n info(\"cff data is shifted\");\n bytes = bytes.subarray(offset);\n this.bytes = bytes;\n }\n const major = bytes[0];\n const minor = bytes[1];\n const hdrSize = bytes[2];\n const offSize = bytes[3];\n const header = new CFFHeader(major, minor, hdrSize, offSize);\n return { obj: header, endPos: hdrSize };\n }\n\n parseDict(dict) {\n let pos = 0;\n\n function parseOperand() {\n let value = dict[pos++];\n if (value === 30) {\n return parseFloatOperand();\n } else if (value === 28) {\n value = dict[pos++];\n value = ((value << 24) | (dict[pos++] << 16)) >> 16;\n return value;\n } else if (value === 29) {\n value = dict[pos++];\n value = (value << 8) | dict[pos++];\n value = (value << 8) | dict[pos++];\n value = (value << 8) | dict[pos++];\n return value;\n } else if (value >= 32 && value <= 246) {\n return value - 139;\n } else if (value >= 247 && value <= 250) {\n return (value - 247) * 256 + dict[pos++] + 108;\n } else if (value >= 251 && value <= 254) {\n return -((value - 251) * 256) - dict[pos++] - 108;\n }\n warn('CFFParser_parseDict: \"' + value + '\" is a reserved command.');\n return NaN;\n }\n\n function parseFloatOperand() {\n let str = \"\";\n const eof = 15;\n // prettier-ignore\n const lookup = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\",\n \"9\", \".\", \"E\", \"E-\", null, \"-\"];\n const length = dict.length;\n while (pos < length) {\n const b = dict[pos++];\n const b1 = b >> 4;\n const b2 = b & 15;\n\n if (b1 === eof) {\n break;\n }\n str += lookup[b1];\n\n if (b2 === eof) {\n break;\n }\n str += lookup[b2];\n }\n return parseFloat(str);\n }\n\n let operands = [];\n const entries = [];\n\n pos = 0;\n const end = dict.length;\n while (pos < end) {\n let b = dict[pos];\n if (b <= 21) {\n if (b === 12) {\n b = (b << 8) | dict[++pos];\n }\n entries.push([b, operands]);\n operands = [];\n ++pos;\n } else {\n operands.push(parseOperand());\n }\n }\n return entries;\n }\n\n parseIndex(pos) {\n const cffIndex = new CFFIndex();\n const bytes = this.bytes;\n const count = (bytes[pos++] << 8) | bytes[pos++];\n const offsets = [];\n let end = pos;\n let i, ii;\n\n if (count !== 0) {\n const offsetSize = bytes[pos++];\n // add 1 for offset to determine size of last object\n const startPos = pos + (count + 1) * offsetSize - 1;\n\n for (i = 0, ii = count + 1; i < ii; ++i) {\n let offset = 0;\n for (let j = 0; j < offsetSize; ++j) {\n offset <<= 8;\n offset += bytes[pos++];\n }\n offsets.push(startPos + offset);\n }\n end = offsets[count];\n }\n for (i = 0, ii = offsets.length - 1; i < ii; ++i) {\n const offsetStart = offsets[i];\n const offsetEnd = offsets[i + 1];\n cffIndex.add(bytes.subarray(offsetStart, offsetEnd));\n }\n return { obj: cffIndex, endPos: end };\n }\n\n parseNameIndex(index) {\n const names = [];\n for (let i = 0, ii = index.count; i < ii; ++i) {\n const name = index.get(i);\n names.push(bytesToString(name));\n }\n return names;\n }\n\n parseStringIndex(index) {\n const strings = new CFFStrings();\n for (let i = 0, ii = index.count; i < ii; ++i) {\n const data = index.get(i);\n strings.add(bytesToString(data));\n }\n return strings;\n }\n\n createDict(Type, dict, strings) {\n const cffDict = new Type(strings);\n for (const [key, value] of dict) {\n cffDict.setByKey(key, value);\n }\n return cffDict;\n }\n\n parseCharString(state, data, localSubrIndex, globalSubrIndex) {\n if (!data || state.callDepth > MAX_SUBR_NESTING) {\n return false;\n }\n let stackSize = state.stackSize;\n const stack = state.stack;\n\n let length = data.length;\n\n for (let j = 0; j < length; ) {\n const value = data[j++];\n let validationCommand = null;\n if (value === 12) {\n const q = data[j++];\n if (q === 0) {\n // The CFF specification state that the 'dotsection' command\n // (12, 0) is deprecated and treated as a no-op, but all Type2\n // charstrings processors should support them. Unfortunately\n // the font sanitizer don't. As a workaround the sequence (12, 0)\n // is replaced by a useless (0, hmoveto).\n data[j - 2] = 139;\n data[j - 1] = 22;\n stackSize = 0;\n } else {\n validationCommand = CharstringValidationData12[q];\n }\n } else if (value === 28) {\n // number (16 bit)\n stack[stackSize] = ((data[j] << 24) | (data[j + 1] << 16)) >> 16;\n j += 2;\n stackSize++;\n } else if (value === 14) {\n if (stackSize >= 4) {\n stackSize -= 4;\n if (this.seacAnalysisEnabled) {\n state.seac = stack.slice(stackSize, stackSize + 4);\n return false;\n }\n }\n validationCommand = CharstringValidationData[value];\n } else if (value >= 32 && value <= 246) {\n // number\n stack[stackSize] = value - 139;\n stackSize++;\n } else if (value >= 247 && value <= 254) {\n // number (+1 bytes)\n stack[stackSize] =\n value < 251\n ? ((value - 247) << 8) + data[j] + 108\n : -((value - 251) << 8) - data[j] - 108;\n j++;\n stackSize++;\n } else if (value === 255) {\n // number (32 bit)\n stack[stackSize] =\n ((data[j] << 24) |\n (data[j + 1] << 16) |\n (data[j + 2] << 8) |\n data[j + 3]) /\n 65536;\n j += 4;\n stackSize++;\n } else if (value === 19 || value === 20) {\n state.hints += stackSize >> 1;\n if (state.hints === 0) {\n // Not a valid value (see bug 1529502): just remove it.\n data.copyWithin(j - 1, j, -1);\n j -= 1;\n length -= 1;\n continue;\n }\n // skipping right amount of hints flag data\n j += (state.hints + 7) >> 3;\n stackSize %= 2;\n validationCommand = CharstringValidationData[value];\n } else if (value === 10 || value === 29) {\n const subrsIndex = value === 10 ? localSubrIndex : globalSubrIndex;\n if (!subrsIndex) {\n validationCommand = CharstringValidationData[value];\n warn(\"Missing subrsIndex for \" + validationCommand.id);\n return false;\n }\n let bias = 32768;\n if (subrsIndex.count < 1240) {\n bias = 107;\n } else if (subrsIndex.count < 33900) {\n bias = 1131;\n }\n const subrNumber = stack[--stackSize] + bias;\n if (\n subrNumber < 0 ||\n subrNumber >= subrsIndex.count ||\n isNaN(subrNumber)\n ) {\n validationCommand = CharstringValidationData[value];\n warn(\"Out of bounds subrIndex for \" + validationCommand.id);\n return false;\n }\n state.stackSize = stackSize;\n state.callDepth++;\n const valid = this.parseCharString(\n state,\n subrsIndex.get(subrNumber),\n localSubrIndex,\n globalSubrIndex\n );\n if (!valid) {\n return false;\n }\n state.callDepth--;\n stackSize = state.stackSize;\n continue;\n } else if (value === 11) {\n state.stackSize = stackSize;\n return true;\n } else if (value === 0 && j === data.length) {\n // Operator 0 is not used according to the current spec and\n // it's the last char and consequently it's likely a terminator.\n // So just replace it by endchar command to make OTS happy.\n data[j - 1] = 14;\n validationCommand = CharstringValidationData[14];\n } else if (value === 9) {\n // Not a valid value.\n data.copyWithin(j - 1, j, -1);\n j -= 1;\n length -= 1;\n continue;\n } else {\n validationCommand = CharstringValidationData[value];\n }\n if (validationCommand) {\n if (validationCommand.stem) {\n state.hints += stackSize >> 1;\n if (value === 3 || value === 23) {\n // vstem or vstemhm.\n state.hasVStems = true;\n } else if (state.hasVStems && (value === 1 || value === 18)) {\n // Some browsers don't draw glyphs that specify vstems before\n // hstems. As a workaround, replace hstem (1) and hstemhm (18)\n // with a pointless vstem (3) or vstemhm (23).\n warn(\"CFF stem hints are in wrong order\");\n data[j - 1] = value === 1 ? 3 : 23;\n }\n }\n if (\"min\" in validationCommand) {\n if (!state.undefStack && stackSize < validationCommand.min) {\n warn(\n \"Not enough parameters for \" +\n validationCommand.id +\n \"; actual: \" +\n stackSize +\n \", expected: \" +\n validationCommand.min\n );\n\n if (stackSize === 0) {\n // Just \"fix\" the outline in replacing command by a endchar:\n // it could lead to wrong rendering of some glyphs or not.\n // For example, the pdf in #6132 is well-rendered.\n data[j - 1] = 14;\n return true;\n }\n return false;\n }\n }\n if (state.firstStackClearing && validationCommand.stackClearing) {\n state.firstStackClearing = false;\n // the optional character width can be found before the first\n // stack-clearing command arguments\n stackSize -= validationCommand.min;\n if (stackSize >= 2 && validationCommand.stem) {\n // there are even amount of arguments for stem commands\n stackSize %= 2;\n } else if (stackSize > 1) {\n warn(\"Found too many parameters for stack-clearing command\");\n }\n if (stackSize > 0) {\n // Width can be any number since its the difference\n // from nominalWidthX.\n state.width = stack[stackSize - 1];\n }\n }\n if (\"stackDelta\" in validationCommand) {\n if (\"stackFn\" in validationCommand) {\n validationCommand.stackFn(stack, stackSize);\n }\n stackSize += validationCommand.stackDelta;\n } else if (validationCommand.stackClearing) {\n stackSize = 0;\n } else if (validationCommand.resetStack) {\n stackSize = 0;\n state.undefStack = false;\n } else if (validationCommand.undefStack) {\n stackSize = 0;\n state.undefStack = true;\n state.firstStackClearing = false;\n }\n }\n }\n if (length < data.length) {\n data.fill(/* endchar = */ 14, length);\n }\n state.stackSize = stackSize;\n return true;\n }\n\n parseCharStrings({\n charStrings,\n localSubrIndex,\n globalSubrIndex,\n fdSelect,\n fdArray,\n privateDict,\n }) {\n const seacs = [];\n const widths = [];\n const count = charStrings.count;\n for (let i = 0; i < count; i++) {\n const charstring = charStrings.get(i);\n const state = {\n callDepth: 0,\n stackSize: 0,\n stack: [],\n undefStack: true,\n hints: 0,\n firstStackClearing: true,\n seac: null,\n width: null,\n hasVStems: false,\n };\n let valid = true;\n let localSubrToUse = null;\n let privateDictToUse = privateDict;\n if (fdSelect && fdArray.length) {\n const fdIndex = fdSelect.getFDIndex(i);\n if (fdIndex === -1) {\n warn(\"Glyph index is not in fd select.\");\n valid = false;\n }\n if (fdIndex >= fdArray.length) {\n warn(\"Invalid fd index for glyph index.\");\n valid = false;\n }\n if (valid) {\n privateDictToUse = fdArray[fdIndex].privateDict;\n localSubrToUse = privateDictToUse.subrsIndex;\n }\n } else if (localSubrIndex) {\n localSubrToUse = localSubrIndex;\n }\n if (valid) {\n valid = this.parseCharString(\n state,\n charstring,\n localSubrToUse,\n globalSubrIndex\n );\n }\n if (state.width !== null) {\n const nominalWidth = privateDictToUse.getByName(\"nominalWidthX\");\n widths[i] = nominalWidth + state.width;\n } else {\n const defaultWidth = privateDictToUse.getByName(\"defaultWidthX\");\n widths[i] = defaultWidth;\n }\n if (state.seac !== null) {\n seacs[i] = state.seac;\n }\n if (!valid) {\n // resetting invalid charstring to single 'endchar'\n charStrings.set(i, new Uint8Array([14]));\n }\n }\n return { charStrings, seacs, widths };\n }\n\n emptyPrivateDictionary(parentDict) {\n const privateDict = this.createDict(CFFPrivateDict, [], parentDict.strings);\n parentDict.setByKey(18, [0, 0]);\n parentDict.privateDict = privateDict;\n }\n\n parsePrivateDict(parentDict) {\n // no private dict, do nothing\n if (!parentDict.hasName(\"Private\")) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n const privateOffset = parentDict.getByName(\"Private\");\n // make sure the params are formatted correctly\n if (!Array.isArray(privateOffset) || privateOffset.length !== 2) {\n parentDict.removeByName(\"Private\");\n return;\n }\n const size = privateOffset[0];\n const offset = privateOffset[1];\n // remove empty dicts or ones that refer to invalid location\n if (size === 0 || offset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n\n const privateDictEnd = offset + size;\n const dictData = this.bytes.subarray(offset, privateDictEnd);\n const dict = this.parseDict(dictData);\n const privateDict = this.createDict(\n CFFPrivateDict,\n dict,\n parentDict.strings\n );\n parentDict.privateDict = privateDict;\n\n if (privateDict.getByName(\"ExpansionFactor\") === 0) {\n // Firefox doesn't render correctly such a font on Windows (see issue\n // 15289), hence we just reset it to its default value.\n privateDict.setByName(\"ExpansionFactor\", 0.06);\n }\n\n // Parse the Subrs index also since it's relative to the private dict.\n if (!privateDict.getByName(\"Subrs\")) {\n return;\n }\n const subrsOffset = privateDict.getByName(\"Subrs\");\n const relativeOffset = offset + subrsOffset;\n // Validate the offset.\n if (subrsOffset === 0 || relativeOffset >= this.bytes.length) {\n this.emptyPrivateDictionary(parentDict);\n return;\n }\n const subrsIndex = this.parseIndex(relativeOffset);\n privateDict.subrsIndex = subrsIndex.obj;\n }\n\n parseCharsets(pos, length, strings, cid) {\n if (pos === 0) {\n return new CFFCharset(\n true,\n CFFCharsetPredefinedTypes.ISO_ADOBE,\n ISOAdobeCharset\n );\n } else if (pos === 1) {\n return new CFFCharset(\n true,\n CFFCharsetPredefinedTypes.EXPERT,\n ExpertCharset\n );\n } else if (pos === 2) {\n return new CFFCharset(\n true,\n CFFCharsetPredefinedTypes.EXPERT_SUBSET,\n ExpertSubsetCharset\n );\n }\n\n const bytes = this.bytes;\n const start = pos;\n const format = bytes[pos++];\n const charset = [cid ? 0 : \".notdef\"];\n let id, count, i;\n\n // subtract 1 for the .notdef glyph\n length -= 1;\n\n switch (format) {\n case 0:\n for (i = 0; i < length; i++) {\n id = (bytes[pos++] << 8) | bytes[pos++];\n charset.push(cid ? id : strings.get(id));\n }\n break;\n case 1:\n while (charset.length <= length) {\n id = (bytes[pos++] << 8) | bytes[pos++];\n count = bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n case 2:\n while (charset.length <= length) {\n id = (bytes[pos++] << 8) | bytes[pos++];\n count = (bytes[pos++] << 8) | bytes[pos++];\n for (i = 0; i <= count; i++) {\n charset.push(cid ? id++ : strings.get(id++));\n }\n }\n break;\n default:\n throw new FormatError(\"Unknown charset format\");\n }\n // Raw won't be needed if we actually compile the charset.\n const end = pos;\n const raw = bytes.subarray(start, end);\n\n return new CFFCharset(false, format, charset, raw);\n }\n\n parseEncoding(pos, properties, strings, charset) {\n const encoding = Object.create(null);\n const bytes = this.bytes;\n let predefined = false;\n let format, i, ii;\n let raw = null;\n\n function readSupplement() {\n const supplementsCount = bytes[pos++];\n for (i = 0; i < supplementsCount; i++) {\n const code = bytes[pos++];\n const sid = (bytes[pos++] << 8) + (bytes[pos++] & 0xff);\n encoding[code] = charset.indexOf(strings.get(sid));\n }\n }\n\n if (pos === 0 || pos === 1) {\n predefined = true;\n format = pos;\n const baseEncoding = pos ? ExpertEncoding : StandardEncoding;\n for (i = 0, ii = charset.length; i < ii; i++) {\n const index = baseEncoding.indexOf(charset[i]);\n if (index !== -1) {\n encoding[index] = i;\n }\n }\n } else {\n const dataStart = pos;\n format = bytes[pos++];\n switch (format & 0x7f) {\n case 0:\n const glyphsCount = bytes[pos++];\n for (i = 1; i <= glyphsCount; i++) {\n encoding[bytes[pos++]] = i;\n }\n break;\n\n case 1:\n const rangesCount = bytes[pos++];\n let gid = 1;\n for (i = 0; i < rangesCount; i++) {\n const start = bytes[pos++];\n const left = bytes[pos++];\n for (let j = start; j <= start + left; j++) {\n encoding[j] = gid++;\n }\n }\n break;\n\n default:\n throw new FormatError(`Unknown encoding format: ${format} in CFF`);\n }\n const dataEnd = pos;\n if (format & 0x80) {\n // hasSupplement\n // The font sanitizer does not support CFF encoding with a\n // supplement, since the encoding is not really used to map\n // between gid to glyph, let's overwrite what is declared in\n // the top dictionary to let the sanitizer think the font use\n // StandardEncoding, that's a lie but that's ok.\n bytes[dataStart] &= 0x7f;\n readSupplement();\n }\n raw = bytes.subarray(dataStart, dataEnd);\n }\n format &= 0x7f;\n return new CFFEncoding(predefined, format, encoding, raw);\n }\n\n parseFDSelect(pos, length) {\n const bytes = this.bytes;\n const format = bytes[pos++];\n const fdSelect = [];\n let i;\n\n switch (format) {\n case 0:\n for (i = 0; i < length; ++i) {\n const id = bytes[pos++];\n fdSelect.push(id);\n }\n break;\n case 3:\n const rangesCount = (bytes[pos++] << 8) | bytes[pos++];\n for (i = 0; i < rangesCount; ++i) {\n let first = (bytes[pos++] << 8) | bytes[pos++];\n if (i === 0 && first !== 0) {\n warn(\n \"parseFDSelect: The first range must have a first GID of 0\" +\n \" -- trying to recover.\"\n );\n first = 0;\n }\n const fdIndex = bytes[pos++];\n const next = (bytes[pos] << 8) | bytes[pos + 1];\n for (let j = first; j < next; ++j) {\n fdSelect.push(fdIndex);\n }\n }\n // Advance past the sentinel(next).\n pos += 2;\n break;\n default:\n throw new FormatError(`parseFDSelect: Unknown format \"${format}\".`);\n }\n if (fdSelect.length !== length) {\n throw new FormatError(\"parseFDSelect: Invalid font data.\");\n }\n\n return new CFFFDSelect(format, fdSelect);\n }\n}\n\n// Compact Font Format\nclass CFF {\n constructor() {\n this.header = null;\n this.names = [];\n this.topDict = null;\n this.strings = new CFFStrings();\n this.globalSubrIndex = null;\n\n // The following could really be per font, but since we only have one font\n // store them here.\n this.encoding = null;\n this.charset = null;\n this.charStrings = null;\n this.fdArray = [];\n this.fdSelect = null;\n\n this.isCIDFont = false;\n }\n\n duplicateFirstGlyph() {\n // Browsers will not display a glyph at position 0. Typically glyph 0 is\n // notdef, but a number of fonts put a valid glyph there so it must be\n // duplicated and appended.\n if (this.charStrings.count >= 65535) {\n warn(\"Not enough space in charstrings to duplicate first glyph.\");\n return;\n }\n const glyphZero = this.charStrings.get(0);\n this.charStrings.add(glyphZero);\n if (this.isCIDFont) {\n this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);\n }\n }\n\n hasGlyphId(id) {\n if (id < 0 || id >= this.charStrings.count) {\n return false;\n }\n const glyph = this.charStrings.get(id);\n return glyph.length > 0;\n }\n}\n\nclass CFFHeader {\n constructor(major, minor, hdrSize, offSize) {\n this.major = major;\n this.minor = minor;\n this.hdrSize = hdrSize;\n this.offSize = offSize;\n }\n}\n\nclass CFFStrings {\n constructor() {\n this.strings = [];\n }\n\n get(index) {\n if (index >= 0 && index <= NUM_STANDARD_CFF_STRINGS - 1) {\n return CFFStandardStrings[index];\n }\n if (index - NUM_STANDARD_CFF_STRINGS <= this.strings.length) {\n return this.strings[index - NUM_STANDARD_CFF_STRINGS];\n }\n return CFFStandardStrings[0];\n }\n\n getSID(str) {\n let index = CFFStandardStrings.indexOf(str);\n if (index !== -1) {\n return index;\n }\n index = this.strings.indexOf(str);\n if (index !== -1) {\n return index + NUM_STANDARD_CFF_STRINGS;\n }\n return -1;\n }\n\n add(value) {\n this.strings.push(value);\n }\n\n get count() {\n return this.strings.length;\n }\n}\n\nclass CFFIndex {\n constructor() {\n this.objects = [];\n this.length = 0;\n }\n\n add(data) {\n this.length += data.length;\n this.objects.push(data);\n }\n\n set(index, data) {\n this.length += data.length - this.objects[index].length;\n this.objects[index] = data;\n }\n\n get(index) {\n return this.objects[index];\n }\n\n get count() {\n return this.objects.length;\n }\n}\n\nclass CFFDict {\n constructor(tables, strings) {\n this.keyToNameMap = tables.keyToNameMap;\n this.nameToKeyMap = tables.nameToKeyMap;\n this.defaults = tables.defaults;\n this.types = tables.types;\n this.opcodes = tables.opcodes;\n this.order = tables.order;\n this.strings = strings;\n this.values = Object.create(null);\n }\n\n // value should always be an array\n setByKey(key, value) {\n if (!(key in this.keyToNameMap)) {\n return false;\n }\n // ignore empty values\n if (value.length === 0) {\n return true;\n }\n // Ignore invalid values (fixes bug1068432.pdf and bug1308536.pdf).\n for (const val of value) {\n if (isNaN(val)) {\n warn(`Invalid CFFDict value: \"${value}\" for key \"${key}\".`);\n return true;\n }\n }\n const type = this.types[key];\n // remove the array wrapping these types of values\n if (type === \"num\" || type === \"sid\" || type === \"offset\") {\n value = value[0];\n }\n this.values[key] = value;\n return true;\n }\n\n setByName(name, value) {\n if (!(name in this.nameToKeyMap)) {\n throw new FormatError(`Invalid dictionary name \"${name}\"`);\n }\n this.values[this.nameToKeyMap[name]] = value;\n }\n\n hasName(name) {\n return this.nameToKeyMap[name] in this.values;\n }\n\n getByName(name) {\n if (!(name in this.nameToKeyMap)) {\n throw new FormatError(`Invalid dictionary name ${name}\"`);\n }\n const key = this.nameToKeyMap[name];\n if (!(key in this.values)) {\n return this.defaults[key];\n }\n return this.values[key];\n }\n\n removeByName(name) {\n delete this.values[this.nameToKeyMap[name]];\n }\n\n static createTables(layout) {\n const tables = {\n keyToNameMap: {},\n nameToKeyMap: {},\n defaults: {},\n types: {},\n opcodes: {},\n order: [],\n };\n for (const entry of layout) {\n const key = Array.isArray(entry[0])\n ? (entry[0][0] << 8) + entry[0][1]\n : entry[0];\n tables.keyToNameMap[key] = entry[1];\n tables.nameToKeyMap[entry[1]] = key;\n tables.types[key] = entry[2];\n tables.defaults[key] = entry[3];\n tables.opcodes[key] = Array.isArray(entry[0]) ? entry[0] : [entry[0]];\n tables.order.push(key);\n }\n return tables;\n }\n}\n\nconst CFFTopDictLayout = [\n [[12, 30], \"ROS\", [\"sid\", \"sid\", \"num\"], null],\n [[12, 20], \"SyntheticBase\", \"num\", null],\n [0, \"version\", \"sid\", null],\n [1, \"Notice\", \"sid\", null],\n [[12, 0], \"Copyright\", \"sid\", null],\n [2, \"FullName\", \"sid\", null],\n [3, \"FamilyName\", \"sid\", null],\n [4, \"Weight\", \"sid\", null],\n [[12, 1], \"isFixedPitch\", \"num\", 0],\n [[12, 2], \"ItalicAngle\", \"num\", 0],\n [[12, 3], \"UnderlinePosition\", \"num\", -100],\n [[12, 4], \"UnderlineThickness\", \"num\", 50],\n [[12, 5], \"PaintType\", \"num\", 0],\n [[12, 6], \"CharstringType\", \"num\", 2],\n // prettier-ignore\n [[12, 7], \"FontMatrix\", [\"num\", \"num\", \"num\", \"num\", \"num\", \"num\"],\n [0.001, 0, 0, 0.001, 0, 0]],\n [13, \"UniqueID\", \"num\", null],\n [5, \"FontBBox\", [\"num\", \"num\", \"num\", \"num\"], [0, 0, 0, 0]],\n [[12, 8], \"StrokeWidth\", \"num\", 0],\n [14, \"XUID\", \"array\", null],\n [15, \"charset\", \"offset\", 0],\n [16, \"Encoding\", \"offset\", 0],\n [17, \"CharStrings\", \"offset\", 0],\n [18, \"Private\", [\"offset\", \"offset\"], null],\n [[12, 21], \"PostScript\", \"sid\", null],\n [[12, 22], \"BaseFontName\", \"sid\", null],\n [[12, 23], \"BaseFontBlend\", \"delta\", null],\n [[12, 31], \"CIDFontVersion\", \"num\", 0],\n [[12, 32], \"CIDFontRevision\", \"num\", 0],\n [[12, 33], \"CIDFontType\", \"num\", 0],\n [[12, 34], \"CIDCount\", \"num\", 8720],\n [[12, 35], \"UIDBase\", \"num\", null],\n // XXX: CID Fonts on DirectWrite 6.1 only seem to work if FDSelect comes\n // before FDArray.\n [[12, 37], \"FDSelect\", \"offset\", null],\n [[12, 36], \"FDArray\", \"offset\", null],\n [[12, 38], \"FontName\", \"sid\", null],\n];\n\nclass CFFTopDict extends CFFDict {\n static get tables() {\n return shadow(this, \"tables\", this.createTables(CFFTopDictLayout));\n }\n\n constructor(strings) {\n super(CFFTopDict.tables, strings);\n this.privateDict = null;\n }\n}\n\nconst CFFPrivateDictLayout = [\n [6, \"BlueValues\", \"delta\", null],\n [7, \"OtherBlues\", \"delta\", null],\n [8, \"FamilyBlues\", \"delta\", null],\n [9, \"FamilyOtherBlues\", \"delta\", null],\n [[12, 9], \"BlueScale\", \"num\", 0.039625],\n [[12, 10], \"BlueShift\", \"num\", 7],\n [[12, 11], \"BlueFuzz\", \"num\", 1],\n [10, \"StdHW\", \"num\", null],\n [11, \"StdVW\", \"num\", null],\n [[12, 12], \"StemSnapH\", \"delta\", null],\n [[12, 13], \"StemSnapV\", \"delta\", null],\n [[12, 14], \"ForceBold\", \"num\", 0],\n [[12, 17], \"LanguageGroup\", \"num\", 0],\n [[12, 18], \"ExpansionFactor\", \"num\", 0.06],\n [[12, 19], \"initialRandomSeed\", \"num\", 0],\n [20, \"defaultWidthX\", \"num\", 0],\n [21, \"nominalWidthX\", \"num\", 0],\n [19, \"Subrs\", \"offset\", null],\n];\n\nclass CFFPrivateDict extends CFFDict {\n static get tables() {\n return shadow(this, \"tables\", this.createTables(CFFPrivateDictLayout));\n }\n\n constructor(strings) {\n super(CFFPrivateDict.tables, strings);\n this.subrsIndex = null;\n }\n}\n\nconst CFFCharsetPredefinedTypes = {\n ISO_ADOBE: 0,\n EXPERT: 1,\n EXPERT_SUBSET: 2,\n};\n\nclass CFFCharset {\n constructor(predefined, format, charset, raw) {\n this.predefined = predefined;\n this.format = format;\n this.charset = charset;\n this.raw = raw;\n }\n}\n\nclass CFFEncoding {\n constructor(predefined, format, encoding, raw) {\n this.predefined = predefined;\n this.format = format;\n this.encoding = encoding;\n this.raw = raw;\n }\n}\n\nclass CFFFDSelect {\n constructor(format, fdSelect) {\n this.format = format;\n this.fdSelect = fdSelect;\n }\n\n getFDIndex(glyphIndex) {\n if (glyphIndex < 0 || glyphIndex >= this.fdSelect.length) {\n return -1;\n }\n return this.fdSelect[glyphIndex];\n }\n}\n\n// Helper class to keep track of where an offset is within the data and helps\n// filling in that offset once it's known.\nclass CFFOffsetTracker {\n constructor() {\n this.offsets = Object.create(null);\n }\n\n isTracking(key) {\n return key in this.offsets;\n }\n\n track(key, location) {\n if (key in this.offsets) {\n throw new FormatError(`Already tracking location of ${key}`);\n }\n this.offsets[key] = location;\n }\n\n offset(value) {\n for (const key in this.offsets) {\n this.offsets[key] += value;\n }\n }\n\n setEntryLocation(key, values, output) {\n if (!(key in this.offsets)) {\n throw new FormatError(`Not tracking location of ${key}`);\n }\n const data = output.data;\n const dataOffset = this.offsets[key];\n const size = 5;\n for (let i = 0, ii = values.length; i < ii; ++i) {\n const offset0 = i * size + dataOffset;\n const offset1 = offset0 + 1;\n const offset2 = offset0 + 2;\n const offset3 = offset0 + 3;\n const offset4 = offset0 + 4;\n // It's easy to screw up offsets so perform this sanity check.\n if (\n data[offset0] !== 0x1d ||\n data[offset1] !== 0 ||\n data[offset2] !== 0 ||\n data[offset3] !== 0 ||\n data[offset4] !== 0\n ) {\n throw new FormatError(\"writing to an offset that is not empty\");\n }\n const value = values[i];\n data[offset0] = 0x1d;\n data[offset1] = (value >> 24) & 0xff;\n data[offset2] = (value >> 16) & 0xff;\n data[offset3] = (value >> 8) & 0xff;\n data[offset4] = value & 0xff;\n }\n }\n}\n\n// Takes a CFF and converts it to the binary representation.\nclass CFFCompiler {\n constructor(cff) {\n this.cff = cff;\n }\n\n compile() {\n const cff = this.cff;\n const output = {\n data: [],\n length: 0,\n add(data) {\n try {\n // It's possible to exceed the call stack maximum size when trying\n // to push too much elements.\n // In case of failure, we fallback to the `concat` method.\n this.data.push(...data);\n } catch {\n this.data = this.data.concat(data);\n }\n this.length = this.data.length;\n },\n };\n\n // Compile the five entries that must be in order.\n const header = this.compileHeader(cff.header);\n output.add(header);\n\n const nameIndex = this.compileNameIndex(cff.names);\n output.add(nameIndex);\n\n if (cff.isCIDFont) {\n // The spec is unclear on how font matrices should relate to each other\n // when there is one in the main top dict and the sub top dicts.\n // Windows handles this differently than linux and osx so we have to\n // normalize to work on all.\n // Rules based off of some mailing list discussions:\n // - If main font has a matrix and subfont doesn't, use the main matrix.\n // - If no main font matrix and there is a subfont matrix, use the\n // subfont matrix.\n // - If both have matrices, concat together.\n // - If neither have matrices, use default.\n // To make this work on all platforms we move the top matrix into each\n // sub top dict and concat if necessary.\n if (cff.topDict.hasName(\"FontMatrix\")) {\n const base = cff.topDict.getByName(\"FontMatrix\");\n cff.topDict.removeByName(\"FontMatrix\");\n for (const subDict of cff.fdArray) {\n let matrix = base.slice(0);\n if (subDict.hasName(\"FontMatrix\")) {\n matrix = Util.transform(matrix, subDict.getByName(\"FontMatrix\"));\n }\n subDict.setByName(\"FontMatrix\", matrix);\n }\n }\n }\n\n const xuid = cff.topDict.getByName(\"XUID\");\n if (xuid?.length > 16) {\n // Length of XUID array must not be greater than 16 (issue #12399).\n cff.topDict.removeByName(\"XUID\");\n }\n\n cff.topDict.setByName(\"charset\", 0);\n let compiled = this.compileTopDicts(\n [cff.topDict],\n output.length,\n cff.isCIDFont\n );\n output.add(compiled.output);\n const topDictTracker = compiled.trackers[0];\n\n const stringIndex = this.compileStringIndex(cff.strings.strings);\n output.add(stringIndex);\n\n const globalSubrIndex = this.compileIndex(cff.globalSubrIndex);\n output.add(globalSubrIndex);\n\n // Now start on the other entries that have no specific order.\n if (cff.encoding && cff.topDict.hasName(\"Encoding\")) {\n if (cff.encoding.predefined) {\n topDictTracker.setEntryLocation(\n \"Encoding\",\n [cff.encoding.format],\n output\n );\n } else {\n const encoding = this.compileEncoding(cff.encoding);\n topDictTracker.setEntryLocation(\"Encoding\", [output.length], output);\n output.add(encoding);\n }\n }\n const charset = this.compileCharset(\n cff.charset,\n cff.charStrings.count,\n cff.strings,\n cff.isCIDFont\n );\n topDictTracker.setEntryLocation(\"charset\", [output.length], output);\n output.add(charset);\n\n const charStrings = this.compileCharStrings(cff.charStrings);\n topDictTracker.setEntryLocation(\"CharStrings\", [output.length], output);\n output.add(charStrings);\n\n if (cff.isCIDFont) {\n // For some reason FDSelect must be in front of FDArray on windows. OSX\n // and linux don't seem to care.\n topDictTracker.setEntryLocation(\"FDSelect\", [output.length], output);\n const fdSelect = this.compileFDSelect(cff.fdSelect);\n output.add(fdSelect);\n // It is unclear if the sub font dictionary can have CID related\n // dictionary keys, but the sanitizer doesn't like them so remove them.\n compiled = this.compileTopDicts(cff.fdArray, output.length, true);\n topDictTracker.setEntryLocation(\"FDArray\", [output.length], output);\n output.add(compiled.output);\n const fontDictTrackers = compiled.trackers;\n\n this.compilePrivateDicts(cff.fdArray, fontDictTrackers, output);\n }\n\n this.compilePrivateDicts([cff.topDict], [topDictTracker], output);\n\n // If the font data ends with INDEX whose object data is zero-length,\n // the sanitizer will bail out. Add a dummy byte to avoid that.\n output.add([0]);\n\n return output.data;\n }\n\n encodeNumber(value) {\n if (Number.isInteger(value)) {\n return this.encodeInteger(value);\n }\n return this.encodeFloat(value);\n }\n\n static get EncodeFloatRegExp() {\n return shadow(\n this,\n \"EncodeFloatRegExp\",\n /\\.(\\d*?)(?:9{5,20}|0{5,20})\\d{0,2}(?:e(.+)|$)/\n );\n }\n\n encodeFloat(num) {\n let value = num.toString();\n\n // Rounding inaccurate doubles.\n const m = CFFCompiler.EncodeFloatRegExp.exec(value);\n if (m) {\n const epsilon = parseFloat(\"1e\" + ((m[2] ? +m[2] : 0) + m[1].length));\n value = (Math.round(num * epsilon) / epsilon).toString();\n }\n\n let nibbles = \"\";\n let i, ii;\n for (i = 0, ii = value.length; i < ii; ++i) {\n const a = value[i];\n if (a === \"e\") {\n nibbles += value[++i] === \"-\" ? \"c\" : \"b\";\n } else if (a === \".\") {\n nibbles += \"a\";\n } else if (a === \"-\") {\n nibbles += \"e\";\n } else {\n nibbles += a;\n }\n }\n nibbles += nibbles.length & 1 ? \"f\" : \"ff\";\n const out = [30];\n for (i = 0, ii = nibbles.length; i < ii; i += 2) {\n out.push(parseInt(nibbles.substring(i, i + 2), 16));\n }\n return out;\n }\n\n encodeInteger(value) {\n let code;\n if (value >= -107 && value <= 107) {\n code = [value + 139];\n } else if (value >= 108 && value <= 1131) {\n value -= 108;\n code = [(value >> 8) + 247, value & 0xff];\n } else if (value >= -1131 && value <= -108) {\n value = -value - 108;\n code = [(value >> 8) + 251, value & 0xff];\n } else if (value >= -32768 && value <= 32767) {\n code = [0x1c, (value >> 8) & 0xff, value & 0xff];\n } else {\n code = [\n 0x1d,\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff,\n ];\n }\n return code;\n }\n\n compileHeader(header) {\n // `header.hdrSize` can be any value but we only write 4 values\n // so header size is 4 (prevents OTS from rejecting the font).\n return [header.major, header.minor, 4, header.offSize];\n }\n\n compileNameIndex(names) {\n const nameIndex = new CFFIndex();\n for (const name of names) {\n // OTS doesn't allow names to be over 127 characters.\n const length = Math.min(name.length, 127);\n let sanitizedName = new Array(length);\n for (let j = 0; j < length; j++) {\n // OTS requires chars to be between a range and not certain other\n // chars.\n let char = name[j];\n if (\n char < \"!\" ||\n char > \"~\" ||\n char === \"[\" ||\n char === \"]\" ||\n char === \"(\" ||\n char === \")\" ||\n char === \"{\" ||\n char === \"}\" ||\n char === \"<\" ||\n char === \">\" ||\n char === \"/\" ||\n char === \"%\"\n ) {\n char = \"_\";\n }\n sanitizedName[j] = char;\n }\n sanitizedName = sanitizedName.join(\"\");\n\n if (sanitizedName === \"\") {\n sanitizedName = \"Bad_Font_Name\";\n }\n nameIndex.add(stringToBytes(sanitizedName));\n }\n return this.compileIndex(nameIndex);\n }\n\n compileTopDicts(dicts, length, removeCidKeys) {\n const fontDictTrackers = [];\n let fdArrayIndex = new CFFIndex();\n for (const fontDict of dicts) {\n if (removeCidKeys) {\n fontDict.removeByName(\"CIDFontVersion\");\n fontDict.removeByName(\"CIDFontRevision\");\n fontDict.removeByName(\"CIDFontType\");\n fontDict.removeByName(\"CIDCount\");\n fontDict.removeByName(\"UIDBase\");\n }\n const fontDictTracker = new CFFOffsetTracker();\n const fontDictData = this.compileDict(fontDict, fontDictTracker);\n fontDictTrackers.push(fontDictTracker);\n fdArrayIndex.add(fontDictData);\n fontDictTracker.offset(length);\n }\n fdArrayIndex = this.compileIndex(fdArrayIndex, fontDictTrackers);\n return {\n trackers: fontDictTrackers,\n output: fdArrayIndex,\n };\n }\n\n compilePrivateDicts(dicts, trackers, output) {\n for (let i = 0, ii = dicts.length; i < ii; ++i) {\n const fontDict = dicts[i];\n const privateDict = fontDict.privateDict;\n if (!privateDict || !fontDict.hasName(\"Private\")) {\n throw new FormatError(\"There must be a private dictionary.\");\n }\n const privateDictTracker = new CFFOffsetTracker();\n const privateDictData = this.compileDict(privateDict, privateDictTracker);\n\n let outputLength = output.length;\n privateDictTracker.offset(outputLength);\n if (!privateDictData.length) {\n // The private dictionary was empty, set the output length to zero to\n // ensure the offset length isn't out of bounds in the eyes of the\n // sanitizer.\n outputLength = 0;\n }\n\n trackers[i].setEntryLocation(\n \"Private\",\n [privateDictData.length, outputLength],\n output\n );\n output.add(privateDictData);\n\n if (privateDict.subrsIndex && privateDict.hasName(\"Subrs\")) {\n const subrs = this.compileIndex(privateDict.subrsIndex);\n privateDictTracker.setEntryLocation(\n \"Subrs\",\n [privateDictData.length],\n output\n );\n output.add(subrs);\n }\n }\n }\n\n compileDict(dict, offsetTracker) {\n const out = [];\n // The dictionary keys must be in a certain order.\n for (const key of dict.order) {\n if (!(key in dict.values)) {\n continue;\n }\n let values = dict.values[key];\n let types = dict.types[key];\n if (!Array.isArray(types)) {\n types = [types];\n }\n if (!Array.isArray(values)) {\n values = [values];\n }\n\n // Remove any empty dict values.\n if (values.length === 0) {\n continue;\n }\n\n for (let j = 0, jj = types.length; j < jj; ++j) {\n const type = types[j];\n const value = values[j];\n switch (type) {\n case \"num\":\n case \"sid\":\n out.push(...this.encodeNumber(value));\n break;\n case \"offset\":\n // For offsets we just insert a 32bit integer so we don't have to\n // deal with figuring out the length of the offset when it gets\n // replaced later on by the compiler.\n const name = dict.keyToNameMap[key];\n // Some offsets have the offset and the length, so just record the\n // position of the first one.\n if (!offsetTracker.isTracking(name)) {\n offsetTracker.track(name, out.length);\n }\n out.push(0x1d, 0, 0, 0, 0);\n break;\n case \"array\":\n case \"delta\":\n out.push(...this.encodeNumber(value));\n for (let k = 1, kk = values.length; k < kk; ++k) {\n out.push(...this.encodeNumber(values[k]));\n }\n break;\n default:\n throw new FormatError(`Unknown data type of ${type}`);\n }\n }\n out.push(...dict.opcodes[key]);\n }\n return out;\n }\n\n compileStringIndex(strings) {\n const stringIndex = new CFFIndex();\n for (const string of strings) {\n stringIndex.add(stringToBytes(string));\n }\n return this.compileIndex(stringIndex);\n }\n\n compileCharStrings(charStrings) {\n const charStringsIndex = new CFFIndex();\n for (let i = 0; i < charStrings.count; i++) {\n const glyph = charStrings.get(i);\n // If the CharString outline is empty, replace it with .notdef to\n // prevent OTS from rejecting the font (fixes bug1252420.pdf).\n if (glyph.length === 0) {\n charStringsIndex.add(new Uint8Array([0x8b, 0x0e]));\n continue;\n }\n charStringsIndex.add(glyph);\n }\n return this.compileIndex(charStringsIndex);\n }\n\n compileCharset(charset, numGlyphs, strings, isCIDFont) {\n // Freetype requires the number of charset strings be correct and MacOS\n // requires a valid mapping for printing.\n let out;\n const numGlyphsLessNotDef = numGlyphs - 1;\n if (isCIDFont) {\n // In a CID font, the charset is a mapping of CIDs not SIDs so just\n // create an identity mapping.\n out = new Uint8Array([\n 2, // format\n 0, // first CID upper byte\n 0, // first CID lower byte\n (numGlyphsLessNotDef >> 8) & 0xff,\n numGlyphsLessNotDef & 0xff,\n ]);\n } else {\n const length = 1 + numGlyphsLessNotDef * 2;\n out = new Uint8Array(length);\n out[0] = 0; // format 0\n let charsetIndex = 0;\n const numCharsets = charset.charset.length;\n let warned = false;\n for (let i = 1; i < out.length; i += 2) {\n let sid = 0;\n if (charsetIndex < numCharsets) {\n const name = charset.charset[charsetIndex++];\n sid = strings.getSID(name);\n if (sid === -1) {\n sid = 0;\n if (!warned) {\n warned = true;\n warn(`Couldn't find ${name} in CFF strings`);\n }\n }\n }\n out[i] = (sid >> 8) & 0xff;\n out[i + 1] = sid & 0xff;\n }\n }\n return this.compileTypedArray(out);\n }\n\n compileEncoding(encoding) {\n return this.compileTypedArray(encoding.raw);\n }\n\n compileFDSelect(fdSelect) {\n const format = fdSelect.format;\n let out, i;\n switch (format) {\n case 0:\n out = new Uint8Array(1 + fdSelect.fdSelect.length);\n out[0] = format;\n for (i = 0; i < fdSelect.fdSelect.length; i++) {\n out[i + 1] = fdSelect.fdSelect[i];\n }\n break;\n case 3:\n const start = 0;\n let lastFD = fdSelect.fdSelect[0];\n const ranges = [\n format,\n 0, // nRanges place holder\n 0, // nRanges place holder\n (start >> 8) & 0xff,\n start & 0xff,\n lastFD,\n ];\n for (i = 1; i < fdSelect.fdSelect.length; i++) {\n const currentFD = fdSelect.fdSelect[i];\n if (currentFD !== lastFD) {\n ranges.push((i >> 8) & 0xff, i & 0xff, currentFD);\n lastFD = currentFD;\n }\n }\n // 3 bytes are pushed for every range and there are 3 header bytes.\n const numRanges = (ranges.length - 3) / 3;\n ranges[1] = (numRanges >> 8) & 0xff;\n ranges[2] = numRanges & 0xff;\n // sentinel\n ranges.push((i >> 8) & 0xff, i & 0xff);\n out = new Uint8Array(ranges);\n break;\n }\n return this.compileTypedArray(out);\n }\n\n compileTypedArray(data) {\n return Array.from(data);\n }\n\n compileIndex(index, trackers = []) {\n const objects = index.objects;\n // First 2 bytes contains the number of objects contained into this index\n const count = objects.length;\n\n // If there is no object, just create an index.\n if (count === 0) {\n return [0, 0];\n }\n\n const data = [(count >> 8) & 0xff, count & 0xff];\n\n let lastOffset = 1,\n i;\n for (i = 0; i < count; ++i) {\n lastOffset += objects[i].length;\n }\n\n let offsetSize;\n if (lastOffset < 0x100) {\n offsetSize = 1;\n } else if (lastOffset < 0x10000) {\n offsetSize = 2;\n } else if (lastOffset < 0x1000000) {\n offsetSize = 3;\n } else {\n offsetSize = 4;\n }\n\n // Next byte contains the offset size use to reference object in the file\n data.push(offsetSize);\n\n // Add another offset after this one because we need a new offset\n let relativeOffset = 1;\n for (i = 0; i < count + 1; i++) {\n if (offsetSize === 1) {\n data.push(relativeOffset & 0xff);\n } else if (offsetSize === 2) {\n data.push((relativeOffset >> 8) & 0xff, relativeOffset & 0xff);\n } else if (offsetSize === 3) {\n data.push(\n (relativeOffset >> 16) & 0xff,\n (relativeOffset >> 8) & 0xff,\n relativeOffset & 0xff\n );\n } else {\n data.push(\n (relativeOffset >>> 24) & 0xff,\n (relativeOffset >> 16) & 0xff,\n (relativeOffset >> 8) & 0xff,\n relativeOffset & 0xff\n );\n }\n\n if (objects[i]) {\n relativeOffset += objects[i].length;\n }\n }\n\n for (i = 0; i < count; i++) {\n // Notify the tracker where the object will be offset in the data.\n if (trackers[i]) {\n trackers[i].offset(data.length);\n }\n data.push(...objects[i]);\n }\n return data;\n }\n}\n\nexport {\n CFF,\n CFFCharset,\n CFFCompiler,\n CFFFDSelect,\n CFFHeader,\n CFFIndex,\n CFFParser,\n CFFPrivateDict,\n CFFStandardStrings,\n CFFStrings,\n CFFTopDict,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\n\nconst getGlyphsUnicode = getLookupTableFactory(function (t) {\n t.A = 0x0041;\n t.AE = 0x00c6;\n t.AEacute = 0x01fc;\n t.AEmacron = 0x01e2;\n t.AEsmall = 0xf7e6;\n t.Aacute = 0x00c1;\n t.Aacutesmall = 0xf7e1;\n t.Abreve = 0x0102;\n t.Abreveacute = 0x1eae;\n t.Abrevecyrillic = 0x04d0;\n t.Abrevedotbelow = 0x1eb6;\n t.Abrevegrave = 0x1eb0;\n t.Abrevehookabove = 0x1eb2;\n t.Abrevetilde = 0x1eb4;\n t.Acaron = 0x01cd;\n t.Acircle = 0x24b6;\n t.Acircumflex = 0x00c2;\n t.Acircumflexacute = 0x1ea4;\n t.Acircumflexdotbelow = 0x1eac;\n t.Acircumflexgrave = 0x1ea6;\n t.Acircumflexhookabove = 0x1ea8;\n t.Acircumflexsmall = 0xf7e2;\n t.Acircumflextilde = 0x1eaa;\n t.Acute = 0xf6c9;\n t.Acutesmall = 0xf7b4;\n t.Acyrillic = 0x0410;\n t.Adblgrave = 0x0200;\n t.Adieresis = 0x00c4;\n t.Adieresiscyrillic = 0x04d2;\n t.Adieresismacron = 0x01de;\n t.Adieresissmall = 0xf7e4;\n t.Adotbelow = 0x1ea0;\n t.Adotmacron = 0x01e0;\n t.Agrave = 0x00c0;\n t.Agravesmall = 0xf7e0;\n t.Ahookabove = 0x1ea2;\n t.Aiecyrillic = 0x04d4;\n t.Ainvertedbreve = 0x0202;\n t.Alpha = 0x0391;\n t.Alphatonos = 0x0386;\n t.Amacron = 0x0100;\n t.Amonospace = 0xff21;\n t.Aogonek = 0x0104;\n t.Aring = 0x00c5;\n t.Aringacute = 0x01fa;\n t.Aringbelow = 0x1e00;\n t.Aringsmall = 0xf7e5;\n t.Asmall = 0xf761;\n t.Atilde = 0x00c3;\n t.Atildesmall = 0xf7e3;\n t.Aybarmenian = 0x0531;\n t.B = 0x0042;\n t.Bcircle = 0x24b7;\n t.Bdotaccent = 0x1e02;\n t.Bdotbelow = 0x1e04;\n t.Becyrillic = 0x0411;\n t.Benarmenian = 0x0532;\n t.Beta = 0x0392;\n t.Bhook = 0x0181;\n t.Blinebelow = 0x1e06;\n t.Bmonospace = 0xff22;\n t.Brevesmall = 0xf6f4;\n t.Bsmall = 0xf762;\n t.Btopbar = 0x0182;\n t.C = 0x0043;\n t.Caarmenian = 0x053e;\n t.Cacute = 0x0106;\n t.Caron = 0xf6ca;\n t.Caronsmall = 0xf6f5;\n t.Ccaron = 0x010c;\n t.Ccedilla = 0x00c7;\n t.Ccedillaacute = 0x1e08;\n t.Ccedillasmall = 0xf7e7;\n t.Ccircle = 0x24b8;\n t.Ccircumflex = 0x0108;\n t.Cdot = 0x010a;\n t.Cdotaccent = 0x010a;\n t.Cedillasmall = 0xf7b8;\n t.Chaarmenian = 0x0549;\n t.Cheabkhasiancyrillic = 0x04bc;\n t.Checyrillic = 0x0427;\n t.Chedescenderabkhasiancyrillic = 0x04be;\n t.Chedescendercyrillic = 0x04b6;\n t.Chedieresiscyrillic = 0x04f4;\n t.Cheharmenian = 0x0543;\n t.Chekhakassiancyrillic = 0x04cb;\n t.Cheverticalstrokecyrillic = 0x04b8;\n t.Chi = 0x03a7;\n t.Chook = 0x0187;\n t.Circumflexsmall = 0xf6f6;\n t.Cmonospace = 0xff23;\n t.Coarmenian = 0x0551;\n t.Csmall = 0xf763;\n t.D = 0x0044;\n t.DZ = 0x01f1;\n t.DZcaron = 0x01c4;\n t.Daarmenian = 0x0534;\n t.Dafrican = 0x0189;\n t.Dcaron = 0x010e;\n t.Dcedilla = 0x1e10;\n t.Dcircle = 0x24b9;\n t.Dcircumflexbelow = 0x1e12;\n t.Dcroat = 0x0110;\n t.Ddotaccent = 0x1e0a;\n t.Ddotbelow = 0x1e0c;\n t.Decyrillic = 0x0414;\n t.Deicoptic = 0x03ee;\n t.Delta = 0x2206;\n t.Deltagreek = 0x0394;\n t.Dhook = 0x018a;\n t.Dieresis = 0xf6cb;\n t.DieresisAcute = 0xf6cc;\n t.DieresisGrave = 0xf6cd;\n t.Dieresissmall = 0xf7a8;\n t.Digammagreek = 0x03dc;\n t.Djecyrillic = 0x0402;\n t.Dlinebelow = 0x1e0e;\n t.Dmonospace = 0xff24;\n t.Dotaccentsmall = 0xf6f7;\n t.Dslash = 0x0110;\n t.Dsmall = 0xf764;\n t.Dtopbar = 0x018b;\n t.Dz = 0x01f2;\n t.Dzcaron = 0x01c5;\n t.Dzeabkhasiancyrillic = 0x04e0;\n t.Dzecyrillic = 0x0405;\n t.Dzhecyrillic = 0x040f;\n t.E = 0x0045;\n t.Eacute = 0x00c9;\n t.Eacutesmall = 0xf7e9;\n t.Ebreve = 0x0114;\n t.Ecaron = 0x011a;\n t.Ecedillabreve = 0x1e1c;\n t.Echarmenian = 0x0535;\n t.Ecircle = 0x24ba;\n t.Ecircumflex = 0x00ca;\n t.Ecircumflexacute = 0x1ebe;\n t.Ecircumflexbelow = 0x1e18;\n t.Ecircumflexdotbelow = 0x1ec6;\n t.Ecircumflexgrave = 0x1ec0;\n t.Ecircumflexhookabove = 0x1ec2;\n t.Ecircumflexsmall = 0xf7ea;\n t.Ecircumflextilde = 0x1ec4;\n t.Ecyrillic = 0x0404;\n t.Edblgrave = 0x0204;\n t.Edieresis = 0x00cb;\n t.Edieresissmall = 0xf7eb;\n t.Edot = 0x0116;\n t.Edotaccent = 0x0116;\n t.Edotbelow = 0x1eb8;\n t.Efcyrillic = 0x0424;\n t.Egrave = 0x00c8;\n t.Egravesmall = 0xf7e8;\n t.Eharmenian = 0x0537;\n t.Ehookabove = 0x1eba;\n t.Eightroman = 0x2167;\n t.Einvertedbreve = 0x0206;\n t.Eiotifiedcyrillic = 0x0464;\n t.Elcyrillic = 0x041b;\n t.Elevenroman = 0x216a;\n t.Emacron = 0x0112;\n t.Emacronacute = 0x1e16;\n t.Emacrongrave = 0x1e14;\n t.Emcyrillic = 0x041c;\n t.Emonospace = 0xff25;\n t.Encyrillic = 0x041d;\n t.Endescendercyrillic = 0x04a2;\n t.Eng = 0x014a;\n t.Enghecyrillic = 0x04a4;\n t.Enhookcyrillic = 0x04c7;\n t.Eogonek = 0x0118;\n t.Eopen = 0x0190;\n t.Epsilon = 0x0395;\n t.Epsilontonos = 0x0388;\n t.Ercyrillic = 0x0420;\n t.Ereversed = 0x018e;\n t.Ereversedcyrillic = 0x042d;\n t.Escyrillic = 0x0421;\n t.Esdescendercyrillic = 0x04aa;\n t.Esh = 0x01a9;\n t.Esmall = 0xf765;\n t.Eta = 0x0397;\n t.Etarmenian = 0x0538;\n t.Etatonos = 0x0389;\n t.Eth = 0x00d0;\n t.Ethsmall = 0xf7f0;\n t.Etilde = 0x1ebc;\n t.Etildebelow = 0x1e1a;\n t.Euro = 0x20ac;\n t.Ezh = 0x01b7;\n t.Ezhcaron = 0x01ee;\n t.Ezhreversed = 0x01b8;\n t.F = 0x0046;\n t.Fcircle = 0x24bb;\n t.Fdotaccent = 0x1e1e;\n t.Feharmenian = 0x0556;\n t.Feicoptic = 0x03e4;\n t.Fhook = 0x0191;\n t.Fitacyrillic = 0x0472;\n t.Fiveroman = 0x2164;\n t.Fmonospace = 0xff26;\n t.Fourroman = 0x2163;\n t.Fsmall = 0xf766;\n t.G = 0x0047;\n t.GBsquare = 0x3387;\n t.Gacute = 0x01f4;\n t.Gamma = 0x0393;\n t.Gammaafrican = 0x0194;\n t.Gangiacoptic = 0x03ea;\n t.Gbreve = 0x011e;\n t.Gcaron = 0x01e6;\n t.Gcedilla = 0x0122;\n t.Gcircle = 0x24bc;\n t.Gcircumflex = 0x011c;\n t.Gcommaaccent = 0x0122;\n t.Gdot = 0x0120;\n t.Gdotaccent = 0x0120;\n t.Gecyrillic = 0x0413;\n t.Ghadarmenian = 0x0542;\n t.Ghemiddlehookcyrillic = 0x0494;\n t.Ghestrokecyrillic = 0x0492;\n t.Gheupturncyrillic = 0x0490;\n t.Ghook = 0x0193;\n t.Gimarmenian = 0x0533;\n t.Gjecyrillic = 0x0403;\n t.Gmacron = 0x1e20;\n t.Gmonospace = 0xff27;\n t.Grave = 0xf6ce;\n t.Gravesmall = 0xf760;\n t.Gsmall = 0xf767;\n t.Gsmallhook = 0x029b;\n t.Gstroke = 0x01e4;\n t.H = 0x0048;\n t.H18533 = 0x25cf;\n t.H18543 = 0x25aa;\n t.H18551 = 0x25ab;\n t.H22073 = 0x25a1;\n t.HPsquare = 0x33cb;\n t.Haabkhasiancyrillic = 0x04a8;\n t.Hadescendercyrillic = 0x04b2;\n t.Hardsigncyrillic = 0x042a;\n t.Hbar = 0x0126;\n t.Hbrevebelow = 0x1e2a;\n t.Hcedilla = 0x1e28;\n t.Hcircle = 0x24bd;\n t.Hcircumflex = 0x0124;\n t.Hdieresis = 0x1e26;\n t.Hdotaccent = 0x1e22;\n t.Hdotbelow = 0x1e24;\n t.Hmonospace = 0xff28;\n t.Hoarmenian = 0x0540;\n t.Horicoptic = 0x03e8;\n t.Hsmall = 0xf768;\n t.Hungarumlaut = 0xf6cf;\n t.Hungarumlautsmall = 0xf6f8;\n t.Hzsquare = 0x3390;\n t.I = 0x0049;\n t.IAcyrillic = 0x042f;\n t.IJ = 0x0132;\n t.IUcyrillic = 0x042e;\n t.Iacute = 0x00cd;\n t.Iacutesmall = 0xf7ed;\n t.Ibreve = 0x012c;\n t.Icaron = 0x01cf;\n t.Icircle = 0x24be;\n t.Icircumflex = 0x00ce;\n t.Icircumflexsmall = 0xf7ee;\n t.Icyrillic = 0x0406;\n t.Idblgrave = 0x0208;\n t.Idieresis = 0x00cf;\n t.Idieresisacute = 0x1e2e;\n t.Idieresiscyrillic = 0x04e4;\n t.Idieresissmall = 0xf7ef;\n t.Idot = 0x0130;\n t.Idotaccent = 0x0130;\n t.Idotbelow = 0x1eca;\n t.Iebrevecyrillic = 0x04d6;\n t.Iecyrillic = 0x0415;\n t.Ifraktur = 0x2111;\n t.Igrave = 0x00cc;\n t.Igravesmall = 0xf7ec;\n t.Ihookabove = 0x1ec8;\n t.Iicyrillic = 0x0418;\n t.Iinvertedbreve = 0x020a;\n t.Iishortcyrillic = 0x0419;\n t.Imacron = 0x012a;\n t.Imacroncyrillic = 0x04e2;\n t.Imonospace = 0xff29;\n t.Iniarmenian = 0x053b;\n t.Iocyrillic = 0x0401;\n t.Iogonek = 0x012e;\n t.Iota = 0x0399;\n t.Iotaafrican = 0x0196;\n t.Iotadieresis = 0x03aa;\n t.Iotatonos = 0x038a;\n t.Ismall = 0xf769;\n t.Istroke = 0x0197;\n t.Itilde = 0x0128;\n t.Itildebelow = 0x1e2c;\n t.Izhitsacyrillic = 0x0474;\n t.Izhitsadblgravecyrillic = 0x0476;\n t.J = 0x004a;\n t.Jaarmenian = 0x0541;\n t.Jcircle = 0x24bf;\n t.Jcircumflex = 0x0134;\n t.Jecyrillic = 0x0408;\n t.Jheharmenian = 0x054b;\n t.Jmonospace = 0xff2a;\n t.Jsmall = 0xf76a;\n t.K = 0x004b;\n t.KBsquare = 0x3385;\n t.KKsquare = 0x33cd;\n t.Kabashkircyrillic = 0x04a0;\n t.Kacute = 0x1e30;\n t.Kacyrillic = 0x041a;\n t.Kadescendercyrillic = 0x049a;\n t.Kahookcyrillic = 0x04c3;\n t.Kappa = 0x039a;\n t.Kastrokecyrillic = 0x049e;\n t.Kaverticalstrokecyrillic = 0x049c;\n t.Kcaron = 0x01e8;\n t.Kcedilla = 0x0136;\n t.Kcircle = 0x24c0;\n t.Kcommaaccent = 0x0136;\n t.Kdotbelow = 0x1e32;\n t.Keharmenian = 0x0554;\n t.Kenarmenian = 0x053f;\n t.Khacyrillic = 0x0425;\n t.Kheicoptic = 0x03e6;\n t.Khook = 0x0198;\n t.Kjecyrillic = 0x040c;\n t.Klinebelow = 0x1e34;\n t.Kmonospace = 0xff2b;\n t.Koppacyrillic = 0x0480;\n t.Koppagreek = 0x03de;\n t.Ksicyrillic = 0x046e;\n t.Ksmall = 0xf76b;\n t.L = 0x004c;\n t.LJ = 0x01c7;\n t.LL = 0xf6bf;\n t.Lacute = 0x0139;\n t.Lambda = 0x039b;\n t.Lcaron = 0x013d;\n t.Lcedilla = 0x013b;\n t.Lcircle = 0x24c1;\n t.Lcircumflexbelow = 0x1e3c;\n t.Lcommaaccent = 0x013b;\n t.Ldot = 0x013f;\n t.Ldotaccent = 0x013f;\n t.Ldotbelow = 0x1e36;\n t.Ldotbelowmacron = 0x1e38;\n t.Liwnarmenian = 0x053c;\n t.Lj = 0x01c8;\n t.Ljecyrillic = 0x0409;\n t.Llinebelow = 0x1e3a;\n t.Lmonospace = 0xff2c;\n t.Lslash = 0x0141;\n t.Lslashsmall = 0xf6f9;\n t.Lsmall = 0xf76c;\n t.M = 0x004d;\n t.MBsquare = 0x3386;\n t.Macron = 0xf6d0;\n t.Macronsmall = 0xf7af;\n t.Macute = 0x1e3e;\n t.Mcircle = 0x24c2;\n t.Mdotaccent = 0x1e40;\n t.Mdotbelow = 0x1e42;\n t.Menarmenian = 0x0544;\n t.Mmonospace = 0xff2d;\n t.Msmall = 0xf76d;\n t.Mturned = 0x019c;\n t.Mu = 0x039c;\n t.N = 0x004e;\n t.NJ = 0x01ca;\n t.Nacute = 0x0143;\n t.Ncaron = 0x0147;\n t.Ncedilla = 0x0145;\n t.Ncircle = 0x24c3;\n t.Ncircumflexbelow = 0x1e4a;\n t.Ncommaaccent = 0x0145;\n t.Ndotaccent = 0x1e44;\n t.Ndotbelow = 0x1e46;\n t.Nhookleft = 0x019d;\n t.Nineroman = 0x2168;\n t.Nj = 0x01cb;\n t.Njecyrillic = 0x040a;\n t.Nlinebelow = 0x1e48;\n t.Nmonospace = 0xff2e;\n t.Nowarmenian = 0x0546;\n t.Nsmall = 0xf76e;\n t.Ntilde = 0x00d1;\n t.Ntildesmall = 0xf7f1;\n t.Nu = 0x039d;\n t.O = 0x004f;\n t.OE = 0x0152;\n t.OEsmall = 0xf6fa;\n t.Oacute = 0x00d3;\n t.Oacutesmall = 0xf7f3;\n t.Obarredcyrillic = 0x04e8;\n t.Obarreddieresiscyrillic = 0x04ea;\n t.Obreve = 0x014e;\n t.Ocaron = 0x01d1;\n t.Ocenteredtilde = 0x019f;\n t.Ocircle = 0x24c4;\n t.Ocircumflex = 0x00d4;\n t.Ocircumflexacute = 0x1ed0;\n t.Ocircumflexdotbelow = 0x1ed8;\n t.Ocircumflexgrave = 0x1ed2;\n t.Ocircumflexhookabove = 0x1ed4;\n t.Ocircumflexsmall = 0xf7f4;\n t.Ocircumflextilde = 0x1ed6;\n t.Ocyrillic = 0x041e;\n t.Odblacute = 0x0150;\n t.Odblgrave = 0x020c;\n t.Odieresis = 0x00d6;\n t.Odieresiscyrillic = 0x04e6;\n t.Odieresissmall = 0xf7f6;\n t.Odotbelow = 0x1ecc;\n t.Ogoneksmall = 0xf6fb;\n t.Ograve = 0x00d2;\n t.Ogravesmall = 0xf7f2;\n t.Oharmenian = 0x0555;\n t.Ohm = 0x2126;\n t.Ohookabove = 0x1ece;\n t.Ohorn = 0x01a0;\n t.Ohornacute = 0x1eda;\n t.Ohorndotbelow = 0x1ee2;\n t.Ohorngrave = 0x1edc;\n t.Ohornhookabove = 0x1ede;\n t.Ohorntilde = 0x1ee0;\n t.Ohungarumlaut = 0x0150;\n t.Oi = 0x01a2;\n t.Oinvertedbreve = 0x020e;\n t.Omacron = 0x014c;\n t.Omacronacute = 0x1e52;\n t.Omacrongrave = 0x1e50;\n t.Omega = 0x2126;\n t.Omegacyrillic = 0x0460;\n t.Omegagreek = 0x03a9;\n t.Omegaroundcyrillic = 0x047a;\n t.Omegatitlocyrillic = 0x047c;\n t.Omegatonos = 0x038f;\n t.Omicron = 0x039f;\n t.Omicrontonos = 0x038c;\n t.Omonospace = 0xff2f;\n t.Oneroman = 0x2160;\n t.Oogonek = 0x01ea;\n t.Oogonekmacron = 0x01ec;\n t.Oopen = 0x0186;\n t.Oslash = 0x00d8;\n t.Oslashacute = 0x01fe;\n t.Oslashsmall = 0xf7f8;\n t.Osmall = 0xf76f;\n t.Ostrokeacute = 0x01fe;\n t.Otcyrillic = 0x047e;\n t.Otilde = 0x00d5;\n t.Otildeacute = 0x1e4c;\n t.Otildedieresis = 0x1e4e;\n t.Otildesmall = 0xf7f5;\n t.P = 0x0050;\n t.Pacute = 0x1e54;\n t.Pcircle = 0x24c5;\n t.Pdotaccent = 0x1e56;\n t.Pecyrillic = 0x041f;\n t.Peharmenian = 0x054a;\n t.Pemiddlehookcyrillic = 0x04a6;\n t.Phi = 0x03a6;\n t.Phook = 0x01a4;\n t.Pi = 0x03a0;\n t.Piwrarmenian = 0x0553;\n t.Pmonospace = 0xff30;\n t.Psi = 0x03a8;\n t.Psicyrillic = 0x0470;\n t.Psmall = 0xf770;\n t.Q = 0x0051;\n t.Qcircle = 0x24c6;\n t.Qmonospace = 0xff31;\n t.Qsmall = 0xf771;\n t.R = 0x0052;\n t.Raarmenian = 0x054c;\n t.Racute = 0x0154;\n t.Rcaron = 0x0158;\n t.Rcedilla = 0x0156;\n t.Rcircle = 0x24c7;\n t.Rcommaaccent = 0x0156;\n t.Rdblgrave = 0x0210;\n t.Rdotaccent = 0x1e58;\n t.Rdotbelow = 0x1e5a;\n t.Rdotbelowmacron = 0x1e5c;\n t.Reharmenian = 0x0550;\n t.Rfraktur = 0x211c;\n t.Rho = 0x03a1;\n t.Ringsmall = 0xf6fc;\n t.Rinvertedbreve = 0x0212;\n t.Rlinebelow = 0x1e5e;\n t.Rmonospace = 0xff32;\n t.Rsmall = 0xf772;\n t.Rsmallinverted = 0x0281;\n t.Rsmallinvertedsuperior = 0x02b6;\n t.S = 0x0053;\n t.SF010000 = 0x250c;\n t.SF020000 = 0x2514;\n t.SF030000 = 0x2510;\n t.SF040000 = 0x2518;\n t.SF050000 = 0x253c;\n t.SF060000 = 0x252c;\n t.SF070000 = 0x2534;\n t.SF080000 = 0x251c;\n t.SF090000 = 0x2524;\n t.SF100000 = 0x2500;\n t.SF110000 = 0x2502;\n t.SF190000 = 0x2561;\n t.SF200000 = 0x2562;\n t.SF210000 = 0x2556;\n t.SF220000 = 0x2555;\n t.SF230000 = 0x2563;\n t.SF240000 = 0x2551;\n t.SF250000 = 0x2557;\n t.SF260000 = 0x255d;\n t.SF270000 = 0x255c;\n t.SF280000 = 0x255b;\n t.SF360000 = 0x255e;\n t.SF370000 = 0x255f;\n t.SF380000 = 0x255a;\n t.SF390000 = 0x2554;\n t.SF400000 = 0x2569;\n t.SF410000 = 0x2566;\n t.SF420000 = 0x2560;\n t.SF430000 = 0x2550;\n t.SF440000 = 0x256c;\n t.SF450000 = 0x2567;\n t.SF460000 = 0x2568;\n t.SF470000 = 0x2564;\n t.SF480000 = 0x2565;\n t.SF490000 = 0x2559;\n t.SF500000 = 0x2558;\n t.SF510000 = 0x2552;\n t.SF520000 = 0x2553;\n t.SF530000 = 0x256b;\n t.SF540000 = 0x256a;\n t.Sacute = 0x015a;\n t.Sacutedotaccent = 0x1e64;\n t.Sampigreek = 0x03e0;\n t.Scaron = 0x0160;\n t.Scarondotaccent = 0x1e66;\n t.Scaronsmall = 0xf6fd;\n t.Scedilla = 0x015e;\n t.Schwa = 0x018f;\n t.Schwacyrillic = 0x04d8;\n t.Schwadieresiscyrillic = 0x04da;\n t.Scircle = 0x24c8;\n t.Scircumflex = 0x015c;\n t.Scommaaccent = 0x0218;\n t.Sdotaccent = 0x1e60;\n t.Sdotbelow = 0x1e62;\n t.Sdotbelowdotaccent = 0x1e68;\n t.Seharmenian = 0x054d;\n t.Sevenroman = 0x2166;\n t.Shaarmenian = 0x0547;\n t.Shacyrillic = 0x0428;\n t.Shchacyrillic = 0x0429;\n t.Sheicoptic = 0x03e2;\n t.Shhacyrillic = 0x04ba;\n t.Shimacoptic = 0x03ec;\n t.Sigma = 0x03a3;\n t.Sixroman = 0x2165;\n t.Smonospace = 0xff33;\n t.Softsigncyrillic = 0x042c;\n t.Ssmall = 0xf773;\n t.Stigmagreek = 0x03da;\n t.T = 0x0054;\n t.Tau = 0x03a4;\n t.Tbar = 0x0166;\n t.Tcaron = 0x0164;\n t.Tcedilla = 0x0162;\n t.Tcircle = 0x24c9;\n t.Tcircumflexbelow = 0x1e70;\n t.Tcommaaccent = 0x0162;\n t.Tdotaccent = 0x1e6a;\n t.Tdotbelow = 0x1e6c;\n t.Tecyrillic = 0x0422;\n t.Tedescendercyrillic = 0x04ac;\n t.Tenroman = 0x2169;\n t.Tetsecyrillic = 0x04b4;\n t.Theta = 0x0398;\n t.Thook = 0x01ac;\n t.Thorn = 0x00de;\n t.Thornsmall = 0xf7fe;\n t.Threeroman = 0x2162;\n t.Tildesmall = 0xf6fe;\n t.Tiwnarmenian = 0x054f;\n t.Tlinebelow = 0x1e6e;\n t.Tmonospace = 0xff34;\n t.Toarmenian = 0x0539;\n t.Tonefive = 0x01bc;\n t.Tonesix = 0x0184;\n t.Tonetwo = 0x01a7;\n t.Tretroflexhook = 0x01ae;\n t.Tsecyrillic = 0x0426;\n t.Tshecyrillic = 0x040b;\n t.Tsmall = 0xf774;\n t.Twelveroman = 0x216b;\n t.Tworoman = 0x2161;\n t.U = 0x0055;\n t.Uacute = 0x00da;\n t.Uacutesmall = 0xf7fa;\n t.Ubreve = 0x016c;\n t.Ucaron = 0x01d3;\n t.Ucircle = 0x24ca;\n t.Ucircumflex = 0x00db;\n t.Ucircumflexbelow = 0x1e76;\n t.Ucircumflexsmall = 0xf7fb;\n t.Ucyrillic = 0x0423;\n t.Udblacute = 0x0170;\n t.Udblgrave = 0x0214;\n t.Udieresis = 0x00dc;\n t.Udieresisacute = 0x01d7;\n t.Udieresisbelow = 0x1e72;\n t.Udieresiscaron = 0x01d9;\n t.Udieresiscyrillic = 0x04f0;\n t.Udieresisgrave = 0x01db;\n t.Udieresismacron = 0x01d5;\n t.Udieresissmall = 0xf7fc;\n t.Udotbelow = 0x1ee4;\n t.Ugrave = 0x00d9;\n t.Ugravesmall = 0xf7f9;\n t.Uhookabove = 0x1ee6;\n t.Uhorn = 0x01af;\n t.Uhornacute = 0x1ee8;\n t.Uhorndotbelow = 0x1ef0;\n t.Uhorngrave = 0x1eea;\n t.Uhornhookabove = 0x1eec;\n t.Uhorntilde = 0x1eee;\n t.Uhungarumlaut = 0x0170;\n t.Uhungarumlautcyrillic = 0x04f2;\n t.Uinvertedbreve = 0x0216;\n t.Ukcyrillic = 0x0478;\n t.Umacron = 0x016a;\n t.Umacroncyrillic = 0x04ee;\n t.Umacrondieresis = 0x1e7a;\n t.Umonospace = 0xff35;\n t.Uogonek = 0x0172;\n t.Upsilon = 0x03a5;\n t.Upsilon1 = 0x03d2;\n t.Upsilonacutehooksymbolgreek = 0x03d3;\n t.Upsilonafrican = 0x01b1;\n t.Upsilondieresis = 0x03ab;\n t.Upsilondieresishooksymbolgreek = 0x03d4;\n t.Upsilonhooksymbol = 0x03d2;\n t.Upsilontonos = 0x038e;\n t.Uring = 0x016e;\n t.Ushortcyrillic = 0x040e;\n t.Usmall = 0xf775;\n t.Ustraightcyrillic = 0x04ae;\n t.Ustraightstrokecyrillic = 0x04b0;\n t.Utilde = 0x0168;\n t.Utildeacute = 0x1e78;\n t.Utildebelow = 0x1e74;\n t.V = 0x0056;\n t.Vcircle = 0x24cb;\n t.Vdotbelow = 0x1e7e;\n t.Vecyrillic = 0x0412;\n t.Vewarmenian = 0x054e;\n t.Vhook = 0x01b2;\n t.Vmonospace = 0xff36;\n t.Voarmenian = 0x0548;\n t.Vsmall = 0xf776;\n t.Vtilde = 0x1e7c;\n t.W = 0x0057;\n t.Wacute = 0x1e82;\n t.Wcircle = 0x24cc;\n t.Wcircumflex = 0x0174;\n t.Wdieresis = 0x1e84;\n t.Wdotaccent = 0x1e86;\n t.Wdotbelow = 0x1e88;\n t.Wgrave = 0x1e80;\n t.Wmonospace = 0xff37;\n t.Wsmall = 0xf777;\n t.X = 0x0058;\n t.Xcircle = 0x24cd;\n t.Xdieresis = 0x1e8c;\n t.Xdotaccent = 0x1e8a;\n t.Xeharmenian = 0x053d;\n t.Xi = 0x039e;\n t.Xmonospace = 0xff38;\n t.Xsmall = 0xf778;\n t.Y = 0x0059;\n t.Yacute = 0x00dd;\n t.Yacutesmall = 0xf7fd;\n t.Yatcyrillic = 0x0462;\n t.Ycircle = 0x24ce;\n t.Ycircumflex = 0x0176;\n t.Ydieresis = 0x0178;\n t.Ydieresissmall = 0xf7ff;\n t.Ydotaccent = 0x1e8e;\n t.Ydotbelow = 0x1ef4;\n t.Yericyrillic = 0x042b;\n t.Yerudieresiscyrillic = 0x04f8;\n t.Ygrave = 0x1ef2;\n t.Yhook = 0x01b3;\n t.Yhookabove = 0x1ef6;\n t.Yiarmenian = 0x0545;\n t.Yicyrillic = 0x0407;\n t.Yiwnarmenian = 0x0552;\n t.Ymonospace = 0xff39;\n t.Ysmall = 0xf779;\n t.Ytilde = 0x1ef8;\n t.Yusbigcyrillic = 0x046a;\n t.Yusbigiotifiedcyrillic = 0x046c;\n t.Yuslittlecyrillic = 0x0466;\n t.Yuslittleiotifiedcyrillic = 0x0468;\n t.Z = 0x005a;\n t.Zaarmenian = 0x0536;\n t.Zacute = 0x0179;\n t.Zcaron = 0x017d;\n t.Zcaronsmall = 0xf6ff;\n t.Zcircle = 0x24cf;\n t.Zcircumflex = 0x1e90;\n t.Zdot = 0x017b;\n t.Zdotaccent = 0x017b;\n t.Zdotbelow = 0x1e92;\n t.Zecyrillic = 0x0417;\n t.Zedescendercyrillic = 0x0498;\n t.Zedieresiscyrillic = 0x04de;\n t.Zeta = 0x0396;\n t.Zhearmenian = 0x053a;\n t.Zhebrevecyrillic = 0x04c1;\n t.Zhecyrillic = 0x0416;\n t.Zhedescendercyrillic = 0x0496;\n t.Zhedieresiscyrillic = 0x04dc;\n t.Zlinebelow = 0x1e94;\n t.Zmonospace = 0xff3a;\n t.Zsmall = 0xf77a;\n t.Zstroke = 0x01b5;\n t.a = 0x0061;\n t.aabengali = 0x0986;\n t.aacute = 0x00e1;\n t.aadeva = 0x0906;\n t.aagujarati = 0x0a86;\n t.aagurmukhi = 0x0a06;\n t.aamatragurmukhi = 0x0a3e;\n t.aarusquare = 0x3303;\n t.aavowelsignbengali = 0x09be;\n t.aavowelsigndeva = 0x093e;\n t.aavowelsigngujarati = 0x0abe;\n t.abbreviationmarkarmenian = 0x055f;\n t.abbreviationsigndeva = 0x0970;\n t.abengali = 0x0985;\n t.abopomofo = 0x311a;\n t.abreve = 0x0103;\n t.abreveacute = 0x1eaf;\n t.abrevecyrillic = 0x04d1;\n t.abrevedotbelow = 0x1eb7;\n t.abrevegrave = 0x1eb1;\n t.abrevehookabove = 0x1eb3;\n t.abrevetilde = 0x1eb5;\n t.acaron = 0x01ce;\n t.acircle = 0x24d0;\n t.acircumflex = 0x00e2;\n t.acircumflexacute = 0x1ea5;\n t.acircumflexdotbelow = 0x1ead;\n t.acircumflexgrave = 0x1ea7;\n t.acircumflexhookabove = 0x1ea9;\n t.acircumflextilde = 0x1eab;\n t.acute = 0x00b4;\n t.acutebelowcmb = 0x0317;\n t.acutecmb = 0x0301;\n t.acutecomb = 0x0301;\n t.acutedeva = 0x0954;\n t.acutelowmod = 0x02cf;\n t.acutetonecmb = 0x0341;\n t.acyrillic = 0x0430;\n t.adblgrave = 0x0201;\n t.addakgurmukhi = 0x0a71;\n t.adeva = 0x0905;\n t.adieresis = 0x00e4;\n t.adieresiscyrillic = 0x04d3;\n t.adieresismacron = 0x01df;\n t.adotbelow = 0x1ea1;\n t.adotmacron = 0x01e1;\n t.ae = 0x00e6;\n t.aeacute = 0x01fd;\n t.aekorean = 0x3150;\n t.aemacron = 0x01e3;\n t.afii00208 = 0x2015;\n t.afii08941 = 0x20a4;\n t.afii10017 = 0x0410;\n t.afii10018 = 0x0411;\n t.afii10019 = 0x0412;\n t.afii10020 = 0x0413;\n t.afii10021 = 0x0414;\n t.afii10022 = 0x0415;\n t.afii10023 = 0x0401;\n t.afii10024 = 0x0416;\n t.afii10025 = 0x0417;\n t.afii10026 = 0x0418;\n t.afii10027 = 0x0419;\n t.afii10028 = 0x041a;\n t.afii10029 = 0x041b;\n t.afii10030 = 0x041c;\n t.afii10031 = 0x041d;\n t.afii10032 = 0x041e;\n t.afii10033 = 0x041f;\n t.afii10034 = 0x0420;\n t.afii10035 = 0x0421;\n t.afii10036 = 0x0422;\n t.afii10037 = 0x0423;\n t.afii10038 = 0x0424;\n t.afii10039 = 0x0425;\n t.afii10040 = 0x0426;\n t.afii10041 = 0x0427;\n t.afii10042 = 0x0428;\n t.afii10043 = 0x0429;\n t.afii10044 = 0x042a;\n t.afii10045 = 0x042b;\n t.afii10046 = 0x042c;\n t.afii10047 = 0x042d;\n t.afii10048 = 0x042e;\n t.afii10049 = 0x042f;\n t.afii10050 = 0x0490;\n t.afii10051 = 0x0402;\n t.afii10052 = 0x0403;\n t.afii10053 = 0x0404;\n t.afii10054 = 0x0405;\n t.afii10055 = 0x0406;\n t.afii10056 = 0x0407;\n t.afii10057 = 0x0408;\n t.afii10058 = 0x0409;\n t.afii10059 = 0x040a;\n t.afii10060 = 0x040b;\n t.afii10061 = 0x040c;\n t.afii10062 = 0x040e;\n t.afii10063 = 0xf6c4;\n t.afii10064 = 0xf6c5;\n t.afii10065 = 0x0430;\n t.afii10066 = 0x0431;\n t.afii10067 = 0x0432;\n t.afii10068 = 0x0433;\n t.afii10069 = 0x0434;\n t.afii10070 = 0x0435;\n t.afii10071 = 0x0451;\n t.afii10072 = 0x0436;\n t.afii10073 = 0x0437;\n t.afii10074 = 0x0438;\n t.afii10075 = 0x0439;\n t.afii10076 = 0x043a;\n t.afii10077 = 0x043b;\n t.afii10078 = 0x043c;\n t.afii10079 = 0x043d;\n t.afii10080 = 0x043e;\n t.afii10081 = 0x043f;\n t.afii10082 = 0x0440;\n t.afii10083 = 0x0441;\n t.afii10084 = 0x0442;\n t.afii10085 = 0x0443;\n t.afii10086 = 0x0444;\n t.afii10087 = 0x0445;\n t.afii10088 = 0x0446;\n t.afii10089 = 0x0447;\n t.afii10090 = 0x0448;\n t.afii10091 = 0x0449;\n t.afii10092 = 0x044a;\n t.afii10093 = 0x044b;\n t.afii10094 = 0x044c;\n t.afii10095 = 0x044d;\n t.afii10096 = 0x044e;\n t.afii10097 = 0x044f;\n t.afii10098 = 0x0491;\n t.afii10099 = 0x0452;\n t.afii10100 = 0x0453;\n t.afii10101 = 0x0454;\n t.afii10102 = 0x0455;\n t.afii10103 = 0x0456;\n t.afii10104 = 0x0457;\n t.afii10105 = 0x0458;\n t.afii10106 = 0x0459;\n t.afii10107 = 0x045a;\n t.afii10108 = 0x045b;\n t.afii10109 = 0x045c;\n t.afii10110 = 0x045e;\n t.afii10145 = 0x040f;\n t.afii10146 = 0x0462;\n t.afii10147 = 0x0472;\n t.afii10148 = 0x0474;\n t.afii10192 = 0xf6c6;\n t.afii10193 = 0x045f;\n t.afii10194 = 0x0463;\n t.afii10195 = 0x0473;\n t.afii10196 = 0x0475;\n t.afii10831 = 0xf6c7;\n t.afii10832 = 0xf6c8;\n t.afii10846 = 0x04d9;\n t.afii299 = 0x200e;\n t.afii300 = 0x200f;\n t.afii301 = 0x200d;\n t.afii57381 = 0x066a;\n t.afii57388 = 0x060c;\n t.afii57392 = 0x0660;\n t.afii57393 = 0x0661;\n t.afii57394 = 0x0662;\n t.afii57395 = 0x0663;\n t.afii57396 = 0x0664;\n t.afii57397 = 0x0665;\n t.afii57398 = 0x0666;\n t.afii57399 = 0x0667;\n t.afii57400 = 0x0668;\n t.afii57401 = 0x0669;\n t.afii57403 = 0x061b;\n t.afii57407 = 0x061f;\n t.afii57409 = 0x0621;\n t.afii57410 = 0x0622;\n t.afii57411 = 0x0623;\n t.afii57412 = 0x0624;\n t.afii57413 = 0x0625;\n t.afii57414 = 0x0626;\n t.afii57415 = 0x0627;\n t.afii57416 = 0x0628;\n t.afii57417 = 0x0629;\n t.afii57418 = 0x062a;\n t.afii57419 = 0x062b;\n t.afii57420 = 0x062c;\n t.afii57421 = 0x062d;\n t.afii57422 = 0x062e;\n t.afii57423 = 0x062f;\n t.afii57424 = 0x0630;\n t.afii57425 = 0x0631;\n t.afii57426 = 0x0632;\n t.afii57427 = 0x0633;\n t.afii57428 = 0x0634;\n t.afii57429 = 0x0635;\n t.afii57430 = 0x0636;\n t.afii57431 = 0x0637;\n t.afii57432 = 0x0638;\n t.afii57433 = 0x0639;\n t.afii57434 = 0x063a;\n t.afii57440 = 0x0640;\n t.afii57441 = 0x0641;\n t.afii57442 = 0x0642;\n t.afii57443 = 0x0643;\n t.afii57444 = 0x0644;\n t.afii57445 = 0x0645;\n t.afii57446 = 0x0646;\n t.afii57448 = 0x0648;\n t.afii57449 = 0x0649;\n t.afii57450 = 0x064a;\n t.afii57451 = 0x064b;\n t.afii57452 = 0x064c;\n t.afii57453 = 0x064d;\n t.afii57454 = 0x064e;\n t.afii57455 = 0x064f;\n t.afii57456 = 0x0650;\n t.afii57457 = 0x0651;\n t.afii57458 = 0x0652;\n t.afii57470 = 0x0647;\n t.afii57505 = 0x06a4;\n t.afii57506 = 0x067e;\n t.afii57507 = 0x0686;\n t.afii57508 = 0x0698;\n t.afii57509 = 0x06af;\n t.afii57511 = 0x0679;\n t.afii57512 = 0x0688;\n t.afii57513 = 0x0691;\n t.afii57514 = 0x06ba;\n t.afii57519 = 0x06d2;\n t.afii57534 = 0x06d5;\n t.afii57636 = 0x20aa;\n t.afii57645 = 0x05be;\n t.afii57658 = 0x05c3;\n t.afii57664 = 0x05d0;\n t.afii57665 = 0x05d1;\n t.afii57666 = 0x05d2;\n t.afii57667 = 0x05d3;\n t.afii57668 = 0x05d4;\n t.afii57669 = 0x05d5;\n t.afii57670 = 0x05d6;\n t.afii57671 = 0x05d7;\n t.afii57672 = 0x05d8;\n t.afii57673 = 0x05d9;\n t.afii57674 = 0x05da;\n t.afii57675 = 0x05db;\n t.afii57676 = 0x05dc;\n t.afii57677 = 0x05dd;\n t.afii57678 = 0x05de;\n t.afii57679 = 0x05df;\n t.afii57680 = 0x05e0;\n t.afii57681 = 0x05e1;\n t.afii57682 = 0x05e2;\n t.afii57683 = 0x05e3;\n t.afii57684 = 0x05e4;\n t.afii57685 = 0x05e5;\n t.afii57686 = 0x05e6;\n t.afii57687 = 0x05e7;\n t.afii57688 = 0x05e8;\n t.afii57689 = 0x05e9;\n t.afii57690 = 0x05ea;\n t.afii57694 = 0xfb2a;\n t.afii57695 = 0xfb2b;\n t.afii57700 = 0xfb4b;\n t.afii57705 = 0xfb1f;\n t.afii57716 = 0x05f0;\n t.afii57717 = 0x05f1;\n t.afii57718 = 0x05f2;\n t.afii57723 = 0xfb35;\n t.afii57793 = 0x05b4;\n t.afii57794 = 0x05b5;\n t.afii57795 = 0x05b6;\n t.afii57796 = 0x05bb;\n t.afii57797 = 0x05b8;\n t.afii57798 = 0x05b7;\n t.afii57799 = 0x05b0;\n t.afii57800 = 0x05b2;\n t.afii57801 = 0x05b1;\n t.afii57802 = 0x05b3;\n t.afii57803 = 0x05c2;\n t.afii57804 = 0x05c1;\n t.afii57806 = 0x05b9;\n t.afii57807 = 0x05bc;\n t.afii57839 = 0x05bd;\n t.afii57841 = 0x05bf;\n t.afii57842 = 0x05c0;\n t.afii57929 = 0x02bc;\n t.afii61248 = 0x2105;\n t.afii61289 = 0x2113;\n t.afii61352 = 0x2116;\n t.afii61573 = 0x202c;\n t.afii61574 = 0x202d;\n t.afii61575 = 0x202e;\n t.afii61664 = 0x200c;\n t.afii63167 = 0x066d;\n t.afii64937 = 0x02bd;\n t.agrave = 0x00e0;\n t.agujarati = 0x0a85;\n t.agurmukhi = 0x0a05;\n t.ahiragana = 0x3042;\n t.ahookabove = 0x1ea3;\n t.aibengali = 0x0990;\n t.aibopomofo = 0x311e;\n t.aideva = 0x0910;\n t.aiecyrillic = 0x04d5;\n t.aigujarati = 0x0a90;\n t.aigurmukhi = 0x0a10;\n t.aimatragurmukhi = 0x0a48;\n t.ainarabic = 0x0639;\n t.ainfinalarabic = 0xfeca;\n t.aininitialarabic = 0xfecb;\n t.ainmedialarabic = 0xfecc;\n t.ainvertedbreve = 0x0203;\n t.aivowelsignbengali = 0x09c8;\n t.aivowelsigndeva = 0x0948;\n t.aivowelsigngujarati = 0x0ac8;\n t.akatakana = 0x30a2;\n t.akatakanahalfwidth = 0xff71;\n t.akorean = 0x314f;\n t.alef = 0x05d0;\n t.alefarabic = 0x0627;\n t.alefdageshhebrew = 0xfb30;\n t.aleffinalarabic = 0xfe8e;\n t.alefhamzaabovearabic = 0x0623;\n t.alefhamzaabovefinalarabic = 0xfe84;\n t.alefhamzabelowarabic = 0x0625;\n t.alefhamzabelowfinalarabic = 0xfe88;\n t.alefhebrew = 0x05d0;\n t.aleflamedhebrew = 0xfb4f;\n t.alefmaddaabovearabic = 0x0622;\n t.alefmaddaabovefinalarabic = 0xfe82;\n t.alefmaksuraarabic = 0x0649;\n t.alefmaksurafinalarabic = 0xfef0;\n t.alefmaksurainitialarabic = 0xfef3;\n t.alefmaksuramedialarabic = 0xfef4;\n t.alefpatahhebrew = 0xfb2e;\n t.alefqamatshebrew = 0xfb2f;\n t.aleph = 0x2135;\n t.allequal = 0x224c;\n t.alpha = 0x03b1;\n t.alphatonos = 0x03ac;\n t.amacron = 0x0101;\n t.amonospace = 0xff41;\n t.ampersand = 0x0026;\n t.ampersandmonospace = 0xff06;\n t.ampersandsmall = 0xf726;\n t.amsquare = 0x33c2;\n t.anbopomofo = 0x3122;\n t.angbopomofo = 0x3124;\n t.angbracketleft = 0x3008; // Glyph is missing from Adobe's original list.\n t.angbracketright = 0x3009; // Glyph is missing from Adobe's original list.\n t.angkhankhuthai = 0x0e5a;\n t.angle = 0x2220;\n t.anglebracketleft = 0x3008;\n t.anglebracketleftvertical = 0xfe3f;\n t.anglebracketright = 0x3009;\n t.anglebracketrightvertical = 0xfe40;\n t.angleleft = 0x2329;\n t.angleright = 0x232a;\n t.angstrom = 0x212b;\n t.anoteleia = 0x0387;\n t.anudattadeva = 0x0952;\n t.anusvarabengali = 0x0982;\n t.anusvaradeva = 0x0902;\n t.anusvaragujarati = 0x0a82;\n t.aogonek = 0x0105;\n t.apaatosquare = 0x3300;\n t.aparen = 0x249c;\n t.apostrophearmenian = 0x055a;\n t.apostrophemod = 0x02bc;\n t.apple = 0xf8ff;\n t.approaches = 0x2250;\n t.approxequal = 0x2248;\n t.approxequalorimage = 0x2252;\n t.approximatelyequal = 0x2245;\n t.araeaekorean = 0x318e;\n t.araeakorean = 0x318d;\n t.arc = 0x2312;\n t.arighthalfring = 0x1e9a;\n t.aring = 0x00e5;\n t.aringacute = 0x01fb;\n t.aringbelow = 0x1e01;\n t.arrowboth = 0x2194;\n t.arrowdashdown = 0x21e3;\n t.arrowdashleft = 0x21e0;\n t.arrowdashright = 0x21e2;\n t.arrowdashup = 0x21e1;\n t.arrowdblboth = 0x21d4;\n t.arrowdbldown = 0x21d3;\n t.arrowdblleft = 0x21d0;\n t.arrowdblright = 0x21d2;\n t.arrowdblup = 0x21d1;\n t.arrowdown = 0x2193;\n t.arrowdownleft = 0x2199;\n t.arrowdownright = 0x2198;\n t.arrowdownwhite = 0x21e9;\n t.arrowheaddownmod = 0x02c5;\n t.arrowheadleftmod = 0x02c2;\n t.arrowheadrightmod = 0x02c3;\n t.arrowheadupmod = 0x02c4;\n t.arrowhorizex = 0xf8e7;\n t.arrowleft = 0x2190;\n t.arrowleftdbl = 0x21d0;\n t.arrowleftdblstroke = 0x21cd;\n t.arrowleftoverright = 0x21c6;\n t.arrowleftwhite = 0x21e6;\n t.arrowright = 0x2192;\n t.arrowrightdblstroke = 0x21cf;\n t.arrowrightheavy = 0x279e;\n t.arrowrightoverleft = 0x21c4;\n t.arrowrightwhite = 0x21e8;\n t.arrowtableft = 0x21e4;\n t.arrowtabright = 0x21e5;\n t.arrowup = 0x2191;\n t.arrowupdn = 0x2195;\n t.arrowupdnbse = 0x21a8;\n t.arrowupdownbase = 0x21a8;\n t.arrowupleft = 0x2196;\n t.arrowupleftofdown = 0x21c5;\n t.arrowupright = 0x2197;\n t.arrowupwhite = 0x21e7;\n t.arrowvertex = 0xf8e6;\n t.asciicircum = 0x005e;\n t.asciicircummonospace = 0xff3e;\n t.asciitilde = 0x007e;\n t.asciitildemonospace = 0xff5e;\n t.ascript = 0x0251;\n t.ascriptturned = 0x0252;\n t.asmallhiragana = 0x3041;\n t.asmallkatakana = 0x30a1;\n t.asmallkatakanahalfwidth = 0xff67;\n t.asterisk = 0x002a;\n t.asteriskaltonearabic = 0x066d;\n t.asteriskarabic = 0x066d;\n t.asteriskmath = 0x2217;\n t.asteriskmonospace = 0xff0a;\n t.asterisksmall = 0xfe61;\n t.asterism = 0x2042;\n t.asuperior = 0xf6e9;\n t.asymptoticallyequal = 0x2243;\n t.at = 0x0040;\n t.atilde = 0x00e3;\n t.atmonospace = 0xff20;\n t.atsmall = 0xfe6b;\n t.aturned = 0x0250;\n t.aubengali = 0x0994;\n t.aubopomofo = 0x3120;\n t.audeva = 0x0914;\n t.augujarati = 0x0a94;\n t.augurmukhi = 0x0a14;\n t.aulengthmarkbengali = 0x09d7;\n t.aumatragurmukhi = 0x0a4c;\n t.auvowelsignbengali = 0x09cc;\n t.auvowelsigndeva = 0x094c;\n t.auvowelsigngujarati = 0x0acc;\n t.avagrahadeva = 0x093d;\n t.aybarmenian = 0x0561;\n t.ayin = 0x05e2;\n t.ayinaltonehebrew = 0xfb20;\n t.ayinhebrew = 0x05e2;\n t.b = 0x0062;\n t.babengali = 0x09ac;\n t.backslash = 0x005c;\n t.backslashmonospace = 0xff3c;\n t.badeva = 0x092c;\n t.bagujarati = 0x0aac;\n t.bagurmukhi = 0x0a2c;\n t.bahiragana = 0x3070;\n t.bahtthai = 0x0e3f;\n t.bakatakana = 0x30d0;\n t.bar = 0x007c;\n t.barmonospace = 0xff5c;\n t.bbopomofo = 0x3105;\n t.bcircle = 0x24d1;\n t.bdotaccent = 0x1e03;\n t.bdotbelow = 0x1e05;\n t.beamedsixteenthnotes = 0x266c;\n t.because = 0x2235;\n t.becyrillic = 0x0431;\n t.beharabic = 0x0628;\n t.behfinalarabic = 0xfe90;\n t.behinitialarabic = 0xfe91;\n t.behiragana = 0x3079;\n t.behmedialarabic = 0xfe92;\n t.behmeeminitialarabic = 0xfc9f;\n t.behmeemisolatedarabic = 0xfc08;\n t.behnoonfinalarabic = 0xfc6d;\n t.bekatakana = 0x30d9;\n t.benarmenian = 0x0562;\n t.bet = 0x05d1;\n t.beta = 0x03b2;\n t.betasymbolgreek = 0x03d0;\n t.betdagesh = 0xfb31;\n t.betdageshhebrew = 0xfb31;\n t.bethebrew = 0x05d1;\n t.betrafehebrew = 0xfb4c;\n t.bhabengali = 0x09ad;\n t.bhadeva = 0x092d;\n t.bhagujarati = 0x0aad;\n t.bhagurmukhi = 0x0a2d;\n t.bhook = 0x0253;\n t.bihiragana = 0x3073;\n t.bikatakana = 0x30d3;\n t.bilabialclick = 0x0298;\n t.bindigurmukhi = 0x0a02;\n t.birusquare = 0x3331;\n t.blackcircle = 0x25cf;\n t.blackdiamond = 0x25c6;\n t.blackdownpointingtriangle = 0x25bc;\n t.blackleftpointingpointer = 0x25c4;\n t.blackleftpointingtriangle = 0x25c0;\n t.blacklenticularbracketleft = 0x3010;\n t.blacklenticularbracketleftvertical = 0xfe3b;\n t.blacklenticularbracketright = 0x3011;\n t.blacklenticularbracketrightvertical = 0xfe3c;\n t.blacklowerlefttriangle = 0x25e3;\n t.blacklowerrighttriangle = 0x25e2;\n t.blackrectangle = 0x25ac;\n t.blackrightpointingpointer = 0x25ba;\n t.blackrightpointingtriangle = 0x25b6;\n t.blacksmallsquare = 0x25aa;\n t.blacksmilingface = 0x263b;\n t.blacksquare = 0x25a0;\n t.blackstar = 0x2605;\n t.blackupperlefttriangle = 0x25e4;\n t.blackupperrighttriangle = 0x25e5;\n t.blackuppointingsmalltriangle = 0x25b4;\n t.blackuppointingtriangle = 0x25b2;\n t.blank = 0x2423;\n t.blinebelow = 0x1e07;\n t.block = 0x2588;\n t.bmonospace = 0xff42;\n t.bobaimaithai = 0x0e1a;\n t.bohiragana = 0x307c;\n t.bokatakana = 0x30dc;\n t.bparen = 0x249d;\n t.bqsquare = 0x33c3;\n t.braceex = 0xf8f4;\n t.braceleft = 0x007b;\n t.braceleftbt = 0xf8f3;\n t.braceleftmid = 0xf8f2;\n t.braceleftmonospace = 0xff5b;\n t.braceleftsmall = 0xfe5b;\n t.bracelefttp = 0xf8f1;\n t.braceleftvertical = 0xfe37;\n t.braceright = 0x007d;\n t.bracerightbt = 0xf8fe;\n t.bracerightmid = 0xf8fd;\n t.bracerightmonospace = 0xff5d;\n t.bracerightsmall = 0xfe5c;\n t.bracerighttp = 0xf8fc;\n t.bracerightvertical = 0xfe38;\n t.bracketleft = 0x005b;\n t.bracketleftbt = 0xf8f0;\n t.bracketleftex = 0xf8ef;\n t.bracketleftmonospace = 0xff3b;\n t.bracketlefttp = 0xf8ee;\n t.bracketright = 0x005d;\n t.bracketrightbt = 0xf8fb;\n t.bracketrightex = 0xf8fa;\n t.bracketrightmonospace = 0xff3d;\n t.bracketrighttp = 0xf8f9;\n t.breve = 0x02d8;\n t.brevebelowcmb = 0x032e;\n t.brevecmb = 0x0306;\n t.breveinvertedbelowcmb = 0x032f;\n t.breveinvertedcmb = 0x0311;\n t.breveinverteddoublecmb = 0x0361;\n t.bridgebelowcmb = 0x032a;\n t.bridgeinvertedbelowcmb = 0x033a;\n t.brokenbar = 0x00a6;\n t.bstroke = 0x0180;\n t.bsuperior = 0xf6ea;\n t.btopbar = 0x0183;\n t.buhiragana = 0x3076;\n t.bukatakana = 0x30d6;\n t.bullet = 0x2022;\n t.bulletinverse = 0x25d8;\n t.bulletoperator = 0x2219;\n t.bullseye = 0x25ce;\n t.c = 0x0063;\n t.caarmenian = 0x056e;\n t.cabengali = 0x099a;\n t.cacute = 0x0107;\n t.cadeva = 0x091a;\n t.cagujarati = 0x0a9a;\n t.cagurmukhi = 0x0a1a;\n t.calsquare = 0x3388;\n t.candrabindubengali = 0x0981;\n t.candrabinducmb = 0x0310;\n t.candrabindudeva = 0x0901;\n t.candrabindugujarati = 0x0a81;\n t.capslock = 0x21ea;\n t.careof = 0x2105;\n t.caron = 0x02c7;\n t.caronbelowcmb = 0x032c;\n t.caroncmb = 0x030c;\n t.carriagereturn = 0x21b5;\n t.cbopomofo = 0x3118;\n t.ccaron = 0x010d;\n t.ccedilla = 0x00e7;\n t.ccedillaacute = 0x1e09;\n t.ccircle = 0x24d2;\n t.ccircumflex = 0x0109;\n t.ccurl = 0x0255;\n t.cdot = 0x010b;\n t.cdotaccent = 0x010b;\n t.cdsquare = 0x33c5;\n t.cedilla = 0x00b8;\n t.cedillacmb = 0x0327;\n t.cent = 0x00a2;\n t.centigrade = 0x2103;\n t.centinferior = 0xf6df;\n t.centmonospace = 0xffe0;\n t.centoldstyle = 0xf7a2;\n t.centsuperior = 0xf6e0;\n t.chaarmenian = 0x0579;\n t.chabengali = 0x099b;\n t.chadeva = 0x091b;\n t.chagujarati = 0x0a9b;\n t.chagurmukhi = 0x0a1b;\n t.chbopomofo = 0x3114;\n t.cheabkhasiancyrillic = 0x04bd;\n t.checkmark = 0x2713;\n t.checyrillic = 0x0447;\n t.chedescenderabkhasiancyrillic = 0x04bf;\n t.chedescendercyrillic = 0x04b7;\n t.chedieresiscyrillic = 0x04f5;\n t.cheharmenian = 0x0573;\n t.chekhakassiancyrillic = 0x04cc;\n t.cheverticalstrokecyrillic = 0x04b9;\n t.chi = 0x03c7;\n t.chieuchacirclekorean = 0x3277;\n t.chieuchaparenkorean = 0x3217;\n t.chieuchcirclekorean = 0x3269;\n t.chieuchkorean = 0x314a;\n t.chieuchparenkorean = 0x3209;\n t.chochangthai = 0x0e0a;\n t.chochanthai = 0x0e08;\n t.chochingthai = 0x0e09;\n t.chochoethai = 0x0e0c;\n t.chook = 0x0188;\n t.cieucacirclekorean = 0x3276;\n t.cieucaparenkorean = 0x3216;\n t.cieuccirclekorean = 0x3268;\n t.cieuckorean = 0x3148;\n t.cieucparenkorean = 0x3208;\n t.cieucuparenkorean = 0x321c;\n t.circle = 0x25cb;\n t.circlecopyrt = 0x00a9; // Glyph is missing from Adobe's original list.\n t.circlemultiply = 0x2297;\n t.circleot = 0x2299;\n t.circleplus = 0x2295;\n t.circlepostalmark = 0x3036;\n t.circlewithlefthalfblack = 0x25d0;\n t.circlewithrighthalfblack = 0x25d1;\n t.circumflex = 0x02c6;\n t.circumflexbelowcmb = 0x032d;\n t.circumflexcmb = 0x0302;\n t.clear = 0x2327;\n t.clickalveolar = 0x01c2;\n t.clickdental = 0x01c0;\n t.clicklateral = 0x01c1;\n t.clickretroflex = 0x01c3;\n t.club = 0x2663;\n t.clubsuitblack = 0x2663;\n t.clubsuitwhite = 0x2667;\n t.cmcubedsquare = 0x33a4;\n t.cmonospace = 0xff43;\n t.cmsquaredsquare = 0x33a0;\n t.coarmenian = 0x0581;\n t.colon = 0x003a;\n t.colonmonetary = 0x20a1;\n t.colonmonospace = 0xff1a;\n t.colonsign = 0x20a1;\n t.colonsmall = 0xfe55;\n t.colontriangularhalfmod = 0x02d1;\n t.colontriangularmod = 0x02d0;\n t.comma = 0x002c;\n t.commaabovecmb = 0x0313;\n t.commaaboverightcmb = 0x0315;\n t.commaaccent = 0xf6c3;\n t.commaarabic = 0x060c;\n t.commaarmenian = 0x055d;\n t.commainferior = 0xf6e1;\n t.commamonospace = 0xff0c;\n t.commareversedabovecmb = 0x0314;\n t.commareversedmod = 0x02bd;\n t.commasmall = 0xfe50;\n t.commasuperior = 0xf6e2;\n t.commaturnedabovecmb = 0x0312;\n t.commaturnedmod = 0x02bb;\n t.compass = 0x263c;\n t.congruent = 0x2245;\n t.contourintegral = 0x222e;\n t.control = 0x2303;\n t.controlACK = 0x0006;\n t.controlBEL = 0x0007;\n t.controlBS = 0x0008;\n t.controlCAN = 0x0018;\n t.controlCR = 0x000d;\n t.controlDC1 = 0x0011;\n t.controlDC2 = 0x0012;\n t.controlDC3 = 0x0013;\n t.controlDC4 = 0x0014;\n t.controlDEL = 0x007f;\n t.controlDLE = 0x0010;\n t.controlEM = 0x0019;\n t.controlENQ = 0x0005;\n t.controlEOT = 0x0004;\n t.controlESC = 0x001b;\n t.controlETB = 0x0017;\n t.controlETX = 0x0003;\n t.controlFF = 0x000c;\n t.controlFS = 0x001c;\n t.controlGS = 0x001d;\n t.controlHT = 0x0009;\n t.controlLF = 0x000a;\n t.controlNAK = 0x0015;\n t.controlNULL = 0x0000; // Glyph is missing from Adobe's original list.\n t.controlRS = 0x001e;\n t.controlSI = 0x000f;\n t.controlSO = 0x000e;\n t.controlSOT = 0x0002;\n t.controlSTX = 0x0001;\n t.controlSUB = 0x001a;\n t.controlSYN = 0x0016;\n t.controlUS = 0x001f;\n t.controlVT = 0x000b;\n t.copyright = 0x00a9;\n t.copyrightsans = 0xf8e9;\n t.copyrightserif = 0xf6d9;\n t.cornerbracketleft = 0x300c;\n t.cornerbracketlefthalfwidth = 0xff62;\n t.cornerbracketleftvertical = 0xfe41;\n t.cornerbracketright = 0x300d;\n t.cornerbracketrighthalfwidth = 0xff63;\n t.cornerbracketrightvertical = 0xfe42;\n t.corporationsquare = 0x337f;\n t.cosquare = 0x33c7;\n t.coverkgsquare = 0x33c6;\n t.cparen = 0x249e;\n t.cruzeiro = 0x20a2;\n t.cstretched = 0x0297;\n t.curlyand = 0x22cf;\n t.curlyor = 0x22ce;\n t.currency = 0x00a4;\n t.cyrBreve = 0xf6d1;\n t.cyrFlex = 0xf6d2;\n t.cyrbreve = 0xf6d4;\n t.cyrflex = 0xf6d5;\n t.d = 0x0064;\n t.daarmenian = 0x0564;\n t.dabengali = 0x09a6;\n t.dadarabic = 0x0636;\n t.dadeva = 0x0926;\n t.dadfinalarabic = 0xfebe;\n t.dadinitialarabic = 0xfebf;\n t.dadmedialarabic = 0xfec0;\n t.dagesh = 0x05bc;\n t.dageshhebrew = 0x05bc;\n t.dagger = 0x2020;\n t.daggerdbl = 0x2021;\n t.dagujarati = 0x0aa6;\n t.dagurmukhi = 0x0a26;\n t.dahiragana = 0x3060;\n t.dakatakana = 0x30c0;\n t.dalarabic = 0x062f;\n t.dalet = 0x05d3;\n t.daletdagesh = 0xfb33;\n t.daletdageshhebrew = 0xfb33;\n t.dalethebrew = 0x05d3;\n t.dalfinalarabic = 0xfeaa;\n t.dammaarabic = 0x064f;\n t.dammalowarabic = 0x064f;\n t.dammatanaltonearabic = 0x064c;\n t.dammatanarabic = 0x064c;\n t.danda = 0x0964;\n t.dargahebrew = 0x05a7;\n t.dargalefthebrew = 0x05a7;\n t.dasiapneumatacyrilliccmb = 0x0485;\n t.dblGrave = 0xf6d3;\n t.dblanglebracketleft = 0x300a;\n t.dblanglebracketleftvertical = 0xfe3d;\n t.dblanglebracketright = 0x300b;\n t.dblanglebracketrightvertical = 0xfe3e;\n t.dblarchinvertedbelowcmb = 0x032b;\n t.dblarrowleft = 0x21d4;\n t.dblarrowright = 0x21d2;\n t.dbldanda = 0x0965;\n t.dblgrave = 0xf6d6;\n t.dblgravecmb = 0x030f;\n t.dblintegral = 0x222c;\n t.dbllowline = 0x2017;\n t.dbllowlinecmb = 0x0333;\n t.dbloverlinecmb = 0x033f;\n t.dblprimemod = 0x02ba;\n t.dblverticalbar = 0x2016;\n t.dblverticallineabovecmb = 0x030e;\n t.dbopomofo = 0x3109;\n t.dbsquare = 0x33c8;\n t.dcaron = 0x010f;\n t.dcedilla = 0x1e11;\n t.dcircle = 0x24d3;\n t.dcircumflexbelow = 0x1e13;\n t.dcroat = 0x0111;\n t.ddabengali = 0x09a1;\n t.ddadeva = 0x0921;\n t.ddagujarati = 0x0aa1;\n t.ddagurmukhi = 0x0a21;\n t.ddalarabic = 0x0688;\n t.ddalfinalarabic = 0xfb89;\n t.dddhadeva = 0x095c;\n t.ddhabengali = 0x09a2;\n t.ddhadeva = 0x0922;\n t.ddhagujarati = 0x0aa2;\n t.ddhagurmukhi = 0x0a22;\n t.ddotaccent = 0x1e0b;\n t.ddotbelow = 0x1e0d;\n t.decimalseparatorarabic = 0x066b;\n t.decimalseparatorpersian = 0x066b;\n t.decyrillic = 0x0434;\n t.degree = 0x00b0;\n t.dehihebrew = 0x05ad;\n t.dehiragana = 0x3067;\n t.deicoptic = 0x03ef;\n t.dekatakana = 0x30c7;\n t.deleteleft = 0x232b;\n t.deleteright = 0x2326;\n t.delta = 0x03b4;\n t.deltaturned = 0x018d;\n t.denominatorminusonenumeratorbengali = 0x09f8;\n t.dezh = 0x02a4;\n t.dhabengali = 0x09a7;\n t.dhadeva = 0x0927;\n t.dhagujarati = 0x0aa7;\n t.dhagurmukhi = 0x0a27;\n t.dhook = 0x0257;\n t.dialytikatonos = 0x0385;\n t.dialytikatonoscmb = 0x0344;\n t.diamond = 0x2666;\n t.diamondsuitwhite = 0x2662;\n t.dieresis = 0x00a8;\n t.dieresisacute = 0xf6d7;\n t.dieresisbelowcmb = 0x0324;\n t.dieresiscmb = 0x0308;\n t.dieresisgrave = 0xf6d8;\n t.dieresistonos = 0x0385;\n t.dihiragana = 0x3062;\n t.dikatakana = 0x30c2;\n t.dittomark = 0x3003;\n t.divide = 0x00f7;\n t.divides = 0x2223;\n t.divisionslash = 0x2215;\n t.djecyrillic = 0x0452;\n t.dkshade = 0x2593;\n t.dlinebelow = 0x1e0f;\n t.dlsquare = 0x3397;\n t.dmacron = 0x0111;\n t.dmonospace = 0xff44;\n t.dnblock = 0x2584;\n t.dochadathai = 0x0e0e;\n t.dodekthai = 0x0e14;\n t.dohiragana = 0x3069;\n t.dokatakana = 0x30c9;\n t.dollar = 0x0024;\n t.dollarinferior = 0xf6e3;\n t.dollarmonospace = 0xff04;\n t.dollaroldstyle = 0xf724;\n t.dollarsmall = 0xfe69;\n t.dollarsuperior = 0xf6e4;\n t.dong = 0x20ab;\n t.dorusquare = 0x3326;\n t.dotaccent = 0x02d9;\n t.dotaccentcmb = 0x0307;\n t.dotbelowcmb = 0x0323;\n t.dotbelowcomb = 0x0323;\n t.dotkatakana = 0x30fb;\n t.dotlessi = 0x0131;\n t.dotlessj = 0xf6be;\n t.dotlessjstrokehook = 0x0284;\n t.dotmath = 0x22c5;\n t.dottedcircle = 0x25cc;\n t.doubleyodpatah = 0xfb1f;\n t.doubleyodpatahhebrew = 0xfb1f;\n t.downtackbelowcmb = 0x031e;\n t.downtackmod = 0x02d5;\n t.dparen = 0x249f;\n t.dsuperior = 0xf6eb;\n t.dtail = 0x0256;\n t.dtopbar = 0x018c;\n t.duhiragana = 0x3065;\n t.dukatakana = 0x30c5;\n t.dz = 0x01f3;\n t.dzaltone = 0x02a3;\n t.dzcaron = 0x01c6;\n t.dzcurl = 0x02a5;\n t.dzeabkhasiancyrillic = 0x04e1;\n t.dzecyrillic = 0x0455;\n t.dzhecyrillic = 0x045f;\n t.e = 0x0065;\n t.eacute = 0x00e9;\n t.earth = 0x2641;\n t.ebengali = 0x098f;\n t.ebopomofo = 0x311c;\n t.ebreve = 0x0115;\n t.ecandradeva = 0x090d;\n t.ecandragujarati = 0x0a8d;\n t.ecandravowelsigndeva = 0x0945;\n t.ecandravowelsigngujarati = 0x0ac5;\n t.ecaron = 0x011b;\n t.ecedillabreve = 0x1e1d;\n t.echarmenian = 0x0565;\n t.echyiwnarmenian = 0x0587;\n t.ecircle = 0x24d4;\n t.ecircumflex = 0x00ea;\n t.ecircumflexacute = 0x1ebf;\n t.ecircumflexbelow = 0x1e19;\n t.ecircumflexdotbelow = 0x1ec7;\n t.ecircumflexgrave = 0x1ec1;\n t.ecircumflexhookabove = 0x1ec3;\n t.ecircumflextilde = 0x1ec5;\n t.ecyrillic = 0x0454;\n t.edblgrave = 0x0205;\n t.edeva = 0x090f;\n t.edieresis = 0x00eb;\n t.edot = 0x0117;\n t.edotaccent = 0x0117;\n t.edotbelow = 0x1eb9;\n t.eegurmukhi = 0x0a0f;\n t.eematragurmukhi = 0x0a47;\n t.efcyrillic = 0x0444;\n t.egrave = 0x00e8;\n t.egujarati = 0x0a8f;\n t.eharmenian = 0x0567;\n t.ehbopomofo = 0x311d;\n t.ehiragana = 0x3048;\n t.ehookabove = 0x1ebb;\n t.eibopomofo = 0x311f;\n t.eight = 0x0038;\n t.eightarabic = 0x0668;\n t.eightbengali = 0x09ee;\n t.eightcircle = 0x2467;\n t.eightcircleinversesansserif = 0x2791;\n t.eightdeva = 0x096e;\n t.eighteencircle = 0x2471;\n t.eighteenparen = 0x2485;\n t.eighteenperiod = 0x2499;\n t.eightgujarati = 0x0aee;\n t.eightgurmukhi = 0x0a6e;\n t.eighthackarabic = 0x0668;\n t.eighthangzhou = 0x3028;\n t.eighthnotebeamed = 0x266b;\n t.eightideographicparen = 0x3227;\n t.eightinferior = 0x2088;\n t.eightmonospace = 0xff18;\n t.eightoldstyle = 0xf738;\n t.eightparen = 0x247b;\n t.eightperiod = 0x248f;\n t.eightpersian = 0x06f8;\n t.eightroman = 0x2177;\n t.eightsuperior = 0x2078;\n t.eightthai = 0x0e58;\n t.einvertedbreve = 0x0207;\n t.eiotifiedcyrillic = 0x0465;\n t.ekatakana = 0x30a8;\n t.ekatakanahalfwidth = 0xff74;\n t.ekonkargurmukhi = 0x0a74;\n t.ekorean = 0x3154;\n t.elcyrillic = 0x043b;\n t.element = 0x2208;\n t.elevencircle = 0x246a;\n t.elevenparen = 0x247e;\n t.elevenperiod = 0x2492;\n t.elevenroman = 0x217a;\n t.ellipsis = 0x2026;\n t.ellipsisvertical = 0x22ee;\n t.emacron = 0x0113;\n t.emacronacute = 0x1e17;\n t.emacrongrave = 0x1e15;\n t.emcyrillic = 0x043c;\n t.emdash = 0x2014;\n t.emdashvertical = 0xfe31;\n t.emonospace = 0xff45;\n t.emphasismarkarmenian = 0x055b;\n t.emptyset = 0x2205;\n t.enbopomofo = 0x3123;\n t.encyrillic = 0x043d;\n t.endash = 0x2013;\n t.endashvertical = 0xfe32;\n t.endescendercyrillic = 0x04a3;\n t.eng = 0x014b;\n t.engbopomofo = 0x3125;\n t.enghecyrillic = 0x04a5;\n t.enhookcyrillic = 0x04c8;\n t.enspace = 0x2002;\n t.eogonek = 0x0119;\n t.eokorean = 0x3153;\n t.eopen = 0x025b;\n t.eopenclosed = 0x029a;\n t.eopenreversed = 0x025c;\n t.eopenreversedclosed = 0x025e;\n t.eopenreversedhook = 0x025d;\n t.eparen = 0x24a0;\n t.epsilon = 0x03b5;\n t.epsilontonos = 0x03ad;\n t.equal = 0x003d;\n t.equalmonospace = 0xff1d;\n t.equalsmall = 0xfe66;\n t.equalsuperior = 0x207c;\n t.equivalence = 0x2261;\n t.erbopomofo = 0x3126;\n t.ercyrillic = 0x0440;\n t.ereversed = 0x0258;\n t.ereversedcyrillic = 0x044d;\n t.escyrillic = 0x0441;\n t.esdescendercyrillic = 0x04ab;\n t.esh = 0x0283;\n t.eshcurl = 0x0286;\n t.eshortdeva = 0x090e;\n t.eshortvowelsigndeva = 0x0946;\n t.eshreversedloop = 0x01aa;\n t.eshsquatreversed = 0x0285;\n t.esmallhiragana = 0x3047;\n t.esmallkatakana = 0x30a7;\n t.esmallkatakanahalfwidth = 0xff6a;\n t.estimated = 0x212e;\n t.esuperior = 0xf6ec;\n t.eta = 0x03b7;\n t.etarmenian = 0x0568;\n t.etatonos = 0x03ae;\n t.eth = 0x00f0;\n t.etilde = 0x1ebd;\n t.etildebelow = 0x1e1b;\n t.etnahtafoukhhebrew = 0x0591;\n t.etnahtafoukhlefthebrew = 0x0591;\n t.etnahtahebrew = 0x0591;\n t.etnahtalefthebrew = 0x0591;\n t.eturned = 0x01dd;\n t.eukorean = 0x3161;\n t.euro = 0x20ac;\n t.evowelsignbengali = 0x09c7;\n t.evowelsigndeva = 0x0947;\n t.evowelsigngujarati = 0x0ac7;\n t.exclam = 0x0021;\n t.exclamarmenian = 0x055c;\n t.exclamdbl = 0x203c;\n t.exclamdown = 0x00a1;\n t.exclamdownsmall = 0xf7a1;\n t.exclammonospace = 0xff01;\n t.exclamsmall = 0xf721;\n t.existential = 0x2203;\n t.ezh = 0x0292;\n t.ezhcaron = 0x01ef;\n t.ezhcurl = 0x0293;\n t.ezhreversed = 0x01b9;\n t.ezhtail = 0x01ba;\n t.f = 0x0066;\n t.fadeva = 0x095e;\n t.fagurmukhi = 0x0a5e;\n t.fahrenheit = 0x2109;\n t.fathaarabic = 0x064e;\n t.fathalowarabic = 0x064e;\n t.fathatanarabic = 0x064b;\n t.fbopomofo = 0x3108;\n t.fcircle = 0x24d5;\n t.fdotaccent = 0x1e1f;\n t.feharabic = 0x0641;\n t.feharmenian = 0x0586;\n t.fehfinalarabic = 0xfed2;\n t.fehinitialarabic = 0xfed3;\n t.fehmedialarabic = 0xfed4;\n t.feicoptic = 0x03e5;\n t.female = 0x2640;\n t.ff = 0xfb00;\n t.f_f = 0xfb00;\n t.ffi = 0xfb03;\n t.f_f_i = 0xfb03;\n t.ffl = 0xfb04;\n t.f_f_l = 0xfb04;\n t.fi = 0xfb01;\n t.f_i = 0xfb01;\n t.fifteencircle = 0x246e;\n t.fifteenparen = 0x2482;\n t.fifteenperiod = 0x2496;\n t.figuredash = 0x2012;\n t.filledbox = 0x25a0;\n t.filledrect = 0x25ac;\n t.finalkaf = 0x05da;\n t.finalkafdagesh = 0xfb3a;\n t.finalkafdageshhebrew = 0xfb3a;\n t.finalkafhebrew = 0x05da;\n t.finalmem = 0x05dd;\n t.finalmemhebrew = 0x05dd;\n t.finalnun = 0x05df;\n t.finalnunhebrew = 0x05df;\n t.finalpe = 0x05e3;\n t.finalpehebrew = 0x05e3;\n t.finaltsadi = 0x05e5;\n t.finaltsadihebrew = 0x05e5;\n t.firsttonechinese = 0x02c9;\n t.fisheye = 0x25c9;\n t.fitacyrillic = 0x0473;\n t.five = 0x0035;\n t.fivearabic = 0x0665;\n t.fivebengali = 0x09eb;\n t.fivecircle = 0x2464;\n t.fivecircleinversesansserif = 0x278e;\n t.fivedeva = 0x096b;\n t.fiveeighths = 0x215d;\n t.fivegujarati = 0x0aeb;\n t.fivegurmukhi = 0x0a6b;\n t.fivehackarabic = 0x0665;\n t.fivehangzhou = 0x3025;\n t.fiveideographicparen = 0x3224;\n t.fiveinferior = 0x2085;\n t.fivemonospace = 0xff15;\n t.fiveoldstyle = 0xf735;\n t.fiveparen = 0x2478;\n t.fiveperiod = 0x248c;\n t.fivepersian = 0x06f5;\n t.fiveroman = 0x2174;\n t.fivesuperior = 0x2075;\n t.fivethai = 0x0e55;\n t.fl = 0xfb02;\n t.f_l = 0xfb02;\n t.florin = 0x0192;\n t.fmonospace = 0xff46;\n t.fmsquare = 0x3399;\n t.fofanthai = 0x0e1f;\n t.fofathai = 0x0e1d;\n t.fongmanthai = 0x0e4f;\n t.forall = 0x2200;\n t.four = 0x0034;\n t.fourarabic = 0x0664;\n t.fourbengali = 0x09ea;\n t.fourcircle = 0x2463;\n t.fourcircleinversesansserif = 0x278d;\n t.fourdeva = 0x096a;\n t.fourgujarati = 0x0aea;\n t.fourgurmukhi = 0x0a6a;\n t.fourhackarabic = 0x0664;\n t.fourhangzhou = 0x3024;\n t.fourideographicparen = 0x3223;\n t.fourinferior = 0x2084;\n t.fourmonospace = 0xff14;\n t.fournumeratorbengali = 0x09f7;\n t.fouroldstyle = 0xf734;\n t.fourparen = 0x2477;\n t.fourperiod = 0x248b;\n t.fourpersian = 0x06f4;\n t.fourroman = 0x2173;\n t.foursuperior = 0x2074;\n t.fourteencircle = 0x246d;\n t.fourteenparen = 0x2481;\n t.fourteenperiod = 0x2495;\n t.fourthai = 0x0e54;\n t.fourthtonechinese = 0x02cb;\n t.fparen = 0x24a1;\n t.fraction = 0x2044;\n t.franc = 0x20a3;\n t.g = 0x0067;\n t.gabengali = 0x0997;\n t.gacute = 0x01f5;\n t.gadeva = 0x0917;\n t.gafarabic = 0x06af;\n t.gaffinalarabic = 0xfb93;\n t.gafinitialarabic = 0xfb94;\n t.gafmedialarabic = 0xfb95;\n t.gagujarati = 0x0a97;\n t.gagurmukhi = 0x0a17;\n t.gahiragana = 0x304c;\n t.gakatakana = 0x30ac;\n t.gamma = 0x03b3;\n t.gammalatinsmall = 0x0263;\n t.gammasuperior = 0x02e0;\n t.gangiacoptic = 0x03eb;\n t.gbopomofo = 0x310d;\n t.gbreve = 0x011f;\n t.gcaron = 0x01e7;\n t.gcedilla = 0x0123;\n t.gcircle = 0x24d6;\n t.gcircumflex = 0x011d;\n t.gcommaaccent = 0x0123;\n t.gdot = 0x0121;\n t.gdotaccent = 0x0121;\n t.gecyrillic = 0x0433;\n t.gehiragana = 0x3052;\n t.gekatakana = 0x30b2;\n t.geometricallyequal = 0x2251;\n t.gereshaccenthebrew = 0x059c;\n t.gereshhebrew = 0x05f3;\n t.gereshmuqdamhebrew = 0x059d;\n t.germandbls = 0x00df;\n t.gershayimaccenthebrew = 0x059e;\n t.gershayimhebrew = 0x05f4;\n t.getamark = 0x3013;\n t.ghabengali = 0x0998;\n t.ghadarmenian = 0x0572;\n t.ghadeva = 0x0918;\n t.ghagujarati = 0x0a98;\n t.ghagurmukhi = 0x0a18;\n t.ghainarabic = 0x063a;\n t.ghainfinalarabic = 0xfece;\n t.ghaininitialarabic = 0xfecf;\n t.ghainmedialarabic = 0xfed0;\n t.ghemiddlehookcyrillic = 0x0495;\n t.ghestrokecyrillic = 0x0493;\n t.gheupturncyrillic = 0x0491;\n t.ghhadeva = 0x095a;\n t.ghhagurmukhi = 0x0a5a;\n t.ghook = 0x0260;\n t.ghzsquare = 0x3393;\n t.gihiragana = 0x304e;\n t.gikatakana = 0x30ae;\n t.gimarmenian = 0x0563;\n t.gimel = 0x05d2;\n t.gimeldagesh = 0xfb32;\n t.gimeldageshhebrew = 0xfb32;\n t.gimelhebrew = 0x05d2;\n t.gjecyrillic = 0x0453;\n t.glottalinvertedstroke = 0x01be;\n t.glottalstop = 0x0294;\n t.glottalstopinverted = 0x0296;\n t.glottalstopmod = 0x02c0;\n t.glottalstopreversed = 0x0295;\n t.glottalstopreversedmod = 0x02c1;\n t.glottalstopreversedsuperior = 0x02e4;\n t.glottalstopstroke = 0x02a1;\n t.glottalstopstrokereversed = 0x02a2;\n t.gmacron = 0x1e21;\n t.gmonospace = 0xff47;\n t.gohiragana = 0x3054;\n t.gokatakana = 0x30b4;\n t.gparen = 0x24a2;\n t.gpasquare = 0x33ac;\n t.gradient = 0x2207;\n t.grave = 0x0060;\n t.gravebelowcmb = 0x0316;\n t.gravecmb = 0x0300;\n t.gravecomb = 0x0300;\n t.gravedeva = 0x0953;\n t.gravelowmod = 0x02ce;\n t.gravemonospace = 0xff40;\n t.gravetonecmb = 0x0340;\n t.greater = 0x003e;\n t.greaterequal = 0x2265;\n t.greaterequalorless = 0x22db;\n t.greatermonospace = 0xff1e;\n t.greaterorequivalent = 0x2273;\n t.greaterorless = 0x2277;\n t.greateroverequal = 0x2267;\n t.greatersmall = 0xfe65;\n t.gscript = 0x0261;\n t.gstroke = 0x01e5;\n t.guhiragana = 0x3050;\n t.guillemotleft = 0x00ab;\n t.guillemotright = 0x00bb;\n t.guilsinglleft = 0x2039;\n t.guilsinglright = 0x203a;\n t.gukatakana = 0x30b0;\n t.guramusquare = 0x3318;\n t.gysquare = 0x33c9;\n t.h = 0x0068;\n t.haabkhasiancyrillic = 0x04a9;\n t.haaltonearabic = 0x06c1;\n t.habengali = 0x09b9;\n t.hadescendercyrillic = 0x04b3;\n t.hadeva = 0x0939;\n t.hagujarati = 0x0ab9;\n t.hagurmukhi = 0x0a39;\n t.haharabic = 0x062d;\n t.hahfinalarabic = 0xfea2;\n t.hahinitialarabic = 0xfea3;\n t.hahiragana = 0x306f;\n t.hahmedialarabic = 0xfea4;\n t.haitusquare = 0x332a;\n t.hakatakana = 0x30cf;\n t.hakatakanahalfwidth = 0xff8a;\n t.halantgurmukhi = 0x0a4d;\n t.hamzaarabic = 0x0621;\n t.hamzalowarabic = 0x0621;\n t.hangulfiller = 0x3164;\n t.hardsigncyrillic = 0x044a;\n t.harpoonleftbarbup = 0x21bc;\n t.harpoonrightbarbup = 0x21c0;\n t.hasquare = 0x33ca;\n t.hatafpatah = 0x05b2;\n t.hatafpatah16 = 0x05b2;\n t.hatafpatah23 = 0x05b2;\n t.hatafpatah2f = 0x05b2;\n t.hatafpatahhebrew = 0x05b2;\n t.hatafpatahnarrowhebrew = 0x05b2;\n t.hatafpatahquarterhebrew = 0x05b2;\n t.hatafpatahwidehebrew = 0x05b2;\n t.hatafqamats = 0x05b3;\n t.hatafqamats1b = 0x05b3;\n t.hatafqamats28 = 0x05b3;\n t.hatafqamats34 = 0x05b3;\n t.hatafqamatshebrew = 0x05b3;\n t.hatafqamatsnarrowhebrew = 0x05b3;\n t.hatafqamatsquarterhebrew = 0x05b3;\n t.hatafqamatswidehebrew = 0x05b3;\n t.hatafsegol = 0x05b1;\n t.hatafsegol17 = 0x05b1;\n t.hatafsegol24 = 0x05b1;\n t.hatafsegol30 = 0x05b1;\n t.hatafsegolhebrew = 0x05b1;\n t.hatafsegolnarrowhebrew = 0x05b1;\n t.hatafsegolquarterhebrew = 0x05b1;\n t.hatafsegolwidehebrew = 0x05b1;\n t.hbar = 0x0127;\n t.hbopomofo = 0x310f;\n t.hbrevebelow = 0x1e2b;\n t.hcedilla = 0x1e29;\n t.hcircle = 0x24d7;\n t.hcircumflex = 0x0125;\n t.hdieresis = 0x1e27;\n t.hdotaccent = 0x1e23;\n t.hdotbelow = 0x1e25;\n t.he = 0x05d4;\n t.heart = 0x2665;\n t.heartsuitblack = 0x2665;\n t.heartsuitwhite = 0x2661;\n t.hedagesh = 0xfb34;\n t.hedageshhebrew = 0xfb34;\n t.hehaltonearabic = 0x06c1;\n t.heharabic = 0x0647;\n t.hehebrew = 0x05d4;\n t.hehfinalaltonearabic = 0xfba7;\n t.hehfinalalttwoarabic = 0xfeea;\n t.hehfinalarabic = 0xfeea;\n t.hehhamzaabovefinalarabic = 0xfba5;\n t.hehhamzaaboveisolatedarabic = 0xfba4;\n t.hehinitialaltonearabic = 0xfba8;\n t.hehinitialarabic = 0xfeeb;\n t.hehiragana = 0x3078;\n t.hehmedialaltonearabic = 0xfba9;\n t.hehmedialarabic = 0xfeec;\n t.heiseierasquare = 0x337b;\n t.hekatakana = 0x30d8;\n t.hekatakanahalfwidth = 0xff8d;\n t.hekutaarusquare = 0x3336;\n t.henghook = 0x0267;\n t.herutusquare = 0x3339;\n t.het = 0x05d7;\n t.hethebrew = 0x05d7;\n t.hhook = 0x0266;\n t.hhooksuperior = 0x02b1;\n t.hieuhacirclekorean = 0x327b;\n t.hieuhaparenkorean = 0x321b;\n t.hieuhcirclekorean = 0x326d;\n t.hieuhkorean = 0x314e;\n t.hieuhparenkorean = 0x320d;\n t.hihiragana = 0x3072;\n t.hikatakana = 0x30d2;\n t.hikatakanahalfwidth = 0xff8b;\n t.hiriq = 0x05b4;\n t.hiriq14 = 0x05b4;\n t.hiriq21 = 0x05b4;\n t.hiriq2d = 0x05b4;\n t.hiriqhebrew = 0x05b4;\n t.hiriqnarrowhebrew = 0x05b4;\n t.hiriqquarterhebrew = 0x05b4;\n t.hiriqwidehebrew = 0x05b4;\n t.hlinebelow = 0x1e96;\n t.hmonospace = 0xff48;\n t.hoarmenian = 0x0570;\n t.hohipthai = 0x0e2b;\n t.hohiragana = 0x307b;\n t.hokatakana = 0x30db;\n t.hokatakanahalfwidth = 0xff8e;\n t.holam = 0x05b9;\n t.holam19 = 0x05b9;\n t.holam26 = 0x05b9;\n t.holam32 = 0x05b9;\n t.holamhebrew = 0x05b9;\n t.holamnarrowhebrew = 0x05b9;\n t.holamquarterhebrew = 0x05b9;\n t.holamwidehebrew = 0x05b9;\n t.honokhukthai = 0x0e2e;\n t.hookabovecomb = 0x0309;\n t.hookcmb = 0x0309;\n t.hookpalatalizedbelowcmb = 0x0321;\n t.hookretroflexbelowcmb = 0x0322;\n t.hoonsquare = 0x3342;\n t.horicoptic = 0x03e9;\n t.horizontalbar = 0x2015;\n t.horncmb = 0x031b;\n t.hotsprings = 0x2668;\n t.house = 0x2302;\n t.hparen = 0x24a3;\n t.hsuperior = 0x02b0;\n t.hturned = 0x0265;\n t.huhiragana = 0x3075;\n t.huiitosquare = 0x3333;\n t.hukatakana = 0x30d5;\n t.hukatakanahalfwidth = 0xff8c;\n t.hungarumlaut = 0x02dd;\n t.hungarumlautcmb = 0x030b;\n t.hv = 0x0195;\n t.hyphen = 0x002d;\n t.hypheninferior = 0xf6e5;\n t.hyphenmonospace = 0xff0d;\n t.hyphensmall = 0xfe63;\n t.hyphensuperior = 0xf6e6;\n t.hyphentwo = 0x2010;\n t.i = 0x0069;\n t.iacute = 0x00ed;\n t.iacyrillic = 0x044f;\n t.ibengali = 0x0987;\n t.ibopomofo = 0x3127;\n t.ibreve = 0x012d;\n t.icaron = 0x01d0;\n t.icircle = 0x24d8;\n t.icircumflex = 0x00ee;\n t.icyrillic = 0x0456;\n t.idblgrave = 0x0209;\n t.ideographearthcircle = 0x328f;\n t.ideographfirecircle = 0x328b;\n t.ideographicallianceparen = 0x323f;\n t.ideographiccallparen = 0x323a;\n t.ideographiccentrecircle = 0x32a5;\n t.ideographicclose = 0x3006;\n t.ideographiccomma = 0x3001;\n t.ideographiccommaleft = 0xff64;\n t.ideographiccongratulationparen = 0x3237;\n t.ideographiccorrectcircle = 0x32a3;\n t.ideographicearthparen = 0x322f;\n t.ideographicenterpriseparen = 0x323d;\n t.ideographicexcellentcircle = 0x329d;\n t.ideographicfestivalparen = 0x3240;\n t.ideographicfinancialcircle = 0x3296;\n t.ideographicfinancialparen = 0x3236;\n t.ideographicfireparen = 0x322b;\n t.ideographichaveparen = 0x3232;\n t.ideographichighcircle = 0x32a4;\n t.ideographiciterationmark = 0x3005;\n t.ideographiclaborcircle = 0x3298;\n t.ideographiclaborparen = 0x3238;\n t.ideographicleftcircle = 0x32a7;\n t.ideographiclowcircle = 0x32a6;\n t.ideographicmedicinecircle = 0x32a9;\n t.ideographicmetalparen = 0x322e;\n t.ideographicmoonparen = 0x322a;\n t.ideographicnameparen = 0x3234;\n t.ideographicperiod = 0x3002;\n t.ideographicprintcircle = 0x329e;\n t.ideographicreachparen = 0x3243;\n t.ideographicrepresentparen = 0x3239;\n t.ideographicresourceparen = 0x323e;\n t.ideographicrightcircle = 0x32a8;\n t.ideographicsecretcircle = 0x3299;\n t.ideographicselfparen = 0x3242;\n t.ideographicsocietyparen = 0x3233;\n t.ideographicspace = 0x3000;\n t.ideographicspecialparen = 0x3235;\n t.ideographicstockparen = 0x3231;\n t.ideographicstudyparen = 0x323b;\n t.ideographicsunparen = 0x3230;\n t.ideographicsuperviseparen = 0x323c;\n t.ideographicwaterparen = 0x322c;\n t.ideographicwoodparen = 0x322d;\n t.ideographiczero = 0x3007;\n t.ideographmetalcircle = 0x328e;\n t.ideographmooncircle = 0x328a;\n t.ideographnamecircle = 0x3294;\n t.ideographsuncircle = 0x3290;\n t.ideographwatercircle = 0x328c;\n t.ideographwoodcircle = 0x328d;\n t.ideva = 0x0907;\n t.idieresis = 0x00ef;\n t.idieresisacute = 0x1e2f;\n t.idieresiscyrillic = 0x04e5;\n t.idotbelow = 0x1ecb;\n t.iebrevecyrillic = 0x04d7;\n t.iecyrillic = 0x0435;\n t.ieungacirclekorean = 0x3275;\n t.ieungaparenkorean = 0x3215;\n t.ieungcirclekorean = 0x3267;\n t.ieungkorean = 0x3147;\n t.ieungparenkorean = 0x3207;\n t.igrave = 0x00ec;\n t.igujarati = 0x0a87;\n t.igurmukhi = 0x0a07;\n t.ihiragana = 0x3044;\n t.ihookabove = 0x1ec9;\n t.iibengali = 0x0988;\n t.iicyrillic = 0x0438;\n t.iideva = 0x0908;\n t.iigujarati = 0x0a88;\n t.iigurmukhi = 0x0a08;\n t.iimatragurmukhi = 0x0a40;\n t.iinvertedbreve = 0x020b;\n t.iishortcyrillic = 0x0439;\n t.iivowelsignbengali = 0x09c0;\n t.iivowelsigndeva = 0x0940;\n t.iivowelsigngujarati = 0x0ac0;\n t.ij = 0x0133;\n t.ikatakana = 0x30a4;\n t.ikatakanahalfwidth = 0xff72;\n t.ikorean = 0x3163;\n t.ilde = 0x02dc;\n t.iluyhebrew = 0x05ac;\n t.imacron = 0x012b;\n t.imacroncyrillic = 0x04e3;\n t.imageorapproximatelyequal = 0x2253;\n t.imatragurmukhi = 0x0a3f;\n t.imonospace = 0xff49;\n t.increment = 0x2206;\n t.infinity = 0x221e;\n t.iniarmenian = 0x056b;\n t.integral = 0x222b;\n t.integralbottom = 0x2321;\n t.integralbt = 0x2321;\n t.integralex = 0xf8f5;\n t.integraltop = 0x2320;\n t.integraltp = 0x2320;\n t.intersection = 0x2229;\n t.intisquare = 0x3305;\n t.invbullet = 0x25d8;\n t.invcircle = 0x25d9;\n t.invsmileface = 0x263b;\n t.iocyrillic = 0x0451;\n t.iogonek = 0x012f;\n t.iota = 0x03b9;\n t.iotadieresis = 0x03ca;\n t.iotadieresistonos = 0x0390;\n t.iotalatin = 0x0269;\n t.iotatonos = 0x03af;\n t.iparen = 0x24a4;\n t.irigurmukhi = 0x0a72;\n t.ismallhiragana = 0x3043;\n t.ismallkatakana = 0x30a3;\n t.ismallkatakanahalfwidth = 0xff68;\n t.issharbengali = 0x09fa;\n t.istroke = 0x0268;\n t.isuperior = 0xf6ed;\n t.iterationhiragana = 0x309d;\n t.iterationkatakana = 0x30fd;\n t.itilde = 0x0129;\n t.itildebelow = 0x1e2d;\n t.iubopomofo = 0x3129;\n t.iucyrillic = 0x044e;\n t.ivowelsignbengali = 0x09bf;\n t.ivowelsigndeva = 0x093f;\n t.ivowelsigngujarati = 0x0abf;\n t.izhitsacyrillic = 0x0475;\n t.izhitsadblgravecyrillic = 0x0477;\n t.j = 0x006a;\n t.jaarmenian = 0x0571;\n t.jabengali = 0x099c;\n t.jadeva = 0x091c;\n t.jagujarati = 0x0a9c;\n t.jagurmukhi = 0x0a1c;\n t.jbopomofo = 0x3110;\n t.jcaron = 0x01f0;\n t.jcircle = 0x24d9;\n t.jcircumflex = 0x0135;\n t.jcrossedtail = 0x029d;\n t.jdotlessstroke = 0x025f;\n t.jecyrillic = 0x0458;\n t.jeemarabic = 0x062c;\n t.jeemfinalarabic = 0xfe9e;\n t.jeeminitialarabic = 0xfe9f;\n t.jeemmedialarabic = 0xfea0;\n t.jeharabic = 0x0698;\n t.jehfinalarabic = 0xfb8b;\n t.jhabengali = 0x099d;\n t.jhadeva = 0x091d;\n t.jhagujarati = 0x0a9d;\n t.jhagurmukhi = 0x0a1d;\n t.jheharmenian = 0x057b;\n t.jis = 0x3004;\n t.jmonospace = 0xff4a;\n t.jparen = 0x24a5;\n t.jsuperior = 0x02b2;\n t.k = 0x006b;\n t.kabashkircyrillic = 0x04a1;\n t.kabengali = 0x0995;\n t.kacute = 0x1e31;\n t.kacyrillic = 0x043a;\n t.kadescendercyrillic = 0x049b;\n t.kadeva = 0x0915;\n t.kaf = 0x05db;\n t.kafarabic = 0x0643;\n t.kafdagesh = 0xfb3b;\n t.kafdageshhebrew = 0xfb3b;\n t.kaffinalarabic = 0xfeda;\n t.kafhebrew = 0x05db;\n t.kafinitialarabic = 0xfedb;\n t.kafmedialarabic = 0xfedc;\n t.kafrafehebrew = 0xfb4d;\n t.kagujarati = 0x0a95;\n t.kagurmukhi = 0x0a15;\n t.kahiragana = 0x304b;\n t.kahookcyrillic = 0x04c4;\n t.kakatakana = 0x30ab;\n t.kakatakanahalfwidth = 0xff76;\n t.kappa = 0x03ba;\n t.kappasymbolgreek = 0x03f0;\n t.kapyeounmieumkorean = 0x3171;\n t.kapyeounphieuphkorean = 0x3184;\n t.kapyeounpieupkorean = 0x3178;\n t.kapyeounssangpieupkorean = 0x3179;\n t.karoriisquare = 0x330d;\n t.kashidaautoarabic = 0x0640;\n t.kashidaautonosidebearingarabic = 0x0640;\n t.kasmallkatakana = 0x30f5;\n t.kasquare = 0x3384;\n t.kasraarabic = 0x0650;\n t.kasratanarabic = 0x064d;\n t.kastrokecyrillic = 0x049f;\n t.katahiraprolongmarkhalfwidth = 0xff70;\n t.kaverticalstrokecyrillic = 0x049d;\n t.kbopomofo = 0x310e;\n t.kcalsquare = 0x3389;\n t.kcaron = 0x01e9;\n t.kcedilla = 0x0137;\n t.kcircle = 0x24da;\n t.kcommaaccent = 0x0137;\n t.kdotbelow = 0x1e33;\n t.keharmenian = 0x0584;\n t.kehiragana = 0x3051;\n t.kekatakana = 0x30b1;\n t.kekatakanahalfwidth = 0xff79;\n t.kenarmenian = 0x056f;\n t.kesmallkatakana = 0x30f6;\n t.kgreenlandic = 0x0138;\n t.khabengali = 0x0996;\n t.khacyrillic = 0x0445;\n t.khadeva = 0x0916;\n t.khagujarati = 0x0a96;\n t.khagurmukhi = 0x0a16;\n t.khaharabic = 0x062e;\n t.khahfinalarabic = 0xfea6;\n t.khahinitialarabic = 0xfea7;\n t.khahmedialarabic = 0xfea8;\n t.kheicoptic = 0x03e7;\n t.khhadeva = 0x0959;\n t.khhagurmukhi = 0x0a59;\n t.khieukhacirclekorean = 0x3278;\n t.khieukhaparenkorean = 0x3218;\n t.khieukhcirclekorean = 0x326a;\n t.khieukhkorean = 0x314b;\n t.khieukhparenkorean = 0x320a;\n t.khokhaithai = 0x0e02;\n t.khokhonthai = 0x0e05;\n t.khokhuatthai = 0x0e03;\n t.khokhwaithai = 0x0e04;\n t.khomutthai = 0x0e5b;\n t.khook = 0x0199;\n t.khorakhangthai = 0x0e06;\n t.khzsquare = 0x3391;\n t.kihiragana = 0x304d;\n t.kikatakana = 0x30ad;\n t.kikatakanahalfwidth = 0xff77;\n t.kiroguramusquare = 0x3315;\n t.kiromeetorusquare = 0x3316;\n t.kirosquare = 0x3314;\n t.kiyeokacirclekorean = 0x326e;\n t.kiyeokaparenkorean = 0x320e;\n t.kiyeokcirclekorean = 0x3260;\n t.kiyeokkorean = 0x3131;\n t.kiyeokparenkorean = 0x3200;\n t.kiyeoksioskorean = 0x3133;\n t.kjecyrillic = 0x045c;\n t.klinebelow = 0x1e35;\n t.klsquare = 0x3398;\n t.kmcubedsquare = 0x33a6;\n t.kmonospace = 0xff4b;\n t.kmsquaredsquare = 0x33a2;\n t.kohiragana = 0x3053;\n t.kohmsquare = 0x33c0;\n t.kokaithai = 0x0e01;\n t.kokatakana = 0x30b3;\n t.kokatakanahalfwidth = 0xff7a;\n t.kooposquare = 0x331e;\n t.koppacyrillic = 0x0481;\n t.koreanstandardsymbol = 0x327f;\n t.koroniscmb = 0x0343;\n t.kparen = 0x24a6;\n t.kpasquare = 0x33aa;\n t.ksicyrillic = 0x046f;\n t.ktsquare = 0x33cf;\n t.kturned = 0x029e;\n t.kuhiragana = 0x304f;\n t.kukatakana = 0x30af;\n t.kukatakanahalfwidth = 0xff78;\n t.kvsquare = 0x33b8;\n t.kwsquare = 0x33be;\n t.l = 0x006c;\n t.labengali = 0x09b2;\n t.lacute = 0x013a;\n t.ladeva = 0x0932;\n t.lagujarati = 0x0ab2;\n t.lagurmukhi = 0x0a32;\n t.lakkhangyaothai = 0x0e45;\n t.lamaleffinalarabic = 0xfefc;\n t.lamalefhamzaabovefinalarabic = 0xfef8;\n t.lamalefhamzaaboveisolatedarabic = 0xfef7;\n t.lamalefhamzabelowfinalarabic = 0xfefa;\n t.lamalefhamzabelowisolatedarabic = 0xfef9;\n t.lamalefisolatedarabic = 0xfefb;\n t.lamalefmaddaabovefinalarabic = 0xfef6;\n t.lamalefmaddaaboveisolatedarabic = 0xfef5;\n t.lamarabic = 0x0644;\n t.lambda = 0x03bb;\n t.lambdastroke = 0x019b;\n t.lamed = 0x05dc;\n t.lameddagesh = 0xfb3c;\n t.lameddageshhebrew = 0xfb3c;\n t.lamedhebrew = 0x05dc;\n t.lamfinalarabic = 0xfede;\n t.lamhahinitialarabic = 0xfcca;\n t.laminitialarabic = 0xfedf;\n t.lamjeeminitialarabic = 0xfcc9;\n t.lamkhahinitialarabic = 0xfccb;\n t.lamlamhehisolatedarabic = 0xfdf2;\n t.lammedialarabic = 0xfee0;\n t.lammeemhahinitialarabic = 0xfd88;\n t.lammeeminitialarabic = 0xfccc;\n t.largecircle = 0x25ef;\n t.lbar = 0x019a;\n t.lbelt = 0x026c;\n t.lbopomofo = 0x310c;\n t.lcaron = 0x013e;\n t.lcedilla = 0x013c;\n t.lcircle = 0x24db;\n t.lcircumflexbelow = 0x1e3d;\n t.lcommaaccent = 0x013c;\n t.ldot = 0x0140;\n t.ldotaccent = 0x0140;\n t.ldotbelow = 0x1e37;\n t.ldotbelowmacron = 0x1e39;\n t.leftangleabovecmb = 0x031a;\n t.lefttackbelowcmb = 0x0318;\n t.less = 0x003c;\n t.lessequal = 0x2264;\n t.lessequalorgreater = 0x22da;\n t.lessmonospace = 0xff1c;\n t.lessorequivalent = 0x2272;\n t.lessorgreater = 0x2276;\n t.lessoverequal = 0x2266;\n t.lesssmall = 0xfe64;\n t.lezh = 0x026e;\n t.lfblock = 0x258c;\n t.lhookretroflex = 0x026d;\n t.lira = 0x20a4;\n t.liwnarmenian = 0x056c;\n t.lj = 0x01c9;\n t.ljecyrillic = 0x0459;\n t.ll = 0xf6c0;\n t.lladeva = 0x0933;\n t.llagujarati = 0x0ab3;\n t.llinebelow = 0x1e3b;\n t.llladeva = 0x0934;\n t.llvocalicbengali = 0x09e1;\n t.llvocalicdeva = 0x0961;\n t.llvocalicvowelsignbengali = 0x09e3;\n t.llvocalicvowelsigndeva = 0x0963;\n t.lmiddletilde = 0x026b;\n t.lmonospace = 0xff4c;\n t.lmsquare = 0x33d0;\n t.lochulathai = 0x0e2c;\n t.logicaland = 0x2227;\n t.logicalnot = 0x00ac;\n t.logicalnotreversed = 0x2310;\n t.logicalor = 0x2228;\n t.lolingthai = 0x0e25;\n t.longs = 0x017f;\n t.lowlinecenterline = 0xfe4e;\n t.lowlinecmb = 0x0332;\n t.lowlinedashed = 0xfe4d;\n t.lozenge = 0x25ca;\n t.lparen = 0x24a7;\n t.lslash = 0x0142;\n t.lsquare = 0x2113;\n t.lsuperior = 0xf6ee;\n t.ltshade = 0x2591;\n t.luthai = 0x0e26;\n t.lvocalicbengali = 0x098c;\n t.lvocalicdeva = 0x090c;\n t.lvocalicvowelsignbengali = 0x09e2;\n t.lvocalicvowelsigndeva = 0x0962;\n t.lxsquare = 0x33d3;\n t.m = 0x006d;\n t.mabengali = 0x09ae;\n t.macron = 0x00af;\n t.macronbelowcmb = 0x0331;\n t.macroncmb = 0x0304;\n t.macronlowmod = 0x02cd;\n t.macronmonospace = 0xffe3;\n t.macute = 0x1e3f;\n t.madeva = 0x092e;\n t.magujarati = 0x0aae;\n t.magurmukhi = 0x0a2e;\n t.mahapakhhebrew = 0x05a4;\n t.mahapakhlefthebrew = 0x05a4;\n t.mahiragana = 0x307e;\n t.maichattawalowleftthai = 0xf895;\n t.maichattawalowrightthai = 0xf894;\n t.maichattawathai = 0x0e4b;\n t.maichattawaupperleftthai = 0xf893;\n t.maieklowleftthai = 0xf88c;\n t.maieklowrightthai = 0xf88b;\n t.maiekthai = 0x0e48;\n t.maiekupperleftthai = 0xf88a;\n t.maihanakatleftthai = 0xf884;\n t.maihanakatthai = 0x0e31;\n t.maitaikhuleftthai = 0xf889;\n t.maitaikhuthai = 0x0e47;\n t.maitholowleftthai = 0xf88f;\n t.maitholowrightthai = 0xf88e;\n t.maithothai = 0x0e49;\n t.maithoupperleftthai = 0xf88d;\n t.maitrilowleftthai = 0xf892;\n t.maitrilowrightthai = 0xf891;\n t.maitrithai = 0x0e4a;\n t.maitriupperleftthai = 0xf890;\n t.maiyamokthai = 0x0e46;\n t.makatakana = 0x30de;\n t.makatakanahalfwidth = 0xff8f;\n t.male = 0x2642;\n t.mansyonsquare = 0x3347;\n t.maqafhebrew = 0x05be;\n t.mars = 0x2642;\n t.masoracirclehebrew = 0x05af;\n t.masquare = 0x3383;\n t.mbopomofo = 0x3107;\n t.mbsquare = 0x33d4;\n t.mcircle = 0x24dc;\n t.mcubedsquare = 0x33a5;\n t.mdotaccent = 0x1e41;\n t.mdotbelow = 0x1e43;\n t.meemarabic = 0x0645;\n t.meemfinalarabic = 0xfee2;\n t.meeminitialarabic = 0xfee3;\n t.meemmedialarabic = 0xfee4;\n t.meemmeeminitialarabic = 0xfcd1;\n t.meemmeemisolatedarabic = 0xfc48;\n t.meetorusquare = 0x334d;\n t.mehiragana = 0x3081;\n t.meizierasquare = 0x337e;\n t.mekatakana = 0x30e1;\n t.mekatakanahalfwidth = 0xff92;\n t.mem = 0x05de;\n t.memdagesh = 0xfb3e;\n t.memdageshhebrew = 0xfb3e;\n t.memhebrew = 0x05de;\n t.menarmenian = 0x0574;\n t.merkhahebrew = 0x05a5;\n t.merkhakefulahebrew = 0x05a6;\n t.merkhakefulalefthebrew = 0x05a6;\n t.merkhalefthebrew = 0x05a5;\n t.mhook = 0x0271;\n t.mhzsquare = 0x3392;\n t.middledotkatakanahalfwidth = 0xff65;\n t.middot = 0x00b7;\n t.mieumacirclekorean = 0x3272;\n t.mieumaparenkorean = 0x3212;\n t.mieumcirclekorean = 0x3264;\n t.mieumkorean = 0x3141;\n t.mieumpansioskorean = 0x3170;\n t.mieumparenkorean = 0x3204;\n t.mieumpieupkorean = 0x316e;\n t.mieumsioskorean = 0x316f;\n t.mihiragana = 0x307f;\n t.mikatakana = 0x30df;\n t.mikatakanahalfwidth = 0xff90;\n t.minus = 0x2212;\n t.minusbelowcmb = 0x0320;\n t.minuscircle = 0x2296;\n t.minusmod = 0x02d7;\n t.minusplus = 0x2213;\n t.minute = 0x2032;\n t.miribaarusquare = 0x334a;\n t.mirisquare = 0x3349;\n t.mlonglegturned = 0x0270;\n t.mlsquare = 0x3396;\n t.mmcubedsquare = 0x33a3;\n t.mmonospace = 0xff4d;\n t.mmsquaredsquare = 0x339f;\n t.mohiragana = 0x3082;\n t.mohmsquare = 0x33c1;\n t.mokatakana = 0x30e2;\n t.mokatakanahalfwidth = 0xff93;\n t.molsquare = 0x33d6;\n t.momathai = 0x0e21;\n t.moverssquare = 0x33a7;\n t.moverssquaredsquare = 0x33a8;\n t.mparen = 0x24a8;\n t.mpasquare = 0x33ab;\n t.mssquare = 0x33b3;\n t.msuperior = 0xf6ef;\n t.mturned = 0x026f;\n t.mu = 0x00b5;\n t.mu1 = 0x00b5;\n t.muasquare = 0x3382;\n t.muchgreater = 0x226b;\n t.muchless = 0x226a;\n t.mufsquare = 0x338c;\n t.mugreek = 0x03bc;\n t.mugsquare = 0x338d;\n t.muhiragana = 0x3080;\n t.mukatakana = 0x30e0;\n t.mukatakanahalfwidth = 0xff91;\n t.mulsquare = 0x3395;\n t.multiply = 0x00d7;\n t.mumsquare = 0x339b;\n t.munahhebrew = 0x05a3;\n t.munahlefthebrew = 0x05a3;\n t.musicalnote = 0x266a;\n t.musicalnotedbl = 0x266b;\n t.musicflatsign = 0x266d;\n t.musicsharpsign = 0x266f;\n t.mussquare = 0x33b2;\n t.muvsquare = 0x33b6;\n t.muwsquare = 0x33bc;\n t.mvmegasquare = 0x33b9;\n t.mvsquare = 0x33b7;\n t.mwmegasquare = 0x33bf;\n t.mwsquare = 0x33bd;\n t.n = 0x006e;\n t.nabengali = 0x09a8;\n t.nabla = 0x2207;\n t.nacute = 0x0144;\n t.nadeva = 0x0928;\n t.nagujarati = 0x0aa8;\n t.nagurmukhi = 0x0a28;\n t.nahiragana = 0x306a;\n t.nakatakana = 0x30ca;\n t.nakatakanahalfwidth = 0xff85;\n t.napostrophe = 0x0149;\n t.nasquare = 0x3381;\n t.nbopomofo = 0x310b;\n t.nbspace = 0x00a0;\n t.ncaron = 0x0148;\n t.ncedilla = 0x0146;\n t.ncircle = 0x24dd;\n t.ncircumflexbelow = 0x1e4b;\n t.ncommaaccent = 0x0146;\n t.ndotaccent = 0x1e45;\n t.ndotbelow = 0x1e47;\n t.nehiragana = 0x306d;\n t.nekatakana = 0x30cd;\n t.nekatakanahalfwidth = 0xff88;\n t.newsheqelsign = 0x20aa;\n t.nfsquare = 0x338b;\n t.ngabengali = 0x0999;\n t.ngadeva = 0x0919;\n t.ngagujarati = 0x0a99;\n t.ngagurmukhi = 0x0a19;\n t.ngonguthai = 0x0e07;\n t.nhiragana = 0x3093;\n t.nhookleft = 0x0272;\n t.nhookretroflex = 0x0273;\n t.nieunacirclekorean = 0x326f;\n t.nieunaparenkorean = 0x320f;\n t.nieuncieuckorean = 0x3135;\n t.nieuncirclekorean = 0x3261;\n t.nieunhieuhkorean = 0x3136;\n t.nieunkorean = 0x3134;\n t.nieunpansioskorean = 0x3168;\n t.nieunparenkorean = 0x3201;\n t.nieunsioskorean = 0x3167;\n t.nieuntikeutkorean = 0x3166;\n t.nihiragana = 0x306b;\n t.nikatakana = 0x30cb;\n t.nikatakanahalfwidth = 0xff86;\n t.nikhahitleftthai = 0xf899;\n t.nikhahitthai = 0x0e4d;\n t.nine = 0x0039;\n t.ninearabic = 0x0669;\n t.ninebengali = 0x09ef;\n t.ninecircle = 0x2468;\n t.ninecircleinversesansserif = 0x2792;\n t.ninedeva = 0x096f;\n t.ninegujarati = 0x0aef;\n t.ninegurmukhi = 0x0a6f;\n t.ninehackarabic = 0x0669;\n t.ninehangzhou = 0x3029;\n t.nineideographicparen = 0x3228;\n t.nineinferior = 0x2089;\n t.ninemonospace = 0xff19;\n t.nineoldstyle = 0xf739;\n t.nineparen = 0x247c;\n t.nineperiod = 0x2490;\n t.ninepersian = 0x06f9;\n t.nineroman = 0x2178;\n t.ninesuperior = 0x2079;\n t.nineteencircle = 0x2472;\n t.nineteenparen = 0x2486;\n t.nineteenperiod = 0x249a;\n t.ninethai = 0x0e59;\n t.nj = 0x01cc;\n t.njecyrillic = 0x045a;\n t.nkatakana = 0x30f3;\n t.nkatakanahalfwidth = 0xff9d;\n t.nlegrightlong = 0x019e;\n t.nlinebelow = 0x1e49;\n t.nmonospace = 0xff4e;\n t.nmsquare = 0x339a;\n t.nnabengali = 0x09a3;\n t.nnadeva = 0x0923;\n t.nnagujarati = 0x0aa3;\n t.nnagurmukhi = 0x0a23;\n t.nnnadeva = 0x0929;\n t.nohiragana = 0x306e;\n t.nokatakana = 0x30ce;\n t.nokatakanahalfwidth = 0xff89;\n t.nonbreakingspace = 0x00a0;\n t.nonenthai = 0x0e13;\n t.nonuthai = 0x0e19;\n t.noonarabic = 0x0646;\n t.noonfinalarabic = 0xfee6;\n t.noonghunnaarabic = 0x06ba;\n t.noonghunnafinalarabic = 0xfb9f;\n t.nooninitialarabic = 0xfee7;\n t.noonjeeminitialarabic = 0xfcd2;\n t.noonjeemisolatedarabic = 0xfc4b;\n t.noonmedialarabic = 0xfee8;\n t.noonmeeminitialarabic = 0xfcd5;\n t.noonmeemisolatedarabic = 0xfc4e;\n t.noonnoonfinalarabic = 0xfc8d;\n t.notcontains = 0x220c;\n t.notelement = 0x2209;\n t.notelementof = 0x2209;\n t.notequal = 0x2260;\n t.notgreater = 0x226f;\n t.notgreaternorequal = 0x2271;\n t.notgreaternorless = 0x2279;\n t.notidentical = 0x2262;\n t.notless = 0x226e;\n t.notlessnorequal = 0x2270;\n t.notparallel = 0x2226;\n t.notprecedes = 0x2280;\n t.notsubset = 0x2284;\n t.notsucceeds = 0x2281;\n t.notsuperset = 0x2285;\n t.nowarmenian = 0x0576;\n t.nparen = 0x24a9;\n t.nssquare = 0x33b1;\n t.nsuperior = 0x207f;\n t.ntilde = 0x00f1;\n t.nu = 0x03bd;\n t.nuhiragana = 0x306c;\n t.nukatakana = 0x30cc;\n t.nukatakanahalfwidth = 0xff87;\n t.nuktabengali = 0x09bc;\n t.nuktadeva = 0x093c;\n t.nuktagujarati = 0x0abc;\n t.nuktagurmukhi = 0x0a3c;\n t.numbersign = 0x0023;\n t.numbersignmonospace = 0xff03;\n t.numbersignsmall = 0xfe5f;\n t.numeralsigngreek = 0x0374;\n t.numeralsignlowergreek = 0x0375;\n t.numero = 0x2116;\n t.nun = 0x05e0;\n t.nundagesh = 0xfb40;\n t.nundageshhebrew = 0xfb40;\n t.nunhebrew = 0x05e0;\n t.nvsquare = 0x33b5;\n t.nwsquare = 0x33bb;\n t.nyabengali = 0x099e;\n t.nyadeva = 0x091e;\n t.nyagujarati = 0x0a9e;\n t.nyagurmukhi = 0x0a1e;\n t.o = 0x006f;\n t.oacute = 0x00f3;\n t.oangthai = 0x0e2d;\n t.obarred = 0x0275;\n t.obarredcyrillic = 0x04e9;\n t.obarreddieresiscyrillic = 0x04eb;\n t.obengali = 0x0993;\n t.obopomofo = 0x311b;\n t.obreve = 0x014f;\n t.ocandradeva = 0x0911;\n t.ocandragujarati = 0x0a91;\n t.ocandravowelsigndeva = 0x0949;\n t.ocandravowelsigngujarati = 0x0ac9;\n t.ocaron = 0x01d2;\n t.ocircle = 0x24de;\n t.ocircumflex = 0x00f4;\n t.ocircumflexacute = 0x1ed1;\n t.ocircumflexdotbelow = 0x1ed9;\n t.ocircumflexgrave = 0x1ed3;\n t.ocircumflexhookabove = 0x1ed5;\n t.ocircumflextilde = 0x1ed7;\n t.ocyrillic = 0x043e;\n t.odblacute = 0x0151;\n t.odblgrave = 0x020d;\n t.odeva = 0x0913;\n t.odieresis = 0x00f6;\n t.odieresiscyrillic = 0x04e7;\n t.odotbelow = 0x1ecd;\n t.oe = 0x0153;\n t.oekorean = 0x315a;\n t.ogonek = 0x02db;\n t.ogonekcmb = 0x0328;\n t.ograve = 0x00f2;\n t.ogujarati = 0x0a93;\n t.oharmenian = 0x0585;\n t.ohiragana = 0x304a;\n t.ohookabove = 0x1ecf;\n t.ohorn = 0x01a1;\n t.ohornacute = 0x1edb;\n t.ohorndotbelow = 0x1ee3;\n t.ohorngrave = 0x1edd;\n t.ohornhookabove = 0x1edf;\n t.ohorntilde = 0x1ee1;\n t.ohungarumlaut = 0x0151;\n t.oi = 0x01a3;\n t.oinvertedbreve = 0x020f;\n t.okatakana = 0x30aa;\n t.okatakanahalfwidth = 0xff75;\n t.okorean = 0x3157;\n t.olehebrew = 0x05ab;\n t.omacron = 0x014d;\n t.omacronacute = 0x1e53;\n t.omacrongrave = 0x1e51;\n t.omdeva = 0x0950;\n t.omega = 0x03c9;\n t.omega1 = 0x03d6;\n t.omegacyrillic = 0x0461;\n t.omegalatinclosed = 0x0277;\n t.omegaroundcyrillic = 0x047b;\n t.omegatitlocyrillic = 0x047d;\n t.omegatonos = 0x03ce;\n t.omgujarati = 0x0ad0;\n t.omicron = 0x03bf;\n t.omicrontonos = 0x03cc;\n t.omonospace = 0xff4f;\n t.one = 0x0031;\n t.onearabic = 0x0661;\n t.onebengali = 0x09e7;\n t.onecircle = 0x2460;\n t.onecircleinversesansserif = 0x278a;\n t.onedeva = 0x0967;\n t.onedotenleader = 0x2024;\n t.oneeighth = 0x215b;\n t.onefitted = 0xf6dc;\n t.onegujarati = 0x0ae7;\n t.onegurmukhi = 0x0a67;\n t.onehackarabic = 0x0661;\n t.onehalf = 0x00bd;\n t.onehangzhou = 0x3021;\n t.oneideographicparen = 0x3220;\n t.oneinferior = 0x2081;\n t.onemonospace = 0xff11;\n t.onenumeratorbengali = 0x09f4;\n t.oneoldstyle = 0xf731;\n t.oneparen = 0x2474;\n t.oneperiod = 0x2488;\n t.onepersian = 0x06f1;\n t.onequarter = 0x00bc;\n t.oneroman = 0x2170;\n t.onesuperior = 0x00b9;\n t.onethai = 0x0e51;\n t.onethird = 0x2153;\n t.oogonek = 0x01eb;\n t.oogonekmacron = 0x01ed;\n t.oogurmukhi = 0x0a13;\n t.oomatragurmukhi = 0x0a4b;\n t.oopen = 0x0254;\n t.oparen = 0x24aa;\n t.openbullet = 0x25e6;\n t.option = 0x2325;\n t.ordfeminine = 0x00aa;\n t.ordmasculine = 0x00ba;\n t.orthogonal = 0x221f;\n t.oshortdeva = 0x0912;\n t.oshortvowelsigndeva = 0x094a;\n t.oslash = 0x00f8;\n t.oslashacute = 0x01ff;\n t.osmallhiragana = 0x3049;\n t.osmallkatakana = 0x30a9;\n t.osmallkatakanahalfwidth = 0xff6b;\n t.ostrokeacute = 0x01ff;\n t.osuperior = 0xf6f0;\n t.otcyrillic = 0x047f;\n t.otilde = 0x00f5;\n t.otildeacute = 0x1e4d;\n t.otildedieresis = 0x1e4f;\n t.oubopomofo = 0x3121;\n t.overline = 0x203e;\n t.overlinecenterline = 0xfe4a;\n t.overlinecmb = 0x0305;\n t.overlinedashed = 0xfe49;\n t.overlinedblwavy = 0xfe4c;\n t.overlinewavy = 0xfe4b;\n t.overscore = 0x00af;\n t.ovowelsignbengali = 0x09cb;\n t.ovowelsigndeva = 0x094b;\n t.ovowelsigngujarati = 0x0acb;\n t.p = 0x0070;\n t.paampssquare = 0x3380;\n t.paasentosquare = 0x332b;\n t.pabengali = 0x09aa;\n t.pacute = 0x1e55;\n t.padeva = 0x092a;\n t.pagedown = 0x21df;\n t.pageup = 0x21de;\n t.pagujarati = 0x0aaa;\n t.pagurmukhi = 0x0a2a;\n t.pahiragana = 0x3071;\n t.paiyannoithai = 0x0e2f;\n t.pakatakana = 0x30d1;\n t.palatalizationcyrilliccmb = 0x0484;\n t.palochkacyrillic = 0x04c0;\n t.pansioskorean = 0x317f;\n t.paragraph = 0x00b6;\n t.parallel = 0x2225;\n t.parenleft = 0x0028;\n t.parenleftaltonearabic = 0xfd3e;\n t.parenleftbt = 0xf8ed;\n t.parenleftex = 0xf8ec;\n t.parenleftinferior = 0x208d;\n t.parenleftmonospace = 0xff08;\n t.parenleftsmall = 0xfe59;\n t.parenleftsuperior = 0x207d;\n t.parenlefttp = 0xf8eb;\n t.parenleftvertical = 0xfe35;\n t.parenright = 0x0029;\n t.parenrightaltonearabic = 0xfd3f;\n t.parenrightbt = 0xf8f8;\n t.parenrightex = 0xf8f7;\n t.parenrightinferior = 0x208e;\n t.parenrightmonospace = 0xff09;\n t.parenrightsmall = 0xfe5a;\n t.parenrightsuperior = 0x207e;\n t.parenrighttp = 0xf8f6;\n t.parenrightvertical = 0xfe36;\n t.partialdiff = 0x2202;\n t.paseqhebrew = 0x05c0;\n t.pashtahebrew = 0x0599;\n t.pasquare = 0x33a9;\n t.patah = 0x05b7;\n t.patah11 = 0x05b7;\n t.patah1d = 0x05b7;\n t.patah2a = 0x05b7;\n t.patahhebrew = 0x05b7;\n t.patahnarrowhebrew = 0x05b7;\n t.patahquarterhebrew = 0x05b7;\n t.patahwidehebrew = 0x05b7;\n t.pazerhebrew = 0x05a1;\n t.pbopomofo = 0x3106;\n t.pcircle = 0x24df;\n t.pdotaccent = 0x1e57;\n t.pe = 0x05e4;\n t.pecyrillic = 0x043f;\n t.pedagesh = 0xfb44;\n t.pedageshhebrew = 0xfb44;\n t.peezisquare = 0x333b;\n t.pefinaldageshhebrew = 0xfb43;\n t.peharabic = 0x067e;\n t.peharmenian = 0x057a;\n t.pehebrew = 0x05e4;\n t.pehfinalarabic = 0xfb57;\n t.pehinitialarabic = 0xfb58;\n t.pehiragana = 0x307a;\n t.pehmedialarabic = 0xfb59;\n t.pekatakana = 0x30da;\n t.pemiddlehookcyrillic = 0x04a7;\n t.perafehebrew = 0xfb4e;\n t.percent = 0x0025;\n t.percentarabic = 0x066a;\n t.percentmonospace = 0xff05;\n t.percentsmall = 0xfe6a;\n t.period = 0x002e;\n t.periodarmenian = 0x0589;\n t.periodcentered = 0x00b7;\n t.periodhalfwidth = 0xff61;\n t.periodinferior = 0xf6e7;\n t.periodmonospace = 0xff0e;\n t.periodsmall = 0xfe52;\n t.periodsuperior = 0xf6e8;\n t.perispomenigreekcmb = 0x0342;\n t.perpendicular = 0x22a5;\n t.perthousand = 0x2030;\n t.peseta = 0x20a7;\n t.pfsquare = 0x338a;\n t.phabengali = 0x09ab;\n t.phadeva = 0x092b;\n t.phagujarati = 0x0aab;\n t.phagurmukhi = 0x0a2b;\n t.phi = 0x03c6;\n t.phi1 = 0x03d5;\n t.phieuphacirclekorean = 0x327a;\n t.phieuphaparenkorean = 0x321a;\n t.phieuphcirclekorean = 0x326c;\n t.phieuphkorean = 0x314d;\n t.phieuphparenkorean = 0x320c;\n t.philatin = 0x0278;\n t.phinthuthai = 0x0e3a;\n t.phisymbolgreek = 0x03d5;\n t.phook = 0x01a5;\n t.phophanthai = 0x0e1e;\n t.phophungthai = 0x0e1c;\n t.phosamphaothai = 0x0e20;\n t.pi = 0x03c0;\n t.pieupacirclekorean = 0x3273;\n t.pieupaparenkorean = 0x3213;\n t.pieupcieuckorean = 0x3176;\n t.pieupcirclekorean = 0x3265;\n t.pieupkiyeokkorean = 0x3172;\n t.pieupkorean = 0x3142;\n t.pieupparenkorean = 0x3205;\n t.pieupsioskiyeokkorean = 0x3174;\n t.pieupsioskorean = 0x3144;\n t.pieupsiostikeutkorean = 0x3175;\n t.pieupthieuthkorean = 0x3177;\n t.pieuptikeutkorean = 0x3173;\n t.pihiragana = 0x3074;\n t.pikatakana = 0x30d4;\n t.pisymbolgreek = 0x03d6;\n t.piwrarmenian = 0x0583;\n t.planckover2pi = 0x210f;\n t.planckover2pi1 = 0x210f;\n t.plus = 0x002b;\n t.plusbelowcmb = 0x031f;\n t.pluscircle = 0x2295;\n t.plusminus = 0x00b1;\n t.plusmod = 0x02d6;\n t.plusmonospace = 0xff0b;\n t.plussmall = 0xfe62;\n t.plussuperior = 0x207a;\n t.pmonospace = 0xff50;\n t.pmsquare = 0x33d8;\n t.pohiragana = 0x307d;\n t.pointingindexdownwhite = 0x261f;\n t.pointingindexleftwhite = 0x261c;\n t.pointingindexrightwhite = 0x261e;\n t.pointingindexupwhite = 0x261d;\n t.pokatakana = 0x30dd;\n t.poplathai = 0x0e1b;\n t.postalmark = 0x3012;\n t.postalmarkface = 0x3020;\n t.pparen = 0x24ab;\n t.precedes = 0x227a;\n t.prescription = 0x211e;\n t.primemod = 0x02b9;\n t.primereversed = 0x2035;\n t.product = 0x220f;\n t.projective = 0x2305;\n t.prolongedkana = 0x30fc;\n t.propellor = 0x2318;\n t.propersubset = 0x2282;\n t.propersuperset = 0x2283;\n t.proportion = 0x2237;\n t.proportional = 0x221d;\n t.psi = 0x03c8;\n t.psicyrillic = 0x0471;\n t.psilipneumatacyrilliccmb = 0x0486;\n t.pssquare = 0x33b0;\n t.puhiragana = 0x3077;\n t.pukatakana = 0x30d7;\n t.pvsquare = 0x33b4;\n t.pwsquare = 0x33ba;\n t.q = 0x0071;\n t.qadeva = 0x0958;\n t.qadmahebrew = 0x05a8;\n t.qafarabic = 0x0642;\n t.qaffinalarabic = 0xfed6;\n t.qafinitialarabic = 0xfed7;\n t.qafmedialarabic = 0xfed8;\n t.qamats = 0x05b8;\n t.qamats10 = 0x05b8;\n t.qamats1a = 0x05b8;\n t.qamats1c = 0x05b8;\n t.qamats27 = 0x05b8;\n t.qamats29 = 0x05b8;\n t.qamats33 = 0x05b8;\n t.qamatsde = 0x05b8;\n t.qamatshebrew = 0x05b8;\n t.qamatsnarrowhebrew = 0x05b8;\n t.qamatsqatanhebrew = 0x05b8;\n t.qamatsqatannarrowhebrew = 0x05b8;\n t.qamatsqatanquarterhebrew = 0x05b8;\n t.qamatsqatanwidehebrew = 0x05b8;\n t.qamatsquarterhebrew = 0x05b8;\n t.qamatswidehebrew = 0x05b8;\n t.qarneyparahebrew = 0x059f;\n t.qbopomofo = 0x3111;\n t.qcircle = 0x24e0;\n t.qhook = 0x02a0;\n t.qmonospace = 0xff51;\n t.qof = 0x05e7;\n t.qofdagesh = 0xfb47;\n t.qofdageshhebrew = 0xfb47;\n t.qofhebrew = 0x05e7;\n t.qparen = 0x24ac;\n t.quarternote = 0x2669;\n t.qubuts = 0x05bb;\n t.qubuts18 = 0x05bb;\n t.qubuts25 = 0x05bb;\n t.qubuts31 = 0x05bb;\n t.qubutshebrew = 0x05bb;\n t.qubutsnarrowhebrew = 0x05bb;\n t.qubutsquarterhebrew = 0x05bb;\n t.qubutswidehebrew = 0x05bb;\n t.question = 0x003f;\n t.questionarabic = 0x061f;\n t.questionarmenian = 0x055e;\n t.questiondown = 0x00bf;\n t.questiondownsmall = 0xf7bf;\n t.questiongreek = 0x037e;\n t.questionmonospace = 0xff1f;\n t.questionsmall = 0xf73f;\n t.quotedbl = 0x0022;\n t.quotedblbase = 0x201e;\n t.quotedblleft = 0x201c;\n t.quotedblmonospace = 0xff02;\n t.quotedblprime = 0x301e;\n t.quotedblprimereversed = 0x301d;\n t.quotedblright = 0x201d;\n t.quoteleft = 0x2018;\n t.quoteleftreversed = 0x201b;\n t.quotereversed = 0x201b;\n t.quoteright = 0x2019;\n t.quoterightn = 0x0149;\n t.quotesinglbase = 0x201a;\n t.quotesingle = 0x0027;\n t.quotesinglemonospace = 0xff07;\n t.r = 0x0072;\n t.raarmenian = 0x057c;\n t.rabengali = 0x09b0;\n t.racute = 0x0155;\n t.radeva = 0x0930;\n t.radical = 0x221a;\n t.radicalex = 0xf8e5;\n t.radoverssquare = 0x33ae;\n t.radoverssquaredsquare = 0x33af;\n t.radsquare = 0x33ad;\n t.rafe = 0x05bf;\n t.rafehebrew = 0x05bf;\n t.ragujarati = 0x0ab0;\n t.ragurmukhi = 0x0a30;\n t.rahiragana = 0x3089;\n t.rakatakana = 0x30e9;\n t.rakatakanahalfwidth = 0xff97;\n t.ralowerdiagonalbengali = 0x09f1;\n t.ramiddlediagonalbengali = 0x09f0;\n t.ramshorn = 0x0264;\n t.ratio = 0x2236;\n t.rbopomofo = 0x3116;\n t.rcaron = 0x0159;\n t.rcedilla = 0x0157;\n t.rcircle = 0x24e1;\n t.rcommaaccent = 0x0157;\n t.rdblgrave = 0x0211;\n t.rdotaccent = 0x1e59;\n t.rdotbelow = 0x1e5b;\n t.rdotbelowmacron = 0x1e5d;\n t.referencemark = 0x203b;\n t.reflexsubset = 0x2286;\n t.reflexsuperset = 0x2287;\n t.registered = 0x00ae;\n t.registersans = 0xf8e8;\n t.registerserif = 0xf6da;\n t.reharabic = 0x0631;\n t.reharmenian = 0x0580;\n t.rehfinalarabic = 0xfeae;\n t.rehiragana = 0x308c;\n t.rekatakana = 0x30ec;\n t.rekatakanahalfwidth = 0xff9a;\n t.resh = 0x05e8;\n t.reshdageshhebrew = 0xfb48;\n t.reshhebrew = 0x05e8;\n t.reversedtilde = 0x223d;\n t.reviahebrew = 0x0597;\n t.reviamugrashhebrew = 0x0597;\n t.revlogicalnot = 0x2310;\n t.rfishhook = 0x027e;\n t.rfishhookreversed = 0x027f;\n t.rhabengali = 0x09dd;\n t.rhadeva = 0x095d;\n t.rho = 0x03c1;\n t.rhook = 0x027d;\n t.rhookturned = 0x027b;\n t.rhookturnedsuperior = 0x02b5;\n t.rhosymbolgreek = 0x03f1;\n t.rhotichookmod = 0x02de;\n t.rieulacirclekorean = 0x3271;\n t.rieulaparenkorean = 0x3211;\n t.rieulcirclekorean = 0x3263;\n t.rieulhieuhkorean = 0x3140;\n t.rieulkiyeokkorean = 0x313a;\n t.rieulkiyeoksioskorean = 0x3169;\n t.rieulkorean = 0x3139;\n t.rieulmieumkorean = 0x313b;\n t.rieulpansioskorean = 0x316c;\n t.rieulparenkorean = 0x3203;\n t.rieulphieuphkorean = 0x313f;\n t.rieulpieupkorean = 0x313c;\n t.rieulpieupsioskorean = 0x316b;\n t.rieulsioskorean = 0x313d;\n t.rieulthieuthkorean = 0x313e;\n t.rieultikeutkorean = 0x316a;\n t.rieulyeorinhieuhkorean = 0x316d;\n t.rightangle = 0x221f;\n t.righttackbelowcmb = 0x0319;\n t.righttriangle = 0x22bf;\n t.rihiragana = 0x308a;\n t.rikatakana = 0x30ea;\n t.rikatakanahalfwidth = 0xff98;\n t.ring = 0x02da;\n t.ringbelowcmb = 0x0325;\n t.ringcmb = 0x030a;\n t.ringhalfleft = 0x02bf;\n t.ringhalfleftarmenian = 0x0559;\n t.ringhalfleftbelowcmb = 0x031c;\n t.ringhalfleftcentered = 0x02d3;\n t.ringhalfright = 0x02be;\n t.ringhalfrightbelowcmb = 0x0339;\n t.ringhalfrightcentered = 0x02d2;\n t.rinvertedbreve = 0x0213;\n t.rittorusquare = 0x3351;\n t.rlinebelow = 0x1e5f;\n t.rlongleg = 0x027c;\n t.rlonglegturned = 0x027a;\n t.rmonospace = 0xff52;\n t.rohiragana = 0x308d;\n t.rokatakana = 0x30ed;\n t.rokatakanahalfwidth = 0xff9b;\n t.roruathai = 0x0e23;\n t.rparen = 0x24ad;\n t.rrabengali = 0x09dc;\n t.rradeva = 0x0931;\n t.rragurmukhi = 0x0a5c;\n t.rreharabic = 0x0691;\n t.rrehfinalarabic = 0xfb8d;\n t.rrvocalicbengali = 0x09e0;\n t.rrvocalicdeva = 0x0960;\n t.rrvocalicgujarati = 0x0ae0;\n t.rrvocalicvowelsignbengali = 0x09c4;\n t.rrvocalicvowelsigndeva = 0x0944;\n t.rrvocalicvowelsigngujarati = 0x0ac4;\n t.rsuperior = 0xf6f1;\n t.rtblock = 0x2590;\n t.rturned = 0x0279;\n t.rturnedsuperior = 0x02b4;\n t.ruhiragana = 0x308b;\n t.rukatakana = 0x30eb;\n t.rukatakanahalfwidth = 0xff99;\n t.rupeemarkbengali = 0x09f2;\n t.rupeesignbengali = 0x09f3;\n t.rupiah = 0xf6dd;\n t.ruthai = 0x0e24;\n t.rvocalicbengali = 0x098b;\n t.rvocalicdeva = 0x090b;\n t.rvocalicgujarati = 0x0a8b;\n t.rvocalicvowelsignbengali = 0x09c3;\n t.rvocalicvowelsigndeva = 0x0943;\n t.rvocalicvowelsigngujarati = 0x0ac3;\n t.s = 0x0073;\n t.sabengali = 0x09b8;\n t.sacute = 0x015b;\n t.sacutedotaccent = 0x1e65;\n t.sadarabic = 0x0635;\n t.sadeva = 0x0938;\n t.sadfinalarabic = 0xfeba;\n t.sadinitialarabic = 0xfebb;\n t.sadmedialarabic = 0xfebc;\n t.sagujarati = 0x0ab8;\n t.sagurmukhi = 0x0a38;\n t.sahiragana = 0x3055;\n t.sakatakana = 0x30b5;\n t.sakatakanahalfwidth = 0xff7b;\n t.sallallahoualayhewasallamarabic = 0xfdfa;\n t.samekh = 0x05e1;\n t.samekhdagesh = 0xfb41;\n t.samekhdageshhebrew = 0xfb41;\n t.samekhhebrew = 0x05e1;\n t.saraaathai = 0x0e32;\n t.saraaethai = 0x0e41;\n t.saraaimaimalaithai = 0x0e44;\n t.saraaimaimuanthai = 0x0e43;\n t.saraamthai = 0x0e33;\n t.saraathai = 0x0e30;\n t.saraethai = 0x0e40;\n t.saraiileftthai = 0xf886;\n t.saraiithai = 0x0e35;\n t.saraileftthai = 0xf885;\n t.saraithai = 0x0e34;\n t.saraothai = 0x0e42;\n t.saraueeleftthai = 0xf888;\n t.saraueethai = 0x0e37;\n t.saraueleftthai = 0xf887;\n t.sarauethai = 0x0e36;\n t.sarauthai = 0x0e38;\n t.sarauuthai = 0x0e39;\n t.sbopomofo = 0x3119;\n t.scaron = 0x0161;\n t.scarondotaccent = 0x1e67;\n t.scedilla = 0x015f;\n t.schwa = 0x0259;\n t.schwacyrillic = 0x04d9;\n t.schwadieresiscyrillic = 0x04db;\n t.schwahook = 0x025a;\n t.scircle = 0x24e2;\n t.scircumflex = 0x015d;\n t.scommaaccent = 0x0219;\n t.sdotaccent = 0x1e61;\n t.sdotbelow = 0x1e63;\n t.sdotbelowdotaccent = 0x1e69;\n t.seagullbelowcmb = 0x033c;\n t.second = 0x2033;\n t.secondtonechinese = 0x02ca;\n t.section = 0x00a7;\n t.seenarabic = 0x0633;\n t.seenfinalarabic = 0xfeb2;\n t.seeninitialarabic = 0xfeb3;\n t.seenmedialarabic = 0xfeb4;\n t.segol = 0x05b6;\n t.segol13 = 0x05b6;\n t.segol1f = 0x05b6;\n t.segol2c = 0x05b6;\n t.segolhebrew = 0x05b6;\n t.segolnarrowhebrew = 0x05b6;\n t.segolquarterhebrew = 0x05b6;\n t.segoltahebrew = 0x0592;\n t.segolwidehebrew = 0x05b6;\n t.seharmenian = 0x057d;\n t.sehiragana = 0x305b;\n t.sekatakana = 0x30bb;\n t.sekatakanahalfwidth = 0xff7e;\n t.semicolon = 0x003b;\n t.semicolonarabic = 0x061b;\n t.semicolonmonospace = 0xff1b;\n t.semicolonsmall = 0xfe54;\n t.semivoicedmarkkana = 0x309c;\n t.semivoicedmarkkanahalfwidth = 0xff9f;\n t.sentisquare = 0x3322;\n t.sentosquare = 0x3323;\n t.seven = 0x0037;\n t.sevenarabic = 0x0667;\n t.sevenbengali = 0x09ed;\n t.sevencircle = 0x2466;\n t.sevencircleinversesansserif = 0x2790;\n t.sevendeva = 0x096d;\n t.seveneighths = 0x215e;\n t.sevengujarati = 0x0aed;\n t.sevengurmukhi = 0x0a6d;\n t.sevenhackarabic = 0x0667;\n t.sevenhangzhou = 0x3027;\n t.sevenideographicparen = 0x3226;\n t.seveninferior = 0x2087;\n t.sevenmonospace = 0xff17;\n t.sevenoldstyle = 0xf737;\n t.sevenparen = 0x247a;\n t.sevenperiod = 0x248e;\n t.sevenpersian = 0x06f7;\n t.sevenroman = 0x2176;\n t.sevensuperior = 0x2077;\n t.seventeencircle = 0x2470;\n t.seventeenparen = 0x2484;\n t.seventeenperiod = 0x2498;\n t.seventhai = 0x0e57;\n t.sfthyphen = 0x00ad;\n t.shaarmenian = 0x0577;\n t.shabengali = 0x09b6;\n t.shacyrillic = 0x0448;\n t.shaddaarabic = 0x0651;\n t.shaddadammaarabic = 0xfc61;\n t.shaddadammatanarabic = 0xfc5e;\n t.shaddafathaarabic = 0xfc60;\n t.shaddakasraarabic = 0xfc62;\n t.shaddakasratanarabic = 0xfc5f;\n t.shade = 0x2592;\n t.shadedark = 0x2593;\n t.shadelight = 0x2591;\n t.shademedium = 0x2592;\n t.shadeva = 0x0936;\n t.shagujarati = 0x0ab6;\n t.shagurmukhi = 0x0a36;\n t.shalshelethebrew = 0x0593;\n t.shbopomofo = 0x3115;\n t.shchacyrillic = 0x0449;\n t.sheenarabic = 0x0634;\n t.sheenfinalarabic = 0xfeb6;\n t.sheeninitialarabic = 0xfeb7;\n t.sheenmedialarabic = 0xfeb8;\n t.sheicoptic = 0x03e3;\n t.sheqel = 0x20aa;\n t.sheqelhebrew = 0x20aa;\n t.sheva = 0x05b0;\n t.sheva115 = 0x05b0;\n t.sheva15 = 0x05b0;\n t.sheva22 = 0x05b0;\n t.sheva2e = 0x05b0;\n t.shevahebrew = 0x05b0;\n t.shevanarrowhebrew = 0x05b0;\n t.shevaquarterhebrew = 0x05b0;\n t.shevawidehebrew = 0x05b0;\n t.shhacyrillic = 0x04bb;\n t.shimacoptic = 0x03ed;\n t.shin = 0x05e9;\n t.shindagesh = 0xfb49;\n t.shindageshhebrew = 0xfb49;\n t.shindageshshindot = 0xfb2c;\n t.shindageshshindothebrew = 0xfb2c;\n t.shindageshsindot = 0xfb2d;\n t.shindageshsindothebrew = 0xfb2d;\n t.shindothebrew = 0x05c1;\n t.shinhebrew = 0x05e9;\n t.shinshindot = 0xfb2a;\n t.shinshindothebrew = 0xfb2a;\n t.shinsindot = 0xfb2b;\n t.shinsindothebrew = 0xfb2b;\n t.shook = 0x0282;\n t.sigma = 0x03c3;\n t.sigma1 = 0x03c2;\n t.sigmafinal = 0x03c2;\n t.sigmalunatesymbolgreek = 0x03f2;\n t.sihiragana = 0x3057;\n t.sikatakana = 0x30b7;\n t.sikatakanahalfwidth = 0xff7c;\n t.siluqhebrew = 0x05bd;\n t.siluqlefthebrew = 0x05bd;\n t.similar = 0x223c;\n t.sindothebrew = 0x05c2;\n t.siosacirclekorean = 0x3274;\n t.siosaparenkorean = 0x3214;\n t.sioscieuckorean = 0x317e;\n t.sioscirclekorean = 0x3266;\n t.sioskiyeokkorean = 0x317a;\n t.sioskorean = 0x3145;\n t.siosnieunkorean = 0x317b;\n t.siosparenkorean = 0x3206;\n t.siospieupkorean = 0x317d;\n t.siostikeutkorean = 0x317c;\n t.six = 0x0036;\n t.sixarabic = 0x0666;\n t.sixbengali = 0x09ec;\n t.sixcircle = 0x2465;\n t.sixcircleinversesansserif = 0x278f;\n t.sixdeva = 0x096c;\n t.sixgujarati = 0x0aec;\n t.sixgurmukhi = 0x0a6c;\n t.sixhackarabic = 0x0666;\n t.sixhangzhou = 0x3026;\n t.sixideographicparen = 0x3225;\n t.sixinferior = 0x2086;\n t.sixmonospace = 0xff16;\n t.sixoldstyle = 0xf736;\n t.sixparen = 0x2479;\n t.sixperiod = 0x248d;\n t.sixpersian = 0x06f6;\n t.sixroman = 0x2175;\n t.sixsuperior = 0x2076;\n t.sixteencircle = 0x246f;\n t.sixteencurrencydenominatorbengali = 0x09f9;\n t.sixteenparen = 0x2483;\n t.sixteenperiod = 0x2497;\n t.sixthai = 0x0e56;\n t.slash = 0x002f;\n t.slashmonospace = 0xff0f;\n t.slong = 0x017f;\n t.slongdotaccent = 0x1e9b;\n t.smileface = 0x263a;\n t.smonospace = 0xff53;\n t.sofpasuqhebrew = 0x05c3;\n t.softhyphen = 0x00ad;\n t.softsigncyrillic = 0x044c;\n t.sohiragana = 0x305d;\n t.sokatakana = 0x30bd;\n t.sokatakanahalfwidth = 0xff7f;\n t.soliduslongoverlaycmb = 0x0338;\n t.solidusshortoverlaycmb = 0x0337;\n t.sorusithai = 0x0e29;\n t.sosalathai = 0x0e28;\n t.sosothai = 0x0e0b;\n t.sosuathai = 0x0e2a;\n t.space = 0x0020;\n t.spacehackarabic = 0x0020;\n t.spade = 0x2660;\n t.spadesuitblack = 0x2660;\n t.spadesuitwhite = 0x2664;\n t.sparen = 0x24ae;\n t.squarebelowcmb = 0x033b;\n t.squarecc = 0x33c4;\n t.squarecm = 0x339d;\n t.squarediagonalcrosshatchfill = 0x25a9;\n t.squarehorizontalfill = 0x25a4;\n t.squarekg = 0x338f;\n t.squarekm = 0x339e;\n t.squarekmcapital = 0x33ce;\n t.squareln = 0x33d1;\n t.squarelog = 0x33d2;\n t.squaremg = 0x338e;\n t.squaremil = 0x33d5;\n t.squaremm = 0x339c;\n t.squaremsquared = 0x33a1;\n t.squareorthogonalcrosshatchfill = 0x25a6;\n t.squareupperlefttolowerrightfill = 0x25a7;\n t.squareupperrighttolowerleftfill = 0x25a8;\n t.squareverticalfill = 0x25a5;\n t.squarewhitewithsmallblack = 0x25a3;\n t.srsquare = 0x33db;\n t.ssabengali = 0x09b7;\n t.ssadeva = 0x0937;\n t.ssagujarati = 0x0ab7;\n t.ssangcieuckorean = 0x3149;\n t.ssanghieuhkorean = 0x3185;\n t.ssangieungkorean = 0x3180;\n t.ssangkiyeokkorean = 0x3132;\n t.ssangnieunkorean = 0x3165;\n t.ssangpieupkorean = 0x3143;\n t.ssangsioskorean = 0x3146;\n t.ssangtikeutkorean = 0x3138;\n t.ssuperior = 0xf6f2;\n t.sterling = 0x00a3;\n t.sterlingmonospace = 0xffe1;\n t.strokelongoverlaycmb = 0x0336;\n t.strokeshortoverlaycmb = 0x0335;\n t.subset = 0x2282;\n t.subsetnotequal = 0x228a;\n t.subsetorequal = 0x2286;\n t.succeeds = 0x227b;\n t.suchthat = 0x220b;\n t.suhiragana = 0x3059;\n t.sukatakana = 0x30b9;\n t.sukatakanahalfwidth = 0xff7d;\n t.sukunarabic = 0x0652;\n t.summation = 0x2211;\n t.sun = 0x263c;\n t.superset = 0x2283;\n t.supersetnotequal = 0x228b;\n t.supersetorequal = 0x2287;\n t.svsquare = 0x33dc;\n t.syouwaerasquare = 0x337c;\n t.t = 0x0074;\n t.tabengali = 0x09a4;\n t.tackdown = 0x22a4;\n t.tackleft = 0x22a3;\n t.tadeva = 0x0924;\n t.tagujarati = 0x0aa4;\n t.tagurmukhi = 0x0a24;\n t.taharabic = 0x0637;\n t.tahfinalarabic = 0xfec2;\n t.tahinitialarabic = 0xfec3;\n t.tahiragana = 0x305f;\n t.tahmedialarabic = 0xfec4;\n t.taisyouerasquare = 0x337d;\n t.takatakana = 0x30bf;\n t.takatakanahalfwidth = 0xff80;\n t.tatweelarabic = 0x0640;\n t.tau = 0x03c4;\n t.tav = 0x05ea;\n t.tavdages = 0xfb4a;\n t.tavdagesh = 0xfb4a;\n t.tavdageshhebrew = 0xfb4a;\n t.tavhebrew = 0x05ea;\n t.tbar = 0x0167;\n t.tbopomofo = 0x310a;\n t.tcaron = 0x0165;\n t.tccurl = 0x02a8;\n t.tcedilla = 0x0163;\n t.tcheharabic = 0x0686;\n t.tchehfinalarabic = 0xfb7b;\n t.tchehinitialarabic = 0xfb7c;\n t.tchehmedialarabic = 0xfb7d;\n t.tcircle = 0x24e3;\n t.tcircumflexbelow = 0x1e71;\n t.tcommaaccent = 0x0163;\n t.tdieresis = 0x1e97;\n t.tdotaccent = 0x1e6b;\n t.tdotbelow = 0x1e6d;\n t.tecyrillic = 0x0442;\n t.tedescendercyrillic = 0x04ad;\n t.teharabic = 0x062a;\n t.tehfinalarabic = 0xfe96;\n t.tehhahinitialarabic = 0xfca2;\n t.tehhahisolatedarabic = 0xfc0c;\n t.tehinitialarabic = 0xfe97;\n t.tehiragana = 0x3066;\n t.tehjeeminitialarabic = 0xfca1;\n t.tehjeemisolatedarabic = 0xfc0b;\n t.tehmarbutaarabic = 0x0629;\n t.tehmarbutafinalarabic = 0xfe94;\n t.tehmedialarabic = 0xfe98;\n t.tehmeeminitialarabic = 0xfca4;\n t.tehmeemisolatedarabic = 0xfc0e;\n t.tehnoonfinalarabic = 0xfc73;\n t.tekatakana = 0x30c6;\n t.tekatakanahalfwidth = 0xff83;\n t.telephone = 0x2121;\n t.telephoneblack = 0x260e;\n t.telishagedolahebrew = 0x05a0;\n t.telishaqetanahebrew = 0x05a9;\n t.tencircle = 0x2469;\n t.tenideographicparen = 0x3229;\n t.tenparen = 0x247d;\n t.tenperiod = 0x2491;\n t.tenroman = 0x2179;\n t.tesh = 0x02a7;\n t.tet = 0x05d8;\n t.tetdagesh = 0xfb38;\n t.tetdageshhebrew = 0xfb38;\n t.tethebrew = 0x05d8;\n t.tetsecyrillic = 0x04b5;\n t.tevirhebrew = 0x059b;\n t.tevirlefthebrew = 0x059b;\n t.thabengali = 0x09a5;\n t.thadeva = 0x0925;\n t.thagujarati = 0x0aa5;\n t.thagurmukhi = 0x0a25;\n t.thalarabic = 0x0630;\n t.thalfinalarabic = 0xfeac;\n t.thanthakhatlowleftthai = 0xf898;\n t.thanthakhatlowrightthai = 0xf897;\n t.thanthakhatthai = 0x0e4c;\n t.thanthakhatupperleftthai = 0xf896;\n t.theharabic = 0x062b;\n t.thehfinalarabic = 0xfe9a;\n t.thehinitialarabic = 0xfe9b;\n t.thehmedialarabic = 0xfe9c;\n t.thereexists = 0x2203;\n t.therefore = 0x2234;\n t.theta = 0x03b8;\n t.theta1 = 0x03d1;\n t.thetasymbolgreek = 0x03d1;\n t.thieuthacirclekorean = 0x3279;\n t.thieuthaparenkorean = 0x3219;\n t.thieuthcirclekorean = 0x326b;\n t.thieuthkorean = 0x314c;\n t.thieuthparenkorean = 0x320b;\n t.thirteencircle = 0x246c;\n t.thirteenparen = 0x2480;\n t.thirteenperiod = 0x2494;\n t.thonangmonthothai = 0x0e11;\n t.thook = 0x01ad;\n t.thophuthaothai = 0x0e12;\n t.thorn = 0x00fe;\n t.thothahanthai = 0x0e17;\n t.thothanthai = 0x0e10;\n t.thothongthai = 0x0e18;\n t.thothungthai = 0x0e16;\n t.thousandcyrillic = 0x0482;\n t.thousandsseparatorarabic = 0x066c;\n t.thousandsseparatorpersian = 0x066c;\n t.three = 0x0033;\n t.threearabic = 0x0663;\n t.threebengali = 0x09e9;\n t.threecircle = 0x2462;\n t.threecircleinversesansserif = 0x278c;\n t.threedeva = 0x0969;\n t.threeeighths = 0x215c;\n t.threegujarati = 0x0ae9;\n t.threegurmukhi = 0x0a69;\n t.threehackarabic = 0x0663;\n t.threehangzhou = 0x3023;\n t.threeideographicparen = 0x3222;\n t.threeinferior = 0x2083;\n t.threemonospace = 0xff13;\n t.threenumeratorbengali = 0x09f6;\n t.threeoldstyle = 0xf733;\n t.threeparen = 0x2476;\n t.threeperiod = 0x248a;\n t.threepersian = 0x06f3;\n t.threequarters = 0x00be;\n t.threequartersemdash = 0xf6de;\n t.threeroman = 0x2172;\n t.threesuperior = 0x00b3;\n t.threethai = 0x0e53;\n t.thzsquare = 0x3394;\n t.tihiragana = 0x3061;\n t.tikatakana = 0x30c1;\n t.tikatakanahalfwidth = 0xff81;\n t.tikeutacirclekorean = 0x3270;\n t.tikeutaparenkorean = 0x3210;\n t.tikeutcirclekorean = 0x3262;\n t.tikeutkorean = 0x3137;\n t.tikeutparenkorean = 0x3202;\n t.tilde = 0x02dc;\n t.tildebelowcmb = 0x0330;\n t.tildecmb = 0x0303;\n t.tildecomb = 0x0303;\n t.tildedoublecmb = 0x0360;\n t.tildeoperator = 0x223c;\n t.tildeoverlaycmb = 0x0334;\n t.tildeverticalcmb = 0x033e;\n t.timescircle = 0x2297;\n t.tipehahebrew = 0x0596;\n t.tipehalefthebrew = 0x0596;\n t.tippigurmukhi = 0x0a70;\n t.titlocyrilliccmb = 0x0483;\n t.tiwnarmenian = 0x057f;\n t.tlinebelow = 0x1e6f;\n t.tmonospace = 0xff54;\n t.toarmenian = 0x0569;\n t.tohiragana = 0x3068;\n t.tokatakana = 0x30c8;\n t.tokatakanahalfwidth = 0xff84;\n t.tonebarextrahighmod = 0x02e5;\n t.tonebarextralowmod = 0x02e9;\n t.tonebarhighmod = 0x02e6;\n t.tonebarlowmod = 0x02e8;\n t.tonebarmidmod = 0x02e7;\n t.tonefive = 0x01bd;\n t.tonesix = 0x0185;\n t.tonetwo = 0x01a8;\n t.tonos = 0x0384;\n t.tonsquare = 0x3327;\n t.topatakthai = 0x0e0f;\n t.tortoiseshellbracketleft = 0x3014;\n t.tortoiseshellbracketleftsmall = 0xfe5d;\n t.tortoiseshellbracketleftvertical = 0xfe39;\n t.tortoiseshellbracketright = 0x3015;\n t.tortoiseshellbracketrightsmall = 0xfe5e;\n t.tortoiseshellbracketrightvertical = 0xfe3a;\n t.totaothai = 0x0e15;\n t.tpalatalhook = 0x01ab;\n t.tparen = 0x24af;\n t.trademark = 0x2122;\n t.trademarksans = 0xf8ea;\n t.trademarkserif = 0xf6db;\n t.tretroflexhook = 0x0288;\n t.triagdn = 0x25bc;\n t.triaglf = 0x25c4;\n t.triagrt = 0x25ba;\n t.triagup = 0x25b2;\n t.ts = 0x02a6;\n t.tsadi = 0x05e6;\n t.tsadidagesh = 0xfb46;\n t.tsadidageshhebrew = 0xfb46;\n t.tsadihebrew = 0x05e6;\n t.tsecyrillic = 0x0446;\n t.tsere = 0x05b5;\n t.tsere12 = 0x05b5;\n t.tsere1e = 0x05b5;\n t.tsere2b = 0x05b5;\n t.tserehebrew = 0x05b5;\n t.tserenarrowhebrew = 0x05b5;\n t.tserequarterhebrew = 0x05b5;\n t.tserewidehebrew = 0x05b5;\n t.tshecyrillic = 0x045b;\n t.tsuperior = 0xf6f3;\n t.ttabengali = 0x099f;\n t.ttadeva = 0x091f;\n t.ttagujarati = 0x0a9f;\n t.ttagurmukhi = 0x0a1f;\n t.tteharabic = 0x0679;\n t.ttehfinalarabic = 0xfb67;\n t.ttehinitialarabic = 0xfb68;\n t.ttehmedialarabic = 0xfb69;\n t.tthabengali = 0x09a0;\n t.tthadeva = 0x0920;\n t.tthagujarati = 0x0aa0;\n t.tthagurmukhi = 0x0a20;\n t.tturned = 0x0287;\n t.tuhiragana = 0x3064;\n t.tukatakana = 0x30c4;\n t.tukatakanahalfwidth = 0xff82;\n t.tusmallhiragana = 0x3063;\n t.tusmallkatakana = 0x30c3;\n t.tusmallkatakanahalfwidth = 0xff6f;\n t.twelvecircle = 0x246b;\n t.twelveparen = 0x247f;\n t.twelveperiod = 0x2493;\n t.twelveroman = 0x217b;\n t.twentycircle = 0x2473;\n t.twentyhangzhou = 0x5344;\n t.twentyparen = 0x2487;\n t.twentyperiod = 0x249b;\n t.two = 0x0032;\n t.twoarabic = 0x0662;\n t.twobengali = 0x09e8;\n t.twocircle = 0x2461;\n t.twocircleinversesansserif = 0x278b;\n t.twodeva = 0x0968;\n t.twodotenleader = 0x2025;\n t.twodotleader = 0x2025;\n t.twodotleadervertical = 0xfe30;\n t.twogujarati = 0x0ae8;\n t.twogurmukhi = 0x0a68;\n t.twohackarabic = 0x0662;\n t.twohangzhou = 0x3022;\n t.twoideographicparen = 0x3221;\n t.twoinferior = 0x2082;\n t.twomonospace = 0xff12;\n t.twonumeratorbengali = 0x09f5;\n t.twooldstyle = 0xf732;\n t.twoparen = 0x2475;\n t.twoperiod = 0x2489;\n t.twopersian = 0x06f2;\n t.tworoman = 0x2171;\n t.twostroke = 0x01bb;\n t.twosuperior = 0x00b2;\n t.twothai = 0x0e52;\n t.twothirds = 0x2154;\n t.u = 0x0075;\n t.uacute = 0x00fa;\n t.ubar = 0x0289;\n t.ubengali = 0x0989;\n t.ubopomofo = 0x3128;\n t.ubreve = 0x016d;\n t.ucaron = 0x01d4;\n t.ucircle = 0x24e4;\n t.ucircumflex = 0x00fb;\n t.ucircumflexbelow = 0x1e77;\n t.ucyrillic = 0x0443;\n t.udattadeva = 0x0951;\n t.udblacute = 0x0171;\n t.udblgrave = 0x0215;\n t.udeva = 0x0909;\n t.udieresis = 0x00fc;\n t.udieresisacute = 0x01d8;\n t.udieresisbelow = 0x1e73;\n t.udieresiscaron = 0x01da;\n t.udieresiscyrillic = 0x04f1;\n t.udieresisgrave = 0x01dc;\n t.udieresismacron = 0x01d6;\n t.udotbelow = 0x1ee5;\n t.ugrave = 0x00f9;\n t.ugujarati = 0x0a89;\n t.ugurmukhi = 0x0a09;\n t.uhiragana = 0x3046;\n t.uhookabove = 0x1ee7;\n t.uhorn = 0x01b0;\n t.uhornacute = 0x1ee9;\n t.uhorndotbelow = 0x1ef1;\n t.uhorngrave = 0x1eeb;\n t.uhornhookabove = 0x1eed;\n t.uhorntilde = 0x1eef;\n t.uhungarumlaut = 0x0171;\n t.uhungarumlautcyrillic = 0x04f3;\n t.uinvertedbreve = 0x0217;\n t.ukatakana = 0x30a6;\n t.ukatakanahalfwidth = 0xff73;\n t.ukcyrillic = 0x0479;\n t.ukorean = 0x315c;\n t.umacron = 0x016b;\n t.umacroncyrillic = 0x04ef;\n t.umacrondieresis = 0x1e7b;\n t.umatragurmukhi = 0x0a41;\n t.umonospace = 0xff55;\n t.underscore = 0x005f;\n t.underscoredbl = 0x2017;\n t.underscoremonospace = 0xff3f;\n t.underscorevertical = 0xfe33;\n t.underscorewavy = 0xfe4f;\n t.union = 0x222a;\n t.universal = 0x2200;\n t.uogonek = 0x0173;\n t.uparen = 0x24b0;\n t.upblock = 0x2580;\n t.upperdothebrew = 0x05c4;\n t.upsilon = 0x03c5;\n t.upsilondieresis = 0x03cb;\n t.upsilondieresistonos = 0x03b0;\n t.upsilonlatin = 0x028a;\n t.upsilontonos = 0x03cd;\n t.uptackbelowcmb = 0x031d;\n t.uptackmod = 0x02d4;\n t.uragurmukhi = 0x0a73;\n t.uring = 0x016f;\n t.ushortcyrillic = 0x045e;\n t.usmallhiragana = 0x3045;\n t.usmallkatakana = 0x30a5;\n t.usmallkatakanahalfwidth = 0xff69;\n t.ustraightcyrillic = 0x04af;\n t.ustraightstrokecyrillic = 0x04b1;\n t.utilde = 0x0169;\n t.utildeacute = 0x1e79;\n t.utildebelow = 0x1e75;\n t.uubengali = 0x098a;\n t.uudeva = 0x090a;\n t.uugujarati = 0x0a8a;\n t.uugurmukhi = 0x0a0a;\n t.uumatragurmukhi = 0x0a42;\n t.uuvowelsignbengali = 0x09c2;\n t.uuvowelsigndeva = 0x0942;\n t.uuvowelsigngujarati = 0x0ac2;\n t.uvowelsignbengali = 0x09c1;\n t.uvowelsigndeva = 0x0941;\n t.uvowelsigngujarati = 0x0ac1;\n t.v = 0x0076;\n t.vadeva = 0x0935;\n t.vagujarati = 0x0ab5;\n t.vagurmukhi = 0x0a35;\n t.vakatakana = 0x30f7;\n t.vav = 0x05d5;\n t.vavdagesh = 0xfb35;\n t.vavdagesh65 = 0xfb35;\n t.vavdageshhebrew = 0xfb35;\n t.vavhebrew = 0x05d5;\n t.vavholam = 0xfb4b;\n t.vavholamhebrew = 0xfb4b;\n t.vavvavhebrew = 0x05f0;\n t.vavyodhebrew = 0x05f1;\n t.vcircle = 0x24e5;\n t.vdotbelow = 0x1e7f;\n t.vecyrillic = 0x0432;\n t.veharabic = 0x06a4;\n t.vehfinalarabic = 0xfb6b;\n t.vehinitialarabic = 0xfb6c;\n t.vehmedialarabic = 0xfb6d;\n t.vekatakana = 0x30f9;\n t.venus = 0x2640;\n t.verticalbar = 0x007c;\n t.verticallineabovecmb = 0x030d;\n t.verticallinebelowcmb = 0x0329;\n t.verticallinelowmod = 0x02cc;\n t.verticallinemod = 0x02c8;\n t.vewarmenian = 0x057e;\n t.vhook = 0x028b;\n t.vikatakana = 0x30f8;\n t.viramabengali = 0x09cd;\n t.viramadeva = 0x094d;\n t.viramagujarati = 0x0acd;\n t.visargabengali = 0x0983;\n t.visargadeva = 0x0903;\n t.visargagujarati = 0x0a83;\n t.vmonospace = 0xff56;\n t.voarmenian = 0x0578;\n t.voicediterationhiragana = 0x309e;\n t.voicediterationkatakana = 0x30fe;\n t.voicedmarkkana = 0x309b;\n t.voicedmarkkanahalfwidth = 0xff9e;\n t.vokatakana = 0x30fa;\n t.vparen = 0x24b1;\n t.vtilde = 0x1e7d;\n t.vturned = 0x028c;\n t.vuhiragana = 0x3094;\n t.vukatakana = 0x30f4;\n t.w = 0x0077;\n t.wacute = 0x1e83;\n t.waekorean = 0x3159;\n t.wahiragana = 0x308f;\n t.wakatakana = 0x30ef;\n t.wakatakanahalfwidth = 0xff9c;\n t.wakorean = 0x3158;\n t.wasmallhiragana = 0x308e;\n t.wasmallkatakana = 0x30ee;\n t.wattosquare = 0x3357;\n t.wavedash = 0x301c;\n t.wavyunderscorevertical = 0xfe34;\n t.wawarabic = 0x0648;\n t.wawfinalarabic = 0xfeee;\n t.wawhamzaabovearabic = 0x0624;\n t.wawhamzaabovefinalarabic = 0xfe86;\n t.wbsquare = 0x33dd;\n t.wcircle = 0x24e6;\n t.wcircumflex = 0x0175;\n t.wdieresis = 0x1e85;\n t.wdotaccent = 0x1e87;\n t.wdotbelow = 0x1e89;\n t.wehiragana = 0x3091;\n t.weierstrass = 0x2118;\n t.wekatakana = 0x30f1;\n t.wekorean = 0x315e;\n t.weokorean = 0x315d;\n t.wgrave = 0x1e81;\n t.whitebullet = 0x25e6;\n t.whitecircle = 0x25cb;\n t.whitecircleinverse = 0x25d9;\n t.whitecornerbracketleft = 0x300e;\n t.whitecornerbracketleftvertical = 0xfe43;\n t.whitecornerbracketright = 0x300f;\n t.whitecornerbracketrightvertical = 0xfe44;\n t.whitediamond = 0x25c7;\n t.whitediamondcontainingblacksmalldiamond = 0x25c8;\n t.whitedownpointingsmalltriangle = 0x25bf;\n t.whitedownpointingtriangle = 0x25bd;\n t.whiteleftpointingsmalltriangle = 0x25c3;\n t.whiteleftpointingtriangle = 0x25c1;\n t.whitelenticularbracketleft = 0x3016;\n t.whitelenticularbracketright = 0x3017;\n t.whiterightpointingsmalltriangle = 0x25b9;\n t.whiterightpointingtriangle = 0x25b7;\n t.whitesmallsquare = 0x25ab;\n t.whitesmilingface = 0x263a;\n t.whitesquare = 0x25a1;\n t.whitestar = 0x2606;\n t.whitetelephone = 0x260f;\n t.whitetortoiseshellbracketleft = 0x3018;\n t.whitetortoiseshellbracketright = 0x3019;\n t.whiteuppointingsmalltriangle = 0x25b5;\n t.whiteuppointingtriangle = 0x25b3;\n t.wihiragana = 0x3090;\n t.wikatakana = 0x30f0;\n t.wikorean = 0x315f;\n t.wmonospace = 0xff57;\n t.wohiragana = 0x3092;\n t.wokatakana = 0x30f2;\n t.wokatakanahalfwidth = 0xff66;\n t.won = 0x20a9;\n t.wonmonospace = 0xffe6;\n t.wowaenthai = 0x0e27;\n t.wparen = 0x24b2;\n t.wring = 0x1e98;\n t.wsuperior = 0x02b7;\n t.wturned = 0x028d;\n t.wynn = 0x01bf;\n t.x = 0x0078;\n t.xabovecmb = 0x033d;\n t.xbopomofo = 0x3112;\n t.xcircle = 0x24e7;\n t.xdieresis = 0x1e8d;\n t.xdotaccent = 0x1e8b;\n t.xeharmenian = 0x056d;\n t.xi = 0x03be;\n t.xmonospace = 0xff58;\n t.xparen = 0x24b3;\n t.xsuperior = 0x02e3;\n t.y = 0x0079;\n t.yaadosquare = 0x334e;\n t.yabengali = 0x09af;\n t.yacute = 0x00fd;\n t.yadeva = 0x092f;\n t.yaekorean = 0x3152;\n t.yagujarati = 0x0aaf;\n t.yagurmukhi = 0x0a2f;\n t.yahiragana = 0x3084;\n t.yakatakana = 0x30e4;\n t.yakatakanahalfwidth = 0xff94;\n t.yakorean = 0x3151;\n t.yamakkanthai = 0x0e4e;\n t.yasmallhiragana = 0x3083;\n t.yasmallkatakana = 0x30e3;\n t.yasmallkatakanahalfwidth = 0xff6c;\n t.yatcyrillic = 0x0463;\n t.ycircle = 0x24e8;\n t.ycircumflex = 0x0177;\n t.ydieresis = 0x00ff;\n t.ydotaccent = 0x1e8f;\n t.ydotbelow = 0x1ef5;\n t.yeharabic = 0x064a;\n t.yehbarreearabic = 0x06d2;\n t.yehbarreefinalarabic = 0xfbaf;\n t.yehfinalarabic = 0xfef2;\n t.yehhamzaabovearabic = 0x0626;\n t.yehhamzaabovefinalarabic = 0xfe8a;\n t.yehhamzaaboveinitialarabic = 0xfe8b;\n t.yehhamzaabovemedialarabic = 0xfe8c;\n t.yehinitialarabic = 0xfef3;\n t.yehmedialarabic = 0xfef4;\n t.yehmeeminitialarabic = 0xfcdd;\n t.yehmeemisolatedarabic = 0xfc58;\n t.yehnoonfinalarabic = 0xfc94;\n t.yehthreedotsbelowarabic = 0x06d1;\n t.yekorean = 0x3156;\n t.yen = 0x00a5;\n t.yenmonospace = 0xffe5;\n t.yeokorean = 0x3155;\n t.yeorinhieuhkorean = 0x3186;\n t.yerahbenyomohebrew = 0x05aa;\n t.yerahbenyomolefthebrew = 0x05aa;\n t.yericyrillic = 0x044b;\n t.yerudieresiscyrillic = 0x04f9;\n t.yesieungkorean = 0x3181;\n t.yesieungpansioskorean = 0x3183;\n t.yesieungsioskorean = 0x3182;\n t.yetivhebrew = 0x059a;\n t.ygrave = 0x1ef3;\n t.yhook = 0x01b4;\n t.yhookabove = 0x1ef7;\n t.yiarmenian = 0x0575;\n t.yicyrillic = 0x0457;\n t.yikorean = 0x3162;\n t.yinyang = 0x262f;\n t.yiwnarmenian = 0x0582;\n t.ymonospace = 0xff59;\n t.yod = 0x05d9;\n t.yoddagesh = 0xfb39;\n t.yoddageshhebrew = 0xfb39;\n t.yodhebrew = 0x05d9;\n t.yodyodhebrew = 0x05f2;\n t.yodyodpatahhebrew = 0xfb1f;\n t.yohiragana = 0x3088;\n t.yoikorean = 0x3189;\n t.yokatakana = 0x30e8;\n t.yokatakanahalfwidth = 0xff96;\n t.yokorean = 0x315b;\n t.yosmallhiragana = 0x3087;\n t.yosmallkatakana = 0x30e7;\n t.yosmallkatakanahalfwidth = 0xff6e;\n t.yotgreek = 0x03f3;\n t.yoyaekorean = 0x3188;\n t.yoyakorean = 0x3187;\n t.yoyakthai = 0x0e22;\n t.yoyingthai = 0x0e0d;\n t.yparen = 0x24b4;\n t.ypogegrammeni = 0x037a;\n t.ypogegrammenigreekcmb = 0x0345;\n t.yr = 0x01a6;\n t.yring = 0x1e99;\n t.ysuperior = 0x02b8;\n t.ytilde = 0x1ef9;\n t.yturned = 0x028e;\n t.yuhiragana = 0x3086;\n t.yuikorean = 0x318c;\n t.yukatakana = 0x30e6;\n t.yukatakanahalfwidth = 0xff95;\n t.yukorean = 0x3160;\n t.yusbigcyrillic = 0x046b;\n t.yusbigiotifiedcyrillic = 0x046d;\n t.yuslittlecyrillic = 0x0467;\n t.yuslittleiotifiedcyrillic = 0x0469;\n t.yusmallhiragana = 0x3085;\n t.yusmallkatakana = 0x30e5;\n t.yusmallkatakanahalfwidth = 0xff6d;\n t.yuyekorean = 0x318b;\n t.yuyeokorean = 0x318a;\n t.yyabengali = 0x09df;\n t.yyadeva = 0x095f;\n t.z = 0x007a;\n t.zaarmenian = 0x0566;\n t.zacute = 0x017a;\n t.zadeva = 0x095b;\n t.zagurmukhi = 0x0a5b;\n t.zaharabic = 0x0638;\n t.zahfinalarabic = 0xfec6;\n t.zahinitialarabic = 0xfec7;\n t.zahiragana = 0x3056;\n t.zahmedialarabic = 0xfec8;\n t.zainarabic = 0x0632;\n t.zainfinalarabic = 0xfeb0;\n t.zakatakana = 0x30b6;\n t.zaqefgadolhebrew = 0x0595;\n t.zaqefqatanhebrew = 0x0594;\n t.zarqahebrew = 0x0598;\n t.zayin = 0x05d6;\n t.zayindagesh = 0xfb36;\n t.zayindageshhebrew = 0xfb36;\n t.zayinhebrew = 0x05d6;\n t.zbopomofo = 0x3117;\n t.zcaron = 0x017e;\n t.zcircle = 0x24e9;\n t.zcircumflex = 0x1e91;\n t.zcurl = 0x0291;\n t.zdot = 0x017c;\n t.zdotaccent = 0x017c;\n t.zdotbelow = 0x1e93;\n t.zecyrillic = 0x0437;\n t.zedescendercyrillic = 0x0499;\n t.zedieresiscyrillic = 0x04df;\n t.zehiragana = 0x305c;\n t.zekatakana = 0x30bc;\n t.zero = 0x0030;\n t.zeroarabic = 0x0660;\n t.zerobengali = 0x09e6;\n t.zerodeva = 0x0966;\n t.zerogujarati = 0x0ae6;\n t.zerogurmukhi = 0x0a66;\n t.zerohackarabic = 0x0660;\n t.zeroinferior = 0x2080;\n t.zeromonospace = 0xff10;\n t.zerooldstyle = 0xf730;\n t.zeropersian = 0x06f0;\n t.zerosuperior = 0x2070;\n t.zerothai = 0x0e50;\n t.zerowidthjoiner = 0xfeff;\n t.zerowidthnonjoiner = 0x200c;\n t.zerowidthspace = 0x200b;\n t.zeta = 0x03b6;\n t.zhbopomofo = 0x3113;\n t.zhearmenian = 0x056a;\n t.zhebrevecyrillic = 0x04c2;\n t.zhecyrillic = 0x0436;\n t.zhedescendercyrillic = 0x0497;\n t.zhedieresiscyrillic = 0x04dd;\n t.zihiragana = 0x3058;\n t.zikatakana = 0x30b8;\n t.zinorhebrew = 0x05ae;\n t.zlinebelow = 0x1e95;\n t.zmonospace = 0xff5a;\n t.zohiragana = 0x305e;\n t.zokatakana = 0x30be;\n t.zparen = 0x24b5;\n t.zretroflexhook = 0x0290;\n t.zstroke = 0x01b6;\n t.zuhiragana = 0x305a;\n t.zukatakana = 0x30ba;\n t[\".notdef\"] = 0x0000;\n\n // TeX-specific glyph names.\n t.angbracketleftbig = 0x2329;\n t.angbracketleftBig = 0x2329;\n t.angbracketleftbigg = 0x2329;\n t.angbracketleftBigg = 0x2329;\n t.angbracketrightBig = 0x232a;\n t.angbracketrightbig = 0x232a;\n t.angbracketrightBigg = 0x232a;\n t.angbracketrightbigg = 0x232a;\n t.arrowhookleft = 0x21aa;\n t.arrowhookright = 0x21a9;\n t.arrowlefttophalf = 0x21bc;\n t.arrowleftbothalf = 0x21bd;\n t.arrownortheast = 0x2197;\n t.arrownorthwest = 0x2196;\n t.arrowrighttophalf = 0x21c0;\n t.arrowrightbothalf = 0x21c1;\n t.arrowsoutheast = 0x2198;\n t.arrowsouthwest = 0x2199;\n t.backslashbig = 0x2216;\n t.backslashBig = 0x2216;\n t.backslashBigg = 0x2216;\n t.backslashbigg = 0x2216;\n t.bardbl = 0x2016;\n t.bracehtipdownleft = 0xfe37;\n t.bracehtipdownright = 0xfe37;\n t.bracehtipupleft = 0xfe38;\n t.bracehtipupright = 0xfe38;\n t.braceleftBig = 0x007b;\n t.braceleftbig = 0x007b;\n t.braceleftbigg = 0x007b;\n t.braceleftBigg = 0x007b;\n t.bracerightBig = 0x007d;\n t.bracerightbig = 0x007d;\n t.bracerightbigg = 0x007d;\n t.bracerightBigg = 0x007d;\n t.bracketleftbig = 0x005b;\n t.bracketleftBig = 0x005b;\n t.bracketleftbigg = 0x005b;\n t.bracketleftBigg = 0x005b;\n t.bracketrightBig = 0x005d;\n t.bracketrightbig = 0x005d;\n t.bracketrightbigg = 0x005d;\n t.bracketrightBigg = 0x005d;\n t.ceilingleftbig = 0x2308;\n t.ceilingleftBig = 0x2308;\n t.ceilingleftBigg = 0x2308;\n t.ceilingleftbigg = 0x2308;\n t.ceilingrightbig = 0x2309;\n t.ceilingrightBig = 0x2309;\n t.ceilingrightbigg = 0x2309;\n t.ceilingrightBigg = 0x2309;\n t.circledotdisplay = 0x2299;\n t.circledottext = 0x2299;\n t.circlemultiplydisplay = 0x2297;\n t.circlemultiplytext = 0x2297;\n t.circleplusdisplay = 0x2295;\n t.circleplustext = 0x2295;\n t.contintegraldisplay = 0x222e;\n t.contintegraltext = 0x222e;\n t.coproductdisplay = 0x2210;\n t.coproducttext = 0x2210;\n t.floorleftBig = 0x230a;\n t.floorleftbig = 0x230a;\n t.floorleftbigg = 0x230a;\n t.floorleftBigg = 0x230a;\n t.floorrightbig = 0x230b;\n t.floorrightBig = 0x230b;\n t.floorrightBigg = 0x230b;\n t.floorrightbigg = 0x230b;\n t.hatwide = 0x0302;\n t.hatwider = 0x0302;\n t.hatwidest = 0x0302;\n t.intercal = 0x1d40;\n t.integraldisplay = 0x222b;\n t.integraltext = 0x222b;\n t.intersectiondisplay = 0x22c2;\n t.intersectiontext = 0x22c2;\n t.logicalanddisplay = 0x2227;\n t.logicalandtext = 0x2227;\n t.logicalordisplay = 0x2228;\n t.logicalortext = 0x2228;\n t.parenleftBig = 0x0028;\n t.parenleftbig = 0x0028;\n t.parenleftBigg = 0x0028;\n t.parenleftbigg = 0x0028;\n t.parenrightBig = 0x0029;\n t.parenrightbig = 0x0029;\n t.parenrightBigg = 0x0029;\n t.parenrightbigg = 0x0029;\n t.prime = 0x2032;\n t.productdisplay = 0x220f;\n t.producttext = 0x220f;\n t.radicalbig = 0x221a;\n t.radicalBig = 0x221a;\n t.radicalBigg = 0x221a;\n t.radicalbigg = 0x221a;\n t.radicalbt = 0x221a;\n t.radicaltp = 0x221a;\n t.radicalvertex = 0x221a;\n t.slashbig = 0x002f;\n t.slashBig = 0x002f;\n t.slashBigg = 0x002f;\n t.slashbigg = 0x002f;\n t.summationdisplay = 0x2211;\n t.summationtext = 0x2211;\n t.tildewide = 0x02dc;\n t.tildewider = 0x02dc;\n t.tildewidest = 0x02dc;\n t.uniondisplay = 0x22c3;\n t.unionmultidisplay = 0x228e;\n t.unionmultitext = 0x228e;\n t.unionsqdisplay = 0x2294;\n t.unionsqtext = 0x2294;\n t.uniontext = 0x22c3;\n t.vextenddouble = 0x2225;\n t.vextendsingle = 0x2223;\n});\n\nconst getDingbatsGlyphsUnicode = getLookupTableFactory(function (t) {\n t.space = 0x0020;\n t.a1 = 0x2701;\n t.a2 = 0x2702;\n t.a202 = 0x2703;\n t.a3 = 0x2704;\n t.a4 = 0x260e;\n t.a5 = 0x2706;\n t.a119 = 0x2707;\n t.a118 = 0x2708;\n t.a117 = 0x2709;\n t.a11 = 0x261b;\n t.a12 = 0x261e;\n t.a13 = 0x270c;\n t.a14 = 0x270d;\n t.a15 = 0x270e;\n t.a16 = 0x270f;\n t.a105 = 0x2710;\n t.a17 = 0x2711;\n t.a18 = 0x2712;\n t.a19 = 0x2713;\n t.a20 = 0x2714;\n t.a21 = 0x2715;\n t.a22 = 0x2716;\n t.a23 = 0x2717;\n t.a24 = 0x2718;\n t.a25 = 0x2719;\n t.a26 = 0x271a;\n t.a27 = 0x271b;\n t.a28 = 0x271c;\n t.a6 = 0x271d;\n t.a7 = 0x271e;\n t.a8 = 0x271f;\n t.a9 = 0x2720;\n t.a10 = 0x2721;\n t.a29 = 0x2722;\n t.a30 = 0x2723;\n t.a31 = 0x2724;\n t.a32 = 0x2725;\n t.a33 = 0x2726;\n t.a34 = 0x2727;\n t.a35 = 0x2605;\n t.a36 = 0x2729;\n t.a37 = 0x272a;\n t.a38 = 0x272b;\n t.a39 = 0x272c;\n t.a40 = 0x272d;\n t.a41 = 0x272e;\n t.a42 = 0x272f;\n t.a43 = 0x2730;\n t.a44 = 0x2731;\n t.a45 = 0x2732;\n t.a46 = 0x2733;\n t.a47 = 0x2734;\n t.a48 = 0x2735;\n t.a49 = 0x2736;\n t.a50 = 0x2737;\n t.a51 = 0x2738;\n t.a52 = 0x2739;\n t.a53 = 0x273a;\n t.a54 = 0x273b;\n t.a55 = 0x273c;\n t.a56 = 0x273d;\n t.a57 = 0x273e;\n t.a58 = 0x273f;\n t.a59 = 0x2740;\n t.a60 = 0x2741;\n t.a61 = 0x2742;\n t.a62 = 0x2743;\n t.a63 = 0x2744;\n t.a64 = 0x2745;\n t.a65 = 0x2746;\n t.a66 = 0x2747;\n t.a67 = 0x2748;\n t.a68 = 0x2749;\n t.a69 = 0x274a;\n t.a70 = 0x274b;\n t.a71 = 0x25cf;\n t.a72 = 0x274d;\n t.a73 = 0x25a0;\n t.a74 = 0x274f;\n t.a203 = 0x2750;\n t.a75 = 0x2751;\n t.a204 = 0x2752;\n t.a76 = 0x25b2;\n t.a77 = 0x25bc;\n t.a78 = 0x25c6;\n t.a79 = 0x2756;\n t.a81 = 0x25d7;\n t.a82 = 0x2758;\n t.a83 = 0x2759;\n t.a84 = 0x275a;\n t.a97 = 0x275b;\n t.a98 = 0x275c;\n t.a99 = 0x275d;\n t.a100 = 0x275e;\n t.a101 = 0x2761;\n t.a102 = 0x2762;\n t.a103 = 0x2763;\n t.a104 = 0x2764;\n t.a106 = 0x2765;\n t.a107 = 0x2766;\n t.a108 = 0x2767;\n t.a112 = 0x2663;\n t.a111 = 0x2666;\n t.a110 = 0x2665;\n t.a109 = 0x2660;\n t.a120 = 0x2460;\n t.a121 = 0x2461;\n t.a122 = 0x2462;\n t.a123 = 0x2463;\n t.a124 = 0x2464;\n t.a125 = 0x2465;\n t.a126 = 0x2466;\n t.a127 = 0x2467;\n t.a128 = 0x2468;\n t.a129 = 0x2469;\n t.a130 = 0x2776;\n t.a131 = 0x2777;\n t.a132 = 0x2778;\n t.a133 = 0x2779;\n t.a134 = 0x277a;\n t.a135 = 0x277b;\n t.a136 = 0x277c;\n t.a137 = 0x277d;\n t.a138 = 0x277e;\n t.a139 = 0x277f;\n t.a140 = 0x2780;\n t.a141 = 0x2781;\n t.a142 = 0x2782;\n t.a143 = 0x2783;\n t.a144 = 0x2784;\n t.a145 = 0x2785;\n t.a146 = 0x2786;\n t.a147 = 0x2787;\n t.a148 = 0x2788;\n t.a149 = 0x2789;\n t.a150 = 0x278a;\n t.a151 = 0x278b;\n t.a152 = 0x278c;\n t.a153 = 0x278d;\n t.a154 = 0x278e;\n t.a155 = 0x278f;\n t.a156 = 0x2790;\n t.a157 = 0x2791;\n t.a158 = 0x2792;\n t.a159 = 0x2793;\n t.a160 = 0x2794;\n t.a161 = 0x2192;\n t.a163 = 0x2194;\n t.a164 = 0x2195;\n t.a196 = 0x2798;\n t.a165 = 0x2799;\n t.a192 = 0x279a;\n t.a166 = 0x279b;\n t.a167 = 0x279c;\n t.a168 = 0x279d;\n t.a169 = 0x279e;\n t.a170 = 0x279f;\n t.a171 = 0x27a0;\n t.a172 = 0x27a1;\n t.a173 = 0x27a2;\n t.a162 = 0x27a3;\n t.a174 = 0x27a4;\n t.a175 = 0x27a5;\n t.a176 = 0x27a6;\n t.a177 = 0x27a7;\n t.a178 = 0x27a8;\n t.a179 = 0x27a9;\n t.a193 = 0x27aa;\n t.a180 = 0x27ab;\n t.a199 = 0x27ac;\n t.a181 = 0x27ad;\n t.a200 = 0x27ae;\n t.a182 = 0x27af;\n t.a201 = 0x27b1;\n t.a183 = 0x27b2;\n t.a184 = 0x27b3;\n t.a197 = 0x27b4;\n t.a185 = 0x27b5;\n t.a194 = 0x27b6;\n t.a198 = 0x27b7;\n t.a186 = 0x27b8;\n t.a195 = 0x27b9;\n t.a187 = 0x27ba;\n t.a188 = 0x27bb;\n t.a189 = 0x27bc;\n t.a190 = 0x27bd;\n t.a191 = 0x27be;\n t.a89 = 0x2768; // 0xF8D7\n t.a90 = 0x2769; // 0xF8D8\n t.a93 = 0x276a; // 0xF8D9\n t.a94 = 0x276b; // 0xF8DA\n t.a91 = 0x276c; // 0xF8DB\n t.a92 = 0x276d; // 0xF8DC\n t.a205 = 0x276e; // 0xF8DD\n t.a85 = 0x276f; // 0xF8DE\n t.a206 = 0x2770; // 0xF8DF\n t.a86 = 0x2771; // 0xF8E0\n t.a87 = 0x2772; // 0xF8E1\n t.a88 = 0x2773; // 0xF8E2\n t.a95 = 0x2774; // 0xF8E3\n t.a96 = 0x2775; // 0xF8E4\n t[\".notdef\"] = 0x0000;\n});\n\nexport { getDingbatsGlyphsUnicode, getGlyphsUnicode };\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\n\n// Some characters, e.g. copyrightserif, are mapped to the private use area\n// and might not be displayed using standard fonts. Mapping/hacking well-known\n// chars to the similar equivalents in the normal characters range.\nconst getSpecialPUASymbols = getLookupTableFactory(function (t) {\n t[63721] = 0x00a9; // copyrightsans (0xF8E9) => copyright\n t[63193] = 0x00a9; // copyrightserif (0xF6D9) => copyright\n t[63720] = 0x00ae; // registersans (0xF8E8) => registered\n t[63194] = 0x00ae; // registerserif (0xF6DA) => registered\n t[63722] = 0x2122; // trademarksans (0xF8EA) => trademark\n t[63195] = 0x2122; // trademarkserif (0xF6DB) => trademark\n t[63729] = 0x23a7; // bracelefttp (0xF8F1)\n t[63730] = 0x23a8; // braceleftmid (0xF8F2)\n t[63731] = 0x23a9; // braceleftbt (0xF8F3)\n t[63740] = 0x23ab; // bracerighttp (0xF8FC)\n t[63741] = 0x23ac; // bracerightmid (0xF8FD)\n t[63742] = 0x23ad; // bracerightbt (0xF8FE)\n t[63726] = 0x23a1; // bracketlefttp (0xF8EE)\n t[63727] = 0x23a2; // bracketleftex (0xF8EF)\n t[63728] = 0x23a3; // bracketleftbt (0xF8F0)\n t[63737] = 0x23a4; // bracketrighttp (0xF8F9)\n t[63738] = 0x23a5; // bracketrightex (0xF8FA)\n t[63739] = 0x23a6; // bracketrightbt (0xF8FB)\n t[63723] = 0x239b; // parenlefttp (0xF8EB)\n t[63724] = 0x239c; // parenleftex (0xF8EC)\n t[63725] = 0x239d; // parenleftbt (0xF8ED)\n t[63734] = 0x239e; // parenrighttp (0xF8F6)\n t[63735] = 0x239f; // parenrightex (0xF8F7)\n t[63736] = 0x23a0; // parenrightbt (0xF8F8)\n});\n\nfunction mapSpecialUnicodeValues(code) {\n if (code >= 0xfff0 && code <= 0xffff) {\n // Specials unicode block.\n return 0;\n } else if (code >= 0xf600 && code <= 0xf8ff) {\n return getSpecialPUASymbols()[code] || code;\n } else if (code === /* softhyphen = */ 0x00ad) {\n return 0x002d; // hyphen\n }\n return code;\n}\n\nfunction getUnicodeForGlyph(name, glyphsUnicodeMap) {\n let unicode = glyphsUnicodeMap[name];\n if (unicode !== undefined) {\n return unicode;\n }\n if (!name) {\n return -1;\n }\n // Try to recover valid Unicode values from 'uniXXXX'/'uXXXX{XX}' glyphs.\n if (name[0] === \"u\") {\n const nameLen = name.length;\n let hexStr;\n\n if (nameLen === 7 && name[1] === \"n\" && name[2] === \"i\") {\n // 'uniXXXX'\n hexStr = name.substring(3);\n } else if (nameLen >= 5 && nameLen <= 7) {\n // 'uXXXX{XX}'\n hexStr = name.substring(1);\n } else {\n return -1;\n }\n // Check for upper-case hexadecimal characters, to avoid false positives.\n if (hexStr === hexStr.toUpperCase()) {\n unicode = parseInt(hexStr, 16);\n if (unicode >= 0) {\n return unicode;\n }\n }\n }\n return -1;\n}\n\n// See https://learn.microsoft.com/en-us/typography/opentype/spec/os2#ulunicoderange1-bits-031ulunicoderange2-bits-3263ulunicoderange3-bits-6495ulunicoderange4-bits-96127\nconst UnicodeRanges = [\n [0x0000, 0x007f], // 0 - Basic Latin\n [0x0080, 0x00ff], // 1 - Latin-1 Supplement\n [0x0100, 0x017f], // 2 - Latin Extended-A\n [0x0180, 0x024f], // 3 - Latin Extended-B\n [0x0250, 0x02af, 0x1d00, 0x1d7f, 0x1d80, 0x1dbf], // 4 - IPA Extensions - Phonetic Extensions - Phonetic Extensions Supplement\n [0x02b0, 0x02ff, 0xa700, 0xa71f], // 5 - Spacing Modifier Letters - Modifier Tone Letters\n [0x0300, 0x036f, 0x1dc0, 0x1dff], // 6 - Combining Diacritical Marks - Combining Diacritical Marks Supplement\n [0x0370, 0x03ff], // 7 - Greek and Coptic\n [0x2c80, 0x2cff], // 8 - Coptic\n [0x0400, 0x04ff, 0x0500, 0x052f, 0x2de0, 0x2dff, 0xa640, 0xa69f], // 9 - Cyrillic - Cyrillic Supplement - Cyrillic Extended-A - Cyrillic Extended-B\n [0x0530, 0x058f], // 10 - Armenian\n [0x0590, 0x05ff], // 11 - Hebrew\n [0xa500, 0xa63f], // 12 - Vai\n [0x0600, 0x06ff, 0x0750, 0x077f], // 13 - Arabic - Arabic Supplement\n [0x07c0, 0x07ff], // 14 - NKo\n [0x0900, 0x097f], // 15 - Devanagari\n [0x0980, 0x09ff], // 16 - Bengali\n [0x0a00, 0x0a7f], // 17 - Gurmukhi\n [0x0a80, 0x0aff], // 18 - Gujarati\n [0x0b00, 0x0b7f], // 19 - Oriya\n [0x0b80, 0x0bff], // 20 - Tamil\n [0x0c00, 0x0c7f], // 21 - Telugu\n [0x0c80, 0x0cff], // 22 - Kannada\n [0x0d00, 0x0d7f], // 23 - Malayalam\n [0x0e00, 0x0e7f], // 24 - Thai\n [0x0e80, 0x0eff], // 25 - Lao\n [0x10a0, 0x10ff, 0x2d00, 0x2d2f], // 26 - Georgian - Georgian Supplement\n [0x1b00, 0x1b7f], // 27 - Balinese\n [0x1100, 0x11ff], // 28 - Hangul Jamo\n [0x1e00, 0x1eff, 0x2c60, 0x2c7f, 0xa720, 0xa7ff], // 29 - Latin Extended Additional - Latin Extended-C - Latin Extended-D\n [0x1f00, 0x1fff], // 30 - Greek Extended\n [0x2000, 0x206f, 0x2e00, 0x2e7f], // 31 - General Punctuation - Supplemental Punctuation\n [0x2070, 0x209f], // 32 - Superscripts And Subscripts\n [0x20a0, 0x20cf], // 33 - Currency Symbol\n [0x20d0, 0x20ff], // 34 - Combining Diacritical Marks\n [0x2100, 0x214f], // 35 - Letterlike Symbols\n [0x2150, 0x218f], // 36 - Number Forms\n [0x2190, 0x21ff, 0x27f0, 0x27ff, 0x2900, 0x297f, 0x2b00, 0x2bff], // 37 - Arrows - Supplemental Arrows-A - Supplemental Arrows-B - Miscellaneous Symbols and Arrows\n [0x2200, 0x22ff, 0x2a00, 0x2aff, 0x27c0, 0x27ef, 0x2980, 0x29ff], // 38 - Mathematical Operators - Supplemental Mathematical Operators - Miscellaneous Mathematical Symbols-A - Miscellaneous Mathematical Symbols-B\n [0x2300, 0x23ff], // 39 - Miscellaneous Technical\n [0x2400, 0x243f], // 40 - Control Pictures\n [0x2440, 0x245f], // 41 - Optical Character Recognition\n [0x2460, 0x24ff], // 42 - Enclosed Alphanumerics\n [0x2500, 0x257f], // 43 - Box Drawing\n [0x2580, 0x259f], // 44 - Block Elements\n [0x25a0, 0x25ff], // 45 - Geometric Shapes\n [0x2600, 0x26ff], // 46 - Miscellaneous Symbols\n [0x2700, 0x27bf], // 47 - Dingbats\n [0x3000, 0x303f], // 48 - CJK Symbols And Punctuation\n [0x3040, 0x309f], // 49 - Hiragana\n [0x30a0, 0x30ff, 0x31f0, 0x31ff], // 50 - Katakana - Katakana Phonetic Extensions\n [0x3100, 0x312f, 0x31a0, 0x31bf], // 51 - Bopomofo - Bopomofo Extended\n [0x3130, 0x318f], // 52 - Hangul Compatibility Jamo\n [0xa840, 0xa87f], // 53 - Phags-pa\n [0x3200, 0x32ff], // 54 - Enclosed CJK Letters And Months\n [0x3300, 0x33ff], // 55 - CJK Compatibility\n [0xac00, 0xd7af], // 56 - Hangul Syllables\n [0xd800, 0xdfff], // 57 - Non-Plane 0 *\n [0x10900, 0x1091f], // 58 - Phoenicia\n [\n 0x4e00, 0x9fff, 0x2e80, 0x2eff, 0x2f00, 0x2fdf, 0x2ff0, 0x2fff, 0x3400,\n 0x4dbf, 0x20000, 0x2a6df, 0x3190, 0x319f,\n ], // 59 - CJK Unified Ideographs - CJK Radicals Supplement - Kangxi Radicals - Ideographic Description Characters - CJK Unified Ideographs Extension A - CJK Unified Ideographs Extension B - Kanbun\n [0xe000, 0xf8ff], // 60 - Private Use Area (plane 0)\n [0x31c0, 0x31ef, 0xf900, 0xfaff, 0x2f800, 0x2fa1f], // 61 - CJK Strokes - CJK Compatibility Ideographs - CJK Compatibility Ideographs Supplement\n [0xfb00, 0xfb4f], // 62 - Alphabetic Presentation Forms\n [0xfb50, 0xfdff], // 63 - Arabic Presentation Forms-A\n [0xfe20, 0xfe2f], // 64 - Combining Half Marks\n [0xfe10, 0xfe1f], // 65 - Vertical Forms\n [0xfe50, 0xfe6f], // 66 - Small Form Variants\n [0xfe70, 0xfeff], // 67 - Arabic Presentation Forms-B\n [0xff00, 0xffef], // 68 - Halfwidth And Fullwidth Forms\n [0xfff0, 0xffff], // 69 - Specials\n [0x0f00, 0x0fff], // 70 - Tibetan\n [0x0700, 0x074f], // 71 - Syriac\n [0x0780, 0x07bf], // 72 - Thaana\n [0x0d80, 0x0dff], // 73 - Sinhala\n [0x1000, 0x109f], // 74 - Myanmar\n [0x1200, 0x137f, 0x1380, 0x139f, 0x2d80, 0x2ddf], // 75 - Ethiopic - Ethiopic Supplement - Ethiopic Extended\n [0x13a0, 0x13ff], // 76 - Cherokee\n [0x1400, 0x167f], // 77 - Unified Canadian Aboriginal Syllabics\n [0x1680, 0x169f], // 78 - Ogham\n [0x16a0, 0x16ff], // 79 - Runic\n [0x1780, 0x17ff], // 80 - Khmer\n [0x1800, 0x18af], // 81 - Mongolian\n [0x2800, 0x28ff], // 82 - Braille Patterns\n [0xa000, 0xa48f], // 83 - Yi Syllables\n [0x1700, 0x171f, 0x1720, 0x173f, 0x1740, 0x175f, 0x1760, 0x177f], // 84 - Tagalog - Hanunoo - Buhid - Tagbanwa\n [0x10300, 0x1032f], // 85 - Old Italic\n [0x10330, 0x1034f], // 86 - Gothic\n [0x10400, 0x1044f], // 87 - Deseret\n [0x1d000, 0x1d0ff, 0x1d100, 0x1d1ff, 0x1d200, 0x1d24f], // 88 - Byzantine Musical Symbols - Musical Symbols - Ancient Greek Musical Notation\n [0x1d400, 0x1d7ff], // 89 - Mathematical Alphanumeric Symbols\n [0xff000, 0xffffd], // 90 - Private Use (plane 15)\n [0xfe00, 0xfe0f, 0xe0100, 0xe01ef], // 91 - Variation Selectors - Variation Selectors Supplement\n [0xe0000, 0xe007f], // 92 - Tags\n [0x1900, 0x194f], // 93 - Limbu\n [0x1950, 0x197f], // 94 - Tai Le\n [0x1980, 0x19df], // 95 - New Tai Lue\n [0x1a00, 0x1a1f], // 96 - Buginese\n [0x2c00, 0x2c5f], // 97 - Glagolitic\n [0x2d30, 0x2d7f], // 98 - Tifinagh\n [0x4dc0, 0x4dff], // 99 - Yijing Hexagram Symbols\n [0xa800, 0xa82f], // 100 - Syloti Nagri\n [0x10000, 0x1007f, 0x10080, 0x100ff, 0x10100, 0x1013f], // 101 - Linear B Syllabary - Linear B Ideograms - Aegean Numbers\n [0x10140, 0x1018f], // 102 - Ancient Greek Numbers\n [0x10380, 0x1039f], // 103 - Ugaritic\n [0x103a0, 0x103df], // 104 - Old Persian\n [0x10450, 0x1047f], // 105 - Shavian\n [0x10480, 0x104af], // 106 - Osmanya\n [0x10800, 0x1083f], // 107 - Cypriot Syllabary\n [0x10a00, 0x10a5f], // 108 - Kharoshthi\n [0x1d300, 0x1d35f], // 109 - Tai Xuan Jing Symbols\n [0x12000, 0x123ff, 0x12400, 0x1247f], // 110 - Cuneiform - Cuneiform Numbers and Punctuation\n [0x1d360, 0x1d37f], // 111 - Counting Rod Numerals\n [0x1b80, 0x1bbf], // 112 - Sundanese\n [0x1c00, 0x1c4f], // 113 - Lepcha\n [0x1c50, 0x1c7f], // 114 - Ol Chiki\n [0xa880, 0xa8df], // 115 - Saurashtra\n [0xa900, 0xa92f], // 116 - Kayah Li\n [0xa930, 0xa95f], // 117 - Rejang\n [0xaa00, 0xaa5f], // 118 - Cham\n [0x10190, 0x101cf], // 119 - Ancient Symbols\n [0x101d0, 0x101ff], // 120 - Phaistos Disc\n [0x102a0, 0x102df, 0x10280, 0x1029f, 0x10920, 0x1093f], // 121 - Carian - Lycian - Lydian\n [0x1f030, 0x1f09f, 0x1f000, 0x1f02f], // 122 - Domino Tiles - Mahjong Tiles\n];\n\nfunction getUnicodeRangeFor(value, lastPosition = -1) {\n // TODO: create a map range => position, sort the ranges and cache it.\n // Then we can make a binary search for finding a range for a given unicode.\n if (lastPosition !== -1) {\n const range = UnicodeRanges[lastPosition];\n for (let i = 0, ii = range.length; i < ii; i += 2) {\n if (value >= range[i] && value <= range[i + 1]) {\n return lastPosition;\n }\n }\n }\n for (let i = 0, ii = UnicodeRanges.length; i < ii; i++) {\n const range = UnicodeRanges[i];\n for (let j = 0, jj = range.length; j < jj; j += 2) {\n if (value >= range[j] && value <= range[j + 1]) {\n return i;\n }\n }\n }\n return -1;\n}\n\nconst SpecialCharRegExp = new RegExp(\"^(\\\\s)|(\\\\p{Mn})|(\\\\p{Cf})$\", \"u\");\nconst CategoryCache = new Map();\n\nfunction getCharUnicodeCategory(char) {\n const cachedCategory = CategoryCache.get(char);\n if (cachedCategory) {\n return cachedCategory;\n }\n const groups = char.match(SpecialCharRegExp);\n const category = {\n isWhitespace: !!groups?.[1],\n isZeroWidthDiacritic: !!groups?.[2],\n isInvisibleFormatMark: !!groups?.[3],\n };\n CategoryCache.set(char, category);\n return category;\n}\n\nfunction clearUnicodeCaches() {\n CategoryCache.clear();\n}\n\nexport {\n clearUnicodeCaches,\n getCharUnicodeCategory,\n getUnicodeForGlyph,\n getUnicodeRangeFor,\n mapSpecialUnicodeValues,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getEncoding, StandardEncoding } from \"./encodings.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { getUnicodeForGlyph } from \"./unicode.js\";\nimport { info } from \"../shared/util.js\";\n\n// Accented characters have issues on Windows and Linux. When this flag is\n// enabled glyphs that use seac and seac style endchar operators are truncated\n// and we instead just store the glyph id's of the base glyph and its accent to\n// be drawn individually.\n// Linux (freetype) requires that when a seac style endchar is used\n// that the charset must be a predefined one, however we build a\n// custom one. Windows just refuses to draw glyphs with seac operators.\nconst SEAC_ANALYSIS_ENABLED = true;\n\nconst FontFlags = {\n FixedPitch: 1,\n Serif: 2,\n Symbolic: 4,\n Script: 8,\n Nonsymbolic: 32,\n Italic: 64,\n AllCap: 65536,\n SmallCap: 131072,\n ForceBold: 262144,\n};\n\n// prettier-ignore\nconst MacStandardGlyphOrdering = [\n \".notdef\", \".null\", \"nonmarkingreturn\", \"space\", \"exclam\", \"quotedbl\",\n \"numbersign\", \"dollar\", \"percent\", \"ampersand\", \"quotesingle\", \"parenleft\",\n \"parenright\", \"asterisk\", \"plus\", \"comma\", \"hyphen\", \"period\", \"slash\",\n \"zero\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\",\n \"nine\", \"colon\", \"semicolon\", \"less\", \"equal\", \"greater\", \"question\", \"at\",\n \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\",\n \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"bracketleft\",\n \"backslash\", \"bracketright\", \"asciicircum\", \"underscore\", \"grave\", \"a\", \"b\",\n \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\",\n \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"braceleft\", \"bar\", \"braceright\",\n \"asciitilde\", \"Adieresis\", \"Aring\", \"Ccedilla\", \"Eacute\", \"Ntilde\",\n \"Odieresis\", \"Udieresis\", \"aacute\", \"agrave\", \"acircumflex\", \"adieresis\",\n \"atilde\", \"aring\", \"ccedilla\", \"eacute\", \"egrave\", \"ecircumflex\", \"edieresis\",\n \"iacute\", \"igrave\", \"icircumflex\", \"idieresis\", \"ntilde\", \"oacute\", \"ograve\",\n \"ocircumflex\", \"odieresis\", \"otilde\", \"uacute\", \"ugrave\", \"ucircumflex\",\n \"udieresis\", \"dagger\", \"degree\", \"cent\", \"sterling\", \"section\", \"bullet\",\n \"paragraph\", \"germandbls\", \"registered\", \"copyright\", \"trademark\", \"acute\",\n \"dieresis\", \"notequal\", \"AE\", \"Oslash\", \"infinity\", \"plusminus\", \"lessequal\",\n \"greaterequal\", \"yen\", \"mu\", \"partialdiff\", \"summation\", \"product\", \"pi\",\n \"integral\", \"ordfeminine\", \"ordmasculine\", \"Omega\", \"ae\", \"oslash\",\n \"questiondown\", \"exclamdown\", \"logicalnot\", \"radical\", \"florin\",\n \"approxequal\", \"Delta\", \"guillemotleft\", \"guillemotright\", \"ellipsis\",\n \"nonbreakingspace\", \"Agrave\", \"Atilde\", \"Otilde\", \"OE\", \"oe\", \"endash\",\n \"emdash\", \"quotedblleft\", \"quotedblright\", \"quoteleft\", \"quoteright\",\n \"divide\", \"lozenge\", \"ydieresis\", \"Ydieresis\", \"fraction\", \"currency\",\n \"guilsinglleft\", \"guilsinglright\", \"fi\", \"fl\", \"daggerdbl\", \"periodcentered\",\n \"quotesinglbase\", \"quotedblbase\", \"perthousand\", \"Acircumflex\",\n \"Ecircumflex\", \"Aacute\", \"Edieresis\", \"Egrave\", \"Iacute\", \"Icircumflex\",\n \"Idieresis\", \"Igrave\", \"Oacute\", \"Ocircumflex\", \"apple\", \"Ograve\", \"Uacute\",\n \"Ucircumflex\", \"Ugrave\", \"dotlessi\", \"circumflex\", \"tilde\", \"macron\",\n \"breve\", \"dotaccent\", \"ring\", \"cedilla\", \"hungarumlaut\", \"ogonek\", \"caron\",\n \"Lslash\", \"lslash\", \"Scaron\", \"scaron\", \"Zcaron\", \"zcaron\", \"brokenbar\",\n \"Eth\", \"eth\", \"Yacute\", \"yacute\", \"Thorn\", \"thorn\", \"minus\", \"multiply\",\n \"onesuperior\", \"twosuperior\", \"threesuperior\", \"onehalf\", \"onequarter\",\n \"threequarters\", \"franc\", \"Gbreve\", \"gbreve\", \"Idotaccent\", \"Scedilla\",\n \"scedilla\", \"Cacute\", \"cacute\", \"Ccaron\", \"ccaron\", \"dcroat\"];\n\n// Some bad PDF generators, e.g. Scribus PDF, include glyph names\n// in a 'uniXXXX' format -- attempting to recover proper ones.\nfunction recoverGlyphName(name, glyphsUnicodeMap) {\n if (glyphsUnicodeMap[name] !== undefined) {\n return name;\n }\n // The glyph name is non-standard, trying to recover.\n const unicode = getUnicodeForGlyph(name, glyphsUnicodeMap);\n if (unicode !== -1) {\n for (const key in glyphsUnicodeMap) {\n if (glyphsUnicodeMap[key] === unicode) {\n return key;\n }\n }\n }\n info(\"Unable to recover a standard glyph name for: \" + name);\n return name;\n}\n\n/**\n * Shared logic for building a char code to glyph id mapping for Type1 and\n * simple CFF fonts. See section 9.6.6.2 of the spec.\n * @param {Object} properties Font properties object.\n * @param {Object} builtInEncoding The encoding contained within the actual font\n * data.\n * @param {Array} glyphNames Array of glyph names where the index is the\n * glyph ID.\n * @returns {Object} A char code to glyph ID map.\n */\nfunction type1FontGlyphMapping(properties, builtInEncoding, glyphNames) {\n const charCodeToGlyphId = Object.create(null);\n let glyphId, charCode, baseEncoding;\n const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n\n if (properties.isInternalFont) {\n baseEncoding = builtInEncoding;\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : /* notdef = */ 0;\n }\n } else if (properties.baseEncodingName) {\n // If a valid base encoding name was used, the mapping is initialized with\n // that.\n baseEncoding = getEncoding(properties.baseEncodingName);\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : /* notdef = */ 0;\n }\n } else if (isSymbolicFont) {\n // For a symbolic font the encoding should be the fonts built-in encoding.\n for (charCode in builtInEncoding) {\n charCodeToGlyphId[charCode] = builtInEncoding[charCode];\n }\n } else {\n // For non-symbolic fonts that don't have a base encoding the standard\n // encoding should be used.\n baseEncoding = StandardEncoding;\n for (charCode = 0; charCode < baseEncoding.length; charCode++) {\n glyphId = glyphNames.indexOf(baseEncoding[charCode]);\n charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : /* notdef = */ 0;\n }\n }\n\n // Lastly, merge in the differences.\n const differences = properties.differences;\n let glyphsUnicodeMap;\n if (differences) {\n for (charCode in differences) {\n const glyphName = differences[charCode];\n glyphId = glyphNames.indexOf(glyphName);\n\n if (glyphId === -1) {\n if (!glyphsUnicodeMap) {\n glyphsUnicodeMap = getGlyphsUnicode();\n }\n const standardGlyphName = recoverGlyphName(glyphName, glyphsUnicodeMap);\n if (standardGlyphName !== glyphName) {\n glyphId = glyphNames.indexOf(standardGlyphName);\n }\n }\n charCodeToGlyphId[charCode] = glyphId >= 0 ? glyphId : /* notdef = */ 0;\n }\n }\n return charCodeToGlyphId;\n}\n\nfunction normalizeFontName(name) {\n return name.replaceAll(/[,_]/g, \"-\").replaceAll(/\\s/g, \"\");\n}\n\nexport {\n FontFlags,\n MacStandardGlyphOrdering,\n normalizeFontName,\n recoverGlyphName,\n SEAC_ANALYSIS_ENABLED,\n type1FontGlyphMapping,\n};\n","/* Copyright 2015 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { normalizeFontName } from \"./fonts_utils.js\";\n\n/**\n * Hold a map of decoded fonts and of the standard fourteen Type1\n * fonts and their acronyms.\n */\nconst getStdFontMap = getLookupTableFactory(function (t) {\n // The standard 14 fonts:\n t[\"Times-Roman\"] = \"Times-Roman\";\n t.Helvetica = \"Helvetica\";\n t.Courier = \"Courier\";\n t.Symbol = \"Symbol\";\n t[\"Times-Bold\"] = \"Times-Bold\";\n t[\"Helvetica-Bold\"] = \"Helvetica-Bold\";\n t[\"Courier-Bold\"] = \"Courier-Bold\";\n t.ZapfDingbats = \"ZapfDingbats\";\n t[\"Times-Italic\"] = \"Times-Italic\";\n t[\"Helvetica-Oblique\"] = \"Helvetica-Oblique\";\n t[\"Courier-Oblique\"] = \"Courier-Oblique\";\n t[\"Times-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"Helvetica-BoldOblique\"] = \"Helvetica-BoldOblique\";\n t[\"Courier-BoldOblique\"] = \"Courier-BoldOblique\";\n\n // Extra mappings\n t.ArialNarrow = \"Helvetica\";\n t[\"ArialNarrow-Bold\"] = \"Helvetica-Bold\";\n t[\"ArialNarrow-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ArialNarrow-Italic\"] = \"Helvetica-Oblique\";\n t.ArialBlack = \"Helvetica\";\n t[\"ArialBlack-Bold\"] = \"Helvetica-Bold\";\n t[\"ArialBlack-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ArialBlack-Italic\"] = \"Helvetica-Oblique\";\n t[\"Arial-Black\"] = \"Helvetica\";\n t[\"Arial-Black-Bold\"] = \"Helvetica-Bold\";\n t[\"Arial-Black-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-Black-Italic\"] = \"Helvetica-Oblique\";\n t.Arial = \"Helvetica\";\n t[\"Arial-Bold\"] = \"Helvetica-Bold\";\n t[\"Arial-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-Italic\"] = \"Helvetica-Oblique\";\n t.ArialMT = \"Helvetica\";\n t[\"Arial-BoldItalicMT\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-BoldMT\"] = \"Helvetica-Bold\";\n t[\"Arial-ItalicMT\"] = \"Helvetica-Oblique\";\n t[\"Arial-BoldItalicMT-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Arial-BoldMT-Bold\"] = \"Helvetica-Bold\";\n t[\"Arial-ItalicMT-Italic\"] = \"Helvetica-Oblique\";\n t.ArialUnicodeMS = \"Helvetica\";\n t[\"ArialUnicodeMS-Bold\"] = \"Helvetica-Bold\";\n t[\"ArialUnicodeMS-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ArialUnicodeMS-Italic\"] = \"Helvetica-Oblique\";\n t[\"Courier-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"Courier-Italic\"] = \"Courier-Oblique\";\n t.CourierNew = \"Courier\";\n t[\"CourierNew-Bold\"] = \"Courier-Bold\";\n t[\"CourierNew-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"CourierNew-Italic\"] = \"Courier-Oblique\";\n t[\"CourierNewPS-BoldItalicMT\"] = \"Courier-BoldOblique\";\n t[\"CourierNewPS-BoldMT\"] = \"Courier-Bold\";\n t[\"CourierNewPS-ItalicMT\"] = \"Courier-Oblique\";\n t.CourierNewPSMT = \"Courier\";\n t[\"Helvetica-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Helvetica-Italic\"] = \"Helvetica-Oblique\";\n t[\"Symbol-Bold\"] = \"Symbol\";\n t[\"Symbol-BoldItalic\"] = \"Symbol\";\n t[\"Symbol-Italic\"] = \"Symbol\";\n t.TimesNewRoman = \"Times-Roman\";\n t[\"TimesNewRoman-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRoman-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRoman-Italic\"] = \"Times-Italic\";\n t.TimesNewRomanPS = \"Times-Roman\";\n t[\"TimesNewRomanPS-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRomanPS-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPS-BoldItalicMT\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPS-BoldMT\"] = \"Times-Bold\";\n t[\"TimesNewRomanPS-Italic\"] = \"Times-Italic\";\n t[\"TimesNewRomanPS-ItalicMT\"] = \"Times-Italic\";\n t.TimesNewRomanPSMT = \"Times-Roman\";\n t[\"TimesNewRomanPSMT-Bold\"] = \"Times-Bold\";\n t[\"TimesNewRomanPSMT-BoldItalic\"] = \"Times-BoldItalic\";\n t[\"TimesNewRomanPSMT-Italic\"] = \"Times-Italic\";\n});\n\n// Contains mapping for standard fonts and xfa fonts.\nconst getFontNameToFileMap = getLookupTableFactory(function (t) {\n t.Courier = \"FoxitFixed.pfb\";\n t[\"Courier-Bold\"] = \"FoxitFixedBold.pfb\";\n t[\"Courier-BoldOblique\"] = \"FoxitFixedBoldItalic.pfb\";\n t[\"Courier-Oblique\"] = \"FoxitFixedItalic.pfb\";\n t.Helvetica = \"LiberationSans-Regular.ttf\";\n t[\"Helvetica-Bold\"] = \"LiberationSans-Bold.ttf\";\n t[\"Helvetica-BoldOblique\"] = \"LiberationSans-BoldItalic.ttf\";\n t[\"Helvetica-Oblique\"] = \"LiberationSans-Italic.ttf\";\n t[\"Times-Roman\"] = \"FoxitSerif.pfb\";\n t[\"Times-Bold\"] = \"FoxitSerifBold.pfb\";\n t[\"Times-BoldItalic\"] = \"FoxitSerifBoldItalic.pfb\";\n t[\"Times-Italic\"] = \"FoxitSerifItalic.pfb\";\n t.Symbol = \"FoxitSymbol.pfb\";\n t.ZapfDingbats = \"FoxitDingbats.pfb\";\n t[\"LiberationSans-Regular\"] = \"LiberationSans-Regular.ttf\";\n t[\"LiberationSans-Bold\"] = \"LiberationSans-Bold.ttf\";\n t[\"LiberationSans-Italic\"] = \"LiberationSans-Italic.ttf\";\n t[\"LiberationSans-BoldItalic\"] = \"LiberationSans-BoldItalic.ttf\";\n});\n\n/**\n * Holds the map of the non-standard fonts that might be included as\n * a standard fonts without glyph data.\n */\nconst getNonStdFontMap = getLookupTableFactory(function (t) {\n t.Calibri = \"Helvetica\";\n t[\"Calibri-Bold\"] = \"Helvetica-Bold\";\n t[\"Calibri-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"Calibri-Italic\"] = \"Helvetica-Oblique\";\n t.CenturyGothic = \"Helvetica\";\n t[\"CenturyGothic-Bold\"] = \"Helvetica-Bold\";\n t[\"CenturyGothic-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"CenturyGothic-Italic\"] = \"Helvetica-Oblique\";\n t.ComicSansMS = \"Comic Sans MS\";\n t[\"ComicSansMS-Bold\"] = \"Comic Sans MS-Bold\";\n t[\"ComicSansMS-BoldItalic\"] = \"Comic Sans MS-BoldItalic\";\n t[\"ComicSansMS-Italic\"] = \"Comic Sans MS-Italic\";\n t.Impact = \"Helvetica\";\n t[\"ItcSymbol-Bold\"] = \"Helvetica-Bold\";\n t[\"ItcSymbol-BoldItalic\"] = \"Helvetica-BoldOblique\";\n t[\"ItcSymbol-Book\"] = \"Helvetica\";\n t[\"ItcSymbol-BookItalic\"] = \"Helvetica-Oblique\";\n t[\"ItcSymbol-Medium\"] = \"Helvetica\";\n t[\"ItcSymbol-MediumItalic\"] = \"Helvetica-Oblique\";\n t.LucidaConsole = \"Courier\";\n t[\"LucidaConsole-Bold\"] = \"Courier-Bold\";\n t[\"LucidaConsole-BoldItalic\"] = \"Courier-BoldOblique\";\n t[\"LucidaConsole-Italic\"] = \"Courier-Oblique\";\n t[\"LucidaSans-Demi\"] = \"Helvetica-Bold\";\n t[\"MS-Gothic\"] = \"MS Gothic\";\n t[\"MS-Gothic-Bold\"] = \"MS Gothic-Bold\";\n t[\"MS-Gothic-BoldItalic\"] = \"MS Gothic-BoldItalic\";\n t[\"MS-Gothic-Italic\"] = \"MS Gothic-Italic\";\n t[\"MS-Mincho\"] = \"MS Mincho\";\n t[\"MS-Mincho-Bold\"] = \"MS Mincho-Bold\";\n t[\"MS-Mincho-BoldItalic\"] = \"MS Mincho-BoldItalic\";\n t[\"MS-Mincho-Italic\"] = \"MS Mincho-Italic\";\n t[\"MS-PGothic\"] = \"MS PGothic\";\n t[\"MS-PGothic-Bold\"] = \"MS PGothic-Bold\";\n t[\"MS-PGothic-BoldItalic\"] = \"MS PGothic-BoldItalic\";\n t[\"MS-PGothic-Italic\"] = \"MS PGothic-Italic\";\n t[\"MS-PMincho\"] = \"MS PMincho\";\n t[\"MS-PMincho-Bold\"] = \"MS PMincho-Bold\";\n t[\"MS-PMincho-BoldItalic\"] = \"MS PMincho-BoldItalic\";\n t[\"MS-PMincho-Italic\"] = \"MS PMincho-Italic\";\n t.NuptialScript = \"Times-Italic\";\n t.SegoeUISymbol = \"Helvetica\";\n});\n\nconst getSerifFonts = getLookupTableFactory(function (t) {\n t[\"Adobe Jenson\"] = true;\n t[\"Adobe Text\"] = true;\n t.Albertus = true;\n t.Aldus = true;\n t.Alexandria = true;\n t.Algerian = true;\n t[\"American Typewriter\"] = true;\n t.Antiqua = true;\n t.Apex = true;\n t.Arno = true;\n t.Aster = true;\n t.Aurora = true;\n t.Baskerville = true;\n t.Bell = true;\n t.Bembo = true;\n t[\"Bembo Schoolbook\"] = true;\n t.Benguiat = true;\n t[\"Berkeley Old Style\"] = true;\n t[\"Bernhard Modern\"] = true;\n t[\"Berthold City\"] = true;\n t.Bodoni = true;\n t[\"Bauer Bodoni\"] = true;\n t[\"Book Antiqua\"] = true;\n t.Bookman = true;\n t[\"Bordeaux Roman\"] = true;\n t[\"Californian FB\"] = true;\n t.Calisto = true;\n t.Calvert = true;\n t.Capitals = true;\n t.Cambria = true;\n t.Cartier = true;\n t.Caslon = true;\n t.Catull = true;\n t.Centaur = true;\n t[\"Century Old Style\"] = true;\n t[\"Century Schoolbook\"] = true;\n t.Chaparral = true;\n t[\"Charis SIL\"] = true;\n t.Cheltenham = true;\n t[\"Cholla Slab\"] = true;\n t.Clarendon = true;\n t.Clearface = true;\n t.Cochin = true;\n t.Colonna = true;\n t[\"Computer Modern\"] = true;\n t[\"Concrete Roman\"] = true;\n t.Constantia = true;\n t[\"Cooper Black\"] = true;\n t.Corona = true;\n t.Ecotype = true;\n t.Egyptienne = true;\n t.Elephant = true;\n t.Excelsior = true;\n t.Fairfield = true;\n t[\"FF Scala\"] = true;\n t.Folkard = true;\n t.Footlight = true;\n t.FreeSerif = true;\n t[\"Friz Quadrata\"] = true;\n t.Garamond = true;\n t.Gentium = true;\n t.Georgia = true;\n t.Gloucester = true;\n t[\"Goudy Old Style\"] = true;\n t[\"Goudy Schoolbook\"] = true;\n t[\"Goudy Pro Font\"] = true;\n t.Granjon = true;\n t[\"Guardian Egyptian\"] = true;\n t.Heather = true;\n t.Hercules = true;\n t[\"High Tower Text\"] = true;\n t.Hiroshige = true;\n t[\"Hoefler Text\"] = true;\n t[\"Humana Serif\"] = true;\n t.Imprint = true;\n t[\"Ionic No. 5\"] = true;\n t.Janson = true;\n t.Joanna = true;\n t.Korinna = true;\n t.Lexicon = true;\n t.LiberationSerif = true;\n t[\"Liberation Serif\"] = true;\n t[\"Linux Libertine\"] = true;\n t.Literaturnaya = true;\n t.Lucida = true;\n t[\"Lucida Bright\"] = true;\n t.Melior = true;\n t.Memphis = true;\n t.Miller = true;\n t.Minion = true;\n t.Modern = true;\n t[\"Mona Lisa\"] = true;\n t[\"Mrs Eaves\"] = true;\n t[\"MS Serif\"] = true;\n t[\"Museo Slab\"] = true;\n t[\"New York\"] = true;\n t[\"Nimbus Roman\"] = true;\n t[\"NPS Rawlinson Roadway\"] = true;\n t.NuptialScript = true;\n t.Palatino = true;\n t.Perpetua = true;\n t.Plantin = true;\n t[\"Plantin Schoolbook\"] = true;\n t.Playbill = true;\n t[\"Poor Richard\"] = true;\n t[\"Rawlinson Roadway\"] = true;\n t.Renault = true;\n t.Requiem = true;\n t.Rockwell = true;\n t.Roman = true;\n t[\"Rotis Serif\"] = true;\n t.Sabon = true;\n t.Scala = true;\n t.Seagull = true;\n t.Sistina = true;\n t.Souvenir = true;\n t.STIX = true;\n t[\"Stone Informal\"] = true;\n t[\"Stone Serif\"] = true;\n t.Sylfaen = true;\n t.Times = true;\n t.Trajan = true;\n t[\"Trinité\"] = true;\n t[\"Trump Mediaeval\"] = true;\n t.Utopia = true;\n t[\"Vale Type\"] = true;\n t[\"Bitstream Vera\"] = true;\n t[\"Vera Serif\"] = true;\n t.Versailles = true;\n t.Wanted = true;\n t.Weiss = true;\n t[\"Wide Latin\"] = true;\n t.Windsor = true;\n t.XITS = true;\n});\n\nconst getSymbolsFonts = getLookupTableFactory(function (t) {\n t.Dingbats = true;\n t.Symbol = true;\n t.ZapfDingbats = true;\n t.Wingdings = true;\n t[\"Wingdings-Bold\"] = true;\n t[\"Wingdings-Regular\"] = true;\n});\n\n// Glyph map for well-known standard fonts. Sometimes Ghostscript uses CID\n// fonts, but does not embed the CID to GID mapping. The mapping is incomplete\n// for all glyphs, but common for some set of the standard fonts.\nconst getGlyphMapForStandardFonts = getLookupTableFactory(function (t) {\n t[2] = 10;\n t[3] = 32;\n t[4] = 33;\n t[5] = 34;\n t[6] = 35;\n t[7] = 36;\n t[8] = 37;\n t[9] = 38;\n t[10] = 39;\n t[11] = 40;\n t[12] = 41;\n t[13] = 42;\n t[14] = 43;\n t[15] = 44;\n t[16] = 45;\n t[17] = 46;\n t[18] = 47;\n t[19] = 48;\n t[20] = 49;\n t[21] = 50;\n t[22] = 51;\n t[23] = 52;\n t[24] = 53;\n t[25] = 54;\n t[26] = 55;\n t[27] = 56;\n t[28] = 57;\n t[29] = 58;\n t[30] = 894;\n t[31] = 60;\n t[32] = 61;\n t[33] = 62;\n t[34] = 63;\n t[35] = 64;\n t[36] = 65;\n t[37] = 66;\n t[38] = 67;\n t[39] = 68;\n t[40] = 69;\n t[41] = 70;\n t[42] = 71;\n t[43] = 72;\n t[44] = 73;\n t[45] = 74;\n t[46] = 75;\n t[47] = 76;\n t[48] = 77;\n t[49] = 78;\n t[50] = 79;\n t[51] = 80;\n t[52] = 81;\n t[53] = 82;\n t[54] = 83;\n t[55] = 84;\n t[56] = 85;\n t[57] = 86;\n t[58] = 87;\n t[59] = 88;\n t[60] = 89;\n t[61] = 90;\n t[62] = 91;\n t[63] = 92;\n t[64] = 93;\n t[65] = 94;\n t[66] = 95;\n t[67] = 96;\n t[68] = 97;\n t[69] = 98;\n t[70] = 99;\n t[71] = 100;\n t[72] = 101;\n t[73] = 102;\n t[74] = 103;\n t[75] = 104;\n t[76] = 105;\n t[77] = 106;\n t[78] = 107;\n t[79] = 108;\n t[80] = 109;\n t[81] = 110;\n t[82] = 111;\n t[83] = 112;\n t[84] = 113;\n t[85] = 114;\n t[86] = 115;\n t[87] = 116;\n t[88] = 117;\n t[89] = 118;\n t[90] = 119;\n t[91] = 120;\n t[92] = 121;\n t[93] = 122;\n t[94] = 123;\n t[95] = 124;\n t[96] = 125;\n t[97] = 126;\n t[98] = 196;\n t[99] = 197;\n t[100] = 199;\n t[101] = 201;\n t[102] = 209;\n t[103] = 214;\n t[104] = 220;\n t[105] = 225;\n t[106] = 224;\n t[107] = 226;\n t[108] = 228;\n t[109] = 227;\n t[110] = 229;\n t[111] = 231;\n t[112] = 233;\n t[113] = 232;\n t[114] = 234;\n t[115] = 235;\n t[116] = 237;\n t[117] = 236;\n t[118] = 238;\n t[119] = 239;\n t[120] = 241;\n t[121] = 243;\n t[122] = 242;\n t[123] = 244;\n t[124] = 246;\n t[125] = 245;\n t[126] = 250;\n t[127] = 249;\n t[128] = 251;\n t[129] = 252;\n t[130] = 8224;\n t[131] = 176;\n t[132] = 162;\n t[133] = 163;\n t[134] = 167;\n t[135] = 8226;\n t[136] = 182;\n t[137] = 223;\n t[138] = 174;\n t[139] = 169;\n t[140] = 8482;\n t[141] = 180;\n t[142] = 168;\n t[143] = 8800;\n t[144] = 198;\n t[145] = 216;\n t[146] = 8734;\n t[147] = 177;\n t[148] = 8804;\n t[149] = 8805;\n t[150] = 165;\n t[151] = 181;\n t[152] = 8706;\n t[153] = 8721;\n t[154] = 8719;\n t[156] = 8747;\n t[157] = 170;\n t[158] = 186;\n t[159] = 8486;\n t[160] = 230;\n t[161] = 248;\n t[162] = 191;\n t[163] = 161;\n t[164] = 172;\n t[165] = 8730;\n t[166] = 402;\n t[167] = 8776;\n t[168] = 8710;\n t[169] = 171;\n t[170] = 187;\n t[171] = 8230;\n t[179] = 8220;\n t[180] = 8221;\n t[181] = 8216;\n t[182] = 8217;\n t[200] = 193;\n t[203] = 205;\n t[207] = 211;\n t[210] = 218;\n t[223] = 711;\n t[224] = 321;\n t[225] = 322;\n t[226] = 352;\n t[227] = 353;\n t[228] = 381;\n t[229] = 382;\n t[233] = 221;\n t[234] = 253;\n t[252] = 263;\n t[253] = 268;\n t[254] = 269;\n t[258] = 258;\n t[260] = 260;\n t[261] = 261;\n t[265] = 280;\n t[266] = 281;\n t[267] = 282;\n t[268] = 283;\n t[269] = 313;\n t[275] = 323;\n t[276] = 324;\n t[278] = 328;\n t[283] = 344;\n t[284] = 345;\n t[285] = 346;\n t[286] = 347;\n t[292] = 367;\n t[295] = 377;\n t[296] = 378;\n t[298] = 380;\n t[305] = 963;\n t[306] = 964;\n t[307] = 966;\n t[308] = 8215;\n t[309] = 8252;\n t[310] = 8319;\n t[311] = 8359;\n t[312] = 8592;\n t[313] = 8593;\n t[337] = 9552;\n t[493] = 1039;\n t[494] = 1040;\n t[672] = 1488;\n t[673] = 1489;\n t[674] = 1490;\n t[675] = 1491;\n t[676] = 1492;\n t[677] = 1493;\n t[678] = 1494;\n t[679] = 1495;\n t[680] = 1496;\n t[681] = 1497;\n t[682] = 1498;\n t[683] = 1499;\n t[684] = 1500;\n t[685] = 1501;\n t[686] = 1502;\n t[687] = 1503;\n t[688] = 1504;\n t[689] = 1505;\n t[690] = 1506;\n t[691] = 1507;\n t[692] = 1508;\n t[693] = 1509;\n t[694] = 1510;\n t[695] = 1511;\n t[696] = 1512;\n t[697] = 1513;\n t[698] = 1514;\n t[705] = 1524;\n t[706] = 8362;\n t[710] = 64288;\n t[711] = 64298;\n t[759] = 1617;\n t[761] = 1776;\n t[763] = 1778;\n t[775] = 1652;\n t[777] = 1764;\n t[778] = 1780;\n t[779] = 1781;\n t[780] = 1782;\n t[782] = 771;\n t[783] = 64726;\n t[786] = 8363;\n t[788] = 8532;\n t[790] = 768;\n t[791] = 769;\n t[792] = 768;\n t[795] = 803;\n t[797] = 64336;\n t[798] = 64337;\n t[799] = 64342;\n t[800] = 64343;\n t[801] = 64344;\n t[802] = 64345;\n t[803] = 64362;\n t[804] = 64363;\n t[805] = 64364;\n t[2424] = 7821;\n t[2425] = 7822;\n t[2426] = 7823;\n t[2427] = 7824;\n t[2428] = 7825;\n t[2429] = 7826;\n t[2430] = 7827;\n t[2433] = 7682;\n t[2678] = 8045;\n t[2679] = 8046;\n t[2830] = 1552;\n t[2838] = 686;\n t[2840] = 751;\n t[2842] = 753;\n t[2843] = 754;\n t[2844] = 755;\n t[2846] = 757;\n t[2856] = 767;\n t[2857] = 848;\n t[2858] = 849;\n t[2862] = 853;\n t[2863] = 854;\n t[2864] = 855;\n t[2865] = 861;\n t[2866] = 862;\n t[2906] = 7460;\n t[2908] = 7462;\n t[2909] = 7463;\n t[2910] = 7464;\n t[2912] = 7466;\n t[2913] = 7467;\n t[2914] = 7468;\n t[2916] = 7470;\n t[2917] = 7471;\n t[2918] = 7472;\n t[2920] = 7474;\n t[2921] = 7475;\n t[2922] = 7476;\n t[2924] = 7478;\n t[2925] = 7479;\n t[2926] = 7480;\n t[2928] = 7482;\n t[2929] = 7483;\n t[2930] = 7484;\n t[2932] = 7486;\n t[2933] = 7487;\n t[2934] = 7488;\n t[2936] = 7490;\n t[2937] = 7491;\n t[2938] = 7492;\n t[2940] = 7494;\n t[2941] = 7495;\n t[2942] = 7496;\n t[2944] = 7498;\n t[2946] = 7500;\n t[2948] = 7502;\n t[2950] = 7504;\n t[2951] = 7505;\n t[2952] = 7506;\n t[2954] = 7508;\n t[2955] = 7509;\n t[2956] = 7510;\n t[2958] = 7512;\n t[2959] = 7513;\n t[2960] = 7514;\n t[2962] = 7516;\n t[2963] = 7517;\n t[2964] = 7518;\n t[2966] = 7520;\n t[2967] = 7521;\n t[2968] = 7522;\n t[2970] = 7524;\n t[2971] = 7525;\n t[2972] = 7526;\n t[2974] = 7528;\n t[2975] = 7529;\n t[2976] = 7530;\n t[2978] = 1537;\n t[2979] = 1538;\n t[2980] = 1539;\n t[2982] = 1549;\n t[2983] = 1551;\n t[2984] = 1552;\n t[2986] = 1554;\n t[2987] = 1555;\n t[2988] = 1556;\n t[2990] = 1623;\n t[2991] = 1624;\n t[2995] = 1775;\n t[2999] = 1791;\n t[3002] = 64290;\n t[3003] = 64291;\n t[3004] = 64292;\n t[3006] = 64294;\n t[3007] = 64295;\n t[3008] = 64296;\n t[3011] = 1900;\n t[3014] = 8223;\n t[3015] = 8244;\n t[3017] = 7532;\n t[3018] = 7533;\n t[3019] = 7534;\n t[3075] = 7590;\n t[3076] = 7591;\n t[3079] = 7594;\n t[3080] = 7595;\n t[3083] = 7598;\n t[3084] = 7599;\n t[3087] = 7602;\n t[3088] = 7603;\n t[3091] = 7606;\n t[3092] = 7607;\n t[3095] = 7610;\n t[3096] = 7611;\n t[3099] = 7614;\n t[3100] = 7615;\n t[3103] = 7618;\n t[3104] = 7619;\n t[3107] = 8337;\n t[3108] = 8338;\n t[3116] = 1884;\n t[3119] = 1885;\n t[3120] = 1885;\n t[3123] = 1886;\n t[3124] = 1886;\n t[3127] = 1887;\n t[3128] = 1887;\n t[3131] = 1888;\n t[3132] = 1888;\n t[3135] = 1889;\n t[3136] = 1889;\n t[3139] = 1890;\n t[3140] = 1890;\n t[3143] = 1891;\n t[3144] = 1891;\n t[3147] = 1892;\n t[3148] = 1892;\n t[3153] = 580;\n t[3154] = 581;\n t[3157] = 584;\n t[3158] = 585;\n t[3161] = 588;\n t[3162] = 589;\n t[3165] = 891;\n t[3166] = 892;\n t[3169] = 1274;\n t[3170] = 1275;\n t[3173] = 1278;\n t[3174] = 1279;\n t[3181] = 7622;\n t[3182] = 7623;\n t[3282] = 11799;\n t[3316] = 578;\n t[3379] = 42785;\n t[3393] = 1159;\n t[3416] = 8377;\n});\n\n// The glyph map for ArialBlack differs slightly from the glyph map used for\n// other well-known standard fonts. Hence we use this (incomplete) CID to GID\n// mapping to adjust the glyph map for non-embedded ArialBlack fonts.\nconst getSupplementalGlyphMapForArialBlack = getLookupTableFactory(\n function (t) {\n t[227] = 322;\n t[264] = 261;\n t[291] = 346;\n }\n);\n\n// The glyph map for Calibri (a Windows font) differs from the glyph map used\n// in the standard fonts. Hence we use this (incomplete) CID to GID mapping to\n// adjust the glyph map for non-embedded Calibri fonts.\nconst getSupplementalGlyphMapForCalibri = getLookupTableFactory(function (t) {\n t[1] = 32;\n t[4] = 65;\n t[5] = 192;\n t[6] = 193;\n t[9] = 196;\n t[17] = 66;\n t[18] = 67;\n t[21] = 268;\n t[24] = 68;\n t[28] = 69;\n t[29] = 200;\n t[30] = 201;\n t[32] = 282;\n t[38] = 70;\n t[39] = 71;\n t[44] = 72;\n t[47] = 73;\n t[48] = 204;\n t[49] = 205;\n t[58] = 74;\n t[60] = 75;\n t[62] = 76;\n t[68] = 77;\n t[69] = 78;\n t[75] = 79;\n t[76] = 210;\n t[80] = 214;\n t[87] = 80;\n t[89] = 81;\n t[90] = 82;\n t[92] = 344;\n t[94] = 83;\n t[97] = 352;\n t[100] = 84;\n t[104] = 85;\n t[109] = 220;\n t[115] = 86;\n t[116] = 87;\n t[121] = 88;\n t[122] = 89;\n t[124] = 221;\n t[127] = 90;\n t[129] = 381;\n t[258] = 97;\n t[259] = 224;\n t[260] = 225;\n t[263] = 228;\n t[268] = 261;\n t[271] = 98;\n t[272] = 99;\n t[273] = 263;\n t[275] = 269;\n t[282] = 100;\n t[286] = 101;\n t[287] = 232;\n t[288] = 233;\n t[290] = 283;\n t[295] = 281;\n t[296] = 102;\n t[336] = 103;\n t[346] = 104;\n t[349] = 105;\n t[350] = 236;\n t[351] = 237;\n t[361] = 106;\n t[364] = 107;\n t[367] = 108;\n t[371] = 322;\n t[373] = 109;\n t[374] = 110;\n t[381] = 111;\n t[382] = 242;\n t[383] = 243;\n t[386] = 246;\n t[393] = 112;\n t[395] = 113;\n t[396] = 114;\n t[398] = 345;\n t[400] = 115;\n t[401] = 347;\n t[403] = 353;\n t[410] = 116;\n t[437] = 117;\n t[442] = 252;\n t[448] = 118;\n t[449] = 119;\n t[454] = 120;\n t[455] = 121;\n t[457] = 253;\n t[460] = 122;\n t[462] = 382;\n t[463] = 380;\n t[853] = 44;\n t[855] = 58;\n t[856] = 46;\n t[876] = 47;\n t[878] = 45;\n t[882] = 45;\n t[894] = 40;\n t[895] = 41;\n t[896] = 91;\n t[897] = 93;\n t[923] = 64;\n t[1004] = 48;\n t[1005] = 49;\n t[1006] = 50;\n t[1007] = 51;\n t[1008] = 52;\n t[1009] = 53;\n t[1010] = 54;\n t[1011] = 55;\n t[1012] = 56;\n t[1013] = 57;\n t[1081] = 37;\n t[1085] = 43;\n t[1086] = 45;\n});\n\nfunction getStandardFontName(name) {\n const fontName = normalizeFontName(name);\n const stdFontMap = getStdFontMap();\n return stdFontMap[fontName];\n}\n\nfunction isKnownFontName(name) {\n const fontName = normalizeFontName(name);\n return !!(\n getStdFontMap()[fontName] ||\n getNonStdFontMap()[fontName] ||\n getSerifFonts()[fontName] ||\n getSymbolsFonts()[fontName]\n );\n}\n\nexport {\n getFontNameToFileMap,\n getGlyphMapForStandardFonts,\n getNonStdFontMap,\n getSerifFonts,\n getStandardFontName,\n getStdFontMap,\n getSupplementalGlyphMapForArialBlack,\n getSupplementalGlyphMapForCalibri,\n getSymbolsFonts,\n isKnownFontName,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { unreachable } from \"../shared/util.js\";\n\nclass ToUnicodeMap {\n constructor(cmap = []) {\n // The elements of this._map can be integers or strings, depending on how\n // `cmap` was created.\n this._map = cmap;\n }\n\n get length() {\n return this._map.length;\n }\n\n forEach(callback) {\n for (const charCode in this._map) {\n callback(charCode, this._map[charCode].charCodeAt(0));\n }\n }\n\n has(i) {\n return this._map[i] !== undefined;\n }\n\n get(i) {\n return this._map[i];\n }\n\n charCodeOf(value) {\n // `Array.prototype.indexOf` is *extremely* inefficient for arrays which\n // are both very sparse and very large (see issue8372.pdf).\n const map = this._map;\n if (map.length <= 0x10000) {\n return map.indexOf(value);\n }\n for (const charCode in map) {\n if (map[charCode] === value) {\n return charCode | 0;\n }\n }\n return -1;\n }\n\n amend(map) {\n for (const charCode in map) {\n this._map[charCode] = map[charCode];\n }\n }\n}\n\nclass IdentityToUnicodeMap {\n constructor(firstChar, lastChar) {\n this.firstChar = firstChar;\n this.lastChar = lastChar;\n }\n\n get length() {\n return this.lastChar + 1 - this.firstChar;\n }\n\n forEach(callback) {\n for (let i = this.firstChar, ii = this.lastChar; i <= ii; i++) {\n callback(i, i);\n }\n }\n\n has(i) {\n return this.firstChar <= i && i <= this.lastChar;\n }\n\n get(i) {\n if (this.firstChar <= i && i <= this.lastChar) {\n return String.fromCharCode(i);\n }\n return undefined;\n }\n\n charCodeOf(v) {\n return Number.isInteger(v) && v >= this.firstChar && v <= this.lastChar\n ? v\n : -1;\n }\n\n amend(map) {\n unreachable(\"Should not call amend()\");\n }\n}\n\nexport { IdentityToUnicodeMap, ToUnicodeMap };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CFFCompiler, CFFParser } from \"./cff_parser.js\";\nimport { SEAC_ANALYSIS_ENABLED, type1FontGlyphMapping } from \"./fonts_utils.js\";\nimport { warn } from \"../shared/util.js\";\n\nclass CFFFont {\n constructor(file, properties) {\n this.properties = properties;\n\n const parser = new CFFParser(file, properties, SEAC_ANALYSIS_ENABLED);\n this.cff = parser.parse();\n this.cff.duplicateFirstGlyph();\n const compiler = new CFFCompiler(this.cff);\n this.seacs = this.cff.seacs;\n try {\n this.data = compiler.compile();\n } catch {\n warn(\"Failed to compile font \" + properties.loadedName);\n // There may have just been an issue with the compiler, set the data\n // anyway and hope the font loaded.\n this.data = file;\n }\n this._createBuiltInEncoding();\n }\n\n get numGlyphs() {\n return this.cff.charStrings.count;\n }\n\n getCharset() {\n return this.cff.charset.charset;\n }\n\n getGlyphMapping() {\n const cff = this.cff;\n const properties = this.properties;\n const { cidToGidMap, cMap } = properties;\n const charsets = cff.charset.charset;\n let charCodeToGlyphId;\n let glyphId;\n\n if (properties.composite) {\n let invCidToGidMap;\n if (cidToGidMap?.length > 0) {\n invCidToGidMap = Object.create(null);\n for (let i = 0, ii = cidToGidMap.length; i < ii; i++) {\n const gid = cidToGidMap[i];\n if (gid !== undefined) {\n invCidToGidMap[gid] = i;\n }\n }\n }\n\n charCodeToGlyphId = Object.create(null);\n let charCode;\n if (cff.isCIDFont) {\n // If the font is actually a CID font then we should use the charset\n // to map CIDs to GIDs.\n for (glyphId = 0; glyphId < charsets.length; glyphId++) {\n const cid = charsets[glyphId];\n charCode = cMap.charCodeOf(cid);\n\n if (invCidToGidMap?.[charCode] !== undefined) {\n // According to the PDF specification, see Table 117, it's not clear\n // that a /CIDToGIDMap should be used with any non-TrueType fonts,\n // however it's necessary to do so in order to fix issue 15559.\n //\n // It seems, in the CFF-case, that the /CIDToGIDMap needs to be used\n // \"inverted\" compared to the TrueType-case. Here it thus seem to be\n // a charCode mapping, rather than the normal CID to GID mapping.\n charCode = invCidToGidMap[charCode];\n }\n charCodeToGlyphId[charCode] = glyphId;\n }\n } else {\n // If it is NOT actually a CID font then CIDs should be mapped\n // directly to GIDs.\n for (glyphId = 0; glyphId < cff.charStrings.count; glyphId++) {\n charCode = cMap.charCodeOf(glyphId);\n charCodeToGlyphId[charCode] = glyphId;\n }\n }\n return charCodeToGlyphId;\n }\n\n let encoding = cff.encoding ? cff.encoding.encoding : null;\n if (properties.isInternalFont) {\n encoding = properties.defaultEncoding;\n }\n charCodeToGlyphId = type1FontGlyphMapping(properties, encoding, charsets);\n return charCodeToGlyphId;\n }\n\n hasGlyphId(id) {\n return this.cff.hasGlyphId(id);\n }\n\n /**\n * @private\n */\n _createBuiltInEncoding() {\n const { charset, encoding } = this.cff;\n if (!charset || !encoding) {\n return;\n }\n const charsets = charset.charset,\n encodings = encoding.encoding;\n const map = [];\n\n for (const charCode in encodings) {\n const glyphId = encodings[charCode];\n if (glyphId >= 0) {\n const glyphName = charsets[glyphId];\n if (glyphName) {\n map[charCode] = glyphName;\n }\n }\n }\n if (map.length > 0) {\n this.properties.builtInEncoding = map;\n }\n }\n}\n\nexport { CFFFont };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n bytesToString,\n FONT_IDENTITY_MATRIX,\n FormatError,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { CFFParser } from \"./cff_parser.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { StandardEncoding } from \"./encodings.js\";\nimport { Stream } from \"./stream.js\";\n\n// TODO: use DataView and its methods.\n\nfunction getUint32(data, offset) {\n return (\n ((data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]) >>>\n 0\n );\n}\n\nfunction getUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction getInt16(data, offset) {\n return ((data[offset] << 24) | (data[offset + 1] << 16)) >> 16;\n}\n\nfunction getInt8(data, offset) {\n return (data[offset] << 24) >> 24;\n}\n\nfunction getFloat214(data, offset) {\n return getInt16(data, offset) / 16384;\n}\n\nfunction getSubroutineBias(subrs) {\n const numSubrs = subrs.length;\n let bias = 32768;\n if (numSubrs < 1240) {\n bias = 107;\n } else if (numSubrs < 33900) {\n bias = 1131;\n }\n return bias;\n}\n\nfunction parseCmap(data, start, end) {\n const offset =\n getUint16(data, start + 2) === 1\n ? getUint32(data, start + 8)\n : getUint32(data, start + 16);\n const format = getUint16(data, start + offset);\n let ranges, p, i;\n if (format === 4) {\n getUint16(data, start + offset + 2); // length\n const segCount = getUint16(data, start + offset + 6) >> 1;\n p = start + offset + 14;\n ranges = [];\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i] = { end: getUint16(data, p) };\n }\n p += 2;\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].start = getUint16(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n ranges[i].idDelta = getUint16(data, p);\n }\n for (i = 0; i < segCount; i++, p += 2) {\n let idOffset = getUint16(data, p);\n if (idOffset === 0) {\n continue;\n }\n ranges[i].ids = [];\n for (let j = 0, jj = ranges[i].end - ranges[i].start + 1; j < jj; j++) {\n ranges[i].ids[j] = getUint16(data, p + idOffset);\n idOffset += 2;\n }\n }\n return ranges;\n } else if (format === 12) {\n const groups = getUint32(data, start + offset + 12);\n p = start + offset + 16;\n ranges = [];\n for (i = 0; i < groups; i++) {\n start = getUint32(data, p);\n ranges.push({\n start,\n end: getUint32(data, p + 4),\n idDelta: getUint32(data, p + 8) - start,\n });\n p += 12;\n }\n return ranges;\n }\n throw new FormatError(`unsupported cmap: ${format}`);\n}\n\nfunction parseCff(data, start, end, seacAnalysisEnabled) {\n const properties = {};\n const parser = new CFFParser(\n new Stream(data, start, end - start),\n properties,\n seacAnalysisEnabled\n );\n const cff = parser.parse();\n return {\n glyphs: cff.charStrings.objects,\n subrs: cff.topDict.privateDict?.subrsIndex?.objects,\n gsubrs: cff.globalSubrIndex?.objects,\n isCFFCIDFont: cff.isCIDFont,\n fdSelect: cff.fdSelect,\n fdArray: cff.fdArray,\n };\n}\n\nfunction parseGlyfTable(glyf, loca, isGlyphLocationsLong) {\n let itemSize, itemDecode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\n itemDecode = getUint32;\n } else {\n itemSize = 2;\n itemDecode = (data, offset) => 2 * getUint16(data, offset);\n }\n const glyphs = [];\n let startOffset = itemDecode(loca, 0);\n for (let j = itemSize; j < loca.length; j += itemSize) {\n const endOffset = itemDecode(loca, j);\n glyphs.push(glyf.subarray(startOffset, endOffset));\n startOffset = endOffset;\n }\n return glyphs;\n}\n\nfunction lookupCmap(ranges, unicode) {\n const code = unicode.codePointAt(0);\n let gid = 0,\n l = 0,\n r = ranges.length - 1;\n while (l < r) {\n const c = (l + r + 1) >> 1;\n if (code < ranges[c].start) {\n r = c - 1;\n } else {\n l = c;\n }\n }\n if (ranges[l].start <= code && code <= ranges[l].end) {\n gid =\n (ranges[l].idDelta +\n (ranges[l].ids ? ranges[l].ids[code - ranges[l].start] : code)) &\n 0xffff;\n }\n return {\n charCode: code,\n glyphId: gid,\n };\n}\n\nfunction compileGlyf(code, cmds, font) {\n function moveTo(x, y) {\n cmds.push({ cmd: \"moveTo\", args: [x, y] });\n }\n function lineTo(x, y) {\n cmds.push({ cmd: \"lineTo\", args: [x, y] });\n }\n function quadraticCurveTo(xa, ya, x, y) {\n cmds.push({ cmd: \"quadraticCurveTo\", args: [xa, ya, x, y] });\n }\n\n let i = 0;\n const numberOfContours = getInt16(code, i);\n let flags;\n let x = 0,\n y = 0;\n i += 10;\n if (numberOfContours < 0) {\n // composite glyph\n do {\n flags = getUint16(code, i);\n const glyphIndex = getUint16(code, i + 2);\n i += 4;\n let arg1, arg2;\n if (flags & 0x01) {\n if (flags & 0x02) {\n arg1 = getInt16(code, i);\n arg2 = getInt16(code, i + 2);\n } else {\n arg1 = getUint16(code, i);\n arg2 = getUint16(code, i + 2);\n }\n i += 4;\n } else if (flags & 0x02) {\n arg1 = getInt8(code, i++);\n arg2 = getInt8(code, i++);\n } else {\n arg1 = code[i++];\n arg2 = code[i++];\n }\n if (flags & 0x02) {\n x = arg1;\n y = arg2;\n } else {\n x = 0;\n y = 0;\n }\n let scaleX = 1,\n scaleY = 1,\n scale01 = 0,\n scale10 = 0;\n if (flags & 0x08) {\n scaleX = scaleY = getFloat214(code, i);\n i += 2;\n } else if (flags & 0x40) {\n scaleX = getFloat214(code, i);\n scaleY = getFloat214(code, i + 2);\n i += 4;\n } else if (flags & 0x80) {\n scaleX = getFloat214(code, i);\n scale01 = getFloat214(code, i + 2);\n scale10 = getFloat214(code, i + 4);\n scaleY = getFloat214(code, i + 6);\n i += 8;\n }\n const subglyph = font.glyphs[glyphIndex];\n if (subglyph) {\n // TODO: the transform should be applied only if there is a scale:\n // https://github.com/freetype/freetype/blob/edd4fedc5427cf1cf1f4b045e53ff91eb282e9d4/src/truetype/ttgload.c#L1205\n cmds.push(\n { cmd: \"save\" },\n {\n cmd: \"transform\",\n args: [scaleX, scale01, scale10, scaleY, x, y],\n }\n );\n\n if (!(flags & 0x02)) {\n // TODO: we must use arg1 and arg2 to make something similar to:\n // https://github.com/freetype/freetype/blob/edd4fedc5427cf1cf1f4b045e53ff91eb282e9d4/src/truetype/ttgload.c#L1209\n }\n compileGlyf(subglyph, cmds, font);\n cmds.push({ cmd: \"restore\" });\n }\n } while (flags & 0x20);\n } else {\n // simple glyph\n const endPtsOfContours = [];\n let j, jj;\n for (j = 0; j < numberOfContours; j++) {\n endPtsOfContours.push(getUint16(code, i));\n i += 2;\n }\n const instructionLength = getUint16(code, i);\n i += 2 + instructionLength; // skipping the instructions\n const numberOfPoints = endPtsOfContours.at(-1) + 1;\n const points = [];\n while (points.length < numberOfPoints) {\n flags = code[i++];\n let repeat = 1;\n if (flags & 0x08) {\n repeat += code[i++];\n }\n while (repeat-- > 0) {\n points.push({ flags });\n }\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x12) {\n case 0x00:\n x += getInt16(code, i);\n i += 2;\n break;\n case 0x02:\n x -= code[i++];\n break;\n case 0x12:\n x += code[i++];\n break;\n }\n points[j].x = x;\n }\n for (j = 0; j < numberOfPoints; j++) {\n switch (points[j].flags & 0x24) {\n case 0x00:\n y += getInt16(code, i);\n i += 2;\n break;\n case 0x04:\n y -= code[i++];\n break;\n case 0x24:\n y += code[i++];\n break;\n }\n points[j].y = y;\n }\n\n let startPoint = 0;\n for (i = 0; i < numberOfContours; i++) {\n const endPoint = endPtsOfContours[i];\n // contours might have implicit points, which is located in the middle\n // between two neighboring off-curve points\n const contour = points.slice(startPoint, endPoint + 1);\n if (contour[0].flags & 1) {\n contour.push(contour[0]); // using start point at the contour end\n } else if (contour.at(-1).flags & 1) {\n // first is off-curve point, trying to use one from the end\n contour.unshift(contour.at(-1));\n } else {\n // start and end are off-curve points, creating implicit one\n const p = {\n flags: 1,\n x: (contour[0].x + contour.at(-1).x) / 2,\n y: (contour[0].y + contour.at(-1).y) / 2,\n };\n contour.unshift(p);\n contour.push(p);\n }\n moveTo(contour[0].x, contour[0].y);\n for (j = 1, jj = contour.length; j < jj; j++) {\n if (contour[j].flags & 1) {\n lineTo(contour[j].x, contour[j].y);\n } else if (contour[j + 1].flags & 1) {\n quadraticCurveTo(\n contour[j].x,\n contour[j].y,\n contour[j + 1].x,\n contour[j + 1].y\n );\n j++;\n } else {\n quadraticCurveTo(\n contour[j].x,\n contour[j].y,\n (contour[j].x + contour[j + 1].x) / 2,\n (contour[j].y + contour[j + 1].y) / 2\n );\n }\n }\n startPoint = endPoint + 1;\n }\n }\n}\n\nfunction compileCharString(charStringCode, cmds, font, glyphId) {\n function moveTo(x, y) {\n cmds.push({ cmd: \"moveTo\", args: [x, y] });\n }\n function lineTo(x, y) {\n cmds.push({ cmd: \"lineTo\", args: [x, y] });\n }\n function bezierCurveTo(x1, y1, x2, y2, x, y) {\n cmds.push({ cmd: \"bezierCurveTo\", args: [x1, y1, x2, y2, x, y] });\n }\n\n const stack = [];\n let x = 0,\n y = 0;\n let stems = 0;\n\n function parse(code) {\n let i = 0;\n while (i < code.length) {\n let stackClean = false;\n let v = code[i++];\n let xa, xb, ya, yb, y1, y2, y3, n, subrCode;\n switch (v) {\n case 1: // hstem\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 3: // vstem\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 4: // vmoveto\n y += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 5: // rlineto\n while (stack.length > 0) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 6: // hlineto\n while (stack.length > 0) {\n x += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n y += stack.shift();\n lineTo(x, y);\n }\n break;\n case 7: // vlineto\n while (stack.length > 0) {\n y += stack.shift();\n lineTo(x, y);\n if (stack.length === 0) {\n break;\n }\n x += stack.shift();\n lineTo(x, y);\n }\n break;\n case 8: // rrcurveto\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 10: // callsubr\n n = stack.pop();\n subrCode = null;\n if (font.isCFFCIDFont) {\n const fdIndex = font.fdSelect.getFDIndex(glyphId);\n if (fdIndex >= 0 && fdIndex < font.fdArray.length) {\n const fontDict = font.fdArray[fdIndex];\n let subrs;\n if (fontDict.privateDict?.subrsIndex) {\n subrs = fontDict.privateDict.subrsIndex.objects;\n }\n if (subrs) {\n // Add subroutine bias.\n n += getSubroutineBias(subrs);\n subrCode = subrs[n];\n }\n } else {\n warn(\"Invalid fd index for glyph index.\");\n }\n } else {\n subrCode = font.subrs[n + font.subrsBias];\n }\n if (subrCode) {\n parse(subrCode);\n }\n break;\n case 11: // return\n return;\n case 12:\n v = code[i++];\n switch (v) {\n case 34: // flex\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y1 = y + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y, xb, y1, x, y1);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y, x, y);\n break;\n case 35: // flex\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n stack.pop(); // fd\n break;\n case 36: // hflex1\n xa = x + stack.shift();\n y1 = y + stack.shift();\n xb = xa + stack.shift();\n y2 = y1 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y1, xb, y2, x, y2);\n xa = x + stack.shift();\n xb = xa + stack.shift();\n y3 = y2 + stack.shift();\n x = xb + stack.shift();\n bezierCurveTo(xa, y2, xb, y3, x, y);\n break;\n case 37: // flex1\n const x0 = x,\n y0 = y;\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb;\n if (Math.abs(x - x0) > Math.abs(y - y0)) {\n x += stack.shift();\n } else {\n y += stack.shift();\n }\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n default:\n throw new FormatError(`unknown operator: 12 ${v}`);\n }\n break;\n case 14: // endchar\n if (stack.length >= 4) {\n const achar = stack.pop();\n const bchar = stack.pop();\n y = stack.pop();\n x = stack.pop();\n cmds.push({ cmd: \"save\" }, { cmd: \"translate\", args: [x, y] });\n let cmap = lookupCmap(\n font.cmap,\n String.fromCharCode(font.glyphNameMap[StandardEncoding[achar]])\n );\n compileCharString(\n font.glyphs[cmap.glyphId],\n cmds,\n font,\n cmap.glyphId\n );\n cmds.push({ cmd: \"restore\" });\n\n cmap = lookupCmap(\n font.cmap,\n String.fromCharCode(font.glyphNameMap[StandardEncoding[bchar]])\n );\n compileCharString(\n font.glyphs[cmap.glyphId],\n cmds,\n font,\n cmap.glyphId\n );\n }\n return;\n case 18: // hstemhm\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 19: // hintmask\n stems += stack.length >> 1;\n i += (stems + 7) >> 3;\n stackClean = true;\n break;\n case 20: // cntrmask\n stems += stack.length >> 1;\n i += (stems + 7) >> 3;\n stackClean = true;\n break;\n case 21: // rmoveto\n y += stack.pop();\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 22: // hmoveto\n x += stack.pop();\n moveTo(x, y);\n stackClean = true;\n break;\n case 23: // vstemhm\n stems += stack.length >> 1;\n stackClean = true;\n break;\n case 24: // rcurveline\n while (stack.length > 2) {\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n break;\n case 25: // rlinecurve\n while (stack.length > 6) {\n x += stack.shift();\n y += stack.shift();\n lineTo(x, y);\n }\n xa = x + stack.shift();\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n break;\n case 26: // vvcurveto\n if (stack.length % 2) {\n x += stack.shift();\n }\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb;\n y = yb + stack.shift();\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 27: // hhcurveto\n if (stack.length % 2) {\n y += stack.shift();\n }\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb;\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 28:\n stack.push(((code[i] << 24) | (code[i + 1] << 16)) >> 16);\n i += 2;\n break;\n case 29: // callgsubr\n n = stack.pop() + font.gsubrsBias;\n subrCode = font.gsubrs[n];\n if (subrCode) {\n parse(subrCode);\n }\n break;\n case 30: // vhcurveto\n while (stack.length > 0) {\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n if (stack.length === 0) {\n break;\n }\n\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n case 31: // hvcurveto\n while (stack.length > 0) {\n xa = x + stack.shift();\n ya = y;\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n y = yb + stack.shift();\n x = xb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n if (stack.length === 0) {\n break;\n }\n\n xa = x;\n ya = y + stack.shift();\n xb = xa + stack.shift();\n yb = ya + stack.shift();\n x = xb + stack.shift();\n y = yb + (stack.length === 1 ? stack.shift() : 0);\n bezierCurveTo(xa, ya, xb, yb, x, y);\n }\n break;\n default:\n if (v < 32) {\n throw new FormatError(`unknown operator: ${v}`);\n }\n if (v < 247) {\n stack.push(v - 139);\n } else if (v < 251) {\n stack.push((v - 247) * 256 + code[i++] + 108);\n } else if (v < 255) {\n stack.push(-(v - 251) * 256 - code[i++] - 108);\n } else {\n stack.push(\n ((code[i] << 24) |\n (code[i + 1] << 16) |\n (code[i + 2] << 8) |\n code[i + 3]) /\n 65536\n );\n i += 4;\n }\n break;\n }\n if (stackClean) {\n stack.length = 0;\n }\n }\n }\n parse(charStringCode);\n}\n\nconst NOOP = [];\n\nclass CompiledFont {\n constructor(fontMatrix) {\n if (this.constructor === CompiledFont) {\n unreachable(\"Cannot initialize CompiledFont.\");\n }\n this.fontMatrix = fontMatrix;\n\n this.compiledGlyphs = Object.create(null);\n this.compiledCharCodeToGlyphId = Object.create(null);\n }\n\n getPathJs(unicode) {\n const { charCode, glyphId } = lookupCmap(this.cmap, unicode);\n let fn = this.compiledGlyphs[glyphId];\n if (!fn) {\n try {\n fn = this.compileGlyph(this.glyphs[glyphId], glyphId);\n this.compiledGlyphs[glyphId] = fn;\n } catch (ex) {\n // Avoid attempting to re-compile a corrupt glyph.\n this.compiledGlyphs[glyphId] = NOOP;\n\n if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n this.compiledCharCodeToGlyphId[charCode] = glyphId;\n }\n throw ex;\n }\n }\n if (this.compiledCharCodeToGlyphId[charCode] === undefined) {\n this.compiledCharCodeToGlyphId[charCode] = glyphId;\n }\n return fn;\n }\n\n compileGlyph(code, glyphId) {\n if (!code || code.length === 0 || code[0] === 14) {\n return NOOP;\n }\n\n let fontMatrix = this.fontMatrix;\n if (this.isCFFCIDFont) {\n // Top DICT's FontMatrix can be ignored because CFFCompiler always\n // removes it and copies to FDArray DICTs.\n const fdIndex = this.fdSelect.getFDIndex(glyphId);\n if (fdIndex >= 0 && fdIndex < this.fdArray.length) {\n const fontDict = this.fdArray[fdIndex];\n fontMatrix = fontDict.getByName(\"FontMatrix\") || FONT_IDENTITY_MATRIX;\n } else {\n warn(\"Invalid fd index for glyph index.\");\n }\n }\n\n const cmds = [\n { cmd: \"save\" },\n { cmd: \"transform\", args: fontMatrix.slice() },\n { cmd: \"scale\", args: [\"size\", \"-size\"] },\n ];\n this.compileGlyphImpl(code, cmds, glyphId);\n\n cmds.push({ cmd: \"restore\" });\n\n return cmds;\n }\n\n compileGlyphImpl() {\n unreachable(\"Children classes should implement this.\");\n }\n\n hasBuiltPath(unicode) {\n const { charCode, glyphId } = lookupCmap(this.cmap, unicode);\n return (\n this.compiledGlyphs[glyphId] !== undefined &&\n this.compiledCharCodeToGlyphId[charCode] !== undefined\n );\n }\n}\n\nclass TrueTypeCompiled extends CompiledFont {\n constructor(glyphs, cmap, fontMatrix) {\n super(fontMatrix || [0.000488, 0, 0, 0.000488, 0, 0]);\n\n this.glyphs = glyphs;\n this.cmap = cmap;\n }\n\n compileGlyphImpl(code, cmds) {\n compileGlyf(code, cmds, this);\n }\n}\n\nclass Type2Compiled extends CompiledFont {\n constructor(cffInfo, cmap, fontMatrix, glyphNameMap) {\n super(fontMatrix || [0.001, 0, 0, 0.001, 0, 0]);\n\n this.glyphs = cffInfo.glyphs;\n this.gsubrs = cffInfo.gsubrs || [];\n this.subrs = cffInfo.subrs || [];\n this.cmap = cmap;\n this.glyphNameMap = glyphNameMap || getGlyphsUnicode();\n\n this.gsubrsBias = getSubroutineBias(this.gsubrs);\n this.subrsBias = getSubroutineBias(this.subrs);\n\n this.isCFFCIDFont = cffInfo.isCFFCIDFont;\n this.fdSelect = cffInfo.fdSelect;\n this.fdArray = cffInfo.fdArray;\n }\n\n compileGlyphImpl(code, cmds, glyphId) {\n compileCharString(code, cmds, this, glyphId);\n }\n}\n\nclass FontRendererFactory {\n static create(font, seacAnalysisEnabled) {\n const data = new Uint8Array(font.data);\n let cmap, glyf, loca, cff, indexToLocFormat, unitsPerEm;\n const numTables = getUint16(data, 4);\n for (let i = 0, p = 12; i < numTables; i++, p += 16) {\n const tag = bytesToString(data.subarray(p, p + 4));\n const offset = getUint32(data, p + 8);\n const length = getUint32(data, p + 12);\n switch (tag) {\n case \"cmap\":\n cmap = parseCmap(data, offset, offset + length);\n break;\n case \"glyf\":\n glyf = data.subarray(offset, offset + length);\n break;\n case \"loca\":\n loca = data.subarray(offset, offset + length);\n break;\n case \"head\":\n unitsPerEm = getUint16(data, offset + 18);\n indexToLocFormat = getUint16(data, offset + 50);\n break;\n case \"CFF \":\n cff = parseCff(data, offset, offset + length, seacAnalysisEnabled);\n break;\n }\n }\n\n if (glyf) {\n const fontMatrix = !unitsPerEm\n ? font.fontMatrix\n : [1 / unitsPerEm, 0, 0, 1 / unitsPerEm, 0, 0];\n return new TrueTypeCompiled(\n parseGlyfTable(glyf, loca, indexToLocFormat),\n cmap,\n fontMatrix\n );\n }\n return new Type2Compiled(cff, cmap, font.fontMatrix, font.glyphNameMap);\n }\n}\n\nexport { FontRendererFactory };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getLookupTableFactory } from \"./core_utils.js\";\n\n// The Metrics object contains glyph widths (in glyph space units).\n// As per PDF spec, for most fonts (Type 3 being an exception) a glyph\n// space unit corresponds to 1/1000th of text space unit.\nconst getMetrics = getLookupTableFactory(function (t) {\n t.Courier = 600;\n t[\"Courier-Bold\"] = 600;\n t[\"Courier-BoldOblique\"] = 600;\n t[\"Courier-Oblique\"] = 600;\n // eslint-disable-next-line no-shadow\n t.Helvetica = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 278;\n t.quotedbl = 355;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 667;\n t.quoteright = 222;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 556;\n t.at = 1015;\n t.A = 667;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 500;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 278;\n t.backslash = 278;\n t.bracketright = 278;\n t.asciicircum = 469;\n t.underscore = 556;\n t.quoteleft = 222;\n t.a = 556;\n t.b = 556;\n t.c = 500;\n t.d = 556;\n t.e = 556;\n t.f = 278;\n t.g = 556;\n t.h = 556;\n t.i = 222;\n t.j = 222;\n t.k = 500;\n t.l = 222;\n t.m = 833;\n t.n = 556;\n t.o = 556;\n t.p = 556;\n t.q = 556;\n t.r = 333;\n t.s = 500;\n t.t = 278;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 500;\n t.braceleft = 334;\n t.bar = 260;\n t.braceright = 334;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 191;\n t.quotedblleft = 333;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 537;\n t.bullet = 350;\n t.quotesinglbase = 222;\n t.quotedblbase = 333;\n t.quotedblright = 333;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 556;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 222;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 556;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 667;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 500;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 500;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 222;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 500;\n t.scedilla = 500;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 556;\n t.Amacron = 667;\n t.rcaron = 333;\n t.ccedilla = 500;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 643;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 584;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 500;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 260;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 333;\n t.omacron = 556;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 222;\n t.tcaron = 317;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 222;\n t.Oacute = 778;\n t.oacute = 556;\n t.amacron = 556;\n t.sacute = 500;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 556;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 299;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 556;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 556;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 556;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 556;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 556;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 556;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 500;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 584;\n t.odieresis = 556;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 556;\n t.eth = 556;\n t.zcaron = 500;\n t.ncommaaccent = 556;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t[\"Helvetica-Bold\"] = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 333;\n t.quotedbl = 474;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 722;\n t.quoteright = 278;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 611;\n t.at = 975;\n t.A = 722;\n t.B = 722;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 556;\n t.K = 722;\n t.L = 611;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 584;\n t.underscore = 556;\n t.quoteleft = 278;\n t.a = 556;\n t.b = 611;\n t.c = 556;\n t.d = 611;\n t.e = 556;\n t.f = 333;\n t.g = 611;\n t.h = 611;\n t.i = 278;\n t.j = 278;\n t.k = 556;\n t.l = 278;\n t.m = 889;\n t.n = 611;\n t.o = 611;\n t.p = 611;\n t.q = 611;\n t.r = 389;\n t.s = 556;\n t.t = 333;\n t.u = 611;\n t.v = 556;\n t.w = 778;\n t.x = 556;\n t.y = 556;\n t.z = 500;\n t.braceleft = 389;\n t.bar = 280;\n t.braceright = 389;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 238;\n t.quotedblleft = 500;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 611;\n t.fl = 611;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 556;\n t.bullet = 350;\n t.quotesinglbase = 278;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 611;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 611;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 722;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 556;\n t.scommaaccent = 556;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 611;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 556;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 556;\n t.scedilla = 556;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 611;\n t.acircumflex = 556;\n t.Amacron = 722;\n t.rcaron = 389;\n t.ccedilla = 556;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 743;\n t.Umacron = 722;\n t.uring = 611;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 584;\n t.uacute = 611;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 556;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 556;\n t.nacute = 611;\n t.umacron = 611;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 280;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 611;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 389;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 611;\n t.amacron = 556;\n t.sacute = 556;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 611;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 611;\n t.igrave = 278;\n t.ohungarumlaut = 611;\n t.Eogonek = 667;\n t.dcroat = 611;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 400;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 611;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 611;\n t.ntilde = 611;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 611;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 611;\n t.Ccaron = 722;\n t.ugrave = 611;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 611;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 556;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 611;\n t.tcommaaccent = 333;\n t.logicalnot = 584;\n t.odieresis = 611;\n t.udieresis = 611;\n t.notequal = 549;\n t.gcommaaccent = 611;\n t.eth = 611;\n t.zcaron = 500;\n t.ncommaaccent = 611;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t[\"Helvetica-BoldOblique\"] = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 333;\n t.quotedbl = 474;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 722;\n t.quoteright = 278;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 611;\n t.at = 975;\n t.A = 722;\n t.B = 722;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 556;\n t.K = 722;\n t.L = 611;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 584;\n t.underscore = 556;\n t.quoteleft = 278;\n t.a = 556;\n t.b = 611;\n t.c = 556;\n t.d = 611;\n t.e = 556;\n t.f = 333;\n t.g = 611;\n t.h = 611;\n t.i = 278;\n t.j = 278;\n t.k = 556;\n t.l = 278;\n t.m = 889;\n t.n = 611;\n t.o = 611;\n t.p = 611;\n t.q = 611;\n t.r = 389;\n t.s = 556;\n t.t = 333;\n t.u = 611;\n t.v = 556;\n t.w = 778;\n t.x = 556;\n t.y = 556;\n t.z = 500;\n t.braceleft = 389;\n t.bar = 280;\n t.braceright = 389;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 238;\n t.quotedblleft = 500;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 611;\n t.fl = 611;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 556;\n t.bullet = 350;\n t.quotesinglbase = 278;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 611;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 611;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 722;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 556;\n t.scommaaccent = 556;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 611;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 556;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 556;\n t.scedilla = 556;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 611;\n t.acircumflex = 556;\n t.Amacron = 722;\n t.rcaron = 389;\n t.ccedilla = 556;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 743;\n t.Umacron = 722;\n t.uring = 611;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 584;\n t.uacute = 611;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 556;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 556;\n t.nacute = 611;\n t.umacron = 611;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 280;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 611;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 389;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 611;\n t.amacron = 556;\n t.sacute = 556;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 611;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 611;\n t.igrave = 278;\n t.ohungarumlaut = 611;\n t.Eogonek = 667;\n t.dcroat = 611;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 400;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 611;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 611;\n t.ntilde = 611;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 611;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 611;\n t.Ccaron = 722;\n t.ugrave = 611;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 611;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 556;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 611;\n t.tcommaaccent = 333;\n t.logicalnot = 584;\n t.odieresis = 611;\n t.udieresis = 611;\n t.notequal = 549;\n t.gcommaaccent = 611;\n t.eth = 611;\n t.zcaron = 500;\n t.ncommaaccent = 611;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t[\"Helvetica-Oblique\"] = getLookupTableFactory(function (t) {\n t.space = 278;\n t.exclam = 278;\n t.quotedbl = 355;\n t.numbersign = 556;\n t.dollar = 556;\n t.percent = 889;\n t.ampersand = 667;\n t.quoteright = 222;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 389;\n t.plus = 584;\n t.comma = 278;\n t.hyphen = 333;\n t.period = 278;\n t.slash = 278;\n t.zero = 556;\n t.one = 556;\n t.two = 556;\n t.three = 556;\n t.four = 556;\n t.five = 556;\n t.six = 556;\n t.seven = 556;\n t.eight = 556;\n t.nine = 556;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 584;\n t.equal = 584;\n t.greater = 584;\n t.question = 556;\n t.at = 1015;\n t.A = 667;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 722;\n t.I = 278;\n t.J = 500;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 722;\n t.O = 778;\n t.P = 667;\n t.Q = 778;\n t.R = 722;\n t.S = 667;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 944;\n t.X = 667;\n t.Y = 667;\n t.Z = 611;\n t.bracketleft = 278;\n t.backslash = 278;\n t.bracketright = 278;\n t.asciicircum = 469;\n t.underscore = 556;\n t.quoteleft = 222;\n t.a = 556;\n t.b = 556;\n t.c = 500;\n t.d = 556;\n t.e = 556;\n t.f = 278;\n t.g = 556;\n t.h = 556;\n t.i = 222;\n t.j = 222;\n t.k = 500;\n t.l = 222;\n t.m = 833;\n t.n = 556;\n t.o = 556;\n t.p = 556;\n t.q = 556;\n t.r = 333;\n t.s = 500;\n t.t = 278;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 500;\n t.braceleft = 334;\n t.bar = 260;\n t.braceright = 334;\n t.asciitilde = 584;\n t.exclamdown = 333;\n t.cent = 556;\n t.sterling = 556;\n t.fraction = 167;\n t.yen = 556;\n t.florin = 556;\n t.section = 556;\n t.currency = 556;\n t.quotesingle = 191;\n t.quotedblleft = 333;\n t.guillemotleft = 556;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 556;\n t.dagger = 556;\n t.daggerdbl = 556;\n t.periodcentered = 278;\n t.paragraph = 537;\n t.bullet = 350;\n t.quotesinglbase = 222;\n t.quotedblbase = 333;\n t.quotedblright = 333;\n t.guillemotright = 556;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 611;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 370;\n t.Lslash = 556;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 365;\n t.ae = 889;\n t.dotlessi = 278;\n t.lslash = 222;\n t.oslash = 611;\n t.oe = 944;\n t.germandbls = 611;\n t.Idieresis = 278;\n t.eacute = 556;\n t.abreve = 556;\n t.uhungarumlaut = 556;\n t.ecaron = 556;\n t.Ydieresis = 667;\n t.divide = 584;\n t.Yacute = 667;\n t.Acircumflex = 667;\n t.aacute = 556;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 500;\n t.ecircumflex = 556;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 556;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 737;\n t.Emacron = 667;\n t.ccaron = 500;\n t.aring = 556;\n t.Ncommaaccent = 722;\n t.lacute = 222;\n t.agrave = 556;\n t.Tcommaaccent = 611;\n t.Cacute = 722;\n t.atilde = 556;\n t.Edotaccent = 667;\n t.scaron = 500;\n t.scedilla = 500;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 556;\n t.Amacron = 667;\n t.rcaron = 333;\n t.ccedilla = 500;\n t.Zdotaccent = 611;\n t.Thorn = 667;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 667;\n t.dcaron = 643;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 333;\n t.Ograve = 778;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 584;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 556;\n t.edieresis = 556;\n t.cacute = 500;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 278;\n t.plusminus = 584;\n t.brokenbar = 260;\n t.registered = 737;\n t.Gbreve = 778;\n t.Idotaccent = 278;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 333;\n t.omacron = 556;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 222;\n t.tcaron = 317;\n t.eogonek = 556;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 556;\n t.zacute = 500;\n t.iogonek = 222;\n t.Oacute = 778;\n t.oacute = 556;\n t.amacron = 556;\n t.sacute = 500;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 333;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 556;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 834;\n t.Scedilla = 667;\n t.lcaron = 299;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 1000;\n t.edotaccent = 556;\n t.Igrave = 278;\n t.Imacron = 278;\n t.Lcaron = 556;\n t.onehalf = 834;\n t.lessequal = 549;\n t.ocircumflex = 556;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 556;\n t.gbreve = 556;\n t.onequarter = 834;\n t.Scaron = 667;\n t.Scommaaccent = 667;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 556;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 556;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 556;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 778;\n t.zdotaccent = 500;\n t.Ecaron = 667;\n t.Iogonek = 278;\n t.kcommaaccent = 500;\n t.minus = 584;\n t.Icircumflex = 278;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 584;\n t.odieresis = 556;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 556;\n t.eth = 556;\n t.zcaron = 500;\n t.ncommaaccent = 556;\n t.onesuperior = 333;\n t.imacron = 278;\n t.Euro = 556;\n });\n // eslint-disable-next-line no-shadow\n t.Symbol = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.universal = 713;\n t.numbersign = 500;\n t.existential = 549;\n t.percent = 833;\n t.ampersand = 778;\n t.suchthat = 439;\n t.parenleft = 333;\n t.parenright = 333;\n t.asteriskmath = 500;\n t.plus = 549;\n t.comma = 250;\n t.minus = 549;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 549;\n t.equal = 549;\n t.greater = 549;\n t.question = 444;\n t.congruent = 549;\n t.Alpha = 722;\n t.Beta = 667;\n t.Chi = 722;\n t.Delta = 612;\n t.Epsilon = 611;\n t.Phi = 763;\n t.Gamma = 603;\n t.Eta = 722;\n t.Iota = 333;\n t.theta1 = 631;\n t.Kappa = 722;\n t.Lambda = 686;\n t.Mu = 889;\n t.Nu = 722;\n t.Omicron = 722;\n t.Pi = 768;\n t.Theta = 741;\n t.Rho = 556;\n t.Sigma = 592;\n t.Tau = 611;\n t.Upsilon = 690;\n t.sigma1 = 439;\n t.Omega = 768;\n t.Xi = 645;\n t.Psi = 795;\n t.Zeta = 611;\n t.bracketleft = 333;\n t.therefore = 863;\n t.bracketright = 333;\n t.perpendicular = 658;\n t.underscore = 500;\n t.radicalex = 500;\n t.alpha = 631;\n t.beta = 549;\n t.chi = 549;\n t.delta = 494;\n t.epsilon = 439;\n t.phi = 521;\n t.gamma = 411;\n t.eta = 603;\n t.iota = 329;\n t.phi1 = 603;\n t.kappa = 549;\n t.lambda = 549;\n t.mu = 576;\n t.nu = 521;\n t.omicron = 549;\n t.pi = 549;\n t.theta = 521;\n t.rho = 549;\n t.sigma = 603;\n t.tau = 439;\n t.upsilon = 576;\n t.omega1 = 713;\n t.omega = 686;\n t.xi = 493;\n t.psi = 686;\n t.zeta = 494;\n t.braceleft = 480;\n t.bar = 200;\n t.braceright = 480;\n t.similar = 549;\n t.Euro = 750;\n t.Upsilon1 = 620;\n t.minute = 247;\n t.lessequal = 549;\n t.fraction = 167;\n t.infinity = 713;\n t.florin = 500;\n t.club = 753;\n t.diamond = 753;\n t.heart = 753;\n t.spade = 753;\n t.arrowboth = 1042;\n t.arrowleft = 987;\n t.arrowup = 603;\n t.arrowright = 987;\n t.arrowdown = 603;\n t.degree = 400;\n t.plusminus = 549;\n t.second = 411;\n t.greaterequal = 549;\n t.multiply = 549;\n t.proportional = 713;\n t.partialdiff = 494;\n t.bullet = 460;\n t.divide = 549;\n t.notequal = 549;\n t.equivalence = 549;\n t.approxequal = 549;\n t.ellipsis = 1000;\n t.arrowvertex = 603;\n t.arrowhorizex = 1000;\n t.carriagereturn = 658;\n t.aleph = 823;\n t.Ifraktur = 686;\n t.Rfraktur = 795;\n t.weierstrass = 987;\n t.circlemultiply = 768;\n t.circleplus = 768;\n t.emptyset = 823;\n t.intersection = 768;\n t.union = 768;\n t.propersuperset = 713;\n t.reflexsuperset = 713;\n t.notsubset = 713;\n t.propersubset = 713;\n t.reflexsubset = 713;\n t.element = 713;\n t.notelement = 713;\n t.angle = 768;\n t.gradient = 713;\n t.registerserif = 790;\n t.copyrightserif = 790;\n t.trademarkserif = 890;\n t.product = 823;\n t.radical = 549;\n t.dotmath = 250;\n t.logicalnot = 713;\n t.logicaland = 603;\n t.logicalor = 603;\n t.arrowdblboth = 1042;\n t.arrowdblleft = 987;\n t.arrowdblup = 603;\n t.arrowdblright = 987;\n t.arrowdbldown = 603;\n t.lozenge = 494;\n t.angleleft = 329;\n t.registersans = 790;\n t.copyrightsans = 790;\n t.trademarksans = 786;\n t.summation = 713;\n t.parenlefttp = 384;\n t.parenleftex = 384;\n t.parenleftbt = 384;\n t.bracketlefttp = 384;\n t.bracketleftex = 384;\n t.bracketleftbt = 384;\n t.bracelefttp = 494;\n t.braceleftmid = 494;\n t.braceleftbt = 494;\n t.braceex = 494;\n t.angleright = 329;\n t.integral = 274;\n t.integraltp = 686;\n t.integralex = 686;\n t.integralbt = 686;\n t.parenrighttp = 384;\n t.parenrightex = 384;\n t.parenrightbt = 384;\n t.bracketrighttp = 384;\n t.bracketrightex = 384;\n t.bracketrightbt = 384;\n t.bracerighttp = 494;\n t.bracerightmid = 494;\n t.bracerightbt = 494;\n t.apple = 790;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-Roman\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 408;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 564;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 278;\n t.semicolon = 278;\n t.less = 564;\n t.equal = 564;\n t.greater = 564;\n t.question = 444;\n t.at = 921;\n t.A = 722;\n t.B = 667;\n t.C = 667;\n t.D = 722;\n t.E = 611;\n t.F = 556;\n t.G = 722;\n t.H = 722;\n t.I = 333;\n t.J = 389;\n t.K = 722;\n t.L = 611;\n t.M = 889;\n t.N = 722;\n t.O = 722;\n t.P = 556;\n t.Q = 722;\n t.R = 667;\n t.S = 556;\n t.T = 611;\n t.U = 722;\n t.V = 722;\n t.W = 944;\n t.X = 722;\n t.Y = 722;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 469;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 444;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 500;\n t.i = 278;\n t.j = 278;\n t.k = 500;\n t.l = 278;\n t.m = 778;\n t.n = 500;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 333;\n t.s = 389;\n t.t = 278;\n t.u = 500;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 444;\n t.braceleft = 480;\n t.bar = 200;\n t.braceright = 480;\n t.asciitilde = 541;\n t.exclamdown = 333;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 180;\n t.quotedblleft = 444;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 453;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 444;\n t.quotedblright = 444;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 444;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 889;\n t.ordfeminine = 276;\n t.Lslash = 611;\n t.Oslash = 722;\n t.OE = 889;\n t.ordmasculine = 310;\n t.ae = 667;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 500;\n t.Idieresis = 333;\n t.eacute = 444;\n t.abreve = 444;\n t.uhungarumlaut = 500;\n t.ecaron = 444;\n t.Ydieresis = 722;\n t.divide = 564;\n t.Yacute = 722;\n t.Acircumflex = 722;\n t.aacute = 444;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 444;\n t.Uacute = 722;\n t.uogonek = 500;\n t.Edieresis = 611;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 760;\n t.Emacron = 611;\n t.ccaron = 444;\n t.aring = 444;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 444;\n t.Tcommaaccent = 611;\n t.Cacute = 667;\n t.atilde = 444;\n t.Edotaccent = 611;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 667;\n t.Gcommaaccent = 722;\n t.ucircumflex = 500;\n t.acircumflex = 444;\n t.Amacron = 722;\n t.rcaron = 333;\n t.ccedilla = 444;\n t.Zdotaccent = 611;\n t.Thorn = 556;\n t.Omacron = 722;\n t.Racute = 667;\n t.Sacute = 556;\n t.dcaron = 588;\n t.Umacron = 722;\n t.uring = 500;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 564;\n t.uacute = 500;\n t.Tcaron = 611;\n t.partialdiff = 476;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 611;\n t.adieresis = 444;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 500;\n t.umacron = 500;\n t.Ncaron = 722;\n t.Iacute = 333;\n t.plusminus = 564;\n t.brokenbar = 200;\n t.registered = 760;\n t.Gbreve = 722;\n t.Idotaccent = 333;\n t.summation = 600;\n t.Egrave = 611;\n t.racute = 333;\n t.omacron = 500;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 326;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 444;\n t.zacute = 444;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 444;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 500;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 611;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 344;\n t.Kcommaaccent = 722;\n t.Lacute = 611;\n t.trademark = 980;\n t.edotaccent = 444;\n t.Igrave = 333;\n t.Imacron = 333;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 500;\n t.Uhungarumlaut = 722;\n t.Eacute = 611;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 500;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 333;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 667;\n t.Lcommaaccent = 611;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 722;\n t.zdotaccent = 444;\n t.Ecaron = 611;\n t.Iogonek = 333;\n t.kcommaaccent = 500;\n t.minus = 564;\n t.Icircumflex = 333;\n t.ncaron = 500;\n t.tcommaaccent = 278;\n t.logicalnot = 564;\n t.odieresis = 500;\n t.udieresis = 500;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 444;\n t.ncommaaccent = 500;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-Bold\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 555;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 1000;\n t.ampersand = 833;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 570;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 570;\n t.equal = 570;\n t.greater = 570;\n t.question = 500;\n t.at = 930;\n t.A = 722;\n t.B = 667;\n t.C = 722;\n t.D = 722;\n t.E = 667;\n t.F = 611;\n t.G = 778;\n t.H = 778;\n t.I = 389;\n t.J = 500;\n t.K = 778;\n t.L = 667;\n t.M = 944;\n t.N = 722;\n t.O = 778;\n t.P = 611;\n t.Q = 778;\n t.R = 722;\n t.S = 556;\n t.T = 667;\n t.U = 722;\n t.V = 722;\n t.W = 1000;\n t.X = 722;\n t.Y = 722;\n t.Z = 667;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 581;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 556;\n t.c = 444;\n t.d = 556;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 556;\n t.i = 278;\n t.j = 333;\n t.k = 556;\n t.l = 278;\n t.m = 833;\n t.n = 556;\n t.o = 500;\n t.p = 556;\n t.q = 556;\n t.r = 444;\n t.s = 389;\n t.t = 333;\n t.u = 556;\n t.v = 500;\n t.w = 722;\n t.x = 500;\n t.y = 500;\n t.z = 444;\n t.braceleft = 394;\n t.bar = 220;\n t.braceright = 394;\n t.asciitilde = 520;\n t.exclamdown = 333;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 278;\n t.quotedblleft = 500;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 540;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 1000;\n t.ordfeminine = 300;\n t.Lslash = 667;\n t.Oslash = 778;\n t.OE = 1000;\n t.ordmasculine = 330;\n t.ae = 722;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 556;\n t.Idieresis = 389;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 556;\n t.ecaron = 444;\n t.Ydieresis = 722;\n t.divide = 570;\n t.Yacute = 722;\n t.Acircumflex = 722;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 500;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 747;\n t.Emacron = 667;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 667;\n t.Cacute = 722;\n t.atilde = 500;\n t.Edotaccent = 667;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 722;\n t.Gcommaaccent = 778;\n t.ucircumflex = 556;\n t.acircumflex = 500;\n t.Amacron = 722;\n t.rcaron = 444;\n t.ccedilla = 444;\n t.Zdotaccent = 667;\n t.Thorn = 611;\n t.Omacron = 778;\n t.Racute = 722;\n t.Sacute = 556;\n t.dcaron = 672;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 300;\n t.Ograve = 778;\n t.Agrave = 722;\n t.Abreve = 722;\n t.multiply = 570;\n t.uacute = 556;\n t.Tcaron = 667;\n t.partialdiff = 494;\n t.ydieresis = 500;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 389;\n t.plusminus = 570;\n t.brokenbar = 220;\n t.registered = 747;\n t.Gbreve = 778;\n t.Idotaccent = 389;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 444;\n t.omacron = 500;\n t.Zacute = 667;\n t.Zcaron = 667;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 722;\n t.lcommaaccent = 278;\n t.tcaron = 416;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 722;\n t.Adieresis = 722;\n t.egrave = 444;\n t.zacute = 444;\n t.iogonek = 278;\n t.Oacute = 778;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 778;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 556;\n t.twosuperior = 300;\n t.Odieresis = 778;\n t.mu = 556;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 667;\n t.dcroat = 556;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 394;\n t.Kcommaaccent = 778;\n t.Lacute = 667;\n t.trademark = 1000;\n t.edotaccent = 444;\n t.Igrave = 389;\n t.Imacron = 389;\n t.Lcaron = 667;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 778;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 722;\n t.ugrave = 556;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 444;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 722;\n t.Lcommaaccent = 667;\n t.Atilde = 722;\n t.Aogonek = 722;\n t.Aring = 722;\n t.Otilde = 778;\n t.zdotaccent = 444;\n t.Ecaron = 667;\n t.Iogonek = 389;\n t.kcommaaccent = 556;\n t.minus = 570;\n t.Icircumflex = 389;\n t.ncaron = 556;\n t.tcommaaccent = 333;\n t.logicalnot = 570;\n t.odieresis = 500;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 444;\n t.ncommaaccent = 556;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-BoldItalic\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 389;\n t.quotedbl = 555;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 570;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 570;\n t.equal = 570;\n t.greater = 570;\n t.question = 500;\n t.at = 832;\n t.A = 667;\n t.B = 667;\n t.C = 667;\n t.D = 722;\n t.E = 667;\n t.F = 667;\n t.G = 722;\n t.H = 778;\n t.I = 389;\n t.J = 500;\n t.K = 667;\n t.L = 611;\n t.M = 889;\n t.N = 722;\n t.O = 722;\n t.P = 611;\n t.Q = 722;\n t.R = 667;\n t.S = 556;\n t.T = 611;\n t.U = 722;\n t.V = 667;\n t.W = 889;\n t.X = 667;\n t.Y = 611;\n t.Z = 611;\n t.bracketleft = 333;\n t.backslash = 278;\n t.bracketright = 333;\n t.asciicircum = 570;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 333;\n t.g = 500;\n t.h = 556;\n t.i = 278;\n t.j = 278;\n t.k = 500;\n t.l = 278;\n t.m = 778;\n t.n = 556;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 389;\n t.s = 389;\n t.t = 278;\n t.u = 556;\n t.v = 444;\n t.w = 667;\n t.x = 500;\n t.y = 444;\n t.z = 389;\n t.braceleft = 348;\n t.bar = 220;\n t.braceright = 348;\n t.asciitilde = 570;\n t.exclamdown = 389;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 278;\n t.quotedblleft = 500;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 556;\n t.fl = 556;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 500;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 500;\n t.quotedblright = 500;\n t.guillemotright = 500;\n t.ellipsis = 1000;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 1000;\n t.AE = 944;\n t.ordfeminine = 266;\n t.Lslash = 611;\n t.Oslash = 722;\n t.OE = 944;\n t.ordmasculine = 300;\n t.ae = 722;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 722;\n t.germandbls = 500;\n t.Idieresis = 389;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 556;\n t.ecaron = 444;\n t.Ydieresis = 611;\n t.divide = 570;\n t.Yacute = 611;\n t.Acircumflex = 667;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 444;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 556;\n t.Edieresis = 667;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 747;\n t.Emacron = 667;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 722;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 611;\n t.Cacute = 667;\n t.atilde = 500;\n t.Edotaccent = 667;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 494;\n t.Rcaron = 667;\n t.Gcommaaccent = 722;\n t.ucircumflex = 556;\n t.acircumflex = 500;\n t.Amacron = 667;\n t.rcaron = 389;\n t.ccedilla = 444;\n t.Zdotaccent = 611;\n t.Thorn = 611;\n t.Omacron = 722;\n t.Racute = 667;\n t.Sacute = 556;\n t.dcaron = 608;\n t.Umacron = 722;\n t.uring = 556;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 667;\n t.Abreve = 667;\n t.multiply = 570;\n t.uacute = 556;\n t.Tcaron = 611;\n t.partialdiff = 494;\n t.ydieresis = 444;\n t.Nacute = 722;\n t.icircumflex = 278;\n t.Ecircumflex = 667;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 556;\n t.umacron = 556;\n t.Ncaron = 722;\n t.Iacute = 389;\n t.plusminus = 570;\n t.brokenbar = 220;\n t.registered = 747;\n t.Gbreve = 722;\n t.Idotaccent = 389;\n t.summation = 600;\n t.Egrave = 667;\n t.racute = 389;\n t.omacron = 500;\n t.Zacute = 611;\n t.Zcaron = 611;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 366;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 667;\n t.Adieresis = 667;\n t.egrave = 444;\n t.zacute = 389;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 576;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 667;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 556;\n t.lcaron = 382;\n t.Kcommaaccent = 667;\n t.Lacute = 611;\n t.trademark = 1000;\n t.edotaccent = 444;\n t.Igrave = 389;\n t.Imacron = 389;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 556;\n t.Uhungarumlaut = 722;\n t.Eacute = 667;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 556;\n t.Scommaaccent = 556;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 556;\n t.radical = 549;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 722;\n t.otilde = 500;\n t.Rcommaaccent = 667;\n t.Lcommaaccent = 611;\n t.Atilde = 667;\n t.Aogonek = 667;\n t.Aring = 667;\n t.Otilde = 722;\n t.zdotaccent = 389;\n t.Ecaron = 667;\n t.Iogonek = 389;\n t.kcommaaccent = 500;\n t.minus = 606;\n t.Icircumflex = 389;\n t.ncaron = 556;\n t.tcommaaccent = 278;\n t.logicalnot = 606;\n t.odieresis = 500;\n t.udieresis = 556;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 389;\n t.ncommaaccent = 556;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t[\"Times-Italic\"] = getLookupTableFactory(function (t) {\n t.space = 250;\n t.exclam = 333;\n t.quotedbl = 420;\n t.numbersign = 500;\n t.dollar = 500;\n t.percent = 833;\n t.ampersand = 778;\n t.quoteright = 333;\n t.parenleft = 333;\n t.parenright = 333;\n t.asterisk = 500;\n t.plus = 675;\n t.comma = 250;\n t.hyphen = 333;\n t.period = 250;\n t.slash = 278;\n t.zero = 500;\n t.one = 500;\n t.two = 500;\n t.three = 500;\n t.four = 500;\n t.five = 500;\n t.six = 500;\n t.seven = 500;\n t.eight = 500;\n t.nine = 500;\n t.colon = 333;\n t.semicolon = 333;\n t.less = 675;\n t.equal = 675;\n t.greater = 675;\n t.question = 500;\n t.at = 920;\n t.A = 611;\n t.B = 611;\n t.C = 667;\n t.D = 722;\n t.E = 611;\n t.F = 611;\n t.G = 722;\n t.H = 722;\n t.I = 333;\n t.J = 444;\n t.K = 667;\n t.L = 556;\n t.M = 833;\n t.N = 667;\n t.O = 722;\n t.P = 611;\n t.Q = 722;\n t.R = 611;\n t.S = 500;\n t.T = 556;\n t.U = 722;\n t.V = 611;\n t.W = 833;\n t.X = 611;\n t.Y = 556;\n t.Z = 556;\n t.bracketleft = 389;\n t.backslash = 278;\n t.bracketright = 389;\n t.asciicircum = 422;\n t.underscore = 500;\n t.quoteleft = 333;\n t.a = 500;\n t.b = 500;\n t.c = 444;\n t.d = 500;\n t.e = 444;\n t.f = 278;\n t.g = 500;\n t.h = 500;\n t.i = 278;\n t.j = 278;\n t.k = 444;\n t.l = 278;\n t.m = 722;\n t.n = 500;\n t.o = 500;\n t.p = 500;\n t.q = 500;\n t.r = 389;\n t.s = 389;\n t.t = 278;\n t.u = 500;\n t.v = 444;\n t.w = 667;\n t.x = 444;\n t.y = 444;\n t.z = 389;\n t.braceleft = 400;\n t.bar = 275;\n t.braceright = 400;\n t.asciitilde = 541;\n t.exclamdown = 389;\n t.cent = 500;\n t.sterling = 500;\n t.fraction = 167;\n t.yen = 500;\n t.florin = 500;\n t.section = 500;\n t.currency = 500;\n t.quotesingle = 214;\n t.quotedblleft = 556;\n t.guillemotleft = 500;\n t.guilsinglleft = 333;\n t.guilsinglright = 333;\n t.fi = 500;\n t.fl = 500;\n t.endash = 500;\n t.dagger = 500;\n t.daggerdbl = 500;\n t.periodcentered = 250;\n t.paragraph = 523;\n t.bullet = 350;\n t.quotesinglbase = 333;\n t.quotedblbase = 556;\n t.quotedblright = 556;\n t.guillemotright = 500;\n t.ellipsis = 889;\n t.perthousand = 1000;\n t.questiondown = 500;\n t.grave = 333;\n t.acute = 333;\n t.circumflex = 333;\n t.tilde = 333;\n t.macron = 333;\n t.breve = 333;\n t.dotaccent = 333;\n t.dieresis = 333;\n t.ring = 333;\n t.cedilla = 333;\n t.hungarumlaut = 333;\n t.ogonek = 333;\n t.caron = 333;\n t.emdash = 889;\n t.AE = 889;\n t.ordfeminine = 276;\n t.Lslash = 556;\n t.Oslash = 722;\n t.OE = 944;\n t.ordmasculine = 310;\n t.ae = 667;\n t.dotlessi = 278;\n t.lslash = 278;\n t.oslash = 500;\n t.oe = 667;\n t.germandbls = 500;\n t.Idieresis = 333;\n t.eacute = 444;\n t.abreve = 500;\n t.uhungarumlaut = 500;\n t.ecaron = 444;\n t.Ydieresis = 556;\n t.divide = 675;\n t.Yacute = 556;\n t.Acircumflex = 611;\n t.aacute = 500;\n t.Ucircumflex = 722;\n t.yacute = 444;\n t.scommaaccent = 389;\n t.ecircumflex = 444;\n t.Uring = 722;\n t.Udieresis = 722;\n t.aogonek = 500;\n t.Uacute = 722;\n t.uogonek = 500;\n t.Edieresis = 611;\n t.Dcroat = 722;\n t.commaaccent = 250;\n t.copyright = 760;\n t.Emacron = 611;\n t.ccaron = 444;\n t.aring = 500;\n t.Ncommaaccent = 667;\n t.lacute = 278;\n t.agrave = 500;\n t.Tcommaaccent = 556;\n t.Cacute = 667;\n t.atilde = 500;\n t.Edotaccent = 611;\n t.scaron = 389;\n t.scedilla = 389;\n t.iacute = 278;\n t.lozenge = 471;\n t.Rcaron = 611;\n t.Gcommaaccent = 722;\n t.ucircumflex = 500;\n t.acircumflex = 500;\n t.Amacron = 611;\n t.rcaron = 389;\n t.ccedilla = 444;\n t.Zdotaccent = 556;\n t.Thorn = 611;\n t.Omacron = 722;\n t.Racute = 611;\n t.Sacute = 500;\n t.dcaron = 544;\n t.Umacron = 722;\n t.uring = 500;\n t.threesuperior = 300;\n t.Ograve = 722;\n t.Agrave = 611;\n t.Abreve = 611;\n t.multiply = 675;\n t.uacute = 500;\n t.Tcaron = 556;\n t.partialdiff = 476;\n t.ydieresis = 444;\n t.Nacute = 667;\n t.icircumflex = 278;\n t.Ecircumflex = 611;\n t.adieresis = 500;\n t.edieresis = 444;\n t.cacute = 444;\n t.nacute = 500;\n t.umacron = 500;\n t.Ncaron = 667;\n t.Iacute = 333;\n t.plusminus = 675;\n t.brokenbar = 275;\n t.registered = 760;\n t.Gbreve = 722;\n t.Idotaccent = 333;\n t.summation = 600;\n t.Egrave = 611;\n t.racute = 389;\n t.omacron = 500;\n t.Zacute = 556;\n t.Zcaron = 556;\n t.greaterequal = 549;\n t.Eth = 722;\n t.Ccedilla = 667;\n t.lcommaaccent = 278;\n t.tcaron = 300;\n t.eogonek = 444;\n t.Uogonek = 722;\n t.Aacute = 611;\n t.Adieresis = 611;\n t.egrave = 444;\n t.zacute = 389;\n t.iogonek = 278;\n t.Oacute = 722;\n t.oacute = 500;\n t.amacron = 500;\n t.sacute = 389;\n t.idieresis = 278;\n t.Ocircumflex = 722;\n t.Ugrave = 722;\n t.Delta = 612;\n t.thorn = 500;\n t.twosuperior = 300;\n t.Odieresis = 722;\n t.mu = 500;\n t.igrave = 278;\n t.ohungarumlaut = 500;\n t.Eogonek = 611;\n t.dcroat = 500;\n t.threequarters = 750;\n t.Scedilla = 500;\n t.lcaron = 300;\n t.Kcommaaccent = 667;\n t.Lacute = 556;\n t.trademark = 980;\n t.edotaccent = 444;\n t.Igrave = 333;\n t.Imacron = 333;\n t.Lcaron = 611;\n t.onehalf = 750;\n t.lessequal = 549;\n t.ocircumflex = 500;\n t.ntilde = 500;\n t.Uhungarumlaut = 722;\n t.Eacute = 611;\n t.emacron = 444;\n t.gbreve = 500;\n t.onequarter = 750;\n t.Scaron = 500;\n t.Scommaaccent = 500;\n t.Ohungarumlaut = 722;\n t.degree = 400;\n t.ograve = 500;\n t.Ccaron = 667;\n t.ugrave = 500;\n t.radical = 453;\n t.Dcaron = 722;\n t.rcommaaccent = 389;\n t.Ntilde = 667;\n t.otilde = 500;\n t.Rcommaaccent = 611;\n t.Lcommaaccent = 556;\n t.Atilde = 611;\n t.Aogonek = 611;\n t.Aring = 611;\n t.Otilde = 722;\n t.zdotaccent = 389;\n t.Ecaron = 611;\n t.Iogonek = 333;\n t.kcommaaccent = 444;\n t.minus = 675;\n t.Icircumflex = 333;\n t.ncaron = 500;\n t.tcommaaccent = 278;\n t.logicalnot = 675;\n t.odieresis = 500;\n t.udieresis = 500;\n t.notequal = 549;\n t.gcommaaccent = 500;\n t.eth = 500;\n t.zcaron = 389;\n t.ncommaaccent = 500;\n t.onesuperior = 300;\n t.imacron = 278;\n t.Euro = 500;\n });\n // eslint-disable-next-line no-shadow\n t.ZapfDingbats = getLookupTableFactory(function (t) {\n t.space = 278;\n t.a1 = 974;\n t.a2 = 961;\n t.a202 = 974;\n t.a3 = 980;\n t.a4 = 719;\n t.a5 = 789;\n t.a119 = 790;\n t.a118 = 791;\n t.a117 = 690;\n t.a11 = 960;\n t.a12 = 939;\n t.a13 = 549;\n t.a14 = 855;\n t.a15 = 911;\n t.a16 = 933;\n t.a105 = 911;\n t.a17 = 945;\n t.a18 = 974;\n t.a19 = 755;\n t.a20 = 846;\n t.a21 = 762;\n t.a22 = 761;\n t.a23 = 571;\n t.a24 = 677;\n t.a25 = 763;\n t.a26 = 760;\n t.a27 = 759;\n t.a28 = 754;\n t.a6 = 494;\n t.a7 = 552;\n t.a8 = 537;\n t.a9 = 577;\n t.a10 = 692;\n t.a29 = 786;\n t.a30 = 788;\n t.a31 = 788;\n t.a32 = 790;\n t.a33 = 793;\n t.a34 = 794;\n t.a35 = 816;\n t.a36 = 823;\n t.a37 = 789;\n t.a38 = 841;\n t.a39 = 823;\n t.a40 = 833;\n t.a41 = 816;\n t.a42 = 831;\n t.a43 = 923;\n t.a44 = 744;\n t.a45 = 723;\n t.a46 = 749;\n t.a47 = 790;\n t.a48 = 792;\n t.a49 = 695;\n t.a50 = 776;\n t.a51 = 768;\n t.a52 = 792;\n t.a53 = 759;\n t.a54 = 707;\n t.a55 = 708;\n t.a56 = 682;\n t.a57 = 701;\n t.a58 = 826;\n t.a59 = 815;\n t.a60 = 789;\n t.a61 = 789;\n t.a62 = 707;\n t.a63 = 687;\n t.a64 = 696;\n t.a65 = 689;\n t.a66 = 786;\n t.a67 = 787;\n t.a68 = 713;\n t.a69 = 791;\n t.a70 = 785;\n t.a71 = 791;\n t.a72 = 873;\n t.a73 = 761;\n t.a74 = 762;\n t.a203 = 762;\n t.a75 = 759;\n t.a204 = 759;\n t.a76 = 892;\n t.a77 = 892;\n t.a78 = 788;\n t.a79 = 784;\n t.a81 = 438;\n t.a82 = 138;\n t.a83 = 277;\n t.a84 = 415;\n t.a97 = 392;\n t.a98 = 392;\n t.a99 = 668;\n t.a100 = 668;\n t.a89 = 390;\n t.a90 = 390;\n t.a93 = 317;\n t.a94 = 317;\n t.a91 = 276;\n t.a92 = 276;\n t.a205 = 509;\n t.a85 = 509;\n t.a206 = 410;\n t.a86 = 410;\n t.a87 = 234;\n t.a88 = 234;\n t.a95 = 334;\n t.a96 = 334;\n t.a101 = 732;\n t.a102 = 544;\n t.a103 = 544;\n t.a104 = 910;\n t.a106 = 667;\n t.a107 = 760;\n t.a108 = 760;\n t.a112 = 776;\n t.a111 = 595;\n t.a110 = 694;\n t.a109 = 626;\n t.a120 = 788;\n t.a121 = 788;\n t.a122 = 788;\n t.a123 = 788;\n t.a124 = 788;\n t.a125 = 788;\n t.a126 = 788;\n t.a127 = 788;\n t.a128 = 788;\n t.a129 = 788;\n t.a130 = 788;\n t.a131 = 788;\n t.a132 = 788;\n t.a133 = 788;\n t.a134 = 788;\n t.a135 = 788;\n t.a136 = 788;\n t.a137 = 788;\n t.a138 = 788;\n t.a139 = 788;\n t.a140 = 788;\n t.a141 = 788;\n t.a142 = 788;\n t.a143 = 788;\n t.a144 = 788;\n t.a145 = 788;\n t.a146 = 788;\n t.a147 = 788;\n t.a148 = 788;\n t.a149 = 788;\n t.a150 = 788;\n t.a151 = 788;\n t.a152 = 788;\n t.a153 = 788;\n t.a154 = 788;\n t.a155 = 788;\n t.a156 = 788;\n t.a157 = 788;\n t.a158 = 788;\n t.a159 = 788;\n t.a160 = 894;\n t.a161 = 838;\n t.a163 = 1016;\n t.a164 = 458;\n t.a196 = 748;\n t.a165 = 924;\n t.a192 = 748;\n t.a166 = 918;\n t.a167 = 927;\n t.a168 = 928;\n t.a169 = 928;\n t.a170 = 834;\n t.a171 = 873;\n t.a172 = 828;\n t.a173 = 924;\n t.a162 = 924;\n t.a174 = 917;\n t.a175 = 930;\n t.a176 = 931;\n t.a177 = 463;\n t.a178 = 883;\n t.a179 = 836;\n t.a193 = 836;\n t.a180 = 867;\n t.a199 = 867;\n t.a181 = 696;\n t.a200 = 696;\n t.a182 = 874;\n t.a201 = 874;\n t.a183 = 760;\n t.a184 = 946;\n t.a197 = 771;\n t.a185 = 865;\n t.a194 = 771;\n t.a198 = 888;\n t.a186 = 967;\n t.a195 = 888;\n t.a187 = 831;\n t.a188 = 873;\n t.a189 = 927;\n t.a190 = 970;\n t.a191 = 918;\n });\n});\n\nconst getFontBasicMetrics = getLookupTableFactory(function (t) {\n t.Courier = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: -426,\n };\n t[\"Courier-Bold\"] = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: 439,\n };\n t[\"Courier-Oblique\"] = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: 426,\n };\n t[\"Courier-BoldOblique\"] = {\n ascent: 629,\n descent: -157,\n capHeight: 562,\n xHeight: 426,\n };\n t.Helvetica = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 523,\n };\n t[\"Helvetica-Bold\"] = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 532,\n };\n t[\"Helvetica-Oblique\"] = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 523,\n };\n t[\"Helvetica-BoldOblique\"] = {\n ascent: 718,\n descent: -207,\n capHeight: 718,\n xHeight: 532,\n };\n t[\"Times-Roman\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 662,\n xHeight: 450,\n };\n t[\"Times-Bold\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 676,\n xHeight: 461,\n };\n t[\"Times-Italic\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 653,\n xHeight: 441,\n };\n t[\"Times-BoldItalic\"] = {\n ascent: 683,\n descent: -217,\n capHeight: 669,\n xHeight: 462,\n };\n t.Symbol = {\n ascent: Math.NaN,\n descent: Math.NaN,\n capHeight: Math.NaN,\n xHeight: Math.NaN,\n };\n t.ZapfDingbats = {\n ascent: Math.NaN,\n descent: Math.NaN,\n capHeight: Math.NaN,\n xHeight: Math.NaN,\n };\n});\n\nexport { getFontBasicMetrics, getMetrics };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst ON_CURVE_POINT = 1 << 0;\nconst X_SHORT_VECTOR = 1 << 1;\nconst Y_SHORT_VECTOR = 1 << 2;\nconst REPEAT_FLAG = 1 << 3;\nconst X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR = 1 << 4;\nconst Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR = 1 << 5;\nconst OVERLAP_SIMPLE = 1 << 6;\n\nconst ARG_1_AND_2_ARE_WORDS = 1 << 0;\nconst ARGS_ARE_XY_VALUES = 1 << 1;\n// const ROUND_XY_TO_GRID = 1 << 2;\nconst WE_HAVE_A_SCALE = 1 << 3;\nconst MORE_COMPONENTS = 1 << 5;\nconst WE_HAVE_AN_X_AND_Y_SCALE = 1 << 6;\nconst WE_HAVE_A_TWO_BY_TWO = 1 << 7;\nconst WE_HAVE_INSTRUCTIONS = 1 << 8;\n// const USE_MY_METRICS = 1 << 9;\n// const OVERLAP_COMPOUND = 1 << 10;\n// const SCALED_COMPONENT_OFFSET = 1 << 11;\n// const UNSCALED_COMPONENT_OFFSET = 1 << 12;\n\n/**\n * GlyfTable object represents a glyf table containing glyph information:\n * - glyph header (xMin, yMin, xMax, yMax);\n * - contours if any;\n * - components if the glyph is a composite.\n *\n * It's possible to re-scale each glyph in order to have a new font which\n * exactly fits an other one: the goal is to be able to build some substitution\n * font for well-known fonts (Myriad, Arial, ...).\n *\n * A full description of glyf table can be found here\n * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html\n */\nclass GlyfTable {\n constructor({ glyfTable, isGlyphLocationsLong, locaTable, numGlyphs }) {\n this.glyphs = [];\n const loca = new DataView(\n locaTable.buffer,\n locaTable.byteOffset,\n locaTable.byteLength\n );\n const glyf = new DataView(\n glyfTable.buffer,\n glyfTable.byteOffset,\n glyfTable.byteLength\n );\n const offsetSize = isGlyphLocationsLong ? 4 : 2;\n let prev = isGlyphLocationsLong ? loca.getUint32(0) : 2 * loca.getUint16(0);\n let pos = 0;\n for (let i = 0; i < numGlyphs; i++) {\n pos += offsetSize;\n const next = isGlyphLocationsLong\n ? loca.getUint32(pos)\n : 2 * loca.getUint16(pos);\n if (next === prev) {\n this.glyphs.push(new Glyph({}));\n continue;\n }\n\n const glyph = Glyph.parse(prev, glyf);\n this.glyphs.push(glyph);\n\n prev = next;\n }\n }\n\n getSize() {\n return this.glyphs.reduce((a, g) => {\n const size = g.getSize();\n // Round to next multiple of 4 if needed.\n return a + ((size + 3) & ~3);\n }, 0);\n }\n\n write() {\n const totalSize = this.getSize();\n const glyfTable = new DataView(new ArrayBuffer(totalSize));\n const isLocationLong = totalSize > /* 0xffff * 2 */ 0x1fffe;\n const offsetSize = isLocationLong ? 4 : 2;\n const locaTable = new DataView(\n new ArrayBuffer((this.glyphs.length + 1) * offsetSize)\n );\n\n if (isLocationLong) {\n locaTable.setUint32(0, 0);\n } else {\n locaTable.setUint16(0, 0);\n }\n\n let pos = 0;\n let locaIndex = 0;\n for (const glyph of this.glyphs) {\n pos += glyph.write(pos, glyfTable);\n // Round to next multiple of 4 if needed.\n pos = (pos + 3) & ~3;\n\n locaIndex += offsetSize;\n if (isLocationLong) {\n locaTable.setUint32(locaIndex, pos);\n } else {\n locaTable.setUint16(locaIndex, pos >> 1);\n }\n }\n\n return {\n isLocationLong,\n loca: new Uint8Array(locaTable.buffer),\n glyf: new Uint8Array(glyfTable.buffer),\n };\n }\n\n scale(factors) {\n for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n this.glyphs[i].scale(factors[i]);\n }\n }\n}\n\nclass Glyph {\n constructor({ header = null, simple = null, composites = null }) {\n this.header = header;\n this.simple = simple;\n this.composites = composites;\n }\n\n static parse(pos, glyf) {\n const [read, header] = GlyphHeader.parse(pos, glyf);\n pos += read;\n\n if (header.numberOfContours < 0) {\n // Composite glyph.\n const composites = [];\n while (true) {\n const [n, composite] = CompositeGlyph.parse(pos, glyf);\n pos += n;\n composites.push(composite);\n if (!(composite.flags & MORE_COMPONENTS)) {\n break;\n }\n }\n\n return new Glyph({ header, composites });\n }\n\n const simple = SimpleGlyph.parse(pos, glyf, header.numberOfContours);\n\n return new Glyph({ header, simple });\n }\n\n getSize() {\n if (!this.header) {\n return 0;\n }\n const size = this.simple\n ? this.simple.getSize()\n : this.composites.reduce((a, c) => a + c.getSize(), 0);\n return this.header.getSize() + size;\n }\n\n write(pos, buf) {\n if (!this.header) {\n return 0;\n }\n\n const spos = pos;\n pos += this.header.write(pos, buf);\n if (this.simple) {\n pos += this.simple.write(pos, buf);\n } else {\n for (const composite of this.composites) {\n pos += composite.write(pos, buf);\n }\n }\n\n return pos - spos;\n }\n\n scale(factor) {\n if (!this.header) {\n return;\n }\n\n const xMiddle = (this.header.xMin + this.header.xMax) / 2;\n this.header.scale(xMiddle, factor);\n if (this.simple) {\n this.simple.scale(xMiddle, factor);\n } else {\n for (const composite of this.composites) {\n composite.scale(xMiddle, factor);\n }\n }\n }\n}\n\nclass GlyphHeader {\n constructor({ numberOfContours, xMin, yMin, xMax, yMax }) {\n this.numberOfContours = numberOfContours;\n this.xMin = xMin;\n this.yMin = yMin;\n this.xMax = xMax;\n this.yMax = yMax;\n }\n\n static parse(pos, glyf) {\n return [\n 10,\n new GlyphHeader({\n numberOfContours: glyf.getInt16(pos),\n xMin: glyf.getInt16(pos + 2),\n yMin: glyf.getInt16(pos + 4),\n xMax: glyf.getInt16(pos + 6),\n yMax: glyf.getInt16(pos + 8),\n }),\n ];\n }\n\n getSize() {\n return 10;\n }\n\n write(pos, buf) {\n buf.setInt16(pos, this.numberOfContours);\n buf.setInt16(pos + 2, this.xMin);\n buf.setInt16(pos + 4, this.yMin);\n buf.setInt16(pos + 6, this.xMax);\n buf.setInt16(pos + 8, this.yMax);\n\n return 10;\n }\n\n scale(x, factor) {\n this.xMin = Math.round(x + (this.xMin - x) * factor);\n this.xMax = Math.round(x + (this.xMax - x) * factor);\n }\n}\n\nclass Contour {\n constructor({ flags, xCoordinates, yCoordinates }) {\n this.xCoordinates = xCoordinates;\n this.yCoordinates = yCoordinates;\n this.flags = flags;\n }\n}\n\nclass SimpleGlyph {\n constructor({ contours, instructions }) {\n this.contours = contours;\n this.instructions = instructions;\n }\n\n static parse(pos, glyf, numberOfContours) {\n const endPtsOfContours = [];\n for (let i = 0; i < numberOfContours; i++) {\n const endPt = glyf.getUint16(pos);\n pos += 2;\n endPtsOfContours.push(endPt);\n }\n const numberOfPt = endPtsOfContours[numberOfContours - 1] + 1;\n const instructionLength = glyf.getUint16(pos);\n pos += 2;\n const instructions = new Uint8Array(glyf).slice(\n pos,\n pos + instructionLength\n );\n pos += instructionLength;\n\n const flags = [];\n for (let i = 0; i < numberOfPt; pos++, i++) {\n let flag = glyf.getUint8(pos);\n flags.push(flag);\n if (flag & REPEAT_FLAG) {\n const count = glyf.getUint8(++pos);\n flag ^= REPEAT_FLAG;\n for (let m = 0; m < count; m++) {\n flags.push(flag);\n }\n i += count;\n }\n }\n\n const allXCoordinates = [];\n let xCoordinates = [];\n let yCoordinates = [];\n let pointFlags = [];\n const contours = [];\n let endPtsOfContoursIndex = 0;\n let lastCoordinate = 0;\n\n // Get x coordinates.\n for (let i = 0; i < numberOfPt; i++) {\n const flag = flags[i];\n if (flag & X_SHORT_VECTOR) {\n // 8-bits unsigned value.\n const x = glyf.getUint8(pos++);\n lastCoordinate += flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR ? x : -x;\n xCoordinates.push(lastCoordinate);\n } else if (flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR) {\n // IS_SAME.\n xCoordinates.push(lastCoordinate);\n } else {\n lastCoordinate += glyf.getInt16(pos);\n pos += 2;\n xCoordinates.push(lastCoordinate);\n }\n\n if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n // Next entry is the first one of a new contour.\n endPtsOfContoursIndex++;\n allXCoordinates.push(xCoordinates);\n xCoordinates = [];\n }\n }\n\n lastCoordinate = 0;\n endPtsOfContoursIndex = 0;\n for (let i = 0; i < numberOfPt; i++) {\n const flag = flags[i];\n if (flag & Y_SHORT_VECTOR) {\n // 8-bits unsigned value.\n const y = glyf.getUint8(pos++);\n lastCoordinate += flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR ? y : -y;\n yCoordinates.push(lastCoordinate);\n } else if (flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR) {\n // IS_SAME.\n yCoordinates.push(lastCoordinate);\n } else {\n lastCoordinate += glyf.getInt16(pos);\n pos += 2;\n yCoordinates.push(lastCoordinate);\n }\n\n pointFlags.push((flag & ON_CURVE_POINT) | (flag & OVERLAP_SIMPLE));\n\n if (endPtsOfContours[endPtsOfContoursIndex] === i) {\n // Next entry is the first one of a new contour.\n xCoordinates = allXCoordinates[endPtsOfContoursIndex];\n endPtsOfContoursIndex++;\n contours.push(\n new Contour({\n flags: pointFlags,\n xCoordinates,\n yCoordinates,\n })\n );\n yCoordinates = [];\n pointFlags = [];\n }\n }\n\n return new SimpleGlyph({\n contours,\n instructions,\n });\n }\n\n getSize() {\n let size = this.contours.length * 2 + 2 + this.instructions.length;\n let lastX = 0;\n let lastY = 0;\n for (const contour of this.contours) {\n size += contour.flags.length;\n for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n const x = contour.xCoordinates[i];\n const y = contour.yCoordinates[i];\n let abs = Math.abs(x - lastX);\n if (abs > 255) {\n size += 2;\n } else if (abs > 0) {\n size += 1;\n }\n lastX = x;\n\n abs = Math.abs(y - lastY);\n if (abs > 255) {\n size += 2;\n } else if (abs > 0) {\n size += 1;\n }\n lastY = y;\n }\n }\n return size;\n }\n\n write(pos, buf) {\n const spos = pos;\n const xCoordinates = [];\n const yCoordinates = [];\n const flags = [];\n let lastX = 0;\n let lastY = 0;\n\n for (const contour of this.contours) {\n for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n let flag = contour.flags[i];\n const x = contour.xCoordinates[i];\n let delta = x - lastX;\n if (delta === 0) {\n flag |= X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR;\n xCoordinates.push(0);\n } else {\n const abs = Math.abs(delta);\n if (abs <= 255) {\n flag |=\n delta >= 0\n ? X_SHORT_VECTOR | X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR\n : X_SHORT_VECTOR;\n xCoordinates.push(abs);\n } else {\n xCoordinates.push(delta);\n }\n }\n lastX = x;\n\n const y = contour.yCoordinates[i];\n delta = y - lastY;\n if (delta === 0) {\n flag |= Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR;\n yCoordinates.push(0);\n } else {\n const abs = Math.abs(delta);\n if (abs <= 255) {\n flag |=\n delta >= 0\n ? Y_SHORT_VECTOR | Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR\n : Y_SHORT_VECTOR;\n yCoordinates.push(abs);\n } else {\n yCoordinates.push(delta);\n }\n }\n lastY = y;\n\n flags.push(flag);\n }\n\n // Write endPtsOfContours entry.\n buf.setUint16(pos, xCoordinates.length - 1);\n pos += 2;\n }\n\n // Write instructionLength.\n buf.setUint16(pos, this.instructions.length);\n pos += 2;\n if (this.instructions.length) {\n // Write instructions.\n new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(\n this.instructions,\n pos\n );\n pos += this.instructions.length;\n }\n\n // Write flags.\n for (const flag of flags) {\n buf.setUint8(pos++, flag);\n }\n\n // Write xCoordinates.\n for (let i = 0, ii = xCoordinates.length; i < ii; i++) {\n const x = xCoordinates[i];\n const flag = flags[i];\n if (flag & X_SHORT_VECTOR) {\n buf.setUint8(pos++, x);\n } else if (!(flag & X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR)) {\n buf.setInt16(pos, x);\n pos += 2;\n }\n }\n\n // Write yCoordinates.\n for (let i = 0, ii = yCoordinates.length; i < ii; i++) {\n const y = yCoordinates[i];\n const flag = flags[i];\n if (flag & Y_SHORT_VECTOR) {\n buf.setUint8(pos++, y);\n } else if (!(flag & Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR)) {\n buf.setInt16(pos, y);\n pos += 2;\n }\n }\n\n return pos - spos;\n }\n\n scale(x, factor) {\n for (const contour of this.contours) {\n if (contour.xCoordinates.length === 0) {\n continue;\n }\n\n for (let i = 0, ii = contour.xCoordinates.length; i < ii; i++) {\n contour.xCoordinates[i] = Math.round(\n x + (contour.xCoordinates[i] - x) * factor\n );\n }\n }\n }\n}\n\nclass CompositeGlyph {\n constructor({\n flags,\n glyphIndex,\n argument1,\n argument2,\n transf,\n instructions,\n }) {\n this.flags = flags;\n this.glyphIndex = glyphIndex;\n this.argument1 = argument1;\n this.argument2 = argument2;\n this.transf = transf;\n this.instructions = instructions;\n }\n\n static parse(pos, glyf) {\n const spos = pos;\n const transf = [];\n let flags = glyf.getUint16(pos);\n const glyphIndex = glyf.getUint16(pos + 2);\n pos += 4;\n\n let argument1, argument2;\n if (flags & ARG_1_AND_2_ARE_WORDS) {\n if (flags & ARGS_ARE_XY_VALUES) {\n argument1 = glyf.getInt16(pos);\n argument2 = glyf.getInt16(pos + 2);\n } else {\n argument1 = glyf.getUint16(pos);\n argument2 = glyf.getUint16(pos + 2);\n }\n pos += 4;\n flags ^= ARG_1_AND_2_ARE_WORDS;\n } else {\n if (flags & ARGS_ARE_XY_VALUES) {\n argument1 = glyf.getInt8(pos);\n argument2 = glyf.getInt8(pos + 1);\n } else {\n argument1 = glyf.getUint8(pos);\n argument2 = glyf.getUint8(pos + 1);\n }\n pos += 2;\n }\n\n if (flags & WE_HAVE_A_SCALE) {\n // Single F2.14.\n transf.push(glyf.getUint16(pos));\n pos += 2;\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n // Two F2.14.\n transf.push(glyf.getUint16(pos), glyf.getUint16(pos + 2));\n pos += 4;\n } else if (flags & WE_HAVE_A_TWO_BY_TWO) {\n // Four F2.14.\n transf.push(\n glyf.getUint16(pos),\n glyf.getUint16(pos + 2),\n glyf.getUint16(pos + 4),\n glyf.getUint16(pos + 6)\n );\n pos += 8;\n }\n\n let instructions = null;\n if (flags & WE_HAVE_INSTRUCTIONS) {\n const instructionLength = glyf.getUint16(pos);\n pos += 2;\n instructions = new Uint8Array(glyf).slice(pos, pos + instructionLength);\n pos += instructionLength;\n }\n\n return [\n pos - spos,\n new CompositeGlyph({\n flags,\n glyphIndex,\n argument1,\n argument2,\n transf,\n instructions,\n }),\n ];\n }\n\n getSize() {\n let size = 2 + 2 + this.transf.length * 2;\n if (this.flags & WE_HAVE_INSTRUCTIONS) {\n size += 2 + this.instructions.length;\n }\n\n size += 2;\n if (this.flags & 2) {\n // Arguments are signed.\n if (\n !(\n this.argument1 >= -128 &&\n this.argument1 <= 127 &&\n this.argument2 >= -128 &&\n this.argument2 <= 127\n )\n ) {\n size += 2;\n }\n } else if (\n !(\n this.argument1 >= 0 &&\n this.argument1 <= 255 &&\n this.argument2 >= 0 &&\n this.argument2 <= 255\n )\n ) {\n size += 2;\n }\n\n return size;\n }\n\n write(pos, buf) {\n const spos = pos;\n\n if (this.flags & ARGS_ARE_XY_VALUES) {\n // Arguments are signed.\n if (\n !(\n this.argument1 >= -128 &&\n this.argument1 <= 127 &&\n this.argument2 >= -128 &&\n this.argument2 <= 127\n )\n ) {\n this.flags |= ARG_1_AND_2_ARE_WORDS;\n }\n } else if (\n !(\n this.argument1 >= 0 &&\n this.argument1 <= 255 &&\n this.argument2 >= 0 &&\n this.argument2 <= 255\n )\n ) {\n this.flags |= ARG_1_AND_2_ARE_WORDS;\n }\n\n buf.setUint16(pos, this.flags);\n buf.setUint16(pos + 2, this.glyphIndex);\n pos += 4;\n\n if (this.flags & ARG_1_AND_2_ARE_WORDS) {\n if (this.flags & ARGS_ARE_XY_VALUES) {\n buf.setInt16(pos, this.argument1);\n buf.setInt16(pos + 2, this.argument2);\n } else {\n buf.setUint16(pos, this.argument1);\n buf.setUint16(pos + 2, this.argument2);\n }\n pos += 4;\n } else {\n buf.setUint8(pos, this.argument1);\n buf.setUint8(pos + 1, this.argument2);\n pos += 2;\n }\n\n if (this.flags & WE_HAVE_INSTRUCTIONS) {\n buf.setUint16(pos, this.instructions.length);\n pos += 2;\n // Write instructions.\n if (this.instructions.length) {\n new Uint8Array(buf.buffer, 0, buf.buffer.byteLength).set(\n this.instructions,\n pos\n );\n pos += this.instructions.length;\n }\n }\n\n return pos - spos;\n }\n\n scale(x, factor) {}\n}\n\nexport { GlyfTable };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { readUint32 } from \"./core_utils.js\";\nimport { string32 } from \"../shared/util.js\";\n\nfunction writeInt16(dest, offset, num) {\n dest[offset] = (num >> 8) & 0xff;\n dest[offset + 1] = num & 0xff;\n}\n\nfunction writeInt32(dest, offset, num) {\n dest[offset] = (num >> 24) & 0xff;\n dest[offset + 1] = (num >> 16) & 0xff;\n dest[offset + 2] = (num >> 8) & 0xff;\n dest[offset + 3] = num & 0xff;\n}\n\nfunction writeData(dest, offset, data) {\n if (data instanceof Uint8Array) {\n dest.set(data, offset);\n } else if (typeof data === \"string\") {\n for (let i = 0, ii = data.length; i < ii; i++) {\n dest[offset++] = data.charCodeAt(i) & 0xff;\n }\n } else {\n // treating everything else as array\n for (const num of data) {\n dest[offset++] = num & 0xff;\n }\n }\n}\n\nconst OTF_HEADER_SIZE = 12;\nconst OTF_TABLE_ENTRY_SIZE = 16;\n\nclass OpenTypeFileBuilder {\n constructor(sfnt) {\n this.sfnt = sfnt;\n this.tables = Object.create(null);\n }\n\n static getSearchParams(entriesCount, entrySize) {\n let maxPower2 = 1,\n log2 = 0;\n while ((maxPower2 ^ entriesCount) > maxPower2) {\n maxPower2 <<= 1;\n log2++;\n }\n const searchRange = maxPower2 * entrySize;\n return {\n range: searchRange,\n entry: log2,\n rangeShift: entrySize * entriesCount - searchRange,\n };\n }\n\n toArray() {\n let sfnt = this.sfnt;\n\n // Tables needs to be written by ascendant alphabetic order\n const tables = this.tables;\n const tablesNames = Object.keys(tables);\n tablesNames.sort();\n const numTables = tablesNames.length;\n\n let i, j, jj, table, tableName;\n // layout the tables data\n let offset = OTF_HEADER_SIZE + numTables * OTF_TABLE_ENTRY_SIZE;\n const tableOffsets = [offset];\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n const paddedLength = ((table.length + 3) & ~3) >>> 0;\n offset += paddedLength;\n tableOffsets.push(offset);\n }\n\n const file = new Uint8Array(offset);\n // write the table data first (mostly for checksum)\n for (i = 0; i < numTables; i++) {\n table = tables[tablesNames[i]];\n writeData(file, tableOffsets[i], table);\n }\n\n // sfnt version (4 bytes)\n if (sfnt === \"true\") {\n // Windows hates the Mac TrueType sfnt version number\n sfnt = string32(0x00010000);\n }\n file[0] = sfnt.charCodeAt(0) & 0xff;\n file[1] = sfnt.charCodeAt(1) & 0xff;\n file[2] = sfnt.charCodeAt(2) & 0xff;\n file[3] = sfnt.charCodeAt(3) & 0xff;\n\n // numTables (2 bytes)\n writeInt16(file, 4, numTables);\n\n const searchParams = OpenTypeFileBuilder.getSearchParams(numTables, 16);\n\n // searchRange (2 bytes)\n writeInt16(file, 6, searchParams.range);\n // entrySelector (2 bytes)\n writeInt16(file, 8, searchParams.entry);\n // rangeShift (2 bytes)\n writeInt16(file, 10, searchParams.rangeShift);\n\n offset = OTF_HEADER_SIZE;\n // writing table entries\n for (i = 0; i < numTables; i++) {\n tableName = tablesNames[i];\n file[offset] = tableName.charCodeAt(0) & 0xff;\n file[offset + 1] = tableName.charCodeAt(1) & 0xff;\n file[offset + 2] = tableName.charCodeAt(2) & 0xff;\n file[offset + 3] = tableName.charCodeAt(3) & 0xff;\n\n // checksum\n let checksum = 0;\n for (j = tableOffsets[i], jj = tableOffsets[i + 1]; j < jj; j += 4) {\n const quad = readUint32(file, j);\n checksum = (checksum + quad) >>> 0;\n }\n writeInt32(file, offset + 4, checksum);\n\n // offset\n writeInt32(file, offset + 8, tableOffsets[i]);\n // length\n writeInt32(file, offset + 12, tables[tableName].length);\n\n offset += OTF_TABLE_ENTRY_SIZE;\n }\n return file;\n }\n\n addTable(tag, data) {\n if (tag in this.tables) {\n throw new Error(\"Table \" + tag + \" already exists\");\n }\n this.tables[tag] = data;\n }\n}\n\nexport { OpenTypeFileBuilder };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { getEncoding } from \"./encodings.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { warn } from \"../shared/util.js\";\n\n// Hinting is currently disabled due to unknown problems on windows\n// in tracemonkey and various other pdfs with type1 fonts.\nconst HINTING_ENABLED = false;\n\nconst COMMAND_MAP = {\n hstem: [1],\n vstem: [3],\n vmoveto: [4],\n rlineto: [5],\n hlineto: [6],\n vlineto: [7],\n rrcurveto: [8],\n callsubr: [10],\n flex: [12, 35],\n drop: [12, 18],\n endchar: [14],\n rmoveto: [21],\n hmoveto: [22],\n vhcurveto: [30],\n hvcurveto: [31],\n};\n\n/**\n * CharStrings are encoded following the the CharString Encoding sequence\n * describe in Chapter 6 of the \"Adobe Type1 Font Format\" specification.\n * The value in a byte indicates a command, a number, or subsequent bytes\n * that are to be interpreted in a special way.\n *\n * CharString Number Encoding:\n * A CharString byte containing the values from 32 through 255 inclusive\n * indicate an integer. These values are decoded in four ranges.\n *\n * 1. A CharString byte containing a value, v, between 32 and 246 inclusive,\n * indicate the integer v - 139. Thus, the integer values from -107 through\n * 107 inclusive may be encoded in single byte.\n *\n * 2. A CharString byte containing a value, v, between 247 and 250 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * [(v - 247) x 256] + w + 108\n *\n * 3. A CharString byte containing a value, v, between 251 and 254 inclusive,\n * indicates an integer involving the next byte, w, according to the formula:\n * -[(v - 251) * 256] - w - 108\n *\n * 4. A CharString containing the value 255 indicates that the next 4 bytes\n * are a two complement signed integer. The first of these bytes contains the\n * highest order bits, the second byte contains the next higher order bits\n * and the fourth byte contain the lowest order bits.\n *\n *\n * CharString Command Encoding:\n * CharStrings commands are encoded in 1 or 2 bytes.\n *\n * Single byte commands are encoded in 1 byte that contains a value between\n * 0 and 31 inclusive.\n * If a command byte contains the value 12, then the value in the next byte\n * indicates a command. This \"escape\" mechanism allows many extra commands\n * to be encoded and this encoding technique helps to minimize the length of\n * the charStrings.\n */\nclass Type1CharString {\n constructor() {\n this.width = 0;\n this.lsb = 0;\n this.flexing = false;\n this.output = [];\n this.stack = [];\n }\n\n convert(encoded, subrs, seacAnalysisEnabled) {\n const count = encoded.length;\n let error = false;\n let wx, sbx, subrNumber;\n for (let i = 0; i < count; i++) {\n let value = encoded[i];\n if (value < 32) {\n if (value === 12) {\n value = (value << 8) + encoded[++i];\n }\n switch (value) {\n case 1: // hstem\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case 3: // vstem\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case 4: // vmoveto\n if (this.flexing) {\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n // Add the dx for flex and but also swap the values so they are\n // the right order.\n const dy = this.stack.pop();\n this.stack.push(0, dy);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.vmoveto);\n break;\n case 5: // rlineto\n error = this.executeCommand(2, COMMAND_MAP.rlineto);\n break;\n case 6: // hlineto\n error = this.executeCommand(1, COMMAND_MAP.hlineto);\n break;\n case 7: // vlineto\n error = this.executeCommand(1, COMMAND_MAP.vlineto);\n break;\n case 8: // rrcurveto\n error = this.executeCommand(6, COMMAND_MAP.rrcurveto);\n break;\n case 9: // closepath\n // closepath is a Type1 command that does not take argument and is\n // useless in Type2 and it can simply be ignored.\n this.stack = [];\n break;\n case 10: // callsubr\n if (this.stack.length < 1) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n if (!subrs[subrNumber]) {\n error = true;\n break;\n }\n error = this.convert(subrs[subrNumber], subrs, seacAnalysisEnabled);\n break;\n case 11: // return\n return error;\n case 13: // hsbw\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n // To convert to type2 we have to move the width value to the\n // first part of the charstring and then use hmoveto with lsb.\n wx = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx);\n error = this.executeCommand(2, COMMAND_MAP.hmoveto);\n break;\n case 14: // endchar\n this.output.push(COMMAND_MAP.endchar[0]);\n break;\n case 21: // rmoveto\n if (this.flexing) {\n break;\n }\n error = this.executeCommand(2, COMMAND_MAP.rmoveto);\n break;\n case 22: // hmoveto\n if (this.flexing) {\n // Add the dy for flex.\n this.stack.push(0);\n break;\n }\n error = this.executeCommand(1, COMMAND_MAP.hmoveto);\n break;\n case 30: // vhcurveto\n error = this.executeCommand(4, COMMAND_MAP.vhcurveto);\n break;\n case 31: // hvcurveto\n error = this.executeCommand(4, COMMAND_MAP.hvcurveto);\n break;\n case (12 << 8) + 0: // dotsection\n // dotsection is a Type1 command to specify some hinting feature\n // for dots that do not take a parameter and it can safely be\n // ignored for Type2.\n this.stack = [];\n break;\n case (12 << 8) + 1: // vstem3\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n // [vh]stem3 are Type1 only and Type2 supports [vh]stem with\n // multiple parameters, so instead of returning [vh]stem3 take a\n // shortcut and return [vhstem] instead.\n error = this.executeCommand(2, COMMAND_MAP.vstem);\n break;\n case (12 << 8) + 2: // hstem3\n if (!HINTING_ENABLED) {\n this.stack = [];\n break;\n }\n // See vstem3.\n error = this.executeCommand(2, COMMAND_MAP.hstem);\n break;\n case (12 << 8) + 6: // seac\n // seac is like type 2's special endchar but it doesn't use the\n // first argument asb, so remove it.\n if (seacAnalysisEnabled) {\n const asb = this.stack.at(-5);\n this.seac = this.stack.splice(-4, 4);\n this.seac[0] += this.lsb - asb;\n error = this.executeCommand(0, COMMAND_MAP.endchar);\n } else {\n error = this.executeCommand(4, COMMAND_MAP.endchar);\n }\n break;\n case (12 << 8) + 7: // sbw\n if (this.stack.length < 4) {\n error = true;\n break;\n }\n // To convert to type2 we have to move the width value to the\n // first part of the charstring and then use rmoveto with\n // (dx, dy). The height argument will not be used for vmtx and\n // vhea tables reconstruction -- ignoring it.\n this.stack.pop(); // wy\n wx = this.stack.pop();\n const sby = this.stack.pop();\n sbx = this.stack.pop();\n this.lsb = sbx;\n this.width = wx;\n this.stack.push(wx, sbx, sby);\n error = this.executeCommand(3, COMMAND_MAP.rmoveto);\n break;\n case (12 << 8) + 12: // div\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n const num2 = this.stack.pop();\n const num1 = this.stack.pop();\n this.stack.push(num1 / num2);\n break;\n case (12 << 8) + 16: // callothersubr\n if (this.stack.length < 2) {\n error = true;\n break;\n }\n subrNumber = this.stack.pop();\n const numArgs = this.stack.pop();\n if (subrNumber === 0 && numArgs === 3) {\n const flexArgs = this.stack.splice(-17, 17);\n this.stack.push(\n flexArgs[2] + flexArgs[0], // bcp1x + rpx\n flexArgs[3] + flexArgs[1], // bcp1y + rpy\n flexArgs[4], // bcp2x\n flexArgs[5], // bcp2y\n flexArgs[6], // p2x\n flexArgs[7], // p2y\n flexArgs[8], // bcp3x\n flexArgs[9], // bcp3y\n flexArgs[10], // bcp4x\n flexArgs[11], // bcp4y\n flexArgs[12], // p3x\n flexArgs[13], // p3y\n flexArgs[14] // flexDepth\n // 15 = finalx unused by flex\n // 16 = finaly unused by flex\n );\n error = this.executeCommand(13, COMMAND_MAP.flex, true);\n this.flexing = false;\n this.stack.push(flexArgs[15], flexArgs[16]);\n } else if (subrNumber === 1 && numArgs === 0) {\n this.flexing = true;\n }\n break;\n case (12 << 8) + 17: // pop\n // Ignore this since it is only used with othersubr.\n break;\n case (12 << 8) + 33: // setcurrentpoint\n // Ignore for now.\n this.stack = [];\n break;\n default:\n warn('Unknown type 1 charstring command of \"' + value + '\"');\n break;\n }\n if (error) {\n break;\n }\n continue;\n } else if (value <= 246) {\n value -= 139;\n } else if (value <= 250) {\n value = (value - 247) * 256 + encoded[++i] + 108;\n } else if (value <= 254) {\n value = -((value - 251) * 256) - encoded[++i] - 108;\n } else {\n value =\n ((encoded[++i] & 0xff) << 24) |\n ((encoded[++i] & 0xff) << 16) |\n ((encoded[++i] & 0xff) << 8) |\n ((encoded[++i] & 0xff) << 0);\n }\n this.stack.push(value);\n }\n return error;\n }\n\n executeCommand(howManyArgs, command, keepStack) {\n const stackLength = this.stack.length;\n if (howManyArgs > stackLength) {\n return true;\n }\n const start = stackLength - howManyArgs;\n for (let i = start; i < stackLength; i++) {\n let value = this.stack[i];\n if (Number.isInteger(value)) {\n this.output.push(28, (value >> 8) & 0xff, value & 0xff);\n } else {\n // fixed point\n value = (65536 * value) | 0;\n this.output.push(\n 255,\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n }\n }\n this.output.push(...command);\n if (keepStack) {\n this.stack.splice(start, howManyArgs);\n } else {\n this.stack.length = 0;\n }\n return false;\n }\n}\n\n/**\n * Decrypt a Sequence of Ciphertext Bytes to Produce the Original Sequence\n * of Plaintext Bytes. The function takes a key as a parameter which can be\n * for decrypting the eexec block or for decoding charStrings.\n */\nconst EEXEC_ENCRYPT_KEY = 55665;\nconst CHAR_STRS_ENCRYPT_KEY = 4330;\n\nfunction isHexDigit(code) {\n return (\n (code >= 48 && code <= 57) || // '0'-'9'\n (code >= 65 && code <= 70) || // 'A'-'F'\n (code >= 97 && code <= 102) // 'a'-'f'\n );\n}\n\nfunction decrypt(data, key, discardNumber) {\n if (discardNumber >= data.length) {\n return new Uint8Array(0);\n }\n const c1 = 52845,\n c2 = 22719;\n let r = key | 0,\n i,\n j;\n for (i = 0; i < discardNumber; i++) {\n r = ((data[i] + r) * c1 + c2) & ((1 << 16) - 1);\n }\n const count = data.length - discardNumber;\n const decrypted = new Uint8Array(count);\n for (i = discardNumber, j = 0; j < count; i++, j++) {\n const value = data[i];\n decrypted[j] = value ^ (r >> 8);\n r = ((value + r) * c1 + c2) & ((1 << 16) - 1);\n }\n return decrypted;\n}\n\nfunction decryptAscii(data, key, discardNumber) {\n const c1 = 52845,\n c2 = 22719;\n let r = key | 0;\n const count = data.length,\n maybeLength = count >>> 1;\n const decrypted = new Uint8Array(maybeLength);\n let i, j;\n for (i = 0, j = 0; i < count; i++) {\n const digit1 = data[i];\n if (!isHexDigit(digit1)) {\n continue;\n }\n i++;\n let digit2;\n while (i < count && !isHexDigit((digit2 = data[i]))) {\n i++;\n }\n if (i < count) {\n const value = parseInt(String.fromCharCode(digit1, digit2), 16);\n decrypted[j++] = value ^ (r >> 8);\n r = ((value + r) * c1 + c2) & ((1 << 16) - 1);\n }\n }\n return decrypted.slice(discardNumber, j);\n}\n\nfunction isSpecial(c) {\n return (\n c === /* '/' = */ 0x2f ||\n c === /* '[' = */ 0x5b ||\n c === /* ']' = */ 0x5d ||\n c === /* '{' = */ 0x7b ||\n c === /* '}' = */ 0x7d ||\n c === /* '(' = */ 0x28 ||\n c === /* ')' = */ 0x29\n );\n}\n\n/**\n * Type1Parser encapsulate the needed code for parsing a Type1 font program.\n * Some of its logic depends on the Type2 charstrings structure.\n * NOTE: This doesn't really parse the font since that would require evaluation\n * of PostScript, but it is possible in most cases to extract what we need\n * without a full parse.\n */\nclass Type1Parser {\n constructor(stream, encrypted, seacAnalysisEnabled) {\n if (encrypted) {\n const data = stream.getBytes();\n const isBinary = !(\n (isHexDigit(data[0]) || isWhiteSpace(data[0])) &&\n isHexDigit(data[1]) &&\n isHexDigit(data[2]) &&\n isHexDigit(data[3]) &&\n isHexDigit(data[4]) &&\n isHexDigit(data[5]) &&\n isHexDigit(data[6]) &&\n isHexDigit(data[7])\n );\n stream = new Stream(\n isBinary\n ? decrypt(data, EEXEC_ENCRYPT_KEY, 4)\n : decryptAscii(data, EEXEC_ENCRYPT_KEY, 4)\n );\n }\n this.seacAnalysisEnabled = !!seacAnalysisEnabled;\n\n this.stream = stream;\n this.nextChar();\n }\n\n readNumberArray() {\n this.getToken(); // read '[' or '{' (arrays can start with either)\n const array = [];\n while (true) {\n const token = this.getToken();\n if (token === null || token === \"]\" || token === \"}\") {\n break;\n }\n array.push(parseFloat(token || 0));\n }\n return array;\n }\n\n readNumber() {\n const token = this.getToken();\n return parseFloat(token || 0);\n }\n\n readInt() {\n // Use '| 0' to prevent setting a double into length such as the double\n // does not flow into the loop variable.\n const token = this.getToken();\n return parseInt(token || 0, 10) | 0;\n }\n\n readBoolean() {\n const token = this.getToken();\n // Use 1 and 0 since that's what type2 charstrings use.\n return token === \"true\" ? 1 : 0;\n }\n\n nextChar() {\n return (this.currentChar = this.stream.getByte());\n }\n\n prevChar() {\n this.stream.skip(-2);\n return (this.currentChar = this.stream.getByte());\n }\n\n getToken() {\n // Eat whitespace and comments.\n let comment = false;\n let ch = this.currentChar;\n while (true) {\n if (ch === -1) {\n return null;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === /* '%' = */ 0x25) {\n comment = true;\n } else if (!isWhiteSpace(ch)) {\n break;\n }\n ch = this.nextChar();\n }\n if (isSpecial(ch)) {\n this.nextChar();\n return String.fromCharCode(ch);\n }\n let token = \"\";\n do {\n token += String.fromCharCode(ch);\n ch = this.nextChar();\n } while (ch >= 0 && !isWhiteSpace(ch) && !isSpecial(ch));\n return token;\n }\n\n readCharStrings(bytes, lenIV) {\n if (lenIV === -1) {\n // This isn't in the spec, but Adobe's tx program handles -1\n // as plain text.\n return bytes;\n }\n return decrypt(bytes, CHAR_STRS_ENCRYPT_KEY, lenIV);\n }\n\n /*\n * Returns an object containing a Subrs array and a CharStrings\n * array extracted from and eexec encrypted block of data\n */\n extractFontProgram(properties) {\n const stream = this.stream;\n\n const subrs = [],\n charstrings = [];\n const privateData = Object.create(null);\n privateData.lenIV = 4;\n const program = {\n subrs: [],\n charstrings: [],\n properties: {\n privateData,\n },\n };\n let token, length, data, lenIV;\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case \"CharStrings\":\n // The number immediately following CharStrings must be greater or\n // equal to the number of CharStrings.\n this.getToken();\n this.getToken(); // read in 'dict'\n this.getToken(); // read in 'dup'\n this.getToken(); // read in 'begin'\n while (true) {\n token = this.getToken();\n if (token === null || token === \"end\") {\n break;\n }\n\n if (token !== \"/\") {\n continue;\n }\n const glyph = this.getToken();\n length = this.readInt();\n this.getToken(); // read in 'RD' or '-|'\n data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n lenIV = program.properties.privateData.lenIV;\n const encoded = this.readCharStrings(data, lenIV);\n this.nextChar();\n token = this.getToken(); // read in 'ND' or '|-'\n if (token === \"noaccess\") {\n this.getToken(); // read in 'def'\n } else if (token === \"/\") {\n // The expected 'ND' or '|-' token is missing, avoid swallowing\n // the start of the next glyph (fixes issue14462_reduced.pdf).\n this.prevChar();\n }\n charstrings.push({\n glyph,\n encoded,\n });\n }\n break;\n case \"Subrs\":\n this.readInt(); // num\n this.getToken(); // read in 'array'\n while (this.getToken() === \"dup\") {\n const index = this.readInt();\n length = this.readInt();\n this.getToken(); // read in 'RD' or '-|'\n data = length > 0 ? stream.getBytes(length) : new Uint8Array(0);\n lenIV = program.properties.privateData.lenIV;\n const encoded = this.readCharStrings(data, lenIV);\n this.nextChar();\n token = this.getToken(); // read in 'NP' or '|'\n if (token === \"noaccess\") {\n this.getToken(); // read in 'put'\n }\n subrs[index] = encoded;\n }\n break;\n case \"BlueValues\":\n case \"OtherBlues\":\n case \"FamilyBlues\":\n case \"FamilyOtherBlues\":\n const blueArray = this.readNumberArray();\n // *Blue* values may contain invalid data: disables reading of\n // those values when hinting is disabled.\n if (\n blueArray.length > 0 &&\n blueArray.length % 2 === 0 &&\n HINTING_ENABLED\n ) {\n program.properties.privateData[token] = blueArray;\n }\n break;\n case \"StemSnapH\":\n case \"StemSnapV\":\n program.properties.privateData[token] = this.readNumberArray();\n break;\n case \"StdHW\":\n case \"StdVW\":\n program.properties.privateData[token] = this.readNumberArray()[0];\n break;\n case \"BlueShift\":\n case \"lenIV\":\n case \"BlueFuzz\":\n case \"BlueScale\":\n case \"LanguageGroup\":\n program.properties.privateData[token] = this.readNumber();\n break;\n case \"ExpansionFactor\":\n // Firefox doesn't render correctly a font with a null factor on\n // Windows (see issue 15289), hence we just reset it to its default\n // value (0.06).\n program.properties.privateData[token] = this.readNumber() || 0.06;\n break;\n case \"ForceBold\":\n program.properties.privateData[token] = this.readBoolean();\n break;\n }\n }\n\n for (const { encoded, glyph } of charstrings) {\n const charString = new Type1CharString();\n const error = charString.convert(\n encoded,\n subrs,\n this.seacAnalysisEnabled\n );\n let output = charString.output;\n if (error) {\n // It seems when FreeType encounters an error while evaluating a glyph\n // that it completely ignores the glyph so we'll mimic that behaviour\n // here and put an endchar to make the validator happy.\n output = [14];\n }\n const charStringObject = {\n glyphName: glyph,\n charstring: output,\n width: charString.width,\n lsb: charString.lsb,\n seac: charString.seac,\n };\n if (glyph === \".notdef\") {\n // Make sure .notdef is at index zero (issue #11477).\n program.charstrings.unshift(charStringObject);\n } else {\n program.charstrings.push(charStringObject);\n }\n\n // Attempt to replace missing widths, from the font dictionary /Widths\n // entry, with ones from the font data (fixes issue11150_reduced.pdf).\n if (properties.builtInEncoding) {\n const index = properties.builtInEncoding.indexOf(glyph);\n if (\n index > -1 &&\n properties.widths[index] === undefined &&\n index >= properties.firstChar &&\n index <= properties.lastChar\n ) {\n properties.widths[index] = charString.width;\n }\n }\n }\n\n return program;\n }\n\n extractFontHeader(properties) {\n let token;\n while ((token = this.getToken()) !== null) {\n if (token !== \"/\") {\n continue;\n }\n token = this.getToken();\n switch (token) {\n case \"FontMatrix\":\n const matrix = this.readNumberArray();\n properties.fontMatrix = matrix;\n break;\n case \"Encoding\":\n const encodingArg = this.getToken();\n let encoding;\n if (!/^\\d+$/.test(encodingArg)) {\n // encoding name is specified\n encoding = getEncoding(encodingArg);\n } else {\n encoding = [];\n const size = parseInt(encodingArg, 10) | 0;\n this.getToken(); // read in 'array'\n\n for (let j = 0; j < size; j++) {\n token = this.getToken();\n // skipping till first dup or def (e.g. ignoring for statement)\n while (token !== \"dup\" && token !== \"def\") {\n token = this.getToken();\n if (token === null) {\n return; // invalid header\n }\n }\n if (token === \"def\") {\n break; // read all array data\n }\n const index = this.readInt();\n this.getToken(); // read in '/'\n const glyph = this.getToken();\n encoding[index] = glyph;\n this.getToken(); // read the in 'put'\n }\n }\n properties.builtInEncoding = encoding;\n break;\n case \"FontBBox\":\n const fontBBox = this.readNumberArray();\n // adjusting ascent/descent\n properties.ascent = Math.max(fontBBox[3], fontBBox[1]);\n properties.descent = Math.min(fontBBox[1], fontBBox[3]);\n properties.ascentScaled = true;\n break;\n }\n }\n }\n}\n\nexport { Type1Parser };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CFF,\n CFFCharset,\n CFFCompiler,\n CFFHeader,\n CFFIndex,\n CFFPrivateDict,\n CFFStandardStrings,\n CFFStrings,\n CFFTopDict,\n} from \"./cff_parser.js\";\nimport { FormatError, warn } from \"../shared/util.js\";\nimport { SEAC_ANALYSIS_ENABLED, type1FontGlyphMapping } from \"./fonts_utils.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { Type1Parser } from \"./type1_parser.js\";\n\nfunction findBlock(streamBytes, signature, startIndex) {\n const streamBytesLength = streamBytes.length;\n const signatureLength = signature.length;\n const scanLength = streamBytesLength - signatureLength;\n\n let i = startIndex,\n found = false;\n while (i < scanLength) {\n let j = 0;\n while (j < signatureLength && streamBytes[i + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found, skip over whitespace.\n i += j;\n while (i < streamBytesLength && isWhiteSpace(streamBytes[i])) {\n i++;\n }\n found = true;\n break;\n }\n i++;\n }\n return {\n found,\n length: i,\n };\n}\n\nfunction getHeaderBlock(stream, suggestedLength) {\n const EEXEC_SIGNATURE = [0x65, 0x65, 0x78, 0x65, 0x63];\n\n const streamStartPos = stream.pos; // Save the initial stream position.\n let headerBytes, headerBytesLength, block;\n try {\n headerBytes = stream.getBytes(suggestedLength);\n headerBytesLength = headerBytes.length;\n } catch {\n // Ignore errors if the `suggestedLength` is huge enough that a Uint8Array\n // cannot hold the result of `getBytes`, and fallback to simply checking\n // the entire stream (fixes issue3928.pdf).\n }\n\n if (headerBytesLength === suggestedLength) {\n // Most of the time `suggestedLength` is correct, so to speed things up we\n // initially only check the last few bytes to see if the header was found.\n // Otherwise we (potentially) check the entire stream to prevent errors in\n // `Type1Parser` (fixes issue5686.pdf).\n block = findBlock(\n headerBytes,\n EEXEC_SIGNATURE,\n suggestedLength - 2 * EEXEC_SIGNATURE.length\n );\n\n if (block.found && block.length === suggestedLength) {\n return {\n stream: new Stream(headerBytes),\n length: suggestedLength,\n };\n }\n }\n warn('Invalid \"Length1\" property in Type1 font -- trying to recover.');\n stream.pos = streamStartPos; // Reset the stream position.\n\n const SCAN_BLOCK_LENGTH = 2048;\n let actualLength;\n while (true) {\n const scanBytes = stream.peekBytes(SCAN_BLOCK_LENGTH);\n block = findBlock(scanBytes, EEXEC_SIGNATURE, 0);\n\n if (block.length === 0) {\n break;\n }\n stream.pos += block.length; // Update the stream position.\n\n if (block.found) {\n actualLength = stream.pos - streamStartPos;\n break;\n }\n }\n stream.pos = streamStartPos; // Reset the stream position.\n\n if (actualLength) {\n return {\n stream: new Stream(stream.getBytes(actualLength)),\n length: actualLength,\n };\n }\n warn('Unable to recover \"Length1\" property in Type1 font -- using as is.');\n return {\n stream: new Stream(stream.getBytes(suggestedLength)),\n length: suggestedLength,\n };\n}\n\nfunction getEexecBlock(stream, suggestedLength) {\n // We should ideally parse the eexec block to ensure that `suggestedLength`\n // is correct, so we don't truncate the block data if it's too small.\n // However, this would also require checking if the fixed-content portion\n // exists (using the 'Length3' property), and ensuring that it's valid.\n //\n // Given that `suggestedLength` almost always is correct, all the validation\n // would require a great deal of unnecessary parsing for most fonts.\n // To save time, we always fetch the entire stream instead, which also avoid\n // issues if `suggestedLength` is huge (see comment in `getHeaderBlock`).\n //\n // NOTE: This means that the function can include the fixed-content portion\n // in the returned eexec block. In practice this does *not* seem to matter,\n // since `Type1Parser_extractFontProgram` will skip over any non-commands.\n const eexecBytes = stream.getBytes();\n if (eexecBytes.length === 0) {\n throw new FormatError(\"getEexecBlock - no font program found.\");\n }\n return {\n stream: new Stream(eexecBytes),\n length: eexecBytes.length,\n };\n}\n\n/**\n * Type1Font is also a CIDFontType0.\n */\nclass Type1Font {\n constructor(name, file, properties) {\n // Some bad generators embed pfb file as is, we have to strip 6-byte header.\n // Also, length1 and length2 might be off by 6 bytes as well.\n // http://www.math.ubc.ca/~cass/piscript/type1.pdf\n const PFB_HEADER_SIZE = 6;\n let headerBlockLength = properties.length1;\n let eexecBlockLength = properties.length2;\n let pfbHeader = file.peekBytes(PFB_HEADER_SIZE);\n const pfbHeaderPresent = pfbHeader[0] === 0x80 && pfbHeader[1] === 0x01;\n if (pfbHeaderPresent) {\n file.skip(PFB_HEADER_SIZE);\n headerBlockLength =\n (pfbHeader[5] << 24) |\n (pfbHeader[4] << 16) |\n (pfbHeader[3] << 8) |\n pfbHeader[2];\n }\n\n // Get the data block containing glyphs and subrs information\n const headerBlock = getHeaderBlock(file, headerBlockLength);\n const headerBlockParser = new Type1Parser(\n headerBlock.stream,\n false,\n SEAC_ANALYSIS_ENABLED\n );\n headerBlockParser.extractFontHeader(properties);\n\n if (pfbHeaderPresent) {\n pfbHeader = file.getBytes(PFB_HEADER_SIZE);\n eexecBlockLength =\n (pfbHeader[5] << 24) |\n (pfbHeader[4] << 16) |\n (pfbHeader[3] << 8) |\n pfbHeader[2];\n }\n\n // Decrypt the data blocks and retrieve it's content\n const eexecBlock = getEexecBlock(file, eexecBlockLength);\n const eexecBlockParser = new Type1Parser(\n eexecBlock.stream,\n true,\n SEAC_ANALYSIS_ENABLED\n );\n const data = eexecBlockParser.extractFontProgram(properties);\n for (const key in data.properties) {\n properties[key] = data.properties[key];\n }\n\n const charstrings = data.charstrings;\n const type2Charstrings = this.getType2Charstrings(charstrings);\n const subrs = this.getType2Subrs(data.subrs);\n\n this.charstrings = charstrings;\n this.data = this.wrap(\n name,\n type2Charstrings,\n this.charstrings,\n subrs,\n properties\n );\n this.seacs = this.getSeacs(data.charstrings);\n }\n\n get numGlyphs() {\n return this.charstrings.length + 1;\n }\n\n getCharset() {\n const charset = [\".notdef\"];\n for (const { glyphName } of this.charstrings) {\n charset.push(glyphName);\n }\n return charset;\n }\n\n getGlyphMapping(properties) {\n const charstrings = this.charstrings;\n\n if (properties.composite) {\n const charCodeToGlyphId = Object.create(null);\n // Map CIDs directly to GIDs.\n for (\n let glyphId = 0, charstringsLen = charstrings.length;\n glyphId < charstringsLen;\n glyphId++\n ) {\n const charCode = properties.cMap.charCodeOf(glyphId);\n // Add 1 because glyph 0 is duplicated.\n charCodeToGlyphId[charCode] = glyphId + 1;\n }\n return charCodeToGlyphId;\n }\n\n const glyphNames = [\".notdef\"];\n let builtInEncoding, glyphId;\n for (glyphId = 0; glyphId < charstrings.length; glyphId++) {\n glyphNames.push(charstrings[glyphId].glyphName);\n }\n const encoding = properties.builtInEncoding;\n if (encoding) {\n builtInEncoding = Object.create(null);\n for (const charCode in encoding) {\n glyphId = glyphNames.indexOf(encoding[charCode]);\n if (glyphId >= 0) {\n builtInEncoding[charCode] = glyphId;\n }\n }\n }\n\n return type1FontGlyphMapping(properties, builtInEncoding, glyphNames);\n }\n\n hasGlyphId(id) {\n if (id < 0 || id >= this.numGlyphs) {\n return false;\n }\n if (id === 0) {\n // notdef is always defined.\n return true;\n }\n const glyph = this.charstrings[id - 1];\n return glyph.charstring.length > 0;\n }\n\n getSeacs(charstrings) {\n const seacMap = [];\n for (let i = 0, ii = charstrings.length; i < ii; i++) {\n const charstring = charstrings[i];\n if (charstring.seac) {\n // Offset by 1 for .notdef\n seacMap[i + 1] = charstring.seac;\n }\n }\n return seacMap;\n }\n\n getType2Charstrings(type1Charstrings) {\n const type2Charstrings = [];\n for (const type1Charstring of type1Charstrings) {\n type2Charstrings.push(type1Charstring.charstring);\n }\n return type2Charstrings;\n }\n\n getType2Subrs(type1Subrs) {\n let bias = 0;\n const count = type1Subrs.length;\n if (count < 1133) {\n bias = 107;\n } else if (count < 33769) {\n bias = 1131;\n } else {\n bias = 32768;\n }\n\n // Add a bunch of empty subrs to deal with the Type2 bias\n const type2Subrs = [];\n let i;\n for (i = 0; i < bias; i++) {\n type2Subrs.push([0x0b]);\n }\n\n for (i = 0; i < count; i++) {\n type2Subrs.push(type1Subrs[i]);\n }\n\n return type2Subrs;\n }\n\n wrap(name, glyphs, charstrings, subrs, properties) {\n const cff = new CFF();\n cff.header = new CFFHeader(1, 0, 4, 4);\n\n cff.names = [name];\n\n const topDict = new CFFTopDict();\n // CFF strings IDs 0...390 are predefined names, so refering\n // to entries in our own String INDEX starts at SID 391.\n topDict.setByName(\"version\", 391);\n topDict.setByName(\"Notice\", 392);\n topDict.setByName(\"FullName\", 393);\n topDict.setByName(\"FamilyName\", 394);\n topDict.setByName(\"Weight\", 395);\n topDict.setByName(\"Encoding\", null); // placeholder\n topDict.setByName(\"FontMatrix\", properties.fontMatrix);\n topDict.setByName(\"FontBBox\", properties.bbox);\n topDict.setByName(\"charset\", null); // placeholder\n topDict.setByName(\"CharStrings\", null); // placeholder\n topDict.setByName(\"Private\", null); // placeholder\n cff.topDict = topDict;\n\n const strings = new CFFStrings();\n strings.add(\"Version 0.11\"); // Version\n strings.add(\"See original notice\"); // Notice\n strings.add(name); // FullName\n strings.add(name); // FamilyName\n strings.add(\"Medium\"); // Weight\n cff.strings = strings;\n\n cff.globalSubrIndex = new CFFIndex();\n\n const count = glyphs.length;\n const charsetArray = [\".notdef\"];\n let i, ii;\n for (i = 0; i < count; i++) {\n const glyphName = charstrings[i].glyphName;\n const index = CFFStandardStrings.indexOf(glyphName);\n if (index === -1) {\n strings.add(glyphName);\n }\n charsetArray.push(glyphName);\n }\n cff.charset = new CFFCharset(false, 0, charsetArray);\n\n const charStringsIndex = new CFFIndex();\n charStringsIndex.add([0x8b, 0x0e]); // .notdef\n for (i = 0; i < count; i++) {\n charStringsIndex.add(glyphs[i]);\n }\n cff.charStrings = charStringsIndex;\n\n const privateDict = new CFFPrivateDict();\n privateDict.setByName(\"Subrs\", null); // placeholder\n const fields = [\n \"BlueValues\",\n \"OtherBlues\",\n \"FamilyBlues\",\n \"FamilyOtherBlues\",\n \"StemSnapH\",\n \"StemSnapV\",\n \"BlueShift\",\n \"BlueFuzz\",\n \"BlueScale\",\n \"LanguageGroup\",\n \"ExpansionFactor\",\n \"ForceBold\",\n \"StdHW\",\n \"StdVW\",\n ];\n for (i = 0, ii = fields.length; i < ii; i++) {\n const field = fields[i];\n if (!(field in properties.privateData)) {\n continue;\n }\n const value = properties.privateData[field];\n if (Array.isArray(value)) {\n // All of the private dictionary array data in CFF must be stored as\n // \"delta-encoded\" numbers.\n for (let j = value.length - 1; j > 0; j--) {\n value[j] -= value[j - 1]; // ... difference from previous value\n }\n }\n privateDict.setByName(field, value);\n }\n cff.topDict.privateDict = privateDict;\n\n const subrIndex = new CFFIndex();\n for (i = 0, ii = subrs.length; i < ii; i++) {\n subrIndex.add(subrs[i]);\n }\n privateDict.subrsIndex = subrIndex;\n\n const compiler = new CFFCompiler(cff);\n return compiler.compile();\n }\n}\n\nexport { Type1Font };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n FONT_IDENTITY_MATRIX,\n FormatError,\n info,\n shadow,\n string32,\n warn,\n} from \"../shared/util.js\";\nimport { CFFCompiler, CFFParser } from \"./cff_parser.js\";\nimport {\n FontFlags,\n MacStandardGlyphOrdering,\n normalizeFontName,\n recoverGlyphName,\n SEAC_ANALYSIS_ENABLED,\n} from \"./fonts_utils.js\";\nimport {\n getCharUnicodeCategory,\n getUnicodeForGlyph,\n getUnicodeRangeFor,\n mapSpecialUnicodeValues,\n} from \"./unicode.js\";\nimport { getDingbatsGlyphsUnicode, getGlyphsUnicode } from \"./glyphlist.js\";\nimport {\n getEncoding,\n MacRomanEncoding,\n StandardEncoding,\n SymbolSetEncoding,\n WinAnsiEncoding,\n ZapfDingbatsEncoding,\n} from \"./encodings.js\";\nimport {\n getGlyphMapForStandardFonts,\n getNonStdFontMap,\n getSerifFonts,\n getStdFontMap,\n getSupplementalGlyphMapForArialBlack,\n getSupplementalGlyphMapForCalibri,\n} from \"./standard_fonts.js\";\nimport { IdentityToUnicodeMap, ToUnicodeMap } from \"./to_unicode_map.js\";\nimport { CFFFont } from \"./cff_font.js\";\nimport { FontRendererFactory } from \"./font_renderer.js\";\nimport { getFontBasicMetrics } from \"./metrics.js\";\nimport { GlyfTable } from \"./glyf.js\";\nimport { IdentityCMap } from \"./cmap.js\";\nimport { OpenTypeFileBuilder } from \"./opentype_file_builder.js\";\nimport { readUint32 } from \"./core_utils.js\";\nimport { Stream } from \"./stream.js\";\nimport { Type1Font } from \"./type1_font.js\";\n\n// Unicode Private Use Areas:\nconst PRIVATE_USE_AREAS = [\n [0xe000, 0xf8ff], // BMP (0)\n [0x100000, 0x10fffd], // PUP (16)\n];\n\n// PDF Glyph Space Units are one Thousandth of a TextSpace Unit\n// except for Type 3 fonts\nconst PDF_GLYPH_SPACE_UNITS = 1000;\n\nconst EXPORT_DATA_PROPERTIES = [\n \"ascent\",\n \"bbox\",\n \"black\",\n \"bold\",\n \"charProcOperatorList\",\n \"composite\",\n \"cssFontInfo\",\n \"data\",\n \"defaultVMetrics\",\n \"defaultWidth\",\n \"descent\",\n \"fallbackName\",\n \"fontMatrix\",\n \"isInvalidPDFjsFont\",\n \"isType3Font\",\n \"italic\",\n \"loadedName\",\n \"mimetype\",\n \"missingFile\",\n \"name\",\n \"remeasure\",\n \"subtype\",\n \"systemFontInfo\",\n \"type\",\n \"vertical\",\n];\n\nconst EXPORT_DATA_EXTRA_PROPERTIES = [\n \"cMap\",\n \"defaultEncoding\",\n \"differences\",\n \"isMonospace\",\n \"isSerifFont\",\n \"isSymbolicFont\",\n \"seacMap\",\n \"toFontChar\",\n \"toUnicode\",\n \"vmetrics\",\n \"widths\",\n];\n\nfunction adjustWidths(properties) {\n if (!properties.fontMatrix) {\n return;\n }\n if (properties.fontMatrix[0] === FONT_IDENTITY_MATRIX[0]) {\n return;\n }\n // adjusting width to fontMatrix scale\n const scale = 0.001 / properties.fontMatrix[0];\n const glyphsWidths = properties.widths;\n for (const glyph in glyphsWidths) {\n glyphsWidths[glyph] *= scale;\n }\n properties.defaultWidth *= scale;\n}\n\nfunction adjustTrueTypeToUnicode(properties, isSymbolicFont, nameRecords) {\n if (properties.isInternalFont) {\n return;\n }\n if (properties.hasIncludedToUnicodeMap) {\n return; // The font dictionary has a `ToUnicode` entry.\n }\n if (properties.hasEncoding) {\n return; // The font dictionary has an `Encoding` entry.\n }\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n if (!isSymbolicFont) {\n return; // A non-symbolic font should default to `StandardEncoding`.\n }\n if (nameRecords.length === 0) {\n return;\n }\n\n // Try to infer if the fallback encoding should really be `WinAnsiEncoding`.\n if (properties.defaultEncoding === WinAnsiEncoding) {\n return;\n }\n for (const r of nameRecords) {\n if (!isWinNameRecord(r)) {\n return; // Not Windows, hence `WinAnsiEncoding` wouldn't make sense.\n }\n }\n const encoding = WinAnsiEncoding;\n\n const toUnicode = [],\n glyphsUnicodeMap = getGlyphsUnicode();\n for (const charCode in encoding) {\n const glyphName = encoding[charCode];\n if (glyphName === \"\") {\n continue;\n }\n const unicode = glyphsUnicodeMap[glyphName];\n if (unicode === undefined) {\n continue;\n }\n toUnicode[charCode] = String.fromCharCode(unicode);\n }\n if (toUnicode.length > 0) {\n properties.toUnicode.amend(toUnicode);\n }\n}\n\nfunction adjustType1ToUnicode(properties, builtInEncoding) {\n if (properties.isInternalFont) {\n return;\n }\n if (properties.hasIncludedToUnicodeMap) {\n return; // The font dictionary has a `ToUnicode` entry.\n }\n if (builtInEncoding === properties.defaultEncoding) {\n return; // No point in trying to adjust `toUnicode` if the encodings match.\n }\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n const toUnicode = [],\n glyphsUnicodeMap = getGlyphsUnicode();\n for (const charCode in builtInEncoding) {\n if (properties.hasEncoding) {\n if (\n properties.baseEncodingName ||\n properties.differences[charCode] !== undefined\n ) {\n continue; // The font dictionary has an `Encoding`/`Differences` entry.\n }\n }\n const glyphName = builtInEncoding[charCode];\n const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n toUnicode[charCode] = String.fromCharCode(unicode);\n }\n }\n if (toUnicode.length > 0) {\n properties.toUnicode.amend(toUnicode);\n }\n}\n\n/**\n * NOTE: This function should only be called at the *end* of font-parsing,\n * after e.g. `adjustType1ToUnicode` has run, to prevent any issues.\n */\nfunction amendFallbackToUnicode(properties) {\n if (!properties.fallbackToUnicode) {\n return;\n }\n if (properties.toUnicode instanceof IdentityToUnicodeMap) {\n return;\n }\n const toUnicode = [];\n for (const charCode in properties.fallbackToUnicode) {\n if (properties.toUnicode.has(charCode)) {\n continue; // The font dictionary has a `ToUnicode` entry.\n }\n toUnicode[charCode] = properties.fallbackToUnicode[charCode];\n }\n if (toUnicode.length > 0) {\n properties.toUnicode.amend(toUnicode);\n }\n}\n\nclass Glyph {\n constructor(\n originalCharCode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n ) {\n this.originalCharCode = originalCharCode;\n this.fontChar = fontChar;\n this.unicode = unicode;\n this.accent = accent;\n this.width = width;\n this.vmetric = vmetric;\n this.operatorListId = operatorListId;\n this.isSpace = isSpace;\n this.isInFont = isInFont;\n }\n\n /**\n * This property, which is only used by `PartialEvaluator.getTextContent`,\n * is purposely made non-serializable.\n * @type {Object}\n */\n get category() {\n return shadow(\n this,\n \"category\",\n getCharUnicodeCategory(this.unicode),\n /* nonSerializable = */ true\n );\n }\n}\n\nfunction int16(b0, b1) {\n return (b0 << 8) + b1;\n}\n\nfunction writeSignedInt16(bytes, index, value) {\n bytes[index + 1] = value;\n bytes[index] = value >>> 8;\n}\n\nfunction signedInt16(b0, b1) {\n const value = (b0 << 8) + b1;\n return value & (1 << 15) ? value - 0x10000 : value;\n}\n\nfunction writeUint32(bytes, index, value) {\n bytes[index + 3] = value & 0xff;\n bytes[index + 2] = value >>> 8;\n bytes[index + 1] = value >>> 16;\n bytes[index] = value >>> 24;\n}\n\nfunction int32(b0, b1, b2, b3) {\n return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;\n}\n\nfunction string16(value) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 16,\n `string16: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode((value >> 8) & 0xff, value & 0xff);\n}\n\nfunction safeString16(value) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n typeof value === \"number\" && !Number.isNaN(value),\n `safeString16: Unexpected input \"${value}\".`\n );\n }\n // clamp value to the 16-bit int range\n if (value > 0x7fff) {\n value = 0x7fff;\n } else if (value < -0x8000) {\n value = -0x8000;\n }\n return String.fromCharCode((value >> 8) & 0xff, value & 0xff);\n}\n\nfunction isTrueTypeFile(file) {\n const header = file.peekBytes(4);\n return (\n readUint32(header, 0) === 0x00010000 || bytesToString(header) === \"true\"\n );\n}\n\nfunction isTrueTypeCollectionFile(file) {\n const header = file.peekBytes(4);\n return bytesToString(header) === \"ttcf\";\n}\n\nfunction isOpenTypeFile(file) {\n const header = file.peekBytes(4);\n return bytesToString(header) === \"OTTO\";\n}\n\nfunction isType1File(file) {\n const header = file.peekBytes(2);\n // All Type1 font programs must begin with the comment '%!' (0x25 + 0x21).\n if (header[0] === 0x25 && header[1] === 0x21) {\n return true;\n }\n // ... obviously some fonts violate that part of the specification,\n // please refer to the comment in |Type1Font| below (pfb file header).\n if (header[0] === 0x80 && header[1] === 0x01) {\n return true;\n }\n return false;\n}\n\n/**\n * Compared to other font formats, the header in CFF files is not constant\n * but contains version numbers. To reduce the possibility of misclassifying\n * font files as CFF, it's recommended to check for other font formats first.\n */\nfunction isCFFFile(file) {\n const header = file.peekBytes(4);\n if (\n /* major version, [1, 255] */ header[0] >= 1 &&\n /* minor version, [0, 255]; header[1] */\n /* header size, [0, 255]; header[2] */\n /* offset(0) size, [1, 4] */ header[3] >= 1 &&\n header[3] <= 4\n ) {\n return true;\n }\n return false;\n}\n\nfunction getFontFileType(file, { type, subtype, composite }) {\n let fileType, fileSubtype;\n\n if (isTrueTypeFile(file) || isTrueTypeCollectionFile(file)) {\n fileType = composite ? \"CIDFontType2\" : \"TrueType\";\n } else if (isOpenTypeFile(file)) {\n fileType = composite ? \"CIDFontType2\" : \"OpenType\";\n } else if (isType1File(file)) {\n if (composite) {\n fileType = \"CIDFontType0\";\n } else {\n fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n }\n } else if (isCFFFile(file)) {\n if (composite) {\n fileType = \"CIDFontType0\";\n fileSubtype = \"CIDFontType0C\";\n } else {\n fileType = type === \"MMType1\" ? \"MMType1\" : \"Type1\";\n fileSubtype = \"Type1C\";\n }\n } else {\n warn(\"getFontFileType: Unable to detect correct font file Type/Subtype.\");\n fileType = type;\n fileSubtype = subtype;\n }\n\n return [fileType, fileSubtype];\n}\n\nfunction applyStandardFontGlyphMap(map, glyphMap) {\n for (const charCode in glyphMap) {\n map[+charCode] = glyphMap[charCode];\n }\n}\n\nfunction buildToFontChar(encoding, glyphsUnicodeMap, differences) {\n const toFontChar = [];\n let unicode;\n for (let i = 0, ii = encoding.length; i < ii; i++) {\n unicode = getUnicodeForGlyph(encoding[i], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[i] = unicode;\n }\n }\n for (const charCode in differences) {\n unicode = getUnicodeForGlyph(differences[charCode], glyphsUnicodeMap);\n if (unicode !== -1) {\n toFontChar[+charCode] = unicode;\n }\n }\n return toFontChar;\n}\n\n// Please refer to:\n// - https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html\nfunction isMacNameRecord(r) {\n return r.platform === 1 && r.encoding === 0 && r.language === 0;\n}\n\n// Please refer to:\n// - https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6name.html\n// - https://learn.microsoft.com/en-us/typography/opentype/spec/name#windows-language-ids\nfunction isWinNameRecord(r) {\n return r.platform === 3 && r.encoding === 1 && r.language === 0x409;\n}\n\nfunction convertCidString(charCode, cid, shouldThrow = false) {\n switch (cid.length) {\n case 1:\n return cid.charCodeAt(0);\n case 2:\n return (cid.charCodeAt(0) << 8) | cid.charCodeAt(1);\n }\n const msg = `Unsupported CID string (charCode ${charCode}): \"${cid}\".`;\n if (shouldThrow) {\n throw new FormatError(msg);\n }\n warn(msg);\n return cid;\n}\n\n/**\n * Rebuilds the char code to glyph ID map by moving all char codes to the\n * private use area. This is done to avoid issues with various problematic\n * unicode areas where either a glyph won't be drawn or is deformed by a\n * shaper.\n * @returns {Object} Two properties:\n * 'toFontChar' - maps original char codes(the value that will be read\n * from commands such as show text) to the char codes that will be used in the\n * font that we build\n * 'charCodeToGlyphId' - maps the new font char codes to glyph ids\n */\nfunction adjustMapping(charCodeToGlyphId, hasGlyph, newGlyphZeroId, toUnicode) {\n const newMap = Object.create(null);\n const toUnicodeExtraMap = new Map();\n const toFontChar = [];\n const usedGlyphIds = new Set();\n let privateUseAreaIndex = 0;\n const privateUseOffetStart = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n let nextAvailableFontCharCode = privateUseOffetStart;\n let privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n const isInPrivateArea = code =>\n (PRIVATE_USE_AREAS[0][0] <= code && code <= PRIVATE_USE_AREAS[0][1]) ||\n (PRIVATE_USE_AREAS[1][0] <= code && code <= PRIVATE_USE_AREAS[1][1]);\n for (let originalCharCode in charCodeToGlyphId) {\n originalCharCode |= 0;\n let glyphId = charCodeToGlyphId[originalCharCode];\n // For missing glyphs don't create the mappings so the glyph isn't\n // drawn.\n if (!hasGlyph(glyphId)) {\n continue;\n }\n if (nextAvailableFontCharCode > privateUseOffetEnd) {\n privateUseAreaIndex++;\n if (privateUseAreaIndex >= PRIVATE_USE_AREAS.length) {\n warn(\"Ran out of space in font private use area.\");\n break;\n }\n nextAvailableFontCharCode = PRIVATE_USE_AREAS[privateUseAreaIndex][0];\n privateUseOffetEnd = PRIVATE_USE_AREAS[privateUseAreaIndex][1];\n }\n const fontCharCode = nextAvailableFontCharCode++;\n if (glyphId === 0) {\n glyphId = newGlyphZeroId;\n }\n\n // Fix for bug 1778484:\n // The charcodes are moved into a private use area to fix some rendering\n // issues (https://github.com/mozilla/pdf.js/pull/9340) but when printing\n // to PDF the generated font will contain wrong chars. We can avoid that by\n // adding the unicode to the cmap and the print backend will then map the\n // glyph ids to the correct unicode.\n let unicode = toUnicode.get(originalCharCode);\n if (typeof unicode === \"string\") {\n unicode = unicode.codePointAt(0);\n }\n if (unicode && !isInPrivateArea(unicode) && !usedGlyphIds.has(glyphId)) {\n toUnicodeExtraMap.set(unicode, glyphId);\n usedGlyphIds.add(glyphId);\n }\n\n newMap[fontCharCode] = glyphId;\n toFontChar[originalCharCode] = fontCharCode;\n }\n return {\n toFontChar,\n charCodeToGlyphId: newMap,\n toUnicodeExtraMap,\n nextAvailableFontCharCode,\n };\n}\n\nfunction getRanges(glyphs, toUnicodeExtraMap, numGlyphs) {\n // Array.sort() sorts by characters, not numerically, so convert to an\n // array of characters.\n const codes = [];\n for (const charCode in glyphs) {\n // Remove an invalid glyph ID mappings to make OTS happy.\n if (glyphs[charCode] >= numGlyphs) {\n continue;\n }\n codes.push({ fontCharCode: charCode | 0, glyphId: glyphs[charCode] });\n }\n if (toUnicodeExtraMap) {\n for (const [unicode, glyphId] of toUnicodeExtraMap) {\n if (glyphId >= numGlyphs) {\n continue;\n }\n codes.push({ fontCharCode: unicode, glyphId });\n }\n }\n // Some fonts have zero glyphs and are used only for text selection, but\n // there needs to be at least one to build a valid cmap table.\n if (codes.length === 0) {\n codes.push({ fontCharCode: 0, glyphId: 0 });\n }\n codes.sort(function fontGetRangesSort(a, b) {\n return a.fontCharCode - b.fontCharCode;\n });\n\n // Split the sorted codes into ranges.\n const ranges = [];\n const length = codes.length;\n for (let n = 0; n < length; ) {\n const start = codes[n].fontCharCode;\n const codeIndices = [codes[n].glyphId];\n ++n;\n let end = start;\n while (n < length && end + 1 === codes[n].fontCharCode) {\n codeIndices.push(codes[n].glyphId);\n ++end;\n ++n;\n if (end === 0xffff) {\n break;\n }\n }\n ranges.push([start, end, codeIndices]);\n }\n\n return ranges;\n}\n\nfunction createCmapTable(glyphs, toUnicodeExtraMap, numGlyphs) {\n const ranges = getRanges(glyphs, toUnicodeExtraMap, numGlyphs);\n const numTables = ranges.at(-1)[1] > 0xffff ? 2 : 1;\n let cmap =\n \"\\x00\\x00\" + // version\n string16(numTables) + // numTables\n \"\\x00\\x03\" + // platformID\n \"\\x00\\x01\" + // encodingID\n string32(4 + numTables * 8); // start of the table record\n\n let i, ii, j, jj;\n for (i = ranges.length - 1; i >= 0; --i) {\n if (ranges[i][0] <= 0xffff) {\n break;\n }\n }\n const bmpLength = i + 1;\n\n if (ranges[i][0] < 0xffff && ranges[i][1] === 0xffff) {\n ranges[i][1] = 0xfffe;\n }\n const trailingRangesCount = ranges[i][1] < 0xffff ? 1 : 0;\n const segCount = bmpLength + trailingRangesCount;\n const searchParams = OpenTypeFileBuilder.getSearchParams(segCount, 2);\n\n // Fill up the 4 parallel arrays describing the segments.\n let startCount = \"\";\n let endCount = \"\";\n let idDeltas = \"\";\n let idRangeOffsets = \"\";\n let glyphsIds = \"\";\n let bias = 0;\n\n let range, start, end, codes;\n for (i = 0, ii = bmpLength; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n end = range[1];\n startCount += string16(start);\n endCount += string16(end);\n codes = range[2];\n let contiguous = true;\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n contiguous = false;\n break;\n }\n }\n if (!contiguous) {\n const offset = (segCount - i) * 2 + bias * 2;\n bias += end - start + 1;\n\n idDeltas += string16(0);\n idRangeOffsets += string16(offset);\n\n for (j = 0, jj = codes.length; j < jj; ++j) {\n glyphsIds += string16(codes[j]);\n }\n } else {\n const startCode = codes[0];\n\n idDeltas += string16((startCode - start) & 0xffff);\n idRangeOffsets += string16(0);\n }\n }\n\n if (trailingRangesCount > 0) {\n endCount += \"\\xFF\\xFF\";\n startCount += \"\\xFF\\xFF\";\n idDeltas += \"\\x00\\x01\";\n idRangeOffsets += \"\\x00\\x00\";\n }\n\n const format314 =\n \"\\x00\\x00\" + // language\n string16(2 * segCount) +\n string16(searchParams.range) +\n string16(searchParams.entry) +\n string16(searchParams.rangeShift) +\n endCount +\n \"\\x00\\x00\" +\n startCount +\n idDeltas +\n idRangeOffsets +\n glyphsIds;\n\n let format31012 = \"\";\n let header31012 = \"\";\n if (numTables > 1) {\n cmap +=\n \"\\x00\\x03\" + // platformID\n \"\\x00\\x0A\" + // encodingID\n string32(4 + numTables * 8 + 4 + format314.length); // start of the table record\n format31012 = \"\";\n for (i = 0, ii = ranges.length; i < ii; i++) {\n range = ranges[i];\n start = range[0];\n codes = range[2];\n let code = codes[0];\n for (j = 1, jj = codes.length; j < jj; ++j) {\n if (codes[j] !== codes[j - 1] + 1) {\n end = range[0] + j - 1;\n format31012 +=\n string32(start) + // startCharCode\n string32(end) + // endCharCode\n string32(code); // startGlyphID\n start = end + 1;\n code = codes[j];\n }\n }\n format31012 +=\n string32(start) + // startCharCode\n string32(range[1]) + // endCharCode\n string32(code); // startGlyphID\n }\n header31012 =\n \"\\x00\\x0C\" + // format\n \"\\x00\\x00\" + // reserved\n string32(format31012.length + 16) + // length\n \"\\x00\\x00\\x00\\x00\" + // language\n string32(format31012.length / 12); // nGroups\n }\n\n return (\n cmap +\n \"\\x00\\x04\" + // format\n string16(format314.length + 4) + // length\n format314 +\n header31012 +\n format31012\n );\n}\n\nfunction validateOS2Table(os2, file) {\n file.pos = (file.start || 0) + os2.offset;\n const version = file.getUint16();\n // TODO verify all OS/2 tables fields, but currently we validate only those\n // that give us issues\n file.skip(60); // skipping type, misc sizes, panose, unicode ranges\n const selection = file.getUint16();\n if (version < 4 && selection & 0x0300) {\n return false;\n }\n const firstChar = file.getUint16();\n const lastChar = file.getUint16();\n if (firstChar > lastChar) {\n return false;\n }\n file.skip(6); // skipping sTypoAscender/Descender/LineGap\n const usWinAscent = file.getUint16();\n if (usWinAscent === 0) {\n // makes font unreadable by windows\n return false;\n }\n\n // OS/2 appears to be valid, resetting some fields\n os2.data[8] = os2.data[9] = 0; // IE rejects fonts if fsType != 0\n return true;\n}\n\nfunction createOS2Table(properties, charstrings, override) {\n override ||= {\n unitsPerEm: 0,\n yMax: 0,\n yMin: 0,\n ascent: 0,\n descent: 0,\n };\n\n let ulUnicodeRange1 = 0;\n let ulUnicodeRange2 = 0;\n let ulUnicodeRange3 = 0;\n let ulUnicodeRange4 = 0;\n\n let firstCharIndex = null;\n let lastCharIndex = 0;\n let position = -1;\n\n if (charstrings) {\n for (let code in charstrings) {\n code |= 0;\n if (firstCharIndex > code || !firstCharIndex) {\n firstCharIndex = code;\n }\n if (lastCharIndex < code) {\n lastCharIndex = code;\n }\n\n position = getUnicodeRangeFor(code, position);\n if (position < 32) {\n ulUnicodeRange1 |= 1 << position;\n } else if (position < 64) {\n ulUnicodeRange2 |= 1 << (position - 32);\n } else if (position < 96) {\n ulUnicodeRange3 |= 1 << (position - 64);\n } else if (position < 123) {\n ulUnicodeRange4 |= 1 << (position - 96);\n } else {\n throw new FormatError(\n \"Unicode ranges Bits > 123 are reserved for internal usage\"\n );\n }\n }\n if (lastCharIndex > 0xffff) {\n // OS2 only supports a 16 bit int. The spec says if supplementary\n // characters are used the field should just be set to 0xFFFF.\n lastCharIndex = 0xffff;\n }\n } else {\n // TODO\n firstCharIndex = 0;\n lastCharIndex = 255;\n }\n\n const bbox = properties.bbox || [0, 0, 0, 0];\n const unitsPerEm =\n override.unitsPerEm ||\n 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n // if the font units differ to the PDF glyph space units\n // then scale up the values\n const scale = properties.ascentScaled\n ? 1.0\n : unitsPerEm / PDF_GLYPH_SPACE_UNITS;\n\n const typoAscent =\n override.ascent || Math.round(scale * (properties.ascent || bbox[3]));\n let typoDescent =\n override.descent || Math.round(scale * (properties.descent || bbox[1]));\n if (typoDescent > 0 && properties.descent > 0 && bbox[1] < 0) {\n typoDescent = -typoDescent; // fixing incorrect descent\n }\n const winAscent = override.yMax || typoAscent;\n const winDescent = -override.yMin || -typoDescent;\n\n return (\n \"\\x00\\x03\" + // version\n \"\\x02\\x24\" + // xAvgCharWidth\n \"\\x01\\xF4\" + // usWeightClass\n \"\\x00\\x05\" + // usWidthClass\n \"\\x00\\x00\" + // fstype (0 to let the font loads via font-face on IE)\n \"\\x02\\x8A\" + // ySubscriptXSize\n \"\\x02\\xBB\" + // ySubscriptYSize\n \"\\x00\\x00\" + // ySubscriptXOffset\n \"\\x00\\x8C\" + // ySubscriptYOffset\n \"\\x02\\x8A\" + // ySuperScriptXSize\n \"\\x02\\xBB\" + // ySuperScriptYSize\n \"\\x00\\x00\" + // ySuperScriptXOffset\n \"\\x01\\xDF\" + // ySuperScriptYOffset\n \"\\x00\\x31\" + // yStrikeOutSize\n \"\\x01\\x02\" + // yStrikeOutPosition\n \"\\x00\\x00\" + // sFamilyClass\n \"\\x00\\x00\\x06\" +\n String.fromCharCode(properties.fixedPitch ? 0x09 : 0x00) +\n \"\\x00\\x00\\x00\\x00\\x00\\x00\" + // Panose\n string32(ulUnicodeRange1) + // ulUnicodeRange1 (Bits 0-31)\n string32(ulUnicodeRange2) + // ulUnicodeRange2 (Bits 32-63)\n string32(ulUnicodeRange3) + // ulUnicodeRange3 (Bits 64-95)\n string32(ulUnicodeRange4) + // ulUnicodeRange4 (Bits 96-127)\n \"\\x2A\\x32\\x31\\x2A\" + // achVendID\n string16(properties.italicAngle ? 1 : 0) + // fsSelection\n string16(firstCharIndex || properties.firstChar) + // usFirstCharIndex\n string16(lastCharIndex || properties.lastChar) + // usLastCharIndex\n string16(typoAscent) + // sTypoAscender\n string16(typoDescent) + // sTypoDescender\n \"\\x00\\x64\" + // sTypoLineGap (7%-10% of the unitsPerEM value)\n string16(winAscent) + // usWinAscent\n string16(winDescent) + // usWinDescent\n \"\\x00\\x00\\x00\\x00\" + // ulCodePageRange1 (Bits 0-31)\n \"\\x00\\x00\\x00\\x00\" + // ulCodePageRange2 (Bits 32-63)\n string16(properties.xHeight) + // sxHeight\n string16(properties.capHeight) + // sCapHeight\n string16(0) + // usDefaultChar\n string16(firstCharIndex || properties.firstChar) + // usBreakChar\n \"\\x00\\x03\"\n ); // usMaxContext\n}\n\nfunction createPostTable(properties) {\n const angle = Math.floor(properties.italicAngle * 2 ** 16);\n return (\n \"\\x00\\x03\\x00\\x00\" + // Version number\n string32(angle) + // italicAngle\n \"\\x00\\x00\" + // underlinePosition\n \"\\x00\\x00\" + // underlineThickness\n string32(properties.fixedPitch ? 1 : 0) + // isFixedPitch\n \"\\x00\\x00\\x00\\x00\" + // minMemType42\n \"\\x00\\x00\\x00\\x00\" + // maxMemType42\n \"\\x00\\x00\\x00\\x00\" + // minMemType1\n \"\\x00\\x00\\x00\\x00\"\n ); // maxMemType1\n}\n\nfunction createPostscriptName(name) {\n // See https://docs.microsoft.com/en-us/typography/opentype/spec/recom#name.\n return name.replaceAll(/[^\\x21-\\x7E]|[[\\](){}<>/%]/g, \"\").slice(0, 63);\n}\n\nfunction createNameTable(name, proto) {\n if (!proto) {\n proto = [[], []]; // no strings and unicode strings\n }\n\n const strings = [\n proto[0][0] || \"Original licence\", // 0.Copyright\n proto[0][1] || name, // 1.Font family\n proto[0][2] || \"Unknown\", // 2.Font subfamily (font weight)\n proto[0][3] || \"uniqueID\", // 3.Unique ID\n proto[0][4] || name, // 4.Full font name\n proto[0][5] || \"Version 0.11\", // 5.Version\n proto[0][6] || createPostscriptName(name), // 6.Postscript name\n proto[0][7] || \"Unknown\", // 7.Trademark\n proto[0][8] || \"Unknown\", // 8.Manufacturer\n proto[0][9] || \"Unknown\", // 9.Designer\n ];\n\n // Mac want 1-byte per character strings while Windows want\n // 2-bytes per character, so duplicate the names table\n const stringsUnicode = [];\n let i, ii, j, jj, str;\n for (i = 0, ii = strings.length; i < ii; i++) {\n str = proto[1][i] || strings[i];\n\n const strBufUnicode = [];\n for (j = 0, jj = str.length; j < jj; j++) {\n strBufUnicode.push(string16(str.charCodeAt(j)));\n }\n stringsUnicode.push(strBufUnicode.join(\"\"));\n }\n\n const names = [strings, stringsUnicode];\n const platforms = [\"\\x00\\x01\", \"\\x00\\x03\"];\n const encodings = [\"\\x00\\x00\", \"\\x00\\x01\"];\n const languages = [\"\\x00\\x00\", \"\\x04\\x09\"];\n\n const namesRecordCount = strings.length * platforms.length;\n let nameTable =\n \"\\x00\\x00\" + // format\n string16(namesRecordCount) + // Number of names Record\n string16(namesRecordCount * 12 + 6); // Storage\n\n // Build the name records field\n let strOffset = 0;\n for (i = 0, ii = platforms.length; i < ii; i++) {\n const strs = names[i];\n for (j = 0, jj = strs.length; j < jj; j++) {\n str = strs[j];\n const nameRecord =\n platforms[i] + // platform ID\n encodings[i] + // encoding ID\n languages[i] + // language ID\n string16(j) + // name ID\n string16(str.length) +\n string16(strOffset);\n nameTable += nameRecord;\n strOffset += str.length;\n }\n }\n\n nameTable += strings.join(\"\") + stringsUnicode.join(\"\");\n return nameTable;\n}\n\n/**\n * 'Font' is the class the outside world should use, it encapsulate all the font\n * decoding logics whatever type it is (assuming the font type is supported).\n */\nclass Font {\n constructor(name, file, properties) {\n this.name = name;\n this.psName = null;\n this.mimetype = null;\n this.disableFontFace = false;\n\n this.loadedName = properties.loadedName;\n this.isType3Font = properties.isType3Font;\n this.missingFile = false;\n this.cssFontInfo = properties.cssFontInfo;\n\n this._charsCache = Object.create(null);\n this._glyphCache = Object.create(null);\n\n let isSerifFont = !!(properties.flags & FontFlags.Serif);\n // Fallback to checking the font name, in order to improve text-selection,\n // since the /Flags-entry is often wrong (fixes issue13845.pdf).\n if (!isSerifFont && !properties.isSimulatedFlags) {\n const baseName = name.replaceAll(/[,_]/g, \"-\").split(\"-\")[0],\n serifFonts = getSerifFonts();\n for (const namePart of baseName.split(\"+\")) {\n if (serifFonts[namePart]) {\n isSerifFont = true;\n break;\n }\n }\n }\n this.isSerifFont = isSerifFont;\n\n this.isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n this.isMonospace = !!(properties.flags & FontFlags.FixedPitch);\n\n let { type, subtype } = properties;\n this.type = type;\n this.subtype = subtype;\n this.systemFontInfo = properties.systemFontInfo;\n\n const matches = name.match(/^InvalidPDFjsFont_(.*)_\\d+$/);\n this.isInvalidPDFjsFont = !!matches;\n if (this.isInvalidPDFjsFont) {\n this.fallbackName = matches[1];\n } else if (this.isMonospace) {\n this.fallbackName = \"monospace\";\n } else if (this.isSerifFont) {\n this.fallbackName = \"serif\";\n } else {\n this.fallbackName = \"sans-serif\";\n }\n\n if (this.systemFontInfo?.guessFallback) {\n // Once the fallback name is guessed, we don't want to guess it again.\n this.systemFontInfo.guessFallback = false;\n this.systemFontInfo.css += `,${this.fallbackName}`;\n }\n\n this.differences = properties.differences;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.composite = properties.composite;\n this.cMap = properties.cMap;\n this.capHeight = properties.capHeight / PDF_GLYPH_SPACE_UNITS;\n this.ascent = properties.ascent / PDF_GLYPH_SPACE_UNITS;\n this.descent = properties.descent / PDF_GLYPH_SPACE_UNITS;\n this.lineHeight = this.ascent - this.descent;\n this.fontMatrix = properties.fontMatrix;\n this.bbox = properties.bbox;\n this.defaultEncoding = properties.defaultEncoding;\n\n this.toUnicode = properties.toUnicode;\n this.toFontChar = [];\n\n if (properties.type === \"Type3\") {\n for (let charCode = 0; charCode < 256; charCode++) {\n this.toFontChar[charCode] =\n this.differences[charCode] || properties.defaultEncoding[charCode];\n }\n return;\n }\n\n this.cidEncoding = properties.cidEncoding || \"\";\n this.vertical = !!properties.vertical;\n if (this.vertical) {\n this.vmetrics = properties.vmetrics;\n this.defaultVMetrics = properties.defaultVMetrics;\n }\n\n if (!file || file.isEmpty) {\n if (file) {\n // Some bad PDF generators will include empty font files,\n // attempting to recover by assuming that no file exists.\n warn('Font file is empty in \"' + name + '\" (' + this.loadedName + \")\");\n }\n this.fallbackToSystemFont(properties);\n return;\n }\n\n // Parse the font file to determine the correct type/subtype, rather than\n // relying on the (often incorrect) data in the font dictionary; (see e.g.\n // issue6782.pdf, issue7598.pdf, and issue9949.pdf).\n [type, subtype] = getFontFileType(file, properties);\n\n if (type !== this.type || subtype !== this.subtype) {\n info(\n \"Inconsistent font file Type/SubType, expected: \" +\n `${this.type}/${this.subtype} but found: ${type}/${subtype}.`\n );\n }\n\n let data;\n try {\n switch (type) {\n case \"MMType1\":\n info(\"MMType1 font (\" + name + \"), falling back to Type1.\");\n /* falls through */\n case \"Type1\":\n case \"CIDFontType0\":\n this.mimetype = \"font/opentype\";\n\n const cff =\n subtype === \"Type1C\" || subtype === \"CIDFontType0C\"\n ? new CFFFont(file, properties)\n : new Type1Font(name, file, properties);\n\n adjustWidths(properties);\n\n // Wrap the CFF data inside an OTF font file\n data = this.convert(name, cff, properties);\n break;\n\n case \"OpenType\":\n case \"TrueType\":\n case \"CIDFontType2\":\n this.mimetype = \"font/opentype\";\n\n // Repair the TrueType file. It is can be damaged in the point of\n // view of the sanitizer\n data = this.checkAndRepair(name, file, properties);\n if (this.isOpenType) {\n adjustWidths(properties);\n\n type = \"OpenType\";\n }\n break;\n\n default:\n throw new FormatError(`Font ${type} is not supported`);\n }\n } catch (e) {\n warn(e);\n this.fallbackToSystemFont(properties);\n return;\n }\n\n amendFallbackToUnicode(properties);\n this.data = data;\n\n // Transfer some properties again that could change during font conversion\n this.type = type;\n this.subtype = subtype;\n this.fontMatrix = properties.fontMatrix;\n this.widths = properties.widths;\n this.defaultWidth = properties.defaultWidth;\n this.toUnicode = properties.toUnicode;\n this.seacMap = properties.seacMap;\n }\n\n get renderer() {\n const renderer = FontRendererFactory.create(this, SEAC_ANALYSIS_ENABLED);\n return shadow(this, \"renderer\", renderer);\n }\n\n exportData(extraProperties = false) {\n const exportDataProperties = extraProperties\n ? [...EXPORT_DATA_PROPERTIES, ...EXPORT_DATA_EXTRA_PROPERTIES]\n : EXPORT_DATA_PROPERTIES;\n\n const data = Object.create(null);\n let property, value;\n for (property of exportDataProperties) {\n value = this[property];\n // Ignore properties that haven't been explicitly set.\n if (value !== undefined) {\n data[property] = value;\n }\n }\n return data;\n }\n\n fallbackToSystemFont(properties) {\n this.missingFile = true;\n // The file data is not specified. Trying to fix the font name\n // to be used with the canvas.font.\n const { name, type } = this;\n let fontName = normalizeFontName(name);\n const stdFontMap = getStdFontMap(),\n nonStdFontMap = getNonStdFontMap();\n const isStandardFont = !!stdFontMap[fontName];\n const isMappedToStandardFont = !!(\n nonStdFontMap[fontName] && stdFontMap[nonStdFontMap[fontName]]\n );\n\n fontName = stdFontMap[fontName] || nonStdFontMap[fontName] || fontName;\n\n const fontBasicMetricsMap = getFontBasicMetrics();\n const metrics = fontBasicMetricsMap[fontName];\n if (metrics) {\n if (isNaN(this.ascent)) {\n this.ascent = metrics.ascent / PDF_GLYPH_SPACE_UNITS;\n }\n if (isNaN(this.descent)) {\n this.descent = metrics.descent / PDF_GLYPH_SPACE_UNITS;\n }\n if (isNaN(this.capHeight)) {\n this.capHeight = metrics.capHeight / PDF_GLYPH_SPACE_UNITS;\n }\n }\n\n this.bold = /bold/gi.test(fontName);\n this.italic = /oblique|italic/gi.test(fontName);\n\n // Use 'name' instead of 'fontName' here because the original\n // name ArialBlack for example will be replaced by Helvetica.\n this.black = /Black/g.test(name);\n\n // Use 'name' instead of 'fontName' here because the original\n // name ArialNarrow for example will be replaced by Helvetica.\n const isNarrow = /Narrow/g.test(name);\n\n // if at least one width is present, remeasure all chars when exists\n this.remeasure =\n (!isStandardFont || isNarrow) && Object.keys(this.widths).length > 0;\n if (\n (isStandardFont || isMappedToStandardFont) &&\n type === \"CIDFontType2\" &&\n this.cidEncoding.startsWith(\"Identity-\")\n ) {\n const cidToGidMap = properties.cidToGidMap;\n // Standard fonts might be embedded as CID font without glyph mapping.\n // Building one based on GlyphMapForStandardFonts.\n const map = [];\n applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts());\n\n if (/Arial-?Black/i.test(name)) {\n applyStandardFontGlyphMap(map, getSupplementalGlyphMapForArialBlack());\n } else if (/Calibri/i.test(name)) {\n applyStandardFontGlyphMap(map, getSupplementalGlyphMapForCalibri());\n }\n\n // Always update the glyph mapping with the `cidToGidMap` when it exists\n // (fixes issue12418_reduced.pdf).\n if (cidToGidMap) {\n for (const charCode in map) {\n const cid = map[charCode];\n if (cidToGidMap[cid] !== undefined) {\n map[+charCode] = cidToGidMap[cid];\n }\n }\n // When the /CIDToGIDMap is \"incomplete\", fallback to the included\n // /ToUnicode-map regardless of its encoding (fixes issue11915.pdf).\n if (\n cidToGidMap.length !== this.toUnicode.length &&\n properties.hasIncludedToUnicodeMap &&\n this.toUnicode instanceof IdentityToUnicodeMap\n ) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n const cid = map[charCode];\n if (cidToGidMap[cid] === undefined) {\n map[+charCode] = unicodeCharCode;\n }\n });\n }\n }\n\n if (!(this.toUnicode instanceof IdentityToUnicodeMap)) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n this.toFontChar = map;\n this.toUnicode = new ToUnicodeMap(map);\n } else if (/Symbol/i.test(fontName)) {\n this.toFontChar = buildToFontChar(\n SymbolSetEncoding,\n getGlyphsUnicode(),\n this.differences\n );\n } else if (/Dingbats/i.test(fontName)) {\n this.toFontChar = buildToFontChar(\n ZapfDingbatsEncoding,\n getDingbatsGlyphsUnicode(),\n this.differences\n );\n } else if (isStandardFont) {\n const map = buildToFontChar(\n this.defaultEncoding,\n getGlyphsUnicode(),\n this.differences\n );\n\n if (\n type === \"CIDFontType2\" &&\n !this.cidEncoding.startsWith(\"Identity-\") &&\n !(this.toUnicode instanceof IdentityToUnicodeMap)\n ) {\n this.toUnicode.forEach(function (charCode, unicodeCharCode) {\n map[+charCode] = unicodeCharCode;\n });\n }\n this.toFontChar = map;\n } else {\n const glyphsUnicodeMap = getGlyphsUnicode();\n const map = [];\n this.toUnicode.forEach((charCode, unicodeCharCode) => {\n if (!this.composite) {\n const glyphName =\n this.differences[charCode] || this.defaultEncoding[charCode];\n const unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n unicodeCharCode = unicode;\n }\n }\n map[+charCode] = unicodeCharCode;\n });\n\n // Attempt to improve the glyph mapping for (some) composite fonts that\n // appear to lack meaningful ToUnicode data.\n if (this.composite && this.toUnicode instanceof IdentityToUnicodeMap) {\n if (/Tahoma|Verdana/i.test(name)) {\n // Fixes issue15719.pdf and issue11242_reduced.pdf.\n applyStandardFontGlyphMap(map, getGlyphMapForStandardFonts());\n }\n }\n this.toFontChar = map;\n }\n\n amendFallbackToUnicode(properties);\n this.loadedName = fontName.split(\"-\")[0];\n }\n\n checkAndRepair(name, font, properties) {\n const VALID_TABLES = [\n \"OS/2\",\n \"cmap\",\n \"head\",\n \"hhea\",\n \"hmtx\",\n \"maxp\",\n \"name\",\n \"post\",\n \"loca\",\n \"glyf\",\n \"fpgm\",\n \"prep\",\n \"cvt \",\n \"CFF \",\n ];\n\n function readTables(file, numTables) {\n const tables = Object.create(null);\n tables[\"OS/2\"] = null;\n tables.cmap = null;\n tables.head = null;\n tables.hhea = null;\n tables.hmtx = null;\n tables.maxp = null;\n tables.name = null;\n tables.post = null;\n\n for (let i = 0; i < numTables; i++) {\n const table = readTableEntry(file);\n if (!VALID_TABLES.includes(table.tag)) {\n continue; // skipping table if it's not a required or optional table\n }\n if (table.length === 0) {\n continue; // skipping empty tables\n }\n tables[table.tag] = table;\n }\n return tables;\n }\n\n function readTableEntry(file) {\n const tag = file.getString(4);\n\n const checksum = file.getInt32() >>> 0;\n const offset = file.getInt32() >>> 0;\n const length = file.getInt32() >>> 0;\n\n // Read the table associated data\n const previousPosition = file.pos;\n file.pos = file.start || 0;\n file.skip(offset);\n const data = file.getBytes(length);\n file.pos = previousPosition;\n\n if (tag === \"head\") {\n // clearing checksum adjustment\n data[8] = data[9] = data[10] = data[11] = 0;\n data[17] |= 0x20; // Set font optimized for cleartype flag.\n }\n\n return {\n tag,\n checksum,\n length,\n offset,\n data,\n };\n }\n\n function readOpenTypeHeader(ttf) {\n return {\n version: ttf.getString(4),\n numTables: ttf.getUint16(),\n searchRange: ttf.getUint16(),\n entrySelector: ttf.getUint16(),\n rangeShift: ttf.getUint16(),\n };\n }\n\n function readTrueTypeCollectionHeader(ttc) {\n const ttcTag = ttc.getString(4);\n assert(ttcTag === \"ttcf\", \"Must be a TrueType Collection font.\");\n\n const majorVersion = ttc.getUint16();\n const minorVersion = ttc.getUint16();\n const numFonts = ttc.getInt32() >>> 0;\n const offsetTable = [];\n for (let i = 0; i < numFonts; i++) {\n offsetTable.push(ttc.getInt32() >>> 0);\n }\n\n const header = {\n ttcTag,\n majorVersion,\n minorVersion,\n numFonts,\n offsetTable,\n };\n switch (majorVersion) {\n case 1:\n return header;\n case 2:\n header.dsigTag = ttc.getInt32() >>> 0;\n header.dsigLength = ttc.getInt32() >>> 0;\n header.dsigOffset = ttc.getInt32() >>> 0;\n return header;\n }\n throw new FormatError(\n `Invalid TrueType Collection majorVersion: ${majorVersion}.`\n );\n }\n\n function readTrueTypeCollectionData(ttc, fontName) {\n const { numFonts, offsetTable } = readTrueTypeCollectionHeader(ttc);\n const fontNameParts = fontName.split(\"+\");\n let fallbackData;\n\n for (let i = 0; i < numFonts; i++) {\n ttc.pos = (ttc.start || 0) + offsetTable[i];\n const potentialHeader = readOpenTypeHeader(ttc);\n const potentialTables = readTables(ttc, potentialHeader.numTables);\n\n if (!potentialTables.name) {\n throw new FormatError(\n 'TrueType Collection font must contain a \"name\" table.'\n );\n }\n const [nameTable] = readNameTable(potentialTables.name);\n\n for (let j = 0, jj = nameTable.length; j < jj; j++) {\n for (let k = 0, kk = nameTable[j].length; k < kk; k++) {\n const nameEntry = nameTable[j][k]?.replaceAll(/\\s/g, \"\");\n if (!nameEntry) {\n continue;\n }\n if (nameEntry === fontName) {\n return {\n header: potentialHeader,\n tables: potentialTables,\n };\n }\n if (fontNameParts.length < 2) {\n continue;\n }\n for (const part of fontNameParts) {\n if (nameEntry === part) {\n fallbackData = {\n name: part,\n header: potentialHeader,\n tables: potentialTables,\n };\n }\n }\n }\n }\n }\n if (fallbackData) {\n warn(\n `TrueType Collection does not contain \"${fontName}\" font, ` +\n `falling back to \"${fallbackData.name}\" font instead.`\n );\n return {\n header: fallbackData.header,\n tables: fallbackData.tables,\n };\n }\n throw new FormatError(\n `TrueType Collection does not contain \"${fontName}\" font.`\n );\n }\n\n /**\n * Read the appropriate subtable from the cmap according to 9.6.6.4 from\n * PDF spec\n */\n function readCmapTable(cmap, file, isSymbolicFont, hasEncoding) {\n if (!cmap) {\n warn(\"No cmap table available.\");\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false,\n };\n }\n let segment;\n let start = (file.start || 0) + cmap.offset;\n file.pos = start;\n\n file.skip(2); // version\n const numTables = file.getUint16();\n\n let potentialTable;\n let canBreak = false;\n // There's an order of preference in terms of which cmap subtable to\n // use:\n // - non-symbolic fonts the preference is a 3,1 table then a 1,0 table\n // - symbolic fonts the preference is a 3,0 table then a 1,0 table\n // The following takes advantage of the fact that the tables are sorted\n // to work.\n for (let i = 0; i < numTables; i++) {\n const platformId = file.getUint16();\n const encodingId = file.getUint16();\n const offset = file.getInt32() >>> 0;\n let useTable = false;\n\n // Sometimes there are multiple of the same type of table. Default\n // to choosing the first table and skip the rest.\n if (\n potentialTable?.platformId === platformId &&\n potentialTable?.encodingId === encodingId\n ) {\n continue;\n }\n\n if (\n platformId === 0 &&\n (encodingId === /* Unicode Default */ 0 ||\n encodingId === /* Unicode 1.1 */ 1 ||\n encodingId === /* Unicode BMP */ 3)\n ) {\n useTable = true;\n // Continue the loop since there still may be a higher priority\n // table.\n } else if (platformId === 1 && encodingId === 0) {\n useTable = true;\n // Continue the loop since there still may be a higher priority\n // table.\n } else if (\n platformId === 3 &&\n encodingId === 1 &&\n (hasEncoding || !potentialTable)\n ) {\n useTable = true;\n if (!isSymbolicFont) {\n canBreak = true;\n }\n } else if (isSymbolicFont && platformId === 3 && encodingId === 0) {\n useTable = true;\n\n let correctlySorted = true;\n if (i < numTables - 1) {\n const nextBytes = file.peekBytes(2),\n nextPlatformId = int16(nextBytes[0], nextBytes[1]);\n if (nextPlatformId < platformId) {\n correctlySorted = false;\n }\n }\n if (correctlySorted) {\n canBreak = true;\n }\n }\n\n if (useTable) {\n potentialTable = {\n platformId,\n encodingId,\n offset,\n };\n }\n if (canBreak) {\n break;\n }\n }\n\n if (potentialTable) {\n file.pos = start + potentialTable.offset;\n }\n if (!potentialTable || file.peekByte() === -1) {\n warn(\"Could not find a preferred cmap table.\");\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false,\n };\n }\n\n const format = file.getUint16();\n let hasShortCmap = false;\n const mappings = [];\n let j, glyphId;\n\n // TODO(mack): refactor this cmap subtable reading logic out\n if (format === 0) {\n file.skip(2 + 2); // length + language\n\n for (j = 0; j < 256; j++) {\n const index = file.getByte();\n if (!index) {\n continue;\n }\n mappings.push({\n charCode: j,\n glyphId: index,\n });\n }\n hasShortCmap = true;\n } else if (format === 2) {\n file.skip(2 + 2); // length + language\n\n const subHeaderKeys = [];\n let maxSubHeaderKey = 0;\n // Read subHeaderKeys. If subHeaderKeys[i] === 0, then i is a\n // single-byte character. Otherwise, i is the first byte of a\n // multi-byte character, and the value is 8*index into\n // subHeaders.\n for (let i = 0; i < 256; i++) {\n const subHeaderKey = file.getUint16() >> 3;\n subHeaderKeys.push(subHeaderKey);\n maxSubHeaderKey = Math.max(subHeaderKey, maxSubHeaderKey);\n }\n // Read subHeaders. The number of entries is determined\n // dynamically based on the subHeaderKeys found above.\n const subHeaders = [];\n for (let i = 0; i <= maxSubHeaderKey; i++) {\n subHeaders.push({\n firstCode: file.getUint16(),\n entryCount: file.getUint16(),\n idDelta: signedInt16(file.getByte(), file.getByte()),\n idRangePos: file.pos + file.getUint16(),\n });\n }\n for (let i = 0; i < 256; i++) {\n if (subHeaderKeys[i] === 0) {\n // i is a single-byte code.\n file.pos = subHeaders[0].idRangePos + 2 * i;\n glyphId = file.getUint16();\n mappings.push({\n charCode: i,\n glyphId,\n });\n } else {\n // i is the first byte of a two-byte code.\n const s = subHeaders[subHeaderKeys[i]];\n for (j = 0; j < s.entryCount; j++) {\n const charCode = (i << 8) + j + s.firstCode;\n file.pos = s.idRangePos + 2 * j;\n glyphId = file.getUint16();\n if (glyphId !== 0) {\n glyphId = (glyphId + s.idDelta) % 65536;\n }\n mappings.push({\n charCode,\n glyphId,\n });\n }\n }\n }\n } else if (format === 4) {\n file.skip(2 + 2); // length + language\n\n // re-creating the table in format 4 since the encoding\n // might be changed\n const segCount = file.getUint16() >> 1;\n file.skip(6); // skipping range fields\n const segments = [];\n let segIndex;\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments.push({ end: file.getUint16() });\n }\n file.skip(2);\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].start = file.getUint16();\n }\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segments[segIndex].delta = file.getUint16();\n }\n\n let offsetsCount = 0,\n offsetIndex;\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n const rangeOffset = file.getUint16();\n if (!rangeOffset) {\n segment.offsetIndex = -1;\n continue;\n }\n\n offsetIndex = (rangeOffset >> 1) - (segCount - segIndex);\n segment.offsetIndex = offsetIndex;\n offsetsCount = Math.max(\n offsetsCount,\n offsetIndex + segment.end - segment.start + 1\n );\n }\n\n const offsets = [];\n for (j = 0; j < offsetsCount; j++) {\n offsets.push(file.getUint16());\n }\n\n for (segIndex = 0; segIndex < segCount; segIndex++) {\n segment = segments[segIndex];\n start = segment.start;\n const end = segment.end;\n const delta = segment.delta;\n offsetIndex = segment.offsetIndex;\n\n for (j = start; j <= end; j++) {\n if (j === 0xffff) {\n continue;\n }\n\n glyphId = offsetIndex < 0 ? j : offsets[offsetIndex + j - start];\n glyphId = (glyphId + delta) & 0xffff;\n mappings.push({\n charCode: j,\n glyphId,\n });\n }\n }\n } else if (format === 6) {\n file.skip(2 + 2); // length + language\n\n // Format 6 is a 2-bytes dense mapping, which means the font data\n // lives glue together even if they are pretty far in the unicode\n // table. (This looks weird, so I can have missed something), this\n // works on Linux but seems to fails on Mac so let's rewrite the\n // cmap table to a 3-1-4 style\n const firstCode = file.getUint16();\n const entryCount = file.getUint16();\n\n for (j = 0; j < entryCount; j++) {\n glyphId = file.getUint16();\n const charCode = firstCode + j;\n\n mappings.push({\n charCode,\n glyphId,\n });\n }\n } else if (format === 12) {\n file.skip(2 + 4 + 4); // reserved + length + language\n\n const nGroups = file.getInt32() >>> 0;\n for (j = 0; j < nGroups; j++) {\n const startCharCode = file.getInt32() >>> 0;\n const endCharCode = file.getInt32() >>> 0;\n let glyphCode = file.getInt32() >>> 0;\n\n for (\n let charCode = startCharCode;\n charCode <= endCharCode;\n charCode++\n ) {\n mappings.push({\n charCode,\n glyphId: glyphCode++,\n });\n }\n }\n } else {\n warn(\"cmap table has unsupported format: \" + format);\n return {\n platformId: -1,\n encodingId: -1,\n mappings: [],\n hasShortCmap: false,\n };\n }\n\n // removing duplicate entries\n mappings.sort(function (a, b) {\n return a.charCode - b.charCode;\n });\n for (let i = 1; i < mappings.length; i++) {\n if (mappings[i - 1].charCode === mappings[i].charCode) {\n mappings.splice(i, 1);\n i--;\n }\n }\n\n return {\n platformId: potentialTable.platformId,\n encodingId: potentialTable.encodingId,\n mappings,\n hasShortCmap,\n };\n }\n\n function sanitizeMetrics(\n file,\n header,\n metrics,\n headTable,\n numGlyphs,\n dupFirstEntry\n ) {\n if (!header) {\n if (metrics) {\n metrics.data = null;\n }\n return;\n }\n\n file.pos = (file.start || 0) + header.offset;\n file.pos += 4; // version\n file.pos += 2; // ascent\n file.pos += 2; // descent\n file.pos += 2; // linegap\n file.pos += 2; // adv_width_max\n file.pos += 2; // min_sb1\n file.pos += 2; // min_sb2\n file.pos += 2; // max_extent\n file.pos += 2; // caret_slope_rise\n file.pos += 2; // caret_slope_run\n const caretOffset = file.getUint16();\n file.pos += 8; // reserved\n file.pos += 2; // format\n let numOfMetrics = file.getUint16();\n\n if (caretOffset !== 0) {\n const macStyle = int16(headTable.data[44], headTable.data[45]);\n if (!(macStyle & 2)) {\n // Suppress OTS warnings about the `caretOffset` in the hhea-table.\n header.data[22] = 0;\n header.data[23] = 0;\n }\n }\n\n if (numOfMetrics > numGlyphs) {\n info(\n `The numOfMetrics (${numOfMetrics}) should not be ` +\n `greater than the numGlyphs (${numGlyphs}).`\n );\n // Reduce numOfMetrics if it is greater than numGlyphs\n numOfMetrics = numGlyphs;\n header.data[34] = (numOfMetrics & 0xff00) >> 8;\n header.data[35] = numOfMetrics & 0x00ff;\n }\n\n const numOfSidebearings = numGlyphs - numOfMetrics;\n const numMissing =\n numOfSidebearings - ((metrics.length - numOfMetrics * 4) >> 1);\n\n if (numMissing > 0) {\n // For each missing glyph, we set both the width and lsb to 0 (zero).\n // Since we need to add two properties for each glyph, this explains\n // the use of |numMissing * 2| when initializing the typed array.\n const entries = new Uint8Array(metrics.length + numMissing * 2);\n entries.set(metrics.data);\n if (dupFirstEntry) {\n // Set the sidebearing value of the duplicated glyph.\n entries[metrics.length] = metrics.data[2];\n entries[metrics.length + 1] = metrics.data[3];\n }\n metrics.data = entries;\n }\n }\n\n function sanitizeGlyph(\n source,\n sourceStart,\n sourceEnd,\n dest,\n destStart,\n hintsValid\n ) {\n const glyphProfile = {\n length: 0,\n sizeOfInstructions: 0,\n };\n if (\n sourceStart < 0 ||\n sourceStart >= source.length ||\n sourceEnd > source.length ||\n sourceEnd - sourceStart <= 12\n ) {\n // If the offsets are wrong or the glyph is too small, remove it.\n return glyphProfile;\n }\n const glyf = source.subarray(sourceStart, sourceEnd);\n\n // Sanitize the glyph bounding box.\n const xMin = signedInt16(glyf[2], glyf[3]);\n const yMin = signedInt16(glyf[4], glyf[5]);\n const xMax = signedInt16(glyf[6], glyf[7]);\n const yMax = signedInt16(glyf[8], glyf[9]);\n\n if (xMin > xMax) {\n writeSignedInt16(glyf, 2, xMax);\n writeSignedInt16(glyf, 6, xMin);\n }\n if (yMin > yMax) {\n writeSignedInt16(glyf, 4, yMax);\n writeSignedInt16(glyf, 8, yMin);\n }\n\n const contoursCount = signedInt16(glyf[0], glyf[1]);\n if (contoursCount < 0) {\n if (contoursCount < -1) {\n // OTS doesn't like contour count to be less than -1.\n // The glyph data offsets are very likely wrong and\n // having something lower than -1, very likely, implies\n // to have some garbage data.\n return glyphProfile;\n }\n // complex glyph, writing as is\n dest.set(glyf, destStart);\n glyphProfile.length = glyf.length;\n return glyphProfile;\n }\n\n let i,\n j = 10,\n flagsCount = 0;\n for (i = 0; i < contoursCount; i++) {\n const endPoint = (glyf[j] << 8) | glyf[j + 1];\n flagsCount = endPoint + 1;\n j += 2;\n }\n // skipping instructions\n const instructionsStart = j;\n const instructionsLength = (glyf[j] << 8) | glyf[j + 1];\n glyphProfile.sizeOfInstructions = instructionsLength;\n j += 2 + instructionsLength;\n const instructionsEnd = j;\n // validating flags\n let coordinatesLength = 0;\n for (i = 0; i < flagsCount; i++) {\n const flag = glyf[j++];\n if (flag & 0xc0) {\n // reserved flags must be zero, cleaning up\n glyf[j - 1] = flag & 0x3f;\n }\n let xLength = 2;\n if (flag & 2) {\n xLength = 1;\n } else if (flag & 16) {\n xLength = 0;\n }\n let yLength = 2;\n if (flag & 4) {\n yLength = 1;\n } else if (flag & 32) {\n yLength = 0;\n }\n const xyLength = xLength + yLength;\n coordinatesLength += xyLength;\n if (flag & 8) {\n const repeat = glyf[j++];\n if (repeat === 0) {\n // The repeat count should be non-zero when the repeat flag is set.\n glyf[j - 1] ^= 8;\n }\n i += repeat;\n coordinatesLength += repeat * xyLength;\n }\n }\n // glyph without coordinates will be rejected\n if (coordinatesLength === 0) {\n return glyphProfile;\n }\n let glyphDataLength = j + coordinatesLength;\n if (glyphDataLength > glyf.length) {\n // not enough data for coordinates\n return glyphProfile;\n }\n if (!hintsValid && instructionsLength > 0) {\n dest.set(glyf.subarray(0, instructionsStart), destStart);\n dest.set([0, 0], destStart + instructionsStart);\n dest.set(\n glyf.subarray(instructionsEnd, glyphDataLength),\n destStart + instructionsStart + 2\n );\n glyphDataLength -= instructionsLength;\n if (glyf.length - glyphDataLength > 3) {\n glyphDataLength = (glyphDataLength + 3) & ~3;\n }\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n if (glyf.length - glyphDataLength > 3) {\n // truncating and aligning to 4 bytes the long glyph data\n glyphDataLength = (glyphDataLength + 3) & ~3;\n dest.set(glyf.subarray(0, glyphDataLength), destStart);\n glyphProfile.length = glyphDataLength;\n return glyphProfile;\n }\n // glyph data is fine\n dest.set(glyf, destStart);\n glyphProfile.length = glyf.length;\n return glyphProfile;\n }\n\n function sanitizeHead(head, numGlyphs, locaLength) {\n const data = head.data;\n\n // Validate version:\n // Should always be 0x00010000\n const version = int32(data[0], data[1], data[2], data[3]);\n if (version >> 16 !== 1) {\n info(\"Attempting to fix invalid version in head table: \" + version);\n data[0] = 0;\n data[1] = 1;\n data[2] = 0;\n data[3] = 0;\n }\n\n const indexToLocFormat = int16(data[50], data[51]);\n if (indexToLocFormat < 0 || indexToLocFormat > 1) {\n info(\n \"Attempting to fix invalid indexToLocFormat in head table: \" +\n indexToLocFormat\n );\n\n // The value of indexToLocFormat should be 0 if the loca table\n // consists of short offsets, and should be 1 if the loca table\n // consists of long offsets.\n //\n // The number of entries in the loca table should be numGlyphs + 1.\n //\n // Using this information, we can work backwards to deduce if the\n // size of each offset in the loca table, and thus figure out the\n // appropriate value for indexToLocFormat.\n\n const numGlyphsPlusOne = numGlyphs + 1;\n if (locaLength === numGlyphsPlusOne << 1) {\n // 0x0000 indicates the loca table consists of short offsets\n data[50] = 0;\n data[51] = 0;\n } else if (locaLength === numGlyphsPlusOne << 2) {\n // 0x0001 indicates the loca table consists of long offsets\n data[50] = 0;\n data[51] = 1;\n } else {\n throw new FormatError(\n \"Could not fix indexToLocFormat: \" + indexToLocFormat\n );\n }\n }\n }\n\n function sanitizeGlyphLocations(\n loca,\n glyf,\n numGlyphs,\n isGlyphLocationsLong,\n hintsValid,\n dupFirstEntry,\n maxSizeOfInstructions\n ) {\n let itemSize, itemDecode, itemEncode;\n if (isGlyphLocationsLong) {\n itemSize = 4;\n itemDecode = function fontItemDecodeLong(data, offset) {\n return (\n (data[offset] << 24) |\n (data[offset + 1] << 16) |\n (data[offset + 2] << 8) |\n data[offset + 3]\n );\n };\n itemEncode = function fontItemEncodeLong(data, offset, value) {\n data[offset] = (value >>> 24) & 0xff;\n data[offset + 1] = (value >> 16) & 0xff;\n data[offset + 2] = (value >> 8) & 0xff;\n data[offset + 3] = value & 0xff;\n };\n } else {\n itemSize = 2;\n itemDecode = function fontItemDecode(data, offset) {\n return (data[offset] << 9) | (data[offset + 1] << 1);\n };\n itemEncode = function fontItemEncode(data, offset, value) {\n data[offset] = (value >> 9) & 0xff;\n data[offset + 1] = (value >> 1) & 0xff;\n };\n }\n // The first glyph is duplicated.\n const numGlyphsOut = dupFirstEntry ? numGlyphs + 1 : numGlyphs;\n const locaDataSize = itemSize * (1 + numGlyphsOut);\n // Resize loca table to account for duplicated glyph.\n const locaData = new Uint8Array(locaDataSize);\n locaData.set(loca.data.subarray(0, locaDataSize));\n loca.data = locaData;\n // removing the invalid glyphs\n const oldGlyfData = glyf.data;\n const oldGlyfDataLength = oldGlyfData.length;\n const newGlyfData = new Uint8Array(oldGlyfDataLength);\n\n // The spec says the offsets should be in ascending order, however\n // this is not true for some fonts or they use the offset of 0 to mark a\n // glyph as missing. OTS requires the offsets to be in order and not to\n // be zero, so we must sort and rebuild the loca table and potentially\n // re-arrange the glyf data.\n let i, j;\n const locaEntries = [];\n // There are numGlyphs + 1 loca table entries.\n for (i = 0, j = 0; i < numGlyphs + 1; i++, j += itemSize) {\n let offset = itemDecode(locaData, j);\n if (offset > oldGlyfDataLength) {\n offset = oldGlyfDataLength;\n }\n locaEntries.push({\n index: i,\n offset,\n endOffset: 0,\n });\n }\n locaEntries.sort((a, b) => {\n return a.offset - b.offset;\n });\n // Now the offsets are sorted, calculate the end offset of each glyph.\n // The last loca entry's endOffset is not calculated since it's the end\n // of the data and will be stored on the previous entry's endOffset.\n for (i = 0; i < numGlyphs; i++) {\n locaEntries[i].endOffset = locaEntries[i + 1].offset;\n }\n // Re-sort so glyphs aren't out of order.\n locaEntries.sort((a, b) => {\n return a.index - b.index;\n });\n // Calculate the endOffset of the \"first\" glyph correctly when there are\n // *multiple* empty ones at the start of the data (fixes issue14618.pdf).\n for (i = 0; i < numGlyphs; i++) {\n const { offset, endOffset } = locaEntries[i];\n if (offset !== 0 || endOffset !== 0) {\n break;\n }\n const nextOffset = locaEntries[i + 1].offset;\n if (nextOffset === 0) {\n continue;\n }\n locaEntries[i].endOffset = nextOffset;\n break;\n }\n\n const missingGlyphs = Object.create(null);\n let writeOffset = 0;\n itemEncode(locaData, 0, writeOffset);\n for (i = 0, j = itemSize; i < numGlyphs; i++, j += itemSize) {\n const glyphProfile = sanitizeGlyph(\n oldGlyfData,\n locaEntries[i].offset,\n locaEntries[i].endOffset,\n newGlyfData,\n writeOffset,\n hintsValid\n );\n const newLength = glyphProfile.length;\n if (newLength === 0) {\n missingGlyphs[i] = true;\n }\n if (glyphProfile.sizeOfInstructions > maxSizeOfInstructions) {\n maxSizeOfInstructions = glyphProfile.sizeOfInstructions;\n }\n writeOffset += newLength;\n itemEncode(locaData, j, writeOffset);\n }\n\n if (writeOffset === 0) {\n // glyf table cannot be empty -- redoing the glyf and loca tables\n // to have single glyph with one point\n const simpleGlyph = new Uint8Array([\n 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0,\n ]);\n for (i = 0, j = itemSize; i < numGlyphsOut; i++, j += itemSize) {\n itemEncode(locaData, j, simpleGlyph.length);\n }\n glyf.data = simpleGlyph;\n } else if (dupFirstEntry) {\n // Browsers will not display a glyph at position 0. Typically glyph 0\n // is notdef, but a number of fonts put a valid glyph there so it must\n // be duplicated and appended.\n const firstEntryLength = itemDecode(locaData, itemSize);\n if (newGlyfData.length > firstEntryLength + writeOffset) {\n glyf.data = newGlyfData.subarray(0, firstEntryLength + writeOffset);\n } else {\n glyf.data = new Uint8Array(firstEntryLength + writeOffset);\n glyf.data.set(newGlyfData.subarray(0, writeOffset));\n }\n glyf.data.set(newGlyfData.subarray(0, firstEntryLength), writeOffset);\n itemEncode(\n loca.data,\n locaData.length - itemSize,\n writeOffset + firstEntryLength\n );\n } else {\n glyf.data = newGlyfData.subarray(0, writeOffset);\n }\n return {\n missingGlyphs,\n maxSizeOfInstructions,\n };\n }\n\n function readPostScriptTable(post, propertiesObj, maxpNumGlyphs) {\n const start = (font.start || 0) + post.offset;\n font.pos = start;\n\n const length = post.length,\n end = start + length;\n const version = font.getInt32();\n // skip rest to the tables\n font.skip(28);\n\n let glyphNames;\n let valid = true;\n let i;\n\n switch (version) {\n case 0x00010000:\n glyphNames = MacStandardGlyphOrdering;\n break;\n case 0x00020000:\n const numGlyphs = font.getUint16();\n if (numGlyphs !== maxpNumGlyphs) {\n valid = false;\n break;\n }\n const glyphNameIndexes = [];\n for (i = 0; i < numGlyphs; ++i) {\n const index = font.getUint16();\n if (index >= 32768) {\n valid = false;\n break;\n }\n glyphNameIndexes.push(index);\n }\n if (!valid) {\n break;\n }\n const customNames = [],\n strBuf = [];\n while (font.pos < end) {\n const stringLength = font.getByte();\n strBuf.length = stringLength;\n for (i = 0; i < stringLength; ++i) {\n strBuf[i] = String.fromCharCode(font.getByte());\n }\n customNames.push(strBuf.join(\"\"));\n }\n glyphNames = [];\n for (i = 0; i < numGlyphs; ++i) {\n const j = glyphNameIndexes[i];\n if (j < 258) {\n glyphNames.push(MacStandardGlyphOrdering[j]);\n continue;\n }\n glyphNames.push(customNames[j - 258]);\n }\n break;\n case 0x00030000:\n break;\n default:\n warn(\"Unknown/unsupported post table version \" + version);\n valid = false;\n if (propertiesObj.defaultEncoding) {\n glyphNames = propertiesObj.defaultEncoding;\n }\n break;\n }\n propertiesObj.glyphNames = glyphNames;\n return valid;\n }\n\n function readNameTable(nameTable) {\n const start = (font.start || 0) + nameTable.offset;\n font.pos = start;\n\n const names = [[], []],\n records = [];\n const length = nameTable.length,\n end = start + length;\n const format = font.getUint16();\n const FORMAT_0_HEADER_LENGTH = 6;\n if (format !== 0 || length < FORMAT_0_HEADER_LENGTH) {\n // unsupported name table format or table \"too\" small\n return [names, records];\n }\n const numRecords = font.getUint16();\n const stringsStart = font.getUint16();\n const NAME_RECORD_LENGTH = 12;\n let i, ii;\n\n for (i = 0; i < numRecords && font.pos + NAME_RECORD_LENGTH <= end; i++) {\n const r = {\n platform: font.getUint16(),\n encoding: font.getUint16(),\n language: font.getUint16(),\n name: font.getUint16(),\n length: font.getUint16(),\n offset: font.getUint16(),\n };\n // using only Macintosh and Windows platform/encoding names\n if (isMacNameRecord(r) || isWinNameRecord(r)) {\n records.push(r);\n }\n }\n for (i = 0, ii = records.length; i < ii; i++) {\n const record = records[i];\n if (record.length <= 0) {\n continue; // Nothing to process, ignoring.\n }\n const pos = start + stringsStart + record.offset;\n if (pos + record.length > end) {\n continue; // outside of name table, ignoring\n }\n font.pos = pos;\n const nameIndex = record.name;\n if (record.encoding) {\n // unicode\n let str = \"\";\n for (let j = 0, jj = record.length; j < jj; j += 2) {\n str += String.fromCharCode(font.getUint16());\n }\n names[1][nameIndex] = str;\n } else {\n names[0][nameIndex] = font.getString(record.length);\n }\n }\n return [names, records];\n }\n\n // prettier-ignore\n const TTOpsStackDeltas = [\n 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5,\n -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, -1, -1,\n 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0, -1, -1,\n 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2,\n 0, 0, -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1,\n -1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 0, -999, -1, -1,\n -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n -2, -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1,\n -999, -2, -2, 0, 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2];\n // 0xC0-DF == -1 and 0xE0-FF == -2\n\n function sanitizeTTProgram(table, ttContext) {\n let data = table.data;\n let i = 0,\n j,\n n,\n b,\n funcId,\n pc,\n lastEndf = 0,\n lastDeff = 0;\n const stack = [];\n const callstack = [];\n const functionsCalled = [];\n let tooComplexToFollowFunctions = ttContext.tooComplexToFollowFunctions;\n let inFDEF = false,\n ifLevel = 0,\n inELSE = 0;\n for (let ii = data.length; i < ii; ) {\n const op = data[i++];\n // The TrueType instruction set docs can be found at\n // https://developer.apple.com/fonts/TTRefMan/RM05/Chap5.html\n if (op === 0x40) {\n // NPUSHB - pushes n bytes\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if (op === 0x41) {\n // NPUSHW - pushes n words\n n = data[i++];\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push((b << 8) | data[i++]);\n }\n }\n } else if ((op & 0xf8) === 0xb0) {\n // PUSHB - pushes bytes\n n = op - 0xb0 + 1;\n if (inFDEF || inELSE) {\n i += n;\n } else {\n for (j = 0; j < n; j++) {\n stack.push(data[i++]);\n }\n }\n } else if ((op & 0xf8) === 0xb8) {\n // PUSHW - pushes words\n n = op - 0xb8 + 1;\n if (inFDEF || inELSE) {\n i += n * 2;\n } else {\n for (j = 0; j < n; j++) {\n b = data[i++];\n stack.push((b << 8) | data[i++]);\n }\n }\n } else if (op === 0x2b && !tooComplexToFollowFunctions) {\n // CALL\n if (!inFDEF && !inELSE) {\n // collecting information about which functions are used\n funcId = stack.at(-1);\n if (isNaN(funcId)) {\n info(\"TT: CALL empty stack (or invalid entry).\");\n } else {\n ttContext.functionsUsed[funcId] = true;\n if (funcId in ttContext.functionsStackDeltas) {\n const newStackLength =\n stack.length + ttContext.functionsStackDeltas[funcId];\n if (newStackLength < 0) {\n warn(\"TT: CALL invalid functions stack delta.\");\n ttContext.hintsValid = false;\n return;\n }\n stack.length = newStackLength;\n } else if (\n funcId in ttContext.functionsDefined &&\n !functionsCalled.includes(funcId)\n ) {\n callstack.push({ data, i, stackTop: stack.length - 1 });\n functionsCalled.push(funcId);\n pc = ttContext.functionsDefined[funcId];\n if (!pc) {\n warn(\"TT: CALL non-existent function\");\n ttContext.hintsValid = false;\n return;\n }\n data = pc.data;\n i = pc.i;\n }\n }\n }\n } else if (op === 0x2c && !tooComplexToFollowFunctions) {\n // FDEF\n if (inFDEF || inELSE) {\n warn(\"TT: nested FDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n inFDEF = true;\n // collecting information about which functions are defined\n lastDeff = i;\n funcId = stack.pop();\n ttContext.functionsDefined[funcId] = { data, i };\n } else if (op === 0x2d) {\n // ENDF - end of function\n if (inFDEF) {\n inFDEF = false;\n lastEndf = i;\n } else {\n pc = callstack.pop();\n if (!pc) {\n warn(\"TT: ENDF bad stack\");\n ttContext.hintsValid = false;\n return;\n }\n funcId = functionsCalled.pop();\n data = pc.data;\n i = pc.i;\n ttContext.functionsStackDeltas[funcId] = stack.length - pc.stackTop;\n }\n } else if (op === 0x89) {\n // IDEF - instruction definition\n if (inFDEF || inELSE) {\n warn(\"TT: nested IDEFs not allowed\");\n tooComplexToFollowFunctions = true;\n }\n inFDEF = true;\n // recording it as a function to track ENDF\n lastDeff = i;\n } else if (op === 0x58) {\n // IF\n ++ifLevel;\n } else if (op === 0x1b) {\n // ELSE\n inELSE = ifLevel;\n } else if (op === 0x59) {\n // EIF\n if (inELSE === ifLevel) {\n inELSE = 0;\n }\n --ifLevel;\n } else if (op === 0x1c) {\n // JMPR\n if (!inFDEF && !inELSE) {\n const offset = stack.at(-1);\n // only jumping forward to prevent infinite loop\n if (offset > 0) {\n i += offset - 1;\n }\n }\n }\n // Adjusting stack not extactly, but just enough to get function id\n if (!inFDEF && !inELSE) {\n let stackDelta = 0;\n if (op <= 0x8e) {\n stackDelta = TTOpsStackDeltas[op];\n } else if (op >= 0xc0 && op <= 0xdf) {\n stackDelta = -1;\n } else if (op >= 0xe0) {\n stackDelta = -2;\n }\n if (op >= 0x71 && op <= 0x75) {\n n = stack.pop();\n if (!isNaN(n)) {\n stackDelta = -n * 2;\n }\n }\n while (stackDelta < 0 && stack.length > 0) {\n stack.pop();\n stackDelta++;\n }\n while (stackDelta > 0) {\n stack.push(NaN); // pushing any number into stack\n stackDelta--;\n }\n }\n }\n ttContext.tooComplexToFollowFunctions = tooComplexToFollowFunctions;\n const content = [data];\n if (i > data.length) {\n content.push(new Uint8Array(i - data.length));\n }\n if (lastDeff > lastEndf) {\n warn(\"TT: complementing a missing function tail\");\n // new function definition started, but not finished\n // complete function by [CLEAR, ENDF]\n content.push(new Uint8Array([0x22, 0x2d]));\n }\n foldTTTable(table, content);\n }\n\n function checkInvalidFunctions(ttContext, maxFunctionDefs) {\n if (ttContext.tooComplexToFollowFunctions) {\n return;\n }\n if (ttContext.functionsDefined.length > maxFunctionDefs) {\n warn(\"TT: more functions defined than expected\");\n ttContext.hintsValid = false;\n return;\n }\n for (let j = 0, jj = ttContext.functionsUsed.length; j < jj; j++) {\n if (j > maxFunctionDefs) {\n warn(\"TT: invalid function id: \" + j);\n ttContext.hintsValid = false;\n return;\n }\n if (ttContext.functionsUsed[j] && !ttContext.functionsDefined[j]) {\n warn(\"TT: undefined function: \" + j);\n ttContext.hintsValid = false;\n return;\n }\n }\n }\n\n function foldTTTable(table, content) {\n if (content.length > 1) {\n // concatenating the content items\n let newLength = 0;\n let j, jj;\n for (j = 0, jj = content.length; j < jj; j++) {\n newLength += content[j].length;\n }\n newLength = (newLength + 3) & ~3;\n const result = new Uint8Array(newLength);\n let pos = 0;\n for (j = 0, jj = content.length; j < jj; j++) {\n result.set(content[j], pos);\n pos += content[j].length;\n }\n table.data = result;\n table.length = newLength;\n }\n }\n\n function sanitizeTTPrograms(fpgm, prep, cvt, maxFunctionDefs) {\n const ttContext = {\n functionsDefined: [],\n functionsUsed: [],\n functionsStackDeltas: [],\n tooComplexToFollowFunctions: false,\n hintsValid: true,\n };\n if (fpgm) {\n sanitizeTTProgram(fpgm, ttContext);\n }\n if (prep) {\n sanitizeTTProgram(prep, ttContext);\n }\n if (fpgm) {\n checkInvalidFunctions(ttContext, maxFunctionDefs);\n }\n if (cvt && cvt.length & 1) {\n const cvtData = new Uint8Array(cvt.length + 1);\n cvtData.set(cvt.data);\n cvt.data = cvtData;\n }\n return ttContext.hintsValid;\n }\n\n // The following steps modify the original font data, making copy\n font = new Stream(new Uint8Array(font.getBytes()));\n\n let header, tables;\n if (isTrueTypeCollectionFile(font)) {\n const ttcData = readTrueTypeCollectionData(font, this.name);\n header = ttcData.header;\n tables = ttcData.tables;\n } else {\n header = readOpenTypeHeader(font);\n tables = readTables(font, header.numTables);\n }\n let cff, cffFile;\n\n const isTrueType = !tables[\"CFF \"];\n if (!isTrueType) {\n const isComposite =\n properties.composite &&\n (properties.cidToGidMap?.length > 0 ||\n !(properties.cMap instanceof IdentityCMap));\n // OpenType font (skip composite fonts with non-default glyph mapping).\n if (\n (header.version === \"OTTO\" && !isComposite) ||\n !tables.head ||\n !tables.hhea ||\n !tables.maxp ||\n !tables.post\n ) {\n // No major tables: throwing everything at `CFFFont`.\n cffFile = new Stream(tables[\"CFF \"].data);\n cff = new CFFFont(cffFile, properties);\n\n adjustWidths(properties);\n\n return this.convert(name, cff, properties);\n }\n\n delete tables.glyf;\n delete tables.loca;\n delete tables.fpgm;\n delete tables.prep;\n delete tables[\"cvt \"];\n this.isOpenType = true;\n } else {\n if (!tables.loca) {\n throw new FormatError('Required \"loca\" table is not found');\n }\n if (!tables.glyf) {\n warn('Required \"glyf\" table is not found -- trying to recover.');\n // Note: We use `sanitizeGlyphLocations` to add dummy glyf data below.\n tables.glyf = {\n tag: \"glyf\",\n data: new Uint8Array(0),\n };\n }\n this.isOpenType = false;\n }\n\n if (!tables.maxp) {\n throw new FormatError('Required \"maxp\" table is not found');\n }\n\n font.pos = (font.start || 0) + tables.maxp.offset;\n let version = font.getInt32();\n const numGlyphs = font.getUint16();\n\n if (version !== 0x00010000 && version !== 0x00005000) {\n // https://learn.microsoft.com/en-us/typography/opentype/spec/maxp\n if (tables.maxp.length === 6) {\n version = 0x0005000;\n } else if (tables.maxp.length >= 32) {\n version = 0x00010000;\n } else {\n throw new FormatError(`\"maxp\" table has a wrong version number`);\n }\n writeUint32(tables.maxp.data, 0, version);\n }\n\n if (properties.scaleFactors?.length === numGlyphs && isTrueType) {\n const { scaleFactors } = properties;\n const isGlyphLocationsLong = int16(\n tables.head.data[50],\n tables.head.data[51]\n );\n\n const glyphs = new GlyfTable({\n glyfTable: tables.glyf.data,\n isGlyphLocationsLong,\n locaTable: tables.loca.data,\n numGlyphs,\n });\n glyphs.scale(scaleFactors);\n\n const { glyf, loca, isLocationLong } = glyphs.write();\n tables.glyf.data = glyf;\n tables.loca.data = loca;\n\n if (isLocationLong !== !!isGlyphLocationsLong) {\n tables.head.data[50] = 0;\n tables.head.data[51] = isLocationLong ? 1 : 0;\n }\n\n const metrics = tables.hmtx.data;\n\n for (let i = 0; i < numGlyphs; i++) {\n const j = 4 * i;\n const advanceWidth = Math.round(\n scaleFactors[i] * int16(metrics[j], metrics[j + 1])\n );\n metrics[j] = (advanceWidth >> 8) & 0xff;\n metrics[j + 1] = advanceWidth & 0xff;\n const lsb = Math.round(\n scaleFactors[i] * signedInt16(metrics[j + 2], metrics[j + 3])\n );\n writeSignedInt16(metrics, j + 2, lsb);\n }\n }\n\n // Glyph 0 is duplicated and appended.\n let numGlyphsOut = numGlyphs + 1;\n let dupFirstEntry = true;\n if (numGlyphsOut > 0xffff) {\n dupFirstEntry = false;\n numGlyphsOut = numGlyphs;\n warn(\"Not enough space in glyfs to duplicate first glyph.\");\n }\n let maxFunctionDefs = 0;\n let maxSizeOfInstructions = 0;\n if (version >= 0x00010000 && tables.maxp.length >= 32) {\n // maxZones can be invalid\n font.pos += 8;\n const maxZones = font.getUint16();\n if (maxZones > 2) {\n // reset to 2 if font has invalid maxZones\n tables.maxp.data[14] = 0;\n tables.maxp.data[15] = 2;\n }\n font.pos += 4;\n maxFunctionDefs = font.getUint16();\n font.pos += 4;\n maxSizeOfInstructions = font.getUint16();\n }\n\n tables.maxp.data[4] = numGlyphsOut >> 8;\n tables.maxp.data[5] = numGlyphsOut & 255;\n\n const hintsValid = sanitizeTTPrograms(\n tables.fpgm,\n tables.prep,\n tables[\"cvt \"],\n maxFunctionDefs\n );\n if (!hintsValid) {\n delete tables.fpgm;\n delete tables.prep;\n delete tables[\"cvt \"];\n }\n\n // Ensure the hmtx table contains the advance width and\n // sidebearings information for numGlyphs in the maxp table\n sanitizeMetrics(\n font,\n tables.hhea,\n tables.hmtx,\n tables.head,\n numGlyphsOut,\n dupFirstEntry\n );\n\n if (!tables.head) {\n throw new FormatError('Required \"head\" table is not found');\n }\n\n sanitizeHead(tables.head, numGlyphs, isTrueType ? tables.loca.length : 0);\n\n let missingGlyphs = Object.create(null);\n if (isTrueType) {\n const isGlyphLocationsLong = int16(\n tables.head.data[50],\n tables.head.data[51]\n );\n const glyphsInfo = sanitizeGlyphLocations(\n tables.loca,\n tables.glyf,\n numGlyphs,\n isGlyphLocationsLong,\n hintsValid,\n dupFirstEntry,\n maxSizeOfInstructions\n );\n missingGlyphs = glyphsInfo.missingGlyphs;\n\n // Some fonts have incorrect maxSizeOfInstructions values, so we use\n // the computed value instead.\n if (version >= 0x00010000 && tables.maxp.length >= 32) {\n tables.maxp.data[26] = glyphsInfo.maxSizeOfInstructions >> 8;\n tables.maxp.data[27] = glyphsInfo.maxSizeOfInstructions & 255;\n }\n }\n if (!tables.hhea) {\n throw new FormatError('Required \"hhea\" table is not found');\n }\n\n // Sanitizer reduces the glyph advanceWidth to the maxAdvanceWidth\n // Sometimes it's 0. That needs to be fixed\n if (tables.hhea.data[10] === 0 && tables.hhea.data[11] === 0) {\n tables.hhea.data[10] = 0xff;\n tables.hhea.data[11] = 0xff;\n }\n\n // Extract some more font properties from the OpenType head and\n // hhea tables; yMin and descent value are always negative.\n const metricsOverride = {\n unitsPerEm: int16(tables.head.data[18], tables.head.data[19]),\n yMax: signedInt16(tables.head.data[42], tables.head.data[43]),\n yMin: signedInt16(tables.head.data[38], tables.head.data[39]),\n ascent: signedInt16(tables.hhea.data[4], tables.hhea.data[5]),\n descent: signedInt16(tables.hhea.data[6], tables.hhea.data[7]),\n lineGap: signedInt16(tables.hhea.data[8], tables.hhea.data[9]),\n };\n\n // PDF FontDescriptor metrics lie -- using data from actual font.\n this.ascent = metricsOverride.ascent / metricsOverride.unitsPerEm;\n this.descent = metricsOverride.descent / metricsOverride.unitsPerEm;\n this.lineGap = metricsOverride.lineGap / metricsOverride.unitsPerEm;\n\n if (this.cssFontInfo?.lineHeight) {\n this.lineHeight = this.cssFontInfo.metrics.lineHeight;\n this.lineGap = this.cssFontInfo.metrics.lineGap;\n } else {\n this.lineHeight = this.ascent - this.descent + this.lineGap;\n }\n\n // The 'post' table has glyphs names.\n if (tables.post) {\n readPostScriptTable(tables.post, properties, numGlyphs);\n }\n\n // The original 'post' table is not needed, replace it.\n tables.post = {\n tag: \"post\",\n data: createPostTable(properties),\n };\n\n const charCodeToGlyphId = [];\n\n // Helper function to try to skip mapping of empty glyphs.\n function hasGlyph(glyphId) {\n return !missingGlyphs[glyphId];\n }\n\n if (properties.composite) {\n const cidToGidMap = properties.cidToGidMap || [];\n const isCidToGidMapEmpty = cidToGidMap.length === 0;\n\n properties.cMap.forEach(function (charCode, cid) {\n if (typeof cid === \"string\") {\n cid = convertCidString(charCode, cid, /* shouldThrow = */ true);\n }\n if (cid > 0xffff) {\n throw new FormatError(\"Max size of CID is 65,535\");\n }\n let glyphId = -1;\n if (isCidToGidMapEmpty) {\n glyphId = cid;\n } else if (cidToGidMap[cid] !== undefined) {\n glyphId = cidToGidMap[cid];\n }\n\n if (glyphId >= 0 && glyphId < numGlyphs && hasGlyph(glyphId)) {\n charCodeToGlyphId[charCode] = glyphId;\n }\n });\n } else {\n // Most of the following logic in this code branch is based on the\n // 9.6.6.4 of the PDF spec.\n const cmapTable = readCmapTable(\n tables.cmap,\n font,\n this.isSymbolicFont,\n properties.hasEncoding\n );\n const cmapPlatformId = cmapTable.platformId;\n const cmapEncodingId = cmapTable.encodingId;\n const cmapMappings = cmapTable.mappings;\n let baseEncoding = [],\n forcePostTable = false;\n if (\n properties.hasEncoding &&\n (properties.baseEncodingName === \"MacRomanEncoding\" ||\n properties.baseEncodingName === \"WinAnsiEncoding\")\n ) {\n baseEncoding = getEncoding(properties.baseEncodingName);\n }\n\n // If the font has an encoding and is not symbolic then follow the rules\n // in section 9.6.6.4 of the spec on how to map 3,1 and 1,0 cmaps.\n if (\n properties.hasEncoding &&\n !this.isSymbolicFont &&\n ((cmapPlatformId === 3 && cmapEncodingId === 1) ||\n (cmapPlatformId === 1 && cmapEncodingId === 0))\n ) {\n const glyphsUnicodeMap = getGlyphsUnicode();\n for (let charCode = 0; charCode < 256; charCode++) {\n let glyphName;\n if (this.differences[charCode] !== undefined) {\n glyphName = this.differences[charCode];\n } else if (baseEncoding.length && baseEncoding[charCode] !== \"\") {\n glyphName = baseEncoding[charCode];\n } else {\n glyphName = StandardEncoding[charCode];\n }\n if (!glyphName) {\n continue;\n }\n // Ensure that non-standard glyph names are resolved to valid ones.\n const standardGlyphName = recoverGlyphName(\n glyphName,\n glyphsUnicodeMap\n );\n\n let unicodeOrCharCode;\n if (cmapPlatformId === 3 && cmapEncodingId === 1) {\n unicodeOrCharCode = glyphsUnicodeMap[standardGlyphName];\n } else if (cmapPlatformId === 1 && cmapEncodingId === 0) {\n // TODO: the encoding needs to be updated with mac os table.\n unicodeOrCharCode = MacRomanEncoding.indexOf(standardGlyphName);\n }\n\n if (unicodeOrCharCode === undefined) {\n // Not a valid glyph name, fallback to using the /ToUnicode map\n // when no post-table exists (fixes issue13316_reduced.pdf).\n if (\n !properties.glyphNames &&\n properties.hasIncludedToUnicodeMap &&\n !(this.toUnicode instanceof IdentityToUnicodeMap)\n ) {\n const unicode = this.toUnicode.get(charCode);\n if (unicode) {\n unicodeOrCharCode = unicode.codePointAt(0);\n }\n }\n\n if (unicodeOrCharCode === undefined) {\n continue; // No valid glyph mapping found.\n }\n }\n\n for (const mapping of cmapMappings) {\n if (mapping.charCode !== unicodeOrCharCode) {\n continue;\n }\n charCodeToGlyphId[charCode] = mapping.glyphId;\n break;\n }\n }\n } else if (cmapPlatformId === 0) {\n // Default Unicode semantics, use the charcodes as is.\n for (const mapping of cmapMappings) {\n charCodeToGlyphId[mapping.charCode] = mapping.glyphId;\n }\n // Always prefer the BaseEncoding/Differences arrays, when they exist\n // (fixes issue13433.pdf).\n forcePostTable = true;\n } else {\n // When there is only a (1, 0) cmap table, the char code is a single\n // byte and it is used directly as the char code.\n\n // When a (3, 0) cmap table is present, it is used instead but the\n // spec has special rules for char codes in the range of 0xF000 to\n // 0xF0FF and it says the (3, 0) table should map the values from\n // the (1, 0) table by prepending 0xF0 to the char codes. To reverse\n // this, the upper bits of the char code are cleared, but only for the\n // special range since some PDFs have char codes outside of this range\n // (e.g. 0x2013) which when masked would overwrite other values in the\n // cmap.\n for (const mapping of cmapMappings) {\n let charCode = mapping.charCode;\n if (\n cmapPlatformId === 3 &&\n charCode >= 0xf000 &&\n charCode <= 0xf0ff\n ) {\n charCode &= 0xff;\n }\n charCodeToGlyphId[charCode] = mapping.glyphId;\n }\n }\n\n // Last, try to map any missing charcodes using the post table.\n if (\n properties.glyphNames &&\n (baseEncoding.length || this.differences.length)\n ) {\n for (let i = 0; i < 256; ++i) {\n if (!forcePostTable && charCodeToGlyphId[i] !== undefined) {\n continue;\n }\n const glyphName = this.differences[i] || baseEncoding[i];\n if (!glyphName) {\n continue;\n }\n const glyphId = properties.glyphNames.indexOf(glyphName);\n if (glyphId > 0 && hasGlyph(glyphId)) {\n charCodeToGlyphId[i] = glyphId;\n }\n }\n }\n }\n\n if (charCodeToGlyphId.length === 0) {\n // defines at least one glyph\n charCodeToGlyphId[0] = 0;\n }\n\n // Typically glyph 0 is duplicated and the mapping must be updated, but if\n // there isn't enough room to duplicate, the glyph id is left the same. In\n // this case, glyph 0 may not work correctly, but that is better than\n // having the whole font fail.\n let glyphZeroId = numGlyphsOut - 1;\n if (!dupFirstEntry) {\n glyphZeroId = 0;\n }\n\n // When `cssFontInfo` is set, the font is used to render text in the HTML\n // view (e.g. with Xfa) so nothing must be moved in the private use area.\n if (!properties.cssFontInfo) {\n // Converting glyphs and ids into font's cmap table\n const newMapping = adjustMapping(\n charCodeToGlyphId,\n hasGlyph,\n glyphZeroId,\n this.toUnicode\n );\n this.toFontChar = newMapping.toFontChar;\n tables.cmap = {\n tag: \"cmap\",\n data: createCmapTable(\n newMapping.charCodeToGlyphId,\n newMapping.toUnicodeExtraMap,\n numGlyphsOut\n ),\n };\n\n if (!tables[\"OS/2\"] || !validateOS2Table(tables[\"OS/2\"], font)) {\n tables[\"OS/2\"] = {\n tag: \"OS/2\",\n data: createOS2Table(\n properties,\n newMapping.charCodeToGlyphId,\n metricsOverride\n ),\n };\n }\n }\n\n if (!isTrueType) {\n try {\n // Trying to repair CFF file\n cffFile = new Stream(tables[\"CFF \"].data);\n const parser = new CFFParser(\n cffFile,\n properties,\n SEAC_ANALYSIS_ENABLED\n );\n cff = parser.parse();\n cff.duplicateFirstGlyph();\n const compiler = new CFFCompiler(cff);\n tables[\"CFF \"].data = compiler.compile();\n } catch {\n warn(\"Failed to compile font \" + properties.loadedName);\n }\n }\n\n // Re-creating 'name' table\n if (!tables.name) {\n tables.name = {\n tag: \"name\",\n data: createNameTable(this.name),\n };\n } else {\n // ... using existing 'name' table as prototype\n const [namePrototype, nameRecords] = readNameTable(tables.name);\n\n tables.name.data = createNameTable(name, namePrototype);\n this.psName = namePrototype[0][6] || null;\n\n if (!properties.composite) {\n // For TrueType fonts that do not include `ToUnicode` or `Encoding`\n // data, attempt to use the name-table to improve text selection.\n adjustTrueTypeToUnicode(properties, this.isSymbolicFont, nameRecords);\n }\n }\n\n const builder = new OpenTypeFileBuilder(header.version);\n for (const tableTag in tables) {\n builder.addTable(tableTag, tables[tableTag].data);\n }\n return builder.toArray();\n }\n\n convert(fontName, font, properties) {\n // TODO: Check the charstring widths to determine this.\n properties.fixedPitch = false;\n\n if (properties.builtInEncoding) {\n // For Type1 fonts that do not include either `ToUnicode` or `Encoding`\n // data, attempt to use the `builtInEncoding` to improve text selection.\n adjustType1ToUnicode(properties, properties.builtInEncoding);\n }\n\n // Type 1 fonts have a notdef inserted at the beginning, so glyph 0\n // becomes glyph 1. In a CFF font glyph 0 is appended to the end of the\n // char strings.\n let glyphZeroId = 1;\n if (font instanceof CFFFont) {\n glyphZeroId = font.numGlyphs - 1;\n }\n const mapping = font.getGlyphMapping(properties);\n let newMapping = null;\n let newCharCodeToGlyphId = mapping;\n let toUnicodeExtraMap = null;\n\n // When `cssFontInfo` is set, the font is used to render text in the HTML\n // view (e.g. with Xfa) so nothing must be moved in the private use area.\n if (!properties.cssFontInfo) {\n newMapping = adjustMapping(\n mapping,\n font.hasGlyphId.bind(font),\n glyphZeroId,\n this.toUnicode\n );\n this.toFontChar = newMapping.toFontChar;\n newCharCodeToGlyphId = newMapping.charCodeToGlyphId;\n toUnicodeExtraMap = newMapping.toUnicodeExtraMap;\n }\n const numGlyphs = font.numGlyphs;\n\n function getCharCodes(charCodeToGlyphId, glyphId) {\n let charCodes = null;\n for (const charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n (charCodes ||= []).push(charCode | 0);\n }\n }\n return charCodes;\n }\n\n function createCharCode(charCodeToGlyphId, glyphId) {\n for (const charCode in charCodeToGlyphId) {\n if (glyphId === charCodeToGlyphId[charCode]) {\n return charCode | 0;\n }\n }\n newMapping.charCodeToGlyphId[newMapping.nextAvailableFontCharCode] =\n glyphId;\n return newMapping.nextAvailableFontCharCode++;\n }\n\n const seacs = font.seacs;\n if (newMapping && SEAC_ANALYSIS_ENABLED && seacs?.length) {\n const matrix = properties.fontMatrix || FONT_IDENTITY_MATRIX;\n const charset = font.getCharset();\n const seacMap = Object.create(null);\n for (let glyphId in seacs) {\n glyphId |= 0;\n const seac = seacs[glyphId];\n const baseGlyphName = StandardEncoding[seac[2]];\n const accentGlyphName = StandardEncoding[seac[3]];\n const baseGlyphId = charset.indexOf(baseGlyphName);\n const accentGlyphId = charset.indexOf(accentGlyphName);\n if (baseGlyphId < 0 || accentGlyphId < 0) {\n continue;\n }\n const accentOffset = {\n x: seac[0] * matrix[0] + seac[1] * matrix[2] + matrix[4],\n y: seac[0] * matrix[1] + seac[1] * matrix[3] + matrix[5],\n };\n\n const charCodes = getCharCodes(mapping, glyphId);\n if (!charCodes) {\n // There's no point in mapping it if the char code was never mapped\n // to begin with.\n continue;\n }\n for (const charCode of charCodes) {\n // Find a fontCharCode that maps to the base and accent glyphs.\n // If one doesn't exists, create it.\n const charCodeToGlyphId = newMapping.charCodeToGlyphId;\n const baseFontCharCode = createCharCode(\n charCodeToGlyphId,\n baseGlyphId\n );\n const accentFontCharCode = createCharCode(\n charCodeToGlyphId,\n accentGlyphId\n );\n seacMap[charCode] = {\n baseFontCharCode,\n accentFontCharCode,\n accentOffset,\n };\n }\n }\n properties.seacMap = seacMap;\n }\n\n const unitsPerEm = 1 / (properties.fontMatrix || FONT_IDENTITY_MATRIX)[0];\n\n const builder = new OpenTypeFileBuilder(\"\\x4F\\x54\\x54\\x4F\");\n // PostScript Font Program\n builder.addTable(\"CFF \", font.data);\n // OS/2 and Windows Specific metrics\n builder.addTable(\"OS/2\", createOS2Table(properties, newCharCodeToGlyphId));\n // Character to glyphs mapping\n builder.addTable(\n \"cmap\",\n createCmapTable(newCharCodeToGlyphId, toUnicodeExtraMap, numGlyphs)\n );\n // Font header\n builder.addTable(\n \"head\",\n \"\\x00\\x01\\x00\\x00\" + // Version number\n \"\\x00\\x00\\x10\\x00\" + // fontRevision\n \"\\x00\\x00\\x00\\x00\" + // checksumAdjustement\n \"\\x5F\\x0F\\x3C\\xF5\" + // magicNumber\n \"\\x00\\x00\" + // Flags\n safeString16(unitsPerEm) + // unitsPerEM\n \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + // creation date\n \"\\x00\\x00\\x00\\x00\\x9e\\x0b\\x7e\\x27\" + // modifification date\n \"\\x00\\x00\" + // xMin\n safeString16(properties.descent) + // yMin\n \"\\x0F\\xFF\" + // xMax\n safeString16(properties.ascent) + // yMax\n string16(properties.italicAngle ? 2 : 0) + // macStyle\n \"\\x00\\x11\" + // lowestRecPPEM\n \"\\x00\\x00\" + // fontDirectionHint\n \"\\x00\\x00\" + // indexToLocFormat\n \"\\x00\\x00\"\n ); // glyphDataFormat\n\n // Horizontal header\n builder.addTable(\n \"hhea\",\n \"\\x00\\x01\\x00\\x00\" + // Version number\n safeString16(properties.ascent) + // Typographic Ascent\n safeString16(properties.descent) + // Typographic Descent\n \"\\x00\\x00\" + // Line Gap\n \"\\xFF\\xFF\" + // advanceWidthMax\n \"\\x00\\x00\" + // minLeftSidebearing\n \"\\x00\\x00\" + // minRightSidebearing\n \"\\x00\\x00\" + // xMaxExtent\n safeString16(properties.capHeight) + // caretSlopeRise\n safeString16(Math.tan(properties.italicAngle) * properties.xHeight) + // caretSlopeRun\n \"\\x00\\x00\" + // caretOffset\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // -reserved-\n \"\\x00\\x00\" + // metricDataFormat\n string16(numGlyphs)\n ); // Number of HMetrics\n\n // Horizontal metrics\n builder.addTable(\n \"hmtx\",\n (function fontFieldsHmtx() {\n const charstrings = font.charstrings;\n const cffWidths = font.cff ? font.cff.widths : null;\n let hmtx = \"\\x00\\x00\\x00\\x00\"; // Fake .notdef\n for (let i = 1, ii = numGlyphs; i < ii; i++) {\n let width = 0;\n if (charstrings) {\n const charstring = charstrings[i - 1];\n width = \"width\" in charstring ? charstring.width : 0;\n } else if (cffWidths) {\n width = Math.ceil(cffWidths[i] || 0);\n }\n hmtx += string16(width) + string16(0);\n }\n return hmtx;\n })()\n );\n\n // Maximum profile\n builder.addTable(\n \"maxp\",\n \"\\x00\\x00\\x50\\x00\" + string16(numGlyphs) // Version number\n ); // Num of glyphs\n\n // Naming tables\n builder.addTable(\"name\", createNameTable(fontName));\n\n // PostScript information\n builder.addTable(\"post\", createPostTable(properties));\n\n return builder.toArray();\n }\n\n get spaceWidth() {\n // trying to estimate space character width\n const possibleSpaceReplacements = [\"space\", \"minus\", \"one\", \"i\", \"I\"];\n let width;\n for (const glyphName of possibleSpaceReplacements) {\n // if possible, getting width by glyph name\n if (glyphName in this.widths) {\n width = this.widths[glyphName];\n break;\n }\n const glyphsUnicodeMap = getGlyphsUnicode();\n const glyphUnicode = glyphsUnicodeMap[glyphName];\n // finding the charcode via unicodeToCID map\n let charcode = 0;\n if (this.composite && this.cMap.contains(glyphUnicode)) {\n charcode = this.cMap.lookup(glyphUnicode);\n\n if (typeof charcode === \"string\") {\n charcode = convertCidString(glyphUnicode, charcode);\n }\n }\n // ... via toUnicode map\n if (!charcode && this.toUnicode) {\n charcode = this.toUnicode.charCodeOf(glyphUnicode);\n }\n // setting it to unicode if negative or undefined\n if (charcode <= 0) {\n charcode = glyphUnicode;\n }\n // trying to get width via charcode\n width = this.widths[charcode];\n if (width) {\n break; // the non-zero width found\n }\n }\n return shadow(this, \"spaceWidth\", width || this.defaultWidth);\n }\n\n /**\n * @private\n */\n _charToGlyph(charcode, isSpace = false) {\n let glyph = this._glyphCache[charcode];\n // All `Glyph`-properties, except `isSpace` in multi-byte strings,\n // depend indirectly on the `charcode`.\n if (glyph?.isSpace === isSpace) {\n return glyph;\n }\n let fontCharCode, width, operatorListId;\n\n let widthCode = charcode;\n if (this.cMap?.contains(charcode)) {\n widthCode = this.cMap.lookup(charcode);\n\n if (typeof widthCode === \"string\") {\n widthCode = convertCidString(charcode, widthCode);\n }\n }\n width = this.widths[widthCode];\n if (typeof width !== \"number\") {\n width = this.defaultWidth;\n }\n const vmetric = this.vmetrics?.[widthCode];\n\n let unicode = this.toUnicode.get(charcode) || charcode;\n if (typeof unicode === \"number\") {\n unicode = String.fromCharCode(unicode);\n }\n\n let isInFont = this.toFontChar[charcode] !== undefined;\n // First try the toFontChar map, if it's not there then try falling\n // back to the char code.\n fontCharCode = this.toFontChar[charcode] || charcode;\n if (this.missingFile) {\n const glyphName =\n this.differences[charcode] || this.defaultEncoding[charcode];\n if (\n (glyphName === \".notdef\" || glyphName === \"\") &&\n this.type === \"Type1\"\n ) {\n // .notdef glyphs should be invisible in non-embedded Type1 fonts, so\n // replace them with spaces.\n fontCharCode = 0x20;\n }\n fontCharCode = mapSpecialUnicodeValues(fontCharCode);\n }\n\n if (this.isType3Font) {\n // Font char code in this case is actually a glyph name.\n operatorListId = fontCharCode;\n }\n\n let accent = null;\n if (this.seacMap?.[charcode]) {\n isInFont = true;\n const seac = this.seacMap[charcode];\n fontCharCode = seac.baseFontCharCode;\n accent = {\n fontChar: String.fromCodePoint(seac.accentFontCharCode),\n offset: seac.accentOffset,\n };\n }\n\n let fontChar = \"\";\n if (typeof fontCharCode === \"number\") {\n if (fontCharCode <= 0x10ffff) {\n fontChar = String.fromCodePoint(fontCharCode);\n } else {\n warn(`charToGlyph - invalid fontCharCode: ${fontCharCode}`);\n }\n }\n\n glyph = new Glyph(\n charcode,\n fontChar,\n unicode,\n accent,\n width,\n vmetric,\n operatorListId,\n isSpace,\n isInFont\n );\n return (this._glyphCache[charcode] = glyph);\n }\n\n charsToGlyphs(chars) {\n // If we translated this string before, just grab it from the cache.\n let glyphs = this._charsCache[chars];\n if (glyphs) {\n return glyphs;\n }\n glyphs = [];\n\n if (this.cMap) {\n // Composite fonts have multi-byte strings, convert the string from\n // single-byte to multi-byte.\n const c = Object.create(null),\n ii = chars.length;\n let i = 0;\n while (i < ii) {\n this.cMap.readCharCode(chars, i, c);\n const { charcode, length } = c;\n i += length;\n // Space is char with code 0x20 and length 1 in multiple-byte codes.\n const glyph = this._charToGlyph(\n charcode,\n length === 1 && chars.charCodeAt(i - 1) === 0x20\n );\n glyphs.push(glyph);\n }\n } else {\n for (let i = 0, ii = chars.length; i < ii; ++i) {\n const charcode = chars.charCodeAt(i);\n const glyph = this._charToGlyph(charcode, charcode === 0x20);\n glyphs.push(glyph);\n }\n }\n\n // Enter the translated string into the cache.\n return (this._charsCache[chars] = glyphs);\n }\n\n /**\n * Chars can have different sizes (depends on the encoding).\n * @param {String} a string encoded with font encoding.\n * @returns {Array<Array<number>>} the positions of each char in the string.\n */\n getCharPositions(chars) {\n // This function doesn't use a cache because\n // it's called only when saving or printing.\n const positions = [];\n\n if (this.cMap) {\n const c = Object.create(null);\n let i = 0;\n while (i < chars.length) {\n this.cMap.readCharCode(chars, i, c);\n const length = c.length;\n positions.push([i, i + length]);\n i += length;\n }\n } else {\n for (let i = 0, ii = chars.length; i < ii; ++i) {\n positions.push([i, i + 1]);\n }\n }\n\n return positions;\n }\n\n get glyphCacheValues() {\n return Object.values(this._glyphCache);\n }\n\n /**\n * Encode a js string using font encoding.\n * The resulting array contains an encoded string at even positions\n * (can be empty) and a non-encoded one at odd positions.\n * @param {String} a js string.\n * @returns {Array<String>} an array of encoded strings or non-encoded ones.\n */\n encodeString(str) {\n const buffers = [];\n const currentBuf = [];\n\n // buffers will contain: encoded, non-encoded, encoded, ...\n // currentBuf is pushed in buffers each time there is a change.\n // So when buffers.length is odd then the last string is an encoded one\n // and currentBuf contains non-encoded chars.\n const hasCurrentBufErrors = () => buffers.length % 2 === 1;\n\n const getCharCode =\n this.toUnicode instanceof IdentityToUnicodeMap\n ? unicode => this.toUnicode.charCodeOf(unicode)\n : unicode => this.toUnicode.charCodeOf(String.fromCodePoint(unicode));\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const unicode = str.codePointAt(i);\n if (unicode > 0xd7ff && (unicode < 0xe000 || unicode > 0xfffd)) {\n // unicode is represented by two uint16\n i++;\n }\n if (this.toUnicode) {\n const charCode = getCharCode(unicode);\n if (charCode !== -1) {\n if (hasCurrentBufErrors()) {\n buffers.push(currentBuf.join(\"\"));\n currentBuf.length = 0;\n }\n const charCodeLength = this.cMap\n ? this.cMap.getCharCodeLength(charCode)\n : 1;\n for (let j = charCodeLength - 1; j >= 0; j--) {\n currentBuf.push(String.fromCharCode((charCode >> (8 * j)) & 0xff));\n }\n continue;\n }\n }\n\n // unicode can't be encoded\n if (!hasCurrentBufErrors()) {\n buffers.push(currentBuf.join(\"\"));\n currentBuf.length = 0;\n }\n currentBuf.push(String.fromCodePoint(unicode));\n }\n\n buffers.push(currentBuf.join(\"\"));\n\n return buffers;\n }\n}\n\nclass ErrorFont {\n constructor(error) {\n this.error = error;\n this.loadedName = \"g_font_error\";\n this.missingFile = true;\n }\n\n charsToGlyphs() {\n return [];\n }\n\n encodeString(chars) {\n return [chars];\n }\n\n exportData(extraProperties = false) {\n return { error: this.error };\n }\n}\n\nexport { ErrorFont, Font };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FormatError,\n info,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { MissingDataException } from \"./core_utils.js\";\n\nconst ShadingType = {\n FUNCTION_BASED: 1,\n AXIAL: 2,\n RADIAL: 3,\n FREE_FORM_MESH: 4,\n LATTICE_FORM_MESH: 5,\n COONS_PATCH_MESH: 6,\n TENSOR_PATCH_MESH: 7,\n};\n\nclass Pattern {\n constructor() {\n unreachable(\"Cannot initialize Pattern.\");\n }\n\n static parseShading(\n shading,\n xref,\n res,\n pdfFunctionFactory,\n localColorSpaceCache\n ) {\n const dict = shading instanceof BaseStream ? shading.dict : shading;\n const type = dict.get(\"ShadingType\");\n\n try {\n switch (type) {\n case ShadingType.AXIAL:\n case ShadingType.RADIAL:\n return new RadialAxialShading(\n dict,\n xref,\n res,\n pdfFunctionFactory,\n localColorSpaceCache\n );\n case ShadingType.FREE_FORM_MESH:\n case ShadingType.LATTICE_FORM_MESH:\n case ShadingType.COONS_PATCH_MESH:\n case ShadingType.TENSOR_PATCH_MESH:\n return new MeshShading(\n shading,\n xref,\n res,\n pdfFunctionFactory,\n localColorSpaceCache\n );\n default:\n throw new FormatError(\"Unsupported ShadingType: \" + type);\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(ex);\n return new DummyShading();\n }\n }\n}\n\nclass BaseShading {\n // A small number to offset the first/last color stops so we can insert ones\n // to support extend. Number.MIN_VALUE is too small and breaks the extend.\n static SMALL_NUMBER = 1e-6;\n\n constructor() {\n if (this.constructor === BaseShading) {\n unreachable(\"Cannot initialize BaseShading.\");\n }\n }\n\n getIR() {\n unreachable(\"Abstract method `getIR` called.\");\n }\n}\n\n// Radial and axial shading have very similar implementations\n// If needed, the implementations can be broken into two classes.\nclass RadialAxialShading extends BaseShading {\n constructor(dict, xref, resources, pdfFunctionFactory, localColorSpaceCache) {\n super();\n this.coordsArr = dict.getArray(\"Coords\");\n this.shadingType = dict.get(\"ShadingType\");\n const cs = ColorSpace.parse({\n cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n const bbox = dict.getArray(\"BBox\");\n this.bbox =\n Array.isArray(bbox) && bbox.length === 4\n ? Util.normalizeRect(bbox)\n : null;\n\n let t0 = 0.0,\n t1 = 1.0;\n if (dict.has(\"Domain\")) {\n const domainArr = dict.getArray(\"Domain\");\n t0 = domainArr[0];\n t1 = domainArr[1];\n }\n\n let extendStart = false,\n extendEnd = false;\n if (dict.has(\"Extend\")) {\n const extendArr = dict.getArray(\"Extend\");\n extendStart = extendArr[0];\n extendEnd = extendArr[1];\n }\n\n if (\n this.shadingType === ShadingType.RADIAL &&\n (!extendStart || !extendEnd)\n ) {\n // Radial gradient only currently works if either circle is fully within\n // the other circle.\n const [x1, y1, r1, x2, y2, r2] = this.coordsArr;\n const distance = Math.hypot(x1 - x2, y1 - y2);\n if (r1 <= r2 + distance && r2 <= r1 + distance) {\n warn(\"Unsupported radial gradient.\");\n }\n }\n\n this.extendStart = extendStart;\n this.extendEnd = extendEnd;\n\n const fnObj = dict.getRaw(\"Function\");\n const fn = pdfFunctionFactory.createFromArray(fnObj);\n\n // Use lcm(1,2,3,4,5,6,7,8,10) = 840 (including 9 increases this to 2520)\n // to catch evenly spaced stops. oeis.org/A003418\n const NUMBER_OF_SAMPLES = 840;\n const step = (t1 - t0) / NUMBER_OF_SAMPLES;\n\n const colorStops = (this.colorStops = []);\n\n // Protect against bad domains.\n if (t0 >= t1 || step <= 0) {\n // Acrobat doesn't seem to handle these cases so we'll ignore for\n // now.\n info(\"Bad shading domain.\");\n return;\n }\n\n const color = new Float32Array(cs.numComps),\n ratio = new Float32Array(1);\n let rgbColor;\n\n let iBase = 0;\n ratio[0] = t0;\n fn(ratio, 0, color, 0);\n let rgbBase = cs.getRgb(color, 0);\n const cssColorBase = Util.makeHexColor(rgbBase[0], rgbBase[1], rgbBase[2]);\n colorStops.push([0, cssColorBase]);\n\n let iPrev = 1;\n ratio[0] = t0 + step;\n fn(ratio, 0, color, 0);\n let rgbPrev = cs.getRgb(color, 0);\n\n // Slopes are rise / run.\n // A max slope is from the least value the base component could have been\n // to the greatest value the current component could have been.\n // A min slope is from the greatest value the base component could have been\n // to the least value the current component could have been.\n // Each component could have been rounded up to .5 from its original value\n // so the conservative deltas are +-1 (+-.5 for base and -+.5 for current).\n\n // The run is iPrev - iBase = 1, so omitted.\n let maxSlopeR = rgbPrev[0] - rgbBase[0] + 1;\n let maxSlopeG = rgbPrev[1] - rgbBase[1] + 1;\n let maxSlopeB = rgbPrev[2] - rgbBase[2] + 1;\n let minSlopeR = rgbPrev[0] - rgbBase[0] - 1;\n let minSlopeG = rgbPrev[1] - rgbBase[1] - 1;\n let minSlopeB = rgbPrev[2] - rgbBase[2] - 1;\n\n for (let i = 2; i < NUMBER_OF_SAMPLES; i++) {\n ratio[0] = t0 + i * step;\n fn(ratio, 0, color, 0);\n rgbColor = cs.getRgb(color, 0);\n\n // Keep going if the maximum minimum slope <= the minimum maximum slope.\n // Otherwise add a rgbPrev color stop and make it the new base.\n\n const run = i - iBase;\n maxSlopeR = Math.min(maxSlopeR, (rgbColor[0] - rgbBase[0] + 1) / run);\n maxSlopeG = Math.min(maxSlopeG, (rgbColor[1] - rgbBase[1] + 1) / run);\n maxSlopeB = Math.min(maxSlopeB, (rgbColor[2] - rgbBase[2] + 1) / run);\n minSlopeR = Math.max(minSlopeR, (rgbColor[0] - rgbBase[0] - 1) / run);\n minSlopeG = Math.max(minSlopeG, (rgbColor[1] - rgbBase[1] - 1) / run);\n minSlopeB = Math.max(minSlopeB, (rgbColor[2] - rgbBase[2] - 1) / run);\n\n const slopesExist =\n minSlopeR <= maxSlopeR &&\n minSlopeG <= maxSlopeG &&\n minSlopeB <= maxSlopeB;\n\n if (!slopesExist) {\n const cssColor = Util.makeHexColor(rgbPrev[0], rgbPrev[1], rgbPrev[2]);\n colorStops.push([iPrev / NUMBER_OF_SAMPLES, cssColor]);\n\n // TODO: When fn frequency is high (iPrev - iBase === 1 twice in a row),\n // send the color space and function to do the sampling display side.\n\n // The run is i - iPrev = 1, so omitted.\n maxSlopeR = rgbColor[0] - rgbPrev[0] + 1;\n maxSlopeG = rgbColor[1] - rgbPrev[1] + 1;\n maxSlopeB = rgbColor[2] - rgbPrev[2] + 1;\n minSlopeR = rgbColor[0] - rgbPrev[0] - 1;\n minSlopeG = rgbColor[1] - rgbPrev[1] - 1;\n minSlopeB = rgbColor[2] - rgbPrev[2] - 1;\n\n iBase = iPrev;\n rgbBase = rgbPrev;\n }\n\n iPrev = i;\n rgbPrev = rgbColor;\n }\n const cssColor = Util.makeHexColor(rgbPrev[0], rgbPrev[1], rgbPrev[2]);\n colorStops.push([1, cssColor]);\n\n let background = \"transparent\";\n if (dict.has(\"Background\")) {\n rgbColor = cs.getRgb(dict.get(\"Background\"), 0);\n background = Util.makeHexColor(rgbColor[0], rgbColor[1], rgbColor[2]);\n }\n\n if (!extendStart) {\n // Insert a color stop at the front and offset the first real color stop\n // so it doesn't conflict with the one we insert.\n colorStops.unshift([0, background]);\n colorStops[1][0] += BaseShading.SMALL_NUMBER;\n }\n if (!extendEnd) {\n // Same idea as above in extendStart but for the end.\n colorStops.at(-1)[0] -= BaseShading.SMALL_NUMBER;\n colorStops.push([1, background]);\n }\n\n this.colorStops = colorStops;\n }\n\n getIR() {\n const coordsArr = this.coordsArr;\n const shadingType = this.shadingType;\n let type, p0, p1, r0, r1;\n if (shadingType === ShadingType.AXIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[2], coordsArr[3]];\n r0 = null;\n r1 = null;\n type = \"axial\";\n } else if (shadingType === ShadingType.RADIAL) {\n p0 = [coordsArr[0], coordsArr[1]];\n p1 = [coordsArr[3], coordsArr[4]];\n r0 = coordsArr[2];\n r1 = coordsArr[5];\n type = \"radial\";\n } else {\n unreachable(`getPattern type unknown: ${shadingType}`);\n }\n\n return [\"RadialAxial\", type, this.bbox, this.colorStops, p0, p1, r0, r1];\n }\n}\n\n// All mesh shadings. For now, they will be presented as set of the triangles\n// to be drawn on the canvas and rgb color for each vertex.\nclass MeshStreamReader {\n constructor(stream, context) {\n this.stream = stream;\n this.context = context;\n this.buffer = 0;\n this.bufferLength = 0;\n\n const numComps = context.numComps;\n this.tmpCompsBuf = new Float32Array(numComps);\n const csNumComps = context.colorSpace.numComps;\n this.tmpCsCompsBuf = context.colorFn\n ? new Float32Array(csNumComps)\n : this.tmpCompsBuf;\n }\n\n get hasData() {\n if (this.stream.end) {\n return this.stream.pos < this.stream.end;\n }\n if (this.bufferLength > 0) {\n return true;\n }\n const nextByte = this.stream.getByte();\n if (nextByte < 0) {\n return false;\n }\n this.buffer = nextByte;\n this.bufferLength = 8;\n return true;\n }\n\n readBits(n) {\n let buffer = this.buffer;\n let bufferLength = this.bufferLength;\n if (n === 32) {\n if (bufferLength === 0) {\n return (\n ((this.stream.getByte() << 24) |\n (this.stream.getByte() << 16) |\n (this.stream.getByte() << 8) |\n this.stream.getByte()) >>>\n 0\n );\n }\n buffer =\n (buffer << 24) |\n (this.stream.getByte() << 16) |\n (this.stream.getByte() << 8) |\n this.stream.getByte();\n const nextByte = this.stream.getByte();\n this.buffer = nextByte & ((1 << bufferLength) - 1);\n return (\n ((buffer << (8 - bufferLength)) |\n ((nextByte & 0xff) >> bufferLength)) >>>\n 0\n );\n }\n if (n === 8 && bufferLength === 0) {\n return this.stream.getByte();\n }\n while (bufferLength < n) {\n buffer = (buffer << 8) | this.stream.getByte();\n bufferLength += 8;\n }\n bufferLength -= n;\n this.bufferLength = bufferLength;\n this.buffer = buffer & ((1 << bufferLength) - 1);\n return buffer >> bufferLength;\n }\n\n align() {\n this.buffer = 0;\n this.bufferLength = 0;\n }\n\n readFlag() {\n return this.readBits(this.context.bitsPerFlag);\n }\n\n readCoordinate() {\n const bitsPerCoordinate = this.context.bitsPerCoordinate;\n const xi = this.readBits(bitsPerCoordinate);\n const yi = this.readBits(bitsPerCoordinate);\n const decode = this.context.decode;\n const scale =\n bitsPerCoordinate < 32\n ? 1 / ((1 << bitsPerCoordinate) - 1)\n : 2.3283064365386963e-10; // 2 ^ -32\n return [\n xi * scale * (decode[1] - decode[0]) + decode[0],\n yi * scale * (decode[3] - decode[2]) + decode[2],\n ];\n }\n\n readComponents() {\n const numComps = this.context.numComps;\n const bitsPerComponent = this.context.bitsPerComponent;\n const scale =\n bitsPerComponent < 32\n ? 1 / ((1 << bitsPerComponent) - 1)\n : 2.3283064365386963e-10; // 2 ^ -32\n const decode = this.context.decode;\n const components = this.tmpCompsBuf;\n for (let i = 0, j = 4; i < numComps; i++, j += 2) {\n const ci = this.readBits(bitsPerComponent);\n components[i] = ci * scale * (decode[j + 1] - decode[j]) + decode[j];\n }\n const color = this.tmpCsCompsBuf;\n if (this.context.colorFn) {\n this.context.colorFn(components, 0, color, 0);\n }\n return this.context.colorSpace.getRgb(color, 0);\n }\n}\n\nlet bCache = Object.create(null);\n\nfunction buildB(count) {\n const lut = [];\n for (let i = 0; i <= count; i++) {\n const t = i / count,\n t_ = 1 - t;\n lut.push(\n new Float32Array([t_ ** 3, 3 * t * t_ ** 2, 3 * t ** 2 * t_, t ** 3])\n );\n }\n return lut;\n}\nfunction getB(count) {\n return (bCache[count] ||= buildB(count));\n}\n\nfunction clearPatternCaches() {\n bCache = Object.create(null);\n}\n\nclass MeshShading extends BaseShading {\n static MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3;\n\n static MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20;\n\n // Count of triangles per entire mesh bounds.\n static TRIANGLE_DENSITY = 20;\n\n constructor(\n stream,\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache\n ) {\n super();\n if (!(stream instanceof BaseStream)) {\n throw new FormatError(\"Mesh data is not a stream\");\n }\n const dict = stream.dict;\n this.shadingType = dict.get(\"ShadingType\");\n const bbox = dict.getArray(\"BBox\");\n this.bbox =\n Array.isArray(bbox) && bbox.length === 4\n ? Util.normalizeRect(bbox)\n : null;\n const cs = ColorSpace.parse({\n cs: dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\"),\n xref,\n resources,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n this.background = dict.has(\"Background\")\n ? cs.getRgb(dict.get(\"Background\"), 0)\n : null;\n\n const fnObj = dict.getRaw(\"Function\");\n const fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;\n\n this.coords = [];\n this.colors = [];\n this.figures = [];\n\n const decodeContext = {\n bitsPerCoordinate: dict.get(\"BitsPerCoordinate\"),\n bitsPerComponent: dict.get(\"BitsPerComponent\"),\n bitsPerFlag: dict.get(\"BitsPerFlag\"),\n decode: dict.getArray(\"Decode\"),\n colorFn: fn,\n colorSpace: cs,\n numComps: fn ? 1 : cs.numComps,\n };\n const reader = new MeshStreamReader(stream, decodeContext);\n\n let patchMesh = false;\n switch (this.shadingType) {\n case ShadingType.FREE_FORM_MESH:\n this._decodeType4Shading(reader);\n break;\n case ShadingType.LATTICE_FORM_MESH:\n const verticesPerRow = dict.get(\"VerticesPerRow\") | 0;\n if (verticesPerRow < 2) {\n throw new FormatError(\"Invalid VerticesPerRow\");\n }\n this._decodeType5Shading(reader, verticesPerRow);\n break;\n case ShadingType.COONS_PATCH_MESH:\n this._decodeType6Shading(reader);\n patchMesh = true;\n break;\n case ShadingType.TENSOR_PATCH_MESH:\n this._decodeType7Shading(reader);\n patchMesh = true;\n break;\n default:\n unreachable(\"Unsupported mesh type.\");\n break;\n }\n\n if (patchMesh) {\n // Dirty bounds calculation, to determine how dense the triangles will be.\n this._updateBounds();\n for (let i = 0, ii = this.figures.length; i < ii; i++) {\n this._buildFigureFromPatch(i);\n }\n }\n // Calculate bounds.\n this._updateBounds();\n\n this._packData();\n }\n\n _decodeType4Shading(reader) {\n const coords = this.coords;\n const colors = this.colors;\n const operators = [];\n const ps = []; // not maintaining cs since that will match ps\n let verticesLeft = 0; // assuming we have all data to start a new triangle\n while (reader.hasData) {\n const f = reader.readFlag();\n const coord = reader.readCoordinate();\n const color = reader.readComponents();\n if (verticesLeft === 0) {\n // ignoring flags if we started a triangle\n if (!(0 <= f && f <= 2)) {\n throw new FormatError(\"Unknown type4 flag\");\n }\n switch (f) {\n case 0:\n verticesLeft = 3;\n break;\n case 1:\n ps.push(ps.at(-2), ps.at(-1));\n verticesLeft = 1;\n break;\n case 2:\n ps.push(ps.at(-3), ps.at(-1));\n verticesLeft = 1;\n break;\n }\n operators.push(f);\n }\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n verticesLeft--;\n\n reader.align();\n }\n this.figures.push({\n type: \"triangles\",\n coords: new Int32Array(ps),\n colors: new Int32Array(ps),\n });\n }\n\n _decodeType5Shading(reader, verticesPerRow) {\n const coords = this.coords;\n const colors = this.colors;\n const ps = []; // not maintaining cs since that will match ps\n while (reader.hasData) {\n const coord = reader.readCoordinate();\n const color = reader.readComponents();\n ps.push(coords.length);\n coords.push(coord);\n colors.push(color);\n }\n this.figures.push({\n type: \"lattice\",\n coords: new Int32Array(ps),\n colors: new Int32Array(ps),\n verticesPerRow,\n });\n }\n\n _decodeType6Shading(reader) {\n // A special case of Type 7. The p11, p12, p21, p22 automatically filled\n const coords = this.coords;\n const colors = this.colors;\n const ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33\n const cs = new Int32Array(4); // c00, c30, c03, c33\n while (reader.hasData) {\n const f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new FormatError(\"Unknown type6 flag\");\n }\n const pi = coords.length;\n for (let i = 0, ii = f !== 0 ? 8 : 12; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n const ci = colors.length;\n for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n let tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n // prettier-ignore\n case 0:\n ps[12] = pi + 3; ps[13] = pi + 4; ps[14] = pi + 5; ps[15] = pi + 6;\n ps[ 8] = pi + 2; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 7;\n ps[ 4] = pi + 1; /* calculated below */ ps[ 7] = pi + 8;\n ps[ 0] = pi; ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9;\n cs[2] = ci + 1; cs[3] = ci + 2;\n cs[0] = ci; cs[1] = ci + 3;\n break;\n // prettier-ignore\n case 1:\n tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15];\n ps[12] = tmp4; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = tmp3; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 3;\n ps[ 4] = tmp2; /* calculated below */ ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[2]; tmp2 = cs[3];\n cs[2] = tmp2; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[7]; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 3;\n ps[ 4] = tmp2; /* calculated below */ ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1]; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 3:\n ps[12] = ps[0]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[1]; /* values for 5, 6, 9, 10 are */ ps[11] = pi + 3;\n ps[ 4] = ps[2]; /* calculated below */ ps[ 7] = pi + 4;\n ps[ 0] = ps[3]; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n cs[2] = cs[0]; cs[3] = ci;\n cs[0] = cs[1]; cs[1] = ci + 1;\n break;\n }\n // set p11, p12, p21, p22\n ps[5] = coords.length;\n coords.push([\n (-4 * coords[ps[0]][0] -\n coords[ps[15]][0] +\n 6 * (coords[ps[4]][0] + coords[ps[1]][0]) -\n 2 * (coords[ps[12]][0] + coords[ps[3]][0]) +\n 3 * (coords[ps[13]][0] + coords[ps[7]][0])) /\n 9,\n (-4 * coords[ps[0]][1] -\n coords[ps[15]][1] +\n 6 * (coords[ps[4]][1] + coords[ps[1]][1]) -\n 2 * (coords[ps[12]][1] + coords[ps[3]][1]) +\n 3 * (coords[ps[13]][1] + coords[ps[7]][1])) /\n 9,\n ]);\n ps[6] = coords.length;\n coords.push([\n (-4 * coords[ps[3]][0] -\n coords[ps[12]][0] +\n 6 * (coords[ps[2]][0] + coords[ps[7]][0]) -\n 2 * (coords[ps[0]][0] + coords[ps[15]][0]) +\n 3 * (coords[ps[4]][0] + coords[ps[14]][0])) /\n 9,\n (-4 * coords[ps[3]][1] -\n coords[ps[12]][1] +\n 6 * (coords[ps[2]][1] + coords[ps[7]][1]) -\n 2 * (coords[ps[0]][1] + coords[ps[15]][1]) +\n 3 * (coords[ps[4]][1] + coords[ps[14]][1])) /\n 9,\n ]);\n ps[9] = coords.length;\n coords.push([\n (-4 * coords[ps[12]][0] -\n coords[ps[3]][0] +\n 6 * (coords[ps[8]][0] + coords[ps[13]][0]) -\n 2 * (coords[ps[0]][0] + coords[ps[15]][0]) +\n 3 * (coords[ps[11]][0] + coords[ps[1]][0])) /\n 9,\n (-4 * coords[ps[12]][1] -\n coords[ps[3]][1] +\n 6 * (coords[ps[8]][1] + coords[ps[13]][1]) -\n 2 * (coords[ps[0]][1] + coords[ps[15]][1]) +\n 3 * (coords[ps[11]][1] + coords[ps[1]][1])) /\n 9,\n ]);\n ps[10] = coords.length;\n coords.push([\n (-4 * coords[ps[15]][0] -\n coords[ps[0]][0] +\n 6 * (coords[ps[11]][0] + coords[ps[14]][0]) -\n 2 * (coords[ps[12]][0] + coords[ps[3]][0]) +\n 3 * (coords[ps[2]][0] + coords[ps[8]][0])) /\n 9,\n (-4 * coords[ps[15]][1] -\n coords[ps[0]][1] +\n 6 * (coords[ps[11]][1] + coords[ps[14]][1]) -\n 2 * (coords[ps[12]][1] + coords[ps[3]][1]) +\n 3 * (coords[ps[2]][1] + coords[ps[8]][1])) /\n 9,\n ]);\n this.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps), // making copies of ps and cs\n colors: new Int32Array(cs),\n });\n }\n }\n\n _decodeType7Shading(reader) {\n const coords = this.coords;\n const colors = this.colors;\n const ps = new Int32Array(16); // p00, p10, ..., p30, p01, ..., p33\n const cs = new Int32Array(4); // c00, c30, c03, c33\n while (reader.hasData) {\n const f = reader.readFlag();\n if (!(0 <= f && f <= 3)) {\n throw new FormatError(\"Unknown type7 flag\");\n }\n const pi = coords.length;\n for (let i = 0, ii = f !== 0 ? 12 : 16; i < ii; i++) {\n coords.push(reader.readCoordinate());\n }\n const ci = colors.length;\n for (let i = 0, ii = f !== 0 ? 2 : 4; i < ii; i++) {\n colors.push(reader.readComponents());\n }\n let tmp1, tmp2, tmp3, tmp4;\n switch (f) {\n // prettier-ignore\n case 0:\n ps[12] = pi + 3; ps[13] = pi + 4; ps[14] = pi + 5; ps[15] = pi + 6;\n ps[ 8] = pi + 2; ps[ 9] = pi + 13; ps[10] = pi + 14; ps[11] = pi + 7;\n ps[ 4] = pi + 1; ps[ 5] = pi + 12; ps[ 6] = pi + 15; ps[ 7] = pi + 8;\n ps[ 0] = pi; ps[ 1] = pi + 11; ps[ 2] = pi + 10; ps[ 3] = pi + 9;\n cs[2] = ci + 1; cs[3] = ci + 2;\n cs[0] = ci; cs[1] = ci + 3;\n break;\n // prettier-ignore\n case 1:\n tmp1 = ps[12]; tmp2 = ps[13]; tmp3 = ps[14]; tmp4 = ps[15];\n ps[12] = tmp4; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = tmp3; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n ps[ 4] = tmp2; ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[2]; tmp2 = cs[3];\n cs[2] = tmp2; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 2:\n tmp1 = ps[15];\n tmp2 = ps[11];\n ps[12] = ps[3]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[7]; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n ps[ 4] = tmp2; ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n ps[ 0] = tmp1; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n tmp1 = cs[3];\n cs[2] = cs[1]; cs[3] = ci;\n cs[0] = tmp1; cs[1] = ci + 1;\n break;\n // prettier-ignore\n case 3:\n ps[12] = ps[0]; ps[13] = pi + 0; ps[14] = pi + 1; ps[15] = pi + 2;\n ps[ 8] = ps[1]; ps[ 9] = pi + 9; ps[10] = pi + 10; ps[11] = pi + 3;\n ps[ 4] = ps[2]; ps[ 5] = pi + 8; ps[ 6] = pi + 11; ps[ 7] = pi + 4;\n ps[ 0] = ps[3]; ps[ 1] = pi + 7; ps[ 2] = pi + 6; ps[ 3] = pi + 5;\n cs[2] = cs[0]; cs[3] = ci;\n cs[0] = cs[1]; cs[1] = ci + 1;\n break;\n }\n this.figures.push({\n type: \"patch\",\n coords: new Int32Array(ps), // making copies of ps and cs\n colors: new Int32Array(cs),\n });\n }\n }\n\n _buildFigureFromPatch(index) {\n const figure = this.figures[index];\n assert(figure.type === \"patch\", \"Unexpected patch mesh figure\");\n\n const coords = this.coords,\n colors = this.colors;\n const pi = figure.coords;\n const ci = figure.colors;\n\n const figureMinX = Math.min(\n coords[pi[0]][0],\n coords[pi[3]][0],\n coords[pi[12]][0],\n coords[pi[15]][0]\n );\n const figureMinY = Math.min(\n coords[pi[0]][1],\n coords[pi[3]][1],\n coords[pi[12]][1],\n coords[pi[15]][1]\n );\n const figureMaxX = Math.max(\n coords[pi[0]][0],\n coords[pi[3]][0],\n coords[pi[12]][0],\n coords[pi[15]][0]\n );\n const figureMaxY = Math.max(\n coords[pi[0]][1],\n coords[pi[3]][1],\n coords[pi[12]][1],\n coords[pi[15]][1]\n );\n let splitXBy = Math.ceil(\n ((figureMaxX - figureMinX) * MeshShading.TRIANGLE_DENSITY) /\n (this.bounds[2] - this.bounds[0])\n );\n splitXBy = Math.max(\n MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,\n Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitXBy)\n );\n let splitYBy = Math.ceil(\n ((figureMaxY - figureMinY) * MeshShading.TRIANGLE_DENSITY) /\n (this.bounds[3] - this.bounds[1])\n );\n splitYBy = Math.max(\n MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,\n Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, splitYBy)\n );\n\n const verticesPerRow = splitXBy + 1;\n const figureCoords = new Int32Array((splitYBy + 1) * verticesPerRow);\n const figureColors = new Int32Array((splitYBy + 1) * verticesPerRow);\n let k = 0;\n const cl = new Uint8Array(3),\n cr = new Uint8Array(3);\n const c0 = colors[ci[0]],\n c1 = colors[ci[1]],\n c2 = colors[ci[2]],\n c3 = colors[ci[3]];\n const bRow = getB(splitYBy),\n bCol = getB(splitXBy);\n for (let row = 0; row <= splitYBy; row++) {\n cl[0] = ((c0[0] * (splitYBy - row) + c2[0] * row) / splitYBy) | 0;\n cl[1] = ((c0[1] * (splitYBy - row) + c2[1] * row) / splitYBy) | 0;\n cl[2] = ((c0[2] * (splitYBy - row) + c2[2] * row) / splitYBy) | 0;\n\n cr[0] = ((c1[0] * (splitYBy - row) + c3[0] * row) / splitYBy) | 0;\n cr[1] = ((c1[1] * (splitYBy - row) + c3[1] * row) / splitYBy) | 0;\n cr[2] = ((c1[2] * (splitYBy - row) + c3[2] * row) / splitYBy) | 0;\n\n for (let col = 0; col <= splitXBy; col++, k++) {\n if (\n (row === 0 || row === splitYBy) &&\n (col === 0 || col === splitXBy)\n ) {\n continue;\n }\n let x = 0,\n y = 0;\n let q = 0;\n for (let i = 0; i <= 3; i++) {\n for (let j = 0; j <= 3; j++, q++) {\n const m = bRow[row][i] * bCol[col][j];\n x += coords[pi[q]][0] * m;\n y += coords[pi[q]][1] * m;\n }\n }\n figureCoords[k] = coords.length;\n coords.push([x, y]);\n figureColors[k] = colors.length;\n const newColor = new Uint8Array(3);\n newColor[0] = ((cl[0] * (splitXBy - col) + cr[0] * col) / splitXBy) | 0;\n newColor[1] = ((cl[1] * (splitXBy - col) + cr[1] * col) / splitXBy) | 0;\n newColor[2] = ((cl[2] * (splitXBy - col) + cr[2] * col) / splitXBy) | 0;\n colors.push(newColor);\n }\n }\n figureCoords[0] = pi[0];\n figureColors[0] = ci[0];\n figureCoords[splitXBy] = pi[3];\n figureColors[splitXBy] = ci[1];\n figureCoords[verticesPerRow * splitYBy] = pi[12];\n figureColors[verticesPerRow * splitYBy] = ci[2];\n figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];\n figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];\n\n this.figures[index] = {\n type: \"lattice\",\n coords: figureCoords,\n colors: figureColors,\n verticesPerRow,\n };\n }\n\n _updateBounds() {\n let minX = this.coords[0][0],\n minY = this.coords[0][1],\n maxX = minX,\n maxY = minY;\n for (let i = 1, ii = this.coords.length; i < ii; i++) {\n const x = this.coords[i][0],\n y = this.coords[i][1];\n minX = minX > x ? x : minX;\n minY = minY > y ? y : minY;\n maxX = maxX < x ? x : maxX;\n maxY = maxY < y ? y : maxY;\n }\n this.bounds = [minX, minY, maxX, maxY];\n }\n\n _packData() {\n let i, ii, j, jj;\n\n const coords = this.coords;\n const coordsPacked = new Float32Array(coords.length * 2);\n for (i = 0, j = 0, ii = coords.length; i < ii; i++) {\n const xy = coords[i];\n coordsPacked[j++] = xy[0];\n coordsPacked[j++] = xy[1];\n }\n this.coords = coordsPacked;\n\n const colors = this.colors;\n const colorsPacked = new Uint8Array(colors.length * 3);\n for (i = 0, j = 0, ii = colors.length; i < ii; i++) {\n const c = colors[i];\n colorsPacked[j++] = c[0];\n colorsPacked[j++] = c[1];\n colorsPacked[j++] = c[2];\n }\n this.colors = colorsPacked;\n\n const figures = this.figures;\n for (i = 0, ii = figures.length; i < ii; i++) {\n const figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n for (j = 0, jj = ps.length; j < jj; j++) {\n ps[j] *= 2;\n cs[j] *= 3;\n }\n }\n }\n\n getIR() {\n return [\n \"Mesh\",\n this.shadingType,\n this.coords,\n this.colors,\n this.figures,\n this.bounds,\n this.bbox,\n this.background,\n ];\n }\n}\n\nclass DummyShading extends BaseShading {\n getIR() {\n return [\"Dummy\"];\n }\n}\n\nfunction getTilingPatternIR(operatorList, dict, color) {\n const matrix = dict.getArray(\"Matrix\");\n const bbox = Util.normalizeRect(dict.getArray(\"BBox\"));\n const xstep = dict.get(\"XStep\");\n const ystep = dict.get(\"YStep\");\n const paintType = dict.get(\"PaintType\");\n const tilingType = dict.get(\"TilingType\");\n\n // Ensure that the pattern has a non-zero width and height, to prevent errors\n // in `pattern_helper.js` (fixes issue8330.pdf).\n if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {\n throw new FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`);\n }\n\n return [\n \"TilingPattern\",\n color,\n operatorList,\n matrix,\n bbox,\n xstep,\n ystep,\n paintType,\n tilingType,\n ];\n}\n\nexport { clearPatternCaches, getTilingPatternIR, Pattern };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as calibrib.ttf.\nconst CalibriBoldFactors = [\n 1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566,\n 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.54657,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859,\n 0.92138, 0.83908, 0.7762, 0.73293, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356,\n 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.9121, 0.86943, 0.79795,\n 0.88198, 0.77958, 0.70864, 0.81055, 0.90399, 0.88653, 0.96017, 0.82577,\n 0.77892, 0.78257, 0.97507, 1.54657, 0.97507, 0.85284, 0.89552, 0.90176,\n 0.88762, 0.8785, 0.75241, 0.8785, 0.90518, 0.95015, 0.77618, 0.8785, 0.88401,\n 0.91916, 0.86304, 0.88401, 0.91488, 0.8785, 0.8801, 0.8785, 0.8785, 0.91343,\n 0.7173, 1.04106, 0.8785, 0.85075, 0.95794, 0.82616, 0.85162, 0.79492, 0.88331,\n 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133,\n 1.7801, 0.89552, 1.24487, 1.13254, 1.12401, 0.96839, 0.85284, 0.68787,\n 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1, 0.91056,\n 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908,\n 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.73293, 0.73133,\n 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506,\n 0.9121, 0.86943, 0.86943, 0.86943, 0.86943, 0.86943, 0.85284, 0.87508,\n 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.88762,\n 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.8715, 0.75241, 0.90518,\n 0.90518, 0.90518, 0.90518, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785, 0.8785,\n 0.8801, 0.8801, 0.8801, 0.8801, 0.8801, 0.90747, 0.89049, 0.8785, 0.8785,\n 0.8785, 0.8785, 0.85162, 0.8785, 0.85162, 0.83908, 0.88762, 0.83908, 0.88762,\n 0.83908, 0.88762, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241,\n 0.73293, 0.75241, 0.87289, 0.83016, 0.88506, 0.93125, 0.73133, 0.90518,\n 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133, 0.90518,\n 0.81921, 0.77618, 0.81921, 0.77618, 0.81921, 0.77618, 1, 1, 0.87356, 0.8785,\n 0.91075, 0.89608, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401,\n 0.95958, 0.88401, 0.95958, 0.88401, 0.76229, 0.90167, 0.59526, 0.91916, 1, 1,\n 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.79468, 0.91926, 0.88175, 0.70823,\n 0.94903, 0.9121, 0.8785, 1, 1, 0.9121, 0.8785, 0.87802, 0.88656, 0.8785,\n 0.86943, 0.8801, 0.86943, 0.8801, 0.86943, 0.8801, 0.87402, 0.89291, 0.77958,\n 0.91343, 1, 1, 0.77958, 0.91343, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864,\n 0.7173, 0.70864, 0.7173, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399,\n 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785,\n 0.90399, 0.8785, 0.96017, 0.95794, 0.77892, 0.85162, 0.77892, 0.78257,\n 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908,\n 0.88762, 0.77539, 0.8715, 0.87508, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528,\n 1.20528, 1, 1.15543, 0.70674, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161,\n 1.06303, 0.83908, 0.80352, 0.57184, 0.6965, 0.56289, 0.82001, 0.56029,\n 0.81235, 1.02988, 0.83908, 0.7762, 0.68156, 0.80367, 0.73133, 0.78257,\n 0.87356, 0.86943, 0.95958, 0.75727, 0.89019, 1.04924, 0.9121, 0.7648, 0.86943,\n 0.87356, 0.79795, 0.78275, 0.81055, 0.77892, 0.9762, 0.82577, 0.99819,\n 0.84896, 0.95958, 0.77892, 0.96108, 1.01407, 0.89049, 1.02988, 0.94211,\n 0.96108, 0.8936, 0.84021, 0.87842, 0.96399, 0.79109, 0.89049, 1.00813,\n 1.02988, 0.86077, 0.87445, 0.92099, 0.84723, 0.86513, 0.8801, 0.75638,\n 0.85714, 0.78216, 0.79586, 0.87965, 0.94211, 0.97747, 0.78287, 0.97926,\n 0.84971, 1.02988, 0.94211, 0.8801, 0.94211, 0.84971, 0.73133, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 0.90264, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 0.90518, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90548, 1, 1, 1, 1, 1, 1,\n 0.96017, 0.95794, 0.96017, 0.95794, 0.96017, 0.95794, 0.77892, 0.85162, 1, 1,\n 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.92794, 0.87012,\n 0.87012, 0.87012, 0.89552, 0.89552, 1.42259, 0.71143, 1.06152, 1, 1, 1.03372,\n 1.03372, 0.97171, 1.4956, 2.2807, 0.93835, 0.83406, 0.91133, 0.84107, 0.91133,\n 1, 1, 1, 0.72021, 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90527,\n 1.81055, 0.90527, 1.81055, 1.31006, 1.53711, 0.94434, 1.08696, 1, 0.95018,\n 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747,\n 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572,\n 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1,\n 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriBoldMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as calibriz.ttf.\nconst CalibriBoldItalicFactors = [\n 1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566,\n 0.98152, 0.93548, 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.56239,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.91133, 0.82845, 0.82845, 0.85284, 0.85284, 0.85284, 0.75859,\n 0.92138, 0.83908, 0.7762, 0.71805, 0.87289, 0.73133, 0.7514, 0.81921, 0.87356,\n 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.90872, 0.85938, 0.79795,\n 0.87068, 0.77958, 0.69766, 0.81055, 0.90399, 0.88653, 0.96068, 0.82577,\n 0.77892, 0.78257, 0.97507, 1.529, 0.97507, 0.85284, 0.89552, 0.90176, 0.94908,\n 0.86411, 0.74012, 0.86411, 0.88323, 0.95015, 0.86411, 0.86331, 0.88401,\n 0.91916, 0.86304, 0.88401, 0.9039, 0.86331, 0.86331, 0.86411, 0.86411,\n 0.90464, 0.70852, 1.04106, 0.86331, 0.84372, 0.95794, 0.82616, 0.84548,\n 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801, 0.89552, 0.91133,\n 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.19129, 0.96839,\n 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1,\n 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133,\n 0.75859, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539,\n 0.71805, 0.73133, 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958,\n 0.95958, 0.88506, 0.90872, 0.85938, 0.85938, 0.85938, 0.85938, 0.85938,\n 0.85284, 0.87068, 0.90399, 0.90399, 0.90399, 0.90399, 0.77892, 0.79795,\n 0.90807, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.94908, 0.85887,\n 0.74012, 0.88323, 0.88323, 0.88323, 0.88323, 0.88401, 0.88401, 0.88401,\n 0.88401, 0.8785, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331,\n 0.90747, 0.89049, 0.86331, 0.86331, 0.86331, 0.86331, 0.84548, 0.86411,\n 0.84548, 0.83908, 0.94908, 0.83908, 0.94908, 0.83908, 0.94908, 0.71805,\n 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.87289,\n 0.79538, 0.88506, 0.92726, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133,\n 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.81921, 0.86411, 0.81921,\n 0.86411, 0.81921, 0.86411, 1, 1, 0.87356, 0.86331, 0.91075, 0.8777, 0.95958,\n 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958,\n 0.88401, 0.76467, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401,\n 1, 1, 0.70424, 0.77312, 0.91926, 0.88175, 0.70823, 0.94903, 0.90872, 0.86331,\n 1, 1, 0.90872, 0.86331, 0.86906, 0.88116, 0.86331, 0.85938, 0.86331, 0.85938,\n 0.86331, 0.85938, 0.86331, 0.87402, 0.86549, 0.77958, 0.90464, 1, 1, 0.77958,\n 0.90464, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766,\n 0.70852, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.86331, 0.90399,\n 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399,\n 0.86331, 0.96068, 0.95794, 0.77892, 0.84548, 0.77892, 0.78257, 0.79492,\n 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908, 0.94908,\n 0.77539, 0.85887, 0.87068, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528,\n 1, 1.15543, 0.70088, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.48387,\n 0.83908, 0.80352, 0.57118, 0.6965, 0.56347, 0.79179, 0.55853, 0.80346,\n 1.02988, 0.83908, 0.7762, 0.67174, 0.86036, 0.73133, 0.78257, 0.87356,\n 0.86441, 0.95958, 0.75727, 0.89019, 1.04924, 0.90872, 0.74889, 0.85938,\n 0.87891, 0.79795, 0.7957, 0.81055, 0.77892, 0.97447, 0.82577, 0.97466,\n 0.87179, 0.95958, 0.77892, 0.94252, 0.95612, 0.8753, 1.02988, 0.92733,\n 0.94252, 0.87411, 0.84021, 0.8728, 0.95612, 0.74081, 0.8753, 1.02189, 1.02988,\n 0.84814, 0.87445, 0.91822, 0.84723, 0.85668, 0.86331, 0.81344, 0.87581,\n 0.76422, 0.82046, 0.96057, 0.92733, 0.99375, 0.78022, 0.95452, 0.86015,\n 1.02988, 0.92733, 0.86331, 0.92733, 0.86015, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.90631, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.88323, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85174, 1, 1, 1, 1, 1, 1, 0.96068, 0.95794,\n 0.96068, 0.95794, 0.96068, 0.95794, 0.77892, 0.84548, 1, 1, 0.89552, 0.90527,\n 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.89807, 0.87012, 0.87012, 0.87012,\n 0.89552, 0.89552, 1.42259, 0.71094, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171,\n 1.4956, 2.2807, 0.92972, 0.83406, 0.91133, 0.83326, 0.91133, 1, 1, 1, 0.72021,\n 1, 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90616, 1.81055, 0.90527,\n 1.81055, 1.3107, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284,\n 0.90747, 1.17534, 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356,\n 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572,\n 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriBoldItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as calibrii.ttf.\nconst CalibriItalicFactors = [\n 1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601,\n 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39543, 0.91133,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071,\n 0.8675, 0.81552, 0.72346, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685,\n 0.6377, 0.77892, 0.75593, 1.02638, 0.89249, 0.84118, 0.77452, 0.85374,\n 0.75186, 0.67789, 0.79776, 0.88844, 0.85066, 0.94309, 0.77818, 0.7306,\n 0.76659, 1.10369, 1.38313, 1.10369, 1.06139, 0.89552, 0.8739, 0.9245, 0.9245,\n 0.83203, 0.9245, 0.85865, 1.09842, 0.9245, 0.9245, 1.03297, 1.07692, 0.90918,\n 1.03297, 0.94959, 0.9245, 0.92274, 0.9245, 0.9245, 1.02933, 0.77832, 1.20562,\n 0.9245, 0.8916, 0.98986, 0.86621, 0.89453, 0.79004, 0.94152, 1.77256, 0.94152,\n 0.85284, 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552,\n 1.17889, 1.13254, 1.16359, 0.92098, 0.85284, 0.68787, 0.71353, 0.84737,\n 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1, 0.92229, 0.739, 1.15642,\n 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675, 0.8675, 0.8675,\n 0.8675, 0.8675, 0.76318, 0.72346, 0.73206, 0.73206, 0.73206, 0.73206, 0.90685,\n 0.90685, 0.90685, 0.90685, 0.86477, 0.89249, 0.84118, 0.84118, 0.84118,\n 0.84118, 0.84118, 0.85284, 0.84557, 0.88844, 0.88844, 0.88844, 0.88844,\n 0.7306, 0.77452, 0.86331, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245,\n 0.84843, 0.83203, 0.85865, 0.85865, 0.85865, 0.85865, 0.82601, 0.82601,\n 0.82601, 0.82601, 0.94469, 0.9245, 0.92274, 0.92274, 0.92274, 0.92274,\n 0.92274, 0.90747, 0.86651, 0.9245, 0.9245, 0.9245, 0.9245, 0.89453, 0.9245,\n 0.89453, 0.8675, 0.9245, 0.8675, 0.9245, 0.8675, 0.9245, 0.72346, 0.83203,\n 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.85193, 0.8875,\n 0.86477, 0.99034, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865,\n 0.73206, 0.85865, 0.73206, 0.85865, 0.81105, 0.9245, 0.81105, 0.9245, 0.81105,\n 0.9245, 1, 1, 0.86275, 0.9245, 0.90872, 0.93591, 0.90685, 0.82601, 0.90685,\n 0.82601, 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77896,\n 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032,\n 0.9375, 0.98156, 0.93407, 0.77261, 1.11429, 0.89249, 0.9245, 1, 1, 0.89249,\n 0.9245, 0.92534, 0.86698, 0.9245, 0.84118, 0.92274, 0.84118, 0.92274, 0.84118,\n 0.92274, 0.8667, 0.86291, 0.75186, 1.02933, 1, 1, 0.75186, 1.02933, 0.67789,\n 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 1, 1, 0.79776,\n 0.97655, 0.79776, 1.23023, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245,\n 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.94309, 0.98986, 0.7306,\n 0.89453, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004,\n 1.09231, 0.54873, 0.8675, 0.9245, 0.76318, 0.84843, 0.84557, 0.86651, 1, 1,\n 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67009, 0.96334, 0.93695,\n 1.35191, 1.40909, 0.95161, 1.48387, 0.8675, 0.90861, 0.6192, 0.7363, 0.64824,\n 0.82411, 0.56321, 0.85696, 1.23516, 0.8675, 0.81552, 0.7286, 0.84134, 0.73206,\n 0.76659, 0.86275, 0.84369, 0.90685, 0.77892, 0.85871, 1.02638, 0.89249,\n 0.75828, 0.84118, 0.85984, 0.77452, 0.76466, 0.79776, 0.7306, 0.90782,\n 0.77818, 0.903, 0.87291, 0.90685, 0.7306, 0.99058, 1.03667, 0.94635, 1.23516,\n 0.9849, 0.99058, 0.92393, 0.8916, 0.942, 1.03667, 0.75026, 0.94635, 1.0297,\n 1.23516, 0.90918, 0.94048, 0.98217, 0.89746, 0.84153, 0.92274, 0.82507,\n 0.88832, 0.84438, 0.88178, 1.03525, 0.9849, 1.00225, 0.78086, 0.97248,\n 0.89404, 1.23516, 0.9849, 0.92274, 0.9849, 0.89404, 0.73206, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 0.89693, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85865,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90933, 1, 1, 1, 1, 1, 1, 0.94309,\n 0.98986, 0.94309, 0.98986, 0.94309, 0.98986, 0.7306, 0.89453, 1, 1, 0.89552,\n 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566,\n 1.2566, 0.89552, 0.89552, 1.42259, 0.68994, 1.03809, 1, 1, 1.0176, 1.0176,\n 1.11523, 1.4956, 2.01462, 0.97858, 0.82616, 0.91133, 0.83437, 0.91133, 1, 1,\n 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90572, 1.81055,\n 0.90749, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589,\n 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747,\n 0.85284, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8,\n 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1,\n 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as calibri.ttf.\nconst CalibriRegularFactors = [\n 1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601,\n 0.91056, 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39016, 0.91133,\n 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133,\n 0.91133, 0.96309, 0.96309, 0.85284, 0.85284, 0.85284, 0.83319, 0.88071,\n 0.8675, 0.81552, 0.73834, 0.85193, 0.73206, 0.7522, 0.81105, 0.86275, 0.90685,\n 0.6377, 0.77892, 0.75593, 1.02638, 0.89385, 0.85122, 0.77452, 0.86503,\n 0.75186, 0.68887, 0.79776, 0.88844, 0.85066, 0.94258, 0.77818, 0.7306,\n 0.76659, 1.10369, 1.39016, 1.10369, 1.06139, 0.89552, 0.8739, 0.86128,\n 0.94469, 0.8457, 0.94469, 0.89464, 1.09842, 0.84636, 0.94469, 1.03297,\n 1.07692, 0.90918, 1.03297, 0.95897, 0.94469, 0.9482, 0.94469, 0.94469,\n 1.04692, 0.78223, 1.20562, 0.94469, 0.90332, 0.98986, 0.86621, 0.90527,\n 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552, 0.91133,\n 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.08707, 0.92098,\n 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1,\n 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972,\n 0.75859, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.73834,\n 0.73206, 0.73206, 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685,\n 0.86477, 0.89385, 0.85122, 0.85122, 0.85122, 0.85122, 0.85122, 0.85284,\n 0.85311, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452, 0.86331,\n 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.8693, 0.8457, 0.89464,\n 0.89464, 0.89464, 0.89464, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469,\n 0.94469, 0.9482, 0.9482, 0.9482, 0.9482, 0.9482, 0.90747, 0.86651, 0.94469,\n 0.94469, 0.94469, 0.94469, 0.90527, 0.94469, 0.90527, 0.8675, 0.86128, 0.8675,\n 0.86128, 0.8675, 0.86128, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457,\n 0.73834, 0.8457, 0.85193, 0.92454, 0.86477, 0.9921, 0.73206, 0.89464, 0.73206,\n 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464, 0.81105,\n 0.84636, 0.81105, 0.84636, 0.81105, 0.84636, 1, 1, 0.86275, 0.94469, 0.90872,\n 0.95786, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685,\n 1.03297, 0.90685, 0.82601, 0.77741, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918,\n 0.75593, 1.03297, 1, 1, 0.76032, 0.90452, 0.98156, 1.11842, 0.77261, 1.11429,\n 0.89385, 0.94469, 1, 1, 0.89385, 0.94469, 0.95877, 0.86901, 0.94469, 0.85122,\n 0.9482, 0.85122, 0.9482, 0.85122, 0.9482, 0.8667, 0.90016, 0.75186, 1.04692,\n 1, 1, 0.75186, 1.04692, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223,\n 0.68887, 0.78223, 1, 1, 0.79776, 0.92188, 0.79776, 1.23023, 0.88844, 0.94469,\n 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469,\n 0.88844, 0.94469, 0.94258, 0.98986, 0.7306, 0.90527, 0.7306, 0.76659, 0.79004,\n 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.86128,\n 0.76318, 0.8693, 0.85311, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622,\n 1, 1.1437, 0.67742, 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387,\n 0.86686, 0.90861, 0.62267, 0.74359, 0.65649, 0.85498, 0.56963, 0.88254,\n 1.23516, 0.8675, 0.81552, 0.75443, 0.84503, 0.73206, 0.76659, 0.86275,\n 0.85122, 0.90685, 0.77892, 0.85746, 1.02638, 0.89385, 0.75657, 0.85122,\n 0.86275, 0.77452, 0.74171, 0.79776, 0.7306, 0.95165, 0.77818, 0.89772,\n 0.88831, 0.90685, 0.7306, 0.98142, 1.02191, 0.96576, 1.23516, 0.99018,\n 0.98142, 0.9236, 0.89258, 0.94035, 1.02191, 0.78848, 0.96576, 0.9561, 1.23516,\n 0.90918, 0.92578, 0.95424, 0.89746, 0.83969, 0.9482, 0.80113, 0.89442,\n 0.85208, 0.86155, 0.98022, 0.99018, 1.00452, 0.81209, 0.99247, 0.89181,\n 1.23516, 0.99018, 0.9482, 0.99018, 0.89181, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.88844, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89464, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96766, 1, 1, 1, 1, 1, 1, 0.94258, 0.98986,\n 0.94258, 0.98986, 0.94258, 0.98986, 0.7306, 0.90527, 1, 1, 0.89552, 0.90527,\n 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566, 1.2566,\n 0.89552, 0.89552, 1.42259, 0.69043, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523,\n 1.4956, 2.01462, 0.99331, 0.82616, 0.91133, 0.84286, 0.91133, 1, 1, 1,\n 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90527, 1.81055,\n 0.90527, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589,\n 0.85284, 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747,\n 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8,\n 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1,\n 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1,\n 1.07185, 0.99413, 0.96334, 1.08065, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst CalibriRegularMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };\n\nexport {\n CalibriBoldFactors,\n CalibriBoldItalicFactors,\n CalibriBoldItalicMetrics,\n CalibriBoldMetrics,\n CalibriItalicFactors,\n CalibriItalicMetrics,\n CalibriRegularFactors,\n CalibriRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as NimbusSans-Bold.otf.\nconst HelveticaBoldFactors = [\n 0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977,\n 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001,\n 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,\n 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998,\n 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026,\n 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026,\n 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1,\n 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003,\n 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006,\n 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977,\n 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001,\n 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022,\n 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977,\n 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 1.03374, 0.99977, 1.00026, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.00042, 0.99973, 0.99973, 1.0006,\n 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.03828,\n 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026,\n 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977,\n 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977,\n 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,\n 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 1.00034, 0.99977, 1, 0.99997, 1.00026, 1.00078, 1.00036, 0.99973,\n 1.00013, 1.0006, 0.99977, 0.99977, 0.99988, 0.85148, 1.00001, 1.00026,\n 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 1.00069,\n 1.00022, 0.99977, 1.00001, 0.99984, 1.00026, 1.00001, 1.00024, 1.00001,\n 0.9999, 1, 1.0006, 1.00001, 1.00041, 0.99962, 1.00026, 1.0006, 0.99995,\n 1.00041, 0.99942, 0.99973, 0.99927, 1.00082, 0.99902, 1.00026, 1.00087,\n 1.0006, 1.00069, 0.99973, 0.99867, 0.99973, 0.9993, 1.00026, 1.00049, 1.00056,\n 1, 0.99988, 0.99935, 0.99995, 0.99954, 1.00055, 0.99945, 1.00032, 1.0006,\n 0.99995, 1.00026, 0.99995, 1.00032, 1.00001, 1.00008, 0.99971, 1.00019,\n 0.9994, 1.00001, 1.0006, 1.00044, 0.99973, 1.00023, 1.00047, 1, 0.99942,\n 0.99561, 0.99989, 1.00035, 0.99977, 1.00035, 0.99977, 1.00019, 0.99944,\n 1.00001, 1.00021, 0.99926, 1.00035, 1.00035, 0.99942, 1.00048, 0.99999,\n 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.99989, 1.00057,\n 1.00001, 0.99936, 1.00052, 1.00012, 0.99996, 1.00043, 1, 1.00035, 0.9994,\n 0.99976, 1.00035, 0.99973, 1.00052, 1.00041, 1.00119, 1.00037, 0.99973,\n 1.00002, 0.99986, 1.00041, 1.00041, 0.99902, 0.9996, 1.00034, 0.99999,\n 1.00026, 0.99999, 1.00026, 0.99973, 1.00052, 0.99973, 1, 0.99973, 1.00041,\n 1.00075, 0.9994, 1.0003, 0.99999, 1, 1.00041, 0.99955, 1, 0.99915, 0.99973,\n 0.99973, 1.00026, 1.00119, 0.99955, 0.99973, 1.0006, 0.99911, 1.0006, 1.00026,\n 0.99972, 1.00026, 0.99902, 1.00041, 0.99973, 0.99999, 1, 1, 1.00038, 1.0005,\n 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1,\n 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973,\n 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998,\n 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 1.00047, 1.00023, 1,\n 0.99991, 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1,\n 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027,\n 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999,\n 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625,\n 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972,\n 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1,\n 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998,\n 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as NimbusSans-BoldItalic.otf.\nconst HelveticaBoldItalicFactors = [\n 0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977,\n 1.00087, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99998, 1, 1.00003, 1.00003, 1.00003, 1.00026, 0.9999,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022, 1.00001,\n 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,\n 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998,\n 0.99973, 1.00026, 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026,\n 1.0006, 1.0006, 0.99973, 1.0006, 0.99982, 1.00026, 1.00026, 1.00026, 1.00026,\n 0.99959, 0.99973, 0.99998, 1.00026, 0.99973, 1.00022, 0.99973, 0.99973, 1,\n 0.99959, 1.00077, 0.99959, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003,\n 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006,\n 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977,\n 0.99977, 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001,\n 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022,\n 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977, 0.99977,\n 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99982, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026, 1.00026,\n 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 1.0044, 0.99977, 1.00026, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99971, 0.99973, 0.99973, 1.0006,\n 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026, 1.01011,\n 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026,\n 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,\n 1.00022, 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977,\n 0.99959, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 1.00026, 0.99998, 1.00026, 0.8121, 1.00026, 0.99998, 0.99977,\n 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,\n 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99977, 1, 1, 1.00026, 0.99969, 0.99972, 0.99981, 0.9998,\n 1.0006, 0.99977, 0.99977, 1.00022, 0.91155, 1.00001, 1.00026, 0.99977,\n 1.00022, 1.0006, 0.99977, 1.00001, 0.99999, 0.99977, 0.99966, 1.00022,\n 1.00032, 1.00001, 0.99944, 1.00026, 1.00001, 0.99968, 1.00001, 1.00047, 1,\n 1.0006, 1.00001, 0.99981, 1.00101, 1.00026, 1.0006, 0.99948, 0.99981, 1.00064,\n 0.99973, 0.99942, 1.00101, 1.00061, 1.00026, 1.00069, 1.0006, 1.00014,\n 0.99973, 1.01322, 0.99973, 1.00065, 1.00026, 1.00012, 0.99923, 1, 1.00064,\n 1.00076, 0.99948, 1.00055, 1.00063, 1.00007, 0.99943, 1.0006, 0.99948,\n 1.00026, 0.99948, 0.99943, 1.00001, 1.00001, 1.00029, 1.00038, 1.00035,\n 1.00001, 1.0006, 1.0006, 0.99973, 0.99978, 1.00001, 1.00057, 0.99989, 0.99967,\n 0.99964, 0.99967, 0.99977, 0.99999, 0.99977, 1.00038, 0.99977, 1.00001,\n 0.99973, 1.00066, 0.99967, 0.99967, 1.00041, 0.99998, 0.99999, 0.99977,\n 1.00022, 0.99967, 1.00001, 0.99977, 1.00026, 0.99964, 1.00031, 1.00001,\n 0.99999, 0.99999, 1, 1.00023, 1, 1, 0.99999, 1.00035, 1.00001, 0.99999,\n 0.99973, 0.99977, 0.99999, 1.00058, 0.99973, 0.99973, 0.99955, 0.9995,\n 1.00026, 1.00026, 1.00032, 0.99989, 1.00034, 0.99999, 1.00026, 1.00026,\n 1.00026, 0.99973, 0.45998, 0.99973, 1.00026, 0.99973, 1.00001, 0.99999,\n 0.99982, 0.99994, 0.99996, 1, 1.00042, 1.00044, 1.00029, 1.00023, 0.99973,\n 0.99973, 1.00026, 0.99949, 1.00002, 0.99973, 1.0006, 1.0006, 1.0006, 0.99975,\n 1.00026, 1.00026, 1.00032, 0.98685, 0.99973, 1.00026, 1, 1, 0.99966, 1.00044,\n 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973, 1, 1,\n 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973,\n 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998,\n 1.66475, 1, 0.99973, 0.99973, 1, 0.99973, 0.99971, 0.99978, 1, 1, 0.99991,\n 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00098, 1, 1, 1, 1.00049, 1, 1,\n 0.99972, 1, 1.20985, 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027,\n 1.00031, 1.00031, 0.99915, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999,\n 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625,\n 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972,\n 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1,\n 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998,\n 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaBoldItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as NimbusSans-Italic.otf.\nconst HelveticaItalicFactors = [\n 0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001,\n 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987,\n 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022,\n 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001,\n 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973,\n 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924,\n 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1,\n 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973,\n 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968,\n 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1,\n 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002,\n 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977,\n 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977,\n 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973,\n 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.0288,\n 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973,\n 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006,\n 1.0006, 0.99946, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924,\n 0.99973, 0.99924, 0.99973, 1.06311, 0.99973, 1.00024, 0.99973, 0.99924,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00041, 0.9998,\n 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016,\n 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1,\n 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.89547, 1.00026, 1.0006,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 1.00001, 1, 1.00054, 0.99977, 1.00084, 1.00007, 0.99973, 1.00013,\n 0.99924, 1.00001, 1.00001, 0.99945, 0.91221, 1.00001, 1.00026, 0.99977,\n 1.00022, 1.0006, 1.00001, 1.00001, 0.99999, 0.99977, 0.99933, 1.00022,\n 1.00054, 1.00001, 1.00065, 1.00026, 1.00001, 1.0001, 1.00001, 1.00052, 1,\n 1.0006, 1.00001, 0.99945, 0.99897, 0.99968, 0.99924, 1.00036, 0.99945,\n 0.99949, 1, 1.0006, 0.99897, 0.99918, 0.99968, 0.99911, 0.99924, 1, 0.99962,\n 1.01487, 1, 1.0005, 0.99973, 1.00012, 1.00043, 1, 0.99995, 0.99994, 1.00036,\n 0.99947, 1.00019, 1.00063, 1.00025, 0.99924, 1.00036, 0.99973, 1.00036,\n 1.00025, 1.00001, 1.00001, 1.00027, 1.0001, 1.00068, 1.00001, 1.0006, 1.0006,\n 1, 1.00008, 0.99957, 0.99972, 0.9994, 0.99954, 0.99975, 1.00051, 1.00001,\n 1.00019, 1.00001, 1.0001, 0.99986, 1.00001, 1.00001, 1.00038, 0.99954,\n 0.99954, 0.9994, 1.00066, 0.99999, 0.99977, 1.00022, 1.00054, 1.00001,\n 0.99977, 1.00026, 0.99975, 1.0001, 1.00001, 0.99993, 0.9995, 0.99955, 1.00016,\n 0.99978, 0.99974, 1.00019, 1.00022, 0.99955, 1.00053, 0.99973, 1.00089,\n 1.00005, 0.99967, 1.00048, 0.99973, 1.00002, 1.00034, 0.99973, 0.99973,\n 0.99964, 1.00006, 1.00066, 0.99947, 0.99973, 0.98894, 0.99973, 1, 0.44898, 1,\n 0.99946, 1, 1.00039, 1.00082, 0.99991, 0.99991, 0.99985, 1.00022, 1.00023,\n 1.00061, 1.00006, 0.99966, 0.99973, 0.99973, 0.99973, 1.00019, 1.0008, 1,\n 0.99924, 0.99924, 0.99924, 0.99983, 1.00044, 0.99973, 0.99964, 0.98332, 1,\n 0.99973, 1, 1, 0.99962, 0.99895, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016,\n 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924,\n 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267,\n 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023,\n 0.99973, 1.00423, 0.99925, 0.99999, 1, 0.99991, 0.99984, 1.00002, 1.00002,\n 1.00002, 1.00002, 1.00049, 1, 1.00245, 1, 1, 1, 1, 0.96329, 1, 1.20985,\n 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031,\n 1.00003, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861,\n 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999,\n 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962,\n 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as NimbusSans-Regular.otf.\nconst HelveticaRegularFactors = [\n 0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001,\n 1.00043, 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1, 1.00003, 1.00003, 1.00003, 0.99973, 0.99987,\n 1.00001, 1.00001, 0.99977, 0.99977, 1.00001, 1.00026, 1.00022, 0.99977,\n 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977, 1.00022, 1.00001, 1.00022,\n 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001, 1.00001,\n 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973, 0.99973,\n 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924,\n 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1,\n 0.99977, 1, 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973,\n 0.99973, 0.99973, 0.99973, 1.0009, 0.99973, 0.99998, 1.00025, 0.99968,\n 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1,\n 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002,\n 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1, 0.99977,\n 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977,\n 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022,\n 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973,\n 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973,\n 0.99973, 0.99973, 0.99973, 0.99973, 1.06409, 1.00026, 0.99973, 0.99973,\n 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,\n 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1.04596,\n 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,\n 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973,\n 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006,\n 1.0006, 1.00019, 1.00034, 1, 0.99924, 1.00001, 1, 1, 0.99973, 0.99924,\n 0.99973, 0.99924, 0.99973, 1.02572, 0.99973, 1.00005, 0.99973, 0.99924,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99999, 0.9998,\n 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016,\n 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1,\n 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.84533, 1.00026, 1.0006,\n 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,\n 0.99977, 0.99973, 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001,\n 1.00026, 1, 1.00026, 1, 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1,\n 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026, 1.0006, 0.99998, 0.99998,\n 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,\n 0.99998, 0.99928, 1, 0.99977, 1.00013, 1.00055, 0.99947, 0.99945, 0.99941,\n 0.99924, 1.00001, 1.00001, 1.0004, 0.91621, 1.00001, 1.00026, 0.99977,\n 1.00022, 1.0006, 1.00001, 1.00005, 0.99999, 0.99977, 1.00015, 1.00022,\n 0.99977, 1.00001, 0.99973, 1.00026, 1.00001, 1.00019, 1.00001, 0.99946, 1,\n 1.0006, 1.00001, 0.99978, 1.00045, 0.99973, 0.99924, 1.00023, 0.99978,\n 0.99966, 1, 1.00065, 1.00045, 1.00019, 0.99973, 0.99973, 0.99924, 1, 1,\n 0.96499, 1, 1.00055, 0.99973, 1.00008, 1.00027, 1, 0.9997, 0.99995, 1.00023,\n 0.99933, 1.00019, 1.00015, 1.00031, 0.99924, 1.00023, 0.99973, 1.00023,\n 1.00031, 1.00001, 0.99928, 1.00029, 1.00092, 1.00035, 1.00001, 1.0006, 1.0006,\n 1, 0.99988, 0.99975, 1, 1.00082, 0.99561, 0.9996, 1.00035, 1.00001, 0.99962,\n 1.00001, 1.00092, 0.99964, 1.00001, 0.99963, 0.99999, 1.00035, 1.00035,\n 1.00082, 0.99962, 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977,\n 1.00026, 0.9996, 0.99967, 1.00001, 1.00034, 1.00074, 1.00054, 1.00053,\n 1.00063, 0.99971, 0.99962, 1.00035, 0.99975, 0.99977, 0.99973, 1.00043,\n 0.99953, 1.0007, 0.99915, 0.99973, 1.00008, 0.99892, 1.00073, 1.00073,\n 1.00114, 0.99915, 1.00073, 0.99955, 0.99973, 1.00092, 0.99973, 1, 0.99998, 1,\n 1.0003, 1, 1.00043, 1.00001, 0.99969, 1.0003, 1, 1.00035, 1.00001, 0.9995, 1,\n 1.00092, 0.99973, 0.99973, 0.99973, 1.0007, 0.9995, 1, 0.99924, 1.0006,\n 0.99924, 0.99972, 1.00062, 0.99973, 1.00114, 1.00073, 1, 0.99955, 1, 1,\n 1.00047, 0.99968, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977,\n 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924,\n 0.99998, 0.99998, 0.99998, 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999,\n 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973,\n 0.99971, 0.99925, 1.00023, 1, 0.99991, 0.99984, 1.00002, 1.00002, 1.00002,\n 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003, 0.8254,\n 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031,\n 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,\n 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026,\n 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999, 1.40483, 1,\n 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst HelveticaRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\nexport {\n HelveticaBoldFactors,\n HelveticaBoldItalicFactors,\n HelveticaBoldItalicMetrics,\n HelveticaBoldMetrics,\n HelveticaItalicFactors,\n HelveticaItalicMetrics,\n HelveticaRegularFactors,\n HelveticaRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Widths of glyphs in LiberationSans-Bold.ttf.\nconst LiberationSansBoldWidths = [\n 365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333,\n 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556,\n 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611,\n 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778,\n 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611,\n 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556,\n 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 719, 722, 611, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611,\n 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278,\n 278, 785, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 385, 611,\n 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778,\n 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556,\n 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722,\n 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611,\n 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 465, 722, 333, 853, 906,\n 474, 825, 927, 838, 278, 722, 722, 601, 719, 667, 611, 722, 778, 278, 722,\n 667, 833, 722, 644, 778, 722, 667, 600, 611, 667, 821, 667, 809, 802, 278,\n 667, 615, 451, 611, 278, 582, 615, 610, 556, 606, 475, 460, 611, 541, 278,\n 558, 556, 612, 556, 445, 611, 766, 619, 520, 684, 446, 582, 715, 576, 753,\n 845, 278, 582, 611, 582, 845, 667, 669, 885, 567, 711, 667, 278, 276, 556,\n 1094, 1062, 875, 610, 722, 622, 719, 722, 719, 722, 567, 712, 667, 904, 626,\n 719, 719, 610, 702, 833, 722, 778, 719, 667, 722, 611, 622, 854, 667, 730,\n 703, 1005, 1019, 870, 979, 719, 711, 1031, 719, 556, 618, 615, 417, 635, 556,\n 709, 497, 615, 615, 500, 635, 740, 604, 611, 604, 611, 556, 490, 556, 875,\n 556, 615, 581, 833, 844, 729, 854, 615, 552, 854, 583, 556, 556, 611, 417,\n 552, 556, 278, 281, 278, 969, 906, 611, 500, 615, 556, 604, 778, 611, 487,\n 447, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552,\n 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333,\n 333, 604, 333, 167, 396, 556, 556, 1094, 556, 885, 489, 1115, 1000, 768, 600,\n 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333,\n 333, 333, 333, 333, 333,\n];\n\n// Char code of glyphs in LiberationSans-Bold.ttf.\nconst LiberationSansBoldMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-BoldItalic.ttf.\nconst LiberationSansBoldItalicWidths = [\n 365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333,\n 584, 584, 584, 611, 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556,\n 722, 611, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 333, 278, 333, 584, 556, 333, 556, 611, 556, 611, 556, 333, 611, 611,\n 278, 278, 556, 278, 889, 611, 611, 611, 611, 389, 556, 333, 611, 556, 778,\n 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556, 280, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 556, 556, 556, 556, 556, 278, 278, 278, 278, 611, 611, 611, 611, 611,\n 611, 611, 549, 611, 611, 611, 611, 611, 556, 611, 556, 722, 556, 722, 556,\n 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 740, 722, 611, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611, 778, 611, 778, 611,\n 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278, 278, 278,\n 278, 782, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 396, 611,\n 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778,\n 611, 778, 611, 1000, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556,\n 667, 556, 667, 556, 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722,\n 611, 722, 611, 722, 611, 722, 611, 944, 778, 667, 556, 667, 611, 500, 611,\n 500, 611, 500, 278, 556, 722, 556, 1000, 889, 778, 611, 667, 556, 611, 333,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 722, 333, 854, 906,\n 473, 844, 930, 847, 278, 722, 722, 610, 671, 667, 611, 722, 778, 278, 722,\n 667, 833, 722, 657, 778, 718, 667, 590, 611, 667, 822, 667, 829, 781, 278,\n 667, 620, 479, 611, 278, 591, 620, 621, 556, 610, 479, 492, 611, 558, 278,\n 566, 556, 603, 556, 450, 611, 712, 605, 532, 664, 409, 591, 704, 578, 773,\n 834, 278, 591, 611, 591, 834, 667, 667, 886, 614, 719, 667, 278, 278, 556,\n 1094, 1042, 854, 622, 719, 677, 719, 722, 708, 722, 614, 722, 667, 927, 643,\n 719, 719, 615, 687, 833, 722, 778, 719, 667, 722, 611, 677, 781, 667, 729,\n 708, 979, 989, 854, 1000, 708, 719, 1042, 729, 556, 619, 604, 534, 618, 556,\n 736, 510, 611, 611, 507, 622, 740, 604, 611, 611, 611, 556, 889, 556, 885,\n 556, 646, 583, 889, 935, 707, 854, 594, 552, 865, 589, 556, 556, 611, 469,\n 563, 556, 278, 278, 278, 969, 906, 611, 507, 619, 556, 611, 778, 611, 575,\n 467, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1000, 1000, 552,\n 278, 278, 278, 278, 500, 500, 500, 556, 556, 350, 1000, 1000, 240, 479, 333,\n 333, 604, 333, 167, 396, 556, 556, 1104, 556, 885, 516, 1146, 1000, 768, 600,\n 834, 834, 834, 834, 999, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 722, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 611, 611, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333,\n 333, 333, 333, 333, 333,\n];\n\n// Char code of glyphs in LiberationSans-BoldItalic.ttf.\nconst LiberationSansBoldItalicMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-Italic.ttf.\nconst LiberationSansItalicWidths = [\n 365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278,\n 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500,\n 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556,\n 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722,\n 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556,\n 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556,\n 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 625, 722, 556, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556,\n 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278,\n 278, 733, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 281, 556,\n 400, 556, 222, 722, 556, 722, 556, 722, 556, 615, 723, 556, 778, 556, 778,\n 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500,\n 667, 500, 667, 500, 611, 278, 611, 354, 611, 278, 722, 556, 722, 556, 722,\n 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611,\n 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 789, 846,\n 389, 794, 865, 775, 222, 667, 667, 570, 671, 667, 611, 722, 778, 278, 667,\n 667, 833, 722, 648, 778, 725, 667, 600, 611, 667, 837, 667, 831, 761, 278,\n 667, 570, 439, 555, 222, 550, 570, 571, 500, 556, 439, 463, 555, 542, 222,\n 500, 492, 548, 500, 447, 556, 670, 573, 486, 603, 374, 550, 652, 546, 728,\n 779, 222, 550, 556, 550, 779, 667, 667, 843, 544, 708, 667, 278, 278, 500,\n 1066, 982, 844, 589, 715, 639, 724, 667, 651, 667, 544, 704, 667, 917, 614,\n 715, 715, 589, 686, 833, 722, 778, 725, 667, 722, 611, 639, 795, 667, 727,\n 673, 920, 923, 805, 886, 651, 694, 1022, 682, 556, 562, 522, 493, 553, 556,\n 688, 465, 556, 556, 472, 564, 686, 550, 556, 556, 556, 500, 833, 500, 835,\n 500, 572, 518, 830, 851, 621, 736, 526, 492, 752, 534, 556, 556, 556, 378,\n 496, 500, 222, 222, 222, 910, 828, 556, 472, 565, 500, 556, 778, 556, 492,\n 339, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552,\n 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333,\n 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1083, 1000, 768, 600,\n 834, 834, 834, 834, 1000, 500, 998, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 719, 274, 549, 549, 584, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324,\n 324, 316, 328, 398, 285,\n];\n\n// Char code of glyphs in LiberationSans-Italic.ttf.\nconst LiberationSansItalicMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\n// Widths of glyphs in LiberationSans-Regular.ttf.\nconst LiberationSansRegularWidths = [\n 365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278,\n 333, 278, 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278,\n 584, 584, 584, 556, 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500,\n 667, 556, 833, 722, 778, 667, 778, 722, 667, 611, 722, 667, 944, 667, 667,\n 611, 278, 278, 278, 469, 556, 333, 556, 556, 500, 556, 556, 278, 556, 556,\n 222, 222, 500, 222, 833, 556, 556, 556, 556, 333, 500, 278, 556, 500, 722,\n 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556, 260, 556, 333,\n 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278, 333,\n 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1000, 722,\n 667, 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778,\n 584, 778, 722, 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556,\n 889, 500, 556, 556, 556, 556, 278, 278, 278, 278, 556, 556, 556, 556, 556,\n 556, 556, 549, 611, 556, 556, 556, 556, 500, 556, 500, 667, 556, 667, 556,\n 667, 556, 722, 500, 722, 500, 722, 500, 722, 500, 722, 615, 722, 556, 667,\n 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556, 778, 556, 778, 556,\n 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278, 222, 278,\n 278, 735, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 292, 556,\n 334, 556, 222, 722, 556, 722, 556, 722, 556, 604, 723, 556, 778, 556, 778,\n 556, 778, 556, 1000, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500,\n 667, 500, 667, 500, 611, 278, 611, 375, 611, 278, 722, 556, 722, 556, 722,\n 556, 722, 556, 722, 556, 722, 556, 944, 722, 667, 500, 667, 611, 500, 611,\n 500, 611, 500, 222, 556, 667, 556, 1000, 889, 778, 611, 667, 500, 611, 278,\n 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 667, 278, 784, 838,\n 384, 774, 855, 752, 222, 667, 667, 551, 668, 667, 611, 722, 778, 278, 667,\n 668, 833, 722, 650, 778, 722, 667, 618, 611, 667, 798, 667, 835, 748, 278,\n 667, 578, 446, 556, 222, 547, 578, 575, 500, 557, 446, 441, 556, 556, 222,\n 500, 500, 576, 500, 448, 556, 690, 569, 482, 617, 395, 547, 648, 525, 713,\n 781, 222, 547, 556, 547, 781, 667, 667, 865, 542, 719, 667, 278, 278, 500,\n 1057, 1010, 854, 583, 722, 635, 719, 667, 656, 667, 542, 677, 667, 923, 604,\n 719, 719, 583, 656, 833, 722, 778, 719, 667, 722, 611, 635, 760, 667, 740,\n 667, 917, 938, 792, 885, 656, 719, 1010, 722, 556, 573, 531, 365, 583, 556,\n 669, 458, 559, 559, 438, 583, 688, 552, 556, 542, 556, 500, 458, 500, 823,\n 500, 573, 521, 802, 823, 625, 719, 521, 510, 750, 542, 556, 556, 556, 365,\n 510, 500, 222, 278, 222, 906, 812, 556, 438, 559, 500, 552, 778, 556, 489,\n 411, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1000, 1000, 552,\n 222, 222, 222, 222, 333, 333, 333, 556, 556, 350, 1000, 1000, 188, 354, 333,\n 333, 500, 333, 167, 365, 556, 556, 1094, 556, 885, 323, 1073, 1000, 768, 600,\n 834, 834, 834, 834, 1000, 500, 1000, 500, 1000, 500, 500, 494, 612, 823, 713,\n 584, 549, 713, 979, 719, 274, 549, 549, 583, 549, 549, 604, 584, 604, 604,\n 708, 625, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,\n 708, 708, 729, 604, 604, 354, 354, 1000, 990, 990, 990, 990, 494, 604, 604,\n 604, 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750,\n 500, 500, 333, 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324,\n 324, 316, 328, 398, 285,\n];\n\n// Char code of glyphs in LiberationSans-Regular.ttf.\nconst LiberationSansRegularMapping = [\n -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,\n 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,\n 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,\n 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,\n 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163, 164, 165, 166, 167,\n 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,\n 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,\n 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,\n 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,\n 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,\n 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,\n 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,\n 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,\n 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,\n 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,\n 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,\n 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,\n 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,\n 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,\n 379, 380, 381, 382, 383, 402, 506, 507, 508, 509, 510, 511, 536, 537, 538,\n 539, 710, 711, 713, 728, 729, 730, 731, 732, 733, 900, 901, 902, 903, 904,\n 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921,\n 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937,\n 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,\n 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967,\n 968, 969, 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030,\n 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043,\n 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056,\n 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,\n 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082,\n 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095,\n 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108,\n 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1138, 1139,\n 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923, 8208, 8209, 8211,\n 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224, 8225, 8226,\n 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356, 8359,\n 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,\n 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735,\n 8745, 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474,\n 9484, 9488, 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555,\n 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568,\n 9569, 9570, 9571, 9572, 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600,\n 9604, 9608, 9612, 9616, 9617, 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650,\n 9658, 9660, 9668, 9674, 9675, 9679, 9688, 9689, 9702, 9786, 9787, 9788, 9792,\n 9794, 9824, 9827, 9829, 9830, 9834, 9835, 9836, 61441, 61442, 61445, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n];\n\nexport {\n LiberationSansBoldItalicMapping,\n LiberationSansBoldItalicWidths,\n LiberationSansBoldMapping,\n LiberationSansBoldWidths,\n LiberationSansItalicMapping,\n LiberationSansItalicWidths,\n LiberationSansRegularMapping,\n LiberationSansRegularWidths,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as MyriadPro-Bold.otf.\nconst MyriadProBoldFactors = [\n 1.36898, 1, 1, 0.72706, 0.80479, 0.83734, 0.98894, 0.99793, 0.9897, 0.93884,\n 0.86209, 0.94292, 0.94292, 1.16661, 1.02058, 0.93582, 0.96694, 0.93582,\n 1.19137, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793,\n 0.99793, 0.99793, 0.99793, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058,\n 0.72851, 0.78966, 0.90838, 0.83637, 0.82391, 0.96376, 0.80061, 0.86275,\n 0.8768, 0.95407, 1.0258, 0.73901, 0.85022, 0.83655, 1.0156, 0.95546, 0.92179,\n 0.87107, 0.92179, 0.82114, 0.8096, 0.89713, 0.94438, 0.95353, 0.94083,\n 0.91905, 0.90406, 0.9446, 0.94292, 1.18777, 0.94292, 1.02058, 0.89903,\n 0.90088, 0.94938, 0.97898, 0.81093, 0.97571, 0.94938, 1.024, 0.9577, 0.95933,\n 0.98621, 1.0474, 0.97455, 0.98981, 0.9672, 0.95933, 0.9446, 0.97898, 0.97407,\n 0.97646, 0.78036, 1.10208, 0.95442, 0.95298, 0.97579, 0.9332, 0.94039, 0.938,\n 0.80687, 1.01149, 0.80687, 1.02058, 0.80479, 0.99793, 0.99793, 0.99793,\n 0.99793, 1.01149, 1.00872, 0.90088, 0.91882, 1.0213, 0.8361, 1.02058, 0.62295,\n 0.54324, 0.89022, 1.08595, 1, 1, 0.90088, 1, 0.97455, 0.93582, 0.90088, 1,\n 1.05686, 0.8361, 0.99642, 0.99642, 0.99642, 0.72851, 0.90838, 0.90838,\n 0.90838, 0.90838, 0.90838, 0.90838, 0.868, 0.82391, 0.80061, 0.80061, 0.80061,\n 0.80061, 1.0258, 1.0258, 1.0258, 1.0258, 0.97484, 0.95546, 0.92179, 0.92179,\n 0.92179, 0.92179, 0.92179, 1.02058, 0.92179, 0.94438, 0.94438, 0.94438,\n 0.94438, 0.90406, 0.86958, 0.98225, 0.94938, 0.94938, 0.94938, 0.94938,\n 0.94938, 0.94938, 0.9031, 0.81093, 0.94938, 0.94938, 0.94938, 0.94938,\n 0.98621, 0.98621, 0.98621, 0.98621, 0.93969, 0.95933, 0.9446, 0.9446, 0.9446,\n 0.9446, 0.9446, 1.08595, 0.9446, 0.95442, 0.95442, 0.95442, 0.95442, 0.94039,\n 0.97898, 0.94039, 0.90838, 0.94938, 0.90838, 0.94938, 0.90838, 0.94938,\n 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093,\n 0.96376, 0.84313, 0.97484, 0.97571, 0.80061, 0.94938, 0.80061, 0.94938,\n 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938, 0.8768, 0.9577, 0.8768,\n 0.9577, 0.8768, 0.9577, 1, 1, 0.95407, 0.95933, 0.97069, 0.95933, 1.0258,\n 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258, 0.98621,\n 0.887, 1.01591, 0.73901, 1.0474, 1, 1, 0.97455, 0.83655, 0.98981, 1, 1,\n 0.83655, 0.73977, 0.83655, 0.73903, 0.84638, 1.033, 0.95546, 0.95933, 1, 1,\n 0.95546, 0.95933, 0.8271, 0.95417, 0.95933, 0.92179, 0.9446, 0.92179, 0.9446,\n 0.92179, 0.9446, 0.936, 0.91964, 0.82114, 0.97646, 1, 1, 0.82114, 0.97646,\n 0.8096, 0.78036, 0.8096, 0.78036, 1, 1, 0.8096, 0.78036, 1, 1, 0.89713,\n 0.77452, 0.89713, 1.10208, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438,\n 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94083,\n 0.97579, 0.90406, 0.94039, 0.90406, 0.9446, 0.938, 0.9446, 0.938, 0.9446,\n 0.938, 1, 0.99793, 0.90838, 0.94938, 0.868, 0.9031, 0.92179, 0.9446, 1, 1,\n 0.89713, 1.10208, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088,\n 0.90088, 0.90088, 0.90088, 0.90989, 0.9358, 0.91945, 0.83181, 0.75261,\n 0.87992, 0.82976, 0.96034, 0.83689, 0.97268, 1.0078, 0.90838, 0.83637, 0.8019,\n 0.90157, 0.80061, 0.9446, 0.95407, 0.92436, 1.0258, 0.85022, 0.97153, 1.0156,\n 0.95546, 0.89192, 0.92179, 0.92361, 0.87107, 0.96318, 0.89713, 0.93704,\n 0.95638, 0.91905, 0.91709, 0.92796, 1.0258, 0.93704, 0.94836, 1.0373, 0.95933,\n 1.0078, 0.95871, 0.94836, 0.96174, 0.92601, 0.9498, 0.98607, 0.95776, 0.95933,\n 1.05453, 1.0078, 0.98275, 0.9314, 0.95617, 0.91701, 1.05993, 0.9446, 0.78367,\n 0.9553, 1, 0.86832, 1.0128, 0.95871, 0.99394, 0.87548, 0.96361, 0.86774,\n 1.0078, 0.95871, 0.9446, 0.95871, 0.86774, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.94083, 0.97579, 0.94083, 0.97579, 0.94083,\n 0.97579, 0.90406, 0.94039, 0.96694, 1, 0.89903, 1, 1, 1, 0.93582, 0.93582,\n 0.93582, 1, 0.908, 0.908, 0.918, 0.94219, 0.94219, 0.96544, 1, 1.285, 1, 1,\n 0.81079, 0.81079, 1, 1, 0.74854, 1, 1, 1, 1, 0.99793, 1, 1, 1, 0.65, 1,\n 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.17173, 1, 0.80535, 0.76169,\n 1.02058, 1.0732, 1.05486, 1, 1, 1.30692, 1.08595, 1.08595, 1, 1.08595,\n 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.16161, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as MyriadPro-BoldIt.otf.\nconst MyriadProBoldItalicFactors = [\n 1.36898, 1, 1, 0.66227, 0.80779, 0.81625, 0.97276, 0.97276, 0.97733, 0.92222,\n 0.83266, 0.94292, 0.94292, 1.16148, 1.02058, 0.93582, 0.96694, 0.93582,\n 1.17337, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276,\n 0.97276, 0.97276, 0.97276, 0.78076, 0.78076, 1.02058, 1.02058, 1.02058,\n 0.71541, 0.76813, 0.85576, 0.80591, 0.80729, 0.94299, 0.77512, 0.83655,\n 0.86523, 0.92222, 0.98621, 0.71743, 0.81698, 0.79726, 0.98558, 0.92222,\n 0.90637, 0.83809, 0.90637, 0.80729, 0.76463, 0.86275, 0.90699, 0.91605,\n 0.9154, 0.85308, 0.85458, 0.90531, 0.94292, 1.21296, 0.94292, 1.02058,\n 0.89903, 1.18616, 0.99613, 0.91677, 0.78216, 0.91677, 0.90083, 0.98796,\n 0.9135, 0.92168, 0.95381, 0.98981, 0.95298, 0.95381, 0.93459, 0.92168,\n 0.91513, 0.92004, 0.91677, 0.95077, 0.748, 1.04502, 0.91677, 0.92061, 0.94236,\n 0.89544, 0.89364, 0.9, 0.80687, 0.8578, 0.80687, 1.02058, 0.80779, 0.97276,\n 0.97276, 0.97276, 0.97276, 0.8578, 0.99973, 1.18616, 0.91339, 1.08074,\n 0.82891, 1.02058, 0.55509, 0.71526, 0.89022, 1.08595, 1, 1, 1.18616, 1,\n 0.96736, 0.93582, 1.18616, 1, 1.04864, 0.82711, 0.99043, 0.99043, 0.99043,\n 0.71541, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.845, 0.80729,\n 0.77512, 0.77512, 0.77512, 0.77512, 0.98621, 0.98621, 0.98621, 0.98621,\n 0.95961, 0.92222, 0.90637, 0.90637, 0.90637, 0.90637, 0.90637, 1.02058,\n 0.90251, 0.90699, 0.90699, 0.90699, 0.90699, 0.85458, 0.83659, 0.94951,\n 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.99613, 0.85811, 0.78216,\n 0.90083, 0.90083, 0.90083, 0.90083, 0.95381, 0.95381, 0.95381, 0.95381,\n 0.9135, 0.92168, 0.91513, 0.91513, 0.91513, 0.91513, 0.91513, 1.08595,\n 0.91677, 0.91677, 0.91677, 0.91677, 0.91677, 0.89364, 0.92332, 0.89364,\n 0.85576, 0.99613, 0.85576, 0.99613, 0.85576, 0.99613, 0.80729, 0.78216,\n 0.80729, 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.94299, 0.76783,\n 0.95961, 0.91677, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083,\n 0.77512, 0.90083, 0.77512, 0.90083, 0.86523, 0.9135, 0.86523, 0.9135, 0.86523,\n 0.9135, 1, 1, 0.92222, 0.92168, 0.92222, 0.92168, 0.98621, 0.95381, 0.98621,\n 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.86036,\n 0.97096, 0.71743, 0.98981, 1, 1, 0.95298, 0.79726, 0.95381, 1, 1, 0.79726,\n 0.6894, 0.79726, 0.74321, 0.81691, 1.0006, 0.92222, 0.92168, 1, 1, 0.92222,\n 0.92168, 0.79464, 0.92098, 0.92168, 0.90637, 0.91513, 0.90637, 0.91513,\n 0.90637, 0.91513, 0.909, 0.87514, 0.80729, 0.95077, 1, 1, 0.80729, 0.95077,\n 0.76463, 0.748, 0.76463, 0.748, 1, 1, 0.76463, 0.748, 1, 1, 0.86275, 0.72651,\n 0.86275, 1.04502, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677,\n 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.9154, 0.94236,\n 0.85458, 0.89364, 0.85458, 0.90531, 0.9, 0.90531, 0.9, 0.90531, 0.9, 1,\n 0.97276, 0.85576, 0.99613, 0.845, 0.85811, 0.90251, 0.91677, 1, 1, 0.86275,\n 1.04502, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616,\n 1.18616, 1.18616, 1.00899, 1.30628, 0.85576, 0.80178, 0.66862, 0.7927,\n 0.69323, 0.88127, 0.72459, 0.89711, 0.95381, 0.85576, 0.80591, 0.7805,\n 0.94729, 0.77512, 0.90531, 0.92222, 0.90637, 0.98621, 0.81698, 0.92655,\n 0.98558, 0.92222, 0.85359, 0.90637, 0.90976, 0.83809, 0.94523, 0.86275,\n 0.83509, 0.93157, 0.85308, 0.83392, 0.92346, 0.98621, 0.83509, 0.92886,\n 0.91324, 0.92168, 0.95381, 0.90646, 0.92886, 0.90557, 0.86847, 0.90276,\n 0.91324, 0.86842, 0.92168, 0.99531, 0.95381, 0.9224, 0.85408, 0.92699,\n 0.86847, 1.0051, 0.91513, 0.80487, 0.93481, 1, 0.88159, 1.05214, 0.90646,\n 0.97355, 0.81539, 0.89398, 0.85923, 0.95381, 0.90646, 0.91513, 0.90646,\n 0.85923, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 0.9154, 0.94236, 0.9154, 0.94236, 0.9154, 0.94236, 0.85458, 0.89364, 0.96694,\n 1, 0.89903, 1, 1, 1, 0.91782, 0.91782, 0.91782, 1, 0.896, 0.896, 0.896,\n 0.9332, 0.9332, 0.95973, 1, 1.26, 1, 1, 0.80479, 0.80178, 1, 1, 0.85633, 1, 1,\n 1, 1, 0.97276, 1, 1, 1, 0.698, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1.14542, 1, 0.79199, 0.78694, 1.02058, 1.03493, 1.05486, 1, 1, 1.23026,\n 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.20006, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProBoldItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as MyriadPro-It.otf.\nconst MyriadProItalicFactors = [\n 1.36898, 1, 1, 0.65507, 0.84943, 0.85639, 0.88465, 0.88465, 0.86936, 0.88307,\n 0.86948, 0.85283, 0.85283, 1.06383, 1.02058, 0.75945, 0.9219, 0.75945,\n 1.17337, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465,\n 0.88465, 0.88465, 0.88465, 0.75945, 0.75945, 1.02058, 1.02058, 1.02058,\n 0.69046, 0.70926, 0.85158, 0.77812, 0.76852, 0.89591, 0.70466, 0.76125,\n 0.80094, 0.86822, 0.83864, 0.728, 0.77212, 0.79475, 0.93637, 0.87514, 0.8588,\n 0.76013, 0.8588, 0.72421, 0.69866, 0.77598, 0.85991, 0.80811, 0.87832,\n 0.78112, 0.77512, 0.8562, 1.0222, 1.18417, 1.0222, 1.27014, 0.89903, 1.15012,\n 0.93859, 0.94399, 0.846, 0.94399, 0.81453, 1.0186, 0.94219, 0.96017, 1.03075,\n 1.02175, 0.912, 1.03075, 0.96998, 0.96017, 0.93859, 0.94399, 0.94399, 0.95493,\n 0.746, 1.12658, 0.94578, 0.91, 0.979, 0.882, 0.882, 0.83, 0.85034, 0.83537,\n 0.85034, 1.02058, 0.70869, 0.88465, 0.88465, 0.88465, 0.88465, 0.83537,\n 0.90083, 1.15012, 0.9161, 0.94565, 0.73541, 1.02058, 0.53609, 0.69353,\n 0.79519, 1.08595, 1, 1, 1.15012, 1, 0.91974, 0.75945, 1.15012, 1, 0.9446,\n 0.73361, 0.9005, 0.9005, 0.9005, 0.62864, 0.85158, 0.85158, 0.85158, 0.85158,\n 0.85158, 0.85158, 0.773, 0.76852, 0.70466, 0.70466, 0.70466, 0.70466, 0.83864,\n 0.83864, 0.83864, 0.83864, 0.90561, 0.87514, 0.8588, 0.8588, 0.8588, 0.8588,\n 0.8588, 1.02058, 0.85751, 0.85991, 0.85991, 0.85991, 0.85991, 0.77512,\n 0.76013, 0.88075, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859,\n 0.8075, 0.846, 0.81453, 0.81453, 0.81453, 0.81453, 0.82424, 0.82424, 0.82424,\n 0.82424, 0.9278, 0.96017, 0.93859, 0.93859, 0.93859, 0.93859, 0.93859,\n 1.08595, 0.8562, 0.94578, 0.94578, 0.94578, 0.94578, 0.882, 0.94578, 0.882,\n 0.85158, 0.93859, 0.85158, 0.93859, 0.85158, 0.93859, 0.76852, 0.846, 0.76852,\n 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.89591, 0.8544, 0.90561, 0.94399,\n 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453,\n 0.70466, 0.81453, 0.80094, 0.94219, 0.80094, 0.94219, 0.80094, 0.94219, 1, 1,\n 0.86822, 0.96017, 0.86822, 0.96017, 0.83864, 0.82424, 0.83864, 0.82424,\n 0.83864, 0.82424, 0.83864, 1.03075, 0.83864, 0.82424, 0.81402, 1.02738, 0.728,\n 1.02175, 1, 1, 0.912, 0.79475, 1.03075, 1, 1, 0.79475, 0.83911, 0.79475,\n 0.66266, 0.80553, 1.06676, 0.87514, 0.96017, 1, 1, 0.87514, 0.96017, 0.86865,\n 0.87396, 0.96017, 0.8588, 0.93859, 0.8588, 0.93859, 0.8588, 0.93859, 0.867,\n 0.84759, 0.72421, 0.95493, 1, 1, 0.72421, 0.95493, 0.69866, 0.746, 0.69866,\n 0.746, 1, 1, 0.69866, 0.746, 1, 1, 0.77598, 0.88417, 0.77598, 1.12658,\n 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578,\n 0.85991, 0.94578, 0.85991, 0.94578, 0.87832, 0.979, 0.77512, 0.882, 0.77512,\n 0.8562, 0.83, 0.8562, 0.83, 0.8562, 0.83, 1, 0.88465, 0.85158, 0.93859, 0.773,\n 0.8075, 0.85751, 0.8562, 1, 1, 0.77598, 1.12658, 1.15012, 1.15012, 1.15012,\n 1.15012, 1.15012, 1.15313, 1.15012, 1.15012, 1.15012, 1.08106, 1.03901,\n 0.85158, 0.77025, 0.62264, 0.7646, 0.65351, 0.86026, 0.69461, 0.89947,\n 1.03075, 0.85158, 0.77812, 0.76449, 0.88836, 0.70466, 0.8562, 0.86822, 0.8588,\n 0.83864, 0.77212, 0.85308, 0.93637, 0.87514, 0.82352, 0.8588, 0.85701,\n 0.76013, 0.89058, 0.77598, 0.8156, 0.82565, 0.78112, 0.77899, 0.89386,\n 0.83864, 0.8156, 0.9486, 0.92388, 0.96186, 1.03075, 0.91123, 0.9486, 0.93298,\n 0.878, 0.93942, 0.92388, 0.84596, 0.96186, 0.95119, 1.03075, 0.922, 0.88787,\n 0.95829, 0.88, 0.93559, 0.93859, 0.78815, 0.93758, 1, 0.89217, 1.03737,\n 0.91123, 0.93969, 0.77487, 0.85769, 0.86799, 1.03075, 0.91123, 0.93859,\n 0.91123, 0.86799, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 0.87832, 0.979, 0.87832, 0.979, 0.87832, 0.979, 0.77512, 0.882, 0.9219,\n 1, 0.89903, 1, 1, 1, 0.87321, 0.87321, 0.87321, 1, 1.027, 1.027, 1.027,\n 0.86847, 0.86847, 0.79121, 1, 1.124, 1, 1, 0.73572, 0.73572, 1, 1, 0.85034, 1,\n 1, 1, 1, 0.88465, 1, 1, 1, 0.669, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1.04828, 1, 0.74948, 0.75187, 1.02058, 0.98391, 1.02119, 1, 1, 1.06233,\n 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05233, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst MyriadProItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as MyriadPro-Regular.otf.\nconst MyriadProRegularFactors = [\n 1.36898, 1, 1, 0.76305, 0.82784, 0.94935, 0.89364, 0.92241, 0.89073, 0.90706,\n 0.98472, 0.85283, 0.85283, 1.0664, 1.02058, 0.74505, 0.9219, 0.74505, 1.23456,\n 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241,\n 0.92241, 0.92241, 0.74505, 0.74505, 1.02058, 1.02058, 1.02058, 0.73002,\n 0.72601, 0.91755, 0.8126, 0.80314, 0.92222, 0.73764, 0.79726, 0.83051,\n 0.90284, 0.86023, 0.74, 0.8126, 0.84869, 0.96518, 0.91115, 0.8858, 0.79761,\n 0.8858, 0.74498, 0.73914, 0.81363, 0.89591, 0.83659, 0.89633, 0.85608, 0.8111,\n 0.90531, 1.0222, 1.22736, 1.0222, 1.27014, 0.89903, 0.90088, 0.86667, 1.0231,\n 0.896, 1.01411, 0.90083, 1.05099, 1.00512, 0.99793, 1.05326, 1.09377, 0.938,\n 1.06226, 1.00119, 0.99793, 0.98714, 1.0231, 1.01231, 0.98196, 0.792, 1.19137,\n 0.99074, 0.962, 1.01915, 0.926, 0.942, 0.856, 0.85034, 0.92006, 0.85034,\n 1.02058, 0.69067, 0.92241, 0.92241, 0.92241, 0.92241, 0.92006, 0.9332,\n 0.90088, 0.91882, 0.93484, 0.75339, 1.02058, 0.56866, 0.54324, 0.79519,\n 1.08595, 1, 1, 0.90088, 1, 0.95325, 0.74505, 0.90088, 1, 0.97198, 0.75339,\n 0.91009, 0.91009, 0.91009, 0.66466, 0.91755, 0.91755, 0.91755, 0.91755,\n 0.91755, 0.91755, 0.788, 0.80314, 0.73764, 0.73764, 0.73764, 0.73764, 0.86023,\n 0.86023, 0.86023, 0.86023, 0.92915, 0.91115, 0.8858, 0.8858, 0.8858, 0.8858,\n 0.8858, 1.02058, 0.8858, 0.89591, 0.89591, 0.89591, 0.89591, 0.8111, 0.79611,\n 0.89713, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86936, 0.896,\n 0.90083, 0.90083, 0.90083, 0.90083, 0.84224, 0.84224, 0.84224, 0.84224,\n 0.97276, 0.99793, 0.98714, 0.98714, 0.98714, 0.98714, 0.98714, 1.08595,\n 0.89876, 0.99074, 0.99074, 0.99074, 0.99074, 0.942, 1.0231, 0.942, 0.91755,\n 0.86667, 0.91755, 0.86667, 0.91755, 0.86667, 0.80314, 0.896, 0.80314, 0.896,\n 0.80314, 0.896, 0.80314, 0.896, 0.92222, 0.93372, 0.92915, 1.01411, 0.73764,\n 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764,\n 0.90083, 0.83051, 1.00512, 0.83051, 1.00512, 0.83051, 1.00512, 1, 1, 0.90284,\n 0.99793, 0.90976, 0.99793, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023,\n 0.84224, 0.86023, 1.05326, 0.86023, 0.84224, 0.82873, 1.07469, 0.74, 1.09377,\n 1, 1, 0.938, 0.84869, 1.06226, 1, 1, 0.84869, 0.83704, 0.84869, 0.81441,\n 0.85588, 1.08927, 0.91115, 0.99793, 1, 1, 0.91115, 0.99793, 0.91887, 0.90991,\n 0.99793, 0.8858, 0.98714, 0.8858, 0.98714, 0.8858, 0.98714, 0.894, 0.91434,\n 0.74498, 0.98196, 1, 1, 0.74498, 0.98196, 0.73914, 0.792, 0.73914, 0.792, 1,\n 1, 0.73914, 0.792, 1, 1, 0.81363, 0.904, 0.81363, 1.19137, 0.89591, 0.99074,\n 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074,\n 0.89591, 0.99074, 0.89633, 1.01915, 0.8111, 0.942, 0.8111, 0.90531, 0.856,\n 0.90531, 0.856, 0.90531, 0.856, 1, 0.92241, 0.91755, 0.86667, 0.788, 0.86936,\n 0.8858, 0.89876, 1, 1, 0.81363, 1.19137, 0.90088, 0.90088, 0.90088, 0.90088,\n 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90388, 1.03901, 0.92138,\n 0.78105, 0.7154, 0.86169, 0.80513, 0.94007, 0.82528, 0.98612, 1.06226,\n 0.91755, 0.8126, 0.81884, 0.92819, 0.73764, 0.90531, 0.90284, 0.8858, 0.86023,\n 0.8126, 0.91172, 0.96518, 0.91115, 0.83089, 0.8858, 0.87791, 0.79761, 0.89297,\n 0.81363, 0.88157, 0.89992, 0.85608, 0.81992, 0.94307, 0.86023, 0.88157,\n 0.95308, 0.98699, 0.99793, 1.06226, 0.95817, 0.95308, 0.97358, 0.928, 0.98088,\n 0.98699, 0.92761, 0.99793, 0.96017, 1.06226, 0.986, 0.944, 0.95978, 0.938,\n 0.96705, 0.98714, 0.80442, 0.98972, 1, 0.89762, 1.04552, 0.95817, 0.99007,\n 0.87064, 0.91879, 0.88888, 1.06226, 0.95817, 0.98714, 0.95817, 0.88888, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89633, 1.01915,\n 0.89633, 1.01915, 0.89633, 1.01915, 0.8111, 0.942, 0.9219, 1, 0.89903, 1, 1,\n 1, 0.93173, 0.93173, 0.93173, 1, 1.06304, 1.06304, 1.06904, 0.89903, 0.89903,\n 0.80549, 1, 1.156, 1, 1, 0.76575, 0.76575, 1, 1, 0.72458, 1, 1, 1, 1, 0.92241,\n 1, 1, 1, 0.619, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.07257, 1,\n 0.74705, 0.71119, 1.02058, 1.024, 1.02119, 1, 1, 1.1536, 1.08595, 1.08595, 1,\n 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05638, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1,\n];\nconst MyriadProRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };\n\nexport {\n MyriadProBoldFactors,\n MyriadProBoldItalicFactors,\n MyriadProBoldItalicMetrics,\n MyriadProBoldMetrics,\n MyriadProItalicFactors,\n MyriadProItalicMetrics,\n MyriadProRegularFactors,\n MyriadProRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// Factors to rescale LiberationSans-Bold.ttf to have the same\n// metrics as segoeuib.ttf.\nconst SegoeuiBoldFactors = [\n 1.76738, 1, 1, 0.99297, 0.9824, 1.04016, 1.06497, 1.03424, 0.97529, 1.17647,\n 1.23203, 1.1085, 1.1085, 1.16939, 1.2107, 0.9754, 1.21408, 0.9754, 1.59578,\n 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424,\n 1.03424, 1.03424, 0.81378, 0.81378, 1.2107, 1.2107, 1.2107, 0.71703, 0.97847,\n 0.97363, 0.88776, 0.8641, 1.02096, 0.79795, 0.85132, 0.914, 1.06085, 1.1406,\n 0.8007, 0.89858, 0.83693, 1.14889, 1.09398, 0.97489, 0.92094, 0.97489,\n 0.90399, 0.84041, 0.95923, 1.00135, 1, 1.06467, 0.98243, 0.90996, 0.99361,\n 1.1085, 1.56942, 1.1085, 1.2107, 0.74627, 0.94282, 0.96752, 1.01519, 0.86304,\n 1.01359, 0.97278, 1.15103, 1.01359, 0.98561, 1.02285, 1.02285, 1.00527,\n 1.02285, 1.0302, 0.99041, 1.0008, 1.01519, 1.01359, 1.02258, 0.79104, 1.16862,\n 0.99041, 0.97454, 1.02511, 0.99298, 0.96752, 0.95801, 0.94856, 1.16579,\n 0.94856, 1.2107, 0.9824, 1.03424, 1.03424, 1, 1.03424, 1.16579, 0.8727,\n 1.3871, 1.18622, 1.10818, 1.04478, 1.2107, 1.18622, 0.75155, 0.94994, 1.28826,\n 1.21408, 1.21408, 0.91056, 1, 0.91572, 0.9754, 0.64663, 1.18328, 1.24866,\n 1.04478, 1.14169, 1.15749, 1.17389, 0.71703, 0.97363, 0.97363, 0.97363,\n 0.97363, 0.97363, 0.97363, 0.93506, 0.8641, 0.79795, 0.79795, 0.79795,\n 0.79795, 1.1406, 1.1406, 1.1406, 1.1406, 1.02096, 1.09398, 0.97426, 0.97426,\n 0.97426, 0.97426, 0.97426, 1.2107, 0.97489, 1.00135, 1.00135, 1.00135,\n 1.00135, 0.90996, 0.92094, 1.02798, 0.96752, 0.96752, 0.96752, 0.96752,\n 0.96752, 0.96752, 0.93136, 0.86304, 0.97278, 0.97278, 0.97278, 0.97278,\n 1.02285, 1.02285, 1.02285, 1.02285, 0.97122, 0.99041, 1, 1, 1, 1, 1, 1.28826,\n 1.0008, 0.99041, 0.99041, 0.99041, 0.99041, 0.96752, 1.01519, 0.96752,\n 0.97363, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.8641, 0.86304, 0.8641,\n 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 1.02096, 1.03057, 1.02096, 1.03517,\n 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278,\n 0.79795, 0.97278, 0.914, 1.01359, 0.914, 1.01359, 0.914, 1.01359, 1, 1,\n 1.06085, 0.98561, 1.06085, 1.00879, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406,\n 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 0.97138, 1.08692, 0.8007, 1.02285,\n 1, 1, 1.00527, 0.83693, 1.02285, 1, 1, 0.83693, 0.9455, 0.83693, 0.90418,\n 0.83693, 1.13005, 1.09398, 0.99041, 1, 1, 1.09398, 0.99041, 0.96692, 1.09251,\n 0.99041, 0.97489, 1.0008, 0.97489, 1.0008, 0.97489, 1.0008, 0.93994, 0.97931,\n 0.90399, 1.02258, 1, 1, 0.90399, 1.02258, 0.84041, 0.79104, 0.84041, 0.79104,\n 0.84041, 0.79104, 0.84041, 0.79104, 1, 1, 0.95923, 1.07034, 0.95923, 1.16862,\n 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041,\n 1.00135, 0.99041, 1.00135, 0.99041, 1.06467, 1.02511, 0.90996, 0.96752,\n 0.90996, 0.99361, 0.95801, 0.99361, 0.95801, 0.99361, 0.95801, 1.07733,\n 1.03424, 0.97363, 0.96752, 0.93506, 0.93136, 0.97489, 1.0008, 1, 1, 0.95923,\n 1.16862, 1.15103, 1.15103, 1.01173, 1.03959, 0.75953, 0.81378, 0.79912,\n 1.15103, 1.21994, 0.95161, 0.87815, 1.01149, 0.81525, 0.7676, 0.98167,\n 1.01134, 1.02546, 0.84097, 1.03089, 1.18102, 0.97363, 0.88776, 0.85134,\n 0.97826, 0.79795, 0.99361, 1.06085, 0.97489, 1.1406, 0.89858, 1.0388, 1.14889,\n 1.09398, 0.86039, 0.97489, 1.0595, 0.92094, 0.94793, 0.95923, 0.90996,\n 0.99346, 0.98243, 1.02112, 0.95493, 1.1406, 0.90996, 1.03574, 1.02597, 1.0008,\n 1.18102, 1.06628, 1.03574, 1.0192, 1.01932, 1.00886, 0.97531, 1.0106, 1.0008,\n 1.13189, 1.18102, 1.02277, 0.98683, 1.0016, 0.99561, 1.07237, 1.0008, 0.90434,\n 0.99921, 0.93803, 0.8965, 1.23085, 1.06628, 1.04983, 0.96268, 1.0499, 0.98439,\n 1.18102, 1.06628, 1.0008, 1.06628, 0.98439, 0.79795, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1.09466, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.97278, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.02065, 1, 1, 1, 1, 1, 1, 1.06467, 1.02511,\n 1.06467, 1.02511, 1.06467, 1.02511, 0.90996, 0.96752, 1, 1.21408, 0.89903, 1,\n 1, 0.75155, 1.04394, 1.04394, 1.04394, 1.04394, 0.98633, 0.98633, 0.98633,\n 0.73047, 0.73047, 1.20642, 0.91211, 1.25635, 1.222, 1.02956, 1.03372, 1.03372,\n 0.96039, 1.24633, 1, 1.12454, 0.93503, 1.03424, 1.19687, 1.03424, 1, 1, 1,\n 0.771, 1, 1, 1.15749, 1.15749, 1.15749, 1.10948, 0.86279, 0.94434, 0.86279,\n 0.94434, 0.86182, 1, 1, 1.16897, 1, 0.96085, 0.90137, 1.2107, 1.18416,\n 1.13973, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21172, 1.29004,\n 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025,\n 1.18874, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886,\n 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.09193, 1.09193, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiBoldMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-BoldItalic.ttf to have the same\n// metrics as segoeuiz.ttf.\nconst SegoeuiBoldItalicFactors = [\n 1.76738, 1, 1, 0.98946, 1.03959, 1.04016, 1.02809, 1.036, 0.97639, 1.10953,\n 1.23203, 1.11144, 1.11144, 1.16939, 1.21237, 0.9754, 1.21261, 0.9754, 1.59754,\n 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 0.81378,\n 0.81378, 1.21237, 1.21237, 1.21237, 0.73541, 0.97847, 0.97363, 0.89723,\n 0.87897, 1.0426, 0.79429, 0.85292, 0.91149, 1.05815, 1.1406, 0.79631, 0.90128,\n 0.83853, 1.04396, 1.10615, 0.97552, 0.94436, 0.97552, 0.88641, 0.80527,\n 0.96083, 1.00135, 1, 1.06777, 0.9817, 0.91142, 0.99361, 1.11144, 1.57293,\n 1.11144, 1.21237, 0.74627, 1.31818, 1.06585, 0.97042, 0.83055, 0.97042,\n 0.93503, 1.1261, 0.97042, 0.97922, 1.14236, 0.94552, 1.01054, 1.14236,\n 1.02471, 0.97922, 0.94165, 0.97042, 0.97042, 1.0276, 0.78929, 1.1261, 0.97922,\n 0.95874, 1.02197, 0.98507, 0.96752, 0.97168, 0.95107, 1.16579, 0.95107,\n 1.21237, 1.03959, 1.036, 1.036, 1, 1.036, 1.16579, 0.87357, 1.31818, 1.18754,\n 1.26781, 1.05356, 1.21237, 1.18622, 0.79487, 0.94994, 1.29004, 1.24047,\n 1.24047, 1.31818, 1, 0.91484, 0.9754, 1.31818, 1.1349, 1.24866, 1.05356,\n 1.13934, 1.15574, 1.17389, 0.73541, 0.97363, 0.97363, 0.97363, 0.97363,\n 0.97363, 0.97363, 0.94385, 0.87897, 0.79429, 0.79429, 0.79429, 0.79429,\n 1.1406, 1.1406, 1.1406, 1.1406, 1.0426, 1.10615, 0.97552, 0.97552, 0.97552,\n 0.97552, 0.97552, 1.21237, 0.97552, 1.00135, 1.00135, 1.00135, 1.00135,\n 0.91142, 0.94436, 0.98721, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585,\n 1.06585, 0.96705, 0.83055, 0.93503, 0.93503, 0.93503, 0.93503, 1.14236,\n 1.14236, 1.14236, 1.14236, 0.93125, 0.97922, 0.94165, 0.94165, 0.94165,\n 0.94165, 0.94165, 1.29004, 0.94165, 0.97922, 0.97922, 0.97922, 0.97922,\n 0.96752, 0.97042, 0.96752, 0.97363, 1.06585, 0.97363, 1.06585, 0.97363,\n 1.06585, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897,\n 0.83055, 1.0426, 1.0033, 1.0426, 0.97042, 0.79429, 0.93503, 0.79429, 0.93503,\n 0.79429, 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.91149, 0.97042,\n 0.91149, 0.97042, 0.91149, 0.97042, 1, 1, 1.05815, 0.97922, 1.05815, 0.97922,\n 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406,\n 1.14236, 0.97441, 1.04302, 0.79631, 1.01582, 1, 1, 1.01054, 0.83853, 1.14236,\n 1, 1, 0.83853, 1.09125, 0.83853, 0.90418, 0.83853, 1.19508, 1.10615, 0.97922,\n 1, 1, 1.10615, 0.97922, 1.01034, 1.10466, 0.97922, 0.97552, 0.94165, 0.97552,\n 0.94165, 0.97552, 0.94165, 0.91602, 0.91981, 0.88641, 1.0276, 1, 1, 0.88641,\n 1.0276, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527,\n 0.78929, 1, 1, 0.96083, 1.05403, 0.95923, 1.16862, 1.00135, 0.97922, 1.00135,\n 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135,\n 0.97922, 1.06777, 1.02197, 0.91142, 0.96752, 0.91142, 0.99361, 0.97168,\n 0.99361, 0.97168, 0.99361, 0.97168, 1.23199, 1.036, 0.97363, 1.06585, 0.94385,\n 0.96705, 0.97552, 0.94165, 1, 1, 0.96083, 1.1261, 1.31818, 1.31818, 1.31818,\n 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 0.95161, 1.27126,\n 1.00811, 0.83284, 0.77702, 0.99137, 0.95253, 1.0347, 0.86142, 1.07205,\n 1.14236, 0.97363, 0.89723, 0.86869, 1.09818, 0.79429, 0.99361, 1.05815,\n 0.97552, 1.1406, 0.90128, 1.06662, 1.04396, 1.10615, 0.84918, 0.97552,\n 1.04694, 0.94436, 0.98015, 0.96083, 0.91142, 1.00356, 0.9817, 1.01945,\n 0.98999, 1.1406, 0.91142, 1.04961, 0.9898, 1.00639, 1.14236, 1.07514, 1.04961,\n 0.99607, 1.02897, 1.008, 0.9898, 0.95134, 1.00639, 1.11121, 1.14236, 1.00518,\n 0.97981, 1.02186, 1, 1.08578, 0.94165, 0.99314, 0.98387, 0.93028, 0.93377,\n 1.35125, 1.07514, 1.10687, 0.93491, 1.04232, 1.00351, 1.14236, 1.07514,\n 0.94165, 1.07514, 1.00351, 0.79429, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1.09097, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.93503, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 0.96609, 1, 1, 1, 1, 1, 1, 1.06777, 1.02197, 1.06777,\n 1.02197, 1.06777, 1.02197, 0.91142, 0.96752, 1, 1.21261, 0.89903, 1, 1,\n 0.75155, 1.04745, 1.04745, 1.04745, 1.04394, 0.98633, 0.98633, 0.98633,\n 0.72959, 0.72959, 1.20502, 0.91406, 1.26514, 1.222, 1.02956, 1.03372, 1.03372,\n 0.96039, 1.24633, 1, 1.09125, 0.93327, 1.03336, 1.16541, 1.036, 1, 1, 1,\n 0.771, 1, 1, 1.15574, 1.15574, 1.15574, 1.15574, 0.86364, 0.94434, 0.86279,\n 0.94434, 0.86224, 1, 1, 1.16798, 1, 0.96085, 0.90068, 1.21237, 1.18416,\n 1.13904, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21339, 1.29004,\n 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025,\n 1.18775, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886,\n 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.13269, 1.13269, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiBoldItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-Italic.ttf to have the same\n// metrics as segoeuii.ttf.\nconst SegoeuiItalicFactors = [\n 1.76738, 1, 1, 0.98946, 1.14763, 1.05365, 1.06234, 0.96927, 0.92586, 1.15373,\n 1.18414, 0.91349, 0.91349, 1.07403, 1.17308, 0.78383, 1.20088, 0.78383,\n 1.42531, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927,\n 0.96927, 0.96927, 0.96927, 0.78383, 0.78383, 1.17308, 1.17308, 1.17308,\n 0.77349, 0.94565, 0.94729, 0.85944, 0.88506, 0.9858, 0.74817, 0.80016,\n 0.88449, 0.98039, 0.95782, 0.69238, 0.89898, 0.83231, 0.98183, 1.03989,\n 0.96924, 0.86237, 0.96924, 0.80595, 0.74524, 0.86091, 0.95402, 0.94143,\n 0.98448, 0.8858, 0.83089, 0.93285, 1.0949, 1.39016, 1.0949, 1.45994, 0.74627,\n 1.04839, 0.97454, 0.97454, 0.87207, 0.97454, 0.87533, 1.06151, 0.97454,\n 1.00176, 1.16484, 1.08132, 0.98047, 1.16484, 1.02989, 1.01054, 0.96225,\n 0.97454, 0.97454, 1.06598, 0.79004, 1.16344, 1.00351, 0.94629, 0.9973,\n 0.91016, 0.96777, 0.9043, 0.91082, 0.92481, 0.91082, 1.17308, 0.95748,\n 0.96927, 0.96927, 1, 0.96927, 0.92481, 0.80597, 1.04839, 1.23393, 1.1781,\n 0.9245, 1.17308, 1.20808, 0.63218, 0.94261, 1.24822, 1.09971, 1.09971,\n 1.04839, 1, 0.85273, 0.78032, 1.04839, 1.09971, 1.22326, 0.9245, 1.09836,\n 1.13525, 1.15222, 0.70424, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729,\n 0.94729, 0.85498, 0.88506, 0.74817, 0.74817, 0.74817, 0.74817, 0.95782,\n 0.95782, 0.95782, 0.95782, 0.9858, 1.03989, 0.96924, 0.96924, 0.96924,\n 0.96924, 0.96924, 1.17308, 0.96924, 0.95402, 0.95402, 0.95402, 0.95402,\n 0.83089, 0.86237, 0.88409, 0.97454, 0.97454, 0.97454, 0.97454, 0.97454,\n 0.97454, 0.92916, 0.87207, 0.87533, 0.87533, 0.87533, 0.87533, 0.93146,\n 0.93146, 0.93146, 0.93146, 0.93854, 1.01054, 0.96225, 0.96225, 0.96225,\n 0.96225, 0.96225, 1.24822, 0.8761, 1.00351, 1.00351, 1.00351, 1.00351,\n 0.96777, 0.97454, 0.96777, 0.94729, 0.97454, 0.94729, 0.97454, 0.94729,\n 0.97454, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506,\n 0.87207, 0.9858, 0.95391, 0.9858, 0.97454, 0.74817, 0.87533, 0.74817, 0.87533,\n 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.88449, 0.97454,\n 0.88449, 0.97454, 0.88449, 0.97454, 1, 1, 0.98039, 1.00176, 0.98039, 1.00176,\n 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 1.16484,\n 0.95782, 0.93146, 0.84421, 1.12761, 0.69238, 1.08132, 1, 1, 0.98047, 0.83231,\n 1.16484, 1, 1, 0.84723, 1.04861, 0.84723, 0.78755, 0.83231, 1.23736, 1.03989,\n 1.01054, 1, 1, 1.03989, 1.01054, 0.9857, 1.03849, 1.01054, 0.96924, 0.96225,\n 0.96924, 0.96225, 0.96924, 0.96225, 0.92383, 0.90171, 0.80595, 1.06598, 1, 1,\n 0.80595, 1.06598, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004,\n 0.74524, 0.79004, 1, 1, 0.86091, 1.02759, 0.85771, 1.16344, 0.95402, 1.00351,\n 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351,\n 0.95402, 1.00351, 0.98448, 0.9973, 0.83089, 0.96777, 0.83089, 0.93285, 0.9043,\n 0.93285, 0.9043, 0.93285, 0.9043, 1.31868, 0.96927, 0.94729, 0.97454, 0.85498,\n 0.92916, 0.96924, 0.8761, 1, 1, 0.86091, 1.16344, 1.04839, 1.04839, 1.04839,\n 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 0.81965, 0.81965,\n 0.94729, 0.78032, 0.71022, 0.90883, 0.84171, 0.99877, 0.77596, 1.05734, 1.2,\n 0.94729, 0.85944, 0.82791, 0.9607, 0.74817, 0.93285, 0.98039, 0.96924,\n 0.95782, 0.89898, 0.98316, 0.98183, 1.03989, 0.78614, 0.96924, 0.97642,\n 0.86237, 0.86075, 0.86091, 0.83089, 0.90082, 0.8858, 0.97296, 1.01284,\n 0.95782, 0.83089, 1.0976, 1.04, 1.03342, 1.2, 1.0675, 1.0976, 0.98205,\n 1.03809, 1.05097, 1.04, 0.95364, 1.03342, 1.05401, 1.2, 1.02148, 1.0119,\n 1.04724, 1.0127, 1.02732, 0.96225, 0.8965, 0.97783, 0.93574, 0.94818, 1.30679,\n 1.0675, 1.11826, 0.99821, 1.0557, 1.0326, 1.2, 1.0675, 0.96225, 1.0675,\n 1.0326, 0.74817, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03754, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87533, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 0.98705, 1, 1, 1, 1, 1, 1, 0.98448, 0.9973, 0.98448, 0.9973, 0.98448, 0.9973,\n 0.83089, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 0.94945, 0.94945,\n 0.94945, 0.94945, 1.12317, 1.12317, 1.12317, 0.67603, 0.67603, 1.15621,\n 0.73584, 1.21191, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1,\n 1.07497, 0.87709, 0.96927, 1.01473, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.09836,\n 1.09836, 1.09836, 1.01522, 0.86321, 0.94434, 0.8649, 0.94434, 0.86182, 1, 1,\n 1.083, 1, 0.91578, 0.86438, 1.17308, 1.18416, 1.14589, 0.69825, 0.97622,\n 1.96791, 1.24822, 1.24822, 1.17308, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862,\n 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.17984, 1.42603, 1, 1.42603,\n 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1,\n 1.10742, 1.10742, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\n// Factors to rescale LiberationSans-Regular.ttf to have the same\n// metrics as segoeui.ttf.\nconst SegoeuiRegularFactors = [\n 1.76738, 1, 1, 0.98594, 1.02285, 1.10454, 1.06234, 0.96927, 0.92037, 1.19985,\n 1.2046, 0.90616, 0.90616, 1.07152, 1.1714, 0.78032, 1.20088, 0.78032, 1.40246,\n 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927,\n 0.96927, 0.96927, 0.78032, 0.78032, 1.1714, 1.1714, 1.1714, 0.80597, 0.94084,\n 0.96706, 0.85944, 0.85734, 0.97093, 0.75842, 0.79936, 0.88198, 0.9831,\n 0.95782, 0.71387, 0.86969, 0.84636, 1.07796, 1.03584, 0.96924, 0.83968,\n 0.96924, 0.82826, 0.79649, 0.85771, 0.95132, 0.93119, 0.98965, 0.88433,\n 0.8287, 0.93365, 1.08612, 1.3638, 1.08612, 1.45786, 0.74627, 0.80499, 0.91484,\n 1.05707, 0.92383, 1.05882, 0.9403, 1.12654, 1.05882, 1.01756, 1.09011,\n 1.09011, 0.99414, 1.09011, 1.034, 1.01756, 1.05356, 1.05707, 1.05882, 1.04399,\n 0.84863, 1.21968, 1.01756, 0.95801, 1.00068, 0.91797, 0.96777, 0.9043,\n 0.90351, 0.92105, 0.90351, 1.1714, 0.85337, 0.96927, 0.96927, 0.99912,\n 0.96927, 0.92105, 0.80597, 1.2434, 1.20808, 1.05937, 0.90957, 1.1714, 1.20808,\n 0.75155, 0.94261, 1.24644, 1.09971, 1.09971, 0.84751, 1, 0.85273, 0.78032,\n 0.61584, 1.05425, 1.17914, 0.90957, 1.08665, 1.11593, 1.14169, 0.73381,\n 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.86035, 0.85734,\n 0.75842, 0.75842, 0.75842, 0.75842, 0.95782, 0.95782, 0.95782, 0.95782,\n 0.97093, 1.03584, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.1714,\n 0.96924, 0.95132, 0.95132, 0.95132, 0.95132, 0.8287, 0.83968, 0.89049,\n 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.93575, 0.92383,\n 0.9403, 0.9403, 0.9403, 0.9403, 0.8717, 0.8717, 0.8717, 0.8717, 1.00527,\n 1.01756, 1.05356, 1.05356, 1.05356, 1.05356, 1.05356, 1.24644, 0.95923,\n 1.01756, 1.01756, 1.01756, 1.01756, 0.96777, 1.05707, 0.96777, 0.96706,\n 0.91484, 0.96706, 0.91484, 0.96706, 0.91484, 0.85734, 0.92383, 0.85734,\n 0.92383, 0.85734, 0.92383, 0.85734, 0.92383, 0.97093, 1.0969, 0.97093,\n 1.05882, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403,\n 0.75842, 0.9403, 0.88198, 1.05882, 0.88198, 1.05882, 0.88198, 1.05882, 1, 1,\n 0.9831, 1.01756, 0.9831, 1.01756, 0.95782, 0.8717, 0.95782, 0.8717, 0.95782,\n 0.8717, 0.95782, 1.09011, 0.95782, 0.8717, 0.84784, 1.11551, 0.71387, 1.09011,\n 1, 1, 0.99414, 0.84636, 1.09011, 1, 1, 0.84636, 1.0536, 0.84636, 0.94298,\n 0.84636, 1.23297, 1.03584, 1.01756, 1, 1, 1.03584, 1.01756, 1.00323, 1.03444,\n 1.01756, 0.96924, 1.05356, 0.96924, 1.05356, 0.96924, 1.05356, 0.93066,\n 0.98293, 0.82826, 1.04399, 1, 1, 0.82826, 1.04399, 0.79649, 0.84863, 0.79649,\n 0.84863, 0.79649, 0.84863, 0.79649, 0.84863, 1, 1, 0.85771, 1.17318, 0.85771,\n 1.21968, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132,\n 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.98965, 1.00068, 0.8287,\n 0.96777, 0.8287, 0.93365, 0.9043, 0.93365, 0.9043, 0.93365, 0.9043, 1.08571,\n 0.96927, 0.96706, 0.91484, 0.86035, 0.93575, 0.96924, 0.95923, 1, 1, 0.85771,\n 1.21968, 1.11437, 1.11437, 0.93109, 0.91202, 0.60411, 0.84164, 0.55572,\n 1.01173, 0.97361, 0.81818, 0.81818, 0.96635, 0.78032, 0.72727, 0.92366,\n 0.98601, 1.03405, 0.77968, 1.09799, 1.2, 0.96706, 0.85944, 0.85638, 0.96491,\n 0.75842, 0.93365, 0.9831, 0.96924, 0.95782, 0.86969, 0.94152, 1.07796,\n 1.03584, 0.78437, 0.96924, 0.98715, 0.83968, 0.83491, 0.85771, 0.8287,\n 0.94492, 0.88433, 0.9287, 1.0098, 0.95782, 0.8287, 1.0625, 0.98248, 1.03424,\n 1.2, 1.01071, 1.0625, 0.95246, 1.03809, 1.04912, 0.98248, 1.00221, 1.03424,\n 1.05443, 1.2, 1.04785, 0.99609, 1.00169, 1.05176, 0.99346, 1.05356, 0.9087,\n 1.03004, 0.95542, 0.93117, 1.23362, 1.01071, 1.07831, 1.02512, 1.05205,\n 1.03502, 1.2, 1.01071, 1.05356, 1.01071, 1.03502, 0.75842, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1.03719, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9403,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04021, 1, 1, 1, 1, 1, 1, 0.98965,\n 1.00068, 0.98965, 1.00068, 0.98965, 1.00068, 0.8287, 0.96777, 1, 1.20088,\n 0.89903, 1, 1, 0.75155, 1.03077, 1.03077, 1.03077, 1.03077, 1.13196, 1.13196,\n 1.13196, 0.67428, 0.67428, 1.16039, 0.73291, 1.20996, 1.22135, 1.06483,\n 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87796, 0.96927, 1.01518,\n 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.10539, 1.10539, 1.11358, 1.06967, 0.86279,\n 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86507, 1.1714,\n 1.18416, 1.14589, 0.69825, 0.97622, 1.9697, 1.24822, 1.24822, 1.17238,\n 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025,\n 0.87025, 1.18083, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1,\n 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10938, 1.10938, 1, 1, 1,\n 1.05425, 1.09971, 1.09971, 1.09971, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\n];\nconst SegoeuiRegularMetrics = { lineHeight: 1.33008, lineGap: 0 };\n\nexport {\n SegoeuiBoldFactors,\n SegoeuiBoldItalicFactors,\n SegoeuiBoldItalicMetrics,\n SegoeuiBoldMetrics,\n SegoeuiItalicFactors,\n SegoeuiItalicMetrics,\n SegoeuiRegularFactors,\n SegoeuiRegularMetrics,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n CalibriBoldFactors,\n CalibriBoldItalicFactors,\n CalibriBoldItalicMetrics,\n CalibriBoldMetrics,\n CalibriItalicFactors,\n CalibriItalicMetrics,\n CalibriRegularFactors,\n CalibriRegularMetrics,\n} from \"./calibri_factors.js\";\nimport { Dict, Name } from \"./primitives.js\";\nimport {\n HelveticaBoldFactors,\n HelveticaBoldItalicFactors,\n HelveticaBoldItalicMetrics,\n HelveticaBoldMetrics,\n HelveticaItalicFactors,\n HelveticaItalicMetrics,\n HelveticaRegularFactors,\n HelveticaRegularMetrics,\n} from \"./helvetica_factors.js\";\nimport {\n LiberationSansBoldItalicMapping,\n LiberationSansBoldItalicWidths,\n LiberationSansBoldMapping,\n LiberationSansBoldWidths,\n LiberationSansItalicMapping,\n LiberationSansItalicWidths,\n LiberationSansRegularMapping,\n LiberationSansRegularWidths,\n} from \"./liberationsans_widths.js\";\nimport {\n MyriadProBoldFactors,\n MyriadProBoldItalicFactors,\n MyriadProBoldItalicMetrics,\n MyriadProBoldMetrics,\n MyriadProItalicFactors,\n MyriadProItalicMetrics,\n MyriadProRegularFactors,\n MyriadProRegularMetrics,\n} from \"./myriadpro_factors.js\";\nimport {\n SegoeuiBoldFactors,\n SegoeuiBoldItalicFactors,\n SegoeuiBoldItalicMetrics,\n SegoeuiBoldMetrics,\n SegoeuiItalicFactors,\n SegoeuiItalicMetrics,\n SegoeuiRegularFactors,\n SegoeuiRegularMetrics,\n} from \"./segoeui_factors.js\";\nimport { getLookupTableFactory } from \"./core_utils.js\";\nimport { normalizeFontName } from \"./fonts_utils.js\";\n\nconst getXFAFontMap = getLookupTableFactory(function (t) {\n t[\"MyriadPro-Regular\"] = t[\"PdfJS-Fallback-Regular\"] = {\n name: \"LiberationSans-Regular\",\n factors: MyriadProRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: MyriadProRegularMetrics,\n };\n t[\"MyriadPro-Bold\"] = t[\"PdfJS-Fallback-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: MyriadProBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: MyriadProBoldMetrics,\n };\n t[\"MyriadPro-It\"] =\n t[\"MyriadPro-Italic\"] =\n t[\"PdfJS-Fallback-Italic\"] =\n {\n name: \"LiberationSans-Italic\",\n factors: MyriadProItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: MyriadProItalicMetrics,\n };\n t[\"MyriadPro-BoldIt\"] =\n t[\"MyriadPro-BoldItalic\"] =\n t[\"PdfJS-Fallback-BoldItalic\"] =\n {\n name: \"LiberationSans-BoldItalic\",\n factors: MyriadProBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: MyriadProBoldItalicMetrics,\n };\n t.ArialMT =\n t.Arial =\n t[\"Arial-Regular\"] =\n {\n name: \"LiberationSans-Regular\",\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n };\n t[\"Arial-BoldMT\"] = t[\"Arial-Bold\"] = {\n name: \"LiberationSans-Bold\",\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n };\n t[\"Arial-ItalicMT\"] = t[\"Arial-Italic\"] = {\n name: \"LiberationSans-Italic\",\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n };\n t[\"Arial-BoldItalicMT\"] = t[\"Arial-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n };\n t[\"Calibri-Regular\"] = {\n name: \"LiberationSans-Regular\",\n factors: CalibriRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: CalibriRegularMetrics,\n };\n t[\"Calibri-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: CalibriBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: CalibriBoldMetrics,\n };\n t[\"Calibri-Italic\"] = {\n name: \"LiberationSans-Italic\",\n factors: CalibriItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: CalibriItalicMetrics,\n };\n t[\"Calibri-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n factors: CalibriBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: CalibriBoldItalicMetrics,\n };\n t[\"Segoeui-Regular\"] = {\n name: \"LiberationSans-Regular\",\n factors: SegoeuiRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: SegoeuiRegularMetrics,\n };\n t[\"Segoeui-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: SegoeuiBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: SegoeuiBoldMetrics,\n };\n t[\"Segoeui-Italic\"] = {\n name: \"LiberationSans-Italic\",\n factors: SegoeuiItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: SegoeuiItalicMetrics,\n };\n t[\"Segoeui-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n factors: SegoeuiBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: SegoeuiBoldItalicMetrics,\n };\n t[\"Helvetica-Regular\"] = t.Helvetica = {\n name: \"LiberationSans-Regular\",\n factors: HelveticaRegularFactors,\n baseWidths: LiberationSansRegularWidths,\n baseMapping: LiberationSansRegularMapping,\n metrics: HelveticaRegularMetrics,\n };\n t[\"Helvetica-Bold\"] = {\n name: \"LiberationSans-Bold\",\n factors: HelveticaBoldFactors,\n baseWidths: LiberationSansBoldWidths,\n baseMapping: LiberationSansBoldMapping,\n metrics: HelveticaBoldMetrics,\n };\n t[\"Helvetica-Italic\"] = {\n name: \"LiberationSans-Italic\",\n factors: HelveticaItalicFactors,\n baseWidths: LiberationSansItalicWidths,\n baseMapping: LiberationSansItalicMapping,\n metrics: HelveticaItalicMetrics,\n };\n t[\"Helvetica-BoldItalic\"] = {\n name: \"LiberationSans-BoldItalic\",\n factors: HelveticaBoldItalicFactors,\n baseWidths: LiberationSansBoldItalicWidths,\n baseMapping: LiberationSansBoldItalicMapping,\n metrics: HelveticaBoldItalicMetrics,\n };\n});\n\nfunction getXfaFontName(name) {\n const fontName = normalizeFontName(name);\n const fontMap = getXFAFontMap();\n return fontMap[fontName];\n}\n\nfunction getXfaFontWidths(name) {\n const info = getXfaFontName(name);\n if (!info) {\n return null;\n }\n\n const { baseWidths, baseMapping, factors } = info;\n const rescaledBaseWidths = !factors\n ? baseWidths\n : baseWidths.map((w, i) => w * factors[i]);\n\n let currentCode = -2;\n let currentArray;\n\n // Widths array for composite font is:\n // CharCode1 [10, 20, 30] ...\n // which means:\n // - CharCode1 has a width equal to 10\n // - CharCode1+1 has a width equal to 20\n // - CharCode1+2 has a width equal to 30\n //\n // The baseMapping array contains a map for glyph index to unicode.\n // So from baseMapping we'll get sorted unicodes and their positions\n // (i.e. glyph indices) and then we put widths in an array for the\n // the consecutive unicodes.\n const newWidths = [];\n for (const [unicode, glyphIndex] of baseMapping\n .map(\n (charUnicode, index) => [\n charUnicode,\n index,\n ] /* collect unicode and glyph index */\n )\n .sort(\n ([unicode1], [unicode2]) =>\n unicode1 - unicode2 /* order by unicode only */\n )) {\n if (unicode === -1) {\n continue;\n }\n\n if (unicode === currentCode + 1) {\n currentArray.push(rescaledBaseWidths[glyphIndex]);\n currentCode += 1;\n } else {\n currentCode = unicode;\n currentArray = [rescaledBaseWidths[glyphIndex]];\n newWidths.push(unicode, currentArray);\n }\n }\n\n return newWidths;\n}\n\nfunction getXfaFontDict(name) {\n const widths = getXfaFontWidths(name);\n const dict = new Dict(null);\n dict.set(\"BaseFont\", Name.get(name));\n dict.set(\"Type\", Name.get(\"Font\"));\n dict.set(\"Subtype\", Name.get(\"CIDFontType2\"));\n dict.set(\"Encoding\", Name.get(\"Identity-H\"));\n dict.set(\"CIDToGIDMap\", Name.get(\"Identity\"));\n dict.set(\"W\", widths);\n dict.set(\"FirstChar\", widths[0]);\n dict.set(\"LastChar\", widths.at(-2) + widths.at(-1).length - 1);\n const descriptor = new Dict(null);\n dict.set(\"FontDescriptor\", descriptor);\n const systemInfo = new Dict(null);\n systemInfo.set(\"Ordering\", \"Identity\");\n systemInfo.set(\"Registry\", \"Adobe\");\n systemInfo.set(\"Supplement\", 0);\n dict.set(\"CIDSystemInfo\", systemInfo);\n\n return dict;\n}\n\nexport { getXfaFontDict, getXfaFontName };\n","/* Copyright 2014 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormatError, shadow } from \"../shared/util.js\";\nimport { EOF } from \"./primitives.js\";\nimport { isWhiteSpace } from \"./core_utils.js\";\n\nclass PostScriptParser {\n constructor(lexer) {\n this.lexer = lexer;\n this.operators = [];\n this.token = null;\n this.prev = null;\n }\n\n nextToken() {\n this.prev = this.token;\n this.token = this.lexer.getToken();\n }\n\n accept(type) {\n if (this.token.type === type) {\n this.nextToken();\n return true;\n }\n return false;\n }\n\n expect(type) {\n if (this.accept(type)) {\n return true;\n }\n throw new FormatError(\n `Unexpected symbol: found ${this.token.type} expected ${type}.`\n );\n }\n\n parse() {\n this.nextToken();\n this.expect(PostScriptTokenTypes.LBRACE);\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n return this.operators;\n }\n\n parseBlock() {\n while (true) {\n if (this.accept(PostScriptTokenTypes.NUMBER)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.OPERATOR)) {\n this.operators.push(this.prev.value);\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n this.parseCondition();\n } else {\n return;\n }\n }\n }\n\n parseCondition() {\n // Add two place holders that will be updated later\n const conditionLocation = this.operators.length;\n this.operators.push(null, null);\n\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n if (this.accept(PostScriptTokenTypes.IF)) {\n // The true block is right after the 'if' so it just falls through on true\n // else it jumps and skips the true block.\n this.operators[conditionLocation] = this.operators.length;\n this.operators[conditionLocation + 1] = \"jz\";\n } else if (this.accept(PostScriptTokenTypes.LBRACE)) {\n const jumpLocation = this.operators.length;\n this.operators.push(null, null);\n const endOfTrue = this.operators.length;\n this.parseBlock();\n this.expect(PostScriptTokenTypes.RBRACE);\n this.expect(PostScriptTokenTypes.IFELSE);\n // The jump is added at the end of the true block to skip the false block.\n this.operators[jumpLocation] = this.operators.length;\n this.operators[jumpLocation + 1] = \"j\";\n\n this.operators[conditionLocation] = endOfTrue;\n this.operators[conditionLocation + 1] = \"jz\";\n } else {\n throw new FormatError(\"PS Function: error parsing conditional.\");\n }\n }\n}\n\nconst PostScriptTokenTypes = {\n LBRACE: 0,\n RBRACE: 1,\n NUMBER: 2,\n OPERATOR: 3,\n IF: 4,\n IFELSE: 5,\n};\n\nclass PostScriptToken {\n static get opCache() {\n return shadow(this, \"opCache\", Object.create(null));\n }\n\n constructor(type, value) {\n this.type = type;\n this.value = value;\n }\n\n static getOperator(op) {\n return (PostScriptToken.opCache[op] ||= new PostScriptToken(\n PostScriptTokenTypes.OPERATOR,\n op\n ));\n }\n\n static get LBRACE() {\n return shadow(\n this,\n \"LBRACE\",\n new PostScriptToken(PostScriptTokenTypes.LBRACE, \"{\")\n );\n }\n\n static get RBRACE() {\n return shadow(\n this,\n \"RBRACE\",\n new PostScriptToken(PostScriptTokenTypes.RBRACE, \"}\")\n );\n }\n\n static get IF() {\n return shadow(\n this,\n \"IF\",\n new PostScriptToken(PostScriptTokenTypes.IF, \"IF\")\n );\n }\n\n static get IFELSE() {\n return shadow(\n this,\n \"IFELSE\",\n new PostScriptToken(PostScriptTokenTypes.IFELSE, \"IFELSE\")\n );\n }\n}\n\nclass PostScriptLexer {\n constructor(stream) {\n this.stream = stream;\n this.nextChar();\n\n this.strBuf = [];\n }\n\n nextChar() {\n return (this.currentChar = this.stream.getByte());\n }\n\n getToken() {\n let comment = false;\n let ch = this.currentChar;\n\n // skip comments\n while (true) {\n if (ch < 0) {\n return EOF;\n }\n\n if (comment) {\n if (ch === 0x0a || ch === 0x0d) {\n comment = false;\n }\n } else if (ch === /* '%' = */ 0x25) {\n comment = true;\n } else if (!isWhiteSpace(ch)) {\n break;\n }\n ch = this.nextChar();\n }\n switch (ch | 0) {\n case 0x30: // '0'\n case 0x31: // '1'\n case 0x32: // '2'\n case 0x33: // '3'\n case 0x34: // '4'\n case 0x35: // '5'\n case 0x36: // '6'\n case 0x37: // '7'\n case 0x38: // '8'\n case 0x39: // '9'\n case 0x2b: // '+'\n case 0x2d: // '-'\n case 0x2e: // '.'\n return new PostScriptToken(\n PostScriptTokenTypes.NUMBER,\n this.getNumber()\n );\n case 0x7b: // '{'\n this.nextChar();\n return PostScriptToken.LBRACE;\n case 0x7d: // '}'\n this.nextChar();\n return PostScriptToken.RBRACE;\n }\n // operator\n const strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n\n while (\n (ch = this.nextChar()) >= 0 &&\n ((ch >= /* 'A' = */ 0x41 && ch <= /* 'Z' = */ 0x5a) ||\n (ch >= /* 'a' = */ 0x61 && ch <= /* 'z' = */ 0x7a))\n ) {\n strBuf.push(String.fromCharCode(ch));\n }\n const str = strBuf.join(\"\");\n switch (str.toLowerCase()) {\n case \"if\":\n return PostScriptToken.IF;\n case \"ifelse\":\n return PostScriptToken.IFELSE;\n default:\n return PostScriptToken.getOperator(str);\n }\n }\n\n getNumber() {\n let ch = this.currentChar;\n const strBuf = this.strBuf;\n strBuf.length = 0;\n strBuf[0] = String.fromCharCode(ch);\n\n while ((ch = this.nextChar()) >= 0) {\n if (\n (ch >= /* '0' = */ 0x30 && ch <= /* '9' = */ 0x39) ||\n ch === /* '-' = */ 0x2d ||\n ch === /* '.' = */ 0x2e\n ) {\n strBuf.push(String.fromCharCode(ch));\n } else {\n break;\n }\n }\n const value = parseFloat(strBuf.join(\"\"));\n if (isNaN(value)) {\n throw new FormatError(`Invalid floating point number: ${value}`);\n }\n return value;\n }\n}\n\nexport { PostScriptLexer, PostScriptParser };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n MAX_IMAGE_SIZE_TO_CACHE,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { RefSetCache } from \"./primitives.js\";\n\nclass BaseLocalCache {\n constructor(options) {\n if (this.constructor === BaseLocalCache) {\n unreachable(\"Cannot initialize BaseLocalCache.\");\n }\n this._onlyRefs = options?.onlyRefs === true;\n\n if (!this._onlyRefs) {\n this._nameRefMap = new Map();\n this._imageMap = new Map();\n }\n this._imageCache = new RefSetCache();\n }\n\n getByName(name) {\n if (this._onlyRefs) {\n unreachable(\"Should not call `getByName` method.\");\n }\n const ref = this._nameRefMap.get(name);\n if (ref) {\n return this.getByRef(ref);\n }\n return this._imageMap.get(name) || null;\n }\n\n getByRef(ref) {\n return this._imageCache.get(ref) || null;\n }\n\n set(name, ref, data) {\n unreachable(\"Abstract method `set` called.\");\n }\n}\n\nclass LocalImageCache extends BaseLocalCache {\n set(name, ref = null, data) {\n if (typeof name !== \"string\") {\n throw new Error('LocalImageCache.set - expected \"name\" argument.');\n }\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n this._nameRefMap.set(name, ref);\n this._imageCache.put(ref, data);\n return;\n }\n // name\n if (this._imageMap.has(name)) {\n return;\n }\n this._imageMap.set(name, data);\n }\n}\n\nclass LocalColorSpaceCache extends BaseLocalCache {\n set(name = null, ref = null, data) {\n if (typeof name !== \"string\" && !ref) {\n throw new Error(\n 'LocalColorSpaceCache.set - expected \"name\" and/or \"ref\" argument.'\n );\n }\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n if (name !== null) {\n // Optional when `ref` is defined.\n this._nameRefMap.set(name, ref);\n }\n this._imageCache.put(ref, data);\n return;\n }\n // name\n if (this._imageMap.has(name)) {\n return;\n }\n this._imageMap.set(name, data);\n }\n}\n\nclass LocalFunctionCache extends BaseLocalCache {\n constructor(options) {\n super({ onlyRefs: true });\n }\n\n set(name = null, ref, data) {\n if (!ref) {\n throw new Error('LocalFunctionCache.set - expected \"ref\" argument.');\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n this._imageCache.put(ref, data);\n }\n}\n\nclass LocalGStateCache extends BaseLocalCache {\n set(name, ref = null, data) {\n if (typeof name !== \"string\") {\n throw new Error('LocalGStateCache.set - expected \"name\" argument.');\n }\n if (ref) {\n if (this._imageCache.has(ref)) {\n return;\n }\n this._nameRefMap.set(name, ref);\n this._imageCache.put(ref, data);\n return;\n }\n // name\n if (this._imageMap.has(name)) {\n return;\n }\n this._imageMap.set(name, data);\n }\n}\n\nclass LocalTilingPatternCache extends BaseLocalCache {\n constructor(options) {\n super({ onlyRefs: true });\n }\n\n set(name = null, ref, data) {\n if (!ref) {\n throw new Error('LocalTilingPatternCache.set - expected \"ref\" argument.');\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n this._imageCache.put(ref, data);\n }\n}\n\nclass RegionalImageCache extends BaseLocalCache {\n constructor(options) {\n super({ onlyRefs: true });\n }\n\n set(name = null, ref, data) {\n if (!ref) {\n throw new Error('RegionalImageCache.set - expected \"ref\" argument.');\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n this._imageCache.put(ref, data);\n }\n}\n\nclass GlobalImageCache {\n static NUM_PAGES_THRESHOLD = 2;\n\n static MIN_IMAGES_TO_CACHE = 10;\n\n static MAX_BYTE_SIZE = 5 * MAX_IMAGE_SIZE_TO_CACHE;\n\n constructor() {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n GlobalImageCache.NUM_PAGES_THRESHOLD > 1,\n \"GlobalImageCache - invalid NUM_PAGES_THRESHOLD constant.\"\n );\n }\n this._refCache = new RefSetCache();\n this._imageCache = new RefSetCache();\n }\n\n get _byteSize() {\n let byteSize = 0;\n for (const imageData of this._imageCache) {\n byteSize += imageData.byteSize;\n }\n return byteSize;\n }\n\n get _cacheLimitReached() {\n if (this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) {\n return false;\n }\n if (this._byteSize < GlobalImageCache.MAX_BYTE_SIZE) {\n return false;\n }\n return true;\n }\n\n shouldCache(ref, pageIndex) {\n let pageIndexSet = this._refCache.get(ref);\n if (!pageIndexSet) {\n pageIndexSet = new Set();\n this._refCache.put(ref, pageIndexSet);\n }\n pageIndexSet.add(pageIndex);\n\n if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return false;\n }\n if (!this._imageCache.has(ref) && this._cacheLimitReached) {\n return false;\n }\n return true;\n }\n\n /**\n * PLEASE NOTE: Must be called *after* the `setData` method.\n */\n addByteSize(ref, byteSize) {\n const imageData = this._imageCache.get(ref);\n if (!imageData) {\n return; // The image data isn't cached (the limit was reached).\n }\n if (imageData.byteSize) {\n return; // The byte-size has already been set.\n }\n imageData.byteSize = byteSize;\n }\n\n getData(ref, pageIndex) {\n const pageIndexSet = this._refCache.get(ref);\n if (!pageIndexSet) {\n return null;\n }\n if (pageIndexSet.size < GlobalImageCache.NUM_PAGES_THRESHOLD) {\n return null;\n }\n const imageData = this._imageCache.get(ref);\n if (!imageData) {\n return null;\n }\n // Ensure that we keep track of all pages containing the image reference.\n pageIndexSet.add(pageIndex);\n\n return imageData;\n }\n\n setData(ref, data) {\n if (!this._refCache.has(ref)) {\n throw new Error(\n 'GlobalImageCache.setData - expected \"shouldCache\" to have been called.'\n );\n }\n if (this._imageCache.has(ref)) {\n return;\n }\n if (this._cacheLimitReached) {\n warn(\"GlobalImageCache.setData - cache limit reached.\");\n return;\n }\n this._imageCache.put(ref, data);\n }\n\n clear(onlyData = false) {\n if (!onlyData) {\n this._refCache.clear();\n }\n this._imageCache.clear();\n }\n}\n\nexport {\n GlobalImageCache,\n LocalColorSpaceCache,\n LocalFunctionCache,\n LocalGStateCache,\n LocalImageCache,\n LocalTilingPatternCache,\n RegionalImageCache,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, Ref } from \"./primitives.js\";\nimport {\n FeatureTest,\n FormatError,\n info,\n shadow,\n unreachable,\n} from \"../shared/util.js\";\nimport { PostScriptLexer, PostScriptParser } from \"./ps_parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { LocalFunctionCache } from \"./image_utils.js\";\n\nclass PDFFunctionFactory {\n constructor({ xref, isEvalSupported = true }) {\n this.xref = xref;\n this.isEvalSupported = isEvalSupported !== false;\n }\n\n create(fn) {\n const cachedFunction = this.getCached(fn);\n if (cachedFunction) {\n return cachedFunction;\n }\n const parsedFunction = PDFFunction.parse({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fn: fn instanceof Ref ? this.xref.fetch(fn) : fn,\n });\n\n // Attempt to cache the parsed Function, by reference.\n this._cache(fn, parsedFunction);\n\n return parsedFunction;\n }\n\n createFromArray(fnObj) {\n const cachedFunction = this.getCached(fnObj);\n if (cachedFunction) {\n return cachedFunction;\n }\n const parsedFunction = PDFFunction.parseArray({\n xref: this.xref,\n isEvalSupported: this.isEvalSupported,\n fnObj: fnObj instanceof Ref ? this.xref.fetch(fnObj) : fnObj,\n });\n\n // Attempt to cache the parsed Function, by reference.\n this._cache(fnObj, parsedFunction);\n\n return parsedFunction;\n }\n\n getCached(cacheKey) {\n let fnRef;\n if (cacheKey instanceof Ref) {\n fnRef = cacheKey;\n } else if (cacheKey instanceof Dict) {\n fnRef = cacheKey.objId;\n } else if (cacheKey instanceof BaseStream) {\n fnRef = cacheKey.dict?.objId;\n }\n if (fnRef) {\n const localFunction = this._localFunctionCache.getByRef(fnRef);\n if (localFunction) {\n return localFunction;\n }\n }\n return null;\n }\n\n /**\n * @private\n */\n _cache(cacheKey, parsedFunction) {\n if (!parsedFunction) {\n throw new Error(\n 'PDFFunctionFactory._cache - expected \"parsedFunction\" argument.'\n );\n }\n let fnRef;\n if (cacheKey instanceof Ref) {\n fnRef = cacheKey;\n } else if (cacheKey instanceof Dict) {\n fnRef = cacheKey.objId;\n } else if (cacheKey instanceof BaseStream) {\n fnRef = cacheKey.dict?.objId;\n }\n if (fnRef) {\n this._localFunctionCache.set(/* name = */ null, fnRef, parsedFunction);\n }\n }\n\n /**\n * @private\n */\n get _localFunctionCache() {\n return shadow(this, \"_localFunctionCache\", new LocalFunctionCache());\n }\n}\n\nfunction toNumberArray(arr) {\n if (!Array.isArray(arr)) {\n return null;\n }\n const length = arr.length;\n for (let i = 0; i < length; i++) {\n if (typeof arr[i] !== \"number\") {\n // Non-number is found -- convert all items to numbers.\n const result = new Array(length);\n for (let j = 0; j < length; j++) {\n result[j] = +arr[j];\n }\n return result;\n }\n }\n return arr;\n}\n\nclass PDFFunction {\n static getSampleArray(size, outputSize, bps, stream) {\n let i, ii;\n let length = 1;\n for (i = 0, ii = size.length; i < ii; i++) {\n length *= size[i];\n }\n length *= outputSize;\n\n const array = new Array(length);\n let codeSize = 0;\n let codeBuf = 0;\n // 32 is a valid bps so shifting won't work\n const sampleMul = 1.0 / (2.0 ** bps - 1);\n\n const strBytes = stream.getBytes((length * bps + 7) / 8);\n let strIdx = 0;\n for (i = 0; i < length; i++) {\n while (codeSize < bps) {\n codeBuf <<= 8;\n codeBuf |= strBytes[strIdx++];\n codeSize += 8;\n }\n codeSize -= bps;\n array[i] = (codeBuf >> codeSize) * sampleMul;\n codeBuf &= (1 << codeSize) - 1;\n }\n return array;\n }\n\n static parse({ xref, isEvalSupported, fn }) {\n const dict = fn.dict || fn;\n const typeNum = dict.get(\"FunctionType\");\n\n switch (typeNum) {\n case 0:\n return this.constructSampled({ xref, isEvalSupported, fn, dict });\n case 1:\n break;\n case 2:\n return this.constructInterpolated({ xref, isEvalSupported, dict });\n case 3:\n return this.constructStiched({ xref, isEvalSupported, dict });\n case 4:\n return this.constructPostScript({ xref, isEvalSupported, fn, dict });\n }\n throw new FormatError(\"Unknown type of function\");\n }\n\n static parseArray({ xref, isEvalSupported, fnObj }) {\n if (!Array.isArray(fnObj)) {\n // not an array -- parsing as regular function\n return this.parse({ xref, isEvalSupported, fn: fnObj });\n }\n\n const fnArray = [];\n for (const fn of fnObj) {\n fnArray.push(\n this.parse({ xref, isEvalSupported, fn: xref.fetchIfRef(fn) })\n );\n }\n return function (src, srcOffset, dest, destOffset) {\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n fnArray[i](src, srcOffset, dest, destOffset + i);\n }\n };\n }\n\n static constructSampled({ xref, isEvalSupported, fn, dict }) {\n function toMultiArray(arr) {\n const inputLength = arr.length;\n const out = [];\n let index = 0;\n for (let i = 0; i < inputLength; i += 2) {\n out[index++] = [arr[i], arr[i + 1]];\n }\n return out;\n }\n // See chapter 3, page 109 of the PDF reference\n function interpolate(x, xmin, xmax, ymin, ymax) {\n return ymin + (x - xmin) * ((ymax - ymin) / (xmax - xmin));\n }\n\n let domain = toNumberArray(dict.getArray(\"Domain\"));\n let range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain || !range) {\n throw new FormatError(\"No domain or range\");\n }\n\n const inputSize = domain.length / 2;\n const outputSize = range.length / 2;\n\n domain = toMultiArray(domain);\n range = toMultiArray(range);\n\n const size = toNumberArray(dict.getArray(\"Size\"));\n const bps = dict.get(\"BitsPerSample\");\n const order = dict.get(\"Order\") || 1;\n if (order !== 1) {\n // No description how cubic spline interpolation works in PDF32000:2008\n // As in poppler, ignoring order, linear interpolation may work as good\n info(\"No support for cubic spline interpolation: \" + order);\n }\n\n let encode = toNumberArray(dict.getArray(\"Encode\"));\n if (!encode) {\n encode = [];\n for (let i = 0; i < inputSize; ++i) {\n encode.push([0, size[i] - 1]);\n }\n } else {\n encode = toMultiArray(encode);\n }\n\n let decode = toNumberArray(dict.getArray(\"Decode\"));\n decode = !decode ? range : toMultiArray(decode);\n\n const samples = this.getSampleArray(size, outputSize, bps, fn);\n // const mask = 2 ** bps - 1;\n\n return function constructSampledFn(src, srcOffset, dest, destOffset) {\n // See chapter 3, page 110 of the PDF reference.\n\n // Building the cube vertices: its part and sample index\n // http://rjwagner49.com/Mathematics/Interpolation.pdf\n const cubeVertices = 1 << inputSize;\n const cubeN = new Float64Array(cubeVertices);\n const cubeVertex = new Uint32Array(cubeVertices);\n let i, j;\n for (j = 0; j < cubeVertices; j++) {\n cubeN[j] = 1;\n }\n\n let k = outputSize,\n pos = 1;\n // Map x_i to y_j for 0 <= i < m using the sampled function.\n for (i = 0; i < inputSize; ++i) {\n // x_i' = min(max(x_i, Domain_2i), Domain_2i+1)\n const domain_2i = domain[i][0];\n const domain_2i_1 = domain[i][1];\n const xi = Math.min(\n Math.max(src[srcOffset + i], domain_2i),\n domain_2i_1\n );\n\n // e_i = Interpolate(x_i', Domain_2i, Domain_2i+1,\n // Encode_2i, Encode_2i+1)\n let e = interpolate(\n xi,\n domain_2i,\n domain_2i_1,\n encode[i][0],\n encode[i][1]\n );\n\n // e_i' = min(max(e_i, 0), Size_i - 1)\n const size_i = size[i];\n e = Math.min(Math.max(e, 0), size_i - 1);\n\n // Adjusting the cube: N and vertex sample index\n const e0 = e < size_i - 1 ? Math.floor(e) : e - 1; // e1 = e0 + 1;\n const n0 = e0 + 1 - e; // (e1 - e) / (e1 - e0);\n const n1 = e - e0; // (e - e0) / (e1 - e0);\n const offset0 = e0 * k;\n const offset1 = offset0 + k; // e1 * k\n for (j = 0; j < cubeVertices; j++) {\n if (j & pos) {\n cubeN[j] *= n1;\n cubeVertex[j] += offset1;\n } else {\n cubeN[j] *= n0;\n cubeVertex[j] += offset0;\n }\n }\n\n k *= size_i;\n pos <<= 1;\n }\n\n for (j = 0; j < outputSize; ++j) {\n // Sum all cube vertices' samples portions\n let rj = 0;\n for (i = 0; i < cubeVertices; i++) {\n rj += samples[cubeVertex[i] + j] * cubeN[i];\n }\n\n // r_j' = Interpolate(r_j, 0, 2^BitsPerSample - 1,\n // Decode_2j, Decode_2j+1)\n rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]);\n\n // y_j = min(max(r_j, range_2j), range_2j+1)\n dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]);\n }\n };\n }\n\n static constructInterpolated({ xref, isEvalSupported, dict }) {\n const c0 = toNumberArray(dict.getArray(\"C0\")) || [0];\n const c1 = toNumberArray(dict.getArray(\"C1\")) || [1];\n const n = dict.get(\"N\");\n\n const diff = [];\n for (let i = 0, ii = c0.length; i < ii; ++i) {\n diff.push(c1[i] - c0[i]);\n }\n const length = diff.length;\n\n return function constructInterpolatedFn(src, srcOffset, dest, destOffset) {\n const x = n === 1 ? src[srcOffset] : src[srcOffset] ** n;\n\n for (let j = 0; j < length; ++j) {\n dest[destOffset + j] = c0[j] + x * diff[j];\n }\n };\n }\n\n static constructStiched({ xref, isEvalSupported, dict }) {\n const domain = toNumberArray(dict.getArray(\"Domain\"));\n\n if (!domain) {\n throw new FormatError(\"No domain\");\n }\n\n const inputSize = domain.length / 2;\n if (inputSize !== 1) {\n throw new FormatError(\"Bad domain for stiched function\");\n }\n\n const fns = [];\n for (const fn of dict.get(\"Functions\")) {\n fns.push(this.parse({ xref, isEvalSupported, fn: xref.fetchIfRef(fn) }));\n }\n\n const bounds = toNumberArray(dict.getArray(\"Bounds\"));\n const encode = toNumberArray(dict.getArray(\"Encode\"));\n const tmpBuf = new Float32Array(1);\n\n return function constructStichedFn(src, srcOffset, dest, destOffset) {\n const clip = function constructStichedFromIRClip(v, min, max) {\n if (v > max) {\n v = max;\n } else if (v < min) {\n v = min;\n }\n return v;\n };\n\n // clip to domain\n const v = clip(src[srcOffset], domain[0], domain[1]);\n // calculate which bound the value is in\n const length = bounds.length;\n let i;\n for (i = 0; i < length; ++i) {\n if (v < bounds[i]) {\n break;\n }\n }\n\n // encode value into domain of function\n let dmin = domain[0];\n if (i > 0) {\n dmin = bounds[i - 1];\n }\n let dmax = domain[1];\n if (i < bounds.length) {\n dmax = bounds[i];\n }\n\n const rmin = encode[2 * i];\n const rmax = encode[2 * i + 1];\n\n // Prevent the value from becoming NaN as a result\n // of division by zero (fixes issue6113.pdf).\n tmpBuf[0] =\n dmin === dmax\n ? rmin\n : rmin + ((v - dmin) * (rmax - rmin)) / (dmax - dmin);\n\n // call the appropriate function\n fns[i](tmpBuf, 0, dest, destOffset);\n };\n }\n\n static constructPostScript({ xref, isEvalSupported, fn, dict }) {\n const domain = toNumberArray(dict.getArray(\"Domain\"));\n const range = toNumberArray(dict.getArray(\"Range\"));\n\n if (!domain) {\n throw new FormatError(\"No domain.\");\n }\n\n if (!range) {\n throw new FormatError(\"No range.\");\n }\n\n const lexer = new PostScriptLexer(fn);\n const parser = new PostScriptParser(lexer);\n const code = parser.parse();\n\n if (isEvalSupported && FeatureTest.isEvalSupported) {\n const compiled = new PostScriptCompiler().compile(code, domain, range);\n if (compiled) {\n // Compiled function consists of simple expressions such as addition,\n // subtraction, Math.max, and also contains 'var' and 'return'\n // statements. See the generation in the PostScriptCompiler below.\n // eslint-disable-next-line no-new-func\n return new Function(\"src\", \"srcOffset\", \"dest\", \"destOffset\", compiled);\n }\n }\n info(\"Unable to compile PS function\");\n\n const numOutputs = range.length >> 1;\n const numInputs = domain.length >> 1;\n const evaluator = new PostScriptEvaluator(code);\n // Cache the values for a big speed up, the cache size is limited though\n // since the number of possible values can be huge from a PS function.\n const cache = Object.create(null);\n // The MAX_CACHE_SIZE is set to ~4x the maximum number of distinct values\n // seen in our tests.\n const MAX_CACHE_SIZE = 2048 * 4;\n let cache_available = MAX_CACHE_SIZE;\n const tmpBuf = new Float32Array(numInputs);\n\n return function constructPostScriptFn(src, srcOffset, dest, destOffset) {\n let i, value;\n let key = \"\";\n const input = tmpBuf;\n for (i = 0; i < numInputs; i++) {\n value = src[srcOffset + i];\n input[i] = value;\n key += value + \"_\";\n }\n\n const cachedValue = cache[key];\n if (cachedValue !== undefined) {\n dest.set(cachedValue, destOffset);\n return;\n }\n\n const output = new Float32Array(numOutputs);\n const stack = evaluator.execute(input);\n const stackIndex = stack.length - numOutputs;\n for (i = 0; i < numOutputs; i++) {\n value = stack[stackIndex + i];\n let bound = range[i * 2];\n if (value < bound) {\n value = bound;\n } else {\n bound = range[i * 2 + 1];\n if (value > bound) {\n value = bound;\n }\n }\n output[i] = value;\n }\n if (cache_available > 0) {\n cache_available--;\n cache[key] = output;\n }\n dest.set(output, destOffset);\n };\n }\n}\n\nfunction isPDFFunction(v) {\n let fnDict;\n if (v instanceof Dict) {\n fnDict = v;\n } else if (v instanceof BaseStream) {\n fnDict = v.dict;\n } else {\n return false;\n }\n return fnDict.has(\"FunctionType\");\n}\n\nclass PostScriptStack {\n static MAX_STACK_SIZE = 100;\n\n constructor(initialStack) {\n this.stack = initialStack ? Array.from(initialStack) : [];\n }\n\n push(value) {\n if (this.stack.length >= PostScriptStack.MAX_STACK_SIZE) {\n throw new Error(\"PostScript function stack overflow.\");\n }\n this.stack.push(value);\n }\n\n pop() {\n if (this.stack.length <= 0) {\n throw new Error(\"PostScript function stack underflow.\");\n }\n return this.stack.pop();\n }\n\n copy(n) {\n if (this.stack.length + n >= PostScriptStack.MAX_STACK_SIZE) {\n throw new Error(\"PostScript function stack overflow.\");\n }\n const stack = this.stack;\n for (let i = stack.length - n, j = n - 1; j >= 0; j--, i++) {\n stack.push(stack[i]);\n }\n }\n\n index(n) {\n this.push(this.stack[this.stack.length - n - 1]);\n }\n\n // rotate the last n stack elements p times\n roll(n, p) {\n const stack = this.stack;\n const l = stack.length - n;\n const r = stack.length - 1;\n const c = l + (p - Math.floor(p / n) * n);\n\n for (let i = l, j = r; i < j; i++, j--) {\n const t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (let i = l, j = c - 1; i < j; i++, j--) {\n const t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n for (let i = c, j = r; i < j; i++, j--) {\n const t = stack[i];\n stack[i] = stack[j];\n stack[j] = t;\n }\n }\n}\n\nclass PostScriptEvaluator {\n constructor(operators) {\n this.operators = operators;\n }\n\n execute(initialStack) {\n const stack = new PostScriptStack(initialStack);\n let counter = 0;\n const operators = this.operators;\n const length = operators.length;\n let operator, a, b;\n while (counter < length) {\n operator = operators[counter++];\n if (typeof operator === \"number\") {\n // Operator is really an operand and should be pushed to the stack.\n stack.push(operator);\n continue;\n }\n switch (operator) {\n // non standard ps operators\n case \"jz\": // jump if false\n b = stack.pop();\n a = stack.pop();\n if (!a) {\n counter = b;\n }\n break;\n case \"j\": // jump\n a = stack.pop();\n counter = a;\n break;\n\n // all ps operators in alphabetical order (excluding if/ifelse)\n case \"abs\":\n a = stack.pop();\n stack.push(Math.abs(a));\n break;\n case \"add\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a + b);\n break;\n case \"and\":\n b = stack.pop();\n a = stack.pop();\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n stack.push(a && b);\n } else {\n stack.push(a & b);\n }\n break;\n case \"atan\":\n b = stack.pop();\n a = stack.pop();\n a = (Math.atan2(a, b) / Math.PI) * 180;\n if (a < 0) {\n a += 360;\n }\n stack.push(a);\n break;\n case \"bitshift\":\n b = stack.pop();\n a = stack.pop();\n if (a > 0) {\n stack.push(a << b);\n } else {\n stack.push(a >> b);\n }\n break;\n case \"ceiling\":\n a = stack.pop();\n stack.push(Math.ceil(a));\n break;\n case \"copy\":\n a = stack.pop();\n stack.copy(a);\n break;\n case \"cos\":\n a = stack.pop();\n stack.push(Math.cos(((a % 360) / 180) * Math.PI));\n break;\n case \"cvi\":\n a = stack.pop() | 0;\n stack.push(a);\n break;\n case \"cvr\":\n // noop\n break;\n case \"div\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a / b);\n break;\n case \"dup\":\n stack.copy(1);\n break;\n case \"eq\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a === b);\n break;\n case \"exch\":\n stack.roll(2, 1);\n break;\n case \"exp\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a ** b);\n break;\n case \"false\":\n stack.push(false);\n break;\n case \"floor\":\n a = stack.pop();\n stack.push(Math.floor(a));\n break;\n case \"ge\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a >= b);\n break;\n case \"gt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a > b);\n break;\n case \"idiv\":\n b = stack.pop();\n a = stack.pop();\n stack.push((a / b) | 0);\n break;\n case \"index\":\n a = stack.pop();\n stack.index(a);\n break;\n case \"le\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a <= b);\n break;\n case \"ln\":\n a = stack.pop();\n stack.push(Math.log(a));\n break;\n case \"log\":\n a = stack.pop();\n stack.push(Math.log10(a));\n break;\n case \"lt\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a < b);\n break;\n case \"mod\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a % b);\n break;\n case \"mul\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a * b);\n break;\n case \"ne\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a !== b);\n break;\n case \"neg\":\n a = stack.pop();\n stack.push(-a);\n break;\n case \"not\":\n a = stack.pop();\n if (typeof a === \"boolean\") {\n stack.push(!a);\n } else {\n stack.push(~a);\n }\n break;\n case \"or\":\n b = stack.pop();\n a = stack.pop();\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n stack.push(a || b);\n } else {\n stack.push(a | b);\n }\n break;\n case \"pop\":\n stack.pop();\n break;\n case \"roll\":\n b = stack.pop();\n a = stack.pop();\n stack.roll(a, b);\n break;\n case \"round\":\n a = stack.pop();\n stack.push(Math.round(a));\n break;\n case \"sin\":\n a = stack.pop();\n stack.push(Math.sin(((a % 360) / 180) * Math.PI));\n break;\n case \"sqrt\":\n a = stack.pop();\n stack.push(Math.sqrt(a));\n break;\n case \"sub\":\n b = stack.pop();\n a = stack.pop();\n stack.push(a - b);\n break;\n case \"true\":\n stack.push(true);\n break;\n case \"truncate\":\n a = stack.pop();\n a = a < 0 ? Math.ceil(a) : Math.floor(a);\n stack.push(a);\n break;\n case \"xor\":\n b = stack.pop();\n a = stack.pop();\n if (typeof a === \"boolean\" && typeof b === \"boolean\") {\n stack.push(a !== b);\n } else {\n stack.push(a ^ b);\n }\n break;\n default:\n throw new FormatError(`Unknown operator ${operator}`);\n }\n }\n return stack.stack;\n }\n}\n\nclass AstNode {\n constructor(type) {\n this.type = type;\n }\n\n visit(visitor) {\n unreachable(\"abstract method\");\n }\n}\n\nclass AstArgument extends AstNode {\n constructor(index, min, max) {\n super(\"args\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitArgument(this);\n }\n}\n\nclass AstLiteral extends AstNode {\n constructor(number) {\n super(\"literal\");\n this.number = number;\n this.min = number;\n this.max = number;\n }\n\n visit(visitor) {\n visitor.visitLiteral(this);\n }\n}\n\nclass AstBinaryOperation extends AstNode {\n constructor(op, arg1, arg2, min, max) {\n super(\"binary\");\n this.op = op;\n this.arg1 = arg1;\n this.arg2 = arg2;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitBinaryOperation(this);\n }\n}\n\nclass AstMin extends AstNode {\n constructor(arg, max) {\n super(\"max\");\n this.arg = arg;\n this.min = arg.min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitMin(this);\n }\n}\n\nclass AstVariable extends AstNode {\n constructor(index, min, max) {\n super(\"var\");\n this.index = index;\n this.min = min;\n this.max = max;\n }\n\n visit(visitor) {\n visitor.visitVariable(this);\n }\n}\n\nclass AstVariableDefinition extends AstNode {\n constructor(variable, arg) {\n super(\"definition\");\n this.variable = variable;\n this.arg = arg;\n }\n\n visit(visitor) {\n visitor.visitVariableDefinition(this);\n }\n}\n\nclass ExpressionBuilderVisitor {\n constructor() {\n this.parts = [];\n }\n\n visitArgument(arg) {\n this.parts.push(\n \"Math.max(\",\n arg.min,\n \", Math.min(\",\n arg.max,\n \", src[srcOffset + \",\n arg.index,\n \"]))\"\n );\n }\n\n visitVariable(variable) {\n this.parts.push(\"v\", variable.index);\n }\n\n visitLiteral(literal) {\n this.parts.push(literal.number);\n }\n\n visitBinaryOperation(operation) {\n this.parts.push(\"(\");\n operation.arg1.visit(this);\n this.parts.push(\" \", operation.op, \" \");\n operation.arg2.visit(this);\n this.parts.push(\")\");\n }\n\n visitVariableDefinition(definition) {\n this.parts.push(\"var \");\n definition.variable.visit(this);\n this.parts.push(\" = \");\n definition.arg.visit(this);\n this.parts.push(\";\");\n }\n\n visitMin(max) {\n this.parts.push(\"Math.min(\");\n max.arg.visit(this);\n this.parts.push(\", \", max.max, \")\");\n }\n\n toString() {\n return this.parts.join(\"\");\n }\n}\n\nfunction buildAddOperation(num1, num2) {\n if (num2.type === \"literal\" && num2.number === 0) {\n // optimization: second operand is 0\n return num1;\n }\n if (num1.type === \"literal\" && num1.number === 0) {\n // optimization: first operand is 0\n return num2;\n }\n if (num2.type === \"literal\" && num1.type === \"literal\") {\n // optimization: operands operand are literals\n return new AstLiteral(num1.number + num2.number);\n }\n return new AstBinaryOperation(\n \"+\",\n num1,\n num2,\n num1.min + num2.min,\n num1.max + num2.max\n );\n}\n\nfunction buildMulOperation(num1, num2) {\n if (num2.type === \"literal\") {\n // optimization: second operands is a literal...\n if (num2.number === 0) {\n return new AstLiteral(0); // and it's 0\n } else if (num2.number === 1) {\n return num1; // and it's 1\n } else if (num1.type === \"literal\") {\n // ... and first operands is a literal too\n return new AstLiteral(num1.number * num2.number);\n }\n }\n if (num1.type === \"literal\") {\n // optimization: first operands is a literal...\n if (num1.number === 0) {\n return new AstLiteral(0); // and it's 0\n } else if (num1.number === 1) {\n return num2; // and it's 1\n }\n }\n const min = Math.min(\n num1.min * num2.min,\n num1.min * num2.max,\n num1.max * num2.min,\n num1.max * num2.max\n );\n const max = Math.max(\n num1.min * num2.min,\n num1.min * num2.max,\n num1.max * num2.min,\n num1.max * num2.max\n );\n return new AstBinaryOperation(\"*\", num1, num2, min, max);\n}\n\nfunction buildSubOperation(num1, num2) {\n if (num2.type === \"literal\") {\n // optimization: second operands is a literal...\n if (num2.number === 0) {\n return num1; // ... and it's 0\n } else if (num1.type === \"literal\") {\n // ... and first operands is a literal too\n return new AstLiteral(num1.number - num2.number);\n }\n }\n if (\n num2.type === \"binary\" &&\n num2.op === \"-\" &&\n num1.type === \"literal\" &&\n num1.number === 1 &&\n num2.arg1.type === \"literal\" &&\n num2.arg1.number === 1\n ) {\n // optimization for case: 1 - (1 - x)\n return num2.arg2;\n }\n return new AstBinaryOperation(\n \"-\",\n num1,\n num2,\n num1.min - num2.max,\n num1.max - num2.min\n );\n}\n\nfunction buildMinOperation(num1, max) {\n if (num1.min >= max) {\n // optimization: num1 min value is not less than required max\n return new AstLiteral(max); // just returning max\n } else if (num1.max <= max) {\n // optimization: num1 max value is not greater than required max\n return num1; // just returning an argument\n }\n return new AstMin(num1, max);\n}\n\n// Most of the PDFs functions consist of simple operations such as:\n// roll, exch, sub, cvr, pop, index, dup, mul, if, gt, add.\n//\n// We can compile most of such programs, and at the same moment, we can\n// optimize some expressions using basic math properties. Keeping track of\n// min/max values will allow us to avoid extra Math.min/Math.max calls.\nclass PostScriptCompiler {\n compile(code, domain, range) {\n const stack = [];\n const instructions = [];\n const inputSize = domain.length >> 1,\n outputSize = range.length >> 1;\n let lastRegister = 0;\n let n, j;\n let num1, num2, ast1, ast2, tmpVar, item;\n for (let i = 0; i < inputSize; i++) {\n stack.push(new AstArgument(i, domain[i * 2], domain[i * 2 + 1]));\n }\n\n for (let i = 0, ii = code.length; i < ii; i++) {\n item = code[i];\n if (typeof item === \"number\") {\n stack.push(new AstLiteral(item));\n continue;\n }\n\n switch (item) {\n case \"add\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildAddOperation(num1, num2));\n break;\n case \"cvr\":\n if (stack.length < 1) {\n return null;\n }\n break;\n case \"mul\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildMulOperation(num1, num2));\n break;\n case \"sub\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n stack.push(buildSubOperation(num1, num2));\n break;\n case \"exch\":\n if (stack.length < 2) {\n return null;\n }\n ast1 = stack.pop();\n ast2 = stack.pop();\n stack.push(ast1, ast2);\n break;\n case \"pop\":\n if (stack.length < 1) {\n return null;\n }\n stack.pop();\n break;\n case \"index\":\n if (stack.length < 1) {\n return null;\n }\n num1 = stack.pop();\n if (num1.type !== \"literal\") {\n return null;\n }\n n = num1.number;\n if (n < 0 || !Number.isInteger(n) || stack.length < n) {\n return null;\n }\n ast1 = stack[stack.length - n - 1];\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - n - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case \"dup\":\n if (stack.length < 1) {\n return null;\n }\n if (\n typeof code[i + 1] === \"number\" &&\n code[i + 2] === \"gt\" &&\n code[i + 3] === i + 7 &&\n code[i + 4] === \"jz\" &&\n code[i + 5] === \"pop\" &&\n code[i + 6] === code[i + 1]\n ) {\n // special case of the commands sequence for the min operation\n num1 = stack.pop();\n stack.push(buildMinOperation(num1, code[i + 1]));\n i += 6;\n break;\n }\n ast1 = stack.at(-1);\n if (ast1.type === \"literal\" || ast1.type === \"var\") {\n // we don't have to save into intermediate variable a literal or\n // variable.\n stack.push(ast1);\n break;\n }\n tmpVar = new AstVariable(lastRegister++, ast1.min, ast1.max);\n stack[stack.length - 1] = tmpVar;\n stack.push(tmpVar);\n instructions.push(new AstVariableDefinition(tmpVar, ast1));\n break;\n case \"roll\":\n if (stack.length < 2) {\n return null;\n }\n num2 = stack.pop();\n num1 = stack.pop();\n if (num2.type !== \"literal\" || num1.type !== \"literal\") {\n // both roll operands must be numbers\n return null;\n }\n j = num2.number;\n n = num1.number;\n if (\n n <= 0 ||\n !Number.isInteger(n) ||\n !Number.isInteger(j) ||\n stack.length < n\n ) {\n // ... and integers\n return null;\n }\n j = ((j % n) + n) % n;\n if (j === 0) {\n break; // just skipping -- there are nothing to rotate\n }\n stack.push(...stack.splice(stack.length - n, n - j));\n break;\n default:\n return null; // unsupported operator\n }\n }\n\n if (stack.length !== outputSize) {\n return null;\n }\n\n const result = [];\n for (const instruction of instructions) {\n const statementBuilder = new ExpressionBuilderVisitor();\n instruction.visit(statementBuilder);\n result.push(statementBuilder.toString());\n }\n for (let i = 0, ii = stack.length; i < ii; i++) {\n const expr = stack[i],\n statementBuilder = new ExpressionBuilderVisitor();\n expr.visit(statementBuilder);\n const min = range[i * 2],\n max = range[i * 2 + 1];\n const out = [statementBuilder.toString()];\n if (min > expr.min) {\n out.unshift(\"Math.max(\", min, \", \");\n out.push(\")\");\n }\n if (max < expr.max) {\n out.unshift(\"Math.min(\", max, \", \");\n out.push(\")\");\n }\n out.unshift(\"dest[destOffset + \", i, \"] = \");\n out.push(\";\");\n result.push(out.join(\"\"));\n }\n return result.join(\"\\n\");\n }\n}\n\nexport {\n isPDFFunction,\n PDFFunctionFactory,\n PostScriptCompiler,\n PostScriptEvaluator,\n};\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { warn } from \"../shared/util.js\";\n\n// Character types for symbols from 0000 to 00FF.\n// Source: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt\n// prettier-ignore\nconst baseTypes = [\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"S\", \"B\", \"S\",\n \"WS\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"B\", \"B\", \"S\", \"WS\", \"ON\", \"ON\", \"ET\",\n \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ES\", \"CS\", \"ES\", \"CS\", \"CS\",\n \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"CS\", \"ON\",\n \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"ON\", \"ON\", \"ON\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"B\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\",\n \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"BN\", \"CS\", \"ON\", \"ET\",\n \"ET\", \"ET\", \"ET\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"ON\", \"ON\", \"BN\", \"ON\",\n \"ON\", \"ET\", \"ET\", \"EN\", \"EN\", \"ON\", \"L\", \"ON\", \"ON\", \"ON\", \"EN\", \"L\",\n \"ON\", \"ON\", \"ON\", \"ON\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\",\n \"L\", \"L\", \"L\", \"L\", \"L\", \"ON\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\", \"L\"\n];\n\n// Character types for symbols from 0600 to 06FF.\n// Source: ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData.txt\n// Note that 061D does not exist in the Unicode standard (see\n// http://unicode.org/charts/PDF/U0600.pdf), so we replace it with an\n// empty string and issue a warning if we encounter this character. The\n// empty string is required to properly index the items after it.\n// prettier-ignore\nconst arabicTypes = [\n \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"ON\", \"ON\", \"AL\", \"ET\", \"ET\", \"AL\",\n \"CS\", \"AL\", \"ON\", \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\",\n \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\", \"AN\",\n \"AN\", \"AN\", \"AN\", \"ET\", \"AN\", \"AN\", \"AL\", \"AL\", \"AL\", \"NSM\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\",\n \"AL\", \"AL\", \"AL\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AN\",\n \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"NSM\", \"NSM\",\n \"ON\", \"NSM\", \"NSM\", \"NSM\", \"NSM\", \"AL\", \"AL\", \"EN\", \"EN\", \"EN\", \"EN\",\n \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"EN\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\", \"AL\"\n];\n\nfunction isOdd(i) {\n return (i & 1) !== 0;\n}\n\nfunction isEven(i) {\n return (i & 1) === 0;\n}\n\nfunction findUnequal(arr, start, value) {\n let j, jj;\n for (j = start, jj = arr.length; j < jj; ++j) {\n if (arr[j] !== value) {\n return j;\n }\n }\n return j;\n}\n\nfunction setValues(arr, start, end, value) {\n for (let j = start; j < end; ++j) {\n arr[j] = value;\n }\n}\n\nfunction reverseValues(arr, start, end) {\n for (let i = start, j = end - 1; i < j; ++i, --j) {\n const temp = arr[i];\n arr[i] = arr[j];\n arr[j] = temp;\n }\n}\n\nfunction createBidiText(str, isLTR, vertical = false) {\n let dir = \"ltr\";\n if (vertical) {\n dir = \"ttb\";\n } else if (!isLTR) {\n dir = \"rtl\";\n }\n return { str, dir };\n}\n\n// These are used in bidi(), which is called frequently. We re-use them on\n// each call to avoid unnecessary allocations.\nconst chars = [];\nconst types = [];\n\nfunction bidi(str, startLevel = -1, vertical = false) {\n let isLTR = true;\n const strLength = str.length;\n if (strLength === 0 || vertical) {\n return createBidiText(str, isLTR, vertical);\n }\n\n // Get types and fill arrays\n chars.length = strLength;\n types.length = strLength;\n let numBidi = 0;\n\n let i, ii;\n for (i = 0; i < strLength; ++i) {\n chars[i] = str.charAt(i);\n\n const charCode = str.charCodeAt(i);\n let charType = \"L\";\n if (charCode <= 0x00ff) {\n charType = baseTypes[charCode];\n } else if (0x0590 <= charCode && charCode <= 0x05f4) {\n charType = \"R\";\n } else if (0x0600 <= charCode && charCode <= 0x06ff) {\n charType = arabicTypes[charCode & 0xff];\n if (!charType) {\n warn(\"Bidi: invalid Unicode character \" + charCode.toString(16));\n }\n } else if (\n (0x0700 <= charCode && charCode <= 0x08ac) ||\n (0xfb50 <= charCode && charCode <= 0xfdff) ||\n (0xfe70 <= charCode && charCode <= 0xfeff)\n ) {\n charType = \"AL\";\n }\n if (charType === \"R\" || charType === \"AL\" || charType === \"AN\") {\n numBidi++;\n }\n types[i] = charType;\n }\n\n // Detect the bidi method\n // - If there are no rtl characters then no bidi needed\n // - If less than 30% chars are rtl then string is primarily ltr,\n // unless the string is very short.\n // - If more than 30% chars are rtl then string is primarily rtl\n if (numBidi === 0) {\n isLTR = true;\n return createBidiText(str, isLTR);\n }\n\n if (startLevel === -1) {\n if (numBidi / strLength < 0.3 && strLength > 4) {\n isLTR = true;\n startLevel = 0;\n } else {\n isLTR = false;\n startLevel = 1;\n }\n }\n\n const levels = [];\n for (i = 0; i < strLength; ++i) {\n levels[i] = startLevel;\n }\n\n /*\n X1-X10: skip most of this, since we are NOT doing the embeddings.\n */\n const e = isOdd(startLevel) ? \"R\" : \"L\";\n const sor = e;\n const eor = sor;\n\n /*\n W1. Examine each non-spacing mark (NSM) in the level run, and change the\n type of the NSM to the type of the previous character. If the NSM is at the\n start of the level run, it will get the type of sor.\n */\n let lastType = sor;\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"NSM\") {\n types[i] = lastType;\n } else {\n lastType = types[i];\n }\n }\n\n /*\n W2. Search backwards from each instance of a European number until the\n first strong type (R, L, AL, or sor) is found. If an AL is found, change\n the type of the European number to Arabic number.\n */\n lastType = sor;\n let t;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"EN\") {\n types[i] = lastType === \"AL\" ? \"AN\" : \"EN\";\n } else if (t === \"R\" || t === \"L\" || t === \"AL\") {\n lastType = t;\n }\n }\n\n /*\n W3. Change all ALs to R.\n */\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"AL\") {\n types[i] = \"R\";\n }\n }\n\n /*\n W4. A single European separator between two European numbers changes to a\n European number. A single common separator between two numbers of the same\n type changes to that type:\n */\n for (i = 1; i < strLength - 1; ++i) {\n if (types[i] === \"ES\" && types[i - 1] === \"EN\" && types[i + 1] === \"EN\") {\n types[i] = \"EN\";\n }\n if (\n types[i] === \"CS\" &&\n (types[i - 1] === \"EN\" || types[i - 1] === \"AN\") &&\n types[i + 1] === types[i - 1]\n ) {\n types[i] = types[i - 1];\n }\n }\n\n /*\n W5. A sequence of European terminators adjacent to European numbers changes\n to all European numbers:\n */\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"EN\") {\n // do before\n for (let j = i - 1; j >= 0; --j) {\n if (types[j] !== \"ET\") {\n break;\n }\n types[j] = \"EN\";\n }\n // do after\n for (let j = i + 1; j < strLength; ++j) {\n if (types[j] !== \"ET\") {\n break;\n }\n types[j] = \"EN\";\n }\n }\n }\n\n /*\n W6. Otherwise, separators and terminators change to Other Neutral:\n */\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"WS\" || t === \"ES\" || t === \"ET\" || t === \"CS\") {\n types[i] = \"ON\";\n }\n }\n\n /*\n W7. Search backwards from each instance of a European number until the\n first strong type (R, L, or sor) is found. If an L is found, then change\n the type of the European number to L.\n */\n lastType = sor;\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (t === \"EN\") {\n types[i] = lastType === \"L\" ? \"L\" : \"EN\";\n } else if (t === \"R\" || t === \"L\") {\n lastType = t;\n }\n }\n\n /*\n N1. A sequence of neutrals takes the direction of the surrounding strong\n text if the text on both sides has the same direction. European and Arabic\n numbers are treated as though they were R. Start-of-level-run (sor) and\n end-of-level-run (eor) are used at level run boundaries.\n */\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n const end = findUnequal(types, i + 1, \"ON\");\n let before = sor;\n if (i > 0) {\n before = types[i - 1];\n }\n\n let after = eor;\n if (end + 1 < strLength) {\n after = types[end + 1];\n }\n if (before !== \"L\") {\n before = \"R\";\n }\n if (after !== \"L\") {\n after = \"R\";\n }\n if (before === after) {\n setValues(types, i, end, before);\n }\n i = end - 1; // reset to end (-1 so next iteration is ok)\n }\n }\n\n /*\n N2. Any remaining neutrals take the embedding direction.\n */\n for (i = 0; i < strLength; ++i) {\n if (types[i] === \"ON\") {\n types[i] = e;\n }\n }\n\n /*\n I1. For all characters with an even (left-to-right) embedding direction,\n those of type R go up one level and those of type AN or EN go up two\n levels.\n I2. For all characters with an odd (right-to-left) embedding direction,\n those of type L, EN or AN go up one level.\n */\n for (i = 0; i < strLength; ++i) {\n t = types[i];\n if (isEven(levels[i])) {\n if (t === \"R\") {\n levels[i] += 1;\n } else if (t === \"AN\" || t === \"EN\") {\n levels[i] += 2;\n }\n } else if (/* isOdd && */ t === \"L\" || t === \"AN\" || t === \"EN\") {\n levels[i] += 1;\n }\n }\n\n /*\n L1. On each line, reset the embedding level of the following characters to\n the paragraph embedding level:\n\n segment separators,\n paragraph separators,\n any sequence of whitespace characters preceding a segment separator or\n paragraph separator, and any sequence of white space characters at the end\n of the line.\n */\n\n // don't bother as text is only single line\n\n /*\n L2. From the highest level found in the text to the lowest odd level on\n each line, reverse any contiguous sequence of characters that are at that\n level or higher.\n */\n\n // find highest level & lowest odd level\n let highestLevel = -1;\n let lowestOddLevel = 99;\n let level;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n level = levels[i];\n if (highestLevel < level) {\n highestLevel = level;\n }\n if (lowestOddLevel > level && isOdd(level)) {\n lowestOddLevel = level;\n }\n }\n\n // now reverse between those limits\n for (level = highestLevel; level >= lowestOddLevel; --level) {\n // find segments to reverse\n let start = -1;\n for (i = 0, ii = levels.length; i < ii; ++i) {\n if (levels[i] < level) {\n if (start >= 0) {\n reverseValues(chars, start, i);\n start = -1;\n }\n } else if (start < 0) {\n start = i;\n }\n }\n if (start >= 0) {\n reverseValues(chars, start, levels.length);\n }\n }\n\n /*\n L3. Combining marks applied to a right-to-left base character will at this\n point precede their base character. If the rendering engine expects them to\n follow the base characters in the final display process, then the ordering\n of the marks and the base character must be reversed.\n */\n\n // don't bother for now\n\n /*\n L4. A character that possesses the mirrored property as specified by\n Section 4.7, Mirrored, must be depicted by a mirrored glyph if the resolved\n directionality of that character is R.\n */\n\n // don't mirror as characters are already mirrored in the pdf\n\n // Finally, return string\n for (i = 0, ii = chars.length; i < ii; ++i) {\n const ch = chars[i];\n if (ch === \"<\" || ch === \">\") {\n chars[i] = \"\";\n }\n }\n return createBidiText(chars.join(\"\"), isLTR);\n}\n\nexport { bidi };\n","/* Copyright 2023 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { normalizeFontName } from \"./fonts_utils.js\";\nimport { validateFontName } from \"./core_utils.js\";\n\nconst NORMAL = {\n style: \"normal\",\n weight: \"normal\",\n};\nconst BOLD = {\n style: \"normal\",\n weight: \"bold\",\n};\nconst ITALIC = {\n style: \"italic\",\n weight: \"normal\",\n};\nconst BOLDITALIC = {\n style: \"italic\",\n weight: \"bold\",\n};\n\nconst substitutionMap = new Map([\n [\n \"Times-Roman\",\n {\n local: [\n \"Times New Roman\",\n \"Times-Roman\",\n \"Times\",\n \"Liberation Serif\",\n \"Nimbus Roman\",\n \"Nimbus Roman L\",\n \"Tinos\",\n \"Thorndale\",\n \"TeX Gyre Termes\",\n \"FreeSerif\",\n \"DejaVu Serif\",\n \"Bitstream Vera Serif\",\n \"Ubuntu\",\n ],\n style: NORMAL,\n ultimate: \"serif\",\n },\n ],\n [\n \"Times-Bold\",\n {\n alias: \"Times-Roman\",\n style: BOLD,\n ultimate: \"serif\",\n },\n ],\n [\n \"Times-Italic\",\n {\n alias: \"Times-Roman\",\n style: ITALIC,\n ultimate: \"serif\",\n },\n ],\n [\n \"Times-BoldItalic\",\n {\n alias: \"Times-Roman\",\n style: BOLDITALIC,\n ultimate: \"serif\",\n },\n ],\n [\n \"Helvetica\",\n {\n local: [\n \"Helvetica\",\n \"Helvetica Neue\",\n \"Arial\",\n \"Arial Nova\",\n \"Liberation Sans\",\n \"Arimo\",\n \"Nimbus Sans\",\n \"Nimbus Sans L\",\n \"A030\",\n \"TeX Gyre Heros\",\n \"FreeSans\",\n \"DejaVu Sans\",\n \"Albany\",\n \"Bitstream Vera Sans\",\n \"Arial Unicode MS\",\n \"Microsoft Sans Serif\",\n \"Apple Symbols\",\n \"Cantarell\",\n ],\n path: \"LiberationSans-Regular.ttf\",\n style: NORMAL,\n ultimate: \"sans-serif\",\n },\n ],\n [\n \"Helvetica-Bold\",\n {\n alias: \"Helvetica\",\n path: \"LiberationSans-Bold.ttf\",\n style: BOLD,\n ultimate: \"sans-serif\",\n },\n ],\n [\n \"Helvetica-Oblique\",\n {\n alias: \"Helvetica\",\n path: \"LiberationSans-Italic.ttf\",\n style: ITALIC,\n ultimate: \"sans-serif\",\n },\n ],\n [\n \"Helvetica-BoldOblique\",\n {\n alias: \"Helvetica\",\n path: \"LiberationSans-BoldItalic.ttf\",\n style: BOLDITALIC,\n ultimate: \"sans-serif\",\n },\n ],\n [\n \"Courier\",\n {\n local: [\n \"Courier\",\n \"Courier New\",\n \"Liberation Mono\",\n \"Nimbus Mono\",\n \"Nimbus Mono L\",\n \"Cousine\",\n \"Cumberland\",\n \"TeX Gyre Cursor\",\n \"FreeMono\",\n ],\n style: NORMAL,\n ultimate: \"monospace\",\n },\n ],\n [\n \"Courier-Bold\",\n {\n alias: \"Courier\",\n style: BOLD,\n ultimate: \"monospace\",\n },\n ],\n [\n \"Courier-Oblique\",\n {\n alias: \"Courier\",\n style: ITALIC,\n ultimate: \"monospace\",\n },\n ],\n [\n \"Courier-BoldOblique\",\n {\n alias: \"Courier\",\n style: BOLDITALIC,\n ultimate: \"monospace\",\n },\n ],\n [\n \"ArialBlack\",\n {\n local: [\"Arial Black\"],\n style: {\n style: \"normal\",\n weight: \"900\",\n },\n fallback: \"Helvetica-Bold\",\n },\n ],\n [\n \"ArialBlack-Bold\",\n {\n alias: \"ArialBlack\",\n },\n ],\n [\n \"ArialBlack-Italic\",\n {\n alias: \"ArialBlack\",\n style: {\n style: \"italic\",\n weight: \"900\",\n },\n fallback: \"Helvetica-BoldOblique\",\n },\n ],\n [\n \"ArialBlack-BoldItalic\",\n {\n alias: \"ArialBlack-Italic\",\n },\n ],\n [\n \"ArialNarrow\",\n {\n local: [\n \"Arial Narrow\",\n \"Liberation Sans Narrow\",\n \"Helvetica Condensed\",\n \"Nimbus Sans Narrow\",\n \"TeX Gyre Heros Cn\",\n ],\n style: NORMAL,\n fallback: \"Helvetica\",\n },\n ],\n [\n \"ArialNarrow-Bold\",\n {\n alias: \"ArialNarrow\",\n style: BOLD,\n fallback: \"Helvetica-Bold\",\n },\n ],\n [\n \"ArialNarrow-Italic\",\n {\n alias: \"ArialNarrow\",\n style: ITALIC,\n fallback: \"Helvetica-Oblique\",\n },\n ],\n [\n \"ArialNarrow-BoldItalic\",\n {\n alias: \"ArialNarrow\",\n style: BOLDITALIC,\n fallback: \"Helvetica-BoldOblique\",\n },\n ],\n [\n \"Calibri\",\n {\n local: [\"Calibri\", \"Carlito\"],\n style: NORMAL,\n fallback: \"Helvetica\",\n },\n ],\n [\n \"Calibri-Bold\",\n {\n alias: \"Calibri\",\n style: BOLD,\n fallback: \"Helvetica-Bold\",\n },\n ],\n [\n \"Calibri-Italic\",\n {\n alias: \"Calibri\",\n style: ITALIC,\n fallback: \"Helvetica-Oblique\",\n },\n ],\n [\n \"Calibri-BoldItalic\",\n {\n alias: \"Calibri\",\n style: BOLDITALIC,\n fallback: \"Helvetica-BoldOblique\",\n },\n ],\n [\n \"Wingdings\",\n {\n local: [\"Wingdings\", \"URW Dingbats\"],\n style: NORMAL,\n },\n ],\n [\n \"Wingdings-Regular\",\n {\n alias: \"Wingdings\",\n },\n ],\n [\n \"Wingdings-Bold\",\n {\n alias: \"Wingdings\",\n },\n ],\n]);\n\nconst fontAliases = new Map([[\"Arial-Black\", \"ArialBlack\"]]);\n\nfunction getStyleToAppend(style) {\n switch (style) {\n case BOLD:\n return \"Bold\";\n case ITALIC:\n return \"Italic\";\n case BOLDITALIC:\n return \"Bold Italic\";\n default:\n if (style?.weight === \"bold\") {\n return \"Bold\";\n }\n if (style?.style === \"italic\") {\n return \"Italic\";\n }\n }\n return \"\";\n}\n\n/**\n * Generate font description.\n * @param {Object} param0, font substitution description.\n * @param {Array<String>} src, contains src values (local(...) or url(...)).\n * @param {String} localFontPath, path to local fonts.\n * @param {boolean} useFallback, whether to use fallback font.\n * @param {boolean} usePath, whether to use path to font.\n * @param {String} append, style (Bold, Italic, ...) to append to font name.\n * @return {Object} { style, ultimate }.\n */\nfunction generateFont(\n { alias, local, path, fallback, style, ultimate },\n src,\n localFontPath,\n useFallback = true,\n usePath = true,\n append = \"\"\n) {\n const result = {\n style: null,\n ultimate: null,\n };\n if (local) {\n const extra = append ? ` ${append}` : \"\";\n for (const name of local) {\n src.push(`local(${name}${extra})`);\n }\n }\n if (alias) {\n const substitution = substitutionMap.get(alias);\n const aliasAppend = append || getStyleToAppend(style);\n Object.assign(\n result,\n generateFont(\n substitution,\n src,\n localFontPath,\n /* useFallback = */ useFallback && !fallback,\n /* usePath = */ usePath && !path,\n aliasAppend\n )\n );\n }\n if (style) {\n result.style = style;\n }\n if (ultimate) {\n result.ultimate = ultimate;\n }\n if (useFallback && fallback) {\n const fallbackInfo = substitutionMap.get(fallback);\n const { ultimate: fallbackUltimate } = generateFont(\n fallbackInfo,\n src,\n localFontPath,\n useFallback,\n /* usePath = */ usePath && !path,\n append\n );\n result.ultimate ||= fallbackUltimate;\n }\n if (usePath && path && localFontPath) {\n src.push(`url(${localFontPath}${path})`);\n }\n\n return result;\n}\n\n/**\n * Get a font substitution for a given font.\n * The general idea is to have enough information to create a CSS rule like\n * this:\n * @font-face {\n * font-family: 'Times';\n * src: local('Times New Roman'), local('Subst1'), local('Subst2'),\n * url(.../TimesNewRoman.ttf)\n * font-weight: normal;\n * font-style: normal;\n * }\n * or use the FontFace API.\n *\n * @param {Map} systemFontCache The cache of local fonts.\n * @param {Object} idFactory The ids factory.\n * @param {String} localFontPath Path to the fonts directory.\n * @param {String} baseFontName The font name to be substituted.\n * @param {String|undefined} standardFontName The standard font name to use\n * if the base font is not available.\n * @returns an Object with the CSS, the loaded name, the src and the style.\n */\nfunction getFontSubstitution(\n systemFontCache,\n idFactory,\n localFontPath,\n baseFontName,\n standardFontName\n) {\n // It's possible to have a font name with spaces, commas or dashes, hence we\n // just replace them by a dash.\n baseFontName = normalizeFontName(baseFontName);\n\n const key = baseFontName;\n let substitutionInfo = systemFontCache.get(key);\n if (substitutionInfo) {\n return substitutionInfo;\n }\n\n // First, check if we've a substitution for the base font.\n let substitution = substitutionMap.get(baseFontName);\n if (!substitution) {\n // Check if we've an alias for the base font, Arial-Black is the same as\n // ArialBlack\n for (const [alias, subst] of fontAliases) {\n if (baseFontName.startsWith(alias)) {\n baseFontName = `${subst}${baseFontName.substring(alias.length)}`;\n substitution = substitutionMap.get(baseFontName);\n break;\n }\n }\n }\n\n let mustAddBaseFont = false;\n if (!substitution) {\n // If not, check if we've a substitution for the standard font.\n substitution = substitutionMap.get(standardFontName);\n mustAddBaseFont = true;\n }\n\n const loadedName = `${idFactory.getDocId()}_s${idFactory.createFontId()}`;\n if (!substitution) {\n if (!validateFontName(baseFontName)) {\n systemFontCache.set(key, null);\n // If the baseFontName is not valid we don't want to use it.\n return null;\n }\n // Maybe we'll be lucky and the OS will have the font.\n const bold = /bold/gi.test(baseFontName);\n const italic = /oblique|italic/gi.test(baseFontName);\n const style =\n (bold && italic && BOLDITALIC) ||\n (bold && BOLD) ||\n (italic && ITALIC) ||\n NORMAL;\n substitutionInfo = {\n css: loadedName,\n guessFallback: true,\n loadedName,\n baseFontName,\n src: `local(${baseFontName})`,\n style,\n };\n systemFontCache.set(key, substitutionInfo);\n return substitutionInfo;\n }\n\n const src = [];\n // Maybe the OS will have the exact font we want so just prepend it to the\n // list.\n if (mustAddBaseFont && validateFontName(baseFontName)) {\n src.push(`local(${baseFontName})`);\n }\n const { style, ultimate } = generateFont(substitution, src, localFontPath);\n const guessFallback = ultimate === null;\n const fallback = guessFallback ? \"\" : `,${ultimate}`;\n\n substitutionInfo = {\n css: `${loadedName}${fallback}`,\n guessFallback,\n loadedName,\n baseFontName,\n src: src.join(\",\"),\n style,\n };\n systemFontCache.set(key, substitutionInfo);\n\n return substitutionInfo;\n}\n\nexport { getFontSubstitution };\n","/* Copyright 2023 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FeatureTest, ImageKind, shadow } from \"../shared/util.js\";\n\nconst MIN_IMAGE_DIM = 2048;\n\n// In Chrome, there aren't max dimensions but only a max area. So an image with\n// a very large dimensions is acceptable but it probably doesn't hurt to reduce\n// it when considering that it will finally rendered on a small canvas.\nconst MAX_IMAGE_DIM = 65537;\nconst MAX_ERROR = 128;\n\n// Large images are encoded in using the BMP format (it's a way faster than\n// encoding in PNG because there are no checksums to compute).\n// Unfortunately, createImageBitmap will create a task in the main thread in\n// order to build the bitmap, hence the main thread is blocked during the\n// decoding which can be a bit long (see bug 1817244).\n// When bug 1759728 is fixed we can remove the BMP workaround and at least it\n// should be a way faster to create the bitmap.\n\nclass ImageResizer {\n constructor(imgData, isMask) {\n this._imgData = imgData;\n this._isMask = isMask;\n }\n\n static needsToBeResized(width, height) {\n if (width <= this._goodSquareLength && height <= this._goodSquareLength) {\n return false;\n }\n\n const { MAX_DIM } = this;\n if (width > MAX_DIM || height > MAX_DIM) {\n return true;\n }\n\n const area = width * height;\n if (this._hasMaxArea) {\n return area > this.MAX_AREA;\n }\n\n if (area < this._goodSquareLength ** 2) {\n return false;\n }\n\n // We try as much as possible to avoid to compute the max area.\n if (this._areGoodDims(width, height)) {\n this._goodSquareLength = Math.max(\n this._goodSquareLength,\n Math.floor(Math.sqrt(width * height))\n );\n return false;\n }\n\n // TODO: the computation can be a bit long because we potentially allocate\n // some large canvas, so in the Firefox case this value (and MAX_DIM) can be\n // infered from prefs (MAX_AREA = gfx.max-alloc-size / 4, 4 is because of\n // RGBA).\n this._goodSquareLength = this._guessMax(\n this._goodSquareLength,\n MAX_DIM,\n MAX_ERROR,\n 0\n );\n const maxArea = (this.MAX_AREA = this._goodSquareLength ** 2);\n\n return area > maxArea;\n }\n\n static get MAX_DIM() {\n return shadow(\n this,\n \"MAX_DIM\",\n this._guessMax(MIN_IMAGE_DIM, MAX_IMAGE_DIM, 0, 1)\n );\n }\n\n static get MAX_AREA() {\n this._hasMaxArea = true;\n return shadow(\n this,\n \"MAX_AREA\",\n this._guessMax(\n ImageResizer._goodSquareLength,\n this.MAX_DIM,\n MAX_ERROR,\n 0\n ) ** 2\n );\n }\n\n static set MAX_AREA(area) {\n if (area >= 0) {\n this._hasMaxArea = true;\n shadow(this, \"MAX_AREA\", area);\n }\n }\n\n static setMaxArea(area) {\n if (!this._hasMaxArea) {\n // Divide by 4 to have the value in pixels.\n this.MAX_AREA = area >> 2;\n }\n }\n\n static _areGoodDims(width, height) {\n try {\n // This code is working in either Firefox or Chrome.\n // There is a faster solution using transferToImageBitmap which is faster\n // in Firefox (when the dimensions are wrong the resulting bitmap has its\n // dimensions equal to 1) but it doesn't find the correct values in\n // Chrome.\n const canvas = new OffscreenCanvas(width, height);\n const ctx = canvas.getContext(\"2d\");\n ctx.fillRect(0, 0, 1, 1);\n const opacity = ctx.getImageData(0, 0, 1, 1).data[3];\n canvas.width = canvas.height = 1;\n return opacity !== 0;\n } catch {\n return false;\n }\n }\n\n static _guessMax(start, end, tolerance, defaultHeight) {\n // We don't really need to have exact values.\n // When we're here then we're in a corner case: we've a very large image.\n // So we could potentially downscale an image which fits in the canvas,\n // it's maybe a pity in term of perfs but we'll reduce the memory use.\n // The tolerance is the acceptable error we can make on the limit we want.\n // On Chrome, when the tolerance 0 then it can take ~5s to compute the max\n // area... and having a tolerance of 128 divides the time by 2.\n while (start + tolerance + 1 < end) {\n const middle = Math.floor((start + end) / 2);\n const height = defaultHeight || middle;\n if (this._areGoodDims(middle, height)) {\n start = middle;\n } else {\n end = middle;\n }\n }\n return start;\n }\n\n static async createImage(imgData, isMask = false) {\n return new ImageResizer(imgData, isMask)._createImage();\n }\n\n async _createImage() {\n const data = this._encodeBMP();\n const blob = new Blob([data.buffer], {\n type: \"image/bmp\",\n });\n const bitmapPromise = createImageBitmap(blob);\n\n const { MAX_AREA, MAX_DIM } = ImageResizer;\n const { _imgData: imgData } = this;\n const { width, height } = imgData;\n const minFactor = Math.max(\n width / MAX_DIM,\n height / MAX_DIM,\n Math.sqrt((width * height) / MAX_AREA)\n );\n\n const firstFactor = Math.max(minFactor, 2);\n\n // Add 1 to the ratio and round it with 1 digit.\n // We add 1.25 in order to have a final image under the limits\n // (and not just at the limits) to reduce memory use.\n const factor = Math.round(10 * (minFactor + 1.25)) / 10 / firstFactor;\n\n const N = Math.floor(Math.log2(factor));\n const steps = new Array(N + 2).fill(2);\n steps[0] = firstFactor;\n steps.splice(-1, 1, factor / (1 << N));\n\n let newWidth = width;\n let newHeight = height;\n let bitmap = await bitmapPromise;\n\n for (const step of steps) {\n const prevWidth = newWidth;\n const prevHeight = newHeight;\n\n // See bug 1820511 (Windows specific bug).\n // TODO: once the above bug is fixed we could revert to:\n // newWidth = Math.floor(newWidth / 2);\n newWidth = Math.floor(newWidth / step) - 1;\n newHeight = Math.floor(newHeight / step) - 1;\n\n const canvas = new OffscreenCanvas(newWidth, newHeight);\n const ctx = canvas.getContext(\"2d\");\n ctx.drawImage(\n bitmap,\n 0,\n 0,\n prevWidth,\n prevHeight,\n 0,\n 0,\n newWidth,\n newHeight\n );\n bitmap = canvas.transferToImageBitmap();\n }\n\n imgData.data = null;\n imgData.bitmap = bitmap;\n imgData.width = newWidth;\n imgData.height = newHeight;\n\n return imgData;\n }\n\n _encodeBMP() {\n const { width, height, kind } = this._imgData;\n let data = this._imgData.data;\n let bitPerPixel;\n let colorTable = new Uint8Array(0);\n let maskTable = colorTable;\n let compression = 0;\n\n // Each row of the image must be padded in order to have a final size which\n // is a multiple of 4.\n\n switch (kind) {\n case ImageKind.GRAYSCALE_1BPP: {\n bitPerPixel = 1;\n colorTable = new Uint8Array(\n this._isMask\n ? [255, 255, 255, 255, 0, 0, 0, 0]\n : [0, 0, 0, 0, 255, 255, 255, 255]\n );\n const rowLen = (width + 7) >> 3;\n const rowSize = (rowLen + 3) & -4;\n if (rowLen !== rowSize) {\n const newData = new Uint8Array(rowSize * height);\n let k = 0;\n for (\n let i = 0, ii = height * rowLen;\n i < ii;\n i += rowLen, k += rowSize\n ) {\n newData.set(data.subarray(i, i + rowLen), k);\n }\n data = newData;\n }\n break;\n }\n case ImageKind.RGB_24BPP: {\n bitPerPixel = 24;\n if (width & 3) {\n const rowLen = 3 * width;\n const rowSize = (rowLen + 3) & -4;\n const extraLen = rowSize - rowLen;\n const newData = new Uint8Array(rowSize * height);\n let k = 0;\n for (let i = 0, ii = height * rowLen; i < ii; i += rowLen) {\n const row = data.subarray(i, i + rowLen);\n for (let j = 0; j < rowLen; j += 3) {\n newData[k++] = row[j + 2];\n newData[k++] = row[j + 1];\n newData[k++] = row[j];\n }\n k += extraLen;\n }\n data = newData;\n } else {\n for (let i = 0, ii = data.length; i < ii; i += 3) {\n // Just swap R and B.\n const tmp = data[i];\n data[i] = data[i + 2];\n data[i + 2] = tmp;\n }\n }\n break;\n }\n case ImageKind.RGBA_32BPP:\n bitPerPixel = 32;\n compression = 3;\n maskTable = new Uint8Array(\n 4 /* R mask */ +\n 4 /* G mask */ +\n 4 /* B mask */ +\n 4 /* A mask */ +\n 52 /* Windows color space stuff */\n );\n const view = new DataView(maskTable.buffer);\n if (FeatureTest.isLittleEndian) {\n view.setUint32(0, 0x000000ff, true);\n view.setUint32(4, 0x0000ff00, true);\n view.setUint32(8, 0x00ff0000, true);\n view.setUint32(12, 0xff000000, true);\n } else {\n view.setUint32(0, 0xff000000, true);\n view.setUint32(4, 0x00ff0000, true);\n view.setUint32(8, 0x0000ff00, true);\n view.setUint32(12, 0x000000ff, true);\n }\n break;\n default:\n throw new Error(\"invalid format\");\n }\n\n let i = 0;\n const headerLength = 40 + maskTable.length;\n const fileLength = 14 + headerLength + colorTable.length + data.length;\n const bmpData = new Uint8Array(fileLength);\n const view = new DataView(bmpData.buffer);\n\n // Signature.\n view.setUint16(i, 0x4d42, true);\n i += 2;\n\n // File size.\n view.setUint32(i, fileLength, true);\n i += 4;\n\n // Reserved.\n view.setUint32(i, 0, true);\n i += 4;\n\n // Data offset.\n view.setUint32(i, 14 + headerLength + colorTable.length, true);\n i += 4;\n\n // Header size.\n view.setUint32(i, headerLength, true);\n i += 4;\n\n // Width.\n view.setInt32(i, width, true);\n i += 4;\n\n // Height.\n // Negative height indicates that the image is stored from top to bottom.\n view.setInt32(i, -height, true);\n i += 4;\n\n // Number of planes (must be 1).\n view.setUint16(i, 1, true);\n i += 2;\n\n // Number of bit per pixel.\n view.setUint16(i, bitPerPixel, true);\n i += 2;\n\n // Compression method.\n view.setUint32(i, compression, true);\n i += 4;\n\n // The image size.\n view.setUint32(i, 0, true);\n i += 4;\n\n // Horizontal resolution.\n view.setInt32(i, 0, true);\n i += 4;\n\n // Vertical resolution.\n view.setInt32(i, 0, true);\n i += 4;\n\n // Number of colors in the palette (0 to default).\n view.setUint32(i, colorTable.length / 4, true);\n i += 4;\n\n // Number of important colors used (0 to default).\n view.setUint32(i, 0, true);\n i += 4;\n\n bmpData.set(maskTable, i);\n i += maskTable.length;\n\n bmpData.set(colorTable, i);\n i += colorTable.length;\n\n bmpData.set(data, i);\n\n return bmpData;\n }\n}\n\nImageResizer._goodSquareLength = MIN_IMAGE_DIM;\n\nexport { ImageResizer };\n","/* Copyright 2014 Opera Software ASA\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n *\n * Based on https://code.google.com/p/smhasher/wiki/MurmurHash3.\n * Hashes roughly 100 KB per millisecond on i7 3.4 GHz.\n */\n\nimport { isArrayBuffer } from \"./util.js\";\n\nconst SEED = 0xc3d2e1f0;\n// Workaround for missing math precision in JS.\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n\n update(input) {\n let data, length;\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if (isArrayBuffer(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\n \"Wrong data format in MurmurHash3_64_update. \" +\n \"Input must be a string or array.\"\n );\n }\n\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n // We don't care about endianness here.\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n h1 ^= k1;\n h1 = (h1 << 13) | (h1 >>> 19);\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = ((k2 * C1) & MASK_HIGH) | ((k2 * C1_LOW) & MASK_LOW);\n k2 = (k2 << 15) | (k2 >>> 17);\n k2 = ((k2 * C2) & MASK_HIGH) | ((k2 * C2_LOW) & MASK_LOW);\n h2 ^= k2;\n h2 = (h2 << 13) | (h2 >>> 19);\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n\n k1 = 0;\n\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n /* falls through */\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n /* falls through */\n case 1:\n k1 ^= data[blockCounts * 4];\n /* falls through */\n\n k1 = ((k1 * C1) & MASK_HIGH) | ((k1 * C1_LOW) & MASK_LOW);\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 = ((k1 * C2) & MASK_HIGH) | ((k1 * C2_LOW) & MASK_LOW);\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n\n this.h1 = h1;\n this.h2 = h2;\n }\n\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n\n h1 ^= h2 >>> 1;\n h1 = ((h1 * 0xed558ccd) & MASK_HIGH) | ((h1 * 0x8ccd) & MASK_LOW);\n h2 =\n ((h2 * 0xff51afd7) & MASK_HIGH) |\n (((((h2 << 16) | (h1 >>> 16)) * 0xafd7ed55) & MASK_HIGH) >>> 16);\n h1 ^= h2 >>> 1;\n h1 = ((h1 * 0x1a85ec53) & MASK_HIGH) | ((h1 * 0xec53) & MASK_LOW);\n h2 =\n ((h2 * 0xc4ceb9fe) & MASK_HIGH) |\n (((((h2 << 16) | (h1 >>> 16)) * 0xb9fe1a85) & MASK_HIGH) >>> 16);\n h1 ^= h2 >>> 1;\n\n return (\n (h1 >>> 0).toString(16).padStart(8, \"0\") +\n (h2 >>> 0).toString(16).padStart(8, \"0\")\n );\n }\n}\n\nexport { MurmurHash3_64 };\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ImageKind, OPS, RenderingIntentFlag, warn } from \"../shared/util.js\";\n\nfunction addState(parentState, pattern, checkFn, iterateFn, processFn) {\n let state = parentState;\n for (let i = 0, ii = pattern.length - 1; i < ii; i++) {\n const item = pattern[i];\n state = state[item] ||= [];\n }\n state[pattern.at(-1)] = {\n checkFn,\n iterateFn,\n processFn,\n };\n}\n\nconst InitialState = [];\n\n// This replaces (save, transform, paintInlineImageXObject, restore)+\n// sequences with one |paintInlineImageXObjectGroup| operation.\naddState(\n InitialState,\n [OPS.save, OPS.transform, OPS.paintInlineImageXObject, OPS.restore],\n null,\n function iterateInlineImageGroup(context, i) {\n const fnArray = context.fnArray;\n const iFirstSave = context.iCurr - 3;\n const pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.save;\n case 1:\n return fnArray[i] === OPS.transform;\n case 2:\n return fnArray[i] === OPS.paintInlineImageXObject;\n case 3:\n return fnArray[i] === OPS.restore;\n }\n throw new Error(`iterateInlineImageGroup - invalid pos: ${pos}`);\n },\n function foundInlineImageGroup(context, i) {\n const MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;\n const MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;\n const MAX_WIDTH = 1000;\n const IMAGE_PADDING = 1;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIIXO = curr - 1;\n\n const count = Math.min(\n Math.floor((i - iFirstSave) / 4),\n MAX_IMAGES_IN_INLINE_IMAGES_BLOCK\n );\n if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {\n return i - ((i - iFirstSave) % 4);\n }\n\n // assuming that heights of those image is too small (~1 pixel)\n // packing as much as possible by lines\n let maxX = 0;\n const map = [];\n let maxLineHeight = 0;\n let currentX = IMAGE_PADDING,\n currentY = IMAGE_PADDING;\n for (let q = 0; q < count; q++) {\n const transform = argsArray[iFirstTransform + (q << 2)];\n const img = argsArray[iFirstPIIXO + (q << 2)][0];\n if (currentX + img.width > MAX_WIDTH) {\n // starting new line\n maxX = Math.max(maxX, currentX);\n currentY += maxLineHeight + 2 * IMAGE_PADDING;\n currentX = 0;\n maxLineHeight = 0;\n }\n map.push({\n transform,\n x: currentX,\n y: currentY,\n w: img.width,\n h: img.height,\n });\n currentX += img.width + 2 * IMAGE_PADDING;\n maxLineHeight = Math.max(maxLineHeight, img.height);\n }\n const imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;\n const imgHeight = currentY + maxLineHeight + IMAGE_PADDING;\n const imgData = new Uint8Array(imgWidth * imgHeight * 4);\n const imgRowSize = imgWidth << 2;\n for (let q = 0; q < count; q++) {\n const data = argsArray[iFirstPIIXO + (q << 2)][0].data;\n // Copy image by lines and extends pixels into padding.\n const rowSize = map[q].w << 2;\n let dataOffset = 0;\n let offset = (map[q].x + map[q].y * imgWidth) << 2;\n imgData.set(data.subarray(0, rowSize), offset - imgRowSize);\n for (let k = 0, kk = map[q].h; k < kk; k++) {\n imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);\n dataOffset += rowSize;\n offset += imgRowSize;\n }\n imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);\n while (offset >= 0) {\n data[offset - 4] = data[offset];\n data[offset - 3] = data[offset + 1];\n data[offset - 2] = data[offset + 2];\n data[offset - 1] = data[offset + 3];\n data[offset + rowSize] = data[offset + rowSize - 4];\n data[offset + rowSize + 1] = data[offset + rowSize - 3];\n data[offset + rowSize + 2] = data[offset + rowSize - 2];\n data[offset + rowSize + 3] = data[offset + rowSize - 1];\n offset -= imgRowSize;\n }\n }\n\n const img = {\n width: imgWidth,\n height: imgHeight,\n };\n if (context.isOffscreenCanvasSupported) {\n const canvas = new OffscreenCanvas(imgWidth, imgHeight);\n const ctx = canvas.getContext(\"2d\");\n ctx.putImageData(\n new ImageData(\n new Uint8ClampedArray(imgData.buffer),\n imgWidth,\n imgHeight\n ),\n 0,\n 0\n );\n img.bitmap = canvas.transferToImageBitmap();\n img.data = null;\n } else {\n img.kind = ImageKind.RGBA_32BPP;\n img.data = imgData;\n }\n\n // Replace queue items.\n fnArray.splice(iFirstSave, count * 4, OPS.paintInlineImageXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [img, map]);\n\n return iFirstSave + 1;\n }\n);\n\n// This replaces (save, transform, paintImageMaskXObject, restore)+\n// sequences with one |paintImageMaskXObjectGroup| or one\n// |paintImageMaskXObjectRepeat| operation.\naddState(\n InitialState,\n [OPS.save, OPS.transform, OPS.paintImageMaskXObject, OPS.restore],\n null,\n function iterateImageMaskGroup(context, i) {\n const fnArray = context.fnArray;\n const iFirstSave = context.iCurr - 3;\n const pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.save;\n case 1:\n return fnArray[i] === OPS.transform;\n case 2:\n return fnArray[i] === OPS.paintImageMaskXObject;\n case 3:\n return fnArray[i] === OPS.restore;\n }\n throw new Error(`iterateImageMaskGroup - invalid pos: ${pos}`);\n },\n function foundImageMaskGroup(context, i) {\n const MIN_IMAGES_IN_MASKS_BLOCK = 10;\n const MAX_IMAGES_IN_MASKS_BLOCK = 100;\n const MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIMXO = curr - 1;\n\n // At this point, i is the index of the first op past the last valid\n // quartet.\n let count = Math.floor((i - iFirstSave) / 4);\n if (count < MIN_IMAGES_IN_MASKS_BLOCK) {\n return i - ((i - iFirstSave) % 4);\n }\n\n let isSameImage = false;\n let iTransform, transformArgs;\n const firstPIMXOArg0 = argsArray[iFirstPIMXO][0];\n const firstTransformArg0 = argsArray[iFirstTransform][0],\n firstTransformArg1 = argsArray[iFirstTransform][1],\n firstTransformArg2 = argsArray[iFirstTransform][2],\n firstTransformArg3 = argsArray[iFirstTransform][3];\n\n if (firstTransformArg1 === firstTransformArg2) {\n isSameImage = true;\n iTransform = iFirstTransform + 4;\n let iPIMXO = iFirstPIMXO + 4;\n for (let q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {\n transformArgs = argsArray[iTransform];\n if (\n argsArray[iPIMXO][0] !== firstPIMXOArg0 ||\n transformArgs[0] !== firstTransformArg0 ||\n transformArgs[1] !== firstTransformArg1 ||\n transformArgs[2] !== firstTransformArg2 ||\n transformArgs[3] !== firstTransformArg3\n ) {\n if (q < MIN_IMAGES_IN_MASKS_BLOCK) {\n isSameImage = false;\n } else {\n count = q;\n }\n break; // different image or transform\n }\n }\n }\n\n if (isSameImage) {\n count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);\n const positions = new Float32Array(count * 2);\n iTransform = iFirstTransform;\n for (let q = 0; q < count; q++, iTransform += 4) {\n transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n\n // Replace queue items.\n fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, [\n firstPIMXOArg0,\n firstTransformArg0,\n firstTransformArg1,\n firstTransformArg2,\n firstTransformArg3,\n positions,\n ]);\n } else {\n count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);\n const images = [];\n for (let q = 0; q < count; q++) {\n transformArgs = argsArray[iFirstTransform + (q << 2)];\n const maskParams = argsArray[iFirstPIMXO + (q << 2)][0];\n images.push({\n data: maskParams.data,\n width: maskParams.width,\n height: maskParams.height,\n interpolate: maskParams.interpolate,\n count: maskParams.count,\n transform: transformArgs,\n });\n }\n\n // Replace queue items.\n fnArray.splice(iFirstSave, count * 4, OPS.paintImageMaskXObjectGroup);\n argsArray.splice(iFirstSave, count * 4, [images]);\n }\n\n return iFirstSave + 1;\n }\n);\n\n// This replaces (save, transform, paintImageXObject, restore)+ sequences\n// with one paintImageXObjectRepeat operation, if the |transform| and\n// |paintImageXObjectRepeat| ops are appropriate.\naddState(\n InitialState,\n [OPS.save, OPS.transform, OPS.paintImageXObject, OPS.restore],\n function (context) {\n const argsArray = context.argsArray;\n const iFirstTransform = context.iCurr - 2;\n return (\n argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0\n );\n },\n function iterateImageGroup(context, i) {\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const iFirstSave = context.iCurr - 3;\n const pos = (i - iFirstSave) % 4;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.save;\n case 1:\n if (fnArray[i] !== OPS.transform) {\n return false;\n }\n const iFirstTransform = context.iCurr - 2;\n const firstTransformArg0 = argsArray[iFirstTransform][0];\n const firstTransformArg3 = argsArray[iFirstTransform][3];\n if (\n argsArray[i][0] !== firstTransformArg0 ||\n argsArray[i][1] !== 0 ||\n argsArray[i][2] !== 0 ||\n argsArray[i][3] !== firstTransformArg3\n ) {\n return false; // transforms don't match\n }\n return true;\n case 2:\n if (fnArray[i] !== OPS.paintImageXObject) {\n return false;\n }\n const iFirstPIXO = context.iCurr - 1;\n const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n if (argsArray[i][0] !== firstPIXOArg0) {\n return false; // images don't match\n }\n return true;\n case 3:\n return fnArray[i] === OPS.restore;\n }\n throw new Error(`iterateImageGroup - invalid pos: ${pos}`);\n },\n function (context, i) {\n const MIN_IMAGES_IN_BLOCK = 3;\n const MAX_IMAGES_IN_BLOCK = 1000;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstSave = curr - 3;\n const iFirstTransform = curr - 2;\n const iFirstPIXO = curr - 1;\n const firstPIXOArg0 = argsArray[iFirstPIXO][0];\n const firstTransformArg0 = argsArray[iFirstTransform][0];\n const firstTransformArg3 = argsArray[iFirstTransform][3];\n\n // At this point, i is the index of the first op past the last valid\n // quartet.\n const count = Math.min(\n Math.floor((i - iFirstSave) / 4),\n MAX_IMAGES_IN_BLOCK\n );\n if (count < MIN_IMAGES_IN_BLOCK) {\n return i - ((i - iFirstSave) % 4);\n }\n\n // Extract the (x,y) positions from all of the matching transforms.\n const positions = new Float32Array(count * 2);\n let iTransform = iFirstTransform;\n for (let q = 0; q < count; q++, iTransform += 4) {\n const transformArgs = argsArray[iTransform];\n positions[q << 1] = transformArgs[4];\n positions[(q << 1) + 1] = transformArgs[5];\n }\n\n // Replace queue items.\n const args = [\n firstPIXOArg0,\n firstTransformArg0,\n firstTransformArg3,\n positions,\n ];\n fnArray.splice(iFirstSave, count * 4, OPS.paintImageXObjectRepeat);\n argsArray.splice(iFirstSave, count * 4, args);\n\n return iFirstSave + 1;\n }\n);\n\n// This replaces (beginText, setFont, setTextMatrix, showText, endText)+\n// sequences with (beginText, setFont, (setTextMatrix, showText)+, endText)+\n// sequences, if the font for each one is the same.\naddState(\n InitialState,\n [OPS.beginText, OPS.setFont, OPS.setTextMatrix, OPS.showText, OPS.endText],\n null,\n function iterateShowTextGroup(context, i) {\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const iFirstSave = context.iCurr - 4;\n const pos = (i - iFirstSave) % 5;\n switch (pos) {\n case 0:\n return fnArray[i] === OPS.beginText;\n case 1:\n return fnArray[i] === OPS.setFont;\n case 2:\n return fnArray[i] === OPS.setTextMatrix;\n case 3:\n if (fnArray[i] !== OPS.showText) {\n return false;\n }\n const iFirstSetFont = context.iCurr - 3;\n const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n if (\n argsArray[i][0] !== firstSetFontArg0 ||\n argsArray[i][1] !== firstSetFontArg1\n ) {\n return false; // fonts don't match\n }\n return true;\n case 4:\n return fnArray[i] === OPS.endText;\n }\n throw new Error(`iterateShowTextGroup - invalid pos: ${pos}`);\n },\n function (context, i) {\n const MIN_CHARS_IN_BLOCK = 3;\n const MAX_CHARS_IN_BLOCK = 1000;\n\n const fnArray = context.fnArray,\n argsArray = context.argsArray;\n const curr = context.iCurr;\n const iFirstBeginText = curr - 4;\n const iFirstSetFont = curr - 3;\n const iFirstSetTextMatrix = curr - 2;\n const iFirstShowText = curr - 1;\n const iFirstEndText = curr;\n const firstSetFontArg0 = argsArray[iFirstSetFont][0];\n const firstSetFontArg1 = argsArray[iFirstSetFont][1];\n\n // At this point, i is the index of the first op past the last valid\n // quintet.\n let count = Math.min(\n Math.floor((i - iFirstBeginText) / 5),\n MAX_CHARS_IN_BLOCK\n );\n if (count < MIN_CHARS_IN_BLOCK) {\n return i - ((i - iFirstBeginText) % 5);\n }\n\n // If the preceding quintet is (<something>, setFont, setTextMatrix,\n // showText, endText), include that as well. (E.g. <something> might be\n // |dependency|.)\n let iFirst = iFirstBeginText;\n if (\n iFirstBeginText >= 4 &&\n fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] &&\n fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] &&\n fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] &&\n fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] &&\n argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 &&\n argsArray[iFirstBeginText - 4][1] === firstSetFontArg1\n ) {\n count++;\n iFirst -= 5;\n }\n\n // Remove (endText, beginText, setFont) trios.\n let iEndText = iFirst + 4;\n for (let q = 1; q < count; q++) {\n fnArray.splice(iEndText, 3);\n argsArray.splice(iEndText, 3);\n iEndText += 2;\n }\n\n return iEndText + 1;\n }\n);\n\nclass NullOptimizer {\n constructor(queue) {\n this.queue = queue;\n }\n\n _optimize() {}\n\n push(fn, args) {\n this.queue.fnArray.push(fn);\n this.queue.argsArray.push(args);\n this._optimize();\n }\n\n flush() {}\n\n reset() {}\n}\n\nclass QueueOptimizer extends NullOptimizer {\n constructor(queue) {\n super(queue);\n this.state = null;\n this.context = {\n iCurr: 0,\n fnArray: queue.fnArray,\n argsArray: queue.argsArray,\n isOffscreenCanvasSupported: false,\n };\n this.match = null;\n this.lastProcessed = 0;\n }\n\n // eslint-disable-next-line accessor-pairs\n set isOffscreenCanvasSupported(value) {\n this.context.isOffscreenCanvasSupported = value;\n }\n\n _optimize() {\n // Process new fnArray item(s) chunk.\n const fnArray = this.queue.fnArray;\n let i = this.lastProcessed,\n ii = fnArray.length;\n let state = this.state;\n let match = this.match;\n if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {\n // Micro-optimization for the common case: last item is not\n // optimizable, just skipping it.\n this.lastProcessed = ii;\n return;\n }\n\n const context = this.context;\n while (i < ii) {\n if (match) {\n // Already find a block of potentially optimizable items, iterating...\n const iterate = (0, match.iterateFn)(context, i);\n if (iterate) {\n i++;\n continue;\n }\n // Found last items for the block, processing...\n i = (0, match.processFn)(context, i + 1);\n ii = fnArray.length;\n match = null;\n state = null;\n if (i >= ii) {\n break;\n }\n }\n // Find the potentially optimizable items.\n state = (state || InitialState)[fnArray[i]];\n if (!state || Array.isArray(state)) {\n i++;\n continue;\n }\n // Found a start of the block based on addState rules.\n context.iCurr = i;\n i++;\n if (state.checkFn && !(0, state.checkFn)(context)) {\n // Check failed, continue search...\n state = null;\n continue;\n }\n match = state;\n state = null;\n }\n this.state = state;\n this.match = match;\n this.lastProcessed = i;\n }\n\n flush() {\n while (this.match) {\n const length = this.queue.fnArray.length;\n this.lastProcessed = (0, this.match.processFn)(this.context, length);\n this.match = null;\n this.state = null;\n // Repeat optimization until all chunks are exhausted.\n this._optimize();\n }\n }\n\n reset() {\n this.state = null;\n this.match = null;\n this.lastProcessed = 0;\n }\n}\n\nclass OperatorList {\n static CHUNK_SIZE = 1000;\n\n // Close to chunk size.\n static CHUNK_SIZE_ABOUT = this.CHUNK_SIZE - 5;\n\n constructor(intent = 0, streamSink) {\n this._streamSink = streamSink;\n this.fnArray = [];\n this.argsArray = [];\n this.optimizer =\n streamSink && !(intent & RenderingIntentFlag.OPLIST)\n ? new QueueOptimizer(this)\n : new NullOptimizer(this);\n this.dependencies = new Set();\n this._totalLength = 0;\n this.weight = 0;\n this._resolved = streamSink ? null : Promise.resolve();\n }\n\n // eslint-disable-next-line accessor-pairs\n set isOffscreenCanvasSupported(value) {\n this.optimizer.isOffscreenCanvasSupported = value;\n }\n\n get length() {\n return this.argsArray.length;\n }\n\n get ready() {\n return this._resolved || this._streamSink.ready;\n }\n\n /**\n * @type {number} The total length of the entire operator list, since\n * `this.length === 0` after flushing.\n */\n get totalLength() {\n return this._totalLength + this.length;\n }\n\n addOp(fn, args) {\n this.optimizer.push(fn, args);\n this.weight++;\n if (this._streamSink) {\n if (this.weight >= OperatorList.CHUNK_SIZE) {\n this.flush();\n } else if (\n this.weight >= OperatorList.CHUNK_SIZE_ABOUT &&\n (fn === OPS.restore || fn === OPS.endText)\n ) {\n // Heuristic to flush on boundary of restore or endText.\n this.flush();\n }\n }\n }\n\n addImageOps(fn, args, optionalContent) {\n if (optionalContent !== undefined) {\n this.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n }\n\n this.addOp(fn, args);\n\n if (optionalContent !== undefined) {\n this.addOp(OPS.endMarkedContent, []);\n }\n }\n\n addDependency(dependency) {\n if (this.dependencies.has(dependency)) {\n return;\n }\n this.dependencies.add(dependency);\n this.addOp(OPS.dependency, [dependency]);\n }\n\n addDependencies(dependencies) {\n for (const dependency of dependencies) {\n this.addDependency(dependency);\n }\n }\n\n addOpList(opList) {\n if (!(opList instanceof OperatorList)) {\n warn('addOpList - ignoring invalid \"opList\" parameter.');\n return;\n }\n for (const dependency of opList.dependencies) {\n this.dependencies.add(dependency);\n }\n for (let i = 0, ii = opList.length; i < ii; i++) {\n this.addOp(opList.fnArray[i], opList.argsArray[i]);\n }\n }\n\n getIR() {\n return {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n length: this.length,\n };\n }\n\n get _transfers() {\n const transfers = [];\n const { fnArray, argsArray, length } = this;\n for (let i = 0; i < length; i++) {\n switch (fnArray[i]) {\n case OPS.paintInlineImageXObject:\n case OPS.paintInlineImageXObjectGroup:\n case OPS.paintImageMaskXObject:\n const arg = argsArray[i][0]; // First parameter in imgData.\n if (!arg.cached && arg.data?.buffer instanceof ArrayBuffer) {\n transfers.push(arg.data.buffer);\n }\n break;\n }\n }\n return transfers;\n }\n\n flush(lastChunk = false, separateAnnots = null) {\n this.optimizer.flush();\n const length = this.length;\n this._totalLength += length;\n\n this._streamSink.enqueue(\n {\n fnArray: this.fnArray,\n argsArray: this.argsArray,\n lastChunk,\n separateAnnots,\n length,\n },\n 1,\n this._transfers\n );\n\n this.dependencies.clear();\n this.fnArray.length = 0;\n this.argsArray.length = 0;\n this.weight = 0;\n this.optimizer.reset();\n }\n}\n\nexport { OperatorList };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n FeatureTest,\n FormatError,\n ImageKind,\n info,\n warn,\n} from \"../shared/util.js\";\nimport {\n convertBlackAndWhiteToRGBA,\n convertToRGBA,\n} from \"../shared/image_utils.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { ImageResizer } from \"./image_resizer.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { JpxImage } from \"./jpx.js\";\nimport { Name } from \"./primitives.js\";\n\n/**\n * Decode and clamp a value. The formula is different from the spec because we\n * don't decode to float range [0,1], we decode it in the [0,max] range.\n */\nfunction decodeAndClamp(value, addend, coefficient, max) {\n value = addend + value * coefficient;\n // Clamp the value to the range\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n return value;\n}\n\n/**\n * Resizes an image mask with 1 component.\n * @param {TypedArray} src - The source buffer.\n * @param {number} bpc - Number of bits per component.\n * @param {number} w1 - Original width.\n * @param {number} h1 - Original height.\n * @param {number} w2 - New width.\n * @param {number} h2 - New height.\n * @returns {TypedArray} The resized image mask buffer.\n */\nfunction resizeImageMask(src, bpc, w1, h1, w2, h2) {\n const length = w2 * h2;\n let dest;\n if (bpc <= 8) {\n dest = new Uint8Array(length);\n } else if (bpc <= 16) {\n dest = new Uint16Array(length);\n } else {\n dest = new Uint32Array(length);\n }\n const xRatio = w1 / w2;\n const yRatio = h1 / h2;\n let i,\n j,\n py,\n newIndex = 0,\n oldIndex;\n const xScaled = new Uint16Array(w2);\n const w1Scanline = w1;\n\n for (i = 0; i < w2; i++) {\n xScaled[i] = Math.floor(i * xRatio);\n }\n for (i = 0; i < h2; i++) {\n py = Math.floor(i * yRatio) * w1Scanline;\n for (j = 0; j < w2; j++) {\n oldIndex = py + xScaled[j];\n dest[newIndex++] = src[oldIndex];\n }\n }\n return dest;\n}\n\nclass PDFImage {\n constructor({\n xref,\n res,\n image,\n isInline = false,\n smask = null,\n mask = null,\n isMask = false,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n this.image = image;\n const dict = image.dict;\n\n const filter = dict.get(\"F\", \"Filter\");\n let filterName;\n if (filter instanceof Name) {\n filterName = filter.name;\n } else if (Array.isArray(filter)) {\n const filterZero = xref.fetchIfRef(filter[0]);\n if (filterZero instanceof Name) {\n filterName = filterZero.name;\n }\n }\n switch (filterName) {\n case \"JPXDecode\":\n const jpxImage = new JpxImage();\n jpxImage.parseImageProperties(image.stream);\n image.stream.reset();\n\n image.width = jpxImage.width;\n image.height = jpxImage.height;\n image.bitsPerComponent = jpxImage.bitsPerComponent;\n image.numComps = jpxImage.componentsCount;\n break;\n case \"JBIG2Decode\":\n image.bitsPerComponent = 1;\n image.numComps = 1;\n break;\n }\n\n let width = dict.get(\"W\", \"Width\");\n let height = dict.get(\"H\", \"Height\");\n\n if (\n Number.isInteger(image.width) &&\n image.width > 0 &&\n Number.isInteger(image.height) &&\n image.height > 0 &&\n (image.width !== width || image.height !== height)\n ) {\n warn(\n \"PDFImage - using the Width/Height of the image data, \" +\n \"rather than the image dictionary.\"\n );\n width = image.width;\n height = image.height;\n }\n if (width < 1 || height < 1) {\n throw new FormatError(\n `Invalid image width: ${width} or height: ${height}`\n );\n }\n this.width = width;\n this.height = height;\n\n this.interpolate = dict.get(\"I\", \"Interpolate\");\n this.imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n this.matte = dict.get(\"Matte\") || false;\n\n let bitsPerComponent = image.bitsPerComponent;\n if (!bitsPerComponent) {\n bitsPerComponent = dict.get(\"BPC\", \"BitsPerComponent\");\n if (!bitsPerComponent) {\n if (this.imageMask) {\n bitsPerComponent = 1;\n } else {\n throw new FormatError(\n `Bits per component missing in image: ${this.imageMask}`\n );\n }\n }\n }\n this.bpc = bitsPerComponent;\n\n if (!this.imageMask) {\n let colorSpace = dict.getRaw(\"CS\") || dict.getRaw(\"ColorSpace\");\n if (!colorSpace) {\n info(\"JPX images (which do not require color spaces)\");\n switch (image.numComps) {\n case 1:\n colorSpace = Name.get(\"DeviceGray\");\n break;\n case 3:\n colorSpace = Name.get(\"DeviceRGB\");\n break;\n case 4:\n colorSpace = Name.get(\"DeviceCMYK\");\n break;\n default:\n throw new Error(\n `JPX images with ${image.numComps} color components not supported.`\n );\n }\n }\n this.colorSpace = ColorSpace.parse({\n cs: colorSpace,\n xref,\n resources: isInline ? res : null,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n this.numComps = this.colorSpace.numComps;\n }\n\n this.decode = dict.getArray(\"D\", \"Decode\");\n this.needsDecode = false;\n if (\n this.decode &&\n ((this.colorSpace &&\n !this.colorSpace.isDefaultDecode(this.decode, bitsPerComponent)) ||\n (isMask &&\n !ColorSpace.isDefaultDecode(this.decode, /* numComps = */ 1)))\n ) {\n this.needsDecode = true;\n // Do some preprocessing to avoid more math.\n const max = (1 << bitsPerComponent) - 1;\n this.decodeCoefficients = [];\n this.decodeAddends = [];\n const isIndexed = this.colorSpace?.name === \"Indexed\";\n for (let i = 0, j = 0; i < this.decode.length; i += 2, ++j) {\n const dmin = this.decode[i];\n const dmax = this.decode[i + 1];\n this.decodeCoefficients[j] = isIndexed\n ? (dmax - dmin) / max\n : dmax - dmin;\n this.decodeAddends[j] = isIndexed ? dmin : max * dmin;\n }\n }\n\n if (smask) {\n this.smask = new PDFImage({\n xref,\n res,\n image: smask,\n isInline,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n } else if (mask) {\n if (mask instanceof BaseStream) {\n const maskDict = mask.dict,\n imageMask = maskDict.get(\"IM\", \"ImageMask\");\n if (!imageMask) {\n warn(\"Ignoring /Mask in image without /ImageMask.\");\n } else {\n this.mask = new PDFImage({\n xref,\n res,\n image: mask,\n isInline,\n isMask: true,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n }\n } else {\n // Color key mask (just an array).\n this.mask = mask;\n }\n }\n }\n\n /**\n * Handles processing of image data and returns the Promise that is resolved\n * with a PDFImage when the image is ready to be used.\n */\n static async buildImage({\n xref,\n res,\n image,\n isInline = false,\n pdfFunctionFactory,\n localColorSpaceCache,\n }) {\n const imageData = image;\n let smaskData = null;\n let maskData = null;\n\n const smask = image.dict.get(\"SMask\");\n const mask = image.dict.get(\"Mask\");\n\n if (smask) {\n if (smask instanceof BaseStream) {\n smaskData = smask;\n } else {\n warn(\"Unsupported /SMask format.\");\n }\n } else if (mask) {\n if (mask instanceof BaseStream || Array.isArray(mask)) {\n maskData = mask;\n } else {\n warn(\"Unsupported /Mask format.\");\n }\n }\n\n return new PDFImage({\n xref,\n res,\n image: imageData,\n isInline,\n smask: smaskData,\n mask: maskData,\n pdfFunctionFactory,\n localColorSpaceCache,\n });\n }\n\n static createRawMask({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream,\n inverseDecode,\n interpolate,\n }) {\n // |imgArray| might not contain full data for every pixel of the mask, so\n // we need to distinguish between |computedLength| and |actualLength|.\n // In particular, if inverseDecode is true, then the array we return must\n // have a length of |computedLength|.\n\n const computedLength = ((width + 7) >> 3) * height;\n const actualLength = imgArray.byteLength;\n const haveFullData = computedLength === actualLength;\n let data, i;\n\n if (imageIsFromDecodeStream && (!inverseDecode || haveFullData)) {\n // imgArray came from a DecodeStream and its data is in an appropriate\n // form, so we can just transfer it.\n data = imgArray;\n } else if (!inverseDecode) {\n data = new Uint8Array(imgArray);\n } else {\n data = new Uint8Array(computedLength);\n data.set(imgArray);\n data.fill(0xff, actualLength);\n }\n\n // If necessary, invert the original mask data (but not any extra we might\n // have added above). It's safe to modify the array -- whether it's the\n // original or a copy, we're about to transfer it anyway, so nothing else\n // in this thread can be relying on its contents.\n if (inverseDecode) {\n for (i = 0; i < actualLength; i++) {\n data[i] ^= 0xff;\n }\n }\n\n return { data, width, height, interpolate };\n }\n\n static async createMask({\n imgArray,\n width,\n height,\n imageIsFromDecodeStream,\n inverseDecode,\n interpolate,\n isOffscreenCanvasSupported = false,\n }) {\n const isSingleOpaquePixel =\n width === 1 &&\n height === 1 &&\n inverseDecode === (imgArray.length === 0 || !!(imgArray[0] & 128));\n\n if (isSingleOpaquePixel) {\n return { isSingleOpaquePixel };\n }\n\n if (isOffscreenCanvasSupported) {\n if (ImageResizer.needsToBeResized(width, height)) {\n const data = new Uint8ClampedArray(width * height * 4);\n convertBlackAndWhiteToRGBA({\n src: imgArray,\n dest: data,\n width,\n height,\n nonBlackColor: 0,\n inverseDecode,\n });\n return ImageResizer.createImage({\n kind: ImageKind.RGBA_32BPP,\n data,\n width,\n height,\n interpolate,\n });\n }\n\n const canvas = new OffscreenCanvas(width, height);\n const ctx = canvas.getContext(\"2d\");\n const imgData = ctx.createImageData(width, height);\n convertBlackAndWhiteToRGBA({\n src: imgArray,\n dest: imgData.data,\n width,\n height,\n nonBlackColor: 0,\n inverseDecode,\n });\n\n ctx.putImageData(imgData, 0, 0);\n const bitmap = canvas.transferToImageBitmap();\n\n return {\n data: null,\n width,\n height,\n interpolate,\n bitmap,\n };\n }\n\n // Get the data almost as they're and they'll be decoded\n // just before being drawn.\n return this.createRawMask({\n imgArray,\n width,\n height,\n inverseDecode,\n imageIsFromDecodeStream,\n interpolate,\n });\n }\n\n get drawWidth() {\n return Math.max(this.width, this.smask?.width || 0, this.mask?.width || 0);\n }\n\n get drawHeight() {\n return Math.max(\n this.height,\n this.smask?.height || 0,\n this.mask?.height || 0\n );\n }\n\n decodeBuffer(buffer) {\n const bpc = this.bpc;\n const numComps = this.numComps;\n\n const decodeAddends = this.decodeAddends;\n const decodeCoefficients = this.decodeCoefficients;\n const max = (1 << bpc) - 1;\n let i, ii;\n\n if (bpc === 1) {\n // If the buffer needed decode that means it just needs to be inverted.\n for (i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] = +!buffer[i];\n }\n return;\n }\n let index = 0;\n for (i = 0, ii = this.width * this.height; i < ii; i++) {\n for (let j = 0; j < numComps; j++) {\n buffer[index] = decodeAndClamp(\n buffer[index],\n decodeAddends[j],\n decodeCoefficients[j],\n max\n );\n index++;\n }\n }\n }\n\n getComponents(buffer) {\n const bpc = this.bpc;\n\n // This image doesn't require any extra work.\n if (bpc === 8) {\n return buffer;\n }\n\n const width = this.width;\n const height = this.height;\n const numComps = this.numComps;\n\n const length = width * height * numComps;\n let bufferPos = 0;\n let output;\n if (bpc <= 8) {\n output = new Uint8Array(length);\n } else if (bpc <= 16) {\n output = new Uint16Array(length);\n } else {\n output = new Uint32Array(length);\n }\n const rowComps = width * numComps;\n\n const max = (1 << bpc) - 1;\n let i = 0,\n ii,\n buf;\n\n if (bpc === 1) {\n // Optimization for reading 1 bpc images.\n let mask, loop1End, loop2End;\n for (let j = 0; j < height; j++) {\n loop1End = i + (rowComps & ~7);\n loop2End = i + rowComps;\n\n // unroll loop for all full bytes\n while (i < loop1End) {\n buf = buffer[bufferPos++];\n output[i] = (buf >> 7) & 1;\n output[i + 1] = (buf >> 6) & 1;\n output[i + 2] = (buf >> 5) & 1;\n output[i + 3] = (buf >> 4) & 1;\n output[i + 4] = (buf >> 3) & 1;\n output[i + 5] = (buf >> 2) & 1;\n output[i + 6] = (buf >> 1) & 1;\n output[i + 7] = buf & 1;\n i += 8;\n }\n\n // handle remaining bits\n if (i < loop2End) {\n buf = buffer[bufferPos++];\n mask = 128;\n while (i < loop2End) {\n output[i++] = +!!(buf & mask);\n mask >>= 1;\n }\n }\n }\n } else {\n // The general case that handles all other bpc values.\n let bits = 0;\n buf = 0;\n for (i = 0, ii = length; i < ii; ++i) {\n if (i % rowComps === 0) {\n buf = 0;\n bits = 0;\n }\n\n while (bits < bpc) {\n buf = (buf << 8) | buffer[bufferPos++];\n bits += 8;\n }\n\n const remainingBits = bits - bpc;\n let value = buf >> remainingBits;\n if (value < 0) {\n value = 0;\n } else if (value > max) {\n value = max;\n }\n output[i] = value;\n buf &= (1 << remainingBits) - 1;\n bits = remainingBits;\n }\n }\n return output;\n }\n\n fillOpacity(rgbaBuf, width, height, actualHeight, image) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n rgbaBuf instanceof Uint8ClampedArray,\n 'PDFImage.fillOpacity: Unsupported \"rgbaBuf\" type.'\n );\n }\n const smask = this.smask;\n const mask = this.mask;\n let alphaBuf, sw, sh, i, ii, j;\n\n if (smask) {\n sw = smask.width;\n sh = smask.height;\n alphaBuf = new Uint8ClampedArray(sw * sh);\n smask.fillGrayBuffer(alphaBuf);\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, smask.bpc, sw, sh, width, height);\n }\n } else if (mask) {\n if (mask instanceof PDFImage) {\n sw = mask.width;\n sh = mask.height;\n alphaBuf = new Uint8ClampedArray(sw * sh);\n mask.numComps = 1;\n mask.fillGrayBuffer(alphaBuf);\n\n // Need to invert values in rgbaBuf\n for (i = 0, ii = sw * sh; i < ii; ++i) {\n alphaBuf[i] = 255 - alphaBuf[i];\n }\n\n if (sw !== width || sh !== height) {\n alphaBuf = resizeImageMask(alphaBuf, mask.bpc, sw, sh, width, height);\n }\n } else if (Array.isArray(mask)) {\n // Color key mask: if any of the components are outside the range\n // then they should be painted.\n alphaBuf = new Uint8ClampedArray(width * height);\n const numComps = this.numComps;\n for (i = 0, ii = width * height; i < ii; ++i) {\n let opacity = 0;\n const imageOffset = i * numComps;\n for (j = 0; j < numComps; ++j) {\n const color = image[imageOffset + j];\n const maskOffset = j * 2;\n if (color < mask[maskOffset] || color > mask[maskOffset + 1]) {\n opacity = 255;\n break;\n }\n }\n alphaBuf[i] = opacity;\n }\n } else {\n throw new FormatError(\"Unknown mask format.\");\n }\n }\n\n if (alphaBuf) {\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = alphaBuf[i];\n }\n } else {\n // No mask.\n for (i = 0, j = 3, ii = width * actualHeight; i < ii; ++i, j += 4) {\n rgbaBuf[j] = 255;\n }\n }\n }\n\n undoPreblend(buffer, width, height) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n buffer instanceof Uint8ClampedArray,\n 'PDFImage.undoPreblend: Unsupported \"buffer\" type.'\n );\n }\n const matte = this.smask?.matte;\n if (!matte) {\n return;\n }\n const matteRgb = this.colorSpace.getRgb(matte, 0);\n const matteR = matteRgb[0];\n const matteG = matteRgb[1];\n const matteB = matteRgb[2];\n const length = width * height * 4;\n for (let i = 0; i < length; i += 4) {\n const alpha = buffer[i + 3];\n if (alpha === 0) {\n // according formula we have to get Infinity in all components\n // making it white (typical paper color) should be okay\n buffer[i] = 255;\n buffer[i + 1] = 255;\n buffer[i + 2] = 255;\n continue;\n }\n const k = 255 / alpha;\n buffer[i] = (buffer[i] - matteR) * k + matteR;\n buffer[i + 1] = (buffer[i + 1] - matteG) * k + matteG;\n buffer[i + 2] = (buffer[i + 2] - matteB) * k + matteB;\n }\n }\n\n async createImageData(forceRGBA = false, isOffscreenCanvasSupported = false) {\n const drawWidth = this.drawWidth;\n const drawHeight = this.drawHeight;\n const imgData = {\n width: drawWidth,\n height: drawHeight,\n interpolate: this.interpolate,\n kind: 0,\n data: null,\n // Other fields are filled in below.\n };\n\n const numComps = this.numComps;\n const originalWidth = this.width;\n const originalHeight = this.height;\n const bpc = this.bpc;\n\n // Rows start at byte boundary.\n const rowBytes = (originalWidth * numComps * bpc + 7) >> 3;\n const mustBeResized =\n isOffscreenCanvasSupported &&\n ImageResizer.needsToBeResized(drawWidth, drawHeight);\n\n if (!forceRGBA) {\n // If it is a 1-bit-per-pixel grayscale (i.e. black-and-white) image\n // without any complications, we pass a same-sized copy to the main\n // thread rather than expanding by 32x to RGBA form. This saves *lots*\n // of memory for many scanned documents. It's also much faster.\n //\n // Similarly, if it is a 24-bit-per pixel RGB image without any\n // complications, we avoid expanding by 1.333x to RGBA form.\n let kind;\n if (this.colorSpace.name === \"DeviceGray\" && bpc === 1) {\n kind = ImageKind.GRAYSCALE_1BPP;\n } else if (\n this.colorSpace.name === \"DeviceRGB\" &&\n bpc === 8 &&\n !this.needsDecode\n ) {\n kind = ImageKind.RGB_24BPP;\n }\n if (\n kind &&\n !this.smask &&\n !this.mask &&\n drawWidth === originalWidth &&\n drawHeight === originalHeight\n ) {\n const data = this.getImageBytes(originalHeight * rowBytes, {});\n if (isOffscreenCanvasSupported) {\n if (mustBeResized) {\n return ImageResizer.createImage(\n {\n data,\n kind,\n width: drawWidth,\n height: drawHeight,\n interpolate: this.interpolate,\n },\n this.needsDecode\n );\n }\n return this.createBitmap(kind, originalWidth, originalHeight, data);\n }\n imgData.kind = kind;\n imgData.data = data;\n\n if (this.needsDecode) {\n // Invert the buffer (which must be grayscale if we reached here).\n assert(\n kind === ImageKind.GRAYSCALE_1BPP,\n \"PDFImage.createImageData: The image must be grayscale.\"\n );\n const buffer = imgData.data;\n for (let i = 0, ii = buffer.length; i < ii; i++) {\n buffer[i] ^= 0xff;\n }\n }\n return imgData;\n }\n if (\n this.image instanceof JpegStream &&\n !this.smask &&\n !this.mask &&\n !this.needsDecode\n ) {\n let imageLength = originalHeight * rowBytes;\n if (isOffscreenCanvasSupported && !mustBeResized) {\n let isHandled = false;\n switch (this.colorSpace.name) {\n case \"DeviceGray\":\n // Avoid truncating the image, since `JpegImage.getData`\n // will expand the image data when `forceRGB === true`.\n imageLength *= 4;\n isHandled = true;\n break;\n case \"DeviceRGB\":\n imageLength = (imageLength / 3) * 4;\n isHandled = true;\n break;\n case \"DeviceCMYK\":\n isHandled = true;\n break;\n }\n\n if (isHandled) {\n const rgba = this.getImageBytes(imageLength, {\n drawWidth,\n drawHeight,\n forceRGBA: true,\n });\n return this.createBitmap(\n ImageKind.RGBA_32BPP,\n drawWidth,\n drawHeight,\n rgba\n );\n }\n } else {\n switch (this.colorSpace.name) {\n case \"DeviceGray\":\n imageLength *= 3;\n /* falls through */\n case \"DeviceRGB\":\n case \"DeviceCMYK\":\n imgData.kind = ImageKind.RGB_24BPP;\n imgData.data = this.getImageBytes(imageLength, {\n drawWidth,\n drawHeight,\n forceRGB: true,\n });\n if (mustBeResized) {\n // The image is too big so we resize it.\n return ImageResizer.createImage(imgData);\n }\n return imgData;\n }\n }\n }\n }\n\n const imgArray = this.getImageBytes(originalHeight * rowBytes, {\n internal: true,\n });\n // imgArray can be incomplete (e.g. after CCITT fax encoding).\n const actualHeight =\n 0 | (((imgArray.length / rowBytes) * drawHeight) / originalHeight);\n\n const comps = this.getComponents(imgArray);\n\n // If opacity data is present, use RGBA_32BPP form. Otherwise, use the\n // more compact RGB_24BPP form if allowable.\n let alpha01, maybeUndoPreblend;\n\n let canvas, ctx, canvasImgData, data;\n if (isOffscreenCanvasSupported && !mustBeResized) {\n canvas = new OffscreenCanvas(drawWidth, drawHeight);\n ctx = canvas.getContext(\"2d\");\n canvasImgData = ctx.createImageData(drawWidth, drawHeight);\n data = canvasImgData.data;\n }\n\n imgData.kind = ImageKind.RGBA_32BPP;\n\n if (!forceRGBA && !this.smask && !this.mask) {\n if (!isOffscreenCanvasSupported || mustBeResized) {\n imgData.kind = ImageKind.RGB_24BPP;\n data = new Uint8ClampedArray(drawWidth * drawHeight * 3);\n alpha01 = 0;\n } else {\n const arr = new Uint32Array(data.buffer);\n arr.fill(FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff);\n alpha01 = 1;\n }\n maybeUndoPreblend = false;\n } else {\n if (!isOffscreenCanvasSupported || mustBeResized) {\n data = new Uint8ClampedArray(drawWidth * drawHeight * 4);\n }\n\n alpha01 = 1;\n maybeUndoPreblend = true;\n\n // Color key masking (opacity) must be performed before decoding.\n this.fillOpacity(data, drawWidth, drawHeight, actualHeight, comps);\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n this.colorSpace.fillRgb(\n data,\n originalWidth,\n originalHeight,\n drawWidth,\n drawHeight,\n actualHeight,\n bpc,\n comps,\n alpha01\n );\n if (maybeUndoPreblend) {\n this.undoPreblend(data, drawWidth, actualHeight);\n }\n\n if (isOffscreenCanvasSupported && !mustBeResized) {\n ctx.putImageData(canvasImgData, 0, 0);\n const bitmap = canvas.transferToImageBitmap();\n\n return {\n data: null,\n width: drawWidth,\n height: drawHeight,\n bitmap,\n interpolate: this.interpolate,\n };\n }\n\n imgData.data = data;\n if (mustBeResized) {\n return ImageResizer.createImage(imgData);\n }\n return imgData;\n }\n\n fillGrayBuffer(buffer) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n buffer instanceof Uint8ClampedArray,\n 'PDFImage.fillGrayBuffer: Unsupported \"buffer\" type.'\n );\n }\n const numComps = this.numComps;\n if (numComps !== 1) {\n throw new FormatError(\n `Reading gray scale from a color image: ${numComps}`\n );\n }\n\n const width = this.width;\n const height = this.height;\n const bpc = this.bpc;\n\n // rows start at byte boundary\n const rowBytes = (width * numComps * bpc + 7) >> 3;\n const imgArray = this.getImageBytes(height * rowBytes, { internal: true });\n\n const comps = this.getComponents(imgArray);\n let i, length;\n\n if (bpc === 1) {\n // inline decoding (= inversion) for 1 bpc images\n length = width * height;\n if (this.needsDecode) {\n // invert and scale to {0, 255}\n for (i = 0; i < length; ++i) {\n buffer[i] = (comps[i] - 1) & 255;\n }\n } else {\n // scale to {0, 255}\n for (i = 0; i < length; ++i) {\n buffer[i] = -comps[i] & 255;\n }\n }\n return;\n }\n\n if (this.needsDecode) {\n this.decodeBuffer(comps);\n }\n length = width * height;\n // we aren't using a colorspace so we need to scale the value\n const scale = 255 / ((1 << bpc) - 1);\n for (i = 0; i < length; ++i) {\n buffer[i] = scale * comps[i];\n }\n }\n\n createBitmap(kind, width, height, src) {\n const canvas = new OffscreenCanvas(width, height);\n const ctx = canvas.getContext(\"2d\");\n let imgData;\n if (kind === ImageKind.RGBA_32BPP) {\n imgData = new ImageData(src, width, height);\n } else {\n imgData = ctx.createImageData(width, height);\n convertToRGBA({\n kind,\n src,\n dest: new Uint32Array(imgData.data.buffer),\n width,\n height,\n inverseDecode: this.needsDecode,\n });\n }\n ctx.putImageData(imgData, 0, 0);\n const bitmap = canvas.transferToImageBitmap();\n\n return {\n data: null,\n width,\n height,\n bitmap,\n interpolate: this.interpolate,\n };\n }\n\n getImageBytes(\n length,\n {\n drawWidth,\n drawHeight,\n forceRGBA = false,\n forceRGB = false,\n internal = false,\n }\n ) {\n this.image.reset();\n this.image.drawWidth = drawWidth || this.width;\n this.image.drawHeight = drawHeight || this.height;\n this.image.forceRGBA = !!forceRGBA;\n this.image.forceRGB = !!forceRGB;\n const imageBytes = this.image.getBytes(length);\n\n // If imageBytes came from a DecodeStream, we're safe to transfer it\n // (and thus detach its underlying buffer) because it will constitute\n // the entire DecodeStream's data. But if it came from a Stream, we\n // need to copy it because it'll only be a portion of the Stream's\n // data, and the rest will be read later on.\n if (internal || this.image instanceof DecodeStream) {\n return imageBytes;\n }\n assert(\n imageBytes instanceof Uint8Array,\n 'PDFImage.getImageBytes: Unsupported \"imageBytes\" type.'\n );\n return new Uint8Array(imageBytes);\n }\n}\n\nexport { PDFImage };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-var */\n\nimport {\n AbortException,\n assert,\n CMapCompressionType,\n FONT_IDENTITY_MATRIX,\n FormatError,\n IDENTITY_MATRIX,\n info,\n isArrayEqual,\n normalizeUnicode,\n OPS,\n PromiseCapability,\n shadow,\n stringToPDFString,\n TextRenderingMode,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { CMapFactory, IdentityCMap } from \"./cmap.js\";\nimport { Cmd, Dict, EOF, isName, Name, Ref, RefSet } from \"./primitives.js\";\nimport { ErrorFont, Font } from \"./fonts.js\";\nimport {\n getEncoding,\n MacRomanEncoding,\n StandardEncoding,\n SymbolSetEncoding,\n WinAnsiEncoding,\n ZapfDingbatsEncoding,\n} from \"./encodings.js\";\nimport {\n getFontNameToFileMap,\n getSerifFonts,\n getStandardFontName,\n getStdFontMap,\n getSymbolsFonts,\n isKnownFontName,\n} from \"./standard_fonts.js\";\nimport { getTilingPatternIR, Pattern } from \"./pattern.js\";\nimport { getXfaFontDict, getXfaFontName } from \"./xfa_fonts.js\";\nimport { IdentityToUnicodeMap, ToUnicodeMap } from \"./to_unicode_map.js\";\nimport { isPDFFunction, PDFFunctionFactory } from \"./function.js\";\nimport { Lexer, Parser } from \"./parser.js\";\nimport {\n LocalColorSpaceCache,\n LocalGStateCache,\n LocalImageCache,\n LocalTilingPatternCache,\n RegionalImageCache,\n} from \"./image_utils.js\";\nimport { NullStream, Stream } from \"./stream.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { bidi } from \"./bidi.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { DecodeStream } from \"./decode_stream.js\";\nimport { FontFlags } from \"./fonts_utils.js\";\nimport { getFontSubstitution } from \"./font_substitutions.js\";\nimport { getGlyphsUnicode } from \"./glyphlist.js\";\nimport { getMetrics } from \"./metrics.js\";\nimport { getUnicodeForGlyph } from \"./unicode.js\";\nimport { ImageResizer } from \"./image_resizer.js\";\nimport { MurmurHash3_64 } from \"../shared/murmurhash3.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { PDFImage } from \"./image.js\";\n\nconst DefaultPartialEvaluatorOptions = Object.freeze({\n maxImageSize: -1,\n disableFontFace: false,\n ignoreErrors: false,\n isEvalSupported: true,\n isOffscreenCanvasSupported: false,\n canvasMaxAreaInBytes: -1,\n fontExtraProperties: false,\n useSystemFonts: true,\n cMapUrl: null,\n standardFontDataUrl: null,\n});\n\nconst PatternType = {\n TILING: 1,\n SHADING: 2,\n};\n\n// Optionally avoid sending individual, or very few, text chunks to reduce\n// `postMessage` overhead with ReadableStream (see issue 13962).\n//\n// PLEASE NOTE: This value should *not* be too large (it's used as a lower limit\n// in `enqueueChunk`), since that would cause streaming of textContent to become\n// essentially useless in practice by sending all (or most) chunks at once.\n// Also, a too large value would (indirectly) affect the main-thread `textLayer`\n// building negatively by forcing all textContent to be handled at once, which\n// could easily end up hurting *overall* performance (e.g. rendering as well).\nconst TEXT_CHUNK_BATCH_SIZE = 10;\n\nconst deferred = Promise.resolve();\n\n// Convert PDF blend mode names to HTML5 blend mode names.\nfunction normalizeBlendMode(value, parsingArray = false) {\n if (Array.isArray(value)) {\n // Use the first *supported* BM value in the Array (fixes issue11279.pdf).\n for (const val of value) {\n const maybeBM = normalizeBlendMode(val, /* parsingArray = */ true);\n if (maybeBM) {\n return maybeBM;\n }\n }\n warn(`Unsupported blend mode Array: ${value}`);\n return \"source-over\";\n }\n\n if (!(value instanceof Name)) {\n if (parsingArray) {\n return null;\n }\n return \"source-over\";\n }\n switch (value.name) {\n case \"Normal\":\n case \"Compatible\":\n return \"source-over\";\n case \"Multiply\":\n return \"multiply\";\n case \"Screen\":\n return \"screen\";\n case \"Overlay\":\n return \"overlay\";\n case \"Darken\":\n return \"darken\";\n case \"Lighten\":\n return \"lighten\";\n case \"ColorDodge\":\n return \"color-dodge\";\n case \"ColorBurn\":\n return \"color-burn\";\n case \"HardLight\":\n return \"hard-light\";\n case \"SoftLight\":\n return \"soft-light\";\n case \"Difference\":\n return \"difference\";\n case \"Exclusion\":\n return \"exclusion\";\n case \"Hue\":\n return \"hue\";\n case \"Saturation\":\n return \"saturation\";\n case \"Color\":\n return \"color\";\n case \"Luminosity\":\n return \"luminosity\";\n }\n if (parsingArray) {\n return null;\n }\n warn(`Unsupported blend mode: ${value.name}`);\n return \"source-over\";\n}\n\nfunction incrementCachedImageMaskCount(data) {\n if (data.fn === OPS.paintImageMaskXObject && data.args[0]?.count > 0) {\n data.args[0].count++;\n }\n}\n\n// Trying to minimize Date.now() usage and check every 100 time.\nclass TimeSlotManager {\n static TIME_SLOT_DURATION_MS = 20;\n\n static CHECK_TIME_EVERY = 100;\n\n constructor() {\n this.reset();\n }\n\n check() {\n if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) {\n return false;\n }\n this.checked = 0;\n return this.endTime <= Date.now();\n }\n\n reset() {\n this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS;\n this.checked = 0;\n }\n}\n\nclass PartialEvaluator {\n constructor({\n xref,\n handler,\n pageIndex,\n idFactory,\n fontCache,\n builtInCMapCache,\n standardFontDataCache,\n globalImageCache,\n systemFontCache,\n options = null,\n }) {\n this.xref = xref;\n this.handler = handler;\n this.pageIndex = pageIndex;\n this.idFactory = idFactory;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.standardFontDataCache = standardFontDataCache;\n this.globalImageCache = globalImageCache;\n this.systemFontCache = systemFontCache;\n this.options = options || DefaultPartialEvaluatorOptions;\n this.parsingType3Font = false;\n\n this._regionalImageCache = new RegionalImageCache();\n this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this);\n ImageResizer.setMaxArea(this.options.canvasMaxAreaInBytes);\n }\n\n /**\n * Since Functions are only cached (locally) by reference, we can share one\n * `PDFFunctionFactory` instance within this `PartialEvaluator` instance.\n */\n get _pdfFunctionFactory() {\n const pdfFunctionFactory = new PDFFunctionFactory({\n xref: this.xref,\n isEvalSupported: this.options.isEvalSupported,\n });\n return shadow(this, \"_pdfFunctionFactory\", pdfFunctionFactory);\n }\n\n clone(newOptions = null) {\n const newEvaluator = Object.create(this);\n newEvaluator.options = Object.assign(\n Object.create(null),\n this.options,\n newOptions\n );\n return newEvaluator;\n }\n\n hasBlendModes(resources, nonBlendModesSet) {\n if (!(resources instanceof Dict)) {\n return false;\n }\n if (resources.objId && nonBlendModesSet.has(resources.objId)) {\n return false;\n }\n\n const processed = new RefSet(nonBlendModesSet);\n if (resources.objId) {\n processed.put(resources.objId);\n }\n\n const nodes = [resources],\n xref = this.xref;\n while (nodes.length) {\n const node = nodes.shift();\n // First check the current resources for blend modes.\n const graphicStates = node.get(\"ExtGState\");\n if (graphicStates instanceof Dict) {\n for (let graphicState of graphicStates.getRawValues()) {\n if (graphicState instanceof Ref) {\n if (processed.has(graphicState)) {\n continue; // The ExtGState has already been processed.\n }\n try {\n graphicState = xref.fetch(graphicState);\n } catch (ex) {\n // Avoid parsing a corrupt ExtGState more than once.\n processed.put(graphicState);\n\n info(`hasBlendModes - ignoring ExtGState: \"${ex}\".`);\n continue;\n }\n }\n if (!(graphicState instanceof Dict)) {\n continue;\n }\n if (graphicState.objId) {\n processed.put(graphicState.objId);\n }\n\n const bm = graphicState.get(\"BM\");\n if (bm instanceof Name) {\n if (bm.name !== \"Normal\") {\n return true;\n }\n continue;\n }\n if (bm !== undefined && Array.isArray(bm)) {\n for (const element of bm) {\n if (element instanceof Name && element.name !== \"Normal\") {\n return true;\n }\n }\n }\n }\n }\n // Descend into the XObjects to look for more resources and blend modes.\n const xObjects = node.get(\"XObject\");\n if (!(xObjects instanceof Dict)) {\n continue;\n }\n for (let xObject of xObjects.getRawValues()) {\n if (xObject instanceof Ref) {\n if (processed.has(xObject)) {\n // The XObject has already been processed, and by avoiding a\n // redundant `xref.fetch` we can *significantly* reduce the load\n // time for badly generated PDF files (fixes issue6961.pdf).\n continue;\n }\n try {\n xObject = xref.fetch(xObject);\n } catch (ex) {\n // Avoid parsing a corrupt XObject more than once.\n processed.put(xObject);\n\n info(`hasBlendModes - ignoring XObject: \"${ex}\".`);\n continue;\n }\n }\n if (!(xObject instanceof BaseStream)) {\n continue;\n }\n if (xObject.dict.objId) {\n processed.put(xObject.dict.objId);\n }\n const xResources = xObject.dict.get(\"Resources\");\n if (!(xResources instanceof Dict)) {\n continue;\n }\n // Checking objId to detect an infinite loop.\n if (xResources.objId && processed.has(xResources.objId)) {\n continue;\n }\n\n nodes.push(xResources);\n if (xResources.objId) {\n processed.put(xResources.objId);\n }\n }\n }\n\n // When no blend modes exist, there's no need re-fetch/re-parse any of the\n // processed `Ref`s again for subsequent pages. This helps reduce redundant\n // `XRef.fetch` calls for some documents (e.g. issue6961.pdf).\n for (const ref of processed) {\n nonBlendModesSet.put(ref);\n }\n return false;\n }\n\n async fetchBuiltInCMap(name) {\n const cachedData = this.builtInCMapCache.get(name);\n if (cachedData) {\n return cachedData;\n }\n let data;\n\n if (this.options.cMapUrl !== null) {\n // Only compressed CMaps are (currently) supported here.\n const url = `${this.options.cMapUrl}${name}.bcmap`;\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(\n `fetchBuiltInCMap: failed to fetch file \"${url}\" with \"${response.statusText}\".`\n );\n }\n data = {\n cMapData: new Uint8Array(await response.arrayBuffer()),\n compressionType: CMapCompressionType.BINARY,\n };\n } else {\n // Get the data on the main-thread instead.\n data = await this.handler.sendWithPromise(\"FetchBuiltInCMap\", { name });\n }\n\n if (data.compressionType !== CMapCompressionType.NONE) {\n // Given the size of uncompressed CMaps, only cache compressed ones.\n this.builtInCMapCache.set(name, data);\n }\n return data;\n }\n\n async fetchStandardFontData(name) {\n const cachedData = this.standardFontDataCache.get(name);\n if (cachedData) {\n return new Stream(cachedData);\n }\n\n // The symbol fonts are not consistent across platforms, always load the\n // standard font data for them.\n if (\n this.options.useSystemFonts &&\n name !== \"Symbol\" &&\n name !== \"ZapfDingbats\"\n ) {\n return null;\n }\n\n const standardFontNameToFileName = getFontNameToFileMap(),\n filename = standardFontNameToFileName[name];\n let data;\n\n if (this.options.standardFontDataUrl !== null) {\n const url = `${this.options.standardFontDataUrl}${filename}`;\n const response = await fetch(url);\n if (!response.ok) {\n warn(\n `fetchStandardFontData: failed to fetch file \"${url}\" with \"${response.statusText}\".`\n );\n } else {\n data = new Uint8Array(await response.arrayBuffer());\n }\n } else {\n // Get the data on the main-thread instead.\n try {\n data = await this.handler.sendWithPromise(\"FetchStandardFontData\", {\n filename,\n });\n } catch (e) {\n warn(\n `fetchStandardFontData: failed to fetch file \"${filename}\" with \"${e}\".`\n );\n }\n }\n\n if (!data) {\n return null;\n }\n // Cache the \"raw\" standard font data, to avoid fetching it repeatedly\n // (see e.g. issue 11399).\n this.standardFontDataCache.set(name, data);\n\n return new Stream(data);\n }\n\n async buildFormXObject(\n resources,\n xobj,\n smask,\n operatorList,\n task,\n initialState,\n localColorSpaceCache\n ) {\n const dict = xobj.dict;\n const matrix = dict.getArray(\"Matrix\");\n let bbox = dict.getArray(\"BBox\");\n bbox =\n Array.isArray(bbox) && bbox.length === 4\n ? Util.normalizeRect(bbox)\n : null;\n\n let optionalContent, groupOptions;\n if (dict.has(\"OC\")) {\n optionalContent = await this.parseMarkedContentProps(\n dict.get(\"OC\"),\n resources\n );\n }\n if (optionalContent !== undefined) {\n operatorList.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n }\n const group = dict.get(\"Group\");\n if (group) {\n groupOptions = {\n matrix,\n bbox,\n smask,\n isolated: false,\n knockout: false,\n };\n\n const groupSubtype = group.get(\"S\");\n let colorSpace = null;\n if (isName(groupSubtype, \"Transparency\")) {\n groupOptions.isolated = group.get(\"I\") || false;\n groupOptions.knockout = group.get(\"K\") || false;\n if (group.has(\"CS\")) {\n const cs = group.getRaw(\"CS\");\n\n const cachedColorSpace = ColorSpace.getCached(\n cs,\n this.xref,\n localColorSpaceCache\n );\n if (cachedColorSpace) {\n colorSpace = cachedColorSpace;\n } else {\n colorSpace = await this.parseColorSpace({\n cs,\n resources,\n localColorSpaceCache,\n });\n }\n }\n }\n\n if (smask?.backdrop) {\n colorSpace ||= ColorSpace.singletons.rgb;\n smask.backdrop = colorSpace.getRgb(smask.backdrop, 0);\n }\n\n operatorList.addOp(OPS.beginGroup, [groupOptions]);\n }\n\n // If it's a group, a new canvas will be created that is the size of the\n // bounding box and translated to the correct position so we don't need to\n // apply the bounding box to it.\n const args = group ? [matrix, null] : [matrix, bbox];\n operatorList.addOp(OPS.paintFormXObjectBegin, args);\n\n return this.getOperatorList({\n stream: xobj,\n task,\n resources: dict.get(\"Resources\") || resources,\n operatorList,\n initialState,\n }).then(function () {\n operatorList.addOp(OPS.paintFormXObjectEnd, []);\n\n if (group) {\n operatorList.addOp(OPS.endGroup, [groupOptions]);\n }\n\n if (optionalContent !== undefined) {\n operatorList.addOp(OPS.endMarkedContent, []);\n }\n });\n }\n\n _sendImgData(objId, imgData, cacheGlobally = false) {\n const transfers = imgData ? [imgData.bitmap || imgData.data.buffer] : null;\n\n if (this.parsingType3Font || cacheGlobally) {\n return this.handler.send(\n \"commonobj\",\n [objId, \"Image\", imgData],\n transfers\n );\n }\n return this.handler.send(\n \"obj\",\n [objId, this.pageIndex, \"Image\", imgData],\n transfers\n );\n }\n\n async buildPaintImageXObject({\n resources,\n image,\n isInline = false,\n operatorList,\n cacheKey,\n localImageCache,\n localColorSpaceCache,\n }) {\n const dict = image.dict;\n const imageRef = dict.objId;\n const w = dict.get(\"W\", \"Width\");\n const h = dict.get(\"H\", \"Height\");\n\n if (!(w && typeof w === \"number\") || !(h && typeof h === \"number\")) {\n warn(\"Image dimensions are missing, or not numbers.\");\n return;\n }\n const maxImageSize = this.options.maxImageSize;\n if (maxImageSize !== -1 && w * h > maxImageSize) {\n const msg = \"Image exceeded maximum allowed size and was removed.\";\n\n if (this.options.ignoreErrors) {\n warn(msg);\n return;\n }\n throw new Error(msg);\n }\n\n let optionalContent;\n if (dict.has(\"OC\")) {\n optionalContent = await this.parseMarkedContentProps(\n dict.get(\"OC\"),\n resources\n );\n }\n\n const imageMask = dict.get(\"IM\", \"ImageMask\") || false;\n let imgData, args;\n if (imageMask) {\n // This depends on a tmpCanvas being filled with the\n // current fillStyle, such that processing the pixel\n // data can't be done here. Instead of creating a\n // complete PDFImage, only read the information needed\n // for later.\n const interpolate = dict.get(\"I\", \"Interpolate\");\n const bitStrideLength = (w + 7) >> 3;\n const imgArray = image.getBytes(bitStrideLength * h);\n const decode = dict.getArray(\"D\", \"Decode\");\n\n if (this.parsingType3Font) {\n imgData = PDFImage.createRawMask({\n imgArray,\n width: w,\n height: h,\n imageIsFromDecodeStream: image instanceof DecodeStream,\n inverseDecode: decode?.[0] > 0,\n interpolate,\n });\n\n imgData.cached = !!cacheKey;\n args = [imgData];\n\n operatorList.addImageOps(\n OPS.paintImageMaskXObject,\n args,\n optionalContent\n );\n\n if (cacheKey) {\n const cacheData = {\n fn: OPS.paintImageMaskXObject,\n args,\n optionalContent,\n };\n localImageCache.set(cacheKey, imageRef, cacheData);\n\n if (imageRef) {\n this._regionalImageCache.set(\n /* name = */ null,\n imageRef,\n cacheData\n );\n }\n }\n return;\n }\n\n imgData = await PDFImage.createMask({\n imgArray,\n width: w,\n height: h,\n imageIsFromDecodeStream: image instanceof DecodeStream,\n inverseDecode: decode?.[0] > 0,\n interpolate,\n isOffscreenCanvasSupported: this.options.isOffscreenCanvasSupported,\n });\n\n if (imgData.isSingleOpaquePixel) {\n // Handles special case of mainly LaTeX documents which use image\n // masks to draw lines with the current fill style.\n operatorList.addImageOps(\n OPS.paintSolidColorImageMask,\n [],\n optionalContent\n );\n\n if (cacheKey) {\n const cacheData = {\n fn: OPS.paintSolidColorImageMask,\n args: [],\n optionalContent,\n };\n localImageCache.set(cacheKey, imageRef, cacheData);\n\n if (imageRef) {\n this._regionalImageCache.set(\n /* name = */ null,\n imageRef,\n cacheData\n );\n }\n }\n return;\n }\n\n const objId = `mask_${this.idFactory.createObjId()}`;\n operatorList.addDependency(objId);\n this._sendImgData(objId, imgData);\n\n args = [\n {\n data: objId,\n width: imgData.width,\n height: imgData.height,\n interpolate: imgData.interpolate,\n count: 1,\n },\n ];\n operatorList.addImageOps(\n OPS.paintImageMaskXObject,\n args,\n optionalContent\n );\n\n if (cacheKey) {\n const cacheData = {\n fn: OPS.paintImageMaskXObject,\n args,\n optionalContent,\n };\n localImageCache.set(cacheKey, imageRef, cacheData);\n\n if (imageRef) {\n this._regionalImageCache.set(/* name = */ null, imageRef, cacheData);\n }\n }\n return;\n }\n\n const SMALL_IMAGE_DIMENSIONS = 200;\n // Inlining small images into the queue as RGB data\n if (\n isInline &&\n !dict.has(\"SMask\") &&\n !dict.has(\"Mask\") &&\n w + h < SMALL_IMAGE_DIMENSIONS\n ) {\n const imageObj = new PDFImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache,\n });\n // We force the use of RGBA_32BPP images here, because we can't handle\n // any other kind.\n imgData = await imageObj.createImageData(\n /* forceRGBA = */ true,\n /* isOffscreenCanvasSupported = */ false\n );\n operatorList.isOffscreenCanvasSupported =\n this.options.isOffscreenCanvasSupported;\n operatorList.addImageOps(\n OPS.paintInlineImageXObject,\n [imgData],\n optionalContent\n );\n return;\n }\n\n // If there is no imageMask, create the PDFImage and a lot\n // of image processing can be done here.\n let objId = `img_${this.idFactory.createObjId()}`,\n cacheGlobally = false;\n\n if (this.parsingType3Font) {\n objId = `${this.idFactory.getDocId()}_type3_${objId}`;\n } else if (imageRef) {\n cacheGlobally = this.globalImageCache.shouldCache(\n imageRef,\n this.pageIndex\n );\n\n if (cacheGlobally) {\n objId = `${this.idFactory.getDocId()}_${objId}`;\n }\n }\n\n // Ensure that the dependency is added before the image is decoded.\n operatorList.addDependency(objId);\n args = [objId, w, h];\n\n PDFImage.buildImage({\n xref: this.xref,\n res: resources,\n image,\n isInline,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache,\n })\n .then(async imageObj => {\n imgData = await imageObj.createImageData(\n /* forceRGBA = */ false,\n /* isOffscreenCanvasSupported = */ this.options\n .isOffscreenCanvasSupported\n );\n\n if (cacheKey && imageRef && cacheGlobally) {\n const length = imgData.bitmap\n ? imgData.width * imgData.height * 4\n : imgData.data.length;\n this.globalImageCache.addByteSize(imageRef, length);\n }\n\n return this._sendImgData(objId, imgData, cacheGlobally);\n })\n .catch(reason => {\n warn(`Unable to decode image \"${objId}\": \"${reason}\".`);\n\n return this._sendImgData(objId, /* imgData = */ null, cacheGlobally);\n });\n\n operatorList.addImageOps(OPS.paintImageXObject, args, optionalContent);\n\n if (cacheKey) {\n const cacheData = {\n fn: OPS.paintImageXObject,\n args,\n optionalContent,\n };\n localImageCache.set(cacheKey, imageRef, cacheData);\n\n if (imageRef) {\n this._regionalImageCache.set(/* name = */ null, imageRef, cacheData);\n\n if (cacheGlobally) {\n assert(!isInline, \"Cannot cache an inline image globally.\");\n\n this.globalImageCache.setData(imageRef, {\n objId,\n fn: OPS.paintImageXObject,\n args,\n optionalContent,\n byteSize: 0, // Temporary entry, note `addByteSize` above.\n });\n }\n }\n }\n }\n\n handleSMask(\n smask,\n resources,\n operatorList,\n task,\n stateManager,\n localColorSpaceCache\n ) {\n const smaskContent = smask.get(\"G\");\n const smaskOptions = {\n subtype: smask.get(\"S\").name,\n backdrop: smask.get(\"BC\"),\n };\n\n // The SMask might have a alpha/luminosity value transfer function --\n // we will build a map of integer values in range 0..255 to be fast.\n const transferObj = smask.get(\"TR\");\n if (isPDFFunction(transferObj)) {\n const transferFn = this._pdfFunctionFactory.create(transferObj);\n const transferMap = new Uint8Array(256);\n const tmp = new Float32Array(1);\n for (let i = 0; i < 256; i++) {\n tmp[0] = i / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[i] = (tmp[0] * 255) | 0;\n }\n smaskOptions.transferMap = transferMap;\n }\n\n return this.buildFormXObject(\n resources,\n smaskContent,\n smaskOptions,\n operatorList,\n task,\n stateManager.state.clone(),\n localColorSpaceCache\n );\n }\n\n handleTransferFunction(tr) {\n let transferArray;\n if (Array.isArray(tr)) {\n transferArray = tr;\n } else if (isPDFFunction(tr)) {\n transferArray = [tr];\n } else {\n return null; // Not a valid transfer function entry.\n }\n\n const transferMaps = [];\n let numFns = 0,\n numEffectfulFns = 0;\n for (const entry of transferArray) {\n const transferObj = this.xref.fetchIfRef(entry);\n numFns++;\n\n if (isName(transferObj, \"Identity\")) {\n transferMaps.push(null);\n continue;\n } else if (!isPDFFunction(transferObj)) {\n return null; // Not a valid transfer function object.\n }\n\n const transferFn = this._pdfFunctionFactory.create(transferObj);\n const transferMap = new Uint8Array(256),\n tmp = new Float32Array(1);\n for (let j = 0; j < 256; j++) {\n tmp[0] = j / 255;\n transferFn(tmp, 0, tmp, 0);\n transferMap[j] = (tmp[0] * 255) | 0;\n }\n transferMaps.push(transferMap);\n numEffectfulFns++;\n }\n\n if (!(numFns === 1 || numFns === 4)) {\n return null; // Only 1 or 4 functions are supported, by the specification.\n }\n if (numEffectfulFns === 0) {\n return null; // Only /Identity transfer functions found, which are no-ops.\n }\n return transferMaps;\n }\n\n handleTilingType(\n fn,\n color,\n resources,\n pattern,\n patternDict,\n operatorList,\n task,\n localTilingPatternCache\n ) {\n // Create an IR of the pattern code.\n const tilingOpList = new OperatorList();\n // Merge the available resources, to prevent issues when the patternDict\n // is missing some /Resources entries (fixes issue6541.pdf).\n const patternResources = Dict.merge({\n xref: this.xref,\n dictArray: [patternDict.get(\"Resources\"), resources],\n });\n\n return this.getOperatorList({\n stream: pattern,\n task,\n resources: patternResources,\n operatorList: tilingOpList,\n })\n .then(function () {\n const operatorListIR = tilingOpList.getIR();\n const tilingPatternIR = getTilingPatternIR(\n operatorListIR,\n patternDict,\n color\n );\n // Add the dependencies to the parent operator list so they are\n // resolved before the sub operator list is executed synchronously.\n operatorList.addDependencies(tilingOpList.dependencies);\n operatorList.addOp(fn, tilingPatternIR);\n\n if (patternDict.objId) {\n localTilingPatternCache.set(/* name = */ null, patternDict.objId, {\n operatorListIR,\n dict: patternDict,\n });\n }\n })\n .catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (this.options.ignoreErrors) {\n warn(`handleTilingType - ignoring pattern: \"${reason}\".`);\n return;\n }\n throw reason;\n });\n }\n\n handleSetFont(\n resources,\n fontArgs,\n fontRef,\n operatorList,\n task,\n state,\n fallbackFontDict = null,\n cssFontInfo = null\n ) {\n const fontName = fontArgs?.[0] instanceof Name ? fontArgs[0].name : null;\n\n return this.loadFont(\n fontName,\n fontRef,\n resources,\n fallbackFontDict,\n cssFontInfo\n )\n .then(translated => {\n if (!translated.font.isType3Font) {\n return translated;\n }\n return translated\n .loadType3Data(this, resources, task)\n .then(function () {\n // Add the dependencies to the parent operatorList so they are\n // resolved before Type3 operatorLists are executed synchronously.\n operatorList.addDependencies(translated.type3Dependencies);\n\n return translated;\n })\n .catch(reason => {\n return new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new ErrorFont(`Type3 font load error: ${reason}`),\n dict: translated.font,\n evaluatorOptions: this.options,\n });\n });\n })\n .then(translated => {\n state.font = translated.font;\n translated.send(this.handler);\n return translated.loadedName;\n });\n }\n\n handleText(chars, state) {\n const font = state.font;\n const glyphs = font.charsToGlyphs(chars);\n\n if (font.data) {\n const isAddToPathSet = !!(\n state.textRenderingMode & TextRenderingMode.ADD_TO_PATH_FLAG\n );\n if (\n isAddToPathSet ||\n state.fillColorSpace.name === \"Pattern\" ||\n font.disableFontFace ||\n this.options.disableFontFace\n ) {\n PartialEvaluator.buildFontPaths(\n font,\n glyphs,\n this.handler,\n this.options\n );\n }\n }\n return glyphs;\n }\n\n ensureStateFont(state) {\n if (state.font) {\n return;\n }\n const reason = new FormatError(\n \"Missing setFont (Tf) operator before text rendering operator.\"\n );\n\n if (this.options.ignoreErrors) {\n warn(`ensureStateFont: \"${reason}\".`);\n return;\n }\n throw reason;\n }\n\n async setGState({\n resources,\n gState,\n operatorList,\n cacheKey,\n task,\n stateManager,\n localGStateCache,\n localColorSpaceCache,\n }) {\n const gStateRef = gState.objId;\n let isSimpleGState = true;\n // This array holds the converted/processed state data.\n const gStateObj = [];\n let promise = Promise.resolve();\n for (const key of gState.getKeys()) {\n const value = gState.get(key);\n switch (key) {\n case \"Type\":\n break;\n case \"LW\":\n case \"LC\":\n case \"LJ\":\n case \"ML\":\n case \"D\":\n case \"RI\":\n case \"FL\":\n case \"CA\":\n case \"ca\":\n gStateObj.push([key, value]);\n break;\n case \"Font\":\n isSimpleGState = false;\n\n promise = promise.then(() => {\n return this.handleSetFont(\n resources,\n null,\n value[0],\n operatorList,\n task,\n stateManager.state\n ).then(function (loadedName) {\n operatorList.addDependency(loadedName);\n gStateObj.push([key, [loadedName, value[1]]]);\n });\n });\n break;\n case \"BM\":\n gStateObj.push([key, normalizeBlendMode(value)]);\n break;\n case \"SMask\":\n if (isName(value, \"None\")) {\n gStateObj.push([key, false]);\n break;\n }\n if (value instanceof Dict) {\n isSimpleGState = false;\n\n promise = promise.then(() => {\n return this.handleSMask(\n value,\n resources,\n operatorList,\n task,\n stateManager,\n localColorSpaceCache\n );\n });\n gStateObj.push([key, true]);\n } else {\n warn(\"Unsupported SMask type\");\n }\n break;\n case \"TR\":\n const transferMaps = this.handleTransferFunction(value);\n gStateObj.push([key, transferMaps]);\n break;\n // Only generate info log messages for the following since\n // they are unlikely to have a big impact on the rendering.\n case \"OP\":\n case \"op\":\n case \"OPM\":\n case \"BG\":\n case \"BG2\":\n case \"UCR\":\n case \"UCR2\":\n case \"TR2\":\n case \"HT\":\n case \"SM\":\n case \"SA\":\n case \"AIS\":\n case \"TK\":\n // TODO implement these operators.\n info(\"graphic state operator \" + key);\n break;\n default:\n info(\"Unknown graphic state operator \" + key);\n break;\n }\n }\n return promise.then(function () {\n if (gStateObj.length > 0) {\n operatorList.addOp(OPS.setGState, [gStateObj]);\n }\n\n if (isSimpleGState) {\n localGStateCache.set(cacheKey, gStateRef, gStateObj);\n }\n });\n }\n\n loadFont(\n fontName,\n font,\n resources,\n fallbackFontDict = null,\n cssFontInfo = null\n ) {\n const errorFont = async () => {\n return new TranslatedFont({\n loadedName: \"g_font_error\",\n font: new ErrorFont(`Font \"${fontName}\" is not available.`),\n dict: font,\n evaluatorOptions: this.options,\n });\n };\n\n let fontRef;\n if (font) {\n // Loading by ref.\n if (font instanceof Ref) {\n fontRef = font;\n }\n } else {\n // Loading by name.\n const fontRes = resources.get(\"Font\");\n if (fontRes) {\n fontRef = fontRes.getRaw(fontName);\n }\n }\n if (fontRef) {\n if (this.parsingType3Font && this.type3FontRefs.has(fontRef)) {\n return errorFont();\n }\n\n if (this.fontCache.has(fontRef)) {\n return this.fontCache.get(fontRef);\n }\n\n font = this.xref.fetchIfRef(fontRef);\n }\n\n if (!(font instanceof Dict)) {\n if (!this.options.ignoreErrors && !this.parsingType3Font) {\n warn(`Font \"${fontName}\" is not available.`);\n return errorFont();\n }\n warn(\n `Font \"${fontName}\" is not available -- attempting to fallback to a default font.`\n );\n\n // Falling back to a default font to avoid completely broken rendering,\n // but note that there're no guarantees that things will look \"correct\".\n font = fallbackFontDict || PartialEvaluator.fallbackFontDict;\n }\n\n // We are holding `font.cacheKey` references only for `fontRef`s that\n // are not actually `Ref`s, but rather `Dict`s. See explanation below.\n if (font.cacheKey && this.fontCache.has(font.cacheKey)) {\n return this.fontCache.get(font.cacheKey);\n }\n\n const fontCapability = new PromiseCapability();\n\n let preEvaluatedFont;\n try {\n preEvaluatedFont = this.preEvaluateFont(font);\n preEvaluatedFont.cssFontInfo = cssFontInfo;\n } catch (reason) {\n warn(`loadFont - preEvaluateFont failed: \"${reason}\".`);\n return errorFont();\n }\n const { descriptor, hash } = preEvaluatedFont;\n\n const fontRefIsRef = fontRef instanceof Ref;\n let fontID;\n\n if (hash && descriptor instanceof Dict) {\n const fontAliases = (descriptor.fontAliases ||= Object.create(null));\n\n if (fontAliases[hash]) {\n const aliasFontRef = fontAliases[hash].aliasRef;\n if (fontRefIsRef && aliasFontRef && this.fontCache.has(aliasFontRef)) {\n this.fontCache.putAlias(fontRef, aliasFontRef);\n return this.fontCache.get(fontRef);\n }\n } else {\n fontAliases[hash] = {\n fontID: this.idFactory.createFontId(),\n };\n }\n\n if (fontRefIsRef) {\n fontAliases[hash].aliasRef = fontRef;\n }\n fontID = fontAliases[hash].fontID;\n } else {\n fontID = this.idFactory.createFontId();\n }\n assert(\n fontID?.startsWith(\"f\"),\n 'The \"fontID\" must be (correctly) defined.'\n );\n\n // Workaround for bad PDF generators that reference fonts incorrectly,\n // where `fontRef` is a `Dict` rather than a `Ref` (fixes bug946506.pdf).\n // In this case we cannot put the font into `this.fontCache` (which is\n // a `RefSetCache`), since it's not possible to use a `Dict` as a key.\n //\n // However, if we don't cache the font it's not possible to remove it\n // when `cleanup` is triggered from the API, which causes issues on\n // subsequent rendering operations (see issue7403.pdf) and would force us\n // to unnecessarily load the same fonts over and over.\n //\n // Instead, we cheat a bit by using a modified `fontID` as a key in\n // `this.fontCache`, to allow the font to be cached.\n // NOTE: This works because `RefSetCache` calls `toString()` on provided\n // keys. Also, since `fontRef` is used when getting cached fonts,\n // we'll not accidentally match fonts cached with the `fontID`.\n if (fontRefIsRef) {\n this.fontCache.put(fontRef, fontCapability.promise);\n } else {\n font.cacheKey = `cacheKey_${fontID}`;\n this.fontCache.put(font.cacheKey, fontCapability.promise);\n }\n\n // Keep track of each font we translated so the caller can\n // load them asynchronously before calling display on a page.\n font.loadedName = `${this.idFactory.getDocId()}_${fontID}`;\n\n this.translateFont(preEvaluatedFont)\n .then(translatedFont => {\n fontCapability.resolve(\n new TranslatedFont({\n loadedName: font.loadedName,\n font: translatedFont,\n dict: font,\n evaluatorOptions: this.options,\n })\n );\n })\n .catch(reason => {\n // TODO fontCapability.reject?\n warn(`loadFont - translateFont failed: \"${reason}\".`);\n\n fontCapability.resolve(\n new TranslatedFont({\n loadedName: font.loadedName,\n font: new ErrorFont(\n reason instanceof Error ? reason.message : reason\n ),\n dict: font,\n evaluatorOptions: this.options,\n })\n );\n });\n return fontCapability.promise;\n }\n\n buildPath(operatorList, fn, args, parsingText = false) {\n const lastIndex = operatorList.length - 1;\n if (!args) {\n args = [];\n }\n if (\n lastIndex < 0 ||\n operatorList.fnArray[lastIndex] !== OPS.constructPath\n ) {\n // Handle corrupt PDF documents that contains path operators inside of\n // text objects, which may shift subsequent text, by enclosing the path\n // operator in save/restore operators (fixes issue10542_reduced.pdf).\n //\n // Note that this will effectively disable the optimization in the\n // `else` branch below, but given that this type of corruption is\n // *extremely* rare that shouldn't really matter much in practice.\n if (parsingText) {\n warn(`Encountered path operator \"${fn}\" inside of a text object.`);\n operatorList.addOp(OPS.save, null);\n }\n\n let minMax;\n switch (fn) {\n case OPS.rectangle:\n const x = args[0] + args[2];\n const y = args[1] + args[3];\n minMax = [\n Math.min(args[0], x),\n Math.max(args[0], x),\n Math.min(args[1], y),\n Math.max(args[1], y),\n ];\n break;\n case OPS.moveTo:\n case OPS.lineTo:\n minMax = [args[0], args[0], args[1], args[1]];\n break;\n default:\n minMax = [Infinity, -Infinity, Infinity, -Infinity];\n break;\n }\n operatorList.addOp(OPS.constructPath, [[fn], args, minMax]);\n\n if (parsingText) {\n operatorList.addOp(OPS.restore, null);\n }\n } else {\n const opArgs = operatorList.argsArray[lastIndex];\n opArgs[0].push(fn);\n opArgs[1].push(...args);\n const minMax = opArgs[2];\n\n // Compute min/max in the worker instead of the main thread.\n // If the current matrix (when drawing) is a scaling one\n // then min/max can be easily computed in using those values.\n // Only rectangle, lineTo and moveTo are handled here since\n // Bezier stuff requires to have the starting point.\n switch (fn) {\n case OPS.rectangle:\n const x = args[0] + args[2];\n const y = args[1] + args[3];\n minMax[0] = Math.min(minMax[0], args[0], x);\n minMax[1] = Math.max(minMax[1], args[0], x);\n minMax[2] = Math.min(minMax[2], args[1], y);\n minMax[3] = Math.max(minMax[3], args[1], y);\n break;\n case OPS.moveTo:\n case OPS.lineTo:\n minMax[0] = Math.min(minMax[0], args[0]);\n minMax[1] = Math.max(minMax[1], args[0]);\n minMax[2] = Math.min(minMax[2], args[1]);\n minMax[3] = Math.max(minMax[3], args[1]);\n break;\n }\n }\n }\n\n parseColorSpace({ cs, resources, localColorSpaceCache }) {\n return ColorSpace.parseAsync({\n cs,\n xref: this.xref,\n resources,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache,\n }).catch(reason => {\n if (reason instanceof AbortException) {\n return null;\n }\n if (this.options.ignoreErrors) {\n warn(`parseColorSpace - ignoring ColorSpace: \"${reason}\".`);\n return null;\n }\n throw reason;\n });\n }\n\n parseShading({\n shading,\n resources,\n localColorSpaceCache,\n localShadingPatternCache,\n }) {\n // Shadings and patterns may be referenced by the same name but the resource\n // dictionary could be different so we can't use the name for the cache key.\n let id = localShadingPatternCache.get(shading);\n if (!id) {\n var shadingFill = Pattern.parseShading(\n shading,\n this.xref,\n resources,\n this._pdfFunctionFactory,\n localColorSpaceCache\n );\n const patternIR = shadingFill.getIR();\n id = `pattern_${this.idFactory.createObjId()}`;\n if (this.parsingType3Font) {\n id = `${this.idFactory.getDocId()}_type3_${id}`;\n }\n localShadingPatternCache.set(shading, id);\n\n if (this.parsingType3Font) {\n this.handler.send(\"commonobj\", [id, \"Pattern\", patternIR]);\n } else {\n this.handler.send(\"obj\", [id, this.pageIndex, \"Pattern\", patternIR]);\n }\n }\n return id;\n }\n\n handleColorN(\n operatorList,\n fn,\n args,\n cs,\n patterns,\n resources,\n task,\n localColorSpaceCache,\n localTilingPatternCache,\n localShadingPatternCache\n ) {\n // compile tiling patterns\n const patternName = args.pop();\n // SCN/scn applies patterns along with normal colors\n if (patternName instanceof Name) {\n const rawPattern = patterns.getRaw(patternName.name);\n\n const localTilingPattern =\n rawPattern instanceof Ref &&\n localTilingPatternCache.getByRef(rawPattern);\n if (localTilingPattern) {\n try {\n const color = cs.base ? cs.base.getRgb(args, 0) : null;\n const tilingPatternIR = getTilingPatternIR(\n localTilingPattern.operatorListIR,\n localTilingPattern.dict,\n color\n );\n operatorList.addOp(fn, tilingPatternIR);\n return undefined;\n } catch {\n // Handle any errors during normal TilingPattern parsing.\n }\n }\n\n const pattern = this.xref.fetchIfRef(rawPattern);\n if (pattern) {\n const dict = pattern instanceof BaseStream ? pattern.dict : pattern;\n const typeNum = dict.get(\"PatternType\");\n\n if (typeNum === PatternType.TILING) {\n const color = cs.base ? cs.base.getRgb(args, 0) : null;\n return this.handleTilingType(\n fn,\n color,\n resources,\n pattern,\n dict,\n operatorList,\n task,\n localTilingPatternCache\n );\n } else if (typeNum === PatternType.SHADING) {\n const shading = dict.get(\"Shading\");\n const matrix = dict.getArray(\"Matrix\");\n const objId = this.parseShading({\n shading,\n resources,\n localColorSpaceCache,\n localShadingPatternCache,\n });\n operatorList.addOp(fn, [\"Shading\", objId, matrix]);\n return undefined;\n }\n throw new FormatError(`Unknown PatternType: ${typeNum}`);\n }\n }\n throw new FormatError(`Unknown PatternName: ${patternName}`);\n }\n\n _parseVisibilityExpression(array, nestingCounter, currentResult) {\n const MAX_NESTING = 10;\n if (++nestingCounter > MAX_NESTING) {\n warn(\"Visibility expression is too deeply nested\");\n return;\n }\n const length = array.length;\n const operator = this.xref.fetchIfRef(array[0]);\n if (length < 2 || !(operator instanceof Name)) {\n warn(\"Invalid visibility expression\");\n return;\n }\n switch (operator.name) {\n case \"And\":\n case \"Or\":\n case \"Not\":\n currentResult.push(operator.name);\n break;\n default:\n warn(`Invalid operator ${operator.name} in visibility expression`);\n return;\n }\n for (let i = 1; i < length; i++) {\n const raw = array[i];\n const object = this.xref.fetchIfRef(raw);\n if (Array.isArray(object)) {\n const nestedResult = [];\n currentResult.push(nestedResult);\n // Recursively parse a subarray.\n this._parseVisibilityExpression(object, nestingCounter, nestedResult);\n } else if (raw instanceof Ref) {\n // Reference to an OCG dictionary.\n currentResult.push(raw.toString());\n }\n }\n }\n\n async parseMarkedContentProps(contentProperties, resources) {\n let optionalContent;\n if (contentProperties instanceof Name) {\n const properties = resources.get(\"Properties\");\n optionalContent = properties.get(contentProperties.name);\n } else if (contentProperties instanceof Dict) {\n optionalContent = contentProperties;\n } else {\n throw new FormatError(\"Optional content properties malformed.\");\n }\n\n const optionalContentType = optionalContent.get(\"Type\")?.name;\n if (optionalContentType === \"OCG\") {\n return {\n type: optionalContentType,\n id: optionalContent.objId,\n };\n } else if (optionalContentType === \"OCMD\") {\n const expression = optionalContent.get(\"VE\");\n if (Array.isArray(expression)) {\n const result = [];\n this._parseVisibilityExpression(expression, 0, result);\n if (result.length > 0) {\n return {\n type: \"OCMD\",\n expression: result,\n };\n }\n }\n\n const optionalContentGroups = optionalContent.get(\"OCGs\");\n if (\n Array.isArray(optionalContentGroups) ||\n optionalContentGroups instanceof Dict\n ) {\n const groupIds = [];\n if (Array.isArray(optionalContentGroups)) {\n for (const ocg of optionalContentGroups) {\n groupIds.push(ocg.toString());\n }\n } else {\n // Dictionary, just use the obj id.\n groupIds.push(optionalContentGroups.objId);\n }\n\n return {\n type: optionalContentType,\n ids: groupIds,\n policy:\n optionalContent.get(\"P\") instanceof Name\n ? optionalContent.get(\"P\").name\n : null,\n expression: null,\n };\n } else if (optionalContentGroups instanceof Ref) {\n return {\n type: optionalContentType,\n id: optionalContentGroups.toString(),\n };\n }\n }\n return null;\n }\n\n getOperatorList({\n stream,\n task,\n resources,\n operatorList,\n initialState = null,\n fallbackFontDict = null,\n }) {\n // Ensure that `resources`/`initialState` is correctly initialized,\n // even if the provided parameter is e.g. `null`.\n resources ||= Dict.empty;\n initialState ||= new EvalState();\n\n if (!operatorList) {\n throw new Error('getOperatorList: missing \"operatorList\" parameter');\n }\n\n const self = this;\n const xref = this.xref;\n let parsingText = false;\n const localImageCache = new LocalImageCache();\n const localColorSpaceCache = new LocalColorSpaceCache();\n const localGStateCache = new LocalGStateCache();\n const localTilingPatternCache = new LocalTilingPatternCache();\n const localShadingPatternCache = new Map();\n\n const xobjs = resources.get(\"XObject\") || Dict.empty;\n const patterns = resources.get(\"Pattern\") || Dict.empty;\n const stateManager = new StateManager(initialState);\n const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n const timeSlotManager = new TimeSlotManager();\n\n function closePendingRestoreOPS(argument) {\n for (let i = 0, ii = preprocessor.savedStatesDepth; i < ii; i++) {\n operatorList.addOp(OPS.restore, []);\n }\n }\n\n return new Promise(function promiseBody(resolve, reject) {\n const next = function (promise) {\n Promise.all([promise, operatorList.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n\n const operation = {};\n let stop, i, ii, cs, name, isValidName;\n while (!(stop = timeSlotManager.check())) {\n // The arguments parsed by read() are used beyond this loop, so we\n // cannot reuse the same array on each iteration. Therefore we pass\n // in |null| as the initial value (see the comment on\n // EvaluatorPreprocessor_read() for why).\n operation.args = null;\n if (!preprocessor.read(operation)) {\n break;\n }\n let args = operation.args;\n let fn = operation.fn;\n\n switch (fn | 0) {\n case OPS.paintXObject:\n // eagerly compile XForm objects\n isValidName = args[0] instanceof Name;\n name = args[0].name;\n\n if (isValidName) {\n const localImage = localImageCache.getByName(name);\n if (localImage) {\n operatorList.addImageOps(\n localImage.fn,\n localImage.args,\n localImage.optionalContent\n );\n\n incrementCachedImageMaskCount(localImage);\n args = null;\n continue;\n }\n }\n\n next(\n new Promise(function (resolveXObject, rejectXObject) {\n if (!isValidName) {\n throw new FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n if (xobj instanceof Ref) {\n const localImage =\n localImageCache.getByRef(xobj) ||\n self._regionalImageCache.getByRef(xobj);\n if (localImage) {\n operatorList.addImageOps(\n localImage.fn,\n localImage.args,\n localImage.optionalContent\n );\n\n incrementCachedImageMaskCount(localImage);\n resolveXObject();\n return;\n }\n\n const globalImage = self.globalImageCache.getData(\n xobj,\n self.pageIndex\n );\n if (globalImage) {\n operatorList.addDependency(globalImage.objId);\n operatorList.addImageOps(\n globalImage.fn,\n globalImage.args,\n globalImage.optionalContent\n );\n\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!(xobj instanceof BaseStream)) {\n throw new FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name === \"Form\") {\n stateManager.save();\n self\n .buildFormXObject(\n resources,\n xobj,\n null,\n operatorList,\n task,\n stateManager.state.clone(),\n localColorSpaceCache\n )\n .then(function () {\n stateManager.restore();\n resolveXObject();\n }, rejectXObject);\n return;\n } else if (type.name === \"Image\") {\n self\n .buildPaintImageXObject({\n resources,\n image: xobj,\n operatorList,\n cacheKey: name,\n localImageCache,\n localColorSpaceCache,\n })\n .then(resolveXObject, rejectXObject);\n return;\n } else if (type.name === \"PS\") {\n // PostScript XObjects are unused when viewing documents.\n // See section 4.7.1 of Adobe's PDF reference.\n info(\"Ignored XObject subtype PS\");\n } else {\n throw new FormatError(\n `Unhandled XObject subtype ${type.name}`\n );\n }\n resolveXObject();\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n warn(`getOperatorList - ignoring XObject: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.setFont:\n var fontSize = args[1];\n // eagerly collect all fonts\n next(\n self\n .handleSetFont(\n resources,\n args,\n null,\n operatorList,\n task,\n stateManager.state,\n fallbackFontDict\n )\n .then(function (loadedName) {\n operatorList.addDependency(loadedName);\n operatorList.addOp(OPS.setFont, [loadedName, fontSize]);\n })\n );\n return;\n case OPS.beginText:\n parsingText = true;\n break;\n case OPS.endText:\n parsingText = false;\n break;\n case OPS.endInlineImage:\n var cacheKey = args[0].cacheKey;\n if (cacheKey) {\n const localImage = localImageCache.getByName(cacheKey);\n if (localImage) {\n operatorList.addImageOps(\n localImage.fn,\n localImage.args,\n localImage.optionalContent\n );\n\n incrementCachedImageMaskCount(localImage);\n args = null;\n continue;\n }\n }\n next(\n self.buildPaintImageXObject({\n resources,\n image: args[0],\n isInline: true,\n operatorList,\n cacheKey,\n localImageCache,\n localColorSpaceCache,\n })\n );\n return;\n case OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n args[0] = self.handleText(args[0], stateManager.state);\n break;\n case OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n var combinedGlyphs = [];\n var state = stateManager.state;\n for (const arrItem of args[0]) {\n if (typeof arrItem === \"string\") {\n combinedGlyphs.push(...self.handleText(arrItem, state));\n } else if (typeof arrItem === \"number\") {\n combinedGlyphs.push(arrItem);\n }\n }\n args[0] = combinedGlyphs;\n fn = OPS.showText;\n break;\n case OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n operatorList.addOp(OPS.nextLine);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = OPS.showText;\n break;\n case OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n operatorList.addOp(OPS.nextLine);\n operatorList.addOp(OPS.setWordSpacing, [args.shift()]);\n operatorList.addOp(OPS.setCharSpacing, [args.shift()]);\n args[0] = self.handleText(args[0], stateManager.state);\n fn = OPS.showText;\n break;\n case OPS.setTextRenderingMode:\n stateManager.state.textRenderingMode = args[0];\n break;\n\n case OPS.setFillColorSpace: {\n const cachedColorSpace = ColorSpace.getCached(\n args[0],\n xref,\n localColorSpaceCache\n );\n if (cachedColorSpace) {\n stateManager.state.fillColorSpace = cachedColorSpace;\n continue;\n }\n\n next(\n self\n .parseColorSpace({\n cs: args[0],\n resources,\n localColorSpaceCache,\n })\n .then(function (colorSpace) {\n if (colorSpace) {\n stateManager.state.fillColorSpace = colorSpace;\n }\n })\n );\n return;\n }\n case OPS.setStrokeColorSpace: {\n const cachedColorSpace = ColorSpace.getCached(\n args[0],\n xref,\n localColorSpaceCache\n );\n if (cachedColorSpace) {\n stateManager.state.strokeColorSpace = cachedColorSpace;\n continue;\n }\n\n next(\n self\n .parseColorSpace({\n cs: args[0],\n resources,\n localColorSpaceCache,\n })\n .then(function (colorSpace) {\n if (colorSpace) {\n stateManager.state.strokeColorSpace = colorSpace;\n }\n })\n );\n return;\n }\n case OPS.setFillColor:\n cs = stateManager.state.fillColorSpace;\n args = cs.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeColor:\n cs = stateManager.state.strokeColorSpace;\n args = cs.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n case OPS.setFillGray:\n stateManager.state.fillColorSpace = ColorSpace.singletons.gray;\n args = ColorSpace.singletons.gray.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeGray:\n stateManager.state.strokeColorSpace = ColorSpace.singletons.gray;\n args = ColorSpace.singletons.gray.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n case OPS.setFillCMYKColor:\n stateManager.state.fillColorSpace = ColorSpace.singletons.cmyk;\n args = ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeCMYKColor:\n stateManager.state.strokeColorSpace = ColorSpace.singletons.cmyk;\n args = ColorSpace.singletons.cmyk.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n case OPS.setFillRGBColor:\n stateManager.state.fillColorSpace = ColorSpace.singletons.rgb;\n args = ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n case OPS.setStrokeRGBColor:\n stateManager.state.strokeColorSpace = ColorSpace.singletons.rgb;\n args = ColorSpace.singletons.rgb.getRgb(args, 0);\n break;\n case OPS.setFillColorN:\n cs = stateManager.state.fillColorSpace;\n if (cs.name === \"Pattern\") {\n next(\n self.handleColorN(\n operatorList,\n OPS.setFillColorN,\n args,\n cs,\n patterns,\n resources,\n task,\n localColorSpaceCache,\n localTilingPatternCache,\n localShadingPatternCache\n )\n );\n return;\n }\n args = cs.getRgb(args, 0);\n fn = OPS.setFillRGBColor;\n break;\n case OPS.setStrokeColorN:\n cs = stateManager.state.strokeColorSpace;\n if (cs.name === \"Pattern\") {\n next(\n self.handleColorN(\n operatorList,\n OPS.setStrokeColorN,\n args,\n cs,\n patterns,\n resources,\n task,\n localColorSpaceCache,\n localTilingPatternCache,\n localShadingPatternCache\n )\n );\n return;\n }\n args = cs.getRgb(args, 0);\n fn = OPS.setStrokeRGBColor;\n break;\n\n case OPS.shadingFill:\n var shadingRes = resources.get(\"Shading\");\n if (!shadingRes) {\n throw new FormatError(\"No shading resource found\");\n }\n\n var shading = shadingRes.get(args[0].name);\n if (!shading) {\n throw new FormatError(\"No shading object found\");\n }\n const patternId = self.parseShading({\n shading,\n resources,\n localColorSpaceCache,\n localShadingPatternCache,\n });\n args = [patternId];\n fn = OPS.shadingFill;\n break;\n case OPS.setGState:\n isValidName = args[0] instanceof Name;\n name = args[0].name;\n\n if (isValidName) {\n const localGStateObj = localGStateCache.getByName(name);\n if (localGStateObj) {\n if (localGStateObj.length > 0) {\n operatorList.addOp(OPS.setGState, [localGStateObj]);\n }\n args = null;\n continue;\n }\n }\n\n next(\n new Promise(function (resolveGState, rejectGState) {\n if (!isValidName) {\n throw new FormatError(\"GState must be referred to by name.\");\n }\n\n const extGState = resources.get(\"ExtGState\");\n if (!(extGState instanceof Dict)) {\n throw new FormatError(\"ExtGState should be a dictionary.\");\n }\n\n const gState = extGState.get(name);\n // TODO: Attempt to lookup cached GStates by reference as well,\n // if and only if there are PDF documents where doing so\n // would significantly improve performance.\n if (!(gState instanceof Dict)) {\n throw new FormatError(\"GState should be a dictionary.\");\n }\n\n self\n .setGState({\n resources,\n gState,\n operatorList,\n cacheKey: name,\n task,\n stateManager,\n localGStateCache,\n localColorSpaceCache,\n })\n .then(resolveGState, rejectGState);\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n warn(`getOperatorList - ignoring ExtGState: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.moveTo:\n case OPS.lineTo:\n case OPS.curveTo:\n case OPS.curveTo2:\n case OPS.curveTo3:\n case OPS.closePath:\n case OPS.rectangle:\n self.buildPath(operatorList, fn, args, parsingText);\n continue;\n case OPS.markPoint:\n case OPS.markPointProps:\n case OPS.beginCompat:\n case OPS.endCompat:\n // Ignore operators where the corresponding handlers are known to\n // be no-op in CanvasGraphics (display/canvas.js). This prevents\n // serialization errors and is also a bit more efficient.\n // We could also try to serialize all objects in a general way,\n // e.g. as done in https://github.com/mozilla/pdf.js/pull/6266,\n // but doing so is meaningless without knowing the semantics.\n continue;\n case OPS.beginMarkedContentProps:\n if (!(args[0] instanceof Name)) {\n warn(`Expected name for beginMarkedContentProps arg0=${args[0]}`);\n continue;\n }\n if (args[0].name === \"OC\") {\n next(\n self\n .parseMarkedContentProps(args[1], resources)\n .then(data => {\n operatorList.addOp(OPS.beginMarkedContentProps, [\n \"OC\",\n data,\n ]);\n })\n .catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n warn(\n `getOperatorList - ignoring beginMarkedContentProps: \"${reason}\".`\n );\n return;\n }\n throw reason;\n })\n );\n return;\n }\n // Other marked content types aren't supported yet.\n args = [\n args[0].name,\n args[1] instanceof Dict ? args[1].get(\"MCID\") : null,\n ];\n\n break;\n case OPS.beginMarkedContent:\n case OPS.endMarkedContent:\n default:\n // Note: Ignore the operator if it has `Dict` arguments, since\n // those are non-serializable, otherwise postMessage will throw\n // \"An object could not be cloned.\".\n if (args !== null) {\n for (i = 0, ii = args.length; i < ii; i++) {\n if (args[i] instanceof Dict) {\n break;\n }\n }\n if (i < ii) {\n warn(\"getOperatorList - ignoring operator: \" + fn);\n continue;\n }\n }\n }\n operatorList.addOp(fn, args);\n }\n if (stop) {\n next(deferred);\n return;\n }\n // Some PDFs don't close all restores inside object/form.\n // Closing those for them.\n closePendingRestoreOPS();\n resolve();\n }).catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (this.options.ignoreErrors) {\n warn(\n `getOperatorList - ignoring errors during \"${task.name}\" ` +\n `task: \"${reason}\".`\n );\n\n closePendingRestoreOPS();\n return;\n }\n throw reason;\n });\n }\n\n getTextContent({\n stream,\n task,\n resources,\n stateManager = null,\n includeMarkedContent = false,\n sink,\n seenStyles = new Set(),\n viewBox,\n markedContentData = null,\n disableNormalization = false,\n }) {\n // Ensure that `resources`/`stateManager` is correctly initialized,\n // even if the provided parameter is e.g. `null`.\n resources ||= Dict.empty;\n stateManager ||= new StateManager(new TextState());\n\n if (includeMarkedContent) {\n markedContentData ||= { level: 0 };\n }\n\n const textContent = {\n items: [],\n styles: Object.create(null),\n };\n const textContentItem = {\n initialized: false,\n str: [],\n totalWidth: 0,\n totalHeight: 0,\n width: 0,\n height: 0,\n vertical: false,\n prevTransform: null,\n textAdvanceScale: 0,\n spaceInFlowMin: 0,\n spaceInFlowMax: 0,\n trackingSpaceMin: Infinity,\n negativeSpaceMax: -Infinity,\n notASpace: -Infinity,\n transform: null,\n fontName: null,\n hasEOL: false,\n };\n\n // Use a circular buffer (length === 2) to save the last chars in the\n // text stream.\n // This implementation of the circular buffer is using a fixed array\n // and the position of the next element:\n // function addElement(x) {\n // buffer[pos] = x;\n // pos = (pos + 1) % buffer.length;\n // }\n // It's a way faster than:\n // function addElement(x) {\n // buffer.push(x);\n // buffer.shift();\n // }\n //\n // It's useful to know when we need to add a whitespace in the\n // text chunk.\n const twoLastChars = [\" \", \" \"];\n let twoLastCharsPos = 0;\n\n /**\n * Save the last char.\n * @param {string} char\n * @returns {boolean} true when the two last chars before adding the new one\n * are a non-whitespace followed by a whitespace.\n */\n function saveLastChar(char) {\n const nextPos = (twoLastCharsPos + 1) % 2;\n const ret =\n twoLastChars[twoLastCharsPos] !== \" \" && twoLastChars[nextPos] === \" \";\n twoLastChars[twoLastCharsPos] = char;\n twoLastCharsPos = nextPos;\n\n return ret;\n }\n\n function shouldAddWhitepsace() {\n return (\n twoLastChars[twoLastCharsPos] !== \" \" &&\n twoLastChars[(twoLastCharsPos + 1) % 2] === \" \"\n );\n }\n\n function resetLastChars() {\n twoLastChars[0] = twoLastChars[1] = \" \";\n twoLastCharsPos = 0;\n }\n\n // Used in addFakeSpaces.\n\n // A white <= fontSize * TRACKING_SPACE_FACTOR is a tracking space\n // so it doesn't count as a space.\n const TRACKING_SPACE_FACTOR = 0.102;\n\n // When a white <= fontSize * NOT_A_SPACE_FACTOR, there is no space\n // even if one is present in the text stream.\n const NOT_A_SPACE_FACTOR = 0.03;\n\n // A negative white < fontSize * NEGATIVE_SPACE_FACTOR induces\n // a break (a new chunk of text is created).\n // It doesn't change anything when the text is copied but\n // it improves potential mismatch between text layer and canvas.\n const NEGATIVE_SPACE_FACTOR = -0.2;\n\n // A white with a width in [fontSize * MIN_FACTOR; fontSize * MAX_FACTOR]\n // is a space which will be inserted in the current flow of words.\n // If the width is outside of this range then the flow is broken\n // (which means a new span in the text layer).\n // It's useful to adjust the best as possible the span in the layer\n // to what is displayed in the canvas.\n const SPACE_IN_FLOW_MIN_FACTOR = 0.102;\n const SPACE_IN_FLOW_MAX_FACTOR = 0.6;\n\n // If a char is too high/too low compared to the previous we just create\n // a new chunk.\n // If the advance isn't in the +/-VERTICAL_SHIFT_RATIO * height range then\n // a new chunk is created.\n const VERTICAL_SHIFT_RATIO = 0.25;\n\n const self = this;\n const xref = this.xref;\n const showSpacedTextBuffer = [];\n\n // The xobj is parsed iff it's needed, e.g. if there is a `DO` cmd.\n let xobjs = null;\n const emptyXObjectCache = new LocalImageCache();\n const emptyGStateCache = new LocalGStateCache();\n\n const preprocessor = new EvaluatorPreprocessor(stream, xref, stateManager);\n\n let textState;\n\n function pushWhitespace({\n width = 0,\n height = 0,\n transform = textContentItem.prevTransform,\n fontName = textContentItem.fontName,\n }) {\n textContent.items.push({\n str: \" \",\n dir: \"ltr\",\n width,\n height,\n transform,\n fontName,\n hasEOL: false,\n });\n }\n\n function getCurrentTextTransform() {\n // 9.4.4 Text Space Details\n const font = textState.font;\n const tsm = [\n textState.fontSize * textState.textHScale,\n 0,\n 0,\n textState.fontSize,\n 0,\n textState.textRise,\n ];\n\n if (\n font.isType3Font &&\n (textState.fontSize <= 1 || font.isCharBBox) &&\n !isArrayEqual(textState.fontMatrix, FONT_IDENTITY_MATRIX)\n ) {\n const glyphHeight = font.bbox[3] - font.bbox[1];\n if (glyphHeight > 0) {\n tsm[3] *= glyphHeight * textState.fontMatrix[3];\n }\n }\n\n return Util.transform(\n textState.ctm,\n Util.transform(textState.textMatrix, tsm)\n );\n }\n\n function ensureTextContentItem() {\n if (textContentItem.initialized) {\n return textContentItem;\n }\n const { font, loadedName } = textState;\n if (!seenStyles.has(loadedName)) {\n seenStyles.add(loadedName);\n textContent.styles[loadedName] = {\n fontFamily: font.fallbackName,\n ascent: font.ascent,\n descent: font.descent,\n vertical: font.vertical,\n };\n if (self.options.fontExtraProperties && font.systemFontInfo) {\n const style = textContent.styles[loadedName];\n style.fontSubstitution = font.systemFontInfo.css;\n style.fontSubstitutionLoadedName = font.systemFontInfo.loadedName;\n }\n }\n textContentItem.fontName = loadedName;\n\n const trm = (textContentItem.transform = getCurrentTextTransform());\n if (!font.vertical) {\n textContentItem.width = textContentItem.totalWidth = 0;\n textContentItem.height = textContentItem.totalHeight = Math.hypot(\n trm[2],\n trm[3]\n );\n textContentItem.vertical = false;\n } else {\n textContentItem.width = textContentItem.totalWidth = Math.hypot(\n trm[0],\n trm[1]\n );\n textContentItem.height = textContentItem.totalHeight = 0;\n textContentItem.vertical = true;\n }\n\n const scaleLineX = Math.hypot(\n textState.textLineMatrix[0],\n textState.textLineMatrix[1]\n );\n const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n textContentItem.textAdvanceScale = scaleCtmX * scaleLineX;\n\n const { fontSize } = textState;\n textContentItem.trackingSpaceMin = fontSize * TRACKING_SPACE_FACTOR;\n textContentItem.notASpace = fontSize * NOT_A_SPACE_FACTOR;\n textContentItem.negativeSpaceMax = fontSize * NEGATIVE_SPACE_FACTOR;\n textContentItem.spaceInFlowMin = fontSize * SPACE_IN_FLOW_MIN_FACTOR;\n textContentItem.spaceInFlowMax = fontSize * SPACE_IN_FLOW_MAX_FACTOR;\n textContentItem.hasEOL = false;\n\n textContentItem.initialized = true;\n return textContentItem;\n }\n\n function updateAdvanceScale() {\n if (!textContentItem.initialized) {\n return;\n }\n\n const scaleLineX = Math.hypot(\n textState.textLineMatrix[0],\n textState.textLineMatrix[1]\n );\n const scaleCtmX = Math.hypot(textState.ctm[0], textState.ctm[1]);\n const scaleFactor = scaleCtmX * scaleLineX;\n if (scaleFactor === textContentItem.textAdvanceScale) {\n return;\n }\n\n if (!textContentItem.vertical) {\n textContentItem.totalWidth +=\n textContentItem.width * textContentItem.textAdvanceScale;\n textContentItem.width = 0;\n } else {\n textContentItem.totalHeight +=\n textContentItem.height * textContentItem.textAdvanceScale;\n textContentItem.height = 0;\n }\n\n textContentItem.textAdvanceScale = scaleFactor;\n }\n\n function runBidiTransform(textChunk) {\n let text = textChunk.str.join(\"\");\n if (!disableNormalization) {\n text = normalizeUnicode(text);\n }\n const bidiResult = bidi(text, -1, textChunk.vertical);\n return {\n str: bidiResult.str,\n dir: bidiResult.dir,\n width: Math.abs(textChunk.totalWidth),\n height: Math.abs(textChunk.totalHeight),\n transform: textChunk.transform,\n fontName: textChunk.fontName,\n hasEOL: textChunk.hasEOL,\n };\n }\n\n function handleSetFont(fontName, fontRef) {\n return self\n .loadFont(fontName, fontRef, resources)\n .then(function (translated) {\n if (!translated.font.isType3Font) {\n return translated;\n }\n return translated\n .loadType3Data(self, resources, task)\n .catch(function () {\n // Ignore Type3-parsing errors, since we only use `loadType3Data`\n // here to ensure that we'll always obtain a useful /FontBBox.\n })\n .then(function () {\n return translated;\n });\n })\n .then(function (translated) {\n textState.loadedName = translated.loadedName;\n textState.font = translated.font;\n textState.fontMatrix =\n translated.font.fontMatrix || FONT_IDENTITY_MATRIX;\n });\n }\n\n function applyInverseRotation(x, y, matrix) {\n const scale = Math.hypot(matrix[0], matrix[1]);\n return [\n (matrix[0] * x + matrix[1] * y) / scale,\n (matrix[2] * x + matrix[3] * y) / scale,\n ];\n }\n\n function compareWithLastPosition(glyphWidth) {\n const currentTransform = getCurrentTextTransform();\n let posX = currentTransform[4];\n let posY = currentTransform[5];\n\n // Check if the glyph is in the viewbox.\n if (textState.font?.vertical) {\n if (\n posX < viewBox[0] ||\n posX > viewBox[2] ||\n posY + glyphWidth < viewBox[1] ||\n posY > viewBox[3]\n ) {\n return false;\n }\n } else if (\n posX + glyphWidth < viewBox[0] ||\n posX > viewBox[2] ||\n posY < viewBox[1] ||\n posY > viewBox[3]\n ) {\n return false;\n }\n\n if (!textState.font || !textContentItem.prevTransform) {\n return true;\n }\n\n let lastPosX = textContentItem.prevTransform[4];\n let lastPosY = textContentItem.prevTransform[5];\n\n if (lastPosX === posX && lastPosY === posY) {\n return true;\n }\n\n let rotate = -1;\n // Take into account the rotation is the current transform.\n if (\n currentTransform[0] &&\n currentTransform[1] === 0 &&\n currentTransform[2] === 0\n ) {\n rotate = currentTransform[0] > 0 ? 0 : 180;\n } else if (\n currentTransform[1] &&\n currentTransform[0] === 0 &&\n currentTransform[3] === 0\n ) {\n rotate = currentTransform[1] > 0 ? 90 : 270;\n }\n\n switch (rotate) {\n case 0:\n break;\n case 90:\n [posX, posY] = [posY, posX];\n [lastPosX, lastPosY] = [lastPosY, lastPosX];\n break;\n case 180:\n [posX, posY, lastPosX, lastPosY] = [\n -posX,\n -posY,\n -lastPosX,\n -lastPosY,\n ];\n break;\n case 270:\n [posX, posY] = [-posY, -posX];\n [lastPosX, lastPosY] = [-lastPosY, -lastPosX];\n break;\n default:\n // This is not a 0, 90, 180, 270 rotation so:\n // - remove the scale factor from the matrix to get a rotation matrix\n // - apply the inverse (which is the transposed) to the positions\n // and we can then compare positions of the glyphes to detect\n // a whitespace.\n [posX, posY] = applyInverseRotation(posX, posY, currentTransform);\n [lastPosX, lastPosY] = applyInverseRotation(\n lastPosX,\n lastPosY,\n textContentItem.prevTransform\n );\n }\n\n if (textState.font.vertical) {\n const advanceY = (lastPosY - posY) / textContentItem.textAdvanceScale;\n const advanceX = posX - lastPosX;\n\n // When the total height of the current chunk is negative\n // then we're writing from bottom to top.\n const textOrientation = Math.sign(textContentItem.height);\n if (advanceY < textOrientation * textContentItem.negativeSpaceMax) {\n if (\n Math.abs(advanceX) >\n 0.5 * textContentItem.width /* not the same column */\n ) {\n appendEOL();\n return true;\n }\n\n resetLastChars();\n flushTextContentItem();\n return true;\n }\n\n if (Math.abs(advanceX) > textContentItem.width) {\n appendEOL();\n return true;\n }\n\n if (advanceY <= textOrientation * textContentItem.notASpace) {\n // The real spacing between 2 consecutive chars is thin enough to be\n // considered a non-space.\n resetLastChars();\n }\n\n if (advanceY <= textOrientation * textContentItem.trackingSpaceMin) {\n if (shouldAddWhitepsace()) {\n // The space is very thin, hence it deserves to have its own span in\n // order to avoid too much shift between the canvas and the text\n // layer.\n resetLastChars();\n flushTextContentItem();\n pushWhitespace({ height: Math.abs(advanceY) });\n } else {\n textContentItem.height += advanceY;\n }\n } else if (\n !addFakeSpaces(\n advanceY,\n textContentItem.prevTransform,\n textOrientation\n )\n ) {\n if (textContentItem.str.length === 0) {\n resetLastChars();\n pushWhitespace({ height: Math.abs(advanceY) });\n } else {\n textContentItem.height += advanceY;\n }\n }\n\n if (Math.abs(advanceX) > textContentItem.width * VERTICAL_SHIFT_RATIO) {\n flushTextContentItem();\n }\n\n return true;\n }\n\n const advanceX = (posX - lastPosX) / textContentItem.textAdvanceScale;\n const advanceY = posY - lastPosY;\n\n // When the total width of the current chunk is negative\n // then we're writing from right to left.\n const textOrientation = Math.sign(textContentItem.width);\n if (advanceX < textOrientation * textContentItem.negativeSpaceMax) {\n if (\n Math.abs(advanceY) >\n 0.5 * textContentItem.height /* not the same line */\n ) {\n appendEOL();\n return true;\n }\n\n // We're moving back so in case the last char was a whitespace\n // we cancel it: it doesn't make sense to insert it.\n resetLastChars();\n flushTextContentItem();\n return true;\n }\n\n if (Math.abs(advanceY) > textContentItem.height) {\n appendEOL();\n return true;\n }\n\n if (advanceX <= textOrientation * textContentItem.notASpace) {\n // The real spacing between 2 consecutive chars is thin enough to be\n // considered a non-space.\n resetLastChars();\n }\n\n if (advanceX <= textOrientation * textContentItem.trackingSpaceMin) {\n if (shouldAddWhitepsace()) {\n // The space is very thin, hence it deserves to have its own span in\n // order to avoid too much shift between the canvas and the text\n // layer.\n resetLastChars();\n flushTextContentItem();\n pushWhitespace({ width: Math.abs(advanceX) });\n } else {\n textContentItem.width += advanceX;\n }\n } else if (\n !addFakeSpaces(advanceX, textContentItem.prevTransform, textOrientation)\n ) {\n if (textContentItem.str.length === 0) {\n resetLastChars();\n pushWhitespace({ width: Math.abs(advanceX) });\n } else {\n textContentItem.width += advanceX;\n }\n }\n\n if (Math.abs(advanceY) > textContentItem.height * VERTICAL_SHIFT_RATIO) {\n flushTextContentItem();\n }\n\n return true;\n }\n\n function buildTextContentItem({ chars, extraSpacing }) {\n const font = textState.font;\n if (!chars) {\n // Just move according to the space we have.\n const charSpacing = textState.charSpacing + extraSpacing;\n if (charSpacing) {\n if (!font.vertical) {\n textState.translateTextMatrix(\n charSpacing * textState.textHScale,\n 0\n );\n } else {\n textState.translateTextMatrix(0, -charSpacing);\n }\n }\n\n return;\n }\n\n const glyphs = font.charsToGlyphs(chars);\n const scale = textState.fontMatrix[0] * textState.fontSize;\n\n for (let i = 0, ii = glyphs.length; i < ii; i++) {\n const glyph = glyphs[i];\n const { category } = glyph;\n\n if (category.isInvisibleFormatMark) {\n continue;\n }\n let charSpacing =\n textState.charSpacing + (i + 1 === ii ? extraSpacing : 0);\n\n let glyphWidth = glyph.width;\n if (font.vertical) {\n glyphWidth = glyph.vmetric ? glyph.vmetric[0] : -glyphWidth;\n }\n let scaledDim = glyphWidth * scale;\n\n if (category.isWhitespace) {\n // Don't push a \" \" in the textContentItem\n // (except when it's between two non-spaces chars),\n // it will be done (if required) in next call to\n // compareWithLastPosition.\n // This way we can merge real spaces and spaces due to cursor moves.\n if (!font.vertical) {\n charSpacing += scaledDim + textState.wordSpacing;\n textState.translateTextMatrix(\n charSpacing * textState.textHScale,\n 0\n );\n } else {\n charSpacing += -scaledDim + textState.wordSpacing;\n textState.translateTextMatrix(0, -charSpacing);\n }\n saveLastChar(\" \");\n continue;\n }\n\n if (\n !category.isZeroWidthDiacritic &&\n !compareWithLastPosition(scaledDim)\n ) {\n // The glyph is not in page so just skip it but move the cursor.\n if (!font.vertical) {\n textState.translateTextMatrix(scaledDim * textState.textHScale, 0);\n } else {\n textState.translateTextMatrix(0, scaledDim);\n }\n continue;\n }\n\n // Must be called after compareWithLastPosition because\n // the textContentItem could have been flushed.\n const textChunk = ensureTextContentItem();\n if (category.isZeroWidthDiacritic) {\n scaledDim = 0;\n }\n\n if (!font.vertical) {\n scaledDim *= textState.textHScale;\n textState.translateTextMatrix(scaledDim, 0);\n textChunk.width += scaledDim;\n } else {\n textState.translateTextMatrix(0, scaledDim);\n scaledDim = Math.abs(scaledDim);\n textChunk.height += scaledDim;\n }\n\n if (scaledDim) {\n // Save the position of the last visible character.\n textChunk.prevTransform = getCurrentTextTransform();\n }\n\n const glyphUnicode = glyph.unicode;\n if (saveLastChar(glyphUnicode)) {\n // The two last chars are a non-whitespace followed by a whitespace\n // and then this non-whitespace, so we insert a whitespace here.\n // Replaces all whitespaces with standard spaces (0x20), to avoid\n // alignment issues between the textLayer and the canvas if the text\n // contains e.g. tabs (fixes issue6612.pdf).\n textChunk.str.push(\" \");\n }\n textChunk.str.push(glyphUnicode);\n\n if (charSpacing) {\n if (!font.vertical) {\n textState.translateTextMatrix(\n charSpacing * textState.textHScale,\n 0\n );\n } else {\n textState.translateTextMatrix(0, -charSpacing);\n }\n }\n }\n }\n\n function appendEOL() {\n resetLastChars();\n if (textContentItem.initialized) {\n textContentItem.hasEOL = true;\n flushTextContentItem();\n } else {\n textContent.items.push({\n str: \"\",\n dir: \"ltr\",\n width: 0,\n height: 0,\n transform: getCurrentTextTransform(),\n fontName: textState.loadedName,\n hasEOL: true,\n });\n }\n }\n\n function addFakeSpaces(width, transf, textOrientation) {\n if (\n textOrientation * textContentItem.spaceInFlowMin <= width &&\n width <= textOrientation * textContentItem.spaceInFlowMax\n ) {\n if (textContentItem.initialized) {\n resetLastChars();\n textContentItem.str.push(\" \");\n }\n return false;\n }\n\n const fontName = textContentItem.fontName;\n\n let height = 0;\n if (textContentItem.vertical) {\n height = width;\n width = 0;\n }\n\n flushTextContentItem();\n resetLastChars();\n pushWhitespace({\n width: Math.abs(width),\n height: Math.abs(height),\n transform: transf || getCurrentTextTransform(),\n fontName,\n });\n\n return true;\n }\n\n function flushTextContentItem() {\n if (!textContentItem.initialized || !textContentItem.str) {\n return;\n }\n\n // Do final text scaling.\n if (!textContentItem.vertical) {\n textContentItem.totalWidth +=\n textContentItem.width * textContentItem.textAdvanceScale;\n } else {\n textContentItem.totalHeight +=\n textContentItem.height * textContentItem.textAdvanceScale;\n }\n\n textContent.items.push(runBidiTransform(textContentItem));\n textContentItem.initialized = false;\n textContentItem.str.length = 0;\n }\n\n function enqueueChunk(batch = false) {\n const length = textContent.items.length;\n if (length === 0) {\n return;\n }\n if (batch && length < TEXT_CHUNK_BATCH_SIZE) {\n return;\n }\n sink.enqueue(textContent, length);\n textContent.items = [];\n textContent.styles = Object.create(null);\n }\n\n const timeSlotManager = new TimeSlotManager();\n\n return new Promise(function promiseBody(resolve, reject) {\n const next = function (promise) {\n enqueueChunk(/* batch = */ true);\n Promise.all([promise, sink.ready]).then(function () {\n try {\n promiseBody(resolve, reject);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n };\n task.ensureNotTerminated();\n timeSlotManager.reset();\n\n const operation = {};\n let stop,\n args = [];\n while (!(stop = timeSlotManager.check())) {\n // The arguments parsed by read() are not used beyond this loop, so\n // we can reuse the same array on every iteration, thus avoiding\n // unnecessary allocations.\n args.length = 0;\n operation.args = args;\n if (!preprocessor.read(operation)) {\n break;\n }\n\n const previousState = textState;\n textState = stateManager.state;\n const fn = operation.fn;\n args = operation.args;\n\n switch (fn | 0) {\n case OPS.setFont:\n // Optimization to ignore multiple identical Tf commands.\n var fontNameArg = args[0].name,\n fontSizeArg = args[1];\n if (\n textState.font &&\n fontNameArg === textState.fontName &&\n fontSizeArg === textState.fontSize\n ) {\n break;\n }\n\n flushTextContentItem();\n textState.fontName = fontNameArg;\n textState.fontSize = fontSizeArg;\n next(handleSetFont(fontNameArg, null));\n return;\n case OPS.setTextRise:\n textState.textRise = args[0];\n break;\n case OPS.setHScale:\n textState.textHScale = args[0] / 100;\n break;\n case OPS.setLeading:\n textState.leading = args[0];\n break;\n case OPS.moveText:\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n case OPS.setLeadingMoveText:\n textState.leading = -args[1];\n textState.translateTextLineMatrix(args[0], args[1]);\n textState.textMatrix = textState.textLineMatrix.slice();\n break;\n case OPS.nextLine:\n textState.carriageReturn();\n break;\n case OPS.setTextMatrix:\n textState.setTextMatrix(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5]\n );\n textState.setTextLineMatrix(\n args[0],\n args[1],\n args[2],\n args[3],\n args[4],\n args[5]\n );\n updateAdvanceScale();\n break;\n case OPS.setCharSpacing:\n textState.charSpacing = args[0];\n break;\n case OPS.setWordSpacing:\n textState.wordSpacing = args[0];\n break;\n case OPS.beginText:\n textState.textMatrix = IDENTITY_MATRIX.slice();\n textState.textLineMatrix = IDENTITY_MATRIX.slice();\n break;\n case OPS.showSpacedText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n\n const spaceFactor =\n ((textState.font.vertical ? 1 : -1) * textState.fontSize) / 1000;\n const elements = args[0];\n for (let i = 0, ii = elements.length; i < ii; i++) {\n const item = elements[i];\n if (typeof item === \"string\") {\n showSpacedTextBuffer.push(item);\n } else if (typeof item === \"number\" && item !== 0) {\n // PDF Specification 5.3.2 states:\n // The number is expressed in thousandths of a unit of text\n // space.\n // This amount is subtracted from the current horizontal or\n // vertical coordinate, depending on the writing mode.\n // In the default coordinate system, a positive adjustment\n // has the effect of moving the next glyph painted either to\n // the left or down by the given amount.\n const str = showSpacedTextBuffer.join(\"\");\n showSpacedTextBuffer.length = 0;\n buildTextContentItem({\n chars: str,\n extraSpacing: item * spaceFactor,\n });\n }\n }\n\n if (showSpacedTextBuffer.length > 0) {\n const str = showSpacedTextBuffer.join(\"\");\n showSpacedTextBuffer.length = 0;\n buildTextContentItem({\n chars: str,\n extraSpacing: 0,\n });\n }\n break;\n case OPS.showText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n buildTextContentItem({\n chars: args[0],\n extraSpacing: 0,\n });\n break;\n case OPS.nextLineShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n textState.carriageReturn();\n buildTextContentItem({\n chars: args[0],\n extraSpacing: 0,\n });\n break;\n case OPS.nextLineSetSpacingShowText:\n if (!stateManager.state.font) {\n self.ensureStateFont(stateManager.state);\n continue;\n }\n textState.wordSpacing = args[0];\n textState.charSpacing = args[1];\n textState.carriageReturn();\n buildTextContentItem({\n chars: args[2],\n extraSpacing: 0,\n });\n break;\n case OPS.paintXObject:\n flushTextContentItem();\n if (!xobjs) {\n xobjs = resources.get(\"XObject\") || Dict.empty;\n }\n\n var isValidName = args[0] instanceof Name;\n var name = args[0].name;\n\n if (isValidName && emptyXObjectCache.getByName(name)) {\n break;\n }\n\n next(\n new Promise(function (resolveXObject, rejectXObject) {\n if (!isValidName) {\n throw new FormatError(\"XObject must be referred to by name.\");\n }\n\n let xobj = xobjs.getRaw(name);\n if (xobj instanceof Ref) {\n if (emptyXObjectCache.getByRef(xobj)) {\n resolveXObject();\n return;\n }\n\n const globalImage = self.globalImageCache.getData(\n xobj,\n self.pageIndex\n );\n if (globalImage) {\n resolveXObject();\n return;\n }\n\n xobj = xref.fetch(xobj);\n }\n\n if (!(xobj instanceof BaseStream)) {\n throw new FormatError(\"XObject should be a stream\");\n }\n\n const type = xobj.dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"XObject should have a Name subtype\");\n }\n\n if (type.name !== \"Form\") {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n\n resolveXObject();\n return;\n }\n\n // Use a new `StateManager` to prevent incorrect positioning\n // of textItems *after* the Form XObject, since errors in the\n // data can otherwise prevent `restore` operators from\n // executing.\n // NOTE: Only an issue when `options.ignoreErrors === true`.\n const currentState = stateManager.state.clone();\n const xObjStateManager = new StateManager(currentState);\n\n const matrix = xobj.dict.getArray(\"Matrix\");\n if (Array.isArray(matrix) && matrix.length === 6) {\n xObjStateManager.transform(matrix);\n }\n\n // Enqueue the `textContent` chunk before parsing the /Form\n // XObject.\n enqueueChunk();\n const sinkWrapper = {\n enqueueInvoked: false,\n\n enqueue(chunk, size) {\n this.enqueueInvoked = true;\n sink.enqueue(chunk, size);\n },\n\n get desiredSize() {\n return sink.desiredSize;\n },\n\n get ready() {\n return sink.ready;\n },\n };\n\n self\n .getTextContent({\n stream: xobj,\n task,\n resources: xobj.dict.get(\"Resources\") || resources,\n stateManager: xObjStateManager,\n includeMarkedContent,\n sink: sinkWrapper,\n seenStyles,\n viewBox,\n markedContentData,\n disableNormalization,\n })\n .then(function () {\n if (!sinkWrapper.enqueueInvoked) {\n emptyXObjectCache.set(name, xobj.dict.objId, true);\n }\n resolveXObject();\n }, rejectXObject);\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the XObject -- allow text-extraction to\n // continue.\n warn(`getTextContent - ignoring XObject: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.setGState:\n isValidName = args[0] instanceof Name;\n name = args[0].name;\n\n if (isValidName && emptyGStateCache.getByName(name)) {\n break;\n }\n\n next(\n new Promise(function (resolveGState, rejectGState) {\n if (!isValidName) {\n throw new FormatError(\"GState must be referred to by name.\");\n }\n\n const extGState = resources.get(\"ExtGState\");\n if (!(extGState instanceof Dict)) {\n throw new FormatError(\"ExtGState should be a dictionary.\");\n }\n\n const gState = extGState.get(name);\n // TODO: Attempt to lookup cached GStates by reference as well,\n // if and only if there are PDF documents where doing so\n // would significantly improve performance.\n if (!(gState instanceof Dict)) {\n throw new FormatError(\"GState should be a dictionary.\");\n }\n\n const gStateFont = gState.get(\"Font\");\n if (!gStateFont) {\n emptyGStateCache.set(name, gState.objId, true);\n\n resolveGState();\n return;\n }\n flushTextContentItem();\n\n textState.fontName = null;\n textState.fontSize = gStateFont[1];\n handleSetFont(null, gStateFont[0]).then(\n resolveGState,\n rejectGState\n );\n }).catch(function (reason) {\n if (reason instanceof AbortException) {\n return;\n }\n if (self.options.ignoreErrors) {\n // Error(s) in the ExtGState -- allow text-extraction to\n // continue.\n warn(`getTextContent - ignoring ExtGState: \"${reason}\".`);\n return;\n }\n throw reason;\n })\n );\n return;\n case OPS.beginMarkedContent:\n flushTextContentItem();\n if (includeMarkedContent) {\n markedContentData.level++;\n\n textContent.items.push({\n type: \"beginMarkedContent\",\n tag: args[0] instanceof Name ? args[0].name : null,\n });\n }\n break;\n case OPS.beginMarkedContentProps:\n flushTextContentItem();\n if (includeMarkedContent) {\n markedContentData.level++;\n\n let mcid = null;\n if (args[1] instanceof Dict) {\n mcid = args[1].get(\"MCID\");\n }\n textContent.items.push({\n type: \"beginMarkedContentProps\",\n id: Number.isInteger(mcid)\n ? `${self.idFactory.getPageObjId()}_mc${mcid}`\n : null,\n tag: args[0] instanceof Name ? args[0].name : null,\n });\n }\n break;\n case OPS.endMarkedContent:\n flushTextContentItem();\n if (includeMarkedContent) {\n if (markedContentData.level === 0) {\n // Handle unbalanced beginMarkedContent/endMarkedContent\n // operators (fixes issue15629.pdf).\n break;\n }\n markedContentData.level--;\n\n textContent.items.push({\n type: \"endMarkedContent\",\n });\n }\n break;\n case OPS.restore:\n if (\n previousState &&\n (previousState.font !== textState.font ||\n previousState.fontSize !== textState.fontSize ||\n previousState.fontName !== textState.fontName)\n ) {\n flushTextContentItem();\n }\n break;\n } // switch\n if (textContent.items.length >= sink.desiredSize) {\n // Wait for ready, if we reach highWaterMark.\n stop = true;\n break;\n }\n } // while\n if (stop) {\n next(deferred);\n return;\n }\n flushTextContentItem();\n enqueueChunk();\n resolve();\n }).catch(reason => {\n if (reason instanceof AbortException) {\n return;\n }\n if (this.options.ignoreErrors) {\n // Error(s) in the TextContent -- allow text-extraction to continue.\n warn(\n `getTextContent - ignoring errors during \"${task.name}\" ` +\n `task: \"${reason}\".`\n );\n\n flushTextContentItem();\n enqueueChunk();\n return;\n }\n throw reason;\n });\n }\n\n extractDataStructures(dict, baseDict, properties) {\n const xref = this.xref;\n let cidToGidBytes;\n // 9.10.2\n const toUnicodePromise = this.readToUnicode(\n properties.toUnicode || dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\")\n );\n\n if (properties.composite) {\n // CIDSystemInfo helps to match CID to glyphs\n const cidSystemInfo = dict.get(\"CIDSystemInfo\");\n if (cidSystemInfo instanceof Dict) {\n properties.cidSystemInfo = {\n registry: stringToPDFString(cidSystemInfo.get(\"Registry\")),\n ordering: stringToPDFString(cidSystemInfo.get(\"Ordering\")),\n supplement: cidSystemInfo.get(\"Supplement\"),\n };\n }\n\n try {\n const cidToGidMap = dict.get(\"CIDToGIDMap\");\n if (cidToGidMap instanceof BaseStream) {\n cidToGidBytes = cidToGidMap.getBytes();\n }\n } catch (ex) {\n if (!this.options.ignoreErrors) {\n throw ex;\n }\n warn(`extractDataStructures - ignoring CIDToGIDMap data: \"${ex}\".`);\n }\n }\n\n // Based on 9.6.6 of the spec the encoding can come from multiple places\n // and depends on the font type. The base encoding and differences are\n // read here, but the encoding that is actually used is chosen during\n // glyph mapping in the font.\n // TODO: Loading the built in encoding in the font would allow the\n // differences to be merged in here not require us to hold on to it.\n const differences = [];\n let baseEncodingName = null;\n let encoding;\n if (dict.has(\"Encoding\")) {\n encoding = dict.get(\"Encoding\");\n if (encoding instanceof Dict) {\n baseEncodingName = encoding.get(\"BaseEncoding\");\n baseEncodingName =\n baseEncodingName instanceof Name ? baseEncodingName.name : null;\n // Load the differences between the base and original\n if (encoding.has(\"Differences\")) {\n const diffEncoding = encoding.get(\"Differences\");\n let index = 0;\n for (const entry of diffEncoding) {\n const data = xref.fetchIfRef(entry);\n if (typeof data === \"number\") {\n index = data;\n } else if (data instanceof Name) {\n differences[index++] = data.name;\n } else {\n throw new FormatError(\n `Invalid entry in 'Differences' array: ${data}`\n );\n }\n }\n }\n } else if (encoding instanceof Name) {\n baseEncodingName = encoding.name;\n } else {\n const msg = \"Encoding is not a Name nor a Dict\";\n\n if (!this.options.ignoreErrors) {\n throw new FormatError(msg);\n }\n warn(msg);\n }\n // According to table 114 if the encoding is a named encoding it must be\n // one of these predefined encodings.\n if (\n baseEncodingName !== \"MacRomanEncoding\" &&\n baseEncodingName !== \"MacExpertEncoding\" &&\n baseEncodingName !== \"WinAnsiEncoding\"\n ) {\n baseEncodingName = null;\n }\n }\n\n const nonEmbeddedFont = !properties.file || properties.isInternalFont,\n isSymbolsFontName = getSymbolsFonts()[properties.name];\n // Ignore an incorrectly specified named encoding for non-embedded\n // symbol fonts (fixes issue16464.pdf).\n if (baseEncodingName && nonEmbeddedFont && isSymbolsFontName) {\n baseEncodingName = null;\n }\n\n if (baseEncodingName) {\n properties.defaultEncoding = getEncoding(baseEncodingName);\n } else {\n const isSymbolicFont = !!(properties.flags & FontFlags.Symbolic);\n const isNonsymbolicFont = !!(properties.flags & FontFlags.Nonsymbolic);\n // According to \"Table 114\" in section \"9.6.6.1 General\" (under\n // \"9.6.6 Character Encoding\") of the PDF specification, a Nonsymbolic\n // font should use the `StandardEncoding` if no encoding is specified.\n encoding = StandardEncoding;\n if (properties.type === \"TrueType\" && !isNonsymbolicFont) {\n encoding = WinAnsiEncoding;\n }\n // The Symbolic attribute can be misused for regular fonts\n // Heuristic: we have to check if the font is a standard one also\n if (isSymbolicFont || isSymbolsFontName) {\n encoding = MacRomanEncoding;\n if (nonEmbeddedFont) {\n if (/Symbol/i.test(properties.name)) {\n encoding = SymbolSetEncoding;\n } else if (/Dingbats/i.test(properties.name)) {\n encoding = ZapfDingbatsEncoding;\n } else if (/Wingdings/i.test(properties.name)) {\n encoding = WinAnsiEncoding;\n }\n }\n }\n properties.defaultEncoding = encoding;\n }\n\n properties.differences = differences;\n properties.baseEncodingName = baseEncodingName;\n properties.hasEncoding = !!baseEncodingName || differences.length > 0;\n properties.dict = dict;\n return toUnicodePromise\n .then(readToUnicode => {\n properties.toUnicode = readToUnicode;\n return this.buildToUnicode(properties);\n })\n .then(builtToUnicode => {\n properties.toUnicode = builtToUnicode;\n if (cidToGidBytes) {\n properties.cidToGidMap = this.readCidToGidMap(\n cidToGidBytes,\n builtToUnicode\n );\n }\n return properties;\n });\n }\n\n /**\n * @returns {Array}\n * @private\n */\n _simpleFontToUnicode(properties, forceGlyphs = false) {\n assert(!properties.composite, \"Must be a simple font.\");\n\n const toUnicode = [];\n const encoding = properties.defaultEncoding.slice();\n const baseEncodingName = properties.baseEncodingName;\n // Merge in the differences array.\n const differences = properties.differences;\n for (const charcode in differences) {\n const glyphName = differences[charcode];\n if (glyphName === \".notdef\") {\n // Skip .notdef to prevent rendering errors, e.g. boxes appearing\n // where there should be spaces (fixes issue5256.pdf).\n continue;\n }\n encoding[charcode] = glyphName;\n }\n const glyphsUnicodeMap = getGlyphsUnicode();\n for (const charcode in encoding) {\n // a) Map the character code to a character name.\n let glyphName = encoding[charcode];\n if (glyphName === \"\") {\n continue;\n }\n // b) Look up the character name in the Adobe Glyph List (see the\n // Bibliography) to obtain the corresponding Unicode value.\n let unicode = glyphsUnicodeMap[glyphName];\n if (unicode !== undefined) {\n toUnicode[charcode] = String.fromCharCode(unicode);\n continue;\n }\n // (undocumented) c) Few heuristics to recognize unknown glyphs\n // NOTE: Adobe Reader does not do this step, but OSX Preview does\n let code = 0;\n switch (glyphName[0]) {\n case \"G\": // Gxx glyph\n if (glyphName.length === 3) {\n code = parseInt(glyphName.substring(1), 16);\n }\n break;\n case \"g\": // g00xx glyph\n if (glyphName.length === 5) {\n code = parseInt(glyphName.substring(1), 16);\n }\n break;\n case \"C\": // Cdd{d} glyph\n case \"c\": // cdd{d} glyph\n if (glyphName.length >= 3 && glyphName.length <= 4) {\n const codeStr = glyphName.substring(1);\n\n if (forceGlyphs) {\n code = parseInt(codeStr, 16);\n break;\n }\n // Normally the Cdd{d}/cdd{d} glyphName format will contain\n // regular, i.e. base 10, charCodes (see issue4550.pdf)...\n code = +codeStr;\n\n // ... however some PDF generators violate that assumption by\n // containing glyph, i.e. base 16, codes instead.\n // In that case we need to re-parse the *entire* encoding to\n // prevent broken text-selection (fixes issue9655_reduced.pdf).\n if (Number.isNaN(code) && Number.isInteger(parseInt(codeStr, 16))) {\n return this._simpleFontToUnicode(\n properties,\n /* forceGlyphs */ true\n );\n }\n }\n break;\n case \"u\": // 'uniXXXX'/'uXXXX{XX}' glyphs\n unicode = getUnicodeForGlyph(glyphName, glyphsUnicodeMap);\n if (unicode !== -1) {\n code = unicode;\n }\n break;\n default:\n // Support (some) non-standard ligatures.\n switch (glyphName) {\n case \"f_h\":\n case \"f_t\":\n case \"T_h\":\n toUnicode[charcode] = glyphName.replaceAll(\"_\", \"\");\n continue;\n }\n break;\n }\n if (code > 0 && code <= 0x10ffff && Number.isInteger(code)) {\n // If `baseEncodingName` is one the predefined encodings, and `code`\n // equals `charcode`, using the glyph defined in the baseEncoding\n // seems to yield a better `toUnicode` mapping (fixes issue 5070).\n if (baseEncodingName && code === +charcode) {\n const baseEncoding = getEncoding(baseEncodingName);\n if (baseEncoding && (glyphName = baseEncoding[charcode])) {\n toUnicode[charcode] = String.fromCharCode(\n glyphsUnicodeMap[glyphName]\n );\n continue;\n }\n }\n toUnicode[charcode] = String.fromCodePoint(code);\n }\n }\n return toUnicode;\n }\n\n /**\n * Builds a char code to unicode map based on section 9.10 of the spec.\n * @param {Object} properties Font properties object.\n * @returns {Promise} A Promise that is resolved with a\n * {ToUnicodeMap|IdentityToUnicodeMap} object.\n */\n async buildToUnicode(properties) {\n properties.hasIncludedToUnicodeMap = properties.toUnicode?.length > 0;\n\n // Section 9.10.2 Mapping Character Codes to Unicode Values\n if (properties.hasIncludedToUnicodeMap) {\n // Some fonts contain incomplete ToUnicode data, causing issues with\n // text-extraction. For simple fonts, containing encoding information,\n // use a fallback ToUnicode map to improve this (fixes issue8229.pdf).\n if (!properties.composite && properties.hasEncoding) {\n properties.fallbackToUnicode = this._simpleFontToUnicode(properties);\n }\n return properties.toUnicode;\n }\n\n // According to the spec if the font is a simple font we should only map\n // to unicode if the base encoding is MacRoman, MacExpert, or WinAnsi or\n // the differences array only contains adobe standard or symbol set names,\n // in pratice it seems better to always try to create a toUnicode map\n // based of the default encoding.\n if (!properties.composite /* is simple font */) {\n return new ToUnicodeMap(this._simpleFontToUnicode(properties));\n }\n\n // If the font is a composite font that uses one of the predefined CMaps\n // listed in Table 118 (except IdentityH and IdentityV) or whose\n // descendant CIDFont uses the Adobe-GB1, Adobe-CNS1, Adobe-Japan1, or\n // Adobe-Korea1 character collection:\n if (\n properties.composite &&\n ((properties.cMap.builtInCMap &&\n !(properties.cMap instanceof IdentityCMap)) ||\n (properties.cidSystemInfo.registry === \"Adobe\" &&\n (properties.cidSystemInfo.ordering === \"GB1\" ||\n properties.cidSystemInfo.ordering === \"CNS1\" ||\n properties.cidSystemInfo.ordering === \"Japan1\" ||\n properties.cidSystemInfo.ordering === \"Korea1\")))\n ) {\n // Then:\n // a) Map the character code to a character identifier (CID) according\n // to the fonts CMap.\n // b) Obtain the registry and ordering of the character collection used\n // by the fonts CMap (for example, Adobe and Japan1) from its\n // CIDSystemInfo dictionary.\n const { registry, ordering } = properties.cidSystemInfo;\n // c) Construct a second CMap name by concatenating the registry and\n // ordering obtained in step (b) in the format registryorderingUCS2\n // (for example, AdobeJapan1UCS2).\n const ucs2CMapName = Name.get(`${registry}-${ordering}-UCS2`);\n // d) Obtain the CMap with the name constructed in step (c) (available\n // from the ASN Web site; see the Bibliography).\n const ucs2CMap = await CMapFactory.create({\n encoding: ucs2CMapName,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n });\n const toUnicode = [],\n buf = [];\n properties.cMap.forEach(function (charcode, cid) {\n if (cid > 0xffff) {\n throw new FormatError(\"Max size of CID is 65,535\");\n }\n // e) Map the CID obtained in step (a) according to the CMap\n // obtained in step (d), producing a Unicode value.\n const ucs2 = ucs2CMap.lookup(cid);\n if (ucs2) {\n buf.length = 0;\n // Support multi-byte entries (fixes issue16176.pdf).\n for (let i = 0, ii = ucs2.length; i < ii; i += 2) {\n buf.push((ucs2.charCodeAt(i) << 8) + ucs2.charCodeAt(i + 1));\n }\n toUnicode[charcode] = String.fromCharCode(...buf);\n }\n });\n return new ToUnicodeMap(toUnicode);\n }\n\n // The viewer's choice, just use an identity map.\n return new IdentityToUnicodeMap(properties.firstChar, properties.lastChar);\n }\n\n readToUnicode(cmapObj) {\n if (!cmapObj) {\n return Promise.resolve(null);\n }\n if (cmapObj instanceof Name) {\n return CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n }).then(function (cmap) {\n if (cmap instanceof IdentityCMap) {\n return new IdentityToUnicodeMap(0, 0xffff);\n }\n return new ToUnicodeMap(cmap.getMap());\n });\n } else if (cmapObj instanceof BaseStream) {\n return CMapFactory.create({\n encoding: cmapObj,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n }).then(\n function (cmap) {\n if (cmap instanceof IdentityCMap) {\n return new IdentityToUnicodeMap(0, 0xffff);\n }\n const map = new Array(cmap.length);\n // Convert UTF-16BE\n // NOTE: cmap can be a sparse array, so use forEach instead of\n // `for(;;)` to iterate over all keys.\n cmap.forEach(function (charCode, token) {\n // Some cmaps contain *only* CID characters (fixes issue9367.pdf).\n if (typeof token === \"number\") {\n map[charCode] = String.fromCodePoint(token);\n return;\n }\n const str = [];\n for (let k = 0; k < token.length; k += 2) {\n const w1 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n if ((w1 & 0xf800) !== 0xd800) {\n // w1 < 0xD800 || w1 > 0xDFFF\n str.push(w1);\n continue;\n }\n k += 2;\n const w2 = (token.charCodeAt(k) << 8) | token.charCodeAt(k + 1);\n str.push(((w1 & 0x3ff) << 10) + (w2 & 0x3ff) + 0x10000);\n }\n map[charCode] = String.fromCodePoint(...str);\n });\n return new ToUnicodeMap(map);\n },\n reason => {\n if (reason instanceof AbortException) {\n return null;\n }\n if (this.options.ignoreErrors) {\n warn(`readToUnicode - ignoring ToUnicode data: \"${reason}\".`);\n return null;\n }\n throw reason;\n }\n );\n }\n return Promise.resolve(null);\n }\n\n readCidToGidMap(glyphsData, toUnicode) {\n // Extract the encoding from the CIDToGIDMap\n\n // Set encoding 0 to later verify the font has an encoding\n const result = [];\n for (let j = 0, jj = glyphsData.length; j < jj; j++) {\n const glyphID = (glyphsData[j++] << 8) | glyphsData[j];\n const code = j >> 1;\n if (glyphID === 0 && !toUnicode.has(code)) {\n continue;\n }\n result[code] = glyphID;\n }\n return result;\n }\n\n extractWidths(dict, descriptor, properties) {\n const xref = this.xref;\n let glyphsWidths = [];\n let defaultWidth = 0;\n const glyphsVMetrics = [];\n let defaultVMetrics;\n let i, ii, j, jj, start, code, widths;\n if (properties.composite) {\n defaultWidth = dict.has(\"DW\") ? dict.get(\"DW\") : 1000;\n\n widths = dict.get(\"W\");\n if (widths) {\n for (i = 0, ii = widths.length; i < ii; i++) {\n start = xref.fetchIfRef(widths[i++]);\n code = xref.fetchIfRef(widths[i]);\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsWidths[start++] = xref.fetchIfRef(code[j]);\n }\n } else {\n const width = xref.fetchIfRef(widths[++i]);\n for (j = start; j <= code; j++) {\n glyphsWidths[j] = width;\n }\n }\n }\n }\n\n if (properties.vertical) {\n let vmetrics = dict.getArray(\"DW2\") || [880, -1000];\n defaultVMetrics = [vmetrics[1], defaultWidth * 0.5, vmetrics[0]];\n vmetrics = dict.get(\"W2\");\n if (vmetrics) {\n for (i = 0, ii = vmetrics.length; i < ii; i++) {\n start = xref.fetchIfRef(vmetrics[i++]);\n code = xref.fetchIfRef(vmetrics[i]);\n if (Array.isArray(code)) {\n for (j = 0, jj = code.length; j < jj; j++) {\n glyphsVMetrics[start++] = [\n xref.fetchIfRef(code[j++]),\n xref.fetchIfRef(code[j++]),\n xref.fetchIfRef(code[j]),\n ];\n }\n } else {\n const vmetric = [\n xref.fetchIfRef(vmetrics[++i]),\n xref.fetchIfRef(vmetrics[++i]),\n xref.fetchIfRef(vmetrics[++i]),\n ];\n for (j = start; j <= code; j++) {\n glyphsVMetrics[j] = vmetric;\n }\n }\n }\n }\n }\n } else {\n const firstChar = properties.firstChar;\n widths = dict.get(\"Widths\");\n if (widths) {\n j = firstChar;\n for (i = 0, ii = widths.length; i < ii; i++) {\n glyphsWidths[j++] = xref.fetchIfRef(widths[i]);\n }\n defaultWidth = parseFloat(descriptor.get(\"MissingWidth\")) || 0;\n } else {\n // Trying get the BaseFont metrics (see comment above).\n const baseFontName = dict.get(\"BaseFont\");\n if (baseFontName instanceof Name) {\n const metrics = this.getBaseFontMetrics(baseFontName.name);\n\n glyphsWidths = this.buildCharCodeToWidth(metrics.widths, properties);\n defaultWidth = metrics.defaultWidth;\n }\n }\n }\n\n // Heuristic: detection of monospace font by checking all non-zero widths\n let isMonospace = true;\n let firstWidth = defaultWidth;\n for (const glyph in glyphsWidths) {\n const glyphWidth = glyphsWidths[glyph];\n if (!glyphWidth) {\n continue;\n }\n if (!firstWidth) {\n firstWidth = glyphWidth;\n continue;\n }\n if (firstWidth !== glyphWidth) {\n isMonospace = false;\n break;\n }\n }\n if (isMonospace) {\n properties.flags |= FontFlags.FixedPitch;\n } else {\n // Clear the flag.\n properties.flags &= ~FontFlags.FixedPitch;\n }\n\n properties.defaultWidth = defaultWidth;\n properties.widths = glyphsWidths;\n properties.defaultVMetrics = defaultVMetrics;\n properties.vmetrics = glyphsVMetrics;\n }\n\n isSerifFont(baseFontName) {\n // Simulating descriptor flags attribute\n const fontNameWoStyle = baseFontName.split(\"-\")[0];\n return (\n fontNameWoStyle in getSerifFonts() || /serif/gi.test(fontNameWoStyle)\n );\n }\n\n getBaseFontMetrics(name) {\n let defaultWidth = 0;\n let widths = Object.create(null);\n let monospace = false;\n const stdFontMap = getStdFontMap();\n let lookupName = stdFontMap[name] || name;\n const Metrics = getMetrics();\n\n if (!(lookupName in Metrics)) {\n // Use default fonts for looking up font metrics if the passed\n // font is not a base font\n lookupName = this.isSerifFont(name) ? \"Times-Roman\" : \"Helvetica\";\n }\n const glyphWidths = Metrics[lookupName];\n\n if (typeof glyphWidths === \"number\") {\n defaultWidth = glyphWidths;\n monospace = true;\n } else {\n widths = glyphWidths(); // expand lazy widths array\n }\n\n return {\n defaultWidth,\n monospace,\n widths,\n };\n }\n\n buildCharCodeToWidth(widthsByGlyphName, properties) {\n const widths = Object.create(null);\n const differences = properties.differences;\n const encoding = properties.defaultEncoding;\n for (let charCode = 0; charCode < 256; charCode++) {\n if (charCode in differences && widthsByGlyphName[differences[charCode]]) {\n widths[charCode] = widthsByGlyphName[differences[charCode]];\n continue;\n }\n if (charCode in encoding && widthsByGlyphName[encoding[charCode]]) {\n widths[charCode] = widthsByGlyphName[encoding[charCode]];\n continue;\n }\n }\n return widths;\n }\n\n preEvaluateFont(dict) {\n const baseDict = dict;\n let type = dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"invalid font Subtype\");\n }\n\n let composite = false;\n let hash, toUnicode;\n if (type.name === \"Type0\") {\n // If font is a composite\n // - get the descendant font\n // - set the type according to the descendant font\n // - get the FontDescriptor from the descendant font\n const df = dict.get(\"DescendantFonts\");\n if (!df) {\n throw new FormatError(\"Descendant fonts are not specified\");\n }\n dict = Array.isArray(df) ? this.xref.fetchIfRef(df[0]) : df;\n\n if (!(dict instanceof Dict)) {\n throw new FormatError(\"Descendant font is not a dictionary.\");\n }\n type = dict.get(\"Subtype\");\n if (!(type instanceof Name)) {\n throw new FormatError(\"invalid font Subtype\");\n }\n composite = true;\n }\n\n const firstChar = dict.get(\"FirstChar\") || 0,\n lastChar = dict.get(\"LastChar\") || (composite ? 0xffff : 0xff);\n const descriptor = dict.get(\"FontDescriptor\");\n if (descriptor) {\n hash = new MurmurHash3_64();\n\n const encoding = baseDict.getRaw(\"Encoding\");\n if (encoding instanceof Name) {\n hash.update(encoding.name);\n } else if (encoding instanceof Ref) {\n hash.update(encoding.toString());\n } else if (encoding instanceof Dict) {\n for (const entry of encoding.getRawValues()) {\n if (entry instanceof Name) {\n hash.update(entry.name);\n } else if (entry instanceof Ref) {\n hash.update(entry.toString());\n } else if (Array.isArray(entry)) {\n // 'Differences' array (fixes bug1157493.pdf).\n const diffLength = entry.length,\n diffBuf = new Array(diffLength);\n\n for (let j = 0; j < diffLength; j++) {\n const diffEntry = entry[j];\n if (diffEntry instanceof Name) {\n diffBuf[j] = diffEntry.name;\n } else if (\n typeof diffEntry === \"number\" ||\n diffEntry instanceof Ref\n ) {\n diffBuf[j] = diffEntry.toString();\n }\n }\n hash.update(diffBuf.join());\n }\n }\n }\n\n hash.update(`${firstChar}-${lastChar}`); // Fixes issue10665_reduced.pdf\n\n toUnicode = dict.get(\"ToUnicode\") || baseDict.get(\"ToUnicode\");\n if (toUnicode instanceof BaseStream) {\n const stream = toUnicode.str || toUnicode;\n const uint8array = stream.buffer\n ? new Uint8Array(stream.buffer.buffer, 0, stream.bufferLength)\n : new Uint8Array(\n stream.bytes.buffer,\n stream.start,\n stream.end - stream.start\n );\n hash.update(uint8array);\n } else if (toUnicode instanceof Name) {\n hash.update(toUnicode.name);\n }\n\n const widths = dict.get(\"Widths\") || baseDict.get(\"Widths\");\n if (Array.isArray(widths)) {\n const widthsBuf = [];\n for (const entry of widths) {\n if (typeof entry === \"number\" || entry instanceof Ref) {\n widthsBuf.push(entry.toString());\n }\n }\n hash.update(widthsBuf.join());\n }\n\n if (composite) {\n hash.update(\"compositeFont\");\n\n const compositeWidths = dict.get(\"W\") || baseDict.get(\"W\");\n if (Array.isArray(compositeWidths)) {\n const widthsBuf = [];\n for (const entry of compositeWidths) {\n if (typeof entry === \"number\" || entry instanceof Ref) {\n widthsBuf.push(entry.toString());\n } else if (Array.isArray(entry)) {\n const subWidthsBuf = [];\n for (const element of entry) {\n if (typeof element === \"number\" || element instanceof Ref) {\n subWidthsBuf.push(element.toString());\n }\n }\n widthsBuf.push(`[${subWidthsBuf.join()}]`);\n }\n }\n hash.update(widthsBuf.join());\n }\n\n const cidToGidMap =\n dict.getRaw(\"CIDToGIDMap\") || baseDict.getRaw(\"CIDToGIDMap\");\n if (cidToGidMap instanceof Name) {\n hash.update(cidToGidMap.name);\n } else if (cidToGidMap instanceof Ref) {\n hash.update(cidToGidMap.toString());\n } else if (cidToGidMap instanceof BaseStream) {\n hash.update(cidToGidMap.peekBytes());\n }\n }\n }\n\n return {\n descriptor,\n dict,\n baseDict,\n composite,\n type: type.name,\n firstChar,\n lastChar,\n toUnicode,\n hash: hash ? hash.hexdigest() : \"\",\n };\n }\n\n async translateFont({\n descriptor,\n dict,\n baseDict,\n composite,\n type,\n firstChar,\n lastChar,\n toUnicode,\n cssFontInfo,\n }) {\n const isType3Font = type === \"Type3\";\n let properties;\n\n if (!descriptor) {\n if (isType3Font) {\n // FontDescriptor is only required for Type3 fonts when the document\n // is a tagged pdf. Create a barbebones one to get by.\n descriptor = new Dict(null);\n descriptor.set(\"FontName\", Name.get(type));\n descriptor.set(\"FontBBox\", dict.getArray(\"FontBBox\") || [0, 0, 0, 0]);\n } else {\n // Before PDF 1.5 if the font was one of the base 14 fonts, having a\n // FontDescriptor was not required.\n // This case is here for compatibility.\n let baseFontName = dict.get(\"BaseFont\");\n if (!(baseFontName instanceof Name)) {\n throw new FormatError(\"Base font is not specified\");\n }\n\n // Using base font name as a font name.\n baseFontName = baseFontName.name.replaceAll(/[,_]/g, \"-\");\n const metrics = this.getBaseFontMetrics(baseFontName);\n\n // Simulating descriptor flags attribute\n const fontNameWoStyle = baseFontName.split(\"-\")[0];\n const flags =\n (this.isSerifFont(fontNameWoStyle) ? FontFlags.Serif : 0) |\n (metrics.monospace ? FontFlags.FixedPitch : 0) |\n (getSymbolsFonts()[fontNameWoStyle]\n ? FontFlags.Symbolic\n : FontFlags.Nonsymbolic);\n\n properties = {\n type,\n name: baseFontName,\n loadedName: baseDict.loadedName,\n systemFontInfo: null,\n widths: metrics.widths,\n defaultWidth: metrics.defaultWidth,\n isSimulatedFlags: true,\n flags,\n firstChar,\n lastChar,\n toUnicode,\n xHeight: 0,\n capHeight: 0,\n italicAngle: 0,\n isType3Font,\n };\n const widths = dict.get(\"Widths\");\n\n const standardFontName = getStandardFontName(baseFontName);\n let file = null;\n if (standardFontName) {\n file = await this.fetchStandardFontData(standardFontName);\n properties.isInternalFont = !!file;\n }\n if (!properties.isInternalFont && this.options.useSystemFonts) {\n properties.systemFontInfo = getFontSubstitution(\n this.systemFontCache,\n this.idFactory,\n this.options.standardFontDataUrl,\n baseFontName,\n standardFontName\n );\n }\n return this.extractDataStructures(dict, dict, properties).then(\n newProperties => {\n if (widths) {\n const glyphWidths = [];\n let j = firstChar;\n for (const width of widths) {\n glyphWidths[j++] = this.xref.fetchIfRef(width);\n }\n newProperties.widths = glyphWidths;\n } else {\n newProperties.widths = this.buildCharCodeToWidth(\n metrics.widths,\n newProperties\n );\n }\n return new Font(baseFontName, file, newProperties);\n }\n );\n }\n }\n\n // According to the spec if 'FontDescriptor' is declared, 'FirstChar',\n // 'LastChar' and 'Widths' should exist too, but some PDF encoders seem\n // to ignore this rule when a variant of a standard font is used.\n // TODO Fill the width array depending on which of the base font this is\n // a variant.\n\n let fontName = descriptor.get(\"FontName\");\n let baseFont = dict.get(\"BaseFont\");\n // Some bad PDFs have a string as the font name.\n if (typeof fontName === \"string\") {\n fontName = Name.get(fontName);\n }\n if (typeof baseFont === \"string\") {\n baseFont = Name.get(baseFont);\n }\n\n const fontNameStr = fontName?.name;\n const baseFontStr = baseFont?.name;\n if (!isType3Font && fontNameStr !== baseFontStr) {\n info(\n `The FontDescriptor's FontName is \"${fontNameStr}\" but ` +\n `should be the same as the Font's BaseFont \"${baseFontStr}\".`\n );\n // - Workaround for cases where e.g. fontNameStr = 'Arial' and\n // baseFontStr = 'Arial,Bold' (needed when no font file is embedded).\n //\n // - Workaround for cases where e.g. fontNameStr = 'wg09np' and\n // baseFontStr = 'Wingdings-Regular' (fixes issue7454.pdf).\n if (\n fontNameStr &&\n baseFontStr &&\n (baseFontStr.startsWith(fontNameStr) ||\n (!isKnownFontName(fontNameStr) && isKnownFontName(baseFontStr)))\n ) {\n fontName = null;\n }\n }\n fontName ||= baseFont;\n\n if (!(fontName instanceof Name)) {\n throw new FormatError(\"invalid font name\");\n }\n\n let fontFile, subtype, length1, length2, length3;\n try {\n fontFile = descriptor.get(\"FontFile\", \"FontFile2\", \"FontFile3\");\n } catch (ex) {\n if (!this.options.ignoreErrors) {\n throw ex;\n }\n warn(`translateFont - fetching \"${fontName.name}\" font file: \"${ex}\".`);\n fontFile = new NullStream();\n }\n let isInternalFont = false;\n let glyphScaleFactors = null;\n let systemFontInfo = null;\n if (fontFile) {\n if (fontFile.dict) {\n const subtypeEntry = fontFile.dict.get(\"Subtype\");\n if (subtypeEntry instanceof Name) {\n subtype = subtypeEntry.name;\n }\n length1 = fontFile.dict.get(\"Length1\");\n length2 = fontFile.dict.get(\"Length2\");\n length3 = fontFile.dict.get(\"Length3\");\n }\n } else if (cssFontInfo) {\n // We've a missing XFA font.\n const standardFontName = getXfaFontName(fontName.name);\n if (standardFontName) {\n cssFontInfo.fontFamily = `${cssFontInfo.fontFamily}-PdfJS-XFA`;\n cssFontInfo.metrics = standardFontName.metrics || null;\n glyphScaleFactors = standardFontName.factors || null;\n fontFile = await this.fetchStandardFontData(standardFontName.name);\n isInternalFont = !!fontFile;\n\n // We're using a substitution font but for example widths (if any)\n // are related to the glyph positions in the font.\n // So we overwrite everything here to be sure that widths are\n // correct.\n baseDict = dict = getXfaFontDict(fontName.name);\n composite = true;\n }\n } else if (!isType3Font) {\n const standardFontName = getStandardFontName(fontName.name);\n if (standardFontName) {\n fontFile = await this.fetchStandardFontData(standardFontName);\n isInternalFont = !!fontFile;\n }\n if (!isInternalFont && this.options.useSystemFonts) {\n systemFontInfo = getFontSubstitution(\n this.systemFontCache,\n this.idFactory,\n this.options.standardFontDataUrl,\n fontName.name,\n standardFontName\n );\n }\n }\n\n properties = {\n type,\n name: fontName.name,\n subtype,\n file: fontFile,\n length1,\n length2,\n length3,\n isInternalFont,\n loadedName: baseDict.loadedName,\n composite,\n fixedPitch: false,\n fontMatrix: dict.getArray(\"FontMatrix\") || FONT_IDENTITY_MATRIX,\n firstChar,\n lastChar,\n toUnicode,\n bbox: descriptor.getArray(\"FontBBox\") || dict.getArray(\"FontBBox\"),\n ascent: descriptor.get(\"Ascent\"),\n descent: descriptor.get(\"Descent\"),\n xHeight: descriptor.get(\"XHeight\") || 0,\n capHeight: descriptor.get(\"CapHeight\") || 0,\n flags: descriptor.get(\"Flags\"),\n italicAngle: descriptor.get(\"ItalicAngle\") || 0,\n isType3Font,\n cssFontInfo,\n scaleFactors: glyphScaleFactors,\n systemFontInfo,\n };\n\n if (composite) {\n const cidEncoding = baseDict.get(\"Encoding\");\n if (cidEncoding instanceof Name) {\n properties.cidEncoding = cidEncoding.name;\n }\n const cMap = await CMapFactory.create({\n encoding: cidEncoding,\n fetchBuiltInCMap: this._fetchBuiltInCMapBound,\n useCMap: null,\n });\n properties.cMap = cMap;\n properties.vertical = properties.cMap.vertical;\n }\n\n return this.extractDataStructures(dict, baseDict, properties).then(\n newProperties => {\n this.extractWidths(dict, descriptor, newProperties);\n\n return new Font(fontName.name, fontFile, newProperties);\n }\n );\n }\n\n static buildFontPaths(font, glyphs, handler, evaluatorOptions) {\n function buildPath(fontChar) {\n const glyphName = `${font.loadedName}_path_${fontChar}`;\n try {\n if (font.renderer.hasBuiltPath(fontChar)) {\n return;\n }\n handler.send(\"commonobj\", [\n glyphName,\n \"FontPath\",\n font.renderer.getPathJs(fontChar),\n ]);\n } catch (reason) {\n if (evaluatorOptions.ignoreErrors) {\n warn(`buildFontPaths - ignoring ${glyphName} glyph: \"${reason}\".`);\n return;\n }\n throw reason;\n }\n }\n\n for (const glyph of glyphs) {\n buildPath(glyph.fontChar);\n\n // If the glyph has an accent we need to build a path for its\n // fontChar too, otherwise CanvasGraphics_paintChar will fail.\n const accent = glyph.accent;\n if (accent?.fontChar) {\n buildPath(accent.fontChar);\n }\n }\n }\n\n static get fallbackFontDict() {\n const dict = new Dict();\n dict.set(\"BaseFont\", Name.get(\"Helvetica\"));\n dict.set(\"Type\", Name.get(\"FallbackType\"));\n dict.set(\"Subtype\", Name.get(\"FallbackType\"));\n dict.set(\"Encoding\", Name.get(\"WinAnsiEncoding\"));\n\n return shadow(this, \"fallbackFontDict\", dict);\n }\n}\n\nclass TranslatedFont {\n constructor({ loadedName, font, dict, evaluatorOptions }) {\n this.loadedName = loadedName;\n this.font = font;\n this.dict = dict;\n this._evaluatorOptions = evaluatorOptions || DefaultPartialEvaluatorOptions;\n this.type3Loaded = null;\n this.type3Dependencies = font.isType3Font ? new Set() : null;\n this.sent = false;\n }\n\n send(handler) {\n if (this.sent) {\n return;\n }\n this.sent = true;\n\n handler.send(\"commonobj\", [\n this.loadedName,\n \"Font\",\n this.font.exportData(this._evaluatorOptions.fontExtraProperties),\n ]);\n }\n\n fallback(handler) {\n if (!this.font.data) {\n return;\n }\n // When font loading failed, fall back to the built-in font renderer.\n this.font.disableFontFace = true;\n // An arbitrary number of text rendering operators could have been\n // encountered between the point in time when the 'Font' message was sent\n // to the main-thread, and the point in time when the 'FontFallback'\n // message was received on the worker-thread.\n // To ensure that all 'FontPath's are available on the main-thread, when\n // font loading failed, attempt to resend *all* previously parsed glyphs.\n PartialEvaluator.buildFontPaths(\n this.font,\n /* glyphs = */ this.font.glyphCacheValues,\n handler,\n this._evaluatorOptions\n );\n }\n\n loadType3Data(evaluator, resources, task) {\n if (this.type3Loaded) {\n return this.type3Loaded;\n }\n if (!this.font.isType3Font) {\n throw new Error(\"Must be a Type3 font.\");\n }\n // When parsing Type3 glyphs, always ignore them if there are errors.\n // Compared to the parsing of e.g. an entire page, it doesn't really\n // make sense to only be able to render a Type3 glyph partially.\n const type3Evaluator = evaluator.clone({ ignoreErrors: false });\n type3Evaluator.parsingType3Font = true;\n // Prevent circular references in Type3 fonts.\n const type3FontRefs = new RefSet(evaluator.type3FontRefs);\n if (this.dict.objId && !type3FontRefs.has(this.dict.objId)) {\n type3FontRefs.put(this.dict.objId);\n }\n type3Evaluator.type3FontRefs = type3FontRefs;\n\n const translatedFont = this.font,\n type3Dependencies = this.type3Dependencies;\n let loadCharProcsPromise = Promise.resolve();\n const charProcs = this.dict.get(\"CharProcs\");\n const fontResources = this.dict.get(\"Resources\") || resources;\n const charProcOperatorList = Object.create(null);\n\n const fontBBox = Util.normalizeRect(translatedFont.bbox || [0, 0, 0, 0]),\n width = fontBBox[2] - fontBBox[0],\n height = fontBBox[3] - fontBBox[1];\n const fontBBoxSize = Math.hypot(width, height);\n\n for (const key of charProcs.getKeys()) {\n loadCharProcsPromise = loadCharProcsPromise.then(() => {\n const glyphStream = charProcs.get(key);\n const operatorList = new OperatorList();\n return type3Evaluator\n .getOperatorList({\n stream: glyphStream,\n task,\n resources: fontResources,\n operatorList,\n })\n .then(() => {\n // According to the PDF specification, section \"9.6.5 Type 3 Fonts\"\n // and \"Table 113\":\n // \"A glyph description that begins with the d1 operator should\n // not execute any operators that set the colour (or other\n // colour-related parameters) in the graphics state;\n // any use of such operators shall be ignored.\"\n if (operatorList.fnArray[0] === OPS.setCharWidthAndBounds) {\n this._removeType3ColorOperators(operatorList, fontBBoxSize);\n }\n charProcOperatorList[key] = operatorList.getIR();\n\n for (const dependency of operatorList.dependencies) {\n type3Dependencies.add(dependency);\n }\n })\n .catch(function (reason) {\n warn(`Type3 font resource \"${key}\" is not available.`);\n const dummyOperatorList = new OperatorList();\n charProcOperatorList[key] = dummyOperatorList.getIR();\n });\n });\n }\n this.type3Loaded = loadCharProcsPromise.then(() => {\n translatedFont.charProcOperatorList = charProcOperatorList;\n if (this._bbox) {\n translatedFont.isCharBBox = true;\n translatedFont.bbox = this._bbox;\n }\n });\n return this.type3Loaded;\n }\n\n /**\n * @private\n */\n _removeType3ColorOperators(operatorList, fontBBoxSize = NaN) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n operatorList.fnArray[0] === OPS.setCharWidthAndBounds,\n \"Type3 glyph shall start with the d1 operator.\"\n );\n }\n const charBBox = Util.normalizeRect(operatorList.argsArray[0].slice(2)),\n width = charBBox[2] - charBBox[0],\n height = charBBox[3] - charBBox[1];\n const charBBoxSize = Math.hypot(width, height);\n\n if (width === 0 || height === 0) {\n // Skip the d1 operator when its bounds are bogus (fixes issue14953.pdf).\n operatorList.fnArray.splice(0, 1);\n operatorList.argsArray.splice(0, 1);\n } else if (\n fontBBoxSize === 0 ||\n Math.round(charBBoxSize / fontBBoxSize) >= 10\n ) {\n // Override the fontBBox when it's undefined/empty, or when it's at least\n // (approximately) one order of magnitude smaller than the charBBox\n // (fixes issue14999_reduced.pdf).\n if (!this._bbox) {\n this._bbox = [Infinity, Infinity, -Infinity, -Infinity];\n }\n this._bbox[0] = Math.min(this._bbox[0], charBBox[0]);\n this._bbox[1] = Math.min(this._bbox[1], charBBox[1]);\n this._bbox[2] = Math.max(this._bbox[2], charBBox[2]);\n this._bbox[3] = Math.max(this._bbox[3], charBBox[3]);\n }\n\n let i = 0,\n ii = operatorList.length;\n while (i < ii) {\n switch (operatorList.fnArray[i]) {\n case OPS.setCharWidthAndBounds:\n break; // Handled above.\n case OPS.setStrokeColorSpace:\n case OPS.setFillColorSpace:\n case OPS.setStrokeColor:\n case OPS.setStrokeColorN:\n case OPS.setFillColor:\n case OPS.setFillColorN:\n case OPS.setStrokeGray:\n case OPS.setFillGray:\n case OPS.setStrokeRGBColor:\n case OPS.setFillRGBColor:\n case OPS.setStrokeCMYKColor:\n case OPS.setFillCMYKColor:\n case OPS.shadingFill:\n case OPS.setRenderingIntent:\n operatorList.fnArray.splice(i, 1);\n operatorList.argsArray.splice(i, 1);\n ii--;\n continue;\n\n case OPS.setGState:\n const [gStateObj] = operatorList.argsArray[i];\n let j = 0,\n jj = gStateObj.length;\n while (j < jj) {\n const [gStateKey] = gStateObj[j];\n switch (gStateKey) {\n case \"TR\":\n case \"TR2\":\n case \"HT\":\n case \"BG\":\n case \"BG2\":\n case \"UCR\":\n case \"UCR2\":\n gStateObj.splice(j, 1);\n jj--;\n continue;\n }\n j++;\n }\n break;\n }\n i++;\n }\n }\n}\n\nclass StateManager {\n constructor(initialState = new EvalState()) {\n this.state = initialState;\n this.stateStack = [];\n }\n\n save() {\n const old = this.state;\n this.stateStack.push(this.state);\n this.state = old.clone();\n }\n\n restore() {\n const prev = this.stateStack.pop();\n if (prev) {\n this.state = prev;\n }\n }\n\n transform(args) {\n this.state.ctm = Util.transform(this.state.ctm, args);\n }\n}\n\nclass TextState {\n constructor() {\n this.ctm = new Float32Array(IDENTITY_MATRIX);\n this.fontName = null;\n this.fontSize = 0;\n this.loadedName = null;\n this.font = null;\n this.fontMatrix = FONT_IDENTITY_MATRIX;\n this.textMatrix = IDENTITY_MATRIX.slice();\n this.textLineMatrix = IDENTITY_MATRIX.slice();\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.leading = 0;\n this.textHScale = 1;\n this.textRise = 0;\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n const m = this.textMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n }\n\n setTextLineMatrix(a, b, c, d, e, f) {\n const m = this.textLineMatrix;\n m[0] = a;\n m[1] = b;\n m[2] = c;\n m[3] = d;\n m[4] = e;\n m[5] = f;\n }\n\n translateTextMatrix(x, y) {\n const m = this.textMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n }\n\n translateTextLineMatrix(x, y) {\n const m = this.textLineMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n }\n\n carriageReturn() {\n this.translateTextLineMatrix(0, -this.leading);\n this.textMatrix = this.textLineMatrix.slice();\n }\n\n clone() {\n const clone = Object.create(this);\n clone.textMatrix = this.textMatrix.slice();\n clone.textLineMatrix = this.textLineMatrix.slice();\n clone.fontMatrix = this.fontMatrix.slice();\n return clone;\n }\n}\n\nclass EvalState {\n constructor() {\n this.ctm = new Float32Array(IDENTITY_MATRIX);\n this.font = null;\n this.textRenderingMode = TextRenderingMode.FILL;\n this.fillColorSpace = ColorSpace.singletons.gray;\n this.strokeColorSpace = ColorSpace.singletons.gray;\n }\n\n clone() {\n return Object.create(this);\n }\n}\n\nclass EvaluatorPreprocessor {\n static get opMap() {\n // Specifies properties for each command\n //\n // If variableArgs === true: [0, `numArgs`] expected\n // If variableArgs === false: exactly `numArgs` expected\n return shadow(this, \"opMap\", {\n // Graphic state\n w: { id: OPS.setLineWidth, numArgs: 1, variableArgs: false },\n J: { id: OPS.setLineCap, numArgs: 1, variableArgs: false },\n j: { id: OPS.setLineJoin, numArgs: 1, variableArgs: false },\n M: { id: OPS.setMiterLimit, numArgs: 1, variableArgs: false },\n d: { id: OPS.setDash, numArgs: 2, variableArgs: false },\n ri: { id: OPS.setRenderingIntent, numArgs: 1, variableArgs: false },\n i: { id: OPS.setFlatness, numArgs: 1, variableArgs: false },\n gs: { id: OPS.setGState, numArgs: 1, variableArgs: false },\n q: { id: OPS.save, numArgs: 0, variableArgs: false },\n Q: { id: OPS.restore, numArgs: 0, variableArgs: false },\n cm: { id: OPS.transform, numArgs: 6, variableArgs: false },\n\n // Path\n m: { id: OPS.moveTo, numArgs: 2, variableArgs: false },\n l: { id: OPS.lineTo, numArgs: 2, variableArgs: false },\n c: { id: OPS.curveTo, numArgs: 6, variableArgs: false },\n v: { id: OPS.curveTo2, numArgs: 4, variableArgs: false },\n y: { id: OPS.curveTo3, numArgs: 4, variableArgs: false },\n h: { id: OPS.closePath, numArgs: 0, variableArgs: false },\n re: { id: OPS.rectangle, numArgs: 4, variableArgs: false },\n S: { id: OPS.stroke, numArgs: 0, variableArgs: false },\n s: { id: OPS.closeStroke, numArgs: 0, variableArgs: false },\n f: { id: OPS.fill, numArgs: 0, variableArgs: false },\n F: { id: OPS.fill, numArgs: 0, variableArgs: false },\n \"f*\": { id: OPS.eoFill, numArgs: 0, variableArgs: false },\n B: { id: OPS.fillStroke, numArgs: 0, variableArgs: false },\n \"B*\": { id: OPS.eoFillStroke, numArgs: 0, variableArgs: false },\n b: { id: OPS.closeFillStroke, numArgs: 0, variableArgs: false },\n \"b*\": { id: OPS.closeEOFillStroke, numArgs: 0, variableArgs: false },\n n: { id: OPS.endPath, numArgs: 0, variableArgs: false },\n\n // Clipping\n W: { id: OPS.clip, numArgs: 0, variableArgs: false },\n \"W*\": { id: OPS.eoClip, numArgs: 0, variableArgs: false },\n\n // Text\n BT: { id: OPS.beginText, numArgs: 0, variableArgs: false },\n ET: { id: OPS.endText, numArgs: 0, variableArgs: false },\n Tc: { id: OPS.setCharSpacing, numArgs: 1, variableArgs: false },\n Tw: { id: OPS.setWordSpacing, numArgs: 1, variableArgs: false },\n Tz: { id: OPS.setHScale, numArgs: 1, variableArgs: false },\n TL: { id: OPS.setLeading, numArgs: 1, variableArgs: false },\n Tf: { id: OPS.setFont, numArgs: 2, variableArgs: false },\n Tr: { id: OPS.setTextRenderingMode, numArgs: 1, variableArgs: false },\n Ts: { id: OPS.setTextRise, numArgs: 1, variableArgs: false },\n Td: { id: OPS.moveText, numArgs: 2, variableArgs: false },\n TD: { id: OPS.setLeadingMoveText, numArgs: 2, variableArgs: false },\n Tm: { id: OPS.setTextMatrix, numArgs: 6, variableArgs: false },\n \"T*\": { id: OPS.nextLine, numArgs: 0, variableArgs: false },\n Tj: { id: OPS.showText, numArgs: 1, variableArgs: false },\n TJ: { id: OPS.showSpacedText, numArgs: 1, variableArgs: false },\n \"'\": { id: OPS.nextLineShowText, numArgs: 1, variableArgs: false },\n '\"': {\n id: OPS.nextLineSetSpacingShowText,\n numArgs: 3,\n variableArgs: false,\n },\n\n // Type3 fonts\n d0: { id: OPS.setCharWidth, numArgs: 2, variableArgs: false },\n d1: {\n id: OPS.setCharWidthAndBounds,\n numArgs: 6,\n variableArgs: false,\n },\n\n // Color\n CS: { id: OPS.setStrokeColorSpace, numArgs: 1, variableArgs: false },\n cs: { id: OPS.setFillColorSpace, numArgs: 1, variableArgs: false },\n SC: { id: OPS.setStrokeColor, numArgs: 4, variableArgs: true },\n SCN: { id: OPS.setStrokeColorN, numArgs: 33, variableArgs: true },\n sc: { id: OPS.setFillColor, numArgs: 4, variableArgs: true },\n scn: { id: OPS.setFillColorN, numArgs: 33, variableArgs: true },\n G: { id: OPS.setStrokeGray, numArgs: 1, variableArgs: false },\n g: { id: OPS.setFillGray, numArgs: 1, variableArgs: false },\n RG: { id: OPS.setStrokeRGBColor, numArgs: 3, variableArgs: false },\n rg: { id: OPS.setFillRGBColor, numArgs: 3, variableArgs: false },\n K: { id: OPS.setStrokeCMYKColor, numArgs: 4, variableArgs: false },\n k: { id: OPS.setFillCMYKColor, numArgs: 4, variableArgs: false },\n\n // Shading\n sh: { id: OPS.shadingFill, numArgs: 1, variableArgs: false },\n\n // Images\n BI: { id: OPS.beginInlineImage, numArgs: 0, variableArgs: false },\n ID: { id: OPS.beginImageData, numArgs: 0, variableArgs: false },\n EI: { id: OPS.endInlineImage, numArgs: 1, variableArgs: false },\n\n // XObjects\n Do: { id: OPS.paintXObject, numArgs: 1, variableArgs: false },\n MP: { id: OPS.markPoint, numArgs: 1, variableArgs: false },\n DP: { id: OPS.markPointProps, numArgs: 2, variableArgs: false },\n BMC: { id: OPS.beginMarkedContent, numArgs: 1, variableArgs: false },\n BDC: {\n id: OPS.beginMarkedContentProps,\n numArgs: 2,\n variableArgs: false,\n },\n EMC: { id: OPS.endMarkedContent, numArgs: 0, variableArgs: false },\n\n // Compatibility\n BX: { id: OPS.beginCompat, numArgs: 0, variableArgs: false },\n EX: { id: OPS.endCompat, numArgs: 0, variableArgs: false },\n\n // (reserved partial commands for the lexer)\n BM: null,\n BD: null,\n true: null,\n fa: null,\n fal: null,\n fals: null,\n false: null,\n nu: null,\n nul: null,\n null: null,\n });\n }\n\n static MAX_INVALID_PATH_OPS = 10;\n\n constructor(stream, xref, stateManager = new StateManager()) {\n // TODO(mduan): pass array of knownCommands rather than this.opMap\n // dictionary\n this.parser = new Parser({\n lexer: new Lexer(stream, EvaluatorPreprocessor.opMap),\n xref,\n });\n this.stateManager = stateManager;\n this.nonProcessedArgs = [];\n this._isPathOp = false;\n this._numInvalidPathOPS = 0;\n }\n\n get savedStatesDepth() {\n return this.stateManager.stateStack.length;\n }\n\n // |operation| is an object with two fields:\n //\n // - |fn| is an out param.\n //\n // - |args| is an inout param. On entry, it should have one of two values.\n //\n // - An empty array. This indicates that the caller is providing the\n // array in which the args will be stored in. The caller should use\n // this value if it can reuse a single array for each call to read().\n //\n // - |null|. This indicates that the caller needs this function to create\n // the array in which any args are stored in. If there are zero args,\n // this function will leave |operation.args| as |null| (thus avoiding\n // allocations that would occur if we used an empty array to represent\n // zero arguments). Otherwise, it will replace |null| with a new array\n // containing the arguments. The caller should use this value if it\n // cannot reuse an array for each call to read().\n //\n // These two modes are present because this function is very hot and so\n // avoiding allocations where possible is worthwhile.\n //\n read(operation) {\n let args = operation.args;\n while (true) {\n const obj = this.parser.getObj();\n if (obj instanceof Cmd) {\n const cmd = obj.cmd;\n // Check that the command is valid\n const opSpec = EvaluatorPreprocessor.opMap[cmd];\n if (!opSpec) {\n warn(`Unknown command \"${cmd}\".`);\n continue;\n }\n\n const fn = opSpec.id;\n const numArgs = opSpec.numArgs;\n let argsLength = args !== null ? args.length : 0;\n\n // If the *previous* command wasn't a path operator, reset the heuristic\n // used with incomplete path operators below (fixes issue14917.pdf).\n if (!this._isPathOp) {\n this._numInvalidPathOPS = 0;\n }\n this._isPathOp = fn >= OPS.moveTo && fn <= OPS.endPath;\n\n if (!opSpec.variableArgs) {\n // Postscript commands can be nested, e.g. /F2 /GS2 gs 5.711 Tf\n if (argsLength !== numArgs) {\n const nonProcessedArgs = this.nonProcessedArgs;\n while (argsLength > numArgs) {\n nonProcessedArgs.push(args.shift());\n argsLength--;\n }\n while (argsLength < numArgs && nonProcessedArgs.length !== 0) {\n if (args === null) {\n args = [];\n }\n args.unshift(nonProcessedArgs.pop());\n argsLength++;\n }\n }\n\n if (argsLength < numArgs) {\n const partialMsg =\n `command ${cmd}: expected ${numArgs} args, ` +\n `but received ${argsLength} args.`;\n\n // Incomplete path operators, in particular, can result in fairly\n // chaotic rendering artifacts. Hence the following heuristics is\n // used to error, rather than just warn, once a number of invalid\n // path operators have been encountered (fixes bug1443140.pdf).\n if (\n this._isPathOp &&\n ++this._numInvalidPathOPS >\n EvaluatorPreprocessor.MAX_INVALID_PATH_OPS\n ) {\n throw new FormatError(`Invalid ${partialMsg}`);\n }\n // If we receive too few arguments, it's not possible to execute\n // the command, hence we skip the command.\n warn(`Skipping ${partialMsg}`);\n if (args !== null) {\n args.length = 0;\n }\n continue;\n }\n } else if (argsLength > numArgs) {\n info(\n `Command ${cmd}: expected [0, ${numArgs}] args, ` +\n `but received ${argsLength} args.`\n );\n }\n\n // TODO figure out how to type-check vararg functions\n this.preprocessCommand(fn, args);\n\n operation.fn = fn;\n operation.args = args;\n return true;\n }\n if (obj === EOF) {\n return false; // no more commands\n }\n // argument\n if (obj !== null) {\n if (args === null) {\n args = [];\n }\n args.push(obj);\n if (args.length > 33) {\n throw new FormatError(\"Too many arguments\");\n }\n }\n }\n }\n\n preprocessCommand(fn, args) {\n switch (fn | 0) {\n case OPS.save:\n this.stateManager.save();\n break;\n case OPS.restore:\n this.stateManager.restore();\n break;\n case OPS.transform:\n this.stateManager.transform(args);\n break;\n }\n }\n}\n\nexport { EvaluatorPreprocessor, PartialEvaluator };\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, Name } from \"./primitives.js\";\nimport {\n escapePDFName,\n getRotationMatrix,\n numberToString,\n stringToUTF16HexString,\n} from \"./core_utils.js\";\nimport {\n LINE_DESCENT_FACTOR,\n LINE_FACTOR,\n OPS,\n shadow,\n warn,\n} from \"../shared/util.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { EvaluatorPreprocessor } from \"./evaluator.js\";\nimport { LocalColorSpaceCache } from \"./image_utils.js\";\nimport { PDFFunctionFactory } from \"./function.js\";\nimport { StringStream } from \"./stream.js\";\n\nclass DefaultAppearanceEvaluator extends EvaluatorPreprocessor {\n constructor(str) {\n super(new StringStream(str));\n }\n\n parse() {\n const operation = {\n fn: 0,\n args: [],\n };\n const result = {\n fontSize: 0,\n fontName: \"\",\n fontColor: /* black = */ new Uint8ClampedArray(3),\n };\n\n try {\n while (true) {\n operation.args.length = 0; // Ensure that `args` it's always reset.\n\n if (!this.read(operation)) {\n break;\n }\n if (this.savedStatesDepth !== 0) {\n continue; // Don't get info in save/restore sections.\n }\n const { fn, args } = operation;\n\n switch (fn | 0) {\n case OPS.setFont:\n const [fontName, fontSize] = args;\n if (fontName instanceof Name) {\n result.fontName = fontName.name;\n }\n if (typeof fontSize === \"number\" && fontSize > 0) {\n result.fontSize = fontSize;\n }\n break;\n case OPS.setFillRGBColor:\n ColorSpace.singletons.rgb.getRgbItem(args, 0, result.fontColor, 0);\n break;\n case OPS.setFillGray:\n ColorSpace.singletons.gray.getRgbItem(args, 0, result.fontColor, 0);\n break;\n case OPS.setFillCMYKColor:\n ColorSpace.singletons.cmyk.getRgbItem(args, 0, result.fontColor, 0);\n break;\n }\n }\n } catch (reason) {\n warn(`parseDefaultAppearance - ignoring errors: \"${reason}\".`);\n }\n\n return result;\n }\n}\n\n// Parse DA to extract font and color information.\nfunction parseDefaultAppearance(str) {\n return new DefaultAppearanceEvaluator(str).parse();\n}\n\nclass AppearanceStreamEvaluator extends EvaluatorPreprocessor {\n constructor(stream, evaluatorOptions, xref) {\n super(stream);\n this.stream = stream;\n this.evaluatorOptions = evaluatorOptions;\n this.xref = xref;\n\n this.resources = stream.dict?.get(\"Resources\");\n }\n\n parse() {\n const operation = {\n fn: 0,\n args: [],\n };\n let result = {\n scaleFactor: 1,\n fontSize: 0,\n fontName: \"\",\n fontColor: /* black = */ new Uint8ClampedArray(3),\n fillColorSpace: ColorSpace.singletons.gray,\n };\n let breakLoop = false;\n const stack = [];\n\n try {\n while (true) {\n operation.args.length = 0; // Ensure that `args` it's always reset.\n\n if (breakLoop || !this.read(operation)) {\n break;\n }\n const { fn, args } = operation;\n\n switch (fn | 0) {\n case OPS.save:\n stack.push({\n scaleFactor: result.scaleFactor,\n fontSize: result.fontSize,\n fontName: result.fontName,\n fontColor: result.fontColor.slice(),\n fillColorSpace: result.fillColorSpace,\n });\n break;\n case OPS.restore:\n result = stack.pop() || result;\n break;\n case OPS.setTextMatrix:\n result.scaleFactor *= Math.hypot(args[0], args[1]);\n break;\n case OPS.setFont:\n const [fontName, fontSize] = args;\n if (fontName instanceof Name) {\n result.fontName = fontName.name;\n }\n if (typeof fontSize === \"number\" && fontSize > 0) {\n result.fontSize = fontSize * result.scaleFactor;\n }\n break;\n case OPS.setFillColorSpace:\n result.fillColorSpace = ColorSpace.parse({\n cs: args[0],\n xref: this.xref,\n resources: this.resources,\n pdfFunctionFactory: this._pdfFunctionFactory,\n localColorSpaceCache: this._localColorSpaceCache,\n });\n break;\n case OPS.setFillColor:\n const cs = result.fillColorSpace;\n cs.getRgbItem(args, 0, result.fontColor, 0);\n break;\n case OPS.setFillRGBColor:\n ColorSpace.singletons.rgb.getRgbItem(args, 0, result.fontColor, 0);\n break;\n case OPS.setFillGray:\n ColorSpace.singletons.gray.getRgbItem(args, 0, result.fontColor, 0);\n break;\n case OPS.setFillCMYKColor:\n ColorSpace.singletons.cmyk.getRgbItem(args, 0, result.fontColor, 0);\n break;\n case OPS.showText:\n case OPS.showSpacedText:\n case OPS.nextLineShowText:\n case OPS.nextLineSetSpacingShowText:\n breakLoop = true;\n break;\n }\n }\n } catch (reason) {\n warn(`parseAppearanceStream - ignoring errors: \"${reason}\".`);\n }\n this.stream.reset();\n delete result.scaleFactor;\n delete result.fillColorSpace;\n\n return result;\n }\n\n get _localColorSpaceCache() {\n return shadow(this, \"_localColorSpaceCache\", new LocalColorSpaceCache());\n }\n\n get _pdfFunctionFactory() {\n const pdfFunctionFactory = new PDFFunctionFactory({\n xref: this.xref,\n isEvalSupported: this.evaluatorOptions.isEvalSupported,\n });\n return shadow(this, \"_pdfFunctionFactory\", pdfFunctionFactory);\n }\n}\n\n// Parse appearance stream to extract font and color information.\n// It returns the font properties used to render the first text object.\nfunction parseAppearanceStream(stream, evaluatorOptions, xref) {\n return new AppearanceStreamEvaluator(stream, evaluatorOptions, xref).parse();\n}\n\nfunction getPdfColor(color, isFill) {\n if (color[0] === color[1] && color[1] === color[2]) {\n const gray = color[0] / 255;\n return `${numberToString(gray)} ${isFill ? \"g\" : \"G\"}`;\n }\n return (\n Array.from(color, c => numberToString(c / 255)).join(\" \") +\n ` ${isFill ? \"rg\" : \"RG\"}`\n );\n}\n\n// Create default appearance string from some information.\nfunction createDefaultAppearance({ fontSize, fontName, fontColor }) {\n return `/${escapePDFName(fontName)} ${fontSize} Tf ${getPdfColor(\n fontColor,\n /* isFill */ true\n )}`;\n}\n\nclass FakeUnicodeFont {\n constructor(xref, fontFamily) {\n this.xref = xref;\n this.widths = null;\n this.firstChar = Infinity;\n this.lastChar = -Infinity;\n this.fontFamily = fontFamily;\n\n const canvas = new OffscreenCanvas(1, 1);\n this.ctxMeasure = canvas.getContext(\"2d\");\n\n if (!FakeUnicodeFont._fontNameId) {\n FakeUnicodeFont._fontNameId = 1;\n }\n this.fontName = Name.get(\n `InvalidPDFjsFont_${fontFamily}_${FakeUnicodeFont._fontNameId++}`\n );\n }\n\n get toUnicodeRef() {\n if (!FakeUnicodeFont._toUnicodeRef) {\n const toUnicode = `/CIDInit /ProcSet findresource begin\n12 dict begin\nbegincmap\n/CIDSystemInfo\n<< /Registry (Adobe)\n/Ordering (UCS) /Supplement 0 >> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<0000> <FFFF>\nendcodespacerange\n1 beginbfrange\n<0000> <FFFF> <0000>\nendbfrange\nendcmap CMapName currentdict /CMap defineresource pop end end`;\n const toUnicodeStream = (FakeUnicodeFont.toUnicodeStream =\n new StringStream(toUnicode));\n const toUnicodeDict = new Dict(this.xref);\n toUnicodeStream.dict = toUnicodeDict;\n toUnicodeDict.set(\"Length\", toUnicode.length);\n FakeUnicodeFont._toUnicodeRef =\n this.xref.getNewPersistentRef(toUnicodeStream);\n }\n\n return FakeUnicodeFont._toUnicodeRef;\n }\n\n get fontDescriptorRef() {\n if (!FakeUnicodeFont._fontDescriptorRef) {\n const fontDescriptor = new Dict(this.xref);\n fontDescriptor.set(\"Type\", Name.get(\"FontDescriptor\"));\n fontDescriptor.set(\"FontName\", this.fontName);\n fontDescriptor.set(\"FontFamily\", \"MyriadPro Regular\");\n fontDescriptor.set(\"FontBBox\", [0, 0, 0, 0]);\n fontDescriptor.set(\"FontStretch\", Name.get(\"Normal\"));\n fontDescriptor.set(\"FontWeight\", 400);\n fontDescriptor.set(\"ItalicAngle\", 0);\n\n FakeUnicodeFont._fontDescriptorRef =\n this.xref.getNewPersistentRef(fontDescriptor);\n }\n\n return FakeUnicodeFont._fontDescriptorRef;\n }\n\n get descendantFontRef() {\n const descendantFont = new Dict(this.xref);\n descendantFont.set(\"BaseFont\", this.fontName);\n descendantFont.set(\"Type\", Name.get(\"Font\"));\n descendantFont.set(\"Subtype\", Name.get(\"CIDFontType0\"));\n descendantFont.set(\"CIDToGIDMap\", Name.get(\"Identity\"));\n descendantFont.set(\"FirstChar\", this.firstChar);\n descendantFont.set(\"LastChar\", this.lastChar);\n descendantFont.set(\"FontDescriptor\", this.fontDescriptorRef);\n descendantFont.set(\"DW\", 1000);\n\n const widths = [];\n const chars = [...this.widths.entries()].sort();\n let currentChar = null;\n let currentWidths = null;\n for (const [char, width] of chars) {\n if (!currentChar) {\n currentChar = char;\n currentWidths = [width];\n continue;\n }\n if (char === currentChar + currentWidths.length) {\n currentWidths.push(width);\n } else {\n widths.push(currentChar, currentWidths);\n currentChar = char;\n currentWidths = [width];\n }\n }\n\n if (currentChar) {\n widths.push(currentChar, currentWidths);\n }\n\n descendantFont.set(\"W\", widths);\n\n const cidSystemInfo = new Dict(this.xref);\n cidSystemInfo.set(\"Ordering\", \"Identity\");\n cidSystemInfo.set(\"Registry\", \"Adobe\");\n cidSystemInfo.set(\"Supplement\", 0);\n descendantFont.set(\"CIDSystemInfo\", cidSystemInfo);\n\n return this.xref.getNewPersistentRef(descendantFont);\n }\n\n get baseFontRef() {\n const baseFont = new Dict(this.xref);\n baseFont.set(\"BaseFont\", this.fontName);\n baseFont.set(\"Type\", Name.get(\"Font\"));\n baseFont.set(\"Subtype\", Name.get(\"Type0\"));\n baseFont.set(\"Encoding\", Name.get(\"Identity-H\"));\n baseFont.set(\"DescendantFonts\", [this.descendantFontRef]);\n baseFont.set(\"ToUnicode\", this.toUnicodeRef);\n\n return this.xref.getNewPersistentRef(baseFont);\n }\n\n get resources() {\n const resources = new Dict(this.xref);\n const font = new Dict(this.xref);\n font.set(this.fontName.name, this.baseFontRef);\n resources.set(\"Font\", font);\n\n return resources;\n }\n\n _createContext() {\n this.widths = new Map();\n this.ctxMeasure.font = `1000px ${this.fontFamily}`;\n\n return this.ctxMeasure;\n }\n\n createFontResources(text) {\n const ctx = this._createContext();\n for (const line of text.split(/\\r\\n?|\\n/)) {\n for (const char of line.split(\"\")) {\n const code = char.charCodeAt(0);\n if (this.widths.has(code)) {\n continue;\n }\n const metrics = ctx.measureText(char);\n const width = Math.ceil(metrics.width);\n this.widths.set(code, width);\n this.firstChar = Math.min(code, this.firstChar);\n this.lastChar = Math.max(code, this.lastChar);\n }\n }\n\n return this.resources;\n }\n\n createAppearance(text, rect, rotation, fontSize, bgColor, strokeAlpha) {\n const ctx = this._createContext();\n const lines = [];\n let maxWidth = -Infinity;\n for (const line of text.split(/\\r\\n?|\\n/)) {\n lines.push(line);\n // The line width isn't the sum of the char widths, because in some\n // languages, like arabic, it'd be wrong because of ligatures.\n const lineWidth = ctx.measureText(line).width;\n maxWidth = Math.max(maxWidth, lineWidth);\n for (const char of line.split(\"\")) {\n const code = char.charCodeAt(0);\n let width = this.widths.get(code);\n if (width === undefined) {\n const metrics = ctx.measureText(char);\n width = Math.ceil(metrics.width);\n this.widths.set(code, width);\n this.firstChar = Math.min(code, this.firstChar);\n this.lastChar = Math.max(code, this.lastChar);\n }\n }\n }\n maxWidth *= fontSize / 1000;\n\n const [x1, y1, x2, y2] = rect;\n let w = x2 - x1;\n let h = y2 - y1;\n\n if (rotation % 180 !== 0) {\n [w, h] = [h, w];\n }\n\n let hscale = 1;\n if (maxWidth > w) {\n hscale = w / maxWidth;\n }\n let vscale = 1;\n const lineHeight = LINE_FACTOR * fontSize;\n const lineDescent = LINE_DESCENT_FACTOR * fontSize;\n const maxHeight = lineHeight * lines.length;\n if (maxHeight > h) {\n vscale = h / maxHeight;\n }\n const fscale = Math.min(hscale, vscale);\n const newFontSize = fontSize * fscale;\n\n const buffer = [\n \"q\",\n `0 0 ${numberToString(w)} ${numberToString(h)} re W n`,\n `BT`,\n `1 0 0 1 0 ${numberToString(h + lineDescent)} Tm 0 Tc ${getPdfColor(\n bgColor,\n /* isFill */ true\n )}`,\n `/${this.fontName.name} ${numberToString(newFontSize)} Tf`,\n ];\n\n const { resources } = this;\n strokeAlpha =\n typeof strokeAlpha === \"number\" && strokeAlpha >= 0 && strokeAlpha <= 1\n ? strokeAlpha\n : 1;\n\n if (strokeAlpha !== 1) {\n buffer.push(\"/R0 gs\");\n const extGState = new Dict(this.xref);\n const r0 = new Dict(this.xref);\n r0.set(\"ca\", strokeAlpha);\n r0.set(\"CA\", strokeAlpha);\n r0.set(\"Type\", Name.get(\"ExtGState\"));\n extGState.set(\"R0\", r0);\n resources.set(\"ExtGState\", extGState);\n }\n\n const vShift = numberToString(lineHeight);\n for (const line of lines) {\n buffer.push(`0 -${vShift} Td <${stringToUTF16HexString(line)}> Tj`);\n }\n buffer.push(\"ET\", \"Q\");\n const appearance = buffer.join(\"\\n\");\n\n const appearanceStreamDict = new Dict(this.xref);\n appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n appearanceStreamDict.set(\"BBox\", [0, 0, w, h]);\n appearanceStreamDict.set(\"Length\", appearance.length);\n appearanceStreamDict.set(\"Resources\", resources);\n\n if (rotation) {\n const matrix = getRotationMatrix(rotation, w, h);\n appearanceStreamDict.set(\"Matrix\", matrix);\n }\n\n const ap = new StringStream(appearance);\n ap.dict = appearanceStreamDict;\n\n return ap;\n }\n}\n\nexport {\n createDefaultAppearance,\n FakeUnicodeFont,\n getPdfColor,\n parseAppearanceStream,\n parseDefaultAppearance,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, RefSet } from \"./primitives.js\";\nimport { FormatError, unreachable, warn } from \"../shared/util.js\";\n\n/**\n * A NameTree/NumberTree is like a Dict but has some advantageous properties,\n * see the specification (7.9.6 and 7.9.7) for additional details.\n * TODO: implement all the Dict functions and make this more efficient.\n */\nclass NameOrNumberTree {\n constructor(root, xref, type) {\n if (this.constructor === NameOrNumberTree) {\n unreachable(\"Cannot initialize NameOrNumberTree.\");\n }\n this.root = root;\n this.xref = xref;\n this._type = type;\n }\n\n getAll() {\n const map = new Map();\n if (!this.root) {\n return map;\n }\n const xref = this.xref;\n // Reading Name/Number tree.\n const processed = new RefSet();\n processed.put(this.root);\n const queue = [this.root];\n while (queue.length > 0) {\n const obj = xref.fetchIfRef(queue.shift());\n if (!(obj instanceof Dict)) {\n continue;\n }\n if (obj.has(\"Kids\")) {\n const kids = obj.get(\"Kids\");\n if (!Array.isArray(kids)) {\n continue;\n }\n for (const kid of kids) {\n if (processed.has(kid)) {\n throw new FormatError(`Duplicate entry in \"${this._type}\" tree.`);\n }\n queue.push(kid);\n processed.put(kid);\n }\n continue;\n }\n const entries = obj.get(this._type);\n if (!Array.isArray(entries)) {\n continue;\n }\n for (let i = 0, ii = entries.length; i < ii; i += 2) {\n map.set(xref.fetchIfRef(entries[i]), xref.fetchIfRef(entries[i + 1]));\n }\n }\n return map;\n }\n\n get(key) {\n if (!this.root) {\n return null;\n }\n const xref = this.xref;\n let kidsOrEntries = xref.fetchIfRef(this.root);\n let loopCount = 0;\n const MAX_LEVELS = 10;\n\n // Perform a binary search to quickly find the entry that\n // contains the key we are looking for.\n while (kidsOrEntries.has(\"Kids\")) {\n if (++loopCount > MAX_LEVELS) {\n warn(`Search depth limit reached for \"${this._type}\" tree.`);\n return null;\n }\n\n const kids = kidsOrEntries.get(\"Kids\");\n if (!Array.isArray(kids)) {\n return null;\n }\n\n let l = 0,\n r = kids.length - 1;\n while (l <= r) {\n const m = (l + r) >> 1;\n const kid = xref.fetchIfRef(kids[m]);\n const limits = kid.get(\"Limits\");\n\n if (key < xref.fetchIfRef(limits[0])) {\n r = m - 1;\n } else if (key > xref.fetchIfRef(limits[1])) {\n l = m + 1;\n } else {\n kidsOrEntries = kid;\n break;\n }\n }\n if (l > r) {\n return null;\n }\n }\n\n // If we get here, then we have found the right entry. Now go through the\n // entries in the dictionary until we find the key we're looking for.\n const entries = kidsOrEntries.get(this._type);\n if (Array.isArray(entries)) {\n // Perform a binary search to reduce the lookup time.\n let l = 0,\n r = entries.length - 2;\n while (l <= r) {\n // Check only even indices (0, 2, 4, ...) because the\n // odd indices contain the actual data.\n const tmp = (l + r) >> 1,\n m = tmp + (tmp & 1);\n const currentKey = xref.fetchIfRef(entries[m]);\n if (key < currentKey) {\n r = m - 2;\n } else if (key > currentKey) {\n l = m + 2;\n } else {\n return xref.fetchIfRef(entries[m + 1]);\n }\n }\n }\n return null;\n }\n}\n\nclass NameTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Names\");\n }\n}\n\nclass NumberTree extends NameOrNumberTree {\n constructor(root, xref) {\n super(root, xref, \"Nums\");\n }\n}\n\nexport { NameTree, NumberTree };\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { clearPatternCaches } from \"./pattern.js\";\nimport { clearPrimitiveCaches } from \"./primitives.js\";\nimport { clearUnicodeCaches } from \"./unicode.js\";\n\nfunction clearGlobalCaches() {\n clearPatternCaches();\n clearPrimitiveCaches();\n clearUnicodeCaches();\n}\n\nexport { clearGlobalCaches };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { stringToPDFString, warn } from \"../shared/util.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { Dict } from \"./primitives.js\";\n\nfunction pickPlatformItem(dict) {\n // Look for the filename in this order:\n // UF, F, Unix, Mac, DOS\n if (dict.has(\"UF\")) {\n return dict.get(\"UF\");\n } else if (dict.has(\"F\")) {\n return dict.get(\"F\");\n } else if (dict.has(\"Unix\")) {\n return dict.get(\"Unix\");\n } else if (dict.has(\"Mac\")) {\n return dict.get(\"Mac\");\n } else if (dict.has(\"DOS\")) {\n return dict.get(\"DOS\");\n }\n return null;\n}\n\n/**\n * \"A PDF file can refer to the contents of another file by using a File\n * Specification (PDF 1.1)\", see the spec (7.11) for more details.\n * NOTE: Only embedded files are supported (as part of the attachments support)\n * TODO: support the 'URL' file system (with caching if !/V), portable\n * collections attributes and related files (/RF)\n */\nclass FileSpec {\n constructor(root, xref) {\n if (!(root instanceof Dict)) {\n return;\n }\n this.xref = xref;\n this.root = root;\n if (root.has(\"FS\")) {\n this.fs = root.get(\"FS\");\n }\n this.description = root.has(\"Desc\")\n ? stringToPDFString(root.get(\"Desc\"))\n : \"\";\n if (root.has(\"RF\")) {\n warn(\"Related file specifications are not supported\");\n }\n this.contentAvailable = true;\n if (!root.has(\"EF\")) {\n this.contentAvailable = false;\n warn(\"Non-embedded file specifications are not supported\");\n }\n }\n\n get filename() {\n if (!this._filename && this.root) {\n const filename = pickPlatformItem(this.root) || \"unnamed\";\n this._filename = stringToPDFString(filename)\n .replaceAll(\"\\\\\\\\\", \"\\\\\")\n .replaceAll(\"\\\\/\", \"/\")\n .replaceAll(\"\\\\\", \"/\");\n }\n return this._filename;\n }\n\n get content() {\n if (!this.contentAvailable) {\n return null;\n }\n if (!this.contentRef && this.root) {\n this.contentRef = pickPlatformItem(this.root.get(\"EF\"));\n }\n let content = null;\n if (this.contentRef) {\n const fileObj = this.xref.fetchIfRef(this.contentRef);\n if (fileObj instanceof BaseStream) {\n content = fileObj.getBytes();\n } else {\n warn(\n \"Embedded file specification points to non-existing/invalid content\"\n );\n }\n } else {\n warn(\"Embedded file specification does not have a content\");\n }\n return content;\n }\n\n get serializable() {\n return {\n filename: this.filename,\n content: this.content,\n };\n }\n}\n\nexport { FileSpec };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// The code for XMLParserBase copied from\n// https://github.com/mozilla/shumway/blob/16451d8836fa85f4b16eeda8b4bda2fa9e2b22b0/src/avm2/natives/xml.ts\n\nimport { encodeToXmlString } from \"./core_utils.js\";\n\nconst XMLParserErrorCode = {\n NoError: 0,\n EndOfDocument: -1,\n UnterminatedCdat: -2,\n UnterminatedXmlDeclaration: -3,\n UnterminatedDoctypeDeclaration: -4,\n UnterminatedComment: -5,\n MalformedElement: -6,\n OutOfMemory: -7,\n UnterminatedAttributeValue: -8,\n UnterminatedElement: -9,\n ElementNeverBegun: -10,\n};\n\nfunction isWhitespace(s, index) {\n const ch = s[index];\n return ch === \" \" || ch === \"\\n\" || ch === \"\\r\" || ch === \"\\t\";\n}\n\nfunction isWhitespaceString(s) {\n for (let i = 0, ii = s.length; i < ii; i++) {\n if (!isWhitespace(s, i)) {\n return false;\n }\n }\n return true;\n}\n\nclass XMLParserBase {\n _resolveEntities(s) {\n return s.replaceAll(/&([^;]+);/g, (all, entity) => {\n if (entity.substring(0, 2) === \"#x\") {\n return String.fromCodePoint(parseInt(entity.substring(2), 16));\n } else if (entity.substring(0, 1) === \"#\") {\n return String.fromCodePoint(parseInt(entity.substring(1), 10));\n }\n switch (entity) {\n case \"lt\":\n return \"<\";\n case \"gt\":\n return \">\";\n case \"amp\":\n return \"&\";\n case \"quot\":\n return '\"';\n case \"apos\":\n return \"'\";\n }\n return this.onResolveEntity(entity);\n });\n }\n\n _parseContent(s, start) {\n const attributes = [];\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (\n pos < s.length &&\n !isWhitespace(s, pos) &&\n s[pos] !== \">\" &&\n s[pos] !== \"/\"\n ) {\n ++pos;\n }\n const name = s.substring(start, pos);\n skipWs();\n while (\n pos < s.length &&\n s[pos] !== \">\" &&\n s[pos] !== \"/\" &&\n s[pos] !== \"?\"\n ) {\n skipWs();\n let attrName = \"\",\n attrValue = \"\";\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== \"=\") {\n attrName += s[pos];\n ++pos;\n }\n skipWs();\n if (s[pos] !== \"=\") {\n return null;\n }\n ++pos;\n skipWs();\n const attrEndChar = s[pos];\n if (attrEndChar !== '\"' && attrEndChar !== \"'\") {\n return null;\n }\n const attrEndIndex = s.indexOf(attrEndChar, ++pos);\n if (attrEndIndex < 0) {\n return null;\n }\n attrValue = s.substring(pos, attrEndIndex);\n attributes.push({\n name: attrName,\n value: this._resolveEntities(attrValue),\n });\n pos = attrEndIndex + 1;\n skipWs();\n }\n return {\n name,\n attributes,\n parsed: pos - start,\n };\n }\n\n _parseProcessingInstruction(s, start) {\n let pos = start;\n\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n\n while (\n pos < s.length &&\n !isWhitespace(s, pos) &&\n s[pos] !== \">\" &&\n s[pos] !== \"?\" &&\n s[pos] !== \"/\"\n ) {\n ++pos;\n }\n const name = s.substring(start, pos);\n skipWs();\n const attrStart = pos;\n while (pos < s.length && (s[pos] !== \"?\" || s[pos + 1] !== \">\")) {\n ++pos;\n }\n const value = s.substring(attrStart, pos);\n return {\n name,\n value,\n parsed: pos - start,\n };\n }\n\n parseXml(s) {\n let i = 0;\n while (i < s.length) {\n const ch = s[i];\n let j = i;\n if (ch === \"<\") {\n ++j;\n const ch2 = s[j];\n let q;\n switch (ch2) {\n case \"/\":\n ++j;\n q = s.indexOf(\">\", j);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n case \"?\":\n ++j;\n const pi = this._parseProcessingInstruction(s, j);\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== \"?>\") {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n case \"!\":\n if (s.substring(j + 1, j + 3) === \"--\") {\n q = s.indexOf(\"-->\", j + 3);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\n this.onComment(s.substring(j + 3, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"[CDATA[\") {\n q = s.indexOf(\"]]>\", j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\n this.onCdata(s.substring(j + 8, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === \"DOCTYPE\") {\n const q2 = s.indexOf(\"[\", j + 8);\n let complexDoctype = false;\n q = s.indexOf(\">\", j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n if (q2 > 0 && q > q2) {\n q = s.indexOf(\"]>\", j + 8);\n if (q < 0) {\n this.onError(\n XMLParserErrorCode.UnterminatedDoctypeDeclaration\n );\n return;\n }\n complexDoctype = true;\n }\n const doctypeContent = s.substring(\n j + 8,\n q + (complexDoctype ? 1 : 0)\n );\n this.onDoctype(doctypeContent);\n j = q + (complexDoctype ? 2 : 1);\n } else {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n break;\n default:\n const content = this._parseContent(s, j);\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n let isClosed = false;\n if (\n s.substring(j + content.parsed, j + content.parsed + 2) === \"/>\"\n ) {\n isClosed = true;\n } else if (\n s.substring(j + content.parsed, j + content.parsed + 1) !== \">\"\n ) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onBeginElement(content.name, content.attributes, isClosed);\n j += content.parsed + (isClosed ? 2 : 1);\n break;\n }\n } else {\n while (j < s.length && s[j] !== \"<\") {\n j++;\n }\n const text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\n i = j;\n }\n }\n\n onResolveEntity(name) {\n return `&${name};`;\n }\n\n onPi(name, value) {}\n\n onComment(text) {}\n\n onCdata(text) {}\n\n onDoctype(doctypeContent) {}\n\n onText(text) {}\n\n onBeginElement(name, attributes, isEmpty) {}\n\n onEndElement(name) {}\n\n onError(code) {}\n}\n\nclass SimpleDOMNode {\n constructor(nodeName, nodeValue) {\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n\n Object.defineProperty(this, \"parentNode\", { value: null, writable: true });\n }\n\n get firstChild() {\n return this.childNodes?.[0];\n }\n\n get nextSibling() {\n const childNodes = this.parentNode.childNodes;\n if (!childNodes) {\n return undefined;\n }\n const index = childNodes.indexOf(this);\n if (index === -1) {\n return undefined;\n }\n return childNodes[index + 1];\n }\n\n get textContent() {\n if (!this.childNodes) {\n return this.nodeValue || \"\";\n }\n return this.childNodes\n .map(function (child) {\n return child.textContent;\n })\n .join(\"\");\n }\n\n get children() {\n return this.childNodes || [];\n }\n\n hasChildNodes() {\n return this.childNodes?.length > 0;\n }\n\n /**\n * Search a node in the tree with the given path\n * foo.bar[nnn], i.e. find the nnn-th node named\n * bar under a node named foo.\n *\n * @param {Array} paths - an array of objects as\n * returned by {parseXFAPath}.\n * @param {number} pos - the current position in\n * the paths array.\n * @returns {SimpleDOMNode} The node corresponding\n * to the path or null if not found.\n */\n searchNode(paths, pos) {\n if (pos >= paths.length) {\n return this;\n }\n\n const component = paths[pos];\n if (component.name.startsWith(\"#\") && pos < paths.length - 1) {\n // If it starts with a # then it's a class which is not a concept for\n // datasets elements (https://www.pdfa.org/norm-refs/XFA-3_3.pdf#page=96).\n return this.searchNode(paths, pos + 1);\n }\n const stack = [];\n let node = this;\n\n while (true) {\n if (component.name === node.nodeName) {\n if (component.pos === 0) {\n const res = node.searchNode(paths, pos + 1);\n if (res !== null) {\n return res;\n }\n } else if (stack.length === 0) {\n return null;\n } else {\n const [parent] = stack.pop();\n let siblingPos = 0;\n for (const child of parent.childNodes) {\n if (component.name === child.nodeName) {\n if (siblingPos === component.pos) {\n return child.searchNode(paths, pos + 1);\n }\n siblingPos++;\n }\n }\n // We didn't find the correct sibling\n // so just return the first found node\n return node.searchNode(paths, pos + 1);\n }\n }\n\n if (node.childNodes?.length > 0) {\n stack.push([node, 0]);\n node = node.childNodes[0];\n } else if (stack.length === 0) {\n return null;\n } else {\n while (stack.length !== 0) {\n const [parent, currentPos] = stack.pop();\n const newPos = currentPos + 1;\n if (newPos < parent.childNodes.length) {\n stack.push([parent, newPos]);\n node = parent.childNodes[newPos];\n break;\n }\n }\n if (stack.length === 0) {\n return null;\n }\n }\n }\n }\n\n dump(buffer) {\n if (this.nodeName === \"#text\") {\n buffer.push(encodeToXmlString(this.nodeValue));\n return;\n }\n\n buffer.push(`<${this.nodeName}`);\n if (this.attributes) {\n for (const attribute of this.attributes) {\n buffer.push(\n ` ${attribute.name}=\"${encodeToXmlString(attribute.value)}\"`\n );\n }\n }\n if (this.hasChildNodes()) {\n buffer.push(\">\");\n for (const child of this.childNodes) {\n child.dump(buffer);\n }\n buffer.push(`</${this.nodeName}>`);\n } else if (this.nodeValue) {\n buffer.push(`>${encodeToXmlString(this.nodeValue)}</${this.nodeName}>`);\n } else {\n buffer.push(\"/>\");\n }\n }\n}\n\nclass SimpleXMLParser extends XMLParserBase {\n constructor({ hasAttributes = false, lowerCaseName = false }) {\n super();\n this._currentFragment = null;\n this._stack = null;\n this._errorCode = XMLParserErrorCode.NoError;\n this._hasAttributes = hasAttributes;\n this._lowerCaseName = lowerCaseName;\n }\n\n parseFromString(data) {\n this._currentFragment = [];\n this._stack = [];\n this._errorCode = XMLParserErrorCode.NoError;\n\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined; // return undefined on error\n }\n\n // We should only have one root.\n const [documentElement] = this._currentFragment;\n if (!documentElement) {\n return undefined; // Return undefined if no root was found.\n }\n return { documentElement };\n }\n\n onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n const node = new SimpleDOMNode(\"#text\", text);\n this._currentFragment.push(node);\n }\n\n onCdata(text) {\n const node = new SimpleDOMNode(\"#text\", text);\n this._currentFragment.push(node);\n }\n\n onBeginElement(name, attributes, isEmpty) {\n if (this._lowerCaseName) {\n name = name.toLowerCase();\n }\n const node = new SimpleDOMNode(name);\n node.childNodes = [];\n if (this._hasAttributes) {\n node.attributes = attributes;\n }\n this._currentFragment.push(node);\n if (isEmpty) {\n return;\n }\n this._stack.push(this._currentFragment);\n this._currentFragment = node.childNodes;\n }\n\n onEndElement(name) {\n this._currentFragment = this._stack.pop() || [];\n const lastElement = this._currentFragment.at(-1);\n if (!lastElement) {\n return null;\n }\n for (const childNode of lastElement.childNodes) {\n childNode.parentNode = lastElement;\n }\n return lastElement;\n }\n\n onError(code) {\n this._errorCode = code;\n }\n}\n\nexport { SimpleDOMNode, SimpleXMLParser, XMLParserBase, XMLParserErrorCode };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SimpleXMLParser } from \"./xml_parser.js\";\n\nclass MetadataParser {\n constructor(data) {\n // Ghostscript may produce invalid metadata, so try to repair that first.\n data = this._repair(data);\n\n // Convert the string to an XML document.\n const parser = new SimpleXMLParser({ lowerCaseName: true });\n const xmlDocument = parser.parseFromString(data);\n\n this._metadataMap = new Map();\n this._data = data;\n\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _repair(data) {\n // Start by removing any \"junk\" before the first tag (see issue 10395).\n return data\n .replace(/^[^<]+/, \"\")\n .replaceAll(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n const bytes = codes\n .replaceAll(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n })\n .replaceAll(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n switch (name) {\n case \"amp\":\n return \"&\";\n case \"apos\":\n return \"'\";\n case \"gt\":\n return \">\";\n case \"lt\":\n return \"<\";\n case \"quot\":\n return '\"';\n }\n throw new Error(`_repair: ${name} isn't defined.`);\n });\n\n const charBuf = [\">\"];\n for (let i = 0, ii = bytes.length; i < ii; i += 2) {\n const code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n if (\n code >= /* Space = */ 32 &&\n code < /* Delete = */ 127 &&\n code !== /* '<' = */ 60 &&\n code !== /* '>' = */ 62 &&\n code !== /* '&' = */ 38\n ) {\n charBuf.push(String.fromCharCode(code));\n } else {\n charBuf.push(\n \"&#x\" + (0x10000 + code).toString(16).substring(1) + \";\"\n );\n }\n }\n return charBuf.join(\"\");\n });\n }\n\n _getSequence(entry) {\n const name = entry.nodeName;\n if (name !== \"rdf:bag\" && name !== \"rdf:seq\" && name !== \"rdf:alt\") {\n return null;\n }\n return entry.childNodes.filter(node => node.nodeName === \"rdf:li\");\n }\n\n _parseArray(entry) {\n if (!entry.hasChildNodes()) {\n return;\n }\n // Child must be a Bag (unordered array) or a Seq.\n const [seqNode] = entry.childNodes;\n const sequence = this._getSequence(seqNode) || [];\n\n this._metadataMap.set(\n entry.nodeName,\n sequence.map(node => node.textContent.trim())\n );\n }\n\n _parse(xmlDocument) {\n let rdf = xmlDocument.documentElement;\n\n if (rdf.nodeName !== \"rdf:rdf\") {\n // Wrapped in <xmpmeta>\n rdf = rdf.firstChild;\n while (rdf && rdf.nodeName !== \"rdf:rdf\") {\n rdf = rdf.nextSibling;\n }\n }\n\n if (!rdf || rdf.nodeName !== \"rdf:rdf\" || !rdf.hasChildNodes()) {\n return;\n }\n\n for (const desc of rdf.childNodes) {\n if (desc.nodeName !== \"rdf:description\") {\n continue;\n }\n\n for (const entry of desc.childNodes) {\n const name = entry.nodeName;\n switch (name) {\n case \"#text\":\n continue;\n case \"dc:creator\":\n case \"dc:subject\":\n this._parseArray(entry);\n continue;\n }\n this._metadataMap.set(name, entry.textContent.trim());\n }\n }\n }\n\n get serializable() {\n return {\n parsedData: this._metadataMap,\n rawData: this._data,\n };\n }\n}\n\nexport { MetadataParser };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DecodeStream } from \"./decode_stream.js\";\n\nconst chunkSize = 512;\n\nclass DecryptStream extends DecodeStream {\n constructor(str, maybeLength, decrypt) {\n super(maybeLength);\n\n this.str = str;\n this.dict = str.dict;\n this.decrypt = decrypt;\n this.nextChunk = null;\n this.initialized = false;\n }\n\n readBlock() {\n let chunk;\n if (this.initialized) {\n chunk = this.nextChunk;\n } else {\n chunk = this.str.getBytes(chunkSize);\n this.initialized = true;\n }\n if (!chunk || chunk.length === 0) {\n this.eof = true;\n return;\n }\n this.nextChunk = this.str.getBytes(chunkSize);\n const hasMoreData = this.nextChunk?.length > 0;\n\n const decrypt = this.decrypt;\n chunk = decrypt(chunk, !hasMoreData);\n\n const bufferLength = this.bufferLength,\n newLength = bufferLength + chunk.length,\n buffer = this.ensureBuffer(newLength);\n buffer.set(chunk, bufferLength);\n this.bufferLength = newLength;\n }\n}\n\nexport { DecryptStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n bytesToString,\n FormatError,\n isArrayEqual,\n PasswordException,\n PasswordResponses,\n stringToBytes,\n unreachable,\n utf8StringToString,\n warn,\n} from \"../shared/util.js\";\nimport { Dict, isName, Name } from \"./primitives.js\";\nimport { DecryptStream } from \"./decrypt_stream.js\";\n\nclass ARCFourCipher {\n constructor(key) {\n this.a = 0;\n this.b = 0;\n const s = new Uint8Array(256);\n const keyLength = key.length;\n\n for (let i = 0; i < 256; ++i) {\n s[i] = i;\n }\n for (let i = 0, j = 0; i < 256; ++i) {\n const tmp = s[i];\n j = (j + tmp + key[i % keyLength]) & 0xff;\n s[i] = s[j];\n s[j] = tmp;\n }\n this.s = s;\n }\n\n encryptBlock(data) {\n let a = this.a,\n b = this.b;\n const s = this.s;\n const n = data.length;\n const output = new Uint8Array(n);\n for (let i = 0; i < n; ++i) {\n a = (a + 1) & 0xff;\n const tmp = s[a];\n b = (b + tmp) & 0xff;\n const tmp2 = s[b];\n s[a] = tmp2;\n s[b] = tmp;\n output[i] = data[i] ^ s[(tmp + tmp2) & 0xff];\n }\n this.a = a;\n this.b = b;\n return output;\n }\n\n decryptBlock(data) {\n return this.encryptBlock(data);\n }\n\n encrypt(data) {\n return this.encryptBlock(data);\n }\n}\n\nconst calculateMD5 = (function calculateMD5Closure() {\n const r = new Uint8Array([\n 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5,\n 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11,\n 16, 23, 4, 11, 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10,\n 15, 21,\n ]);\n\n const k = new Int32Array([\n -680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426,\n -1473231341, -45705983, 1770035416, -1958414417, -42063, -1990404162,\n 1804603682, -40341101, -1502002290, 1236535329, -165796510, -1069501632,\n 643717713, -373897302, -701558691, 38016083, -660478335, -405537848,\n 568446438, -1019803690, -187363961, 1163531501, -1444681467, -51403784,\n 1735328473, -1926607734, -378558, -2022574463, 1839030562, -35309556,\n -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222,\n -722521979, 76029189, -640364487, -421815835, 530742520, -995338651,\n -198630844, 1126891415, -1416354905, -57434055, 1700485571, -1894986606,\n -1051523, -2054922799, 1873313359, -30611744, -1560198380, 1309151649,\n -145523070, -1120210379, 718787259, -343485551,\n ]);\n\n function hash(data, offset, length) {\n let h0 = 1732584193,\n h1 = -271733879,\n h2 = -1732584194,\n h3 = 271733878;\n // pre-processing\n const paddedLength = (length + 72) & ~63; // data + 9 extra bytes\n const padded = new Uint8Array(paddedLength);\n let i, j;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n const n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = (length << 3) & 0xff;\n padded[i++] = (length >> 5) & 0xff;\n padded[i++] = (length >> 13) & 0xff;\n padded[i++] = (length >> 21) & 0xff;\n padded[i++] = (length >>> 29) & 0xff;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n const w = new Int32Array(16);\n for (i = 0; i < paddedLength; ) {\n for (j = 0; j < 16; ++j, i += 4) {\n w[j] =\n padded[i] |\n (padded[i + 1] << 8) |\n (padded[i + 2] << 16) |\n (padded[i + 3] << 24);\n }\n let a = h0,\n b = h1,\n c = h2,\n d = h3,\n f,\n g;\n for (j = 0; j < 64; ++j) {\n if (j < 16) {\n f = (b & c) | (~b & d);\n g = j;\n } else if (j < 32) {\n f = (d & b) | (~d & c);\n g = (5 * j + 1) & 15;\n } else if (j < 48) {\n f = b ^ c ^ d;\n g = (3 * j + 5) & 15;\n } else {\n f = c ^ (b | ~d);\n g = (7 * j) & 15;\n }\n const tmp = d,\n rotateArg = (a + f + k[j] + w[g]) | 0,\n rotate = r[j];\n d = c;\n c = b;\n b = (b + ((rotateArg << rotate) | (rotateArg >>> (32 - rotate)))) | 0;\n a = tmp;\n }\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n }\n // prettier-ignore\n return new Uint8Array([\n h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >>> 24) & 0xFF,\n h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >>> 24) & 0xFF,\n h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >>> 24) & 0xFF,\n h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >>> 24) & 0xFF\n ]);\n }\n\n return hash;\n})();\n\nclass Word64 {\n constructor(highInteger, lowInteger) {\n this.high = highInteger | 0;\n this.low = lowInteger | 0;\n }\n\n and(word) {\n this.high &= word.high;\n this.low &= word.low;\n }\n\n xor(word) {\n this.high ^= word.high;\n this.low ^= word.low;\n }\n\n or(word) {\n this.high |= word.high;\n this.low |= word.low;\n }\n\n shiftRight(places) {\n if (places >= 32) {\n this.low = (this.high >>> (places - 32)) | 0;\n this.high = 0;\n } else {\n this.low = (this.low >>> places) | (this.high << (32 - places));\n this.high = (this.high >>> places) | 0;\n }\n }\n\n shiftLeft(places) {\n if (places >= 32) {\n this.high = this.low << (places - 32);\n this.low = 0;\n } else {\n this.high = (this.high << places) | (this.low >>> (32 - places));\n this.low <<= places;\n }\n }\n\n rotateRight(places) {\n let low, high;\n if (places & 32) {\n high = this.low;\n low = this.high;\n } else {\n low = this.low;\n high = this.high;\n }\n places &= 31;\n this.low = (low >>> places) | (high << (32 - places));\n this.high = (high >>> places) | (low << (32 - places));\n }\n\n not() {\n this.high = ~this.high;\n this.low = ~this.low;\n }\n\n add(word) {\n const lowAdd = (this.low >>> 0) + (word.low >>> 0);\n let highAdd = (this.high >>> 0) + (word.high >>> 0);\n if (lowAdd > 0xffffffff) {\n highAdd += 1;\n }\n this.low = lowAdd | 0;\n this.high = highAdd | 0;\n }\n\n copyTo(bytes, offset) {\n bytes[offset] = (this.high >>> 24) & 0xff;\n bytes[offset + 1] = (this.high >> 16) & 0xff;\n bytes[offset + 2] = (this.high >> 8) & 0xff;\n bytes[offset + 3] = this.high & 0xff;\n bytes[offset + 4] = (this.low >>> 24) & 0xff;\n bytes[offset + 5] = (this.low >> 16) & 0xff;\n bytes[offset + 6] = (this.low >> 8) & 0xff;\n bytes[offset + 7] = this.low & 0xff;\n }\n\n assign(word) {\n this.high = word.high;\n this.low = word.low;\n }\n}\n\nconst calculateSHA256 = (function calculateSHA256Closure() {\n function rotr(x, n) {\n return (x >>> n) | (x << (32 - n));\n }\n\n function ch(x, y, z) {\n return (x & y) ^ (~x & z);\n }\n\n function maj(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n }\n\n function sigma(x) {\n return rotr(x, 2) ^ rotr(x, 13) ^ rotr(x, 22);\n }\n\n function sigmaPrime(x) {\n return rotr(x, 6) ^ rotr(x, 11) ^ rotr(x, 25);\n }\n\n function littleSigma(x) {\n return rotr(x, 7) ^ rotr(x, 18) ^ (x >>> 3);\n }\n\n function littleSigmaPrime(x) {\n return rotr(x, 17) ^ rotr(x, 19) ^ (x >>> 10);\n }\n\n const k = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1,\n 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, 0xe49b69c1, 0xefbe4786,\n 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, 0xa2bfe8a1, 0xa81a664b,\n 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a,\n 0x5b9cca4f, 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n ];\n\n function hash(data, offset, length) {\n // initial hash values\n let h0 = 0x6a09e667,\n h1 = 0xbb67ae85,\n h2 = 0x3c6ef372,\n h3 = 0xa54ff53a,\n h4 = 0x510e527f,\n h5 = 0x9b05688c,\n h6 = 0x1f83d9ab,\n h7 = 0x5be0cd19;\n // pre-processing\n const paddedLength = Math.ceil((length + 9) / 64) * 64;\n const padded = new Uint8Array(paddedLength);\n let i, j;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n const n = paddedLength - 8;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = (length >>> 29) & 0xff;\n padded[i++] = (length >> 21) & 0xff;\n padded[i++] = (length >> 13) & 0xff;\n padded[i++] = (length >> 5) & 0xff;\n padded[i++] = (length << 3) & 0xff;\n const w = new Uint32Array(64);\n // for each 512 bit block\n for (i = 0; i < paddedLength; ) {\n for (j = 0; j < 16; ++j) {\n w[j] =\n (padded[i] << 24) |\n (padded[i + 1] << 16) |\n (padded[i + 2] << 8) |\n padded[i + 3];\n i += 4;\n }\n\n for (j = 16; j < 64; ++j) {\n w[j] =\n (littleSigmaPrime(w[j - 2]) +\n w[j - 7] +\n littleSigma(w[j - 15]) +\n w[j - 16]) |\n 0;\n }\n let a = h0,\n b = h1,\n c = h2,\n d = h3,\n e = h4,\n f = h5,\n g = h6,\n h = h7,\n t1,\n t2;\n for (j = 0; j < 64; ++j) {\n t1 = h + sigmaPrime(e) + ch(e, f, g) + k[j] + w[j];\n t2 = sigma(a) + maj(a, b, c);\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0;\n h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0;\n h7 = (h7 + h) | 0;\n }\n // prettier-ignore\n return new Uint8Array([\n (h0 >> 24) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 8) & 0xFF, (h0) & 0xFF,\n (h1 >> 24) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 8) & 0xFF, (h1) & 0xFF,\n (h2 >> 24) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 8) & 0xFF, (h2) & 0xFF,\n (h3 >> 24) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 8) & 0xFF, (h3) & 0xFF,\n (h4 >> 24) & 0xFF, (h4 >> 16) & 0xFF, (h4 >> 8) & 0xFF, (h4) & 0xFF,\n (h5 >> 24) & 0xFF, (h5 >> 16) & 0xFF, (h5 >> 8) & 0xFF, (h5) & 0xFF,\n (h6 >> 24) & 0xFF, (h6 >> 16) & 0xFF, (h6 >> 8) & 0xFF, (h6) & 0xFF,\n (h7 >> 24) & 0xFF, (h7 >> 16) & 0xFF, (h7 >> 8) & 0xFF, (h7) & 0xFF\n ]);\n }\n\n return hash;\n})();\n\nconst calculateSHA512 = (function calculateSHA512Closure() {\n function ch(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.not();\n tmp.and(z);\n result.xor(tmp);\n }\n\n function maj(result, x, y, z, tmp) {\n result.assign(x);\n result.and(y);\n tmp.assign(x);\n tmp.and(z);\n result.xor(tmp);\n tmp.assign(y);\n tmp.and(z);\n result.xor(tmp);\n }\n\n function sigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(28);\n tmp.assign(x);\n tmp.rotateRight(34);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(39);\n result.xor(tmp);\n }\n\n function sigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(14);\n tmp.assign(x);\n tmp.rotateRight(18);\n result.xor(tmp);\n tmp.assign(x);\n tmp.rotateRight(41);\n result.xor(tmp);\n }\n\n function littleSigma(result, x, tmp) {\n result.assign(x);\n result.rotateRight(1);\n tmp.assign(x);\n tmp.rotateRight(8);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(7);\n result.xor(tmp);\n }\n\n function littleSigmaPrime(result, x, tmp) {\n result.assign(x);\n result.rotateRight(19);\n tmp.assign(x);\n tmp.rotateRight(61);\n result.xor(tmp);\n tmp.assign(x);\n tmp.shiftRight(6);\n result.xor(tmp);\n }\n\n // prettier-ignore\n const k = [\n new Word64(0x428a2f98, 0xd728ae22), new Word64(0x71374491, 0x23ef65cd),\n new Word64(0xb5c0fbcf, 0xec4d3b2f), new Word64(0xe9b5dba5, 0x8189dbbc),\n new Word64(0x3956c25b, 0xf348b538), new Word64(0x59f111f1, 0xb605d019),\n new Word64(0x923f82a4, 0xaf194f9b), new Word64(0xab1c5ed5, 0xda6d8118),\n new Word64(0xd807aa98, 0xa3030242), new Word64(0x12835b01, 0x45706fbe),\n new Word64(0x243185be, 0x4ee4b28c), new Word64(0x550c7dc3, 0xd5ffb4e2),\n new Word64(0x72be5d74, 0xf27b896f), new Word64(0x80deb1fe, 0x3b1696b1),\n new Word64(0x9bdc06a7, 0x25c71235), new Word64(0xc19bf174, 0xcf692694),\n new Word64(0xe49b69c1, 0x9ef14ad2), new Word64(0xefbe4786, 0x384f25e3),\n new Word64(0x0fc19dc6, 0x8b8cd5b5), new Word64(0x240ca1cc, 0x77ac9c65),\n new Word64(0x2de92c6f, 0x592b0275), new Word64(0x4a7484aa, 0x6ea6e483),\n new Word64(0x5cb0a9dc, 0xbd41fbd4), new Word64(0x76f988da, 0x831153b5),\n new Word64(0x983e5152, 0xee66dfab), new Word64(0xa831c66d, 0x2db43210),\n new Word64(0xb00327c8, 0x98fb213f), new Word64(0xbf597fc7, 0xbeef0ee4),\n new Word64(0xc6e00bf3, 0x3da88fc2), new Word64(0xd5a79147, 0x930aa725),\n new Word64(0x06ca6351, 0xe003826f), new Word64(0x14292967, 0x0a0e6e70),\n new Word64(0x27b70a85, 0x46d22ffc), new Word64(0x2e1b2138, 0x5c26c926),\n new Word64(0x4d2c6dfc, 0x5ac42aed), new Word64(0x53380d13, 0x9d95b3df),\n new Word64(0x650a7354, 0x8baf63de), new Word64(0x766a0abb, 0x3c77b2a8),\n new Word64(0x81c2c92e, 0x47edaee6), new Word64(0x92722c85, 0x1482353b),\n new Word64(0xa2bfe8a1, 0x4cf10364), new Word64(0xa81a664b, 0xbc423001),\n new Word64(0xc24b8b70, 0xd0f89791), new Word64(0xc76c51a3, 0x0654be30),\n new Word64(0xd192e819, 0xd6ef5218), new Word64(0xd6990624, 0x5565a910),\n new Word64(0xf40e3585, 0x5771202a), new Word64(0x106aa070, 0x32bbd1b8),\n new Word64(0x19a4c116, 0xb8d2d0c8), new Word64(0x1e376c08, 0x5141ab53),\n new Word64(0x2748774c, 0xdf8eeb99), new Word64(0x34b0bcb5, 0xe19b48a8),\n new Word64(0x391c0cb3, 0xc5c95a63), new Word64(0x4ed8aa4a, 0xe3418acb),\n new Word64(0x5b9cca4f, 0x7763e373), new Word64(0x682e6ff3, 0xd6b2b8a3),\n new Word64(0x748f82ee, 0x5defb2fc), new Word64(0x78a5636f, 0x43172f60),\n new Word64(0x84c87814, 0xa1f0ab72), new Word64(0x8cc70208, 0x1a6439ec),\n new Word64(0x90befffa, 0x23631e28), new Word64(0xa4506ceb, 0xde82bde9),\n new Word64(0xbef9a3f7, 0xb2c67915), new Word64(0xc67178f2, 0xe372532b),\n new Word64(0xca273ece, 0xea26619c), new Word64(0xd186b8c7, 0x21c0c207),\n new Word64(0xeada7dd6, 0xcde0eb1e), new Word64(0xf57d4f7f, 0xee6ed178),\n new Word64(0x06f067aa, 0x72176fba), new Word64(0x0a637dc5, 0xa2c898a6),\n new Word64(0x113f9804, 0xbef90dae), new Word64(0x1b710b35, 0x131c471b),\n new Word64(0x28db77f5, 0x23047d84), new Word64(0x32caab7b, 0x40c72493),\n new Word64(0x3c9ebe0a, 0x15c9bebc), new Word64(0x431d67c4, 0x9c100d4c),\n new Word64(0x4cc5d4be, 0xcb3e42b6), new Word64(0x597f299c, 0xfc657e2a),\n new Word64(0x5fcb6fab, 0x3ad6faec), new Word64(0x6c44198c, 0x4a475817)];\n\n function hash(data, offset, length, mode384 = false) {\n // initial hash values\n let h0, h1, h2, h3, h4, h5, h6, h7;\n if (!mode384) {\n h0 = new Word64(0x6a09e667, 0xf3bcc908);\n h1 = new Word64(0xbb67ae85, 0x84caa73b);\n h2 = new Word64(0x3c6ef372, 0xfe94f82b);\n h3 = new Word64(0xa54ff53a, 0x5f1d36f1);\n h4 = new Word64(0x510e527f, 0xade682d1);\n h5 = new Word64(0x9b05688c, 0x2b3e6c1f);\n h6 = new Word64(0x1f83d9ab, 0xfb41bd6b);\n h7 = new Word64(0x5be0cd19, 0x137e2179);\n } else {\n // SHA384 is exactly the same\n // except with different starting values and a trimmed result\n h0 = new Word64(0xcbbb9d5d, 0xc1059ed8);\n h1 = new Word64(0x629a292a, 0x367cd507);\n h2 = new Word64(0x9159015a, 0x3070dd17);\n h3 = new Word64(0x152fecd8, 0xf70e5939);\n h4 = new Word64(0x67332667, 0xffc00b31);\n h5 = new Word64(0x8eb44a87, 0x68581511);\n h6 = new Word64(0xdb0c2e0d, 0x64f98fa7);\n h7 = new Word64(0x47b5481d, 0xbefa4fa4);\n }\n\n // pre-processing\n const paddedLength = Math.ceil((length + 17) / 128) * 128;\n const padded = new Uint8Array(paddedLength);\n let i, j;\n for (i = 0; i < length; ++i) {\n padded[i] = data[offset++];\n }\n padded[i++] = 0x80;\n const n = paddedLength - 16;\n while (i < n) {\n padded[i++] = 0;\n }\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = 0;\n padded[i++] = (length >>> 29) & 0xff;\n padded[i++] = (length >> 21) & 0xff;\n padded[i++] = (length >> 13) & 0xff;\n padded[i++] = (length >> 5) & 0xff;\n padded[i++] = (length << 3) & 0xff;\n\n const w = new Array(80);\n for (i = 0; i < 80; i++) {\n w[i] = new Word64(0, 0);\n }\n let a = new Word64(0, 0),\n b = new Word64(0, 0),\n c = new Word64(0, 0);\n let d = new Word64(0, 0),\n e = new Word64(0, 0),\n f = new Word64(0, 0);\n let g = new Word64(0, 0),\n h = new Word64(0, 0);\n const t1 = new Word64(0, 0),\n t2 = new Word64(0, 0);\n const tmp1 = new Word64(0, 0),\n tmp2 = new Word64(0, 0);\n let tmp3;\n\n // for each 1024 bit block\n for (i = 0; i < paddedLength; ) {\n for (j = 0; j < 16; ++j) {\n w[j].high =\n (padded[i] << 24) |\n (padded[i + 1] << 16) |\n (padded[i + 2] << 8) |\n padded[i + 3];\n w[j].low =\n (padded[i + 4] << 24) |\n (padded[i + 5] << 16) |\n (padded[i + 6] << 8) |\n padded[i + 7];\n i += 8;\n }\n for (j = 16; j < 80; ++j) {\n tmp3 = w[j];\n littleSigmaPrime(tmp3, w[j - 2], tmp2);\n tmp3.add(w[j - 7]);\n littleSigma(tmp1, w[j - 15], tmp2);\n tmp3.add(tmp1);\n tmp3.add(w[j - 16]);\n }\n\n a.assign(h0);\n b.assign(h1);\n c.assign(h2);\n d.assign(h3);\n e.assign(h4);\n f.assign(h5);\n g.assign(h6);\n h.assign(h7);\n for (j = 0; j < 80; ++j) {\n t1.assign(h);\n sigmaPrime(tmp1, e, tmp2);\n t1.add(tmp1);\n ch(tmp1, e, f, g, tmp2);\n t1.add(tmp1);\n t1.add(k[j]);\n t1.add(w[j]);\n\n sigma(t2, a, tmp2);\n maj(tmp1, a, b, c, tmp2);\n t2.add(tmp1);\n\n tmp3 = h;\n h = g;\n g = f;\n f = e;\n d.add(t1);\n e = d;\n d = c;\n c = b;\n b = a;\n tmp3.assign(t1);\n tmp3.add(t2);\n a = tmp3;\n }\n h0.add(a);\n h1.add(b);\n h2.add(c);\n h3.add(d);\n h4.add(e);\n h5.add(f);\n h6.add(g);\n h7.add(h);\n }\n\n let result;\n if (!mode384) {\n result = new Uint8Array(64);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n h6.copyTo(result, 48);\n h7.copyTo(result, 56);\n } else {\n result = new Uint8Array(48);\n h0.copyTo(result, 0);\n h1.copyTo(result, 8);\n h2.copyTo(result, 16);\n h3.copyTo(result, 24);\n h4.copyTo(result, 32);\n h5.copyTo(result, 40);\n }\n return result;\n }\n\n return hash;\n})();\n\nfunction calculateSHA384(data, offset, length) {\n return calculateSHA512(data, offset, length, /* mode384 = */ true);\n}\n\nclass NullCipher {\n decryptBlock(data) {\n return data;\n }\n\n encrypt(data) {\n return data;\n }\n}\n\nclass AESBaseCipher {\n constructor() {\n if (this.constructor === AESBaseCipher) {\n unreachable(\"Cannot initialize AESBaseCipher.\");\n }\n\n this._s = new Uint8Array([\n 0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b,\n 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0,\n 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26,\n 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,\n 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2,\n 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0,\n 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed,\n 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,\n 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f,\n 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5,\n 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec,\n 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,\n 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14,\n 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c,\n 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d,\n 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,\n 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f,\n 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e,\n 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11,\n 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,\n 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f,\n 0xb0, 0x54, 0xbb, 0x16,\n ]);\n\n this._inv_s = new Uint8Array([\n 0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e,\n 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87,\n 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32,\n 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e,\n 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49,\n 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16,\n 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50,\n 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84,\n 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05,\n 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02,\n 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41,\n 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73,\n 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8,\n 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89,\n 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b,\n 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4,\n 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59,\n 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d,\n 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d,\n 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61,\n 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63,\n 0x55, 0x21, 0x0c, 0x7d,\n ]);\n\n this._mix = new Uint32Array([\n 0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927,\n 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45,\n 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb,\n 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381,\n 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf,\n 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66,\n 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28,\n 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012,\n 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec,\n 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e,\n 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd,\n 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7,\n 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89,\n 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b,\n 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815,\n 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f,\n 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa,\n 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8,\n 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36,\n 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c,\n 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742,\n 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea,\n 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4,\n 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e,\n 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360,\n 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502,\n 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87,\n 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd,\n 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3,\n 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621,\n 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f,\n 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55,\n 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26,\n 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844,\n 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba,\n 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480,\n 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce,\n 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67,\n 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929,\n 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713,\n 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed,\n 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f,\n 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3,\n ]);\n\n this._mixCol = new Uint8Array(256);\n for (let i = 0; i < 256; i++) {\n this._mixCol[i] = i < 128 ? i << 1 : (i << 1) ^ 0x1b;\n }\n\n this.buffer = new Uint8Array(16);\n this.bufferPosition = 0;\n }\n\n _expandKey(cipherKey) {\n unreachable(\"Cannot call `_expandKey` on the base class\");\n }\n\n _decrypt(input, key) {\n let t, u, v;\n const state = new Uint8Array(16);\n state.set(input);\n\n // AddRoundKey\n for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n for (let i = this._cyclesOfRepetition - 1; i >= 1; --i) {\n // InvShiftRows\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n // InvSubBytes\n for (let j = 0; j < 16; ++j) {\n state[j] = this._inv_s[state[j]];\n }\n // AddRoundKey\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n // InvMixColumns\n for (let j = 0; j < 16; j += 4) {\n const s0 = this._mix[state[j]];\n const s1 = this._mix[state[j + 1]];\n const s2 = this._mix[state[j + 2]];\n const s3 = this._mix[state[j + 3]];\n t =\n s0 ^\n (s1 >>> 8) ^\n (s1 << 24) ^\n (s2 >>> 16) ^\n (s2 << 16) ^\n (s3 >>> 24) ^\n (s3 << 8);\n state[j] = (t >>> 24) & 0xff;\n state[j + 1] = (t >> 16) & 0xff;\n state[j + 2] = (t >> 8) & 0xff;\n state[j + 3] = t & 0xff;\n }\n }\n // InvShiftRows\n t = state[13];\n state[13] = state[9];\n state[9] = state[5];\n state[5] = state[1];\n state[1] = t;\n t = state[14];\n u = state[10];\n state[14] = state[6];\n state[10] = state[2];\n state[6] = t;\n state[2] = u;\n t = state[15];\n u = state[11];\n v = state[7];\n state[15] = state[3];\n state[11] = t;\n state[7] = u;\n state[3] = v;\n for (let j = 0; j < 16; ++j) {\n // InvSubBytes\n state[j] = this._inv_s[state[j]];\n // AddRoundKey\n state[j] ^= key[j];\n }\n return state;\n }\n\n _encrypt(input, key) {\n const s = this._s;\n\n let t, u, v;\n const state = new Uint8Array(16);\n state.set(input);\n\n for (let j = 0; j < 16; ++j) {\n // AddRoundKey\n state[j] ^= key[j];\n }\n\n for (let i = 1; i < this._cyclesOfRepetition; i++) {\n // SubBytes\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n // ShiftRows\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n // MixColumns\n for (let j = 0; j < 16; j += 4) {\n const s0 = state[j + 0];\n const s1 = state[j + 1];\n const s2 = state[j + 2];\n const s3 = state[j + 3];\n t = s0 ^ s1 ^ s2 ^ s3;\n state[j + 0] ^= t ^ this._mixCol[s0 ^ s1];\n state[j + 1] ^= t ^ this._mixCol[s1 ^ s2];\n state[j + 2] ^= t ^ this._mixCol[s2 ^ s3];\n state[j + 3] ^= t ^ this._mixCol[s3 ^ s0];\n }\n // AddRoundKey\n for (let j = 0, k = i * 16; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n }\n\n // SubBytes\n for (let j = 0; j < 16; ++j) {\n state[j] = s[state[j]];\n }\n // ShiftRows\n v = state[1];\n state[1] = state[5];\n state[5] = state[9];\n state[9] = state[13];\n state[13] = v;\n v = state[2];\n u = state[6];\n state[2] = state[10];\n state[6] = state[14];\n state[10] = v;\n state[14] = u;\n v = state[3];\n u = state[7];\n t = state[11];\n state[3] = state[15];\n state[7] = v;\n state[11] = u;\n state[15] = t;\n // AddRoundKey\n for (let j = 0, k = this._keySize; j < 16; ++j, ++k) {\n state[j] ^= key[k];\n }\n return state;\n }\n\n _decryptBlock2(data, finalize) {\n const sourceLength = data.length;\n let buffer = this.buffer,\n bufferLength = this.bufferPosition;\n const result = [];\n let iv = this.iv;\n\n for (let i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n // buffer is full, decrypting\n const plain = this._decrypt(buffer, this._key);\n // xor-ing the IV vector to get plain text\n for (let j = 0; j < 16; ++j) {\n plain[j] ^= iv[j];\n }\n iv = buffer;\n result.push(plain);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n // saving incomplete buffer\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n // combining plain text blocks into one\n let outputLength = 16 * result.length;\n if (finalize) {\n // undo a padding that is described in RFC 2898\n const lastBlock = result.at(-1);\n let psLen = lastBlock[15];\n if (psLen <= 16) {\n for (let i = 15, ii = 16 - psLen; i >= ii; --i) {\n if (lastBlock[i] !== psLen) {\n // Invalid padding, assume that the block has no padding.\n psLen = 0;\n break;\n }\n }\n outputLength -= psLen;\n result[result.length - 1] = lastBlock.subarray(0, 16 - psLen);\n }\n }\n const output = new Uint8Array(outputLength);\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n\n decryptBlock(data, finalize, iv = null) {\n const sourceLength = data.length;\n const buffer = this.buffer;\n let bufferLength = this.bufferPosition;\n // If an IV is not supplied, wait for IV values. They are at the start\n // of the stream.\n if (iv) {\n this.iv = iv;\n } else {\n for (\n let i = 0;\n bufferLength < 16 && i < sourceLength;\n ++i, ++bufferLength\n ) {\n buffer[bufferLength] = data[i];\n }\n if (bufferLength < 16) {\n // Need more data.\n this.bufferLength = bufferLength;\n return new Uint8Array(0);\n }\n this.iv = buffer;\n data = data.subarray(16);\n }\n this.buffer = new Uint8Array(16);\n this.bufferLength = 0;\n // starting decryption\n this.decryptBlock = this._decryptBlock2;\n return this.decryptBlock(data, finalize);\n }\n\n encrypt(data, iv) {\n const sourceLength = data.length;\n let buffer = this.buffer,\n bufferLength = this.bufferPosition;\n const result = [];\n\n if (!iv) {\n iv = new Uint8Array(16);\n }\n for (let i = 0; i < sourceLength; ++i) {\n buffer[bufferLength] = data[i];\n ++bufferLength;\n if (bufferLength < 16) {\n continue;\n }\n\n for (let j = 0; j < 16; ++j) {\n buffer[j] ^= iv[j];\n }\n\n // buffer is full, encrypting\n const cipher = this._encrypt(buffer, this._key);\n iv = cipher;\n result.push(cipher);\n buffer = new Uint8Array(16);\n bufferLength = 0;\n }\n // saving incomplete buffer\n this.buffer = buffer;\n this.bufferLength = bufferLength;\n this.iv = iv;\n if (result.length === 0) {\n return new Uint8Array(0);\n }\n // combining plain text blocks into one\n const outputLength = 16 * result.length;\n const output = new Uint8Array(outputLength);\n for (let i = 0, j = 0, ii = result.length; i < ii; ++i, j += 16) {\n output.set(result[i], j);\n }\n return output;\n }\n}\n\nclass AES128Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n\n this._cyclesOfRepetition = 10;\n this._keySize = 160; // bits\n\n this._rcon = new Uint8Array([\n 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,\n 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6,\n 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72,\n 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc,\n 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10,\n 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e,\n 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5,\n 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94,\n 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb, 0x8d, 0x01, 0x02,\n 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d,\n 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d,\n 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd, 0x61, 0xc2, 0x9f,\n 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a, 0x74, 0xe8, 0xcb,\n 0x8d, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c,\n 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a,\n 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91, 0x39, 0x72, 0xe4, 0xd3, 0xbd,\n 0x61, 0xc2, 0x9f, 0x25, 0x4a, 0x94, 0x33, 0x66, 0xcc, 0x83, 0x1d, 0x3a,\n 0x74, 0xe8, 0xcb, 0x8d,\n ]);\n\n this._key = this._expandKey(key);\n }\n\n _expandKey(cipherKey) {\n const b = 176;\n const s = this._s;\n const rcon = this._rcon;\n\n const result = new Uint8Array(b);\n result.set(cipherKey);\n\n for (let j = 16, i = 1; j < b; ++i) {\n // RotWord\n let t1 = result[j - 3];\n let t2 = result[j - 2];\n let t3 = result[j - 1];\n let t4 = result[j - 4];\n // SubWord\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n // Rcon\n t1 ^= rcon[i];\n for (let n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 16];\n j++;\n result[j] = t2 ^= result[j - 16];\n j++;\n result[j] = t3 ^= result[j - 16];\n j++;\n result[j] = t4 ^= result[j - 16];\n j++;\n }\n }\n return result;\n }\n}\n\nclass AES256Cipher extends AESBaseCipher {\n constructor(key) {\n super();\n\n this._cyclesOfRepetition = 14;\n this._keySize = 224; // bits\n\n this._key = this._expandKey(key);\n }\n\n _expandKey(cipherKey) {\n const b = 240;\n const s = this._s;\n\n const result = new Uint8Array(b);\n result.set(cipherKey);\n\n let r = 1;\n let t1, t2, t3, t4;\n for (let j = 32, i = 1; j < b; ++i) {\n if (j % 32 === 16) {\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n } else if (j % 32 === 0) {\n // RotWord\n t1 = result[j - 3];\n t2 = result[j - 2];\n t3 = result[j - 1];\n t4 = result[j - 4];\n // SubWord\n t1 = s[t1];\n t2 = s[t2];\n t3 = s[t3];\n t4 = s[t4];\n // Rcon\n t1 ^= r;\n if ((r <<= 1) >= 256) {\n r = (r ^ 0x1b) & 0xff;\n }\n }\n\n for (let n = 0; n < 4; ++n) {\n result[j] = t1 ^= result[j - 32];\n j++;\n result[j] = t2 ^= result[j - 32];\n j++;\n result[j] = t3 ^= result[j - 32];\n j++;\n result[j] = t4 ^= result[j - 32];\n j++;\n }\n }\n return result;\n }\n}\n\nclass PDF17 {\n checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n const result = calculateSHA256(hashData, 0, hashData.length);\n return isArrayEqual(result, ownerPassword);\n }\n\n checkUserPassword(password, userValidationSalt, userPassword) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n const result = calculateSHA256(hashData, 0, hashData.length);\n return isArrayEqual(result, userPassword);\n }\n\n getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n const key = calculateSHA256(hashData, 0, hashData.length);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n }\n\n getUserKey(password, userKeySalt, userEncryption) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n // `key` is the decryption key for the UE string.\n const key = calculateSHA256(hashData, 0, hashData.length);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n}\n\nclass PDF20 {\n _hash(password, input, userBytes) {\n // This refers to Algorithm 2.B as defined in ISO 32000-2.\n let k = calculateSHA256(input, 0, input.length).subarray(0, 32);\n let e = [0];\n let i = 0;\n while (i < 64 || e.at(-1) > i - 32) {\n const combinedLength = password.length + k.length + userBytes.length,\n combinedArray = new Uint8Array(combinedLength);\n let writeOffset = 0;\n combinedArray.set(password, writeOffset);\n writeOffset += password.length;\n combinedArray.set(k, writeOffset);\n writeOffset += k.length;\n combinedArray.set(userBytes, writeOffset);\n\n const k1 = new Uint8Array(combinedLength * 64);\n for (let j = 0, pos = 0; j < 64; j++, pos += combinedLength) {\n k1.set(combinedArray, pos);\n }\n // AES128 CBC NO PADDING with first 16 bytes of k as the key\n // and the second 16 as the iv.\n const cipher = new AES128Cipher(k.subarray(0, 16));\n e = cipher.encrypt(k1, k.subarray(16, 32));\n // Now we have to take the first 16 bytes of an unsigned big endian\n // integer and compute the remainder modulo 3. That is a fairly large\n // number and JavaScript isn't going to handle that well.\n // The number is e0 + 256 * e1 + 256^2 * e2... and 256 % 3 === 1, hence\n // the powers of 256 are === 1 modulo 3 and finally the number modulo 3\n // is equal to the remainder modulo 3 of the sum of the e_n.\n const remainder = e.slice(0, 16).reduce((a, b) => a + b, 0) % 3;\n if (remainder === 0) {\n k = calculateSHA256(e, 0, e.length);\n } else if (remainder === 1) {\n k = calculateSHA384(e, 0, e.length);\n } else if (remainder === 2) {\n k = calculateSHA512(e, 0, e.length);\n }\n i++;\n }\n return k.subarray(0, 32);\n }\n\n checkOwnerPassword(password, ownerValidationSalt, userBytes, ownerPassword) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerValidationSalt, password.length);\n hashData.set(userBytes, password.length + ownerValidationSalt.length);\n const result = this._hash(password, hashData, userBytes);\n return isArrayEqual(result, ownerPassword);\n }\n\n checkUserPassword(password, userValidationSalt, userPassword) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userValidationSalt, password.length);\n const result = this._hash(password, hashData, []);\n return isArrayEqual(result, userPassword);\n }\n\n getOwnerKey(password, ownerKeySalt, userBytes, ownerEncryption) {\n const hashData = new Uint8Array(password.length + 56);\n hashData.set(password, 0);\n hashData.set(ownerKeySalt, password.length);\n hashData.set(userBytes, password.length + ownerKeySalt.length);\n const key = this._hash(password, hashData, userBytes);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(ownerEncryption, false, new Uint8Array(16));\n }\n\n getUserKey(password, userKeySalt, userEncryption) {\n const hashData = new Uint8Array(password.length + 8);\n hashData.set(password, 0);\n hashData.set(userKeySalt, password.length);\n // `key` is the decryption key for the UE string.\n const key = this._hash(password, hashData, []);\n const cipher = new AES256Cipher(key);\n return cipher.decryptBlock(userEncryption, false, new Uint8Array(16));\n }\n}\n\nclass CipherTransform {\n constructor(stringCipherConstructor, streamCipherConstructor) {\n this.StringCipherConstructor = stringCipherConstructor;\n this.StreamCipherConstructor = streamCipherConstructor;\n }\n\n createStream(stream, length) {\n const cipher = new this.StreamCipherConstructor();\n return new DecryptStream(\n stream,\n length,\n function cipherTransformDecryptStream(data, finalize) {\n return cipher.decryptBlock(data, finalize);\n }\n );\n }\n\n decryptString(s) {\n const cipher = new this.StringCipherConstructor();\n let data = stringToBytes(s);\n data = cipher.decryptBlock(data, true);\n return bytesToString(data);\n }\n\n encryptString(s) {\n const cipher = new this.StringCipherConstructor();\n if (cipher instanceof AESBaseCipher) {\n // Append some chars equal to \"16 - (M mod 16)\"\n // where M is the string length (see section 7.6.2 in PDF specification)\n // to have a final string where the length is a multiple of 16.\n // Special note:\n // \"Note that the pad is present when M is evenly divisible by 16;\n // it contains 16 bytes of 0x10.\"\n const strLen = s.length;\n const pad = 16 - (strLen % 16);\n s += String.fromCharCode(pad).repeat(pad);\n\n // Generate an initialization vector\n const iv = new Uint8Array(16);\n if (typeof crypto !== \"undefined\") {\n crypto.getRandomValues(iv);\n } else {\n for (let i = 0; i < 16; i++) {\n iv[i] = Math.floor(256 * Math.random());\n }\n }\n\n let data = stringToBytes(s);\n data = cipher.encrypt(data, iv);\n\n const buf = new Uint8Array(16 + data.length);\n buf.set(iv);\n buf.set(data, 16);\n\n return bytesToString(buf);\n }\n\n let data = stringToBytes(s);\n data = cipher.encrypt(data);\n return bytesToString(data);\n }\n}\n\nclass CipherTransformFactory {\n static #defaultPasswordBytes = new Uint8Array([\n 0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41, 0x64, 0x00, 0x4e, 0x56,\n 0xff, 0xfa, 0x01, 0x08, 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80,\n 0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a,\n ]);\n\n #createEncryptionKey20(\n revision,\n password,\n ownerPassword,\n ownerValidationSalt,\n ownerKeySalt,\n uBytes,\n userPassword,\n userValidationSalt,\n userKeySalt,\n ownerEncryption,\n userEncryption,\n perms\n ) {\n if (password) {\n const passwordLength = Math.min(127, password.length);\n password = password.subarray(0, passwordLength);\n } else {\n password = [];\n }\n const pdfAlgorithm = revision === 6 ? new PDF20() : new PDF17();\n\n if (\n pdfAlgorithm.checkUserPassword(password, userValidationSalt, userPassword)\n ) {\n return pdfAlgorithm.getUserKey(password, userKeySalt, userEncryption);\n } else if (\n password.length &&\n pdfAlgorithm.checkOwnerPassword(\n password,\n ownerValidationSalt,\n uBytes,\n ownerPassword\n )\n ) {\n return pdfAlgorithm.getOwnerKey(\n password,\n ownerKeySalt,\n uBytes,\n ownerEncryption\n );\n }\n\n return null;\n }\n\n #prepareKeyData(\n fileId,\n password,\n ownerPassword,\n userPassword,\n flags,\n revision,\n keyLength,\n encryptMetadata\n ) {\n const hashDataSize = 40 + ownerPassword.length + fileId.length;\n const hashData = new Uint8Array(hashDataSize);\n let i = 0,\n j,\n n;\n if (password) {\n n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n }\n j = 0;\n while (i < 32) {\n hashData[i++] = CipherTransformFactory.#defaultPasswordBytes[j++];\n }\n // as now the padded password in the hashData[0..i]\n for (j = 0, n = ownerPassword.length; j < n; ++j) {\n hashData[i++] = ownerPassword[j];\n }\n hashData[i++] = flags & 0xff;\n hashData[i++] = (flags >> 8) & 0xff;\n hashData[i++] = (flags >> 16) & 0xff;\n hashData[i++] = (flags >>> 24) & 0xff;\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n if (revision >= 4 && !encryptMetadata) {\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n hashData[i++] = 0xff;\n }\n let hash = calculateMD5(hashData, 0, i);\n const keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, keyLengthInBytes);\n }\n }\n const encryptionKey = hash.subarray(0, keyLengthInBytes);\n let cipher, checkData;\n\n if (revision >= 3) {\n for (i = 0; i < 32; ++i) {\n hashData[i] = CipherTransformFactory.#defaultPasswordBytes[i];\n }\n for (j = 0, n = fileId.length; j < n; ++j) {\n hashData[i++] = fileId[j];\n }\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(calculateMD5(hashData, 0, i));\n n = encryptionKey.length;\n const derivedKey = new Uint8Array(n);\n for (j = 1; j <= 19; ++j) {\n for (let k = 0; k < n; ++k) {\n derivedKey[k] = encryptionKey[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n checkData = cipher.encryptBlock(checkData);\n }\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n } else {\n cipher = new ARCFourCipher(encryptionKey);\n checkData = cipher.encryptBlock(\n CipherTransformFactory.#defaultPasswordBytes\n );\n for (j = 0, n = checkData.length; j < n; ++j) {\n if (userPassword[j] !== checkData[j]) {\n return null;\n }\n }\n }\n return encryptionKey;\n }\n\n #decodeUserPassword(password, ownerPassword, revision, keyLength) {\n const hashData = new Uint8Array(32);\n let i = 0;\n const n = Math.min(32, password.length);\n for (; i < n; ++i) {\n hashData[i] = password[i];\n }\n let j = 0;\n while (i < 32) {\n hashData[i++] = CipherTransformFactory.#defaultPasswordBytes[j++];\n }\n let hash = calculateMD5(hashData, 0, i);\n const keyLengthInBytes = keyLength >> 3;\n if (revision >= 3) {\n for (j = 0; j < 50; ++j) {\n hash = calculateMD5(hash, 0, hash.length);\n }\n }\n\n let cipher, userPassword;\n if (revision >= 3) {\n userPassword = ownerPassword;\n const derivedKey = new Uint8Array(keyLengthInBytes);\n for (j = 19; j >= 0; j--) {\n for (let k = 0; k < keyLengthInBytes; ++k) {\n derivedKey[k] = hash[k] ^ j;\n }\n cipher = new ARCFourCipher(derivedKey);\n userPassword = cipher.encryptBlock(userPassword);\n }\n } else {\n cipher = new ARCFourCipher(hash.subarray(0, keyLengthInBytes));\n userPassword = cipher.encryptBlock(ownerPassword);\n }\n return userPassword;\n }\n\n #buildObjectKey(num, gen, encryptionKey, isAes = false) {\n const key = new Uint8Array(encryptionKey.length + 9);\n const n = encryptionKey.length;\n let i;\n for (i = 0; i < n; ++i) {\n key[i] = encryptionKey[i];\n }\n key[i++] = num & 0xff;\n key[i++] = (num >> 8) & 0xff;\n key[i++] = (num >> 16) & 0xff;\n key[i++] = gen & 0xff;\n key[i++] = (gen >> 8) & 0xff;\n if (isAes) {\n key[i++] = 0x73;\n key[i++] = 0x41;\n key[i++] = 0x6c;\n key[i++] = 0x54;\n }\n const hash = calculateMD5(key, 0, i);\n return hash.subarray(0, Math.min(encryptionKey.length + 5, 16));\n }\n\n #buildCipherConstructor(cf, name, num, gen, key) {\n if (!(name instanceof Name)) {\n throw new FormatError(\"Invalid crypt filter name.\");\n }\n const self = this;\n const cryptFilter = cf.get(name.name);\n const cfm = cryptFilter?.get(\"CFM\");\n\n if (!cfm || cfm.name === \"None\") {\n return function () {\n return new NullCipher();\n };\n }\n if (cfm.name === \"V2\") {\n return function () {\n return new ARCFourCipher(\n self.#buildObjectKey(num, gen, key, /* isAes = */ false)\n );\n };\n }\n if (cfm.name === \"AESV2\") {\n return function () {\n return new AES128Cipher(\n self.#buildObjectKey(num, gen, key, /* isAes = */ true)\n );\n };\n }\n if (cfm.name === \"AESV3\") {\n return function () {\n return new AES256Cipher(key);\n };\n }\n throw new FormatError(\"Unknown crypto method\");\n }\n\n constructor(dict, fileId, password) {\n const filter = dict.get(\"Filter\");\n if (!isName(filter, \"Standard\")) {\n throw new FormatError(\"unknown encryption method\");\n }\n this.filterName = filter.name;\n this.dict = dict;\n const algorithm = dict.get(\"V\");\n if (\n !Number.isInteger(algorithm) ||\n (algorithm !== 1 && algorithm !== 2 && algorithm !== 4 && algorithm !== 5)\n ) {\n throw new FormatError(\"unsupported encryption algorithm\");\n }\n this.algorithm = algorithm;\n let keyLength = dict.get(\"Length\");\n if (!keyLength) {\n // Spec asks to rely on encryption dictionary's Length entry, however\n // some PDFs don't have it. Trying to recover.\n if (algorithm <= 3) {\n // For 1 and 2 it's fixed to 40-bit, for 3 40-bit is a minimal value.\n keyLength = 40;\n } else {\n // Trying to find default handler -- it usually has Length.\n const cfDict = dict.get(\"CF\");\n const streamCryptoName = dict.get(\"StmF\");\n if (cfDict instanceof Dict && streamCryptoName instanceof Name) {\n cfDict.suppressEncryption = true; // See comment below.\n const handlerDict = cfDict.get(streamCryptoName.name);\n keyLength = handlerDict?.get(\"Length\") || 128;\n if (keyLength < 40) {\n // Sometimes it's incorrect value of bits, generators specify\n // bytes.\n keyLength <<= 3;\n }\n }\n }\n }\n if (!Number.isInteger(keyLength) || keyLength < 40 || keyLength % 8 !== 0) {\n throw new FormatError(\"invalid key length\");\n }\n\n const ownerBytes = stringToBytes(dict.get(\"O\")),\n userBytes = stringToBytes(dict.get(\"U\"));\n // prepare keys\n const ownerPassword = ownerBytes.subarray(0, 32);\n const userPassword = userBytes.subarray(0, 32);\n const flags = dict.get(\"P\");\n const revision = dict.get(\"R\");\n // meaningful when V is 4 or 5\n const encryptMetadata =\n (algorithm === 4 || algorithm === 5) &&\n dict.get(\"EncryptMetadata\") !== false;\n this.encryptMetadata = encryptMetadata;\n\n const fileIdBytes = stringToBytes(fileId);\n let passwordBytes;\n if (password) {\n if (revision === 6) {\n try {\n password = utf8StringToString(password);\n } catch {\n warn(\n \"CipherTransformFactory: Unable to convert UTF8 encoded password.\"\n );\n }\n }\n passwordBytes = stringToBytes(password);\n }\n\n let encryptionKey;\n if (algorithm !== 5) {\n encryptionKey = this.#prepareKeyData(\n fileIdBytes,\n passwordBytes,\n ownerPassword,\n userPassword,\n flags,\n revision,\n keyLength,\n encryptMetadata\n );\n } else {\n const ownerValidationSalt = ownerBytes.subarray(32, 40);\n const ownerKeySalt = ownerBytes.subarray(40, 48);\n const uBytes = userBytes.subarray(0, 48);\n const userValidationSalt = userBytes.subarray(32, 40);\n const userKeySalt = userBytes.subarray(40, 48);\n const ownerEncryption = stringToBytes(dict.get(\"OE\"));\n const userEncryption = stringToBytes(dict.get(\"UE\"));\n const perms = stringToBytes(dict.get(\"Perms\"));\n encryptionKey = this.#createEncryptionKey20(\n revision,\n passwordBytes,\n ownerPassword,\n ownerValidationSalt,\n ownerKeySalt,\n uBytes,\n userPassword,\n userValidationSalt,\n userKeySalt,\n ownerEncryption,\n userEncryption,\n perms\n );\n }\n if (!encryptionKey && !password) {\n throw new PasswordException(\n \"No password given\",\n PasswordResponses.NEED_PASSWORD\n );\n } else if (!encryptionKey && password) {\n // Attempting use the password as an owner password\n const decodedPassword = this.#decodeUserPassword(\n passwordBytes,\n ownerPassword,\n revision,\n keyLength\n );\n encryptionKey = this.#prepareKeyData(\n fileIdBytes,\n decodedPassword,\n ownerPassword,\n userPassword,\n flags,\n revision,\n keyLength,\n encryptMetadata\n );\n }\n\n if (!encryptionKey) {\n throw new PasswordException(\n \"Incorrect Password\",\n PasswordResponses.INCORRECT_PASSWORD\n );\n }\n\n this.encryptionKey = encryptionKey;\n\n if (algorithm >= 4) {\n const cf = dict.get(\"CF\");\n if (cf instanceof Dict) {\n // The 'CF' dictionary itself should not be encrypted, and by setting\n // `suppressEncryption` we can prevent an infinite loop inside of\n // `XRef_fetchUncompressed` if the dictionary contains indirect\n // objects (fixes issue7665.pdf).\n cf.suppressEncryption = true;\n }\n this.cf = cf;\n this.stmf = dict.get(\"StmF\") || Name.get(\"Identity\");\n this.strf = dict.get(\"StrF\") || Name.get(\"Identity\");\n this.eff = dict.get(\"EFF\") || this.stmf;\n }\n }\n\n createCipherTransform(num, gen) {\n if (this.algorithm === 4 || this.algorithm === 5) {\n return new CipherTransform(\n this.#buildCipherConstructor(\n this.cf,\n this.strf,\n num,\n gen,\n this.encryptionKey\n ),\n this.#buildCipherConstructor(\n this.cf,\n this.stmf,\n num,\n gen,\n this.encryptionKey\n )\n );\n }\n // algorithms 1 and 2\n const key = this.#buildObjectKey(\n num,\n gen,\n this.encryptionKey,\n /* isAes = */ false\n );\n const cipherConstructor = function () {\n return new ARCFourCipher(key);\n };\n return new CipherTransform(cipherConstructor, cipherConstructor);\n }\n}\n\nexport {\n AES128Cipher,\n AES256Cipher,\n ARCFourCipher,\n calculateMD5,\n calculateSHA256,\n calculateSHA384,\n calculateSHA512,\n CipherTransformFactory,\n PDF17,\n PDF20,\n};\n","/* Copyright 2020 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { bytesToString, info, warn } from \"../shared/util.js\";\nimport { Dict, isName, Name, Ref } from \"./primitives.js\";\nimport {\n escapePDFName,\n escapeString,\n numberToString,\n parseXFAPath,\n} from \"./core_utils.js\";\nimport { SimpleDOMNode, SimpleXMLParser } from \"./xml_parser.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { calculateMD5 } from \"./crypto.js\";\n\nasync function writeObject(ref, obj, buffer, { encrypt = null }) {\n const transform = encrypt?.createCipherTransform(ref.num, ref.gen);\n buffer.push(`${ref.num} ${ref.gen} obj\\n`);\n if (obj instanceof Dict) {\n await writeDict(obj, buffer, transform);\n } else if (obj instanceof BaseStream) {\n await writeStream(obj, buffer, transform);\n } else if (Array.isArray(obj)) {\n await writeArray(obj, buffer, transform);\n }\n buffer.push(\"\\nendobj\\n\");\n}\n\nasync function writeDict(dict, buffer, transform) {\n buffer.push(\"<<\");\n for (const key of dict.getKeys()) {\n buffer.push(` /${escapePDFName(key)} `);\n await writeValue(dict.getRaw(key), buffer, transform);\n }\n buffer.push(\">>\");\n}\n\nasync function writeStream(stream, buffer, transform) {\n let bytes = stream.getBytes();\n const { dict } = stream;\n\n const [filter, params] = await Promise.all([\n dict.getAsync(\"Filter\"),\n dict.getAsync(\"DecodeParms\"),\n ]);\n\n const filterZero = Array.isArray(filter)\n ? await dict.xref.fetchIfRefAsync(filter[0])\n : filter;\n const isFilterZeroFlateDecode = isName(filterZero, \"FlateDecode\");\n\n // If the string is too small there is no real benefit in compressing it.\n // The number 256 is arbitrary, but it should be reasonable.\n const MIN_LENGTH_FOR_COMPRESSING = 256;\n\n if (\n typeof CompressionStream !== \"undefined\" &&\n (bytes.length >= MIN_LENGTH_FOR_COMPRESSING || isFilterZeroFlateDecode)\n ) {\n try {\n const cs = new CompressionStream(\"deflate\");\n const writer = cs.writable.getWriter();\n writer.write(bytes);\n writer.close();\n\n // Response::text doesn't return the correct data.\n const buf = await new Response(cs.readable).arrayBuffer();\n bytes = new Uint8Array(buf);\n\n let newFilter, newParams;\n if (!filter) {\n newFilter = Name.get(\"FlateDecode\");\n } else if (!isFilterZeroFlateDecode) {\n newFilter = Array.isArray(filter)\n ? [Name.get(\"FlateDecode\"), ...filter]\n : [Name.get(\"FlateDecode\"), filter];\n if (params) {\n newParams = Array.isArray(params)\n ? [null, ...params]\n : [null, params];\n }\n }\n if (newFilter) {\n dict.set(\"Filter\", newFilter);\n }\n if (newParams) {\n dict.set(\"DecodeParms\", newParams);\n }\n } catch (ex) {\n info(`writeStream - cannot compress data: \"${ex}\".`);\n }\n }\n\n let string = bytesToString(bytes);\n if (transform) {\n string = transform.encryptString(string);\n }\n\n dict.set(\"Length\", string.length);\n await writeDict(dict, buffer, transform);\n buffer.push(\" stream\\n\", string, \"\\nendstream\");\n}\n\nasync function writeArray(array, buffer, transform) {\n buffer.push(\"[\");\n let first = true;\n for (const val of array) {\n if (!first) {\n buffer.push(\" \");\n } else {\n first = false;\n }\n await writeValue(val, buffer, transform);\n }\n buffer.push(\"]\");\n}\n\nasync function writeValue(value, buffer, transform) {\n if (value instanceof Name) {\n buffer.push(`/${escapePDFName(value.name)}`);\n } else if (value instanceof Ref) {\n buffer.push(`${value.num} ${value.gen} R`);\n } else if (Array.isArray(value)) {\n await writeArray(value, buffer, transform);\n } else if (typeof value === \"string\") {\n if (transform) {\n value = transform.encryptString(value);\n }\n buffer.push(`(${escapeString(value)})`);\n } else if (typeof value === \"number\") {\n buffer.push(numberToString(value));\n } else if (typeof value === \"boolean\") {\n buffer.push(value.toString());\n } else if (value instanceof Dict) {\n await writeDict(value, buffer, transform);\n } else if (value instanceof BaseStream) {\n await writeStream(value, buffer, transform);\n } else if (value === null) {\n buffer.push(\"null\");\n } else {\n warn(`Unhandled value in writer: ${typeof value}, please file a bug.`);\n }\n}\n\nfunction writeInt(number, size, offset, buffer) {\n for (let i = size + offset - 1; i > offset - 1; i--) {\n buffer[i] = number & 0xff;\n number >>= 8;\n }\n return offset + size;\n}\n\nfunction writeString(string, offset, buffer) {\n for (let i = 0, len = string.length; i < len; i++) {\n buffer[offset + i] = string.charCodeAt(i) & 0xff;\n }\n}\n\nfunction computeMD5(filesize, xrefInfo) {\n const time = Math.floor(Date.now() / 1000);\n const filename = xrefInfo.filename || \"\";\n const md5Buffer = [time.toString(), filename, filesize.toString()];\n let md5BufferLen = md5Buffer.reduce((a, str) => a + str.length, 0);\n for (const value of Object.values(xrefInfo.info)) {\n md5Buffer.push(value);\n md5BufferLen += value.length;\n }\n\n const array = new Uint8Array(md5BufferLen);\n let offset = 0;\n for (const str of md5Buffer) {\n writeString(str, offset, array);\n offset += str.length;\n }\n return bytesToString(calculateMD5(array));\n}\n\nfunction writeXFADataForAcroform(str, newRefs) {\n const xml = new SimpleXMLParser({ hasAttributes: true }).parseFromString(str);\n\n for (const { xfa } of newRefs) {\n if (!xfa) {\n continue;\n }\n const { path, value } = xfa;\n if (!path) {\n continue;\n }\n const nodePath = parseXFAPath(path);\n let node = xml.documentElement.searchNode(nodePath, 0);\n if (!node && nodePath.length > 1) {\n // If we're lucky the last element in the path will identify the node.\n node = xml.documentElement.searchNode([nodePath.at(-1)], 0);\n }\n if (node) {\n node.childNodes = Array.isArray(value)\n ? value.map(val => new SimpleDOMNode(\"value\", val))\n : [new SimpleDOMNode(\"#text\", value)];\n } else {\n warn(`Node not found for path: ${path}`);\n }\n }\n const buffer = [];\n xml.documentElement.dump(buffer);\n return buffer.join(\"\");\n}\n\nasync function updateAcroform({\n xref,\n acroForm,\n acroFormRef,\n hasXfa,\n hasXfaDatasetsEntry,\n xfaDatasetsRef,\n needAppearances,\n newRefs,\n}) {\n if (hasXfa && !hasXfaDatasetsEntry && !xfaDatasetsRef) {\n warn(\"XFA - Cannot save it\");\n }\n\n if (!needAppearances && (!hasXfa || !xfaDatasetsRef || hasXfaDatasetsEntry)) {\n return;\n }\n\n const dict = acroForm.clone();\n\n if (hasXfa && !hasXfaDatasetsEntry) {\n // We've a XFA array which doesn't contain a datasets entry.\n // So we'll update the AcroForm dictionary to have an XFA containing\n // the datasets.\n const newXfa = acroForm.get(\"XFA\").slice();\n newXfa.splice(2, 0, \"datasets\");\n newXfa.splice(3, 0, xfaDatasetsRef);\n\n dict.set(\"XFA\", newXfa);\n }\n\n if (needAppearances) {\n dict.set(\"NeedAppearances\", true);\n }\n\n const buffer = [];\n await writeObject(acroFormRef, dict, buffer, xref);\n\n newRefs.push({ ref: acroFormRef, data: buffer.join(\"\") });\n}\n\nfunction updateXFA({ xfaData, xfaDatasetsRef, newRefs, xref }) {\n if (xfaData === null) {\n const datasets = xref.fetchIfRef(xfaDatasetsRef);\n xfaData = writeXFADataForAcroform(datasets.getString(), newRefs);\n }\n\n const encrypt = xref.encrypt;\n if (encrypt) {\n const transform = encrypt.createCipherTransform(\n xfaDatasetsRef.num,\n xfaDatasetsRef.gen\n );\n xfaData = transform.encryptString(xfaData);\n }\n const data =\n `${xfaDatasetsRef.num} ${xfaDatasetsRef.gen} obj\\n` +\n `<< /Type /EmbeddedFile /Length ${xfaData.length}>>\\nstream\\n` +\n xfaData +\n \"\\nendstream\\nendobj\\n\";\n\n newRefs.push({ ref: xfaDatasetsRef, data });\n}\n\nasync function incrementalUpdate({\n originalData,\n xrefInfo,\n newRefs,\n xref = null,\n hasXfa = false,\n xfaDatasetsRef = null,\n hasXfaDatasetsEntry = false,\n needAppearances,\n acroFormRef = null,\n acroForm = null,\n xfaData = null,\n}) {\n await updateAcroform({\n xref,\n acroForm,\n acroFormRef,\n hasXfa,\n hasXfaDatasetsEntry,\n xfaDatasetsRef,\n needAppearances,\n newRefs,\n });\n\n if (hasXfa) {\n updateXFA({\n xfaData,\n xfaDatasetsRef,\n newRefs,\n xref,\n });\n }\n\n const newXref = new Dict(null);\n const refForXrefTable = xrefInfo.newRef;\n\n let buffer, baseOffset;\n const lastByte = originalData.at(-1);\n if (lastByte === /* \\n */ 0x0a || lastByte === /* \\r */ 0x0d) {\n buffer = [];\n baseOffset = originalData.length;\n } else {\n // Avoid to concatenate %%EOF with an object definition\n buffer = [\"\\n\"];\n baseOffset = originalData.length + 1;\n }\n\n newXref.set(\"Size\", refForXrefTable.num + 1);\n newXref.set(\"Prev\", xrefInfo.startXRef);\n newXref.set(\"Type\", Name.get(\"XRef\"));\n\n if (xrefInfo.rootRef !== null) {\n newXref.set(\"Root\", xrefInfo.rootRef);\n }\n if (xrefInfo.infoRef !== null) {\n newXref.set(\"Info\", xrefInfo.infoRef);\n }\n if (xrefInfo.encryptRef !== null) {\n newXref.set(\"Encrypt\", xrefInfo.encryptRef);\n }\n\n // Add a ref for the new xref and sort them\n newRefs.push({ ref: refForXrefTable, data: \"\" });\n newRefs = newRefs.sort((a, b) => {\n // compare the refs\n return a.ref.num - b.ref.num;\n });\n\n const xrefTableData = [[0, 1, 0xffff]];\n const indexes = [0, 1];\n let maxOffset = 0;\n for (const { ref, data } of newRefs) {\n maxOffset = Math.max(maxOffset, baseOffset);\n xrefTableData.push([1, baseOffset, Math.min(ref.gen, 0xffff)]);\n baseOffset += data.length;\n indexes.push(ref.num, 1);\n buffer.push(data);\n }\n\n newXref.set(\"Index\", indexes);\n\n if (Array.isArray(xrefInfo.fileIds) && xrefInfo.fileIds.length > 0) {\n const md5 = computeMD5(baseOffset, xrefInfo);\n newXref.set(\"ID\", [xrefInfo.fileIds[0], md5]);\n }\n\n const offsetSize = Math.ceil(Math.log2(maxOffset) / 8);\n const sizes = [1, offsetSize, 2];\n const structSize = sizes[0] + sizes[1] + sizes[2];\n const tableLength = structSize * xrefTableData.length;\n newXref.set(\"W\", sizes);\n newXref.set(\"Length\", tableLength);\n\n buffer.push(`${refForXrefTable.num} ${refForXrefTable.gen} obj\\n`);\n await writeDict(newXref, buffer, null);\n buffer.push(\" stream\\n\");\n\n const bufferLen = buffer.reduce((a, str) => a + str.length, 0);\n const footer = `\\nendstream\\nendobj\\nstartxref\\n${baseOffset}\\n%%EOF\\n`;\n const array = new Uint8Array(\n originalData.length + bufferLen + tableLength + footer.length\n );\n\n // Original data\n array.set(originalData);\n let offset = originalData.length;\n\n // New data\n for (const str of buffer) {\n writeString(str, offset, array);\n offset += str.length;\n }\n\n // New xref table\n for (const [type, objOffset, gen] of xrefTableData) {\n offset = writeInt(type, sizes[0], offset, array);\n offset = writeInt(objOffset, sizes[1], offset, array);\n offset = writeInt(gen, sizes[2], offset, array);\n }\n\n // Add the footer\n writeString(footer, offset, array);\n\n return array;\n}\n\nexport { incrementalUpdate, writeDict, writeObject };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AnnotationPrefix, stringToPDFString, warn } from \"../shared/util.js\";\nimport { Dict, isName, Name, Ref, RefSetCache } from \"./primitives.js\";\nimport { NumberTree } from \"./name_number_tree.js\";\nimport { writeObject } from \"./writer.js\";\n\nconst MAX_DEPTH = 40;\n\nconst StructElementType = {\n PAGE_CONTENT: 1,\n STREAM_CONTENT: 2,\n OBJECT: 3,\n ANNOTATION: 4,\n ELEMENT: 5,\n};\n\nclass StructTreeRoot {\n constructor(rootDict, rootRef) {\n this.dict = rootDict;\n this.ref = rootRef instanceof Ref ? rootRef : null;\n this.roleMap = new Map();\n this.structParentIds = null;\n }\n\n init() {\n this.readRoleMap();\n }\n\n #addIdToPage(pageRef, id, type) {\n if (!(pageRef instanceof Ref) || id < 0) {\n return;\n }\n this.structParentIds ||= new RefSetCache();\n let ids = this.structParentIds.get(pageRef);\n if (!ids) {\n ids = [];\n this.structParentIds.put(pageRef, ids);\n }\n ids.push([id, type]);\n }\n\n addAnnotationIdToPage(pageRef, id) {\n this.#addIdToPage(pageRef, id, StructElementType.ANNOTATION);\n }\n\n readRoleMap() {\n const roleMapDict = this.dict.get(\"RoleMap\");\n if (!(roleMapDict instanceof Dict)) {\n return;\n }\n roleMapDict.forEach((key, value) => {\n if (!(value instanceof Name)) {\n return;\n }\n this.roleMap.set(key, value.name);\n });\n }\n\n static async canCreateStructureTree({\n catalogRef,\n pdfManager,\n newAnnotationsByPage,\n }) {\n if (!(catalogRef instanceof Ref)) {\n warn(\"Cannot save the struct tree: no catalog reference.\");\n return false;\n }\n\n let nextKey = 0;\n let hasNothingToUpdate = true;\n\n for (const [pageIndex, elements] of newAnnotationsByPage) {\n const { ref: pageRef } = await pdfManager.getPage(pageIndex);\n if (!(pageRef instanceof Ref)) {\n warn(`Cannot save the struct tree: page ${pageIndex} has no ref.`);\n hasNothingToUpdate = true;\n break;\n }\n for (const element of elements) {\n if (element.accessibilityData?.type) {\n // Each tag must have a structure type.\n element.parentTreeId = nextKey++;\n hasNothingToUpdate = false;\n }\n }\n }\n\n if (hasNothingToUpdate) {\n for (const elements of newAnnotationsByPage.values()) {\n for (const element of elements) {\n delete element.parentTreeId;\n }\n }\n return false;\n }\n\n return true;\n }\n\n static async createStructureTree({\n newAnnotationsByPage,\n xref,\n catalogRef,\n pdfManager,\n newRefs,\n }) {\n const root = pdfManager.catalog.cloneDict();\n const structTreeRootRef = xref.getNewTemporaryRef();\n root.set(\"StructTreeRoot\", structTreeRootRef);\n\n const buffer = [];\n await writeObject(catalogRef, root, buffer, xref);\n newRefs.push({ ref: catalogRef, data: buffer.join(\"\") });\n\n const structTreeRoot = new Dict(xref);\n structTreeRoot.set(\"Type\", Name.get(\"StructTreeRoot\"));\n const parentTreeRef = xref.getNewTemporaryRef();\n structTreeRoot.set(\"ParentTree\", parentTreeRef);\n const kids = [];\n structTreeRoot.set(\"K\", kids);\n\n const parentTree = new Dict(xref);\n const nums = [];\n parentTree.set(\"Nums\", nums);\n\n const nextKey = await this.#writeKids({\n newAnnotationsByPage,\n structTreeRootRef,\n kids,\n nums,\n xref,\n pdfManager,\n newRefs,\n buffer,\n });\n structTreeRoot.set(\"ParentTreeNextKey\", nextKey);\n\n buffer.length = 0;\n await writeObject(parentTreeRef, parentTree, buffer, xref);\n newRefs.push({ ref: parentTreeRef, data: buffer.join(\"\") });\n\n buffer.length = 0;\n await writeObject(structTreeRootRef, structTreeRoot, buffer, xref);\n newRefs.push({ ref: structTreeRootRef, data: buffer.join(\"\") });\n }\n\n async canUpdateStructTree({ pdfManager, xref, newAnnotationsByPage }) {\n if (!this.ref) {\n warn(\"Cannot update the struct tree: no root reference.\");\n return false;\n }\n\n let nextKey = this.dict.get(\"ParentTreeNextKey\");\n if (!Number.isInteger(nextKey) || nextKey < 0) {\n warn(\"Cannot update the struct tree: invalid next key.\");\n return false;\n }\n\n const parentTree = this.dict.get(\"ParentTree\");\n if (!(parentTree instanceof Dict)) {\n warn(\"Cannot update the struct tree: ParentTree isn't a dict.\");\n return false;\n }\n const nums = parentTree.get(\"Nums\");\n if (!Array.isArray(nums)) {\n warn(\"Cannot update the struct tree: nums isn't an array.\");\n return false;\n }\n const numberTree = new NumberTree(parentTree, xref);\n\n for (const pageIndex of newAnnotationsByPage.keys()) {\n const { pageDict } = await pdfManager.getPage(pageIndex);\n if (!pageDict.has(\"StructParents\")) {\n // StructParents is required when the content stream has some tagged\n // contents but a page can just have tagged annotations.\n continue;\n }\n const id = pageDict.get(\"StructParents\");\n if (!Number.isInteger(id) || !Array.isArray(numberTree.get(id))) {\n warn(`Cannot save the struct tree: page ${pageIndex} has a wrong id.`);\n return false;\n }\n }\n\n let hasNothingToUpdate = true;\n for (const [pageIndex, elements] of newAnnotationsByPage) {\n const { pageDict } = await pdfManager.getPage(pageIndex);\n StructTreeRoot.#collectParents({\n elements,\n xref: this.dict.xref,\n pageDict,\n numberTree,\n });\n\n for (const element of elements) {\n if (element.accessibilityData?.type) {\n // Each tag must have a structure type.\n element.parentTreeId = nextKey++;\n hasNothingToUpdate = false;\n }\n }\n }\n\n if (hasNothingToUpdate) {\n for (const elements of newAnnotationsByPage.values()) {\n for (const element of elements) {\n delete element.parentTreeId;\n delete element.structTreeParent;\n }\n }\n return false;\n }\n\n return true;\n }\n\n async updateStructureTree({ newAnnotationsByPage, pdfManager, newRefs }) {\n const xref = this.dict.xref;\n const structTreeRoot = this.dict.clone();\n const structTreeRootRef = this.ref;\n\n let parentTreeRef = structTreeRoot.getRaw(\"ParentTree\");\n let parentTree;\n if (parentTreeRef instanceof Ref) {\n parentTree = xref.fetch(parentTreeRef);\n } else {\n parentTree = parentTreeRef;\n parentTreeRef = xref.getNewTemporaryRef();\n structTreeRoot.set(\"ParentTree\", parentTreeRef);\n }\n parentTree = parentTree.clone();\n\n let nums = parentTree.getRaw(\"Nums\");\n let numsRef = null;\n if (nums instanceof Ref) {\n numsRef = nums;\n nums = xref.fetch(numsRef);\n }\n nums = nums.slice();\n if (!numsRef) {\n parentTree.set(\"Nums\", nums);\n }\n\n let kids = structTreeRoot.getRaw(\"K\");\n let kidsRef = null;\n if (kids instanceof Ref) {\n kidsRef = kids;\n kids = xref.fetch(kidsRef);\n } else {\n kidsRef = xref.getNewTemporaryRef();\n structTreeRoot.set(\"K\", kidsRef);\n }\n kids = Array.isArray(kids) ? kids.slice() : [kids];\n\n const buffer = [];\n const newNextkey = await StructTreeRoot.#writeKids({\n newAnnotationsByPage,\n structTreeRootRef,\n kids,\n nums,\n xref,\n pdfManager,\n newRefs,\n buffer,\n });\n structTreeRoot.set(\"ParentTreeNextKey\", newNextkey);\n\n buffer.length = 0;\n await writeObject(kidsRef, kids, buffer, xref);\n newRefs.push({ ref: kidsRef, data: buffer.join(\"\") });\n\n if (numsRef) {\n buffer.length = 0;\n await writeObject(numsRef, nums, buffer, xref);\n newRefs.push({ ref: numsRef, data: buffer.join(\"\") });\n }\n\n buffer.length = 0;\n await writeObject(parentTreeRef, parentTree, buffer, xref);\n newRefs.push({ ref: parentTreeRef, data: buffer.join(\"\") });\n\n buffer.length = 0;\n await writeObject(structTreeRootRef, structTreeRoot, buffer, xref);\n newRefs.push({ ref: structTreeRootRef, data: buffer.join(\"\") });\n }\n\n static async #writeKids({\n newAnnotationsByPage,\n structTreeRootRef,\n kids,\n nums,\n xref,\n pdfManager,\n newRefs,\n buffer,\n }) {\n const objr = Name.get(\"OBJR\");\n let nextKey = -Infinity;\n\n for (const [pageIndex, elements] of newAnnotationsByPage) {\n const { ref: pageRef } = await pdfManager.getPage(pageIndex);\n const isPageRef = pageRef instanceof Ref;\n for (const {\n accessibilityData,\n ref,\n parentTreeId,\n structTreeParent,\n } of elements) {\n if (!accessibilityData?.type) {\n continue;\n }\n const { type, title, lang, alt, expanded, actualText } =\n accessibilityData;\n nextKey = Math.max(nextKey, parentTreeId);\n\n const tagRef = xref.getNewTemporaryRef();\n const tagDict = new Dict(xref);\n\n // The structure type is required.\n tagDict.set(\"S\", Name.get(type));\n\n if (title) {\n tagDict.set(\"T\", title);\n }\n if (lang) {\n tagDict.set(\"Lang\", lang);\n }\n if (alt) {\n tagDict.set(\"Alt\", alt);\n }\n if (expanded) {\n tagDict.set(\"E\", expanded);\n }\n if (actualText) {\n tagDict.set(\"ActualText\", actualText);\n }\n\n if (structTreeParent) {\n await this.#updateParentTag({\n structTreeParent,\n tagDict,\n newTagRef: tagRef,\n fallbackRef: structTreeRootRef,\n xref,\n newRefs,\n buffer,\n });\n } else {\n tagDict.set(\"P\", structTreeRootRef);\n }\n\n const objDict = new Dict(xref);\n tagDict.set(\"K\", objDict);\n objDict.set(\"Type\", objr);\n if (isPageRef) {\n // Pg is optional.\n objDict.set(\"Pg\", pageRef);\n }\n objDict.set(\"Obj\", ref);\n\n buffer.length = 0;\n await writeObject(tagRef, tagDict, buffer, xref);\n newRefs.push({ ref: tagRef, data: buffer.join(\"\") });\n\n nums.push(parentTreeId, tagRef);\n kids.push(tagRef);\n }\n }\n return nextKey + 1;\n }\n\n static #collectParents({ elements, xref, pageDict, numberTree }) {\n const idToElement = new Map();\n for (const element of elements) {\n if (element.structTreeParentId) {\n const id = parseInt(element.structTreeParentId.split(\"_mc\")[1], 10);\n idToElement.set(id, element);\n }\n }\n\n const id = pageDict.get(\"StructParents\");\n if (!Number.isInteger(id)) {\n return;\n }\n // The parentArray type has already been checked by the caller.\n const parentArray = numberTree.get(id);\n\n const updateElement = (kid, pageKid, kidRef) => {\n const element = idToElement.get(kid);\n if (element) {\n const parentRef = pageKid.getRaw(\"P\");\n const parentDict = xref.fetchIfRef(parentRef);\n if (parentRef instanceof Ref && parentDict instanceof Dict) {\n // It should always the case, but we check just in case.\n element.structTreeParent = { ref: kidRef, dict: pageKid };\n }\n return true;\n }\n return false;\n };\n for (const kidRef of parentArray) {\n if (!(kidRef instanceof Ref)) {\n continue;\n }\n const pageKid = xref.fetch(kidRef);\n const k = pageKid.get(\"K\");\n if (Number.isInteger(k)) {\n updateElement(k, pageKid, kidRef);\n continue;\n }\n\n if (!Array.isArray(k)) {\n continue;\n }\n for (let kid of k) {\n kid = xref.fetchIfRef(kid);\n if (Number.isInteger(kid) && updateElement(kid, pageKid, kidRef)) {\n break;\n }\n }\n }\n }\n\n static async #updateParentTag({\n structTreeParent: { ref, dict },\n tagDict,\n newTagRef,\n fallbackRef,\n xref,\n newRefs,\n buffer,\n }) {\n // We get the parent of the tag.\n const parentRef = dict.getRaw(\"P\");\n let parentDict = xref.fetchIfRef(parentRef);\n\n tagDict.set(\"P\", parentRef);\n\n // We get the kids in order to insert a new tag at the right position.\n let saveParentDict = false;\n let parentKids;\n let parentKidsRef = parentDict.getRaw(\"K\");\n if (!(parentKidsRef instanceof Ref)) {\n parentKids = parentKidsRef;\n parentKidsRef = xref.getNewTemporaryRef();\n parentDict = parentDict.clone();\n parentDict.set(\"K\", parentKidsRef);\n saveParentDict = true;\n } else {\n parentKids = xref.fetch(parentKidsRef);\n }\n\n if (Array.isArray(parentKids)) {\n const index = parentKids.indexOf(ref);\n if (index >= 0) {\n parentKids = parentKids.slice();\n parentKids.splice(index + 1, 0, newTagRef);\n } else {\n warn(\"Cannot update the struct tree: parent kid not found.\");\n tagDict.set(\"P\", fallbackRef);\n return;\n }\n } else if (parentKids instanceof Dict) {\n parentKids = [parentKidsRef, newTagRef];\n parentKidsRef = xref.getNewTemporaryRef();\n parentDict.set(\"K\", parentKidsRef);\n saveParentDict = true;\n }\n\n buffer.length = 0;\n await writeObject(parentKidsRef, parentKids, buffer, xref);\n newRefs.push({ ref: parentKidsRef, data: buffer.join(\"\") });\n\n if (!saveParentDict) {\n return;\n }\n\n buffer.length = 0;\n await writeObject(parentRef, parentDict, buffer, xref);\n newRefs.push({ ref: parentRef, data: buffer.join(\"\") });\n }\n}\n\n/**\n * Instead of loading the whole tree we load just the page's relevant structure\n * elements, which means we need a wrapper structure to represent the tree.\n */\nclass StructElementNode {\n constructor(tree, dict) {\n this.tree = tree;\n this.dict = dict;\n this.kids = [];\n this.parseKids();\n }\n\n get role() {\n const nameObj = this.dict.get(\"S\");\n const name = nameObj instanceof Name ? nameObj.name : \"\";\n const { root } = this.tree;\n if (root.roleMap.has(name)) {\n return root.roleMap.get(name);\n }\n return name;\n }\n\n parseKids() {\n let pageObjId = null;\n const objRef = this.dict.getRaw(\"Pg\");\n if (objRef instanceof Ref) {\n pageObjId = objRef.toString();\n }\n const kids = this.dict.get(\"K\");\n if (Array.isArray(kids)) {\n for (const kid of kids) {\n const element = this.parseKid(pageObjId, kid);\n if (element) {\n this.kids.push(element);\n }\n }\n } else {\n const element = this.parseKid(pageObjId, kids);\n if (element) {\n this.kids.push(element);\n }\n }\n }\n\n parseKid(pageObjId, kid) {\n // A direct link to content, the integer is an mcid.\n if (Number.isInteger(kid)) {\n if (this.tree.pageDict.objId !== pageObjId) {\n return null;\n }\n\n return new StructElement({\n type: StructElementType.PAGE_CONTENT,\n mcid: kid,\n pageObjId,\n });\n }\n\n // Find the dictionary for the kid.\n let kidDict = null;\n if (kid instanceof Ref) {\n kidDict = this.dict.xref.fetch(kid);\n } else if (kid instanceof Dict) {\n kidDict = kid;\n }\n if (!kidDict) {\n return null;\n }\n const pageRef = kidDict.getRaw(\"Pg\");\n if (pageRef instanceof Ref) {\n pageObjId = pageRef.toString();\n }\n\n const type =\n kidDict.get(\"Type\") instanceof Name ? kidDict.get(\"Type\").name : null;\n if (type === \"MCR\") {\n if (this.tree.pageDict.objId !== pageObjId) {\n return null;\n }\n const kidRef = kidDict.getRaw(\"Stm\");\n return new StructElement({\n type: StructElementType.STREAM_CONTENT,\n refObjId: kidRef instanceof Ref ? kidRef.toString() : null,\n pageObjId,\n mcid: kidDict.get(\"MCID\"),\n });\n }\n\n if (type === \"OBJR\") {\n if (this.tree.pageDict.objId !== pageObjId) {\n return null;\n }\n const kidRef = kidDict.getRaw(\"Obj\");\n return new StructElement({\n type: StructElementType.OBJECT,\n refObjId: kidRef instanceof Ref ? kidRef.toString() : null,\n pageObjId,\n });\n }\n\n return new StructElement({\n type: StructElementType.ELEMENT,\n dict: kidDict,\n });\n }\n}\n\nclass StructElement {\n constructor({\n type,\n dict = null,\n mcid = null,\n pageObjId = null,\n refObjId = null,\n }) {\n this.type = type;\n this.dict = dict;\n this.mcid = mcid;\n this.pageObjId = pageObjId;\n this.refObjId = refObjId;\n this.parentNode = null;\n }\n}\n\nclass StructTreePage {\n constructor(structTreeRoot, pageDict) {\n this.root = structTreeRoot;\n this.rootDict = structTreeRoot ? structTreeRoot.dict : null;\n this.pageDict = pageDict;\n this.nodes = [];\n }\n\n parse(pageRef) {\n if (!this.root || !this.rootDict) {\n return;\n }\n\n const parentTree = this.rootDict.get(\"ParentTree\");\n if (!parentTree) {\n return;\n }\n const id = this.pageDict.get(\"StructParents\");\n const ids =\n pageRef instanceof Ref && this.root.structParentIds?.get(pageRef);\n if (!Number.isInteger(id) && !ids) {\n return;\n }\n\n const map = new Map();\n const numberTree = new NumberTree(parentTree, this.rootDict.xref);\n\n if (Number.isInteger(id)) {\n const parentArray = numberTree.get(id);\n if (Array.isArray(parentArray)) {\n for (const ref of parentArray) {\n if (ref instanceof Ref) {\n this.addNode(this.rootDict.xref.fetch(ref), map);\n }\n }\n }\n }\n\n if (!ids) {\n return;\n }\n for (const [elemId, type] of ids) {\n const obj = numberTree.get(elemId);\n if (obj) {\n const elem = this.addNode(this.rootDict.xref.fetchIfRef(obj), map);\n if (\n elem?.kids?.length === 1 &&\n elem.kids[0].type === StructElementType.OBJECT\n ) {\n // The node in the struct tree is wrapping an object (annotation\n // or xobject), so we need to update the type of the node to match\n // the type of the object.\n elem.kids[0].type = type;\n }\n }\n }\n }\n\n addNode(dict, map, level = 0) {\n if (level > MAX_DEPTH) {\n warn(\"StructTree MAX_DEPTH reached.\");\n return null;\n }\n\n if (map.has(dict)) {\n return map.get(dict);\n }\n\n const element = new StructElementNode(this, dict);\n map.set(dict, element);\n\n const parent = dict.get(\"P\");\n\n if (!parent || isName(parent.get(\"Type\"), \"StructTreeRoot\")) {\n if (!this.addTopLevelNode(dict, element)) {\n map.delete(dict);\n }\n return element;\n }\n\n const parentNode = this.addNode(parent, map, level + 1);\n if (!parentNode) {\n return element;\n }\n let save = false;\n for (const kid of parentNode.kids) {\n if (kid.type === StructElementType.ELEMENT && kid.dict === dict) {\n kid.parentNode = element;\n save = true;\n }\n }\n if (!save) {\n map.delete(dict);\n }\n return element;\n }\n\n addTopLevelNode(dict, element) {\n const obj = this.rootDict.get(\"K\");\n if (!obj) {\n return false;\n }\n\n if (obj instanceof Dict) {\n if (obj.objId !== dict.objId) {\n return false;\n }\n this.nodes[0] = element;\n return true;\n }\n\n if (!Array.isArray(obj)) {\n return true;\n }\n let save = false;\n for (let i = 0; i < obj.length; i++) {\n const kidRef = obj[i];\n if (kidRef?.toString() === dict.objId) {\n this.nodes[i] = element;\n save = true;\n }\n }\n return save;\n }\n\n /**\n * Convert the tree structure into a simplified object literal that can\n * be sent to the main thread.\n * @returns {Object}\n */\n get serializable() {\n function nodeToSerializable(node, parent, level = 0) {\n if (level > MAX_DEPTH) {\n warn(\"StructTree too deep to be fully serialized.\");\n return;\n }\n const obj = Object.create(null);\n obj.role = node.role;\n obj.children = [];\n parent.children.push(obj);\n const alt = node.dict.get(\"Alt\");\n if (typeof alt === \"string\") {\n obj.alt = stringToPDFString(alt);\n }\n const lang = node.dict.get(\"Lang\");\n if (typeof lang === \"string\") {\n obj.lang = stringToPDFString(lang);\n }\n\n for (const kid of node.kids) {\n const kidElement =\n kid.type === StructElementType.ELEMENT ? kid.parentNode : null;\n if (kidElement) {\n nodeToSerializable(kidElement, obj, level + 1);\n continue;\n } else if (\n kid.type === StructElementType.PAGE_CONTENT ||\n kid.type === StructElementType.STREAM_CONTENT\n ) {\n obj.children.push({\n type: \"content\",\n id: `p${kid.pageObjId}_mc${kid.mcid}`,\n });\n } else if (kid.type === StructElementType.OBJECT) {\n obj.children.push({\n type: \"object\",\n id: kid.refObjId,\n });\n } else if (kid.type === StructElementType.ANNOTATION) {\n obj.children.push({\n type: \"annotation\",\n id: `${AnnotationPrefix}${kid.refObjId}`,\n });\n }\n }\n }\n\n const root = Object.create(null);\n root.children = [];\n root.role = \"Root\";\n for (const child of this.nodes) {\n if (!child) {\n continue;\n }\n nodeToSerializable(child, root);\n }\n return root;\n }\n}\n\nexport { StructTreePage, StructTreeRoot };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n collectActions,\n MissingDataException,\n PDF_VERSION_REGEXP,\n recoverJsURL,\n toRomanNumerals,\n XRefEntryException,\n} from \"./core_utils.js\";\nimport {\n createValidAbsoluteUrl,\n DocumentActionEventType,\n FormatError,\n info,\n objectSize,\n PermissionFlag,\n shadow,\n stringToPDFString,\n stringToUTF8String,\n warn,\n} from \"../shared/util.js\";\nimport {\n Dict,\n isDict,\n isName,\n isRefsEqual,\n Name,\n Ref,\n RefSet,\n RefSetCache,\n} from \"./primitives.js\";\nimport { NameTree, NumberTree } from \"./name_number_tree.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { FileSpec } from \"./file_spec.js\";\nimport { GlobalImageCache } from \"./image_utils.js\";\nimport { MetadataParser } from \"./metadata_parser.js\";\nimport { StructTreeRoot } from \"./struct_tree.js\";\n\nfunction fetchDestination(dest) {\n if (dest instanceof Dict) {\n dest = dest.get(\"D\");\n }\n return Array.isArray(dest) ? dest : null;\n}\n\nfunction fetchRemoteDest(action) {\n let dest = action.get(\"D\");\n if (dest) {\n if (dest instanceof Name) {\n dest = dest.name;\n }\n if (typeof dest === \"string\") {\n return stringToPDFString(dest);\n } else if (Array.isArray(dest)) {\n return JSON.stringify(dest);\n }\n }\n return null;\n}\n\nclass Catalog {\n constructor(pdfManager, xref) {\n this.pdfManager = pdfManager;\n this.xref = xref;\n\n this._catDict = xref.getCatalogObj();\n if (!(this._catDict instanceof Dict)) {\n throw new FormatError(\"Catalog object is not a dictionary.\");\n }\n // Given that `XRef.parse` will both fetch *and* validate the /Pages-entry,\n // the following call must always succeed here:\n this.toplevelPagesDict; // eslint-disable-line no-unused-expressions\n\n this._actualNumPages = null;\n\n this.fontCache = new RefSetCache();\n this.builtInCMapCache = new Map();\n this.standardFontDataCache = new Map();\n this.globalImageCache = new GlobalImageCache();\n this.pageKidsCountCache = new RefSetCache();\n this.pageIndexCache = new RefSetCache();\n this.nonBlendModesSet = new RefSet();\n this.systemFontCache = new Map();\n }\n\n cloneDict() {\n return this._catDict.clone();\n }\n\n get version() {\n const version = this._catDict.get(\"Version\");\n if (version instanceof Name) {\n if (PDF_VERSION_REGEXP.test(version.name)) {\n return shadow(this, \"version\", version.name);\n }\n warn(`Invalid PDF catalog version: ${version.name}`);\n }\n return shadow(this, \"version\", null);\n }\n\n get lang() {\n const lang = this._catDict.get(\"Lang\");\n return shadow(\n this,\n \"lang\",\n typeof lang === \"string\" ? stringToPDFString(lang) : null\n );\n }\n\n /**\n * @type {boolean} `true` for pure XFA documents,\n * `false` for XFA Foreground documents.\n */\n get needsRendering() {\n const needsRendering = this._catDict.get(\"NeedsRendering\");\n return shadow(\n this,\n \"needsRendering\",\n typeof needsRendering === \"boolean\" ? needsRendering : false\n );\n }\n\n get collection() {\n let collection = null;\n try {\n const obj = this._catDict.get(\"Collection\");\n if (obj instanceof Dict && obj.size > 0) {\n collection = obj;\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n info(\"Cannot fetch Collection entry; assuming no collection is present.\");\n }\n return shadow(this, \"collection\", collection);\n }\n\n get acroForm() {\n let acroForm = null;\n try {\n const obj = this._catDict.get(\"AcroForm\");\n if (obj instanceof Dict && obj.size > 0) {\n acroForm = obj;\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n info(\"Cannot fetch AcroForm entry; assuming no forms are present.\");\n }\n return shadow(this, \"acroForm\", acroForm);\n }\n\n get acroFormRef() {\n const value = this._catDict.getRaw(\"AcroForm\");\n return shadow(this, \"acroFormRef\", value instanceof Ref ? value : null);\n }\n\n get metadata() {\n const streamRef = this._catDict.getRaw(\"Metadata\");\n if (!(streamRef instanceof Ref)) {\n return shadow(this, \"metadata\", null);\n }\n\n let metadata = null;\n try {\n const stream = this.xref.fetch(\n streamRef,\n /* suppressEncryption = */ !this.xref.encrypt?.encryptMetadata\n );\n\n if (stream instanceof BaseStream && stream.dict instanceof Dict) {\n const type = stream.dict.get(\"Type\");\n const subtype = stream.dict.get(\"Subtype\");\n\n if (isName(type, \"Metadata\") && isName(subtype, \"XML\")) {\n // XXX: This should examine the charset the XML document defines,\n // however since there are currently no real means to decode arbitrary\n // charsets, let's just hope that the author of the PDF was reasonable\n // enough to stick with the XML default charset, which is UTF-8.\n const data = stringToUTF8String(stream.getString());\n if (data) {\n metadata = new MetadataParser(data).serializable;\n }\n }\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n info(`Skipping invalid Metadata: \"${ex}\".`);\n }\n return shadow(this, \"metadata\", metadata);\n }\n\n get markInfo() {\n let markInfo = null;\n try {\n markInfo = this._readMarkInfo();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read mark info.\");\n }\n return shadow(this, \"markInfo\", markInfo);\n }\n\n /**\n * @private\n */\n _readMarkInfo() {\n const obj = this._catDict.get(\"MarkInfo\");\n if (!(obj instanceof Dict)) {\n return null;\n }\n\n const markInfo = {\n Marked: false,\n UserProperties: false,\n Suspects: false,\n };\n for (const key in markInfo) {\n const value = obj.get(key);\n if (typeof value === \"boolean\") {\n markInfo[key] = value;\n }\n }\n\n return markInfo;\n }\n\n get structTreeRoot() {\n let structTree = null;\n try {\n structTree = this._readStructTreeRoot();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable read to structTreeRoot info.\");\n }\n return shadow(this, \"structTreeRoot\", structTree);\n }\n\n /**\n * @private\n */\n _readStructTreeRoot() {\n const rawObj = this._catDict.getRaw(\"StructTreeRoot\");\n const obj = this.xref.fetchIfRef(rawObj);\n if (!(obj instanceof Dict)) {\n return null;\n }\n\n const root = new StructTreeRoot(obj, rawObj);\n root.init();\n return root;\n }\n\n get toplevelPagesDict() {\n const pagesObj = this._catDict.get(\"Pages\");\n if (!(pagesObj instanceof Dict)) {\n throw new FormatError(\"Invalid top-level pages dictionary.\");\n }\n return shadow(this, \"toplevelPagesDict\", pagesObj);\n }\n\n get documentOutline() {\n let obj = null;\n try {\n obj = this._readDocumentOutline();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read document outline.\");\n }\n return shadow(this, \"documentOutline\", obj);\n }\n\n /**\n * @private\n */\n _readDocumentOutline() {\n let obj = this._catDict.get(\"Outlines\");\n if (!(obj instanceof Dict)) {\n return null;\n }\n obj = obj.getRaw(\"First\");\n if (!(obj instanceof Ref)) {\n return null;\n }\n\n const root = { items: [] };\n const queue = [{ obj, parent: root }];\n // To avoid recursion, keep track of the already processed items.\n const processed = new RefSet();\n processed.put(obj);\n const xref = this.xref,\n blackColor = new Uint8ClampedArray(3);\n\n while (queue.length > 0) {\n const i = queue.shift();\n const outlineDict = xref.fetchIfRef(i.obj);\n if (outlineDict === null) {\n continue;\n }\n if (!outlineDict.has(\"Title\")) {\n throw new FormatError(\"Invalid outline item encountered.\");\n }\n\n const data = { url: null, dest: null, action: null };\n Catalog.parseDestDictionary({\n destDict: outlineDict,\n resultObj: data,\n docBaseUrl: this.baseUrl,\n docAttachments: this.attachments,\n });\n const title = outlineDict.get(\"Title\");\n const flags = outlineDict.get(\"F\") || 0;\n const color = outlineDict.getArray(\"C\");\n const count = outlineDict.get(\"Count\");\n let rgbColor = blackColor;\n\n // We only need to parse the color when it's valid, and non-default.\n if (\n Array.isArray(color) &&\n color.length === 3 &&\n (color[0] !== 0 || color[1] !== 0 || color[2] !== 0)\n ) {\n rgbColor = ColorSpace.singletons.rgb.getRgb(color, 0);\n }\n\n const outlineItem = {\n action: data.action,\n attachment: data.attachment,\n dest: data.dest,\n url: data.url,\n unsafeUrl: data.unsafeUrl,\n newWindow: data.newWindow,\n setOCGState: data.setOCGState,\n title: stringToPDFString(title),\n color: rgbColor,\n count: Number.isInteger(count) ? count : undefined,\n bold: !!(flags & 2),\n italic: !!(flags & 1),\n items: [],\n };\n\n i.parent.items.push(outlineItem);\n obj = outlineDict.getRaw(\"First\");\n if (obj instanceof Ref && !processed.has(obj)) {\n queue.push({ obj, parent: outlineItem });\n processed.put(obj);\n }\n obj = outlineDict.getRaw(\"Next\");\n if (obj instanceof Ref && !processed.has(obj)) {\n queue.push({ obj, parent: i.parent });\n processed.put(obj);\n }\n }\n return root.items.length > 0 ? root.items : null;\n }\n\n get permissions() {\n let permissions = null;\n try {\n permissions = this._readPermissions();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read permissions.\");\n }\n return shadow(this, \"permissions\", permissions);\n }\n\n /**\n * @private\n */\n _readPermissions() {\n const encrypt = this.xref.trailer.get(\"Encrypt\");\n if (!(encrypt instanceof Dict)) {\n return null;\n }\n\n let flags = encrypt.get(\"P\");\n if (typeof flags !== \"number\") {\n return null;\n }\n\n // PDF integer objects are represented internally in signed 2's complement\n // form. Therefore, convert the signed decimal integer to a signed 2's\n // complement binary integer so we can use regular bitwise operations on it.\n flags += 2 ** 32;\n\n const permissions = [];\n for (const key in PermissionFlag) {\n const value = PermissionFlag[key];\n if (flags & value) {\n permissions.push(value);\n }\n }\n return permissions;\n }\n\n get optionalContentConfig() {\n let config = null;\n try {\n const properties = this._catDict.get(\"OCProperties\");\n if (!properties) {\n return shadow(this, \"optionalContentConfig\", null);\n }\n const defaultConfig = properties.get(\"D\");\n if (!defaultConfig) {\n return shadow(this, \"optionalContentConfig\", null);\n }\n const groupsData = properties.get(\"OCGs\");\n if (!Array.isArray(groupsData)) {\n return shadow(this, \"optionalContentConfig\", null);\n }\n const groups = [];\n const groupRefs = new RefSet();\n // Ensure all the optional content groups are valid.\n for (const groupRef of groupsData) {\n if (!(groupRef instanceof Ref) || groupRefs.has(groupRef)) {\n continue;\n }\n groupRefs.put(groupRef);\n const group = this.xref.fetch(groupRef);\n groups.push({\n id: groupRef.toString(),\n name:\n typeof group.get(\"Name\") === \"string\"\n ? stringToPDFString(group.get(\"Name\"))\n : null,\n intent:\n typeof group.get(\"Intent\") === \"string\"\n ? stringToPDFString(group.get(\"Intent\"))\n : null,\n });\n }\n config = this._readOptionalContentConfig(defaultConfig, groupRefs);\n config.groups = groups;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`Unable to read optional content config: ${ex}`);\n }\n return shadow(this, \"optionalContentConfig\", config);\n }\n\n _readOptionalContentConfig(config, contentGroupRefs) {\n function parseOnOff(refs) {\n const onParsed = [];\n if (Array.isArray(refs)) {\n for (const value of refs) {\n if (!(value instanceof Ref)) {\n continue;\n }\n if (contentGroupRefs.has(value)) {\n onParsed.push(value.toString());\n }\n }\n }\n return onParsed;\n }\n\n function parseOrder(refs, nestedLevels = 0) {\n if (!Array.isArray(refs)) {\n return null;\n }\n const order = [];\n\n for (const value of refs) {\n if (value instanceof Ref && contentGroupRefs.has(value)) {\n parsedOrderRefs.put(value); // Handle \"hidden\" groups, see below.\n\n order.push(value.toString());\n continue;\n }\n // Handle nested /Order arrays (see e.g. issue 9462 and bug 1240641).\n const nestedOrder = parseNestedOrder(value, nestedLevels);\n if (nestedOrder) {\n order.push(nestedOrder);\n }\n }\n\n if (nestedLevels > 0) {\n return order;\n }\n const hiddenGroups = [];\n for (const groupRef of contentGroupRefs) {\n if (parsedOrderRefs.has(groupRef)) {\n continue;\n }\n hiddenGroups.push(groupRef.toString());\n }\n if (hiddenGroups.length) {\n order.push({ name: null, order: hiddenGroups });\n }\n\n return order;\n }\n\n function parseNestedOrder(ref, nestedLevels) {\n if (++nestedLevels > MAX_NESTED_LEVELS) {\n warn(\"parseNestedOrder - reached MAX_NESTED_LEVELS.\");\n return null;\n }\n const value = xref.fetchIfRef(ref);\n if (!Array.isArray(value)) {\n return null;\n }\n const nestedName = xref.fetchIfRef(value[0]);\n if (typeof nestedName !== \"string\") {\n return null;\n }\n const nestedOrder = parseOrder(value.slice(1), nestedLevels);\n if (!nestedOrder || !nestedOrder.length) {\n return null;\n }\n return { name: stringToPDFString(nestedName), order: nestedOrder };\n }\n\n const xref = this.xref,\n parsedOrderRefs = new RefSet(),\n MAX_NESTED_LEVELS = 10;\n\n return {\n name:\n typeof config.get(\"Name\") === \"string\"\n ? stringToPDFString(config.get(\"Name\"))\n : null,\n creator:\n typeof config.get(\"Creator\") === \"string\"\n ? stringToPDFString(config.get(\"Creator\"))\n : null,\n baseState:\n config.get(\"BaseState\") instanceof Name\n ? config.get(\"BaseState\").name\n : null,\n on: parseOnOff(config.get(\"ON\")),\n off: parseOnOff(config.get(\"OFF\")),\n order: parseOrder(config.get(\"Order\")),\n groups: null,\n };\n }\n\n setActualNumPages(num = null) {\n this._actualNumPages = num;\n }\n\n get hasActualNumPages() {\n return this._actualNumPages !== null;\n }\n\n get _pagesCount() {\n const obj = this.toplevelPagesDict.get(\"Count\");\n if (!Number.isInteger(obj)) {\n throw new FormatError(\n \"Page count in top-level pages dictionary is not an integer.\"\n );\n }\n return shadow(this, \"_pagesCount\", obj);\n }\n\n get numPages() {\n return this.hasActualNumPages ? this._actualNumPages : this._pagesCount;\n }\n\n get destinations() {\n const obj = this._readDests(),\n dests = Object.create(null);\n if (obj instanceof NameTree) {\n for (const [key, value] of obj.getAll()) {\n const dest = fetchDestination(value);\n if (dest) {\n dests[stringToPDFString(key)] = dest;\n }\n }\n } else if (obj instanceof Dict) {\n obj.forEach(function (key, value) {\n const dest = fetchDestination(value);\n if (dest) {\n dests[key] = dest;\n }\n });\n }\n return shadow(this, \"destinations\", dests);\n }\n\n getDestination(id) {\n const obj = this._readDests();\n if (obj instanceof NameTree) {\n const dest = fetchDestination(obj.get(id));\n if (dest) {\n return dest;\n }\n // Fallback to checking the *entire* NameTree, in an attempt to handle\n // corrupt PDF documents with out-of-order NameTrees (fixes issue 10272).\n const allDest = this.destinations[id];\n if (allDest) {\n warn(`Found \"${id}\" at an incorrect position in the NameTree.`);\n return allDest;\n }\n } else if (obj instanceof Dict) {\n const dest = fetchDestination(obj.get(id));\n if (dest) {\n return dest;\n }\n }\n return null;\n }\n\n /**\n * @private\n */\n _readDests() {\n const obj = this._catDict.get(\"Names\");\n if (obj?.has(\"Dests\")) {\n return new NameTree(obj.getRaw(\"Dests\"), this.xref);\n } else if (this._catDict.has(\"Dests\")) {\n // Simple destination dictionary.\n return this._catDict.get(\"Dests\");\n }\n return undefined;\n }\n\n get pageLabels() {\n let obj = null;\n try {\n obj = this._readPageLabels();\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(\"Unable to read page labels.\");\n }\n return shadow(this, \"pageLabels\", obj);\n }\n\n /**\n * @private\n */\n _readPageLabels() {\n const obj = this._catDict.getRaw(\"PageLabels\");\n if (!obj) {\n return null;\n }\n\n const pageLabels = new Array(this.numPages);\n let style = null,\n prefix = \"\";\n\n const numberTree = new NumberTree(obj, this.xref);\n const nums = numberTree.getAll();\n let currentLabel = \"\",\n currentIndex = 1;\n\n for (let i = 0, ii = this.numPages; i < ii; i++) {\n const labelDict = nums.get(i);\n\n if (labelDict !== undefined) {\n if (!(labelDict instanceof Dict)) {\n throw new FormatError(\"PageLabel is not a dictionary.\");\n }\n\n if (\n labelDict.has(\"Type\") &&\n !isName(labelDict.get(\"Type\"), \"PageLabel\")\n ) {\n throw new FormatError(\"Invalid type in PageLabel dictionary.\");\n }\n\n if (labelDict.has(\"S\")) {\n const s = labelDict.get(\"S\");\n if (!(s instanceof Name)) {\n throw new FormatError(\"Invalid style in PageLabel dictionary.\");\n }\n style = s.name;\n } else {\n style = null;\n }\n\n if (labelDict.has(\"P\")) {\n const p = labelDict.get(\"P\");\n if (typeof p !== \"string\") {\n throw new FormatError(\"Invalid prefix in PageLabel dictionary.\");\n }\n prefix = stringToPDFString(p);\n } else {\n prefix = \"\";\n }\n\n if (labelDict.has(\"St\")) {\n const st = labelDict.get(\"St\");\n if (!(Number.isInteger(st) && st >= 1)) {\n throw new FormatError(\"Invalid start in PageLabel dictionary.\");\n }\n currentIndex = st;\n } else {\n currentIndex = 1;\n }\n }\n\n switch (style) {\n case \"D\":\n currentLabel = currentIndex;\n break;\n case \"R\":\n case \"r\":\n currentLabel = toRomanNumerals(currentIndex, style === \"r\");\n break;\n case \"A\":\n case \"a\":\n const LIMIT = 26; // Use only the characters A-Z, or a-z.\n const A_UPPER_CASE = 0x41,\n A_LOWER_CASE = 0x61;\n\n const baseCharCode = style === \"a\" ? A_LOWER_CASE : A_UPPER_CASE;\n const letterIndex = currentIndex - 1;\n const character = String.fromCharCode(\n baseCharCode + (letterIndex % LIMIT)\n );\n currentLabel = character.repeat(Math.floor(letterIndex / LIMIT) + 1);\n break;\n default:\n if (style) {\n throw new FormatError(\n `Invalid style \"${style}\" in PageLabel dictionary.`\n );\n }\n currentLabel = \"\";\n }\n\n pageLabels[i] = prefix + currentLabel;\n currentIndex++;\n }\n return pageLabels;\n }\n\n get pageLayout() {\n const obj = this._catDict.get(\"PageLayout\");\n // Purposely use a non-standard default value, rather than 'SinglePage', to\n // allow differentiating between `undefined` and /SinglePage since that does\n // affect the Scroll mode (continuous/non-continuous) used in Adobe Reader.\n let pageLayout = \"\";\n\n if (obj instanceof Name) {\n switch (obj.name) {\n case \"SinglePage\":\n case \"OneColumn\":\n case \"TwoColumnLeft\":\n case \"TwoColumnRight\":\n case \"TwoPageLeft\":\n case \"TwoPageRight\":\n pageLayout = obj.name;\n }\n }\n return shadow(this, \"pageLayout\", pageLayout);\n }\n\n get pageMode() {\n const obj = this._catDict.get(\"PageMode\");\n let pageMode = \"UseNone\"; // Default value.\n\n if (obj instanceof Name) {\n switch (obj.name) {\n case \"UseNone\":\n case \"UseOutlines\":\n case \"UseThumbs\":\n case \"FullScreen\":\n case \"UseOC\":\n case \"UseAttachments\":\n pageMode = obj.name;\n }\n }\n return shadow(this, \"pageMode\", pageMode);\n }\n\n get viewerPreferences() {\n const obj = this._catDict.get(\"ViewerPreferences\");\n if (!(obj instanceof Dict)) {\n return shadow(this, \"viewerPreferences\", null);\n }\n let prefs = null;\n\n for (const key of obj.getKeys()) {\n const value = obj.get(key);\n let prefValue;\n\n switch (key) {\n case \"HideToolbar\":\n case \"HideMenubar\":\n case \"HideWindowUI\":\n case \"FitWindow\":\n case \"CenterWindow\":\n case \"DisplayDocTitle\":\n case \"PickTrayByPDFSize\":\n if (typeof value === \"boolean\") {\n prefValue = value;\n }\n break;\n case \"NonFullScreenPageMode\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"UseNone\":\n case \"UseOutlines\":\n case \"UseThumbs\":\n case \"UseOC\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"UseNone\";\n }\n }\n break;\n case \"Direction\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"L2R\":\n case \"R2L\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"L2R\";\n }\n }\n break;\n case \"ViewArea\":\n case \"ViewClip\":\n case \"PrintArea\":\n case \"PrintClip\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"MediaBox\":\n case \"CropBox\":\n case \"BleedBox\":\n case \"TrimBox\":\n case \"ArtBox\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"CropBox\";\n }\n }\n break;\n case \"PrintScaling\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"None\":\n case \"AppDefault\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"AppDefault\";\n }\n }\n break;\n case \"Duplex\":\n if (value instanceof Name) {\n switch (value.name) {\n case \"Simplex\":\n case \"DuplexFlipShortEdge\":\n case \"DuplexFlipLongEdge\":\n prefValue = value.name;\n break;\n default:\n prefValue = \"None\";\n }\n }\n break;\n case \"PrintPageRange\":\n // The number of elements must be even.\n if (Array.isArray(value) && value.length % 2 === 0) {\n const isValid = value.every((page, i, arr) => {\n return (\n Number.isInteger(page) &&\n page > 0 &&\n (i === 0 || page >= arr[i - 1]) &&\n page <= this.numPages\n );\n });\n if (isValid) {\n prefValue = value;\n }\n }\n break;\n case \"NumCopies\":\n if (Number.isInteger(value) && value > 0) {\n prefValue = value;\n }\n break;\n default:\n warn(`Ignoring non-standard key in ViewerPreferences: ${key}.`);\n continue;\n }\n\n if (prefValue === undefined) {\n warn(`Bad value, for key \"${key}\", in ViewerPreferences: ${value}.`);\n continue;\n }\n if (!prefs) {\n prefs = Object.create(null);\n }\n prefs[key] = prefValue;\n }\n return shadow(this, \"viewerPreferences\", prefs);\n }\n\n get openAction() {\n const obj = this._catDict.get(\"OpenAction\");\n const openAction = Object.create(null);\n\n if (obj instanceof Dict) {\n // Convert the OpenAction dictionary into a format that works with\n // `parseDestDictionary`, to avoid having to re-implement those checks.\n const destDict = new Dict(this.xref);\n destDict.set(\"A\", obj);\n\n const resultObj = { url: null, dest: null, action: null };\n Catalog.parseDestDictionary({ destDict, resultObj });\n\n if (Array.isArray(resultObj.dest)) {\n openAction.dest = resultObj.dest;\n } else if (resultObj.action) {\n openAction.action = resultObj.action;\n }\n } else if (Array.isArray(obj)) {\n openAction.dest = obj;\n }\n return shadow(\n this,\n \"openAction\",\n objectSize(openAction) > 0 ? openAction : null\n );\n }\n\n get attachments() {\n const obj = this._catDict.get(\"Names\");\n let attachments = null;\n\n if (obj instanceof Dict && obj.has(\"EmbeddedFiles\")) {\n const nameTree = new NameTree(obj.getRaw(\"EmbeddedFiles\"), this.xref);\n for (const [key, value] of nameTree.getAll()) {\n const fs = new FileSpec(value, this.xref);\n if (!attachments) {\n attachments = Object.create(null);\n }\n attachments[stringToPDFString(key)] = fs.serializable;\n }\n }\n return shadow(this, \"attachments\", attachments);\n }\n\n get xfaImages() {\n const obj = this._catDict.get(\"Names\");\n let xfaImages = null;\n\n if (obj instanceof Dict && obj.has(\"XFAImages\")) {\n const nameTree = new NameTree(obj.getRaw(\"XFAImages\"), this.xref);\n for (const [key, value] of nameTree.getAll()) {\n if (!xfaImages) {\n xfaImages = new Dict(this.xref);\n }\n xfaImages.set(stringToPDFString(key), value);\n }\n }\n return shadow(this, \"xfaImages\", xfaImages);\n }\n\n _collectJavaScript() {\n const obj = this._catDict.get(\"Names\");\n let javaScript = null;\n\n function appendIfJavaScriptDict(name, jsDict) {\n if (!(jsDict instanceof Dict)) {\n return;\n }\n if (!isName(jsDict.get(\"S\"), \"JavaScript\")) {\n return;\n }\n\n let js = jsDict.get(\"JS\");\n if (js instanceof BaseStream) {\n js = js.getString();\n } else if (typeof js !== \"string\") {\n return;\n }\n js = stringToPDFString(js).replaceAll(\"\\x00\", \"\");\n // Skip empty entries, similar to the `_collectJS` function.\n if (js) {\n (javaScript ||= new Map()).set(name, js);\n }\n }\n\n if (obj instanceof Dict && obj.has(\"JavaScript\")) {\n const nameTree = new NameTree(obj.getRaw(\"JavaScript\"), this.xref);\n for (const [key, value] of nameTree.getAll()) {\n appendIfJavaScriptDict(stringToPDFString(key), value);\n }\n }\n // Append OpenAction \"JavaScript\" actions, if any, to the JavaScript map.\n const openAction = this._catDict.get(\"OpenAction\");\n if (openAction) {\n appendIfJavaScriptDict(\"OpenAction\", openAction);\n }\n\n return javaScript;\n }\n\n get jsActions() {\n const javaScript = this._collectJavaScript();\n let actions = collectActions(\n this.xref,\n this._catDict,\n DocumentActionEventType\n );\n\n if (javaScript) {\n actions ||= Object.create(null);\n\n for (const [key, val] of javaScript) {\n if (key in actions) {\n actions[key].push(val);\n } else {\n actions[key] = [val];\n }\n }\n }\n return shadow(this, \"jsActions\", actions);\n }\n\n async fontFallback(id, handler) {\n const translatedFonts = await Promise.all(this.fontCache);\n\n for (const translatedFont of translatedFonts) {\n if (translatedFont.loadedName === id) {\n translatedFont.fallback(handler);\n return;\n }\n }\n }\n\n async cleanup(manuallyTriggered = false) {\n clearGlobalCaches();\n this.globalImageCache.clear(/* onlyData = */ manuallyTriggered);\n this.pageKidsCountCache.clear();\n this.pageIndexCache.clear();\n this.nonBlendModesSet.clear();\n\n const translatedFonts = await Promise.all(this.fontCache);\n\n for (const { dict } of translatedFonts) {\n delete dict.cacheKey;\n }\n this.fontCache.clear();\n this.builtInCMapCache.clear();\n this.standardFontDataCache.clear();\n this.systemFontCache.clear();\n }\n\n async getPageDict(pageIndex) {\n const nodesToVisit = [this.toplevelPagesDict];\n const visitedNodes = new RefSet();\n\n const pagesRef = this._catDict.getRaw(\"Pages\");\n if (pagesRef instanceof Ref) {\n visitedNodes.put(pagesRef);\n }\n const xref = this.xref,\n pageKidsCountCache = this.pageKidsCountCache,\n pageIndexCache = this.pageIndexCache;\n let currentPageIndex = 0;\n\n while (nodesToVisit.length) {\n const currentNode = nodesToVisit.pop();\n\n if (currentNode instanceof Ref) {\n const count = pageKidsCountCache.get(currentNode);\n // Skip nodes where the page can't be.\n if (count >= 0 && currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n continue;\n }\n // Prevent circular references in the /Pages tree.\n if (visitedNodes.has(currentNode)) {\n throw new FormatError(\"Pages tree contains circular reference.\");\n }\n visitedNodes.put(currentNode);\n\n const obj = await xref.fetchAsync(currentNode);\n if (obj instanceof Dict) {\n let type = obj.getRaw(\"Type\");\n if (type instanceof Ref) {\n type = await xref.fetchAsync(type);\n }\n if (isName(type, \"Page\") || !obj.has(\"Kids\")) {\n // Cache the Page reference, since it can *greatly* improve\n // performance by reducing redundant lookups in long documents\n // where all nodes are found at *one* level of the tree.\n if (!pageKidsCountCache.has(currentNode)) {\n pageKidsCountCache.put(currentNode, 1);\n }\n // Help improve performance of the `getPageIndex` method.\n if (!pageIndexCache.has(currentNode)) {\n pageIndexCache.put(currentNode, currentPageIndex);\n }\n\n if (currentPageIndex === pageIndex) {\n return [obj, currentNode];\n }\n currentPageIndex++;\n continue;\n }\n }\n nodesToVisit.push(obj);\n continue;\n }\n\n // Must be a child page dictionary.\n if (!(currentNode instanceof Dict)) {\n throw new FormatError(\n \"Page dictionary kid reference points to wrong type of object.\"\n );\n }\n const { objId } = currentNode;\n\n let count = currentNode.getRaw(\"Count\");\n if (count instanceof Ref) {\n count = await xref.fetchAsync(count);\n }\n if (Number.isInteger(count) && count >= 0) {\n // Cache the Kids count, since it can reduce redundant lookups in\n // documents where all nodes are found at *one* level of the tree.\n if (objId && !pageKidsCountCache.has(objId)) {\n pageKidsCountCache.put(objId, count);\n }\n\n // Skip nodes where the page can't be.\n if (currentPageIndex + count <= pageIndex) {\n currentPageIndex += count;\n continue;\n }\n }\n\n let kids = currentNode.getRaw(\"Kids\");\n if (kids instanceof Ref) {\n kids = await xref.fetchAsync(kids);\n }\n if (!Array.isArray(kids)) {\n // Prevent errors in corrupt PDF documents that violate the\n // specification by *inlining* Page dicts directly in the Kids\n // array, rather than using indirect objects (fixes issue9540.pdf).\n let type = currentNode.getRaw(\"Type\");\n if (type instanceof Ref) {\n type = await xref.fetchAsync(type);\n }\n if (isName(type, \"Page\") || !currentNode.has(\"Kids\")) {\n if (currentPageIndex === pageIndex) {\n return [currentNode, null];\n }\n currentPageIndex++;\n continue;\n }\n\n throw new FormatError(\"Page dictionary kids object is not an array.\");\n }\n\n // Always check all `Kids` nodes, to avoid getting stuck in an empty\n // node further down in the tree (see issue5644.pdf, issue8088.pdf),\n // and to ensure that we actually find the correct `Page` dict.\n for (let last = kids.length - 1; last >= 0; last--) {\n nodesToVisit.push(kids[last]);\n }\n }\n\n throw new Error(`Page index ${pageIndex} not found.`);\n }\n\n /**\n * Eagerly fetches the entire /Pages-tree; should ONLY be used as a fallback.\n * @returns {Promise<Map>}\n */\n async getAllPageDicts(recoveryMode = false) {\n const { ignoreErrors } = this.pdfManager.evaluatorOptions;\n\n const queue = [{ currentNode: this.toplevelPagesDict, posInKids: 0 }];\n const visitedNodes = new RefSet();\n\n const pagesRef = this._catDict.getRaw(\"Pages\");\n if (pagesRef instanceof Ref) {\n visitedNodes.put(pagesRef);\n }\n const map = new Map(),\n xref = this.xref,\n pageIndexCache = this.pageIndexCache;\n let pageIndex = 0;\n\n function addPageDict(pageDict, pageRef) {\n // Help improve performance of the `getPageIndex` method.\n if (pageRef && !pageIndexCache.has(pageRef)) {\n pageIndexCache.put(pageRef, pageIndex);\n }\n\n map.set(pageIndex++, [pageDict, pageRef]);\n }\n function addPageError(error) {\n if (error instanceof XRefEntryException && !recoveryMode) {\n throw error;\n }\n if (recoveryMode && ignoreErrors && pageIndex === 0) {\n // Ensure that the viewer will always load (fixes issue15590.pdf).\n warn(`getAllPageDicts - Skipping invalid first page: \"${error}\".`);\n error = Dict.empty;\n }\n\n map.set(pageIndex++, [error, null]);\n }\n\n while (queue.length > 0) {\n const queueItem = queue.at(-1);\n const { currentNode, posInKids } = queueItem;\n\n let kids = currentNode.getRaw(\"Kids\");\n if (kids instanceof Ref) {\n try {\n kids = await xref.fetchAsync(kids);\n } catch (ex) {\n addPageError(ex);\n break;\n }\n }\n if (!Array.isArray(kids)) {\n addPageError(\n new FormatError(\"Page dictionary kids object is not an array.\")\n );\n break;\n }\n\n if (posInKids >= kids.length) {\n queue.pop();\n continue;\n }\n\n const kidObj = kids[posInKids];\n let obj;\n if (kidObj instanceof Ref) {\n // Prevent circular references in the /Pages tree.\n if (visitedNodes.has(kidObj)) {\n addPageError(\n new FormatError(\"Pages tree contains circular reference.\")\n );\n break;\n }\n visitedNodes.put(kidObj);\n\n try {\n obj = await xref.fetchAsync(kidObj);\n } catch (ex) {\n addPageError(ex);\n break;\n }\n } else {\n // Prevent errors in corrupt PDF documents that violate the\n // specification by *inlining* Page dicts directly in the Kids\n // array, rather than using indirect objects (see issue9540.pdf).\n obj = kidObj;\n }\n if (!(obj instanceof Dict)) {\n addPageError(\n new FormatError(\n \"Page dictionary kid reference points to wrong type of object.\"\n )\n );\n break;\n }\n\n let type = obj.getRaw(\"Type\");\n if (type instanceof Ref) {\n try {\n type = await xref.fetchAsync(type);\n } catch (ex) {\n addPageError(ex);\n break;\n }\n }\n if (isName(type, \"Page\") || !obj.has(\"Kids\")) {\n addPageDict(obj, kidObj instanceof Ref ? kidObj : null);\n } else {\n queue.push({ currentNode: obj, posInKids: 0 });\n }\n queueItem.posInKids++;\n }\n return map;\n }\n\n getPageIndex(pageRef) {\n const cachedPageIndex = this.pageIndexCache.get(pageRef);\n if (cachedPageIndex !== undefined) {\n return Promise.resolve(cachedPageIndex);\n }\n\n // The page tree nodes have the count of all the leaves below them. To get\n // how many pages are before we just have to walk up the tree and keep\n // adding the count of siblings to the left of the node.\n const xref = this.xref;\n\n function pagesBeforeRef(kidRef) {\n let total = 0,\n parentRef;\n\n return xref\n .fetchAsync(kidRef)\n .then(function (node) {\n if (\n isRefsEqual(kidRef, pageRef) &&\n !isDict(node, \"Page\") &&\n !(node instanceof Dict && !node.has(\"Type\") && node.has(\"Contents\"))\n ) {\n throw new FormatError(\n \"The reference does not point to a /Page dictionary.\"\n );\n }\n if (!node) {\n return null;\n }\n if (!(node instanceof Dict)) {\n throw new FormatError(\"Node must be a dictionary.\");\n }\n parentRef = node.getRaw(\"Parent\");\n return node.getAsync(\"Parent\");\n })\n .then(function (parent) {\n if (!parent) {\n return null;\n }\n if (!(parent instanceof Dict)) {\n throw new FormatError(\"Parent must be a dictionary.\");\n }\n return parent.getAsync(\"Kids\");\n })\n .then(function (kids) {\n if (!kids) {\n return null;\n }\n\n const kidPromises = [];\n let found = false;\n for (const kid of kids) {\n if (!(kid instanceof Ref)) {\n throw new FormatError(\"Kid must be a reference.\");\n }\n if (isRefsEqual(kid, kidRef)) {\n found = true;\n break;\n }\n kidPromises.push(\n xref.fetchAsync(kid).then(function (obj) {\n if (!(obj instanceof Dict)) {\n throw new FormatError(\"Kid node must be a dictionary.\");\n }\n if (obj.has(\"Count\")) {\n total += obj.get(\"Count\");\n } else {\n // Page leaf node.\n total++;\n }\n })\n );\n }\n if (!found) {\n throw new FormatError(\"Kid reference not found in parent's kids.\");\n }\n return Promise.all(kidPromises).then(function () {\n return [total, parentRef];\n });\n });\n }\n\n let total = 0;\n const next = ref =>\n pagesBeforeRef(ref).then(args => {\n if (!args) {\n this.pageIndexCache.put(pageRef, total);\n return total;\n }\n const [count, parentRef] = args;\n total += count;\n return next(parentRef);\n });\n\n return next(pageRef);\n }\n\n get baseUrl() {\n const uri = this._catDict.get(\"URI\");\n if (uri instanceof Dict) {\n const base = uri.get(\"Base\");\n if (typeof base === \"string\") {\n const absoluteUrl = createValidAbsoluteUrl(base, null, {\n tryConvertEncoding: true,\n });\n if (absoluteUrl) {\n return shadow(this, \"baseUrl\", absoluteUrl.href);\n }\n }\n }\n return shadow(this, \"baseUrl\", this.pdfManager.docBaseUrl);\n }\n\n /**\n * @typedef {Object} ParseDestDictionaryParameters\n * @property {Dict} destDict - The dictionary containing the destination.\n * @property {Object} resultObj - The object where the parsed destination\n * properties will be placed.\n * @property {string} [docBaseUrl] - The document base URL that is used when\n * attempting to recover valid absolute URLs from relative ones.\n * @property {Object} [docAttachments] - The document attachments (may not\n * exist in most PDF documents).\n */\n\n /**\n * Helper function used to parse the contents of destination dictionaries.\n * @param {ParseDestDictionaryParameters} params\n */\n static parseDestDictionary({\n destDict,\n resultObj,\n docBaseUrl = null,\n docAttachments = null,\n }) {\n if (!(destDict instanceof Dict)) {\n warn(\"parseDestDictionary: `destDict` must be a dictionary.\");\n return;\n }\n\n let action = destDict.get(\"A\"),\n url,\n dest;\n if (!(action instanceof Dict)) {\n if (destDict.has(\"Dest\")) {\n // A /Dest entry should *only* contain a Name or an Array, but some bad\n // PDF generators ignore that and treat it as an /A entry.\n action = destDict.get(\"Dest\");\n } else {\n action = destDict.get(\"AA\");\n if (action instanceof Dict) {\n if (action.has(\"D\")) {\n // MouseDown\n action = action.get(\"D\");\n } else if (action.has(\"U\")) {\n // MouseUp\n action = action.get(\"U\");\n }\n }\n }\n }\n\n if (action instanceof Dict) {\n const actionType = action.get(\"S\");\n if (!(actionType instanceof Name)) {\n warn(\"parseDestDictionary: Invalid type in Action dictionary.\");\n return;\n }\n const actionName = actionType.name;\n\n switch (actionName) {\n case \"ResetForm\":\n const flags = action.get(\"Flags\");\n const include = ((typeof flags === \"number\" ? flags : 0) & 1) === 0;\n const fields = [];\n const refs = [];\n for (const obj of action.get(\"Fields\") || []) {\n if (obj instanceof Ref) {\n refs.push(obj.toString());\n } else if (typeof obj === \"string\") {\n fields.push(stringToPDFString(obj));\n }\n }\n resultObj.resetForm = { fields, refs, include };\n break;\n case \"URI\":\n url = action.get(\"URI\");\n if (url instanceof Name) {\n // Some bad PDFs do not put parentheses around relative URLs.\n url = \"/\" + url.name;\n }\n break;\n\n case \"GoTo\":\n dest = action.get(\"D\");\n break;\n\n case \"Launch\":\n // We neither want, nor can, support arbitrary 'Launch' actions.\n // However, in practice they are mostly used for linking to other PDF\n // files, which we thus attempt to support (utilizing `docBaseUrl`).\n /* falls through */\n\n case \"GoToR\":\n const urlDict = action.get(\"F\");\n if (urlDict instanceof Dict) {\n // We assume that we found a FileSpec dictionary\n // and fetch the URL without checking any further.\n url = urlDict.get(\"F\") || null;\n } else if (typeof urlDict === \"string\") {\n url = urlDict;\n }\n\n // NOTE: the destination is relative to the *remote* document.\n const remoteDest = fetchRemoteDest(action);\n if (remoteDest && typeof url === \"string\") {\n url = /* baseUrl = */ url.split(\"#\", 1)[0] + \"#\" + remoteDest;\n }\n // The 'NewWindow' property, equal to `LinkTarget.BLANK`.\n const newWindow = action.get(\"NewWindow\");\n if (typeof newWindow === \"boolean\") {\n resultObj.newWindow = newWindow;\n }\n break;\n\n case \"GoToE\":\n const target = action.get(\"T\");\n let attachment;\n\n if (docAttachments && target instanceof Dict) {\n const relationship = target.get(\"R\");\n const name = target.get(\"N\");\n\n if (isName(relationship, \"C\") && typeof name === \"string\") {\n attachment = docAttachments[stringToPDFString(name)];\n }\n }\n\n if (attachment) {\n resultObj.attachment = attachment;\n\n // NOTE: the destination is relative to the *attachment*.\n const attachmentDest = fetchRemoteDest(action);\n if (attachmentDest) {\n resultObj.attachmentDest = attachmentDest;\n }\n } else {\n warn(`parseDestDictionary - unimplemented \"GoToE\" action.`);\n }\n break;\n\n case \"Named\":\n const namedAction = action.get(\"N\");\n if (namedAction instanceof Name) {\n resultObj.action = namedAction.name;\n }\n break;\n\n case \"SetOCGState\":\n const state = action.get(\"State\");\n const preserveRB = action.get(\"PreserveRB\");\n\n if (!Array.isArray(state) || state.length === 0) {\n break;\n }\n const stateArr = [];\n\n for (const elem of state) {\n if (elem instanceof Name) {\n switch (elem.name) {\n case \"ON\":\n case \"OFF\":\n case \"Toggle\":\n stateArr.push(elem.name);\n break;\n }\n } else if (elem instanceof Ref) {\n stateArr.push(elem.toString());\n }\n }\n\n if (stateArr.length !== state.length) {\n break; // Some of the original entries are not valid.\n }\n resultObj.setOCGState = {\n state: stateArr,\n preserveRB: typeof preserveRB === \"boolean\" ? preserveRB : true,\n };\n break;\n\n case \"JavaScript\":\n const jsAction = action.get(\"JS\");\n let js;\n\n if (jsAction instanceof BaseStream) {\n js = jsAction.getString();\n } else if (typeof jsAction === \"string\") {\n js = jsAction;\n }\n\n const jsURL = js && recoverJsURL(stringToPDFString(js));\n if (jsURL) {\n url = jsURL.url;\n resultObj.newWindow = jsURL.newWindow;\n break;\n }\n /* falls through */\n default:\n if (actionName === \"JavaScript\" || actionName === \"SubmitForm\") {\n // Don't bother the user with a warning for actions that require\n // scripting support, since those will be handled separately.\n break;\n }\n warn(`parseDestDictionary - unsupported action: \"${actionName}\".`);\n break;\n }\n } else if (destDict.has(\"Dest\")) {\n // Simple destination.\n dest = destDict.get(\"Dest\");\n }\n\n if (typeof url === \"string\") {\n const absoluteUrl = createValidAbsoluteUrl(url, docBaseUrl, {\n addDefaultProtocol: true,\n tryConvertEncoding: true,\n });\n if (absoluteUrl) {\n resultObj.url = absoluteUrl.href;\n }\n resultObj.unsafeUrl = url;\n }\n if (dest) {\n if (dest instanceof Name) {\n dest = dest.name;\n }\n if (typeof dest === \"string\") {\n resultObj.dest = stringToPDFString(dest);\n } else if (Array.isArray(dest)) {\n resultObj.dest = dest;\n }\n }\n }\n}\n\nexport { Catalog };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Dict, Ref, RefSet } from \"./primitives.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { warn } from \"../shared/util.js\";\n\nfunction mayHaveChildren(value) {\n return (\n value instanceof Ref ||\n value instanceof Dict ||\n value instanceof BaseStream ||\n Array.isArray(value)\n );\n}\n\nfunction addChildren(node, nodesToVisit) {\n if (node instanceof Dict) {\n node = node.getRawValues();\n } else if (node instanceof BaseStream) {\n node = node.dict.getRawValues();\n } else if (!Array.isArray(node)) {\n return;\n }\n for (const rawValue of node) {\n if (mayHaveChildren(rawValue)) {\n nodesToVisit.push(rawValue);\n }\n }\n}\n\n/**\n * A helper for loading missing data in `Dict` graphs. It traverses the graph\n * depth first and queues up any objects that have missing data. Once it has\n * has traversed as many objects that are available it attempts to bundle the\n * missing data requests and then resume from the nodes that weren't ready.\n *\n * NOTE: It provides protection from circular references by keeping track of\n * loaded references. However, you must be careful not to load any graphs\n * that have references to the catalog or other pages since that will cause the\n * entire PDF document object graph to be traversed.\n */\nclass ObjectLoader {\n constructor(dict, keys, xref) {\n this.dict = dict;\n this.keys = keys;\n this.xref = xref;\n this.refSet = null;\n }\n\n async load() {\n // Don't walk the graph if all the data is already loaded.\n if (this.xref.stream.isDataLoaded) {\n return undefined;\n }\n\n const { keys, dict } = this;\n this.refSet = new RefSet();\n // Setup the initial nodes to visit.\n const nodesToVisit = [];\n for (const key of keys) {\n const rawValue = dict.getRaw(key);\n // Skip nodes that are guaranteed to be empty.\n if (rawValue !== undefined) {\n nodesToVisit.push(rawValue);\n }\n }\n return this._walk(nodesToVisit);\n }\n\n async _walk(nodesToVisit) {\n const nodesToRevisit = [];\n const pendingRequests = [];\n // DFS walk of the object graph.\n while (nodesToVisit.length) {\n let currentNode = nodesToVisit.pop();\n\n // Only references or chunked streams can cause missing data exceptions.\n if (currentNode instanceof Ref) {\n // Skip nodes that have already been visited.\n if (this.refSet.has(currentNode)) {\n continue;\n }\n try {\n this.refSet.put(currentNode);\n currentNode = this.xref.fetch(currentNode);\n } catch (ex) {\n if (!(ex instanceof MissingDataException)) {\n warn(`ObjectLoader._walk - requesting all data: \"${ex}\".`);\n this.refSet = null;\n\n const { manager } = this.xref.stream;\n return manager.requestAllChunks();\n }\n nodesToRevisit.push(currentNode);\n pendingRequests.push({ begin: ex.begin, end: ex.end });\n }\n }\n if (currentNode instanceof BaseStream) {\n const baseStreams = currentNode.getBaseStreams();\n if (baseStreams) {\n let foundMissingData = false;\n for (const stream of baseStreams) {\n if (stream.isDataLoaded) {\n continue;\n }\n foundMissingData = true;\n pendingRequests.push({ begin: stream.start, end: stream.end });\n }\n if (foundMissingData) {\n nodesToRevisit.push(currentNode);\n }\n }\n }\n\n addChildren(currentNode, nodesToVisit);\n }\n\n if (pendingRequests.length) {\n await this.xref.stream.manager.requestRanges(pendingRequests);\n\n for (const node of nodesToRevisit) {\n // Remove any reference nodes from the current `RefSet` so they\n // aren't skipped when we revist them.\n if (node instanceof Ref) {\n this.refSet.remove(node);\n }\n }\n return this._walk(nodesToRevisit);\n }\n // Everything is loaded.\n this.refSet = null;\n return undefined;\n }\n}\n\nexport { ObjectLoader };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n// We use these symbols to avoid name conflict between tags\n// and properties/methods names.\nconst $acceptWhitespace = Symbol();\nconst $addHTML = Symbol();\nconst $appendChild = Symbol();\nconst $childrenToHTML = Symbol();\nconst $clean = Symbol();\nconst $cleanPage = Symbol();\nconst $cleanup = Symbol();\nconst $clone = Symbol();\nconst $consumed = Symbol();\nconst $content = Symbol(\"content\");\nconst $data = Symbol(\"data\");\nconst $dump = Symbol();\nconst $extra = Symbol(\"extra\");\nconst $finalize = Symbol();\nconst $flushHTML = Symbol();\nconst $getAttributeIt = Symbol();\nconst $getAttributes = Symbol();\nconst $getAvailableSpace = Symbol();\nconst $getChildrenByClass = Symbol();\nconst $getChildrenByName = Symbol();\nconst $getChildrenByNameIt = Symbol();\nconst $getDataValue = Symbol();\nconst $getExtra = Symbol();\nconst $getRealChildrenByNameIt = Symbol();\nconst $getChildren = Symbol();\nconst $getContainedChildren = Symbol();\nconst $getNextPage = Symbol();\nconst $getSubformParent = Symbol();\nconst $getParent = Symbol();\nconst $getTemplateRoot = Symbol();\nconst $globalData = Symbol();\nconst $hasSettableValue = Symbol();\nconst $ids = Symbol();\nconst $indexOf = Symbol();\nconst $insertAt = Symbol();\nconst $isCDATAXml = Symbol();\nconst $isBindable = Symbol();\nconst $isDataValue = Symbol();\nconst $isDescendent = Symbol();\nconst $isNsAgnostic = Symbol();\nconst $isSplittable = Symbol();\nconst $isThereMoreWidth = Symbol();\nconst $isTransparent = Symbol();\nconst $isUsable = Symbol();\nconst $lastAttribute = Symbol();\nconst $namespaceId = Symbol(\"namespaceId\");\nconst $nodeName = Symbol(\"nodeName\");\nconst $nsAttributes = Symbol();\nconst $onChild = Symbol();\nconst $onChildCheck = Symbol();\nconst $onText = Symbol();\nconst $pushGlyphs = Symbol();\nconst $popPara = Symbol();\nconst $pushPara = Symbol();\nconst $removeChild = Symbol();\nconst $root = Symbol(\"root\");\nconst $resolvePrototypes = Symbol();\nconst $searchNode = Symbol();\nconst $setId = Symbol();\nconst $setSetAttributes = Symbol();\nconst $setValue = Symbol();\nconst $tabIndex = Symbol();\nconst $text = Symbol();\nconst $toPages = Symbol();\nconst $toHTML = Symbol();\nconst $toString = Symbol();\nconst $toStyle = Symbol();\nconst $uid = Symbol(\"uid\");\n\nexport {\n $acceptWhitespace,\n $addHTML,\n $appendChild,\n $childrenToHTML,\n $clean,\n $cleanPage,\n $cleanup,\n $clone,\n $consumed,\n $content,\n $data,\n $dump,\n $extra,\n $finalize,\n $flushHTML,\n $getAttributeIt,\n $getAttributes,\n $getAvailableSpace,\n $getChildren,\n $getChildrenByClass,\n $getChildrenByName,\n $getChildrenByNameIt,\n $getContainedChildren,\n $getDataValue,\n $getExtra,\n $getNextPage,\n $getParent,\n $getRealChildrenByNameIt,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $hasSettableValue,\n $ids,\n $indexOf,\n $insertAt,\n $isBindable,\n $isCDATAXml,\n $isDataValue,\n $isDescendent,\n $isNsAgnostic,\n $isSplittable,\n $isThereMoreWidth,\n $isTransparent,\n $isUsable,\n $lastAttribute,\n $namespaceId,\n $nodeName,\n $nsAttributes,\n $onChild,\n $onChildCheck,\n $onText,\n $popPara,\n $pushGlyphs,\n $pushPara,\n $removeChild,\n $resolvePrototypes,\n $root,\n $searchNode,\n $setId,\n $setSetAttributes,\n $setValue,\n $tabIndex,\n $text,\n $toHTML,\n $toPages,\n $toString,\n $toStyle,\n $uid,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst $buildXFAObject = Symbol();\n\nconst NamespaceIds = {\n config: {\n id: 0,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xci/\"),\n },\n connectionSet: {\n id: 1,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-connection-set/\"),\n },\n datasets: {\n id: 2,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-data/\"),\n },\n form: {\n id: 3,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-form/\"),\n },\n localeSet: {\n id: 4,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-locale-set/\"),\n },\n pdf: {\n id: 5,\n check: ns => ns === \"http://ns.adobe.com/xdp/pdf/\",\n },\n signature: {\n id: 6,\n check: ns => ns === \"http://www.w3.org/2000/09/xmldsig#\",\n },\n sourceSet: {\n id: 7,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-source-set/\"),\n },\n stylesheet: {\n id: 8,\n check: ns => ns === \"http://www.w3.org/1999/XSL/Transform\",\n },\n template: {\n id: 9,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xfa-template/\"),\n },\n xdc: {\n id: 10,\n check: ns => ns.startsWith(\"http://www.xfa.org/schema/xdc/\"),\n },\n xdp: {\n id: 11,\n check: ns => ns === \"http://ns.adobe.com/xdp/\",\n },\n xfdf: {\n id: 12,\n check: ns => ns === \"http://ns.adobe.com/xfdf/\",\n },\n xhtml: {\n id: 13,\n check: ns => ns === \"http://www.w3.org/1999/xhtml\",\n },\n xmpmeta: {\n id: 14,\n check: ns => ns === \"http://ns.adobe.com/xmpmeta/\",\n },\n};\n\nexport { $buildXFAObject, NamespaceIds };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { shadow } from \"../../shared/util.js\";\n\nconst dimConverters = {\n pt: x => x,\n cm: x => (x / 2.54) * 72,\n mm: x => (x / (10 * 2.54)) * 72,\n in: x => x * 72,\n px: x => x,\n};\nconst measurementPattern = /([+-]?\\d+\\.?\\d*)(.*)/;\n\nfunction stripQuotes(str) {\n if (str.startsWith(\"'\") || str.startsWith('\"')) {\n return str.slice(1, -1);\n }\n return str;\n}\n\nfunction getInteger({ data, defaultValue, validate }) {\n if (!data) {\n return defaultValue;\n }\n data = data.trim();\n const n = parseInt(data, 10);\n if (!isNaN(n) && validate(n)) {\n return n;\n }\n return defaultValue;\n}\n\nfunction getFloat({ data, defaultValue, validate }) {\n if (!data) {\n return defaultValue;\n }\n data = data.trim();\n const n = parseFloat(data);\n if (!isNaN(n) && validate(n)) {\n return n;\n }\n return defaultValue;\n}\n\nfunction getKeyword({ data, defaultValue, validate }) {\n if (!data) {\n return defaultValue;\n }\n data = data.trim();\n if (validate(data)) {\n return data;\n }\n return defaultValue;\n}\n\nfunction getStringOption(data, options) {\n return getKeyword({\n data,\n defaultValue: options[0],\n validate: k => options.includes(k),\n });\n}\n\nfunction getMeasurement(str, def = \"0\") {\n def ||= \"0\";\n if (!str) {\n return getMeasurement(def);\n }\n const match = str.trim().match(measurementPattern);\n if (!match) {\n return getMeasurement(def);\n }\n const [, valueStr, unit] = match;\n const value = parseFloat(valueStr);\n if (isNaN(value)) {\n return getMeasurement(def);\n }\n\n if (value === 0) {\n return 0;\n }\n\n const conv = dimConverters[unit];\n if (conv) {\n return conv(value);\n }\n\n return value;\n}\n\nfunction getRatio(data) {\n if (!data) {\n return { num: 1, den: 1 };\n }\n const ratio = data\n .trim()\n .split(/\\s*:\\s*/)\n .map(x => parseFloat(x))\n .filter(x => !isNaN(x));\n if (ratio.length === 1) {\n ratio.push(1);\n }\n\n if (ratio.length === 0) {\n return { num: 1, den: 1 };\n }\n\n const [num, den] = ratio;\n return { num, den };\n}\n\nfunction getRelevant(data) {\n if (!data) {\n return [];\n }\n return data\n .trim()\n .split(/\\s+/)\n .map(e => {\n return {\n excluded: e[0] === \"-\",\n viewname: e.substring(1),\n };\n });\n}\n\nfunction getColor(data, def = [0, 0, 0]) {\n let [r, g, b] = def;\n if (!data) {\n return { r, g, b };\n }\n const color = data\n .trim()\n .split(/\\s*,\\s*/)\n .map(c => Math.min(Math.max(0, parseInt(c.trim(), 10)), 255))\n .map(c => (isNaN(c) ? 0 : c));\n\n if (color.length < 3) {\n return { r, g, b };\n }\n\n [r, g, b] = color;\n return { r, g, b };\n}\n\nfunction getBBox(data) {\n const def = -1;\n if (!data) {\n return { x: def, y: def, width: def, height: def };\n }\n const bbox = data\n .trim()\n .split(/\\s*,\\s*/)\n .map(m => getMeasurement(m, \"-1\"));\n if (bbox.length < 4 || bbox[2] < 0 || bbox[3] < 0) {\n return { x: def, y: def, width: def, height: def };\n }\n\n const [x, y, width, height] = bbox;\n return { x, y, width, height };\n}\n\nclass HTMLResult {\n static get FAILURE() {\n return shadow(this, \"FAILURE\", new HTMLResult(false, null, null, null));\n }\n\n static get EMPTY() {\n return shadow(this, \"EMPTY\", new HTMLResult(true, null, null, null));\n }\n\n constructor(success, html, bbox, breakNode) {\n this.success = success;\n this.html = html;\n this.bbox = bbox;\n this.breakNode = breakNode;\n }\n\n isBreak() {\n return !!this.breakNode;\n }\n\n static breakNode(node) {\n return new HTMLResult(false, null, null, node);\n }\n\n static success(html, bbox = null) {\n return new HTMLResult(true, html, bbox, null);\n }\n}\n\nexport {\n getBBox,\n getColor,\n getFloat,\n getInteger,\n getKeyword,\n getMeasurement,\n getRatio,\n getRelevant,\n getStringOption,\n HTMLResult,\n stripQuotes,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $globalData } from \"./symbol_utils.js\";\nimport { stripQuotes } from \"./utils.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass FontFinder {\n constructor(pdfFonts) {\n this.fonts = new Map();\n this.cache = new Map();\n this.warned = new Set();\n this.defaultFont = null;\n this.add(pdfFonts);\n }\n\n add(pdfFonts, reallyMissingFonts = null) {\n for (const pdfFont of pdfFonts) {\n this.addPdfFont(pdfFont);\n }\n for (const pdfFont of this.fonts.values()) {\n if (!pdfFont.regular) {\n pdfFont.regular = pdfFont.italic || pdfFont.bold || pdfFont.bolditalic;\n }\n }\n\n if (!reallyMissingFonts || reallyMissingFonts.size === 0) {\n return;\n }\n const myriad = this.fonts.get(\"PdfJS-Fallback-PdfJS-XFA\");\n for (const missing of reallyMissingFonts) {\n this.fonts.set(missing, myriad);\n }\n }\n\n addPdfFont(pdfFont) {\n const cssFontInfo = pdfFont.cssFontInfo;\n const name = cssFontInfo.fontFamily;\n let font = this.fonts.get(name);\n if (!font) {\n font = Object.create(null);\n this.fonts.set(name, font);\n if (!this.defaultFont) {\n this.defaultFont = font;\n }\n }\n let property = \"\";\n const fontWeight = parseFloat(cssFontInfo.fontWeight);\n if (parseFloat(cssFontInfo.italicAngle) !== 0) {\n property = fontWeight >= 700 ? \"bolditalic\" : \"italic\";\n } else if (fontWeight >= 700) {\n property = \"bold\";\n }\n\n if (!property) {\n if (pdfFont.name.includes(\"Bold\") || pdfFont.psName?.includes(\"Bold\")) {\n property = \"bold\";\n }\n if (\n pdfFont.name.includes(\"Italic\") ||\n pdfFont.name.endsWith(\"It\") ||\n pdfFont.psName?.includes(\"Italic\") ||\n pdfFont.psName?.endsWith(\"It\")\n ) {\n property += \"italic\";\n }\n }\n\n if (!property) {\n property = \"regular\";\n }\n\n font[property] = pdfFont;\n }\n\n getDefault() {\n return this.defaultFont;\n }\n\n find(fontName, mustWarn = true) {\n let font = this.fonts.get(fontName) || this.cache.get(fontName);\n if (font) {\n return font;\n }\n\n const pattern = /,|-|_| |bolditalic|bold|italic|regular|it/gi;\n let name = fontName.replaceAll(pattern, \"\");\n font = this.fonts.get(name);\n if (font) {\n this.cache.set(fontName, font);\n return font;\n }\n name = name.toLowerCase();\n\n const maybe = [];\n for (const [family, pdfFont] of this.fonts.entries()) {\n if (family.replaceAll(pattern, \"\").toLowerCase().startsWith(name)) {\n maybe.push(pdfFont);\n }\n }\n\n if (maybe.length === 0) {\n for (const [, pdfFont] of this.fonts.entries()) {\n if (\n pdfFont.regular.name\n ?.replaceAll(pattern, \"\")\n .toLowerCase()\n .startsWith(name)\n ) {\n maybe.push(pdfFont);\n }\n }\n }\n\n if (maybe.length === 0) {\n name = name.replaceAll(/psmt|mt/gi, \"\");\n for (const [family, pdfFont] of this.fonts.entries()) {\n if (family.replaceAll(pattern, \"\").toLowerCase().startsWith(name)) {\n maybe.push(pdfFont);\n }\n }\n }\n\n if (maybe.length === 0) {\n for (const pdfFont of this.fonts.values()) {\n if (\n pdfFont.regular.name\n ?.replaceAll(pattern, \"\")\n .toLowerCase()\n .startsWith(name)\n ) {\n maybe.push(pdfFont);\n }\n }\n }\n\n if (maybe.length >= 1) {\n if (maybe.length !== 1 && mustWarn) {\n warn(`XFA - Too many choices to guess the correct font: ${fontName}`);\n }\n this.cache.set(fontName, maybe[0]);\n return maybe[0];\n }\n\n if (mustWarn && !this.warned.has(fontName)) {\n this.warned.add(fontName);\n warn(`XFA - Cannot find the font: ${fontName}`);\n }\n return null;\n }\n}\n\nfunction selectFont(xfaFont, typeface) {\n if (xfaFont.posture === \"italic\") {\n if (xfaFont.weight === \"bold\") {\n return typeface.bolditalic;\n }\n return typeface.italic;\n } else if (xfaFont.weight === \"bold\") {\n return typeface.bold;\n }\n\n return typeface.regular;\n}\n\nfunction getMetrics(xfaFont, real = false) {\n let pdfFont = null;\n if (xfaFont) {\n const name = stripQuotes(xfaFont.typeface);\n const typeface = xfaFont[$globalData].fontFinder.find(name);\n pdfFont = selectFont(xfaFont, typeface);\n }\n\n if (!pdfFont) {\n return {\n lineHeight: 12,\n lineGap: 2,\n lineNoGap: 10,\n };\n }\n\n const size = xfaFont.size || 10;\n const lineHeight = pdfFont.lineHeight\n ? Math.max(real ? 0 : 1.2, pdfFont.lineHeight)\n : 1.2;\n const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n return {\n lineHeight: lineHeight * size,\n lineGap: lineGap * size,\n lineNoGap: Math.max(1, lineHeight - lineGap) * size,\n };\n}\n\nexport { FontFinder, getMetrics, selectFont };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { selectFont } from \"./fonts.js\";\n\nconst WIDTH_FACTOR = 1.02;\n\nclass FontInfo {\n constructor(xfaFont, margin, lineHeight, fontFinder) {\n this.lineHeight = lineHeight;\n this.paraMargin = margin || {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n };\n\n if (!xfaFont) {\n [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n return;\n }\n\n this.xfaFont = {\n typeface: xfaFont.typeface,\n posture: xfaFont.posture,\n weight: xfaFont.weight,\n size: xfaFont.size,\n letterSpacing: xfaFont.letterSpacing,\n };\n const typeface = fontFinder.find(xfaFont.typeface);\n if (!typeface) {\n [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n return;\n }\n\n this.pdfFont = selectFont(xfaFont, typeface);\n\n if (!this.pdfFont) {\n [this.pdfFont, this.xfaFont] = this.defaultFont(fontFinder);\n }\n }\n\n defaultFont(fontFinder) {\n // TODO: Add a default font based on Liberation.\n const font =\n fontFinder.find(\"Helvetica\", false) ||\n fontFinder.find(\"Myriad Pro\", false) ||\n fontFinder.find(\"Arial\", false) ||\n fontFinder.getDefault();\n if (font?.regular) {\n const pdfFont = font.regular;\n const info = pdfFont.cssFontInfo;\n const xfaFont = {\n typeface: info.fontFamily,\n posture: \"normal\",\n weight: \"normal\",\n size: 10,\n letterSpacing: 0,\n };\n return [pdfFont, xfaFont];\n }\n\n const xfaFont = {\n typeface: \"Courier\",\n posture: \"normal\",\n weight: \"normal\",\n size: 10,\n letterSpacing: 0,\n };\n return [null, xfaFont];\n }\n}\n\nclass FontSelector {\n constructor(\n defaultXfaFont,\n defaultParaMargin,\n defaultLineHeight,\n fontFinder\n ) {\n this.fontFinder = fontFinder;\n this.stack = [\n new FontInfo(\n defaultXfaFont,\n defaultParaMargin,\n defaultLineHeight,\n fontFinder\n ),\n ];\n }\n\n pushData(xfaFont, margin, lineHeight) {\n const lastFont = this.stack.at(-1);\n for (const name of [\n \"typeface\",\n \"posture\",\n \"weight\",\n \"size\",\n \"letterSpacing\",\n ]) {\n if (!xfaFont[name]) {\n xfaFont[name] = lastFont.xfaFont[name];\n }\n }\n\n for (const name of [\"top\", \"bottom\", \"left\", \"right\"]) {\n if (isNaN(margin[name])) {\n margin[name] = lastFont.paraMargin[name];\n }\n }\n\n const fontInfo = new FontInfo(\n xfaFont,\n margin,\n lineHeight || lastFont.lineHeight,\n this.fontFinder\n );\n if (!fontInfo.pdfFont) {\n fontInfo.pdfFont = lastFont.pdfFont;\n }\n\n this.stack.push(fontInfo);\n }\n\n popFont() {\n this.stack.pop();\n }\n\n topFont() {\n return this.stack.at(-1);\n }\n}\n\n/**\n * Compute a text area dimensions based on font metrics.\n */\nclass TextMeasure {\n constructor(defaultXfaFont, defaultParaMargin, defaultLineHeight, fonts) {\n this.glyphs = [];\n this.fontSelector = new FontSelector(\n defaultXfaFont,\n defaultParaMargin,\n defaultLineHeight,\n fonts\n );\n this.extraHeight = 0;\n }\n\n pushData(xfaFont, margin, lineHeight) {\n this.fontSelector.pushData(xfaFont, margin, lineHeight);\n }\n\n popFont(xfaFont) {\n return this.fontSelector.popFont();\n }\n\n addPara() {\n const lastFont = this.fontSelector.topFont();\n this.extraHeight += lastFont.paraMargin.top + lastFont.paraMargin.bottom;\n }\n\n addString(str) {\n if (!str) {\n return;\n }\n\n const lastFont = this.fontSelector.topFont();\n const fontSize = lastFont.xfaFont.size;\n if (lastFont.pdfFont) {\n const letterSpacing = lastFont.xfaFont.letterSpacing;\n const pdfFont = lastFont.pdfFont;\n const fontLineHeight = pdfFont.lineHeight || 1.2;\n const lineHeight =\n lastFont.lineHeight || Math.max(1.2, fontLineHeight) * fontSize;\n const lineGap = pdfFont.lineGap === undefined ? 0.2 : pdfFont.lineGap;\n const noGap = fontLineHeight - lineGap;\n const firstLineHeight = Math.max(1, noGap) * fontSize;\n const scale = fontSize / 1000;\n const fallbackWidth =\n pdfFont.defaultWidth || pdfFont.charsToGlyphs(\" \")[0].width;\n\n for (const line of str.split(/[\\u2029\\n]/)) {\n const encodedLine = pdfFont.encodeString(line).join(\"\");\n const glyphs = pdfFont.charsToGlyphs(encodedLine);\n\n for (const glyph of glyphs) {\n const width = glyph.width || fallbackWidth;\n this.glyphs.push([\n width * scale + letterSpacing,\n lineHeight,\n firstLineHeight,\n glyph.unicode,\n false,\n ]);\n }\n\n this.glyphs.push([0, 0, 0, \"\\n\", true]);\n }\n this.glyphs.pop();\n return;\n }\n\n // When we have no font in the pdf, just use the font size as default width.\n for (const line of str.split(/[\\u2029\\n]/)) {\n for (const char of line.split(\"\")) {\n this.glyphs.push([fontSize, 1.2 * fontSize, fontSize, char, false]);\n }\n\n this.glyphs.push([0, 0, 0, \"\\n\", true]);\n }\n this.glyphs.pop();\n }\n\n compute(maxWidth) {\n let lastSpacePos = -1,\n lastSpaceWidth = 0,\n width = 0,\n height = 0,\n currentLineWidth = 0,\n currentLineHeight = 0;\n let isBroken = false;\n let isFirstLine = true;\n\n for (let i = 0, ii = this.glyphs.length; i < ii; i++) {\n const [glyphWidth, lineHeight, firstLineHeight, char, isEOL] =\n this.glyphs[i];\n const isSpace = char === \" \";\n const glyphHeight = isFirstLine ? firstLineHeight : lineHeight;\n if (isEOL) {\n width = Math.max(width, currentLineWidth);\n currentLineWidth = 0;\n height += currentLineHeight;\n currentLineHeight = glyphHeight;\n lastSpacePos = -1;\n lastSpaceWidth = 0;\n isFirstLine = false;\n continue;\n }\n\n if (isSpace) {\n if (currentLineWidth + glyphWidth > maxWidth) {\n // We can break here but the space is not taken into account.\n width = Math.max(width, currentLineWidth);\n currentLineWidth = 0;\n height += currentLineHeight;\n currentLineHeight = glyphHeight;\n lastSpacePos = -1;\n lastSpaceWidth = 0;\n isBroken = true;\n isFirstLine = false;\n } else {\n currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n lastSpaceWidth = currentLineWidth;\n currentLineWidth += glyphWidth;\n lastSpacePos = i;\n }\n continue;\n }\n\n if (currentLineWidth + glyphWidth > maxWidth) {\n // We must break to the last white position (if available)\n height += currentLineHeight;\n currentLineHeight = glyphHeight;\n if (lastSpacePos !== -1) {\n i = lastSpacePos;\n width = Math.max(width, lastSpaceWidth);\n currentLineWidth = 0;\n lastSpacePos = -1;\n lastSpaceWidth = 0;\n } else {\n // Just break in the middle of the word\n width = Math.max(width, currentLineWidth);\n currentLineWidth = glyphWidth;\n }\n isBroken = true;\n isFirstLine = false;\n\n continue;\n }\n\n currentLineWidth += glyphWidth;\n currentLineHeight = Math.max(glyphHeight, currentLineHeight);\n }\n\n width = Math.max(width, currentLineWidth);\n height += currentLineHeight + this.extraHeight;\n\n return { width: WIDTH_FACTOR * width, height, isBroken };\n }\n}\n\nexport { TextMeasure };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $getChildren,\n $getChildrenByClass,\n $getChildrenByName,\n $getParent,\n} from \"./symbol_utils.js\";\nimport { warn } from \"../../shared/util.js\";\n\nconst namePattern = /^[^.[]+/;\nconst indexPattern = /^[^\\]]+/;\nconst operators = {\n dot: 0,\n dotDot: 1,\n dotHash: 2,\n dotBracket: 3,\n dotParen: 4,\n};\n\nconst shortcuts = new Map([\n [\"$data\", (root, current) => (root.datasets ? root.datasets.data : root)],\n [\n \"$record\",\n (root, current) =>\n (root.datasets ? root.datasets.data : root)[$getChildren]()[0],\n ],\n [\"$template\", (root, current) => root.template],\n [\"$connectionSet\", (root, current) => root.connectionSet],\n [\"$form\", (root, current) => root.form],\n [\"$layout\", (root, current) => root.layout],\n [\"$host\", (root, current) => root.host],\n [\"$dataWindow\", (root, current) => root.dataWindow],\n [\"$event\", (root, current) => root.event],\n [\"!\", (root, current) => root.datasets],\n [\"$xfa\", (root, current) => root],\n [\"xfa\", (root, current) => root],\n [\"$\", (root, current) => current],\n]);\n\nconst somCache = new WeakMap();\n\nfunction parseIndex(index) {\n index = index.trim();\n if (index === \"*\") {\n return Infinity;\n }\n return parseInt(index, 10) || 0;\n}\n\n// For now expressions containing .[...] or .(...) are not\n// evaluated so don't parse them.\n// TODO: implement that stuff and the remove the noExpr param.\nfunction parseExpression(expr, dotDotAllowed, noExpr = true) {\n let match = expr.match(namePattern);\n if (!match) {\n return null;\n }\n\n let [name] = match;\n const parsed = [\n {\n name,\n cacheName: \".\" + name,\n index: 0,\n js: null,\n formCalc: null,\n operator: operators.dot,\n },\n ];\n\n let pos = name.length;\n\n while (pos < expr.length) {\n const spos = pos;\n const char = expr.charAt(pos++);\n if (char === \"[\") {\n match = expr.slice(pos).match(indexPattern);\n if (!match) {\n warn(\"XFA - Invalid index in SOM expression\");\n return null;\n }\n parsed.at(-1).index = parseIndex(match[0]);\n pos += match[0].length + 1;\n continue;\n }\n\n let operator;\n switch (expr.charAt(pos)) {\n case \".\":\n if (!dotDotAllowed) {\n return null;\n }\n pos++;\n operator = operators.dotDot;\n break;\n case \"#\":\n pos++;\n operator = operators.dotHash;\n break;\n case \"[\":\n if (noExpr) {\n warn(\n \"XFA - SOM expression contains a FormCalc subexpression which is not supported for now.\"\n );\n return null;\n }\n // TODO: FormCalc expression so need to use the parser\n operator = operators.dotBracket;\n break;\n case \"(\":\n if (noExpr) {\n warn(\n \"XFA - SOM expression contains a JavaScript subexpression which is not supported for now.\"\n );\n return null;\n }\n // TODO:\n // JavaScript expression: should be a boolean operation with a path\n // so maybe we can have our own parser for that stuff or\n // maybe use the formcalc one.\n operator = operators.dotParen;\n break;\n default:\n operator = operators.dot;\n break;\n }\n\n match = expr.slice(pos).match(namePattern);\n if (!match) {\n break;\n }\n\n [name] = match;\n pos += name.length;\n parsed.push({\n name,\n cacheName: expr.slice(spos, pos),\n operator,\n index: 0,\n js: null,\n formCalc: null,\n });\n }\n return parsed;\n}\n\nfunction searchNode(\n root,\n container,\n expr,\n dotDotAllowed = true,\n useCache = true\n) {\n const parsed = parseExpression(expr, dotDotAllowed);\n if (!parsed) {\n return null;\n }\n\n const fn = shortcuts.get(parsed[0].name);\n let i = 0;\n let isQualified;\n if (fn) {\n isQualified = true;\n root = [fn(root, container)];\n i = 1;\n } else {\n isQualified = container === null;\n root = [container || root];\n }\n\n for (let ii = parsed.length; i < ii; i++) {\n const { name, cacheName, operator, index } = parsed[i];\n const nodes = [];\n for (const node of root) {\n if (!node.isXFAObject) {\n continue;\n }\n\n let children, cached;\n\n if (useCache) {\n cached = somCache.get(node);\n if (!cached) {\n cached = new Map();\n somCache.set(node, cached);\n }\n children = cached.get(cacheName);\n }\n\n if (!children) {\n switch (operator) {\n case operators.dot:\n children = node[$getChildrenByName](name, false);\n break;\n case operators.dotDot:\n children = node[$getChildrenByName](name, true);\n break;\n case operators.dotHash:\n children = node[$getChildrenByClass](name);\n children = children.isXFAObjectArray\n ? children.children\n : [children];\n break;\n default:\n break;\n }\n if (useCache) {\n cached.set(cacheName, children);\n }\n }\n\n if (children.length > 0) {\n nodes.push(children);\n }\n }\n\n if (nodes.length === 0 && !isQualified && i === 0) {\n // We've an unqualified expression and we didn't find anything\n // so look at container and siblings of container and so on.\n // http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.364.2157&rep=rep1&type=pdf#page=114\n const parent = container[$getParent]();\n container = parent;\n if (!container) {\n return null;\n }\n i = -1;\n root = [container];\n continue;\n }\n\n root = isFinite(index)\n ? nodes.filter(node => index < node.length).map(node => node[index])\n : nodes.flat();\n }\n\n if (root.length === 0) {\n return null;\n }\n\n return root;\n}\n\nfunction createDataNode(root, container, expr) {\n const parsed = parseExpression(expr);\n if (!parsed) {\n return null;\n }\n\n if (parsed.some(x => x.operator === operators.dotDot)) {\n return null;\n }\n\n const fn = shortcuts.get(parsed[0].name);\n let i = 0;\n if (fn) {\n root = fn(root, container);\n i = 1;\n } else {\n root = container || root;\n }\n\n for (let ii = parsed.length; i < ii; i++) {\n const { name, operator, index } = parsed[i];\n if (!isFinite(index)) {\n parsed[i].index = 0;\n return root.createNodes(parsed.slice(i));\n }\n\n let children;\n switch (operator) {\n case operators.dot:\n children = root[$getChildrenByName](name, false);\n break;\n case operators.dotDot:\n children = root[$getChildrenByName](name, true);\n break;\n case operators.dotHash:\n children = root[$getChildrenByClass](name);\n children = children.isXFAObjectArray ? children.children : [children];\n break;\n default:\n break;\n }\n\n if (children.length === 0) {\n return root.createNodes(parsed.slice(i));\n }\n\n if (index < children.length) {\n const child = children[index];\n if (!child.isXFAObject) {\n warn(`XFA - Cannot create a node.`);\n return null;\n }\n root = child;\n } else {\n parsed[i].index = index - children.length;\n return root.createNodes(parsed.slice(i));\n }\n }\n return null;\n}\n\nexport { createDataNode, searchNode };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $addHTML,\n $appendChild,\n $childrenToHTML,\n $clean,\n $cleanup,\n $clone,\n $consumed,\n $content,\n $dump,\n $extra,\n $finalize,\n $flushHTML,\n $getAttributeIt,\n $getAttributes,\n $getAvailableSpace,\n $getChildren,\n $getChildrenByClass,\n $getChildrenByName,\n $getChildrenByNameIt,\n $getContainedChildren,\n $getDataValue,\n $getParent,\n $getRealChildrenByNameIt,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $hasSettableValue,\n $indexOf,\n $insertAt,\n $isBindable,\n $isCDATAXml,\n $isDataValue,\n $isDescendent,\n $isNsAgnostic,\n $isSplittable,\n $isThereMoreWidth,\n $isTransparent,\n $lastAttribute,\n $namespaceId,\n $nodeName,\n $nsAttributes,\n $onChild,\n $onChildCheck,\n $onText,\n $popPara,\n $pushPara,\n $removeChild,\n $resolvePrototypes,\n $root,\n $setId,\n $setSetAttributes,\n $setValue,\n $text,\n $toHTML,\n $toString,\n $toStyle,\n $uid,\n} from \"./symbol_utils.js\";\nimport { getInteger, getKeyword, HTMLResult } from \"./utils.js\";\nimport { shadow, utf8StringToString, warn } from \"../../shared/util.js\";\nimport { encodeToXmlString } from \"../core_utils.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { searchNode } from \"./som.js\";\n\nconst _applyPrototype = Symbol();\nconst _attributes = Symbol();\nconst _attributeNames = Symbol();\nconst _children = Symbol(\"_children\");\nconst _cloneAttribute = Symbol();\nconst _dataValue = Symbol();\nconst _defaultValue = Symbol();\nconst _filteredChildrenGenerator = Symbol();\nconst _getPrototype = Symbol();\nconst _getUnsetAttributes = Symbol();\nconst _hasChildren = Symbol();\nconst _max = Symbol();\nconst _options = Symbol();\nconst _parent = Symbol(\"parent\");\nconst _resolvePrototypesHelper = Symbol();\nconst _setAttributes = Symbol();\nconst _validator = Symbol();\n\nlet uid = 0;\n\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nclass XFAObject {\n constructor(nsId, name, hasChildren = false) {\n this[$namespaceId] = nsId;\n this[$nodeName] = name;\n this[_hasChildren] = hasChildren;\n this[_parent] = null;\n this[_children] = [];\n this[$uid] = `${name}${uid++}`;\n this[$globalData] = null;\n }\n\n get isXFAObject() {\n return true;\n }\n\n get isXFAObjectArray() {\n return false;\n }\n\n createNodes(path) {\n let root = this,\n node = null;\n for (const { name, index } of path) {\n for (let i = 0, ii = isFinite(index) ? index : 0; i <= ii; i++) {\n const nsId =\n root[$namespaceId] === NS_DATASETS ? -1 : root[$namespaceId];\n node = new XmlObject(nsId, name);\n root[$appendChild](node);\n }\n root = node;\n }\n return node;\n }\n\n [$onChild](child) {\n if (!this[_hasChildren] || !this[$onChildCheck](child)) {\n return false;\n }\n\n const name = child[$nodeName];\n const node = this[name];\n\n if (node instanceof XFAObjectArray) {\n if (node.push(child)) {\n this[$appendChild](child);\n return true;\n }\n } else {\n // IRL it's possible to already have a node.\n // So just replace it with the last version.\n if (node !== null) {\n this[$removeChild](node);\n }\n this[name] = child;\n this[$appendChild](child);\n return true;\n }\n\n let id = \"\";\n if (this.id) {\n id = ` (id: ${this.id})`;\n } else if (this.name) {\n id = ` (name: ${this.name} ${this.h.value})`;\n }\n warn(`XFA - node \"${this[$nodeName]}\"${id} has already enough \"${name}\"!`);\n return false;\n }\n\n [$onChildCheck](child) {\n return (\n this.hasOwnProperty(child[$nodeName]) &&\n child[$namespaceId] === this[$namespaceId]\n );\n }\n\n [$isNsAgnostic]() {\n return false;\n }\n\n [$acceptWhitespace]() {\n return false;\n }\n\n [$isCDATAXml]() {\n return false;\n }\n\n [$isBindable]() {\n return false;\n }\n\n [$popPara]() {\n if (this.para) {\n this[$getTemplateRoot]()[$extra].paraStack.pop();\n }\n }\n\n [$pushPara]() {\n this[$getTemplateRoot]()[$extra].paraStack.push(this.para);\n }\n\n [$setId](ids) {\n if (this.id && this[$namespaceId] === NamespaceIds.template.id) {\n ids.set(this.id, this);\n }\n }\n\n [$getTemplateRoot]() {\n return this[$globalData].template;\n }\n\n [$isSplittable]() {\n return false;\n }\n\n /**\n Return true if this node (typically a container)\n can provide more width during layout.\n The goal is to help to know what a descendant must\n do in case of horizontal overflow.\n */\n [$isThereMoreWidth]() {\n return false;\n }\n\n [$appendChild](child) {\n child[_parent] = this;\n this[_children].push(child);\n if (!child[$globalData] && this[$globalData]) {\n child[$globalData] = this[$globalData];\n }\n }\n\n [$removeChild](child) {\n const i = this[_children].indexOf(child);\n this[_children].splice(i, 1);\n }\n\n [$hasSettableValue]() {\n return this.hasOwnProperty(\"value\");\n }\n\n [$setValue](_) {}\n\n [$onText](_) {}\n\n [$finalize]() {}\n\n [$clean](builder) {\n delete this[_hasChildren];\n if (this[$cleanup]) {\n builder.clean(this[$cleanup]);\n delete this[$cleanup];\n }\n }\n\n [$indexOf](child) {\n return this[_children].indexOf(child);\n }\n\n [$insertAt](i, child) {\n child[_parent] = this;\n this[_children].splice(i, 0, child);\n if (!child[$globalData] && this[$globalData]) {\n child[$globalData] = this[$globalData];\n }\n }\n\n /**\n * If true the element is transparent when searching a node using\n * a SOM expression which means that looking for \"foo.bar\" in\n * <... name=\"foo\"><toto><titi><... name=\"bar\"></titi></toto>...\n * is fine because toto and titi are transparent.\n */\n [$isTransparent]() {\n return !this.name;\n }\n\n [$lastAttribute]() {\n return \"\";\n }\n\n [$text]() {\n if (this[_children].length === 0) {\n return this[$content];\n }\n return this[_children].map(c => c[$text]()).join(\"\");\n }\n\n get [_attributeNames]() {\n // Lazily get attributes names\n const proto = Object.getPrototypeOf(this);\n if (!proto._attributes) {\n const attributes = (proto._attributes = new Set());\n for (const name of Object.getOwnPropertyNames(this)) {\n if (\n this[name] === null ||\n this[name] instanceof XFAObject ||\n this[name] instanceof XFAObjectArray\n ) {\n break;\n }\n attributes.add(name);\n }\n }\n return shadow(this, _attributeNames, proto._attributes);\n }\n\n [$isDescendent](parent) {\n let node = this;\n while (node) {\n if (node === parent) {\n return true;\n }\n node = node[$getParent]();\n }\n return false;\n }\n\n [$getParent]() {\n return this[_parent];\n }\n\n [$getSubformParent]() {\n return this[$getParent]();\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[name];\n }\n\n [$dump]() {\n const dumped = Object.create(null);\n if (this[$content]) {\n dumped.$content = this[$content];\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n const value = this[name];\n if (value === null) {\n continue;\n }\n if (value instanceof XFAObject) {\n dumped[name] = value[$dump]();\n } else if (value instanceof XFAObjectArray) {\n if (!value.isEmpty()) {\n dumped[name] = value.dump();\n }\n } else {\n dumped[name] = value;\n }\n }\n\n return dumped;\n }\n\n [$toStyle]() {\n return null;\n }\n\n [$toHTML]() {\n return HTMLResult.EMPTY;\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in Subform and SubformSet.\n for (const node of this[$getChildren]()) {\n yield node;\n }\n }\n\n *[_filteredChildrenGenerator](filter, include) {\n for (const node of this[$getContainedChildren]()) {\n if (!filter || include === filter.has(node[$nodeName])) {\n const availableSpace = this[$getAvailableSpace]();\n const res = node[$toHTML](availableSpace);\n if (!res.success) {\n this[$extra].failingNode = node;\n }\n yield res;\n }\n }\n }\n\n [$flushHTML]() {\n return null;\n }\n\n [$addHTML](html, bbox) {\n this[$extra].children.push(html);\n }\n\n [$getAvailableSpace]() {}\n\n [$childrenToHTML]({ filter = null, include = true }) {\n if (!this[$extra].generator) {\n this[$extra].generator = this[_filteredChildrenGenerator](\n filter,\n include\n );\n } else {\n const availableSpace = this[$getAvailableSpace]();\n const res = this[$extra].failingNode[$toHTML](availableSpace);\n if (!res.success) {\n return res;\n }\n if (res.html) {\n this[$addHTML](res.html, res.bbox);\n }\n delete this[$extra].failingNode;\n }\n\n while (true) {\n const gen = this[$extra].generator.next();\n if (gen.done) {\n break;\n }\n const res = gen.value;\n if (!res.success) {\n return res;\n }\n if (res.html) {\n this[$addHTML](res.html, res.bbox);\n }\n }\n\n this[$extra].generator = null;\n\n return HTMLResult.EMPTY;\n }\n\n [$setSetAttributes](attributes) {\n // Just keep set attributes because it can be used in a proto.\n this[_setAttributes] = new Set(Object.keys(attributes));\n }\n\n /**\n * Get attribute names which have been set in the proto but not in this.\n */\n [_getUnsetAttributes](protoAttributes) {\n const allAttr = this[_attributeNames];\n const setAttr = this[_setAttributes];\n return [...protoAttributes].filter(x => allAttr.has(x) && !setAttr.has(x));\n }\n\n /**\n * Update the node with properties coming from a prototype and apply\n * this function recursively to all children.\n */\n [$resolvePrototypes](ids, ancestors = new Set()) {\n for (const child of this[_children]) {\n child[_resolvePrototypesHelper](ids, ancestors);\n }\n }\n\n [_resolvePrototypesHelper](ids, ancestors) {\n const proto = this[_getPrototype](ids, ancestors);\n if (proto) {\n // _applyPrototype will apply $resolvePrototypes with correct ancestors\n // to avoid infinite loop.\n this[_applyPrototype](proto, ids, ancestors);\n } else {\n this[$resolvePrototypes](ids, ancestors);\n }\n }\n\n [_getPrototype](ids, ancestors) {\n const { use, usehref } = this;\n if (!use && !usehref) {\n return null;\n }\n\n let proto = null;\n let somExpression = null;\n let id = null;\n let ref = use;\n\n // If usehref and use are non-empty then use usehref.\n if (usehref) {\n ref = usehref;\n // Href can be one of the following:\n // - #ID\n // - URI#ID\n // - #som(expression)\n // - URI#som(expression)\n // - URI\n // For now we don't handle URI other than \".\" (current document).\n if (usehref.startsWith(\"#som(\") && usehref.endsWith(\")\")) {\n somExpression = usehref.slice(\"#som(\".length, -1);\n } else if (usehref.startsWith(\".#som(\") && usehref.endsWith(\")\")) {\n somExpression = usehref.slice(\".#som(\".length, -1);\n } else if (usehref.startsWith(\"#\")) {\n id = usehref.slice(1);\n } else if (usehref.startsWith(\".#\")) {\n id = usehref.slice(2);\n }\n } else if (use.startsWith(\"#\")) {\n id = use.slice(1);\n } else {\n somExpression = use;\n }\n\n this.use = this.usehref = \"\";\n if (id) {\n proto = ids.get(id);\n } else {\n proto = searchNode(\n ids.get($root),\n this,\n somExpression,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (proto) {\n proto = proto[0];\n }\n }\n\n if (!proto) {\n warn(`XFA - Invalid prototype reference: ${ref}.`);\n return null;\n }\n\n if (proto[$nodeName] !== this[$nodeName]) {\n warn(\n `XFA - Incompatible prototype: ${proto[$nodeName]} !== ${this[$nodeName]}.`\n );\n return null;\n }\n\n if (ancestors.has(proto)) {\n // We've a cycle so break it.\n warn(`XFA - Cycle detected in prototypes use.`);\n return null;\n }\n\n ancestors.add(proto);\n\n // The prototype can have a \"use\" attribute itself.\n const protoProto = proto[_getPrototype](ids, ancestors);\n if (protoProto) {\n proto[_applyPrototype](protoProto, ids, ancestors);\n }\n\n // The prototype can have a child which itself has a \"use\" property.\n proto[$resolvePrototypes](ids, ancestors);\n\n ancestors.delete(proto);\n\n return proto;\n }\n\n [_applyPrototype](proto, ids, ancestors) {\n if (ancestors.has(proto)) {\n // We've a cycle so break it.\n warn(`XFA - Cycle detected in prototypes use.`);\n return;\n }\n\n if (!this[$content] && proto[$content]) {\n this[$content] = proto[$content];\n }\n\n const newAncestors = new Set(ancestors);\n newAncestors.add(proto);\n\n for (const unsetAttrName of this[_getUnsetAttributes](\n proto[_setAttributes]\n )) {\n this[unsetAttrName] = proto[unsetAttrName];\n if (this[_setAttributes]) {\n this[_setAttributes].add(unsetAttrName);\n }\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (this[_attributeNames].has(name)) {\n continue;\n }\n const value = this[name];\n const protoValue = proto[name];\n\n if (value instanceof XFAObjectArray) {\n for (const child of value[_children]) {\n child[_resolvePrototypesHelper](ids, ancestors);\n }\n\n for (\n let i = value[_children].length, ii = protoValue[_children].length;\n i < ii;\n i++\n ) {\n const child = proto[_children][i][$clone]();\n if (value.push(child)) {\n child[_parent] = this;\n this[_children].push(child);\n child[_resolvePrototypesHelper](ids, ancestors);\n } else {\n // No need to continue: other nodes will be rejected.\n break;\n }\n }\n continue;\n }\n\n if (value !== null) {\n value[$resolvePrototypes](ids, ancestors);\n if (protoValue) {\n // protoValue must be treated as a prototype for value.\n value[_applyPrototype](protoValue, ids, ancestors);\n }\n continue;\n }\n\n if (protoValue !== null) {\n const child = protoValue[$clone]();\n child[_parent] = this;\n this[name] = child;\n this[_children].push(child);\n child[_resolvePrototypesHelper](ids, ancestors);\n }\n }\n }\n\n static [_cloneAttribute](obj) {\n if (Array.isArray(obj)) {\n return obj.map(x => XFAObject[_cloneAttribute](x));\n }\n if (typeof obj === \"object\" && obj !== null) {\n return Object.assign({}, obj);\n }\n return obj;\n }\n\n [$clone]() {\n const clone = Object.create(Object.getPrototypeOf(this));\n for (const $symbol of Object.getOwnPropertySymbols(this)) {\n try {\n clone[$symbol] = this[$symbol];\n } catch {\n shadow(clone, $symbol, this[$symbol]);\n }\n }\n clone[$uid] = `${clone[$nodeName]}${uid++}`;\n clone[_children] = [];\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (this[_attributeNames].has(name)) {\n clone[name] = XFAObject[_cloneAttribute](this[name]);\n continue;\n }\n const value = this[name];\n clone[name] =\n value instanceof XFAObjectArray\n ? new XFAObjectArray(value[_max])\n : null;\n }\n\n for (const child of this[_children]) {\n const name = child[$nodeName];\n const clonedChild = child[$clone]();\n clone[_children].push(clonedChild);\n clonedChild[_parent] = clone;\n if (clone[name] === null) {\n clone[name] = clonedChild;\n } else {\n clone[name][_children].push(clonedChild);\n }\n }\n\n return clone;\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[_children].filter(c => c[$nodeName] === name);\n }\n\n [$getChildrenByClass](name) {\n return this[name];\n }\n\n [$getChildrenByName](name, allTransparent, first = true) {\n return Array.from(this[$getChildrenByNameIt](name, allTransparent, first));\n }\n\n *[$getChildrenByNameIt](name, allTransparent, first = true) {\n if (name === \"parent\") {\n yield this[_parent];\n return;\n }\n\n for (const child of this[_children]) {\n if (child[$nodeName] === name) {\n yield child;\n }\n\n if (child.name === name) {\n yield child;\n }\n\n if (allTransparent || child[$isTransparent]()) {\n yield* child[$getChildrenByNameIt](name, allTransparent, false);\n }\n }\n\n if (first && this[_attributeNames].has(name)) {\n yield new XFAAttribute(this, name, this[name]);\n }\n }\n}\n\nclass XFAObjectArray {\n constructor(max = Infinity) {\n this[_max] = max;\n this[_children] = [];\n }\n\n get isXFAObject() {\n return false;\n }\n\n get isXFAObjectArray() {\n return true;\n }\n\n push(child) {\n const len = this[_children].length;\n if (len <= this[_max]) {\n this[_children].push(child);\n return true;\n }\n warn(\n `XFA - node \"${child[$nodeName]}\" accepts no more than ${this[_max]} children`\n );\n return false;\n }\n\n isEmpty() {\n return this[_children].length === 0;\n }\n\n dump() {\n return this[_children].length === 1\n ? this[_children][0][$dump]()\n : this[_children].map(x => x[$dump]());\n }\n\n [$clone]() {\n const clone = new XFAObjectArray(this[_max]);\n clone[_children] = this[_children].map(c => c[$clone]());\n return clone;\n }\n\n get children() {\n return this[_children];\n }\n\n clear() {\n this[_children].length = 0;\n }\n}\n\nclass XFAAttribute {\n constructor(node, name, value) {\n this[_parent] = node;\n this[$nodeName] = name;\n this[$content] = value;\n this[$consumed] = false;\n this[$uid] = `attribute${uid++}`;\n }\n\n [$getParent]() {\n return this[_parent];\n }\n\n [$isDataValue]() {\n return true;\n }\n\n [$getDataValue]() {\n return this[$content].trim();\n }\n\n [$setValue](value) {\n value = value.value || \"\";\n this[$content] = value.toString();\n }\n\n [$text]() {\n return this[$content];\n }\n\n [$isDescendent](parent) {\n return this[_parent] === parent || this[_parent][$isDescendent](parent);\n }\n}\n\nclass XmlObject extends XFAObject {\n constructor(nsId, name, attributes = {}) {\n super(nsId, name);\n this[$content] = \"\";\n this[_dataValue] = null;\n if (name !== \"#text\") {\n const map = new Map();\n this[_attributes] = map;\n for (const [attrName, value] of Object.entries(attributes)) {\n map.set(attrName, new XFAAttribute(this, attrName, value));\n }\n if (attributes.hasOwnProperty($nsAttributes)) {\n // XFA attributes.\n const dataNode = attributes[$nsAttributes].xfa.dataNode;\n if (dataNode !== undefined) {\n if (dataNode === \"dataGroup\") {\n this[_dataValue] = false;\n } else if (dataNode === \"dataValue\") {\n this[_dataValue] = true;\n }\n }\n }\n }\n this[$consumed] = false;\n }\n\n [$toString](buf) {\n const tagName = this[$nodeName];\n if (tagName === \"#text\") {\n buf.push(encodeToXmlString(this[$content]));\n return;\n }\n const utf8TagName = utf8StringToString(tagName);\n const prefix = this[$namespaceId] === NS_DATASETS ? \"xfa:\" : \"\";\n buf.push(`<${prefix}${utf8TagName}`);\n for (const [name, value] of this[_attributes].entries()) {\n const utf8Name = utf8StringToString(name);\n buf.push(` ${utf8Name}=\"${encodeToXmlString(value[$content])}\"`);\n }\n if (this[_dataValue] !== null) {\n if (this[_dataValue]) {\n buf.push(` xfa:dataNode=\"dataValue\"`);\n } else {\n buf.push(` xfa:dataNode=\"dataGroup\"`);\n }\n }\n if (!this[$content] && this[_children].length === 0) {\n buf.push(\"/>\");\n return;\n }\n\n buf.push(\">\");\n if (this[$content]) {\n if (typeof this[$content] === \"string\") {\n buf.push(encodeToXmlString(this[$content]));\n } else {\n this[$content][$toString](buf);\n }\n } else {\n for (const child of this[_children]) {\n child[$toString](buf);\n }\n }\n buf.push(`</${prefix}${utf8TagName}>`);\n }\n\n [$onChild](child) {\n if (this[$content]) {\n const node = new XmlObject(this[$namespaceId], \"#text\");\n this[$appendChild](node);\n node[$content] = this[$content];\n this[$content] = \"\";\n }\n this[$appendChild](child);\n return true;\n }\n\n [$onText](str) {\n this[$content] += str;\n }\n\n [$finalize]() {\n if (this[$content] && this[_children].length > 0) {\n const node = new XmlObject(this[$namespaceId], \"#text\");\n this[$appendChild](node);\n node[$content] = this[$content];\n delete this[$content];\n }\n }\n\n [$toHTML]() {\n if (this[$nodeName] === \"#text\") {\n return HTMLResult.success({\n name: \"#text\",\n value: this[$content],\n });\n }\n\n return HTMLResult.EMPTY;\n }\n\n [$getChildren](name = null) {\n if (!name) {\n return this[_children];\n }\n\n return this[_children].filter(c => c[$nodeName] === name);\n }\n\n [$getAttributes]() {\n return this[_attributes];\n }\n\n [$getChildrenByClass](name) {\n const value = this[_attributes].get(name);\n if (value !== undefined) {\n return value;\n }\n return this[$getChildren](name);\n }\n\n *[$getChildrenByNameIt](name, allTransparent) {\n const value = this[_attributes].get(name);\n if (value) {\n yield value;\n }\n\n for (const child of this[_children]) {\n if (child[$nodeName] === name) {\n yield child;\n }\n\n if (allTransparent) {\n yield* child[$getChildrenByNameIt](name, allTransparent);\n }\n }\n }\n\n *[$getAttributeIt](name, skipConsumed) {\n const value = this[_attributes].get(name);\n if (value && (!skipConsumed || !value[$consumed])) {\n yield value;\n }\n for (const child of this[_children]) {\n yield* child[$getAttributeIt](name, skipConsumed);\n }\n }\n\n *[$getRealChildrenByNameIt](name, allTransparent, skipConsumed) {\n for (const child of this[_children]) {\n if (child[$nodeName] === name && (!skipConsumed || !child[$consumed])) {\n yield child;\n }\n\n if (allTransparent) {\n yield* child[$getRealChildrenByNameIt](\n name,\n allTransparent,\n skipConsumed\n );\n }\n }\n }\n\n [$isDataValue]() {\n if (this[_dataValue] === null) {\n return (\n this[_children].length === 0 ||\n this[_children][0][$namespaceId] === NamespaceIds.xhtml.id\n );\n }\n return this[_dataValue];\n }\n\n [$getDataValue]() {\n if (this[_dataValue] === null) {\n if (this[_children].length === 0) {\n return this[$content].trim();\n }\n if (this[_children][0][$namespaceId] === NamespaceIds.xhtml.id) {\n return this[_children][0][$text]().trim();\n }\n return null;\n }\n return this[$content].trim();\n }\n\n [$setValue](value) {\n value = value.value || \"\";\n this[$content] = value.toString();\n }\n\n [$dump](hasNS = false) {\n const dumped = Object.create(null);\n if (hasNS) {\n dumped.$ns = this[$namespaceId];\n }\n if (this[$content]) {\n dumped.$content = this[$content];\n }\n dumped.$name = this[$nodeName];\n\n dumped.children = [];\n for (const child of this[_children]) {\n dumped.children.push(child[$dump](hasNS));\n }\n\n dumped.attributes = Object.create(null);\n for (const [name, value] of this[_attributes]) {\n dumped.attributes[name] = value[$content];\n }\n\n return dumped;\n }\n}\n\nclass ContentObject extends XFAObject {\n constructor(nsId, name) {\n super(nsId, name);\n this[$content] = \"\";\n }\n\n [$onText](text) {\n this[$content] += text;\n }\n\n [$finalize]() {}\n}\n\nclass OptionObject extends ContentObject {\n constructor(nsId, name, options) {\n super(nsId, name);\n this[_options] = options;\n }\n\n [$finalize]() {\n this[$content] = getKeyword({\n data: this[$content],\n defaultValue: this[_options][0],\n validate: k => this[_options].includes(k),\n });\n }\n\n [$clean](builder) {\n super[$clean](builder);\n delete this[_options];\n }\n}\n\nclass StringObject extends ContentObject {\n [$finalize]() {\n this[$content] = this[$content].trim();\n }\n}\n\nclass IntegerObject extends ContentObject {\n constructor(nsId, name, defaultValue, validator) {\n super(nsId, name);\n this[_defaultValue] = defaultValue;\n this[_validator] = validator;\n }\n\n [$finalize]() {\n this[$content] = getInteger({\n data: this[$content],\n defaultValue: this[_defaultValue],\n validate: this[_validator],\n });\n }\n\n [$clean](builder) {\n super[$clean](builder);\n delete this[_defaultValue];\n delete this[_validator];\n }\n}\n\nclass Option01 extends IntegerObject {\n constructor(nsId, name) {\n super(nsId, name, 0, n => n === 1);\n }\n}\n\nclass Option10 extends IntegerObject {\n constructor(nsId, name) {\n super(nsId, name, 1, n => n === 0);\n }\n}\n\nexport {\n ContentObject,\n IntegerObject,\n Option01,\n Option10,\n OptionObject,\n StringObject,\n XFAAttribute,\n XFAObject,\n XFAObjectArray,\n XmlObject,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $content,\n $extra,\n $getParent,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $nodeName,\n $pushGlyphs,\n $text,\n $toStyle,\n} from \"./symbol_utils.js\";\nimport { createValidAbsoluteUrl, warn } from \"../../shared/util.js\";\nimport { getMeasurement, stripQuotes } from \"./utils.js\";\nimport { selectFont } from \"./fonts.js\";\nimport { TextMeasure } from \"./text.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nfunction measureToString(m) {\n if (typeof m === \"string\") {\n return \"0px\";\n }\n\n return Number.isInteger(m) ? `${m}px` : `${m.toFixed(2)}px`;\n}\n\nconst converters = {\n anchorType(node, style) {\n const parent = node[$getSubformParent]();\n if (!parent || (parent.layout && parent.layout !== \"position\")) {\n // anchorType is only used in a positioned layout.\n return;\n }\n\n if (!(\"transform\" in style)) {\n style.transform = \"\";\n }\n switch (node.anchorType) {\n case \"bottomCenter\":\n style.transform += \"translate(-50%, -100%)\";\n break;\n case \"bottomLeft\":\n style.transform += \"translate(0,-100%)\";\n break;\n case \"bottomRight\":\n style.transform += \"translate(-100%,-100%)\";\n break;\n case \"middleCenter\":\n style.transform += \"translate(-50%,-50%)\";\n break;\n case \"middleLeft\":\n style.transform += \"translate(0,-50%)\";\n break;\n case \"middleRight\":\n style.transform += \"translate(-100%,-50%)\";\n break;\n case \"topCenter\":\n style.transform += \"translate(-50%,0)\";\n break;\n case \"topRight\":\n style.transform += \"translate(-100%,0)\";\n break;\n }\n },\n dimensions(node, style) {\n const parent = node[$getSubformParent]();\n let width = node.w;\n const height = node.h;\n if (parent.layout?.includes(\"row\")) {\n const extra = parent[$extra];\n const colSpan = node.colSpan;\n let w;\n if (colSpan === -1) {\n w = extra.columnWidths\n .slice(extra.currentColumn)\n .reduce((a, x) => a + x, 0);\n extra.currentColumn = 0;\n } else {\n w = extra.columnWidths\n .slice(extra.currentColumn, extra.currentColumn + colSpan)\n .reduce((a, x) => a + x, 0);\n extra.currentColumn =\n (extra.currentColumn + node.colSpan) % extra.columnWidths.length;\n }\n\n if (!isNaN(w)) {\n width = node.w = w;\n }\n }\n\n style.width = width !== \"\" ? measureToString(width) : \"auto\";\n\n style.height = height !== \"\" ? measureToString(height) : \"auto\";\n },\n position(node, style) {\n const parent = node[$getSubformParent]();\n if (parent?.layout && parent.layout !== \"position\") {\n // IRL, we've some x/y in tb layout.\n // Specs say x/y is only used in positioned layout.\n return;\n }\n\n style.position = \"absolute\";\n style.left = measureToString(node.x);\n style.top = measureToString(node.y);\n },\n rotate(node, style) {\n if (node.rotate) {\n if (!(\"transform\" in style)) {\n style.transform = \"\";\n }\n style.transform += `rotate(-${node.rotate}deg)`;\n style.transformOrigin = \"top left\";\n }\n },\n presence(node, style) {\n switch (node.presence) {\n case \"invisible\":\n style.visibility = \"hidden\";\n break;\n case \"hidden\":\n case \"inactive\":\n style.display = \"none\";\n break;\n }\n },\n hAlign(node, style) {\n if (node[$nodeName] === \"para\") {\n switch (node.hAlign) {\n case \"justifyAll\":\n style.textAlign = \"justify-all\";\n break;\n case \"radix\":\n // TODO: implement this correctly !\n style.textAlign = \"left\";\n break;\n default:\n style.textAlign = node.hAlign;\n }\n } else {\n switch (node.hAlign) {\n case \"left\":\n style.alignSelf = \"start\";\n break;\n case \"center\":\n style.alignSelf = \"center\";\n break;\n case \"right\":\n style.alignSelf = \"end\";\n break;\n }\n }\n },\n margin(node, style) {\n if (node.margin) {\n style.margin = node.margin[$toStyle]().margin;\n }\n },\n};\n\nfunction setMinMaxDimensions(node, style) {\n const parent = node[$getSubformParent]();\n if (parent.layout === \"position\") {\n if (node.minW > 0) {\n style.minWidth = measureToString(node.minW);\n }\n if (node.maxW > 0) {\n style.maxWidth = measureToString(node.maxW);\n }\n if (node.minH > 0) {\n style.minHeight = measureToString(node.minH);\n }\n if (node.maxH > 0) {\n style.maxHeight = measureToString(node.maxH);\n }\n }\n}\n\nfunction layoutText(text, xfaFont, margin, lineHeight, fontFinder, width) {\n const measure = new TextMeasure(xfaFont, margin, lineHeight, fontFinder);\n if (typeof text === \"string\") {\n measure.addString(text);\n } else {\n text[$pushGlyphs](measure);\n }\n\n return measure.compute(width);\n}\n\nfunction layoutNode(node, availableSpace) {\n let height = null;\n let width = null;\n let isBroken = false;\n\n if ((!node.w || !node.h) && node.value) {\n let marginH = 0;\n let marginV = 0;\n if (node.margin) {\n marginH = node.margin.leftInset + node.margin.rightInset;\n marginV = node.margin.topInset + node.margin.bottomInset;\n }\n\n let lineHeight = null;\n let margin = null;\n if (node.para) {\n margin = Object.create(null);\n lineHeight = node.para.lineHeight === \"\" ? null : node.para.lineHeight;\n margin.top = node.para.spaceAbove === \"\" ? 0 : node.para.spaceAbove;\n margin.bottom = node.para.spaceBelow === \"\" ? 0 : node.para.spaceBelow;\n margin.left = node.para.marginLeft === \"\" ? 0 : node.para.marginLeft;\n margin.right = node.para.marginRight === \"\" ? 0 : node.para.marginRight;\n }\n\n let font = node.font;\n if (!font) {\n const root = node[$getTemplateRoot]();\n let parent = node[$getParent]();\n while (parent && parent !== root) {\n if (parent.font) {\n font = parent.font;\n break;\n }\n parent = parent[$getParent]();\n }\n }\n\n const maxWidth = (node.w || availableSpace.width) - marginH;\n const fontFinder = node[$globalData].fontFinder;\n if (\n node.value.exData &&\n node.value.exData[$content] &&\n node.value.exData.contentType === \"text/html\"\n ) {\n const res = layoutText(\n node.value.exData[$content],\n font,\n margin,\n lineHeight,\n fontFinder,\n maxWidth\n );\n width = res.width;\n height = res.height;\n isBroken = res.isBroken;\n } else {\n const text = node.value[$text]();\n if (text) {\n const res = layoutText(\n text,\n font,\n margin,\n lineHeight,\n fontFinder,\n maxWidth\n );\n width = res.width;\n height = res.height;\n isBroken = res.isBroken;\n }\n }\n\n if (width !== null && !node.w) {\n width += marginH;\n }\n\n if (height !== null && !node.h) {\n height += marginV;\n }\n }\n return { w: width, h: height, isBroken };\n}\n\nfunction computeBbox(node, html, availableSpace) {\n let bbox;\n if (node.w !== \"\" && node.h !== \"\") {\n bbox = [node.x, node.y, node.w, node.h];\n } else {\n if (!availableSpace) {\n return null;\n }\n let width = node.w;\n if (width === \"\") {\n if (node.maxW === 0) {\n const parent = node[$getSubformParent]();\n width = parent.layout === \"position\" && parent.w !== \"\" ? 0 : node.minW;\n } else {\n width = Math.min(node.maxW, availableSpace.width);\n }\n html.attributes.style.width = measureToString(width);\n }\n\n let height = node.h;\n if (height === \"\") {\n if (node.maxH === 0) {\n const parent = node[$getSubformParent]();\n height =\n parent.layout === \"position\" && parent.h !== \"\" ? 0 : node.minH;\n } else {\n height = Math.min(node.maxH, availableSpace.height);\n }\n html.attributes.style.height = measureToString(height);\n }\n\n bbox = [node.x, node.y, width, height];\n }\n return bbox;\n}\n\nfunction fixDimensions(node) {\n const parent = node[$getSubformParent]();\n if (parent.layout?.includes(\"row\")) {\n const extra = parent[$extra];\n const colSpan = node.colSpan;\n let width;\n if (colSpan === -1) {\n width = extra.columnWidths\n .slice(extra.currentColumn)\n .reduce((a, w) => a + w, 0);\n } else {\n width = extra.columnWidths\n .slice(extra.currentColumn, extra.currentColumn + colSpan)\n .reduce((a, w) => a + w, 0);\n }\n if (!isNaN(width)) {\n node.w = width;\n }\n }\n\n if (parent.layout && parent.layout !== \"position\") {\n // Useless in this context.\n node.x = node.y = 0;\n }\n\n if (node.layout === \"table\") {\n if (node.w === \"\" && Array.isArray(node.columnWidths)) {\n node.w = node.columnWidths.reduce((a, x) => a + x, 0);\n }\n }\n}\n\nfunction layoutClass(node) {\n switch (node.layout) {\n case \"position\":\n return \"xfaPosition\";\n case \"lr-tb\":\n return \"xfaLrTb\";\n case \"rl-row\":\n return \"xfaRlRow\";\n case \"rl-tb\":\n return \"xfaRlTb\";\n case \"row\":\n return \"xfaRow\";\n case \"table\":\n return \"xfaTable\";\n case \"tb\":\n return \"xfaTb\";\n default:\n return \"xfaPosition\";\n }\n}\n\nfunction toStyle(node, ...names) {\n const style = Object.create(null);\n for (const name of names) {\n const value = node[name];\n if (value === null) {\n continue;\n }\n if (converters.hasOwnProperty(name)) {\n converters[name](node, style);\n continue;\n }\n\n if (value instanceof XFAObject) {\n const newStyle = value[$toStyle]();\n if (newStyle) {\n Object.assign(style, newStyle);\n } else {\n warn(`(DEBUG) - XFA - style for ${name} not implemented yet`);\n }\n }\n }\n return style;\n}\n\nfunction createWrapper(node, html) {\n const { attributes } = html;\n const { style } = attributes;\n\n const wrapper = {\n name: \"div\",\n attributes: {\n class: [\"xfaWrapper\"],\n style: Object.create(null),\n },\n children: [],\n };\n\n attributes.class.push(\"xfaWrapped\");\n\n if (node.border) {\n const { widths, insets } = node.border[$extra];\n let width, height;\n let top = insets[0];\n let left = insets[3];\n const insetsH = insets[0] + insets[2];\n const insetsW = insets[1] + insets[3];\n switch (node.border.hand) {\n case \"even\":\n top -= widths[0] / 2;\n left -= widths[3] / 2;\n width = `calc(100% + ${(widths[1] + widths[3]) / 2 - insetsW}px)`;\n height = `calc(100% + ${(widths[0] + widths[2]) / 2 - insetsH}px)`;\n break;\n case \"left\":\n top -= widths[0];\n left -= widths[3];\n width = `calc(100% + ${widths[1] + widths[3] - insetsW}px)`;\n height = `calc(100% + ${widths[0] + widths[2] - insetsH}px)`;\n break;\n case \"right\":\n width = insetsW ? `calc(100% - ${insetsW}px)` : \"100%\";\n height = insetsH ? `calc(100% - ${insetsH}px)` : \"100%\";\n break;\n }\n const classNames = [\"xfaBorder\"];\n if (isPrintOnly(node.border)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n const border = {\n name: \"div\",\n attributes: {\n class: classNames,\n style: {\n top: `${top}px`,\n left: `${left}px`,\n width,\n height,\n },\n },\n children: [],\n };\n\n for (const key of [\n \"border\",\n \"borderWidth\",\n \"borderColor\",\n \"borderRadius\",\n \"borderStyle\",\n ]) {\n if (style[key] !== undefined) {\n border.attributes.style[key] = style[key];\n delete style[key];\n }\n }\n wrapper.children.push(border, html);\n } else {\n wrapper.children.push(html);\n }\n\n for (const key of [\n \"background\",\n \"backgroundClip\",\n \"top\",\n \"left\",\n \"width\",\n \"height\",\n \"minWidth\",\n \"minHeight\",\n \"maxWidth\",\n \"maxHeight\",\n \"transform\",\n \"transformOrigin\",\n \"visibility\",\n ]) {\n if (style[key] !== undefined) {\n wrapper.attributes.style[key] = style[key];\n delete style[key];\n }\n }\n\n wrapper.attributes.style.position =\n style.position === \"absolute\" ? \"absolute\" : \"relative\";\n delete style.position;\n\n if (style.alignSelf) {\n wrapper.attributes.style.alignSelf = style.alignSelf;\n delete style.alignSelf;\n }\n\n return wrapper;\n}\n\nfunction fixTextIndent(styles) {\n const indent = getMeasurement(styles.textIndent, \"0px\");\n if (indent >= 0) {\n return;\n }\n\n // If indent is negative then it's a hanging indent.\n const align = styles.textAlign === \"right\" ? \"right\" : \"left\";\n const name = \"padding\" + (align === \"left\" ? \"Left\" : \"Right\");\n const padding = getMeasurement(styles[name], \"0px\");\n styles[name] = `${padding - indent}px`;\n}\n\nfunction setAccess(node, classNames) {\n switch (node.access) {\n case \"nonInteractive\":\n classNames.push(\"xfaNonInteractive\");\n break;\n case \"readOnly\":\n classNames.push(\"xfaReadOnly\");\n break;\n case \"protected\":\n classNames.push(\"xfaDisabled\");\n break;\n }\n}\n\nfunction isPrintOnly(node) {\n return (\n node.relevant.length > 0 &&\n !node.relevant[0].excluded &&\n node.relevant[0].viewname === \"print\"\n );\n}\n\nfunction getCurrentPara(node) {\n const stack = node[$getTemplateRoot]()[$extra].paraStack;\n return stack.length ? stack.at(-1) : null;\n}\n\nfunction setPara(node, nodeStyle, value) {\n if (value.attributes.class?.includes(\"xfaRich\")) {\n if (nodeStyle) {\n if (node.h === \"\") {\n nodeStyle.height = \"auto\";\n }\n if (node.w === \"\") {\n nodeStyle.width = \"auto\";\n }\n }\n\n const para = getCurrentPara(node);\n if (para) {\n // By definition exData are external data so para\n // has no effect on it.\n const valueStyle = value.attributes.style;\n valueStyle.display = \"flex\";\n valueStyle.flexDirection = \"column\";\n switch (para.vAlign) {\n case \"top\":\n valueStyle.justifyContent = \"start\";\n break;\n case \"bottom\":\n valueStyle.justifyContent = \"end\";\n break;\n case \"middle\":\n valueStyle.justifyContent = \"center\";\n break;\n }\n\n const paraStyle = para[$toStyle]();\n for (const [key, val] of Object.entries(paraStyle)) {\n if (!(key in valueStyle)) {\n valueStyle[key] = val;\n }\n }\n }\n }\n}\n\nfunction setFontFamily(xfaFont, node, fontFinder, style) {\n if (!fontFinder) {\n // The font cannot be found in the pdf so use the default one.\n delete style.fontFamily;\n return;\n }\n\n const name = stripQuotes(xfaFont.typeface);\n style.fontFamily = `\"${name}\"`;\n\n const typeface = fontFinder.find(name);\n if (typeface) {\n const { fontFamily } = typeface.regular.cssFontInfo;\n if (fontFamily !== name) {\n style.fontFamily = `\"${fontFamily}\"`;\n }\n\n const para = getCurrentPara(node);\n if (para && para.lineHeight !== \"\") {\n return;\n }\n\n if (style.lineHeight) {\n // Already something so don't overwrite.\n return;\n }\n\n const pdfFont = selectFont(xfaFont, typeface);\n if (pdfFont) {\n style.lineHeight = Math.max(1.2, pdfFont.lineHeight);\n }\n }\n}\n\nfunction fixURL(str) {\n const absoluteUrl = createValidAbsoluteUrl(str, /* baseUrl = */ null, {\n addDefaultProtocol: true,\n tryConvertEncoding: true,\n });\n return absoluteUrl ? absoluteUrl.href : null;\n}\n\nexport {\n computeBbox,\n createWrapper,\n fixDimensions,\n fixTextIndent,\n fixURL,\n isPrintOnly,\n layoutClass,\n layoutNode,\n measureToString,\n setAccess,\n setFontFamily,\n setMinMaxDimensions,\n setPara,\n toStyle,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $extra,\n $flushHTML,\n $getSubformParent,\n $getTemplateRoot,\n $isSplittable,\n $isThereMoreWidth,\n} from \"./symbol_utils.js\";\nimport { measureToString } from \"./html_utils.js\";\n\n// Subform and ExclGroup have a layout so they share these functions.\n\n/**\n * How layout works ?\n *\n * A container has an initial space (with a width and a height) to fit in,\n * which means that once all the children have been added then\n * the total width/height must be lower than the given ones in\n * the initial space.\n * So if the container has known dimensions and these ones are ok with the\n * space then continue else we return HTMLResult.FAILURE: it's up to the\n * parent to deal with this failure (e.g. if parent layout is lr-tb and\n * we fail to add a child at end of line (lr) then we try to add it on the\n * next line).\n * And then we run through the children, each child gets its initial space\n * in calling its parent $getAvailableSpace method\n * (see _filteredChildrenGenerator and $childrenToHTML in xfa_object.js)\n * then we try to layout child in its space. If everything is ok then we add\n * the result to its parent through $addHTML which will recompute the available\n * space in parent according to its layout property else we return\n * HTMLResult.Failure.\n * Before a failure some children may have been layed out: they've been saved in\n * [$extra].children and [$extra] has properties generator and failingNode\n * in order to save the state where we were before a failure.\n * This [$extra].children property is useful when a container has to be splited.\n * So if a container is unbreakable, we must delete its [$extra] property before\n * returning.\n */\n\nfunction createLine(node, children) {\n return {\n name: \"div\",\n attributes: {\n class: [node.layout === \"lr-tb\" ? \"xfaLr\" : \"xfaRl\"],\n },\n children,\n };\n}\n\nfunction flushHTML(node) {\n if (!node[$extra]) {\n return null;\n }\n\n const attributes = node[$extra].attributes;\n const html = {\n name: \"div\",\n attributes,\n children: node[$extra].children,\n };\n\n if (node[$extra].failingNode) {\n const htmlFromFailing = node[$extra].failingNode[$flushHTML]();\n if (htmlFromFailing) {\n if (node.layout.endsWith(\"-tb\")) {\n html.children.push(createLine(node, [htmlFromFailing]));\n } else {\n html.children.push(htmlFromFailing);\n }\n }\n }\n\n if (html.children.length === 0) {\n return null;\n }\n\n return html;\n}\n\nfunction addHTML(node, html, bbox) {\n const extra = node[$extra];\n const availableSpace = extra.availableSpace;\n\n const [x, y, w, h] = bbox;\n switch (node.layout) {\n case \"position\": {\n extra.width = Math.max(extra.width, x + w);\n extra.height = Math.max(extra.height, y + h);\n extra.children.push(html);\n break;\n }\n case \"lr-tb\":\n case \"rl-tb\":\n if (!extra.line || extra.attempt === 1) {\n extra.line = createLine(node, []);\n extra.children.push(extra.line);\n extra.numberInLine = 0;\n }\n\n extra.numberInLine += 1;\n extra.line.children.push(html);\n\n if (extra.attempt === 0) {\n // Add the element on the line\n extra.currentWidth += w;\n extra.height = Math.max(extra.height, extra.prevHeight + h);\n } else {\n extra.currentWidth = w;\n extra.prevHeight = extra.height;\n extra.height += h;\n\n // The element has been added on a new line so switch to line mode now.\n extra.attempt = 0;\n }\n extra.width = Math.max(extra.width, extra.currentWidth);\n break;\n case \"rl-row\":\n case \"row\": {\n extra.children.push(html);\n extra.width += w;\n extra.height = Math.max(extra.height, h);\n const height = measureToString(extra.height);\n for (const child of extra.children) {\n child.attributes.style.height = height;\n }\n break;\n }\n case \"table\": {\n extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n extra.height += h;\n extra.children.push(html);\n break;\n }\n case \"tb\": {\n // Even if the subform can possibly take all the available width,\n // we must compute the final width as it is in order to be able\n // for example to center the subform within its parent.\n extra.width = Math.min(availableSpace.width, Math.max(extra.width, w));\n extra.height += h;\n extra.children.push(html);\n break;\n }\n }\n}\n\nfunction getAvailableSpace(node) {\n const availableSpace = node[$extra].availableSpace;\n const marginV = node.margin\n ? node.margin.topInset + node.margin.bottomInset\n : 0;\n const marginH = node.margin\n ? node.margin.leftInset + node.margin.rightInset\n : 0;\n\n switch (node.layout) {\n case \"lr-tb\":\n case \"rl-tb\":\n if (node[$extra].attempt === 0) {\n return {\n width: availableSpace.width - marginH - node[$extra].currentWidth,\n height: availableSpace.height - marginV - node[$extra].prevHeight,\n };\n }\n return {\n width: availableSpace.width - marginH,\n height: availableSpace.height - marginV - node[$extra].height,\n };\n case \"rl-row\":\n case \"row\":\n const width = node[$extra].columnWidths\n .slice(node[$extra].currentColumn)\n .reduce((a, x) => a + x);\n return { width, height: availableSpace.height - marginH };\n case \"table\":\n case \"tb\":\n return {\n width: availableSpace.width - marginH,\n height: availableSpace.height - marginV - node[$extra].height,\n };\n case \"position\":\n default:\n return availableSpace;\n }\n}\n\nfunction getTransformedBBox(node) {\n // Take into account rotation and anchor to get the real bounding box.\n let w = node.w === \"\" ? NaN : node.w;\n let h = node.h === \"\" ? NaN : node.h;\n let [centerX, centerY] = [0, 0];\n switch (node.anchorType || \"\") {\n case \"bottomCenter\":\n [centerX, centerY] = [w / 2, h];\n break;\n case \"bottomLeft\":\n [centerX, centerY] = [0, h];\n break;\n case \"bottomRight\":\n [centerX, centerY] = [w, h];\n break;\n case \"middleCenter\":\n [centerX, centerY] = [w / 2, h / 2];\n break;\n case \"middleLeft\":\n [centerX, centerY] = [0, h / 2];\n break;\n case \"middleRight\":\n [centerX, centerY] = [w, h / 2];\n break;\n case \"topCenter\":\n [centerX, centerY] = [w / 2, 0];\n break;\n case \"topRight\":\n [centerX, centerY] = [w, 0];\n break;\n }\n\n let x, y;\n switch (node.rotate || 0) {\n case 0:\n [x, y] = [-centerX, -centerY];\n break;\n case 90:\n [x, y] = [-centerY, centerX];\n [w, h] = [h, -w];\n break;\n case 180:\n [x, y] = [centerX, centerY];\n [w, h] = [-w, -h];\n break;\n case 270:\n [x, y] = [centerY, -centerX];\n [w, h] = [-h, w];\n break;\n }\n\n return [\n node.x + x + Math.min(0, w),\n node.y + y + Math.min(0, h),\n Math.abs(w),\n Math.abs(h),\n ];\n}\n\n/**\n * Returning true means that the node will be layed out\n * else the layout will go to its next step (changing of line\n * in case of lr-tb or changing content area...).\n */\nfunction checkDimensions(node, space) {\n if (node[$getTemplateRoot]()[$extra].firstUnsplittable === null) {\n return true;\n }\n\n if (node.w === 0 || node.h === 0) {\n return true;\n }\n\n const ERROR = 2;\n const parent = node[$getSubformParent]();\n const attempt = parent[$extra]?.attempt || 0;\n\n const [, y, w, h] = getTransformedBBox(node);\n switch (parent.layout) {\n case \"lr-tb\":\n case \"rl-tb\":\n if (attempt === 0) {\n // Try to put an element in the line.\n\n if (!node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n // Not enough height.\n return false;\n }\n\n if (node.w !== \"\") {\n if (Math.round(w - space.width) <= ERROR) {\n return true;\n }\n if (parent[$extra].numberInLine === 0) {\n return space.height > ERROR;\n }\n\n return false;\n }\n\n return space.width > ERROR;\n }\n\n // No layout failure.\n\n // Put the element on the line but we can fail\n // and then in the second step (next line) we'll accept.\n if (node.w !== \"\") {\n return Math.round(w - space.width) <= ERROR;\n }\n\n return space.width > ERROR;\n }\n\n // Second attempt: try to put the element on the next line.\n\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n // We cannot fail.\n return true;\n }\n\n if (node.h !== \"\" && Math.round(h - space.height) > ERROR) {\n return false;\n }\n\n if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n return space.height > ERROR;\n }\n\n if (parent[$isThereMoreWidth]()) {\n return false;\n }\n\n return space.height > ERROR;\n case \"table\":\n case \"tb\":\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n return true;\n }\n\n // If the node has a height then check if it's fine with available height.\n // If the node is breakable then we can return true.\n if (node.h !== \"\" && !node[$isSplittable]()) {\n return Math.round(h - space.height) <= ERROR;\n }\n // Else wait and see: this node will be layed out itself\n // in the provided space and maybe a children won't fit.\n\n if (node.w === \"\" || Math.round(w - space.width) <= ERROR) {\n return space.height > ERROR;\n }\n\n if (parent[$isThereMoreWidth]()) {\n return false;\n }\n\n return space.height > ERROR;\n case \"position\":\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n return true;\n }\n\n if (node.h === \"\" || Math.round(h + y - space.height) <= ERROR) {\n return true;\n }\n\n const area = node[$getTemplateRoot]()[$extra].currentContentArea;\n return h + y > area.h;\n case \"rl-row\":\n case \"row\":\n if (node[$getTemplateRoot]()[$extra].noLayoutFailure) {\n return true;\n }\n\n if (node.h !== \"\") {\n return Math.round(h - space.height) <= ERROR;\n }\n return true;\n default:\n // No layout, so accept everything.\n return true;\n }\n}\n\nexport { addHTML, checkDimensions, flushHTML, getAvailableSpace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $addHTML,\n $appendChild,\n $childrenToHTML,\n $clean,\n $cleanPage,\n $content,\n $data,\n $extra,\n $finalize,\n $flushHTML,\n $getAvailableSpace,\n $getChildren,\n $getContainedChildren,\n $getExtra,\n $getNextPage,\n $getParent,\n $getSubformParent,\n $getTemplateRoot,\n $globalData,\n $hasSettableValue,\n $ids,\n $isBindable,\n $isCDATAXml,\n $isSplittable,\n $isThereMoreWidth,\n $isTransparent,\n $isUsable,\n $namespaceId,\n $nodeName,\n $onChild,\n $onText,\n $popPara,\n $pushPara,\n $removeChild,\n $searchNode,\n $setSetAttributes,\n $setValue,\n $tabIndex,\n $text,\n $toHTML,\n $toPages,\n $toStyle,\n $uid,\n} from \"./symbol_utils.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n addHTML,\n checkDimensions,\n flushHTML,\n getAvailableSpace,\n} from \"./layout.js\";\nimport {\n computeBbox,\n createWrapper,\n fixDimensions,\n fixTextIndent,\n fixURL,\n isPrintOnly,\n layoutClass,\n layoutNode,\n measureToString,\n setAccess,\n setFontFamily,\n setMinMaxDimensions,\n setPara,\n toStyle,\n} from \"./html_utils.js\";\nimport {\n ContentObject,\n Option01,\n OptionObject,\n StringObject,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\nimport {\n getBBox,\n getColor,\n getFloat,\n getInteger,\n getKeyword,\n getMeasurement,\n getRatio,\n getRelevant,\n getStringOption,\n HTMLResult,\n} from \"./utils.js\";\nimport { stringToBytes, Util, warn } from \"../../shared/util.js\";\nimport { getMetrics } from \"./fonts.js\";\nimport { recoverJsURL } from \"../core_utils.js\";\nimport { searchNode } from \"./som.js\";\n\nconst TEMPLATE_NS_ID = NamespaceIds.template.id;\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\n// In case of lr-tb (and rl-tb) layouts, we try:\n// - to put the container at the end of a line\n// - and if it fails we try on the next line.\n// If both tries failed then it's up to the parent\n// to handle the situation.\nconst MAX_ATTEMPTS_FOR_LRTB_LAYOUT = 2;\n\n// It's possible to have a bug in the layout and so as\n// a consequence we could loop for ever in Template::toHTML()\n// so in order to avoid that (and avoid a OOM crash) we break\n// the loop after having MAX_EMPTY_PAGES empty pages.\nconst MAX_EMPTY_PAGES = 3;\n\n// Default value to start with for the tabIndex property.\nconst DEFAULT_TAB_INDEX = 5000;\n\nconst HEADING_PATTERN = /^H(\\d+)$/;\n\n// Allowed mime types for images\nconst MIMES = new Set([\n \"image/gif\",\n \"image/jpeg\",\n \"image/jpg\",\n \"image/pjpeg\",\n \"image/png\",\n \"image/apng\",\n \"image/x-png\",\n \"image/bmp\",\n \"image/x-ms-bmp\",\n \"image/tiff\",\n \"image/tif\",\n \"application/octet-stream\",\n]);\n\nconst IMAGES_HEADERS = [\n [[0x42, 0x4d], \"image/bmp\"],\n [[0xff, 0xd8, 0xff], \"image/jpeg\"],\n [[0x49, 0x49, 0x2a, 0x00], \"image/tiff\"],\n [[0x4d, 0x4d, 0x00, 0x2a], \"image/tiff\"],\n [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61], \"image/gif\"],\n [[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a], \"image/png\"],\n];\n\nfunction getBorderDims(node) {\n if (!node || !node.border) {\n return { w: 0, h: 0 };\n }\n\n const borderExtra = node.border[$getExtra]();\n if (!borderExtra) {\n return { w: 0, h: 0 };\n }\n\n return {\n w:\n borderExtra.widths[0] +\n borderExtra.widths[2] +\n borderExtra.insets[0] +\n borderExtra.insets[2],\n h:\n borderExtra.widths[1] +\n borderExtra.widths[3] +\n borderExtra.insets[1] +\n borderExtra.insets[3],\n };\n}\n\nfunction hasMargin(node) {\n return (\n node.margin &&\n (node.margin.topInset ||\n node.margin.rightInset ||\n node.margin.bottomInset ||\n node.margin.leftInset)\n );\n}\n\nfunction _setValue(templateNode, value) {\n if (!templateNode.value) {\n const nodeValue = new Value({});\n templateNode[$appendChild](nodeValue);\n templateNode.value = nodeValue;\n }\n templateNode.value[$setValue](value);\n}\n\nfunction* getContainedChildren(node) {\n for (const child of node[$getChildren]()) {\n if (child instanceof SubformSet) {\n yield* child[$getContainedChildren]();\n continue;\n }\n yield child;\n }\n}\n\nfunction isRequired(node) {\n return node.validate?.nullTest === \"error\";\n}\n\nfunction setTabIndex(node) {\n while (node) {\n if (!node.traversal) {\n node[$tabIndex] = node[$getParent]()[$tabIndex];\n return;\n }\n\n if (node[$tabIndex]) {\n return;\n }\n\n let next = null;\n for (const child of node.traversal[$getChildren]()) {\n if (child.operation === \"next\") {\n next = child;\n break;\n }\n }\n\n if (!next || !next.ref) {\n node[$tabIndex] = node[$getParent]()[$tabIndex];\n return;\n }\n\n const root = node[$getTemplateRoot]();\n node[$tabIndex] = ++root[$tabIndex];\n\n const ref = root[$searchNode](next.ref, node);\n if (!ref) {\n return;\n }\n\n node = ref[0];\n }\n}\n\nfunction applyAssist(obj, attributes) {\n const assist = obj.assist;\n if (assist) {\n const assistTitle = assist[$toHTML]();\n if (assistTitle) {\n attributes.title = assistTitle;\n }\n const role = assist.role;\n const match = role.match(HEADING_PATTERN);\n if (match) {\n const ariaRole = \"heading\";\n const ariaLevel = match[1];\n attributes.role = ariaRole;\n attributes[\"aria-level\"] = ariaLevel;\n }\n }\n // XXX: We could end up in a situation where the obj has a heading role and\n // is also a table. For now prioritize the table role.\n if (obj.layout === \"table\") {\n attributes.role = \"table\";\n } else if (obj.layout === \"row\") {\n attributes.role = \"row\";\n } else {\n const parent = obj[$getParent]();\n if (parent.layout === \"row\") {\n attributes.role = parent.assist?.role === \"TH\" ? \"columnheader\" : \"cell\";\n }\n }\n}\n\nfunction ariaLabel(obj) {\n if (!obj.assist) {\n return null;\n }\n const assist = obj.assist;\n if (assist.speak && assist.speak[$content] !== \"\") {\n return assist.speak[$content];\n }\n if (assist.toolTip) {\n return assist.toolTip[$content];\n }\n // TODO: support finding the related caption element. See xfa_bug1718037.pdf\n // for an example.\n return null;\n}\n\nfunction valueToHtml(value) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n class: [\"xfaRich\"],\n style: Object.create(null),\n },\n children: [\n {\n name: \"span\",\n attributes: {\n style: Object.create(null),\n },\n value,\n },\n ],\n });\n}\n\nfunction setFirstUnsplittable(node) {\n const root = node[$getTemplateRoot]();\n if (root[$extra].firstUnsplittable === null) {\n root[$extra].firstUnsplittable = node;\n root[$extra].noLayoutFailure = true;\n }\n}\n\nfunction unsetFirstUnsplittable(node) {\n const root = node[$getTemplateRoot]();\n if (root[$extra].firstUnsplittable === node) {\n root[$extra].noLayoutFailure = false;\n }\n}\n\nfunction handleBreak(node) {\n if (node[$extra]) {\n return false;\n }\n\n node[$extra] = Object.create(null);\n\n if (node.targetType === \"auto\") {\n return false;\n }\n\n const root = node[$getTemplateRoot]();\n let target = null;\n if (node.target) {\n target = root[$searchNode](node.target, node[$getParent]());\n if (!target) {\n return false;\n }\n target = target[0];\n }\n\n const { currentPageArea, currentContentArea } = root[$extra];\n\n if (node.targetType === \"pageArea\") {\n if (!(target instanceof PageArea)) {\n target = null;\n }\n\n if (node.startNew) {\n node[$extra].target = target || currentPageArea;\n return true;\n } else if (target && target !== currentPageArea) {\n node[$extra].target = target;\n return true;\n }\n\n return false;\n }\n\n if (!(target instanceof ContentArea)) {\n target = null;\n }\n\n const pageArea = target && target[$getParent]();\n\n let index;\n let nextPageArea = pageArea;\n if (node.startNew) {\n // startNew === 1 so we must create a new container (pageArea or\n // contentArea).\n if (target) {\n const contentAreas = pageArea.contentArea.children;\n const indexForCurrent = contentAreas.indexOf(currentContentArea);\n const indexForTarget = contentAreas.indexOf(target);\n if (indexForCurrent !== -1 && indexForCurrent < indexForTarget) {\n // The next container is after the current container so\n // we can stay on the same page.\n nextPageArea = null;\n }\n index = indexForTarget - 1;\n } else {\n index = currentPageArea.contentArea.children.indexOf(currentContentArea);\n }\n } else if (target && target !== currentContentArea) {\n const contentAreas = pageArea.contentArea.children;\n index = contentAreas.indexOf(target) - 1;\n nextPageArea = pageArea === currentPageArea ? null : pageArea;\n } else {\n return false;\n }\n\n node[$extra].target = nextPageArea;\n node[$extra].index = index;\n return true;\n}\n\nfunction handleOverflow(node, extraNode, space) {\n const root = node[$getTemplateRoot]();\n const saved = root[$extra].noLayoutFailure;\n const savedMethod = extraNode[$getSubformParent];\n\n // Replace $getSubformParent to emulate that extraNode is just\n // under node.\n extraNode[$getSubformParent] = () => node;\n\n root[$extra].noLayoutFailure = true;\n const res = extraNode[$toHTML](space);\n node[$addHTML](res.html, res.bbox);\n root[$extra].noLayoutFailure = saved;\n extraNode[$getSubformParent] = savedMethod;\n}\n\nclass AppearanceFilter extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"appearanceFilter\");\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Arc extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"arc\", /* hasChildren = */ true);\n this.circular = getInteger({\n data: attributes.circular,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.startAngle = getFloat({\n data: attributes.startAngle,\n defaultValue: 0,\n validate: x => true,\n });\n this.sweepAngle = getFloat({\n data: attributes.sweepAngle,\n defaultValue: 360,\n validate: x => true,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.edge = null;\n this.fill = null;\n }\n\n [$toHTML]() {\n const edge = this.edge || new Edge({});\n const edgeStyle = edge[$toStyle]();\n const style = Object.create(null);\n if (this.fill?.presence === \"visible\") {\n Object.assign(style, this.fill[$toStyle]());\n } else {\n style.fill = \"transparent\";\n }\n style.strokeWidth = measureToString(\n edge.presence === \"visible\" ? edge.thickness : 0\n );\n style.stroke = edgeStyle.color;\n let arc;\n const attributes = {\n xmlns: SVG_NS,\n style: {\n width: \"100%\",\n height: \"100%\",\n overflow: \"visible\",\n },\n };\n\n if (this.sweepAngle === 360) {\n arc = {\n name: \"ellipse\",\n attributes: {\n xmlns: SVG_NS,\n cx: \"50%\",\n cy: \"50%\",\n rx: \"50%\",\n ry: \"50%\",\n style,\n },\n };\n } else {\n const startAngle = (this.startAngle * Math.PI) / 180;\n const sweepAngle = (this.sweepAngle * Math.PI) / 180;\n const largeArc = this.sweepAngle > 180 ? 1 : 0;\n const [x1, y1, x2, y2] = [\n 50 * (1 + Math.cos(startAngle)),\n 50 * (1 - Math.sin(startAngle)),\n 50 * (1 + Math.cos(startAngle + sweepAngle)),\n 50 * (1 - Math.sin(startAngle + sweepAngle)),\n ];\n\n arc = {\n name: \"path\",\n attributes: {\n xmlns: SVG_NS,\n d: `M ${x1} ${y1} A 50 50 0 ${largeArc} 0 ${x2} ${y2}`,\n vectorEffect: \"non-scaling-stroke\",\n style,\n },\n };\n\n Object.assign(attributes, {\n viewBox: \"0 0 100 100\",\n preserveAspectRatio: \"none\",\n });\n }\n\n const svg = {\n name: \"svg\",\n children: [arc],\n attributes,\n };\n\n const parent = this[$getParent]()[$getParent]();\n if (hasMargin(parent)) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style: {\n display: \"inline\",\n width: \"100%\",\n height: \"100%\",\n },\n },\n children: [svg],\n });\n }\n\n svg.attributes.style.position = \"absolute\";\n return HTMLResult.success(svg);\n }\n}\n\nclass Area extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"area\", /* hasChildren = */ true);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.desc = null;\n this.extras = null;\n this.area = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in order to fake that subforms under\n // this set are in fact under parent subform.\n yield* getContainedChildren(this);\n }\n\n [$isTransparent]() {\n return true;\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$addHTML](html, bbox) {\n const [x, y, w, h] = bbox;\n this[$extra].width = Math.max(this[$extra].width, x + w);\n this[$extra].height = Math.max(this[$extra].height, y + h);\n\n this[$extra].children.push(html);\n }\n\n [$getAvailableSpace]() {\n return this[$extra].availableSpace;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"position\");\n const attributes = {\n style,\n id: this[$uid],\n class: [\"xfaArea\"],\n };\n\n if (isPrintOnly(this)) {\n attributes.class.push(\"xfaPrintOnly\");\n }\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const children = [];\n this[$extra] = {\n children,\n width: 0,\n height: 0,\n availableSpace,\n };\n\n const result = this[$childrenToHTML]({\n filter: new Set([\n \"area\",\n \"draw\",\n \"field\",\n \"exclGroup\",\n \"subform\",\n \"subformSet\",\n ]),\n include: true,\n });\n\n if (!result.success) {\n if (result.isBreak()) {\n return result;\n }\n // Nothing to propose for the element which doesn't fit the\n // available space.\n delete this[$extra];\n return HTMLResult.FAILURE;\n }\n\n style.width = measureToString(this[$extra].width);\n style.height = measureToString(this[$extra].height);\n\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n const bbox = [this.x, this.y, this[$extra].width, this[$extra].height];\n delete this[$extra];\n\n return HTMLResult.success(html, bbox);\n }\n}\n\nclass Assist extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"assist\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.role = attributes.role || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.speak = null;\n this.toolTip = null;\n }\n\n [$toHTML]() {\n return this.toolTip?.[$content] || null;\n }\n}\n\nclass Barcode extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"barcode\", /* hasChildren = */ true);\n this.charEncoding = getKeyword({\n data: attributes.charEncoding\n ? attributes.charEncoding.toLowerCase()\n : \"\",\n defaultValue: \"\",\n validate: k =>\n [\n \"utf-8\",\n \"big-five\",\n \"fontspecific\",\n \"gbk\",\n \"gb-18030\",\n \"gb-2312\",\n \"ksc-5601\",\n \"none\",\n \"shift-jis\",\n \"ucs-2\",\n \"utf-16\",\n ].includes(k) || k.match(/iso-8859-\\d{2}/),\n });\n this.checksum = getStringOption(attributes.checksum, [\n \"none\",\n \"1mod10\",\n \"1mod10_1mod11\",\n \"2mod10\",\n \"auto\",\n ]);\n this.dataColumnCount = getInteger({\n data: attributes.dataColumnCount,\n defaultValue: -1,\n validate: x => x >= 0,\n });\n this.dataLength = getInteger({\n data: attributes.dataLength,\n defaultValue: -1,\n validate: x => x >= 0,\n });\n this.dataPrep = getStringOption(attributes.dataPrep, [\n \"none\",\n \"flateCompress\",\n ]);\n this.dataRowCount = getInteger({\n data: attributes.dataRowCount,\n defaultValue: -1,\n validate: x => x >= 0,\n });\n this.endChar = attributes.endChar || \"\";\n this.errorCorrectionLevel = getInteger({\n data: attributes.errorCorrectionLevel,\n defaultValue: -1,\n validate: x => x >= 0 && x <= 8,\n });\n this.id = attributes.id || \"\";\n this.moduleHeight = getMeasurement(attributes.moduleHeight, \"5mm\");\n this.moduleWidth = getMeasurement(attributes.moduleWidth, \"0.25mm\");\n this.printCheckDigit = getInteger({\n data: attributes.printCheckDigit,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.rowColumnRatio = getRatio(attributes.rowColumnRatio);\n this.startChar = attributes.startChar || \"\";\n this.textLocation = getStringOption(attributes.textLocation, [\n \"below\",\n \"above\",\n \"aboveEmbedded\",\n \"belowEmbedded\",\n \"none\",\n ]);\n this.truncate = getInteger({\n data: attributes.truncate,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.type = getStringOption(\n attributes.type ? attributes.type.toLowerCase() : \"\",\n [\n \"aztec\",\n \"codabar\",\n \"code2of5industrial\",\n \"code2of5interleaved\",\n \"code2of5matrix\",\n \"code2of5standard\",\n \"code3of9\",\n \"code3of9extended\",\n \"code11\",\n \"code49\",\n \"code93\",\n \"code128\",\n \"code128a\",\n \"code128b\",\n \"code128c\",\n \"code128sscc\",\n \"datamatrix\",\n \"ean8\",\n \"ean8add2\",\n \"ean8add5\",\n \"ean13\",\n \"ean13add2\",\n \"ean13add5\",\n \"ean13pwcd\",\n \"fim\",\n \"logmars\",\n \"maxicode\",\n \"msi\",\n \"pdf417\",\n \"pdf417macro\",\n \"plessey\",\n \"postauscust2\",\n \"postauscust3\",\n \"postausreplypaid\",\n \"postausstandard\",\n \"postukrm4scc\",\n \"postusdpbc\",\n \"postusimb\",\n \"postusstandard\",\n \"postus5zip\",\n \"qrcode\",\n \"rfid\",\n \"rss14\",\n \"rss14expanded\",\n \"rss14limited\",\n \"rss14stacked\",\n \"rss14stackedomni\",\n \"rss14truncated\",\n \"telepen\",\n \"ucc128\",\n \"ucc128random\",\n \"ucc128sscc\",\n \"upca\",\n \"upcaadd2\",\n \"upcaadd5\",\n \"upcapwcd\",\n \"upce\",\n \"upceadd2\",\n \"upceadd5\",\n \"upcean2\",\n \"upcean5\",\n \"upsmaxicode\",\n ]\n );\n this.upsMode = getStringOption(attributes.upsMode, [\n \"usCarrier\",\n \"internationalCarrier\",\n \"secureSymbol\",\n \"standardSymbol\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.wideNarrowRatio = getRatio(attributes.wideNarrowRatio);\n this.encrypt = null;\n this.extras = null;\n }\n}\n\nclass Bind extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bind\", /* hasChildren = */ true);\n this.match = getStringOption(attributes.match, [\n \"once\",\n \"dataRef\",\n \"global\",\n \"none\",\n ]);\n this.ref = attributes.ref || \"\";\n this.picture = null;\n }\n}\n\nclass BindItems extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bindItems\");\n this.connection = attributes.connection || \"\";\n this.labelRef = attributes.labelRef || \"\";\n this.ref = attributes.ref || \"\";\n this.valueRef = attributes.valueRef || \"\";\n }\n}\n\nclass Bookend extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"bookend\");\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass BooleanElement extends Option01 {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"boolean\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] === 1 ? \"1\" : \"0\");\n }\n}\n\nclass Border extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"border\", /* hasChildren = */ true);\n this.break = getStringOption(attributes.break, [\"close\", \"open\"]);\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.corner = new XFAObjectArray(4);\n this.edge = new XFAObjectArray(4);\n this.extras = null;\n this.fill = null;\n this.margin = null;\n }\n\n [$getExtra]() {\n if (!this[$extra]) {\n const edges = this.edge.children.slice();\n if (edges.length < 4) {\n const defaultEdge = edges.at(-1) || new Edge({});\n for (let i = edges.length; i < 4; i++) {\n edges.push(defaultEdge);\n }\n }\n\n const widths = edges.map(edge => edge.thickness);\n const insets = [0, 0, 0, 0];\n if (this.margin) {\n insets[0] = this.margin.topInset;\n insets[1] = this.margin.rightInset;\n insets[2] = this.margin.bottomInset;\n insets[3] = this.margin.leftInset;\n }\n this[$extra] = { widths, insets, edges };\n }\n return this[$extra];\n }\n\n [$toStyle]() {\n // TODO: incomplete (hand).\n const { edges } = this[$getExtra]();\n const edgeStyles = edges.map(node => {\n const style = node[$toStyle]();\n style.color ||= \"#000000\";\n return style;\n });\n\n const style = Object.create(null);\n if (this.margin) {\n Object.assign(style, this.margin[$toStyle]());\n }\n\n if (this.fill?.presence === \"visible\") {\n Object.assign(style, this.fill[$toStyle]());\n }\n\n if (this.corner.children.some(node => node.radius !== 0)) {\n const cornerStyles = this.corner.children.map(node => node[$toStyle]());\n if (cornerStyles.length === 2 || cornerStyles.length === 3) {\n const last = cornerStyles.at(-1);\n for (let i = cornerStyles.length; i < 4; i++) {\n cornerStyles.push(last);\n }\n }\n\n style.borderRadius = cornerStyles.map(s => s.radius).join(\" \");\n }\n\n switch (this.presence) {\n case \"invisible\":\n case \"hidden\":\n style.borderStyle = \"\";\n break;\n case \"inactive\":\n style.borderStyle = \"none\";\n break;\n default:\n style.borderStyle = edgeStyles.map(s => s.style).join(\" \");\n break;\n }\n\n style.borderWidth = edgeStyles.map(s => s.width).join(\" \");\n style.borderColor = edgeStyles.map(s => s.color).join(\" \");\n\n return style;\n }\n}\n\nclass Break extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"break\", /* hasChildren = */ true);\n this.after = getStringOption(attributes.after, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n \"pageEven\",\n \"pageOdd\",\n ]);\n this.afterTarget = attributes.afterTarget || \"\";\n this.before = getStringOption(attributes.before, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n \"pageEven\",\n \"pageOdd\",\n ]);\n this.beforeTarget = attributes.beforeTarget || \"\";\n this.bookendLeader = attributes.bookendLeader || \"\";\n this.bookendTrailer = attributes.bookendTrailer || \"\";\n this.id = attributes.id || \"\";\n this.overflowLeader = attributes.overflowLeader || \"\";\n this.overflowTarget = attributes.overflowTarget || \"\";\n this.overflowTrailer = attributes.overflowTrailer || \"\";\n this.startNew = getInteger({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n}\n\nclass BreakAfter extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"breakAfter\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.startNew = getInteger({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.target = attributes.target || \"\";\n this.targetType = getStringOption(attributes.targetType, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n ]);\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.script = null;\n }\n}\n\nclass BreakBefore extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"breakBefore\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.startNew = getInteger({\n data: attributes.startNew,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.target = attributes.target || \"\";\n this.targetType = getStringOption(attributes.targetType, [\n \"auto\",\n \"contentArea\",\n \"pageArea\",\n ]);\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.script = null;\n }\n\n [$toHTML](availableSpace) {\n this[$extra] = {};\n return HTMLResult.FAILURE;\n }\n}\n\nclass Button extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"button\", /* hasChildren = */ true);\n this.highlight = getStringOption(attributes.highlight, [\n \"inverted\",\n \"none\",\n \"outline\",\n \"push\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: highlight.\n\n const parent = this[$getParent]();\n const grandpa = parent[$getParent]();\n const htmlButton = {\n name: \"button\",\n attributes: {\n id: this[$uid],\n class: [\"xfaButton\"],\n style: {},\n },\n children: [],\n };\n\n for (const event of grandpa.event.children) {\n // if (true) break;\n if (event.activity !== \"click\" || !event.script) {\n continue;\n }\n const jsURL = recoverJsURL(event.script[$content]);\n if (!jsURL) {\n continue;\n }\n const href = fixURL(jsURL.url);\n if (!href) {\n continue;\n }\n\n // we've an url so generate a <a>\n htmlButton.children.push({\n name: \"a\",\n attributes: {\n id: \"link\" + this[$uid],\n href,\n newWindow: jsURL.newWindow,\n class: [\"xfaLink\"],\n style: {},\n },\n children: [],\n });\n }\n\n return HTMLResult.success(htmlButton);\n }\n}\n\nclass Calculate extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"calculate\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.override = getStringOption(attributes.override, [\n \"disabled\",\n \"error\",\n \"ignore\",\n \"warning\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.message = null;\n this.script = null;\n }\n}\n\nclass Caption extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"caption\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.placement = getStringOption(attributes.placement, [\n \"left\",\n \"bottom\",\n \"inline\",\n \"right\",\n \"top\",\n ]);\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.reserve = Math.ceil(getMeasurement(attributes.reserve));\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.font = null;\n this.margin = null;\n this.para = null;\n this.value = null;\n }\n\n [$setValue](value) {\n _setValue(this, value);\n }\n\n [$getExtra](availableSpace) {\n if (!this[$extra]) {\n let { width, height } = availableSpace;\n switch (this.placement) {\n case \"left\":\n case \"right\":\n case \"inline\":\n width = this.reserve <= 0 ? width : this.reserve;\n break;\n case \"top\":\n case \"bottom\":\n height = this.reserve <= 0 ? height : this.reserve;\n break;\n }\n\n this[$extra] = layoutNode(this, { width, height });\n }\n return this[$extra];\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n if (!this.value) {\n return HTMLResult.EMPTY;\n }\n\n this[$pushPara]();\n const value = this.value[$toHTML](availableSpace).html;\n\n if (!value) {\n this[$popPara]();\n return HTMLResult.EMPTY;\n }\n\n const savedReserve = this.reserve;\n if (this.reserve <= 0) {\n const { w, h } = this[$getExtra](availableSpace);\n switch (this.placement) {\n case \"left\":\n case \"right\":\n case \"inline\":\n this.reserve = w;\n break;\n case \"top\":\n case \"bottom\":\n this.reserve = h;\n break;\n }\n }\n\n const children = [];\n if (typeof value === \"string\") {\n children.push({\n name: \"#text\",\n value,\n });\n } else {\n children.push(value);\n }\n\n const style = toStyle(this, \"font\", \"margin\", \"visibility\");\n switch (this.placement) {\n case \"left\":\n case \"right\":\n if (this.reserve > 0) {\n style.width = measureToString(this.reserve);\n }\n break;\n case \"top\":\n case \"bottom\":\n if (this.reserve > 0) {\n style.height = measureToString(this.reserve);\n }\n break;\n }\n\n setPara(this, null, value);\n this[$popPara]();\n\n this.reserve = savedReserve;\n\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style,\n class: [\"xfaCaption\"],\n },\n children,\n });\n }\n}\n\nclass Certificate extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"certificate\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Certificates extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"certificates\", /* hasChildren = */ true);\n this.credentialServerPolicy = getStringOption(\n attributes.credentialServerPolicy,\n [\"optional\", \"required\"]\n );\n this.id = attributes.id || \"\";\n this.url = attributes.url || \"\";\n this.urlPolicy = attributes.urlPolicy || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encryption = null;\n this.issuers = null;\n this.keyUsage = null;\n this.oids = null;\n this.signing = null;\n this.subjectDNs = null;\n }\n}\n\nclass CheckButton extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"checkButton\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.mark = getStringOption(attributes.mark, [\n \"default\",\n \"check\",\n \"circle\",\n \"cross\",\n \"diamond\",\n \"square\",\n \"star\",\n ]);\n this.shape = getStringOption(attributes.shape, [\"square\", \"round\"]);\n this.size = getMeasurement(attributes.size, \"10pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: border, shape and mark.\n\n const style = toStyle(\"margin\");\n const size = measureToString(this.size);\n\n style.width = style.height = size;\n\n let type;\n let className;\n let groupId;\n const field = this[$getParent]()[$getParent]();\n const items =\n (field.items.children.length &&\n field.items.children[0][$toHTML]().html) ||\n [];\n const exportedValue = {\n on: (items[0] !== undefined ? items[0] : \"on\").toString(),\n off: (items[1] !== undefined ? items[1] : \"off\").toString(),\n };\n\n const value = field.value?.[$text]() || \"off\";\n const checked = value === exportedValue.on || undefined;\n const container = field[$getSubformParent]();\n const fieldId = field[$uid];\n let dataId;\n\n if (container instanceof ExclGroup) {\n groupId = container[$uid];\n type = \"radio\";\n className = \"xfaRadio\";\n dataId = container[$data]?.[$uid] || container[$uid];\n } else {\n type = \"checkbox\";\n className = \"xfaCheckbox\";\n dataId = field[$data]?.[$uid] || field[$uid];\n }\n\n const input = {\n name: \"input\",\n attributes: {\n class: [className],\n style,\n fieldId,\n dataId,\n type,\n checked,\n xfaOn: exportedValue.on,\n xfaOff: exportedValue.off,\n \"aria-label\": ariaLabel(field),\n \"aria-required\": false,\n },\n };\n\n if (groupId) {\n input.attributes.name = groupId;\n }\n\n if (isRequired(field)) {\n input.attributes[\"aria-required\"] = true;\n input.attributes.required = true;\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [input],\n });\n }\n}\n\nclass ChoiceList extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"choiceList\", /* hasChildren = */ true);\n this.commitOn = getStringOption(attributes.commitOn, [\"select\", \"exit\"]);\n this.id = attributes.id || \"\";\n this.open = getStringOption(attributes.open, [\n \"userControl\",\n \"always\",\n \"multiSelect\",\n \"onEntry\",\n ]);\n this.textEntry = getInteger({\n data: attributes.textEntry,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"border\", \"margin\");\n const ui = this[$getParent]();\n const field = ui[$getParent]();\n const fontSize = field.font?.size || 10;\n const optionStyle = {\n fontSize: `calc(${fontSize}px * var(--scale-factor))`,\n };\n const children = [];\n\n if (field.items.children.length > 0) {\n const items = field.items;\n let displayedIndex = 0;\n let saveIndex = 0;\n if (items.children.length === 2) {\n displayedIndex = items.children[0].save;\n saveIndex = 1 - displayedIndex;\n }\n const displayed = items.children[displayedIndex][$toHTML]().html;\n const values = items.children[saveIndex][$toHTML]().html;\n\n let selected = false;\n const value = field.value?.[$text]() || \"\";\n for (let i = 0, ii = displayed.length; i < ii; i++) {\n const option = {\n name: \"option\",\n attributes: {\n value: values[i] || displayed[i],\n style: optionStyle,\n },\n value: displayed[i],\n };\n if (values[i] === value) {\n option.attributes.selected = selected = true;\n }\n children.push(option);\n }\n\n if (!selected) {\n children.splice(0, 0, {\n name: \"option\",\n attributes: {\n hidden: true,\n selected: true,\n },\n value: \" \",\n });\n }\n }\n\n const selectAttributes = {\n class: [\"xfaSelect\"],\n fieldId: field[$uid],\n dataId: field[$data]?.[$uid] || field[$uid],\n style,\n \"aria-label\": ariaLabel(field),\n \"aria-required\": false,\n };\n\n if (isRequired(field)) {\n selectAttributes[\"aria-required\"] = true;\n selectAttributes.required = true;\n }\n\n if (this.open === \"multiSelect\") {\n selectAttributes.multiple = true;\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [\n {\n name: \"select\",\n children,\n attributes: selectAttributes,\n },\n ],\n });\n }\n}\n\nclass Color extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"color\", /* hasChildren = */ true);\n this.cSpace = getStringOption(attributes.cSpace, [\"SRGB\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.value = attributes.value ? getColor(attributes.value) : \"\";\n this.extras = null;\n }\n\n [$hasSettableValue]() {\n return false;\n }\n\n [$toStyle]() {\n return this.value\n ? Util.makeHexColor(this.value.r, this.value.g, this.value.b)\n : null;\n }\n}\n\nclass Comb extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"comb\");\n this.id = attributes.id || \"\";\n this.numberOfCells = getInteger({\n data: attributes.numberOfCells,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Connect extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"connect\", /* hasChildren = */ true);\n this.connection = attributes.connection || \"\";\n this.id = attributes.id || \"\";\n this.ref = attributes.ref || \"\";\n this.usage = getStringOption(attributes.usage, [\n \"exportAndImport\",\n \"exportOnly\",\n \"importOnly\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.picture = null;\n }\n}\n\nclass ContentArea extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"contentArea\", /* hasChildren = */ true);\n this.h = getMeasurement(attributes.h);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = getMeasurement(attributes.w);\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.desc = null;\n this.extras = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const left = measureToString(this.x);\n const top = measureToString(this.y);\n\n const style = {\n left,\n top,\n width: measureToString(this.w),\n height: measureToString(this.h),\n };\n\n const classNames = [\"xfaContentarea\"];\n\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n return HTMLResult.success({\n name: \"div\",\n children: [],\n attributes: {\n style,\n class: classNames,\n id: this[$uid],\n },\n });\n }\n}\n\nclass Corner extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"corner\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.inverted = getInteger({\n data: attributes.inverted,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.join = getStringOption(attributes.join, [\"square\", \"round\"]);\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.radius = getMeasurement(attributes.radius);\n this.stroke = getStringOption(attributes.stroke, [\n \"solid\",\n \"dashDot\",\n \"dashDotDot\",\n \"dashed\",\n \"dotted\",\n \"embossed\",\n \"etched\",\n \"lowered\",\n \"raised\",\n ]);\n this.thickness = getMeasurement(attributes.thickness, \"0.5pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle]() {\n // In using CSS it's only possible to handle radius\n // (at least with basic css).\n // Is there a real use (interest ?) of all these properties ?\n // Maybe it's possible to implement them using svg and border-image...\n // TODO: implement all the missing properties.\n const style = toStyle(this, \"visibility\");\n style.radius = measureToString(this.join === \"square\" ? 0 : this.radius);\n return style;\n }\n}\n\nclass DateElement extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"date\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const date = this[$content].trim();\n this[$content] = date ? new Date(date) : null;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n }\n}\n\nclass DateTime extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"dateTime\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const date = this[$content].trim();\n this[$content] = date ? new Date(date) : null;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n }\n}\n\nclass DateTimeEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"dateTimeEdit\", /* hasChildren = */ true);\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.picker = getStringOption(attributes.picker, [\"host\", \"none\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n // When the picker is host we should use type=date for the input\n // but we need to put the buttons outside the text-field.\n const style = toStyle(this, \"border\", \"font\", \"margin\");\n const field = this[$getParent]()[$getParent]();\n const html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n fieldId: field[$uid],\n dataId: field[$data]?.[$uid] || field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n \"aria-required\": false,\n },\n };\n\n if (isRequired(field)) {\n html.attributes[\"aria-required\"] = true;\n html.attributes.required = true;\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [html],\n });\n }\n}\n\nclass Decimal extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"decimal\");\n this.fracDigits = getInteger({\n data: attributes.fracDigits,\n defaultValue: 2,\n validate: x => true,\n });\n this.id = attributes.id || \"\";\n this.leadDigits = getInteger({\n data: attributes.leadDigits,\n defaultValue: -1,\n validate: x => true,\n });\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const number = parseFloat(this[$content].trim());\n this[$content] = isNaN(number) ? null : number;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(\n this[$content] !== null ? this[$content].toString() : \"\"\n );\n }\n}\n\nclass DefaultUi extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"defaultUi\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n}\n\nclass Desc extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"desc\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n}\n\nclass DigestMethod extends OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"digestMethod\", [\n \"\",\n \"SHA1\",\n \"SHA256\",\n \"SHA512\",\n \"RIPEMD160\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass DigestMethods extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"digestMethods\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.digestMethod = new XFAObjectArray();\n }\n}\n\nclass Draw extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"draw\", /* hasChildren = */ true);\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.locale = attributes.locale || \"\";\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.rotate = getInteger({\n data: attributes.rotate,\n defaultValue: 0,\n validate: x => x % 90 === 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.border = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.font = null;\n this.keep = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.ui = null;\n this.value = null;\n this.setProperty = new XFAObjectArray();\n }\n\n [$setValue](value) {\n _setValue(this, value);\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n\n if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n return HTMLResult.EMPTY;\n }\n\n fixDimensions(this);\n this[$pushPara]();\n\n // If at least one dimension is missing and we've a text\n // then we can guess it in laying out the text.\n const savedW = this.w;\n const savedH = this.h;\n const { w, h, isBroken } = layoutNode(this, availableSpace);\n if (w && this.w === \"\") {\n // If the parent layout is lr-tb with a w=100 and we already have a child\n // which takes 90 on the current line.\n // If we have a text with a length (in px) equal to 100 then it'll be\n // splitted into almost 10 chunks: so it won't be nice.\n // So if we've potentially more width to provide in some parent containers\n // let's increase it to give a chance to have a better rendering.\n if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) {\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n\n this.w = w;\n }\n if (h && this.h === \"\") {\n this.h = h;\n }\n\n setFirstUnsplittable(this);\n if (!checkDimensions(this, availableSpace)) {\n this.w = savedW;\n this.h = savedH;\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n unsetFirstUnsplittable(this);\n\n const style = toStyle(\n this,\n \"font\",\n \"hAlign\",\n \"dimensions\",\n \"position\",\n \"presence\",\n \"rotate\",\n \"anchorType\",\n \"border\",\n \"margin\"\n );\n\n setMinMaxDimensions(this, style);\n\n if (style.margin) {\n style.padding = style.margin;\n delete style.margin;\n }\n\n const classNames = [\"xfaDraw\"];\n if (this.font) {\n classNames.push(\"xfaFont\");\n }\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n const attributes = {\n style,\n id: this[$uid],\n class: classNames,\n };\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const html = {\n name: \"div\",\n attributes,\n children: [],\n };\n\n applyAssist(this, attributes);\n\n const bbox = computeBbox(this, html, availableSpace);\n\n const value = this.value ? this.value[$toHTML](availableSpace).html : null;\n if (value === null) {\n this.w = savedW;\n this.h = savedH;\n this[$popPara]();\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n\n html.children.push(value);\n setPara(this, style, value);\n\n this.w = savedW;\n this.h = savedH;\n\n this[$popPara]();\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n}\n\nclass Edge extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"edge\", /* hasChildren = */ true);\n this.cap = getStringOption(attributes.cap, [\"square\", \"butt\", \"round\"]);\n this.id = attributes.id || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.stroke = getStringOption(attributes.stroke, [\n \"solid\",\n \"dashDot\",\n \"dashDotDot\",\n \"dashed\",\n \"dotted\",\n \"embossed\",\n \"etched\",\n \"lowered\",\n \"raised\",\n ]);\n this.thickness = getMeasurement(attributes.thickness, \"0.5pt\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle]() {\n // TODO: dashDot & dashDotDot.\n const style = toStyle(this, \"visibility\");\n Object.assign(style, {\n linecap: this.cap,\n width: measureToString(this.thickness),\n color: this.color ? this.color[$toStyle]() : \"#000000\",\n style: \"\",\n });\n\n if (this.presence !== \"visible\") {\n style.style = \"none\";\n } else {\n switch (this.stroke) {\n case \"solid\":\n style.style = \"solid\";\n break;\n case \"dashDot\":\n style.style = \"dashed\";\n break;\n case \"dashDotDot\":\n style.style = \"dashed\";\n break;\n case \"dashed\":\n style.style = \"dashed\";\n break;\n case \"dotted\":\n style.style = \"dotted\";\n break;\n case \"embossed\":\n style.style = \"ridge\";\n break;\n case \"etched\":\n style.style = \"groove\";\n break;\n case \"lowered\":\n style.style = \"inset\";\n break;\n case \"raised\":\n style.style = \"outset\";\n break;\n }\n }\n return style;\n }\n}\n\nclass Encoding extends OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encoding\", [\n \"adbe.x509.rsa_sha1\",\n \"adbe.pkcs7.detached\",\n \"adbe.pkcs7.sha1\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Encodings extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encodings\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encoding = new XFAObjectArray();\n }\n}\n\nclass Encrypt extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encrypt\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = null;\n }\n}\n\nclass EncryptData extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptData\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.operation = getStringOption(attributes.operation, [\n \"encrypt\",\n \"decrypt\",\n ]);\n this.target = attributes.target || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.filter = null;\n this.manifest = null;\n }\n}\n\nclass Encryption extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryption\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new XFAObjectArray();\n }\n}\n\nclass EncryptionMethod extends OptionObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptionMethod\", [\n \"\",\n \"AES256-CBC\",\n \"TRIPLEDES-CBC\",\n \"AES128-CBC\",\n \"AES192-CBC\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass EncryptionMethods extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"encryptionMethods\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.encryptionMethod = new XFAObjectArray();\n }\n}\n\nclass Event extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"event\", /* hasChildren = */ true);\n this.activity = getStringOption(attributes.activity, [\n \"click\",\n \"change\",\n \"docClose\",\n \"docReady\",\n \"enter\",\n \"exit\",\n \"full\",\n \"indexChange\",\n \"initialize\",\n \"mouseDown\",\n \"mouseEnter\",\n \"mouseExit\",\n \"mouseUp\",\n \"postExecute\",\n \"postOpen\",\n \"postPrint\",\n \"postSave\",\n \"postSign\",\n \"postSubmit\",\n \"preExecute\",\n \"preOpen\",\n \"prePrint\",\n \"preSave\",\n \"preSign\",\n \"preSubmit\",\n \"ready\",\n \"validationState\",\n ]);\n this.id = attributes.id || \"\";\n this.listen = getStringOption(attributes.listen, [\n \"refOnly\",\n \"refAndDescendents\",\n ]);\n this.name = attributes.name || \"\";\n this.ref = attributes.ref || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n\n // One-of properties\n this.encryptData = null;\n this.execute = null;\n this.script = null;\n this.signData = null;\n this.submit = null;\n }\n}\n\nclass ExData extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exData\");\n this.contentType = attributes.contentType || \"\";\n this.href = attributes.href || \"\";\n this.id = attributes.id || \"\";\n this.maxLength = getInteger({\n data: attributes.maxLength,\n defaultValue: -1,\n validate: x => x >= -1,\n });\n this.name = attributes.name || \"\";\n this.rid = attributes.rid || \"\";\n this.transferEncoding = getStringOption(attributes.transferEncoding, [\n \"none\",\n \"base64\",\n \"package\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$isCDATAXml]() {\n return this.contentType === \"text/html\";\n }\n\n [$onChild](child) {\n if (\n this.contentType === \"text/html\" &&\n child[$namespaceId] === NamespaceIds.xhtml.id\n ) {\n this[$content] = child;\n return true;\n }\n\n if (this.contentType === \"text/xml\") {\n this[$content] = child;\n return true;\n }\n\n return false;\n }\n\n [$toHTML](availableSpace) {\n if (this.contentType !== \"text/html\" || !this[$content]) {\n // TODO: fix other cases.\n return HTMLResult.EMPTY;\n }\n\n return this[$content][$toHTML](availableSpace);\n }\n}\n\nclass ExObject extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exObject\", /* hasChildren = */ true);\n this.archive = attributes.archive || \"\";\n this.classId = attributes.classId || \"\";\n this.codeBase = attributes.codeBase || \"\";\n this.codeType = attributes.codeType || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n}\n\nclass ExclGroup extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"exclGroup\", /* hasChildren = */ true);\n this.access = getStringOption(attributes.access, [\n \"open\",\n \"nonInteractive\",\n \"protected\",\n \"readOnly\",\n ]);\n this.accessKey = attributes.accessKey || \"\";\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.layout = getStringOption(attributes.layout, [\n \"position\",\n \"lr-tb\",\n \"rl-row\",\n \"rl-tb\",\n \"row\",\n \"table\",\n \"tb\",\n ]);\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.border = null;\n this.calculate = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.validate = null;\n this.connect = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$hasSettableValue]() {\n return true;\n }\n\n [$setValue](value) {\n for (const field of this.field.children) {\n if (!field.value) {\n const nodeValue = new Value({});\n field[$appendChild](nodeValue);\n field.value = nodeValue;\n }\n\n field.value[$setValue](value);\n }\n }\n\n [$isThereMoreWidth]() {\n return (\n (this.layout.endsWith(\"-tb\") &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine > 0) ||\n this[$getParent]()[$isThereMoreWidth]()\n );\n }\n\n [$isSplittable]() {\n // We cannot cache the result here because the contentArea\n // can change.\n const parent = this[$getSubformParent]();\n if (!parent[$isSplittable]()) {\n return false;\n }\n\n if (this[$extra]._isSplittable !== undefined) {\n return this[$extra]._isSplittable;\n }\n\n if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n this[$extra]._isSplittable = false;\n return false;\n }\n\n if (parent.layout?.endsWith(\"-tb\") && parent[$extra].numberInLine !== 0) {\n // See comment in Subform::[$isSplittable] for an explanation.\n return false;\n }\n\n this[$extra]._isSplittable = true;\n return true;\n }\n\n [$flushHTML]() {\n return flushHTML(this);\n }\n\n [$addHTML](html, bbox) {\n addHTML(this, html, bbox);\n }\n\n [$getAvailableSpace]() {\n return getAvailableSpace(this);\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n if (\n this.presence === \"hidden\" ||\n this.presence === \"inactive\" ||\n this.h === 0 ||\n this.w === 0\n ) {\n return HTMLResult.EMPTY;\n }\n\n fixDimensions(this);\n\n const children = [];\n const attributes = {\n id: this[$uid],\n class: [],\n };\n\n setAccess(this, attributes.class);\n\n if (!this[$extra]) {\n this[$extra] = Object.create(null);\n }\n\n Object.assign(this[$extra], {\n children,\n attributes,\n attempt: 0,\n line: null,\n numberInLine: 0,\n availableSpace: {\n width: Math.min(this.w || Infinity, availableSpace.width),\n height: Math.min(this.h || Infinity, availableSpace.height),\n },\n width: 0,\n height: 0,\n prevHeight: 0,\n currentWidth: 0,\n });\n\n const isSplittable = this[$isSplittable]();\n if (!isSplittable) {\n setFirstUnsplittable(this);\n }\n\n if (!checkDimensions(this, availableSpace)) {\n return HTMLResult.FAILURE;\n }\n const filter = new Set([\"field\"]);\n\n if (this.layout.includes(\"row\")) {\n const columnWidths = this[$getSubformParent]().columnWidths;\n if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n this[$extra].columnWidths = columnWidths;\n this[$extra].currentColumn = 0;\n }\n }\n\n const style = toStyle(\n this,\n \"anchorType\",\n \"dimensions\",\n \"position\",\n \"presence\",\n \"border\",\n \"margin\",\n \"hAlign\"\n );\n const classNames = [\"xfaExclgroup\"];\n const cl = layoutClass(this);\n if (cl) {\n classNames.push(cl);\n }\n\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n attributes.style = style;\n attributes.class = classNames;\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n this[$pushPara]();\n const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n for (; this[$extra].attempt < maxRun; this[$extra].attempt++) {\n if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n // If the layout is lr-tb then having attempt equals to\n // MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1 means that we're trying to layout\n // on the next line so this on is empty.\n this[$extra].numberInLine = 0;\n }\n const result = this[$childrenToHTML]({\n filter,\n include: true,\n });\n if (result.success) {\n break;\n }\n if (result.isBreak()) {\n this[$popPara]();\n return result;\n }\n if (\n isLrTb &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine === 0 &&\n !this[$getTemplateRoot]()[$extra].noLayoutFailure\n ) {\n // See comment in Subform::[$toHTML].\n this[$extra].attempt = maxRun;\n break;\n }\n }\n\n this[$popPara]();\n\n if (!isSplittable) {\n unsetFirstUnsplittable(this);\n }\n\n if (this[$extra].attempt === maxRun) {\n if (!isSplittable) {\n delete this[$extra];\n }\n return HTMLResult.FAILURE;\n }\n\n let marginH = 0;\n let marginV = 0;\n if (this.margin) {\n marginH = this.margin.leftInset + this.margin.rightInset;\n marginV = this.margin.topInset + this.margin.bottomInset;\n }\n\n const width = Math.max(this[$extra].width + marginH, this.w || 0);\n const height = Math.max(this[$extra].height + marginV, this.h || 0);\n const bbox = [this.x, this.y, width, height];\n\n if (this.w === \"\") {\n style.width = measureToString(width);\n }\n if (this.h === \"\") {\n style.height = measureToString(height);\n }\n\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n applyAssist(this, attributes);\n\n delete this[$extra];\n\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n}\n\nclass Execute extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"execute\");\n this.connection = attributes.connection || \"\";\n this.executeType = getStringOption(attributes.executeType, [\n \"import\",\n \"remerge\",\n ]);\n this.id = attributes.id || \"\";\n this.runAt = getStringOption(attributes.runAt, [\n \"client\",\n \"both\",\n \"server\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Extras extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"extras\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.extras = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n\n // (Spec) The XFA template grammar defines the extras and desc elements,\n // which can be used to add human-readable or machine-readable\n // data to a template.\n}\n\nclass Field extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"field\", /* hasChildren = */ true);\n this.access = getStringOption(attributes.access, [\n \"open\",\n \"nonInteractive\",\n \"protected\",\n \"readOnly\",\n ]);\n this.accessKey = attributes.accessKey || \"\";\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.locale = attributes.locale || \"\";\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.rotate = getInteger({\n data: attributes.rotate,\n defaultValue: 0,\n validate: x => x % 90 === 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.border = null;\n this.calculate = null;\n this.caption = null;\n this.desc = null;\n this.extras = null;\n this.font = null;\n this.format = null;\n // For a choice list, one list is used to have display entries\n // and the other for the exported values\n this.items = new XFAObjectArray(2);\n this.keep = null;\n this.margin = null;\n this.para = null;\n this.traversal = null;\n this.ui = null;\n this.validate = null;\n this.value = null;\n this.bindItems = new XFAObjectArray();\n this.connect = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$setValue](value) {\n _setValue(this, value);\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n\n if (!this.ui) {\n // It's allowed to not have an ui, specs say:\n // If the UI element contains no children or is not present,\n // the application chooses a default user interface for the\n // container, based on the type of the container's content.\n\n this.ui = new Ui({});\n this.ui[$globalData] = this[$globalData];\n this[$appendChild](this.ui);\n let node;\n\n // The items element can have 2 element max and\n // according to the items specs it's likely a good\n // way to guess the correct ui type.\n switch (this.items.children.length) {\n case 0:\n node = new TextEdit({});\n this.ui.textEdit = node;\n break;\n case 1:\n node = new CheckButton({});\n this.ui.checkButton = node;\n break;\n case 2:\n node = new ChoiceList({});\n this.ui.choiceList = node;\n break;\n }\n this.ui[$appendChild](node);\n }\n\n if (\n !this.ui ||\n this.presence === \"hidden\" ||\n this.presence === \"inactive\" ||\n this.h === 0 ||\n this.w === 0\n ) {\n return HTMLResult.EMPTY;\n }\n\n if (this.caption) {\n // Maybe we already tried to layout this field with\n // another availableSpace, so to avoid to use the cached\n // value just delete it.\n delete this.caption[$extra];\n }\n\n this[$pushPara]();\n\n const caption = this.caption\n ? this.caption[$toHTML](availableSpace).html\n : null;\n const savedW = this.w;\n const savedH = this.h;\n let marginH = 0;\n let marginV = 0;\n if (this.margin) {\n marginH = this.margin.leftInset + this.margin.rightInset;\n marginV = this.margin.topInset + this.margin.bottomInset;\n }\n\n let borderDims = null;\n if (this.w === \"\" || this.h === \"\") {\n let width = null;\n let height = null;\n\n let uiW = 0;\n let uiH = 0;\n if (this.ui.checkButton) {\n uiW = uiH = this.ui.checkButton.size;\n } else {\n const { w, h } = layoutNode(this, availableSpace);\n if (w !== null) {\n uiW = w;\n uiH = h;\n } else {\n uiH = getMetrics(this.font, /* real = */ true).lineNoGap;\n }\n }\n\n borderDims = getBorderDims(this.ui[$getExtra]());\n uiW += borderDims.w;\n uiH += borderDims.h;\n\n if (this.caption) {\n const { w, h, isBroken } = this.caption[$getExtra](availableSpace);\n // See comment in Draw::[$toHTML] to have an explanation\n // about this line.\n if (isBroken && this[$getSubformParent]()[$isThereMoreWidth]()) {\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n\n width = w;\n height = h;\n\n switch (this.caption.placement) {\n case \"left\":\n case \"right\":\n case \"inline\":\n width += uiW;\n break;\n case \"top\":\n case \"bottom\":\n height += uiH;\n break;\n }\n } else {\n width = uiW;\n height = uiH;\n }\n\n if (width && this.w === \"\") {\n width += marginH;\n this.w = Math.min(\n this.maxW <= 0 ? Infinity : this.maxW,\n this.minW + 1 < width ? width : this.minW\n );\n }\n\n if (height && this.h === \"\") {\n height += marginV;\n this.h = Math.min(\n this.maxH <= 0 ? Infinity : this.maxH,\n this.minH + 1 < height ? height : this.minH\n );\n }\n }\n\n this[$popPara]();\n\n fixDimensions(this);\n\n setFirstUnsplittable(this);\n if (!checkDimensions(this, availableSpace)) {\n this.w = savedW;\n this.h = savedH;\n this[$popPara]();\n return HTMLResult.FAILURE;\n }\n unsetFirstUnsplittable(this);\n\n const style = toStyle(\n this,\n \"font\",\n \"dimensions\",\n \"position\",\n \"rotate\",\n \"anchorType\",\n \"presence\",\n \"margin\",\n \"hAlign\"\n );\n\n setMinMaxDimensions(this, style);\n\n const classNames = [\"xfaField\"];\n // If no font, font properties are inherited.\n if (this.font) {\n classNames.push(\"xfaFont\");\n }\n\n if (isPrintOnly(this)) {\n classNames.push(\"xfaPrintOnly\");\n }\n\n const attributes = {\n style,\n id: this[$uid],\n class: classNames,\n };\n\n if (style.margin) {\n style.padding = style.margin;\n delete style.margin;\n }\n\n setAccess(this, classNames);\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n const children = [];\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n applyAssist(this, attributes);\n\n const borderStyle = this.border ? this.border[$toStyle]() : null;\n const bbox = computeBbox(this, html, availableSpace);\n const ui = this.ui[$toHTML]().html;\n if (!ui) {\n Object.assign(style, borderStyle);\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n\n if (this[$tabIndex]) {\n if (ui.children?.[0]) {\n ui.children[0].attributes.tabindex = this[$tabIndex];\n } else {\n ui.attributes.tabindex = this[$tabIndex];\n }\n }\n\n if (!ui.attributes.style) {\n ui.attributes.style = Object.create(null);\n }\n\n let aElement = null;\n\n if (this.ui.button) {\n if (ui.children.length === 1) {\n [aElement] = ui.children.splice(0, 1);\n }\n Object.assign(ui.attributes.style, borderStyle);\n } else {\n Object.assign(style, borderStyle);\n }\n\n children.push(ui);\n\n if (this.value) {\n if (this.ui.imageEdit) {\n ui.children.push(this.value[$toHTML]().html);\n } else if (!this.ui.button) {\n let value = \"\";\n if (this.value.exData) {\n value = this.value.exData[$text]();\n } else if (this.value.text) {\n value = this.value.text[$getExtra]();\n } else {\n const htmlValue = this.value[$toHTML]().html;\n if (htmlValue !== null) {\n value = htmlValue.children[0].value;\n }\n }\n if (this.ui.textEdit && this.value.text?.maxChars) {\n ui.children[0].attributes.maxLength = this.value.text.maxChars;\n }\n\n if (value) {\n if (this.ui.numericEdit) {\n value = parseFloat(value);\n value = isNaN(value) ? \"\" : value.toString();\n }\n\n if (ui.children[0].name === \"textarea\") {\n ui.children[0].attributes.textContent = value;\n } else {\n ui.children[0].attributes.value = value;\n }\n }\n }\n }\n\n if (!this.ui.imageEdit && ui.children?.[0] && this.h) {\n borderDims = borderDims || getBorderDims(this.ui[$getExtra]());\n\n let captionHeight = 0;\n if (this.caption && [\"top\", \"bottom\"].includes(this.caption.placement)) {\n captionHeight = this.caption.reserve;\n if (captionHeight <= 0) {\n captionHeight = this.caption[$getExtra](availableSpace).h;\n }\n const inputHeight = this.h - captionHeight - marginV - borderDims.h;\n ui.children[0].attributes.style.height = measureToString(inputHeight);\n } else {\n ui.children[0].attributes.style.height = \"100%\";\n }\n }\n\n if (aElement) {\n ui.children.push(aElement);\n }\n\n if (!caption) {\n if (ui.attributes.class) {\n // Even if no caption this class will help to center the ui.\n ui.attributes.class.push(\"xfaLeft\");\n }\n this.w = savedW;\n this.h = savedH;\n\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n\n if (this.ui.button) {\n if (style.padding) {\n delete style.padding;\n }\n if (caption.name === \"div\") {\n caption.name = \"span\";\n }\n ui.children.push(caption);\n return HTMLResult.success(html, bbox);\n } else if (this.ui.checkButton) {\n caption.attributes.class[0] = \"xfaCaptionForCheckButton\";\n }\n\n if (!ui.attributes.class) {\n ui.attributes.class = [];\n }\n\n ui.children.splice(0, 0, caption);\n\n switch (this.caption.placement) {\n case \"left\":\n ui.attributes.class.push(\"xfaLeft\");\n break;\n case \"right\":\n ui.attributes.class.push(\"xfaRight\");\n break;\n case \"top\":\n ui.attributes.class.push(\"xfaTop\");\n break;\n case \"bottom\":\n ui.attributes.class.push(\"xfaBottom\");\n break;\n case \"inline\":\n // TODO;\n ui.attributes.class.push(\"xfaLeft\");\n break;\n }\n\n this.w = savedW;\n this.h = savedH;\n return HTMLResult.success(createWrapper(this, html), bbox);\n }\n}\n\nclass Fill extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"fill\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n\n // One-of properties or none\n this.linear = null;\n this.pattern = null;\n this.radial = null;\n this.solid = null;\n this.stipple = null;\n }\n\n [$toStyle]() {\n const parent = this[$getParent]();\n const grandpa = parent[$getParent]();\n const ggrandpa = grandpa[$getParent]();\n const style = Object.create(null);\n\n // Use for color, i.e. #...\n let propName = \"color\";\n\n // Use for non-color, i.e. gradient, radial-gradient...\n let altPropName = propName;\n\n if (parent instanceof Border) {\n propName = \"background-color\";\n altPropName = \"background\";\n if (ggrandpa instanceof Ui) {\n // The default fill color is white.\n style.backgroundColor = \"white\";\n }\n }\n if (parent instanceof Rectangle || parent instanceof Arc) {\n propName = altPropName = \"fill\";\n style.fill = \"white\";\n }\n\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"extras\" || name === \"color\") {\n continue;\n }\n const obj = this[name];\n if (!(obj instanceof XFAObject)) {\n continue;\n }\n\n const color = obj[$toStyle](this.color);\n if (color) {\n style[color.startsWith(\"#\") ? propName : altPropName] = color;\n }\n return style;\n }\n\n if (this.color?.value) {\n const color = this.color[$toStyle]();\n style[color.startsWith(\"#\") ? propName : altPropName] = color;\n }\n\n return style;\n }\n}\n\nclass Filter extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"filter\", /* hasChildren = */ true);\n this.addRevocationInfo = getStringOption(attributes.addRevocationInfo, [\n \"\",\n \"required\",\n \"optional\",\n \"none\",\n ]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.version = getInteger({\n data: this.version,\n defaultValue: 5,\n validate: x => x >= 1 && x <= 5,\n });\n this.appearanceFilter = null;\n this.certificates = null;\n this.digestMethods = null;\n this.encodings = null;\n this.encryptionMethods = null;\n this.handler = null;\n this.lockDocument = null;\n this.mdp = null;\n this.reasons = null;\n this.timeStamp = null;\n }\n}\n\nclass Float extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"float\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const number = parseFloat(this[$content].trim());\n this[$content] = isNaN(number) ? null : number;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(\n this[$content] !== null ? this[$content].toString() : \"\"\n );\n }\n}\n\nclass Font extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"font\", /* hasChildren = */ true);\n this.baselineShift = getMeasurement(attributes.baselineShift);\n this.fontHorizontalScale = getFloat({\n data: attributes.fontHorizontalScale,\n defaultValue: 100,\n validate: x => x >= 0,\n });\n this.fontVerticalScale = getFloat({\n data: attributes.fontVerticalScale,\n defaultValue: 100,\n validate: x => x >= 0,\n });\n this.id = attributes.id || \"\";\n this.kerningMode = getStringOption(attributes.kerningMode, [\n \"none\",\n \"pair\",\n ]);\n this.letterSpacing = getMeasurement(attributes.letterSpacing, \"0\");\n this.lineThrough = getInteger({\n data: attributes.lineThrough,\n defaultValue: 0,\n validate: x => x === 1 || x === 2,\n });\n this.lineThroughPeriod = getStringOption(attributes.lineThroughPeriod, [\n \"all\",\n \"word\",\n ]);\n this.overline = getInteger({\n data: attributes.overline,\n defaultValue: 0,\n validate: x => x === 1 || x === 2,\n });\n this.overlinePeriod = getStringOption(attributes.overlinePeriod, [\n \"all\",\n \"word\",\n ]);\n this.posture = getStringOption(attributes.posture, [\"normal\", \"italic\"]);\n this.size = getMeasurement(attributes.size, \"10pt\");\n this.typeface = attributes.typeface || \"Courier\";\n this.underline = getInteger({\n data: attributes.underline,\n defaultValue: 0,\n validate: x => x === 1 || x === 2,\n });\n this.underlinePeriod = getStringOption(attributes.underlinePeriod, [\n \"all\",\n \"word\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.weight = getStringOption(attributes.weight, [\"normal\", \"bold\"]);\n this.extras = null;\n this.fill = null;\n }\n\n [$clean](builder) {\n super[$clean](builder);\n this[$globalData].usedTypefaces.add(this.typeface);\n }\n\n [$toStyle]() {\n const style = toStyle(this, \"fill\");\n const color = style.color;\n if (color) {\n if (color === \"#000000\") {\n // Default font color.\n delete style.color;\n } else if (!color.startsWith(\"#\")) {\n // We've a gradient which is not possible for a font color\n // so use a workaround.\n style.background = color;\n style.backgroundClip = \"text\";\n style.color = \"transparent\";\n }\n }\n\n if (this.baselineShift) {\n style.verticalAlign = measureToString(this.baselineShift);\n }\n\n // TODO: fontHorizontalScale\n // TODO: fontVerticalScale\n\n style.fontKerning = this.kerningMode === \"none\" ? \"none\" : \"normal\";\n style.letterSpacing = measureToString(this.letterSpacing);\n\n if (this.lineThrough !== 0) {\n style.textDecoration = \"line-through\";\n if (this.lineThrough === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n // TODO: lineThroughPeriod\n\n if (this.overline !== 0) {\n style.textDecoration = \"overline\";\n if (this.overline === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n // TODO: overlinePeriod\n\n style.fontStyle = this.posture;\n style.fontSize = measureToString(0.99 * this.size);\n\n setFontFamily(this, this, this[$globalData].fontFinder, style);\n\n if (this.underline !== 0) {\n style.textDecoration = \"underline\";\n if (this.underline === 2) {\n style.textDecorationStyle = \"double\";\n }\n }\n\n // TODO: underlinePeriod\n\n style.fontWeight = this.weight;\n\n return style;\n }\n}\n\nclass Format extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"format\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.picture = null;\n }\n}\n\nclass Handler extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"handler\");\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Hyphenation extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"hyphenation\");\n this.excludeAllCaps = getInteger({\n data: attributes.excludeAllCaps,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.excludeInitialCap = getInteger({\n data: attributes.excludeInitialCap,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.hyphenate = getInteger({\n data: attributes.hyphenate,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.id = attributes.id || \"\";\n this.pushCharacterCount = getInteger({\n data: attributes.pushCharacterCount,\n defaultValue: 3,\n validate: x => x >= 0,\n });\n this.remainCharacterCount = getInteger({\n data: attributes.remainCharacterCount,\n defaultValue: 3,\n validate: x => x >= 0,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.wordCharacterCount = getInteger({\n data: attributes.wordCharacterCount,\n defaultValue: 7,\n validate: x => x >= 0,\n });\n }\n}\n\nclass Image extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"image\");\n this.aspect = getStringOption(attributes.aspect, [\n \"fit\",\n \"actual\",\n \"height\",\n \"none\",\n \"width\",\n ]);\n this.contentType = attributes.contentType || \"\";\n this.href = attributes.href || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.transferEncoding = getStringOption(attributes.transferEncoding, [\n \"base64\",\n \"none\",\n \"package\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$toHTML]() {\n if (this.contentType && !MIMES.has(this.contentType.toLowerCase())) {\n return HTMLResult.EMPTY;\n }\n\n let buffer =\n this[$globalData].images && this[$globalData].images.get(this.href);\n if (!buffer && (this.href || !this[$content])) {\n // In general, we don't get remote data and use what we have\n // in the pdf itself, so no picture for non null href.\n return HTMLResult.EMPTY;\n }\n\n if (!buffer && this.transferEncoding === \"base64\") {\n buffer = stringToBytes(atob(this[$content]));\n }\n\n if (!buffer) {\n return HTMLResult.EMPTY;\n }\n\n if (!this.contentType) {\n for (const [header, type] of IMAGES_HEADERS) {\n if (\n buffer.length > header.length &&\n header.every((x, i) => x === buffer[i])\n ) {\n this.contentType = type;\n break;\n }\n }\n if (!this.contentType) {\n return HTMLResult.EMPTY;\n }\n }\n\n // TODO: Firefox doesn't support natively tiff (and tif) format.\n const blob = new Blob([buffer], { type: this.contentType });\n let style;\n switch (this.aspect) {\n case \"fit\":\n case \"actual\":\n // TODO: check what to do with actual.\n // Normally we should return {auto, auto} for it but\n // it implies some wrong rendering (see xfa_bug1716816.pdf).\n break;\n case \"height\":\n style = {\n height: \"100%\",\n objectFit: \"fill\",\n };\n break;\n case \"none\":\n style = {\n width: \"100%\",\n height: \"100%\",\n objectFit: \"fill\",\n };\n break;\n case \"width\":\n style = {\n width: \"100%\",\n objectFit: \"fill\",\n };\n break;\n }\n const parent = this[$getParent]();\n return HTMLResult.success({\n name: \"img\",\n attributes: {\n class: [\"xfaImage\"],\n style,\n src: URL.createObjectURL(blob),\n alt: parent ? ariaLabel(parent[$getParent]()) : null,\n },\n });\n }\n}\n\nclass ImageEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"imageEdit\", /* hasChildren = */ true);\n this.data = getStringOption(attributes.data, [\"link\", \"embed\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n if (this.data === \"embed\") {\n return HTMLResult.success({\n name: \"div\",\n children: [],\n attributes: {},\n });\n }\n\n return HTMLResult.EMPTY;\n }\n}\n\nclass Integer extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"integer\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n const number = parseInt(this[$content].trim(), 10);\n this[$content] = isNaN(number) ? null : number;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(\n this[$content] !== null ? this[$content].toString() : \"\"\n );\n }\n}\n\nclass Issuers extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"issuers\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new XFAObjectArray();\n }\n}\n\nclass Items extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"items\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.ref = attributes.ref || \"\";\n this.save = getInteger({\n data: attributes.save,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n\n [$toHTML]() {\n const output = [];\n for (const child of this[$getChildren]()) {\n output.push(child[$text]());\n }\n return HTMLResult.success(output);\n }\n}\n\nclass Keep extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"keep\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n const options = [\"none\", \"contentArea\", \"pageArea\"];\n this.intact = getStringOption(attributes.intact, options);\n this.next = getStringOption(attributes.next, options);\n this.previous = getStringOption(attributes.previous, options);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n}\n\nclass KeyUsage extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"keyUsage\");\n const options = [\"\", \"yes\", \"no\"];\n this.crlSign = getStringOption(attributes.crlSign, options);\n this.dataEncipherment = getStringOption(\n attributes.dataEncipherment,\n options\n );\n this.decipherOnly = getStringOption(attributes.decipherOnly, options);\n this.digitalSignature = getStringOption(\n attributes.digitalSignature,\n options\n );\n this.encipherOnly = getStringOption(attributes.encipherOnly, options);\n this.id = attributes.id || \"\";\n this.keyAgreement = getStringOption(attributes.keyAgreement, options);\n this.keyCertSign = getStringOption(attributes.keyCertSign, options);\n this.keyEncipherment = getStringOption(attributes.keyEncipherment, options);\n this.nonRepudiation = getStringOption(attributes.nonRepudiation, options);\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Line extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"line\", /* hasChildren = */ true);\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.slope = getStringOption(attributes.slope, [\"\\\\\", \"/\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.edge = null;\n }\n\n [$toHTML]() {\n const parent = this[$getParent]()[$getParent]();\n const edge = this.edge || new Edge({});\n const edgeStyle = edge[$toStyle]();\n const style = Object.create(null);\n const thickness = edge.presence === \"visible\" ? edge.thickness : 0;\n style.strokeWidth = measureToString(thickness);\n style.stroke = edgeStyle.color;\n let x1, y1, x2, y2;\n let width = \"100%\";\n let height = \"100%\";\n\n if (parent.w <= thickness) {\n [x1, y1, x2, y2] = [\"50%\", 0, \"50%\", \"100%\"];\n width = style.strokeWidth;\n } else if (parent.h <= thickness) {\n [x1, y1, x2, y2] = [0, \"50%\", \"100%\", \"50%\"];\n height = style.strokeWidth;\n } else if (this.slope === \"\\\\\") {\n [x1, y1, x2, y2] = [0, 0, \"100%\", \"100%\"];\n } else {\n [x1, y1, x2, y2] = [0, \"100%\", \"100%\", 0];\n }\n\n const line = {\n name: \"line\",\n attributes: {\n xmlns: SVG_NS,\n x1,\n y1,\n x2,\n y2,\n style,\n },\n };\n\n const svg = {\n name: \"svg\",\n children: [line],\n attributes: {\n xmlns: SVG_NS,\n width,\n height,\n style: {\n overflow: \"visible\",\n },\n },\n };\n\n if (hasMargin(parent)) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style: {\n display: \"inline\",\n width: \"100%\",\n height: \"100%\",\n },\n },\n children: [svg],\n });\n }\n\n svg.attributes.style.position = \"absolute\";\n return HTMLResult.success(svg);\n }\n}\n\nclass Linear extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"linear\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\n \"toRight\",\n \"toBottom\",\n \"toLeft\",\n \"toTop\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n const transf = this.type.replace(/([RBLT])/, \" $1\").toLowerCase();\n const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n return `linear-gradient(${transf}, ${startColor}, ${endColor})`;\n }\n}\n\nclass LockDocument extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"lockDocument\");\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n this[$content] = getStringOption(this[$content], [\"auto\", \"0\", \"1\"]);\n }\n}\n\nclass Manifest extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"manifest\", /* hasChildren = */ true);\n this.action = getStringOption(attributes.action, [\n \"include\",\n \"all\",\n \"exclude\",\n ]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.ref = new XFAObjectArray();\n }\n}\n\nclass Margin extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"margin\", /* hasChildren = */ true);\n this.bottomInset = getMeasurement(attributes.bottomInset, \"0\");\n this.id = attributes.id || \"\";\n this.leftInset = getMeasurement(attributes.leftInset, \"0\");\n this.rightInset = getMeasurement(attributes.rightInset, \"0\");\n this.topInset = getMeasurement(attributes.topInset, \"0\");\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$toStyle]() {\n return {\n margin:\n measureToString(this.topInset) +\n \" \" +\n measureToString(this.rightInset) +\n \" \" +\n measureToString(this.bottomInset) +\n \" \" +\n measureToString(this.leftInset),\n };\n }\n}\n\nclass Mdp extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"mdp\");\n this.id = attributes.id || \"\";\n this.permissions = getInteger({\n data: attributes.permissions,\n defaultValue: 2,\n validate: x => x === 1 || x === 3,\n });\n this.signatureType = getStringOption(attributes.signatureType, [\n \"filler\",\n \"author\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Medium extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"medium\");\n this.id = attributes.id || \"\";\n this.imagingBBox = getBBox(attributes.imagingBBox);\n this.long = getMeasurement(attributes.long);\n this.orientation = getStringOption(attributes.orientation, [\n \"portrait\",\n \"landscape\",\n ]);\n this.short = getMeasurement(attributes.short);\n this.stock = attributes.stock || \"\";\n this.trayIn = getStringOption(attributes.trayIn, [\n \"auto\",\n \"delegate\",\n \"pageFront\",\n ]);\n this.trayOut = getStringOption(attributes.trayOut, [\"auto\", \"delegate\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Message extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"message\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.text = new XFAObjectArray();\n }\n}\n\nclass NumericEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"numericEdit\", /* hasChildren = */ true);\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"border\", \"font\", \"margin\");\n const field = this[$getParent]()[$getParent]();\n const html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n fieldId: field[$uid],\n dataId: field[$data]?.[$uid] || field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n \"aria-required\": false,\n },\n };\n\n if (isRequired(field)) {\n html.attributes[\"aria-required\"] = true;\n html.attributes.required = true;\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [html],\n });\n }\n}\n\nclass Occur extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"occur\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.initial =\n attributes.initial !== \"\"\n ? getInteger({\n data: attributes.initial,\n defaultValue: \"\",\n validate: x => true,\n })\n : \"\";\n this.max =\n attributes.max !== \"\"\n ? getInteger({\n data: attributes.max,\n defaultValue: 1,\n validate: x => true,\n })\n : \"\";\n this.min =\n attributes.min !== \"\"\n ? getInteger({\n data: attributes.min,\n defaultValue: 1,\n validate: x => true,\n })\n : \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$clean]() {\n const parent = this[$getParent]();\n const originalMin = this.min;\n\n if (this.min === \"\") {\n this.min =\n parent instanceof PageArea || parent instanceof PageSet ? 0 : 1;\n }\n if (this.max === \"\") {\n if (originalMin === \"\") {\n this.max =\n parent instanceof PageArea || parent instanceof PageSet ? -1 : 1;\n } else {\n this.max = this.min;\n }\n }\n\n if (this.max !== -1 && this.max < this.min) {\n this.max = this.min;\n }\n\n if (this.initial === \"\") {\n this.initial = parent instanceof Template ? 1 : this.min;\n }\n }\n}\n\nclass Oid extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"oid\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Oids extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"oids\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.oid = new XFAObjectArray();\n }\n}\n\nclass Overflow extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"overflow\");\n this.id = attributes.id || \"\";\n this.leader = attributes.leader || \"\";\n this.target = attributes.target || \"\";\n this.trailer = attributes.trailer || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$getExtra]() {\n if (!this[$extra]) {\n const parent = this[$getParent]();\n const root = this[$getTemplateRoot]();\n const target = root[$searchNode](this.target, parent);\n const leader = root[$searchNode](this.leader, parent);\n const trailer = root[$searchNode](this.trailer, parent);\n this[$extra] = {\n target: target?.[0] || null,\n leader: leader?.[0] || null,\n trailer: trailer?.[0] || null,\n addLeader: false,\n addTrailer: false,\n };\n }\n return this[$extra];\n }\n}\n\nclass PageArea extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pageArea\", /* hasChildren = */ true);\n this.blankOrNotBlank = getStringOption(attributes.blankOrNotBlank, [\n \"any\",\n \"blank\",\n \"notBlank\",\n ]);\n this.id = attributes.id || \"\";\n this.initialNumber = getInteger({\n data: attributes.initialNumber,\n defaultValue: 1,\n validate: x => true,\n });\n this.name = attributes.name || \"\";\n this.numbered = getInteger({\n data: attributes.numbered,\n defaultValue: 1,\n validate: x => true,\n });\n this.oddOrEven = getStringOption(attributes.oddOrEven, [\n \"any\",\n \"even\",\n \"odd\",\n ]);\n this.pagePosition = getStringOption(attributes.pagePosition, [\n \"any\",\n \"first\",\n \"last\",\n \"only\",\n \"rest\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.desc = null;\n this.extras = null;\n this.medium = null;\n this.occur = null;\n this.area = new XFAObjectArray();\n this.contentArea = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n }\n\n [$isUsable]() {\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 0,\n };\n return true;\n }\n return (\n !this.occur ||\n this.occur.max === -1 ||\n this[$extra].numberOfUse < this.occur.max\n );\n }\n\n [$cleanPage]() {\n delete this[$extra];\n }\n\n [$getNextPage]() {\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 0,\n };\n }\n\n const parent = this[$getParent]();\n if (parent.relation === \"orderedOccurrence\") {\n if (this[$isUsable]()) {\n this[$extra].numberOfUse += 1;\n return this;\n }\n }\n\n return parent[$getNextPage]();\n }\n\n [$getAvailableSpace]() {\n return this[$extra].space || { width: 0, height: 0 };\n }\n\n [$toHTML]() {\n // TODO: incomplete.\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 1,\n };\n }\n\n const children = [];\n this[$extra].children = children;\n\n const style = Object.create(null);\n if (this.medium && this.medium.short && this.medium.long) {\n style.width = measureToString(this.medium.short);\n style.height = measureToString(this.medium.long);\n this[$extra].space = {\n width: this.medium.short,\n height: this.medium.long,\n };\n if (this.medium.orientation === \"landscape\") {\n const x = style.width;\n style.width = style.height;\n style.height = x;\n this[$extra].space = {\n width: this.medium.long,\n height: this.medium.short,\n };\n }\n } else {\n warn(\"XFA - No medium specified in pageArea: please file a bug.\");\n }\n\n this[$childrenToHTML]({\n filter: new Set([\"area\", \"draw\", \"field\", \"subform\"]),\n include: true,\n });\n\n // contentarea must be the last container to be sure it is\n // on top of the others.\n this[$childrenToHTML]({\n filter: new Set([\"contentArea\"]),\n include: true,\n });\n\n return HTMLResult.success({\n name: \"div\",\n children,\n attributes: {\n class: [\"xfaPage\"],\n id: this[$uid],\n style,\n xfaName: this.name,\n },\n });\n }\n}\n\nclass PageSet extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pageSet\", /* hasChildren = */ true);\n this.duplexImposition = getStringOption(attributes.duplexImposition, [\n \"longEdge\",\n \"shortEdge\",\n ]);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relation = getStringOption(attributes.relation, [\n \"orderedOccurrence\",\n \"duplexPaginated\",\n \"simplexPaginated\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.occur = null;\n this.pageArea = new XFAObjectArray();\n this.pageSet = new XFAObjectArray();\n }\n\n [$cleanPage]() {\n for (const page of this.pageArea.children) {\n page[$cleanPage]();\n }\n for (const page of this.pageSet.children) {\n page[$cleanPage]();\n }\n }\n\n [$isUsable]() {\n return (\n !this.occur ||\n this.occur.max === -1 ||\n this[$extra].numberOfUse < this.occur.max\n );\n }\n\n [$getNextPage]() {\n if (!this[$extra]) {\n this[$extra] = {\n numberOfUse: 1,\n pageIndex: -1,\n pageSetIndex: -1,\n };\n }\n\n if (this.relation === \"orderedOccurrence\") {\n if (this[$extra].pageIndex + 1 < this.pageArea.children.length) {\n this[$extra].pageIndex += 1;\n const pageArea = this.pageArea.children[this[$extra].pageIndex];\n return pageArea[$getNextPage]();\n }\n\n if (this[$extra].pageSetIndex + 1 < this.pageSet.children.length) {\n this[$extra].pageSetIndex += 1;\n return this.pageSet.children[this[$extra].pageSetIndex][$getNextPage]();\n }\n\n if (this[$isUsable]()) {\n this[$extra].numberOfUse += 1;\n this[$extra].pageIndex = -1;\n this[$extra].pageSetIndex = -1;\n return this[$getNextPage]();\n }\n\n const parent = this[$getParent]();\n if (parent instanceof PageSet) {\n return parent[$getNextPage]();\n }\n\n this[$cleanPage]();\n return this[$getNextPage]();\n }\n const pageNumber = this[$getTemplateRoot]()[$extra].pageNumber;\n const parity = pageNumber % 2 === 0 ? \"even\" : \"odd\";\n const position = pageNumber === 0 ? \"first\" : \"rest\";\n\n let page = this.pageArea.children.find(\n p => p.oddOrEven === parity && p.pagePosition === position\n );\n if (page) {\n return page;\n }\n\n page = this.pageArea.children.find(\n p => p.oddOrEven === \"any\" && p.pagePosition === position\n );\n if (page) {\n return page;\n }\n\n page = this.pageArea.children.find(\n p => p.oddOrEven === \"any\" && p.pagePosition === \"any\"\n );\n if (page) {\n return page;\n }\n\n return this.pageArea.children[0];\n }\n}\n\nclass Para extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"para\", /* hasChildren = */ true);\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.lineHeight = attributes.lineHeight\n ? getMeasurement(attributes.lineHeight, \"0pt\")\n : \"\";\n this.marginLeft = attributes.marginLeft\n ? getMeasurement(attributes.marginLeft, \"0pt\")\n : \"\";\n this.marginRight = attributes.marginRight\n ? getMeasurement(attributes.marginRight, \"0pt\")\n : \"\";\n this.orphans = getInteger({\n data: attributes.orphans,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.preserve = attributes.preserve || \"\";\n this.radixOffset = attributes.radixOffset\n ? getMeasurement(attributes.radixOffset, \"0pt\")\n : \"\";\n this.spaceAbove = attributes.spaceAbove\n ? getMeasurement(attributes.spaceAbove, \"0pt\")\n : \"\";\n this.spaceBelow = attributes.spaceBelow\n ? getMeasurement(attributes.spaceBelow, \"0pt\")\n : \"\";\n this.tabDefault = attributes.tabDefault\n ? getMeasurement(this.tabDefault)\n : \"\";\n this.tabStops = (attributes.tabStops || \"\")\n .trim()\n .split(/\\s+/)\n .map((x, i) => (i % 2 === 1 ? getMeasurement(x) : x));\n this.textIndent = attributes.textIndent\n ? getMeasurement(attributes.textIndent, \"0pt\")\n : \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.vAlign = getStringOption(attributes.vAlign, [\n \"top\",\n \"bottom\",\n \"middle\",\n ]);\n this.widows = getInteger({\n data: attributes.widows,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.hyphenation = null;\n }\n\n [$toStyle]() {\n const style = toStyle(this, \"hAlign\");\n if (this.marginLeft !== \"\") {\n style.paddingLeft = measureToString(this.marginLeft);\n }\n if (this.marginRight !== \"\") {\n style.paddingight = measureToString(this.marginRight);\n }\n if (this.spaceAbove !== \"\") {\n style.paddingTop = measureToString(this.spaceAbove);\n }\n if (this.spaceBelow !== \"\") {\n style.paddingBottom = measureToString(this.spaceBelow);\n }\n if (this.textIndent !== \"\") {\n style.textIndent = measureToString(this.textIndent);\n fixTextIndent(style);\n }\n\n if (this.lineHeight > 0) {\n style.lineHeight = measureToString(this.lineHeight);\n }\n\n if (this.tabDefault !== \"\") {\n style.tabSize = measureToString(this.tabDefault);\n }\n\n if (this.tabStops.length > 0) {\n // TODO\n }\n\n if (this.hyphenatation) {\n Object.assign(style, this.hyphenatation[$toStyle]());\n }\n\n return style;\n }\n}\n\nclass PasswordEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"passwordEdit\", /* hasChildren = */ true);\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.passwordChar = attributes.passwordChar || \"*\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.margin = null;\n }\n}\n\nclass Pattern extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"pattern\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\n \"crossHatch\",\n \"crossDiagonal\",\n \"diagonalLeft\",\n \"diagonalRight\",\n \"horizontal\",\n \"vertical\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n const width = 5;\n const cmd = \"repeating-linear-gradient\";\n const colors = `${startColor},${startColor} ${width}px,${endColor} ${width}px,${endColor} ${\n 2 * width\n }px`;\n switch (this.type) {\n case \"crossHatch\":\n return `${cmd}(to top,${colors}) ${cmd}(to right,${colors})`;\n case \"crossDiagonal\":\n return `${cmd}(45deg,${colors}) ${cmd}(-45deg,${colors})`;\n case \"diagonalLeft\":\n return `${cmd}(45deg,${colors})`;\n case \"diagonalRight\":\n return `${cmd}(-45deg,${colors})`;\n case \"horizontal\":\n return `${cmd}(to top,${colors})`;\n case \"vertical\":\n return `${cmd}(to right,${colors})`;\n }\n\n return \"\";\n }\n}\n\nclass Picture extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"picture\");\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Proto extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"proto\", /* hasChildren = */ true);\n this.appearanceFilter = new XFAObjectArray();\n this.arc = new XFAObjectArray();\n this.area = new XFAObjectArray();\n this.assist = new XFAObjectArray();\n this.barcode = new XFAObjectArray();\n this.bindItems = new XFAObjectArray();\n this.bookend = new XFAObjectArray();\n this.boolean = new XFAObjectArray();\n this.border = new XFAObjectArray();\n this.break = new XFAObjectArray();\n this.breakAfter = new XFAObjectArray();\n this.breakBefore = new XFAObjectArray();\n this.button = new XFAObjectArray();\n this.calculate = new XFAObjectArray();\n this.caption = new XFAObjectArray();\n this.certificate = new XFAObjectArray();\n this.certificates = new XFAObjectArray();\n this.checkButton = new XFAObjectArray();\n this.choiceList = new XFAObjectArray();\n this.color = new XFAObjectArray();\n this.comb = new XFAObjectArray();\n this.connect = new XFAObjectArray();\n this.contentArea = new XFAObjectArray();\n this.corner = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.dateTimeEdit = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.defaultUi = new XFAObjectArray();\n this.desc = new XFAObjectArray();\n this.digestMethod = new XFAObjectArray();\n this.digestMethods = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.edge = new XFAObjectArray();\n this.encoding = new XFAObjectArray();\n this.encodings = new XFAObjectArray();\n this.encrypt = new XFAObjectArray();\n this.encryptData = new XFAObjectArray();\n this.encryption = new XFAObjectArray();\n this.encryptionMethod = new XFAObjectArray();\n this.encryptionMethods = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.execute = new XFAObjectArray();\n this.extras = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.fill = new XFAObjectArray();\n this.filter = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.font = new XFAObjectArray();\n this.format = new XFAObjectArray();\n this.handler = new XFAObjectArray();\n this.hyphenation = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.imageEdit = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.issuers = new XFAObjectArray();\n this.items = new XFAObjectArray();\n this.keep = new XFAObjectArray();\n this.keyUsage = new XFAObjectArray();\n this.line = new XFAObjectArray();\n this.linear = new XFAObjectArray();\n this.lockDocument = new XFAObjectArray();\n this.manifest = new XFAObjectArray();\n this.margin = new XFAObjectArray();\n this.mdp = new XFAObjectArray();\n this.medium = new XFAObjectArray();\n this.message = new XFAObjectArray();\n this.numericEdit = new XFAObjectArray();\n this.occur = new XFAObjectArray();\n this.oid = new XFAObjectArray();\n this.oids = new XFAObjectArray();\n this.overflow = new XFAObjectArray();\n this.pageArea = new XFAObjectArray();\n this.pageSet = new XFAObjectArray();\n this.para = new XFAObjectArray();\n this.passwordEdit = new XFAObjectArray();\n this.pattern = new XFAObjectArray();\n this.picture = new XFAObjectArray();\n this.radial = new XFAObjectArray();\n this.reason = new XFAObjectArray();\n this.reasons = new XFAObjectArray();\n this.rectangle = new XFAObjectArray();\n this.ref = new XFAObjectArray();\n this.script = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n this.signData = new XFAObjectArray();\n this.signature = new XFAObjectArray();\n this.signing = new XFAObjectArray();\n this.solid = new XFAObjectArray();\n this.speak = new XFAObjectArray();\n this.stipple = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n this.subjectDN = new XFAObjectArray();\n this.subjectDNs = new XFAObjectArray();\n this.submit = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.textEdit = new XFAObjectArray();\n this.time = new XFAObjectArray();\n this.timeStamp = new XFAObjectArray();\n this.toolTip = new XFAObjectArray();\n this.traversal = new XFAObjectArray();\n this.traverse = new XFAObjectArray();\n this.ui = new XFAObjectArray();\n this.validate = new XFAObjectArray();\n this.value = new XFAObjectArray();\n this.variables = new XFAObjectArray();\n }\n}\n\nclass Radial extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"radial\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"toEdge\", \"toCenter\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n startColor = startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n const endColor = this.color ? this.color[$toStyle]() : \"#000000\";\n const colors =\n this.type === \"toEdge\"\n ? `${startColor},${endColor}`\n : `${endColor},${startColor}`;\n return `radial-gradient(circle at center, ${colors})`;\n }\n}\n\nclass Reason extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"reason\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Reasons extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"reasons\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.reason = new XFAObjectArray();\n }\n}\n\nclass Rectangle extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"rectangle\", /* hasChildren = */ true);\n this.hand = getStringOption(attributes.hand, [\"even\", \"left\", \"right\"]);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.corner = new XFAObjectArray(4);\n this.edge = new XFAObjectArray(4);\n this.fill = null;\n }\n\n [$toHTML]() {\n const edge = this.edge.children.length\n ? this.edge.children[0]\n : new Edge({});\n const edgeStyle = edge[$toStyle]();\n const style = Object.create(null);\n if (this.fill?.presence === \"visible\") {\n Object.assign(style, this.fill[$toStyle]());\n } else {\n style.fill = \"transparent\";\n }\n style.strokeWidth = measureToString(\n edge.presence === \"visible\" ? edge.thickness : 0\n );\n style.stroke = edgeStyle.color;\n\n const corner = this.corner.children.length\n ? this.corner.children[0]\n : new Corner({});\n const cornerStyle = corner[$toStyle]();\n\n const rect = {\n name: \"rect\",\n attributes: {\n xmlns: SVG_NS,\n width: \"100%\",\n height: \"100%\",\n x: 0,\n y: 0,\n rx: cornerStyle.radius,\n ry: cornerStyle.radius,\n style,\n },\n };\n\n const svg = {\n name: \"svg\",\n children: [rect],\n attributes: {\n xmlns: SVG_NS,\n style: {\n overflow: \"visible\",\n },\n width: \"100%\",\n height: \"100%\",\n },\n };\n\n const parent = this[$getParent]()[$getParent]();\n if (hasMargin(parent)) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n style: {\n display: \"inline\",\n width: \"100%\",\n height: \"100%\",\n },\n },\n children: [svg],\n });\n }\n\n svg.attributes.style.position = \"absolute\";\n return HTMLResult.success(svg);\n }\n}\n\nclass RefElement extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"ref\");\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Script extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"script\");\n this.binding = attributes.binding || \"\";\n this.contentType = attributes.contentType || \"\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.runAt = getStringOption(attributes.runAt, [\n \"client\",\n \"both\",\n \"server\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass SetProperty extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"setProperty\");\n this.connection = attributes.connection || \"\";\n this.ref = attributes.ref || \"\";\n this.target = attributes.target || \"\";\n }\n}\n\nclass SignData extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signData\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.operation = getStringOption(attributes.operation, [\n \"sign\",\n \"clear\",\n \"verify\",\n ]);\n this.ref = attributes.ref || \"\";\n this.target = attributes.target || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.filter = null;\n this.manifest = null;\n }\n}\n\nclass Signature extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signature\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"PDF1.3\", \"PDF1.6\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.border = null;\n this.extras = null;\n this.filter = null;\n this.manifest = null;\n this.margin = null;\n }\n}\n\nclass Signing extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"signing\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.certificate = new XFAObjectArray();\n }\n}\n\nclass Solid extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"solid\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n }\n\n [$toStyle](startColor) {\n return startColor ? startColor[$toStyle]() : \"#FFFFFF\";\n }\n}\n\nclass Speak extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"speak\");\n this.disable = getInteger({\n data: attributes.disable,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.id = attributes.id || \"\";\n this.priority = getStringOption(attributes.priority, [\n \"custom\",\n \"caption\",\n \"name\",\n \"toolTip\",\n ]);\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Stipple extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"stipple\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.rate = getInteger({\n data: attributes.rate,\n defaultValue: 50,\n validate: x => x >= 0 && x <= 100,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.color = null;\n this.extras = null;\n }\n\n [$toStyle](bgColor) {\n const alpha = this.rate / 100;\n return Util.makeHexColor(\n Math.round(bgColor.value.r * (1 - alpha) + this.value.r * alpha),\n Math.round(bgColor.value.g * (1 - alpha) + this.value.g * alpha),\n Math.round(bgColor.value.b * (1 - alpha) + this.value.b * alpha)\n );\n }\n}\n\nclass Subform extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subform\", /* hasChildren = */ true);\n this.access = getStringOption(attributes.access, [\n \"open\",\n \"nonInteractive\",\n \"protected\",\n \"readOnly\",\n ]);\n this.allowMacro = getInteger({\n data: attributes.allowMacro,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.anchorType = getStringOption(attributes.anchorType, [\n \"topLeft\",\n \"bottomCenter\",\n \"bottomLeft\",\n \"bottomRight\",\n \"middleCenter\",\n \"middleLeft\",\n \"middleRight\",\n \"topCenter\",\n \"topRight\",\n ]);\n this.colSpan = getInteger({\n data: attributes.colSpan,\n defaultValue: 1,\n validate: n => n >= 1 || n === -1,\n });\n this.columnWidths = (attributes.columnWidths || \"\")\n .trim()\n .split(/\\s+/)\n .map(x => (x === \"-1\" ? -1 : getMeasurement(x)));\n this.h = attributes.h ? getMeasurement(attributes.h) : \"\";\n this.hAlign = getStringOption(attributes.hAlign, [\n \"left\",\n \"center\",\n \"justify\",\n \"justifyAll\",\n \"radix\",\n \"right\",\n ]);\n this.id = attributes.id || \"\";\n this.layout = getStringOption(attributes.layout, [\n \"position\",\n \"lr-tb\",\n \"rl-row\",\n \"rl-tb\",\n \"row\",\n \"table\",\n \"tb\",\n ]);\n this.locale = attributes.locale || \"\";\n this.maxH = getMeasurement(attributes.maxH, \"0pt\");\n this.maxW = getMeasurement(attributes.maxW, \"0pt\");\n this.mergeMode = getStringOption(attributes.mergeMode, [\n \"consumeData\",\n \"matchTemplate\",\n ]);\n this.minH = getMeasurement(attributes.minH, \"0pt\");\n this.minW = getMeasurement(attributes.minW, \"0pt\");\n this.name = attributes.name || \"\";\n this.presence = getStringOption(attributes.presence, [\n \"visible\",\n \"hidden\",\n \"inactive\",\n \"invisible\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.restoreState = getStringOption(attributes.restoreState, [\n \"manual\",\n \"auto\",\n ]);\n this.scope = getStringOption(attributes.scope, [\"name\", \"none\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.w = attributes.w ? getMeasurement(attributes.w) : \"\";\n this.x = getMeasurement(attributes.x, \"0pt\");\n this.y = getMeasurement(attributes.y, \"0pt\");\n this.assist = null;\n this.bind = null;\n this.bookend = null;\n this.border = null;\n this.break = null;\n this.calculate = null;\n this.desc = null;\n this.extras = null;\n this.keep = null;\n this.margin = null;\n this.occur = null;\n this.overflow = null;\n this.pageSet = null;\n this.para = null;\n this.traversal = null;\n this.validate = null;\n this.variables = null;\n this.area = new XFAObjectArray();\n this.breakAfter = new XFAObjectArray();\n this.breakBefore = new XFAObjectArray();\n this.connect = new XFAObjectArray();\n this.draw = new XFAObjectArray();\n this.event = new XFAObjectArray();\n this.exObject = new XFAObjectArray();\n this.exclGroup = new XFAObjectArray();\n this.field = new XFAObjectArray();\n this.proto = new XFAObjectArray();\n this.setProperty = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n }\n\n [$getSubformParent]() {\n const parent = this[$getParent]();\n if (parent instanceof SubformSet) {\n return parent[$getSubformParent]();\n }\n return parent;\n }\n\n [$isBindable]() {\n return true;\n }\n\n [$isThereMoreWidth]() {\n return (\n (this.layout.endsWith(\"-tb\") &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine > 0) ||\n this[$getParent]()[$isThereMoreWidth]()\n );\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in order to fake that subforms under\n // this set are in fact under parent subform.\n yield* getContainedChildren(this);\n }\n\n [$flushHTML]() {\n return flushHTML(this);\n }\n\n [$addHTML](html, bbox) {\n addHTML(this, html, bbox);\n }\n\n [$getAvailableSpace]() {\n return getAvailableSpace(this);\n }\n\n [$isSplittable]() {\n // We cannot cache the result here because the contentArea\n // can change.\n const parent = this[$getSubformParent]();\n if (!parent[$isSplittable]()) {\n return false;\n }\n\n if (this[$extra]._isSplittable !== undefined) {\n return this[$extra]._isSplittable;\n }\n\n if (this.layout === \"position\" || this.layout.includes(\"row\")) {\n this[$extra]._isSplittable = false;\n return false;\n }\n\n if (this.keep && this.keep.intact !== \"none\") {\n this[$extra]._isSplittable = false;\n return false;\n }\n\n if (parent.layout?.endsWith(\"-tb\") && parent[$extra].numberInLine !== 0) {\n // If parent can fit in w=100 and there's already an element which takes\n // 90 then we've 10 for this element. Suppose this element has a tb layout\n // and 5 elements have a width of 7 and the 6th has a width of 20:\n // then this element (and all its content) must move on the next line.\n // If this element is splittable then the first 5 children will stay\n // at the end of the line: we don't want that.\n return false;\n }\n\n this[$extra]._isSplittable = true;\n\n return true;\n }\n\n [$toHTML](availableSpace) {\n setTabIndex(this);\n\n if (this.break) {\n // break element is deprecated so plug it on one of its replacement\n // breakBefore or breakAfter.\n if (this.break.after !== \"auto\" || this.break.afterTarget !== \"\") {\n const node = new BreakAfter({\n targetType: this.break.after,\n target: this.break.afterTarget,\n startNew: this.break.startNew.toString(),\n });\n node[$globalData] = this[$globalData];\n this[$appendChild](node);\n this.breakAfter.push(node);\n }\n\n if (this.break.before !== \"auto\" || this.break.beforeTarget !== \"\") {\n const node = new BreakBefore({\n targetType: this.break.before,\n target: this.break.beforeTarget,\n startNew: this.break.startNew.toString(),\n });\n node[$globalData] = this[$globalData];\n this[$appendChild](node);\n this.breakBefore.push(node);\n }\n\n if (this.break.overflowTarget !== \"\") {\n const node = new Overflow({\n target: this.break.overflowTarget,\n leader: this.break.overflowLeader,\n trailer: this.break.overflowTrailer,\n });\n node[$globalData] = this[$globalData];\n this[$appendChild](node);\n this.overflow.push(node);\n }\n\n this[$removeChild](this.break);\n this.break = null;\n }\n\n if (this.presence === \"hidden\" || this.presence === \"inactive\") {\n return HTMLResult.EMPTY;\n }\n\n if (\n this.breakBefore.children.length > 1 ||\n this.breakAfter.children.length > 1\n ) {\n // Specs are always talking about the breakBefore element\n // and it doesn't really make sense to have several ones.\n warn(\n \"XFA - Several breakBefore or breakAfter in subforms: please file a bug.\"\n );\n }\n\n if (this.breakBefore.children.length >= 1) {\n const breakBefore = this.breakBefore.children[0];\n if (handleBreak(breakBefore)) {\n return HTMLResult.breakNode(breakBefore);\n }\n }\n\n if (this[$extra]?.afterBreakAfter) {\n return HTMLResult.EMPTY;\n }\n\n // TODO: incomplete.\n fixDimensions(this);\n const children = [];\n const attributes = {\n id: this[$uid],\n class: [],\n };\n\n setAccess(this, attributes.class);\n\n if (!this[$extra]) {\n this[$extra] = Object.create(null);\n }\n\n Object.assign(this[$extra], {\n children,\n line: null,\n attributes,\n attempt: 0,\n numberInLine: 0,\n availableSpace: {\n width: Math.min(this.w || Infinity, availableSpace.width),\n height: Math.min(this.h || Infinity, availableSpace.height),\n },\n width: 0,\n height: 0,\n prevHeight: 0,\n currentWidth: 0,\n });\n\n const root = this[$getTemplateRoot]();\n const savedNoLayoutFailure = root[$extra].noLayoutFailure;\n\n const isSplittable = this[$isSplittable]();\n if (!isSplittable) {\n setFirstUnsplittable(this);\n }\n\n if (!checkDimensions(this, availableSpace)) {\n return HTMLResult.FAILURE;\n }\n\n const filter = new Set([\n \"area\",\n \"draw\",\n \"exclGroup\",\n \"field\",\n \"subform\",\n \"subformSet\",\n ]);\n\n if (this.layout.includes(\"row\")) {\n const columnWidths = this[$getSubformParent]().columnWidths;\n if (Array.isArray(columnWidths) && columnWidths.length > 0) {\n this[$extra].columnWidths = columnWidths;\n this[$extra].currentColumn = 0;\n }\n }\n\n const style = toStyle(\n this,\n \"anchorType\",\n \"dimensions\",\n \"position\",\n \"presence\",\n \"border\",\n \"margin\",\n \"hAlign\"\n );\n const classNames = [\"xfaSubform\"];\n const cl = layoutClass(this);\n if (cl) {\n classNames.push(cl);\n }\n\n attributes.style = style;\n attributes.class = classNames;\n\n if (this.name) {\n attributes.xfaName = this.name;\n }\n\n if (this.overflow) {\n const overflowExtra = this.overflow[$getExtra]();\n if (overflowExtra.addLeader) {\n overflowExtra.addLeader = false;\n handleOverflow(this, overflowExtra.leader, availableSpace);\n }\n }\n\n this[$pushPara]();\n const isLrTb = this.layout === \"lr-tb\" || this.layout === \"rl-tb\";\n const maxRun = isLrTb ? MAX_ATTEMPTS_FOR_LRTB_LAYOUT : 1;\n for (; this[$extra].attempt < maxRun; this[$extra].attempt++) {\n if (isLrTb && this[$extra].attempt === MAX_ATTEMPTS_FOR_LRTB_LAYOUT - 1) {\n // If the layout is lr-tb then having attempt equals to\n // MAX_ATTEMPTS_FOR_LRTB_LAYOUT-1 means that we're trying to layout\n // on the next line so this on is empty.\n this[$extra].numberInLine = 0;\n }\n const result = this[$childrenToHTML]({\n filter,\n include: true,\n });\n if (result.success) {\n break;\n }\n if (result.isBreak()) {\n this[$popPara]();\n return result;\n }\n if (\n isLrTb &&\n this[$extra].attempt === 0 &&\n this[$extra].numberInLine === 0 &&\n !root[$extra].noLayoutFailure\n ) {\n // We're failing to put the first element on the line so no\n // need to test on the next line.\n // The goal is not only to avoid some useless checks but to avoid\n // bugs too: if a descendant managed to put a node and failed\n // on the next one, going to the next step here will imply to\n // visit the descendant again, clear [$extra].children and restart\n // on the failing node, consequently the first node just disappears\n // because it has never been flushed.\n this[$extra].attempt = maxRun;\n break;\n }\n }\n\n this[$popPara]();\n if (!isSplittable) {\n unsetFirstUnsplittable(this);\n }\n root[$extra].noLayoutFailure = savedNoLayoutFailure;\n\n if (this[$extra].attempt === maxRun) {\n if (this.overflow) {\n this[$getTemplateRoot]()[$extra].overflowNode = this.overflow;\n }\n\n if (!isSplittable) {\n // Since a new try will happen in a new container with maybe\n // new dimensions, we invalidate already layed out components.\n delete this[$extra];\n }\n return HTMLResult.FAILURE;\n }\n\n if (this.overflow) {\n const overflowExtra = this.overflow[$getExtra]();\n if (overflowExtra.addTrailer) {\n overflowExtra.addTrailer = false;\n handleOverflow(this, overflowExtra.trailer, availableSpace);\n }\n }\n\n let marginH = 0;\n let marginV = 0;\n if (this.margin) {\n marginH = this.margin.leftInset + this.margin.rightInset;\n marginV = this.margin.topInset + this.margin.bottomInset;\n }\n\n const width = Math.max(this[$extra].width + marginH, this.w || 0);\n const height = Math.max(this[$extra].height + marginV, this.h || 0);\n const bbox = [this.x, this.y, width, height];\n\n if (this.w === \"\") {\n style.width = measureToString(width);\n }\n if (this.h === \"\") {\n style.height = measureToString(height);\n }\n\n if (\n (style.width === \"0px\" || style.height === \"0px\") &&\n children.length === 0\n ) {\n return HTMLResult.EMPTY;\n }\n\n const html = {\n name: \"div\",\n attributes,\n children,\n };\n\n applyAssist(this, attributes);\n\n const result = HTMLResult.success(createWrapper(this, html), bbox);\n\n if (this.breakAfter.children.length >= 1) {\n const breakAfter = this.breakAfter.children[0];\n if (handleBreak(breakAfter)) {\n this[$extra].afterBreakAfter = result;\n return HTMLResult.breakNode(breakAfter);\n }\n }\n\n delete this[$extra];\n\n return result;\n }\n}\n\nclass SubformSet extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subformSet\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.relation = getStringOption(attributes.relation, [\n \"ordered\",\n \"choice\",\n \"unordered\",\n ]);\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.bookend = null;\n this.break = null;\n this.desc = null;\n this.extras = null;\n this.occur = null;\n this.overflow = null;\n this.breakAfter = new XFAObjectArray();\n this.breakBefore = new XFAObjectArray();\n this.subform = new XFAObjectArray();\n this.subformSet = new XFAObjectArray();\n\n // TODO: need to handle break stuff and relation.\n }\n\n *[$getContainedChildren]() {\n // This function is overriden in order to fake that subforms under\n // this set are in fact under parent subform.\n yield* getContainedChildren(this);\n }\n\n [$getSubformParent]() {\n let parent = this[$getParent]();\n while (!(parent instanceof Subform)) {\n parent = parent[$getParent]();\n }\n return parent;\n }\n\n [$isBindable]() {\n return true;\n }\n}\n\nclass SubjectDN extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subjectDN\");\n this.delimiter = attributes.delimiter || \",\";\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n this[$content] = new Map(\n this[$content].split(this.delimiter).map(kv => {\n kv = kv.split(\"=\", 2);\n kv[0] = kv[0].trim();\n return kv;\n })\n );\n }\n}\n\nclass SubjectDNs extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"subjectDNs\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.subjectDN = new XFAObjectArray();\n }\n}\n\nclass Submit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"submit\", /* hasChildren = */ true);\n this.embedPDF = getInteger({\n data: attributes.embedPDF,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.format = getStringOption(attributes.format, [\n \"xdp\",\n \"formdata\",\n \"pdf\",\n \"urlencoded\",\n \"xfd\",\n \"xml\",\n ]);\n this.id = attributes.id || \"\";\n this.target = attributes.target || \"\";\n this.textEncoding = getKeyword({\n data: attributes.textEncoding\n ? attributes.textEncoding.toLowerCase()\n : \"\",\n defaultValue: \"\",\n validate: k =>\n [\n \"utf-8\",\n \"big-five\",\n \"fontspecific\",\n \"gbk\",\n \"gb-18030\",\n \"gb-2312\",\n \"ksc-5601\",\n \"none\",\n \"shift-jis\",\n \"ucs-2\",\n \"utf-16\",\n ].includes(k) || k.match(/iso-8859-\\d{2}/),\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.xdpContent = attributes.xdpContent || \"\";\n this.encrypt = null;\n this.encryptData = new XFAObjectArray();\n this.signData = new XFAObjectArray();\n }\n}\n\nclass Template extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"template\", /* hasChildren = */ true);\n this.baseProfile = getStringOption(attributes.baseProfile, [\n \"full\",\n \"interactiveForms\",\n ]);\n this.extras = null;\n\n // Spec is unclear:\n // A container element that describes a single subform capable of\n // enclosing other containers.\n // Can we have more than one subform ?\n this.subform = new XFAObjectArray();\n }\n\n [$finalize]() {\n if (this.subform.children.length === 0) {\n warn(\"XFA - No subforms in template node.\");\n }\n if (this.subform.children.length >= 2) {\n warn(\"XFA - Several subforms in template node: please file a bug.\");\n }\n this[$tabIndex] = DEFAULT_TAB_INDEX;\n }\n\n [$isSplittable]() {\n return true;\n }\n\n [$searchNode](expr, container) {\n if (expr.startsWith(\"#\")) {\n // This is an id.\n return [this[$ids].get(expr.slice(1))];\n }\n return searchNode(this, container, expr, true, true);\n }\n\n /**\n * This function is a generator because the conversion into\n * pages is done asynchronously and we want to save the state\n * of the function where we were in the previous iteration.\n */\n *[$toPages]() {\n if (!this.subform.children.length) {\n return HTMLResult.success({\n name: \"div\",\n children: [],\n });\n }\n this[$extra] = {\n overflowNode: null,\n firstUnsplittable: null,\n currentContentArea: null,\n currentPageArea: null,\n noLayoutFailure: false,\n pageNumber: 1,\n pagePosition: \"first\",\n oddOrEven: \"odd\",\n blankOrNotBlank: \"nonBlank\",\n paraStack: [],\n };\n\n const root = this.subform.children[0];\n root.pageSet[$cleanPage]();\n\n const pageAreas = root.pageSet.pageArea.children;\n const mainHtml = {\n name: \"div\",\n children: [],\n };\n\n let pageArea = null;\n let breakBefore = null;\n let breakBeforeTarget = null;\n if (root.breakBefore.children.length >= 1) {\n breakBefore = root.breakBefore.children[0];\n breakBeforeTarget = breakBefore.target;\n } else if (\n root.subform.children.length >= 1 &&\n root.subform.children[0].breakBefore.children.length >= 1\n ) {\n breakBefore = root.subform.children[0].breakBefore.children[0];\n breakBeforeTarget = breakBefore.target;\n } else if (root.break?.beforeTarget) {\n breakBefore = root.break;\n breakBeforeTarget = breakBefore.beforeTarget;\n } else if (\n root.subform.children.length >= 1 &&\n root.subform.children[0].break?.beforeTarget\n ) {\n breakBefore = root.subform.children[0].break;\n breakBeforeTarget = breakBefore.beforeTarget;\n }\n\n if (breakBefore) {\n const target = this[$searchNode](\n breakBeforeTarget,\n breakBefore[$getParent]()\n );\n if (target instanceof PageArea) {\n pageArea = target;\n // Consume breakBefore.\n breakBefore[$extra] = {};\n }\n }\n\n if (!pageArea) {\n pageArea = pageAreas[0];\n }\n\n pageArea[$extra] = {\n numberOfUse: 1,\n };\n\n const pageAreaParent = pageArea[$getParent]();\n pageAreaParent[$extra] = {\n numberOfUse: 1,\n pageIndex: pageAreaParent.pageArea.children.indexOf(pageArea),\n pageSetIndex: 0,\n };\n\n let targetPageArea;\n let leader = null;\n let trailer = null;\n let hasSomething = true;\n let hasSomethingCounter = 0;\n let startIndex = 0;\n\n while (true) {\n if (!hasSomething) {\n mainHtml.children.pop();\n // Nothing has been added in the previous page\n if (++hasSomethingCounter === MAX_EMPTY_PAGES) {\n warn(\"XFA - Something goes wrong: please file a bug.\");\n return mainHtml;\n }\n } else {\n hasSomethingCounter = 0;\n }\n\n targetPageArea = null;\n this[$extra].currentPageArea = pageArea;\n const page = pageArea[$toHTML]().html;\n mainHtml.children.push(page);\n\n if (leader) {\n this[$extra].noLayoutFailure = true;\n page.children.push(leader[$toHTML](pageArea[$extra].space).html);\n leader = null;\n }\n\n if (trailer) {\n this[$extra].noLayoutFailure = true;\n page.children.push(trailer[$toHTML](pageArea[$extra].space).html);\n trailer = null;\n }\n\n const contentAreas = pageArea.contentArea.children;\n const htmlContentAreas = page.children.filter(node =>\n node.attributes.class.includes(\"xfaContentarea\")\n );\n\n hasSomething = false;\n this[$extra].firstUnsplittable = null;\n this[$extra].noLayoutFailure = false;\n\n const flush = index => {\n const html = root[$flushHTML]();\n if (html) {\n hasSomething ||= html.children?.length > 0;\n htmlContentAreas[index].children.push(html);\n }\n };\n\n for (let i = startIndex, ii = contentAreas.length; i < ii; i++) {\n const contentArea = (this[$extra].currentContentArea = contentAreas[i]);\n const space = { width: contentArea.w, height: contentArea.h };\n startIndex = 0;\n\n if (leader) {\n htmlContentAreas[i].children.push(leader[$toHTML](space).html);\n leader = null;\n }\n\n if (trailer) {\n htmlContentAreas[i].children.push(trailer[$toHTML](space).html);\n trailer = null;\n }\n\n const html = root[$toHTML](space);\n if (html.success) {\n if (html.html) {\n hasSomething ||= html.html.children?.length > 0;\n htmlContentAreas[i].children.push(html.html);\n } else if (!hasSomething && mainHtml.children.length > 1) {\n mainHtml.children.pop();\n }\n return mainHtml;\n }\n\n if (html.isBreak()) {\n const node = html.breakNode;\n flush(i);\n\n if (node.targetType === \"auto\") {\n continue;\n }\n\n if (node.leader) {\n leader = this[$searchNode](node.leader, node[$getParent]());\n leader = leader ? leader[0] : null;\n }\n\n if (node.trailer) {\n trailer = this[$searchNode](node.trailer, node[$getParent]());\n trailer = trailer ? trailer[0] : null;\n }\n\n if (node.targetType === \"pageArea\") {\n targetPageArea = node[$extra].target;\n i = Infinity;\n } else if (!node[$extra].target) {\n // We stay on the same page.\n i = node[$extra].index;\n } else {\n targetPageArea = node[$extra].target;\n startIndex = node[$extra].index + 1;\n i = Infinity;\n }\n\n continue;\n }\n\n if (this[$extra].overflowNode) {\n const node = this[$extra].overflowNode;\n this[$extra].overflowNode = null;\n\n const overflowExtra = node[$getExtra]();\n const target = overflowExtra.target;\n overflowExtra.addLeader = overflowExtra.leader !== null;\n overflowExtra.addTrailer = overflowExtra.trailer !== null;\n\n flush(i);\n\n const currentIndex = i;\n\n i = Infinity;\n if (target instanceof PageArea) {\n // We must stop the contentAreas filling and go to the next page.\n targetPageArea = target;\n } else if (target instanceof ContentArea) {\n const index = contentAreas.indexOf(target);\n if (index !== -1) {\n if (index > currentIndex) {\n // In the next loop iteration `i` will be incremented, note the\n // `continue` just below, hence we need to subtract one here.\n i = index - 1;\n } else {\n // The targetted contentArea has already been filled\n // so create a new page.\n startIndex = index;\n }\n } else {\n targetPageArea = target[$getParent]();\n startIndex = targetPageArea.contentArea.children.indexOf(target);\n }\n }\n continue;\n }\n\n flush(i);\n }\n\n this[$extra].pageNumber += 1;\n if (targetPageArea) {\n if (targetPageArea[$isUsable]()) {\n targetPageArea[$extra].numberOfUse += 1;\n } else {\n targetPageArea = null;\n }\n }\n pageArea = targetPageArea || pageArea[$getNextPage]();\n yield null;\n }\n }\n}\n\nclass Text extends ContentObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"text\");\n this.id = attributes.id || \"\";\n this.maxChars = getInteger({\n data: attributes.maxChars,\n defaultValue: 0,\n validate: x => x >= 0,\n });\n this.name = attributes.name || \"\";\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$acceptWhitespace]() {\n return true;\n }\n\n [$onChild](child) {\n if (child[$namespaceId] === NamespaceIds.xhtml.id) {\n this[$content] = child;\n return true;\n }\n warn(`XFA - Invalid content in Text: ${child[$nodeName]}.`);\n return false;\n }\n\n [$onText](str) {\n if (this[$content] instanceof XFAObject) {\n return;\n }\n super[$onText](str);\n }\n\n [$finalize]() {\n if (typeof this[$content] === \"string\") {\n this[$content] = this[$content].replaceAll(\"\\r\\n\", \"\\n\");\n }\n }\n\n [$getExtra]() {\n if (typeof this[$content] === \"string\") {\n return this[$content]\n .split(/[\\u2029\\u2028\\n]/)\n .reduce((acc, line) => {\n if (line) {\n acc.push(line);\n }\n return acc;\n }, [])\n .join(\"\\n\");\n }\n return this[$content][$text]();\n }\n\n [$toHTML](availableSpace) {\n if (typeof this[$content] === \"string\") {\n // \\u2028 is a line separator.\n // \\u2029 is a paragraph separator.\n const html = valueToHtml(this[$content]).html;\n\n if (this[$content].includes(\"\\u2029\")) {\n // We've plain text containing a paragraph separator\n // so convert it into a set of <p>.\n html.name = \"div\";\n html.children = [];\n this[$content]\n .split(\"\\u2029\")\n .map(para =>\n // Convert a paragraph into a set of <span> (for lines)\n // separated by <br>.\n para.split(/[\\u2028\\n]/).reduce((acc, line) => {\n acc.push(\n {\n name: \"span\",\n value: line,\n },\n {\n name: \"br\",\n }\n );\n return acc;\n }, [])\n )\n .forEach(lines => {\n html.children.push({\n name: \"p\",\n children: lines,\n });\n });\n } else if (/[\\u2028\\n]/.test(this[$content])) {\n html.name = \"div\";\n html.children = [];\n // Convert plain text into a set of <span> (for lines)\n // separated by <br>.\n this[$content].split(/[\\u2028\\n]/).forEach(line => {\n html.children.push(\n {\n name: \"span\",\n value: line,\n },\n {\n name: \"br\",\n }\n );\n });\n }\n\n return HTMLResult.success(html);\n }\n\n return this[$content][$toHTML](availableSpace);\n }\n}\n\nclass TextEdit extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"textEdit\", /* hasChildren = */ true);\n this.allowRichText = getInteger({\n data: attributes.allowRichText,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.hScrollPolicy = getStringOption(attributes.hScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.id = attributes.id || \"\";\n this.multiLine = getInteger({\n data: attributes.multiLine,\n defaultValue: \"\",\n validate: x => x === 0 || x === 1,\n });\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.vScrollPolicy = getStringOption(attributes.vScrollPolicy, [\n \"auto\",\n \"off\",\n \"on\",\n ]);\n this.border = null;\n this.comb = null;\n this.extras = null;\n this.margin = null;\n }\n\n [$toHTML](availableSpace) {\n // TODO: incomplete.\n const style = toStyle(this, \"border\", \"font\", \"margin\");\n let html;\n const field = this[$getParent]()[$getParent]();\n if (this.multiLine === \"\") {\n this.multiLine = field instanceof Draw ? 1 : 0;\n }\n if (this.multiLine === 1) {\n html = {\n name: \"textarea\",\n attributes: {\n dataId: field[$data]?.[$uid] || field[$uid],\n fieldId: field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n \"aria-required\": false,\n },\n };\n } else {\n html = {\n name: \"input\",\n attributes: {\n type: \"text\",\n dataId: field[$data]?.[$uid] || field[$uid],\n fieldId: field[$uid],\n class: [\"xfaTextfield\"],\n style,\n \"aria-label\": ariaLabel(field),\n \"aria-required\": false,\n },\n };\n }\n\n if (isRequired(field)) {\n html.attributes[\"aria-required\"] = true;\n html.attributes.required = true;\n }\n\n return HTMLResult.success({\n name: \"label\",\n attributes: {\n class: [\"xfaLabel\"],\n },\n children: [html],\n });\n }\n}\n\nclass Time extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"time\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n\n [$finalize]() {\n // TODO: need to handle the string as a time and not as a date.\n const date = this[$content].trim();\n this[$content] = date ? new Date(date) : null;\n }\n\n [$toHTML](availableSpace) {\n return valueToHtml(this[$content] ? this[$content].toString() : \"\");\n }\n}\n\nclass TimeStamp extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"timeStamp\");\n this.id = attributes.id || \"\";\n this.server = attributes.server || \"\";\n this.type = getStringOption(attributes.type, [\"optional\", \"required\"]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass ToolTip extends StringObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"toolTip\");\n this.id = attributes.id || \"\";\n this.rid = attributes.rid || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Traversal extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"traversal\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.traverse = new XFAObjectArray();\n }\n}\n\nclass Traverse extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"traverse\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.operation = getStringOption(attributes.operation, [\n \"next\",\n \"back\",\n \"down\",\n \"first\",\n \"left\",\n \"right\",\n \"up\",\n ]);\n this.ref = attributes.ref || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.script = null;\n }\n\n get name() {\n // SOM expression: see page 94\n return this.operation;\n }\n\n [$isTransparent]() {\n return false;\n }\n}\n\nclass Ui extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"ui\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.picture = null;\n\n // One-of properties\n this.barcode = null;\n this.button = null;\n this.checkButton = null;\n this.choiceList = null;\n this.dateTimeEdit = null;\n this.defaultUi = null;\n this.imageEdit = null;\n this.numericEdit = null;\n this.passwordEdit = null;\n this.signature = null;\n this.textEdit = null;\n }\n\n [$getExtra]() {\n if (this[$extra] === undefined) {\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"extras\" || name === \"picture\") {\n continue;\n }\n const obj = this[name];\n if (!(obj instanceof XFAObject)) {\n continue;\n }\n\n this[$extra] = obj;\n return obj;\n }\n this[$extra] = null;\n }\n return this[$extra];\n }\n\n [$toHTML](availableSpace) {\n // TODO: picture.\n const obj = this[$getExtra]();\n if (obj) {\n return obj[$toHTML](availableSpace);\n }\n return HTMLResult.EMPTY;\n }\n}\n\nclass Validate extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"validate\", /* hasChildren = */ true);\n this.formatTest = getStringOption(attributes.formatTest, [\n \"warning\",\n \"disabled\",\n \"error\",\n ]);\n this.id = attributes.id || \"\";\n this.nullTest = getStringOption(attributes.nullTest, [\n \"disabled\",\n \"error\",\n \"warning\",\n ]);\n this.scriptTest = getStringOption(attributes.scriptTest, [\n \"error\",\n \"disabled\",\n \"warning\",\n ]);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.extras = null;\n this.message = null;\n this.picture = null;\n this.script = null;\n }\n}\n\nclass Value extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"value\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.override = getInteger({\n data: attributes.override,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.relevant = getRelevant(attributes.relevant);\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n\n // One-of properties\n this.arc = null;\n this.boolean = null;\n this.date = null;\n this.dateTime = null;\n this.decimal = null;\n this.exData = null;\n this.float = null;\n this.image = null;\n this.integer = null;\n this.line = null;\n this.rectangle = null;\n this.text = null;\n this.time = null;\n }\n\n [$setValue](value) {\n const parent = this[$getParent]();\n if (parent instanceof Field) {\n if (parent.ui?.imageEdit) {\n if (!this.image) {\n this.image = new Image({});\n this[$appendChild](this.image);\n }\n this.image[$content] = value[$content];\n return;\n }\n }\n\n const valueName = value[$nodeName];\n if (this[valueName] !== null) {\n this[valueName][$content] = value[$content];\n return;\n }\n\n // Reset all the properties.\n for (const name of Object.getOwnPropertyNames(this)) {\n const obj = this[name];\n if (obj instanceof XFAObject) {\n this[name] = null;\n this[$removeChild](obj);\n }\n }\n\n this[value[$nodeName]] = value;\n this[$appendChild](value);\n }\n\n [$text]() {\n if (this.exData) {\n if (typeof this.exData[$content] === \"string\") {\n return this.exData[$content].trim();\n }\n return this.exData[$content][$text]().trim();\n }\n for (const name of Object.getOwnPropertyNames(this)) {\n if (name === \"image\") {\n continue;\n }\n const obj = this[name];\n if (obj instanceof XFAObject) {\n return (obj[$content] || \"\").toString().trim();\n }\n }\n return null;\n }\n\n [$toHTML](availableSpace) {\n for (const name of Object.getOwnPropertyNames(this)) {\n const obj = this[name];\n if (!(obj instanceof XFAObject)) {\n continue;\n }\n\n return obj[$toHTML](availableSpace);\n }\n\n return HTMLResult.EMPTY;\n }\n}\n\nclass Variables extends XFAObject {\n constructor(attributes) {\n super(TEMPLATE_NS_ID, \"variables\", /* hasChildren = */ true);\n this.id = attributes.id || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n this.boolean = new XFAObjectArray();\n this.date = new XFAObjectArray();\n this.dateTime = new XFAObjectArray();\n this.decimal = new XFAObjectArray();\n this.exData = new XFAObjectArray();\n this.float = new XFAObjectArray();\n this.image = new XFAObjectArray();\n this.integer = new XFAObjectArray();\n this.manifest = new XFAObjectArray();\n this.script = new XFAObjectArray();\n this.text = new XFAObjectArray();\n this.time = new XFAObjectArray();\n }\n\n [$isTransparent]() {\n return true;\n }\n}\n\nclass TemplateNamespace {\n static [$buildXFAObject](name, attributes) {\n if (TemplateNamespace.hasOwnProperty(name)) {\n const node = TemplateNamespace[name](attributes);\n node[$setSetAttributes](attributes);\n return node;\n }\n return undefined;\n }\n\n static appearanceFilter(attrs) {\n return new AppearanceFilter(attrs);\n }\n\n static arc(attrs) {\n return new Arc(attrs);\n }\n\n static area(attrs) {\n return new Area(attrs);\n }\n\n static assist(attrs) {\n return new Assist(attrs);\n }\n\n static barcode(attrs) {\n return new Barcode(attrs);\n }\n\n static bind(attrs) {\n return new Bind(attrs);\n }\n\n static bindItems(attrs) {\n return new BindItems(attrs);\n }\n\n static bookend(attrs) {\n return new Bookend(attrs);\n }\n\n static boolean(attrs) {\n return new BooleanElement(attrs);\n }\n\n static border(attrs) {\n return new Border(attrs);\n }\n\n static break(attrs) {\n return new Break(attrs);\n }\n\n static breakAfter(attrs) {\n return new BreakAfter(attrs);\n }\n\n static breakBefore(attrs) {\n return new BreakBefore(attrs);\n }\n\n static button(attrs) {\n return new Button(attrs);\n }\n\n static calculate(attrs) {\n return new Calculate(attrs);\n }\n\n static caption(attrs) {\n return new Caption(attrs);\n }\n\n static certificate(attrs) {\n return new Certificate(attrs);\n }\n\n static certificates(attrs) {\n return new Certificates(attrs);\n }\n\n static checkButton(attrs) {\n return new CheckButton(attrs);\n }\n\n static choiceList(attrs) {\n return new ChoiceList(attrs);\n }\n\n static color(attrs) {\n return new Color(attrs);\n }\n\n static comb(attrs) {\n return new Comb(attrs);\n }\n\n static connect(attrs) {\n return new Connect(attrs);\n }\n\n static contentArea(attrs) {\n return new ContentArea(attrs);\n }\n\n static corner(attrs) {\n return new Corner(attrs);\n }\n\n static date(attrs) {\n return new DateElement(attrs);\n }\n\n static dateTime(attrs) {\n return new DateTime(attrs);\n }\n\n static dateTimeEdit(attrs) {\n return new DateTimeEdit(attrs);\n }\n\n static decimal(attrs) {\n return new Decimal(attrs);\n }\n\n static defaultUi(attrs) {\n return new DefaultUi(attrs);\n }\n\n static desc(attrs) {\n return new Desc(attrs);\n }\n\n static digestMethod(attrs) {\n return new DigestMethod(attrs);\n }\n\n static digestMethods(attrs) {\n return new DigestMethods(attrs);\n }\n\n static draw(attrs) {\n return new Draw(attrs);\n }\n\n static edge(attrs) {\n return new Edge(attrs);\n }\n\n static encoding(attrs) {\n return new Encoding(attrs);\n }\n\n static encodings(attrs) {\n return new Encodings(attrs);\n }\n\n static encrypt(attrs) {\n return new Encrypt(attrs);\n }\n\n static encryptData(attrs) {\n return new EncryptData(attrs);\n }\n\n static encryption(attrs) {\n return new Encryption(attrs);\n }\n\n static encryptionMethod(attrs) {\n return new EncryptionMethod(attrs);\n }\n\n static encryptionMethods(attrs) {\n return new EncryptionMethods(attrs);\n }\n\n static event(attrs) {\n return new Event(attrs);\n }\n\n static exData(attrs) {\n return new ExData(attrs);\n }\n\n static exObject(attrs) {\n return new ExObject(attrs);\n }\n\n static exclGroup(attrs) {\n return new ExclGroup(attrs);\n }\n\n static execute(attrs) {\n return new Execute(attrs);\n }\n\n static extras(attrs) {\n return new Extras(attrs);\n }\n\n static field(attrs) {\n return new Field(attrs);\n }\n\n static fill(attrs) {\n return new Fill(attrs);\n }\n\n static filter(attrs) {\n return new Filter(attrs);\n }\n\n static float(attrs) {\n return new Float(attrs);\n }\n\n static font(attrs) {\n return new Font(attrs);\n }\n\n static format(attrs) {\n return new Format(attrs);\n }\n\n static handler(attrs) {\n return new Handler(attrs);\n }\n\n static hyphenation(attrs) {\n return new Hyphenation(attrs);\n }\n\n static image(attrs) {\n return new Image(attrs);\n }\n\n static imageEdit(attrs) {\n return new ImageEdit(attrs);\n }\n\n static integer(attrs) {\n return new Integer(attrs);\n }\n\n static issuers(attrs) {\n return new Issuers(attrs);\n }\n\n static items(attrs) {\n return new Items(attrs);\n }\n\n static keep(attrs) {\n return new Keep(attrs);\n }\n\n static keyUsage(attrs) {\n return new KeyUsage(attrs);\n }\n\n static line(attrs) {\n return new Line(attrs);\n }\n\n static linear(attrs) {\n return new Linear(attrs);\n }\n\n static lockDocument(attrs) {\n return new LockDocument(attrs);\n }\n\n static manifest(attrs) {\n return new Manifest(attrs);\n }\n\n static margin(attrs) {\n return new Margin(attrs);\n }\n\n static mdp(attrs) {\n return new Mdp(attrs);\n }\n\n static medium(attrs) {\n return new Medium(attrs);\n }\n\n static message(attrs) {\n return new Message(attrs);\n }\n\n static numericEdit(attrs) {\n return new NumericEdit(attrs);\n }\n\n static occur(attrs) {\n return new Occur(attrs);\n }\n\n static oid(attrs) {\n return new Oid(attrs);\n }\n\n static oids(attrs) {\n return new Oids(attrs);\n }\n\n static overflow(attrs) {\n return new Overflow(attrs);\n }\n\n static pageArea(attrs) {\n return new PageArea(attrs);\n }\n\n static pageSet(attrs) {\n return new PageSet(attrs);\n }\n\n static para(attrs) {\n return new Para(attrs);\n }\n\n static passwordEdit(attrs) {\n return new PasswordEdit(attrs);\n }\n\n static pattern(attrs) {\n return new Pattern(attrs);\n }\n\n static picture(attrs) {\n return new Picture(attrs);\n }\n\n static proto(attrs) {\n return new Proto(attrs);\n }\n\n static radial(attrs) {\n return new Radial(attrs);\n }\n\n static reason(attrs) {\n return new Reason(attrs);\n }\n\n static reasons(attrs) {\n return new Reasons(attrs);\n }\n\n static rectangle(attrs) {\n return new Rectangle(attrs);\n }\n\n static ref(attrs) {\n return new RefElement(attrs);\n }\n\n static script(attrs) {\n return new Script(attrs);\n }\n\n static setProperty(attrs) {\n return new SetProperty(attrs);\n }\n\n static signData(attrs) {\n return new SignData(attrs);\n }\n\n static signature(attrs) {\n return new Signature(attrs);\n }\n\n static signing(attrs) {\n return new Signing(attrs);\n }\n\n static solid(attrs) {\n return new Solid(attrs);\n }\n\n static speak(attrs) {\n return new Speak(attrs);\n }\n\n static stipple(attrs) {\n return new Stipple(attrs);\n }\n\n static subform(attrs) {\n return new Subform(attrs);\n }\n\n static subformSet(attrs) {\n return new SubformSet(attrs);\n }\n\n static subjectDN(attrs) {\n return new SubjectDN(attrs);\n }\n\n static subjectDNs(attrs) {\n return new SubjectDNs(attrs);\n }\n\n static submit(attrs) {\n return new Submit(attrs);\n }\n\n static template(attrs) {\n return new Template(attrs);\n }\n\n static text(attrs) {\n return new Text(attrs);\n }\n\n static textEdit(attrs) {\n return new TextEdit(attrs);\n }\n\n static time(attrs) {\n return new Time(attrs);\n }\n\n static timeStamp(attrs) {\n return new TimeStamp(attrs);\n }\n\n static toolTip(attrs) {\n return new ToolTip(attrs);\n }\n\n static traversal(attrs) {\n return new Traversal(attrs);\n }\n\n static traverse(attrs) {\n return new Traverse(attrs);\n }\n\n static ui(attrs) {\n return new Ui(attrs);\n }\n\n static validate(attrs) {\n return new Validate(attrs);\n }\n\n static value(attrs) {\n return new Value(attrs);\n }\n\n static variables(attrs) {\n return new Variables(attrs);\n }\n}\n\nexport {\n BindItems,\n Field,\n Items,\n SetProperty,\n Template,\n TemplateNamespace,\n Text,\n Value,\n};\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $clone,\n $consumed,\n $content,\n $data,\n $finalize,\n $getAttributeIt,\n $getChildren,\n $getDataValue,\n $getParent,\n $getRealChildrenByNameIt,\n $hasSettableValue,\n $indexOf,\n $insertAt,\n $isBindable,\n $isDataValue,\n $isDescendent,\n $namespaceId,\n $nodeName,\n $removeChild,\n $setValue,\n $text,\n} from \"./symbol_utils.js\";\nimport { BindItems, Field, Items, SetProperty, Text } from \"./template.js\";\nimport { createDataNode, searchNode } from \"./som.js\";\nimport { XFAAttribute, XFAObjectArray, XmlObject } from \"./xfa_object.js\";\nimport { NamespaceIds } from \"./namespaces.js\";\nimport { warn } from \"../../shared/util.js\";\n\nconst NS_DATASETS = NamespaceIds.datasets.id;\n\nfunction createText(content) {\n const node = new Text({});\n node[$content] = content;\n return node;\n}\n\nclass Binder {\n constructor(root) {\n this.root = root;\n this.datasets = root.datasets;\n this.data =\n root.datasets?.data || new XmlObject(NamespaceIds.datasets.id, \"data\");\n this.emptyMerge = this.data[$getChildren]().length === 0;\n\n this.root.form = this.form = root.template[$clone]();\n }\n\n _isConsumeData() {\n return !this.emptyMerge && this._mergeMode;\n }\n\n _isMatchTemplate() {\n return !this._isConsumeData();\n }\n\n bind() {\n this._bindElement(this.form, this.data);\n return this.form;\n }\n\n getData() {\n return this.data;\n }\n\n _bindValue(formNode, data, picture) {\n // Nodes must have the same \"type\": container or value.\n // Here we make the link between form node and\n // data node (through $data property): we'll use it\n // to save form data.\n\n formNode[$data] = data;\n if (formNode[$hasSettableValue]()) {\n if (data[$isDataValue]()) {\n const value = data[$getDataValue]();\n // TODO: use picture.\n formNode[$setValue](createText(value));\n } else if (\n formNode instanceof Field &&\n formNode.ui?.choiceList?.open === \"multiSelect\"\n ) {\n const value = data[$getChildren]()\n .map(child => child[$content].trim())\n .join(\"\\n\");\n formNode[$setValue](createText(value));\n } else if (this._isConsumeData()) {\n warn(`XFA - Nodes haven't the same type.`);\n }\n } else if (!data[$isDataValue]() || this._isMatchTemplate()) {\n this._bindElement(formNode, data);\n } else {\n warn(`XFA - Nodes haven't the same type.`);\n }\n }\n\n _findDataByNameToConsume(name, isValue, dataNode, global) {\n if (!name) {\n return null;\n }\n\n // Firstly, we try to find a node with the given name:\n // - in dataNode;\n // - if not found, then in parent;\n // - and if not in found, then in grand-parent.\n let generator, match;\n for (let i = 0; i < 3; i++) {\n generator = dataNode[$getRealChildrenByNameIt](\n name,\n /* allTransparent = */ false,\n /* skipConsumed = */ true\n );\n // Try to find a match of the same kind.\n while (true) {\n match = generator.next().value;\n if (!match) {\n break;\n }\n\n if (isValue === match[$isDataValue]()) {\n return match;\n }\n }\n if (\n dataNode[$namespaceId] === NamespaceIds.datasets.id &&\n dataNode[$nodeName] === \"data\"\n ) {\n break;\n }\n dataNode = dataNode[$getParent]();\n }\n\n if (!global) {\n return null;\n }\n\n // Secondly, if global try to find it just under the root of datasets\n // (which is the location of global variables).\n generator = this.data[$getRealChildrenByNameIt](\n name,\n /* allTransparent = */ true,\n /* skipConsumed = */ false\n );\n\n match = generator.next().value;\n if (match) {\n return match;\n }\n\n // Thirdly, try to find it in attributes.\n generator = this.data[$getAttributeIt](name, /* skipConsumed = */ true);\n match = generator.next().value;\n if (match?.[$isDataValue]()) {\n return match;\n }\n\n return null;\n }\n\n _setProperties(formNode, dataNode) {\n // For example:\n // <field name=\"LastName\" ...>\n // <setProperty ref=\"$data.Main.Style.NameFont\" target=\"font.typeface\"/>\n // <setProperty ref=\"$data.Main.Style.NameSize\" target=\"font.size\"/>\n // <setProperty ref=\"$data.Main.Help.LastName\" target=\"assist.toolTip\"/>\n // </field>\n\n if (!formNode.hasOwnProperty(\"setProperty\")) {\n return;\n }\n\n for (const { ref, target, connection } of formNode.setProperty.children) {\n if (connection) {\n // TODO: evaluate if we should implement this feature.\n // Skip for security reasons.\n continue;\n }\n if (!ref) {\n continue;\n }\n\n const nodes = searchNode(\n this.root,\n dataNode,\n ref,\n false /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!nodes) {\n warn(`XFA - Invalid reference: ${ref}.`);\n continue;\n }\n const [node] = nodes;\n\n if (!node[$isDescendent](this.data)) {\n warn(`XFA - Invalid node: must be a data node.`);\n continue;\n }\n\n const targetNodes = searchNode(\n this.root,\n formNode,\n target,\n false /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!targetNodes) {\n warn(`XFA - Invalid target: ${target}.`);\n continue;\n }\n const [targetNode] = targetNodes;\n\n if (!targetNode[$isDescendent](formNode)) {\n warn(`XFA - Invalid target: must be a property or subproperty.`);\n continue;\n }\n\n const targetParent = targetNode[$getParent]();\n if (\n targetNode instanceof SetProperty ||\n targetParent instanceof SetProperty\n ) {\n warn(\n `XFA - Invalid target: cannot be a setProperty or one of its properties.`\n );\n continue;\n }\n\n if (\n targetNode instanceof BindItems ||\n targetParent instanceof BindItems\n ) {\n warn(\n `XFA - Invalid target: cannot be a bindItems or one of its properties.`\n );\n continue;\n }\n\n const content = node[$text]();\n const name = targetNode[$nodeName];\n\n if (targetNode instanceof XFAAttribute) {\n const attrs = Object.create(null);\n attrs[name] = content;\n const obj = Reflect.construct(\n Object.getPrototypeOf(targetParent).constructor,\n [attrs]\n );\n targetParent[name] = obj[name];\n continue;\n }\n\n if (!targetNode.hasOwnProperty($content)) {\n warn(`XFA - Invalid node to use in setProperty`);\n continue;\n }\n\n targetNode[$data] = node;\n targetNode[$content] = content;\n targetNode[$finalize]();\n }\n }\n\n _bindItems(formNode, dataNode) {\n // For example:\n // <field name=\"CardName\"...>\n // <bindItems ref=\"$data.main.ccs.cc[*]\" labelRef=\"uiname\"\n // valueRef=\"token\"/>\n // <ui><choiceList/></ui>\n // </field>\n\n if (\n !formNode.hasOwnProperty(\"items\") ||\n !formNode.hasOwnProperty(\"bindItems\") ||\n formNode.bindItems.isEmpty()\n ) {\n return;\n }\n\n for (const item of formNode.items.children) {\n formNode[$removeChild](item);\n }\n\n formNode.items.clear();\n\n const labels = new Items({});\n const values = new Items({});\n\n formNode[$appendChild](labels);\n formNode.items.push(labels);\n\n formNode[$appendChild](values);\n formNode.items.push(values);\n\n for (const { ref, labelRef, valueRef, connection } of formNode.bindItems\n .children) {\n if (connection) {\n // TODO: evaluate if we should implement this feature.\n // Skip for security reasons.\n continue;\n }\n if (!ref) {\n continue;\n }\n\n const nodes = searchNode(\n this.root,\n dataNode,\n ref,\n false /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!nodes) {\n warn(`XFA - Invalid reference: ${ref}.`);\n continue;\n }\n for (const node of nodes) {\n if (!node[$isDescendent](this.datasets)) {\n warn(`XFA - Invalid ref (${ref}): must be a datasets child.`);\n continue;\n }\n\n const labelNodes = searchNode(\n this.root,\n node,\n labelRef,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!labelNodes) {\n warn(`XFA - Invalid label: ${labelRef}.`);\n continue;\n }\n const [labelNode] = labelNodes;\n\n if (!labelNode[$isDescendent](this.datasets)) {\n warn(`XFA - Invalid label: must be a datasets child.`);\n continue;\n }\n\n const valueNodes = searchNode(\n this.root,\n node,\n valueRef,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (!valueNodes) {\n warn(`XFA - Invalid value: ${valueRef}.`);\n continue;\n }\n const [valueNode] = valueNodes;\n\n if (!valueNode[$isDescendent](this.datasets)) {\n warn(`XFA - Invalid value: must be a datasets child.`);\n continue;\n }\n\n const label = createText(labelNode[$text]());\n const value = createText(valueNode[$text]());\n\n labels[$appendChild](label);\n labels.text.push(label);\n\n values[$appendChild](value);\n values.text.push(value);\n }\n }\n }\n\n _bindOccurrences(formNode, matches, picture) {\n // Insert nodes which are not in the template but reflect\n // what we've in data tree.\n\n let baseClone;\n if (matches.length > 1) {\n // Clone before binding to avoid bad state.\n baseClone = formNode[$clone]();\n baseClone[$removeChild](baseClone.occur);\n baseClone.occur = null;\n }\n\n this._bindValue(formNode, matches[0], picture);\n this._setProperties(formNode, matches[0]);\n this._bindItems(formNode, matches[0]);\n\n if (matches.length === 1) {\n return;\n }\n\n const parent = formNode[$getParent]();\n const name = formNode[$nodeName];\n const pos = parent[$indexOf](formNode);\n\n for (let i = 1, ii = matches.length; i < ii; i++) {\n const match = matches[i];\n const clone = baseClone[$clone]();\n parent[name].push(clone);\n parent[$insertAt](pos + i, clone);\n\n this._bindValue(clone, match, picture);\n this._setProperties(clone, match);\n this._bindItems(clone, match);\n }\n }\n\n _createOccurrences(formNode) {\n if (!this.emptyMerge) {\n return;\n }\n\n const { occur } = formNode;\n if (!occur || occur.initial <= 1) {\n return;\n }\n\n const parent = formNode[$getParent]();\n const name = formNode[$nodeName];\n\n if (!(parent[name] instanceof XFAObjectArray)) {\n return;\n }\n\n let currentNumber;\n if (formNode.name) {\n currentNumber = parent[name].children.filter(\n e => e.name === formNode.name\n ).length;\n } else {\n currentNumber = parent[name].children.length;\n }\n\n const pos = parent[$indexOf](formNode) + 1;\n const ii = occur.initial - currentNumber;\n if (ii) {\n const nodeClone = formNode[$clone]();\n nodeClone[$removeChild](nodeClone.occur);\n nodeClone.occur = null;\n parent[name].push(nodeClone);\n parent[$insertAt](pos, nodeClone);\n\n for (let i = 1; i < ii; i++) {\n const clone = nodeClone[$clone]();\n parent[name].push(clone);\n parent[$insertAt](pos + i, clone);\n }\n }\n }\n\n _getOccurInfo(formNode) {\n const { name, occur } = formNode;\n if (!occur || !name) {\n return [1, 1];\n }\n const max = occur.max === -1 ? Infinity : occur.max;\n return [occur.min, max];\n }\n\n _setAndBind(formNode, dataNode) {\n this._setProperties(formNode, dataNode);\n this._bindItems(formNode, dataNode);\n this._bindElement(formNode, dataNode);\n }\n\n _bindElement(formNode, dataNode) {\n // Some nodes can be useless because min=0 so remove them\n // after the loop to avoid bad things.\n\n const uselessNodes = [];\n\n this._createOccurrences(formNode);\n\n for (const child of formNode[$getChildren]()) {\n if (child[$data]) {\n // Already bound.\n continue;\n }\n\n if (this._mergeMode === undefined && child[$nodeName] === \"subform\") {\n this._mergeMode = child.mergeMode === \"consumeData\";\n\n // XFA specs p. 182:\n // The highest-level subform and the data node representing\n // the current record are special; they are always\n // bound even if their names don't match.\n const dataChildren = dataNode[$getChildren]();\n if (dataChildren.length > 0) {\n this._bindOccurrences(child, [dataChildren[0]], null);\n } else if (this.emptyMerge) {\n const nsId =\n dataNode[$namespaceId] === NS_DATASETS\n ? -1\n : dataNode[$namespaceId];\n const dataChild = (child[$data] = new XmlObject(\n nsId,\n child.name || \"root\"\n ));\n dataNode[$appendChild](dataChild);\n this._bindElement(child, dataChild);\n }\n continue;\n }\n\n if (!child[$isBindable]()) {\n // The node cannot contain some new data so there is nothing\n // to create in the data node.\n continue;\n }\n\n let global = false;\n let picture = null;\n let ref = null;\n let match = null;\n if (child.bind) {\n switch (child.bind.match) {\n case \"none\":\n this._setAndBind(child, dataNode);\n continue;\n case \"global\":\n global = true;\n break;\n case \"dataRef\":\n if (!child.bind.ref) {\n warn(`XFA - ref is empty in node ${child[$nodeName]}.`);\n this._setAndBind(child, dataNode);\n continue;\n }\n ref = child.bind.ref;\n break;\n default:\n break;\n }\n if (child.bind.picture) {\n picture = child.bind.picture[$content];\n }\n }\n\n const [min, max] = this._getOccurInfo(child);\n\n if (ref) {\n // Don't use a cache for searching: nodes can change during binding.\n match = searchNode(\n this.root,\n dataNode,\n ref,\n true /* = dotDotAllowed */,\n false /* = useCache */\n );\n if (match === null) {\n // Nothing found: we must create some nodes in data in order\n // to have something to match with the given expression.\n // See http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.364.2157&rep=rep1&type=pdf#page=199\n match = createDataNode(this.data, dataNode, ref);\n if (!match) {\n // For example if the node contains a .(...) then it isn't\n // findable.\n // TODO: remove this when .(...) is implemented.\n continue;\n }\n if (this._isConsumeData()) {\n match[$consumed] = true;\n }\n\n // Don't bind the value in newly created node because it's empty.\n this._setAndBind(child, match);\n continue;\n } else {\n if (this._isConsumeData()) {\n // Filter out consumed nodes.\n match = match.filter(node => !node[$consumed]);\n }\n if (match.length > max) {\n match = match.slice(0, max);\n } else if (match.length === 0) {\n match = null;\n }\n if (match && this._isConsumeData()) {\n match.forEach(node => {\n node[$consumed] = true;\n });\n }\n }\n } else {\n if (!child.name) {\n this._setAndBind(child, dataNode);\n continue;\n }\n if (this._isConsumeData()) {\n // In consumeData mode, search for the next node with the given name.\n // occurs.max gives us the max number of node to match.\n const matches = [];\n while (matches.length < max) {\n const found = this._findDataByNameToConsume(\n child.name,\n child[$hasSettableValue](),\n dataNode,\n global\n );\n\n if (!found) {\n break;\n }\n found[$consumed] = true;\n matches.push(found);\n }\n match = matches.length > 0 ? matches : null;\n } else {\n // If we've an empty merge, there are no reason\n // to make multiple bind so skip consumed nodes.\n match = dataNode[$getRealChildrenByNameIt](\n child.name,\n /* allTransparent = */ false,\n /* skipConsumed = */ this.emptyMerge\n ).next().value;\n if (!match) {\n // If there is no match (no data) and `min === 0` then\n // the container is entirely excluded.\n // https://www.pdfa.org/norm-refs/XFA-3_3.pdf#G12.1428332\n if (min === 0) {\n uselessNodes.push(child);\n continue;\n }\n // We're in matchTemplate mode so create a node in data to reflect\n // what we've in template.\n const nsId =\n dataNode[$namespaceId] === NS_DATASETS\n ? -1\n : dataNode[$namespaceId];\n match = child[$data] = new XmlObject(nsId, child.name);\n if (this.emptyMerge) {\n match[$consumed] = true;\n }\n dataNode[$appendChild](match);\n\n // Don't bind the value in newly created node because it's empty.\n this._setAndBind(child, match);\n continue;\n }\n if (this.emptyMerge) {\n match[$consumed] = true;\n }\n match = [match];\n }\n }\n\n if (match) {\n this._bindOccurrences(child, match, picture);\n } else if (min > 0) {\n this._setAndBind(child, dataNode);\n } else {\n uselessNodes.push(child);\n }\n }\n\n uselessNodes.forEach(node => node[$getParent]()[$removeChild](node));\n }\n}\n\nexport { Binder };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $getAttributes,\n $getChildren,\n $nodeName,\n $setValue,\n $toString,\n $uid,\n} from \"./symbol_utils.js\";\n\nclass DataHandler {\n constructor(root, data) {\n this.data = data;\n this.dataset = root.datasets || null;\n }\n\n serialize(storage) {\n const stack = [[-1, this.data[$getChildren]()]];\n\n while (stack.length > 0) {\n const last = stack.at(-1);\n const [i, children] = last;\n if (i + 1 === children.length) {\n stack.pop();\n continue;\n }\n\n const child = children[++last[0]];\n const storageEntry = storage.get(child[$uid]);\n if (storageEntry) {\n child[$setValue](storageEntry);\n } else {\n const attributes = child[$getAttributes]();\n for (const value of attributes.values()) {\n const entry = storage.get(value[$uid]);\n if (entry) {\n value[$setValue](entry);\n break;\n }\n }\n }\n\n const nodes = child[$getChildren]();\n if (nodes.length > 0) {\n stack.push([-1, nodes]);\n }\n }\n\n const buf = [\n `<xfa:datasets xmlns:xfa=\"http://www.xfa.org/schema/xfa-data/1.0/\">`,\n ];\n if (this.dataset) {\n // Dump nodes other than data: they can contains for example\n // some data for choice lists.\n for (const child of this.dataset[$getChildren]()) {\n if (child[$nodeName] !== \"data\") {\n child[$toString](buf);\n }\n }\n }\n this.data[$toString](buf);\n buf.push(\"</xfa:datasets>\");\n\n return buf.join(\"\");\n }\n}\n\nexport { DataHandler };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { $content, $finalize } from \"./symbol_utils.js\";\nimport {\n ContentObject,\n IntegerObject,\n Option01,\n Option10,\n OptionObject,\n StringObject,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { getInteger, getStringOption } from \"./utils.js\";\nimport { shadow, warn } from \"../../shared/util.js\";\n\nconst CONFIG_NS_ID = NamespaceIds.config.id;\n\nclass Acrobat extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"acrobat\", /* hasChildren = */ true);\n this.acrobat7 = null;\n this.autoSave = null;\n this.common = null;\n this.validate = null;\n this.validateApprovalSignatures = null;\n this.submitUrl = new XFAObjectArray();\n }\n}\n\nclass Acrobat7 extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"acrobat7\", /* hasChildren = */ true);\n this.dynamicRender = null;\n }\n}\n\nclass ADBE_JSConsole extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ADBE_JSConsole\", [\"delegate\", \"Enable\", \"Disable\"]);\n }\n}\n\nclass ADBE_JSDebugger extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ADBE_JSDebugger\", [\"delegate\", \"Enable\", \"Disable\"]);\n }\n}\n\nclass AddSilentPrint extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"addSilentPrint\");\n }\n}\n\nclass AddViewerPreferences extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"addViewerPreferences\");\n }\n}\n\nclass AdjustData extends Option10 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"adjustData\");\n }\n}\n\nclass AdobeExtensionLevel extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"adobeExtensionLevel\", 0, n => n >= 1 && n <= 8);\n }\n}\n\nclass Agent extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"agent\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.common = new XFAObjectArray();\n }\n}\n\nclass AlwaysEmbed extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"alwaysEmbed\");\n }\n}\n\nclass Amd extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"amd\");\n }\n}\n\nclass Area extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"area\");\n this.level = getInteger({\n data: attributes.level,\n defaultValue: 0,\n validate: n => n >= 1 && n <= 3,\n });\n this.name = getStringOption(attributes.name, [\n \"\",\n \"barcode\",\n \"coreinit\",\n \"deviceDriver\",\n \"font\",\n \"general\",\n \"layout\",\n \"merge\",\n \"script\",\n \"signature\",\n \"sourceSet\",\n \"templateCache\",\n ]);\n }\n}\n\nclass Attributes extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"attributes\", [\"preserve\", \"delegate\", \"ignore\"]);\n }\n}\n\nclass AutoSave extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"autoSave\", [\"disabled\", \"enabled\"]);\n }\n}\n\nclass Base extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"base\");\n }\n}\n\nclass BatchOutput extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"batchOutput\");\n this.format = getStringOption(attributes.format, [\n \"none\",\n \"concat\",\n \"zip\",\n \"zipCompress\",\n ]);\n }\n}\n\nclass BehaviorOverride extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"behaviorOverride\");\n }\n\n [$finalize]() {\n this[$content] = new Map(\n this[$content]\n .trim()\n .split(/\\s+/)\n .filter(x => x.includes(\":\"))\n .map(x => x.split(\":\", 2))\n );\n }\n}\n\nclass Cache extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"cache\", /* hasChildren = */ true);\n this.templateCache = null;\n }\n}\n\nclass Change extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"change\");\n }\n}\n\nclass Common extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"common\", /* hasChildren = */ true);\n this.data = null;\n this.locale = null;\n this.localeSet = null;\n this.messaging = null;\n this.suppressBanner = null;\n this.template = null;\n this.validationMessaging = null;\n this.versionControl = null;\n this.log = new XFAObjectArray();\n }\n}\n\nclass Compress extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compress\");\n this.scope = getStringOption(attributes.scope, [\"imageOnly\", \"document\"]);\n }\n}\n\nclass CompressLogicalStructure extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compressLogicalStructure\");\n }\n}\n\nclass CompressObjectStream extends Option10 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compressObjectStream\");\n }\n}\n\nclass Compression extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"compression\", /* hasChildren = */ true);\n this.compressLogicalStructure = null;\n this.compressObjectStream = null;\n this.level = null;\n this.type = null;\n }\n}\n\nclass Config extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"config\", /* hasChildren = */ true);\n this.acrobat = null;\n this.present = null;\n this.trace = null;\n this.agent = new XFAObjectArray();\n }\n}\n\nclass Conformance extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"conformance\", [\"A\", \"B\"]);\n }\n}\n\nclass ContentCopy extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"contentCopy\");\n }\n}\n\nclass Copies extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"copies\", 1, n => n >= 1);\n }\n}\n\nclass Creator extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"creator\");\n }\n}\n\nclass CurrentPage extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"currentPage\", 0, n => n >= 0);\n }\n}\n\nclass Data extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"data\", /* hasChildren = */ true);\n this.adjustData = null;\n this.attributes = null;\n this.incrementalLoad = null;\n this.outputXSL = null;\n this.range = null;\n this.record = null;\n this.startNode = null;\n this.uri = null;\n this.window = null;\n this.xsl = null;\n this.excludeNS = new XFAObjectArray();\n this.transform = new XFAObjectArray();\n }\n}\n\nclass Debug extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"debug\", /* hasChildren = */ true);\n this.uri = null;\n }\n}\n\nclass DefaultTypeface extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"defaultTypeface\");\n this.writingScript = getStringOption(attributes.writingScript, [\n \"*\",\n \"Arabic\",\n \"Cyrillic\",\n \"EastEuropeanRoman\",\n \"Greek\",\n \"Hebrew\",\n \"Japanese\",\n \"Korean\",\n \"Roman\",\n \"SimplifiedChinese\",\n \"Thai\",\n \"TraditionalChinese\",\n \"Vietnamese\",\n ]);\n }\n}\n\nclass Destination extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"destination\", [\n \"pdf\",\n \"pcl\",\n \"ps\",\n \"webClient\",\n \"zpl\",\n ]);\n }\n}\n\nclass DocumentAssembly extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"documentAssembly\");\n }\n}\n\nclass Driver extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"driver\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass DuplexOption extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"duplexOption\", [\n \"simplex\",\n \"duplexFlipLongEdge\",\n \"duplexFlipShortEdge\",\n ]);\n }\n}\n\nclass DynamicRender extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"dynamicRender\", [\"forbidden\", \"required\"]);\n }\n}\n\nclass Embed extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"embed\");\n }\n}\n\nclass Encrypt extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encrypt\");\n }\n}\n\nclass Encryption extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encryption\", /* hasChildren = */ true);\n this.encrypt = null;\n this.encryptionLevel = null;\n this.permissions = null;\n }\n}\n\nclass EncryptionLevel extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"encryptionLevel\", [\"40bit\", \"128bit\"]);\n }\n}\n\nclass Enforce extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"enforce\");\n }\n}\n\nclass Equate extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"equate\");\n\n this.force = getInteger({\n data: attributes.force,\n defaultValue: 1,\n validate: n => n === 0,\n });\n\n this.from = attributes.from || \"\";\n this.to = attributes.to || \"\";\n }\n}\n\nclass EquateRange extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"equateRange\");\n\n this.from = attributes.from || \"\";\n this.to = attributes.to || \"\";\n this._unicodeRange = attributes.unicodeRange || \"\";\n }\n\n get unicodeRange() {\n const ranges = [];\n const unicodeRegex = /U\\+([0-9a-fA-F]+)/;\n const unicodeRange = this._unicodeRange;\n for (let range of unicodeRange\n .split(\",\")\n .map(x => x.trim())\n .filter(x => !!x)) {\n range = range.split(\"-\", 2).map(x => {\n const found = x.match(unicodeRegex);\n if (!found) {\n return 0;\n }\n return parseInt(found[1], 16);\n });\n if (range.length === 1) {\n range.push(range[0]);\n }\n ranges.push(range);\n }\n return shadow(this, \"unicodeRange\", ranges);\n }\n}\n\nclass Exclude extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"exclude\");\n }\n\n [$finalize]() {\n this[$content] = this[$content]\n .trim()\n .split(/\\s+/)\n .filter(\n x =>\n x &&\n [\n \"calculate\",\n \"close\",\n \"enter\",\n \"exit\",\n \"initialize\",\n \"ready\",\n \"validate\",\n ].includes(x)\n );\n }\n}\n\nclass ExcludeNS extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"excludeNS\");\n }\n}\n\nclass FlipLabel extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"flipLabel\", [\"usePrinterSetting\", \"on\", \"off\"]);\n }\n}\n\nclass FontInfo extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"fontInfo\", /* hasChildren = */ true);\n this.embed = null;\n this.map = null;\n this.subsetBelow = null;\n this.alwaysEmbed = new XFAObjectArray();\n this.defaultTypeface = new XFAObjectArray();\n this.neverEmbed = new XFAObjectArray();\n }\n}\n\nclass FormFieldFilling extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"formFieldFilling\");\n }\n}\n\nclass GroupParent extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"groupParent\");\n }\n}\n\nclass IfEmpty extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ifEmpty\", [\n \"dataValue\",\n \"dataGroup\",\n \"ignore\",\n \"remove\",\n ]);\n }\n}\n\nclass IncludeXDPContent extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"includeXDPContent\");\n }\n}\n\nclass IncrementalLoad extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"incrementalLoad\", [\"none\", \"forwardOnly\"]);\n }\n}\n\nclass IncrementalMerge extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"incrementalMerge\");\n }\n}\n\nclass Interactive extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"interactive\");\n }\n}\n\nclass Jog extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"jog\", [\"usePrinterSetting\", \"none\", \"pageSet\"]);\n }\n}\n\nclass LabelPrinter extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"labelPrinter\", /* hasChildren = */ true);\n this.name = getStringOption(attributes.name, [\"zpl\", \"dpl\", \"ipl\", \"tcpl\"]);\n this.batchOutput = null;\n this.flipLabel = null;\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass Layout extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"layout\", [\"paginate\", \"panel\"]);\n }\n}\n\nclass Level extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"level\", 0, n => n > 0);\n }\n}\n\nclass Linearized extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"linearized\");\n }\n}\n\nclass Locale extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"locale\");\n }\n}\n\nclass LocaleSet extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"localeSet\");\n }\n}\n\nclass Log extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"log\", /* hasChildren = */ true);\n this.mode = null;\n this.threshold = null;\n this.to = null;\n this.uri = null;\n }\n}\n\n// Renamed in MapElement to avoid confusion with usual js Map.\nclass MapElement extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"map\", /* hasChildren = */ true);\n this.equate = new XFAObjectArray();\n this.equateRange = new XFAObjectArray();\n }\n}\n\nclass MediumInfo extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"mediumInfo\", /* hasChildren = */ true);\n this.map = null;\n }\n}\n\nclass Message extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"message\", /* hasChildren = */ true);\n this.msgId = null;\n this.severity = null;\n }\n}\n\nclass Messaging extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"messaging\", /* hasChildren = */ true);\n this.message = new XFAObjectArray();\n }\n}\n\nclass Mode extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"mode\", [\"append\", \"overwrite\"]);\n }\n}\n\nclass ModifyAnnots extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"modifyAnnots\");\n }\n}\n\nclass MsgId extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"msgId\", 1, n => n >= 1);\n }\n}\n\nclass NameAttr extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"nameAttr\");\n }\n}\n\nclass NeverEmbed extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"neverEmbed\");\n }\n}\n\nclass NumberOfCopies extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"numberOfCopies\", null, n => n >= 2 && n <= 5);\n }\n}\n\nclass OpenAction extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"openAction\", /* hasChildren = */ true);\n this.destination = null;\n }\n}\n\nclass Output extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"output\", /* hasChildren = */ true);\n this.to = null;\n this.type = null;\n this.uri = null;\n }\n}\n\nclass OutputBin extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"outputBin\");\n }\n}\n\nclass OutputXSL extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"outputXSL\", /* hasChildren = */ true);\n this.uri = null;\n }\n}\n\nclass Overprint extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"overprint\", [\"none\", \"both\", \"draw\", \"field\"]);\n }\n}\n\nclass Packets extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"packets\");\n }\n\n [$finalize]() {\n if (this[$content] === \"*\") {\n return;\n }\n this[$content] = this[$content]\n .trim()\n .split(/\\s+/)\n .filter(x =>\n [\"config\", \"datasets\", \"template\", \"xfdf\", \"xslt\"].includes(x)\n );\n }\n}\n\nclass PageOffset extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pageOffset\");\n this.x = getInteger({\n data: attributes.x,\n defaultValue: \"useXDCSetting\",\n validate: n => true,\n });\n this.y = getInteger({\n data: attributes.y,\n defaultValue: \"useXDCSetting\",\n validate: n => true,\n });\n }\n}\n\nclass PageRange extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pageRange\");\n }\n\n [$finalize]() {\n const numbers = this[$content]\n .trim()\n .split(/\\s+/)\n .map(x => parseInt(x, 10));\n const ranges = [];\n for (let i = 0, ii = numbers.length; i < ii; i += 2) {\n ranges.push(numbers.slice(i, i + 2));\n }\n this[$content] = ranges;\n }\n}\n\nclass Pagination extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pagination\", [\n \"simplex\",\n \"duplexShortEdge\",\n \"duplexLongEdge\",\n ]);\n }\n}\n\nclass PaginationOverride extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"paginationOverride\", [\n \"none\",\n \"forceDuplex\",\n \"forceDuplexLongEdge\",\n \"forceDuplexShortEdge\",\n \"forceSimplex\",\n ]);\n }\n}\n\nclass Part extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"part\", 1, n => false);\n }\n}\n\nclass Pcl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pcl\", /* hasChildren = */ true);\n this.name = attributes.name || \"\";\n this.batchOutput = null;\n this.fontInfo = null;\n this.jog = null;\n this.mediumInfo = null;\n this.outputBin = null;\n this.pageOffset = null;\n this.staple = null;\n this.xdc = null;\n }\n}\n\nclass Pdf extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pdf\", /* hasChildren = */ true);\n this.name = attributes.name || \"\";\n this.adobeExtensionLevel = null;\n this.batchOutput = null;\n this.compression = null;\n this.creator = null;\n this.encryption = null;\n this.fontInfo = null;\n this.interactive = null;\n this.linearized = null;\n this.openAction = null;\n this.pdfa = null;\n this.producer = null;\n this.renderPolicy = null;\n this.scriptModel = null;\n this.silentPrint = null;\n this.submitFormat = null;\n this.tagged = null;\n this.version = null;\n this.viewerPreferences = null;\n this.xdc = null;\n }\n}\n\nclass Pdfa extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pdfa\", /* hasChildren = */ true);\n this.amd = null;\n this.conformance = null;\n this.includeXDPContent = null;\n this.part = null;\n }\n}\n\nclass Permissions extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"permissions\", /* hasChildren = */ true);\n this.accessibleContent = null;\n this.change = null;\n this.contentCopy = null;\n this.documentAssembly = null;\n this.formFieldFilling = null;\n this.modifyAnnots = null;\n this.plaintextMetadata = null;\n this.print = null;\n this.printHighQuality = null;\n }\n}\n\nclass PickTrayByPDFSize extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"pickTrayByPDFSize\");\n }\n}\n\nclass Picture extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"picture\");\n }\n\n // TODO: check the validity of the picture clause.\n // See page 1150 in the spec.\n}\n\nclass PlaintextMetadata extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"plaintextMetadata\");\n }\n}\n\nclass Presence extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"presence\", [\n \"preserve\",\n \"dissolve\",\n \"dissolveStructure\",\n \"ignore\",\n \"remove\",\n ]);\n }\n}\n\nclass Present extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"present\", /* hasChildren = */ true);\n this.behaviorOverride = null;\n this.cache = null;\n this.common = null;\n this.copies = null;\n this.destination = null;\n this.incrementalMerge = null;\n this.layout = null;\n this.output = null;\n this.overprint = null;\n this.pagination = null;\n this.paginationOverride = null;\n this.script = null;\n this.validate = null;\n this.xdp = null;\n this.driver = new XFAObjectArray();\n this.labelPrinter = new XFAObjectArray();\n this.pcl = new XFAObjectArray();\n this.pdf = new XFAObjectArray();\n this.ps = new XFAObjectArray();\n this.submitUrl = new XFAObjectArray();\n this.webClient = new XFAObjectArray();\n this.zpl = new XFAObjectArray();\n }\n}\n\nclass Print extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"print\");\n }\n}\n\nclass PrintHighQuality extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printHighQuality\");\n }\n}\n\nclass PrintScaling extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printScaling\", [\"appdefault\", \"noScaling\"]);\n }\n}\n\nclass PrinterName extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"printerName\");\n }\n}\n\nclass Producer extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"producer\");\n }\n}\n\nclass Ps extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"ps\", /* hasChildren = */ true);\n this.name = attributes.name || \"\";\n this.batchOutput = null;\n this.fontInfo = null;\n this.jog = null;\n this.mediumInfo = null;\n this.outputBin = null;\n this.staple = null;\n this.xdc = null;\n }\n}\n\nclass Range extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"range\");\n }\n\n [$finalize]() {\n this[$content] = this[$content]\n .trim()\n .split(/\\s*,\\s*/, 2)\n .map(range => range.split(\"-\").map(x => parseInt(x.trim(), 10)))\n .filter(range => range.every(x => !isNaN(x)))\n .map(range => {\n if (range.length === 1) {\n range.push(range[0]);\n }\n return range;\n });\n }\n}\n\nclass Record extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"record\");\n }\n\n [$finalize]() {\n this[$content] = this[$content].trim();\n const n = parseInt(this[$content], 10);\n if (!isNaN(n) && n >= 0) {\n this[$content] = n;\n }\n }\n}\n\nclass Relevant extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"relevant\");\n }\n\n [$finalize]() {\n this[$content] = this[$content].trim().split(/\\s+/);\n }\n}\n\nclass Rename extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"rename\");\n }\n\n [$finalize]() {\n this[$content] = this[$content].trim();\n // String must be a XFA name: same as XML one except that there\n // is no colon.\n if (\n this[$content].toLowerCase().startsWith(\"xml\") ||\n new RegExp(\"[\\\\p{L}_][\\\\p{L}\\\\d._\\\\p{M}-]*\", \"u\").test(this[$content])\n ) {\n warn(\"XFA - Rename: invalid XFA name\");\n }\n }\n}\n\nclass RenderPolicy extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"renderPolicy\", [\"server\", \"client\"]);\n }\n}\n\nclass RunScripts extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"runScripts\", [\"both\", \"client\", \"none\", \"server\"]);\n }\n}\n\nclass Script extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"script\", /* hasChildren = */ true);\n this.currentPage = null;\n this.exclude = null;\n this.runScripts = null;\n }\n}\n\nclass ScriptModel extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"scriptModel\", [\"XFA\", \"none\"]);\n }\n}\n\nclass Severity extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"severity\", [\n \"ignore\",\n \"error\",\n \"information\",\n \"trace\",\n \"warning\",\n ]);\n }\n}\n\nclass SilentPrint extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"silentPrint\", /* hasChildren = */ true);\n this.addSilentPrint = null;\n this.printerName = null;\n }\n}\n\nclass Staple extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"staple\");\n this.mode = getStringOption(attributes.mode, [\n \"usePrinterSetting\",\n \"on\",\n \"off\",\n ]);\n }\n}\n\nclass StartNode extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"startNode\");\n }\n}\n\nclass StartPage extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"startPage\", 0, n => true);\n }\n}\n\nclass SubmitFormat extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"submitFormat\", [\n \"html\",\n \"delegate\",\n \"fdf\",\n \"xml\",\n \"pdf\",\n ]);\n }\n}\n\nclass SubmitUrl extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"submitUrl\");\n }\n}\n\nclass SubsetBelow extends IntegerObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"subsetBelow\", 100, n => n >= 0 && n <= 100);\n }\n}\n\nclass SuppressBanner extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"suppressBanner\");\n }\n}\n\nclass Tagged extends Option01 {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"tagged\");\n }\n}\n\nclass Template extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"template\", /* hasChildren = */ true);\n this.base = null;\n this.relevant = null;\n this.startPage = null;\n this.uri = null;\n this.xsl = null;\n }\n}\n\nclass Threshold extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"threshold\", [\n \"trace\",\n \"error\",\n \"information\",\n \"warning\",\n ]);\n }\n}\n\nclass To extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"to\", [\n \"null\",\n \"memory\",\n \"stderr\",\n \"stdout\",\n \"system\",\n \"uri\",\n ]);\n }\n}\n\nclass TemplateCache extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"templateCache\");\n this.maxEntries = getInteger({\n data: attributes.maxEntries,\n defaultValue: 5,\n validate: n => n >= 0,\n });\n }\n}\n\nclass Trace extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"trace\", /* hasChildren = */ true);\n this.area = new XFAObjectArray();\n }\n}\n\nclass Transform extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"transform\", /* hasChildren = */ true);\n this.groupParent = null;\n this.ifEmpty = null;\n this.nameAttr = null;\n this.picture = null;\n this.presence = null;\n this.rename = null;\n this.whitespace = null;\n }\n}\n\nclass Type extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"type\", [\n \"none\",\n \"ascii85\",\n \"asciiHex\",\n \"ccittfax\",\n \"flate\",\n \"lzw\",\n \"runLength\",\n \"native\",\n \"xdp\",\n \"mergedXDP\",\n ]);\n }\n}\n\nclass Uri extends StringObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"uri\");\n }\n}\n\nclass Validate extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validate\", [\n \"preSubmit\",\n \"prePrint\",\n \"preExecute\",\n \"preSave\",\n ]);\n }\n}\n\nclass ValidateApprovalSignatures extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validateApprovalSignatures\");\n }\n\n [$finalize]() {\n this[$content] = this[$content]\n .trim()\n .split(/\\s+/)\n .filter(x => [\"docReady\", \"postSign\"].includes(x));\n }\n}\n\nclass ValidationMessaging extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"validationMessaging\", [\n \"allMessagesIndividually\",\n \"allMessagesTogether\",\n \"firstMessageOnly\",\n \"noMessages\",\n ]);\n }\n}\n\nclass Version extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"version\", [\"1.7\", \"1.6\", \"1.5\", \"1.4\", \"1.3\", \"1.2\"]);\n }\n}\n\nclass VersionControl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"VersionControl\");\n this.outputBelow = getStringOption(attributes.outputBelow, [\n \"warn\",\n \"error\",\n \"update\",\n ]);\n this.sourceAbove = getStringOption(attributes.sourceAbove, [\n \"warn\",\n \"error\",\n ]);\n this.sourceBelow = getStringOption(attributes.sourceBelow, [\n \"update\",\n \"maintain\",\n ]);\n }\n}\n\nclass ViewerPreferences extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"viewerPreferences\", /* hasChildren = */ true);\n this.ADBE_JSConsole = null;\n this.ADBE_JSDebugger = null;\n this.addViewerPreferences = null;\n this.duplexOption = null;\n this.enforce = null;\n this.numberOfCopies = null;\n this.pageRange = null;\n this.pickTrayByPDFSize = null;\n this.printScaling = null;\n }\n}\n\nclass WebClient extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"webClient\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass Whitespace extends OptionObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"whitespace\", [\n \"preserve\",\n \"ltrim\",\n \"normalize\",\n \"rtrim\",\n \"trim\",\n ]);\n }\n}\n\nclass Window extends ContentObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"window\");\n }\n\n [$finalize]() {\n const pair = this[$content]\n .trim()\n .split(/\\s*,\\s*/, 2)\n .map(x => parseInt(x, 10));\n if (pair.some(x => isNaN(x))) {\n this[$content] = [0, 0];\n return;\n }\n if (pair.length === 1) {\n pair.push(pair[0]);\n }\n this[$content] = pair;\n }\n}\n\nclass Xdc extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xdc\", /* hasChildren = */ true);\n this.uri = new XFAObjectArray();\n this.xsl = new XFAObjectArray();\n }\n}\n\nclass Xdp extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xdp\", /* hasChildren = */ true);\n this.packets = null;\n }\n}\n\nclass Xsl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"xsl\", /* hasChildren = */ true);\n this.debug = null;\n this.uri = null;\n }\n}\n\nclass Zpl extends XFAObject {\n constructor(attributes) {\n super(CONFIG_NS_ID, \"zpl\", /* hasChildren = */ true);\n this.name = attributes.name ? attributes.name.trim() : \"\";\n this.batchOutput = null;\n this.flipLabel = null;\n this.fontInfo = null;\n this.xdc = null;\n }\n}\n\nclass ConfigNamespace {\n static [$buildXFAObject](name, attributes) {\n if (ConfigNamespace.hasOwnProperty(name)) {\n return ConfigNamespace[name](attributes);\n }\n return undefined;\n }\n\n static acrobat(attrs) {\n return new Acrobat(attrs);\n }\n\n static acrobat7(attrs) {\n return new Acrobat7(attrs);\n }\n\n static ADBE_JSConsole(attrs) {\n return new ADBE_JSConsole(attrs);\n }\n\n static ADBE_JSDebugger(attrs) {\n return new ADBE_JSDebugger(attrs);\n }\n\n static addSilentPrint(attrs) {\n return new AddSilentPrint(attrs);\n }\n\n static addViewerPreferences(attrs) {\n return new AddViewerPreferences(attrs);\n }\n\n static adjustData(attrs) {\n return new AdjustData(attrs);\n }\n\n static adobeExtensionLevel(attrs) {\n return new AdobeExtensionLevel(attrs);\n }\n\n static agent(attrs) {\n return new Agent(attrs);\n }\n\n static alwaysEmbed(attrs) {\n return new AlwaysEmbed(attrs);\n }\n\n static amd(attrs) {\n return new Amd(attrs);\n }\n\n static area(attrs) {\n return new Area(attrs);\n }\n\n static attributes(attrs) {\n return new Attributes(attrs);\n }\n\n static autoSave(attrs) {\n return new AutoSave(attrs);\n }\n\n static base(attrs) {\n return new Base(attrs);\n }\n\n static batchOutput(attrs) {\n return new BatchOutput(attrs);\n }\n\n static behaviorOverride(attrs) {\n return new BehaviorOverride(attrs);\n }\n\n static cache(attrs) {\n return new Cache(attrs);\n }\n\n static change(attrs) {\n return new Change(attrs);\n }\n\n static common(attrs) {\n return new Common(attrs);\n }\n\n static compress(attrs) {\n return new Compress(attrs);\n }\n\n static compressLogicalStructure(attrs) {\n return new CompressLogicalStructure(attrs);\n }\n\n static compressObjectStream(attrs) {\n return new CompressObjectStream(attrs);\n }\n\n static compression(attrs) {\n return new Compression(attrs);\n }\n\n static config(attrs) {\n return new Config(attrs);\n }\n\n static conformance(attrs) {\n return new Conformance(attrs);\n }\n\n static contentCopy(attrs) {\n return new ContentCopy(attrs);\n }\n\n static copies(attrs) {\n return new Copies(attrs);\n }\n\n static creator(attrs) {\n return new Creator(attrs);\n }\n\n static currentPage(attrs) {\n return new CurrentPage(attrs);\n }\n\n static data(attrs) {\n return new Data(attrs);\n }\n\n static debug(attrs) {\n return new Debug(attrs);\n }\n\n static defaultTypeface(attrs) {\n return new DefaultTypeface(attrs);\n }\n\n static destination(attrs) {\n return new Destination(attrs);\n }\n\n static documentAssembly(attrs) {\n return new DocumentAssembly(attrs);\n }\n\n static driver(attrs) {\n return new Driver(attrs);\n }\n\n static duplexOption(attrs) {\n return new DuplexOption(attrs);\n }\n\n static dynamicRender(attrs) {\n return new DynamicRender(attrs);\n }\n\n static embed(attrs) {\n return new Embed(attrs);\n }\n\n static encrypt(attrs) {\n return new Encrypt(attrs);\n }\n\n static encryption(attrs) {\n return new Encryption(attrs);\n }\n\n static encryptionLevel(attrs) {\n return new EncryptionLevel(attrs);\n }\n\n static enforce(attrs) {\n return new Enforce(attrs);\n }\n\n static equate(attrs) {\n return new Equate(attrs);\n }\n\n static equateRange(attrs) {\n return new EquateRange(attrs);\n }\n\n static exclude(attrs) {\n return new Exclude(attrs);\n }\n\n static excludeNS(attrs) {\n return new ExcludeNS(attrs);\n }\n\n static flipLabel(attrs) {\n return new FlipLabel(attrs);\n }\n\n static fontInfo(attrs) {\n return new FontInfo(attrs);\n }\n\n static formFieldFilling(attrs) {\n return new FormFieldFilling(attrs);\n }\n\n static groupParent(attrs) {\n return new GroupParent(attrs);\n }\n\n static ifEmpty(attrs) {\n return new IfEmpty(attrs);\n }\n\n static includeXDPContent(attrs) {\n return new IncludeXDPContent(attrs);\n }\n\n static incrementalLoad(attrs) {\n return new IncrementalLoad(attrs);\n }\n\n static incrementalMerge(attrs) {\n return new IncrementalMerge(attrs);\n }\n\n static interactive(attrs) {\n return new Interactive(attrs);\n }\n\n static jog(attrs) {\n return new Jog(attrs);\n }\n\n static labelPrinter(attrs) {\n return new LabelPrinter(attrs);\n }\n\n static layout(attrs) {\n return new Layout(attrs);\n }\n\n static level(attrs) {\n return new Level(attrs);\n }\n\n static linearized(attrs) {\n return new Linearized(attrs);\n }\n\n static locale(attrs) {\n return new Locale(attrs);\n }\n\n static localeSet(attrs) {\n return new LocaleSet(attrs);\n }\n\n static log(attrs) {\n return new Log(attrs);\n }\n\n static map(attrs) {\n return new MapElement(attrs);\n }\n\n static mediumInfo(attrs) {\n return new MediumInfo(attrs);\n }\n\n static message(attrs) {\n return new Message(attrs);\n }\n\n static messaging(attrs) {\n return new Messaging(attrs);\n }\n\n static mode(attrs) {\n return new Mode(attrs);\n }\n\n static modifyAnnots(attrs) {\n return new ModifyAnnots(attrs);\n }\n\n static msgId(attrs) {\n return new MsgId(attrs);\n }\n\n static nameAttr(attrs) {\n return new NameAttr(attrs);\n }\n\n static neverEmbed(attrs) {\n return new NeverEmbed(attrs);\n }\n\n static numberOfCopies(attrs) {\n return new NumberOfCopies(attrs);\n }\n\n static openAction(attrs) {\n return new OpenAction(attrs);\n }\n\n static output(attrs) {\n return new Output(attrs);\n }\n\n static outputBin(attrs) {\n return new OutputBin(attrs);\n }\n\n static outputXSL(attrs) {\n return new OutputXSL(attrs);\n }\n\n static overprint(attrs) {\n return new Overprint(attrs);\n }\n\n static packets(attrs) {\n return new Packets(attrs);\n }\n\n static pageOffset(attrs) {\n return new PageOffset(attrs);\n }\n\n static pageRange(attrs) {\n return new PageRange(attrs);\n }\n\n static pagination(attrs) {\n return new Pagination(attrs);\n }\n\n static paginationOverride(attrs) {\n return new PaginationOverride(attrs);\n }\n\n static part(attrs) {\n return new Part(attrs);\n }\n\n static pcl(attrs) {\n return new Pcl(attrs);\n }\n\n static pdf(attrs) {\n return new Pdf(attrs);\n }\n\n static pdfa(attrs) {\n return new Pdfa(attrs);\n }\n\n static permissions(attrs) {\n return new Permissions(attrs);\n }\n\n static pickTrayByPDFSize(attrs) {\n return new PickTrayByPDFSize(attrs);\n }\n\n static picture(attrs) {\n return new Picture(attrs);\n }\n\n static plaintextMetadata(attrs) {\n return new PlaintextMetadata(attrs);\n }\n\n static presence(attrs) {\n return new Presence(attrs);\n }\n\n static present(attrs) {\n return new Present(attrs);\n }\n\n static print(attrs) {\n return new Print(attrs);\n }\n\n static printHighQuality(attrs) {\n return new PrintHighQuality(attrs);\n }\n\n static printScaling(attrs) {\n return new PrintScaling(attrs);\n }\n\n static printerName(attrs) {\n return new PrinterName(attrs);\n }\n\n static producer(attrs) {\n return new Producer(attrs);\n }\n\n static ps(attrs) {\n return new Ps(attrs);\n }\n\n static range(attrs) {\n return new Range(attrs);\n }\n\n static record(attrs) {\n return new Record(attrs);\n }\n\n static relevant(attrs) {\n return new Relevant(attrs);\n }\n\n static rename(attrs) {\n return new Rename(attrs);\n }\n\n static renderPolicy(attrs) {\n return new RenderPolicy(attrs);\n }\n\n static runScripts(attrs) {\n return new RunScripts(attrs);\n }\n\n static script(attrs) {\n return new Script(attrs);\n }\n\n static scriptModel(attrs) {\n return new ScriptModel(attrs);\n }\n\n static severity(attrs) {\n return new Severity(attrs);\n }\n\n static silentPrint(attrs) {\n return new SilentPrint(attrs);\n }\n\n static staple(attrs) {\n return new Staple(attrs);\n }\n\n static startNode(attrs) {\n return new StartNode(attrs);\n }\n\n static startPage(attrs) {\n return new StartPage(attrs);\n }\n\n static submitFormat(attrs) {\n return new SubmitFormat(attrs);\n }\n\n static submitUrl(attrs) {\n return new SubmitUrl(attrs);\n }\n\n static subsetBelow(attrs) {\n return new SubsetBelow(attrs);\n }\n\n static suppressBanner(attrs) {\n return new SuppressBanner(attrs);\n }\n\n static tagged(attrs) {\n return new Tagged(attrs);\n }\n\n static template(attrs) {\n return new Template(attrs);\n }\n\n static templateCache(attrs) {\n return new TemplateCache(attrs);\n }\n\n static threshold(attrs) {\n return new Threshold(attrs);\n }\n\n static to(attrs) {\n return new To(attrs);\n }\n\n static trace(attrs) {\n return new Trace(attrs);\n }\n\n static transform(attrs) {\n return new Transform(attrs);\n }\n\n static type(attrs) {\n return new Type(attrs);\n }\n\n static uri(attrs) {\n return new Uri(attrs);\n }\n\n static validate(attrs) {\n return new Validate(attrs);\n }\n\n static validateApprovalSignatures(attrs) {\n return new ValidateApprovalSignatures(attrs);\n }\n\n static validationMessaging(attrs) {\n return new ValidationMessaging(attrs);\n }\n\n static version(attrs) {\n return new Version(attrs);\n }\n\n static versionControl(attrs) {\n return new VersionControl(attrs);\n }\n\n static viewerPreferences(attrs) {\n return new ViewerPreferences(attrs);\n }\n\n static webClient(attrs) {\n return new WebClient(attrs);\n }\n\n static whitespace(attrs) {\n return new Whitespace(attrs);\n }\n\n static window(attrs) {\n return new Window(attrs);\n }\n\n static xdc(attrs) {\n return new Xdc(attrs);\n }\n\n static xdp(attrs) {\n return new Xdp(attrs);\n }\n\n static xsl(attrs) {\n return new Xsl(attrs);\n }\n\n static zpl(attrs) {\n return new Zpl(attrs);\n }\n}\n\nexport { ConfigNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { StringObject, XFAObject, XFAObjectArray } from \"./xfa_object.js\";\n\nconst CONNECTION_SET_NS_ID = NamespaceIds.connectionSet.id;\n\nclass ConnectionSet extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"connectionSet\", /* hasChildren = */ true);\n this.wsdlConnection = new XFAObjectArray();\n this.xmlConnection = new XFAObjectArray();\n this.xsdConnection = new XFAObjectArray();\n }\n}\n\nclass EffectiveInputPolicy extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"effectiveInputPolicy\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass EffectiveOutputPolicy extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"effectiveOutputPolicy\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Operation extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"operation\");\n this.id = attributes.id || \"\";\n this.input = attributes.input || \"\";\n this.name = attributes.name || \"\";\n this.output = attributes.output || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass RootElement extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"rootElement\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass SoapAction extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"soapAction\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass SoapAddress extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"soapAddress\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass Uri extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"uri\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass WsdlAddress extends StringObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"wsdlAddress\");\n this.id = attributes.id || \"\";\n this.name = attributes.name || \"\";\n this.use = attributes.use || \"\";\n this.usehref = attributes.usehref || \"\";\n }\n}\n\nclass WsdlConnection extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"wsdlConnection\", /* hasChildren = */ true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.effectiveInputPolicy = null;\n this.effectiveOutputPolicy = null;\n this.operation = null;\n this.soapAction = null;\n this.soapAddress = null;\n this.wsdlAddress = null;\n }\n}\n\nclass XmlConnection extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"xmlConnection\", /* hasChildren = */ true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.uri = null;\n }\n}\n\nclass XsdConnection extends XFAObject {\n constructor(attributes) {\n super(CONNECTION_SET_NS_ID, \"xsdConnection\", /* hasChildren = */ true);\n this.dataDescription = attributes.dataDescription || \"\";\n this.name = attributes.name || \"\";\n this.rootElement = null;\n this.uri = null;\n }\n}\n\nclass ConnectionSetNamespace {\n static [$buildXFAObject](name, attributes) {\n if (ConnectionSetNamespace.hasOwnProperty(name)) {\n return ConnectionSetNamespace[name](attributes);\n }\n return undefined;\n }\n\n static connectionSet(attrs) {\n return new ConnectionSet(attrs);\n }\n\n static effectiveInputPolicy(attrs) {\n return new EffectiveInputPolicy(attrs);\n }\n\n static effectiveOutputPolicy(attrs) {\n return new EffectiveOutputPolicy(attrs);\n }\n\n static operation(attrs) {\n return new Operation(attrs);\n }\n\n static rootElement(attrs) {\n return new RootElement(attrs);\n }\n\n static soapAction(attrs) {\n return new SoapAction(attrs);\n }\n\n static soapAddress(attrs) {\n return new SoapAddress(attrs);\n }\n\n static uri(attrs) {\n return new Uri(attrs);\n }\n\n static wsdlAddress(attrs) {\n return new WsdlAddress(attrs);\n }\n\n static wsdlConnection(attrs) {\n return new WsdlConnection(attrs);\n }\n\n static xmlConnection(attrs) {\n return new XmlConnection(attrs);\n }\n\n static xsdConnection(attrs) {\n return new XsdConnection(attrs);\n }\n}\n\nexport { ConnectionSetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $isNsAgnostic,\n $namespaceId,\n $nodeName,\n $onChild,\n} from \"./symbol_utils.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { XFAObject, XmlObject } from \"./xfa_object.js\";\n\nconst DATASETS_NS_ID = NamespaceIds.datasets.id;\n\nclass Data extends XmlObject {\n constructor(attributes) {\n super(DATASETS_NS_ID, \"data\", attributes);\n }\n\n [$isNsAgnostic]() {\n return true;\n }\n}\n\nclass Datasets extends XFAObject {\n constructor(attributes) {\n super(DATASETS_NS_ID, \"datasets\", /* hasChildren = */ true);\n this.data = null;\n this.Signature = null;\n }\n\n [$onChild](child) {\n const name = child[$nodeName];\n if (\n (name === \"data\" && child[$namespaceId] === DATASETS_NS_ID) ||\n (name === \"Signature\" &&\n child[$namespaceId] === NamespaceIds.signature.id)\n ) {\n this[name] = child;\n }\n this[$appendChild](child);\n }\n}\n\nclass DatasetsNamespace {\n static [$buildXFAObject](name, attributes) {\n if (DatasetsNamespace.hasOwnProperty(name)) {\n return DatasetsNamespace[name](attributes);\n }\n return undefined;\n }\n\n static datasets(attributes) {\n return new Datasets(attributes);\n }\n\n static data(attributes) {\n return new Data(attributes);\n }\n}\n\nexport { DatasetsNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n ContentObject,\n StringObject,\n XFAObject,\n XFAObjectArray,\n} from \"./xfa_object.js\";\nimport { getInteger, getStringOption } from \"./utils.js\";\n\nconst LOCALE_SET_NS_ID = NamespaceIds.localeSet.id;\n\nclass CalendarSymbols extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"calendarSymbols\", /* hasChildren = */ true);\n this.name = \"gregorian\";\n this.dayNames = new XFAObjectArray(2);\n this.eraNames = null;\n this.meridiemNames = null;\n this.monthNames = new XFAObjectArray(2);\n }\n}\n\nclass CurrencySymbol extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"currencySymbol\");\n this.name = getStringOption(attributes.name, [\n \"symbol\",\n \"isoname\",\n \"decimal\",\n ]);\n }\n}\n\nclass CurrencySymbols extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"currencySymbols\", /* hasChildren = */ true);\n this.currencySymbol = new XFAObjectArray(3);\n }\n}\n\nclass DatePattern extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"datePattern\");\n this.name = getStringOption(attributes.name, [\n \"full\",\n \"long\",\n \"med\",\n \"short\",\n ]);\n }\n}\n\nclass DatePatterns extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"datePatterns\", /* hasChildren = */ true);\n this.datePattern = new XFAObjectArray(4);\n }\n}\n\nclass DateTimeSymbols extends ContentObject {\n // TODO: spec unclear about the format of the array.\n\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"dateTimeSymbols\");\n }\n}\n\nclass Day extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"day\");\n }\n}\n\nclass DayNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"dayNames\", /* hasChildren = */ true);\n this.abbr = getInteger({\n data: attributes.abbr,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.day = new XFAObjectArray(7);\n }\n}\n\nclass Era extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"era\");\n }\n}\n\nclass EraNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"eraNames\", /* hasChildren = */ true);\n this.era = new XFAObjectArray(2);\n }\n}\n\nclass Locale extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"locale\", /* hasChildren = */ true);\n this.desc = attributes.desc || \"\";\n this.name = \"isoname\";\n this.calendarSymbols = null;\n this.currencySymbols = null;\n this.datePatterns = null;\n this.dateTimeSymbols = null;\n this.numberPatterns = null;\n this.numberSymbols = null;\n this.timePatterns = null;\n this.typeFaces = null;\n }\n}\n\nclass LocaleSet extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"localeSet\", /* hasChildren = */ true);\n this.locale = new XFAObjectArray();\n }\n}\n\nclass Meridiem extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"meridiem\");\n }\n}\n\nclass MeridiemNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"meridiemNames\", /* hasChildren = */ true);\n this.meridiem = new XFAObjectArray(2);\n }\n}\n\nclass Month extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"month\");\n }\n}\n\nclass MonthNames extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"monthNames\", /* hasChildren = */ true);\n this.abbr = getInteger({\n data: attributes.abbr,\n defaultValue: 0,\n validate: x => x === 1,\n });\n this.month = new XFAObjectArray(12);\n }\n}\n\nclass NumberPattern extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberPattern\");\n this.name = getStringOption(attributes.name, [\n \"full\",\n \"long\",\n \"med\",\n \"short\",\n ]);\n }\n}\n\nclass NumberPatterns extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberPatterns\", /* hasChildren = */ true);\n this.numberPattern = new XFAObjectArray(4);\n }\n}\n\nclass NumberSymbol extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberSymbol\");\n this.name = getStringOption(attributes.name, [\n \"decimal\",\n \"grouping\",\n \"percent\",\n \"minus\",\n \"zero\",\n ]);\n }\n}\n\nclass NumberSymbols extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"numberSymbols\", /* hasChildren = */ true);\n this.numberSymbol = new XFAObjectArray(5);\n }\n}\n\nclass TimePattern extends StringObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"timePattern\");\n this.name = getStringOption(attributes.name, [\n \"full\",\n \"long\",\n \"med\",\n \"short\",\n ]);\n }\n}\n\nclass TimePatterns extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"timePatterns\", /* hasChildren = */ true);\n this.timePattern = new XFAObjectArray(4);\n }\n}\n\nclass TypeFace extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"typeFace\", /* hasChildren = */ true);\n this.name = attributes.name | \"\";\n }\n}\n\nclass TypeFaces extends XFAObject {\n constructor(attributes) {\n super(LOCALE_SET_NS_ID, \"typeFaces\", /* hasChildren = */ true);\n this.typeFace = new XFAObjectArray();\n }\n}\n\nclass LocaleSetNamespace {\n static [$buildXFAObject](name, attributes) {\n if (LocaleSetNamespace.hasOwnProperty(name)) {\n return LocaleSetNamespace[name](attributes);\n }\n return undefined;\n }\n\n static calendarSymbols(attrs) {\n return new CalendarSymbols(attrs);\n }\n\n static currencySymbol(attrs) {\n return new CurrencySymbol(attrs);\n }\n\n static currencySymbols(attrs) {\n return new CurrencySymbols(attrs);\n }\n\n static datePattern(attrs) {\n return new DatePattern(attrs);\n }\n\n static datePatterns(attrs) {\n return new DatePatterns(attrs);\n }\n\n static dateTimeSymbols(attrs) {\n return new DateTimeSymbols(attrs);\n }\n\n static day(attrs) {\n return new Day(attrs);\n }\n\n static dayNames(attrs) {\n return new DayNames(attrs);\n }\n\n static era(attrs) {\n return new Era(attrs);\n }\n\n static eraNames(attrs) {\n return new EraNames(attrs);\n }\n\n static locale(attrs) {\n return new Locale(attrs);\n }\n\n static localeSet(attrs) {\n return new LocaleSet(attrs);\n }\n\n static meridiem(attrs) {\n return new Meridiem(attrs);\n }\n\n static meridiemNames(attrs) {\n return new MeridiemNames(attrs);\n }\n\n static month(attrs) {\n return new Month(attrs);\n }\n\n static monthNames(attrs) {\n return new MonthNames(attrs);\n }\n\n static numberPattern(attrs) {\n return new NumberPattern(attrs);\n }\n\n static numberPatterns(attrs) {\n return new NumberPatterns(attrs);\n }\n\n static numberSymbol(attrs) {\n return new NumberSymbol(attrs);\n }\n\n static numberSymbols(attrs) {\n return new NumberSymbols(attrs);\n }\n\n static timePattern(attrs) {\n return new TimePattern(attrs);\n }\n\n static timePatterns(attrs) {\n return new TimePatterns(attrs);\n }\n\n static typeFace(attrs) {\n return new TypeFace(attrs);\n }\n\n static typeFaces(attrs) {\n return new TypeFaces(attrs);\n }\n}\n\nexport { LocaleSetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nconst SIGNATURE_NS_ID = NamespaceIds.signature.id;\n\nclass Signature extends XFAObject {\n constructor(attributes) {\n super(SIGNATURE_NS_ID, \"signature\", /* hasChildren = */ true);\n }\n}\n\nclass SignatureNamespace {\n static [$buildXFAObject](name, attributes) {\n if (SignatureNamespace.hasOwnProperty(name)) {\n return SignatureNamespace[name](attributes);\n }\n return undefined;\n }\n\n static signature(attributes) {\n return new Signature(attributes);\n }\n}\n\nexport { SignatureNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nconst STYLESHEET_NS_ID = NamespaceIds.stylesheet.id;\n\nclass Stylesheet extends XFAObject {\n constructor(attributes) {\n super(STYLESHEET_NS_ID, \"stylesheet\", /* hasChildren = */ true);\n }\n}\n\nclass StylesheetNamespace {\n static [$buildXFAObject](name, attributes) {\n if (StylesheetNamespace.hasOwnProperty(name)) {\n return StylesheetNamespace[name](attributes);\n }\n return undefined;\n }\n\n static stylesheet(attributes) {\n return new Stylesheet(attributes);\n }\n}\n\nexport { StylesheetNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport { $namespaceId, $nodeName, $onChildCheck } from \"./symbol_utils.js\";\nimport { XFAObject, XFAObjectArray } from \"./xfa_object.js\";\n\nconst XDP_NS_ID = NamespaceIds.xdp.id;\n\nclass Xdp extends XFAObject {\n constructor(attributes) {\n super(XDP_NS_ID, \"xdp\", /* hasChildren = */ true);\n this.uuid = attributes.uuid || \"\";\n this.timeStamp = attributes.timeStamp || \"\";\n this.config = null;\n this.connectionSet = null;\n this.datasets = null;\n this.localeSet = null;\n this.stylesheet = new XFAObjectArray();\n this.template = null;\n }\n\n [$onChildCheck](child) {\n const ns = NamespaceIds[child[$nodeName]];\n return ns && child[$namespaceId] === ns.id;\n }\n}\n\nclass XdpNamespace {\n static [$buildXFAObject](name, attributes) {\n if (XdpNamespace.hasOwnProperty(name)) {\n return XdpNamespace[name](attributes);\n }\n return undefined;\n }\n\n static xdp(attributes) {\n return new Xdp(attributes);\n }\n}\n\nexport { XdpNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $childrenToHTML,\n $clean,\n $content,\n $extra,\n $getChildren,\n $getParent,\n $globalData,\n $nodeName,\n $onText,\n $pushGlyphs,\n $text,\n $toHTML,\n} from \"./symbol_utils.js\";\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n fixTextIndent,\n fixURL,\n measureToString,\n setFontFamily,\n} from \"./html_utils.js\";\nimport { getMeasurement, HTMLResult, stripQuotes } from \"./utils.js\";\nimport { XmlObject } from \"./xfa_object.js\";\n\nconst XHTML_NS_ID = NamespaceIds.xhtml.id;\nconst $richText = Symbol();\n\nconst VALID_STYLES = new Set([\n \"color\",\n \"font\",\n \"font-family\",\n \"font-size\",\n \"font-stretch\",\n \"font-style\",\n \"font-weight\",\n \"margin\",\n \"margin-bottom\",\n \"margin-left\",\n \"margin-right\",\n \"margin-top\",\n \"letter-spacing\",\n \"line-height\",\n \"orphans\",\n \"page-break-after\",\n \"page-break-before\",\n \"page-break-inside\",\n \"tab-interval\",\n \"tab-stop\",\n \"text-align\",\n \"text-decoration\",\n \"text-indent\",\n \"vertical-align\",\n \"widows\",\n \"kerning-mode\",\n \"xfa-font-horizontal-scale\",\n \"xfa-font-vertical-scale\",\n \"xfa-spacerun\",\n \"xfa-tab-stops\",\n]);\n\nconst StyleMapping = new Map([\n [\"page-break-after\", \"breakAfter\"],\n [\"page-break-before\", \"breakBefore\"],\n [\"page-break-inside\", \"breakInside\"],\n [\"kerning-mode\", value => (value === \"none\" ? \"none\" : \"normal\")],\n [\n \"xfa-font-horizontal-scale\",\n value =>\n `scaleX(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`,\n ],\n [\n \"xfa-font-vertical-scale\",\n value =>\n `scaleY(${Math.max(0, Math.min(parseInt(value) / 100)).toFixed(2)})`,\n ],\n [\"xfa-spacerun\", \"\"],\n [\"xfa-tab-stops\", \"\"],\n [\n \"font-size\",\n (value, original) => {\n value = original.fontSize = getMeasurement(value);\n return measureToString(0.99 * value);\n },\n ],\n [\"letter-spacing\", value => measureToString(getMeasurement(value))],\n [\"line-height\", value => measureToString(getMeasurement(value))],\n [\"margin\", value => measureToString(getMeasurement(value))],\n [\"margin-bottom\", value => measureToString(getMeasurement(value))],\n [\"margin-left\", value => measureToString(getMeasurement(value))],\n [\"margin-right\", value => measureToString(getMeasurement(value))],\n [\"margin-top\", value => measureToString(getMeasurement(value))],\n [\"text-indent\", value => measureToString(getMeasurement(value))],\n [\"font-family\", value => value],\n [\"vertical-align\", value => measureToString(getMeasurement(value))],\n]);\n\nconst spacesRegExp = /\\s+/g;\nconst crlfRegExp = /[\\r\\n]+/g;\nconst crlfForRichTextRegExp = /\\r\\n?/g;\n\nfunction mapStyle(styleStr, node, richText) {\n const style = Object.create(null);\n if (!styleStr) {\n return style;\n }\n const original = Object.create(null);\n for (const [key, value] of styleStr.split(\";\").map(s => s.split(\":\", 2))) {\n const mapping = StyleMapping.get(key);\n if (mapping === \"\") {\n continue;\n }\n let newValue = value;\n if (mapping) {\n newValue =\n typeof mapping === \"string\" ? mapping : mapping(value, original);\n }\n if (key.endsWith(\"scale\")) {\n style.transform = style.transform\n ? `${style[key]} ${newValue}`\n : newValue;\n } else {\n style[key.replaceAll(/-([a-zA-Z])/g, (_, x) => x.toUpperCase())] =\n newValue;\n }\n }\n\n if (style.fontFamily) {\n setFontFamily(\n {\n typeface: style.fontFamily,\n weight: style.fontWeight || \"normal\",\n posture: style.fontStyle || \"normal\",\n size: original.fontSize || 0,\n },\n node,\n node[$globalData].fontFinder,\n style\n );\n }\n\n if (\n richText &&\n style.verticalAlign &&\n style.verticalAlign !== \"0px\" &&\n style.fontSize\n ) {\n // A non-zero verticalAlign means that we've a sub/super-script and\n // consequently the font size must be decreased.\n // https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf#G11.2097514\n // And the two following factors to position the scripts have been\n // found here:\n // https://en.wikipedia.org/wiki/Subscript_and_superscript#Desktop_publishing\n const SUB_SUPER_SCRIPT_FACTOR = 0.583;\n const VERTICAL_FACTOR = 0.333;\n const fontSize = getMeasurement(style.fontSize);\n style.fontSize = measureToString(fontSize * SUB_SUPER_SCRIPT_FACTOR);\n style.verticalAlign = measureToString(\n Math.sign(getMeasurement(style.verticalAlign)) *\n fontSize *\n VERTICAL_FACTOR\n );\n }\n\n if (richText && style.fontSize) {\n style.fontSize = `calc(${style.fontSize} * var(--scale-factor))`;\n }\n\n fixTextIndent(style);\n return style;\n}\n\nfunction checkStyle(node) {\n if (!node.style) {\n return \"\";\n }\n\n // Remove any non-allowed keys.\n return node.style\n .trim()\n .split(/\\s*;\\s*/)\n .filter(s => !!s)\n .map(s => s.split(/\\s*:\\s*/, 2))\n .filter(([key, value]) => {\n if (key === \"font-family\") {\n node[$globalData].usedTypefaces.add(value);\n }\n return VALID_STYLES.has(key);\n })\n .map(kv => kv.join(\":\"))\n .join(\";\");\n}\n\nconst NoWhites = new Set([\"body\", \"html\"]);\n\nclass XhtmlObject extends XmlObject {\n constructor(attributes, name) {\n super(XHTML_NS_ID, name);\n this[$richText] = false;\n this.style = attributes.style || \"\";\n }\n\n [$clean](builder) {\n super[$clean](builder);\n this.style = checkStyle(this);\n }\n\n [$acceptWhitespace]() {\n return !NoWhites.has(this[$nodeName]);\n }\n\n [$onText](str, richText = false) {\n if (!richText) {\n str = str.replaceAll(crlfRegExp, \"\");\n if (!this.style.includes(\"xfa-spacerun:yes\")) {\n str = str.replaceAll(spacesRegExp, \" \");\n }\n } else {\n this[$richText] = true;\n }\n\n if (str) {\n this[$content] += str;\n }\n }\n\n [$pushGlyphs](measure, mustPop = true) {\n const xfaFont = Object.create(null);\n const margin = {\n top: NaN,\n bottom: NaN,\n left: NaN,\n right: NaN,\n };\n let lineHeight = null;\n for (const [key, value] of this.style\n .split(\";\")\n .map(s => s.split(\":\", 2))) {\n switch (key) {\n case \"font-family\":\n xfaFont.typeface = stripQuotes(value);\n break;\n case \"font-size\":\n xfaFont.size = getMeasurement(value);\n break;\n case \"font-weight\":\n xfaFont.weight = value;\n break;\n case \"font-style\":\n xfaFont.posture = value;\n break;\n case \"letter-spacing\":\n xfaFont.letterSpacing = getMeasurement(value);\n break;\n case \"margin\":\n const values = value.split(/ \\t/).map(x => getMeasurement(x));\n switch (values.length) {\n case 1:\n margin.top =\n margin.bottom =\n margin.left =\n margin.right =\n values[0];\n break;\n case 2:\n margin.top = margin.bottom = values[0];\n margin.left = margin.right = values[1];\n break;\n case 3:\n margin.top = values[0];\n margin.bottom = values[2];\n margin.left = margin.right = values[1];\n break;\n case 4:\n margin.top = values[0];\n margin.left = values[1];\n margin.bottom = values[2];\n margin.right = values[3];\n break;\n }\n break;\n case \"margin-top\":\n margin.top = getMeasurement(value);\n break;\n case \"margin-bottom\":\n margin.bottom = getMeasurement(value);\n break;\n case \"margin-left\":\n margin.left = getMeasurement(value);\n break;\n case \"margin-right\":\n margin.right = getMeasurement(value);\n break;\n case \"line-height\":\n lineHeight = getMeasurement(value);\n break;\n }\n }\n\n measure.pushData(xfaFont, margin, lineHeight);\n\n if (this[$content]) {\n measure.addString(this[$content]);\n } else {\n for (const child of this[$getChildren]()) {\n if (child[$nodeName] === \"#text\") {\n measure.addString(child[$content]);\n continue;\n }\n child[$pushGlyphs](measure);\n }\n }\n\n if (mustPop) {\n measure.popFont();\n }\n }\n\n [$toHTML](availableSpace) {\n const children = [];\n this[$extra] = {\n children,\n };\n\n this[$childrenToHTML]({});\n\n if (children.length === 0 && !this[$content]) {\n return HTMLResult.EMPTY;\n }\n\n let value;\n if (this[$richText]) {\n value = this[$content]\n ? this[$content].replaceAll(crlfForRichTextRegExp, \"\\n\")\n : undefined;\n } else {\n value = this[$content] || undefined;\n }\n\n return HTMLResult.success({\n name: this[$nodeName],\n attributes: {\n href: this.href,\n style: mapStyle(this.style, this, this[$richText]),\n },\n children,\n value,\n });\n }\n}\n\nclass A extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"a\");\n this.href = fixURL(attributes.href) || \"\";\n }\n}\n\nclass B extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"b\");\n }\n\n [$pushGlyphs](measure) {\n measure.pushFont({ weight: \"bold\" });\n super[$pushGlyphs](measure);\n measure.popFont();\n }\n}\n\nclass Body extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"body\");\n }\n\n [$toHTML](availableSpace) {\n const res = super[$toHTML](availableSpace);\n const { html } = res;\n if (!html) {\n return HTMLResult.EMPTY;\n }\n html.name = \"div\";\n html.attributes.class = [\"xfaRich\"];\n return res;\n }\n}\n\nclass Br extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"br\");\n }\n\n [$text]() {\n return \"\\n\";\n }\n\n [$pushGlyphs](measure) {\n measure.addString(\"\\n\");\n }\n\n [$toHTML](availableSpace) {\n return HTMLResult.success({\n name: \"br\",\n });\n }\n}\n\nclass Html extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"html\");\n }\n\n [$toHTML](availableSpace) {\n const children = [];\n this[$extra] = {\n children,\n };\n\n this[$childrenToHTML]({});\n if (children.length === 0) {\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n class: [\"xfaRich\"],\n style: {},\n },\n value: this[$content] || \"\",\n });\n }\n\n if (children.length === 1) {\n const child = children[0];\n if (child.attributes?.class.includes(\"xfaRich\")) {\n return HTMLResult.success(child);\n }\n }\n\n return HTMLResult.success({\n name: \"div\",\n attributes: {\n class: [\"xfaRich\"],\n style: {},\n },\n children,\n });\n }\n}\n\nclass I extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"i\");\n }\n\n [$pushGlyphs](measure) {\n measure.pushFont({ posture: \"italic\" });\n super[$pushGlyphs](measure);\n measure.popFont();\n }\n}\n\nclass Li extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"li\");\n }\n}\n\nclass Ol extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"ol\");\n }\n}\n\nclass P extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"p\");\n }\n\n [$pushGlyphs](measure) {\n super[$pushGlyphs](measure, /* mustPop = */ false);\n measure.addString(\"\\n\");\n measure.addPara();\n measure.popFont();\n }\n\n [$text]() {\n const siblings = this[$getParent]()[$getChildren]();\n if (siblings.at(-1) === this) {\n return super[$text]();\n }\n return super[$text]() + \"\\n\";\n }\n}\n\nclass Span extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"span\");\n }\n}\n\nclass Sub extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"sub\");\n }\n}\n\nclass Sup extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"sup\");\n }\n}\n\nclass Ul extends XhtmlObject {\n constructor(attributes) {\n super(attributes, \"ul\");\n }\n}\n\nclass XhtmlNamespace {\n static [$buildXFAObject](name, attributes) {\n if (XhtmlNamespace.hasOwnProperty(name)) {\n return XhtmlNamespace[name](attributes);\n }\n return undefined;\n }\n\n static a(attributes) {\n return new A(attributes);\n }\n\n static b(attributes) {\n return new B(attributes);\n }\n\n static body(attributes) {\n return new Body(attributes);\n }\n\n static br(attributes) {\n return new Br(attributes);\n }\n\n static html(attributes) {\n return new Html(attributes);\n }\n\n static i(attributes) {\n return new I(attributes);\n }\n\n static li(attributes) {\n return new Li(attributes);\n }\n\n static ol(attributes) {\n return new Ol(attributes);\n }\n\n static p(attributes) {\n return new P(attributes);\n }\n\n static span(attributes) {\n return new Span(attributes);\n }\n\n static sub(attributes) {\n return new Sub(attributes);\n }\n\n static sup(attributes) {\n return new Sup(attributes);\n }\n\n static ul(attributes) {\n return new Ul(attributes);\n }\n}\n\nexport { XhtmlNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ConfigNamespace } from \"./config.js\";\nimport { ConnectionSetNamespace } from \"./connection_set.js\";\nimport { DatasetsNamespace } from \"./datasets.js\";\nimport { LocaleSetNamespace } from \"./locale_set.js\";\nimport { SignatureNamespace } from \"./signature.js\";\nimport { StylesheetNamespace } from \"./stylesheet.js\";\nimport { TemplateNamespace } from \"./template.js\";\nimport { XdpNamespace } from \"./xdp.js\";\nimport { XhtmlNamespace } from \"./xhtml.js\";\n\nconst NamespaceSetUp = {\n config: ConfigNamespace,\n connection: ConnectionSetNamespace,\n datasets: DatasetsNamespace,\n localeSet: LocaleSetNamespace,\n signature: SignatureNamespace,\n stylesheet: StylesheetNamespace,\n template: TemplateNamespace,\n xdp: XdpNamespace,\n xhtml: XhtmlNamespace,\n};\n\nexport { NamespaceSetUp };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject } from \"./namespaces.js\";\nimport { XmlObject } from \"./xfa_object.js\";\n\nclass UnknownNamespace {\n constructor(nsId) {\n this.namespaceId = nsId;\n }\n\n [$buildXFAObject](name, attributes) {\n return new XmlObject(this.namespaceId, name, attributes);\n }\n}\n\nexport { UnknownNamespace };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { $buildXFAObject, NamespaceIds } from \"./namespaces.js\";\nimport {\n $cleanup,\n $finalize,\n $ids,\n $isNsAgnostic,\n $nsAttributes,\n $onChild,\n $resolvePrototypes,\n $root,\n} from \"./symbol_utils.js\";\nimport { NamespaceSetUp } from \"./setup.js\";\nimport { Template } from \"./template.js\";\nimport { UnknownNamespace } from \"./unknown.js\";\nimport { warn } from \"../../shared/util.js\";\nimport { XFAObject } from \"./xfa_object.js\";\n\nclass Root extends XFAObject {\n constructor(ids) {\n super(-1, \"root\", Object.create(null));\n this.element = null;\n this[$ids] = ids;\n }\n\n [$onChild](child) {\n this.element = child;\n return true;\n }\n\n [$finalize]() {\n super[$finalize]();\n if (this.element.template instanceof Template) {\n // Set the root element in $ids using a symbol in order\n // to avoid conflict with real IDs.\n this[$ids].set($root, this.element);\n\n this.element.template[$resolvePrototypes](this[$ids]);\n this.element.template[$ids] = this[$ids];\n }\n }\n}\n\nclass Empty extends XFAObject {\n constructor() {\n super(-1, \"\", Object.create(null));\n }\n\n [$onChild](_) {\n return false;\n }\n}\n\nclass Builder {\n constructor(rootNameSpace = null) {\n this._namespaceStack = [];\n this._nsAgnosticLevel = 0;\n\n // Each prefix has its own stack\n this._namespacePrefixes = new Map();\n this._namespaces = new Map();\n this._nextNsId = Math.max(\n ...Object.values(NamespaceIds).map(({ id }) => id)\n );\n this._currentNamespace =\n rootNameSpace || new UnknownNamespace(++this._nextNsId);\n }\n\n buildRoot(ids) {\n return new Root(ids);\n }\n\n build({ nsPrefix, name, attributes, namespace, prefixes }) {\n const hasNamespaceDef = namespace !== null;\n if (hasNamespaceDef) {\n // Define the current namespace to use.\n this._namespaceStack.push(this._currentNamespace);\n this._currentNamespace = this._searchNamespace(namespace);\n }\n\n if (prefixes) {\n // The xml node may have namespace prefix definitions\n this._addNamespacePrefix(prefixes);\n }\n\n if (attributes.hasOwnProperty($nsAttributes)) {\n // Only support xfa-data namespace.\n const dataTemplate = NamespaceSetUp.datasets;\n const nsAttrs = attributes[$nsAttributes];\n let xfaAttrs = null;\n for (const [ns, attrs] of Object.entries(nsAttrs)) {\n const nsToUse = this._getNamespaceToUse(ns);\n if (nsToUse === dataTemplate) {\n xfaAttrs = { xfa: attrs };\n break;\n }\n }\n if (xfaAttrs) {\n attributes[$nsAttributes] = xfaAttrs;\n } else {\n delete attributes[$nsAttributes];\n }\n }\n\n const namespaceToUse = this._getNamespaceToUse(nsPrefix);\n const node =\n namespaceToUse?.[$buildXFAObject](name, attributes) || new Empty();\n\n if (node[$isNsAgnostic]()) {\n this._nsAgnosticLevel++;\n }\n\n // In case the node has some namespace things,\n // we must pop the different stacks.\n if (hasNamespaceDef || prefixes || node[$isNsAgnostic]()) {\n node[$cleanup] = {\n hasNamespace: hasNamespaceDef,\n prefixes,\n nsAgnostic: node[$isNsAgnostic](),\n };\n }\n\n return node;\n }\n\n isNsAgnostic() {\n return this._nsAgnosticLevel > 0;\n }\n\n _searchNamespace(nsName) {\n let ns = this._namespaces.get(nsName);\n if (ns) {\n return ns;\n }\n for (const [name, { check }] of Object.entries(NamespaceIds)) {\n if (check(nsName)) {\n ns = NamespaceSetUp[name];\n if (ns) {\n this._namespaces.set(nsName, ns);\n return ns;\n }\n // The namespace is known but not handled.\n break;\n }\n }\n\n ns = new UnknownNamespace(++this._nextNsId);\n this._namespaces.set(nsName, ns);\n return ns;\n }\n\n _addNamespacePrefix(prefixes) {\n for (const { prefix, value } of prefixes) {\n const namespace = this._searchNamespace(value);\n let prefixStack = this._namespacePrefixes.get(prefix);\n if (!prefixStack) {\n prefixStack = [];\n this._namespacePrefixes.set(prefix, prefixStack);\n }\n prefixStack.push(namespace);\n }\n }\n\n _getNamespaceToUse(prefix) {\n if (!prefix) {\n return this._currentNamespace;\n }\n const prefixStack = this._namespacePrefixes.get(prefix);\n if (prefixStack?.length > 0) {\n return prefixStack.at(-1);\n }\n\n warn(`Unknown namespace prefix: ${prefix}.`);\n return null;\n }\n\n clean(data) {\n const { hasNamespace, prefixes, nsAgnostic } = data;\n if (hasNamespace) {\n this._currentNamespace = this._namespaceStack.pop();\n }\n if (prefixes) {\n prefixes.forEach(({ prefix }) => {\n this._namespacePrefixes.get(prefix).pop();\n });\n }\n if (nsAgnostic) {\n this._nsAgnosticLevel--;\n }\n }\n}\n\nexport { Builder };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $acceptWhitespace,\n $clean,\n $content,\n $finalize,\n $globalData,\n $isCDATAXml,\n $nsAttributes,\n $onChild,\n $onText,\n $setId,\n} from \"./symbol_utils.js\";\nimport { XMLParserBase, XMLParserErrorCode } from \"../xml_parser.js\";\nimport { Builder } from \"./builder.js\";\nimport { warn } from \"../../shared/util.js\";\n\nclass XFAParser extends XMLParserBase {\n constructor(rootNameSpace = null, richText = false) {\n super();\n this._builder = new Builder(rootNameSpace);\n this._stack = [];\n this._globalData = {\n usedTypefaces: new Set(),\n };\n this._ids = new Map();\n this._current = this._builder.buildRoot(this._ids);\n this._errorCode = XMLParserErrorCode.NoError;\n this._whiteRegex = /^\\s+$/;\n this._nbsps = /\\xa0+/g;\n this._richText = richText;\n }\n\n parse(data) {\n this.parseXml(data);\n\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined;\n }\n\n this._current[$finalize]();\n\n return this._current.element;\n }\n\n onText(text) {\n // Normally by definition a &nbsp is unbreakable\n // but in real life Acrobat can break strings on &nbsp.\n text = text.replace(this._nbsps, match => match.slice(1) + \" \");\n if (this._richText || this._current[$acceptWhitespace]()) {\n this._current[$onText](text, this._richText);\n return;\n }\n\n if (this._whiteRegex.test(text)) {\n return;\n }\n this._current[$onText](text.trim());\n }\n\n onCdata(text) {\n this._current[$onText](text);\n }\n\n _mkAttributes(attributes, tagName) {\n // Transform attributes into an object and get out\n // namespaces information.\n let namespace = null;\n let prefixes = null;\n const attributeObj = Object.create({});\n for (const { name, value } of attributes) {\n if (name === \"xmlns\") {\n if (!namespace) {\n namespace = value;\n } else {\n warn(`XFA - multiple namespace definition in <${tagName}>`);\n }\n } else if (name.startsWith(\"xmlns:\")) {\n const prefix = name.substring(\"xmlns:\".length);\n if (!prefixes) {\n prefixes = [];\n }\n prefixes.push({ prefix, value });\n } else {\n const i = name.indexOf(\":\");\n if (i === -1) {\n attributeObj[name] = value;\n } else {\n // Attributes can have their own namespace.\n // For example in data, we can have <foo xfa:dataNode=\"dataGroup\"/>\n let nsAttrs = attributeObj[$nsAttributes];\n if (!nsAttrs) {\n nsAttrs = attributeObj[$nsAttributes] = Object.create(null);\n }\n const [ns, attrName] = [name.slice(0, i), name.slice(i + 1)];\n const attrs = (nsAttrs[ns] ||= Object.create(null));\n attrs[attrName] = value;\n }\n }\n }\n\n return [namespace, prefixes, attributeObj];\n }\n\n _getNameAndPrefix(name, nsAgnostic) {\n const i = name.indexOf(\":\");\n if (i === -1) {\n return [name, null];\n }\n return [name.substring(i + 1), nsAgnostic ? \"\" : name.substring(0, i)];\n }\n\n onBeginElement(tagName, attributes, isEmpty) {\n const [namespace, prefixes, attributesObj] = this._mkAttributes(\n attributes,\n tagName\n );\n const [name, nsPrefix] = this._getNameAndPrefix(\n tagName,\n this._builder.isNsAgnostic()\n );\n const node = this._builder.build({\n nsPrefix,\n name,\n attributes: attributesObj,\n namespace,\n prefixes,\n });\n node[$globalData] = this._globalData;\n\n if (isEmpty) {\n // No children: just push the node into its parent.\n node[$finalize]();\n if (this._current[$onChild](node)) {\n node[$setId](this._ids);\n }\n node[$clean](this._builder);\n return;\n }\n\n this._stack.push(this._current);\n this._current = node;\n }\n\n onEndElement(name) {\n const node = this._current;\n if (node[$isCDATAXml]() && typeof node[$content] === \"string\") {\n const parser = new XFAParser();\n parser._globalData = this._globalData;\n const root = parser.parse(node[$content]);\n node[$content] = null;\n node[$onChild](root);\n }\n\n node[$finalize]();\n this._current = this._stack.pop();\n if (this._current[$onChild](node)) {\n node[$setId](this._ids);\n }\n node[$clean](this._builder);\n }\n\n onError(code) {\n this._errorCode = code;\n }\n}\n\nexport { XFAParser };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n $appendChild,\n $globalData,\n $nodeName,\n $text,\n $toHTML,\n $toPages,\n} from \"./symbol_utils.js\";\nimport { Binder } from \"./bind.js\";\nimport { DataHandler } from \"./data.js\";\nimport { FontFinder } from \"./fonts.js\";\nimport { stripQuotes } from \"./utils.js\";\nimport { warn } from \"../../shared/util.js\";\nimport { XFAParser } from \"./parser.js\";\nimport { XhtmlNamespace } from \"./xhtml.js\";\n\nclass XFAFactory {\n constructor(data) {\n try {\n this.root = new XFAParser().parse(XFAFactory._createDocument(data));\n const binder = new Binder(this.root);\n this.form = binder.bind();\n this.dataHandler = new DataHandler(this.root, binder.getData());\n this.form[$globalData].template = this.form;\n } catch (e) {\n warn(`XFA - an error occurred during parsing and binding: ${e}`);\n }\n }\n\n isValid() {\n return this.root && this.form;\n }\n\n /**\n * In order to avoid to block the event loop, the conversion\n * into pages is made asynchronously.\n */\n _createPagesHelper() {\n const iterator = this.form[$toPages]();\n return new Promise((resolve, reject) => {\n const nextIteration = () => {\n try {\n const value = iterator.next();\n if (value.done) {\n resolve(value.value);\n } else {\n setTimeout(nextIteration, 0);\n }\n } catch (e) {\n reject(e);\n }\n };\n setTimeout(nextIteration, 0);\n });\n }\n\n async _createPages() {\n try {\n this.pages = await this._createPagesHelper();\n this.dims = this.pages.children.map(c => {\n const { width, height } = c.attributes.style;\n return [0, 0, parseInt(width), parseInt(height)];\n });\n } catch (e) {\n warn(`XFA - an error occurred during layout: ${e}`);\n }\n }\n\n getBoundingBox(pageIndex) {\n return this.dims[pageIndex];\n }\n\n async getNumPages() {\n if (!this.pages) {\n await this._createPages();\n }\n return this.dims.length;\n }\n\n setImages(images) {\n this.form[$globalData].images = images;\n }\n\n setFonts(fonts) {\n this.form[$globalData].fontFinder = new FontFinder(fonts);\n const missingFonts = [];\n for (let typeface of this.form[$globalData].usedTypefaces) {\n typeface = stripQuotes(typeface);\n const font = this.form[$globalData].fontFinder.find(typeface);\n if (!font) {\n missingFonts.push(typeface);\n }\n }\n\n if (missingFonts.length > 0) {\n return missingFonts;\n }\n\n return null;\n }\n\n appendFonts(fonts, reallyMissingFonts) {\n this.form[$globalData].fontFinder.add(fonts, reallyMissingFonts);\n }\n\n async getPages() {\n if (!this.pages) {\n await this._createPages();\n }\n const pages = this.pages;\n this.pages = null;\n return pages;\n }\n\n serializeData(storage) {\n return this.dataHandler.serialize(storage);\n }\n\n static _createDocument(data) {\n if (!data[\"/xdp:xdp\"]) {\n return data[\"xdp:xdp\"];\n }\n return Object.values(data).join(\"\");\n }\n\n static getRichTextAsHtml(rc) {\n if (!rc || typeof rc !== \"string\") {\n return null;\n }\n\n try {\n let root = new XFAParser(XhtmlNamespace, /* richText */ true).parse(rc);\n if (![\"body\", \"xhtml\"].includes(root[$nodeName])) {\n // No body, so create one.\n const newRoot = XhtmlNamespace.body({});\n newRoot[$appendChild](root);\n root = newRoot;\n }\n\n const result = root[$toHTML]();\n if (!result.success) {\n return null;\n }\n\n const { html } = result;\n const { attributes } = html;\n if (attributes) {\n if (attributes.class) {\n attributes.class = attributes.class.filter(\n attr => !attr.startsWith(\"xfa\")\n );\n }\n attributes.dir = \"auto\";\n }\n\n return { html, str: root[$text]() };\n } catch (e) {\n warn(`XFA - an error occurred during parsing of rich text: ${e}`);\n }\n return null;\n }\n}\n\nexport { XFAFactory };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationEditorType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationReplyType,\n AnnotationType,\n assert,\n BASELINE_FACTOR,\n FeatureTest,\n getModificationDate,\n IDENTITY_MATRIX,\n info,\n LINE_DESCENT_FACTOR,\n LINE_FACTOR,\n OPS,\n RenderingIntentFlag,\n shadow,\n stringToPDFString,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport {\n collectActions,\n escapeString,\n getInheritableProperty,\n getRotationMatrix,\n isAscii,\n numberToString,\n stringToUTF16String,\n} from \"./core_utils.js\";\nimport {\n createDefaultAppearance,\n FakeUnicodeFont,\n getPdfColor,\n parseAppearanceStream,\n parseDefaultAppearance,\n} from \"./default_appearance.js\";\nimport { Dict, isName, isRefsEqual, Name, Ref, RefSet } from \"./primitives.js\";\nimport { Stream, StringStream } from \"./stream.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { bidi } from \"./bidi.js\";\nimport { Catalog } from \"./catalog.js\";\nimport { ColorSpace } from \"./colorspace.js\";\nimport { FileSpec } from \"./file_spec.js\";\nimport { JpegStream } from \"./jpeg_stream.js\";\nimport { ObjectLoader } from \"./object_loader.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { writeObject } from \"./writer.js\";\nimport { XFAFactory } from \"./xfa/factory.js\";\n\nclass AnnotationFactory {\n static createGlobals(pdfManager) {\n return Promise.all([\n pdfManager.ensureCatalog(\"acroForm\"),\n pdfManager.ensureDoc(\"xfaDatasets\"),\n pdfManager.ensureCatalog(\"structTreeRoot\"),\n // Only necessary to prevent the `Catalog.baseUrl`-getter, used\n // with some Annotations, from throwing and thus breaking parsing:\n pdfManager.ensureCatalog(\"baseUrl\"),\n // Only necessary to prevent the `Catalog.attachments`-getter, used\n // with \"GoToE\" actions, from throwing and thus breaking parsing:\n pdfManager.ensureCatalog(\"attachments\"),\n ]).then(\n ([acroForm, xfaDatasets, structTreeRoot, baseUrl, attachments]) => {\n return {\n pdfManager,\n acroForm: acroForm instanceof Dict ? acroForm : Dict.empty,\n xfaDatasets,\n structTreeRoot,\n baseUrl,\n attachments,\n };\n },\n reason => {\n warn(`createGlobals: \"${reason}\".`);\n return null;\n }\n );\n }\n\n /**\n * Create an `Annotation` object of the correct type for the given reference\n * to an annotation dictionary. This yields a promise that is resolved when\n * the `Annotation` object is constructed.\n *\n * @param {XRef} xref\n * @param {Object} ref\n * @params {Object} annotationGlobals\n * @param {Object} idFactory\n * @param {boolean} [collectFields]\n * @param {Object} [pageRef]\n * @returns {Promise} A promise that is resolved with an {Annotation}\n * instance.\n */\n static async create(\n xref,\n ref,\n annotationGlobals,\n idFactory,\n collectFields,\n pageRef\n ) {\n const pageIndex = collectFields\n ? await this._getPageIndex(xref, ref, annotationGlobals.pdfManager)\n : null;\n\n return annotationGlobals.pdfManager.ensure(this, \"_create\", [\n xref,\n ref,\n annotationGlobals,\n idFactory,\n collectFields,\n pageIndex,\n pageRef,\n ]);\n }\n\n /**\n * @private\n */\n static _create(\n xref,\n ref,\n annotationGlobals,\n idFactory,\n collectFields = false,\n pageIndex = null,\n pageRef = null\n ) {\n const dict = xref.fetchIfRef(ref);\n if (!(dict instanceof Dict)) {\n return undefined;\n }\n\n const { acroForm, pdfManager } = annotationGlobals;\n const id =\n ref instanceof Ref ? ref.toString() : `annot_${idFactory.createObjId()}`;\n\n // Determine the annotation's subtype.\n let subtype = dict.get(\"Subtype\");\n subtype = subtype instanceof Name ? subtype.name : null;\n\n // Return the right annotation object based on the subtype and field type.\n const parameters = {\n xref,\n ref,\n dict,\n subtype,\n id,\n annotationGlobals,\n collectFields,\n needAppearances:\n !collectFields && acroForm.get(\"NeedAppearances\") === true,\n pageIndex,\n evaluatorOptions: pdfManager.evaluatorOptions,\n pageRef,\n };\n\n switch (subtype) {\n case \"Link\":\n return new LinkAnnotation(parameters);\n\n case \"Text\":\n return new TextAnnotation(parameters);\n\n case \"Widget\":\n let fieldType = getInheritableProperty({ dict, key: \"FT\" });\n fieldType = fieldType instanceof Name ? fieldType.name : null;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotation(parameters);\n case \"Btn\":\n return new ButtonWidgetAnnotation(parameters);\n case \"Ch\":\n return new ChoiceWidgetAnnotation(parameters);\n case \"Sig\":\n return new SignatureWidgetAnnotation(parameters);\n }\n warn(\n `Unimplemented widget field type \"${fieldType}\", ` +\n \"falling back to base field type.\"\n );\n return new WidgetAnnotation(parameters);\n\n case \"Popup\":\n return new PopupAnnotation(parameters);\n\n case \"FreeText\":\n return new FreeTextAnnotation(parameters);\n\n case \"Line\":\n return new LineAnnotation(parameters);\n\n case \"Square\":\n return new SquareAnnotation(parameters);\n\n case \"Circle\":\n return new CircleAnnotation(parameters);\n\n case \"PolyLine\":\n return new PolylineAnnotation(parameters);\n\n case \"Polygon\":\n return new PolygonAnnotation(parameters);\n\n case \"Caret\":\n return new CaretAnnotation(parameters);\n\n case \"Ink\":\n return new InkAnnotation(parameters);\n\n case \"Highlight\":\n return new HighlightAnnotation(parameters);\n\n case \"Underline\":\n return new UnderlineAnnotation(parameters);\n\n case \"Squiggly\":\n return new SquigglyAnnotation(parameters);\n\n case \"StrikeOut\":\n return new StrikeOutAnnotation(parameters);\n\n case \"Stamp\":\n return new StampAnnotation(parameters);\n\n case \"FileAttachment\":\n return new FileAttachmentAnnotation(parameters);\n\n default:\n if (!collectFields) {\n if (!subtype) {\n warn(\"Annotation is missing the required /Subtype.\");\n } else {\n warn(\n `Unimplemented annotation type \"${subtype}\", ` +\n \"falling back to base annotation.\"\n );\n }\n }\n return new Annotation(parameters);\n }\n }\n\n static async _getPageIndex(xref, ref, pdfManager) {\n try {\n const annotDict = await xref.fetchIfRefAsync(ref);\n if (!(annotDict instanceof Dict)) {\n return -1;\n }\n const pageRef = annotDict.getRaw(\"P\");\n if (pageRef instanceof Ref) {\n try {\n const pageIndex = await pdfManager.ensureCatalog(\"getPageIndex\", [\n pageRef,\n ]);\n return pageIndex;\n } catch (ex) {\n info(`_getPageIndex -- not a valid page reference: \"${ex}\".`);\n }\n }\n if (annotDict.has(\"Kids\")) {\n return -1; // Not an annotation reference.\n }\n // Fallback to, potentially, checking the annotations of all pages.\n // PLEASE NOTE: This could force the *entire* PDF document to load,\n // hence it absolutely cannot be done unconditionally.\n const numPages = await pdfManager.ensureDoc(\"numPages\");\n\n for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {\n const page = await pdfManager.getPage(pageIndex);\n const annotations = await pdfManager.ensure(page, \"annotations\");\n\n for (const annotRef of annotations) {\n if (annotRef instanceof Ref && isRefsEqual(annotRef, ref)) {\n return pageIndex;\n }\n }\n }\n } catch (ex) {\n warn(`_getPageIndex: \"${ex}\".`);\n }\n return -1;\n }\n\n static generateImages(annotations, xref, isOffscreenCanvasSupported) {\n if (!isOffscreenCanvasSupported) {\n warn(\n \"generateImages: OffscreenCanvas is not supported, cannot save or print some annotations with images.\"\n );\n return null;\n }\n let imagePromises;\n for (const { bitmapId, bitmap } of annotations) {\n if (!bitmap) {\n continue;\n }\n imagePromises ||= new Map();\n imagePromises.set(bitmapId, StampAnnotation.createImage(bitmap, xref));\n }\n\n return imagePromises;\n }\n\n static async saveNewAnnotations(evaluator, task, annotations, imagePromises) {\n const xref = evaluator.xref;\n let baseFontRef;\n const dependencies = [];\n const promises = [];\n const { isOffscreenCanvasSupported } = evaluator.options;\n\n for (const annotation of annotations) {\n if (annotation.deleted) {\n continue;\n }\n switch (annotation.annotationType) {\n case AnnotationEditorType.FREETEXT:\n if (!baseFontRef) {\n const baseFont = new Dict(xref);\n baseFont.set(\"BaseFont\", Name.get(\"Helvetica\"));\n baseFont.set(\"Type\", Name.get(\"Font\"));\n baseFont.set(\"Subtype\", Name.get(\"Type1\"));\n baseFont.set(\"Encoding\", Name.get(\"WinAnsiEncoding\"));\n const buffer = [];\n baseFontRef = xref.getNewTemporaryRef();\n await writeObject(baseFontRef, baseFont, buffer, xref);\n dependencies.push({ ref: baseFontRef, data: buffer.join(\"\") });\n }\n promises.push(\n FreeTextAnnotation.createNewAnnotation(\n xref,\n annotation,\n dependencies,\n { evaluator, task, baseFontRef }\n )\n );\n break;\n case AnnotationEditorType.HIGHLIGHT:\n promises.push(\n HighlightAnnotation.createNewAnnotation(\n xref,\n annotation,\n dependencies\n )\n );\n break;\n case AnnotationEditorType.INK:\n promises.push(\n InkAnnotation.createNewAnnotation(xref, annotation, dependencies)\n );\n break;\n case AnnotationEditorType.STAMP:\n if (!isOffscreenCanvasSupported) {\n break;\n }\n const image = await imagePromises.get(annotation.bitmapId);\n if (image.imageStream) {\n const { imageStream, smaskStream } = image;\n const buffer = [];\n if (smaskStream) {\n const smaskRef = xref.getNewTemporaryRef();\n await writeObject(smaskRef, smaskStream, buffer, xref);\n dependencies.push({ ref: smaskRef, data: buffer.join(\"\") });\n imageStream.dict.set(\"SMask\", smaskRef);\n buffer.length = 0;\n }\n const imageRef = (image.imageRef = xref.getNewTemporaryRef());\n await writeObject(imageRef, imageStream, buffer, xref);\n dependencies.push({ ref: imageRef, data: buffer.join(\"\") });\n image.imageStream = image.smaskStream = null;\n }\n promises.push(\n StampAnnotation.createNewAnnotation(\n xref,\n annotation,\n dependencies,\n { image }\n )\n );\n break;\n }\n }\n\n return {\n annotations: await Promise.all(promises),\n dependencies,\n };\n }\n\n static async printNewAnnotations(\n annotationGlobals,\n evaluator,\n task,\n annotations,\n imagePromises\n ) {\n if (!annotations) {\n return null;\n }\n\n const { options, xref } = evaluator;\n const promises = [];\n for (const annotation of annotations) {\n if (annotation.deleted) {\n continue;\n }\n switch (annotation.annotationType) {\n case AnnotationEditorType.FREETEXT:\n promises.push(\n FreeTextAnnotation.createNewPrintAnnotation(\n annotationGlobals,\n xref,\n annotation,\n {\n evaluator,\n task,\n evaluatorOptions: options,\n }\n )\n );\n break;\n case AnnotationEditorType.HIGHLIGHT:\n promises.push(\n HighlightAnnotation.createNewPrintAnnotation(\n annotationGlobals,\n xref,\n annotation,\n {\n evaluatorOptions: options,\n }\n )\n );\n break;\n case AnnotationEditorType.INK:\n promises.push(\n InkAnnotation.createNewPrintAnnotation(\n annotationGlobals,\n xref,\n annotation,\n {\n evaluatorOptions: options,\n }\n )\n );\n break;\n case AnnotationEditorType.STAMP:\n if (!options.isOffscreenCanvasSupported) {\n break;\n }\n const image = await imagePromises.get(annotation.bitmapId);\n if (image.imageStream) {\n const { imageStream, smaskStream } = image;\n if (smaskStream) {\n imageStream.dict.set(\"SMask\", smaskStream);\n }\n image.imageRef = new JpegStream(imageStream, imageStream.length);\n image.imageStream = image.smaskStream = null;\n }\n promises.push(\n StampAnnotation.createNewPrintAnnotation(\n annotationGlobals,\n xref,\n annotation,\n {\n image,\n evaluatorOptions: options,\n }\n )\n );\n break;\n }\n }\n\n return Promise.all(promises);\n }\n}\n\nfunction getRgbColor(color, defaultColor = new Uint8ClampedArray(3)) {\n if (!Array.isArray(color)) {\n return defaultColor;\n }\n\n const rgbColor = defaultColor || new Uint8ClampedArray(3);\n switch (color.length) {\n case 0: // Transparent, which we indicate with a null value\n return null;\n\n case 1: // Convert grayscale to RGB\n ColorSpace.singletons.gray.getRgbItem(color, 0, rgbColor, 0);\n return rgbColor;\n\n case 3: // Convert RGB percentages to RGB\n ColorSpace.singletons.rgb.getRgbItem(color, 0, rgbColor, 0);\n return rgbColor;\n\n case 4: // Convert CMYK to RGB\n ColorSpace.singletons.cmyk.getRgbItem(color, 0, rgbColor, 0);\n return rgbColor;\n\n default:\n return defaultColor;\n }\n}\n\nfunction getPdfColorArray(color) {\n return Array.from(color, c => c / 255);\n}\n\nfunction getQuadPoints(dict, rect) {\n // The region is described as a number of quadrilaterals.\n // Each quadrilateral must consist of eight coordinates.\n const quadPoints = dict.getArray(\"QuadPoints\");\n if (\n !Array.isArray(quadPoints) ||\n quadPoints.length === 0 ||\n quadPoints.length % 8 > 0\n ) {\n return null;\n }\n\n const quadPointsLists = [];\n for (let i = 0, ii = quadPoints.length / 8; i < ii; i++) {\n // Each series of eight numbers represents the coordinates for one\n // quadrilateral in the order [x1, y1, x2, y2, x3, y3, x4, y4].\n // Convert this to an array of objects with x and y coordinates.\n let minX = Infinity,\n maxX = -Infinity,\n minY = Infinity,\n maxY = -Infinity;\n for (let j = i * 8, jj = i * 8 + 8; j < jj; j += 2) {\n const x = quadPoints[j];\n const y = quadPoints[j + 1];\n\n minX = Math.min(x, minX);\n maxX = Math.max(x, maxX);\n minY = Math.min(y, minY);\n maxY = Math.max(y, maxY);\n }\n // The quadpoints should be ignored if any coordinate in the array\n // lies outside the region specified by the rectangle. The rectangle\n // can be `null` for markup annotations since their rectangle may be\n // incorrect (fixes bug 1538111).\n if (\n rect !== null &&\n (minX < rect[0] || maxX > rect[2] || minY < rect[1] || maxY > rect[3])\n ) {\n return null;\n }\n // The PDF specification states in section 12.5.6.10 (figure 64) that the\n // order of the quadpoints should be bottom left, bottom right, top right\n // and top left. However, in practice PDF files use a different order,\n // namely bottom left, bottom right, top left and top right (this is also\n // mentioned on https://github.com/highkite/pdfAnnotate#QuadPoints), so\n // this is the actual order we should work with. However, the situation is\n // even worse since Adobe's own applications and other applications violate\n // the specification and create annotations with other orders, namely top\n // left, top right, bottom left and bottom right or even top left,\n // top right, bottom right and bottom left. To avoid inconsistency and\n // broken rendering, we normalize all lists to put the quadpoints in the\n // same standard order (see https://stackoverflow.com/a/10729881).\n quadPointsLists.push([\n { x: minX, y: maxY },\n { x: maxX, y: maxY },\n { x: minX, y: minY },\n { x: maxX, y: minY },\n ]);\n }\n return quadPointsLists;\n}\n\nfunction getTransformMatrix(rect, bbox, matrix) {\n // 12.5.5: Algorithm: Appearance streams\n const [minX, minY, maxX, maxY] = Util.getAxialAlignedBoundingBox(\n bbox,\n matrix\n );\n if (minX === maxX || minY === maxY) {\n // From real-life file, bbox was [0, 0, 0, 0]. In this case,\n // just apply the transform for rect\n return [1, 0, 0, 1, rect[0], rect[1]];\n }\n\n const xRatio = (rect[2] - rect[0]) / (maxX - minX);\n const yRatio = (rect[3] - rect[1]) / (maxY - minY);\n return [\n xRatio,\n 0,\n 0,\n yRatio,\n rect[0] - minX * xRatio,\n rect[1] - minY * yRatio,\n ];\n}\n\nclass Annotation {\n constructor(params) {\n const { dict, xref, annotationGlobals } = params;\n\n this.setTitle(dict.get(\"T\"));\n this.setContents(dict.get(\"Contents\"));\n this.setModificationDate(dict.get(\"M\"));\n this.setFlags(dict.get(\"F\"));\n this.setRectangle(dict.getArray(\"Rect\"));\n this.setColor(dict.getArray(\"C\"));\n this.setBorderStyle(dict);\n this.setAppearance(dict);\n this.setOptionalContent(dict);\n\n const MK = dict.get(\"MK\");\n this.setBorderAndBackgroundColors(MK);\n this.setRotation(MK, dict);\n this.ref = params.ref instanceof Ref ? params.ref : null;\n\n this._streams = [];\n if (this.appearance) {\n this._streams.push(this.appearance);\n }\n\n // The annotation cannot be changed (neither its position/visibility nor its\n // contents), hence we can just display its appearance and don't generate\n // a HTML element for it.\n const isLocked = !!(this.flags & AnnotationFlag.LOCKED);\n const isContentLocked = !!(this.flags & AnnotationFlag.LOCKEDCONTENTS);\n\n if (annotationGlobals.structTreeRoot) {\n let structParent = dict.get(\"StructParent\");\n structParent =\n Number.isInteger(structParent) && structParent >= 0 ? structParent : -1;\n\n annotationGlobals.structTreeRoot.addAnnotationIdToPage(\n params.pageRef,\n structParent\n );\n }\n\n // Expose public properties using a data object.\n this.data = {\n annotationFlags: this.flags,\n borderStyle: this.borderStyle,\n color: this.color,\n backgroundColor: this.backgroundColor,\n borderColor: this.borderColor,\n rotation: this.rotation,\n contentsObj: this._contents,\n hasAppearance: !!this.appearance,\n id: params.id,\n modificationDate: this.modificationDate,\n rect: this.rectangle,\n subtype: params.subtype,\n hasOwnCanvas: false,\n noRotate: !!(this.flags & AnnotationFlag.NOROTATE),\n noHTML: isLocked && isContentLocked,\n };\n\n if (params.collectFields) {\n // Fields can act as container for other fields and have\n // some actions even if no Annotation inherit from them.\n // Those fields can be referenced by CO (calculation order).\n const kids = dict.get(\"Kids\");\n if (Array.isArray(kids)) {\n const kidIds = [];\n for (const kid of kids) {\n if (kid instanceof Ref) {\n kidIds.push(kid.toString());\n }\n }\n if (kidIds.length !== 0) {\n this.data.kidIds = kidIds;\n }\n }\n\n this.data.actions = collectActions(xref, dict, AnnotationActionEventType);\n this.data.fieldName = this._constructFieldName(dict);\n this.data.pageIndex = params.pageIndex;\n }\n\n this._isOffscreenCanvasSupported =\n params.evaluatorOptions.isOffscreenCanvasSupported;\n this._fallbackFontDict = null;\n this._needAppearances = false;\n }\n\n /**\n * @private\n */\n _hasFlag(flags, flag) {\n return !!(flags & flag);\n }\n\n /**\n * @private\n */\n _isViewable(flags) {\n return (\n !this._hasFlag(flags, AnnotationFlag.INVISIBLE) &&\n !this._hasFlag(flags, AnnotationFlag.NOVIEW)\n );\n }\n\n /**\n * @private\n */\n _isPrintable(flags) {\n // In Acrobat, hidden flag cancels the print one\n // (see annotation_hidden_print.pdf).\n return (\n this._hasFlag(flags, AnnotationFlag.PRINT) &&\n !this._hasFlag(flags, AnnotationFlag.HIDDEN) &&\n !this._hasFlag(flags, AnnotationFlag.INVISIBLE)\n );\n }\n\n /**\n * Check if the annotation must be displayed by taking into account\n * the value found in the annotationStorage which may have been set\n * through JS.\n *\n * @public\n * @memberof Annotation\n * @param {AnnotationStorage} [annotationStorage] - Storage for annotation\n * @param {boolean} [_renderForms] - if true widgets are rendered thanks to\n * the annotation layer.\n */\n mustBeViewed(annotationStorage, _renderForms) {\n const noView = annotationStorage?.get(this.data.id)?.noView;\n if (noView !== undefined) {\n return !noView;\n }\n return this.viewable && !this._hasFlag(this.flags, AnnotationFlag.HIDDEN);\n }\n\n /**\n * Check if the annotation must be printed by taking into account\n * the value found in the annotationStorage which may have been set\n * through JS.\n *\n * @public\n * @memberof Annotation\n * @param {AnnotationStorage} [annotationStorage] - Storage for annotation\n */\n mustBePrinted(annotationStorage) {\n const noPrint = annotationStorage?.get(this.data.id)?.noPrint;\n if (noPrint !== undefined) {\n return !noPrint;\n }\n return this.printable;\n }\n\n /**\n * @type {boolean}\n */\n get viewable() {\n if (this.data.quadPoints === null) {\n return false;\n }\n if (this.flags === 0) {\n return true;\n }\n return this._isViewable(this.flags);\n }\n\n /**\n * @type {boolean}\n */\n get printable() {\n if (this.data.quadPoints === null) {\n return false;\n }\n if (this.flags === 0) {\n return false;\n }\n return this._isPrintable(this.flags);\n }\n\n /**\n * @private\n */\n _parseStringHelper(data) {\n const str = typeof data === \"string\" ? stringToPDFString(data) : \"\";\n const dir = str && bidi(str).dir === \"rtl\" ? \"rtl\" : \"ltr\";\n\n return { str, dir };\n }\n\n setDefaultAppearance(params) {\n const { dict, annotationGlobals } = params;\n\n const defaultAppearance =\n getInheritableProperty({ dict, key: \"DA\" }) ||\n annotationGlobals.acroForm.get(\"DA\");\n this._defaultAppearance =\n typeof defaultAppearance === \"string\" ? defaultAppearance : \"\";\n this.data.defaultAppearanceData = parseDefaultAppearance(\n this._defaultAppearance\n );\n }\n\n /**\n * Set the title.\n *\n * @param {string} title - The title of the annotation, used e.g. with\n * PopupAnnotations.\n */\n setTitle(title) {\n this._title = this._parseStringHelper(title);\n }\n\n /**\n * Set the contents.\n *\n * @param {string} contents - Text to display for the annotation or, if the\n * type of annotation does not display text, a\n * description of the annotation's contents\n */\n setContents(contents) {\n this._contents = this._parseStringHelper(contents);\n }\n\n /**\n * Set the modification date.\n *\n * @public\n * @memberof Annotation\n * @param {string} modificationDate - PDF date string that indicates when the\n * annotation was last modified\n */\n setModificationDate(modificationDate) {\n this.modificationDate =\n typeof modificationDate === \"string\" ? modificationDate : null;\n }\n\n /**\n * Set the flags.\n *\n * @public\n * @memberof Annotation\n * @param {number} flags - Unsigned 32-bit integer specifying annotation\n * characteristics\n * @see {@link shared/util.js}\n */\n setFlags(flags) {\n this.flags = Number.isInteger(flags) && flags > 0 ? flags : 0;\n if (\n this.flags & AnnotationFlag.INVISIBLE &&\n this.constructor.name !== \"Annotation\"\n ) {\n // From the pdf spec v1.7, section 12.5.3 (Annotation Flags):\n // If set, do not display the annotation if it does not belong to one of\n // the standard annotation types and no annotation handler is available.\n //\n // So we can remove the flag in case we have a known annotation type.\n this.flags ^= AnnotationFlag.INVISIBLE;\n }\n }\n\n /**\n * Check if a provided flag is set.\n *\n * @public\n * @memberof Annotation\n * @param {number} flag - Hexadecimal representation for an annotation\n * characteristic\n * @returns {boolean}\n * @see {@link shared/util.js}\n */\n hasFlag(flag) {\n return this._hasFlag(this.flags, flag);\n }\n\n /**\n * Set the rectangle.\n *\n * @public\n * @memberof Annotation\n * @param {Array} rectangle - The rectangle array with exactly four entries\n */\n setRectangle(rectangle) {\n this.rectangle =\n Array.isArray(rectangle) && rectangle.length === 4\n ? Util.normalizeRect(rectangle)\n : [0, 0, 0, 0];\n }\n\n /**\n * Set the color and take care of color space conversion.\n * The default value is black, in RGB color space.\n *\n * @public\n * @memberof Annotation\n * @param {Array} color - The color array containing either 0\n * (transparent), 1 (grayscale), 3 (RGB) or\n * 4 (CMYK) elements\n */\n setColor(color) {\n this.color = getRgbColor(color);\n }\n\n /**\n * Set the line endings; should only be used with specific annotation types.\n * @param {Array} lineEndings - The line endings array.\n */\n setLineEndings(lineEndings) {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\"Not implemented: setLineEndings\");\n }\n this.lineEndings = [\"None\", \"None\"]; // The default values.\n\n if (Array.isArray(lineEndings) && lineEndings.length === 2) {\n for (let i = 0; i < 2; i++) {\n const obj = lineEndings[i];\n\n if (obj instanceof Name) {\n switch (obj.name) {\n case \"None\":\n continue;\n case \"Square\":\n case \"Circle\":\n case \"Diamond\":\n case \"OpenArrow\":\n case \"ClosedArrow\":\n case \"Butt\":\n case \"ROpenArrow\":\n case \"RClosedArrow\":\n case \"Slash\":\n this.lineEndings[i] = obj.name;\n continue;\n }\n }\n warn(`Ignoring invalid lineEnding: ${obj}`);\n }\n }\n }\n\n setRotation(mk, dict) {\n this.rotation = 0;\n let angle = mk instanceof Dict ? mk.get(\"R\") || 0 : dict.get(\"Rotate\") || 0;\n if (Number.isInteger(angle) && angle !== 0) {\n angle %= 360;\n if (angle < 0) {\n angle += 360;\n }\n if (angle % 90 === 0) {\n this.rotation = angle;\n }\n }\n }\n\n /**\n * Set the color for background and border if any.\n * The default values are transparent.\n *\n * @public\n * @memberof Annotation\n * @param {Dict} mk - The MK dictionary\n */\n setBorderAndBackgroundColors(mk) {\n if (mk instanceof Dict) {\n this.borderColor = getRgbColor(mk.getArray(\"BC\"), null);\n this.backgroundColor = getRgbColor(mk.getArray(\"BG\"), null);\n } else {\n this.borderColor = this.backgroundColor = null;\n }\n }\n\n /**\n * Set the border style (as AnnotationBorderStyle object).\n *\n * @public\n * @memberof Annotation\n * @param {Dict} borderStyle - The border style dictionary\n */\n setBorderStyle(borderStyle) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(this.rectangle, \"setRectangle must have been called previously.\");\n }\n\n this.borderStyle = new AnnotationBorderStyle();\n if (!(borderStyle instanceof Dict)) {\n return;\n }\n if (borderStyle.has(\"BS\")) {\n const dict = borderStyle.get(\"BS\");\n const dictType = dict.get(\"Type\");\n\n if (!dictType || isName(dictType, \"Border\")) {\n this.borderStyle.setWidth(dict.get(\"W\"), this.rectangle);\n this.borderStyle.setStyle(dict.get(\"S\"));\n this.borderStyle.setDashArray(dict.getArray(\"D\"));\n }\n } else if (borderStyle.has(\"Border\")) {\n const array = borderStyle.getArray(\"Border\");\n if (Array.isArray(array) && array.length >= 3) {\n this.borderStyle.setHorizontalCornerRadius(array[0]);\n this.borderStyle.setVerticalCornerRadius(array[1]);\n this.borderStyle.setWidth(array[2], this.rectangle);\n\n if (array.length === 4) {\n // Dash array available\n this.borderStyle.setDashArray(array[3], /* forceStyle = */ true);\n }\n }\n } else {\n // There are no border entries in the dictionary. According to the\n // specification, we should draw a solid border of width 1 in that\n // case, but Adobe Reader did not implement that part of the\n // specification and instead draws no border at all, so we do the same.\n // See also https://github.com/mozilla/pdf.js/issues/6179.\n this.borderStyle.setWidth(0);\n }\n }\n\n /**\n * Set the (normal) appearance.\n *\n * @public\n * @memberof Annotation\n * @param {Dict} dict - The annotation's data dictionary\n */\n setAppearance(dict) {\n this.appearance = null;\n\n const appearanceStates = dict.get(\"AP\");\n if (!(appearanceStates instanceof Dict)) {\n return;\n }\n\n // In case the normal appearance is a stream, then it is used directly.\n const normalAppearanceState = appearanceStates.get(\"N\");\n if (normalAppearanceState instanceof BaseStream) {\n this.appearance = normalAppearanceState;\n return;\n }\n if (!(normalAppearanceState instanceof Dict)) {\n return;\n }\n\n // In case the normal appearance is a dictionary, the `AS` entry provides\n // the key of the stream in this dictionary.\n const as = dict.get(\"AS\");\n if (!(as instanceof Name) || !normalAppearanceState.has(as.name)) {\n return;\n }\n const appearance = normalAppearanceState.get(as.name);\n if (appearance instanceof BaseStream) {\n this.appearance = appearance;\n }\n }\n\n setOptionalContent(dict) {\n this.oc = null;\n\n const oc = dict.get(\"OC\");\n if (oc instanceof Name) {\n warn(\"setOptionalContent: Support for /Name-entry is not implemented.\");\n } else if (oc instanceof Dict) {\n this.oc = oc;\n }\n }\n\n loadResources(keys, appearance) {\n return appearance.dict.getAsync(\"Resources\").then(resources => {\n if (!resources) {\n return undefined;\n }\n\n const objectLoader = new ObjectLoader(resources, keys, resources.xref);\n return objectLoader.load().then(function () {\n return resources;\n });\n });\n }\n\n async getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n ) {\n const data = this.data;\n let appearance = this.appearance;\n const isUsingOwnCanvas = !!(\n this.data.hasOwnCanvas && intent & RenderingIntentFlag.DISPLAY\n );\n if (!appearance) {\n if (!isUsingOwnCanvas) {\n return {\n opList: new OperatorList(),\n separateForm: false,\n separateCanvas: false,\n };\n }\n appearance = new StringStream(\"\");\n appearance.dict = new Dict();\n }\n\n const appearanceDict = appearance.dict;\n const resources = await this.loadResources(\n [\"ExtGState\", \"ColorSpace\", \"Pattern\", \"Shading\", \"XObject\", \"Font\"],\n appearance\n );\n const bbox = appearanceDict.getArray(\"BBox\") || [0, 0, 1, 1];\n const matrix = appearanceDict.getArray(\"Matrix\") || [1, 0, 0, 1, 0, 0];\n const transform = getTransformMatrix(data.rect, bbox, matrix);\n\n const opList = new OperatorList();\n\n let optionalContent;\n if (this.oc) {\n optionalContent = await evaluator.parseMarkedContentProps(\n this.oc,\n /* resources = */ null\n );\n }\n if (optionalContent !== undefined) {\n opList.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n }\n\n opList.addOp(OPS.beginAnnotation, [\n data.id,\n data.rect,\n transform,\n matrix,\n isUsingOwnCanvas,\n ]);\n\n await evaluator.getOperatorList({\n stream: appearance,\n task,\n resources,\n operatorList: opList,\n fallbackFontDict: this._fallbackFontDict,\n });\n opList.addOp(OPS.endAnnotation, []);\n\n if (optionalContent !== undefined) {\n opList.addOp(OPS.endMarkedContent, []);\n }\n this.reset();\n return { opList, separateForm: false, separateCanvas: isUsingOwnCanvas };\n }\n\n async save(evaluator, task, annotationStorage) {\n return null;\n }\n\n get hasTextContent() {\n return false;\n }\n\n async extractTextContent(evaluator, task, viewBox) {\n if (!this.appearance) {\n return;\n }\n\n const resources = await this.loadResources(\n [\"ExtGState\", \"Font\", \"Properties\", \"XObject\"],\n this.appearance\n );\n\n const text = [];\n const buffer = [];\n let firstPosition = null;\n const sink = {\n desiredSize: Math.Infinity,\n ready: true,\n\n enqueue(chunk, size) {\n for (const item of chunk.items) {\n if (item.str === undefined) {\n continue;\n }\n firstPosition ||= item.transform.slice(-2);\n buffer.push(item.str);\n if (item.hasEOL) {\n text.push(buffer.join(\"\"));\n buffer.length = 0;\n }\n }\n },\n };\n\n await evaluator.getTextContent({\n stream: this.appearance,\n task,\n resources,\n includeMarkedContent: true,\n sink,\n viewBox,\n });\n this.reset();\n\n if (buffer.length) {\n text.push(buffer.join(\"\"));\n }\n\n if (text.length > 1 || text[0]) {\n const appearanceDict = this.appearance.dict;\n const bbox = appearanceDict.getArray(\"BBox\") || [0, 0, 1, 1];\n const matrix = appearanceDict.getArray(\"Matrix\") || [1, 0, 0, 1, 0, 0];\n const rect = this.data.rect;\n const transform = getTransformMatrix(rect, bbox, matrix);\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n firstPosition = Util.applyTransform(firstPosition, transform);\n firstPosition = Util.applyTransform(firstPosition, matrix);\n\n this.data.textPosition = firstPosition;\n this.data.textContent = text;\n }\n }\n\n /**\n * Get field data for usage in JS sandbox.\n *\n * Field object is defined here:\n * https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/js_api_reference.pdf#page=16\n *\n * @public\n * @memberof Annotation\n * @returns {Object | null}\n */\n getFieldObject() {\n if (this.data.kidIds) {\n return {\n id: this.data.id,\n actions: this.data.actions,\n name: this.data.fieldName,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n type: \"\",\n kidIds: this.data.kidIds,\n page: this.data.pageIndex,\n rotation: this.rotation,\n };\n }\n return null;\n }\n\n /**\n * Reset the annotation.\n *\n * This involves resetting the various streams that are either cached on the\n * annotation instance or created during its construction.\n *\n * @public\n * @memberof Annotation\n */\n reset() {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) &&\n this.appearance &&\n !this._streams.includes(this.appearance)\n ) {\n unreachable(\"The appearance stream should always be reset.\");\n }\n\n for (const stream of this._streams) {\n stream.reset();\n }\n }\n\n /**\n * Construct the (fully qualified) field name from the (partial) field\n * names of the field and its ancestors.\n *\n * @private\n * @memberof Annotation\n * @param {Dict} dict - Complete widget annotation dictionary\n * @returns {string}\n */\n _constructFieldName(dict) {\n // Both the `Parent` and `T` fields are optional. While at least one of\n // them should be provided, bad PDF generators may fail to do so.\n if (!dict.has(\"T\") && !dict.has(\"Parent\")) {\n warn(\"Unknown field name, falling back to empty field name.\");\n return \"\";\n }\n\n // If no parent exists, the partial and fully qualified names are equal.\n if (!dict.has(\"Parent\")) {\n return stringToPDFString(dict.get(\"T\"));\n }\n\n // Form the fully qualified field name by appending the partial name to\n // the parent's fully qualified name, separated by a period.\n const fieldName = [];\n if (dict.has(\"T\")) {\n fieldName.unshift(stringToPDFString(dict.get(\"T\")));\n }\n\n let loopDict = dict;\n const visited = new RefSet();\n if (dict.objId) {\n visited.put(dict.objId);\n }\n while (loopDict.has(\"Parent\")) {\n loopDict = loopDict.get(\"Parent\");\n if (\n !(loopDict instanceof Dict) ||\n (loopDict.objId && visited.has(loopDict.objId))\n ) {\n // Even though it is not allowed according to the PDF specification,\n // bad PDF generators may provide a `Parent` entry that is not a\n // dictionary, but `null` for example (issue 8143).\n //\n // If parent has been already visited, it means that we're\n // in an infinite loop.\n break;\n }\n if (loopDict.objId) {\n visited.put(loopDict.objId);\n }\n\n if (loopDict.has(\"T\")) {\n fieldName.unshift(stringToPDFString(loopDict.get(\"T\")));\n }\n }\n return fieldName.join(\".\");\n }\n}\n\n/**\n * Contains all data regarding an annotation's border style.\n */\nclass AnnotationBorderStyle {\n constructor() {\n this.width = 1;\n this.style = AnnotationBorderStyleType.SOLID;\n this.dashArray = [3];\n this.horizontalCornerRadius = 0;\n this.verticalCornerRadius = 0;\n }\n\n /**\n * Set the width.\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {number} width - The width.\n * @param {Array} rect - The annotation `Rect` entry.\n */\n setWidth(width, rect = [0, 0, 0, 0]) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n Array.isArray(rect) && rect.length === 4,\n \"A valid `rect` parameter must be provided.\"\n );\n }\n\n // Some corrupt PDF generators may provide the width as a `Name`,\n // rather than as a number (fixes issue 10385).\n if (width instanceof Name) {\n this.width = 0; // This is consistent with the behaviour in Adobe Reader.\n return;\n }\n if (typeof width === \"number\") {\n if (width > 0) {\n const maxWidth = (rect[2] - rect[0]) / 2;\n const maxHeight = (rect[3] - rect[1]) / 2;\n\n // Ignore large `width`s, since they lead to the Annotation overflowing\n // the size set by the `Rect` entry thus causing the `annotationLayer`\n // to render it over the surrounding document (fixes bug1552113.pdf).\n if (\n maxWidth > 0 &&\n maxHeight > 0 &&\n (width > maxWidth || width > maxHeight)\n ) {\n warn(`AnnotationBorderStyle.setWidth - ignoring width: ${width}`);\n width = 1;\n }\n }\n this.width = width;\n }\n }\n\n /**\n * Set the style.\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {Name} style - The annotation style.\n * @see {@link shared/util.js}\n */\n setStyle(style) {\n if (!(style instanceof Name)) {\n return;\n }\n switch (style.name) {\n case \"S\":\n this.style = AnnotationBorderStyleType.SOLID;\n break;\n\n case \"D\":\n this.style = AnnotationBorderStyleType.DASHED;\n break;\n\n case \"B\":\n this.style = AnnotationBorderStyleType.BEVELED;\n break;\n\n case \"I\":\n this.style = AnnotationBorderStyleType.INSET;\n break;\n\n case \"U\":\n this.style = AnnotationBorderStyleType.UNDERLINE;\n break;\n\n default:\n break;\n }\n }\n\n /**\n * Set the dash array.\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {Array} dashArray - The dash array with at least one element\n * @param {boolean} [forceStyle]\n */\n setDashArray(dashArray, forceStyle = false) {\n // We validate the dash array, but we do not use it because CSS does not\n // allow us to change spacing of dashes. For more information, visit\n // http://www.w3.org/TR/css3-background/#the-border-style.\n if (Array.isArray(dashArray) && dashArray.length > 0) {\n // According to the PDF specification: the elements in `dashArray`\n // shall be numbers that are nonnegative and not all equal to zero.\n let isValid = true;\n let allZeros = true;\n for (const element of dashArray) {\n const validNumber = +element >= 0;\n if (!validNumber) {\n isValid = false;\n break;\n } else if (element > 0) {\n allZeros = false;\n }\n }\n if (isValid && !allZeros) {\n this.dashArray = dashArray;\n\n if (forceStyle) {\n // Even though we cannot use the dash array in the display layer,\n // at least ensure that we use the correct border-style.\n this.setStyle(Name.get(\"D\"));\n }\n } else {\n this.width = 0; // Adobe behavior when the array is invalid.\n }\n } else if (dashArray) {\n this.width = 0; // Adobe behavior when the array is invalid.\n }\n }\n\n /**\n * Set the horizontal corner radius (from a Border dictionary).\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {number} radius - The horizontal corner radius.\n */\n setHorizontalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.horizontalCornerRadius = radius;\n }\n }\n\n /**\n * Set the vertical corner radius (from a Border dictionary).\n *\n * @public\n * @memberof AnnotationBorderStyle\n * @param {number} radius - The vertical corner radius.\n */\n setVerticalCornerRadius(radius) {\n if (Number.isInteger(radius)) {\n this.verticalCornerRadius = radius;\n }\n }\n}\n\nclass MarkupAnnotation extends Annotation {\n constructor(params) {\n super(params);\n\n const { dict } = params;\n\n if (dict.has(\"IRT\")) {\n const rawIRT = dict.getRaw(\"IRT\");\n this.data.inReplyTo = rawIRT instanceof Ref ? rawIRT.toString() : null;\n\n const rt = dict.get(\"RT\");\n this.data.replyType =\n rt instanceof Name ? rt.name : AnnotationReplyType.REPLY;\n }\n let popupRef = null;\n\n if (this.data.replyType === AnnotationReplyType.GROUP) {\n // Subordinate annotations in a group should inherit\n // the group attributes from the primary annotation.\n const parent = dict.get(\"IRT\");\n\n this.setTitle(parent.get(\"T\"));\n this.data.titleObj = this._title;\n\n this.setContents(parent.get(\"Contents\"));\n this.data.contentsObj = this._contents;\n\n if (!parent.has(\"CreationDate\")) {\n this.data.creationDate = null;\n } else {\n this.setCreationDate(parent.get(\"CreationDate\"));\n this.data.creationDate = this.creationDate;\n }\n\n if (!parent.has(\"M\")) {\n this.data.modificationDate = null;\n } else {\n this.setModificationDate(parent.get(\"M\"));\n this.data.modificationDate = this.modificationDate;\n }\n\n popupRef = parent.getRaw(\"Popup\");\n\n if (!parent.has(\"C\")) {\n // Fall back to the default background color.\n this.data.color = null;\n } else {\n this.setColor(parent.getArray(\"C\"));\n this.data.color = this.color;\n }\n } else {\n this.data.titleObj = this._title;\n\n this.setCreationDate(dict.get(\"CreationDate\"));\n this.data.creationDate = this.creationDate;\n\n popupRef = dict.getRaw(\"Popup\");\n\n if (!dict.has(\"C\")) {\n // Fall back to the default background color.\n this.data.color = null;\n }\n }\n\n this.data.popupRef = popupRef instanceof Ref ? popupRef.toString() : null;\n\n if (dict.has(\"RC\")) {\n this.data.richText = XFAFactory.getRichTextAsHtml(dict.get(\"RC\"));\n }\n }\n\n /**\n * Set the creation date.\n *\n * @public\n * @memberof MarkupAnnotation\n * @param {string} creationDate - PDF date string that indicates when the\n * annotation was originally created\n */\n setCreationDate(creationDate) {\n this.creationDate = typeof creationDate === \"string\" ? creationDate : null;\n }\n\n _setDefaultAppearance({\n xref,\n extra,\n strokeColor,\n fillColor,\n blendMode,\n strokeAlpha,\n fillAlpha,\n pointsCallback,\n }) {\n let minX = Number.MAX_VALUE;\n let minY = Number.MAX_VALUE;\n let maxX = Number.MIN_VALUE;\n let maxY = Number.MIN_VALUE;\n\n const buffer = [\"q\"];\n if (extra) {\n buffer.push(extra);\n }\n if (strokeColor) {\n buffer.push(`${strokeColor[0]} ${strokeColor[1]} ${strokeColor[2]} RG`);\n }\n if (fillColor) {\n buffer.push(`${fillColor[0]} ${fillColor[1]} ${fillColor[2]} rg`);\n }\n\n let pointsArray = this.data.quadPoints;\n if (!pointsArray) {\n // If there are no quadpoints, the rectangle should be used instead.\n // Convert the rectangle definition to a points array similar to how the\n // quadpoints are defined.\n pointsArray = [\n [\n { x: this.rectangle[0], y: this.rectangle[3] },\n { x: this.rectangle[2], y: this.rectangle[3] },\n { x: this.rectangle[0], y: this.rectangle[1] },\n { x: this.rectangle[2], y: this.rectangle[1] },\n ],\n ];\n }\n\n for (const points of pointsArray) {\n const [mX, MX, mY, MY] = pointsCallback(buffer, points);\n minX = Math.min(minX, mX);\n maxX = Math.max(maxX, MX);\n minY = Math.min(minY, mY);\n maxY = Math.max(maxY, MY);\n }\n buffer.push(\"Q\");\n\n const formDict = new Dict(xref);\n const appearanceStreamDict = new Dict(xref);\n appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n\n const appearanceStream = new StringStream(buffer.join(\" \"));\n appearanceStream.dict = appearanceStreamDict;\n formDict.set(\"Fm0\", appearanceStream);\n\n const gsDict = new Dict(xref);\n if (blendMode) {\n gsDict.set(\"BM\", Name.get(blendMode));\n }\n if (typeof strokeAlpha === \"number\") {\n gsDict.set(\"CA\", strokeAlpha);\n }\n if (typeof fillAlpha === \"number\") {\n gsDict.set(\"ca\", fillAlpha);\n }\n\n const stateDict = new Dict(xref);\n stateDict.set(\"GS0\", gsDict);\n\n const resources = new Dict(xref);\n resources.set(\"ExtGState\", stateDict);\n resources.set(\"XObject\", formDict);\n\n const appearanceDict = new Dict(xref);\n appearanceDict.set(\"Resources\", resources);\n const bbox = (this.data.rect = [minX, minY, maxX, maxY]);\n appearanceDict.set(\"BBox\", bbox);\n\n this.appearance = new StringStream(\"/GS0 gs /Fm0 Do\");\n this.appearance.dict = appearanceDict;\n\n // This method is only called if there is no appearance for the annotation,\n // so `this.appearance` is not pushed yet in the `Annotation` constructor.\n this._streams.push(this.appearance, appearanceStream);\n }\n\n static async createNewAnnotation(xref, annotation, dependencies, params) {\n const annotationRef = (annotation.ref ||= xref.getNewTemporaryRef());\n const ap = await this.createNewAppearanceStream(annotation, xref, params);\n const buffer = [];\n let annotationDict;\n\n if (ap) {\n const apRef = xref.getNewTemporaryRef();\n annotationDict = this.createNewDict(annotation, xref, { apRef });\n await writeObject(apRef, ap, buffer, xref);\n dependencies.push({ ref: apRef, data: buffer.join(\"\") });\n } else {\n annotationDict = this.createNewDict(annotation, xref, {});\n }\n if (Number.isInteger(annotation.parentTreeId)) {\n annotationDict.set(\"StructParent\", annotation.parentTreeId);\n }\n\n buffer.length = 0;\n await writeObject(annotationRef, annotationDict, buffer, xref);\n\n return { ref: annotationRef, data: buffer.join(\"\") };\n }\n\n static async createNewPrintAnnotation(\n annotationGlobals,\n xref,\n annotation,\n params\n ) {\n const ap = await this.createNewAppearanceStream(annotation, xref, params);\n const annotationDict = this.createNewDict(annotation, xref, { ap });\n\n const newAnnotation = new this.prototype.constructor({\n dict: annotationDict,\n xref,\n annotationGlobals,\n evaluatorOptions: params.evaluatorOptions,\n });\n\n if (annotation.ref) {\n newAnnotation.ref = newAnnotation.refToReplace = annotation.ref;\n }\n\n return newAnnotation;\n }\n}\n\nclass WidgetAnnotation extends Annotation {\n constructor(params) {\n super(params);\n\n const { dict, xref, annotationGlobals } = params;\n const data = this.data;\n this._needAppearances = params.needAppearances;\n\n data.annotationType = AnnotationType.WIDGET;\n if (data.fieldName === undefined) {\n data.fieldName = this._constructFieldName(dict);\n }\n\n if (data.actions === undefined) {\n data.actions = collectActions(xref, dict, AnnotationActionEventType);\n }\n\n let fieldValue = getInheritableProperty({\n dict,\n key: \"V\",\n getArray: true,\n });\n data.fieldValue = this._decodeFormValue(fieldValue);\n\n const defaultFieldValue = getInheritableProperty({\n dict,\n key: \"DV\",\n getArray: true,\n });\n data.defaultFieldValue = this._decodeFormValue(defaultFieldValue);\n\n if (fieldValue === undefined && annotationGlobals.xfaDatasets) {\n // Try to figure out if we have something in the xfa dataset.\n const path = this._title.str;\n if (path) {\n this._hasValueFromXFA = true;\n data.fieldValue = fieldValue =\n annotationGlobals.xfaDatasets.getValue(path);\n }\n }\n\n // When no \"V\" entry exists, let the fieldValue fallback to the \"DV\" entry\n // (fixes issue13823.pdf).\n if (fieldValue === undefined && data.defaultFieldValue !== null) {\n data.fieldValue = data.defaultFieldValue;\n }\n\n data.alternativeText = stringToPDFString(dict.get(\"TU\") || \"\");\n\n this.setDefaultAppearance(params);\n\n data.hasAppearance ||=\n this._needAppearances &&\n data.fieldValue !== undefined &&\n data.fieldValue !== null;\n\n const fieldType = getInheritableProperty({ dict, key: \"FT\" });\n data.fieldType = fieldType instanceof Name ? fieldType.name : null;\n\n const localResources = getInheritableProperty({ dict, key: \"DR\" });\n const acroFormResources = annotationGlobals.acroForm.get(\"DR\");\n const appearanceResources = this.appearance?.dict.get(\"Resources\");\n\n this._fieldResources = {\n localResources,\n acroFormResources,\n appearanceResources,\n mergedResources: Dict.merge({\n xref,\n dictArray: [localResources, appearanceResources, acroFormResources],\n mergeSubDicts: true,\n }),\n };\n\n data.fieldFlags = getInheritableProperty({ dict, key: \"Ff\" });\n if (!Number.isInteger(data.fieldFlags) || data.fieldFlags < 0) {\n data.fieldFlags = 0;\n }\n\n data.readOnly = this.hasFieldFlag(AnnotationFieldFlag.READONLY);\n data.required = this.hasFieldFlag(AnnotationFieldFlag.REQUIRED);\n data.hidden =\n this._hasFlag(data.annotationFlags, AnnotationFlag.HIDDEN) ||\n this._hasFlag(data.annotationFlags, AnnotationFlag.NOVIEW);\n }\n\n /**\n * Decode the given form value.\n *\n * @private\n * @memberof WidgetAnnotation\n * @param {Array<string>|Name|string} formValue - The (possibly encoded)\n * form value.\n * @returns {Array<string>|string|null}\n */\n _decodeFormValue(formValue) {\n if (Array.isArray(formValue)) {\n return formValue\n .filter(item => typeof item === \"string\")\n .map(item => stringToPDFString(item));\n } else if (formValue instanceof Name) {\n return stringToPDFString(formValue.name);\n } else if (typeof formValue === \"string\") {\n return stringToPDFString(formValue);\n }\n return null;\n }\n\n /**\n * Check if a provided field flag is set.\n *\n * @public\n * @memberof WidgetAnnotation\n * @param {number} flag - Hexadecimal representation for an annotation\n * field characteristic\n * @returns {boolean}\n * @see {@link shared/util.js}\n */\n hasFieldFlag(flag) {\n return !!(this.data.fieldFlags & flag);\n }\n\n /** @inheritdoc */\n _isViewable(flags) {\n // We don't take into account the `NOVIEW` or `HIDDEN` flags here,\n // since the visibility can be changed by js code, hence in case\n // it's made viewable, we should render it (with visibility set to\n // hidden).\n // We don't take into account the `INVISIBLE` flag here, since we've a known\n // annotation type.\n return true;\n }\n\n /** @inheritdoc */\n mustBeViewed(annotationStorage, renderForms) {\n if (renderForms) {\n return this.viewable;\n }\n return (\n super.mustBeViewed(annotationStorage, renderForms) &&\n !this._hasFlag(this.flags, AnnotationFlag.NOVIEW)\n );\n }\n\n getRotationMatrix(annotationStorage) {\n let rotation = annotationStorage?.get(this.data.id)?.rotation;\n if (rotation === undefined) {\n rotation = this.rotation;\n }\n\n if (rotation === 0) {\n return IDENTITY_MATRIX;\n }\n\n const width = this.data.rect[2] - this.data.rect[0];\n const height = this.data.rect[3] - this.data.rect[1];\n\n return getRotationMatrix(rotation, width, height);\n }\n\n getBorderAndBackgroundAppearances(annotationStorage) {\n let rotation = annotationStorage?.get(this.data.id)?.rotation;\n if (rotation === undefined) {\n rotation = this.rotation;\n }\n\n if (!this.backgroundColor && !this.borderColor) {\n return \"\";\n }\n const width = this.data.rect[2] - this.data.rect[0];\n const height = this.data.rect[3] - this.data.rect[1];\n const rect =\n rotation === 0 || rotation === 180\n ? `0 0 ${width} ${height} re`\n : `0 0 ${height} ${width} re`;\n\n let str = \"\";\n if (this.backgroundColor) {\n str = `${getPdfColor(\n this.backgroundColor,\n /* isFill */ true\n )} ${rect} f `;\n }\n\n if (this.borderColor) {\n const borderWidth = this.borderStyle.width || 1;\n str += `${borderWidth} w ${getPdfColor(\n this.borderColor,\n /* isFill */ false\n )} ${rect} S `;\n }\n\n return str;\n }\n\n async getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n ) {\n // Do not render form elements on the canvas when interactive forms are\n // enabled. The display layer is responsible for rendering them instead.\n if (\n renderForms &&\n !(this instanceof SignatureWidgetAnnotation) &&\n !this.data.noHTML &&\n !this.data.hasOwnCanvas\n ) {\n return {\n opList: new OperatorList(),\n separateForm: true,\n separateCanvas: false,\n };\n }\n\n if (!this._hasText) {\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n }\n\n const content = await this._getAppearance(\n evaluator,\n task,\n intent,\n annotationStorage\n );\n if (this.appearance && content === null) {\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n }\n\n const opList = new OperatorList();\n\n // Even if there is an appearance stream, ignore it. This is the\n // behaviour used by Adobe Reader.\n if (!this._defaultAppearance || content === null) {\n return { opList, separateForm: false, separateCanvas: false };\n }\n\n const isUsingOwnCanvas = !!(\n this.data.hasOwnCanvas && intent & RenderingIntentFlag.DISPLAY\n );\n\n const matrix = [1, 0, 0, 1, 0, 0];\n const bbox = [\n 0,\n 0,\n this.data.rect[2] - this.data.rect[0],\n this.data.rect[3] - this.data.rect[1],\n ];\n const transform = getTransformMatrix(this.data.rect, bbox, matrix);\n\n let optionalContent;\n if (this.oc) {\n optionalContent = await evaluator.parseMarkedContentProps(\n this.oc,\n /* resources = */ null\n );\n }\n if (optionalContent !== undefined) {\n opList.addOp(OPS.beginMarkedContentProps, [\"OC\", optionalContent]);\n }\n\n opList.addOp(OPS.beginAnnotation, [\n this.data.id,\n this.data.rect,\n transform,\n this.getRotationMatrix(annotationStorage),\n isUsingOwnCanvas,\n ]);\n\n const stream = new StringStream(content);\n await evaluator.getOperatorList({\n stream,\n task,\n resources: this._fieldResources.mergedResources,\n operatorList: opList,\n });\n opList.addOp(OPS.endAnnotation, []);\n\n if (optionalContent !== undefined) {\n opList.addOp(OPS.endMarkedContent, []);\n }\n return { opList, separateForm: false, separateCanvas: isUsingOwnCanvas };\n }\n\n _getMKDict(rotation) {\n const mk = new Dict(null);\n if (rotation) {\n mk.set(\"R\", rotation);\n }\n if (this.borderColor) {\n mk.set(\"BC\", getPdfColorArray(this.borderColor));\n }\n if (this.backgroundColor) {\n mk.set(\"BG\", getPdfColorArray(this.backgroundColor));\n }\n return mk.size > 0 ? mk : null;\n }\n\n amendSavedDict(annotationStorage, dict) {}\n\n async save(evaluator, task, annotationStorage) {\n const storageEntry = annotationStorage?.get(this.data.id);\n let value = storageEntry?.value,\n rotation = storageEntry?.rotation;\n if (value === this.data.fieldValue || value === undefined) {\n if (!this._hasValueFromXFA && rotation === undefined) {\n return null;\n }\n value ||= this.data.fieldValue;\n }\n\n // Value can be an array (with choice list and multiple selections)\n if (\n rotation === undefined &&\n !this._hasValueFromXFA &&\n Array.isArray(value) &&\n Array.isArray(this.data.fieldValue) &&\n value.length === this.data.fieldValue.length &&\n value.every((x, i) => x === this.data.fieldValue[i])\n ) {\n return null;\n }\n\n if (rotation === undefined) {\n rotation = this.rotation;\n }\n\n let appearance = null;\n if (!this._needAppearances) {\n appearance = await this._getAppearance(\n evaluator,\n task,\n RenderingIntentFlag.SAVE,\n annotationStorage\n );\n if (appearance === null) {\n // Appearance didn't change.\n return null;\n }\n } else {\n // No need to create an appearance: the pdf has the flag /NeedAppearances\n // which means that it's up to the reader to produce an appearance.\n }\n\n let needAppearances = false;\n if (appearance?.needAppearances) {\n needAppearances = true;\n appearance = null;\n }\n\n const { xref } = evaluator;\n\n const originalDict = xref.fetchIfRef(this.ref);\n if (!(originalDict instanceof Dict)) {\n return null;\n }\n\n const dict = new Dict(xref);\n for (const key of originalDict.getKeys()) {\n if (key !== \"AP\") {\n dict.set(key, originalDict.getRaw(key));\n }\n }\n\n const xfa = {\n path: this.data.fieldName,\n value,\n };\n\n const encoder = val => {\n return isAscii(val)\n ? val\n : stringToUTF16String(val, /* bigEndian = */ true);\n };\n dict.set(\"V\", Array.isArray(value) ? value.map(encoder) : encoder(value));\n this.amendSavedDict(annotationStorage, dict);\n\n const maybeMK = this._getMKDict(rotation);\n if (maybeMK) {\n dict.set(\"MK\", maybeMK);\n }\n\n const buffer = [];\n const changes = [\n // data for the original object\n // V field changed + reference for new AP\n { ref: this.ref, data: \"\", xfa, needAppearances },\n ];\n if (appearance !== null) {\n const newRef = xref.getNewTemporaryRef();\n const AP = new Dict(xref);\n dict.set(\"AP\", AP);\n AP.set(\"N\", newRef);\n\n const resources = this._getSaveFieldResources(xref);\n const appearanceStream = new StringStream(appearance);\n const appearanceDict = (appearanceStream.dict = new Dict(xref));\n appearanceDict.set(\"Subtype\", Name.get(\"Form\"));\n appearanceDict.set(\"Resources\", resources);\n appearanceDict.set(\"BBox\", [\n 0,\n 0,\n this.data.rect[2] - this.data.rect[0],\n this.data.rect[3] - this.data.rect[1],\n ]);\n\n const rotationMatrix = this.getRotationMatrix(annotationStorage);\n if (rotationMatrix !== IDENTITY_MATRIX) {\n // The matrix isn't the identity one.\n appearanceDict.set(\"Matrix\", rotationMatrix);\n }\n\n await writeObject(newRef, appearanceStream, buffer, xref);\n\n changes.push(\n // data for the new AP\n {\n ref: newRef,\n data: buffer.join(\"\"),\n xfa: null,\n needAppearances: false,\n }\n );\n buffer.length = 0;\n }\n\n dict.set(\"M\", `D:${getModificationDate()}`);\n await writeObject(this.ref, dict, buffer, xref);\n\n changes[0].data = buffer.join(\"\");\n\n return changes;\n }\n\n async _getAppearance(evaluator, task, intent, annotationStorage) {\n const isPassword = this.hasFieldFlag(AnnotationFieldFlag.PASSWORD);\n if (isPassword) {\n return null;\n }\n const storageEntry = annotationStorage?.get(this.data.id);\n let value, rotation;\n if (storageEntry) {\n value = storageEntry.formattedValue || storageEntry.value;\n rotation = storageEntry.rotation;\n }\n\n if (\n rotation === undefined &&\n value === undefined &&\n !this._needAppearances\n ) {\n if (!this._hasValueFromXFA || this.appearance) {\n // The annotation hasn't been rendered so use the appearance.\n return null;\n }\n }\n\n // Empty or it has a trailing whitespace.\n const colors = this.getBorderAndBackgroundAppearances(annotationStorage);\n\n if (value === undefined) {\n // The annotation has its value in XFA datasets but not in the V field.\n value = this.data.fieldValue;\n if (!value) {\n return `/Tx BMC q ${colors}Q EMC`;\n }\n }\n\n if (Array.isArray(value) && value.length === 1) {\n value = value[0];\n }\n\n assert(typeof value === \"string\", \"Expected `value` to be a string.\");\n value = value.trim();\n\n if (this.data.combo) {\n // The value can be one of the exportValue or any other values.\n const option = this.data.options.find(\n ({ exportValue }) => value === exportValue\n );\n value = option?.displayValue || value;\n }\n\n if (value === \"\") {\n // the field is empty: nothing to render\n return `/Tx BMC q ${colors}Q EMC`;\n }\n\n if (rotation === undefined) {\n rotation = this.rotation;\n }\n\n let lineCount = -1;\n let lines;\n\n // We could have a text containing for example some sequences of chars and\n // their diacritics (e.g. \"é\".normalize(\"NFKD\") shows 1 char when it's 2).\n // Positioning diacritics is really something we don't want to do here.\n // So if a font has a glyph for a acute accent and one for \"e\" then we won't\n // get any encoding issues but we'll render \"e\" and then \"´\".\n // It's why we normalize the string. We use NFC to preserve the initial\n // string, (e.g. \"²\".normalize(\"NFC\") === \"²\"\n // but \"²\".normalize(\"NFKC\") === \"2\").\n //\n // TODO: it isn't a perfect solution, some chars like \"ẹ́\" will be\n // decomposed into two chars (\"ẹ\" and \"´\"), so we should detect such\n // situations and then use either FakeUnicodeFont or set the\n // /NeedAppearances flag.\n if (this.data.multiLine) {\n lines = value.split(/\\r\\n?|\\n/).map(line => line.normalize(\"NFC\"));\n lineCount = lines.length;\n } else {\n lines = [value.replace(/\\r\\n?|\\n/, \"\").normalize(\"NFC\")];\n }\n\n const defaultPadding = 1;\n const defaultHPadding = 2;\n let totalHeight = this.data.rect[3] - this.data.rect[1];\n let totalWidth = this.data.rect[2] - this.data.rect[0];\n\n if (rotation === 90 || rotation === 270) {\n [totalWidth, totalHeight] = [totalHeight, totalWidth];\n }\n\n if (!this._defaultAppearance) {\n // The DA is required and must be a string.\n // If there is no font named Helvetica in the resource dictionary,\n // the evaluator will fall back to a default font.\n // Doing so prevents exceptions and allows saving/printing\n // the file as expected.\n this.data.defaultAppearanceData = parseDefaultAppearance(\n (this._defaultAppearance = \"/Helvetica 0 Tf 0 g\")\n );\n }\n\n let font = await WidgetAnnotation._getFontData(\n evaluator,\n task,\n this.data.defaultAppearanceData,\n this._fieldResources.mergedResources\n );\n\n let defaultAppearance, fontSize, lineHeight;\n const encodedLines = [];\n let encodingError = false;\n for (const line of lines) {\n const encodedString = font.encodeString(line);\n if (encodedString.length > 1) {\n encodingError = true;\n }\n encodedLines.push(encodedString.join(\"\"));\n }\n\n if (encodingError && intent & RenderingIntentFlag.SAVE) {\n // We don't have a way to render the field, so we just rely on the\n // /NeedAppearances trick to let the different sofware correctly render\n // this pdf.\n return { needAppearances: true };\n }\n\n // We check that the font is able to encode the string.\n if (encodingError && this._isOffscreenCanvasSupported) {\n // If it can't then we fallback on fake unicode font (mapped to sans-serif\n // for the rendering).\n // It means that a printed form can be rendered differently (it depends on\n // the sans-serif font) but at least we've something to render.\n // In an ideal world the associated font should correctly handle the\n // possible chars but a user can add a smiley or whatever.\n // We could try to embed a font but it means that we must have access\n // to the raw font file.\n const fontFamily = this.data.comb ? \"monospace\" : \"sans-serif\";\n const fakeUnicodeFont = new FakeUnicodeFont(evaluator.xref, fontFamily);\n const resources = fakeUnicodeFont.createFontResources(lines.join(\"\"));\n const newFont = resources.getRaw(\"Font\");\n\n if (this._fieldResources.mergedResources.has(\"Font\")) {\n const oldFont = this._fieldResources.mergedResources.get(\"Font\");\n for (const key of newFont.getKeys()) {\n oldFont.set(key, newFont.getRaw(key));\n }\n } else {\n this._fieldResources.mergedResources.set(\"Font\", newFont);\n }\n\n const fontName = fakeUnicodeFont.fontName.name;\n font = await WidgetAnnotation._getFontData(\n evaluator,\n task,\n { fontName, fontSize: 0 },\n resources\n );\n\n for (let i = 0, ii = encodedLines.length; i < ii; i++) {\n encodedLines[i] = stringToUTF16String(lines[i]);\n }\n\n const savedDefaultAppearance = Object.assign(\n Object.create(null),\n this.data.defaultAppearanceData\n );\n this.data.defaultAppearanceData.fontSize = 0;\n this.data.defaultAppearanceData.fontName = fontName;\n\n [defaultAppearance, fontSize, lineHeight] = this._computeFontSize(\n totalHeight - 2 * defaultPadding,\n totalWidth - 2 * defaultHPadding,\n value,\n font,\n lineCount\n );\n\n this.data.defaultAppearanceData = savedDefaultAppearance;\n } else {\n if (!this._isOffscreenCanvasSupported) {\n warn(\n \"_getAppearance: OffscreenCanvas is not supported, annotation may not render correctly.\"\n );\n }\n\n [defaultAppearance, fontSize, lineHeight] = this._computeFontSize(\n totalHeight - 2 * defaultPadding,\n totalWidth - 2 * defaultHPadding,\n value,\n font,\n lineCount\n );\n }\n\n let descent = font.descent;\n if (isNaN(descent)) {\n descent = BASELINE_FACTOR * lineHeight;\n } else {\n descent = Math.max(\n BASELINE_FACTOR * lineHeight,\n Math.abs(descent) * fontSize\n );\n }\n\n // Take into account the space we have to compute the default vertical\n // padding.\n const defaultVPadding = Math.min(\n Math.floor((totalHeight - fontSize) / 2),\n defaultPadding\n );\n const alignment = this.data.textAlignment;\n\n if (this.data.multiLine) {\n return this._getMultilineAppearance(\n defaultAppearance,\n encodedLines,\n font,\n fontSize,\n totalWidth,\n totalHeight,\n alignment,\n defaultHPadding,\n defaultVPadding,\n descent,\n lineHeight,\n annotationStorage\n );\n }\n\n if (this.data.comb) {\n return this._getCombAppearance(\n defaultAppearance,\n font,\n encodedLines[0],\n fontSize,\n totalWidth,\n totalHeight,\n defaultHPadding,\n defaultVPadding,\n descent,\n lineHeight,\n annotationStorage\n );\n }\n\n const bottomPadding = defaultVPadding + descent;\n if (alignment === 0 || alignment > 2) {\n // Left alignment: nothing to do\n return (\n `/Tx BMC q ${colors}BT ` +\n defaultAppearance +\n ` 1 0 0 1 ${numberToString(defaultHPadding)} ${numberToString(\n bottomPadding\n )} Tm (${escapeString(encodedLines[0])}) Tj` +\n \" ET Q EMC\"\n );\n }\n\n const prevInfo = { shift: 0 };\n const renderedText = this._renderText(\n encodedLines[0],\n font,\n fontSize,\n totalWidth,\n alignment,\n prevInfo,\n defaultHPadding,\n bottomPadding\n );\n return (\n `/Tx BMC q ${colors}BT ` +\n defaultAppearance +\n ` 1 0 0 1 0 0 Tm ${renderedText}` +\n \" ET Q EMC\"\n );\n }\n\n static async _getFontData(evaluator, task, appearanceData, resources) {\n const operatorList = new OperatorList();\n const initialState = {\n font: null,\n clone() {\n return this;\n },\n };\n\n const { fontName, fontSize } = appearanceData;\n await evaluator.handleSetFont(\n resources,\n [fontName && Name.get(fontName), fontSize],\n /* fontRef = */ null,\n operatorList,\n task,\n initialState,\n /* fallbackFontDict = */ null\n );\n\n return initialState.font;\n }\n\n _getTextWidth(text, font) {\n return (\n font\n .charsToGlyphs(text)\n .reduce((width, glyph) => width + glyph.width, 0) / 1000\n );\n }\n\n _computeFontSize(height, width, text, font, lineCount) {\n let { fontSize } = this.data.defaultAppearanceData;\n let lineHeight = (fontSize || 12) * LINE_FACTOR,\n numberOfLines = Math.round(height / lineHeight);\n\n if (!fontSize) {\n // A zero value for size means that the font shall be auto-sized:\n // its size shall be computed as a function of the height of the\n // annotation rectangle (see 12.7.3.3).\n\n const roundWithTwoDigits = x => Math.floor(x * 100) / 100;\n\n if (lineCount === -1) {\n const textWidth = this._getTextWidth(text, font);\n fontSize = roundWithTwoDigits(\n Math.min(\n height / LINE_FACTOR,\n textWidth > width ? width / textWidth : Infinity\n )\n );\n numberOfLines = 1;\n } else {\n const lines = text.split(/\\r\\n?|\\n/);\n const cachedLines = [];\n for (const line of lines) {\n const encoded = font.encodeString(line).join(\"\");\n const glyphs = font.charsToGlyphs(encoded);\n const positions = font.getCharPositions(encoded);\n cachedLines.push({\n line: encoded,\n glyphs,\n positions,\n });\n }\n\n const isTooBig = fsize => {\n // Return true when the text doesn't fit the given height.\n let totalHeight = 0;\n for (const cache of cachedLines) {\n const chunks = this._splitLine(null, font, fsize, width, cache);\n totalHeight += chunks.length * fsize;\n if (totalHeight > height) {\n return true;\n }\n }\n return false;\n };\n\n // Hard to guess how many lines there are.\n // The field may have been sized to have 10 lines\n // and the user entered only 1 so if we get font size from\n // height and number of lines then we'll get something too big.\n // So we compute a fake number of lines based on height and\n // a font size equal to 12 (this is the default font size in\n // Acrobat).\n // Then we'll adjust font size to what we have really.\n numberOfLines = Math.max(numberOfLines, lineCount);\n\n while (true) {\n lineHeight = height / numberOfLines;\n fontSize = roundWithTwoDigits(lineHeight / LINE_FACTOR);\n\n if (isTooBig(fontSize)) {\n numberOfLines++;\n continue;\n }\n\n break;\n }\n }\n\n const { fontName, fontColor } = this.data.defaultAppearanceData;\n this._defaultAppearance = createDefaultAppearance({\n fontSize,\n fontName,\n fontColor,\n });\n }\n\n return [this._defaultAppearance, fontSize, height / numberOfLines];\n }\n\n _renderText(\n text,\n font,\n fontSize,\n totalWidth,\n alignment,\n prevInfo,\n hPadding,\n vPadding\n ) {\n // TODO: we need to take into account (if possible) how the text\n // is rendered. For example in arabic, the cumulated width of some\n // glyphs isn't equal to the width of the rendered glyphs because\n // of ligatures.\n let shift;\n if (alignment === 1) {\n // Center\n const width = this._getTextWidth(text, font) * fontSize;\n shift = (totalWidth - width) / 2;\n } else if (alignment === 2) {\n // Right\n const width = this._getTextWidth(text, font) * fontSize;\n shift = totalWidth - width - hPadding;\n } else {\n shift = hPadding;\n }\n const shiftStr = numberToString(shift - prevInfo.shift);\n prevInfo.shift = shift;\n vPadding = numberToString(vPadding);\n\n return `${shiftStr} ${vPadding} Td (${escapeString(text)}) Tj`;\n }\n\n /**\n * @private\n */\n _getSaveFieldResources(xref) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n this.data.defaultAppearanceData,\n \"Expected `_defaultAppearanceData` to have been set.\"\n );\n }\n const { localResources, appearanceResources, acroFormResources } =\n this._fieldResources;\n\n const fontName = this.data.defaultAppearanceData?.fontName;\n if (!fontName) {\n return localResources || Dict.empty;\n }\n\n for (const resources of [localResources, appearanceResources]) {\n if (resources instanceof Dict) {\n const localFont = resources.get(\"Font\");\n if (localFont instanceof Dict && localFont.has(fontName)) {\n return resources;\n }\n }\n }\n if (acroFormResources instanceof Dict) {\n const acroFormFont = acroFormResources.get(\"Font\");\n if (acroFormFont instanceof Dict && acroFormFont.has(fontName)) {\n const subFontDict = new Dict(xref);\n subFontDict.set(fontName, acroFormFont.getRaw(fontName));\n\n const subResourcesDict = new Dict(xref);\n subResourcesDict.set(\"Font\", subFontDict);\n\n return Dict.merge({\n xref,\n dictArray: [subResourcesDict, localResources],\n mergeSubDicts: true,\n });\n }\n }\n return localResources || Dict.empty;\n }\n\n getFieldObject() {\n return null;\n }\n}\n\nclass TextWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n this.data.hasOwnCanvas = this.data.readOnly && !this.data.noHTML;\n this._hasText = true;\n\n const dict = params.dict;\n\n // The field value is always a string.\n if (typeof this.data.fieldValue !== \"string\") {\n this.data.fieldValue = \"\";\n }\n\n // Determine the alignment of text in the field.\n let alignment = getInheritableProperty({ dict, key: \"Q\" });\n if (!Number.isInteger(alignment) || alignment < 0 || alignment > 2) {\n alignment = null;\n }\n this.data.textAlignment = alignment;\n\n // Determine the maximum length of text in the field.\n let maximumLength = getInheritableProperty({ dict, key: \"MaxLen\" });\n if (!Number.isInteger(maximumLength) || maximumLength < 0) {\n maximumLength = 0;\n }\n this.data.maxLen = maximumLength;\n\n // Process field flags for the display layer.\n this.data.multiLine = this.hasFieldFlag(AnnotationFieldFlag.MULTILINE);\n this.data.comb =\n this.hasFieldFlag(AnnotationFieldFlag.COMB) &&\n !this.hasFieldFlag(AnnotationFieldFlag.MULTILINE) &&\n !this.hasFieldFlag(AnnotationFieldFlag.PASSWORD) &&\n !this.hasFieldFlag(AnnotationFieldFlag.FILESELECT) &&\n this.data.maxLen !== 0;\n this.data.doNotScroll = this.hasFieldFlag(AnnotationFieldFlag.DONOTSCROLL);\n }\n\n get hasTextContent() {\n return !!this.appearance && !this._needAppearances;\n }\n\n _getCombAppearance(\n defaultAppearance,\n font,\n text,\n fontSize,\n width,\n height,\n hPadding,\n vPadding,\n descent,\n lineHeight,\n annotationStorage\n ) {\n const combWidth = width / this.data.maxLen;\n // Empty or it has a trailing whitespace.\n const colors = this.getBorderAndBackgroundAppearances(annotationStorage);\n\n const buf = [];\n const positions = font.getCharPositions(text);\n for (const [start, end] of positions) {\n buf.push(`(${escapeString(text.substring(start, end))}) Tj`);\n }\n\n const renderedComb = buf.join(` ${numberToString(combWidth)} 0 Td `);\n return (\n `/Tx BMC q ${colors}BT ` +\n defaultAppearance +\n ` 1 0 0 1 ${numberToString(hPadding)} ${numberToString(\n vPadding + descent\n )} Tm ${renderedComb}` +\n \" ET Q EMC\"\n );\n }\n\n _getMultilineAppearance(\n defaultAppearance,\n lines,\n font,\n fontSize,\n width,\n height,\n alignment,\n hPadding,\n vPadding,\n descent,\n lineHeight,\n annotationStorage\n ) {\n const buf = [];\n const totalWidth = width - 2 * hPadding;\n const prevInfo = { shift: 0 };\n for (let i = 0, ii = lines.length; i < ii; i++) {\n const line = lines[i];\n const chunks = this._splitLine(line, font, fontSize, totalWidth);\n for (let j = 0, jj = chunks.length; j < jj; j++) {\n const chunk = chunks[j];\n const vShift =\n i === 0 && j === 0 ? -vPadding - (lineHeight - descent) : -lineHeight;\n buf.push(\n this._renderText(\n chunk,\n font,\n fontSize,\n width,\n alignment,\n prevInfo,\n hPadding,\n vShift\n )\n );\n }\n }\n\n // Empty or it has a trailing whitespace.\n const colors = this.getBorderAndBackgroundAppearances(annotationStorage);\n const renderedText = buf.join(\"\\n\");\n\n return (\n `/Tx BMC q ${colors}BT ` +\n defaultAppearance +\n ` 1 0 0 1 0 ${numberToString(height)} Tm ${renderedText}` +\n \" ET Q EMC\"\n );\n }\n\n _splitLine(line, font, fontSize, width, cache = {}) {\n line = cache.line || line;\n\n const glyphs = cache.glyphs || font.charsToGlyphs(line);\n\n if (glyphs.length <= 1) {\n // Nothing to split\n return [line];\n }\n\n const positions = cache.positions || font.getCharPositions(line);\n const scale = fontSize / 1000;\n const chunks = [];\n\n let lastSpacePosInStringStart = -1,\n lastSpacePosInStringEnd = -1,\n lastSpacePos = -1,\n startChunk = 0,\n currentWidth = 0;\n\n for (let i = 0, ii = glyphs.length; i < ii; i++) {\n const [start, end] = positions[i];\n const glyph = glyphs[i];\n const glyphWidth = glyph.width * scale;\n if (glyph.unicode === \" \") {\n if (currentWidth + glyphWidth > width) {\n // We can break here\n chunks.push(line.substring(startChunk, start));\n startChunk = start;\n currentWidth = glyphWidth;\n lastSpacePosInStringStart = -1;\n lastSpacePos = -1;\n } else {\n currentWidth += glyphWidth;\n lastSpacePosInStringStart = start;\n lastSpacePosInStringEnd = end;\n lastSpacePos = i;\n }\n } else if (currentWidth + glyphWidth > width) {\n // We must break to the last white position (if available)\n if (lastSpacePosInStringStart !== -1) {\n chunks.push(line.substring(startChunk, lastSpacePosInStringEnd));\n startChunk = lastSpacePosInStringEnd;\n i = lastSpacePos + 1;\n lastSpacePosInStringStart = -1;\n currentWidth = 0;\n } else {\n // Just break in the middle of the word\n chunks.push(line.substring(startChunk, start));\n startChunk = start;\n currentWidth = glyphWidth;\n }\n } else {\n currentWidth += glyphWidth;\n }\n }\n\n if (startChunk < line.length) {\n chunks.push(line.substring(startChunk, line.length));\n }\n\n return chunks;\n }\n\n getFieldObject() {\n return {\n id: this.data.id,\n value: this.data.fieldValue,\n defaultValue: this.data.defaultFieldValue || \"\",\n multiline: this.data.multiLine,\n password: this.hasFieldFlag(AnnotationFieldFlag.PASSWORD),\n charLimit: this.data.maxLen,\n comb: this.data.comb,\n editable: !this.data.readOnly,\n hidden: this.data.hidden,\n name: this.data.fieldName,\n rect: this.data.rect,\n actions: this.data.actions,\n page: this.data.pageIndex,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n rotation: this.rotation,\n type: \"text\",\n };\n }\n}\n\nclass ButtonWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n this.checkedAppearance = null;\n this.uncheckedAppearance = null;\n\n this.data.checkBox =\n !this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&\n !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n this.data.radioButton =\n this.hasFieldFlag(AnnotationFieldFlag.RADIO) &&\n !this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n this.data.pushButton = this.hasFieldFlag(AnnotationFieldFlag.PUSHBUTTON);\n this.data.isTooltipOnly = false;\n\n if (this.data.checkBox) {\n this._processCheckBox(params);\n } else if (this.data.radioButton) {\n this._processRadioButton(params);\n } else if (this.data.pushButton) {\n this.data.hasOwnCanvas = true;\n this.data.noHTML = false;\n this._processPushButton(params);\n } else {\n warn(\"Invalid field flags for button widget annotation\");\n }\n }\n\n async getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n ) {\n if (this.data.pushButton) {\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n false, // we use normalAppearance to render the button\n annotationStorage\n );\n }\n\n let value = null;\n let rotation = null;\n if (annotationStorage) {\n const storageEntry = annotationStorage.get(this.data.id);\n value = storageEntry ? storageEntry.value : null;\n rotation = storageEntry ? storageEntry.rotation : null;\n }\n\n if (value === null && this.appearance) {\n // Nothing in the annotationStorage.\n // But we've a default appearance so use it.\n return super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n }\n\n if (value === null || value === undefined) {\n // There is no default appearance so use the one derived\n // from the field value.\n value = this.data.checkBox\n ? this.data.fieldValue === this.data.exportValue\n : this.data.fieldValue === this.data.buttonValue;\n }\n\n const appearance = value\n ? this.checkedAppearance\n : this.uncheckedAppearance;\n if (appearance) {\n const savedAppearance = this.appearance;\n const savedMatrix = appearance.dict.getArray(\"Matrix\") || IDENTITY_MATRIX;\n\n if (rotation) {\n appearance.dict.set(\n \"Matrix\",\n this.getRotationMatrix(annotationStorage)\n );\n }\n\n this.appearance = appearance;\n const operatorList = super.getOperatorList(\n evaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n );\n this.appearance = savedAppearance;\n appearance.dict.set(\"Matrix\", savedMatrix);\n return operatorList;\n }\n\n // No appearance\n return {\n opList: new OperatorList(),\n separateForm: false,\n separateCanvas: false,\n };\n }\n\n async save(evaluator, task, annotationStorage) {\n if (this.data.checkBox) {\n return this._saveCheckbox(evaluator, task, annotationStorage);\n }\n\n if (this.data.radioButton) {\n return this._saveRadioButton(evaluator, task, annotationStorage);\n }\n\n // Nothing to save\n return null;\n }\n\n async _saveCheckbox(evaluator, task, annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n const storageEntry = annotationStorage.get(this.data.id);\n let rotation = storageEntry?.rotation,\n value = storageEntry?.value;\n\n if (rotation === undefined) {\n if (value === undefined) {\n return null;\n }\n\n const defaultValue = this.data.fieldValue === this.data.exportValue;\n if (defaultValue === value) {\n return null;\n }\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n if (!(dict instanceof Dict)) {\n return null;\n }\n\n if (rotation === undefined) {\n rotation = this.rotation;\n }\n if (value === undefined) {\n value = this.data.fieldValue === this.data.exportValue;\n }\n\n const xfa = {\n path: this.data.fieldName,\n value: value ? this.data.exportValue : \"\",\n };\n\n const name = Name.get(value ? this.data.exportValue : \"Off\");\n dict.set(\"V\", name);\n dict.set(\"AS\", name);\n dict.set(\"M\", `D:${getModificationDate()}`);\n\n const maybeMK = this._getMKDict(rotation);\n if (maybeMK) {\n dict.set(\"MK\", maybeMK);\n }\n\n const buffer = [];\n await writeObject(this.ref, dict, buffer, evaluator.xref);\n\n return [{ ref: this.ref, data: buffer.join(\"\"), xfa }];\n }\n\n async _saveRadioButton(evaluator, task, annotationStorage) {\n if (!annotationStorage) {\n return null;\n }\n const storageEntry = annotationStorage.get(this.data.id);\n let rotation = storageEntry?.rotation,\n value = storageEntry?.value;\n\n if (rotation === undefined) {\n if (value === undefined) {\n return null;\n }\n\n const defaultValue = this.data.fieldValue === this.data.buttonValue;\n if (defaultValue === value) {\n return null;\n }\n }\n\n const dict = evaluator.xref.fetchIfRef(this.ref);\n if (!(dict instanceof Dict)) {\n return null;\n }\n\n if (value === undefined) {\n value = this.data.fieldValue === this.data.buttonValue;\n }\n\n if (rotation === undefined) {\n rotation = this.rotation;\n }\n\n const xfa = {\n path: this.data.fieldName,\n value: value ? this.data.buttonValue : \"\",\n };\n\n const name = Name.get(value ? this.data.buttonValue : \"Off\");\n const buffer = [];\n let parentData = null;\n\n if (value) {\n if (this.parent instanceof Ref) {\n const parent = evaluator.xref.fetch(this.parent);\n parent.set(\"V\", name);\n await writeObject(this.parent, parent, buffer, evaluator.xref);\n parentData = buffer.join(\"\");\n buffer.length = 0;\n } else if (this.parent instanceof Dict) {\n this.parent.set(\"V\", name);\n }\n }\n\n dict.set(\"AS\", name);\n dict.set(\"M\", `D:${getModificationDate()}`);\n\n const maybeMK = this._getMKDict(rotation);\n if (maybeMK) {\n dict.set(\"MK\", maybeMK);\n }\n\n await writeObject(this.ref, dict, buffer, evaluator.xref);\n const newRefs = [{ ref: this.ref, data: buffer.join(\"\"), xfa }];\n if (parentData) {\n newRefs.push({ ref: this.parent, data: parentData, xfa: null });\n }\n\n return newRefs;\n }\n\n _getDefaultCheckedAppearance(params, type) {\n const width = this.data.rect[2] - this.data.rect[0];\n const height = this.data.rect[3] - this.data.rect[1];\n const bbox = [0, 0, width, height];\n\n // Ratio used to have a mark slightly smaller than the bbox.\n const FONT_RATIO = 0.8;\n const fontSize = Math.min(width, height) * FONT_RATIO;\n\n // Char Metrics\n // Widths came from widths for ZapfDingbats.\n // Heights are guessed with Fontforge and FoxitDingbats.pfb.\n let metrics, char;\n if (type === \"check\") {\n // Char 33 (2713 in unicode)\n metrics = {\n width: 0.755 * fontSize,\n height: 0.705 * fontSize,\n };\n char = \"\\x33\";\n } else if (type === \"disc\") {\n // Char 6C (25CF in unicode)\n metrics = {\n width: 0.791 * fontSize,\n height: 0.705 * fontSize,\n };\n char = \"\\x6C\";\n } else {\n unreachable(`_getDefaultCheckedAppearance - unsupported type: ${type}`);\n }\n\n // Values to center the glyph in the bbox.\n const xShift = numberToString((width - metrics.width) / 2);\n const yShift = numberToString((height - metrics.height) / 2);\n\n const appearance = `q BT /PdfJsZaDb ${fontSize} Tf 0 g ${xShift} ${yShift} Td (${char}) Tj ET Q`;\n\n const appearanceStreamDict = new Dict(params.xref);\n appearanceStreamDict.set(\"FormType\", 1);\n appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n appearanceStreamDict.set(\"BBox\", bbox);\n appearanceStreamDict.set(\"Matrix\", [1, 0, 0, 1, 0, 0]);\n appearanceStreamDict.set(\"Length\", appearance.length);\n\n const resources = new Dict(params.xref);\n const font = new Dict(params.xref);\n font.set(\"PdfJsZaDb\", this.fallbackFontDict);\n resources.set(\"Font\", font);\n\n appearanceStreamDict.set(\"Resources\", resources);\n\n this.checkedAppearance = new StringStream(appearance);\n this.checkedAppearance.dict = appearanceStreamDict;\n\n this._streams.push(this.checkedAppearance);\n }\n\n _processCheckBox(params) {\n const customAppearance = params.dict.get(\"AP\");\n if (!(customAppearance instanceof Dict)) {\n return;\n }\n\n const normalAppearance = customAppearance.get(\"N\");\n if (!(normalAppearance instanceof Dict)) {\n return;\n }\n\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=1722036.\n // If we've an AS and a V then take AS.\n const asValue = this._decodeFormValue(params.dict.get(\"AS\"));\n if (typeof asValue === \"string\") {\n this.data.fieldValue = asValue;\n }\n\n const yes =\n this.data.fieldValue !== null && this.data.fieldValue !== \"Off\"\n ? this.data.fieldValue\n : \"Yes\";\n\n const exportValues = normalAppearance.getKeys();\n if (exportValues.length === 0) {\n exportValues.push(\"Off\", yes);\n } else if (exportValues.length === 1) {\n if (exportValues[0] === \"Off\") {\n exportValues.push(yes);\n } else {\n exportValues.unshift(\"Off\");\n }\n } else if (exportValues.includes(yes)) {\n exportValues.length = 0;\n exportValues.push(\"Off\", yes);\n } else {\n const otherYes = exportValues.find(v => v !== \"Off\");\n exportValues.length = 0;\n exportValues.push(\"Off\", otherYes);\n }\n\n // Don't use a \"V\" entry pointing to a non-existent appearance state,\n // see e.g. bug1720411.pdf where it's an *empty* Name-instance.\n if (!exportValues.includes(this.data.fieldValue)) {\n this.data.fieldValue = \"Off\";\n }\n\n this.data.exportValue = exportValues[1];\n\n const checkedAppearance = normalAppearance.get(this.data.exportValue);\n this.checkedAppearance =\n checkedAppearance instanceof BaseStream ? checkedAppearance : null;\n const uncheckedAppearance = normalAppearance.get(\"Off\");\n this.uncheckedAppearance =\n uncheckedAppearance instanceof BaseStream ? uncheckedAppearance : null;\n\n if (this.checkedAppearance) {\n this._streams.push(this.checkedAppearance);\n } else {\n this._getDefaultCheckedAppearance(params, \"check\");\n }\n if (this.uncheckedAppearance) {\n this._streams.push(this.uncheckedAppearance);\n }\n this._fallbackFontDict = this.fallbackFontDict;\n if (this.data.defaultFieldValue === null) {\n this.data.defaultFieldValue = \"Off\";\n }\n }\n\n _processRadioButton(params) {\n this.data.buttonValue = null;\n\n // The parent field's `V` entry holds a `Name` object with the appearance\n // state of whichever child field is currently in the \"on\" state.\n const fieldParent = params.dict.get(\"Parent\");\n if (fieldParent instanceof Dict) {\n this.parent = params.dict.getRaw(\"Parent\");\n const fieldParentValue = fieldParent.get(\"V\");\n if (fieldParentValue instanceof Name) {\n this.data.fieldValue = this._decodeFormValue(fieldParentValue);\n }\n }\n\n // The button's value corresponds to its appearance state.\n const appearanceStates = params.dict.get(\"AP\");\n if (!(appearanceStates instanceof Dict)) {\n return;\n }\n const normalAppearance = appearanceStates.get(\"N\");\n if (!(normalAppearance instanceof Dict)) {\n return;\n }\n for (const key of normalAppearance.getKeys()) {\n if (key !== \"Off\") {\n this.data.buttonValue = this._decodeFormValue(key);\n break;\n }\n }\n\n const checkedAppearance = normalAppearance.get(this.data.buttonValue);\n this.checkedAppearance =\n checkedAppearance instanceof BaseStream ? checkedAppearance : null;\n const uncheckedAppearance = normalAppearance.get(\"Off\");\n this.uncheckedAppearance =\n uncheckedAppearance instanceof BaseStream ? uncheckedAppearance : null;\n\n if (this.checkedAppearance) {\n this._streams.push(this.checkedAppearance);\n } else {\n this._getDefaultCheckedAppearance(params, \"disc\");\n }\n if (this.uncheckedAppearance) {\n this._streams.push(this.uncheckedAppearance);\n }\n this._fallbackFontDict = this.fallbackFontDict;\n if (this.data.defaultFieldValue === null) {\n this.data.defaultFieldValue = \"Off\";\n }\n }\n\n _processPushButton(params) {\n const { dict, annotationGlobals } = params;\n\n if (!dict.has(\"A\") && !dict.has(\"AA\") && !this.data.alternativeText) {\n warn(\"Push buttons without action dictionaries are not supported\");\n return;\n }\n\n this.data.isTooltipOnly = !dict.has(\"A\") && !dict.has(\"AA\");\n\n Catalog.parseDestDictionary({\n destDict: dict,\n resultObj: this.data,\n docBaseUrl: annotationGlobals.baseUrl,\n docAttachments: annotationGlobals.attachments,\n });\n }\n\n getFieldObject() {\n let type = \"button\";\n let exportValues;\n if (this.data.checkBox) {\n type = \"checkbox\";\n exportValues = this.data.exportValue;\n } else if (this.data.radioButton) {\n type = \"radiobutton\";\n exportValues = this.data.buttonValue;\n }\n return {\n id: this.data.id,\n value: this.data.fieldValue || \"Off\",\n defaultValue: this.data.defaultFieldValue,\n exportValues,\n editable: !this.data.readOnly,\n name: this.data.fieldName,\n rect: this.data.rect,\n hidden: this.data.hidden,\n actions: this.data.actions,\n page: this.data.pageIndex,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n rotation: this.rotation,\n type,\n };\n }\n\n get fallbackFontDict() {\n const dict = new Dict();\n dict.set(\"BaseFont\", Name.get(\"ZapfDingbats\"));\n dict.set(\"Type\", Name.get(\"FallbackType\"));\n dict.set(\"Subtype\", Name.get(\"FallbackType\"));\n dict.set(\"Encoding\", Name.get(\"ZapfDingbatsEncoding\"));\n\n return shadow(this, \"fallbackFontDict\", dict);\n }\n}\n\nclass ChoiceWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n const { dict, xref } = params;\n\n this.indices = dict.getArray(\"I\");\n this.hasIndices = Array.isArray(this.indices) && this.indices.length > 0;\n\n // Determine the options. The options array may consist of strings or\n // arrays. If the array consists of arrays, then the first element of\n // each array is the export value and the second element of each array is\n // the display value. If the array consists of strings, then these\n // represent both the export and display value. In this case, we convert\n // it to an array of arrays as well for convenience in the display layer.\n // Note that the specification does not state that the `Opt` field is\n // inheritable, but in practice PDF generators do make annotations\n // inherit the options from a parent annotation (issue 8094).\n this.data.options = [];\n\n const options = getInheritableProperty({ dict, key: \"Opt\" });\n if (Array.isArray(options)) {\n for (let i = 0, ii = options.length; i < ii; i++) {\n const option = xref.fetchIfRef(options[i]);\n const isOptionArray = Array.isArray(option);\n\n this.data.options[i] = {\n exportValue: this._decodeFormValue(\n isOptionArray ? xref.fetchIfRef(option[0]) : option\n ),\n displayValue: this._decodeFormValue(\n isOptionArray ? xref.fetchIfRef(option[1]) : option\n ),\n };\n }\n }\n\n if (!this.hasIndices) {\n // The field value can be `null` if no item is selected, a string if one\n // item is selected or an array of strings if multiple items are selected.\n // For consistency in the API and convenience in the display layer, we\n // always make the field value an array with zero, one or multiple items.\n if (typeof this.data.fieldValue === \"string\") {\n this.data.fieldValue = [this.data.fieldValue];\n } else if (!this.data.fieldValue) {\n this.data.fieldValue = [];\n }\n } else {\n // The specs say that we should have an indices array only with\n // multiselectable Choice and the \"V\" entry should have the\n // precedence, but Acrobat itself is using it whatever the\n // the \"V\" entry is (see bug 1770750).\n this.data.fieldValue = [];\n const ii = this.data.options.length;\n for (const i of this.indices) {\n if (Number.isInteger(i) && i >= 0 && i < ii) {\n this.data.fieldValue.push(this.data.options[i].exportValue);\n }\n }\n }\n\n // Process field flags for the display layer.\n this.data.combo = this.hasFieldFlag(AnnotationFieldFlag.COMBO);\n this.data.multiSelect = this.hasFieldFlag(AnnotationFieldFlag.MULTISELECT);\n this._hasText = true;\n }\n\n getFieldObject() {\n const type = this.data.combo ? \"combobox\" : \"listbox\";\n const value =\n this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null;\n return {\n id: this.data.id,\n value,\n defaultValue: this.data.defaultFieldValue,\n editable: !this.data.readOnly,\n name: this.data.fieldName,\n rect: this.data.rect,\n numItems: this.data.fieldValue.length,\n multipleSelection: this.data.multiSelect,\n hidden: this.data.hidden,\n actions: this.data.actions,\n items: this.data.options,\n page: this.data.pageIndex,\n strokeColor: this.data.borderColor,\n fillColor: this.data.backgroundColor,\n rotation: this.rotation,\n type,\n };\n }\n\n amendSavedDict(annotationStorage, dict) {\n if (!this.hasIndices) {\n return;\n }\n let values = annotationStorage?.get(this.data.id)?.value;\n if (!Array.isArray(values)) {\n values = [values];\n }\n const indices = [];\n const { options } = this.data;\n for (let i = 0, j = 0, ii = options.length; i < ii; i++) {\n if (options[i].exportValue === values[j]) {\n indices.push(i);\n j += 1;\n }\n }\n dict.set(\"I\", indices);\n }\n\n async _getAppearance(evaluator, task, intent, annotationStorage) {\n if (this.data.combo) {\n return super._getAppearance(evaluator, task, intent, annotationStorage);\n }\n\n let exportedValue, rotation;\n const storageEntry = annotationStorage?.get(this.data.id);\n if (storageEntry) {\n rotation = storageEntry.rotation;\n exportedValue = storageEntry.value;\n }\n\n if (\n rotation === undefined &&\n exportedValue === undefined &&\n !this._needAppearances\n ) {\n // The annotation hasn't been rendered so use the appearance\n return null;\n }\n\n if (exportedValue === undefined) {\n exportedValue = this.data.fieldValue;\n } else if (!Array.isArray(exportedValue)) {\n exportedValue = [exportedValue];\n }\n\n const defaultPadding = 1;\n const defaultHPadding = 2;\n let totalHeight = this.data.rect[3] - this.data.rect[1];\n let totalWidth = this.data.rect[2] - this.data.rect[0];\n\n if (rotation === 90 || rotation === 270) {\n [totalWidth, totalHeight] = [totalHeight, totalWidth];\n }\n\n const lineCount = this.data.options.length;\n const valueIndices = [];\n for (let i = 0; i < lineCount; i++) {\n const { exportValue } = this.data.options[i];\n if (exportedValue.includes(exportValue)) {\n valueIndices.push(i);\n }\n }\n\n if (!this._defaultAppearance) {\n // The DA is required and must be a string.\n // If there is no font named Helvetica in the resource dictionary,\n // the evaluator will fall back to a default font.\n // Doing so prevents exceptions and allows saving/printing\n // the file as expected.\n this.data.defaultAppearanceData = parseDefaultAppearance(\n (this._defaultAppearance = \"/Helvetica 0 Tf 0 g\")\n );\n }\n\n const font = await WidgetAnnotation._getFontData(\n evaluator,\n task,\n this.data.defaultAppearanceData,\n this._fieldResources.mergedResources\n );\n\n let defaultAppearance;\n let { fontSize } = this.data.defaultAppearanceData;\n if (!fontSize) {\n const lineHeight = (totalHeight - defaultPadding) / lineCount;\n let lineWidth = -1;\n let value;\n for (const { displayValue } of this.data.options) {\n const width = this._getTextWidth(displayValue, font);\n if (width > lineWidth) {\n lineWidth = width;\n value = displayValue;\n }\n }\n\n [defaultAppearance, fontSize] = this._computeFontSize(\n lineHeight,\n totalWidth - 2 * defaultHPadding,\n value,\n font,\n -1\n );\n } else {\n defaultAppearance = this._defaultAppearance;\n }\n\n const lineHeight = fontSize * LINE_FACTOR;\n const vPadding = (lineHeight - fontSize) / 2;\n const numberOfVisibleLines = Math.floor(totalHeight / lineHeight);\n\n let firstIndex = 0;\n if (valueIndices.length > 0) {\n const minIndex = Math.min(...valueIndices);\n const maxIndex = Math.max(...valueIndices);\n\n firstIndex = Math.max(0, maxIndex - numberOfVisibleLines + 1);\n if (firstIndex > minIndex) {\n firstIndex = minIndex;\n }\n }\n const end = Math.min(firstIndex + numberOfVisibleLines + 1, lineCount);\n\n const buf = [\"/Tx BMC q\", `1 1 ${totalWidth} ${totalHeight} re W n`];\n\n if (valueIndices.length) {\n // This value has been copied/pasted from annotation-choice-widget.pdf.\n // It corresponds to rgb(153, 193, 218).\n buf.push(\"0.600006 0.756866 0.854904 rg\");\n\n // Highlight the lines in filling a blue rectangle at the selected\n // positions.\n for (const index of valueIndices) {\n if (firstIndex <= index && index < end) {\n buf.push(\n `1 ${\n totalHeight - (index - firstIndex + 1) * lineHeight\n } ${totalWidth} ${lineHeight} re f`\n );\n }\n }\n }\n buf.push(\"BT\", defaultAppearance, `1 0 0 1 0 ${totalHeight} Tm`);\n\n const prevInfo = { shift: 0 };\n for (let i = firstIndex; i < end; i++) {\n const { displayValue } = this.data.options[i];\n const vpadding = i === firstIndex ? vPadding : 0;\n buf.push(\n this._renderText(\n displayValue,\n font,\n fontSize,\n totalWidth,\n 0,\n prevInfo,\n defaultHPadding,\n -lineHeight + vpadding\n )\n );\n }\n\n buf.push(\"ET Q EMC\");\n\n return buf.join(\"\\n\");\n }\n}\n\nclass SignatureWidgetAnnotation extends WidgetAnnotation {\n constructor(params) {\n super(params);\n\n // Unset the fieldValue since it's (most likely) a `Dict` which is\n // non-serializable and will thus cause errors when sending annotations\n // to the main-thread (issue 10347).\n this.data.fieldValue = null;\n this.data.hasOwnCanvas = this.data.noRotate;\n this.data.noHTML = !this.data.hasOwnCanvas;\n }\n\n getFieldObject() {\n return {\n id: this.data.id,\n value: null,\n page: this.data.pageIndex,\n type: \"signature\",\n };\n }\n}\n\nclass TextAnnotation extends MarkupAnnotation {\n constructor(params) {\n const DEFAULT_ICON_SIZE = 22; // px\n\n super(params);\n\n // No rotation for Text (see 12.5.6.4).\n this.data.noRotate = true;\n this.data.hasOwnCanvas = this.data.noRotate;\n this.data.noHTML = false;\n\n const { dict } = params;\n this.data.annotationType = AnnotationType.TEXT;\n\n if (this.data.hasAppearance) {\n this.data.name = \"NoIcon\";\n } else {\n this.data.rect[1] = this.data.rect[3] - DEFAULT_ICON_SIZE;\n this.data.rect[2] = this.data.rect[0] + DEFAULT_ICON_SIZE;\n this.data.name = dict.has(\"Name\") ? dict.get(\"Name\").name : \"Note\";\n }\n\n if (dict.has(\"State\")) {\n this.data.state = dict.get(\"State\") || null;\n this.data.stateModel = dict.get(\"StateModel\") || null;\n } else {\n this.data.state = null;\n this.data.stateModel = null;\n }\n }\n}\n\nclass LinkAnnotation extends Annotation {\n constructor(params) {\n super(params);\n\n const { dict, annotationGlobals } = params;\n this.data.annotationType = AnnotationType.LINK;\n\n const quadPoints = getQuadPoints(dict, this.rectangle);\n if (quadPoints) {\n this.data.quadPoints = quadPoints;\n }\n\n // The color entry for a link annotation is the color of the border.\n this.data.borderColor ||= this.data.color;\n\n Catalog.parseDestDictionary({\n destDict: dict,\n resultObj: this.data,\n docBaseUrl: annotationGlobals.baseUrl,\n docAttachments: annotationGlobals.attachments,\n });\n }\n}\n\nclass PopupAnnotation extends Annotation {\n constructor(params) {\n super(params);\n\n const { dict } = params;\n this.data.annotationType = AnnotationType.POPUP;\n\n // A pop-up is never rendered on the main canvas so we must render its HTML\n // version.\n this.data.noHTML = false;\n\n if (\n this.data.rect[0] === this.data.rect[2] ||\n this.data.rect[1] === this.data.rect[3]\n ) {\n this.data.rect = null;\n }\n\n let parentItem = dict.get(\"Parent\");\n if (!parentItem) {\n warn(\"Popup annotation has a missing or invalid parent annotation.\");\n return;\n }\n\n const parentRect = parentItem.getArray(\"Rect\");\n this.data.parentRect =\n Array.isArray(parentRect) && parentRect.length === 4\n ? Util.normalizeRect(parentRect)\n : null;\n\n const rt = parentItem.get(\"RT\");\n if (isName(rt, AnnotationReplyType.GROUP)) {\n // Subordinate annotations in a group should inherit\n // the group attributes from the primary annotation.\n parentItem = parentItem.get(\"IRT\");\n }\n\n if (!parentItem.has(\"M\")) {\n this.data.modificationDate = null;\n } else {\n this.setModificationDate(parentItem.get(\"M\"));\n this.data.modificationDate = this.modificationDate;\n }\n\n if (!parentItem.has(\"C\")) {\n // Fall back to the default background color.\n this.data.color = null;\n } else {\n this.setColor(parentItem.getArray(\"C\"));\n this.data.color = this.color;\n }\n\n // If the Popup annotation is not viewable, but the parent annotation is,\n // that is most likely a bug. Fallback to inherit the flags from the parent\n // annotation (this is consistent with the behaviour in Adobe Reader).\n if (!this.viewable) {\n const parentFlags = parentItem.get(\"F\");\n if (this._isViewable(parentFlags)) {\n this.setFlags(parentFlags);\n }\n }\n\n this.setTitle(parentItem.get(\"T\"));\n this.data.titleObj = this._title;\n\n this.setContents(parentItem.get(\"Contents\"));\n this.data.contentsObj = this._contents;\n\n if (parentItem.has(\"RC\")) {\n this.data.richText = XFAFactory.getRichTextAsHtml(parentItem.get(\"RC\"));\n }\n\n this.data.open = !!dict.get(\"Open\");\n }\n}\n\nclass FreeTextAnnotation extends MarkupAnnotation {\n constructor(params) {\n super(params);\n\n // It uses its own canvas in order to be hidden if edited.\n // But if it has the noHTML flag, it means that we don't want to be able\n // to modify it so we can just draw it on the main canvas.\n this.data.hasOwnCanvas = !this.data.noHTML;\n // We want to be able to add mouse listeners to the annotation.\n this.data.noHTML = false;\n\n const { evaluatorOptions, xref } = params;\n this.data.annotationType = AnnotationType.FREETEXT;\n this.setDefaultAppearance(params);\n if (this.appearance) {\n const { fontColor, fontSize } = parseAppearanceStream(\n this.appearance,\n evaluatorOptions,\n xref\n );\n this.data.defaultAppearanceData.fontColor = fontColor;\n this.data.defaultAppearanceData.fontSize = fontSize || 10;\n } else if (this._isOffscreenCanvasSupported) {\n const strokeAlpha = params.dict.get(\"CA\");\n const fakeUnicodeFont = new FakeUnicodeFont(xref, \"sans-serif\");\n this.data.defaultAppearanceData.fontSize ||= 10;\n const { fontColor, fontSize } = this.data.defaultAppearanceData;\n this.appearance = fakeUnicodeFont.createAppearance(\n this._contents.str,\n this.rectangle,\n this.rotation,\n fontSize,\n fontColor,\n strokeAlpha\n );\n this._streams.push(this.appearance, FakeUnicodeFont.toUnicodeStream);\n } else {\n warn(\n \"FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly.\"\n );\n }\n }\n\n get hasTextContent() {\n return !!this.appearance;\n }\n\n static createNewDict(annotation, xref, { apRef, ap }) {\n const { color, fontSize, rect, rotation, user, value } = annotation;\n const freetext = new Dict(xref);\n freetext.set(\"Type\", Name.get(\"Annot\"));\n freetext.set(\"Subtype\", Name.get(\"FreeText\"));\n freetext.set(\"CreationDate\", `D:${getModificationDate()}`);\n freetext.set(\"Rect\", rect);\n const da = `/Helv ${fontSize} Tf ${getPdfColor(color, /* isFill */ true)}`;\n freetext.set(\"DA\", da);\n freetext.set(\n \"Contents\",\n isAscii(value)\n ? value\n : stringToUTF16String(value, /* bigEndian = */ true)\n );\n freetext.set(\"F\", 4);\n freetext.set(\"Border\", [0, 0, 0]);\n freetext.set(\"Rotate\", rotation);\n\n if (user) {\n freetext.set(\n \"T\",\n isAscii(user) ? user : stringToUTF16String(user, /* bigEndian = */ true)\n );\n }\n\n if (apRef || ap) {\n const n = new Dict(xref);\n freetext.set(\"AP\", n);\n\n if (apRef) {\n n.set(\"N\", apRef);\n } else {\n n.set(\"N\", ap);\n }\n }\n\n return freetext;\n }\n\n static async createNewAppearanceStream(annotation, xref, params) {\n const { baseFontRef, evaluator, task } = params;\n const { color, fontSize, rect, rotation, value } = annotation;\n\n const resources = new Dict(xref);\n const font = new Dict(xref);\n\n if (baseFontRef) {\n font.set(\"Helv\", baseFontRef);\n } else {\n const baseFont = new Dict(xref);\n baseFont.set(\"BaseFont\", Name.get(\"Helvetica\"));\n baseFont.set(\"Type\", Name.get(\"Font\"));\n baseFont.set(\"Subtype\", Name.get(\"Type1\"));\n baseFont.set(\"Encoding\", Name.get(\"WinAnsiEncoding\"));\n font.set(\"Helv\", baseFont);\n }\n resources.set(\"Font\", font);\n\n const helv = await WidgetAnnotation._getFontData(\n evaluator,\n task,\n {\n fontName: \"Helv\",\n fontSize,\n },\n resources\n );\n\n const [x1, y1, x2, y2] = rect;\n let w = x2 - x1;\n let h = y2 - y1;\n\n if (rotation % 180 !== 0) {\n [w, h] = [h, w];\n }\n\n const lines = value.split(\"\\n\");\n const scale = fontSize / 1000;\n let totalWidth = -Infinity;\n const encodedLines = [];\n for (let line of lines) {\n const encoded = helv.encodeString(line);\n if (encoded.length > 1) {\n // The font doesn't contain all the chars.\n return null;\n }\n line = encoded.join(\"\");\n encodedLines.push(line);\n let lineWidth = 0;\n const glyphs = helv.charsToGlyphs(line);\n for (const glyph of glyphs) {\n lineWidth += glyph.width * scale;\n }\n totalWidth = Math.max(totalWidth, lineWidth);\n }\n\n let hscale = 1;\n if (totalWidth > w) {\n hscale = w / totalWidth;\n }\n let vscale = 1;\n const lineHeight = LINE_FACTOR * fontSize;\n const lineAscent = (LINE_FACTOR - LINE_DESCENT_FACTOR) * fontSize;\n const totalHeight = lineHeight * lines.length;\n if (totalHeight > h) {\n vscale = h / totalHeight;\n }\n const fscale = Math.min(hscale, vscale);\n const newFontSize = fontSize * fscale;\n let firstPoint, clipBox, matrix;\n switch (rotation) {\n case 0:\n matrix = [1, 0, 0, 1];\n clipBox = [rect[0], rect[1], w, h];\n firstPoint = [rect[0], rect[3] - lineAscent];\n break;\n case 90:\n matrix = [0, 1, -1, 0];\n clipBox = [rect[1], -rect[2], w, h];\n firstPoint = [rect[1], -rect[0] - lineAscent];\n break;\n case 180:\n matrix = [-1, 0, 0, -1];\n clipBox = [-rect[2], -rect[3], w, h];\n firstPoint = [-rect[2], -rect[1] - lineAscent];\n break;\n case 270:\n matrix = [0, -1, 1, 0];\n clipBox = [-rect[3], rect[0], w, h];\n firstPoint = [-rect[3], rect[2] - lineAscent];\n break;\n }\n\n const buffer = [\n \"q\",\n `${matrix.join(\" \")} 0 0 cm`,\n `${clipBox.join(\" \")} re W n`,\n `BT`,\n `${getPdfColor(color, /* isFill */ true)}`,\n `0 Tc /Helv ${numberToString(newFontSize)} Tf`,\n ];\n\n buffer.push(\n `${firstPoint.join(\" \")} Td (${escapeString(encodedLines[0])}) Tj`\n );\n const vShift = numberToString(lineHeight);\n for (let i = 1, ii = encodedLines.length; i < ii; i++) {\n const line = encodedLines[i];\n buffer.push(`0 -${vShift} Td (${escapeString(line)}) Tj`);\n }\n buffer.push(\"ET\", \"Q\");\n const appearance = buffer.join(\"\\n\");\n\n const appearanceStreamDict = new Dict(xref);\n appearanceStreamDict.set(\"FormType\", 1);\n appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n appearanceStreamDict.set(\"BBox\", rect);\n appearanceStreamDict.set(\"Resources\", resources);\n appearanceStreamDict.set(\"Matrix\", [1, 0, 0, 1, -rect[0], -rect[1]]);\n\n const ap = new StringStream(appearance);\n ap.dict = appearanceStreamDict;\n\n return ap;\n }\n}\n\nclass LineAnnotation extends MarkupAnnotation {\n constructor(params) {\n super(params);\n\n const { dict, xref } = params;\n this.data.annotationType = AnnotationType.LINE;\n this.data.hasOwnCanvas = this.data.noRotate;\n this.data.noHTML = false;\n\n const lineCoordinates = dict.getArray(\"L\");\n this.data.lineCoordinates = Util.normalizeRect(lineCoordinates);\n\n if (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) {\n this.setLineEndings(dict.getArray(\"LE\"));\n this.data.lineEndings = this.lineEndings;\n }\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n const interiorColor = getRgbColor(dict.getArray(\"IC\"), null);\n // The default fill color is transparent. Setting the fill colour is\n // necessary if/when we want to add support for non-default line endings.\n const fillColor = interiorColor ? getPdfColorArray(interiorColor) : null;\n const fillAlpha = fillColor ? strokeAlpha : null;\n\n const borderWidth = this.borderStyle.width || 1,\n borderAdjust = 2 * borderWidth;\n\n // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n // we get similar rendering/highlighting behaviour as in Adobe Reader.\n const bbox = [\n this.data.lineCoordinates[0] - borderAdjust,\n this.data.lineCoordinates[1] - borderAdjust,\n this.data.lineCoordinates[2] + borderAdjust,\n this.data.lineCoordinates[3] + borderAdjust,\n ];\n if (!Util.intersect(this.rectangle, bbox)) {\n this.rectangle = bbox;\n }\n\n this._setDefaultAppearance({\n xref,\n extra: `${borderWidth} w`,\n strokeColor,\n fillColor,\n strokeAlpha,\n fillAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${lineCoordinates[0]} ${lineCoordinates[1]} m`,\n `${lineCoordinates[2]} ${lineCoordinates[3]} l`,\n \"S\"\n );\n return [\n points[0].x - borderWidth,\n points[1].x + borderWidth,\n points[3].y - borderWidth,\n points[1].y + borderWidth,\n ];\n },\n });\n }\n }\n}\n\nclass SquareAnnotation extends MarkupAnnotation {\n constructor(params) {\n super(params);\n\n const { dict, xref } = params;\n this.data.annotationType = AnnotationType.SQUARE;\n this.data.hasOwnCanvas = this.data.noRotate;\n this.data.noHTML = false;\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n const interiorColor = getRgbColor(dict.getArray(\"IC\"), null);\n // The default fill color is transparent.\n const fillColor = interiorColor ? getPdfColorArray(interiorColor) : null;\n const fillAlpha = fillColor ? strokeAlpha : null;\n\n if (this.borderStyle.width === 0 && !fillColor) {\n // Prevent rendering a \"hairline\" border (fixes issue14164.pdf).\n return;\n }\n\n this._setDefaultAppearance({\n xref,\n extra: `${this.borderStyle.width} w`,\n strokeColor,\n fillColor,\n strokeAlpha,\n fillAlpha,\n pointsCallback: (buffer, points) => {\n const x = points[2].x + this.borderStyle.width / 2;\n const y = points[2].y + this.borderStyle.width / 2;\n const width = points[3].x - points[2].x - this.borderStyle.width;\n const height = points[1].y - points[3].y - this.borderStyle.width;\n buffer.push(`${x} ${y} ${width} ${height} re`);\n if (fillColor) {\n buffer.push(\"B\");\n } else {\n buffer.push(\"S\");\n }\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass CircleAnnotation extends MarkupAnnotation {\n constructor(params) {\n super(params);\n\n const { dict, xref } = params;\n this.data.annotationType = AnnotationType.CIRCLE;\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n const interiorColor = getRgbColor(dict.getArray(\"IC\"), null);\n // The default fill color is transparent.\n const fillColor = interiorColor ? getPdfColorArray(interiorColor) : null;\n const fillAlpha = fillColor ? strokeAlpha : null;\n\n if (this.borderStyle.width === 0 && !fillColor) {\n // Prevent rendering a \"hairline\" border (fixes issue14164.pdf).\n return;\n }\n\n // Circles are approximated by Bézier curves with four segments since\n // there is no circle primitive in the PDF specification. For the control\n // points distance, see https://stackoverflow.com/a/27863181.\n const controlPointsDistance = (4 / 3) * Math.tan(Math.PI / (2 * 4));\n\n this._setDefaultAppearance({\n xref,\n extra: `${this.borderStyle.width} w`,\n strokeColor,\n fillColor,\n strokeAlpha,\n fillAlpha,\n pointsCallback: (buffer, points) => {\n const x0 = points[0].x + this.borderStyle.width / 2;\n const y0 = points[0].y - this.borderStyle.width / 2;\n const x1 = points[3].x - this.borderStyle.width / 2;\n const y1 = points[3].y + this.borderStyle.width / 2;\n const xMid = x0 + (x1 - x0) / 2;\n const yMid = y0 + (y1 - y0) / 2;\n const xOffset = ((x1 - x0) / 2) * controlPointsDistance;\n const yOffset = ((y1 - y0) / 2) * controlPointsDistance;\n\n buffer.push(\n `${xMid} ${y1} m`,\n `${xMid + xOffset} ${y1} ${x1} ${yMid + yOffset} ${x1} ${yMid} c`,\n `${x1} ${yMid - yOffset} ${xMid + xOffset} ${y0} ${xMid} ${y0} c`,\n `${xMid - xOffset} ${y0} ${x0} ${yMid - yOffset} ${x0} ${yMid} c`,\n `${x0} ${yMid + yOffset} ${xMid - xOffset} ${y1} ${xMid} ${y1} c`,\n \"h\"\n );\n if (fillColor) {\n buffer.push(\"B\");\n } else {\n buffer.push(\"S\");\n }\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass PolylineAnnotation extends MarkupAnnotation {\n constructor(params) {\n super(params);\n\n const { dict, xref } = params;\n this.data.annotationType = AnnotationType.POLYLINE;\n this.data.hasOwnCanvas = this.data.noRotate;\n this.data.noHTML = false;\n this.data.vertices = [];\n\n if (\n (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) &&\n !(this instanceof PolygonAnnotation)\n ) {\n // Only meaningful for polyline annotations.\n this.setLineEndings(dict.getArray(\"LE\"));\n this.data.lineEndings = this.lineEndings;\n }\n\n // The vertices array is an array of numbers representing the alternating\n // horizontal and vertical coordinates, respectively, of each vertex.\n // Convert this to an array of objects with x and y coordinates.\n const rawVertices = dict.getArray(\"Vertices\");\n if (!Array.isArray(rawVertices)) {\n return;\n }\n for (let i = 0, ii = rawVertices.length; i < ii; i += 2) {\n this.data.vertices.push({\n x: rawVertices[i],\n y: rawVertices[i + 1],\n });\n }\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n const borderWidth = this.borderStyle.width || 1,\n borderAdjust = 2 * borderWidth;\n\n // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n // we get similar rendering/highlighting behaviour as in Adobe Reader.\n const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n for (const vertex of this.data.vertices) {\n bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n }\n if (!Util.intersect(this.rectangle, bbox)) {\n this.rectangle = bbox;\n }\n\n this._setDefaultAppearance({\n xref,\n extra: `${borderWidth} w`,\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n const vertices = this.data.vertices;\n for (let i = 0, ii = vertices.length; i < ii; i++) {\n buffer.push(\n `${vertices[i].x} ${vertices[i].y} ${i === 0 ? \"m\" : \"l\"}`\n );\n }\n buffer.push(\"S\");\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n}\n\nclass PolygonAnnotation extends PolylineAnnotation {\n constructor(params) {\n // Polygons are specific forms of polylines, so reuse their logic.\n super(params);\n\n this.data.annotationType = AnnotationType.POLYGON;\n }\n}\n\nclass CaretAnnotation extends MarkupAnnotation {\n constructor(params) {\n super(params);\n\n this.data.annotationType = AnnotationType.CARET;\n }\n}\n\nclass InkAnnotation extends MarkupAnnotation {\n constructor(params) {\n super(params);\n\n this.data.hasOwnCanvas = this.data.noRotate;\n this.data.noHTML = false;\n\n const { dict, xref } = params;\n this.data.annotationType = AnnotationType.INK;\n this.data.inkLists = [];\n\n const rawInkLists = dict.getArray(\"InkList\");\n if (!Array.isArray(rawInkLists)) {\n return;\n }\n for (let i = 0, ii = rawInkLists.length; i < ii; ++i) {\n // The raw ink lists array contains arrays of numbers representing\n // the alternating horizontal and vertical coordinates, respectively,\n // of each vertex. Convert this to an array of objects with x and y\n // coordinates.\n this.data.inkLists.push([]);\n for (let j = 0, jj = rawInkLists[i].length; j < jj; j += 2) {\n this.data.inkLists[i].push({\n x: xref.fetchIfRef(rawInkLists[i][j]),\n y: xref.fetchIfRef(rawInkLists[i][j + 1]),\n });\n }\n }\n\n if (!this.appearance) {\n // The default stroke color is black.\n const strokeColor = this.color ? getPdfColorArray(this.color) : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n const borderWidth = this.borderStyle.width || 1,\n borderAdjust = 2 * borderWidth;\n\n // If the /Rect-entry is empty/wrong, create a fallback rectangle so that\n // we get similar rendering/highlighting behaviour as in Adobe Reader.\n const bbox = [Infinity, Infinity, -Infinity, -Infinity];\n for (const inkLists of this.data.inkLists) {\n for (const vertex of inkLists) {\n bbox[0] = Math.min(bbox[0], vertex.x - borderAdjust);\n bbox[1] = Math.min(bbox[1], vertex.y - borderAdjust);\n bbox[2] = Math.max(bbox[2], vertex.x + borderAdjust);\n bbox[3] = Math.max(bbox[3], vertex.y + borderAdjust);\n }\n }\n if (!Util.intersect(this.rectangle, bbox)) {\n this.rectangle = bbox;\n }\n\n this._setDefaultAppearance({\n xref,\n extra: `${borderWidth} w`,\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n // According to the specification, see \"12.5.6.13 Ink Annotations\":\n // When drawn, the points shall be connected by straight lines or\n // curves in an implementation-dependent way.\n // In order to simplify things, we utilize straight lines for now.\n for (const inkList of this.data.inkLists) {\n for (let i = 0, ii = inkList.length; i < ii; i++) {\n buffer.push(\n `${inkList[i].x} ${inkList[i].y} ${i === 0 ? \"m\" : \"l\"}`\n );\n }\n buffer.push(\"S\");\n }\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n }\n\n static createNewDict(annotation, xref, { apRef, ap }) {\n const { color, opacity, paths, rect, rotation, thickness } = annotation;\n const ink = new Dict(xref);\n ink.set(\"Type\", Name.get(\"Annot\"));\n ink.set(\"Subtype\", Name.get(\"Ink\"));\n ink.set(\"CreationDate\", `D:${getModificationDate()}`);\n ink.set(\"Rect\", rect);\n ink.set(\n \"InkList\",\n paths.map(p => p.points)\n );\n ink.set(\"F\", 4);\n ink.set(\"Rotate\", rotation);\n\n // Line thickness.\n const bs = new Dict(xref);\n ink.set(\"BS\", bs);\n bs.set(\"W\", thickness);\n\n // Color.\n ink.set(\n \"C\",\n Array.from(color, c => c / 255)\n );\n\n // Opacity.\n ink.set(\"CA\", opacity);\n\n const n = new Dict(xref);\n ink.set(\"AP\", n);\n\n if (apRef) {\n n.set(\"N\", apRef);\n } else {\n n.set(\"N\", ap);\n }\n\n return ink;\n }\n\n static async createNewAppearanceStream(annotation, xref, params) {\n const { color, rect, paths, thickness, opacity } = annotation;\n\n const appearanceBuffer = [\n `${thickness} w 1 J 1 j`,\n `${getPdfColor(color, /* isFill */ false)}`,\n ];\n\n if (opacity !== 1) {\n appearanceBuffer.push(\"/R0 gs\");\n }\n\n const buffer = [];\n for (const { bezier } of paths) {\n buffer.length = 0;\n buffer.push(\n `${numberToString(bezier[0])} ${numberToString(bezier[1])} m`\n );\n for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n const curve = bezier\n .slice(i, i + 6)\n .map(numberToString)\n .join(\" \");\n buffer.push(`${curve} c`);\n }\n buffer.push(\"S\");\n appearanceBuffer.push(buffer.join(\"\\n\"));\n }\n const appearance = appearanceBuffer.join(\"\\n\");\n\n const appearanceStreamDict = new Dict(xref);\n appearanceStreamDict.set(\"FormType\", 1);\n appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n appearanceStreamDict.set(\"BBox\", rect);\n appearanceStreamDict.set(\"Length\", appearance.length);\n\n if (opacity !== 1) {\n const resources = new Dict(xref);\n const extGState = new Dict(xref);\n const r0 = new Dict(xref);\n r0.set(\"CA\", opacity);\n r0.set(\"Type\", Name.get(\"ExtGState\"));\n extGState.set(\"R0\", r0);\n resources.set(\"ExtGState\", extGState);\n appearanceStreamDict.set(\"Resources\", resources);\n }\n\n const ap = new StringStream(appearance);\n ap.dict = appearanceStreamDict;\n\n return ap;\n }\n}\n\nclass HighlightAnnotation extends MarkupAnnotation {\n constructor(params) {\n super(params);\n\n const { dict, xref } = params;\n this.data.annotationType = AnnotationType.HIGHLIGHT;\n\n const quadPoints = (this.data.quadPoints = getQuadPoints(dict, null));\n if (quadPoints) {\n const resources = this.appearance?.dict.get(\"Resources\");\n\n if (!this.appearance || !resources?.has(\"ExtGState\")) {\n if (this.appearance) {\n // Workaround for cases where there's no /ExtGState-entry directly\n // available, e.g. when the appearance stream contains a /XObject of\n // the /Form-type, since that causes the highlighting to completely\n // obscure the PDF content below it (fixes issue13242.pdf).\n warn(\"HighlightAnnotation - ignoring built-in appearance stream.\");\n }\n // Default color is yellow in Acrobat Reader\n const fillColor = this.color ? getPdfColorArray(this.color) : [1, 1, 0];\n const fillAlpha = dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref,\n fillColor,\n blendMode: \"Multiply\",\n fillAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${points[0].x} ${points[0].y} m`,\n `${points[1].x} ${points[1].y} l`,\n `${points[3].x} ${points[3].y} l`,\n `${points[2].x} ${points[2].y} l`,\n \"f\"\n );\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n } else {\n this.data.popupRef = null;\n }\n }\n\n static createNewDict(annotation, xref, { apRef, ap }) {\n const { color, opacity, rect, rotation, user, quadPoints } = annotation;\n const highlight = new Dict(xref);\n highlight.set(\"Type\", Name.get(\"Annot\"));\n highlight.set(\"Subtype\", Name.get(\"Highlight\"));\n highlight.set(\"CreationDate\", `D:${getModificationDate()}`);\n highlight.set(\"Rect\", rect);\n highlight.set(\"F\", 4);\n highlight.set(\"Border\", [0, 0, 0]);\n highlight.set(\"Rotate\", rotation);\n highlight.set(\"QuadPoints\", quadPoints);\n\n // Color.\n highlight.set(\n \"C\",\n Array.from(color, c => c / 255)\n );\n\n // Opacity.\n highlight.set(\"CA\", opacity);\n\n if (user) {\n highlight.set(\n \"T\",\n isAscii(user) ? user : stringToUTF16String(user, /* bigEndian = */ true)\n );\n }\n\n if (apRef || ap) {\n const n = new Dict(xref);\n highlight.set(\"AP\", n);\n n.set(\"N\", apRef || ap);\n }\n\n return highlight;\n }\n\n static async createNewAppearanceStream(annotation, xref, params) {\n const { color, rect, outlines, opacity } = annotation;\n\n const appearanceBuffer = [\n `${getPdfColor(color, /* isFill */ true)}`,\n \"/R0 gs\",\n ];\n\n const buffer = [];\n for (const outline of outlines) {\n buffer.length = 0;\n buffer.push(\n `${numberToString(outline[0])} ${numberToString(outline[1])} m`\n );\n for (let i = 2, ii = outline.length; i < ii; i += 2) {\n buffer.push(\n `${numberToString(outline[i])} ${numberToString(outline[i + 1])} l`\n );\n }\n buffer.push(\"h\");\n appearanceBuffer.push(buffer.join(\"\\n\"));\n }\n appearanceBuffer.push(\"f*\");\n const appearance = appearanceBuffer.join(\"\\n\");\n\n const appearanceStreamDict = new Dict(xref);\n appearanceStreamDict.set(\"FormType\", 1);\n appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n appearanceStreamDict.set(\"BBox\", rect);\n appearanceStreamDict.set(\"Length\", appearance.length);\n\n const resources = new Dict(xref);\n const extGState = new Dict(xref);\n resources.set(\"ExtGState\", extGState);\n appearanceStreamDict.set(\"Resources\", resources);\n const r0 = new Dict(xref);\n extGState.set(\"R0\", r0);\n r0.set(\"BM\", Name.get(\"Multiply\"));\n\n if (opacity !== 1) {\n r0.set(\"ca\", opacity);\n r0.set(\"Type\", Name.get(\"ExtGState\"));\n }\n\n const ap = new StringStream(appearance);\n ap.dict = appearanceStreamDict;\n\n return ap;\n }\n}\n\nclass UnderlineAnnotation extends MarkupAnnotation {\n constructor(params) {\n super(params);\n\n const { dict, xref } = params;\n this.data.annotationType = AnnotationType.UNDERLINE;\n\n const quadPoints = (this.data.quadPoints = getQuadPoints(dict, null));\n if (quadPoints) {\n if (!this.appearance) {\n // Default color is black\n const strokeColor = this.color\n ? getPdfColorArray(this.color)\n : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n // The values 0.571 and 1.3 below corresponds to what Acrobat is doing.\n this._setDefaultAppearance({\n xref,\n extra: \"[] 0 d 0.571 w\",\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${points[2].x} ${points[2].y + 1.3} m`,\n `${points[3].x} ${points[3].y + 1.3} l`,\n \"S\"\n );\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n } else {\n this.data.popupRef = null;\n }\n }\n}\n\nclass SquigglyAnnotation extends MarkupAnnotation {\n constructor(params) {\n super(params);\n\n const { dict, xref } = params;\n this.data.annotationType = AnnotationType.SQUIGGLY;\n\n const quadPoints = (this.data.quadPoints = getQuadPoints(dict, null));\n if (quadPoints) {\n if (!this.appearance) {\n // Default color is black\n const strokeColor = this.color\n ? getPdfColorArray(this.color)\n : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n const dy = (points[0].y - points[2].y) / 6;\n let shift = dy;\n let x = points[2].x;\n const y = points[2].y;\n const xEnd = points[3].x;\n buffer.push(`${x} ${y + shift} m`);\n do {\n x += 2;\n shift = shift === 0 ? dy : 0;\n buffer.push(`${x} ${y + shift} l`);\n } while (x < xEnd);\n buffer.push(\"S\");\n return [points[2].x, xEnd, y - 2 * dy, y + 2 * dy];\n },\n });\n }\n } else {\n this.data.popupRef = null;\n }\n }\n}\n\nclass StrikeOutAnnotation extends MarkupAnnotation {\n constructor(params) {\n super(params);\n\n const { dict, xref } = params;\n this.data.annotationType = AnnotationType.STRIKEOUT;\n\n const quadPoints = (this.data.quadPoints = getQuadPoints(dict, null));\n if (quadPoints) {\n if (!this.appearance) {\n // Default color is black\n const strokeColor = this.color\n ? getPdfColorArray(this.color)\n : [0, 0, 0];\n const strokeAlpha = dict.get(\"CA\");\n\n this._setDefaultAppearance({\n xref,\n extra: \"[] 0 d 1 w\",\n strokeColor,\n strokeAlpha,\n pointsCallback: (buffer, points) => {\n buffer.push(\n `${(points[0].x + points[2].x) / 2} ` +\n `${(points[0].y + points[2].y) / 2} m`,\n `${(points[1].x + points[3].x) / 2} ` +\n `${(points[1].y + points[3].y) / 2} l`,\n \"S\"\n );\n return [points[0].x, points[1].x, points[3].y, points[1].y];\n },\n });\n }\n } else {\n this.data.popupRef = null;\n }\n }\n}\n\nclass StampAnnotation extends MarkupAnnotation {\n constructor(params) {\n super(params);\n\n this.data.annotationType = AnnotationType.STAMP;\n this.data.hasOwnCanvas = this.data.noRotate;\n this.data.noHTML = false;\n }\n\n static async createImage(bitmap, xref) {\n // TODO: when printing, we could have a specific internal colorspace\n // (e.g. something like DeviceRGBA) in order avoid any conversion (i.e. no\n // jpeg, no rgba to rgb conversion, etc...)\n\n const { width, height } = bitmap;\n const canvas = new OffscreenCanvas(width, height);\n const ctx = canvas.getContext(\"2d\", { alpha: true });\n\n // Draw the image and get the data in order to extract the transparency.\n ctx.drawImage(bitmap, 0, 0);\n const data = ctx.getImageData(0, 0, width, height).data;\n const buf32 = new Uint32Array(data.buffer);\n const hasAlpha = buf32.some(\n FeatureTest.isLittleEndian\n ? x => x >>> 24 !== 0xff\n : x => (x & 0xff) !== 0xff\n );\n\n if (hasAlpha) {\n // Redraw the image on a white background in order to remove the thin gray\n // line which can appear when exporting to jpeg.\n ctx.fillStyle = \"white\";\n ctx.fillRect(0, 0, width, height);\n ctx.drawImage(bitmap, 0, 0);\n }\n\n const jpegBufferPromise = canvas\n .convertToBlob({ type: \"image/jpeg\", quality: 1 })\n .then(blob => {\n return blob.arrayBuffer();\n });\n\n const xobjectName = Name.get(\"XObject\");\n const imageName = Name.get(\"Image\");\n const image = new Dict(xref);\n image.set(\"Type\", xobjectName);\n image.set(\"Subtype\", imageName);\n image.set(\"BitsPerComponent\", 8);\n image.set(\"ColorSpace\", Name.get(\"DeviceRGB\"));\n image.set(\"Filter\", Name.get(\"DCTDecode\"));\n image.set(\"BBox\", [0, 0, width, height]);\n image.set(\"Width\", width);\n image.set(\"Height\", height);\n\n let smaskStream = null;\n if (hasAlpha) {\n const alphaBuffer = new Uint8Array(buf32.length);\n if (FeatureTest.isLittleEndian) {\n for (let i = 0, ii = buf32.length; i < ii; i++) {\n alphaBuffer[i] = buf32[i] >>> 24;\n }\n } else {\n for (let i = 0, ii = buf32.length; i < ii; i++) {\n alphaBuffer[i] = buf32[i] & 0xff;\n }\n }\n\n const smask = new Dict(xref);\n smask.set(\"Type\", xobjectName);\n smask.set(\"Subtype\", imageName);\n smask.set(\"BitsPerComponent\", 8);\n smask.set(\"ColorSpace\", Name.get(\"DeviceGray\"));\n smask.set(\"Width\", width);\n smask.set(\"Height\", height);\n\n smaskStream = new Stream(alphaBuffer, 0, 0, smask);\n }\n const imageStream = new Stream(await jpegBufferPromise, 0, 0, image);\n\n return {\n imageStream,\n smaskStream,\n width,\n height,\n };\n }\n\n static createNewDict(annotation, xref, { apRef, ap }) {\n const { rect, rotation, user } = annotation;\n const stamp = new Dict(xref);\n stamp.set(\"Type\", Name.get(\"Annot\"));\n stamp.set(\"Subtype\", Name.get(\"Stamp\"));\n stamp.set(\"CreationDate\", `D:${getModificationDate()}`);\n stamp.set(\"Rect\", rect);\n stamp.set(\"F\", 4);\n stamp.set(\"Border\", [0, 0, 0]);\n stamp.set(\"Rotate\", rotation);\n\n if (user) {\n stamp.set(\n \"T\",\n isAscii(user) ? user : stringToUTF16String(user, /* bigEndian = */ true)\n );\n }\n\n if (apRef || ap) {\n const n = new Dict(xref);\n stamp.set(\"AP\", n);\n\n if (apRef) {\n n.set(\"N\", apRef);\n } else {\n n.set(\"N\", ap);\n }\n }\n\n return stamp;\n }\n\n static async createNewAppearanceStream(annotation, xref, params) {\n const { rotation } = annotation;\n const { imageRef, width, height } = params.image;\n const resources = new Dict(xref);\n const xobject = new Dict(xref);\n resources.set(\"XObject\", xobject);\n xobject.set(\"Im0\", imageRef);\n const appearance = `q ${width} 0 0 ${height} 0 0 cm /Im0 Do Q`;\n\n const appearanceStreamDict = new Dict(xref);\n appearanceStreamDict.set(\"FormType\", 1);\n appearanceStreamDict.set(\"Subtype\", Name.get(\"Form\"));\n appearanceStreamDict.set(\"Type\", Name.get(\"XObject\"));\n appearanceStreamDict.set(\"BBox\", [0, 0, width, height]);\n appearanceStreamDict.set(\"Resources\", resources);\n\n if (rotation) {\n const matrix = getRotationMatrix(rotation, width, height);\n appearanceStreamDict.set(\"Matrix\", matrix);\n }\n\n const ap = new StringStream(appearance);\n ap.dict = appearanceStreamDict;\n\n return ap;\n }\n}\n\nclass FileAttachmentAnnotation extends MarkupAnnotation {\n constructor(params) {\n super(params);\n\n const { dict, xref } = params;\n const file = new FileSpec(dict.get(\"FS\"), xref);\n\n this.data.annotationType = AnnotationType.FILEATTACHMENT;\n this.data.hasOwnCanvas = this.data.noRotate;\n this.data.noHTML = false;\n this.data.file = file.serializable;\n\n const name = dict.get(\"Name\");\n this.data.name =\n name instanceof Name ? stringToPDFString(name.name) : \"PushPin\";\n\n const fillAlpha = dict.get(\"ca\");\n this.data.fillAlpha =\n typeof fillAlpha === \"number\" && fillAlpha >= 0 && fillAlpha <= 1\n ? fillAlpha\n : null;\n }\n}\n\nexport {\n Annotation,\n AnnotationBorderStyle,\n AnnotationFactory,\n getQuadPoints,\n MarkupAnnotation,\n PopupAnnotation,\n};\n","/* Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { stringToUTF8String, warn } from \"../shared/util.js\";\nimport { parseXFAPath } from \"./core_utils.js\";\nimport { SimpleXMLParser } from \"./xml_parser.js\";\n\nfunction decodeString(str) {\n try {\n return stringToUTF8String(str);\n } catch (ex) {\n warn(`UTF-8 decoding failed: \"${ex}\".`);\n return str;\n }\n}\n\nclass DatasetXMLParser extends SimpleXMLParser {\n constructor(options) {\n super(options);\n this.node = null;\n }\n\n onEndElement(name) {\n const node = super.onEndElement(name);\n if (node && name === \"xfa:datasets\") {\n this.node = node;\n\n // We don't need anything else, so just kill the parser.\n throw new Error(\"Aborting DatasetXMLParser.\");\n }\n }\n}\n\nclass DatasetReader {\n constructor(data) {\n if (data.datasets) {\n this.node = new SimpleXMLParser({ hasAttributes: true }).parseFromString(\n data.datasets\n ).documentElement;\n } else {\n const parser = new DatasetXMLParser({ hasAttributes: true });\n try {\n parser.parseFromString(data[\"xdp:xdp\"]);\n } catch {}\n this.node = parser.node;\n }\n }\n\n getValue(path) {\n if (!this.node || !path) {\n return \"\";\n }\n const node = this.node.searchNode(parseXFAPath(path), 0);\n\n if (!node) {\n return \"\";\n }\n\n const first = node.firstChild;\n if (first?.nodeName === \"value\") {\n return node.children.map(child => decodeString(child.textContent));\n }\n\n return decodeString(node.textContent);\n }\n}\n\nexport { DatasetReader };\n","/* Copyright 2021 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n assert,\n bytesToString,\n FormatError,\n info,\n InvalidPDFException,\n warn,\n} from \"../shared/util.js\";\nimport { CIRCULAR_REF, Cmd, Dict, isCmd, Ref, RefSet } from \"./primitives.js\";\nimport { Lexer, Parser } from \"./parser.js\";\nimport {\n MissingDataException,\n ParserEOFException,\n XRefEntryException,\n XRefParseException,\n} from \"./core_utils.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { CipherTransformFactory } from \"./crypto.js\";\n\nclass XRef {\n #firstXRefStmPos = null;\n\n constructor(stream, pdfManager) {\n this.stream = stream;\n this.pdfManager = pdfManager;\n this.entries = [];\n this._xrefStms = new Set();\n this._cacheMap = new Map(); // Prepare the XRef cache.\n this._pendingRefs = new RefSet();\n this._newPersistentRefNum = null;\n this._newTemporaryRefNum = null;\n }\n\n getNewPersistentRef(obj) {\n // When printing we don't care that much about the ref number by itself, it\n // can increase for ever and it allows to keep some re-usable refs.\n if (this._newPersistentRefNum === null) {\n this._newPersistentRefNum = this.entries.length || 1;\n }\n const num = this._newPersistentRefNum++;\n this._cacheMap.set(num, obj);\n return Ref.get(num, 0);\n }\n\n getNewTemporaryRef() {\n // When saving we want to have some minimal numbers.\n // Those refs are only created in order to be written in the final pdf\n // stream.\n if (this._newTemporaryRefNum === null) {\n this._newTemporaryRefNum = this.entries.length || 1;\n }\n return Ref.get(this._newTemporaryRefNum++, 0);\n }\n\n resetNewTemporaryRef() {\n // Called once saving is finished.\n this._newTemporaryRefNum = null;\n }\n\n setStartXRef(startXRef) {\n // Store the starting positions of xref tables as we process them\n // so we can recover from missing data errors\n this.startXRefQueue = [startXRef];\n }\n\n parse(recoveryMode = false) {\n let trailerDict;\n if (!recoveryMode) {\n trailerDict = this.readXRef();\n } else {\n warn(\"Indexing all PDF objects\");\n trailerDict = this.indexObjects();\n }\n trailerDict.assignXref(this);\n this.trailer = trailerDict;\n\n let encrypt;\n try {\n encrypt = trailerDict.get(\"Encrypt\");\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`XRef.parse - Invalid \"Encrypt\" reference: \"${ex}\".`);\n }\n if (encrypt instanceof Dict) {\n const ids = trailerDict.get(\"ID\");\n const fileId = ids?.length ? ids[0] : \"\";\n // The 'Encrypt' dictionary itself should not be encrypted, and by\n // setting `suppressEncryption` we can prevent an infinite loop inside\n // of `XRef_fetchUncompressed` if the dictionary contains indirect\n // objects (fixes issue7665.pdf).\n encrypt.suppressEncryption = true;\n this.encrypt = new CipherTransformFactory(\n encrypt,\n fileId,\n this.pdfManager.password\n );\n }\n\n // Get the root dictionary (catalog) object, and do some basic validation.\n let root;\n try {\n root = trailerDict.get(\"Root\");\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`XRef.parse - Invalid \"Root\" reference: \"${ex}\".`);\n }\n if (root instanceof Dict) {\n try {\n const pages = root.get(\"Pages\");\n if (pages instanceof Dict) {\n this.root = root;\n return;\n }\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`XRef.parse - Invalid \"Pages\" reference: \"${ex}\".`);\n }\n }\n\n if (!recoveryMode) {\n throw new XRefParseException();\n }\n // Even recovery failed, there's nothing more we can do here.\n throw new InvalidPDFException(\"Invalid Root reference.\");\n }\n\n processXRefTable(parser) {\n if (!(\"tableState\" in this)) {\n // Stores state of the table as we process it so we can resume\n // from middle of table in case of missing data error\n this.tableState = {\n entryNum: 0,\n streamPos: parser.lexer.stream.pos,\n parserBuf1: parser.buf1,\n parserBuf2: parser.buf2,\n };\n }\n\n const obj = this.readXRefTable(parser);\n\n // Sanity check\n if (!isCmd(obj, \"trailer\")) {\n throw new FormatError(\n \"Invalid XRef table: could not find trailer dictionary\"\n );\n }\n // Read trailer dictionary, e.g.\n // trailer\n // << /Size 22\n // /Root 20R\n // /Info 10R\n // /ID [ <81b14aafa313db63dbd6f981e49f94f4> ]\n // >>\n // The parser goes through the entire stream << ... >> and provides\n // a getter interface for the key-value table\n let dict = parser.getObj();\n\n // The pdflib PDF generator can generate a nested trailer dictionary\n if (!(dict instanceof Dict) && dict.dict) {\n dict = dict.dict;\n }\n if (!(dict instanceof Dict)) {\n throw new FormatError(\n \"Invalid XRef table: could not parse trailer dictionary\"\n );\n }\n delete this.tableState;\n\n return dict;\n }\n\n readXRefTable(parser) {\n // Example of cross-reference table:\n // xref\n // 0 1 <-- subsection header (first obj #, obj count)\n // 0000000000 65535 f <-- actual object (offset, generation #, f/n)\n // 23 2 <-- subsection header ... and so on ...\n // 0000025518 00002 n\n // 0000025635 00000 n\n // trailer\n // ...\n\n const stream = parser.lexer.stream;\n const tableState = this.tableState;\n stream.pos = tableState.streamPos;\n parser.buf1 = tableState.parserBuf1;\n parser.buf2 = tableState.parserBuf2;\n\n // Outer loop is over subsection headers\n let obj;\n\n while (true) {\n if (!(\"firstEntryNum\" in tableState) || !(\"entryCount\" in tableState)) {\n if (isCmd((obj = parser.getObj()), \"trailer\")) {\n break;\n }\n tableState.firstEntryNum = obj;\n tableState.entryCount = parser.getObj();\n }\n\n let first = tableState.firstEntryNum;\n const count = tableState.entryCount;\n if (!Number.isInteger(first) || !Number.isInteger(count)) {\n throw new FormatError(\n \"Invalid XRef table: wrong types in subsection header\"\n );\n }\n // Inner loop is over objects themselves\n for (let i = tableState.entryNum; i < count; i++) {\n tableState.streamPos = stream.pos;\n tableState.entryNum = i;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n\n const entry = {};\n entry.offset = parser.getObj();\n entry.gen = parser.getObj();\n const type = parser.getObj();\n\n if (type instanceof Cmd) {\n switch (type.cmd) {\n case \"f\":\n entry.free = true;\n break;\n case \"n\":\n entry.uncompressed = true;\n break;\n }\n }\n\n // Validate entry obj\n if (\n !Number.isInteger(entry.offset) ||\n !Number.isInteger(entry.gen) ||\n !(entry.free || entry.uncompressed)\n ) {\n throw new FormatError(\n `Invalid entry in XRef subsection: ${first}, ${count}`\n );\n }\n\n // The first xref table entry, i.e. obj 0, should be free. Attempting\n // to adjust an incorrect first obj # (fixes issue 3248 and 7229).\n if (i === 0 && entry.free && first === 1) {\n first = 0;\n }\n\n if (!this.entries[i + first]) {\n this.entries[i + first] = entry;\n }\n }\n\n tableState.entryNum = 0;\n tableState.streamPos = stream.pos;\n tableState.parserBuf1 = parser.buf1;\n tableState.parserBuf2 = parser.buf2;\n delete tableState.firstEntryNum;\n delete tableState.entryCount;\n }\n\n // Sanity check: as per spec, first object must be free\n if (this.entries[0] && !this.entries[0].free) {\n throw new FormatError(\"Invalid XRef table: unexpected first object\");\n }\n return obj;\n }\n\n processXRefStream(stream) {\n if (!(\"streamState\" in this)) {\n // Stores state of the stream as we process it so we can resume\n // from middle of stream in case of missing data error\n const streamParameters = stream.dict;\n const byteWidths = streamParameters.get(\"W\");\n let range = streamParameters.get(\"Index\");\n if (!range) {\n range = [0, streamParameters.get(\"Size\")];\n }\n\n this.streamState = {\n entryRanges: range,\n byteWidths,\n entryNum: 0,\n streamPos: stream.pos,\n };\n }\n this.readXRefStream(stream);\n delete this.streamState;\n\n return stream.dict;\n }\n\n readXRefStream(stream) {\n const streamState = this.streamState;\n stream.pos = streamState.streamPos;\n\n const [typeFieldWidth, offsetFieldWidth, generationFieldWidth] =\n streamState.byteWidths;\n\n const entryRanges = streamState.entryRanges;\n while (entryRanges.length > 0) {\n const [first, n] = entryRanges;\n\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new FormatError(`Invalid XRef range fields: ${first}, ${n}`);\n }\n if (\n !Number.isInteger(typeFieldWidth) ||\n !Number.isInteger(offsetFieldWidth) ||\n !Number.isInteger(generationFieldWidth)\n ) {\n throw new FormatError(\n `Invalid XRef entry fields length: ${first}, ${n}`\n );\n }\n for (let i = streamState.entryNum; i < n; ++i) {\n streamState.entryNum = i;\n streamState.streamPos = stream.pos;\n\n let type = 0,\n offset = 0,\n generation = 0;\n for (let j = 0; j < typeFieldWidth; ++j) {\n const typeByte = stream.getByte();\n if (typeByte === -1) {\n throw new FormatError(\"Invalid XRef byteWidths 'type'.\");\n }\n type = (type << 8) | typeByte;\n }\n // if type field is absent, its default value is 1\n if (typeFieldWidth === 0) {\n type = 1;\n }\n for (let j = 0; j < offsetFieldWidth; ++j) {\n const offsetByte = stream.getByte();\n if (offsetByte === -1) {\n throw new FormatError(\"Invalid XRef byteWidths 'offset'.\");\n }\n offset = (offset << 8) | offsetByte;\n }\n for (let j = 0; j < generationFieldWidth; ++j) {\n const generationByte = stream.getByte();\n if (generationByte === -1) {\n throw new FormatError(\"Invalid XRef byteWidths 'generation'.\");\n }\n generation = (generation << 8) | generationByte;\n }\n const entry = {};\n entry.offset = offset;\n entry.gen = generation;\n switch (type) {\n case 0:\n entry.free = true;\n break;\n case 1:\n entry.uncompressed = true;\n break;\n case 2:\n break;\n default:\n throw new FormatError(`Invalid XRef entry type: ${type}`);\n }\n if (!this.entries[first + i]) {\n this.entries[first + i] = entry;\n }\n }\n\n streamState.entryNum = 0;\n streamState.streamPos = stream.pos;\n entryRanges.splice(0, 2);\n }\n }\n\n indexObjects() {\n // Simple scan through the PDF content to find objects,\n // trailers and XRef streams.\n const TAB = 0x9,\n LF = 0xa,\n CR = 0xd,\n SPACE = 0x20;\n const PERCENT = 0x25,\n LT = 0x3c;\n\n function readToken(data, offset) {\n let token = \"\",\n ch = data[offset];\n while (ch !== LF && ch !== CR && ch !== LT) {\n if (++offset >= data.length) {\n break;\n }\n token += String.fromCharCode(ch);\n ch = data[offset];\n }\n return token;\n }\n function skipUntil(data, offset, what) {\n const length = what.length,\n dataLength = data.length;\n let skipped = 0;\n // finding byte sequence\n while (offset < dataLength) {\n let i = 0;\n while (i < length && data[offset + i] === what[i]) {\n ++i;\n }\n if (i >= length) {\n break; // sequence found\n }\n offset++;\n skipped++;\n }\n return skipped;\n }\n const gEndobjRegExp = /\\b(endobj|\\d+\\s+\\d+\\s+obj|xref|trailer\\s*<<)\\b/g;\n const gStartxrefRegExp = /\\b(startxref|\\d+\\s+\\d+\\s+obj)\\b/g;\n const objRegExp = /^(\\d+)\\s+(\\d+)\\s+obj\\b/;\n\n const trailerBytes = new Uint8Array([116, 114, 97, 105, 108, 101, 114]);\n const startxrefBytes = new Uint8Array([\n 115, 116, 97, 114, 116, 120, 114, 101, 102,\n ]);\n const xrefBytes = new Uint8Array([47, 88, 82, 101, 102]);\n\n // Clear out any existing entries, since they may be bogus.\n this.entries.length = 0;\n this._cacheMap.clear();\n\n const stream = this.stream;\n stream.pos = 0;\n const buffer = stream.getBytes(),\n bufferStr = bytesToString(buffer),\n length = buffer.length;\n let position = stream.start;\n const trailers = [],\n xrefStms = [];\n while (position < length) {\n let ch = buffer[position];\n if (ch === TAB || ch === LF || ch === CR || ch === SPACE) {\n ++position;\n continue;\n }\n if (ch === PERCENT) {\n // %-comment\n do {\n ++position;\n if (position >= length) {\n break;\n }\n ch = buffer[position];\n } while (ch !== LF && ch !== CR);\n continue;\n }\n const token = readToken(buffer, position);\n let m;\n if (\n token.startsWith(\"xref\") &&\n (token.length === 4 || /\\s/.test(token[4]))\n ) {\n position += skipUntil(buffer, position, trailerBytes);\n trailers.push(position);\n position += skipUntil(buffer, position, startxrefBytes);\n } else if ((m = objRegExp.exec(token))) {\n const num = m[1] | 0,\n gen = m[2] | 0;\n\n const startPos = position + token.length;\n let contentLength,\n updateEntries = false;\n if (!this.entries[num]) {\n updateEntries = true;\n } else if (this.entries[num].gen === gen) {\n // Before overwriting an existing entry, ensure that the new one won't\n // cause *immediate* errors when it's accessed (fixes issue13783.pdf).\n try {\n const parser = new Parser({\n lexer: new Lexer(stream.makeSubStream(startPos)),\n });\n parser.getObj();\n updateEntries = true;\n } catch (ex) {\n if (ex instanceof ParserEOFException) {\n warn(`indexObjects -- checking object (${token}): \"${ex}\".`);\n } else {\n // The error may come from the `Parser`-instance being initialized\n // without an `XRef`-instance (we don't have a usable one yet).\n updateEntries = true;\n }\n }\n }\n if (updateEntries) {\n this.entries[num] = {\n offset: position - stream.start,\n gen,\n uncompressed: true,\n };\n }\n\n // Find the next \"obj\" string, rather than \"endobj\", to ensure that\n // we won't skip over a new 'obj' operator in corrupt files where\n // 'endobj' operators are missing (fixes issue9105_reduced.pdf).\n gEndobjRegExp.lastIndex = startPos;\n const match = gEndobjRegExp.exec(bufferStr);\n\n if (match) {\n const endPos = gEndobjRegExp.lastIndex + 1;\n contentLength = endPos - position;\n\n if (match[1] !== \"endobj\") {\n warn(\n `indexObjects: Found \"${match[1]}\" inside of another \"obj\", ` +\n 'caused by missing \"endobj\" -- trying to recover.'\n );\n contentLength -= match[1].length + 1;\n }\n } else {\n contentLength = length - position;\n }\n const content = buffer.subarray(position, position + contentLength);\n\n // checking XRef stream suspect\n // (it shall have '/XRef' and next char is not a letter)\n const xrefTagOffset = skipUntil(content, 0, xrefBytes);\n if (xrefTagOffset < contentLength && content[xrefTagOffset + 5] < 64) {\n xrefStms.push(position - stream.start);\n this._xrefStms.add(position - stream.start); // Avoid recursion\n }\n\n position += contentLength;\n } else if (\n token.startsWith(\"trailer\") &&\n (token.length === 7 || /\\s/.test(token[7]))\n ) {\n trailers.push(position);\n\n const startPos = position + token.length;\n let contentLength;\n // Attempt to handle (some) corrupt documents, where no 'startxref'\n // operators are present (fixes issue15590.pdf).\n gStartxrefRegExp.lastIndex = startPos;\n const match = gStartxrefRegExp.exec(bufferStr);\n\n if (match) {\n const endPos = gStartxrefRegExp.lastIndex + 1;\n contentLength = endPos - position;\n\n if (match[1] !== \"startxref\") {\n warn(\n `indexObjects: Found \"${match[1]}\" after \"trailer\", ` +\n 'caused by missing \"startxref\" -- trying to recover.'\n );\n contentLength -= match[1].length + 1;\n }\n } else {\n contentLength = length - position;\n }\n position += contentLength;\n } else {\n position += token.length + 1;\n }\n }\n // reading XRef streams\n for (const xrefStm of xrefStms) {\n this.startXRefQueue.push(xrefStm);\n this.readXRef(/* recoveryMode */ true);\n }\n\n const trailerDicts = [];\n // Pre-parsing the trailers to check if the document is possibly encrypted.\n let isEncrypted = false;\n for (const trailer of trailers) {\n stream.pos = trailer;\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n recoveryMode: true,\n });\n const obj = parser.getObj();\n if (!isCmd(obj, \"trailer\")) {\n continue;\n }\n // read the trailer dictionary\n const dict = parser.getObj();\n if (!(dict instanceof Dict)) {\n continue;\n }\n trailerDicts.push(dict);\n\n if (dict.has(\"Encrypt\")) {\n isEncrypted = true;\n }\n }\n\n // finding main trailer\n let trailerDict, trailerError;\n for (const dict of [...trailerDicts, \"genFallback\", ...trailerDicts]) {\n if (dict === \"genFallback\") {\n if (!trailerError) {\n break; // No need to fallback if there were no validation errors.\n }\n this._generationFallback = true;\n continue;\n }\n // Do some basic validation of the trailer/root dictionary candidate.\n let validPagesDict = false;\n try {\n const rootDict = dict.get(\"Root\");\n if (!(rootDict instanceof Dict)) {\n continue;\n }\n const pagesDict = rootDict.get(\"Pages\");\n if (!(pagesDict instanceof Dict)) {\n continue;\n }\n const pagesCount = pagesDict.get(\"Count\");\n if (Number.isInteger(pagesCount)) {\n validPagesDict = true;\n }\n // The top-level /Pages dictionary isn't obviously corrupt.\n } catch (ex) {\n trailerError = ex;\n continue;\n }\n // taking the first one with 'ID'\n if (\n validPagesDict &&\n (!isEncrypted || dict.has(\"Encrypt\")) &&\n dict.has(\"ID\")\n ) {\n return dict;\n }\n // The current dictionary is a candidate, but continue searching.\n trailerDict = dict;\n }\n // No trailer with 'ID', taking last one (if exists).\n if (trailerDict) {\n return trailerDict;\n }\n // No trailer dictionary found, taking the \"top\"-dictionary (if exists).\n if (this.topDict) {\n return this.topDict;\n }\n // nothing helps\n throw new InvalidPDFException(\"Invalid PDF structure.\");\n }\n\n readXRef(recoveryMode = false) {\n const stream = this.stream;\n // Keep track of already parsed XRef tables, to prevent an infinite loop\n // when parsing corrupt PDF files where e.g. the /Prev entries create a\n // circular dependency between tables (fixes bug1393476.pdf).\n const startXRefParsedCache = new Set();\n\n while (this.startXRefQueue.length) {\n try {\n const startXRef = this.startXRefQueue[0];\n\n if (startXRefParsedCache.has(startXRef)) {\n warn(\"readXRef - skipping XRef table since it was already parsed.\");\n this.startXRefQueue.shift();\n continue;\n }\n startXRefParsedCache.add(startXRef);\n\n stream.pos = startXRef + stream.start;\n\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n });\n let obj = parser.getObj();\n let dict;\n\n // Get dictionary\n if (isCmd(obj, \"xref\")) {\n // Parse end-of-file XRef\n dict = this.processXRefTable(parser);\n if (!this.topDict) {\n this.topDict = dict;\n }\n\n // Recursively get other XRefs 'XRefStm', if any\n obj = dict.get(\"XRefStm\");\n if (Number.isInteger(obj) && !this._xrefStms.has(obj)) {\n // ignore previously loaded xref streams\n // (possible infinite recursion)\n this._xrefStms.add(obj);\n this.startXRefQueue.push(obj);\n this.#firstXRefStmPos ??= obj;\n }\n } else if (Number.isInteger(obj)) {\n // Parse in-stream XRef\n if (\n !Number.isInteger(parser.getObj()) ||\n !isCmd(parser.getObj(), \"obj\") ||\n !((obj = parser.getObj()) instanceof BaseStream)\n ) {\n throw new FormatError(\"Invalid XRef stream\");\n }\n dict = this.processXRefStream(obj);\n if (!this.topDict) {\n this.topDict = dict;\n }\n if (!dict) {\n throw new FormatError(\"Failed to read XRef stream\");\n }\n } else {\n throw new FormatError(\"Invalid XRef stream header\");\n }\n\n // Recursively get previous dictionary, if any\n obj = dict.get(\"Prev\");\n if (Number.isInteger(obj)) {\n this.startXRefQueue.push(obj);\n } else if (obj instanceof Ref) {\n // The spec says Prev must not be a reference, i.e. \"/Prev NNN\"\n // This is a fallback for non-compliant PDFs, i.e. \"/Prev NNN 0 R\"\n this.startXRefQueue.push(obj.num);\n }\n } catch (e) {\n if (e instanceof MissingDataException) {\n throw e;\n }\n info(\"(while reading XRef): \" + e);\n }\n this.startXRefQueue.shift();\n }\n\n if (this.topDict) {\n return this.topDict;\n }\n if (recoveryMode) {\n return undefined;\n }\n throw new XRefParseException();\n }\n\n get lastXRefStreamPos() {\n return (\n this.#firstXRefStmPos ??\n (this._xrefStms.size > 0 ? Math.max(...this._xrefStms) : null)\n );\n }\n\n getEntry(i) {\n const xrefEntry = this.entries[i];\n if (xrefEntry && !xrefEntry.free && xrefEntry.offset) {\n return xrefEntry;\n }\n return null;\n }\n\n fetchIfRef(obj, suppressEncryption = false) {\n if (obj instanceof Ref) {\n return this.fetch(obj, suppressEncryption);\n }\n return obj;\n }\n\n fetch(ref, suppressEncryption = false) {\n if (!(ref instanceof Ref)) {\n throw new Error(\"ref object is not a reference\");\n }\n const num = ref.num;\n\n // The XRef cache is populated with objects which are obtained through\n // `Parser.getObj`, and indirectly via `Lexer.getObj`. Neither of these\n // methods should ever return `undefined` (note the `assert` calls below).\n const cacheEntry = this._cacheMap.get(num);\n if (cacheEntry !== undefined) {\n // In documents with Object Streams, it's possible that cached `Dict`s\n // have not been assigned an `objId` yet (see e.g. issue3115r.pdf).\n if (cacheEntry instanceof Dict && !cacheEntry.objId) {\n cacheEntry.objId = ref.toString();\n }\n return cacheEntry;\n }\n let xrefEntry = this.getEntry(num);\n\n if (xrefEntry === null) {\n // The referenced entry can be free.\n this._cacheMap.set(num, xrefEntry);\n return xrefEntry;\n }\n // Prevent circular references, in corrupt PDF documents, from hanging the\n // worker-thread. This relies, implicitly, on the parsing being synchronous.\n if (this._pendingRefs.has(ref)) {\n this._pendingRefs.remove(ref);\n\n warn(`Ignoring circular reference: ${ref}.`);\n return CIRCULAR_REF;\n }\n this._pendingRefs.put(ref);\n\n try {\n xrefEntry = xrefEntry.uncompressed\n ? this.fetchUncompressed(ref, xrefEntry, suppressEncryption)\n : this.fetchCompressed(ref, xrefEntry, suppressEncryption);\n this._pendingRefs.remove(ref);\n } catch (ex) {\n this._pendingRefs.remove(ref);\n throw ex;\n }\n if (xrefEntry instanceof Dict) {\n xrefEntry.objId = ref.toString();\n } else if (xrefEntry instanceof BaseStream) {\n xrefEntry.dict.objId = ref.toString();\n }\n return xrefEntry;\n }\n\n fetchUncompressed(ref, xrefEntry, suppressEncryption = false) {\n const gen = ref.gen;\n let num = ref.num;\n if (xrefEntry.gen !== gen) {\n const msg = `Inconsistent generation in XRef: ${ref}`;\n // Try falling back to a *previous* generation (fixes issue15577.pdf).\n if (this._generationFallback && xrefEntry.gen < gen) {\n warn(msg);\n return this.fetchUncompressed(\n Ref.get(num, xrefEntry.gen),\n xrefEntry,\n suppressEncryption\n );\n }\n throw new XRefEntryException(msg);\n }\n const stream = this.stream.makeSubStream(\n xrefEntry.offset + this.stream.start\n );\n const parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n });\n const obj1 = parser.getObj();\n const obj2 = parser.getObj();\n const obj3 = parser.getObj();\n\n if (obj1 !== num || obj2 !== gen || !(obj3 instanceof Cmd)) {\n throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n if (obj3.cmd !== \"obj\") {\n // some bad PDFs use \"obj1234\" and really mean 1234\n if (obj3.cmd.startsWith(\"obj\")) {\n num = parseInt(obj3.cmd.substring(3), 10);\n if (!Number.isNaN(num)) {\n return num;\n }\n }\n throw new XRefEntryException(`Bad (uncompressed) XRef entry: ${ref}`);\n }\n xrefEntry =\n this.encrypt && !suppressEncryption\n ? parser.getObj(this.encrypt.createCipherTransform(num, gen))\n : parser.getObj();\n if (!(xrefEntry instanceof BaseStream)) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n xrefEntry !== undefined,\n 'fetchUncompressed: The \"xrefEntry\" cannot be undefined.'\n );\n }\n this._cacheMap.set(num, xrefEntry);\n }\n return xrefEntry;\n }\n\n fetchCompressed(ref, xrefEntry, suppressEncryption = false) {\n const tableOffset = xrefEntry.offset;\n const stream = this.fetch(Ref.get(tableOffset, 0));\n if (!(stream instanceof BaseStream)) {\n throw new FormatError(\"bad ObjStm stream\");\n }\n const first = stream.dict.get(\"First\");\n const n = stream.dict.get(\"N\");\n if (!Number.isInteger(first) || !Number.isInteger(n)) {\n throw new FormatError(\"invalid first and n parameters for ObjStm stream\");\n }\n let parser = new Parser({\n lexer: new Lexer(stream),\n xref: this,\n allowStreams: true,\n });\n const nums = new Array(n);\n const offsets = new Array(n);\n // read the object numbers to populate cache\n for (let i = 0; i < n; ++i) {\n const num = parser.getObj();\n if (!Number.isInteger(num)) {\n throw new FormatError(\n `invalid object number in the ObjStm stream: ${num}`\n );\n }\n const offset = parser.getObj();\n if (!Number.isInteger(offset)) {\n throw new FormatError(\n `invalid object offset in the ObjStm stream: ${offset}`\n );\n }\n nums[i] = num;\n offsets[i] = offset;\n }\n\n const start = (stream.start || 0) + first;\n const entries = new Array(n);\n // read stream objects for cache\n for (let i = 0; i < n; ++i) {\n const length = i < n - 1 ? offsets[i + 1] - offsets[i] : undefined;\n if (length < 0) {\n throw new FormatError(\"Invalid offset in the ObjStm stream.\");\n }\n parser = new Parser({\n lexer: new Lexer(\n stream.makeSubStream(start + offsets[i], length, stream.dict)\n ),\n xref: this,\n allowStreams: true,\n });\n\n const obj = parser.getObj();\n entries[i] = obj;\n if (obj instanceof BaseStream) {\n continue;\n }\n const num = nums[i],\n entry = this.entries[num];\n if (entry && entry.offset === tableOffset && entry.gen === i) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n obj !== undefined,\n 'fetchCompressed: The \"obj\" cannot be undefined.'\n );\n }\n this._cacheMap.set(num, obj);\n }\n }\n xrefEntry = entries[xrefEntry.gen];\n if (xrefEntry === undefined) {\n throw new XRefEntryException(`Bad (compressed) XRef entry: ${ref}`);\n }\n return xrefEntry;\n }\n\n async fetchIfRefAsync(obj, suppressEncryption) {\n if (obj instanceof Ref) {\n return this.fetchAsync(obj, suppressEncryption);\n }\n return obj;\n }\n\n async fetchAsync(ref, suppressEncryption) {\n try {\n return this.fetch(ref, suppressEncryption);\n } catch (ex) {\n if (!(ex instanceof MissingDataException)) {\n throw ex;\n }\n await this.pdfManager.requestRange(ex.begin, ex.end);\n return this.fetchAsync(ref, suppressEncryption);\n }\n }\n\n getCatalogObj() {\n return this.root;\n }\n}\n\nexport { XRef };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AnnotationEditorPrefix,\n assert,\n FormatError,\n info,\n InvalidPDFException,\n isArrayEqual,\n PageActionEventType,\n RenderingIntentFlag,\n shadow,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n unreachable,\n Util,\n warn,\n} from \"../shared/util.js\";\nimport { AnnotationFactory, PopupAnnotation } from \"./annotation.js\";\nimport {\n collectActions,\n getInheritableProperty,\n getNewAnnotationsMap,\n isWhiteSpace,\n MissingDataException,\n PDF_VERSION_REGEXP,\n validateCSSFont,\n XRefEntryException,\n XRefParseException,\n} from \"./core_utils.js\";\nimport { Dict, isName, isRefsEqual, Name, Ref, RefSet } from \"./primitives.js\";\nimport { getXfaFontDict, getXfaFontName } from \"./xfa_fonts.js\";\nimport { BaseStream } from \"./base_stream.js\";\nimport { calculateMD5 } from \"./crypto.js\";\nimport { Catalog } from \"./catalog.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { DatasetReader } from \"./dataset_reader.js\";\nimport { Linearization } from \"./parser.js\";\nimport { NullStream } from \"./stream.js\";\nimport { ObjectLoader } from \"./object_loader.js\";\nimport { OperatorList } from \"./operator_list.js\";\nimport { PartialEvaluator } from \"./evaluator.js\";\nimport { StreamsSequenceStream } from \"./decode_stream.js\";\nimport { StructTreePage } from \"./struct_tree.js\";\nimport { writeObject } from \"./writer.js\";\nimport { XFAFactory } from \"./xfa/factory.js\";\nimport { XRef } from \"./xref.js\";\n\nconst DEFAULT_USER_UNIT = 1.0;\nconst LETTER_SIZE_MEDIABOX = [0, 0, 612, 792];\n\nclass Page {\n constructor({\n pdfManager,\n xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory,\n fontCache,\n builtInCMapCache,\n standardFontDataCache,\n globalImageCache,\n systemFontCache,\n nonBlendModesSet,\n xfaFactory,\n }) {\n this.pdfManager = pdfManager;\n this.pageIndex = pageIndex;\n this.pageDict = pageDict;\n this.xref = xref;\n this.ref = ref;\n this.fontCache = fontCache;\n this.builtInCMapCache = builtInCMapCache;\n this.standardFontDataCache = standardFontDataCache;\n this.globalImageCache = globalImageCache;\n this.systemFontCache = systemFontCache;\n this.nonBlendModesSet = nonBlendModesSet;\n this.evaluatorOptions = pdfManager.evaluatorOptions;\n this.resourcesPromise = null;\n this.xfaFactory = xfaFactory;\n\n const idCounters = {\n obj: 0,\n };\n this._localIdFactory = class extends globalIdFactory {\n static createObjId() {\n return `p${pageIndex}_${++idCounters.obj}`;\n }\n\n static getPageObjId() {\n return `p${ref.toString()}`;\n }\n };\n }\n\n /**\n * @private\n */\n _getInheritableProperty(key, getArray = false) {\n const value = getInheritableProperty({\n dict: this.pageDict,\n key,\n getArray,\n stopWhenFound: false,\n });\n if (!Array.isArray(value)) {\n return value;\n }\n if (value.length === 1 || !(value[0] instanceof Dict)) {\n return value[0];\n }\n return Dict.merge({ xref: this.xref, dictArray: value });\n }\n\n get content() {\n return this.pageDict.getArray(\"Contents\");\n }\n\n get resources() {\n // For robustness: The spec states that a \\Resources entry has to be\n // present, but can be empty. Some documents still omit it; in this case\n // we return an empty dictionary.\n const resources = this._getInheritableProperty(\"Resources\");\n\n return shadow(\n this,\n \"resources\",\n resources instanceof Dict ? resources : Dict.empty\n );\n }\n\n _getBoundingBox(name) {\n if (this.xfaData) {\n return this.xfaData.bbox;\n }\n let box = this._getInheritableProperty(name, /* getArray = */ true);\n\n if (Array.isArray(box) && box.length === 4) {\n box = Util.normalizeRect(box);\n if (box[2] - box[0] > 0 && box[3] - box[1] > 0) {\n return box;\n }\n warn(`Empty, or invalid, /${name} entry.`);\n }\n return null;\n }\n\n get mediaBox() {\n // Reset invalid media box to letter size.\n return shadow(\n this,\n \"mediaBox\",\n this._getBoundingBox(\"MediaBox\") || LETTER_SIZE_MEDIABOX\n );\n }\n\n get cropBox() {\n // Reset invalid crop box to media box.\n return shadow(\n this,\n \"cropBox\",\n this._getBoundingBox(\"CropBox\") || this.mediaBox\n );\n }\n\n get userUnit() {\n let obj = this.pageDict.get(\"UserUnit\");\n if (typeof obj !== \"number\" || obj <= 0) {\n obj = DEFAULT_USER_UNIT;\n }\n return shadow(this, \"userUnit\", obj);\n }\n\n get view() {\n // From the spec, 6th ed., p.963:\n // \"The crop, bleed, trim, and art boxes should not ordinarily\n // extend beyond the boundaries of the media box. If they do, they are\n // effectively reduced to their intersection with the media box.\"\n const { cropBox, mediaBox } = this;\n\n if (cropBox !== mediaBox && !isArrayEqual(cropBox, mediaBox)) {\n const box = Util.intersect(cropBox, mediaBox);\n if (box && box[2] - box[0] > 0 && box[3] - box[1] > 0) {\n return shadow(this, \"view\", box);\n }\n warn(\"Empty /CropBox and /MediaBox intersection.\");\n }\n return shadow(this, \"view\", mediaBox);\n }\n\n get rotate() {\n let rotate = this._getInheritableProperty(\"Rotate\") || 0;\n\n // Normalize rotation so it's a multiple of 90 and between 0 and 270.\n if (rotate % 90 !== 0) {\n rotate = 0;\n } else if (rotate >= 360) {\n rotate %= 360;\n } else if (rotate < 0) {\n // The spec doesn't cover negatives. Assume it's counterclockwise\n // rotation. The following is the other implementation of modulo.\n rotate = ((rotate % 360) + 360) % 360;\n }\n return shadow(this, \"rotate\", rotate);\n }\n\n /**\n * @private\n */\n _onSubStreamError(reason, objId) {\n if (this.evaluatorOptions.ignoreErrors) {\n warn(`getContentStream - ignoring sub-stream (${objId}): \"${reason}\".`);\n return;\n }\n throw reason;\n }\n\n /**\n * @returns {Promise<BaseStream>}\n */\n getContentStream() {\n return this.pdfManager.ensure(this, \"content\").then(content => {\n if (content instanceof BaseStream) {\n return content;\n }\n if (Array.isArray(content)) {\n return new StreamsSequenceStream(\n content,\n this._onSubStreamError.bind(this)\n );\n }\n // Replace non-existent page content with empty content.\n return new NullStream();\n });\n }\n\n get xfaData() {\n return shadow(\n this,\n \"xfaData\",\n this.xfaFactory\n ? { bbox: this.xfaFactory.getBoundingBox(this.pageIndex) }\n : null\n );\n }\n\n #replaceIdByRef(annotations, deletedAnnotations, existingAnnotations) {\n for (const annotation of annotations) {\n if (annotation.id) {\n const ref = Ref.fromString(annotation.id);\n if (!ref) {\n warn(`A non-linked annotation cannot be modified: ${annotation.id}`);\n continue;\n }\n if (annotation.deleted) {\n deletedAnnotations.put(ref);\n continue;\n }\n existingAnnotations?.put(ref);\n annotation.ref = ref;\n delete annotation.id;\n }\n }\n }\n\n async saveNewAnnotations(handler, task, annotations, imagePromises) {\n if (this.xfaFactory) {\n throw new Error(\"XFA: Cannot save new annotations.\");\n }\n\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n systemFontCache: this.systemFontCache,\n options: this.evaluatorOptions,\n });\n\n const deletedAnnotations = new RefSet();\n const existingAnnotations = new RefSet();\n this.#replaceIdByRef(annotations, deletedAnnotations, existingAnnotations);\n\n const pageDict = this.pageDict;\n const annotationsArray = this.annotations.filter(\n a => !(a instanceof Ref && deletedAnnotations.has(a))\n );\n const newData = await AnnotationFactory.saveNewAnnotations(\n partialEvaluator,\n task,\n annotations,\n imagePromises\n );\n\n for (const { ref } of newData.annotations) {\n // Don't add an existing annotation ref to the annotations array.\n if (ref instanceof Ref && !existingAnnotations.has(ref)) {\n annotationsArray.push(ref);\n }\n }\n\n const savedDict = pageDict.get(\"Annots\");\n pageDict.set(\"Annots\", annotationsArray);\n const buffer = [];\n await writeObject(this.ref, pageDict, buffer, this.xref);\n if (savedDict) {\n pageDict.set(\"Annots\", savedDict);\n }\n\n const objects = newData.dependencies;\n objects.push(\n { ref: this.ref, data: buffer.join(\"\") },\n ...newData.annotations\n );\n\n return objects;\n }\n\n save(handler, task, annotationStorage) {\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n systemFontCache: this.systemFontCache,\n options: this.evaluatorOptions,\n });\n\n // Fetch the page's annotations and save the content\n // in case of interactive form fields.\n return this._parsedAnnotations.then(function (annotations) {\n const newRefsPromises = [];\n for (const annotation of annotations) {\n if (!annotation.mustBePrinted(annotationStorage)) {\n continue;\n }\n newRefsPromises.push(\n annotation\n .save(partialEvaluator, task, annotationStorage)\n .catch(function (reason) {\n warn(\n \"save - ignoring annotation data during \" +\n `\"${task.name}\" task: \"${reason}\".`\n );\n return null;\n })\n );\n }\n\n return Promise.all(newRefsPromises).then(function (newRefs) {\n return newRefs.filter(newRef => !!newRef);\n });\n });\n }\n\n loadResources(keys) {\n if (!this.resourcesPromise) {\n // TODO: add async `_getInheritableProperty` and remove this.\n this.resourcesPromise = this.pdfManager.ensure(this, \"resources\");\n }\n return this.resourcesPromise.then(() => {\n const objectLoader = new ObjectLoader(this.resources, keys, this.xref);\n return objectLoader.load();\n });\n }\n\n getOperatorList({\n handler,\n sink,\n task,\n intent,\n cacheKey,\n annotationStorage = null,\n }) {\n const contentStreamPromise = this.getContentStream();\n const resourcesPromise = this.loadResources([\n \"ColorSpace\",\n \"ExtGState\",\n \"Font\",\n \"Pattern\",\n \"Properties\",\n \"Shading\",\n \"XObject\",\n ]);\n\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n systemFontCache: this.systemFontCache,\n options: this.evaluatorOptions,\n });\n\n const newAnnotationsByPage = !this.xfaFactory\n ? getNewAnnotationsMap(annotationStorage)\n : null;\n let deletedAnnotations = null;\n\n let newAnnotationsPromise = Promise.resolve(null);\n if (newAnnotationsByPage) {\n const newAnnotations = newAnnotationsByPage.get(this.pageIndex);\n if (newAnnotations) {\n const annotationGlobalsPromise =\n this.pdfManager.ensureDoc(\"annotationGlobals\");\n let imagePromises;\n\n // An annotation can contain a reference to a bitmap, but this bitmap\n // is defined in another annotation. So we need to find this annotation\n // and generate the bitmap.\n const missingBitmaps = new Set();\n for (const { bitmapId, bitmap } of newAnnotations) {\n if (bitmapId && !bitmap && !missingBitmaps.has(bitmapId)) {\n missingBitmaps.add(bitmapId);\n }\n }\n\n const { isOffscreenCanvasSupported } = this.evaluatorOptions;\n if (missingBitmaps.size > 0) {\n const annotationWithBitmaps = newAnnotations.slice();\n for (const [key, annotation] of annotationStorage) {\n if (!key.startsWith(AnnotationEditorPrefix)) {\n continue;\n }\n if (annotation.bitmap && missingBitmaps.has(annotation.bitmapId)) {\n annotationWithBitmaps.push(annotation);\n }\n }\n // The array annotationWithBitmaps cannot be empty: the check above\n // makes sure to have at least one annotation containing the bitmap.\n imagePromises = AnnotationFactory.generateImages(\n annotationWithBitmaps,\n this.xref,\n isOffscreenCanvasSupported\n );\n } else {\n imagePromises = AnnotationFactory.generateImages(\n newAnnotations,\n this.xref,\n isOffscreenCanvasSupported\n );\n }\n\n deletedAnnotations = new RefSet();\n this.#replaceIdByRef(newAnnotations, deletedAnnotations, null);\n\n newAnnotationsPromise = annotationGlobalsPromise.then(\n annotationGlobals => {\n if (!annotationGlobals) {\n return null;\n }\n\n return AnnotationFactory.printNewAnnotations(\n annotationGlobals,\n partialEvaluator,\n task,\n newAnnotations,\n imagePromises\n );\n }\n );\n }\n }\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n const pageListPromise = dataPromises.then(([contentStream]) => {\n const opList = new OperatorList(intent, sink);\n\n handler.send(\"StartRenderPage\", {\n transparency: partialEvaluator.hasBlendModes(\n this.resources,\n this.nonBlendModesSet\n ),\n pageIndex: this.pageIndex,\n cacheKey,\n });\n\n return partialEvaluator\n .getOperatorList({\n stream: contentStream,\n task,\n resources: this.resources,\n operatorList: opList,\n })\n .then(function () {\n return opList;\n });\n });\n\n // Fetch the page's annotations and add their operator lists to the\n // page's operator list to render them.\n return Promise.all([\n pageListPromise,\n this._parsedAnnotations,\n newAnnotationsPromise,\n ]).then(function ([pageOpList, annotations, newAnnotations]) {\n if (newAnnotations) {\n // Some annotations can already exist (if it has the refToReplace\n // property). In this case, we replace the old annotation by the new\n // one.\n annotations = annotations.filter(\n a => !(a.ref && deletedAnnotations.has(a.ref))\n );\n for (let i = 0, ii = newAnnotations.length; i < ii; i++) {\n const newAnnotation = newAnnotations[i];\n if (newAnnotation.refToReplace) {\n const j = annotations.findIndex(\n a => a.ref && isRefsEqual(a.ref, newAnnotation.refToReplace)\n );\n if (j >= 0) {\n annotations.splice(j, 1, newAnnotation);\n newAnnotations.splice(i--, 1);\n ii--;\n }\n }\n }\n annotations = annotations.concat(newAnnotations);\n }\n if (\n annotations.length === 0 ||\n intent & RenderingIntentFlag.ANNOTATIONS_DISABLE\n ) {\n pageOpList.flush(/* lastChunk = */ true);\n return { length: pageOpList.totalLength };\n }\n const renderForms = !!(intent & RenderingIntentFlag.ANNOTATIONS_FORMS),\n intentAny = !!(intent & RenderingIntentFlag.ANY),\n intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY),\n intentPrint = !!(intent & RenderingIntentFlag.PRINT);\n\n // Collect the operator list promises for the annotations. Each promise\n // is resolved with the complete operator list for a single annotation.\n const opListPromises = [];\n for (const annotation of annotations) {\n if (\n intentAny ||\n (intentDisplay &&\n annotation.mustBeViewed(annotationStorage, renderForms)) ||\n (intentPrint && annotation.mustBePrinted(annotationStorage))\n ) {\n opListPromises.push(\n annotation\n .getOperatorList(\n partialEvaluator,\n task,\n intent,\n renderForms,\n annotationStorage\n )\n .catch(function (reason) {\n warn(\n \"getOperatorList - ignoring annotation data during \" +\n `\"${task.name}\" task: \"${reason}\".`\n );\n return {\n opList: null,\n separateForm: false,\n separateCanvas: false,\n };\n })\n );\n }\n }\n\n return Promise.all(opListPromises).then(function (opLists) {\n let form = false,\n canvas = false;\n\n for (const { opList, separateForm, separateCanvas } of opLists) {\n pageOpList.addOpList(opList);\n\n form ||= separateForm;\n canvas ||= separateCanvas;\n }\n pageOpList.flush(\n /* lastChunk = */ true,\n /* separateAnnots = */ { form, canvas }\n );\n return { length: pageOpList.totalLength };\n });\n });\n }\n\n extractTextContent({\n handler,\n task,\n includeMarkedContent,\n disableNormalization,\n sink,\n }) {\n const contentStreamPromise = this.getContentStream();\n const resourcesPromise = this.loadResources([\n \"ExtGState\",\n \"Font\",\n \"Properties\",\n \"XObject\",\n ]);\n\n const dataPromises = Promise.all([contentStreamPromise, resourcesPromise]);\n return dataPromises.then(([contentStream]) => {\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n systemFontCache: this.systemFontCache,\n options: this.evaluatorOptions,\n });\n\n return partialEvaluator.getTextContent({\n stream: contentStream,\n task,\n resources: this.resources,\n includeMarkedContent,\n disableNormalization,\n sink,\n viewBox: this.view,\n });\n });\n }\n\n async getStructTree() {\n const structTreeRoot =\n await this.pdfManager.ensureCatalog(\"structTreeRoot\");\n if (!structTreeRoot) {\n return null;\n }\n // Ensure that the structTree will contain the page's annotations.\n await this._parsedAnnotations;\n\n const structTree = await this.pdfManager.ensure(this, \"_parseStructTree\", [\n structTreeRoot,\n ]);\n return structTree.serializable;\n }\n\n /**\n * @private\n */\n _parseStructTree(structTreeRoot) {\n const tree = new StructTreePage(structTreeRoot, this.pageDict);\n tree.parse(this.ref);\n return tree;\n }\n\n async getAnnotationsData(handler, task, intent) {\n const annotations = await this._parsedAnnotations;\n if (annotations.length === 0) {\n return annotations;\n }\n\n const annotationsData = [],\n textContentPromises = [];\n let partialEvaluator;\n\n const intentAny = !!(intent & RenderingIntentFlag.ANY),\n intentDisplay = !!(intent & RenderingIntentFlag.DISPLAY),\n intentPrint = !!(intent & RenderingIntentFlag.PRINT);\n\n for (const annotation of annotations) {\n // Get the annotation even if it's hidden because\n // JS can change its display.\n const isVisible = intentAny || (intentDisplay && annotation.viewable);\n if (isVisible || (intentPrint && annotation.printable)) {\n annotationsData.push(annotation.data);\n }\n\n if (annotation.hasTextContent && isVisible) {\n partialEvaluator ||= new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: this.pageIndex,\n idFactory: this._localIdFactory,\n fontCache: this.fontCache,\n builtInCMapCache: this.builtInCMapCache,\n standardFontDataCache: this.standardFontDataCache,\n globalImageCache: this.globalImageCache,\n systemFontCache: this.systemFontCache,\n options: this.evaluatorOptions,\n });\n\n textContentPromises.push(\n annotation\n .extractTextContent(partialEvaluator, task, [\n -Infinity,\n -Infinity,\n Infinity,\n Infinity,\n ])\n .catch(function (reason) {\n warn(\n `getAnnotationsData - ignoring textContent during \"${task.name}\" task: \"${reason}\".`\n );\n })\n );\n }\n }\n\n await Promise.all(textContentPromises);\n return annotationsData;\n }\n\n get annotations() {\n const annots = this._getInheritableProperty(\"Annots\");\n return shadow(this, \"annotations\", Array.isArray(annots) ? annots : []);\n }\n\n get _parsedAnnotations() {\n const promise = this.pdfManager\n .ensure(this, \"annotations\")\n .then(async annots => {\n if (annots.length === 0) {\n return annots;\n }\n const annotationGlobals =\n await this.pdfManager.ensureDoc(\"annotationGlobals\");\n if (!annotationGlobals) {\n return [];\n }\n\n const annotationPromises = [];\n for (const annotationRef of annots) {\n annotationPromises.push(\n AnnotationFactory.create(\n this.xref,\n annotationRef,\n annotationGlobals,\n this._localIdFactory,\n /* collectFields */ false,\n this.ref\n ).catch(function (reason) {\n warn(`_parsedAnnotations: \"${reason}\".`);\n return null;\n })\n );\n }\n\n const sortedAnnotations = [];\n let popupAnnotations;\n // Ensure that PopupAnnotations are handled last, since they depend on\n // their parent Annotation in the display layer; fixes issue 11362.\n for (const annotation of await Promise.all(annotationPromises)) {\n if (!annotation) {\n continue;\n }\n if (annotation instanceof PopupAnnotation) {\n (popupAnnotations ||= []).push(annotation);\n continue;\n }\n sortedAnnotations.push(annotation);\n }\n if (popupAnnotations) {\n sortedAnnotations.push(...popupAnnotations);\n }\n\n return sortedAnnotations;\n });\n\n return shadow(this, \"_parsedAnnotations\", promise);\n }\n\n get jsActions() {\n const actions = collectActions(\n this.xref,\n this.pageDict,\n PageActionEventType\n );\n return shadow(this, \"jsActions\", actions);\n }\n}\n\nconst PDF_HEADER_SIGNATURE = new Uint8Array([0x25, 0x50, 0x44, 0x46, 0x2d]);\nconst STARTXREF_SIGNATURE = new Uint8Array([\n 0x73, 0x74, 0x61, 0x72, 0x74, 0x78, 0x72, 0x65, 0x66,\n]);\nconst ENDOBJ_SIGNATURE = new Uint8Array([0x65, 0x6e, 0x64, 0x6f, 0x62, 0x6a]);\n\nconst FINGERPRINT_FIRST_BYTES = 1024;\nconst EMPTY_FINGERPRINT =\n \"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\";\n\nfunction find(stream, signature, limit = 1024, backwards = false) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(limit > 0, 'The \"limit\" must be a positive integer.');\n }\n const signatureLength = signature.length;\n\n const scanBytes = stream.peekBytes(limit);\n const scanLength = scanBytes.length - signatureLength;\n\n if (scanLength <= 0) {\n return false;\n }\n if (backwards) {\n const signatureEnd = signatureLength - 1;\n\n let pos = scanBytes.length - 1;\n while (pos >= signatureEnd) {\n let j = 0;\n while (\n j < signatureLength &&\n scanBytes[pos - j] === signature[signatureEnd - j]\n ) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found.\n stream.pos += pos - signatureEnd;\n return true;\n }\n pos--;\n }\n } else {\n // forwards\n let pos = 0;\n while (pos <= scanLength) {\n let j = 0;\n while (j < signatureLength && scanBytes[pos + j] === signature[j]) {\n j++;\n }\n if (j >= signatureLength) {\n // `signature` found.\n stream.pos += pos;\n return true;\n }\n pos++;\n }\n }\n return false;\n}\n\n/**\n * The `PDFDocument` class holds all the (worker-thread) data of the PDF file.\n */\nclass PDFDocument {\n constructor(pdfManager, stream) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n stream instanceof BaseStream,\n 'PDFDocument: Invalid \"stream\" argument.'\n );\n }\n if (stream.length <= 0) {\n throw new InvalidPDFException(\n \"The PDF file is empty, i.e. its size is zero bytes.\"\n );\n }\n\n this.pdfManager = pdfManager;\n this.stream = stream;\n this.xref = new XRef(stream, pdfManager);\n this._pagePromises = new Map();\n this._version = null;\n\n const idCounters = {\n font: 0,\n };\n this._globalIdFactory = class {\n static getDocId() {\n return `g_${pdfManager.docId}`;\n }\n\n static createFontId() {\n return `f${++idCounters.font}`;\n }\n\n static createObjId() {\n unreachable(\"Abstract method `createObjId` called.\");\n }\n\n static getPageObjId() {\n unreachable(\"Abstract method `getPageObjId` called.\");\n }\n };\n }\n\n parse(recoveryMode) {\n this.xref.parse(recoveryMode);\n this.catalog = new Catalog(this.pdfManager, this.xref);\n }\n\n get linearization() {\n let linearization = null;\n try {\n linearization = Linearization.create(this.stream);\n } catch (err) {\n if (err instanceof MissingDataException) {\n throw err;\n }\n info(err);\n }\n return shadow(this, \"linearization\", linearization);\n }\n\n get startXRef() {\n const stream = this.stream;\n let startXRef = 0;\n\n if (this.linearization) {\n // Find the end of the first object.\n stream.reset();\n if (find(stream, ENDOBJ_SIGNATURE)) {\n startXRef = stream.pos + 6 - stream.start;\n }\n } else {\n // Find `startxref` by checking backwards from the end of the file.\n const step = 1024;\n const startXRefLength = STARTXREF_SIGNATURE.length;\n let found = false,\n pos = stream.end;\n\n while (!found && pos > 0) {\n pos -= step - startXRefLength;\n if (pos < 0) {\n pos = 0;\n }\n stream.pos = pos;\n found = find(stream, STARTXREF_SIGNATURE, step, true);\n }\n\n if (found) {\n stream.skip(9);\n let ch;\n do {\n ch = stream.getByte();\n } while (isWhiteSpace(ch));\n let str = \"\";\n while (ch >= /* Space = */ 0x20 && ch <= /* '9' = */ 0x39) {\n str += String.fromCharCode(ch);\n ch = stream.getByte();\n }\n startXRef = parseInt(str, 10);\n if (isNaN(startXRef)) {\n startXRef = 0;\n }\n }\n }\n return shadow(this, \"startXRef\", startXRef);\n }\n\n // Find the header, get the PDF format version and setup the\n // stream to start from the header.\n checkHeader() {\n const stream = this.stream;\n stream.reset();\n\n if (!find(stream, PDF_HEADER_SIGNATURE)) {\n // May not be a PDF file, but don't throw an error and let\n // parsing continue.\n return;\n }\n stream.moveStart();\n\n // Skip over the \"%PDF-\" prefix, since it was found above.\n stream.skip(PDF_HEADER_SIGNATURE.length);\n // Read the PDF format version.\n let version = \"\",\n ch;\n while (\n (ch = stream.getByte()) > /* Space = */ 0x20 &&\n version.length < /* MAX_PDF_VERSION_LENGTH = */ 7\n ) {\n version += String.fromCharCode(ch);\n }\n\n if (PDF_VERSION_REGEXP.test(version)) {\n this._version = version;\n } else {\n warn(`Invalid PDF header version: ${version}`);\n }\n }\n\n parseStartXRef() {\n this.xref.setStartXRef(this.startXRef);\n }\n\n get numPages() {\n let num = 0;\n if (this.catalog.hasActualNumPages) {\n num = this.catalog.numPages;\n } else if (this.xfaFactory) {\n // num is a Promise.\n num = this.xfaFactory.getNumPages();\n } else if (this.linearization) {\n num = this.linearization.numPages;\n } else {\n num = this.catalog.numPages;\n }\n return shadow(this, \"numPages\", num);\n }\n\n /**\n * @private\n */\n _hasOnlyDocumentSignatures(fields, recursionDepth = 0) {\n const RECURSION_LIMIT = 10;\n\n if (!Array.isArray(fields)) {\n return false;\n }\n return fields.every(field => {\n field = this.xref.fetchIfRef(field);\n if (!(field instanceof Dict)) {\n return false;\n }\n if (field.has(\"Kids\")) {\n if (++recursionDepth > RECURSION_LIMIT) {\n warn(\"_hasOnlyDocumentSignatures: maximum recursion depth reached\");\n return false;\n }\n return this._hasOnlyDocumentSignatures(\n field.get(\"Kids\"),\n recursionDepth\n );\n }\n const isSignature = isName(field.get(\"FT\"), \"Sig\");\n const rectangle = field.get(\"Rect\");\n const isInvisible =\n Array.isArray(rectangle) && rectangle.every(value => value === 0);\n return isSignature && isInvisible;\n });\n }\n\n get _xfaStreams() {\n const acroForm = this.catalog.acroForm;\n if (!acroForm) {\n return null;\n }\n\n const xfa = acroForm.get(\"XFA\");\n const entries = {\n \"xdp:xdp\": \"\",\n template: \"\",\n datasets: \"\",\n config: \"\",\n connectionSet: \"\",\n localeSet: \"\",\n stylesheet: \"\",\n \"/xdp:xdp\": \"\",\n };\n if (xfa instanceof BaseStream && !xfa.isEmpty) {\n entries[\"xdp:xdp\"] = xfa;\n return entries;\n }\n\n if (!Array.isArray(xfa) || xfa.length === 0) {\n return null;\n }\n\n for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n let name;\n if (i === 0) {\n name = \"xdp:xdp\";\n } else if (i === ii - 2) {\n name = \"/xdp:xdp\";\n } else {\n name = xfa[i];\n }\n\n if (!entries.hasOwnProperty(name)) {\n continue;\n }\n const data = this.xref.fetchIfRef(xfa[i + 1]);\n if (!(data instanceof BaseStream) || data.isEmpty) {\n continue;\n }\n entries[name] = data;\n }\n return entries;\n }\n\n get xfaDatasets() {\n const streams = this._xfaStreams;\n if (!streams) {\n return shadow(this, \"xfaDatasets\", null);\n }\n for (const key of [\"datasets\", \"xdp:xdp\"]) {\n const stream = streams[key];\n if (!stream) {\n continue;\n }\n try {\n const str = stringToUTF8String(stream.getString());\n const data = { [key]: str };\n return shadow(this, \"xfaDatasets\", new DatasetReader(data));\n } catch {\n warn(\"XFA - Invalid utf-8 string.\");\n break;\n }\n }\n return shadow(this, \"xfaDatasets\", null);\n }\n\n get xfaData() {\n const streams = this._xfaStreams;\n if (!streams) {\n return null;\n }\n const data = Object.create(null);\n for (const [key, stream] of Object.entries(streams)) {\n if (!stream) {\n continue;\n }\n try {\n data[key] = stringToUTF8String(stream.getString());\n } catch {\n warn(\"XFA - Invalid utf-8 string.\");\n return null;\n }\n }\n return data;\n }\n\n get xfaFactory() {\n let data;\n if (\n this.pdfManager.enableXfa &&\n this.catalog.needsRendering &&\n this.formInfo.hasXfa &&\n !this.formInfo.hasAcroForm\n ) {\n data = this.xfaData;\n }\n return shadow(this, \"xfaFactory\", data ? new XFAFactory(data) : null);\n }\n\n get isPureXfa() {\n return this.xfaFactory ? this.xfaFactory.isValid() : false;\n }\n\n get htmlForXfa() {\n return this.xfaFactory ? this.xfaFactory.getPages() : null;\n }\n\n async loadXfaImages() {\n const xfaImagesDict = await this.pdfManager.ensureCatalog(\"xfaImages\");\n if (!xfaImagesDict) {\n return;\n }\n\n const keys = xfaImagesDict.getKeys();\n const objectLoader = new ObjectLoader(xfaImagesDict, keys, this.xref);\n await objectLoader.load();\n\n const xfaImages = new Map();\n for (const key of keys) {\n const stream = xfaImagesDict.get(key);\n if (stream instanceof BaseStream) {\n xfaImages.set(key, stream.getBytes());\n }\n }\n\n this.xfaFactory.setImages(xfaImages);\n }\n\n async loadXfaFonts(handler, task) {\n const acroForm = await this.pdfManager.ensureCatalog(\"acroForm\");\n if (!acroForm) {\n return;\n }\n const resources = await acroForm.getAsync(\"DR\");\n if (!(resources instanceof Dict)) {\n return;\n }\n const objectLoader = new ObjectLoader(resources, [\"Font\"], this.xref);\n await objectLoader.load();\n\n const fontRes = resources.get(\"Font\");\n if (!(fontRes instanceof Dict)) {\n return;\n }\n\n const options = Object.assign(\n Object.create(null),\n this.pdfManager.evaluatorOptions\n );\n options.useSystemFonts = false;\n\n const partialEvaluator = new PartialEvaluator({\n xref: this.xref,\n handler,\n pageIndex: -1,\n idFactory: this._globalIdFactory,\n fontCache: this.catalog.fontCache,\n builtInCMapCache: this.catalog.builtInCMapCache,\n standardFontDataCache: this.catalog.standardFontDataCache,\n options,\n });\n const operatorList = new OperatorList();\n const pdfFonts = [];\n const initialState = {\n get font() {\n return pdfFonts.at(-1);\n },\n set font(font) {\n pdfFonts.push(font);\n },\n clone() {\n return this;\n },\n };\n\n const fonts = new Map();\n fontRes.forEach((fontName, font) => {\n fonts.set(fontName, font);\n });\n const promises = [];\n\n for (const [fontName, font] of fonts) {\n const descriptor = font.get(\"FontDescriptor\");\n if (!(descriptor instanceof Dict)) {\n continue;\n }\n let fontFamily = descriptor.get(\"FontFamily\");\n // For example, \"Wingdings 3\" is not a valid font name in the css specs.\n fontFamily = fontFamily.replaceAll(/[ ]+(\\d)/g, \"$1\");\n const fontWeight = descriptor.get(\"FontWeight\");\n\n // Angle is expressed in degrees counterclockwise in PDF\n // when it's clockwise in CSS\n // (see https://drafts.csswg.org/css-fonts-4/#valdef-font-style-oblique-angle)\n const italicAngle = -descriptor.get(\"ItalicAngle\");\n const cssFontInfo = { fontFamily, fontWeight, italicAngle };\n\n if (!validateCSSFont(cssFontInfo)) {\n continue;\n }\n promises.push(\n partialEvaluator\n .handleSetFont(\n resources,\n [Name.get(fontName), 1],\n /* fontRef = */ null,\n operatorList,\n task,\n initialState,\n /* fallbackFontDict = */ null,\n /* cssFontInfo = */ cssFontInfo\n )\n .catch(function (reason) {\n warn(`loadXfaFonts: \"${reason}\".`);\n return null;\n })\n );\n }\n\n await Promise.all(promises);\n const missingFonts = this.xfaFactory.setFonts(pdfFonts);\n\n if (!missingFonts) {\n return;\n }\n\n options.ignoreErrors = true;\n promises.length = 0;\n pdfFonts.length = 0;\n\n const reallyMissingFonts = new Set();\n for (const missing of missingFonts) {\n if (!getXfaFontName(`${missing}-Regular`)) {\n // No substitution available: we'll fallback on Myriad.\n reallyMissingFonts.add(missing);\n }\n }\n\n if (reallyMissingFonts.size) {\n missingFonts.push(\"PdfJS-Fallback\");\n }\n\n for (const missing of missingFonts) {\n if (reallyMissingFonts.has(missing)) {\n continue;\n }\n for (const fontInfo of [\n { name: \"Regular\", fontWeight: 400, italicAngle: 0 },\n { name: \"Bold\", fontWeight: 700, italicAngle: 0 },\n { name: \"Italic\", fontWeight: 400, italicAngle: 12 },\n { name: \"BoldItalic\", fontWeight: 700, italicAngle: 12 },\n ]) {\n const name = `${missing}-${fontInfo.name}`;\n const dict = getXfaFontDict(name);\n\n promises.push(\n partialEvaluator\n .handleSetFont(\n resources,\n [Name.get(name), 1],\n /* fontRef = */ null,\n operatorList,\n task,\n initialState,\n /* fallbackFontDict = */ dict,\n /* cssFontInfo = */ {\n fontFamily: missing,\n fontWeight: fontInfo.fontWeight,\n italicAngle: fontInfo.italicAngle,\n }\n )\n .catch(function (reason) {\n warn(`loadXfaFonts: \"${reason}\".`);\n return null;\n })\n );\n }\n }\n\n await Promise.all(promises);\n this.xfaFactory.appendFonts(pdfFonts, reallyMissingFonts);\n }\n\n async serializeXfaData(annotationStorage) {\n return this.xfaFactory\n ? this.xfaFactory.serializeData(annotationStorage)\n : null;\n }\n\n /**\n * The specification states in section 7.5.2 that the version from\n * the catalog, if present, should overwrite the version from the header.\n */\n get version() {\n return this.catalog.version || this._version;\n }\n\n get formInfo() {\n const formInfo = {\n hasFields: false,\n hasAcroForm: false,\n hasXfa: false,\n hasSignatures: false,\n };\n const acroForm = this.catalog.acroForm;\n if (!acroForm) {\n return shadow(this, \"formInfo\", formInfo);\n }\n\n try {\n const fields = acroForm.get(\"Fields\");\n const hasFields = Array.isArray(fields) && fields.length > 0;\n formInfo.hasFields = hasFields; // Used by the `fieldObjects` getter.\n\n // The document contains XFA data if the `XFA` entry is a non-empty\n // array or stream.\n const xfa = acroForm.get(\"XFA\");\n formInfo.hasXfa =\n (Array.isArray(xfa) && xfa.length > 0) ||\n (xfa instanceof BaseStream && !xfa.isEmpty);\n\n // The document contains AcroForm data if the `Fields` entry is a\n // non-empty array and it doesn't consist of only document signatures.\n // This second check is required for files that don't actually contain\n // AcroForm data (only XFA data), but that use the `Fields` entry to\n // store (invisible) document signatures. This can be detected using\n // the first bit of the `SigFlags` integer (see Table 219 in the\n // specification).\n const sigFlags = acroForm.get(\"SigFlags\");\n const hasSignatures = !!(sigFlags & 0x1);\n const hasOnlyDocumentSignatures =\n hasSignatures && this._hasOnlyDocumentSignatures(fields);\n formInfo.hasAcroForm = hasFields && !hasOnlyDocumentSignatures;\n formInfo.hasSignatures = hasSignatures;\n } catch (ex) {\n if (ex instanceof MissingDataException) {\n throw ex;\n }\n warn(`Cannot fetch form information: \"${ex}\".`);\n }\n return shadow(this, \"formInfo\", formInfo);\n }\n\n get documentInfo() {\n const docInfo = {\n PDFFormatVersion: this.version,\n Language: this.catalog.lang,\n EncryptFilterName: this.xref.encrypt\n ? this.xref.encrypt.filterName\n : null,\n IsLinearized: !!this.linearization,\n IsAcroFormPresent: this.formInfo.hasAcroForm,\n IsXFAPresent: this.formInfo.hasXfa,\n IsCollectionPresent: !!this.catalog.collection,\n IsSignaturesPresent: this.formInfo.hasSignatures,\n };\n\n let infoDict;\n try {\n infoDict = this.xref.trailer.get(\"Info\");\n } catch (err) {\n if (err instanceof MissingDataException) {\n throw err;\n }\n info(\"The document information dictionary is invalid.\");\n }\n if (!(infoDict instanceof Dict)) {\n return shadow(this, \"documentInfo\", docInfo);\n }\n\n for (const key of infoDict.getKeys()) {\n const value = infoDict.get(key);\n\n switch (key) {\n case \"Title\":\n case \"Author\":\n case \"Subject\":\n case \"Keywords\":\n case \"Creator\":\n case \"Producer\":\n case \"CreationDate\":\n case \"ModDate\":\n if (typeof value === \"string\") {\n docInfo[key] = stringToPDFString(value);\n continue;\n }\n break;\n case \"Trapped\":\n if (value instanceof Name) {\n docInfo[key] = value;\n continue;\n }\n break;\n default:\n // For custom values, only accept white-listed types to prevent\n // errors that would occur when trying to send non-serializable\n // objects to the main-thread (for example `Dict` or `Stream`).\n let customValue;\n switch (typeof value) {\n case \"string\":\n customValue = stringToPDFString(value);\n break;\n case \"number\":\n case \"boolean\":\n customValue = value;\n break;\n default:\n if (value instanceof Name) {\n customValue = value;\n }\n break;\n }\n\n if (customValue === undefined) {\n warn(`Bad value, for custom key \"${key}\", in Info: ${value}.`);\n continue;\n }\n if (!docInfo.Custom) {\n docInfo.Custom = Object.create(null);\n }\n docInfo.Custom[key] = customValue;\n continue;\n }\n warn(`Bad value, for key \"${key}\", in Info: ${value}.`);\n }\n return shadow(this, \"documentInfo\", docInfo);\n }\n\n get fingerprints() {\n function validate(data) {\n return (\n typeof data === \"string\" &&\n data.length > 0 &&\n data !== EMPTY_FINGERPRINT\n );\n }\n\n function hexString(hash) {\n const buf = [];\n for (const num of hash) {\n const hex = num.toString(16);\n buf.push(hex.padStart(2, \"0\"));\n }\n return buf.join(\"\");\n }\n\n const idArray = this.xref.trailer.get(\"ID\");\n let hashOriginal, hashModified;\n if (Array.isArray(idArray) && validate(idArray[0])) {\n hashOriginal = stringToBytes(idArray[0]);\n\n if (idArray[1] !== idArray[0] && validate(idArray[1])) {\n hashModified = stringToBytes(idArray[1]);\n }\n } else {\n hashOriginal = calculateMD5(\n this.stream.getByteRange(0, FINGERPRINT_FIRST_BYTES),\n 0,\n FINGERPRINT_FIRST_BYTES\n );\n }\n\n return shadow(this, \"fingerprints\", [\n hexString(hashOriginal),\n hashModified ? hexString(hashModified) : null,\n ]);\n }\n\n async _getLinearizationPage(pageIndex) {\n const { catalog, linearization, xref } = this;\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n linearization?.pageFirst === pageIndex,\n \"_getLinearizationPage - invalid pageIndex argument.\"\n );\n }\n\n const ref = Ref.get(linearization.objectNumberFirst, 0);\n try {\n const obj = await xref.fetchAsync(ref);\n // Ensure that the object that was found is actually a Page dictionary.\n if (obj instanceof Dict) {\n let type = obj.getRaw(\"Type\");\n if (type instanceof Ref) {\n type = await xref.fetchAsync(type);\n }\n if (isName(type, \"Page\") || (!obj.has(\"Type\") && !obj.has(\"Kids\"))) {\n if (!catalog.pageKidsCountCache.has(ref)) {\n catalog.pageKidsCountCache.put(ref, 1); // Cache the Page reference.\n }\n // Help improve performance of the `Catalog.getPageIndex` method.\n if (!catalog.pageIndexCache.has(ref)) {\n catalog.pageIndexCache.put(ref, 0);\n }\n\n return [obj, ref];\n }\n }\n throw new FormatError(\n \"The Linearization dictionary doesn't point to a valid Page dictionary.\"\n );\n } catch (reason) {\n warn(`_getLinearizationPage: \"${reason.message}\".`);\n return catalog.getPageDict(pageIndex);\n }\n }\n\n getPage(pageIndex) {\n const cachedPromise = this._pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const { catalog, linearization, xfaFactory } = this;\n\n let promise;\n if (xfaFactory) {\n promise = Promise.resolve([Dict.empty, null]);\n } else if (linearization?.pageFirst === pageIndex) {\n promise = this._getLinearizationPage(pageIndex);\n } else {\n promise = catalog.getPageDict(pageIndex);\n }\n promise = promise.then(([pageDict, ref]) => {\n return new Page({\n pdfManager: this.pdfManager,\n xref: this.xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory: this._globalIdFactory,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n standardFontDataCache: catalog.standardFontDataCache,\n globalImageCache: catalog.globalImageCache,\n systemFontCache: catalog.systemFontCache,\n nonBlendModesSet: catalog.nonBlendModesSet,\n xfaFactory,\n });\n });\n\n this._pagePromises.set(pageIndex, promise);\n return promise;\n }\n\n async checkFirstPage(recoveryMode = false) {\n if (recoveryMode) {\n return;\n }\n try {\n await this.getPage(0);\n } catch (reason) {\n if (reason instanceof XRefEntryException) {\n // Clear out the various caches to ensure that we haven't stored any\n // inconsistent and/or incorrect state, since that could easily break\n // subsequent `this.getPage` calls.\n this._pagePromises.delete(0);\n await this.cleanup();\n\n throw new XRefParseException();\n }\n }\n }\n\n async checkLastPage(recoveryMode = false) {\n const { catalog, pdfManager } = this;\n\n catalog.setActualNumPages(); // Ensure that it's always reset.\n let numPages;\n\n try {\n await Promise.all([\n pdfManager.ensureDoc(\"xfaFactory\"),\n pdfManager.ensureDoc(\"linearization\"),\n pdfManager.ensureCatalog(\"numPages\"),\n ]);\n\n if (this.xfaFactory) {\n return; // The Page count is always calculated for XFA-documents.\n } else if (this.linearization) {\n numPages = this.linearization.numPages;\n } else {\n numPages = catalog.numPages;\n }\n\n if (!Number.isInteger(numPages)) {\n throw new FormatError(\"Page count is not an integer.\");\n } else if (numPages <= 1) {\n return;\n }\n await this.getPage(numPages - 1);\n } catch (reason) {\n // Clear out the various caches to ensure that we haven't stored any\n // inconsistent and/or incorrect state, since that could easily break\n // subsequent `this.getPage` calls.\n this._pagePromises.delete(numPages - 1);\n await this.cleanup();\n\n if (reason instanceof XRefEntryException && !recoveryMode) {\n throw new XRefParseException();\n }\n warn(`checkLastPage - invalid /Pages tree /Count: ${numPages}.`);\n\n let pagesTree;\n try {\n pagesTree = await catalog.getAllPageDicts(recoveryMode);\n } catch (reasonAll) {\n if (reasonAll instanceof XRefEntryException && !recoveryMode) {\n throw new XRefParseException();\n }\n catalog.setActualNumPages(1);\n return;\n }\n\n for (const [pageIndex, [pageDict, ref]] of pagesTree) {\n let promise;\n if (pageDict instanceof Error) {\n promise = Promise.reject(pageDict);\n\n // Prevent \"uncaught exception: Object\"-messages in the console.\n promise.catch(() => {});\n } else {\n promise = Promise.resolve(\n new Page({\n pdfManager,\n xref: this.xref,\n pageIndex,\n pageDict,\n ref,\n globalIdFactory: this._globalIdFactory,\n fontCache: catalog.fontCache,\n builtInCMapCache: catalog.builtInCMapCache,\n standardFontDataCache: catalog.standardFontDataCache,\n globalImageCache: catalog.globalImageCache,\n systemFontCache: catalog.systemFontCache,\n nonBlendModesSet: catalog.nonBlendModesSet,\n xfaFactory: null,\n })\n );\n }\n\n this._pagePromises.set(pageIndex, promise);\n }\n catalog.setActualNumPages(pagesTree.size);\n }\n }\n\n fontFallback(id, handler) {\n return this.catalog.fontFallback(id, handler);\n }\n\n async cleanup(manuallyTriggered = false) {\n return this.catalog\n ? this.catalog.cleanup(manuallyTriggered)\n : clearGlobalCaches();\n }\n\n async #collectFieldObjects(\n name,\n fieldRef,\n promises,\n annotationGlobals,\n visitedRefs\n ) {\n const { xref } = this;\n\n if (!(fieldRef instanceof Ref) || visitedRefs.has(fieldRef)) {\n return;\n }\n visitedRefs.put(fieldRef);\n const field = await xref.fetchAsync(fieldRef);\n if (!(field instanceof Dict)) {\n return;\n }\n if (field.has(\"T\")) {\n const partName = stringToPDFString(await field.getAsync(\"T\"));\n name = name === \"\" ? partName : `${name}.${partName}`;\n } else {\n let obj = field;\n while (true) {\n obj = obj.getRaw(\"Parent\");\n if (obj instanceof Ref) {\n if (visitedRefs.has(obj)) {\n break;\n }\n obj = await xref.fetchAsync(obj);\n }\n if (!(obj instanceof Dict)) {\n break;\n }\n if (obj.has(\"T\")) {\n const partName = stringToPDFString(await obj.getAsync(\"T\"));\n name = name === \"\" ? partName : `${name}.${partName}`;\n break;\n }\n }\n }\n\n if (!promises.has(name)) {\n promises.set(name, []);\n }\n promises.get(name).push(\n AnnotationFactory.create(\n xref,\n fieldRef,\n annotationGlobals,\n /* idFactory = */ null,\n /* collectFields */ true,\n /* pageRef */ null\n )\n .then(annotation => annotation?.getFieldObject())\n .catch(function (reason) {\n warn(`#collectFieldObjects: \"${reason}\".`);\n return null;\n })\n );\n\n if (!field.has(\"Kids\")) {\n return;\n }\n const kids = await field.getAsync(\"Kids\");\n if (Array.isArray(kids)) {\n for (const kid of kids) {\n await this.#collectFieldObjects(\n name,\n kid,\n promises,\n annotationGlobals,\n visitedRefs\n );\n }\n }\n }\n\n get fieldObjects() {\n if (!this.formInfo.hasFields) {\n return shadow(this, \"fieldObjects\", Promise.resolve(null));\n }\n\n const promise = Promise.all([\n this.pdfManager.ensureDoc(\"annotationGlobals\"),\n this.pdfManager.ensureCatalog(\"acroForm\"),\n ]).then(async ([annotationGlobals, acroForm]) => {\n if (!annotationGlobals) {\n return null;\n }\n\n const visitedRefs = new RefSet();\n const allFields = Object.create(null);\n const fieldPromises = new Map();\n for (const fieldRef of await acroForm.getAsync(\"Fields\")) {\n await this.#collectFieldObjects(\n \"\",\n fieldRef,\n fieldPromises,\n annotationGlobals,\n visitedRefs\n );\n }\n\n const allPromises = [];\n for (const [name, promises] of fieldPromises) {\n allPromises.push(\n Promise.all(promises).then(fields => {\n fields = fields.filter(field => !!field);\n if (fields.length > 0) {\n allFields[name] = fields;\n }\n })\n );\n }\n\n await Promise.all(allPromises);\n return allFields;\n });\n\n return shadow(this, \"fieldObjects\", promise);\n }\n\n get hasJSActions() {\n const promise = this.pdfManager.ensureDoc(\"_parseHasJSActions\");\n return shadow(this, \"hasJSActions\", promise);\n }\n\n /**\n * @private\n */\n async _parseHasJSActions() {\n const [catalogJsActions, fieldObjects] = await Promise.all([\n this.pdfManager.ensureCatalog(\"jsActions\"),\n this.pdfManager.ensureDoc(\"fieldObjects\"),\n ]);\n\n if (catalogJsActions) {\n return true;\n }\n if (fieldObjects) {\n return Object.values(fieldObjects).some(fieldObject =>\n fieldObject.some(object => object.actions !== null)\n );\n }\n return false;\n }\n\n get calculationOrderIds() {\n const acroForm = this.catalog.acroForm;\n if (!acroForm?.has(\"CO\")) {\n return shadow(this, \"calculationOrderIds\", null);\n }\n\n const calculationOrder = acroForm.get(\"CO\");\n if (!Array.isArray(calculationOrder) || calculationOrder.length === 0) {\n return shadow(this, \"calculationOrderIds\", null);\n }\n\n const ids = [];\n for (const id of calculationOrder) {\n if (id instanceof Ref) {\n ids.push(id.toString());\n }\n }\n if (ids.length === 0) {\n return shadow(this, \"calculationOrderIds\", null);\n }\n return shadow(this, \"calculationOrderIds\", ids);\n }\n\n get annotationGlobals() {\n return shadow(\n this,\n \"annotationGlobals\",\n AnnotationFactory.createGlobals(this.pdfManager)\n );\n }\n}\n\nexport { Page, PDFDocument };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n createValidAbsoluteUrl,\n FeatureTest,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport { ChunkedStreamManager } from \"./chunked_stream.js\";\nimport { MissingDataException } from \"./core_utils.js\";\nimport { PDFDocument } from \"./document.js\";\nimport { Stream } from \"./stream.js\";\n\nfunction parseDocBaseUrl(url) {\n if (url) {\n const absoluteUrl = createValidAbsoluteUrl(url);\n if (absoluteUrl) {\n return absoluteUrl.href;\n }\n warn(`Invalid absolute docBaseUrl: \"${url}\".`);\n }\n return null;\n}\n\nclass BasePdfManager {\n constructor(args) {\n if (this.constructor === BasePdfManager) {\n unreachable(\"Cannot initialize BasePdfManager.\");\n }\n this._docBaseUrl = parseDocBaseUrl(args.docBaseUrl);\n this._docId = args.docId;\n this._password = args.password;\n this.enableXfa = args.enableXfa;\n\n // Check `OffscreenCanvas` support once, rather than repeatedly throughout\n // the worker-thread code.\n args.evaluatorOptions.isOffscreenCanvasSupported &&=\n FeatureTest.isOffscreenCanvasSupported;\n this.evaluatorOptions = args.evaluatorOptions;\n }\n\n get docId() {\n return this._docId;\n }\n\n get password() {\n return this._password;\n }\n\n get docBaseUrl() {\n return this._docBaseUrl;\n }\n\n get catalog() {\n return this.pdfDocument.catalog;\n }\n\n ensureDoc(prop, args) {\n return this.ensure(this.pdfDocument, prop, args);\n }\n\n ensureXRef(prop, args) {\n return this.ensure(this.pdfDocument.xref, prop, args);\n }\n\n ensureCatalog(prop, args) {\n return this.ensure(this.pdfDocument.catalog, prop, args);\n }\n\n getPage(pageIndex) {\n return this.pdfDocument.getPage(pageIndex);\n }\n\n fontFallback(id, handler) {\n return this.pdfDocument.fontFallback(id, handler);\n }\n\n loadXfaFonts(handler, task) {\n return this.pdfDocument.loadXfaFonts(handler, task);\n }\n\n loadXfaImages() {\n return this.pdfDocument.loadXfaImages();\n }\n\n serializeXfaData(annotationStorage) {\n return this.pdfDocument.serializeXfaData(annotationStorage);\n }\n\n cleanup(manuallyTriggered = false) {\n return this.pdfDocument.cleanup(manuallyTriggered);\n }\n\n async ensure(obj, prop, args) {\n unreachable(\"Abstract method `ensure` called\");\n }\n\n requestRange(begin, end) {\n unreachable(\"Abstract method `requestRange` called\");\n }\n\n requestLoadedStream(noFetch = false) {\n unreachable(\"Abstract method `requestLoadedStream` called\");\n }\n\n sendProgressiveData(chunk) {\n unreachable(\"Abstract method `sendProgressiveData` called\");\n }\n\n updatePassword(password) {\n this._password = password;\n }\n\n terminate(reason) {\n unreachable(\"Abstract method `terminate` called\");\n }\n}\n\nclass LocalPdfManager extends BasePdfManager {\n constructor(args) {\n super(args);\n\n const stream = new Stream(args.source);\n this.pdfDocument = new PDFDocument(this, stream);\n this._loadedStreamPromise = Promise.resolve(stream);\n }\n\n async ensure(obj, prop, args) {\n const value = obj[prop];\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\n return value;\n }\n\n requestRange(begin, end) {\n return Promise.resolve();\n }\n\n requestLoadedStream(noFetch = false) {\n return this._loadedStreamPromise;\n }\n\n terminate(reason) {}\n}\n\nclass NetworkPdfManager extends BasePdfManager {\n constructor(args) {\n super(args);\n\n this.streamManager = new ChunkedStreamManager(args.source, {\n msgHandler: args.handler,\n length: args.length,\n disableAutoFetch: args.disableAutoFetch,\n rangeChunkSize: args.rangeChunkSize,\n });\n this.pdfDocument = new PDFDocument(this, this.streamManager.getStream());\n }\n\n async ensure(obj, prop, args) {\n try {\n const value = obj[prop];\n if (typeof value === \"function\") {\n return value.apply(obj, args);\n }\n return value;\n } catch (ex) {\n if (!(ex instanceof MissingDataException)) {\n throw ex;\n }\n await this.requestRange(ex.begin, ex.end);\n return this.ensure(obj, prop, args);\n }\n }\n\n requestRange(begin, end) {\n return this.streamManager.requestRange(begin, end);\n }\n\n requestLoadedStream(noFetch = false) {\n return this.streamManager.requestAllChunks(noFetch);\n }\n\n sendProgressiveData(chunk) {\n this.streamManager.onReceiveData({ chunk });\n }\n\n terminate(reason) {\n this.streamManager.abort(reason);\n }\n}\n\nexport { LocalPdfManager, NetworkPdfManager };\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AbortException,\n assert,\n MissingPDFException,\n PasswordException,\n PromiseCapability,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n} from \"./util.js\";\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2,\n};\n\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8,\n};\n\nfunction wrapReason(reason) {\n if (\n !(\n reason instanceof Error ||\n (typeof reason === \"object\" && reason !== null)\n )\n ) {\n unreachable(\n 'wrapReason: Expected \"reason\" to be a (possibly cloned) Error.'\n );\n }\n switch (reason.name) {\n case \"AbortException\":\n return new AbortException(reason.message);\n case \"MissingPDFException\":\n return new MissingPDFException(reason.message);\n case \"PasswordException\":\n return new PasswordException(reason.message, reason.code);\n case \"UnexpectedResponseException\":\n return new UnexpectedResponseException(reason.message, reason.status);\n case \"UnknownErrorException\":\n return new UnknownErrorException(reason.message, reason.details);\n default:\n return new UnknownErrorException(reason.message, reason.toString());\n }\n}\n\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = event => {\n const data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this.#processStreamMessage(data);\n return;\n }\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n delete this.callbackCapabilities[callbackId];\n\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n return;\n }\n const action = this.actionHandler[data.action];\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(\n function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason),\n });\n }\n );\n return;\n }\n if (data.streamId) {\n this.#createStreamSink(data);\n return;\n }\n action(data.data);\n };\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n typeof handler === \"function\",\n 'MessageHandler.on: Expected \"handler\" to be a function.'\n );\n }\n const ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n */\n send(actionName, data, transfers) {\n this.comObj.postMessage(\n {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data,\n },\n transfers\n );\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expects that the other side will callback with the response.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n * @returns {Promise} Promise to be resolved with response data.\n */\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = new PromiseCapability();\n this.callbackCapabilities[callbackId] = capability;\n try {\n this.comObj.postMessage(\n {\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data,\n },\n transfers\n );\n } catch (ex) {\n capability.reject(ex);\n }\n return capability.promise;\n }\n\n /**\n * Sends a message to the comObj to invoke the action with the supplied data.\n * Expect that the other side will callback to signal 'start_complete'.\n * @param {string} actionName - Action to call.\n * @param {JSON} data - JSON data to send.\n * @param {Object} queueingStrategy - Strategy to signal backpressure based on\n * internal queue.\n * @param {Array} [transfers] - List of transfers/ArrayBuffers.\n * @returns {ReadableStream} ReadableStream to read data in chunks.\n */\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n\n return new ReadableStream(\n {\n start: controller => {\n const startCapability = new PromiseCapability();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false,\n };\n comObj.postMessage(\n {\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize,\n },\n transfers\n );\n // Return Promise for Async process, to signal success/failure.\n return startCapability.promise;\n },\n\n pull: controller => {\n const pullCapability = new PromiseCapability();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize,\n });\n // Returning Promise will not call \"pull\"\n // again until current pull is resolved.\n return pullCapability.promise;\n },\n\n cancel: reason => {\n assert(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = new PromiseCapability();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason),\n });\n // Return Promise to signal success or failure.\n return cancelCapability.promise;\n },\n },\n queueingStrategy\n );\n }\n\n #createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n // Enqueue decreases the desiredSize property of sink,\n // so when it changes from positive to negative,\n // set ready as unresolved promise.\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = new PromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n comObj.postMessage(\n {\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk,\n },\n transfers\n );\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId,\n });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n assert(reason instanceof Error, \"error must have a valid reason\");\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason),\n });\n },\n\n sinkCapability: new PromiseCapability(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null,\n };\n\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n }\n\n #processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n // Ignore any pull after close is called.\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n break;\n }\n // Pull increases the desiredSize property of sink, so when it changes\n // from negative to positive, set ready property as resolved promise.\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n // Reset desiredSize property of sink on every pull.\n streamSink.desiredSize = data.desiredSize;\n\n new Promise(function (resolve) {\n resolve(streamSink.onPull?.());\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n break;\n case StreamKind.ENQUEUE:\n assert(streamController, \"enqueue should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n assert(streamController, \"close should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.isClosed = true;\n streamController.controller.close();\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.ERROR:\n assert(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n\n new Promise(function (resolve) {\n resolve(streamSink.onCancel?.(wrapReason(data.reason)));\n }).then(\n function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true,\n });\n },\n function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason),\n });\n }\n );\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n async #deleteStreamController(streamController, streamId) {\n // Delete the `streamController` only when the start, pull, and cancel\n // capabilities have settled, to prevent `TypeError`s.\n await Promise.allSettled([\n streamController.startCall?.promise,\n streamController.pullCall?.promise,\n streamController.cancelCall?.promise,\n ]);\n delete this.streamControllers[streamId];\n }\n\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n}\n\nexport { MessageHandler };\n","/* Copyright 2019 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { assert } from \"../shared/util.js\";\n\n/** @implements {IPDFStream} */\nclass PDFWorkerStream {\n constructor(msgHandler) {\n this._msgHandler = msgHandler;\n this._contentLength = null;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n getFullReader() {\n assert(\n !this._fullRequestReader,\n \"PDFWorkerStream.getFullReader can only be called once.\"\n );\n this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\n\n/** @implements {IPDFStreamReader} */\nclass PDFWorkerStreamReader {\n constructor(msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n\n this._contentLength = null;\n this._isRangeSupported = false;\n this._isStreamingSupported = false;\n\n const readableStream = this._msgHandler.sendWithStream(\"GetReader\");\n this._reader = readableStream.getReader();\n\n this._headersReady = this._msgHandler\n .sendWithPromise(\"ReaderHeadersReady\")\n .then(data => {\n this._isStreamingSupported = data.isStreamingSupported;\n this._isRangeSupported = data.isRangeSupported;\n this._contentLength = data.contentLength;\n });\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n async read() {\n const { value, done } = await this._reader.read();\n if (done) {\n return { value: undefined, done: true };\n }\n // `value` is wrapped into Uint8Array, we need to\n // unwrap it to ArrayBuffer for further processing.\n return { value: value.buffer, done: false };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n}\n\n/** @implements {IPDFStreamRangeReader} */\nclass PDFWorkerStreamRangeReader {\n constructor(begin, end, msgHandler) {\n this._msgHandler = msgHandler;\n this.onProgress = null;\n\n const readableStream = this._msgHandler.sendWithStream(\"GetRangeReader\", {\n begin,\n end,\n });\n this._reader = readableStream.getReader();\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n const { value, done } = await this._reader.read();\n if (done) {\n return { value: undefined, done: true };\n }\n return { value: value.buffer, done: false };\n }\n\n cancel(reason) {\n this._reader.cancel(reason);\n }\n}\n\nexport { PDFWorkerStream };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n AbortException,\n assert,\n getVerbosityLevel,\n info,\n InvalidPDFException,\n isNodeJS,\n MissingPDFException,\n PasswordException,\n PromiseCapability,\n setVerbosityLevel,\n stringToPDFString,\n UnexpectedResponseException,\n UnknownErrorException,\n VerbosityLevel,\n warn,\n} from \"../shared/util.js\";\nimport {\n arrayBuffersToBytes,\n getNewAnnotationsMap,\n XRefParseException,\n} from \"./core_utils.js\";\nimport { Dict, Ref } from \"./primitives.js\";\nimport { LocalPdfManager, NetworkPdfManager } from \"./pdf_manager.js\";\nimport { AnnotationFactory } from \"./annotation.js\";\nimport { clearGlobalCaches } from \"./cleanup_helper.js\";\nimport { incrementalUpdate } from \"./writer.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { PDFWorkerStream } from \"./worker_stream.js\";\nimport { StructTreeRoot } from \"./struct_tree.js\";\n\nclass WorkerTask {\n constructor(name) {\n this.name = name;\n this.terminated = false;\n this._capability = new PromiseCapability();\n }\n\n get finished() {\n return this._capability.promise;\n }\n\n finish() {\n this._capability.resolve();\n }\n\n terminate() {\n this.terminated = true;\n }\n\n ensureNotTerminated() {\n if (this.terminated) {\n throw new Error(\"Worker task was terminated\");\n }\n }\n}\n\nclass WorkerMessageHandler {\n static setup(handler, port) {\n let testMessageProcessed = false;\n handler.on(\"test\", function (data) {\n if (testMessageProcessed) {\n return; // we already processed 'test' message once\n }\n testMessageProcessed = true;\n\n // Ensure that `TypedArray`s can be sent to the worker.\n handler.send(\"test\", data instanceof Uint8Array);\n });\n\n handler.on(\"configure\", function (data) {\n setVerbosityLevel(data.verbosity);\n });\n\n handler.on(\"GetDocRequest\", function (data) {\n return WorkerMessageHandler.createDocumentHandler(data, port);\n });\n }\n\n static createDocumentHandler(docParams, port) {\n // This context is actually holds references on pdfManager and handler,\n // until the latter is destroyed.\n let pdfManager;\n let terminated = false;\n let cancelXHRs = null;\n const WorkerTasks = new Set();\n const verbosity = getVerbosityLevel();\n\n const { docId, apiVersion } = docParams;\n const workerVersion =\n typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n : null;\n if (apiVersion !== workerVersion) {\n throw new Error(\n `The API version \"${apiVersion}\" does not match ` +\n `the Worker version \"${workerVersion}\".`\n );\n }\n\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n // Fail early, and predictably, rather than having (some) fonts fail to\n // load/render with slightly cryptic error messages in environments where\n // the `Array.prototype` has been *incorrectly* extended.\n //\n // PLEASE NOTE: We do *not* want to slow down font parsing by adding\n // `hasOwnProperty` checks all over the code-base.\n const enumerableProperties = [];\n for (const property in []) {\n enumerableProperties.push(property);\n }\n if (enumerableProperties.length) {\n throw new Error(\n \"The `Array.prototype` contains unexpected enumerable properties: \" +\n enumerableProperties.join(\", \") +\n \"; thus breaking e.g. `for...in` iteration of `Array`s.\"\n );\n }\n }\n const workerHandlerName = docId + \"_worker\";\n let handler = new MessageHandler(workerHandlerName, docId, port);\n\n function ensureNotTerminated() {\n if (terminated) {\n throw new Error(\"Worker was terminated\");\n }\n }\n\n function startWorkerTask(task) {\n WorkerTasks.add(task);\n }\n\n function finishWorkerTask(task) {\n task.finish();\n WorkerTasks.delete(task);\n }\n\n async function loadDocument(recoveryMode) {\n await pdfManager.ensureDoc(\"checkHeader\");\n await pdfManager.ensureDoc(\"parseStartXRef\");\n await pdfManager.ensureDoc(\"parse\", [recoveryMode]);\n\n // Check that at least the first page can be successfully loaded,\n // since otherwise the XRef table is definitely not valid.\n await pdfManager.ensureDoc(\"checkFirstPage\", [recoveryMode]);\n // Check that the last page can be successfully loaded, to ensure that\n // `numPages` is correct, and fallback to walking the entire /Pages-tree.\n await pdfManager.ensureDoc(\"checkLastPage\", [recoveryMode]);\n\n const isPureXfa = await pdfManager.ensureDoc(\"isPureXfa\");\n if (isPureXfa) {\n const task = new WorkerTask(\"loadXfaFonts\");\n startWorkerTask(task);\n await Promise.all([\n pdfManager\n .loadXfaFonts(handler, task)\n .catch(reason => {\n // Ignore errors, to allow the document to load.\n })\n .then(() => finishWorkerTask(task)),\n pdfManager.loadXfaImages(),\n ]);\n }\n\n const [numPages, fingerprints] = await Promise.all([\n pdfManager.ensureDoc(\"numPages\"),\n pdfManager.ensureDoc(\"fingerprints\"),\n ]);\n\n // Get htmlForXfa after numPages to avoid to create HTML twice.\n const htmlForXfa = isPureXfa\n ? await pdfManager.ensureDoc(\"htmlForXfa\")\n : null;\n\n return { numPages, fingerprints, htmlForXfa };\n }\n\n function getPdfManager({\n data,\n password,\n disableAutoFetch,\n rangeChunkSize,\n length,\n docBaseUrl,\n enableXfa,\n evaluatorOptions,\n }) {\n const pdfManagerArgs = {\n source: null,\n disableAutoFetch,\n docBaseUrl,\n docId,\n enableXfa,\n evaluatorOptions,\n handler,\n length,\n password,\n rangeChunkSize,\n };\n const pdfManagerCapability = new PromiseCapability();\n let newPdfManager;\n\n if (data) {\n try {\n pdfManagerArgs.source = data;\n\n newPdfManager = new LocalPdfManager(pdfManagerArgs);\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n return pdfManagerCapability.promise;\n }\n\n let pdfStream,\n cachedChunks = [];\n try {\n pdfStream = new PDFWorkerStream(handler);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n return pdfManagerCapability.promise;\n }\n\n const fullRequest = pdfStream.getFullReader();\n fullRequest.headersReady\n .then(function () {\n if (!fullRequest.isRangeSupported) {\n return;\n }\n pdfManagerArgs.source = pdfStream;\n pdfManagerArgs.length = fullRequest.contentLength;\n // We don't need auto-fetch when streaming is enabled.\n pdfManagerArgs.disableAutoFetch ||= fullRequest.isStreamingSupported;\n\n newPdfManager = new NetworkPdfManager(pdfManagerArgs);\n // There may be a chance that `newPdfManager` is not initialized for\n // the first few runs of `readchunk` block of code. Be sure to send\n // all cached chunks, if any, to chunked_stream via pdf_manager.\n for (const chunk of cachedChunks) {\n newPdfManager.sendProgressiveData(chunk);\n }\n\n cachedChunks = [];\n pdfManagerCapability.resolve(newPdfManager);\n cancelXHRs = null;\n })\n .catch(function (reason) {\n pdfManagerCapability.reject(reason);\n cancelXHRs = null;\n });\n\n let loaded = 0;\n const flushChunks = function () {\n const pdfFile = arrayBuffersToBytes(cachedChunks);\n if (length && pdfFile.length !== length) {\n warn(\"reported HTTP length is different from actual\");\n }\n // the data is array, instantiating directly from it\n try {\n pdfManagerArgs.source = pdfFile;\n\n newPdfManager = new LocalPdfManager(pdfManagerArgs);\n pdfManagerCapability.resolve(newPdfManager);\n } catch (ex) {\n pdfManagerCapability.reject(ex);\n }\n cachedChunks = [];\n };\n new Promise(function (resolve, reject) {\n const readChunk = function ({ value, done }) {\n try {\n ensureNotTerminated();\n if (done) {\n if (!newPdfManager) {\n flushChunks();\n }\n cancelXHRs = null;\n return;\n }\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n value instanceof ArrayBuffer,\n \"readChunk (getPdfManager) - expected an ArrayBuffer.\"\n );\n }\n loaded += value.byteLength;\n\n if (!fullRequest.isStreamingSupported) {\n handler.send(\"DocProgress\", {\n loaded,\n total: Math.max(loaded, fullRequest.contentLength || 0),\n });\n }\n\n if (newPdfManager) {\n newPdfManager.sendProgressiveData(value);\n } else {\n cachedChunks.push(value);\n }\n fullRequest.read().then(readChunk, reject);\n } catch (e) {\n reject(e);\n }\n };\n fullRequest.read().then(readChunk, reject);\n }).catch(function (e) {\n pdfManagerCapability.reject(e);\n cancelXHRs = null;\n });\n\n cancelXHRs = function (reason) {\n pdfStream.cancelAllRequests(reason);\n };\n\n return pdfManagerCapability.promise;\n }\n\n function setupDoc(data) {\n function onSuccess(doc) {\n ensureNotTerminated();\n handler.send(\"GetDoc\", { pdfInfo: doc });\n }\n\n function onFailure(ex) {\n ensureNotTerminated();\n\n if (ex instanceof PasswordException) {\n const task = new WorkerTask(`PasswordException: response ${ex.code}`);\n startWorkerTask(task);\n\n handler\n .sendWithPromise(\"PasswordRequest\", ex)\n .then(function ({ password }) {\n finishWorkerTask(task);\n pdfManager.updatePassword(password);\n pdfManagerReady();\n })\n .catch(function () {\n finishWorkerTask(task);\n handler.send(\"DocException\", ex);\n });\n } else if (\n ex instanceof InvalidPDFException ||\n ex instanceof MissingPDFException ||\n ex instanceof UnexpectedResponseException ||\n ex instanceof UnknownErrorException\n ) {\n handler.send(\"DocException\", ex);\n } else {\n handler.send(\n \"DocException\",\n new UnknownErrorException(ex.message, ex.toString())\n );\n }\n }\n\n function pdfManagerReady() {\n ensureNotTerminated();\n\n loadDocument(false).then(onSuccess, function (reason) {\n ensureNotTerminated();\n\n // Try again with recoveryMode == true\n if (!(reason instanceof XRefParseException)) {\n onFailure(reason);\n return;\n }\n pdfManager.requestLoadedStream().then(function () {\n ensureNotTerminated();\n\n loadDocument(true).then(onSuccess, onFailure);\n });\n });\n }\n\n ensureNotTerminated();\n\n getPdfManager(data)\n .then(function (newPdfManager) {\n if (terminated) {\n // We were in a process of setting up the manager, but it got\n // terminated in the middle.\n newPdfManager.terminate(\n new AbortException(\"Worker was terminated.\")\n );\n throw new Error(\"Worker was terminated\");\n }\n pdfManager = newPdfManager;\n\n pdfManager.requestLoadedStream(/* noFetch = */ true).then(stream => {\n handler.send(\"DataLoaded\", { length: stream.bytes.byteLength });\n });\n })\n .then(pdfManagerReady, onFailure);\n }\n\n handler.on(\"GetPage\", function (data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n return Promise.all([\n pdfManager.ensure(page, \"rotate\"),\n pdfManager.ensure(page, \"ref\"),\n pdfManager.ensure(page, \"userUnit\"),\n pdfManager.ensure(page, \"view\"),\n ]).then(function ([rotate, ref, userUnit, view]) {\n return {\n rotate,\n ref,\n userUnit,\n view,\n };\n });\n });\n });\n\n handler.on(\"GetPageIndex\", function (data) {\n const pageRef = Ref.get(data.num, data.gen);\n return pdfManager.ensureCatalog(\"getPageIndex\", [pageRef]);\n });\n\n handler.on(\"GetDestinations\", function (data) {\n return pdfManager.ensureCatalog(\"destinations\");\n });\n\n handler.on(\"GetDestination\", function (data) {\n return pdfManager.ensureCatalog(\"getDestination\", [data.id]);\n });\n\n handler.on(\"GetPageLabels\", function (data) {\n return pdfManager.ensureCatalog(\"pageLabels\");\n });\n\n handler.on(\"GetPageLayout\", function (data) {\n return pdfManager.ensureCatalog(\"pageLayout\");\n });\n\n handler.on(\"GetPageMode\", function (data) {\n return pdfManager.ensureCatalog(\"pageMode\");\n });\n\n handler.on(\"GetViewerPreferences\", function (data) {\n return pdfManager.ensureCatalog(\"viewerPreferences\");\n });\n\n handler.on(\"GetOpenAction\", function (data) {\n return pdfManager.ensureCatalog(\"openAction\");\n });\n\n handler.on(\"GetAttachments\", function (data) {\n return pdfManager.ensureCatalog(\"attachments\");\n });\n\n handler.on(\"GetDocJSActions\", function (data) {\n return pdfManager.ensureCatalog(\"jsActions\");\n });\n\n handler.on(\"GetPageJSActions\", function ({ pageIndex }) {\n return pdfManager.getPage(pageIndex).then(function (page) {\n return pdfManager.ensure(page, \"jsActions\");\n });\n });\n\n handler.on(\"GetOutline\", function (data) {\n return pdfManager.ensureCatalog(\"documentOutline\");\n });\n\n handler.on(\"GetOptionalContentConfig\", function (data) {\n return pdfManager.ensureCatalog(\"optionalContentConfig\");\n });\n\n handler.on(\"GetPermissions\", function (data) {\n return pdfManager.ensureCatalog(\"permissions\");\n });\n\n handler.on(\"GetMetadata\", function (data) {\n return Promise.all([\n pdfManager.ensureDoc(\"documentInfo\"),\n pdfManager.ensureCatalog(\"metadata\"),\n ]);\n });\n\n handler.on(\"GetMarkInfo\", function (data) {\n return pdfManager.ensureCatalog(\"markInfo\");\n });\n\n handler.on(\"GetData\", function (data) {\n return pdfManager.requestLoadedStream().then(function (stream) {\n return stream.bytes;\n });\n });\n\n handler.on(\"GetAnnotations\", function ({ pageIndex, intent }) {\n return pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(`GetAnnotations: page ${pageIndex}`);\n startWorkerTask(task);\n\n return page.getAnnotationsData(handler, task, intent).then(\n data => {\n finishWorkerTask(task);\n return data;\n },\n reason => {\n finishWorkerTask(task);\n throw reason;\n }\n );\n });\n });\n\n handler.on(\"GetFieldObjects\", function (data) {\n return pdfManager.ensureDoc(\"fieldObjects\");\n });\n\n handler.on(\"HasJSActions\", function (data) {\n return pdfManager.ensureDoc(\"hasJSActions\");\n });\n\n handler.on(\"GetCalculationOrderIds\", function (data) {\n return pdfManager.ensureDoc(\"calculationOrderIds\");\n });\n\n handler.on(\n \"SaveDocument\",\n async function ({ isPureXfa, numPages, annotationStorage, filename }) {\n const globalPromises = [\n pdfManager.requestLoadedStream(),\n pdfManager.ensureCatalog(\"acroForm\"),\n pdfManager.ensureCatalog(\"acroFormRef\"),\n pdfManager.ensureDoc(\"startXRef\"),\n pdfManager.ensureDoc(\"xref\"),\n pdfManager.ensureDoc(\"linearization\"),\n pdfManager.ensureCatalog(\"structTreeRoot\"),\n ];\n const promises = [];\n\n const newAnnotationsByPage = !isPureXfa\n ? getNewAnnotationsMap(annotationStorage)\n : null;\n const [\n stream,\n acroForm,\n acroFormRef,\n startXRef,\n xref,\n linearization,\n _structTreeRoot,\n ] = await Promise.all(globalPromises);\n const catalogRef = xref.trailer.getRaw(\"Root\") || null;\n let structTreeRoot;\n\n if (newAnnotationsByPage) {\n if (!_structTreeRoot) {\n if (\n await StructTreeRoot.canCreateStructureTree({\n catalogRef,\n pdfManager,\n newAnnotationsByPage,\n })\n ) {\n structTreeRoot = null;\n }\n } else if (\n await _structTreeRoot.canUpdateStructTree({\n pdfManager,\n xref,\n newAnnotationsByPage,\n })\n ) {\n structTreeRoot = _structTreeRoot;\n }\n\n const imagePromises = AnnotationFactory.generateImages(\n annotationStorage.values(),\n xref,\n pdfManager.evaluatorOptions.isOffscreenCanvasSupported\n );\n const newAnnotationPromises =\n structTreeRoot === undefined ? promises : [];\n for (const [pageIndex, annotations] of newAnnotationsByPage) {\n newAnnotationPromises.push(\n pdfManager.getPage(pageIndex).then(page => {\n const task = new WorkerTask(`Save (editor): page ${pageIndex}`);\n return page\n .saveNewAnnotations(handler, task, annotations, imagePromises)\n .finally(function () {\n finishWorkerTask(task);\n });\n })\n );\n }\n if (structTreeRoot === null) {\n // No structTreeRoot exists, so we need to create one.\n promises.push(\n Promise.all(newAnnotationPromises).then(async newRefs => {\n await StructTreeRoot.createStructureTree({\n newAnnotationsByPage,\n xref,\n catalogRef,\n pdfManager,\n newRefs,\n });\n return newRefs;\n })\n );\n } else if (structTreeRoot) {\n promises.push(\n Promise.all(newAnnotationPromises).then(async newRefs => {\n await structTreeRoot.updateStructureTree({\n newAnnotationsByPage,\n pdfManager,\n newRefs,\n });\n return newRefs;\n })\n );\n }\n }\n\n if (isPureXfa) {\n promises.push(pdfManager.serializeXfaData(annotationStorage));\n } else {\n for (let pageIndex = 0; pageIndex < numPages; pageIndex++) {\n promises.push(\n pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(`Save: page ${pageIndex}`);\n return page\n .save(handler, task, annotationStorage)\n .finally(function () {\n finishWorkerTask(task);\n });\n })\n );\n }\n }\n const refs = await Promise.all(promises);\n\n let newRefs = [];\n let xfaData = null;\n if (isPureXfa) {\n xfaData = refs[0];\n if (!xfaData) {\n return stream.bytes;\n }\n } else {\n newRefs = refs.flat(2);\n\n if (newRefs.length === 0) {\n // No new refs so just return the initial bytes\n return stream.bytes;\n }\n }\n\n const needAppearances =\n acroFormRef &&\n acroForm instanceof Dict &&\n newRefs.some(ref => ref.needAppearances);\n\n const xfa = (acroForm instanceof Dict && acroForm.get(\"XFA\")) || null;\n let xfaDatasetsRef = null;\n let hasXfaDatasetsEntry = false;\n if (Array.isArray(xfa)) {\n for (let i = 0, ii = xfa.length; i < ii; i += 2) {\n if (xfa[i] === \"datasets\") {\n xfaDatasetsRef = xfa[i + 1];\n hasXfaDatasetsEntry = true;\n }\n }\n if (xfaDatasetsRef === null) {\n xfaDatasetsRef = xref.getNewTemporaryRef();\n }\n } else if (xfa) {\n // TODO: Support XFA streams.\n warn(\"Unsupported XFA type.\");\n }\n\n let newXrefInfo = Object.create(null);\n if (xref.trailer) {\n // Get string info from Info in order to compute fileId.\n const infoObj = Object.create(null);\n const xrefInfo = xref.trailer.get(\"Info\") || null;\n if (xrefInfo instanceof Dict) {\n xrefInfo.forEach((key, value) => {\n if (typeof value === \"string\") {\n infoObj[key] = stringToPDFString(value);\n }\n });\n }\n\n newXrefInfo = {\n rootRef: catalogRef,\n encryptRef: xref.trailer.getRaw(\"Encrypt\") || null,\n newRef: xref.getNewTemporaryRef(),\n infoRef: xref.trailer.getRaw(\"Info\") || null,\n info: infoObj,\n fileIds: xref.trailer.get(\"ID\") || null,\n startXRef: linearization\n ? startXRef\n : xref.lastXRefStreamPos ?? startXRef,\n filename,\n };\n }\n\n return incrementalUpdate({\n originalData: stream.bytes,\n xrefInfo: newXrefInfo,\n newRefs,\n xref,\n hasXfa: !!xfa,\n xfaDatasetsRef,\n hasXfaDatasetsEntry,\n needAppearances,\n acroFormRef,\n acroForm,\n xfaData,\n }).finally(() => {\n xref.resetNewTemporaryRef();\n });\n }\n );\n\n handler.on(\"GetOperatorList\", function (data, sink) {\n const pageIndex = data.pageIndex;\n pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(`GetOperatorList: page ${pageIndex}`);\n startWorkerTask(task);\n\n // NOTE: Keep this condition in sync with the `info` helper function.\n const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n\n // Pre compile the pdf page and fetch the fonts/images.\n page\n .getOperatorList({\n handler,\n sink,\n task,\n intent: data.intent,\n cacheKey: data.cacheKey,\n annotationStorage: data.annotationStorage,\n })\n .then(\n function (operatorListInfo) {\n finishWorkerTask(task);\n\n if (start) {\n info(\n `page=${pageIndex + 1} - getOperatorList: time=` +\n `${Date.now() - start}ms, len=${operatorListInfo.length}`\n );\n }\n sink.close();\n },\n function (reason) {\n finishWorkerTask(task);\n if (task.terminated) {\n return; // ignoring errors from the terminated thread\n }\n sink.error(reason);\n\n // TODO: Should `reason` be re-thrown here (currently that casues\n // \"Uncaught exception: ...\" messages in the console)?\n }\n );\n });\n });\n\n handler.on(\"GetTextContent\", function (data, sink) {\n const { pageIndex, includeMarkedContent, disableNormalization } = data;\n\n pdfManager.getPage(pageIndex).then(function (page) {\n const task = new WorkerTask(\"GetTextContent: page \" + pageIndex);\n startWorkerTask(task);\n\n // NOTE: Keep this condition in sync with the `info` helper function.\n const start = verbosity >= VerbosityLevel.INFOS ? Date.now() : 0;\n\n page\n .extractTextContent({\n handler,\n task,\n sink,\n includeMarkedContent,\n disableNormalization,\n })\n .then(\n function () {\n finishWorkerTask(task);\n\n if (start) {\n info(\n `page=${pageIndex + 1} - getTextContent: time=` +\n `${Date.now() - start}ms`\n );\n }\n sink.close();\n },\n function (reason) {\n finishWorkerTask(task);\n if (task.terminated) {\n return; // ignoring errors from the terminated thread\n }\n sink.error(reason);\n\n // TODO: Should `reason` be re-thrown here (currently that casues\n // \"Uncaught exception: ...\" messages in the console)?\n }\n );\n });\n });\n\n handler.on(\"GetStructTree\", function (data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n return pdfManager.ensure(page, \"getStructTree\");\n });\n });\n\n handler.on(\"FontFallback\", function (data) {\n return pdfManager.fontFallback(data.id, handler);\n });\n\n handler.on(\"Cleanup\", function (data) {\n return pdfManager.cleanup(/* manuallyTriggered = */ true);\n });\n\n handler.on(\"Terminate\", function (data) {\n terminated = true;\n\n const waitOn = [];\n if (pdfManager) {\n pdfManager.terminate(new AbortException(\"Worker was terminated.\"));\n\n const cleanupPromise = pdfManager.cleanup();\n waitOn.push(cleanupPromise);\n\n pdfManager = null;\n } else {\n clearGlobalCaches();\n }\n if (cancelXHRs) {\n cancelXHRs(new AbortException(\"Worker was terminated.\"));\n }\n\n for (const task of WorkerTasks) {\n waitOn.push(task.finished);\n task.terminate();\n }\n\n return Promise.all(waitOn).then(function () {\n // Notice that even if we destroying handler, resolved response promise\n // must be sent back.\n handler.destroy();\n handler = null;\n });\n });\n\n handler.on(\"Ready\", function (data) {\n setupDoc(docParams);\n docParams = null; // we don't need docParams anymore -- saving memory.\n });\n\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n handler.on(\"GetXFADatasets\", function (data) {\n return pdfManager.ensureDoc(\"xfaDatasets\");\n });\n handler.on(\"GetXRefPrevValue\", function (data) {\n return pdfManager\n .ensureXRef(\"trailer\")\n .then(trailer => trailer.get(\"Prev\"));\n });\n handler.on(\"GetAnnotArray\", function (data) {\n return pdfManager.getPage(data.pageIndex).then(function (page) {\n return page.annotations.map(a => a.toString());\n });\n });\n }\n\n return workerHandlerName;\n }\n\n static initializeFromPort(port) {\n const handler = new MessageHandler(\"worker\", \"main\", port);\n WorkerMessageHandler.setup(handler, port);\n handler.send(\"ready\", null);\n }\n}\n\nfunction isMessagePort(maybePort) {\n return (\n typeof maybePort.postMessage === \"function\" && \"onmessage\" in maybePort\n );\n}\n\n// Worker thread (and not Node.js)?\nif (\n typeof window === \"undefined\" &&\n !isNodeJS &&\n typeof self !== \"undefined\" &&\n isMessagePort(self)\n) {\n WorkerMessageHandler.initializeFromPort(self);\n}\n\nexport { WorkerMessageHandler, WorkerTask };\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { WorkerMessageHandler } from \"./core/worker.js\";\n\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsVersion =\n typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_VERSION\") : void 0;\n/* eslint-disable-next-line no-unused-vars */\nconst pdfjsBuild =\n typeof PDFJSDev !== \"undefined\" ? PDFJSDev.eval(\"BUNDLE_BUILD\") : void 0;\n\nexport { WorkerMessageHandler };\n"],"names":["isNodeJS","process","versions","nw","electron","type","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","MAX_IMAGE_SIZE_TO_CACHE","LINE_FACTOR","LINE_DESCENT_FACTOR","BASELINE_FACTOR","RenderingIntentFlag","ANY","DISPLAY","PRINT","SAVE","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","AnnotationMode","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","AnnotationEditorPrefix","AnnotationEditorType","NONE","FREETEXT","HIGHLIGHT","STAMP","INK","AnnotationEditorParamsType","RESIZE","CREATE","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","PermissionFlag","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","UNDERLINE","SQUIGGLY","STRIKEOUT","CARET","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationReplyType","GROUP","REPLY","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","AnnotationActionEventType","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","DocumentActionEventType","WC","WS","DS","WP","DP","PageActionEventType","O","VerbosityLevel","ERRORS","WARNINGS","INFOS","CMapCompressionType","BINARY","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotation","endAnnotation","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","setVerbosityLevel","level","Number","isInteger","getVerbosityLevel","info","msg","console","log","warn","unreachable","Error","assert","cond","_isValidProtocol","url","protocol","createValidAbsoluteUrl","baseUrl","options","addDefaultProtocol","startsWith","dots","match","length","tryConvertEncoding","stringToUTF8String","absoluteUrl","URL","shadow","obj","prop","value","nonSerializable","Object","defineProperty","enumerable","configurable","writable","BaseException","BaseExceptionClosure","message","name","constructor","prototype","PasswordException","code","UnknownErrorException","details","InvalidPDFException","MissingPDFException","UnexpectedResponseException","status","FormatError","AbortException","bytesToString","bytes","undefined","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","i","chunkEnd","Math","min","chunk","subarray","push","join","stringToBytes","str","Uint8Array","charCodeAt","string32","objectSize","keys","objectFromMap","map","create","key","isLittleEndian","buffer8","view32","Uint32Array","buffer","isEvalSupported","Function","FeatureTest","isOffscreenCanvasSupported","OffscreenCanvas","platform","navigator","isMac","includes","isCSSRoundSupported","globalThis","CSS","supports","hexNumbers","Array","n","toString","padStart","Util","makeHexColor","r","g","b","scaleMinMax","minMax","temp","m1","m2","applyTransform","p","m","xt","yt","applyInverseTransform","d","getAxialAlignedBoundingBox","p1","p2","slice","p3","p4","max","inverseTransform","singularValueDecompose2dScale","transpose","a","c","first","second","sqrt","sx","sy","normalizeRect","rect","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","bezierBoundingBox","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","t","t1","t2","b2ac","sqrtb2ac","abs","j","mt","jlen","PDFStringTranslateTable","stringToPDFString","encoding","decoder","TextDecoder","fatal","decoded","decode","replaceAll","ex","ii","charCode","charAt","decodeURIComponent","escape","utf8StringToString","unescape","encodeURIComponent","isArrayBuffer","v","byteLength","isArrayEqual","arr1","arr2","getModificationDate","date","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","PromiseCapability","settled","promise","Promise","resolve","reject","data","reason","NormalizeRegex","NormalizationMap","normalizeUnicode","Map","_","normalize","get","getUuid","crypto","randomUUID","buf","getRandomValues","floor","random","AnnotationPrefix","CIRCULAR_REF","Symbol","EOF","CmdCache","NameCache","RefCache","clearPrimitiveCaches","Name","Cmd","cmd","nonSerializableClosure","Dict","xref","_map","objId","suppressEncryption","__nonSerializable__","assignXref","newXref","size","key1","key2","key3","Ref","fetch","getAsync","fetchAsync","getArray","isArray","getRaw","getKeys","getRawValues","values","set","has","forEach","callback","empty","emptyDict","merge","dictArray","mergeSubDicts","mergedDict","properties","dict","entries","property","subDict","clear","clone","num","gen","fromString","ref","exec","parseInt","RefSet","parent","_set","Set","put","add","remove","delete","iterator","RefSetCache","putAlias","aliasRef","isName","isCmd","isDict","isRefsEqual","v1","v2","BaseStream","isEmpty","isDataLoaded","getByte","getBytes","peekByte","peekedByte","pos","peekBytes","getUint16","b0","b1","getInt32","b2","b3","getByteRange","begin","end","getString","skip","reset","moveStart","makeSubStream","start","getBaseStreams","PDF_VERSION_REGEXP","getLookupTableFactory","initializer","lookup","MissingDataException","ParserEOFException","XRefEntryException","XRefParseException","arrayBuffersToBytes","arr","dataLength","item","getInheritableProperty","stopWhenFound","visited","ROMAN_NUMBER_MAP","toRomanNumerals","number","lowerCase","romanBuf","romanStr","toLowerCase","log2","x","ceil","readInt8","offset","readUint16","readUint32","isWhiteSpace","ch","parseXFAPath","path","positionPattern","split","component","escapePDFName","char","substring","escapeString","_collectJS","entry","list","parents","element","js","collectActions","eventType","actions","additionalActionsDicts","additionalActions","action","actionDict","Action","XMLEntities","encodeToXmlString","codePointAt","entity","toUpperCase","validateFontName","fontFamily","mustWarn","re","RegExp","test","ident","validateCSSFont","cssFontInfo","DEFAULT_CSS_FONT_OBLIQUE","DEFAULT_CSS_FONT_WEIGHT","CSS_FONT_WEIGHT_VALUES","fontWeight","italicAngle","weight","angle","parseFloat","isNaN","recoverJsURL","URL_OPEN_METHODS","regex","jsUrl","newWindow","numberToString","roundedValue","round","toFixed","getNewAnnotationsMap","annotationStorage","newAnnotationsByPage","annotations","pageIndex","isAscii","stringToUTF16HexString","stringToUTF16String","bigEndian","getRotationMatrix","rotation","width","height","Stream","arrayBuffer","strEnd","StringStream","NullStream","ChunkedStream","chunkSize","manager","_loadedChunks","numChunks","progressiveDataLength","lastSuccessfulEnsureByteChunk","getMissingChunks","chunks","numChunksLoaded","onReceiveData","beginChunk","endChunk","curChunk","onReceiveProgressiveData","position","ensureByte","ensureRange","nextEmptyChunk","hasChunk","ChunkedStreamSubstream","missingChunks","subStream","ChunkedStreamManager","pdfNetworkStream","args","rangeChunkSize","stream","disableAutoFetch","msgHandler","currRequestId","_chunksNeededByRequest","_requestsByChunk","_promisesByRequest","aborted","_loadedStreamCapability","sendRequest","rangeReader","getRangeReader","isStreamingSupported","onProgress","bind","loaded","readChunk","done","chunkData","read","then","e","requestAllChunks","noFetch","_requestChunks","requestId","chunksNeeded","capability","chunksToRequest","requestIds","groupedChunksToRequest","groupChunks","groupedChunk","catch","getStream","requestRange","getBeginChunk","getEndChunk","requestRanges","ranges","range","sort","groupedChunks","prevChunk","send","total","isProgressive","loadedRequests","lastChunk","onError","err","abort","cancelAllRequests","resizeRgbImage","src","dest","w1","h1","w2","h2","alpha01","COMPONENTS","xRatio","yRatio","newIndex","oldIndex","xScaled","Uint16Array","w1Scanline","py","ColorSpace","numComps","getRgb","srcOffset","rgb","Uint8ClampedArray","getRgbItem","destOffset","getRgbBuffer","count","bits","getOutputLength","inputLength","isPassthrough","isDefaultDecode","decodeMap","bpc","fillRgb","originalWidth","originalHeight","actualHeight","comps","rgbBuf","numComponentColors","needsResizing","allColors","colorMap","destPos","rgbPos","usesZeroToOneRange","_cache","cacheKey","localColorSpaceCache","parsedColorSpace","csName","csRef","getCached","localColorSpace","getByRef","getByName","parseAsync","cs","resources","pdfFunctionFactory","_parse","parse","cachedColorSpace","fetchIfRef","singletons","gray","cmyk","PatternCS","colorSpaces","resourcesCS","mode","params","baseCS","whitePoint","blackPoint","gamma","CalGrayCS","matrix","CalRGBCS","alt","altCS","hiVal","IndexedCS","tintFn","AlternateCS","LabCS","DeviceGrayCS","DeviceRgbCS","DeviceCmykCS","base","tmpBuf","Float32Array","scale","baseNumComps","baseBuf","scaled","tinted","highVal","outputDelta","lookupPos","q","toRgb","srcScale","y","k","XW","YW","ZW","XB","YB","ZB","G","A","AG","L","val","BRADFORD_SCALE_MATRIX","BRADFORD_SCALE_INVERSE_MATRIX","SRGB_D65_XYZ_TO_RGB_MATRIX","FLAT_WHITEPOINT_MATRIX","tempNormalizeMatrix","tempConvertMatrix1","tempConvertMatrix2","DECODE_L_CONSTANT","GR","GG","GB","MXA","MYA","MZA","MXB","MYB","MZB","MXC","MYC","MZC","matrixProduct","result","toFlat","sourceWhitePoint","LMS","toD65","D65X","D65Y","D65Z","sRGBTransferFunction","color","adjustToRange","decodeL","compensateBlackPoint","sourceBlackPoint","XYZ_Flat","zeroDecodeL","X_DST","X_SRC","Y_DST","Y_SRC","Z_DST","Z_SRC","X_Scale","X_Offset","Y_Scale","Y_Offset","Z_Scale","Z_Offset","normalizeWhitePointToFlat","XYZ_In","LMS_Flat","normalizeWhitePointToD65","LMS_D65","B","AGR","BGG","CGB","Y","Z","XYZ","XYZ_Black","XYZ_D65","SRGB","amin","amax","bmin","bmax","fn_g","high1","low2","high2","maxVal","Ls","as","bs","M","N","hexToInt","hexToStr","addHex","incHex","MAX_NUM_SIZE","MAX_ENCODED_NUM_SIZE","BinaryCMapStream","readByte","readNumber","last","readSigned","readHex","readHexNumber","stack","sp","bufferSize","readHexSigned","sign","readString","len","BinaryCMapReader","cMap","extend","header","vertical","useCMap","tmp","sequence","dataSize","ucs2DataSize","subitemsCount","addCodespaceRange","mapOne","mapCidRange","mapBfRange","emptyBuffer","DecodeStream","maybeMinBufferLength","_rawMinBufferLength","bufferLength","eof","minBufferLength","readBlock","ensureBuffer","requested","buffer2","bufEnd","StreamsSequenceStream","streams","maybeLength","_onError","shift","newLength","baseStreamsBuf","baseStreams","Ascii85Stream","input","TILDA_CHAR","Z_LOWER_CHAR","AsciiHexStream","firstDigit","UPSTREAM_BLOCK_SIZE","maxDecodeLength","digit","ccittEOL","ccittEOF","twoDimPass","twoDimHoriz","twoDimVert0","twoDimVertR1","twoDimVertL1","twoDimVertR2","twoDimVertL2","twoDimVertR3","twoDimVertL3","twoDimTable","whiteTable1","whiteTable2","blackTable1","blackTable2","blackTable3","CCITTFaxDecoder","source","next","eoline","EndOfLine","byteAlign","EncodedByteAlign","columns","Columns","rows","Rows","eoblock","EndOfBlock","black","BlackIs1","codingLine","refLine","codingPos","row","nextLine2D","inputBits","inputBuf","outputBits","rowsDone","code1","_lookBits","_eatBits","readNextChar","refPos","blackPixels","code2","code3","_getTwoDimCode","_addPixels","_getBlackCode","_getWhiteCode","_addPixelsNeg","gotEOL","a1","_findTableCode","table","limit","limitValue","CCITTFaxStream","ccittFaxDecoder","codeLenCodeMap","Int32Array","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","FlateStream","cmf","flg","codeSize","codeBuf","getBits","getCode","codes","maxLen","codeLen","codeVal","generateHuffmanTable","lengths","hdr","blockLen","check","block","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","codeLengths","bitsLength","bitsOffset","what","repeatLength","dist","QeTable","qe","nmps","nlps","switchFlag","ArithmeticDecoder","bp","dataEnd","chigh","clow","byteIn","ct","readBit","contexts","cx_index","cx_mps","qeTableIcx","qeIcx","Jbig2Error","ContextCache","getContexts","id","Int8Array","DecodingContext","contextCache","cache","MAX_INT_32","MIN_INT_32","decodeInteger","procedure","prev","readBits","bit","signedValue","decodeIAID","codeLength","SegmentTypes","CodingTemplates","RefinementTemplates","coding","reference","ReusedContexts","RefinementReusedContexts","decodeBitmapTemplate0","decodingContext","bitmap","contextLabel","pixel","row1","row2","OLD_PIXEL_MASK","decodeBitmap","mmr","templateIndex","prediction","at","Reader","decodeMMRBitmap","useskip","template","concat","templateLength","templateX","templateY","changingTemplateEntries","reuseMask","minX","maxX","minY","changingEntriesLength","changingTemplateX","changingTemplateY","changingTemplateBit","sbb_left","sbb_top","sbb_right","pseudoPixelContext","ltp","i0","j0","sltp","decodeRefinement","referenceBitmap","offsetX","offsetY","codingTemplate","codingTemplateLength","codingTemplateX","codingTemplateY","referenceTemplate","referenceTemplateLength","referenceTemplateX","referenceTemplateY","referenceWidth","referenceHeight","decodeSymbolDictionary","huffman","refinement","symbols","numberOfNewSymbols","numberOfExportedSymbols","huffmanTables","refinementTemplateIndex","refinementAt","huffmanInput","newSymbols","currentHeight","symbolCodeLength","tableB1","symbolWidths","getStandardTable","deltaHeight","tableDeltaHeight","currentWidth","totalWidth","firstSymbol","deltaWidth","tableDeltaWidth","numberOfInstances","decodeTextRegion","symbolId","rdx","rdy","symbol","bitmapSize","tableBitmapSize","collectiveBitmap","readUncompressedBitmap","originalEnd","bitmapEnd","numberOfSymbolsDecoded","xMin","xMax","bitmapWidth","symbolBitmap","exportedSymbols","flags","currentFlag","totalSymbolsLength","runLength","defaultPixelValue","numberOfSymbolInstances","stripSize","inputSymbols","transposed","dsOffset","referenceCorner","combinationOperator","logStripSize","stripT","tableDeltaT","firstS","deltaT","deltaFirstS","tableFirstS","currentS","currentT","symbolIDTable","applyRefinement","symbolWidth","symbolHeight","rdw","rdh","offsetT","offsetS","s2","symbolRow","maxWidth","deltaS","tableDeltaS","decodePatternDictionary","patternWidth","patternHeight","maxPatternIndex","collectiveWidth","patterns","patternBitmap","decodeHalftoneRegion","regionWidth","regionHeight","enableSkip","gridWidth","gridHeight","gridOffsetX","gridOffsetY","gridVectorX","gridVectorY","regionBitmap","numberOfPatterns","pattern0","bitsPerValue","grayScaleBitPlanes","mmrInput","mg","ng","patternIndex","patternRow","regionRow","regionX","regionY","readSegmentHeader","segmentHeader","segmentType","typeName","deferredNonRetain","pageAssociationFieldSize","referredFlags","referredToCount","retainBits","referredToSegmentNumberSize","referredTo","pageAssociation","genericRegionInfo","readRegionSegmentInformation","genericRegionSegmentFlags","RegionSegmentInformationFieldLength","genericRegionMmr","searchPatternLength","searchPattern","headerEnd","readSegments","segments","segment","randomAccess","processSegment","visitor","atLength","dictionary","dictionaryFlags","huffmanDHSelector","huffmanDWSelector","bitmapSizeSelector","aggregationInstancesSelector","bitmapCodingContextUsed","bitmapCodingContextRetained","refinementTemplate","textRegion","textRegionSegmentFlags","textRegionHuffmanFlags","huffmanFS","huffmanDS","huffmanDT","huffmanRefinementDW","huffmanRefinementDH","huffmanRefinementDX","huffmanRefinementDY","huffmanRefinementSizeSelector","patternDictionary","patternDictionaryFlags","halftoneRegion","halftoneRegionFlags","genericRegion","pageInfo","resolutionX","resolutionY","pageSegmentFlags","lossless","requiresBuffer","combinationOperatorOverride","callbackName","processSegments","parseJbig2Chunks","SimpleSegmentVisitor","parseJbig2","onPageInformation","currentPageInfo","rowSize","drawBitmap","regionInfo","mask0","offset0","mask","onImmediateGenericRegion","region","onImmediateLosslessGenericRegion","arguments","onSymbolDictionary","currentSegment","referredSegments","getSymbolDictionaryHuffmanTables","customTables","referredSegment","referredSymbols","onImmediateTextRegion","getTextRegionHuffmanTables","onImmediateLosslessTextRegion","onPatternDictionary","onImmediateHalftoneRegion","onImmediateLosslessHalftoneRegion","onTables","decodeTablesSegment","HuffmanLine","lineData","isOOB","rangeLow","prefixLength","rangeLength","prefixCode","isLowerRange","HuffmanTreeNode","line","children","isLeaf","buildTree","node","decodeNode","reader","htOffset","HuffmanTable","lines","prefixCodesDone","assignPrefixCodes","rootNode","linesLength","prefixLengthMax","histogram","currentLength","firstCode","currentCode","currentTemp","lowestValue","highestValue","prefixSizeBits","rangeSizeBits","currentRangeLow","standardTablesCache","currentByte","numBits","getCustomHuffmanTable","index","currentIndex","numberOfSymbols","runCodesTable","repeatedLength","numberOfRepeats","customIndex","tableAggregateInstances","endOfBlock","lookForEOFLimit","Jbig2Image","parseChunks","Jbig2Stream","jbig2Image","globalsStream","globals","convertToRGBA","kind","convertBlackAndWhiteToRGBA","convertRGBToRGBA","srcPos","nonBlackColor","inverseDecode","zeroMapping","oneMapping","widthInSource","widthRemainder","srcLength","elem","len32","src32","s1","s3","jj","grayToRGBA","JpegError","DNLMarkerError","scanLines","EOIMarkerError","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","pop","getBlockBufferOffset","col","blocksPerLine","decodeScan","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","parseDNLMarker","mcusPerLine","progressive","startOffset","bitsData","bitsCount","nextByte","maybeScanLines","blockRow","precision","decodeHuffman","tree","receive","receiveAndExtend","decodeBaseline","blockOffset","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","s","z","decodeDCFirst","decodeDCSuccessive","eobrun","decodeACFirst","successiveACState","successiveACNextValue","decodeACSuccessive","offsetZ","decodeMcu","mcu","mcuRow","mcuCol","blockCol","h","decodeBlock","componentsLength","decodeFn","fileMarker","mcuExpected","blocksPerColumn","mcusPerColumn","mcuToRead","findNextFileMarker","invalid","partialMsg","marker","quantizeAndInverse","blockBufferOffset","qt","quantizationTable","v0","v3","v4","v5","v6","v7","p0","p5","p6","p7","buildComponentData","computationBuffer","Int16Array","currentPos","startPos","maxPos","newPos","currentMarker","newMarker","JpegImage","decodeTransform","colorTransform","_decodeTransform","_colorTransform","dnlScanLines","readDataBlock","endOffset","array","prepareComponents","samplesPerLine","maxH","maxV","blocksPerLineForMcu","blocksPerColumnForMcu","blocksBufferSize","jfif","adobe","numSOSMarkers","quantizationTables","huffmanTablesAC","huffmanTablesDC","markerLoop","l","appData","version","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesLength","quantizationTablesEnd","quantizationTableSpec","tableData","extended","sofScanLines","componentIds","componentsCount","componentId","qId","quantizationId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","processed","nextFileMarker","output","scaleX","scaleY","numComponents","_getLinearizedBlockData","isSourcePDF","componentScaleX","componentScaleY","blocksPerScanline","xScaleBlockOffset","mask3LSB","lastComponentScaleX","_isColorConversionNeeded","_convertYccToRgb","Cb","Cr","_convertYccToRgba","out","_convertYcckToRgb","_convertYcckToRgba","_convertYcckToCmyk","_convertCmykToRgb","_convertCmykToRgba","getData","forceRGBA","forceRGB","rgbaData","grayColor","JpegStream","jpegOptions","decodeArr","bitsPerComponent","decodeArrLength","transformNeeded","maxValue","jpegImage","drawWidth","drawHeight","JpxError","SubbandsGainLog2","LL","LH","HL","HH","JpxImage","failOnCorruptedImage","head","parseCodestream","headerSize","lbox","tbox","jumpDataLength","method","colorspace","headerType","parseImageProperties","newByte","oldByte","Xsiz","Ysiz","XOsiz","YOsiz","Csiz","context","doNotRecover","sqcd","spqcds","spqcdSize","scalarExpounded","tile","mainHeader","siz","XTsiz","YTsiz","XTOsiz","YTOsiz","isSigned","XRsiz","YRsiz","calculateComponentDimensions","SIZ","calculateTileGrids","QCC","COC","qcd","noQuantization","guardBits","spqcd","epsilon","mu","SPqcds","QCD","currentTile","qcc","cqcc","cod","scod","entropyCoderWithCustomPrecincts","sopMarkerUsed","ephMarkerUsed","progressionOrder","layersCount","multipleComponentTransform","decompositionLevelsCount","xcb","ycb","blockStyle","selectiveArithmeticCodingBypass","resetContextProbabilities","terminationOnEachCodingPass","verticallyStripe","predictableTermination","segmentationSymbolUsed","reversibleTransformation","precinctsSizes","precinctsSize","PPx","PPy","unsupported","COD","partIndex","partsCount","initializeTile","buildPackets","parseTilePackets","tiles","transformComponents","numXtiles","numYtiles","tx0","ty0","tx1","ty1","tileComponent","tcx0","tcy0","tcx1","tcy1","getBlocksDimensions","codOrCoc","codingStyleParameters","xcb_","ycb_","buildPrecincts","resolution","dimensions","precinctWidth","precinctHeight","isZeroRes","resLevel","precinctWidthInSubband","precinctHeightInSubband","numprecinctswide","trx1","trx0","numprecinctshigh","try1","try0","numprecincts","precinctParameters","buildCodeblocks","subband","codeblockWidth","codeblockHeight","cbx0","tbx0","cby0","tby0","cbx1","tbx1","cby1","tby1","codeblocks","precincts","codeblock","precinctNumber","cbx","cby","tbx0_","tby0_","tbx1_","tby1_","pi","pj","subbandType","Lblock","precinct","cbxMin","cbxMax","cbyMin","cbyMax","codeblockParameters","numcodeblockwide","numcodeblockhigh","createPacket","layerNumber","precinctCodeblocks","subbands","LayerResolutionComponentPositionIterator","tileIndex","codingStyleDefaultParameters","maxDecompositionLevelsCount","nextPacket","JpxImage_nextPacket","resolutions","packet","ResolutionLayerComponentPositionIterator","ResolutionPositionComponentLayerIterator","maxNumPrecinctsInLevel","maxNumPrecincts","PositionComponentResolutionLayerIterator","getPrecinctSizesInImageScale","precinctsIterationSizes","px","maxNumHigh","maxNumWide","sizeInImageScale","getPrecinctIndexIfExist","ComponentPositionResolutionLayerIterator","pxIndex","pyIndex","precinctIterationSizes","posX","minWidth","posY","minHeight","startPrecinctRowIndex","MAX_VALUE","sizePerComponent","sizePerResolution","minWidthCurrentComponent","minHeightCurrentComponent","maxNumWideCurrentComponent","maxNumHighCurrentComponent","widthCurrentResolution","heightCurrentResolution","blocksDimensions","bscale","resolutionSubbands","packetsIterator","skipNextBit","skipMarkerIfEqual","skipBytes","alignToByte","readCodingpasses","queue","codeblockColumn","codeblockRow","codeblockIncluded","firstTimeInclusion","valueReady","zeroBitPlanesTree","included","inclusionTree","InclusionTree","TagTree","nextLevel","incrementValue","zeroBitPlanes","codingpasses","codingpassesLog2","codedDataLength","packetItem","copyCoefficients","coefficients","levelWidth","levelHeight","delta","mb","reversible","right","bottom","blockWidth","blockHeight","bitModel","BitModel","currentCodingpassType","totalLength","dataItem","encodedData","setDecoder","runSignificancePropagationPass","runMagnitudeRefinementPass","runCleanupPass","checkSegmentationSymbol","coefficentsSign","magnitude","coefficentsMagnitude","bitsDecoded","magnitudeCorrection","nb","interleave","levelOffset","transformTile","quantizationParameters","ReversibleTransform","IrreversibleTransform","subbandCoefficients","gainLog2","items","calculate","left","top","resultImages","transformedTiles","tile0","fourComponents","y0items","y1items","y2items","y3items","component0","qcdOrQcc","levelsLength","levels","currentLevel","defaultValue","stopValue","propagateValues","levelIndex","currentValue","UNIFORM_CONTEXT","RUNLENGTH_CONTEXT","LLAndLHContextsLabel","HLContextLabel","HHContextLabel","contextLabelTable","coefficientCount","neighborsSignificance","processingFlags","setNeighborsSignificance","column","labels","processedInverseMask","processedMask","firstMagnitudeBitMask","i1","decision","decodeSignBit","contribution","sign0","sign1","significance1","horizontalContribution","width4","index0","indexNext","significance","oneRowDown","twoRowsDown","threeRowsDown","iNext","indexBase","checkAllEmpty","allEmpty","hasSignificantCoefficent","i2","Transform","u0","ll","iterate","j1","j2","filter","hl_lh_hh","llWidth","llHeight","llItems","u","bufferPadding","rowBuffer","numBuffers","colBuffers","currentBuffer","current","alpha","beta","K_","JpxStream","jpxImage","tileCount","tileComponents","tileWidth","tileHeight","tileLeft","tileTop","srcPosition","dataPosition","imgRowSize","tileRowSize","rowBytes","LZWStream","earlyChange","cachedData","bitsCached","maxLzwDictionarySize","lzwState","nextCode","dictionaryValues","dictionaryLengths","dictionaryPrevCodes","currentSequence","currentSequenceLength","lastCode","blockSize","decodedSizeDelta","estimatedDecodedSize","prevCode","decodedLength","currentBufferLength","hasPrev","PredictorStream","predictor","readBlockTiff","readBlockPng","colors","pixBytes","rawBytes","inbuf","outbuf","inbits","outbits","bytesPerPixel","sum","compArray","bitMask","kk","prevRow","up","upLeft","pa","pb","pc","RunLengthStream","repeatHeader","MAX_LENGTH_TO_CACHE","getInlineImageCacheKey","Parser","lexer","allowStreams","recoveryMode","imageCache","_imageId","refill","buf1","getObj","buf2","tryShift","cipherTransform","makeInlineImage","makeStream","decryptString","findDefaultInlineStreamEnd","I","SPACE","LF","CR","NUL","knownCommands","state","maybeEIPos","followingBytes","tmpLexer","Lexer","_hexStringWarn","numArgs","nextObj","knownCommand","variableArgs","findDCTDecodeInlineStreamEnd","foundEOI","markerLength","inlineStreamSkipEI","findASCII85DecodeInlineStreamEnd","TILDE","GT","tildePos","maybeEI","findASCIIHexDecodeInlineStreamEnd","dictMap","dictLength","beginInlineImagePos","Filter","filterName","filterZero","initialStreamPos","cacheEntry","imageStream","createStream","_findStreamLength","signature","SCAN_BLOCK_LENGTH","signatureLength","scanBytes","scanLength","skipToNextLine","nextChar","ENDSTREAM_SIGNATURE","actualLength","MAX_TRUNCATION","TRUNCATED_SIGNATURE","lastByte","makeFilter","filterArray","paramsArray","specialChars","toHexDigit","_hexStringNumWarn","currentChar","peekChar","getNumber","eNotation","divideBy","baseValue","powerValue","powerValueSign","currentDigit","numParen","charBuffered","getName","previousCh","MAX_HEX_STRING_NUM_WARN","getHexString","isFirstHex","secondDigit","comment","nextCh","knownCommandFound","possibleCommand","Linearization","getInt","linDict","allowZeroValue","getHints","hints","hintsLength","hint","parser","obj1","obj2","obj3","objectNumberFirst","endFirst","numPages","mainXRefEntriesOffset","pageFirst","BUILT_IN_CMAPS","MAX_MAP_RANGE","CMap","builtInCMap","codespaceRanges","numCodespaceRanges","low","high","dstLow","nextCharCode","mapBfRangeToArray","dst","contains","charCodeOf","indexOf","getMap","readCharCode","nn","codespaceRange","charcode","getCharCodeLength","isIdentityCMap","IdentityCMap","strToInt","expectString","expectInt","parseBfChar","parseBfRange","parseCidChar","parseCidRange","parseCodespaceRange","parseWMode","parseCMapName","parseCMap","fetchBuiltInCMap","previous","embeddedUseCMap","objLoop","extendCMap","createBuiltInCMap","useCodespaceRanges","cMapData","compressionType","CMapFactory","parsedCMap","ISOAdobeCharset","ExpertCharset","ExpertSubsetCharset","ExpertEncoding","MacExpertEncoding","MacRomanEncoding","StandardEncoding","WinAnsiEncoding","SymbolSetEncoding","ZapfDingbatsEncoding","getEncoding","encodingName","MAX_SUBR_NESTING","CFFStandardStrings","NUM_STANDARD_CFF_STRINGS","CharstringValidationData","stackClearing","stem","resetStack","undefStack","CharstringValidationData12","stackDelta","stackFn","CFFParser","file","seacAnalysisEnabled","cff","CFF","parseHeader","nameIndex","parseIndex","endPos","topDictIndex","stringIndex","globalSubrIndex","topDictParsed","parseDict","topDict","createDict","CFFTopDict","strings","names","parseNameIndex","parseStringIndex","parsePrivateDict","isCIDFont","hasName","charStringOffset","charStringIndex","fontMatrix","fontBBox","ascent","descent","ascentScaled","charset","fdArrayIndex","dictRaw","fontDict","fdArray","parseCharsets","fdSelect","parseFDSelect","parseEncoding","charStringsAndSeacs","parseCharStrings","charStrings","localSubrIndex","privateDict","subrsIndex","seacs","widths","bytesLength","hdrSize","offSize","CFFHeader","parseOperand","parseFloatOperand","NaN","operands","cffIndex","CFFIndex","offsets","offsetSize","offsetStart","offsetEnd","CFFStrings","Type","cffDict","setByKey","parseCharString","callDepth","stackSize","validationCommand","seac","copyWithin","bias","subrNumber","valid","hasVStems","firstStackClearing","charstring","localSubrToUse","privateDictToUse","fdIndex","getFDIndex","nominalWidth","defaultWidth","emptyPrivateDictionary","parentDict","CFFPrivateDict","privateOffset","removeByName","privateDictEnd","dictData","setByName","subrsOffset","relativeOffset","cid","CFFCharset","CFFCharsetPredefinedTypes","ISO_ADOBE","EXPERT","EXPERT_SUBSET","format","raw","predefined","readSupplement","supplementsCount","sid","baseEncoding","dataStart","glyphsCount","rangesCount","gid","CFFEncoding","CFFFDSelect","duplicateFirstGlyph","glyphZero","hasGlyphId","glyph","getSID","objects","CFFDict","tables","keyToNameMap","nameToKeyMap","defaults","types","opcodes","order","createTables","layout","CFFTopDictLayout","CFFPrivateDictLayout","glyphIndex","CFFOffsetTracker","isTracking","track","location","setEntryLocation","dataOffset","offset1","offset2","offset3","offset4","CFFCompiler","compile","compileHeader","compileNameIndex","xuid","compiled","compileTopDicts","topDictTracker","trackers","compileStringIndex","compileIndex","compileEncoding","compileCharset","compileCharStrings","compileFDSelect","fontDictTrackers","compilePrivateDicts","encodeNumber","encodeInteger","encodeFloat","EncodeFloatRegExp","nibbles","sanitizedName","dicts","removeCidKeys","fontDictTracker","fontDictData","compileDict","privateDictTracker","privateDictData","outputLength","subrs","offsetTracker","string","charStringsIndex","numGlyphs","numGlyphsLessNotDef","charsetIndex","numCharsets","warned","compileTypedArray","lastFD","currentFD","numRanges","from","lastOffset","getGlyphsUnicode","AE","AEacute","AEmacron","AEsmall","Aacute","Aacutesmall","Abreve","Abreveacute","Abrevecyrillic","Abrevedotbelow","Abrevegrave","Abrevehookabove","Abrevetilde","Acaron","Acircle","Acircumflex","Acircumflexacute","Acircumflexdotbelow","Acircumflexgrave","Acircumflexhookabove","Acircumflexsmall","Acircumflextilde","Acute","Acutesmall","Acyrillic","Adblgrave","Adieresis","Adieresiscyrillic","Adieresismacron","Adieresissmall","Adotbelow","Adotmacron","Agrave","Agravesmall","Ahookabove","Aiecyrillic","Ainvertedbreve","Alpha","Alphatonos","Amacron","Amonospace","Aogonek","Aring","Aringacute","Aringbelow","Aringsmall","Asmall","Atilde","Atildesmall","Aybarmenian","Bcircle","Bdotaccent","Bdotbelow","Becyrillic","Benarmenian","Beta","Bhook","Blinebelow","Bmonospace","Brevesmall","Bsmall","Btopbar","Caarmenian","Cacute","Caron","Caronsmall","Ccaron","Ccedilla","Ccedillaacute","Ccedillasmall","Ccircle","Ccircumflex","Cdot","Cdotaccent","Cedillasmall","Chaarmenian","Cheabkhasiancyrillic","Checyrillic","Chedescenderabkhasiancyrillic","Chedescendercyrillic","Chedieresiscyrillic","Cheharmenian","Chekhakassiancyrillic","Cheverticalstrokecyrillic","Chi","Chook","Circumflexsmall","Cmonospace","Coarmenian","Csmall","DZ","DZcaron","Daarmenian","Dafrican","Dcaron","Dcedilla","Dcircle","Dcircumflexbelow","Dcroat","Ddotaccent","Ddotbelow","Decyrillic","Deicoptic","Delta","Deltagreek","Dhook","Dieresis","DieresisAcute","DieresisGrave","Dieresissmall","Digammagreek","Djecyrillic","Dlinebelow","Dmonospace","Dotaccentsmall","Dslash","Dsmall","Dtopbar","Dz","Dzcaron","Dzeabkhasiancyrillic","Dzecyrillic","Dzhecyrillic","Eacute","Eacutesmall","Ebreve","Ecaron","Ecedillabreve","Echarmenian","Ecircle","Ecircumflex","Ecircumflexacute","Ecircumflexbelow","Ecircumflexdotbelow","Ecircumflexgrave","Ecircumflexhookabove","Ecircumflexsmall","Ecircumflextilde","Ecyrillic","Edblgrave","Edieresis","Edieresissmall","Edot","Edotaccent","Edotbelow","Efcyrillic","Egrave","Egravesmall","Eharmenian","Ehookabove","Eightroman","Einvertedbreve","Eiotifiedcyrillic","Elcyrillic","Elevenroman","Emacron","Emacronacute","Emacrongrave","Emcyrillic","Emonospace","Encyrillic","Endescendercyrillic","Eng","Enghecyrillic","Enhookcyrillic","Eogonek","Eopen","Epsilon","Epsilontonos","Ercyrillic","Ereversed","Ereversedcyrillic","Escyrillic","Esdescendercyrillic","Esh","Esmall","Eta","Etarmenian","Etatonos","Eth","Ethsmall","Etilde","Etildebelow","Euro","Ezh","Ezhcaron","Ezhreversed","Fcircle","Fdotaccent","Feharmenian","Feicoptic","Fhook","Fitacyrillic","Fiveroman","Fmonospace","Fourroman","Fsmall","GBsquare","Gacute","Gamma","Gammaafrican","Gangiacoptic","Gbreve","Gcaron","Gcedilla","Gcircle","Gcircumflex","Gcommaaccent","Gdot","Gdotaccent","Gecyrillic","Ghadarmenian","Ghemiddlehookcyrillic","Ghestrokecyrillic","Gheupturncyrillic","Ghook","Gimarmenian","Gjecyrillic","Gmacron","Gmonospace","Grave","Gravesmall","Gsmall","Gsmallhook","Gstroke","H","H18533","H18543","H18551","H22073","HPsquare","Haabkhasiancyrillic","Hadescendercyrillic","Hardsigncyrillic","Hbar","Hbrevebelow","Hcedilla","Hcircle","Hcircumflex","Hdieresis","Hdotaccent","Hdotbelow","Hmonospace","Hoarmenian","Horicoptic","Hsmall","Hungarumlaut","Hungarumlautsmall","Hzsquare","IAcyrillic","IJ","IUcyrillic","Iacute","Iacutesmall","Ibreve","Icaron","Icircle","Icircumflex","Icircumflexsmall","Icyrillic","Idblgrave","Idieresis","Idieresisacute","Idieresiscyrillic","Idieresissmall","Idot","Idotaccent","Idotbelow","Iebrevecyrillic","Iecyrillic","Ifraktur","Igrave","Igravesmall","Ihookabove","Iicyrillic","Iinvertedbreve","Iishortcyrillic","Imacron","Imacroncyrillic","Imonospace","Iniarmenian","Iocyrillic","Iogonek","Iota","Iotaafrican","Iotadieresis","Iotatonos","Ismall","Istroke","Itilde","Itildebelow","Izhitsacyrillic","Izhitsadblgravecyrillic","J","Jaarmenian","Jcircle","Jcircumflex","Jecyrillic","Jheharmenian","Jmonospace","Jsmall","KBsquare","KKsquare","Kabashkircyrillic","Kacute","Kacyrillic","Kadescendercyrillic","Kahookcyrillic","Kappa","Kastrokecyrillic","Kaverticalstrokecyrillic","Kcaron","Kcedilla","Kcircle","Kcommaaccent","Kdotbelow","Keharmenian","Kenarmenian","Khacyrillic","Kheicoptic","Khook","Kjecyrillic","Klinebelow","Kmonospace","Koppacyrillic","Koppagreek","Ksicyrillic","Ksmall","LJ","Lacute","Lambda","Lcaron","Lcedilla","Lcircle","Lcircumflexbelow","Lcommaaccent","Ldot","Ldotaccent","Ldotbelow","Ldotbelowmacron","Liwnarmenian","Lj","Ljecyrillic","Llinebelow","Lmonospace","Lslash","Lslashsmall","Lsmall","MBsquare","Macron","Macronsmall","Macute","Mcircle","Mdotaccent","Mdotbelow","Menarmenian","Mmonospace","Msmall","Mturned","Mu","NJ","Nacute","Ncaron","Ncedilla","Ncircle","Ncircumflexbelow","Ncommaaccent","Ndotaccent","Ndotbelow","Nhookleft","Nineroman","Nj","Njecyrillic","Nlinebelow","Nmonospace","Nowarmenian","Nsmall","Ntilde","Ntildesmall","Nu","OE","OEsmall","Oacute","Oacutesmall","Obarredcyrillic","Obarreddieresiscyrillic","Obreve","Ocaron","Ocenteredtilde","Ocircle","Ocircumflex","Ocircumflexacute","Ocircumflexdotbelow","Ocircumflexgrave","Ocircumflexhookabove","Ocircumflexsmall","Ocircumflextilde","Ocyrillic","Odblacute","Odblgrave","Odieresis","Odieresiscyrillic","Odieresissmall","Odotbelow","Ogoneksmall","Ograve","Ogravesmall","Oharmenian","Ohm","Ohookabove","Ohorn","Ohornacute","Ohorndotbelow","Ohorngrave","Ohornhookabove","Ohorntilde","Ohungarumlaut","Oi","Oinvertedbreve","Omacron","Omacronacute","Omacrongrave","Omega","Omegacyrillic","Omegagreek","Omegaroundcyrillic","Omegatitlocyrillic","Omegatonos","Omicron","Omicrontonos","Omonospace","Oneroman","Oogonek","Oogonekmacron","Oopen","Oslash","Oslashacute","Oslashsmall","Osmall","Ostrokeacute","Otcyrillic","Otilde","Otildeacute","Otildedieresis","Otildesmall","P","Pacute","Pcircle","Pdotaccent","Pecyrillic","Peharmenian","Pemiddlehookcyrillic","Phi","Phook","Pi","Piwrarmenian","Pmonospace","Psi","Psicyrillic","Psmall","Q","Qcircle","Qmonospace","Qsmall","R","Raarmenian","Racute","Rcaron","Rcedilla","Rcircle","Rcommaaccent","Rdblgrave","Rdotaccent","Rdotbelow","Rdotbelowmacron","Reharmenian","Rfraktur","Rho","Ringsmall","Rinvertedbreve","Rlinebelow","Rmonospace","Rsmall","Rsmallinverted","Rsmallinvertedsuperior","S","SF010000","SF020000","SF030000","SF040000","SF050000","SF060000","SF070000","SF080000","SF090000","SF100000","SF110000","SF190000","SF200000","SF210000","SF220000","SF230000","SF240000","SF250000","SF260000","SF270000","SF280000","SF360000","SF370000","SF380000","SF390000","SF400000","SF410000","SF420000","SF430000","SF440000","SF450000","SF460000","SF470000","SF480000","SF490000","SF500000","SF510000","SF520000","SF530000","SF540000","Sacute","Sacutedotaccent","Sampigreek","Scaron","Scarondotaccent","Scaronsmall","Scedilla","Schwa","Schwacyrillic","Schwadieresiscyrillic","Scircle","Scircumflex","Scommaaccent","Sdotaccent","Sdotbelow","Sdotbelowdotaccent","Seharmenian","Sevenroman","Shaarmenian","Shacyrillic","Shchacyrillic","Sheicoptic","Shhacyrillic","Shimacoptic","Sigma","Sixroman","Smonospace","Softsigncyrillic","Ssmall","Stigmagreek","T","Tau","Tbar","Tcaron","Tcedilla","Tcircle","Tcircumflexbelow","Tcommaaccent","Tdotaccent","Tdotbelow","Tecyrillic","Tedescendercyrillic","Tenroman","Tetsecyrillic","Theta","Thook","Thorn","Thornsmall","Threeroman","Tildesmall","Tiwnarmenian","Tlinebelow","Tmonospace","Toarmenian","Tonefive","Tonesix","Tonetwo","Tretroflexhook","Tsecyrillic","Tshecyrillic","Tsmall","Twelveroman","Tworoman","Uacute","Uacutesmall","Ubreve","Ucaron","Ucircle","Ucircumflex","Ucircumflexbelow","Ucircumflexsmall","Ucyrillic","Udblacute","Udblgrave","Udieresis","Udieresisacute","Udieresisbelow","Udieresiscaron","Udieresiscyrillic","Udieresisgrave","Udieresismacron","Udieresissmall","Udotbelow","Ugrave","Ugravesmall","Uhookabove","Uhorn","Uhornacute","Uhorndotbelow","Uhorngrave","Uhornhookabove","Uhorntilde","Uhungarumlaut","Uhungarumlautcyrillic","Uinvertedbreve","Ukcyrillic","Umacron","Umacroncyrillic","Umacrondieresis","Umonospace","Uogonek","Upsilon","Upsilon1","Upsilonacutehooksymbolgreek","Upsilonafrican","Upsilondieresis","Upsilondieresishooksymbolgreek","Upsilonhooksymbol","Upsilontonos","Uring","Ushortcyrillic","Usmall","Ustraightcyrillic","Ustraightstrokecyrillic","Utilde","Utildeacute","Utildebelow","Vcircle","Vdotbelow","Vecyrillic","Vewarmenian","Vhook","Vmonospace","Voarmenian","Vsmall","Vtilde","W","Wacute","Wcircle","Wcircumflex","Wdieresis","Wdotaccent","Wdotbelow","Wgrave","Wmonospace","Wsmall","Xcircle","Xdieresis","Xdotaccent","Xeharmenian","Xi","Xmonospace","Xsmall","Yacute","Yacutesmall","Yatcyrillic","Ycircle","Ycircumflex","Ydieresis","Ydieresissmall","Ydotaccent","Ydotbelow","Yericyrillic","Yerudieresiscyrillic","Ygrave","Yhook","Yhookabove","Yiarmenian","Yicyrillic","Yiwnarmenian","Ymonospace","Ysmall","Ytilde","Yusbigcyrillic","Yusbigiotifiedcyrillic","Yuslittlecyrillic","Yuslittleiotifiedcyrillic","Zaarmenian","Zacute","Zcaron","Zcaronsmall","Zcircle","Zcircumflex","Zdot","Zdotaccent","Zdotbelow","Zecyrillic","Zedescendercyrillic","Zedieresiscyrillic","Zeta","Zhearmenian","Zhebrevecyrillic","Zhecyrillic","Zhedescendercyrillic","Zhedieresiscyrillic","Zlinebelow","Zmonospace","Zsmall","Zstroke","aabengali","aacute","aadeva","aagujarati","aagurmukhi","aamatragurmukhi","aarusquare","aavowelsignbengali","aavowelsigndeva","aavowelsigngujarati","abbreviationmarkarmenian","abbreviationsigndeva","abengali","abopomofo","abreve","abreveacute","abrevecyrillic","abrevedotbelow","abrevegrave","abrevehookabove","abrevetilde","acaron","acircle","acircumflex","acircumflexacute","acircumflexdotbelow","acircumflexgrave","acircumflexhookabove","acircumflextilde","acute","acutebelowcmb","acutecmb","acutecomb","acutedeva","acutelowmod","acutetonecmb","acyrillic","adblgrave","addakgurmukhi","adeva","adieresis","adieresiscyrillic","adieresismacron","adotbelow","adotmacron","ae","aeacute","aekorean","aemacron","afii00208","afii08941","afii10017","afii10018","afii10019","afii10020","afii10021","afii10022","afii10023","afii10024","afii10025","afii10026","afii10027","afii10028","afii10029","afii10030","afii10031","afii10032","afii10033","afii10034","afii10035","afii10036","afii10037","afii10038","afii10039","afii10040","afii10041","afii10042","afii10043","afii10044","afii10045","afii10046","afii10047","afii10048","afii10049","afii10050","afii10051","afii10052","afii10053","afii10054","afii10055","afii10056","afii10057","afii10058","afii10059","afii10060","afii10061","afii10062","afii10063","afii10064","afii10065","afii10066","afii10067","afii10068","afii10069","afii10070","afii10071","afii10072","afii10073","afii10074","afii10075","afii10076","afii10077","afii10078","afii10079","afii10080","afii10081","afii10082","afii10083","afii10084","afii10085","afii10086","afii10087","afii10088","afii10089","afii10090","afii10091","afii10092","afii10093","afii10094","afii10095","afii10096","afii10097","afii10098","afii10099","afii10100","afii10101","afii10102","afii10103","afii10104","afii10105","afii10106","afii10107","afii10108","afii10109","afii10110","afii10145","afii10146","afii10147","afii10148","afii10192","afii10193","afii10194","afii10195","afii10196","afii10831","afii10832","afii10846","afii299","afii300","afii301","afii57381","afii57388","afii57392","afii57393","afii57394","afii57395","afii57396","afii57397","afii57398","afii57399","afii57400","afii57401","afii57403","afii57407","afii57409","afii57410","afii57411","afii57412","afii57413","afii57414","afii57415","afii57416","afii57417","afii57418","afii57419","afii57420","afii57421","afii57422","afii57423","afii57424","afii57425","afii57426","afii57427","afii57428","afii57429","afii57430","afii57431","afii57432","afii57433","afii57434","afii57440","afii57441","afii57442","afii57443","afii57444","afii57445","afii57446","afii57448","afii57449","afii57450","afii57451","afii57452","afii57453","afii57454","afii57455","afii57456","afii57457","afii57458","afii57470","afii57505","afii57506","afii57507","afii57508","afii57509","afii57511","afii57512","afii57513","afii57514","afii57519","afii57534","afii57636","afii57645","afii57658","afii57664","afii57665","afii57666","afii57667","afii57668","afii57669","afii57670","afii57671","afii57672","afii57673","afii57674","afii57675","afii57676","afii57677","afii57678","afii57679","afii57680","afii57681","afii57682","afii57683","afii57684","afii57685","afii57686","afii57687","afii57688","afii57689","afii57690","afii57694","afii57695","afii57700","afii57705","afii57716","afii57717","afii57718","afii57723","afii57793","afii57794","afii57795","afii57796","afii57797","afii57798","afii57799","afii57800","afii57801","afii57802","afii57803","afii57804","afii57806","afii57807","afii57839","afii57841","afii57842","afii57929","afii61248","afii61289","afii61352","afii61573","afii61574","afii61575","afii61664","afii63167","afii64937","agrave","agujarati","agurmukhi","ahiragana","ahookabove","aibengali","aibopomofo","aideva","aiecyrillic","aigujarati","aigurmukhi","aimatragurmukhi","ainarabic","ainfinalarabic","aininitialarabic","ainmedialarabic","ainvertedbreve","aivowelsignbengali","aivowelsigndeva","aivowelsigngujarati","akatakana","akatakanahalfwidth","akorean","alef","alefarabic","alefdageshhebrew","aleffinalarabic","alefhamzaabovearabic","alefhamzaabovefinalarabic","alefhamzabelowarabic","alefhamzabelowfinalarabic","alefhebrew","aleflamedhebrew","alefmaddaabovearabic","alefmaddaabovefinalarabic","alefmaksuraarabic","alefmaksurafinalarabic","alefmaksurainitialarabic","alefmaksuramedialarabic","alefpatahhebrew","alefqamatshebrew","aleph","allequal","alphatonos","amacron","amonospace","ampersand","ampersandmonospace","ampersandsmall","amsquare","anbopomofo","angbopomofo","angbracketleft","angbracketright","angkhankhuthai","anglebracketleft","anglebracketleftvertical","anglebracketright","anglebracketrightvertical","angleleft","angleright","angstrom","anoteleia","anudattadeva","anusvarabengali","anusvaradeva","anusvaragujarati","aogonek","apaatosquare","aparen","apostrophearmenian","apostrophemod","apple","approaches","approxequal","approxequalorimage","approximatelyequal","araeaekorean","araeakorean","arc","arighthalfring","aring","aringacute","aringbelow","arrowboth","arrowdashdown","arrowdashleft","arrowdashright","arrowdashup","arrowdblboth","arrowdbldown","arrowdblleft","arrowdblright","arrowdblup","arrowdown","arrowdownleft","arrowdownright","arrowdownwhite","arrowheaddownmod","arrowheadleftmod","arrowheadrightmod","arrowheadupmod","arrowhorizex","arrowleft","arrowleftdbl","arrowleftdblstroke","arrowleftoverright","arrowleftwhite","arrowright","arrowrightdblstroke","arrowrightheavy","arrowrightoverleft","arrowrightwhite","arrowtableft","arrowtabright","arrowup","arrowupdn","arrowupdnbse","arrowupdownbase","arrowupleft","arrowupleftofdown","arrowupright","arrowupwhite","arrowvertex","asciicircum","asciicircummonospace","asciitilde","asciitildemonospace","ascript","ascriptturned","asmallhiragana","asmallkatakana","asmallkatakanahalfwidth","asterisk","asteriskaltonearabic","asteriskarabic","asteriskmath","asteriskmonospace","asterisksmall","asterism","asuperior","asymptoticallyequal","atilde","atmonospace","atsmall","aturned","aubengali","aubopomofo","audeva","augujarati","augurmukhi","aulengthmarkbengali","aumatragurmukhi","auvowelsignbengali","auvowelsigndeva","auvowelsigngujarati","avagrahadeva","aybarmenian","ayin","ayinaltonehebrew","ayinhebrew","babengali","backslash","backslashmonospace","badeva","bagujarati","bagurmukhi","bahiragana","bahtthai","bakatakana","bar","barmonospace","bbopomofo","bcircle","bdotaccent","bdotbelow","beamedsixteenthnotes","because","becyrillic","beharabic","behfinalarabic","behinitialarabic","behiragana","behmedialarabic","behmeeminitialarabic","behmeemisolatedarabic","behnoonfinalarabic","bekatakana","benarmenian","bet","betasymbolgreek","betdagesh","betdageshhebrew","bethebrew","betrafehebrew","bhabengali","bhadeva","bhagujarati","bhagurmukhi","bhook","bihiragana","bikatakana","bilabialclick","bindigurmukhi","birusquare","blackcircle","blackdiamond","blackdownpointingtriangle","blackleftpointingpointer","blackleftpointingtriangle","blacklenticularbracketleft","blacklenticularbracketleftvertical","blacklenticularbracketright","blacklenticularbracketrightvertical","blacklowerlefttriangle","blacklowerrighttriangle","blackrectangle","blackrightpointingpointer","blackrightpointingtriangle","blacksmallsquare","blacksmilingface","blacksquare","blackstar","blackupperlefttriangle","blackupperrighttriangle","blackuppointingsmalltriangle","blackuppointingtriangle","blank","blinebelow","bmonospace","bobaimaithai","bohiragana","bokatakana","bparen","bqsquare","braceex","braceleft","braceleftbt","braceleftmid","braceleftmonospace","braceleftsmall","bracelefttp","braceleftvertical","braceright","bracerightbt","bracerightmid","bracerightmonospace","bracerightsmall","bracerighttp","bracerightvertical","bracketleft","bracketleftbt","bracketleftex","bracketleftmonospace","bracketlefttp","bracketright","bracketrightbt","bracketrightex","bracketrightmonospace","bracketrighttp","breve","brevebelowcmb","brevecmb","breveinvertedbelowcmb","breveinvertedcmb","breveinverteddoublecmb","bridgebelowcmb","bridgeinvertedbelowcmb","brokenbar","bstroke","bsuperior","btopbar","buhiragana","bukatakana","bullet","bulletinverse","bulletoperator","bullseye","caarmenian","cabengali","cacute","cadeva","cagujarati","cagurmukhi","calsquare","candrabindubengali","candrabinducmb","candrabindudeva","candrabindugujarati","capslock","careof","caron","caronbelowcmb","caroncmb","carriagereturn","cbopomofo","ccaron","ccedilla","ccedillaacute","ccircle","ccircumflex","ccurl","cdot","cdotaccent","cdsquare","cedilla","cedillacmb","cent","centigrade","centinferior","centmonospace","centoldstyle","centsuperior","chaarmenian","chabengali","chadeva","chagujarati","chagurmukhi","chbopomofo","cheabkhasiancyrillic","checkmark","checyrillic","chedescenderabkhasiancyrillic","chedescendercyrillic","chedieresiscyrillic","cheharmenian","chekhakassiancyrillic","cheverticalstrokecyrillic","chi","chieuchacirclekorean","chieuchaparenkorean","chieuchcirclekorean","chieuchkorean","chieuchparenkorean","chochangthai","chochanthai","chochingthai","chochoethai","chook","cieucacirclekorean","cieucaparenkorean","cieuccirclekorean","cieuckorean","cieucparenkorean","cieucuparenkorean","circle","circlecopyrt","circlemultiply","circleot","circleplus","circlepostalmark","circlewithlefthalfblack","circlewithrighthalfblack","circumflex","circumflexbelowcmb","circumflexcmb","clickalveolar","clickdental","clicklateral","clickretroflex","club","clubsuitblack","clubsuitwhite","cmcubedsquare","cmonospace","cmsquaredsquare","coarmenian","colon","colonmonetary","colonmonospace","colonsign","colonsmall","colontriangularhalfmod","colontriangularmod","comma","commaabovecmb","commaaboverightcmb","commaaccent","commaarabic","commaarmenian","commainferior","commamonospace","commareversedabovecmb","commareversedmod","commasmall","commasuperior","commaturnedabovecmb","commaturnedmod","compass","congruent","contourintegral","control","controlACK","controlBEL","controlBS","controlCAN","controlCR","controlDC1","controlDC2","controlDC3","controlDC4","controlDEL","controlDLE","controlEM","controlENQ","controlEOT","controlESC","controlETB","controlETX","controlFF","controlFS","controlGS","controlHT","controlLF","controlNAK","controlNULL","controlRS","controlSI","controlSO","controlSOT","controlSTX","controlSUB","controlSYN","controlUS","controlVT","copyright","copyrightsans","copyrightserif","cornerbracketleft","cornerbracketlefthalfwidth","cornerbracketleftvertical","cornerbracketright","cornerbracketrighthalfwidth","cornerbracketrightvertical","corporationsquare","cosquare","coverkgsquare","cparen","cruzeiro","cstretched","curlyand","curlyor","currency","cyrBreve","cyrFlex","cyrbreve","cyrflex","daarmenian","dabengali","dadarabic","dadeva","dadfinalarabic","dadinitialarabic","dadmedialarabic","dagesh","dageshhebrew","dagger","daggerdbl","dagujarati","dagurmukhi","dahiragana","dakatakana","dalarabic","dalet","daletdagesh","daletdageshhebrew","dalethebrew","dalfinalarabic","dammaarabic","dammalowarabic","dammatanaltonearabic","dammatanarabic","danda","dargahebrew","dargalefthebrew","dasiapneumatacyrilliccmb","dblGrave","dblanglebracketleft","dblanglebracketleftvertical","dblanglebracketright","dblanglebracketrightvertical","dblarchinvertedbelowcmb","dblarrowleft","dblarrowright","dbldanda","dblgrave","dblgravecmb","dblintegral","dbllowline","dbllowlinecmb","dbloverlinecmb","dblprimemod","dblverticalbar","dblverticallineabovecmb","dbopomofo","dbsquare","dcaron","dcedilla","dcircle","dcircumflexbelow","dcroat","ddabengali","ddadeva","ddagujarati","ddagurmukhi","ddalarabic","ddalfinalarabic","dddhadeva","ddhabengali","ddhadeva","ddhagujarati","ddhagurmukhi","ddotaccent","ddotbelow","decimalseparatorarabic","decimalseparatorpersian","decyrillic","degree","dehihebrew","dehiragana","deicoptic","dekatakana","deleteleft","deleteright","deltaturned","denominatorminusonenumeratorbengali","dezh","dhabengali","dhadeva","dhagujarati","dhagurmukhi","dhook","dialytikatonos","dialytikatonoscmb","diamond","diamondsuitwhite","dieresis","dieresisacute","dieresisbelowcmb","dieresiscmb","dieresisgrave","dieresistonos","dihiragana","dikatakana","dittomark","divide","divides","divisionslash","djecyrillic","dkshade","dlinebelow","dlsquare","dmacron","dmonospace","dnblock","dochadathai","dodekthai","dohiragana","dokatakana","dollar","dollarinferior","dollarmonospace","dollaroldstyle","dollarsmall","dollarsuperior","dong","dorusquare","dotaccent","dotaccentcmb","dotbelowcmb","dotbelowcomb","dotkatakana","dotlessi","dotlessj","dotlessjstrokehook","dotmath","dottedcircle","doubleyodpatah","doubleyodpatahhebrew","downtackbelowcmb","downtackmod","dparen","dsuperior","dtail","dtopbar","duhiragana","dukatakana","dz","dzaltone","dzcaron","dzcurl","dzeabkhasiancyrillic","dzecyrillic","dzhecyrillic","eacute","earth","ebengali","ebopomofo","ebreve","ecandradeva","ecandragujarati","ecandravowelsigndeva","ecandravowelsigngujarati","ecaron","ecedillabreve","echarmenian","echyiwnarmenian","ecircle","ecircumflex","ecircumflexacute","ecircumflexbelow","ecircumflexdotbelow","ecircumflexgrave","ecircumflexhookabove","ecircumflextilde","ecyrillic","edblgrave","edeva","edieresis","edot","edotaccent","edotbelow","eegurmukhi","eematragurmukhi","efcyrillic","egrave","egujarati","eharmenian","ehbopomofo","ehiragana","ehookabove","eibopomofo","eight","eightarabic","eightbengali","eightcircle","eightcircleinversesansserif","eightdeva","eighteencircle","eighteenparen","eighteenperiod","eightgujarati","eightgurmukhi","eighthackarabic","eighthangzhou","eighthnotebeamed","eightideographicparen","eightinferior","eightmonospace","eightoldstyle","eightparen","eightperiod","eightpersian","eightroman","eightsuperior","eightthai","einvertedbreve","eiotifiedcyrillic","ekatakana","ekatakanahalfwidth","ekonkargurmukhi","ekorean","elcyrillic","elevencircle","elevenparen","elevenperiod","elevenroman","ellipsis","ellipsisvertical","emacron","emacronacute","emacrongrave","emcyrillic","emdash","emdashvertical","emonospace","emphasismarkarmenian","emptyset","enbopomofo","encyrillic","endash","endashvertical","endescendercyrillic","eng","engbopomofo","enghecyrillic","enhookcyrillic","enspace","eogonek","eokorean","eopen","eopenclosed","eopenreversed","eopenreversedclosed","eopenreversedhook","eparen","epsilontonos","equal","equalmonospace","equalsmall","equalsuperior","equivalence","erbopomofo","ercyrillic","ereversed","ereversedcyrillic","escyrillic","esdescendercyrillic","esh","eshcurl","eshortdeva","eshortvowelsigndeva","eshreversedloop","eshsquatreversed","esmallhiragana","esmallkatakana","esmallkatakanahalfwidth","estimated","esuperior","eta","etarmenian","etatonos","eth","etilde","etildebelow","etnahtafoukhhebrew","etnahtafoukhlefthebrew","etnahtahebrew","etnahtalefthebrew","eturned","eukorean","euro","evowelsignbengali","evowelsigndeva","evowelsigngujarati","exclam","exclamarmenian","exclamdbl","exclamdown","exclamdownsmall","exclammonospace","exclamsmall","existential","ezh","ezhcaron","ezhcurl","ezhreversed","ezhtail","f","fadeva","fagurmukhi","fahrenheit","fathaarabic","fathalowarabic","fathatanarabic","fbopomofo","fcircle","fdotaccent","feharabic","feharmenian","fehfinalarabic","fehinitialarabic","fehmedialarabic","feicoptic","female","ff","f_f","ffi","f_f_i","ffl","f_f_l","fi","f_i","fifteencircle","fifteenparen","fifteenperiod","figuredash","filledbox","filledrect","finalkaf","finalkafdagesh","finalkafdageshhebrew","finalkafhebrew","finalmem","finalmemhebrew","finalnun","finalnunhebrew","finalpe","finalpehebrew","finaltsadi","finaltsadihebrew","firsttonechinese","fisheye","fitacyrillic","five","fivearabic","fivebengali","fivecircle","fivecircleinversesansserif","fivedeva","fiveeighths","fivegujarati","fivegurmukhi","fivehackarabic","fivehangzhou","fiveideographicparen","fiveinferior","fivemonospace","fiveoldstyle","fiveparen","fiveperiod","fivepersian","fiveroman","fivesuperior","fivethai","fl","f_l","florin","fmonospace","fmsquare","fofanthai","fofathai","fongmanthai","forall","four","fourarabic","fourbengali","fourcircle","fourcircleinversesansserif","fourdeva","fourgujarati","fourgurmukhi","fourhackarabic","fourhangzhou","fourideographicparen","fourinferior","fourmonospace","fournumeratorbengali","fouroldstyle","fourparen","fourperiod","fourpersian","fourroman","foursuperior","fourteencircle","fourteenparen","fourteenperiod","fourthai","fourthtonechinese","fparen","fraction","franc","gabengali","gacute","gadeva","gafarabic","gaffinalarabic","gafinitialarabic","gafmedialarabic","gagujarati","gagurmukhi","gahiragana","gakatakana","gammalatinsmall","gammasuperior","gangiacoptic","gbopomofo","gbreve","gcaron","gcedilla","gcircle","gcircumflex","gcommaaccent","gdot","gdotaccent","gecyrillic","gehiragana","gekatakana","geometricallyequal","gereshaccenthebrew","gereshhebrew","gereshmuqdamhebrew","germandbls","gershayimaccenthebrew","gershayimhebrew","getamark","ghabengali","ghadarmenian","ghadeva","ghagujarati","ghagurmukhi","ghainarabic","ghainfinalarabic","ghaininitialarabic","ghainmedialarabic","ghemiddlehookcyrillic","ghestrokecyrillic","gheupturncyrillic","ghhadeva","ghhagurmukhi","ghook","ghzsquare","gihiragana","gikatakana","gimarmenian","gimel","gimeldagesh","gimeldageshhebrew","gimelhebrew","gjecyrillic","glottalinvertedstroke","glottalstop","glottalstopinverted","glottalstopmod","glottalstopreversed","glottalstopreversedmod","glottalstopreversedsuperior","glottalstopstroke","glottalstopstrokereversed","gmacron","gmonospace","gohiragana","gokatakana","gparen","gpasquare","gradient","grave","gravebelowcmb","gravecmb","gravecomb","gravedeva","gravelowmod","gravemonospace","gravetonecmb","greater","greaterequal","greaterequalorless","greatermonospace","greaterorequivalent","greaterorless","greateroverequal","greatersmall","gscript","gstroke","guhiragana","guillemotleft","guillemotright","guilsinglleft","guilsinglright","gukatakana","guramusquare","gysquare","haabkhasiancyrillic","haaltonearabic","habengali","hadescendercyrillic","hadeva","hagujarati","hagurmukhi","haharabic","hahfinalarabic","hahinitialarabic","hahiragana","hahmedialarabic","haitusquare","hakatakana","hakatakanahalfwidth","halantgurmukhi","hamzaarabic","hamzalowarabic","hangulfiller","hardsigncyrillic","harpoonleftbarbup","harpoonrightbarbup","hasquare","hatafpatah","hatafpatah16","hatafpatah23","hatafpatah2f","hatafpatahhebrew","hatafpatahnarrowhebrew","hatafpatahquarterhebrew","hatafpatahwidehebrew","hatafqamats","hatafqamats1b","hatafqamats28","hatafqamats34","hatafqamatshebrew","hatafqamatsnarrowhebrew","hatafqamatsquarterhebrew","hatafqamatswidehebrew","hatafsegol","hatafsegol17","hatafsegol24","hatafsegol30","hatafsegolhebrew","hatafsegolnarrowhebrew","hatafsegolquarterhebrew","hatafsegolwidehebrew","hbar","hbopomofo","hbrevebelow","hcedilla","hcircle","hcircumflex","hdieresis","hdotaccent","hdotbelow","he","heart","heartsuitblack","heartsuitwhite","hedagesh","hedageshhebrew","hehaltonearabic","heharabic","hehebrew","hehfinalaltonearabic","hehfinalalttwoarabic","hehfinalarabic","hehhamzaabovefinalarabic","hehhamzaaboveisolatedarabic","hehinitialaltonearabic","hehinitialarabic","hehiragana","hehmedialaltonearabic","hehmedialarabic","heiseierasquare","hekatakana","hekatakanahalfwidth","hekutaarusquare","henghook","herutusquare","het","hethebrew","hhook","hhooksuperior","hieuhacirclekorean","hieuhaparenkorean","hieuhcirclekorean","hieuhkorean","hieuhparenkorean","hihiragana","hikatakana","hikatakanahalfwidth","hiriq","hiriq14","hiriq21","hiriq2d","hiriqhebrew","hiriqnarrowhebrew","hiriqquarterhebrew","hiriqwidehebrew","hlinebelow","hmonospace","hoarmenian","hohipthai","hohiragana","hokatakana","hokatakanahalfwidth","holam","holam19","holam26","holam32","holamhebrew","holamnarrowhebrew","holamquarterhebrew","holamwidehebrew","honokhukthai","hookabovecomb","hookcmb","hookpalatalizedbelowcmb","hookretroflexbelowcmb","hoonsquare","horicoptic","horizontalbar","horncmb","hotsprings","house","hparen","hsuperior","hturned","huhiragana","huiitosquare","hukatakana","hukatakanahalfwidth","hungarumlaut","hungarumlautcmb","hv","hyphen","hypheninferior","hyphenmonospace","hyphensmall","hyphensuperior","hyphentwo","iacute","iacyrillic","ibengali","ibopomofo","ibreve","icaron","icircle","icircumflex","icyrillic","idblgrave","ideographearthcircle","ideographfirecircle","ideographicallianceparen","ideographiccallparen","ideographiccentrecircle","ideographicclose","ideographiccomma","ideographiccommaleft","ideographiccongratulationparen","ideographiccorrectcircle","ideographicearthparen","ideographicenterpriseparen","ideographicexcellentcircle","ideographicfestivalparen","ideographicfinancialcircle","ideographicfinancialparen","ideographicfireparen","ideographichaveparen","ideographichighcircle","ideographiciterationmark","ideographiclaborcircle","ideographiclaborparen","ideographicleftcircle","ideographiclowcircle","ideographicmedicinecircle","ideographicmetalparen","ideographicmoonparen","ideographicnameparen","ideographicperiod","ideographicprintcircle","ideographicreachparen","ideographicrepresentparen","ideographicresourceparen","ideographicrightcircle","ideographicsecretcircle","ideographicselfparen","ideographicsocietyparen","ideographicspace","ideographicspecialparen","ideographicstockparen","ideographicstudyparen","ideographicsunparen","ideographicsuperviseparen","ideographicwaterparen","ideographicwoodparen","ideographiczero","ideographmetalcircle","ideographmooncircle","ideographnamecircle","ideographsuncircle","ideographwatercircle","ideographwoodcircle","ideva","idieresis","idieresisacute","idieresiscyrillic","idotbelow","iebrevecyrillic","iecyrillic","ieungacirclekorean","ieungaparenkorean","ieungcirclekorean","ieungkorean","ieungparenkorean","igrave","igujarati","igurmukhi","ihiragana","ihookabove","iibengali","iicyrillic","iideva","iigujarati","iigurmukhi","iimatragurmukhi","iinvertedbreve","iishortcyrillic","iivowelsignbengali","iivowelsigndeva","iivowelsigngujarati","ij","ikatakana","ikatakanahalfwidth","ikorean","ilde","iluyhebrew","imacron","imacroncyrillic","imageorapproximatelyequal","imatragurmukhi","imonospace","increment","infinity","iniarmenian","integral","integralbottom","integralbt","integralex","integraltop","integraltp","intersection","intisquare","invbullet","invcircle","invsmileface","iocyrillic","iogonek","iota","iotadieresis","iotadieresistonos","iotalatin","iotatonos","iparen","irigurmukhi","ismallhiragana","ismallkatakana","ismallkatakanahalfwidth","issharbengali","istroke","isuperior","iterationhiragana","iterationkatakana","itilde","itildebelow","iubopomofo","iucyrillic","ivowelsignbengali","ivowelsigndeva","ivowelsigngujarati","izhitsacyrillic","izhitsadblgravecyrillic","jaarmenian","jabengali","jadeva","jagujarati","jagurmukhi","jbopomofo","jcaron","jcircle","jcircumflex","jcrossedtail","jdotlessstroke","jecyrillic","jeemarabic","jeemfinalarabic","jeeminitialarabic","jeemmedialarabic","jeharabic","jehfinalarabic","jhabengali","jhadeva","jhagujarati","jhagurmukhi","jheharmenian","jis","jmonospace","jparen","jsuperior","kabashkircyrillic","kabengali","kacute","kacyrillic","kadescendercyrillic","kadeva","kaf","kafarabic","kafdagesh","kafdageshhebrew","kaffinalarabic","kafhebrew","kafinitialarabic","kafmedialarabic","kafrafehebrew","kagujarati","kagurmukhi","kahiragana","kahookcyrillic","kakatakana","kakatakanahalfwidth","kappa","kappasymbolgreek","kapyeounmieumkorean","kapyeounphieuphkorean","kapyeounpieupkorean","kapyeounssangpieupkorean","karoriisquare","kashidaautoarabic","kashidaautonosidebearingarabic","kasmallkatakana","kasquare","kasraarabic","kasratanarabic","kastrokecyrillic","katahiraprolongmarkhalfwidth","kaverticalstrokecyrillic","kbopomofo","kcalsquare","kcaron","kcedilla","kcircle","kcommaaccent","kdotbelow","keharmenian","kehiragana","kekatakana","kekatakanahalfwidth","kenarmenian","kesmallkatakana","kgreenlandic","khabengali","khacyrillic","khadeva","khagujarati","khagurmukhi","khaharabic","khahfinalarabic","khahinitialarabic","khahmedialarabic","kheicoptic","khhadeva","khhagurmukhi","khieukhacirclekorean","khieukhaparenkorean","khieukhcirclekorean","khieukhkorean","khieukhparenkorean","khokhaithai","khokhonthai","khokhuatthai","khokhwaithai","khomutthai","khook","khorakhangthai","khzsquare","kihiragana","kikatakana","kikatakanahalfwidth","kiroguramusquare","kiromeetorusquare","kirosquare","kiyeokacirclekorean","kiyeokaparenkorean","kiyeokcirclekorean","kiyeokkorean","kiyeokparenkorean","kiyeoksioskorean","kjecyrillic","klinebelow","klsquare","kmcubedsquare","kmonospace","kmsquaredsquare","kohiragana","kohmsquare","kokaithai","kokatakana","kokatakanahalfwidth","kooposquare","koppacyrillic","koreanstandardsymbol","koroniscmb","kparen","kpasquare","ksicyrillic","ktsquare","kturned","kuhiragana","kukatakana","kukatakanahalfwidth","kvsquare","kwsquare","labengali","lacute","ladeva","lagujarati","lagurmukhi","lakkhangyaothai","lamaleffinalarabic","lamalefhamzaabovefinalarabic","lamalefhamzaaboveisolatedarabic","lamalefhamzabelowfinalarabic","lamalefhamzabelowisolatedarabic","lamalefisolatedarabic","lamalefmaddaabovefinalarabic","lamalefmaddaaboveisolatedarabic","lamarabic","lambda","lambdastroke","lamed","lameddagesh","lameddageshhebrew","lamedhebrew","lamfinalarabic","lamhahinitialarabic","laminitialarabic","lamjeeminitialarabic","lamkhahinitialarabic","lamlamhehisolatedarabic","lammedialarabic","lammeemhahinitialarabic","lammeeminitialarabic","largecircle","lbar","lbelt","lbopomofo","lcaron","lcedilla","lcircle","lcircumflexbelow","lcommaaccent","ldot","ldotaccent","ldotbelow","ldotbelowmacron","leftangleabovecmb","lefttackbelowcmb","less","lessequal","lessequalorgreater","lessmonospace","lessorequivalent","lessorgreater","lessoverequal","lesssmall","lezh","lfblock","lhookretroflex","lira","liwnarmenian","lj","ljecyrillic","lladeva","llagujarati","llinebelow","llladeva","llvocalicbengali","llvocalicdeva","llvocalicvowelsignbengali","llvocalicvowelsigndeva","lmiddletilde","lmonospace","lmsquare","lochulathai","logicaland","logicalnot","logicalnotreversed","logicalor","lolingthai","longs","lowlinecenterline","lowlinecmb","lowlinedashed","lozenge","lparen","lslash","lsquare","lsuperior","ltshade","luthai","lvocalicbengali","lvocalicdeva","lvocalicvowelsignbengali","lvocalicvowelsigndeva","lxsquare","mabengali","macron","macronbelowcmb","macroncmb","macronlowmod","macronmonospace","macute","madeva","magujarati","magurmukhi","mahapakhhebrew","mahapakhlefthebrew","mahiragana","maichattawalowleftthai","maichattawalowrightthai","maichattawathai","maichattawaupperleftthai","maieklowleftthai","maieklowrightthai","maiekthai","maiekupperleftthai","maihanakatleftthai","maihanakatthai","maitaikhuleftthai","maitaikhuthai","maitholowleftthai","maitholowrightthai","maithothai","maithoupperleftthai","maitrilowleftthai","maitrilowrightthai","maitrithai","maitriupperleftthai","maiyamokthai","makatakana","makatakanahalfwidth","male","mansyonsquare","maqafhebrew","mars","masoracirclehebrew","masquare","mbopomofo","mbsquare","mcircle","mcubedsquare","mdotaccent","mdotbelow","meemarabic","meemfinalarabic","meeminitialarabic","meemmedialarabic","meemmeeminitialarabic","meemmeemisolatedarabic","meetorusquare","mehiragana","meizierasquare","mekatakana","mekatakanahalfwidth","mem","memdagesh","memdageshhebrew","memhebrew","menarmenian","merkhahebrew","merkhakefulahebrew","merkhakefulalefthebrew","merkhalefthebrew","mhook","mhzsquare","middledotkatakanahalfwidth","middot","mieumacirclekorean","mieumaparenkorean","mieumcirclekorean","mieumkorean","mieumpansioskorean","mieumparenkorean","mieumpieupkorean","mieumsioskorean","mihiragana","mikatakana","mikatakanahalfwidth","minus","minusbelowcmb","minuscircle","minusmod","minusplus","minute","miribaarusquare","mirisquare","mlonglegturned","mlsquare","mmcubedsquare","mmonospace","mmsquaredsquare","mohiragana","mohmsquare","mokatakana","mokatakanahalfwidth","molsquare","momathai","moverssquare","moverssquaredsquare","mparen","mpasquare","mssquare","msuperior","mturned","mu1","muasquare","muchgreater","muchless","mufsquare","mugreek","mugsquare","muhiragana","mukatakana","mukatakanahalfwidth","mulsquare","multiply","mumsquare","munahhebrew","munahlefthebrew","musicalnote","musicalnotedbl","musicflatsign","musicsharpsign","mussquare","muvsquare","muwsquare","mvmegasquare","mvsquare","mwmegasquare","mwsquare","nabengali","nabla","nacute","nadeva","nagujarati","nagurmukhi","nahiragana","nakatakana","nakatakanahalfwidth","napostrophe","nasquare","nbopomofo","nbspace","ncaron","ncedilla","ncircle","ncircumflexbelow","ncommaaccent","ndotaccent","ndotbelow","nehiragana","nekatakana","nekatakanahalfwidth","newsheqelsign","nfsquare","ngabengali","ngadeva","ngagujarati","ngagurmukhi","ngonguthai","nhiragana","nhookleft","nhookretroflex","nieunacirclekorean","nieunaparenkorean","nieuncieuckorean","nieuncirclekorean","nieunhieuhkorean","nieunkorean","nieunpansioskorean","nieunparenkorean","nieunsioskorean","nieuntikeutkorean","nihiragana","nikatakana","nikatakanahalfwidth","nikhahitleftthai","nikhahitthai","nine","ninearabic","ninebengali","ninecircle","ninecircleinversesansserif","ninedeva","ninegujarati","ninegurmukhi","ninehackarabic","ninehangzhou","nineideographicparen","nineinferior","ninemonospace","nineoldstyle","nineparen","nineperiod","ninepersian","nineroman","ninesuperior","nineteencircle","nineteenparen","nineteenperiod","ninethai","nj","njecyrillic","nkatakana","nkatakanahalfwidth","nlegrightlong","nlinebelow","nmonospace","nmsquare","nnabengali","nnadeva","nnagujarati","nnagurmukhi","nnnadeva","nohiragana","nokatakana","nokatakanahalfwidth","nonbreakingspace","nonenthai","nonuthai","noonarabic","noonfinalarabic","noonghunnaarabic","noonghunnafinalarabic","nooninitialarabic","noonjeeminitialarabic","noonjeemisolatedarabic","noonmedialarabic","noonmeeminitialarabic","noonmeemisolatedarabic","noonnoonfinalarabic","notcontains","notelement","notelementof","notequal","notgreater","notgreaternorequal","notgreaternorless","notidentical","notless","notlessnorequal","notparallel","notprecedes","notsubset","notsucceeds","notsuperset","nowarmenian","nparen","nssquare","nsuperior","ntilde","nu","nuhiragana","nukatakana","nukatakanahalfwidth","nuktabengali","nuktadeva","nuktagujarati","nuktagurmukhi","numbersign","numbersignmonospace","numbersignsmall","numeralsigngreek","numeralsignlowergreek","numero","nun","nundagesh","nundageshhebrew","nunhebrew","nvsquare","nwsquare","nyabengali","nyadeva","nyagujarati","nyagurmukhi","o","oacute","oangthai","obarred","obarredcyrillic","obarreddieresiscyrillic","obengali","obopomofo","obreve","ocandradeva","ocandragujarati","ocandravowelsigndeva","ocandravowelsigngujarati","ocaron","ocircle","ocircumflex","ocircumflexacute","ocircumflexdotbelow","ocircumflexgrave","ocircumflexhookabove","ocircumflextilde","ocyrillic","odblacute","odblgrave","odeva","odieresis","odieresiscyrillic","odotbelow","oe","oekorean","ogonek","ogonekcmb","ograve","ogujarati","oharmenian","ohiragana","ohookabove","ohorn","ohornacute","ohorndotbelow","ohorngrave","ohornhookabove","ohorntilde","ohungarumlaut","oi","oinvertedbreve","okatakana","okatakanahalfwidth","okorean","olehebrew","omacron","omacronacute","omacrongrave","omdeva","omega","omega1","omegacyrillic","omegalatinclosed","omegaroundcyrillic","omegatitlocyrillic","omegatonos","omgujarati","omicron","omicrontonos","omonospace","one","onearabic","onebengali","onecircle","onecircleinversesansserif","onedeva","onedotenleader","oneeighth","onefitted","onegujarati","onegurmukhi","onehackarabic","onehalf","onehangzhou","oneideographicparen","oneinferior","onemonospace","onenumeratorbengali","oneoldstyle","oneparen","oneperiod","onepersian","onequarter","oneroman","onesuperior","onethai","onethird","oogonek","oogonekmacron","oogurmukhi","oomatragurmukhi","oopen","oparen","openbullet","option","ordfeminine","ordmasculine","orthogonal","oshortdeva","oshortvowelsigndeva","oslash","oslashacute","osmallhiragana","osmallkatakana","osmallkatakanahalfwidth","ostrokeacute","osuperior","otcyrillic","otilde","otildeacute","otildedieresis","oubopomofo","overline","overlinecenterline","overlinecmb","overlinedashed","overlinedblwavy","overlinewavy","overscore","ovowelsignbengali","ovowelsigndeva","ovowelsigngujarati","paampssquare","paasentosquare","pabengali","pacute","padeva","pagedown","pageup","pagujarati","pagurmukhi","pahiragana","paiyannoithai","pakatakana","palatalizationcyrilliccmb","palochkacyrillic","pansioskorean","paragraph","parallel","parenleft","parenleftaltonearabic","parenleftbt","parenleftex","parenleftinferior","parenleftmonospace","parenleftsmall","parenleftsuperior","parenlefttp","parenleftvertical","parenright","parenrightaltonearabic","parenrightbt","parenrightex","parenrightinferior","parenrightmonospace","parenrightsmall","parenrightsuperior","parenrighttp","parenrightvertical","partialdiff","paseqhebrew","pashtahebrew","pasquare","patah","patah11","patah1d","patah2a","patahhebrew","patahnarrowhebrew","patahquarterhebrew","patahwidehebrew","pazerhebrew","pbopomofo","pcircle","pdotaccent","pe","pecyrillic","pedagesh","pedageshhebrew","peezisquare","pefinaldageshhebrew","peharabic","peharmenian","pehebrew","pehfinalarabic","pehinitialarabic","pehiragana","pehmedialarabic","pekatakana","pemiddlehookcyrillic","perafehebrew","percent","percentarabic","percentmonospace","percentsmall","period","periodarmenian","periodcentered","periodhalfwidth","periodinferior","periodmonospace","periodsmall","periodsuperior","perispomenigreekcmb","perpendicular","perthousand","peseta","pfsquare","phabengali","phadeva","phagujarati","phagurmukhi","phi","phi1","phieuphacirclekorean","phieuphaparenkorean","phieuphcirclekorean","phieuphkorean","phieuphparenkorean","philatin","phinthuthai","phisymbolgreek","phook","phophanthai","phophungthai","phosamphaothai","pieupacirclekorean","pieupaparenkorean","pieupcieuckorean","pieupcirclekorean","pieupkiyeokkorean","pieupkorean","pieupparenkorean","pieupsioskiyeokkorean","pieupsioskorean","pieupsiostikeutkorean","pieupthieuthkorean","pieuptikeutkorean","pihiragana","pikatakana","pisymbolgreek","piwrarmenian","planckover2pi","planckover2pi1","plus","plusbelowcmb","pluscircle","plusminus","plusmod","plusmonospace","plussmall","plussuperior","pmonospace","pmsquare","pohiragana","pointingindexdownwhite","pointingindexleftwhite","pointingindexrightwhite","pointingindexupwhite","pokatakana","poplathai","postalmark","postalmarkface","pparen","precedes","prescription","primemod","primereversed","product","projective","prolongedkana","propellor","propersubset","propersuperset","proportion","proportional","psi","psicyrillic","psilipneumatacyrilliccmb","pssquare","puhiragana","pukatakana","pvsquare","pwsquare","qadeva","qadmahebrew","qafarabic","qaffinalarabic","qafinitialarabic","qafmedialarabic","qamats","qamats10","qamats1a","qamats1c","qamats27","qamats29","qamats33","qamatsde","qamatshebrew","qamatsnarrowhebrew","qamatsqatanhebrew","qamatsqatannarrowhebrew","qamatsqatanquarterhebrew","qamatsqatanwidehebrew","qamatsquarterhebrew","qamatswidehebrew","qarneyparahebrew","qbopomofo","qcircle","qhook","qmonospace","qof","qofdagesh","qofdageshhebrew","qofhebrew","qparen","quarternote","qubuts","qubuts18","qubuts25","qubuts31","qubutshebrew","qubutsnarrowhebrew","qubutsquarterhebrew","qubutswidehebrew","question","questionarabic","questionarmenian","questiondown","questiondownsmall","questiongreek","questionmonospace","questionsmall","quotedbl","quotedblbase","quotedblleft","quotedblmonospace","quotedblprime","quotedblprimereversed","quotedblright","quoteleft","quoteleftreversed","quotereversed","quoteright","quoterightn","quotesinglbase","quotesingle","quotesinglemonospace","raarmenian","rabengali","racute","radeva","radical","radicalex","radoverssquare","radoverssquaredsquare","radsquare","rafe","rafehebrew","ragujarati","ragurmukhi","rahiragana","rakatakana","rakatakanahalfwidth","ralowerdiagonalbengali","ramiddlediagonalbengali","ramshorn","ratio","rbopomofo","rcaron","rcedilla","rcircle","rcommaaccent","rdblgrave","rdotaccent","rdotbelow","rdotbelowmacron","referencemark","reflexsubset","reflexsuperset","registered","registersans","registerserif","reharabic","reharmenian","rehfinalarabic","rehiragana","rekatakana","rekatakanahalfwidth","resh","reshdageshhebrew","reshhebrew","reversedtilde","reviahebrew","reviamugrashhebrew","revlogicalnot","rfishhook","rfishhookreversed","rhabengali","rhadeva","rho","rhook","rhookturned","rhookturnedsuperior","rhosymbolgreek","rhotichookmod","rieulacirclekorean","rieulaparenkorean","rieulcirclekorean","rieulhieuhkorean","rieulkiyeokkorean","rieulkiyeoksioskorean","rieulkorean","rieulmieumkorean","rieulpansioskorean","rieulparenkorean","rieulphieuphkorean","rieulpieupkorean","rieulpieupsioskorean","rieulsioskorean","rieulthieuthkorean","rieultikeutkorean","rieulyeorinhieuhkorean","rightangle","righttackbelowcmb","righttriangle","rihiragana","rikatakana","rikatakanahalfwidth","ring","ringbelowcmb","ringcmb","ringhalfleft","ringhalfleftarmenian","ringhalfleftbelowcmb","ringhalfleftcentered","ringhalfright","ringhalfrightbelowcmb","ringhalfrightcentered","rinvertedbreve","rittorusquare","rlinebelow","rlongleg","rlonglegturned","rmonospace","rohiragana","rokatakana","rokatakanahalfwidth","roruathai","rparen","rrabengali","rradeva","rragurmukhi","rreharabic","rrehfinalarabic","rrvocalicbengali","rrvocalicdeva","rrvocalicgujarati","rrvocalicvowelsignbengali","rrvocalicvowelsigndeva","rrvocalicvowelsigngujarati","rsuperior","rtblock","rturned","rturnedsuperior","ruhiragana","rukatakana","rukatakanahalfwidth","rupeemarkbengali","rupeesignbengali","rupiah","ruthai","rvocalicbengali","rvocalicdeva","rvocalicgujarati","rvocalicvowelsignbengali","rvocalicvowelsigndeva","rvocalicvowelsigngujarati","sabengali","sacute","sacutedotaccent","sadarabic","sadeva","sadfinalarabic","sadinitialarabic","sadmedialarabic","sagujarati","sagurmukhi","sahiragana","sakatakana","sakatakanahalfwidth","sallallahoualayhewasallamarabic","samekh","samekhdagesh","samekhdageshhebrew","samekhhebrew","saraaathai","saraaethai","saraaimaimalaithai","saraaimaimuanthai","saraamthai","saraathai","saraethai","saraiileftthai","saraiithai","saraileftthai","saraithai","saraothai","saraueeleftthai","saraueethai","saraueleftthai","sarauethai","sarauthai","sarauuthai","sbopomofo","scaron","scarondotaccent","scedilla","schwa","schwacyrillic","schwadieresiscyrillic","schwahook","scircle","scircumflex","scommaaccent","sdotaccent","sdotbelow","sdotbelowdotaccent","seagullbelowcmb","secondtonechinese","section","seenarabic","seenfinalarabic","seeninitialarabic","seenmedialarabic","segol","segol13","segol1f","segol2c","segolhebrew","segolnarrowhebrew","segolquarterhebrew","segoltahebrew","segolwidehebrew","seharmenian","sehiragana","sekatakana","sekatakanahalfwidth","semicolon","semicolonarabic","semicolonmonospace","semicolonsmall","semivoicedmarkkana","semivoicedmarkkanahalfwidth","sentisquare","sentosquare","seven","sevenarabic","sevenbengali","sevencircle","sevencircleinversesansserif","sevendeva","seveneighths","sevengujarati","sevengurmukhi","sevenhackarabic","sevenhangzhou","sevenideographicparen","seveninferior","sevenmonospace","sevenoldstyle","sevenparen","sevenperiod","sevenpersian","sevenroman","sevensuperior","seventeencircle","seventeenparen","seventeenperiod","seventhai","sfthyphen","shaarmenian","shabengali","shacyrillic","shaddaarabic","shaddadammaarabic","shaddadammatanarabic","shaddafathaarabic","shaddakasraarabic","shaddakasratanarabic","shade","shadedark","shadelight","shademedium","shadeva","shagujarati","shagurmukhi","shalshelethebrew","shbopomofo","shchacyrillic","sheenarabic","sheenfinalarabic","sheeninitialarabic","sheenmedialarabic","sheicoptic","sheqel","sheqelhebrew","sheva","sheva115","sheva15","sheva22","sheva2e","shevahebrew","shevanarrowhebrew","shevaquarterhebrew","shevawidehebrew","shhacyrillic","shimacoptic","shin","shindagesh","shindageshhebrew","shindageshshindot","shindageshshindothebrew","shindageshsindot","shindageshsindothebrew","shindothebrew","shinhebrew","shinshindot","shinshindothebrew","shinsindot","shinsindothebrew","shook","sigma","sigma1","sigmafinal","sigmalunatesymbolgreek","sihiragana","sikatakana","sikatakanahalfwidth","siluqhebrew","siluqlefthebrew","similar","sindothebrew","siosacirclekorean","siosaparenkorean","sioscieuckorean","sioscirclekorean","sioskiyeokkorean","sioskorean","siosnieunkorean","siosparenkorean","siospieupkorean","siostikeutkorean","six","sixarabic","sixbengali","sixcircle","sixcircleinversesansserif","sixdeva","sixgujarati","sixgurmukhi","sixhackarabic","sixhangzhou","sixideographicparen","sixinferior","sixmonospace","sixoldstyle","sixparen","sixperiod","sixpersian","sixroman","sixsuperior","sixteencircle","sixteencurrencydenominatorbengali","sixteenparen","sixteenperiod","sixthai","slash","slashmonospace","slong","slongdotaccent","smileface","smonospace","sofpasuqhebrew","softhyphen","softsigncyrillic","sohiragana","sokatakana","sokatakanahalfwidth","soliduslongoverlaycmb","solidusshortoverlaycmb","sorusithai","sosalathai","sosothai","sosuathai","space","spacehackarabic","spade","spadesuitblack","spadesuitwhite","sparen","squarebelowcmb","squarecc","squarecm","squarediagonalcrosshatchfill","squarehorizontalfill","squarekg","squarekm","squarekmcapital","squareln","squarelog","squaremg","squaremil","squaremm","squaremsquared","squareorthogonalcrosshatchfill","squareupperlefttolowerrightfill","squareupperrighttolowerleftfill","squareverticalfill","squarewhitewithsmallblack","srsquare","ssabengali","ssadeva","ssagujarati","ssangcieuckorean","ssanghieuhkorean","ssangieungkorean","ssangkiyeokkorean","ssangnieunkorean","ssangpieupkorean","ssangsioskorean","ssangtikeutkorean","ssuperior","sterling","sterlingmonospace","strokelongoverlaycmb","strokeshortoverlaycmb","subset","subsetnotequal","subsetorequal","succeeds","suchthat","suhiragana","sukatakana","sukatakanahalfwidth","sukunarabic","summation","sun","superset","supersetnotequal","supersetorequal","svsquare","syouwaerasquare","tabengali","tackdown","tackleft","tadeva","tagujarati","tagurmukhi","taharabic","tahfinalarabic","tahinitialarabic","tahiragana","tahmedialarabic","taisyouerasquare","takatakana","takatakanahalfwidth","tatweelarabic","tau","tav","tavdages","tavdagesh","tavdageshhebrew","tavhebrew","tbar","tbopomofo","tcaron","tccurl","tcedilla","tcheharabic","tchehfinalarabic","tchehinitialarabic","tchehmedialarabic","tcircle","tcircumflexbelow","tcommaaccent","tdieresis","tdotaccent","tdotbelow","tecyrillic","tedescendercyrillic","teharabic","tehfinalarabic","tehhahinitialarabic","tehhahisolatedarabic","tehinitialarabic","tehiragana","tehjeeminitialarabic","tehjeemisolatedarabic","tehmarbutaarabic","tehmarbutafinalarabic","tehmedialarabic","tehmeeminitialarabic","tehmeemisolatedarabic","tehnoonfinalarabic","tekatakana","tekatakanahalfwidth","telephone","telephoneblack","telishagedolahebrew","telishaqetanahebrew","tencircle","tenideographicparen","tenparen","tenperiod","tenroman","tesh","tet","tetdagesh","tetdageshhebrew","tethebrew","tetsecyrillic","tevirhebrew","tevirlefthebrew","thabengali","thadeva","thagujarati","thagurmukhi","thalarabic","thalfinalarabic","thanthakhatlowleftthai","thanthakhatlowrightthai","thanthakhatthai","thanthakhatupperleftthai","theharabic","thehfinalarabic","thehinitialarabic","thehmedialarabic","thereexists","therefore","theta","theta1","thetasymbolgreek","thieuthacirclekorean","thieuthaparenkorean","thieuthcirclekorean","thieuthkorean","thieuthparenkorean","thirteencircle","thirteenparen","thirteenperiod","thonangmonthothai","thook","thophuthaothai","thorn","thothahanthai","thothanthai","thothongthai","thothungthai","thousandcyrillic","thousandsseparatorarabic","thousandsseparatorpersian","three","threearabic","threebengali","threecircle","threecircleinversesansserif","threedeva","threeeighths","threegujarati","threegurmukhi","threehackarabic","threehangzhou","threeideographicparen","threeinferior","threemonospace","threenumeratorbengali","threeoldstyle","threeparen","threeperiod","threepersian","threequarters","threequartersemdash","threeroman","threesuperior","threethai","thzsquare","tihiragana","tikatakana","tikatakanahalfwidth","tikeutacirclekorean","tikeutaparenkorean","tikeutcirclekorean","tikeutkorean","tikeutparenkorean","tilde","tildebelowcmb","tildecmb","tildecomb","tildedoublecmb","tildeoperator","tildeoverlaycmb","tildeverticalcmb","timescircle","tipehahebrew","tipehalefthebrew","tippigurmukhi","titlocyrilliccmb","tiwnarmenian","tlinebelow","tmonospace","toarmenian","tohiragana","tokatakana","tokatakanahalfwidth","tonebarextrahighmod","tonebarextralowmod","tonebarhighmod","tonebarlowmod","tonebarmidmod","tonefive","tonesix","tonetwo","tonos","tonsquare","topatakthai","tortoiseshellbracketleft","tortoiseshellbracketleftsmall","tortoiseshellbracketleftvertical","tortoiseshellbracketright","tortoiseshellbracketrightsmall","tortoiseshellbracketrightvertical","totaothai","tpalatalhook","tparen","trademark","trademarksans","trademarkserif","tretroflexhook","triagdn","triaglf","triagrt","triagup","ts","tsadi","tsadidagesh","tsadidageshhebrew","tsadihebrew","tsecyrillic","tsere","tsere12","tsere1e","tsere2b","tserehebrew","tserenarrowhebrew","tserequarterhebrew","tserewidehebrew","tshecyrillic","tsuperior","ttabengali","ttadeva","ttagujarati","ttagurmukhi","tteharabic","ttehfinalarabic","ttehinitialarabic","ttehmedialarabic","tthabengali","tthadeva","tthagujarati","tthagurmukhi","tturned","tuhiragana","tukatakana","tukatakanahalfwidth","tusmallhiragana","tusmallkatakana","tusmallkatakanahalfwidth","twelvecircle","twelveparen","twelveperiod","twelveroman","twentycircle","twentyhangzhou","twentyparen","twentyperiod","two","twoarabic","twobengali","twocircle","twocircleinversesansserif","twodeva","twodotenleader","twodotleader","twodotleadervertical","twogujarati","twogurmukhi","twohackarabic","twohangzhou","twoideographicparen","twoinferior","twomonospace","twonumeratorbengali","twooldstyle","twoparen","twoperiod","twopersian","tworoman","twostroke","twosuperior","twothai","twothirds","uacute","ubar","ubengali","ubopomofo","ubreve","ucaron","ucircle","ucircumflex","ucircumflexbelow","ucyrillic","udattadeva","udblacute","udblgrave","udeva","udieresis","udieresisacute","udieresisbelow","udieresiscaron","udieresiscyrillic","udieresisgrave","udieresismacron","udotbelow","ugrave","ugujarati","ugurmukhi","uhiragana","uhookabove","uhorn","uhornacute","uhorndotbelow","uhorngrave","uhornhookabove","uhorntilde","uhungarumlaut","uhungarumlautcyrillic","uinvertedbreve","ukatakana","ukatakanahalfwidth","ukcyrillic","ukorean","umacron","umacroncyrillic","umacrondieresis","umatragurmukhi","umonospace","underscore","underscoredbl","underscoremonospace","underscorevertical","underscorewavy","union","universal","uogonek","uparen","upblock","upperdothebrew","upsilon","upsilondieresis","upsilondieresistonos","upsilonlatin","upsilontonos","uptackbelowcmb","uptackmod","uragurmukhi","uring","ushortcyrillic","usmallhiragana","usmallkatakana","usmallkatakanahalfwidth","ustraightcyrillic","ustraightstrokecyrillic","utilde","utildeacute","utildebelow","uubengali","uudeva","uugujarati","uugurmukhi","uumatragurmukhi","uuvowelsignbengali","uuvowelsigndeva","uuvowelsigngujarati","uvowelsignbengali","uvowelsigndeva","uvowelsigngujarati","vadeva","vagujarati","vagurmukhi","vakatakana","vav","vavdagesh","vavdagesh65","vavdageshhebrew","vavhebrew","vavholam","vavholamhebrew","vavvavhebrew","vavyodhebrew","vcircle","vdotbelow","vecyrillic","veharabic","vehfinalarabic","vehinitialarabic","vehmedialarabic","vekatakana","venus","verticalbar","verticallineabovecmb","verticallinebelowcmb","verticallinelowmod","verticallinemod","vewarmenian","vhook","vikatakana","viramabengali","viramadeva","viramagujarati","visargabengali","visargadeva","visargagujarati","vmonospace","voarmenian","voicediterationhiragana","voicediterationkatakana","voicedmarkkana","voicedmarkkanahalfwidth","vokatakana","vparen","vtilde","vturned","vuhiragana","vukatakana","w","wacute","waekorean","wahiragana","wakatakana","wakatakanahalfwidth","wakorean","wasmallhiragana","wasmallkatakana","wattosquare","wavedash","wavyunderscorevertical","wawarabic","wawfinalarabic","wawhamzaabovearabic","wawhamzaabovefinalarabic","wbsquare","wcircle","wcircumflex","wdieresis","wdotaccent","wdotbelow","wehiragana","weierstrass","wekatakana","wekorean","weokorean","wgrave","whitebullet","whitecircle","whitecircleinverse","whitecornerbracketleft","whitecornerbracketleftvertical","whitecornerbracketright","whitecornerbracketrightvertical","whitediamond","whitediamondcontainingblacksmalldiamond","whitedownpointingsmalltriangle","whitedownpointingtriangle","whiteleftpointingsmalltriangle","whiteleftpointingtriangle","whitelenticularbracketleft","whitelenticularbracketright","whiterightpointingsmalltriangle","whiterightpointingtriangle","whitesmallsquare","whitesmilingface","whitesquare","whitestar","whitetelephone","whitetortoiseshellbracketleft","whitetortoiseshellbracketright","whiteuppointingsmalltriangle","whiteuppointingtriangle","wihiragana","wikatakana","wikorean","wmonospace","wohiragana","wokatakana","wokatakanahalfwidth","won","wonmonospace","wowaenthai","wparen","wring","wsuperior","wturned","wynn","xabovecmb","xbopomofo","xcircle","xdieresis","xdotaccent","xeharmenian","xi","xmonospace","xparen","xsuperior","yaadosquare","yabengali","yacute","yadeva","yaekorean","yagujarati","yagurmukhi","yahiragana","yakatakana","yakatakanahalfwidth","yakorean","yamakkanthai","yasmallhiragana","yasmallkatakana","yasmallkatakanahalfwidth","yatcyrillic","ycircle","ycircumflex","ydieresis","ydotaccent","ydotbelow","yeharabic","yehbarreearabic","yehbarreefinalarabic","yehfinalarabic","yehhamzaabovearabic","yehhamzaabovefinalarabic","yehhamzaaboveinitialarabic","yehhamzaabovemedialarabic","yehinitialarabic","yehmedialarabic","yehmeeminitialarabic","yehmeemisolatedarabic","yehnoonfinalarabic","yehthreedotsbelowarabic","yekorean","yen","yenmonospace","yeokorean","yeorinhieuhkorean","yerahbenyomohebrew","yerahbenyomolefthebrew","yericyrillic","yerudieresiscyrillic","yesieungkorean","yesieungpansioskorean","yesieungsioskorean","yetivhebrew","ygrave","yhook","yhookabove","yiarmenian","yicyrillic","yikorean","yinyang","yiwnarmenian","ymonospace","yod","yoddagesh","yoddageshhebrew","yodhebrew","yodyodhebrew","yodyodpatahhebrew","yohiragana","yoikorean","yokatakana","yokatakanahalfwidth","yokorean","yosmallhiragana","yosmallkatakana","yosmallkatakanahalfwidth","yotgreek","yoyaekorean","yoyakorean","yoyakthai","yoyingthai","yparen","ypogegrammeni","ypogegrammenigreekcmb","yr","yring","ysuperior","ytilde","yturned","yuhiragana","yuikorean","yukatakana","yukatakanahalfwidth","yukorean","yusbigcyrillic","yusbigiotifiedcyrillic","yuslittlecyrillic","yuslittleiotifiedcyrillic","yusmallhiragana","yusmallkatakana","yusmallkatakanahalfwidth","yuyekorean","yuyeokorean","yyabengali","yyadeva","zaarmenian","zacute","zadeva","zagurmukhi","zaharabic","zahfinalarabic","zahinitialarabic","zahiragana","zahmedialarabic","zainarabic","zainfinalarabic","zakatakana","zaqefgadolhebrew","zaqefqatanhebrew","zarqahebrew","zayin","zayindagesh","zayindageshhebrew","zayinhebrew","zbopomofo","zcaron","zcircle","zcircumflex","zcurl","zdot","zdotaccent","zdotbelow","zecyrillic","zedescendercyrillic","zedieresiscyrillic","zehiragana","zekatakana","zero","zeroarabic","zerobengali","zerodeva","zerogujarati","zerogurmukhi","zerohackarabic","zeroinferior","zeromonospace","zerooldstyle","zeropersian","zerosuperior","zerothai","zerowidthjoiner","zerowidthnonjoiner","zerowidthspace","zeta","zhbopomofo","zhearmenian","zhebrevecyrillic","zhecyrillic","zhedescendercyrillic","zhedieresiscyrillic","zihiragana","zikatakana","zinorhebrew","zlinebelow","zmonospace","zohiragana","zokatakana","zparen","zretroflexhook","zstroke","zuhiragana","zukatakana","angbracketleftbig","angbracketleftBig","angbracketleftbigg","angbracketleftBigg","angbracketrightBig","angbracketrightbig","angbracketrightBigg","angbracketrightbigg","arrowhookleft","arrowhookright","arrowlefttophalf","arrowleftbothalf","arrownortheast","arrownorthwest","arrowrighttophalf","arrowrightbothalf","arrowsoutheast","arrowsouthwest","backslashbig","backslashBig","backslashBigg","backslashbigg","bardbl","bracehtipdownleft","bracehtipdownright","bracehtipupleft","bracehtipupright","braceleftBig","braceleftbig","braceleftbigg","braceleftBigg","bracerightBig","bracerightbig","bracerightbigg","bracerightBigg","bracketleftbig","bracketleftBig","bracketleftbigg","bracketleftBigg","bracketrightBig","bracketrightbig","bracketrightbigg","bracketrightBigg","ceilingleftbig","ceilingleftBig","ceilingleftBigg","ceilingleftbigg","ceilingrightbig","ceilingrightBig","ceilingrightbigg","ceilingrightBigg","circledotdisplay","circledottext","circlemultiplydisplay","circlemultiplytext","circleplusdisplay","circleplustext","contintegraldisplay","contintegraltext","coproductdisplay","coproducttext","floorleftBig","floorleftbig","floorleftbigg","floorleftBigg","floorrightbig","floorrightBig","floorrightBigg","floorrightbigg","hatwide","hatwider","hatwidest","intercal","integraldisplay","integraltext","intersectiondisplay","intersectiontext","logicalanddisplay","logicalandtext","logicalordisplay","logicalortext","parenleftBig","parenleftbig","parenleftBigg","parenleftbigg","parenrightBig","parenrightbig","parenrightBigg","parenrightbigg","prime","productdisplay","producttext","radicalbig","radicalBig","radicalBigg","radicalbigg","radicalbt","radicaltp","radicalvertex","slashbig","slashBig","slashBigg","slashbigg","summationdisplay","summationtext","tildewide","tildewider","tildewidest","uniondisplay","unionmultidisplay","unionmultitext","unionsqdisplay","unionsqtext","uniontext","vextenddouble","vextendsingle","getDingbatsGlyphsUnicode","a2","a202","a3","a4","a5","a119","a118","a117","a11","a12","a13","a14","a15","a16","a105","a17","a18","a19","a20","a21","a22","a23","a24","a25","a26","a27","a28","a6","a7","a8","a9","a10","a29","a30","a31","a32","a33","a34","a35","a36","a37","a38","a39","a40","a41","a42","a43","a44","a45","a46","a47","a48","a49","a50","a51","a52","a53","a54","a55","a56","a57","a58","a59","a60","a61","a62","a63","a64","a65","a66","a67","a68","a69","a70","a71","a72","a73","a74","a203","a75","a204","a76","a77","a78","a79","a81","a82","a83","a84","a97","a98","a99","a100","a101","a102","a103","a104","a106","a107","a108","a112","a111","a110","a109","a120","a121","a122","a123","a124","a125","a126","a127","a128","a129","a130","a131","a132","a133","a134","a135","a136","a137","a138","a139","a140","a141","a142","a143","a144","a145","a146","a147","a148","a149","a150","a151","a152","a153","a154","a155","a156","a157","a158","a159","a160","a161","a163","a164","a196","a165","a192","a166","a167","a168","a169","a170","a171","a172","a173","a162","a174","a175","a176","a177","a178","a179","a193","a180","a199","a181","a200","a182","a201","a183","a184","a197","a185","a194","a198","a186","a195","a187","a188","a189","a190","a191","a89","a90","a93","a94","a91","a92","a205","a85","a206","a86","a87","a88","a95","a96","getSpecialPUASymbols","mapSpecialUnicodeValues","getUnicodeForGlyph","glyphsUnicodeMap","unicode","nameLen","hexStr","UnicodeRanges","getUnicodeRangeFor","lastPosition","SpecialCharRegExp","CategoryCache","getCharUnicodeCategory","cachedCategory","groups","category","isWhitespace","isZeroWidthDiacritic","isInvisibleFormatMark","clearUnicodeCaches","SEAC_ANALYSIS_ENABLED","FontFlags","FixedPitch","Serif","Symbolic","Script","Nonsymbolic","Italic","AllCap","SmallCap","ForceBold","MacStandardGlyphOrdering","recoverGlyphName","type1FontGlyphMapping","builtInEncoding","glyphNames","charCodeToGlyphId","glyphId","isSymbolicFont","isInternalFont","baseEncodingName","differences","glyphName","standardGlyphName","normalizeFontName","getStdFontMap","Helvetica","Courier","ZapfDingbats","ArialNarrow","ArialBlack","Arial","ArialMT","ArialUnicodeMS","CourierNew","CourierNewPSMT","TimesNewRoman","TimesNewRomanPS","TimesNewRomanPSMT","getFontNameToFileMap","getNonStdFontMap","Calibri","CenturyGothic","ComicSansMS","Impact","LucidaConsole","NuptialScript","SegoeUISymbol","getSerifFonts","Albertus","Aldus","Alexandria","Algerian","Antiqua","Apex","Arno","Aster","Aurora","Baskerville","Bell","Bembo","Benguiat","Bodoni","Bookman","Calisto","Calvert","Capitals","Cambria","Cartier","Caslon","Catull","Centaur","Chaparral","Cheltenham","Clarendon","Clearface","Cochin","Colonna","Constantia","Corona","Ecotype","Egyptienne","Elephant","Excelsior","Fairfield","Folkard","Footlight","FreeSerif","Garamond","Gentium","Georgia","Gloucester","Granjon","Heather","Hercules","Hiroshige","Imprint","Janson","Joanna","Korinna","Lexicon","LiberationSerif","Literaturnaya","Lucida","Melior","Memphis","Miller","Minion","Modern","Palatino","Perpetua","Plantin","Playbill","Renault","Requiem","Rockwell","Roman","Sabon","Scala","Seagull","Sistina","Souvenir","STIX","Sylfaen","Times","Trajan","Utopia","Versailles","Wanted","Weiss","Windsor","XITS","getSymbolsFonts","Dingbats","Wingdings","getGlyphMapForStandardFonts","getSupplementalGlyphMapForArialBlack","getSupplementalGlyphMapForCalibri","getStandardFontName","fontName","stdFontMap","isKnownFontName","ToUnicodeMap","cmap","amend","IdentityToUnicodeMap","firstChar","lastChar","CFFFont","compiler","loadedName","_createBuiltInEncoding","getCharset","getGlyphMapping","cidToGidMap","charsets","composite","invCidToGidMap","defaultEncoding","encodings","getUint32","getInt16","getInt8","getFloat214","getSubroutineBias","numSubrs","parseCmap","segCount","idDelta","idOffset","ids","parseCff","glyphs","gsubrs","isCFFCIDFont","parseGlyfTable","glyf","loca","isGlyphLocationsLong","itemSize","itemDecode","lookupCmap","compileGlyf","cmds","font","quadraticCurveTo","xa","ya","numberOfContours","arg1","arg2","scale01","scale10","subglyph","endPtsOfContours","instructionLength","numberOfPoints","points","repeat","startPoint","endPoint","contour","unshift","compileCharString","charStringCode","bezierCurveTo","stems","stackClean","xb","yb","subrCode","subrsBias","achar","bchar","glyphNameMap","gsubrsBias","NOOP","CompiledFont","compiledGlyphs","compiledCharCodeToGlyphId","getPathJs","fn","compileGlyph","compileGlyphImpl","hasBuiltPath","TrueTypeCompiled","Type2Compiled","cffInfo","FontRendererFactory","indexToLocFormat","unitsPerEm","numTables","tag","getMetrics","getFontBasicMetrics","capHeight","xHeight","ON_CURVE_POINT","X_SHORT_VECTOR","Y_SHORT_VECTOR","REPEAT_FLAG","X_IS_SAME_OR_POSITIVE_X_SHORT_VECTOR","Y_IS_SAME_OR_POSITIVE_Y_SHORT_VECTOR","OVERLAP_SIMPLE","ARG_1_AND_2_ARE_WORDS","ARGS_ARE_XY_VALUES","WE_HAVE_A_SCALE","MORE_COMPONENTS","WE_HAVE_AN_X_AND_Y_SCALE","WE_HAVE_A_TWO_BY_TWO","WE_HAVE_INSTRUCTIONS","GlyfTable","glyfTable","locaTable","DataView","byteOffset","Glyph","getSize","reduce","write","totalSize","ArrayBuffer","isLocationLong","setUint32","setUint16","locaIndex","factors","simple","composites","GlyphHeader","CompositeGlyph","SimpleGlyph","spos","factor","xMiddle","yMin","yMax","setInt16","Contour","xCoordinates","yCoordinates","contours","instructions","endPt","numberOfPt","flag","getUint8","allXCoordinates","pointFlags","endPtsOfContoursIndex","lastCoordinate","lastX","lastY","setUint8","argument1","argument2","transf","writeInt16","writeInt32","writeData","OTF_HEADER_SIZE","OTF_TABLE_ENTRY_SIZE","OpenTypeFileBuilder","sfnt","getSearchParams","entriesCount","entrySize","maxPower2","searchRange","rangeShift","toArray","tablesNames","tableName","tableOffsets","paddedLength","searchParams","checksum","quad","addTable","HINTING_ENABLED","COMMAND_MAP","hstem","vstem","vmoveto","rlineto","hlineto","vlineto","rrcurveto","callsubr","flex","drop","endchar","rmoveto","hmoveto","vhcurveto","hvcurveto","Type1CharString","lsb","flexing","convert","encoded","error","wx","sbx","executeCommand","dy","asb","splice","sby","num2","num1","flexArgs","howManyArgs","command","keepStack","stackLength","EEXEC_ENCRYPT_KEY","CHAR_STRS_ENCRYPT_KEY","isHexDigit","decrypt","discardNumber","c1","c2","decrypted","decryptAscii","digit1","digit2","isSpecial","Type1Parser","encrypted","isBinary","readNumberArray","getToken","token","readInt","readBoolean","prevChar","readCharStrings","lenIV","extractFontProgram","charstrings","privateData","program","blueArray","charString","charStringObject","extractFontHeader","encodingArg","findBlock","streamBytes","startIndex","streamBytesLength","found","getHeaderBlock","suggestedLength","EEXEC_SIGNATURE","streamStartPos","headerBytes","headerBytesLength","getEexecBlock","eexecBytes","Type1Font","PFB_HEADER_SIZE","headerBlockLength","length1","eexecBlockLength","length2","pfbHeader","pfbHeaderPresent","headerBlock","headerBlockParser","eexecBlock","eexecBlockParser","type2Charstrings","getType2Charstrings","getType2Subrs","wrap","getSeacs","charstringsLen","seacMap","type1Charstrings","type1Charstring","type1Subrs","type2Subrs","bbox","charsetArray","fields","field","subrIndex","PRIVATE_USE_AREAS","PDF_GLYPH_SPACE_UNITS","EXPORT_DATA_PROPERTIES","EXPORT_DATA_EXTRA_PROPERTIES","adjustWidths","glyphsWidths","adjustTrueTypeToUnicode","nameRecords","hasIncludedToUnicodeMap","hasEncoding","toUnicode","isWinNameRecord","adjustType1ToUnicode","amendFallbackToUnicode","fallbackToUnicode","originalCharCode","fontChar","accent","vmetric","operatorListId","isSpace","isInFont","int16","writeSignedInt16","signedInt16","writeUint32","int32","string16","safeString16","isTrueTypeFile","isTrueTypeCollectionFile","isOpenTypeFile","isType1File","isCFFFile","getFontFileType","subtype","fileType","fileSubtype","applyStandardFontGlyphMap","glyphMap","buildToFontChar","toFontChar","isMacNameRecord","language","convertCidString","shouldThrow","adjustMapping","hasGlyph","newGlyphZeroId","newMap","toUnicodeExtraMap","usedGlyphIds","privateUseAreaIndex","privateUseOffetStart","nextAvailableFontCharCode","privateUseOffetEnd","isInPrivateArea","fontCharCode","getRanges","fontGetRangesSort","codeIndices","createCmapTable","bmpLength","trailingRangesCount","startCount","endCount","idDeltas","idRangeOffsets","glyphsIds","contiguous","startCode","format314","format31012","header31012","validateOS2Table","os2","selection","usWinAscent","createOS2Table","override","ulUnicodeRange1","ulUnicodeRange2","ulUnicodeRange3","ulUnicodeRange4","firstCharIndex","lastCharIndex","typoAscent","typoDescent","winAscent","winDescent","fixedPitch","createPostTable","createPostscriptName","createNameTable","proto","stringsUnicode","strBufUnicode","platforms","languages","namesRecordCount","nameTable","strOffset","strs","nameRecord","Font","psName","mimetype","disableFontFace","isType3Font","missingFile","_charsCache","_glyphCache","isSerifFont","isSimulatedFlags","baseName","serifFonts","namePart","isMonospace","systemFontInfo","matches","isInvalidPDFjsFont","fallbackName","guessFallback","css","lineHeight","cidEncoding","vmetrics","defaultVMetrics","fallbackToSystemFont","checkAndRepair","isOpenType","renderer","exportData","extraProperties","exportDataProperties","nonStdFontMap","isStandardFont","isMappedToStandardFont","fontBasicMetricsMap","metrics","bold","italic","isNarrow","remeasure","unicodeCharCode","VALID_TABLES","readTables","hhea","hmtx","maxp","post","readTableEntry","previousPosition","readOpenTypeHeader","ttf","entrySelector","readTrueTypeCollectionHeader","ttc","ttcTag","majorVersion","minorVersion","numFonts","offsetTable","dsigTag","dsigLength","dsigOffset","readTrueTypeCollectionData","fontNameParts","fallbackData","potentialHeader","potentialTables","readNameTable","nameEntry","part","readCmapTable","platformId","encodingId","mappings","hasShortCmap","potentialTable","canBreak","useTable","correctlySorted","nextBytes","nextPlatformId","subHeaderKeys","maxSubHeaderKey","subHeaderKey","subHeaders","entryCount","idRangePos","segIndex","offsetsCount","offsetIndex","rangeOffset","nGroups","startCharCode","endCharCode","glyphCode","sanitizeMetrics","headTable","dupFirstEntry","caretOffset","numOfMetrics","macStyle","numOfSidebearings","numMissing","sanitizeGlyph","sourceStart","sourceEnd","destStart","hintsValid","glyphProfile","sizeOfInstructions","contoursCount","flagsCount","instructionsStart","instructionsLength","instructionsEnd","coordinatesLength","xLength","yLength","xyLength","glyphDataLength","sanitizeHead","locaLength","numGlyphsPlusOne","sanitizeGlyphLocations","maxSizeOfInstructions","itemEncode","fontItemDecodeLong","fontItemEncodeLong","fontItemDecode","fontItemEncode","numGlyphsOut","locaDataSize","locaData","oldGlyfData","oldGlyfDataLength","newGlyfData","locaEntries","nextOffset","missingGlyphs","writeOffset","simpleGlyph","firstEntryLength","readPostScriptTable","propertiesObj","maxpNumGlyphs","glyphNameIndexes","customNames","stringLength","records","FORMAT_0_HEADER_LENGTH","numRecords","stringsStart","NAME_RECORD_LENGTH","record","TTOpsStackDeltas","sanitizeTTProgram","ttContext","funcId","lastEndf","lastDeff","callstack","functionsCalled","tooComplexToFollowFunctions","inFDEF","ifLevel","inELSE","op","functionsUsed","functionsStackDeltas","newStackLength","functionsDefined","stackTop","content","foldTTTable","checkInvalidFunctions","maxFunctionDefs","sanitizeTTPrograms","fpgm","prep","cvt","cvtData","ttcData","cffFile","isTrueType","isComposite","scaleFactors","advanceWidth","maxZones","glyphsInfo","metricsOverride","lineGap","isCidToGidMapEmpty","cmapTable","cmapPlatformId","cmapEncodingId","cmapMappings","forcePostTable","unicodeOrCharCode","mapping","glyphZeroId","newMapping","namePrototype","builder","tableTag","newCharCodeToGlyphId","getCharCodes","charCodes","createCharCode","baseGlyphName","accentGlyphName","baseGlyphId","accentGlyphId","accentOffset","baseFontCharCode","accentFontCharCode","tan","fontFieldsHmtx","cffWidths","spaceWidth","possibleSpaceReplacements","glyphUnicode","_charToGlyph","widthCode","fromCodePoint","charsToGlyphs","chars","getCharPositions","positions","glyphCacheValues","encodeString","buffers","currentBuf","hasCurrentBufErrors","getCharCode","charCodeLength","ErrorFont","ShadingType","FUNCTION_BASED","AXIAL","RADIAL","FREE_FORM_MESH","LATTICE_FORM_MESH","COONS_PATCH_MESH","TENSOR_PATCH_MESH","Pattern","parseShading","shading","res","RadialAxialShading","MeshShading","DummyShading","BaseShading","SMALL_NUMBER","getIR","coordsArr","shadingType","t0","domainArr","extendStart","extendEnd","extendArr","r1","r2","distance","hypot","fnObj","createFromArray","NUMBER_OF_SAMPLES","step","colorStops","rgbColor","iBase","rgbBase","cssColorBase","iPrev","rgbPrev","maxSlopeR","maxSlopeG","maxSlopeB","minSlopeR","minSlopeG","minSlopeB","run","slopesExist","cssColor","background","r0","MeshStreamReader","tmpCompsBuf","csNumComps","colorSpace","tmpCsCompsBuf","colorFn","hasData","align","readFlag","bitsPerFlag","readCoordinate","bitsPerCoordinate","yi","readComponents","ci","bCache","buildB","lut","t_","getB","clearPatternCaches","MIN_SPLIT_PATCH_CHUNKS_AMOUNT","MAX_SPLIT_PATCH_CHUNKS_AMOUNT","TRIANGLE_DENSITY","coords","figures","decodeContext","patchMesh","_decodeType4Shading","verticesPerRow","_decodeType5Shading","_decodeType6Shading","_decodeType7Shading","_updateBounds","_buildFigureFromPatch","_packData","operators","ps","verticesLeft","coord","tmp1","tmp2","tmp3","tmp4","figure","figureMinX","figureMinY","figureMaxX","figureMaxY","splitXBy","splitYBy","figureCoords","figureColors","cl","cr","c0","c3","bRow","bCol","newColor","maxY","coordsPacked","xy","colorsPacked","getTilingPatternIR","operatorList","xstep","ystep","paintType","tilingType","CalibriBoldFactors","CalibriBoldMetrics","CalibriBoldItalicFactors","CalibriBoldItalicMetrics","CalibriItalicFactors","CalibriItalicMetrics","CalibriRegularFactors","CalibriRegularMetrics","HelveticaBoldFactors","HelveticaBoldMetrics","HelveticaBoldItalicFactors","HelveticaBoldItalicMetrics","HelveticaItalicFactors","HelveticaItalicMetrics","HelveticaRegularFactors","HelveticaRegularMetrics","LiberationSansBoldWidths","LiberationSansBoldMapping","LiberationSansBoldItalicWidths","LiberationSansBoldItalicMapping","LiberationSansItalicWidths","LiberationSansItalicMapping","LiberationSansRegularWidths","LiberationSansRegularMapping","MyriadProBoldFactors","MyriadProBoldMetrics","MyriadProBoldItalicFactors","MyriadProBoldItalicMetrics","MyriadProItalicFactors","MyriadProItalicMetrics","MyriadProRegularFactors","MyriadProRegularMetrics","SegoeuiBoldFactors","SegoeuiBoldMetrics","SegoeuiBoldItalicFactors","SegoeuiBoldItalicMetrics","SegoeuiItalicFactors","SegoeuiItalicMetrics","SegoeuiRegularFactors","SegoeuiRegularMetrics","getXFAFontMap","baseWidths","baseMapping","getXfaFontName","fontMap","getXfaFontWidths","rescaledBaseWidths","currentArray","newWidths","charUnicode","unicode1","unicode2","getXfaFontDict","descriptor","systemInfo","PostScriptParser","nextToken","accept","expect","PostScriptTokenTypes","LBRACE","parseBlock","RBRACE","NUMBER","OPERATOR","parseCondition","conditionLocation","IF","jumpLocation","endOfTrue","IFELSE","PostScriptToken","opCache","getOperator","PostScriptLexer","BaseLocalCache","_onlyRefs","onlyRefs","_nameRefMap","_imageMap","_imageCache","LocalImageCache","LocalColorSpaceCache","LocalFunctionCache","LocalGStateCache","LocalTilingPatternCache","RegionalImageCache","GlobalImageCache","NUM_PAGES_THRESHOLD","MIN_IMAGES_TO_CACHE","MAX_BYTE_SIZE","_refCache","_byteSize","byteSize","imageData","_cacheLimitReached","shouldCache","pageIndexSet","addByteSize","setData","onlyData","PDFFunctionFactory","cachedFunction","parsedFunction","PDFFunction","parseArray","fnRef","localFunction","_localFunctionCache","toNumberArray","getSampleArray","outputSize","bps","sampleMul","strBytes","strIdx","typeNum","constructSampled","constructInterpolated","constructStiched","constructPostScript","fnArray","toMultiArray","interpolate","xmin","xmax","ymin","ymax","domain","inputSize","encode","samples","constructSampledFn","cubeVertices","cubeN","Float64Array","cubeVertex","domain_2i","domain_2i_1","size_i","e0","n0","n1","rj","constructInterpolatedFn","fns","constructStichedFn","constructStichedFromIRClip","dmin","dmax","rmin","rmax","PostScriptCompiler","numOutputs","numInputs","evaluator","PostScriptEvaluator","MAX_CACHE_SIZE","cache_available","constructPostScriptFn","cachedValue","execute","stackIndex","bound","isPDFFunction","fnDict","PostScriptStack","MAX_STACK_SIZE","initialStack","copy","roll","counter","operator","atan2","cos","log10","sin","AstNode","visit","AstArgument","visitArgument","AstLiteral","visitLiteral","AstBinaryOperation","visitBinaryOperation","AstMin","arg","visitMin","AstVariable","visitVariable","AstVariableDefinition","variable","visitVariableDefinition","ExpressionBuilderVisitor","parts","literal","operation","definition","buildAddOperation","buildMulOperation","buildSubOperation","buildMinOperation","lastRegister","ast1","ast2","tmpVar","instruction","statementBuilder","expr","baseTypes","arabicTypes","isOdd","isEven","findUnequal","setValues","reverseValues","createBidiText","isLTR","dir","bidi","startLevel","strLength","numBidi","charType","sor","eor","lastType","before","after","highestLevel","lowestOddLevel","NORMAL","style","BOLD","ITALIC","BOLDITALIC","substitutionMap","local","ultimate","alias","fallback","fontAliases","getStyleToAppend","generateFont","localFontPath","useFallback","usePath","append","extra","substitution","aliasAppend","assign","fallbackInfo","fallbackUltimate","getFontSubstitution","systemFontCache","idFactory","baseFontName","standardFontName","substitutionInfo","subst","mustAddBaseFont","getDocId","createFontId","MIN_IMAGE_DIM","MAX_IMAGE_DIM","MAX_ERROR","ImageResizer","imgData","isMask","_imgData","_isMask","needsToBeResized","_goodSquareLength","MAX_DIM","area","_hasMaxArea","MAX_AREA","_areGoodDims","_guessMax","maxArea","setMaxArea","canvas","ctx","getContext","fillRect","opacity","getImageData","tolerance","defaultHeight","middle","createImage","_createImage","_encodeBMP","blob","Blob","bitmapPromise","createImageBitmap","minFactor","firstFactor","steps","newWidth","newHeight","prevWidth","prevHeight","drawImage","transferToImageBitmap","bitPerPixel","colorTable","maskTable","compression","rowLen","newData","extraLen","view","headerLength","fileLength","bmpData","setInt32","SEED","MASK_HIGH","MASK_LOW","MurmurHash3_64","seed","update","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","hexdigest","addState","parentState","pattern","checkFn","iterateFn","processFn","InitialState","iterateInlineImageGroup","iFirstSave","iCurr","foundInlineImageGroup","MIN_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_IMAGES_IN_INLINE_IMAGES_BLOCK","MAX_WIDTH","IMAGE_PADDING","argsArray","curr","iFirstTransform","iFirstPIIXO","maxLineHeight","currentX","currentY","img","imgWidth","imgHeight","putImageData","ImageData","iterateImageMaskGroup","foundImageMaskGroup","MIN_IMAGES_IN_MASKS_BLOCK","MAX_IMAGES_IN_MASKS_BLOCK","MAX_SAME_IMAGES_IN_MASKS_BLOCK","iFirstPIMXO","isSameImage","iTransform","transformArgs","firstPIMXOArg0","firstTransformArg0","firstTransformArg1","firstTransformArg2","firstTransformArg3","iPIMXO","images","maskParams","iterateImageGroup","iFirstPIXO","firstPIXOArg0","MIN_IMAGES_IN_BLOCK","MAX_IMAGES_IN_BLOCK","iterateShowTextGroup","iFirstSetFont","firstSetFontArg0","firstSetFontArg1","MIN_CHARS_IN_BLOCK","MAX_CHARS_IN_BLOCK","iFirstBeginText","iFirstSetTextMatrix","iFirstShowText","iFirstEndText","iFirst","iEndText","NullOptimizer","_optimize","flush","QueueOptimizer","lastProcessed","OperatorList","CHUNK_SIZE","CHUNK_SIZE_ABOUT","intent","streamSink","_streamSink","optimizer","dependencies","_totalLength","_resolved","ready","addOp","addImageOps","optionalContent","addDependency","addDependencies","addOpList","opList","_transfers","transfers","cached","separateAnnots","enqueue","decodeAndClamp","addend","coefficient","resizeImageMask","PDFImage","image","isInline","smask","imageMask","matte","needsDecode","decodeCoefficients","decodeAddends","isIndexed","maskDict","buildImage","smaskData","maskData","createRawMask","imgArray","imageIsFromDecodeStream","computedLength","haveFullData","createMask","isSingleOpaquePixel","createImageData","decodeBuffer","getComponents","bufferPos","rowComps","loop1End","loop2End","remainingBits","fillOpacity","rgbaBuf","alphaBuf","sw","sh","fillGrayBuffer","imageOffset","maskOffset","undoPreblend","matteRgb","matteR","matteG","matteB","mustBeResized","getImageBytes","createBitmap","imageLength","isHandled","rgba","internal","maybeUndoPreblend","canvasImgData","imageBytes","DefaultPartialEvaluatorOptions","freeze","maxImageSize","ignoreErrors","canvasMaxAreaInBytes","fontExtraProperties","useSystemFonts","cMapUrl","standardFontDataUrl","PatternType","TILING","SHADING","TEXT_CHUNK_BATCH_SIZE","deferred","normalizeBlendMode","parsingArray","maybeBM","incrementCachedImageMaskCount","TimeSlotManager","TIME_SLOT_DURATION_MS","CHECK_TIME_EVERY","checked","endTime","now","PartialEvaluator","handler","fontCache","builtInCMapCache","standardFontDataCache","globalImageCache","parsingType3Font","_regionalImageCache","_fetchBuiltInCMapBound","_pdfFunctionFactory","newOptions","newEvaluator","hasBlendModes","nonBlendModesSet","nodes","graphicStates","graphicState","bm","xObjects","xObject","xResources","response","ok","statusText","sendWithPromise","fetchStandardFontData","standardFontNameToFileName","filename","buildFormXObject","xobj","task","initialState","groupOptions","parseMarkedContentProps","group","isolated","knockout","groupSubtype","parseColorSpace","backdrop","getOperatorList","_sendImgData","cacheGlobally","buildPaintImageXObject","localImageCache","imageRef","bitStrideLength","cacheData","createObjId","SMALL_IMAGE_DIMENSIONS","imageObj","handleSMask","stateManager","smaskContent","smaskOptions","transferObj","transferFn","transferMap","handleTransferFunction","tr","transferArray","transferMaps","numFns","numEffectfulFns","handleTilingType","patternDict","localTilingPatternCache","tilingOpList","patternResources","operatorListIR","tilingPatternIR","handleSetFont","fontArgs","fontRef","fallbackFontDict","loadFont","translated","loadType3Data","type3Dependencies","TranslatedFont","evaluatorOptions","handleText","isAddToPathSet","textRenderingMode","fillColorSpace","buildFontPaths","ensureStateFont","gState","localGStateCache","gStateRef","isSimpleGState","gStateObj","errorFont","fontRes","type3FontRefs","fontCapability","preEvaluatedFont","preEvaluateFont","hash","fontRefIsRef","fontID","aliasFontRef","translateFont","translatedFont","buildPath","parsingText","lastIndex","Infinity","opArgs","localShadingPatternCache","patternIR","handleColorN","patternName","rawPattern","localTilingPattern","_parseVisibilityExpression","nestingCounter","currentResult","MAX_NESTING","object","nestedResult","contentProperties","optionalContentType","expression","optionalContentGroups","groupIds","ocg","policy","EvalState","self","xobjs","StateManager","preprocessor","EvaluatorPreprocessor","timeSlotManager","closePendingRestoreOPS","argument","savedStatesDepth","promiseBody","all","ensureNotTerminated","stop","isValidName","localImage","resolveXObject","rejectXObject","globalImage","fontSize","combinedGlyphs","arrItem","strokeColorSpace","shadingRes","patternId","localGStateObj","resolveGState","rejectGState","extGState","getTextContent","includeMarkedContent","sink","seenStyles","viewBox","markedContentData","disableNormalization","TextState","textContent","styles","textContentItem","initialized","totalHeight","prevTransform","textAdvanceScale","spaceInFlowMin","spaceInFlowMax","trackingSpaceMin","negativeSpaceMax","notASpace","hasEOL","twoLastChars","twoLastCharsPos","saveLastChar","nextPos","ret","shouldAddWhitepsace","resetLastChars","TRACKING_SPACE_FACTOR","NOT_A_SPACE_FACTOR","NEGATIVE_SPACE_FACTOR","SPACE_IN_FLOW_MIN_FACTOR","SPACE_IN_FLOW_MAX_FACTOR","VERTICAL_SHIFT_RATIO","showSpacedTextBuffer","emptyXObjectCache","emptyGStateCache","textState","pushWhitespace","getCurrentTextTransform","tsm","textHScale","textRise","isCharBBox","glyphHeight","ctm","textMatrix","ensureTextContentItem","fontSubstitution","fontSubstitutionLoadedName","trm","scaleLineX","textLineMatrix","scaleCtmX","updateAdvanceScale","scaleFactor","runBidiTransform","textChunk","text","bidiResult","applyInverseRotation","compareWithLastPosition","glyphWidth","currentTransform","lastPosX","lastPosY","rotate","advanceY","advanceX","textOrientation","appendEOL","flushTextContentItem","addFakeSpaces","buildTextContentItem","extraSpacing","charSpacing","translateTextMatrix","scaledDim","wordSpacing","enqueueChunk","batch","previousState","fontNameArg","fontSizeArg","leading","translateTextLineMatrix","carriageReturn","setTextLineMatrix","spaceFactor","elements","currentState","xObjStateManager","sinkWrapper","enqueueInvoked","desiredSize","gStateFont","mcid","getPageObjId","extractDataStructures","baseDict","cidToGidBytes","toUnicodePromise","readToUnicode","cidSystemInfo","registry","ordering","supplement","diffEncoding","nonEmbeddedFont","isSymbolsFontName","isNonsymbolicFont","buildToUnicode","builtToUnicode","readCidToGidMap","_simpleFontToUnicode","forceGlyphs","codeStr","ucs2CMapName","ucs2CMap","ucs2","cmapObj","glyphsData","glyphID","extractWidths","glyphsVMetrics","getBaseFontMetrics","buildCharCodeToWidth","firstWidth","fontNameWoStyle","monospace","lookupName","Metrics","glyphWidths","widthsByGlyphName","df","diffLength","diffBuf","diffEntry","uint8array","widthsBuf","compositeWidths","subWidthsBuf","newProperties","baseFont","fontNameStr","baseFontStr","fontFile","length3","glyphScaleFactors","subtypeEntry","_evaluatorOptions","type3Loaded","sent","type3Evaluator","loadCharProcsPromise","charProcs","fontResources","charProcOperatorList","fontBBoxSize","glyphStream","_removeType3ColorOperators","dummyOperatorList","_bbox","charBBox","charBBoxSize","gStateKey","stateStack","old","opMap","ri","gs","cm","BT","ET","Tc","Tw","Tz","TL","Tf","Tr","Ts","Td","TD","Tm","Tj","TJ","d0","d1","CS","SC","SCN","sc","scn","RG","rg","BI","ID","EI","Do","MP","BMC","BDC","EMC","BX","EX","BM","BD","true","fa","fal","fals","false","nul","null","MAX_INVALID_PATH_OPS","nonProcessedArgs","_isPathOp","_numInvalidPathOPS","opSpec","argsLength","preprocessCommand","DefaultAppearanceEvaluator","fontColor","parseDefaultAppearance","AppearanceStreamEvaluator","breakLoop","_localColorSpaceCache","parseAppearanceStream","getPdfColor","isFill","createDefaultAppearance","FakeUnicodeFont","ctxMeasure","_fontNameId","toUnicodeRef","_toUnicodeRef","toUnicodeStream","toUnicodeDict","getNewPersistentRef","fontDescriptorRef","_fontDescriptorRef","fontDescriptor","descendantFontRef","descendantFont","currentWidths","baseFontRef","_createContext","createFontResources","measureText","createAppearance","bgColor","strokeAlpha","lineWidth","hscale","vscale","lineDescent","maxHeight","fscale","newFontSize","vShift","appearance","appearanceStreamDict","ap","NameOrNumberTree","root","_type","getAll","kids","kid","kidsOrEntries","loopCount","MAX_LEVELS","limits","currentKey","NameTree","NumberTree","clearGlobalCaches","pickPlatformItem","FileSpec","fs","description","contentAvailable","_filename","contentRef","fileObj","serializable","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespaceString","XMLParserBase","_resolveEntities","onResolveEntity","_parseContent","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","parsed","_parseProcessingInstruction","attrStart","parseXml","ch2","onEndElement","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","isClosed","onBeginElement","onText","SimpleDOMNode","nodeName","nodeValue","firstChild","childNodes","nextSibling","parentNode","child","hasChildNodes","searchNode","paths","siblingPos","dump","attribute","SimpleXMLParser","hasAttributes","lowerCaseName","_currentFragment","_stack","_errorCode","_hasAttributes","_lowerCaseName","parseFromString","documentElement","lastElement","childNode","MetadataParser","_repair","xmlDocument","_metadataMap","_data","replace","d2","d3","charBuf","_getSequence","_parseArray","seqNode","trim","rdf","desc","parsedData","rawData","DecryptStream","nextChunk","hasMoreData","ARCFourCipher","keyLength","encryptBlock","decryptBlock","encrypt","calculateMD5","calculateMD5Closure","h0","h3","padded","rotateArg","Word64","highInteger","lowInteger","and","word","xor","or","shiftRight","places","shiftLeft","rotateRight","not","lowAdd","highAdd","copyTo","calculateSHA256","calculateSHA256Closure","rotr","maj","sigmaPrime","littleSigma","littleSigmaPrime","h4","h5","h6","h7","calculateSHA512","calculateSHA512Closure","mode384","calculateSHA384","NullCipher","AESBaseCipher","_s","_inv_s","_mix","_mixCol","bufferPosition","_expandKey","cipherKey","_decrypt","_keySize","_cyclesOfRepetition","s0","_encrypt","_decryptBlock2","finalize","sourceLength","iv","plain","_key","lastBlock","psLen","cipher","AES128Cipher","_rcon","rcon","t3","t4","AES256Cipher","PDF17","checkOwnerPassword","password","ownerValidationSalt","userBytes","ownerPassword","hashData","checkUserPassword","userValidationSalt","userPassword","getOwnerKey","ownerKeySalt","ownerEncryption","getUserKey","userKeySalt","userEncryption","PDF20","_hash","combinedLength","combinedArray","remainder","CipherTransform","stringCipherConstructor","streamCipherConstructor","StringCipherConstructor","StreamCipherConstructor","cipherTransformDecryptStream","encryptString","strLen","pad","CipherTransformFactory","defaultPasswordBytes","createEncryptionKey20","revision","uBytes","perms","passwordLength","pdfAlgorithm","prepareKeyData","fileId","encryptMetadata","hashDataSize","keyLengthInBytes","encryptionKey","checkData","derivedKey","decodeUserPassword","buildObjectKey","isAes","buildCipherConstructor","cf","cryptFilter","cfm","algorithm","cfDict","streamCryptoName","handlerDict","ownerBytes","fileIdBytes","passwordBytes","decodedPassword","stmf","strf","eff","createCipherTransform","cipherConstructor","writeObject","writeDict","writeStream","writeArray","writeValue","fetchIfRefAsync","isFilterZeroFlateDecode","MIN_LENGTH_FOR_COMPRESSING","CompressionStream","writer","getWriter","close","Response","readable","newFilter","newParams","writeInt","writeString","computeMD5","filesize","xrefInfo","time","md5Buffer","md5BufferLen","writeXFADataForAcroform","newRefs","xml","xfa","nodePath","updateAcroform","acroForm","acroFormRef","hasXfa","hasXfaDatasetsEntry","xfaDatasetsRef","needAppearances","newXfa","updateXFA","xfaData","datasets","incrementalUpdate","originalData","refForXrefTable","newRef","baseOffset","startXRef","rootRef","infoRef","encryptRef","xrefTableData","indexes","maxOffset","fileIds","md5","sizes","structSize","tableLength","bufferLen","footer","objOffset","MAX_DEPTH","StructElementType","PAGE_CONTENT","STREAM_CONTENT","OBJECT","ANNOTATION","ELEMENT","StructTreeRoot","rootDict","roleMap","structParentIds","init","readRoleMap","addIdToPage","pageRef","addAnnotationIdToPage","roleMapDict","canCreateStructureTree","catalogRef","pdfManager","nextKey","hasNothingToUpdate","getPage","accessibilityData","parentTreeId","createStructureTree","catalog","cloneDict","structTreeRootRef","getNewTemporaryRef","structTreeRoot","parentTreeRef","parentTree","nums","writeKids","canUpdateStructTree","numberTree","pageDict","collectParents","structTreeParent","updateStructureTree","numsRef","kidsRef","newNextkey","objr","isPageRef","title","lang","expanded","actualText","tagRef","tagDict","updateParentTag","newTagRef","fallbackRef","objDict","idToElement","structTreeParentId","parentArray","updateElement","pageKid","kidRef","parentRef","saveParentDict","parentKids","parentKidsRef","StructElementNode","parseKids","role","nameObj","pageObjId","objRef","parseKid","StructElement","kidDict","refObjId","StructTreePage","addNode","elemId","addTopLevelNode","nodeToSerializable","kidElement","fetchDestination","fetchRemoteDest","JSON","stringify","Catalog","_catDict","getCatalogObj","toplevelPagesDict","_actualNumPages","pageKidsCountCache","pageIndexCache","needsRendering","collection","metadata","streamRef","markInfo","_readMarkInfo","Marked","UserProperties","Suspects","structTree","_readStructTreeRoot","rawObj","pagesObj","documentOutline","_readDocumentOutline","blackColor","outlineDict","parseDestDictionary","destDict","resultObj","docBaseUrl","docAttachments","attachments","outlineItem","attachment","unsafeUrl","setOCGState","permissions","_readPermissions","trailer","optionalContentConfig","config","defaultConfig","groupsData","groupRefs","groupRef","_readOptionalContentConfig","contentGroupRefs","parseOnOff","refs","onParsed","parseOrder","nestedLevels","parsedOrderRefs","nestedOrder","parseNestedOrder","hiddenGroups","MAX_NESTED_LEVELS","nestedName","creator","baseState","on","off","setActualNumPages","hasActualNumPages","_pagesCount","destinations","_readDests","dests","getDestination","allDest","pageLabels","_readPageLabels","prefix","currentLabel","labelDict","st","LIMIT","A_UPPER_CASE","A_LOWER_CASE","baseCharCode","letterIndex","character","pageLayout","pageMode","viewerPreferences","prefs","prefValue","isValid","every","page","openAction","nameTree","xfaImages","_collectJavaScript","javaScript","appendIfJavaScriptDict","jsDict","jsActions","fontFallback","translatedFonts","cleanup","manuallyTriggered","getPageDict","nodesToVisit","visitedNodes","pagesRef","currentPageIndex","currentNode","getAllPageDicts","posInKids","addPageDict","addPageError","queueItem","kidObj","getPageIndex","cachedPageIndex","pagesBeforeRef","kidPromises","uri","href","actionType","actionName","include","resetForm","urlDict","remoteDest","target","relationship","attachmentDest","namedAction","preserveRB","stateArr","jsAction","jsURL","mayHaveChildren","addChildren","rawValue","ObjectLoader","refSet","load","_walk","nodesToRevisit","pendingRequests","foundMissingData","$acceptWhitespace","$addHTML","$appendChild","$childrenToHTML","$clean","$cleanPage","$cleanup","$clone","$consumed","$content","$data","$dump","$extra","$finalize","$flushHTML","$getAttributeIt","$getAttributes","$getAvailableSpace","$getChildrenByClass","$getChildrenByName","$getChildrenByNameIt","$getDataValue","$getExtra","$getRealChildrenByNameIt","$getChildren","$getContainedChildren","$getNextPage","$getSubformParent","$getParent","$getTemplateRoot","$globalData","$hasSettableValue","$ids","$indexOf","$insertAt","$isCDATAXml","$isBindable","$isDataValue","$isDescendent","$isNsAgnostic","$isSplittable","$isThereMoreWidth","$isTransparent","$isUsable","$lastAttribute","$namespaceId","$nodeName","$nsAttributes","$onChild","$onChildCheck","$onText","$pushGlyphs","$popPara","$pushPara","$removeChild","$root","$resolvePrototypes","$searchNode","$setId","$setSetAttributes","$setValue","$tabIndex","$text","$toPages","$toHTML","$toString","$toStyle","$uid","$buildXFAObject","NamespaceIds","ns","connectionSet","form","localeSet","pdf","sourceSet","stylesheet","xdc","xdp","xfdf","xhtml","xmpmeta","dimConverters","pt","mm","in","measurementPattern","stripQuotes","getInteger","validate","getFloat","getKeyword","getStringOption","getMeasurement","def","valueStr","unit","conv","getRatio","den","getRelevant","excluded","viewname","getColor","getBBox","HTMLResult","FAILURE","EMPTY","success","html","breakNode","isBreak","FontFinder","pdfFonts","fonts","defaultFont","reallyMissingFonts","pdfFont","addPdfFont","regular","bolditalic","myriad","missing","endsWith","getDefault","find","maybe","family","selectFont","xfaFont","typeface","posture","real","fontFinder","lineNoGap","WIDTH_FACTOR","FontInfo","margin","paraMargin","letterSpacing","FontSelector","defaultXfaFont","defaultParaMargin","defaultLineHeight","pushData","lastFont","fontInfo","popFont","topFont","TextMeasure","fontSelector","extraHeight","addPara","addString","fontLineHeight","noGap","firstLineHeight","fallbackWidth","encodedLine","compute","lastSpacePos","lastSpaceWidth","currentLineWidth","currentLineHeight","isBroken","isFirstLine","isEOL","namePattern","indexPattern","dot","dotDot","dotHash","dotBracket","dotParen","shortcuts","host","dataWindow","event","somCache","WeakMap","parseExpression","dotDotAllowed","noExpr","cacheName","formCalc","container","useCache","isQualified","isXFAObject","isXFAObjectArray","isFinite","flat","createDataNode","some","createNodes","_applyPrototype","_attributes","_attributeNames","_children","_cloneAttribute","_dataValue","_defaultValue","_filteredChildrenGenerator","_getPrototype","_getUnsetAttributes","_hasChildren","_max","_options","_parent","_resolvePrototypesHelper","_setAttributes","_validator","uid","NS_DATASETS","XFAObject","nsId","hasChildren","XmlObject","XFAObjectArray","hasOwnProperty","para","paraStack","clean","getPrototypeOf","getOwnPropertyNames","dumped","availableSpace","failingNode","generator","protoAttributes","allAttr","setAttr","ancestors","use","usehref","somExpression","protoProto","newAncestors","unsetAttrName","protoValue","$symbol","getOwnPropertySymbols","clonedChild","allTransparent","XFAAttribute","dataNode","tagName","utf8TagName","utf8Name","skipConsumed","hasNS","$ns","$name","ContentObject","OptionObject","StringObject","IntegerObject","validator","Option01","Option10","measureToString","converters","anchorType","colSpan","columnWidths","currentColumn","transformOrigin","presence","visibility","display","hAlign","textAlign","alignSelf","setMinMaxDimensions","minW","maxW","minH","layoutText","measure","layoutNode","marginH","marginV","leftInset","rightInset","topInset","bottomInset","spaceAbove","spaceBelow","marginLeft","marginRight","exData","contentType","computeBbox","fixDimensions","layoutClass","toStyle","newStyle","createWrapper","wrapper","class","border","insets","insetsH","insetsW","hand","classNames","isPrintOnly","fixTextIndent","indent","textIndent","padding","setAccess","access","relevant","getCurrentPara","setPara","nodeStyle","valueStyle","flexDirection","vAlign","justifyContent","paraStyle","setFontFamily","fixURL","createLine","flushHTML","htmlFromFailing","addHTML","attempt","numberInLine","getAvailableSpace","getTransformedBBox","centerX","centerY","checkDimensions","firstUnsplittable","ERROR","noLayoutFailure","currentContentArea","TEMPLATE_NS_ID","SVG_NS","MAX_ATTEMPTS_FOR_LRTB_LAYOUT","MAX_EMPTY_PAGES","DEFAULT_TAB_INDEX","HEADING_PATTERN","MIMES","IMAGES_HEADERS","getBorderDims","borderExtra","hasMargin","_setValue","templateNode","Value","getContainedChildren","SubformSet","isRequired","nullTest","setTabIndex","traversal","applyAssist","assist","assistTitle","ariaRole","ariaLevel","ariaLabel","speak","toolTip","valueToHtml","setFirstUnsplittable","unsetFirstUnsplittable","handleBreak","targetType","currentPageArea","PageArea","startNew","ContentArea","pageArea","nextPageArea","contentAreas","contentArea","indexForCurrent","indexForTarget","handleOverflow","extraNode","saved","savedMethod","AppearanceFilter","Arc","circular","startAngle","sweepAngle","edge","Edge","edgeStyle","strokeWidth","thickness","xmlns","overflow","cx","cy","rx","ry","largeArc","vectorEffect","preserveAspectRatio","svg","Area","extras","draw","exObject","exclGroup","subform","subformSet","xfaName","Assist","Barcode","charEncoding","dataColumnCount","dataPrep","dataRowCount","endChar","errorCorrectionLevel","moduleHeight","moduleWidth","printCheckDigit","rowColumnRatio","startChar","textLocation","truncate","upsMode","wideNarrowRatio","Bind","picture","BindItems","connection","labelRef","valueRef","Bookend","leader","BooleanElement","Border","break","corner","edges","defaultEdge","edgeStyles","radius","cornerStyles","borderRadius","borderStyle","borderWidth","borderColor","Break","afterTarget","beforeTarget","bookendLeader","bookendTrailer","overflowLeader","overflowTarget","overflowTrailer","BreakAfter","script","BreakBefore","Button","highlight","grandpa","htmlButton","activity","Calculate","Caption","placement","reserve","savedReserve","Certificate","Certificates","credentialServerPolicy","urlPolicy","encryption","issuers","keyUsage","oids","signing","subjectDNs","CheckButton","mark","shape","className","groupId","exportedValue","fieldId","dataId","ExclGroup","xfaOn","xfaOff","required","ChoiceList","commitOn","open","textEntry","ui","optionStyle","displayedIndex","saveIndex","displayed","selected","hidden","selectAttributes","multiple","Color","cSpace","Comb","numberOfCells","Connect","usage","Corner","inverted","DateElement","DateTime","DateTimeEdit","hScrollPolicy","picker","comb","Decimal","fracDigits","leadDigits","DefaultUi","Desc","boolean","dateTime","decimal","float","integer","DigestMethod","DigestMethods","digestMethod","Draw","locale","caption","keep","setProperty","savedW","savedH","cap","linecap","Encoding","Encodings","Encrypt","certificate","EncryptData","manifest","Encryption","EncryptionMethod","EncryptionMethods","encryptionMethod","Event","listen","encryptData","signData","submit","ExData","maxLength","rid","transferEncoding","ExObject","archive","classId","codeBase","codeType","accessKey","connect","_isSplittable","isSplittable","isLrTb","maxRun","Execute","executeType","runAt","Extras","Field","bindItems","Ui","TextEdit","textEdit","checkButton","choiceList","borderDims","uiW","uiH","tabindex","aElement","button","imageEdit","htmlValue","maxChars","numericEdit","captionHeight","inputHeight","Fill","linear","radial","solid","stipple","ggrandpa","propName","altPropName","backgroundColor","Rectangle","addRevocationInfo","appearanceFilter","certificates","digestMethods","encryptionMethods","lockDocument","mdp","reasons","timeStamp","Float","baselineShift","fontHorizontalScale","fontVerticalScale","kerningMode","lineThrough","lineThroughPeriod","overlinePeriod","underline","underlinePeriod","usedTypefaces","backgroundClip","verticalAlign","fontKerning","textDecoration","textDecorationStyle","fontStyle","Format","Handler","Hyphenation","excludeAllCaps","excludeInitialCap","hyphenate","pushCharacterCount","remainCharacterCount","wordCharacterCount","Image","aspect","atob","objectFit","createObjectURL","ImageEdit","Integer","Issuers","Items","Keep","intact","KeyUsage","crlSign","dataEncipherment","decipherOnly","digitalSignature","encipherOnly","keyAgreement","keyCertSign","keyEncipherment","nonRepudiation","Line","slope","Linear","startColor","endColor","LockDocument","Manifest","Margin","Mdp","signatureType","Medium","imagingBBox","long","orientation","short","stock","trayIn","trayOut","Message","NumericEdit","Occur","initial","originalMin","PageSet","Template","Oid","Oids","oid","Overflow","addLeader","addTrailer","blankOrNotBlank","initialNumber","numbered","oddOrEven","pagePosition","medium","occur","numberOfUse","relation","duplexImposition","pageSet","pageSetIndex","pageNumber","parity","Para","orphans","preserve","radixOffset","tabDefault","tabStops","widows","hyphenation","paddingLeft","paddingight","paddingTop","paddingBottom","tabSize","hyphenatation","PasswordEdit","passwordChar","Picture","Proto","barcode","bookend","breakAfter","breakBefore","dateTimeEdit","defaultUi","passwordEdit","subjectDN","traverse","variables","Radial","Reason","Reasons","cornerStyle","RefElement","binding","SetProperty","SignData","Signature","Signing","Solid","Speak","disable","priority","Stipple","rate","Subform","allowMacro","mergeMode","restoreState","scope","afterBreakAfter","savedNoLayoutFailure","overflowExtra","overflowNode","SubjectDN","delimiter","kv","SubjectDNs","Submit","embedPDF","textEncoding","xdpContent","baseProfile","pageAreas","mainHtml","breakBeforeTarget","pageAreaParent","targetPageArea","hasSomething","hasSomethingCounter","htmlContentAreas","Text","acc","allowRichText","multiLine","vScrollPolicy","Time","TimeStamp","server","ToolTip","Traversal","Traverse","Validate","formatTest","scriptTest","valueName","Variables","TemplateNamespace","attrs","createText","Binder","emptyMerge","_isConsumeData","_mergeMode","_isMatchTemplate","_bindElement","_bindValue","formNode","_findDataByNameToConsume","isValue","global","_setProperties","targetNodes","targetNode","targetParent","Reflect","construct","_bindItems","labelNodes","labelNode","valueNodes","valueNode","label","_bindOccurrences","baseClone","_createOccurrences","currentNumber","nodeClone","_getOccurInfo","_setAndBind","uselessNodes","dataChildren","dataChild","DataHandler","dataset","serialize","storage","storageEntry","CONFIG_NS_ID","Acrobat","acrobat7","autoSave","common","validateApprovalSignatures","submitUrl","Acrobat7","dynamicRender","ADBE_JSConsole","ADBE_JSDebugger","AddSilentPrint","AddViewerPreferences","AdjustData","AdobeExtensionLevel","Agent","AlwaysEmbed","Amd","Attributes","AutoSave","Base","BatchOutput","BehaviorOverride","Cache","templateCache","Change","Common","messaging","suppressBanner","validationMessaging","versionControl","Compress","CompressLogicalStructure","CompressObjectStream","Compression","compressLogicalStructure","compressObjectStream","Config","acrobat","present","trace","agent","Conformance","ContentCopy","Copies","Creator","CurrentPage","Data","adjustData","incrementalLoad","outputXSL","startNode","window","xsl","excludeNS","Debug","DefaultTypeface","writingScript","Destination","DocumentAssembly","Driver","DuplexOption","DynamicRender","Embed","encryptionLevel","EncryptionLevel","Enforce","Equate","force","to","EquateRange","_unicodeRange","unicodeRange","unicodeRegex","Exclude","ExcludeNS","FlipLabel","embed","subsetBelow","alwaysEmbed","defaultTypeface","neverEmbed","FormFieldFilling","GroupParent","IfEmpty","IncludeXDPContent","IncrementalLoad","IncrementalMerge","Interactive","Jog","LabelPrinter","batchOutput","flipLabel","Layout","Level","Linearized","Locale","LocaleSet","Log","threshold","MapElement","equate","equateRange","MediumInfo","msgId","severity","Messaging","Mode","ModifyAnnots","MsgId","NameAttr","NeverEmbed","NumberOfCopies","OpenAction","destination","Output","OutputBin","OutputXSL","Overprint","Packets","PageOffset","PageRange","numbers","Pagination","PaginationOverride","Part","Pcl","jog","mediumInfo","outputBin","pageOffset","staple","Pdf","adobeExtensionLevel","interactive","linearized","pdfa","producer","renderPolicy","scriptModel","silentPrint","submitFormat","tagged","Pdfa","amd","conformance","includeXDPContent","Permissions","accessibleContent","change","contentCopy","documentAssembly","formFieldFilling","modifyAnnots","plaintextMetadata","print","printHighQuality","PickTrayByPDFSize","PlaintextMetadata","Presence","Present","behaviorOverride","copies","incrementalMerge","overprint","pagination","paginationOverride","driver","labelPrinter","pcl","webClient","zpl","Print","PrintHighQuality","PrintScaling","PrinterName","Producer","Ps","Range","Record","Relevant","Rename","RenderPolicy","RunScripts","currentPage","exclude","runScripts","ScriptModel","Severity","SilentPrint","addSilentPrint","printerName","Staple","StartNode","StartPage","SubmitFormat","SubmitUrl","SubsetBelow","SuppressBanner","Tagged","startPage","Threshold","To","TemplateCache","maxEntries","Trace","groupParent","ifEmpty","nameAttr","rename","whitespace","Uri","ValidateApprovalSignatures","ValidationMessaging","Version","VersionControl","outputBelow","sourceAbove","sourceBelow","ViewerPreferences","addViewerPreferences","duplexOption","enforce","numberOfCopies","pageRange","pickTrayByPDFSize","printScaling","WebClient","Whitespace","Window","pair","Xdc","Xdp","packets","Xsl","debug","Zpl","ConfigNamespace","compress","CONNECTION_SET_NS_ID","ConnectionSet","wsdlConnection","xmlConnection","xsdConnection","EffectiveInputPolicy","EffectiveOutputPolicy","Operation","RootElement","SoapAction","SoapAddress","WsdlAddress","WsdlConnection","dataDescription","effectiveInputPolicy","effectiveOutputPolicy","soapAction","soapAddress","wsdlAddress","XmlConnection","XsdConnection","rootElement","ConnectionSetNamespace","DATASETS_NS_ID","Datasets","DatasetsNamespace","LOCALE_SET_NS_ID","CalendarSymbols","dayNames","eraNames","meridiemNames","monthNames","CurrencySymbol","CurrencySymbols","currencySymbol","DatePattern","DatePatterns","datePattern","DateTimeSymbols","Day","DayNames","abbr","day","Era","EraNames","era","calendarSymbols","currencySymbols","datePatterns","dateTimeSymbols","numberPatterns","numberSymbols","timePatterns","typeFaces","Meridiem","MeridiemNames","meridiem","Month","MonthNames","month","NumberPattern","NumberPatterns","numberPattern","NumberSymbol","NumberSymbols","numberSymbol","TimePattern","TimePatterns","timePattern","TypeFace","TypeFaces","typeFace","LocaleSetNamespace","SIGNATURE_NS_ID","SignatureNamespace","STYLESHEET_NS_ID","Stylesheet","StylesheetNamespace","XDP_NS_ID","uuid","XdpNamespace","XHTML_NS_ID","$richText","VALID_STYLES","StyleMapping","original","spacesRegExp","crlfRegExp","crlfForRichTextRegExp","mapStyle","styleStr","richText","newValue","SUB_SUPER_SCRIPT_FACTOR","VERTICAL_FACTOR","checkStyle","NoWhites","XhtmlObject","mustPop","pushFont","Body","Br","Html","Li","Ol","siblings","Span","Sub","Sup","Ul","XhtmlNamespace","body","br","li","ol","span","sub","sup","ul","NamespaceSetUp","UnknownNamespace","namespaceId","Root","Empty","Builder","rootNameSpace","_namespaceStack","_nsAgnosticLevel","_namespacePrefixes","_namespaces","_nextNsId","_currentNamespace","buildRoot","build","nsPrefix","namespace","prefixes","hasNamespaceDef","_searchNamespace","_addNamespacePrefix","dataTemplate","nsAttrs","xfaAttrs","nsToUse","_getNamespaceToUse","namespaceToUse","hasNamespace","nsAgnostic","isNsAgnostic","nsName","prefixStack","XFAParser","_builder","_globalData","_ids","_current","_whiteRegex","_nbsps","_richText","_mkAttributes","attributeObj","_getNameAndPrefix","attributesObj","XFAFactory","_createDocument","binder","dataHandler","_createPagesHelper","nextIteration","setTimeout","_createPages","pages","dims","getBoundingBox","getNumPages","setImages","setFonts","missingFonts","appendFonts","getPages","serializeData","getRichTextAsHtml","rc","newRoot","attr","AnnotationFactory","createGlobals","ensureCatalog","ensureDoc","xfaDatasets","annotationGlobals","collectFields","_getPageIndex","ensure","_create","parameters","LinkAnnotation","TextAnnotation","fieldType","TextWidgetAnnotation","ButtonWidgetAnnotation","ChoiceWidgetAnnotation","SignatureWidgetAnnotation","WidgetAnnotation","PopupAnnotation","FreeTextAnnotation","LineAnnotation","SquareAnnotation","CircleAnnotation","PolylineAnnotation","PolygonAnnotation","CaretAnnotation","InkAnnotation","HighlightAnnotation","UnderlineAnnotation","SquigglyAnnotation","StrikeOutAnnotation","StampAnnotation","FileAttachmentAnnotation","Annotation","annotDict","annotRef","generateImages","imagePromises","bitmapId","saveNewAnnotations","promises","annotation","deleted","annotationType","createNewAnnotation","smaskStream","smaskRef","printNewAnnotations","createNewPrintAnnotation","getRgbColor","defaultColor","getPdfColorArray","getQuadPoints","quadPoints","quadPointsLists","getTransformMatrix","setTitle","setContents","setModificationDate","setFlags","setRectangle","setColor","setBorderStyle","setAppearance","setOptionalContent","MK","setBorderAndBackgroundColors","setRotation","_streams","isLocked","isContentLocked","structParent","annotationFlags","contentsObj","_contents","hasAppearance","modificationDate","hasOwnCanvas","noRotate","noHTML","kidIds","fieldName","_constructFieldName","_isOffscreenCanvasSupported","_fallbackFontDict","_needAppearances","_hasFlag","_isViewable","_isPrintable","mustBeViewed","_renderForms","noView","viewable","mustBePrinted","noPrint","printable","_parseStringHelper","setDefaultAppearance","defaultAppearance","_defaultAppearance","defaultAppearanceData","_title","contents","hasFlag","setLineEndings","lineEndings","mk","AnnotationBorderStyle","dictType","setWidth","setStyle","setDashArray","setHorizontalCornerRadius","setVerticalCornerRadius","appearanceStates","normalAppearanceState","oc","loadResources","objectLoader","renderForms","isUsingOwnCanvas","separateForm","separateCanvas","appearanceDict","hasTextContent","extractTextContent","firstPosition","textPosition","getFieldObject","strokeColor","fillColor","loopDict","dashArray","horizontalCornerRadius","verticalCornerRadius","forceStyle","allZeros","validNumber","MarkupAnnotation","rawIRT","inReplyTo","rt","replyType","popupRef","titleObj","creationDate","setCreationDate","_setDefaultAppearance","blendMode","fillAlpha","pointsCallback","MIN_VALUE","pointsArray","mX","MX","mY","MY","formDict","appearanceStream","gsDict","stateDict","annotationRef","createNewAppearanceStream","annotationDict","apRef","createNewDict","newAnnotation","refToReplace","fieldValue","_decodeFormValue","defaultFieldValue","_hasValueFromXFA","getValue","alternativeText","localResources","acroFormResources","appearanceResources","_fieldResources","mergedResources","fieldFlags","readOnly","hasFieldFlag","formValue","getBorderAndBackgroundAppearances","_hasText","_getAppearance","_getMKDict","amendSavedDict","originalDict","encoder","maybeMK","changes","AP","_getSaveFieldResources","rotationMatrix","isPassword","formattedValue","combo","exportValue","displayValue","lineCount","defaultPadding","defaultHPadding","_getFontData","encodedLines","encodingError","encodedString","fakeUnicodeFont","newFont","oldFont","savedDefaultAppearance","_computeFontSize","defaultVPadding","alignment","textAlignment","_getMultilineAppearance","_getCombAppearance","bottomPadding","prevInfo","renderedText","_renderText","appearanceData","_getTextWidth","numberOfLines","roundWithTwoDigits","textWidth","cachedLines","isTooBig","fsize","_splitLine","hPadding","vPadding","shiftStr","localFont","acroFormFont","subFontDict","subResourcesDict","maximumLength","doNotScroll","combWidth","renderedComb","lastSpacePosInStringStart","lastSpacePosInStringEnd","startChunk","multiline","charLimit","editable","checkedAppearance","uncheckedAppearance","checkBox","radioButton","pushButton","isTooltipOnly","_processCheckBox","_processRadioButton","_processPushButton","buttonValue","savedAppearance","savedMatrix","_saveCheckbox","_saveRadioButton","parentData","_getDefaultCheckedAppearance","FONT_RATIO","xShift","yShift","customAppearance","normalAppearance","asValue","yes","exportValues","otherYes","fieldParent","fieldParentValue","indices","hasIndices","isOptionArray","multiSelect","numItems","multipleSelection","valueIndices","numberOfVisibleLines","firstIndex","minIndex","maxIndex","vpadding","DEFAULT_ICON_SIZE","stateModel","parentItem","parentRect","parentFlags","user","freetext","da","helv","lineAscent","firstPoint","clipBox","lineCoordinates","interiorColor","borderAdjust","controlPointsDistance","xMid","yMid","xOffset","yOffset","vertices","rawVertices","vertex","inkLists","rawInkLists","inkList","ink","appearanceBuffer","bezier","curve","outlines","outline","xEnd","buf32","hasAlpha","fillStyle","jpegBufferPromise","convertToBlob","quality","xobjectName","imageName","alphaBuffer","stamp","xobject","decodeString","DatasetXMLParser","DatasetReader","XRef","firstXRefStmPos","_xrefStms","_cacheMap","_pendingRefs","_newPersistentRefNum","_newTemporaryRefNum","resetNewTemporaryRef","setStartXRef","startXRefQueue","trailerDict","readXRef","indexObjects","processXRefTable","tableState","entryNum","streamPos","parserBuf1","parserBuf2","readXRefTable","firstEntryNum","free","uncompressed","processXRefStream","streamParameters","byteWidths","streamState","entryRanges","readXRefStream","typeFieldWidth","offsetFieldWidth","generationFieldWidth","generation","typeByte","offsetByte","generationByte","TAB","PERCENT","LT","readToken","skipUntil","skipped","gEndobjRegExp","gStartxrefRegExp","objRegExp","trailerBytes","startxrefBytes","xrefBytes","bufferStr","trailers","xrefStms","contentLength","updateEntries","xrefTagOffset","xrefStm","trailerDicts","isEncrypted","trailerError","_generationFallback","validPagesDict","pagesDict","pagesCount","startXRefParsedCache","lastXRefStreamPos","getEntry","xrefEntry","fetchUncompressed","fetchCompressed","tableOffset","DEFAULT_USER_UNIT","LETTER_SIZE_MEDIABOX","Page","globalIdFactory","xfaFactory","resourcesPromise","idCounters","_localIdFactory","_getInheritableProperty","_getBoundingBox","box","mediaBox","cropBox","userUnit","_onSubStreamError","getContentStream","replaceIdByRef","deletedAnnotations","existingAnnotations","partialEvaluator","annotationsArray","savedDict","_parsedAnnotations","newRefsPromises","contentStreamPromise","newAnnotationsPromise","newAnnotations","annotationGlobalsPromise","missingBitmaps","annotationWithBitmaps","dataPromises","pageListPromise","contentStream","transparency","pageOpList","findIndex","intentAny","intentDisplay","intentPrint","opListPromises","opLists","getStructTree","_parseStructTree","getAnnotationsData","annotationsData","textContentPromises","isVisible","annots","annotationPromises","sortedAnnotations","popupAnnotations","PDF_HEADER_SIGNATURE","STARTXREF_SIGNATURE","ENDOBJ_SIGNATURE","FINGERPRINT_FIRST_BYTES","EMPTY_FINGERPRINT","backwards","signatureEnd","PDFDocument","_pagePromises","_version","_globalIdFactory","docId","linearization","startXRefLength","checkHeader","parseStartXRef","_hasOnlyDocumentSignatures","recursionDepth","RECURSION_LIMIT","isSignature","isInvisible","_xfaStreams","enableXfa","formInfo","hasAcroForm","isPureXfa","htmlForXfa","loadXfaImages","xfaImagesDict","loadXfaFonts","serializeXfaData","hasFields","hasSignatures","sigFlags","hasOnlyDocumentSignatures","documentInfo","docInfo","PDFFormatVersion","Language","EncryptFilterName","IsLinearized","IsAcroFormPresent","IsXFAPresent","IsCollectionPresent","IsSignaturesPresent","infoDict","customValue","Custom","fingerprints","hexString","hex","idArray","hashOriginal","hashModified","_getLinearizationPage","cachedPromise","checkFirstPage","checkLastPage","pagesTree","reasonAll","collectFieldObjects","fieldRef","visitedRefs","partName","fieldObjects","allFields","fieldPromises","allPromises","hasJSActions","_parseHasJSActions","catalogJsActions","fieldObject","calculationOrderIds","calculationOrder","parseDocBaseUrl","BasePdfManager","_docBaseUrl","_docId","_password","pdfDocument","ensureXRef","requestLoadedStream","sendProgressiveData","updatePassword","terminate","LocalPdfManager","_loadedStreamPromise","NetworkPdfManager","streamManager","CallbackKind","UNKNOWN","DATA","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","wrapReason","MessageHandler","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","processStreamMessage","cbSourceName","cbTargetName","postMessage","createStreamSink","addEventListener","ah","sendWithStream","queueingStrategy","ReadableStream","controller","startCapability","startCall","pullCall","cancelCall","pull","pullCapability","cancel","cancelCapability","isCancelled","lastDesiredSize","sinkCapability","onPull","onCancel","streamController","deleteStreamController","allSettled","destroy","removeEventListener","PDFWorkerStream","_msgHandler","_contentLength","_fullRequestReader","_rangeRequestReaders","getFullReader","PDFWorkerStreamReader","PDFWorkerStreamRangeReader","_isRangeSupported","_isStreamingSupported","readableStream","_reader","getReader","_headersReady","isRangeSupported","headersReady","WorkerTask","terminated","_capability","finished","finish","WorkerMessageHandler","setup","port","testMessageProcessed","createDocumentHandler","docParams","cancelXHRs","WorkerTasks","apiVersion","workerVersion","enumerableProperties","workerHandlerName","startWorkerTask","finishWorkerTask","loadDocument","getPdfManager","pdfManagerArgs","pdfManagerCapability","newPdfManager","pdfStream","cachedChunks","fullRequest","flushChunks","pdfFile","setupDoc","onSuccess","doc","pdfInfo","onFailure","pdfManagerReady","globalPromises","_structTreeRoot","newAnnotationPromises","finally","newXrefInfo","infoObj","operatorListInfo","waitOn","cleanupPromise","initializeFromPort","isMessagePort","maybePort","pdfjsVersion","pdfjsBuild"],"sourceRoot":""}