Sign in to your account
@@ -15,7 +19,7 @@ export default function SignInPage() {
- {process.env.NEXT_PUBLIC_DISABLE_SIGNUP !== 'true' && (
+ {NEXT_PUBLIC_DISABLE_SIGNUP !== 'true' && (
Don't have an account?{' '}
diff --git a/apps/web/src/app/(unauthenticated)/signup/page.tsx b/apps/web/src/app/(unauthenticated)/signup/page.tsx
index 353716d9b..996797d55 100644
--- a/apps/web/src/app/(unauthenticated)/signup/page.tsx
+++ b/apps/web/src/app/(unauthenticated)/signup/page.tsx
@@ -1,10 +1,14 @@
import Link from 'next/link';
import { redirect } from 'next/navigation';
+import { env } from 'next-runtime-env';
+
import { SignUpForm } from '~/components/forms/signup';
export default function SignUpPage() {
- if (process.env.NEXT_PUBLIC_DISABLE_SIGNUP === 'true') {
+ const NEXT_PUBLIC_DISABLE_SIGNUP = env('NEXT_PUBLIC_DISABLE_SIGNUP');
+
+ if (NEXT_PUBLIC_DISABLE_SIGNUP === 'true') {
redirect('/signin');
}
diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx
index ac88469b0..f36d59353 100644
--- a/apps/web/src/app/layout.tsx
+++ b/apps/web/src/app/layout.tsx
@@ -2,6 +2,8 @@ import { Suspense } from 'react';
import { Caveat, Inter } from 'next/font/google';
+import { PublicEnvScript, env } from 'next-runtime-env';
+
import { FeatureFlagProvider } from '@documenso/lib/client-only/providers/feature-flag';
import { LocaleProvider } from '@documenso/lib/client-only/providers/locale';
import { getServerComponentAllFlags } from '@documenso/lib/server-only/feature-flags/get-server-component-feature-flag';
@@ -19,6 +21,8 @@ import './globals.css';
const fontInter = Inter({ subsets: ['latin'], variable: '--font-sans' });
const fontCaveat = Caveat({ subsets: ['latin'], variable: '--font-signature' });
+const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+
export const metadata = {
title: 'Documenso - The Open Source DocuSign Alternative',
description:
@@ -32,12 +36,12 @@ export const metadata = {
description:
'Join Documenso, the open signing infrastructure, and get a 10x better signing experience. Pricing starts at $30/mo. forever! Sign in now and enjoy a faster, smarter, and more beautiful document signing process. Integrates with your favorite tools, customizable, and expandable. Support our mission and become a part of our open-source community.',
type: 'website',
- images: [`${process.env.NEXT_PUBLIC_WEBAPP_URL}/opengraph-image.jpg`],
+ images: [`${NEXT_PUBLIC_WEBAPP_URL}/opengraph-image.jpg`],
},
twitter: {
site: '@documenso',
card: 'summary_large_image',
- images: [`${process.env.NEXT_PUBLIC_WEBAPP_URL}/opengraph-image.jpg`],
+ images: [`${NEXT_PUBLIC_WEBAPP_URL}/opengraph-image.jpg`],
description:
'Join Documenso, the open signing infrastructure, and get a 10x better signing experience. Pricing starts at $30/mo. forever! Sign in now and enjoy a faster, smarter, and more beautiful document signing process. Integrates with your favorite tools, customizable, and expandable. Support our mission and become a part of our open-source community.',
},
@@ -59,6 +63,7 @@ export default async function RootLayout({ children }: { children: React.ReactNo
+
diff --git a/apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx b/apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx
index d04b3a998..727627ddd 100644
--- a/apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx
+++ b/apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx
@@ -2,6 +2,8 @@
import React from 'react';
+import { env } from 'next-runtime-env';
+
import { useCopyToClipboard } from '@documenso/lib/client-only/hooks/use-copy-to-clipboard';
import { getRecipientType } from '@documenso/lib/client-only/recipient-type';
import { recipientAbbreviation } from '@documenso/lib/utils/recipient-formatter';
@@ -16,6 +18,8 @@ export type AvatarWithRecipientProps = {
};
export function AvatarWithRecipient({ recipient }: AvatarWithRecipientProps) {
+ const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+
const [, copy] = useCopyToClipboard();
const { toast } = useToast();
@@ -24,7 +28,7 @@ export function AvatarWithRecipient({ recipient }: AvatarWithRecipientProps) {
return;
}
- void copy(`${process.env.NEXT_PUBLIC_WEBAPP_URL}/sign/${recipient.token}`).then(() => {
+ void copy(`${NEXT_PUBLIC_WEBAPP_URL}/sign/${recipient.token}`).then(() => {
toast({
title: 'Copied to clipboard',
description: 'The signing link has been copied to your clipboard.',
diff --git a/apps/web/src/helpers/get-asset-buffer.ts b/apps/web/src/helpers/get-asset-buffer.ts
index 85887071e..12c27d1a5 100644
--- a/apps/web/src/helpers/get-asset-buffer.ts
+++ b/apps/web/src/helpers/get-asset-buffer.ts
@@ -1,3 +1,5 @@
+import { env } from 'next-runtime-env';
+
/**
* getAssetBuffer is used to retrieve array buffers for various assets
* that are hosted in the `public` folder.
@@ -8,7 +10,9 @@
* @param path The path to the asset, relative to the `public` folder.
*/
export const getAssetBuffer = async (path: string) => {
- const baseUrl = process.env.NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+
+ const baseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
return fetch(new URL(path, baseUrl)).then(async (res) => res.arrayBuffer());
};
diff --git a/package-lock.json b/package-lock.json
index 69825e8d8..d92461436 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,6 +9,9 @@
"apps/*",
"packages/*"
],
+ "dependencies": {
+ "next-runtime-env": "^3.2.0"
+ },
"devDependencies": {
"@commitlint/cli": "^17.7.1",
"@commitlint/config-conventional": "^17.7.0",
@@ -14503,6 +14506,19 @@
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
+ "node_modules/next-runtime-env": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/next-runtime-env/-/next-runtime-env-3.2.0.tgz",
+ "integrity": "sha512-rwe3flUgSRm51hzRN4Vt5MMSYMS4aDMEPJa0r+CMONA3UyUZl8Y5O8zjHSIlaNb3yquTCttZ0ahObPyPprBj9g==",
+ "dependencies": {
+ "next": "^14",
+ "react": "^18"
+ },
+ "peerDependencies": {
+ "next": "^14",
+ "react": "^18"
+ }
+ },
"node_modules/next-themes": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.2.1.tgz",
diff --git a/package.json b/package.json
index 30076100f..853de1c6b 100644
--- a/package.json
+++ b/package.json
@@ -47,7 +47,9 @@
"apps/*",
"packages/*"
],
- "dependencies": {},
+ "dependencies": {
+ "next-runtime-env": "^3.2.0"
+ },
"overrides": {
"next-auth": {
"next": "14.0.3"
diff --git a/packages/ee/server-only/limits/client.ts b/packages/ee/server-only/limits/client.ts
index 7f48e6856..9bb2bd0ac 100644
--- a/packages/ee/server-only/limits/client.ts
+++ b/packages/ee/server-only/limits/client.ts
@@ -1,7 +1,8 @@
import { APP_BASE_URL } from '@documenso/lib/constants/app';
import { FREE_PLAN_LIMITS } from './constants';
-import { TLimitsResponseSchema, ZLimitsResponseSchema } from './schema';
+import type { TLimitsResponseSchema } from './schema';
+import { ZLimitsResponseSchema } from './schema';
export type GetLimitsOptions = {
headers?: Record;
@@ -10,7 +11,7 @@ export type GetLimitsOptions = {
export const getLimits = async ({ headers }: GetLimitsOptions = {}) => {
const requestHeaders = headers ?? {};
- const url = new URL(`${APP_BASE_URL}/api/limits`);
+ const url = new URL('/api/limits', APP_BASE_URL ?? 'http://localhost:3000');
return fetch(url, {
headers: {
diff --git a/packages/email/template-components/template-document-self-signed.tsx b/packages/email/template-components/template-document-self-signed.tsx
index 90a1d3951..db16fb000 100644
--- a/packages/email/template-components/template-document-self-signed.tsx
+++ b/packages/email/template-components/template-document-self-signed.tsx
@@ -1,3 +1,5 @@
+import { env } from 'next-runtime-env';
+
import { Button, Column, Img, Link, Section, Text } from '../components';
import { TemplateDocumentImage } from './template-document-image';
@@ -10,7 +12,9 @@ export const TemplateDocumentSelfSigned = ({
documentName,
assetBaseUrl,
}: TemplateDocumentSelfSignedProps) => {
- const signUpUrl = `${process.env.NEXT_PUBLIC_WEBAPP_URL ?? 'http://localhost:3000'}/signup`;
+ const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+
+ const signUpUrl = `${NEXT_PUBLIC_WEBAPP_URL ?? 'http://localhost:3000'}/signup`;
const getAssetUrl = (path: string) => {
return new URL(path, assetBaseUrl).toString();
diff --git a/packages/email/template-components/template-reset-password.tsx b/packages/email/template-components/template-reset-password.tsx
index 8788d60b8..d05393c83 100644
--- a/packages/email/template-components/template-reset-password.tsx
+++ b/packages/email/template-components/template-reset-password.tsx
@@ -1,3 +1,5 @@
+import { env } from 'next-runtime-env';
+
import { Button, Section, Text } from '../components';
import { TemplateDocumentImage } from './template-document-image';
@@ -8,6 +10,8 @@ export interface TemplateResetPasswordProps {
}
export const TemplateResetPassword = ({ assetBaseUrl }: TemplateResetPasswordProps) => {
+ const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+
return (
<>
@@ -24,7 +28,7 @@ export const TemplateResetPassword = ({ assetBaseUrl }: TemplateResetPasswordPro
Sign In
diff --git a/packages/lib/constants/app.ts b/packages/lib/constants/app.ts
index 827fcef0a..cee5a7586 100644
--- a/packages/lib/constants/app.ts
+++ b/packages/lib/constants/app.ts
@@ -1,8 +1,12 @@
-export const IS_APP_MARKETING = process.env.NEXT_PUBLIC_PROJECT === 'marketing';
-export const IS_APP_WEB = process.env.NEXT_PUBLIC_PROJECT === 'web';
+import { env } from 'next-runtime-env';
+
+const NEXT_PUBLIC_PROJECT = process.env.NEXT_PUBLIC_PROJECT;
+const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+const NEXT_PUBLIC_MARKETING_URL = env('NEXT_PUBLIC_MARKETING_URL');
+
+export const IS_APP_MARKETING = NEXT_PUBLIC_PROJECT === 'marketing';
+export const IS_APP_WEB = NEXT_PUBLIC_PROJECT === 'web';
export const APP_FOLDER = IS_APP_MARKETING ? 'marketing' : 'web';
-export const APP_BASE_URL = IS_APP_WEB
- ? process.env.NEXT_PUBLIC_WEBAPP_URL
- : process.env.NEXT_PUBLIC_MARKETING_URL;
+export const APP_BASE_URL = IS_APP_WEB ? NEXT_PUBLIC_WEBAPP_URL : NEXT_PUBLIC_MARKETING_URL;
diff --git a/packages/lib/constants/feature-flags.ts b/packages/lib/constants/feature-flags.ts
index e972b47c2..a0e958e3a 100644
--- a/packages/lib/constants/feature-flags.ts
+++ b/packages/lib/constants/feature-flags.ts
@@ -1,5 +1,10 @@
+import { env } from 'next-runtime-env';
+
import { APP_BASE_URL } from './app';
+const NEXT_PUBLIC_FEATURE_BILLING_ENABLED = env('NEXT_PUBLIC_FEATURE_BILLING_ENABLED');
+const NEXT_PUBLIC_POSTHOG_KEY = env('NEXT_PUBLIC_POSTHOG_KEY');
+
/**
* The flag name for global session recording feature flag.
*/
@@ -16,7 +21,7 @@ export const FEATURE_FLAG_POLL_INTERVAL = 30000;
* Does not take any person or group properties into account.
*/
export const LOCAL_FEATURE_FLAGS: Record = {
- app_billing: process.env.NEXT_PUBLIC_FEATURE_BILLING_ENABLED === 'true',
+ app_billing: NEXT_PUBLIC_FEATURE_BILLING_ENABLED === 'true',
marketing_header_single_player_mode: false,
} as const;
@@ -24,7 +29,7 @@ export const LOCAL_FEATURE_FLAGS: Record = {
* Extract the PostHog configuration from the environment.
*/
export function extractPostHogConfig(): { key: string; host: string } | null {
- const postHogKey = process.env.NEXT_PUBLIC_POSTHOG_KEY;
+ const postHogKey = NEXT_PUBLIC_POSTHOG_KEY;
const postHogHost = `${APP_BASE_URL}/ingest`;
if (!postHogKey || !postHogHost) {
diff --git a/packages/lib/next-auth/auth-options.ts b/packages/lib/next-auth/auth-options.ts
index 3b9492807..dc5f1b6f4 100644
--- a/packages/lib/next-auth/auth-options.ts
+++ b/packages/lib/next-auth/auth-options.ts
@@ -7,6 +7,7 @@ import type { JWT } from 'next-auth/jwt';
import CredentialsProvider from 'next-auth/providers/credentials';
import type { GoogleProfile } from 'next-auth/providers/google';
import GoogleProvider from 'next-auth/providers/google';
+import { env } from 'next-runtime-env';
import { prisma } from '@documenso/prisma';
@@ -15,6 +16,8 @@ import { validateTwoFactorAuthentication } from '../server-only/2fa/validate-2fa
import { getUserByEmail } from '../server-only/user/get-user-by-email';
import { ErrorCode } from './error-codes';
+const NEXT_PUBLIC_DISABLE_SIGNUP = env('NEXT_PUBLIC_DISABLE_SIGNUP');
+
export const NEXT_AUTH_OPTIONS: AuthOptions = {
adapter: PrismaAdapter(prisma),
secret: process.env.NEXTAUTH_SECRET ?? 'secret',
@@ -166,7 +169,7 @@ export const NEXT_AUTH_OPTIONS: AuthOptions = {
async signIn({ user }) {
// We do this to stop OAuth providers from creating an account
// when signups are disabled
- if (process.env.NEXT_PUBLIC_DISABLE_SIGNUP === 'true') {
+ if (NEXT_PUBLIC_DISABLE_SIGNUP === 'true') {
const userData = await getUserByEmail({ email: user.email! });
return !!userData;
diff --git a/packages/lib/server-only/auth/send-confirmation-email.ts b/packages/lib/server-only/auth/send-confirmation-email.ts
index 7defdb1bd..c808e8f3d 100644
--- a/packages/lib/server-only/auth/send-confirmation-email.ts
+++ b/packages/lib/server-only/auth/send-confirmation-email.ts
@@ -1,5 +1,7 @@
import { createElement } from 'react';
+import { env } from 'next-runtime-env';
+
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import { ConfirmEmailTemplate } from '@documenso/email/templates/confirm-email';
@@ -10,6 +12,10 @@ export interface SendConfirmationEmailProps {
}
export const sendConfirmationEmail = async ({ userId }: SendConfirmationEmailProps) => {
+ const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+ const NEXT_PRIVATE_SMTP_FROM_NAME = env('NEXT_PRIVATE_SMTP_FROM_NAME');
+ const NEXT_PRIVATE_SMTP_FROM_ADDRESS = env('NEXT_PRIVATE_SMTP_FROM_ADDRESS');
+
const user = await prisma.user.findFirstOrThrow({
where: {
id: userId,
@@ -30,10 +36,10 @@ export const sendConfirmationEmail = async ({ userId }: SendConfirmationEmailPro
throw new Error('Verification token not found for the user');
}
- const assetBaseUrl = process.env.NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
const confirmationLink = `${assetBaseUrl}/verify-email/${verificationToken.token}`;
- const senderName = process.env.NEXT_PRIVATE_SMTP_FROM_NAME || 'Documenso';
- const senderAdress = process.env.NEXT_PRIVATE_SMTP_FROM_ADDRESS || 'noreply@documenso.com';
+ const senderName = NEXT_PRIVATE_SMTP_FROM_NAME || 'Documenso';
+ const senderAdress = NEXT_PRIVATE_SMTP_FROM_ADDRESS || 'noreply@documenso.com';
const confirmationTemplate = createElement(ConfirmEmailTemplate, {
assetBaseUrl,
diff --git a/packages/lib/server-only/auth/send-forgot-password.ts b/packages/lib/server-only/auth/send-forgot-password.ts
index e62d5e176..125db9338 100644
--- a/packages/lib/server-only/auth/send-forgot-password.ts
+++ b/packages/lib/server-only/auth/send-forgot-password.ts
@@ -1,5 +1,7 @@
import { createElement } from 'react';
+import { env } from 'next-runtime-env';
+
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import { ForgotPasswordTemplate } from '@documenso/email/templates/forgot-password';
@@ -10,6 +12,8 @@ export interface SendForgotPasswordOptions {
}
export const sendForgotPassword = async ({ userId }: SendForgotPasswordOptions) => {
+ const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+
const user = await prisma.user.findFirstOrThrow({
where: {
id: userId,
@@ -29,8 +33,8 @@ export const sendForgotPassword = async ({ userId }: SendForgotPasswordOptions)
}
const token = user.PasswordResetToken[0].token;
- const assetBaseUrl = process.env.NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
- const resetPasswordLink = `${process.env.NEXT_PUBLIC_WEBAPP_URL}/reset-password/${token}`;
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const resetPasswordLink = `${NEXT_PUBLIC_WEBAPP_URL}/reset-password/${token}`;
const template = createElement(ForgotPasswordTemplate, {
assetBaseUrl,
diff --git a/packages/lib/server-only/auth/send-reset-password.ts b/packages/lib/server-only/auth/send-reset-password.ts
index 9479f1a45..3dcec113c 100644
--- a/packages/lib/server-only/auth/send-reset-password.ts
+++ b/packages/lib/server-only/auth/send-reset-password.ts
@@ -1,5 +1,7 @@
import { createElement } from 'react';
+import { env } from 'next-runtime-env';
+
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import { ResetPasswordTemplate } from '@documenso/email/templates/reset-password';
@@ -10,13 +12,15 @@ export interface SendResetPasswordOptions {
}
export const sendResetPassword = async ({ userId }: SendResetPasswordOptions) => {
+ const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+
const user = await prisma.user.findFirstOrThrow({
where: {
id: userId,
},
});
- const assetBaseUrl = process.env.NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
const template = createElement(ResetPasswordTemplate, {
assetBaseUrl,
diff --git a/packages/lib/server-only/document/delete-document.ts b/packages/lib/server-only/document/delete-document.ts
index 22365a727..58b1f48a9 100644
--- a/packages/lib/server-only/document/delete-document.ts
+++ b/packages/lib/server-only/document/delete-document.ts
@@ -2,6 +2,8 @@
import { createElement } from 'react';
+import { env } from 'next-runtime-env';
+
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import DocumentCancelTemplate from '@documenso/email/templates/document-cancel';
@@ -16,6 +18,8 @@ export type DeleteDocumentOptions = {
status: DocumentStatus;
};
+const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+
export const deleteDocument = async ({ id, userId, status }: DeleteDocumentOptions) => {
// if the document is a draft, hard-delete
if (status === DocumentStatus.DRAFT) {
@@ -49,7 +53,7 @@ export const deleteDocument = async ({ id, userId, status }: DeleteDocumentOptio
if (document.Recipient.length > 0) {
await Promise.all(
document.Recipient.map(async (recipient) => {
- const assetBaseUrl = process.env.NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
const template = createElement(DocumentCancelTemplate, {
documentName: document.title,
diff --git a/packages/lib/server-only/document/resend-document.tsx b/packages/lib/server-only/document/resend-document.tsx
index da4ffcb58..a048cf600 100644
--- a/packages/lib/server-only/document/resend-document.tsx
+++ b/packages/lib/server-only/document/resend-document.tsx
@@ -1,5 +1,7 @@
import { createElement } from 'react';
+import { env } from 'next-runtime-env';
+
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import { DocumentInviteEmailTemplate } from '@documenso/email/templates/document-invite';
@@ -14,6 +16,8 @@ export type ResendDocumentOptions = {
recipients: number[];
};
+const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+
export const resendDocument = async ({ documentId, userId, recipients }: ResendDocumentOptions) => {
const user = await prisma.user.findFirstOrThrow({
where: {
@@ -67,8 +71,8 @@ export const resendDocument = async ({ documentId, userId, recipients }: ResendD
'document.name': document.title,
};
- const assetBaseUrl = process.env.NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
- const signDocumentLink = `${process.env.NEXT_PUBLIC_WEBAPP_URL}/sign/${recipient.token}`;
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const signDocumentLink = `${NEXT_PUBLIC_WEBAPP_URL}/sign/${recipient.token}`;
const template = createElement(DocumentInviteEmailTemplate, {
documentName: document.title,
diff --git a/packages/lib/server-only/document/send-completed-email.ts b/packages/lib/server-only/document/send-completed-email.ts
index 226ff43ec..9b624a23c 100644
--- a/packages/lib/server-only/document/send-completed-email.ts
+++ b/packages/lib/server-only/document/send-completed-email.ts
@@ -1,5 +1,7 @@
import { createElement } from 'react';
+import { env } from 'next-runtime-env';
+
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import { DocumentCompletedEmailTemplate } from '@documenso/email/templates/document-completed';
@@ -12,6 +14,8 @@ export interface SendDocumentOptions {
}
export const sendCompletedEmail = async ({ documentId }: SendDocumentOptions) => {
+ const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+
const document = await prisma.document.findUnique({
where: {
id: documentId,
@@ -36,12 +40,12 @@ export const sendCompletedEmail = async ({ documentId }: SendDocumentOptions) =>
document.Recipient.map(async (recipient) => {
const { email, name, token } = recipient;
- const assetBaseUrl = process.env.NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
const template = createElement(DocumentCompletedEmailTemplate, {
documentName: document.title,
assetBaseUrl,
- downloadLink: `${process.env.NEXT_PUBLIC_WEBAPP_URL}/sign/${token}/complete`,
+ downloadLink: `${NEXT_PUBLIC_WEBAPP_URL}/sign/${token}/complete`,
});
await mailer.sendMail({
diff --git a/packages/lib/server-only/document/send-document.tsx b/packages/lib/server-only/document/send-document.tsx
index 25dc132ba..f72c79792 100644
--- a/packages/lib/server-only/document/send-document.tsx
+++ b/packages/lib/server-only/document/send-document.tsx
@@ -1,5 +1,7 @@
import { createElement } from 'react';
+import { env } from 'next-runtime-env';
+
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import { DocumentInviteEmailTemplate } from '@documenso/email/templates/document-invite';
@@ -14,6 +16,8 @@ export type SendDocumentOptions = {
};
export const sendDocument = async ({ documentId, userId }: SendDocumentOptions) => {
+ const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+
const user = await prisma.user.findFirstOrThrow({
where: {
id: userId,
@@ -59,8 +63,8 @@ export const sendDocument = async ({ documentId, userId }: SendDocumentOptions)
return;
}
- const assetBaseUrl = process.env.NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
- const signDocumentLink = `${process.env.NEXT_PUBLIC_WEBAPP_URL}/sign/${recipient.token}`;
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const signDocumentLink = `${NEXT_PUBLIC_WEBAPP_URL}/sign/${recipient.token}`;
const template = createElement(DocumentInviteEmailTemplate, {
documentName: document.title,
diff --git a/packages/lib/server-only/document/send-pending-email.ts b/packages/lib/server-only/document/send-pending-email.ts
index 75861be78..abbecd72a 100644
--- a/packages/lib/server-only/document/send-pending-email.ts
+++ b/packages/lib/server-only/document/send-pending-email.ts
@@ -1,5 +1,7 @@
import { createElement } from 'react';
+import { env } from 'next-runtime-env';
+
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import { DocumentPendingEmailTemplate } from '@documenso/email/templates/document-pending';
@@ -11,6 +13,8 @@ export interface SendPendingEmailOptions {
}
export const sendPendingEmail = async ({ documentId, recipientId }: SendPendingEmailOptions) => {
+ const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+
const document = await prisma.document.findFirst({
where: {
id: documentId,
@@ -41,7 +45,7 @@ export const sendPendingEmail = async ({ documentId, recipientId }: SendPendingE
const { email, name } = recipient;
- const assetBaseUrl = process.env.NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
const template = createElement(DocumentPendingEmailTemplate, {
documentName: document.title,
diff --git a/packages/lib/server-only/feature-flags/all.ts b/packages/lib/server-only/feature-flags/all.ts
index 40e759221..fff6cd855 100644
--- a/packages/lib/server-only/feature-flags/all.ts
+++ b/packages/lib/server-only/feature-flags/all.ts
@@ -1,6 +1,7 @@
import { NextRequest, NextResponse } from 'next/server';
import { getToken } from 'next-auth/jwt';
+import { env } from 'next-runtime-env';
import { LOCAL_FEATURE_FLAGS } from '@documenso/lib/constants/feature-flags';
import PostHogServerClient from '@documenso/lib/server-only/feature-flags/get-post-hog-server-client';
@@ -11,6 +12,9 @@ import { extractDistinctUserId, mapJwtToFlagProperties } from './get';
* Get all the evaluated feature flags based on the current user if possible.
*/
export default async function handlerFeatureFlagAll(req: Request) {
+ const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+ const NEXT_PUBLIC_MARKETING_URL = env('NEXT_PUBLIC_MARKETING_URL');
+
const requestHeaders = Object.fromEntries(req.headers.entries());
const nextReq = new NextRequest(req, {
@@ -38,11 +42,11 @@ export default async function handlerFeatureFlagAll(req: Request) {
const origin = req.headers.get('origin');
if (origin) {
- if (origin.startsWith(process.env.NEXT_PUBLIC_WEBAPP_URL ?? 'http://localhost:3000')) {
+ if (origin.startsWith(NEXT_PUBLIC_WEBAPP_URL ?? 'http://localhost:3000')) {
res.headers.set('Access-Control-Allow-Origin', origin);
}
- if (origin.startsWith(process.env.NEXT_PUBLIC_MARKETING_URL ?? 'http://localhost:3001')) {
+ if (origin.startsWith(NEXT_PUBLIC_MARKETING_URL ?? 'http://localhost:3001')) {
res.headers.set('Access-Control-Allow-Origin', origin);
}
}
diff --git a/packages/lib/server-only/feature-flags/get.ts b/packages/lib/server-only/feature-flags/get.ts
index 36aafc7b7..6f8a2c011 100644
--- a/packages/lib/server-only/feature-flags/get.ts
+++ b/packages/lib/server-only/feature-flags/get.ts
@@ -1,7 +1,9 @@
import { NextRequest, NextResponse } from 'next/server';
import { nanoid } from 'nanoid';
-import { JWT, getToken } from 'next-auth/jwt';
+import type { JWT } from 'next-auth/jwt';
+import { getToken } from 'next-auth/jwt';
+import { env } from 'next-runtime-env';
import { LOCAL_FEATURE_FLAGS, extractPostHogConfig } from '@documenso/lib/constants/feature-flags';
import PostHogServerClient from '@documenso/lib/server-only/feature-flags/get-post-hog-server-client';
@@ -13,6 +15,9 @@ import PostHogServerClient from '@documenso/lib/server-only/feature-flags/get-po
* @returns A Response with the feature flag value.
*/
export default async function handleFeatureFlagGet(req: Request) {
+ const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+ const NEXT_PUBLIC_MARKETING_URL = env('NEXT_PUBLIC_MARKETING_URL');
+
const { searchParams } = new URL(req.url ?? '');
const flag = searchParams.get('flag');
@@ -57,11 +62,11 @@ export default async function handleFeatureFlagGet(req: Request) {
const origin = req.headers.get('Origin');
if (origin) {
- if (origin.startsWith(process.env.NEXT_PUBLIC_WEBAPP_URL ?? 'http://localhost:3000')) {
+ if (origin.startsWith(NEXT_PUBLIC_WEBAPP_URL ?? 'http://localhost:3000')) {
res.headers.set('Access-Control-Allow-Origin', origin);
}
- if (origin.startsWith(process.env.NEXT_PUBLIC_MARKETING_URL ?? 'http://localhost:3001')) {
+ if (origin.startsWith(NEXT_PUBLIC_MARKETING_URL ?? 'http://localhost:3001')) {
res.headers.set('Access-Control-Allow-Origin', origin);
}
}
diff --git a/packages/lib/universal/get-base-url.ts b/packages/lib/universal/get-base-url.ts
index 2120c9f54..b7c9d4ea4 100644
--- a/packages/lib/universal/get-base-url.ts
+++ b/packages/lib/universal/get-base-url.ts
@@ -1,4 +1,8 @@
/* eslint-disable turbo/no-undeclared-env-vars */
+import { env } from 'next-runtime-env';
+
+const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+
export const getBaseUrl = () => {
if (typeof window !== 'undefined') {
return '';
@@ -8,8 +12,8 @@ export const getBaseUrl = () => {
return `https://${process.env.VERCEL_URL}`;
}
- if (process.env.NEXT_PUBLIC_WEBAPP_URL) {
- return process.env.NEXT_PUBLIC_WEBAPP_URL;
+ if (NEXT_PUBLIC_WEBAPP_URL) {
+ return NEXT_PUBLIC_WEBAPP_URL;
}
return `http://localhost:${process.env.PORT ?? 3000}`;
diff --git a/packages/lib/universal/upload/put-file.ts b/packages/lib/universal/upload/put-file.ts
index c54ccef77..498bed3bd 100644
--- a/packages/lib/universal/upload/put-file.ts
+++ b/packages/lib/universal/upload/put-file.ts
@@ -1,4 +1,5 @@
import { base64 } from '@scure/base';
+import { env } from 'next-runtime-env';
import { match } from 'ts-pattern';
import { DocumentDataType } from '@documenso/prisma/client';
@@ -11,8 +12,10 @@ type File = {
arrayBuffer: () => Promise;
};
+const NEXT_PUBLIC_UPLOAD_TRANSPORT = env('NEXT_PUBLIC_UPLOAD_TRANSPORT');
+
export const putFile = async (file: File) => {
- const { type, data } = await match(process.env.NEXT_PUBLIC_UPLOAD_TRANSPORT)
+ const { type, data } = await match(NEXT_PUBLIC_UPLOAD_TRANSPORT)
.with('s3', async () => putFileInS3(file))
.otherwise(async () => putFileInDatabase(file));
diff --git a/packages/lib/universal/upload/server-actions.ts b/packages/lib/universal/upload/server-actions.ts
index 69274c30c..61429cd86 100644
--- a/packages/lib/universal/upload/server-actions.ts
+++ b/packages/lib/universal/upload/server-actions.ts
@@ -11,12 +11,15 @@ import {
} from '@aws-sdk/client-s3';
import slugify from '@sindresorhus/slugify';
import { type JWT, getToken } from 'next-auth/jwt';
+import { env } from 'next-runtime-env';
import path from 'node:path';
import { APP_BASE_URL } from '../../constants/app';
import { ONE_HOUR, ONE_SECOND } from '../../constants/time';
import { alphaid } from '../id';
+const NEXT_PUBLIC_UPLOAD_TRANSPORT = env('NEXT_PUBLIC_UPLOAD_TRANSPORT');
+
export const getPresignPostUrl = async (fileName: string, contentType: string) => {
const client = getS3Client();
@@ -117,7 +120,7 @@ export const deleteS3File = async (key: string) => {
};
const getS3Client = () => {
- if (process.env.NEXT_PUBLIC_UPLOAD_TRANSPORT !== 's3') {
+ if (NEXT_PUBLIC_UPLOAD_TRANSPORT !== 's3') {
throw new Error('Invalid upload transport');
}
diff --git a/packages/trpc/server/auth-router/router.ts b/packages/trpc/server/auth-router/router.ts
index 24dd272ee..0debd7f8d 100644
--- a/packages/trpc/server/auth-router/router.ts
+++ b/packages/trpc/server/auth-router/router.ts
@@ -1,4 +1,5 @@
import { TRPCError } from '@trpc/server';
+import { env } from 'next-runtime-env';
import { ErrorCode } from '@documenso/lib/next-auth/error-codes';
import { compareSync } from '@documenso/lib/server-only/auth/hash';
@@ -8,10 +9,12 @@ import { sendConfirmationToken } from '@documenso/lib/server-only/user/send-conf
import { authenticatedProcedure, procedure, router } from '../trpc';
import { ZSignUpMutationSchema, ZVerifyPasswordMutationSchema } from './schema';
+const NEXT_PUBLIC_DISABLE_SIGNUP = env('NEXT_PUBLIC_DISABLE_SIGNUP');
+
export const authRouter = router({
signup: procedure.input(ZSignUpMutationSchema).mutation(async ({ input }) => {
try {
- if (process.env.NEXT_PUBLIC_DISABLE_SIGNUP === 'true') {
+ if (NEXT_PUBLIC_DISABLE_SIGNUP === 'true') {
throw new TRPCError({
code: 'BAD_REQUEST',
message: 'Signups are disabled.',
diff --git a/packages/trpc/server/singleplayer-router/router.ts b/packages/trpc/server/singleplayer-router/router.ts
index 8e2266fcc..cb92aa7a4 100644
--- a/packages/trpc/server/singleplayer-router/router.ts
+++ b/packages/trpc/server/singleplayer-router/router.ts
@@ -1,5 +1,6 @@
import { createElement } from 'react';
+import { env } from 'next-runtime-env';
import { PDFDocument } from 'pdf-lib';
import { mailer } from '@documenso/email/mailer';
@@ -24,6 +25,8 @@ import { procedure, router } from '../trpc';
import { mapField } from './helper';
import { ZCreateSinglePlayerDocumentMutationSchema } from './schema';
+const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+
export const singleplayerRouter = router({
createSinglePlayerDocument: procedure
.input(ZCreateSinglePlayerDocumentMutationSchema)
@@ -148,7 +151,7 @@ export const singleplayerRouter = router({
const template = createElement(DocumentSelfSignedEmailTemplate, {
documentName: documentName,
- assetBaseUrl: process.env.NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000',
+ assetBaseUrl: NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000',
});
const [html, text] = await Promise.all([
diff --git a/packages/ui/components/document/document-share-button.tsx b/packages/ui/components/document/document-share-button.tsx
index b366123fb..f304d92c0 100644
--- a/packages/ui/components/document/document-share-button.tsx
+++ b/packages/ui/components/document/document-share-button.tsx
@@ -4,6 +4,7 @@ import type { HTMLAttributes } from 'react';
import React, { useState } from 'react';
import { Copy, Sparkles } from 'lucide-react';
+import { env } from 'next-runtime-env';
import { FaXTwitter } from 'react-icons/fa6';
import { useCopyShareLink } from '@documenso/lib/client-only/hooks/use-copy-share-link';
@@ -38,6 +39,7 @@ export const DocumentShareButton = ({
className,
trigger,
}: DocumentShareButtonProps) => {
+ const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
const { toast } = useToast();
const { copyShareLink, createAndCopyShareLink, isCopyingShareLink } = useCopyShareLink({
@@ -68,7 +70,7 @@ export const DocumentShareButton = ({
const onCopyClick = async () => {
if (shareLink) {
- await copyShareLink(`${process.env.NEXT_PUBLIC_WEBAPP_URL}/share/${shareLink.slug}`);
+ await copyShareLink(`${NEXT_PUBLIC_WEBAPP_URL}/share/${shareLink.slug}`);
} else {
await createAndCopyShareLink({
token,
@@ -92,7 +94,7 @@ export const DocumentShareButton = ({
}
// Ensuring we've prewarmed the opengraph image for the Twitter
- await fetch(`${process.env.NEXT_PUBLIC_WEBAPP_URL}/share/${slug}/opengraph`, {
+ await fetch(`${NEXT_PUBLIC_WEBAPP_URL}/share/${slug}/opengraph`, {
// We don't care about the response, so we can use no-cors
mode: 'no-cors',
});
@@ -100,7 +102,7 @@ export const DocumentShareButton = ({
window.open(
generateTwitterIntent(
`I just ${token ? 'signed' : 'sent'} a document in style with @documenso. Check it out!`,
- `${process.env.NEXT_PUBLIC_WEBAPP_URL}/share/${slug}`,
+ `${NEXT_PUBLIC_WEBAPP_URL}/share/${slug}`,
),
'_blank',
);
@@ -148,7 +150,7 @@ export const DocumentShareButton = ({
'animate-pulse': !shareLink?.slug,
})}
>
- {process.env.NEXT_PUBLIC_WEBAPP_URL}/share/{shareLink?.slug || '...'}
+ {NEXT_PUBLIC_WEBAPP_URL}/share/{shareLink?.slug || '...'}
{shareLink?.slug && (
From 49ecfc1a2cf01e3bcdf195819657b463faf7e890 Mon Sep 17 00:00:00 2001
From: Catalin Pit <25515812+catalinpit@users.noreply.github.com>
Date: Thu, 25 Jan 2024 15:42:40 +0200
Subject: [PATCH 05/42] chore: refactor
---
.../unverified-account/page.tsx | 16 +++-------------
apps/web/src/components/forms/signin.tsx | 9 ++++-----
apps/web/src/components/forms/signup.tsx | 5 ++++-
packages/lib/next-auth/auth-options.ts | 10 +---------
.../lib/server-only/user/get-user-by-email.ts | 3 ---
.../user/get-user-by-verification-token.ts | 17 -----------------
packages/trpc/server/profile-router/router.ts | 19 +------------------
7 files changed, 13 insertions(+), 66 deletions(-)
delete mode 100644 packages/lib/server-only/user/get-user-by-verification-token.ts
diff --git a/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx b/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx
index 7a0a9c78d..456971a9f 100644
--- a/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx
+++ b/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx
@@ -20,25 +20,15 @@ export default function UnverifiedAccount() {
const token = searchParams?.get('t') ?? '';
- const { data: { email } = {} } = trpc.profile.getUserFromVerificationToken.useQuery({ token });
-
const { mutateAsync: sendConfirmationEmail } = trpc.profile.sendConfirmationEmail.useMutation();
const onResendConfirmationEmail = async () => {
- if (!email) {
- toast({
- title: 'Unable to send confirmation email',
- description: 'Something went wrong while sending the confirmation email. Please try again.',
- variant: 'destructive',
- });
-
- return;
- }
-
try {
setIsButtonDisabled(true);
- await sendConfirmationEmail({ email: email });
+ // TODO: decrypt email and send it
+
+ await sendConfirmationEmail({ email: token ?? '' });
toast({
title: 'Success',
diff --git a/apps/web/src/components/forms/signin.tsx b/apps/web/src/components/forms/signin.tsx
index c79021396..4e3701c84 100644
--- a/apps/web/src/components/forms/signin.tsx
+++ b/apps/web/src/components/forms/signin.tsx
@@ -62,6 +62,8 @@ export const SignInForm = ({ className, isGoogleSSOEnabled }: SignInFormProps) =
useState(false);
const router = useRouter();
+ const { mutateAsync: encryptSecondaryData } = trpc.crypto.encryptSecondaryData.useMutation();
+
const [twoFactorAuthenticationMethod, setTwoFactorAuthenticationMethod] = useState<
'totp' | 'backup'
>('totp');
@@ -76,8 +78,6 @@ export const SignInForm = ({ className, isGoogleSSOEnabled }: SignInFormProps) =
resolver: zodResolver(ZSignInFormSchema),
});
- const { mutateAsync: getUser } = trpc.profile.getUserByEmail.useMutation();
-
const isSubmitting = form.formState.isSubmitting;
const onCloseTwoFactorAuthenticationDialog = () => {
@@ -132,10 +132,9 @@ export const SignInForm = ({ className, isGoogleSSOEnabled }: SignInFormProps) =
const errorMessage = ERROR_MESSAGES[result.error];
if (result.error === ErrorCode.UNVERIFIED_EMAIL) {
- const user = await getUser({ email });
- const token = user?.VerificationToken[user.VerificationToken.length - 1].token;
+ const encryptedEmail = await encryptSecondaryData({ data: email });
- router.push(`/unverified-account?t=${token}`);
+ router.push(`/unverified-account?t=${encryptedEmail}`);
return;
}
diff --git a/apps/web/src/components/forms/signup.tsx b/apps/web/src/components/forms/signup.tsx
index 6258dcdee..190084226 100644
--- a/apps/web/src/components/forms/signup.tsx
+++ b/apps/web/src/components/forms/signup.tsx
@@ -62,12 +62,15 @@ export const SignUpForm = ({ className, isGoogleSSOEnabled }: SignUpFormProps) =
const isSubmitting = form.formState.isSubmitting;
const { mutateAsync: signup } = trpc.auth.signup.useMutation();
+ const { mutateAsync: encryptSecondaryData } = trpc.crypto.encryptSecondaryData.useMutation();
const onFormSubmit = async ({ name, email, password, signature }: TSignUpFormSchema) => {
try {
await signup({ name, email, password, signature });
- router.push('/signin');
+ const encryptedEmail = await encryptSecondaryData({ data: email });
+
+ router.push(`/unverified-account?t=${encryptedEmail}`);
toast({
title: 'Registration Successful',
diff --git a/packages/lib/next-auth/auth-options.ts b/packages/lib/next-auth/auth-options.ts
index ed4aeaf44..37f1ed864 100644
--- a/packages/lib/next-auth/auth-options.ts
+++ b/packages/lib/next-auth/auth-options.ts
@@ -11,7 +11,6 @@ import GoogleProvider from 'next-auth/providers/google';
import { prisma } from '@documenso/prisma';
import { IdentityProvider } from '@documenso/prisma/client';
-import { ONE_DAY } from '../constants/time';
import { isTwoFactorAuthenticationEnabled } from '../server-only/2fa/is-2fa-availble';
import { validateTwoFactorAuthentication } from '../server-only/2fa/validate-2fa';
import { getUserByEmail } from '../server-only/user/get-user-by-email';
@@ -71,14 +70,7 @@ export const NEXT_AUTH_OPTIONS: AuthOptions = {
}
}
- const userCreationDate = user?.createdAt;
- const createdWithinLast72Hours = userCreationDate > new Date(Date.now() - ONE_DAY * 3);
-
- /*
- avoid messing with the users who signed up before the email verification requirement
- the error is thrown only if the user doesn't have a verified email and the account was created within the last 72 hours
- */
- if (!user.emailVerified && createdWithinLast72Hours) {
+ if (!user.emailVerified) {
throw new Error(ErrorCode.UNVERIFIED_EMAIL);
}
diff --git a/packages/lib/server-only/user/get-user-by-email.ts b/packages/lib/server-only/user/get-user-by-email.ts
index 8c61202a2..0a2ef8d16 100644
--- a/packages/lib/server-only/user/get-user-by-email.ts
+++ b/packages/lib/server-only/user/get-user-by-email.ts
@@ -9,8 +9,5 @@ export const getUserByEmail = async ({ email }: GetUserByEmailOptions) => {
where: {
email: email.toLowerCase(),
},
- include: {
- VerificationToken: true,
- },
});
};
diff --git a/packages/lib/server-only/user/get-user-by-verification-token.ts b/packages/lib/server-only/user/get-user-by-verification-token.ts
deleted file mode 100644
index b33506d6e..000000000
--- a/packages/lib/server-only/user/get-user-by-verification-token.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { prisma } from '@documenso/prisma';
-
-export interface GetUserByVerificationTokenOptions {
- token: string;
-}
-
-export const getUserByVerificationToken = async ({ token }: GetUserByVerificationTokenOptions) => {
- return await prisma.user.findFirstOrThrow({
- where: {
- VerificationToken: {
- some: {
- token,
- },
- },
- },
- });
-};
diff --git a/packages/trpc/server/profile-router/router.ts b/packages/trpc/server/profile-router/router.ts
index 79c67ed0c..09ee0351f 100644
--- a/packages/trpc/server/profile-router/router.ts
+++ b/packages/trpc/server/profile-router/router.ts
@@ -3,7 +3,6 @@ import { TRPCError } from '@trpc/server';
import { forgotPassword } from '@documenso/lib/server-only/user/forgot-password';
import { getUserByEmail } from '@documenso/lib/server-only/user/get-user-by-email';
import { getUserById } from '@documenso/lib/server-only/user/get-user-by-id';
-import { getUserByVerificationToken } from '@documenso/lib/server-only/user/get-user-by-verification-token';
import { resetPassword } from '@documenso/lib/server-only/user/reset-password';
import { sendConfirmationToken } from '@documenso/lib/server-only/user/send-confirmation-token';
import { updatePassword } from '@documenso/lib/server-only/user/update-password';
@@ -16,7 +15,6 @@ import {
ZResetPasswordFormSchema,
ZRetrieveUserByEmailMutationSchema,
ZRetrieveUserByIdQuerySchema,
- ZRetrieveUserByVerificationTokenQuerySchema,
ZUpdatePasswordMutationSchema,
ZUpdateProfileMutationSchema,
} from './schema';
@@ -50,21 +48,6 @@ export const profileRouter = router({
}
}),
- getUserFromVerificationToken: procedure
- .input(ZRetrieveUserByVerificationTokenQuerySchema)
- .query(async ({ input }) => {
- try {
- const { token } = input;
-
- return await getUserByVerificationToken({ token });
- } catch (err) {
- throw new TRPCError({
- code: 'BAD_REQUEST',
- message: 'We were unable to retrieve the specified account. Please try again.',
- });
- }
- }),
-
updateProfile: authenticatedProcedure
.input(ZUpdateProfileMutationSchema)
.mutation(async ({ input, ctx }) => {
@@ -153,7 +136,7 @@ export const profileRouter = router({
try {
const { email } = input;
- return sendConfirmationToken({ email });
+ return await sendConfirmationToken({ email });
} catch (err) {
let message = 'We were unable to send a confirmation email. Please try again.';
From 311c8da8fc8ad5ded8f8ed11146a517e740f07b5 Mon Sep 17 00:00:00 2001
From: Catalin Pit <25515812+catalinpit@users.noreply.github.com>
Date: Thu, 25 Jan 2024 17:24:37 +0200
Subject: [PATCH 06/42] chore: encrypt and decrypt email addr
---
.../src/app/(unauthenticated)/unverified-account/page.tsx | 6 ++----
packages/trpc/server/profile-router/router.ts | 5 ++++-
packages/trpc/server/profile-router/schema.ts | 4 ++--
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx b/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx
index 456971a9f..5199249e0 100644
--- a/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx
+++ b/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx
@@ -18,7 +18,7 @@ export default function UnverifiedAccount() {
const searchParams = useSearchParams();
const { toast } = useToast();
- const token = searchParams?.get('t') ?? '';
+ const encryptedEmail = searchParams?.get('t') ?? ''; // TODO: choose a better name instead of t
const { mutateAsync: sendConfirmationEmail } = trpc.profile.sendConfirmationEmail.useMutation();
@@ -26,9 +26,7 @@ export default function UnverifiedAccount() {
try {
setIsButtonDisabled(true);
- // TODO: decrypt email and send it
-
- await sendConfirmationEmail({ email: token ?? '' });
+ await sendConfirmationEmail({ email: encryptedEmail });
toast({
title: 'Success',
diff --git a/packages/trpc/server/profile-router/router.ts b/packages/trpc/server/profile-router/router.ts
index 09ee0351f..510e2a6fd 100644
--- a/packages/trpc/server/profile-router/router.ts
+++ b/packages/trpc/server/profile-router/router.ts
@@ -1,5 +1,6 @@
import { TRPCError } from '@trpc/server';
+import { decryptSecondaryData } from '@documenso/lib/server-only/crypto/decrypt';
import { forgotPassword } from '@documenso/lib/server-only/user/forgot-password';
import { getUserByEmail } from '@documenso/lib/server-only/user/get-user-by-email';
import { getUserById } from '@documenso/lib/server-only/user/get-user-by-id';
@@ -136,7 +137,9 @@ export const profileRouter = router({
try {
const { email } = input;
- return await sendConfirmationToken({ email });
+ const decryptedEmail = decryptSecondaryData(email);
+
+ return await sendConfirmationToken({ email: decryptedEmail ?? '' }); // TODO: fix this tomorrow
} catch (err) {
let message = 'We were unable to send a confirmation email. Please try again.';
diff --git a/packages/trpc/server/profile-router/schema.ts b/packages/trpc/server/profile-router/schema.ts
index 671756e94..5aa9844ca 100644
--- a/packages/trpc/server/profile-router/schema.ts
+++ b/packages/trpc/server/profile-router/schema.ts
@@ -30,9 +30,9 @@ export const ZResetPasswordFormSchema = z.object({
password: z.string().min(6),
token: z.string().min(1),
});
-
+// TODO: revisit this
export const ZConfirmEmailMutationSchema = z.object({
- email: z.string().email().min(1),
+ email: z.string().min(1),
});
export type TRetrieveUserByIdQuerySchema = z.infer
;
From e2fa01509dc602aedc9d9764a0f0f24e0e8208c5 Mon Sep 17 00:00:00 2001
From: Catalin Pit <25515812+catalinpit@users.noreply.github.com>
Date: Thu, 25 Jan 2024 17:33:35 +0200
Subject: [PATCH 07/42] chore: avoid returning unnecessary info
---
packages/lib/server-only/user/send-confirmation-token.ts | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/packages/lib/server-only/user/send-confirmation-token.ts b/packages/lib/server-only/user/send-confirmation-token.ts
index 5206d202e..6c070125b 100644
--- a/packages/lib/server-only/user/send-confirmation-token.ts
+++ b/packages/lib/server-only/user/send-confirmation-token.ts
@@ -37,5 +37,12 @@ export const sendConfirmationToken = async ({ email }: { email: string }) => {
throw new Error(`Failed to create the verification token`);
}
- return sendConfirmationEmail({ userId: user.id });
+ // TODO: Revisit tomorrow
+ try {
+ await sendConfirmationEmail({ userId: user.id });
+
+ return { success: true };
+ } catch (err) {
+ throw new Error(`Failed to send the confirmation email`);
+ }
};
From b2cca9afb677da0505189aa5e0f68e57dc1250e5 Mon Sep 17 00:00:00 2001
From: Catalin Pit <25515812+catalinpit@users.noreply.github.com>
Date: Fri, 26 Jan 2024 13:27:36 +0200
Subject: [PATCH 08/42] chore: refactor
---
.../app/(unauthenticated)/unverified-account/page.tsx | 4 ++--
apps/web/src/components/forms/signin.tsx | 2 +-
apps/web/src/components/forms/signup.tsx | 2 +-
.../lib/server-only/user/send-confirmation-token.ts | 1 -
packages/trpc/server/profile-router/router.ts | 10 +++++++---
packages/trpc/server/profile-router/schema.ts | 4 ++--
6 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx b/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx
index 5199249e0..dc98044ae 100644
--- a/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx
+++ b/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx
@@ -18,7 +18,7 @@ export default function UnverifiedAccount() {
const searchParams = useSearchParams();
const { toast } = useToast();
- const encryptedEmail = searchParams?.get('t') ?? ''; // TODO: choose a better name instead of t
+ const encryptedEmail = searchParams?.get('token') ?? '';
const { mutateAsync: sendConfirmationEmail } = trpc.profile.sendConfirmationEmail.useMutation();
@@ -26,7 +26,7 @@ export default function UnverifiedAccount() {
try {
setIsButtonDisabled(true);
- await sendConfirmationEmail({ email: encryptedEmail });
+ await sendConfirmationEmail({ encryptedEmail });
toast({
title: 'Success',
diff --git a/apps/web/src/components/forms/signin.tsx b/apps/web/src/components/forms/signin.tsx
index 4e3701c84..0353333cf 100644
--- a/apps/web/src/components/forms/signin.tsx
+++ b/apps/web/src/components/forms/signin.tsx
@@ -134,7 +134,7 @@ export const SignInForm = ({ className, isGoogleSSOEnabled }: SignInFormProps) =
if (result.error === ErrorCode.UNVERIFIED_EMAIL) {
const encryptedEmail = await encryptSecondaryData({ data: email });
- router.push(`/unverified-account?t=${encryptedEmail}`);
+ router.push(`/unverified-account?token=${encryptedEmail}`);
return;
}
diff --git a/apps/web/src/components/forms/signup.tsx b/apps/web/src/components/forms/signup.tsx
index 190084226..bc7ee0ce5 100644
--- a/apps/web/src/components/forms/signup.tsx
+++ b/apps/web/src/components/forms/signup.tsx
@@ -70,7 +70,7 @@ export const SignUpForm = ({ className, isGoogleSSOEnabled }: SignUpFormProps) =
const encryptedEmail = await encryptSecondaryData({ data: email });
- router.push(`/unverified-account?t=${encryptedEmail}`);
+ router.push(`/unverified-account?token=${encryptedEmail}`);
toast({
title: 'Registration Successful',
diff --git a/packages/lib/server-only/user/send-confirmation-token.ts b/packages/lib/server-only/user/send-confirmation-token.ts
index 6c070125b..af4a97a48 100644
--- a/packages/lib/server-only/user/send-confirmation-token.ts
+++ b/packages/lib/server-only/user/send-confirmation-token.ts
@@ -37,7 +37,6 @@ export const sendConfirmationToken = async ({ email }: { email: string }) => {
throw new Error(`Failed to create the verification token`);
}
- // TODO: Revisit tomorrow
try {
await sendConfirmationEmail({ userId: user.id });
diff --git a/packages/trpc/server/profile-router/router.ts b/packages/trpc/server/profile-router/router.ts
index 510e2a6fd..44d0f59bd 100644
--- a/packages/trpc/server/profile-router/router.ts
+++ b/packages/trpc/server/profile-router/router.ts
@@ -135,11 +135,15 @@ export const profileRouter = router({
.input(ZConfirmEmailMutationSchema)
.mutation(async ({ input }) => {
try {
- const { email } = input;
+ const { encryptedEmail } = input;
- const decryptedEmail = decryptSecondaryData(email);
+ const decryptedEmail = decryptSecondaryData(encryptedEmail);
- return await sendConfirmationToken({ email: decryptedEmail ?? '' }); // TODO: fix this tomorrow
+ if (!decryptedEmail) {
+ throw new Error('Email is required');
+ }
+
+ return await sendConfirmationToken({ email: decryptedEmail });
} catch (err) {
let message = 'We were unable to send a confirmation email. Please try again.';
diff --git a/packages/trpc/server/profile-router/schema.ts b/packages/trpc/server/profile-router/schema.ts
index 5aa9844ca..897a4912d 100644
--- a/packages/trpc/server/profile-router/schema.ts
+++ b/packages/trpc/server/profile-router/schema.ts
@@ -30,9 +30,9 @@ export const ZResetPasswordFormSchema = z.object({
password: z.string().min(6),
token: z.string().min(1),
});
-// TODO: revisit this
+
export const ZConfirmEmailMutationSchema = z.object({
- email: z.string().min(1),
+ encryptedEmail: z.string().min(1),
});
export type TRetrieveUserByIdQuerySchema = z.infer;
From 927a656c576228ab4ef54dbc5a22237a4a9c116b Mon Sep 17 00:00:00 2001
From: Tangerine Kugelmann <9637909+daallgeier@users.noreply.github.com>
Date: Sun, 28 Jan 2024 01:00:07 +0100
Subject: [PATCH 09/42] Create security.txt
See also https://securitytxt.org
---
.well-known/security.txt | 3 +++
1 file changed, 3 insertions(+)
create mode 100644 .well-known/security.txt
diff --git a/.well-known/security.txt b/.well-known/security.txt
new file mode 100644
index 000000000..5cd29187c
--- /dev/null
+++ b/.well-known/security.txt
@@ -0,0 +1,3 @@
+Contact: https://github.com/documenso/documenso/issues/new?assignees=&labels=bug&projects=&template=bug-report.yml
+Preferred-Languages: en
+Canonical: https://documenso.com/.well-known/security.txt
From f514d55d27bc23866dd70b6b7c7005bce5891851 Mon Sep 17 00:00:00 2001
From: Catalin Pit <25515812+catalinpit@users.noreply.github.com>
Date: Mon, 29 Jan 2024 09:41:02 +0200
Subject: [PATCH 10/42] chore: removed unused schema
---
packages/trpc/server/profile-router/schema.ts | 4 ----
1 file changed, 4 deletions(-)
diff --git a/packages/trpc/server/profile-router/schema.ts b/packages/trpc/server/profile-router/schema.ts
index 897a4912d..dfde69796 100644
--- a/packages/trpc/server/profile-router/schema.ts
+++ b/packages/trpc/server/profile-router/schema.ts
@@ -8,10 +8,6 @@ export const ZRetrieveUserByEmailMutationSchema = z.object({
email: z.string().email().min(1),
});
-export const ZRetrieveUserByVerificationTokenQuerySchema = z.object({
- token: z.string().min(1),
-});
-
export const ZUpdateProfileMutationSchema = z.object({
name: z.string().min(1),
signature: z.string(),
From 1676f5bf6cbcdc63b6cae10ee0be61e1a4be5d52 Mon Sep 17 00:00:00 2001
From: Catalin Pit <25515812+catalinpit@users.noreply.github.com>
Date: Mon, 29 Jan 2024 09:43:38 +0200
Subject: [PATCH 11/42] chore: removed unused code
---
packages/trpc/server/profile-router/router.ts | 17 -----------------
packages/trpc/server/profile-router/schema.ts | 4 ----
2 files changed, 21 deletions(-)
diff --git a/packages/trpc/server/profile-router/router.ts b/packages/trpc/server/profile-router/router.ts
index 44d0f59bd..1faa3c8e6 100644
--- a/packages/trpc/server/profile-router/router.ts
+++ b/packages/trpc/server/profile-router/router.ts
@@ -2,7 +2,6 @@ import { TRPCError } from '@trpc/server';
import { decryptSecondaryData } from '@documenso/lib/server-only/crypto/decrypt';
import { forgotPassword } from '@documenso/lib/server-only/user/forgot-password';
-import { getUserByEmail } from '@documenso/lib/server-only/user/get-user-by-email';
import { getUserById } from '@documenso/lib/server-only/user/get-user-by-id';
import { resetPassword } from '@documenso/lib/server-only/user/reset-password';
import { sendConfirmationToken } from '@documenso/lib/server-only/user/send-confirmation-token';
@@ -14,7 +13,6 @@ import {
ZConfirmEmailMutationSchema,
ZForgotPasswordFormSchema,
ZResetPasswordFormSchema,
- ZRetrieveUserByEmailMutationSchema,
ZRetrieveUserByIdQuerySchema,
ZUpdatePasswordMutationSchema,
ZUpdateProfileMutationSchema,
@@ -34,21 +32,6 @@ export const profileRouter = router({
}
}),
- getUserByEmail: procedure
- .input(ZRetrieveUserByEmailMutationSchema)
- .mutation(async ({ input }) => {
- try {
- const { email } = input;
-
- return await getUserByEmail({ email });
- } catch (err) {
- throw new TRPCError({
- code: 'BAD_REQUEST',
- message: 'We were unable to retrieve the specified account. Please try again.',
- });
- }
- }),
-
updateProfile: authenticatedProcedure
.input(ZUpdateProfileMutationSchema)
.mutation(async ({ input, ctx }) => {
diff --git a/packages/trpc/server/profile-router/schema.ts b/packages/trpc/server/profile-router/schema.ts
index dfde69796..135d0d1e8 100644
--- a/packages/trpc/server/profile-router/schema.ts
+++ b/packages/trpc/server/profile-router/schema.ts
@@ -4,10 +4,6 @@ export const ZRetrieveUserByIdQuerySchema = z.object({
id: z.number().min(1),
});
-export const ZRetrieveUserByEmailMutationSchema = z.object({
- email: z.string().email().min(1),
-});
-
export const ZUpdateProfileMutationSchema = z.object({
name: z.string().min(1),
signature: z.string(),
From cc090adce0918def56279c44d76cecaa21bf5fe5 Mon Sep 17 00:00:00 2001
From: Catalin Pit <25515812+catalinpit@users.noreply.github.com>
Date: Tue, 30 Jan 2024 12:54:48 +0200
Subject: [PATCH 12/42] chore: refactor
---
.../unverified-account/page.tsx | 53 ++-----------------
apps/web/src/components/forms/signin.tsx | 10 ++--
apps/web/src/components/forms/signup.tsx | 8 ++-
packages/lib/next-auth/auth-options.ts | 10 ++++
.../lib/server-only/user/get-user-by-email.ts | 3 ++
.../user/send-confirmation-token.ts | 4 ++
packages/trpc/server/profile-router/router.ts | 11 +---
packages/trpc/server/profile-router/schema.ts | 2 +-
8 files changed, 32 insertions(+), 69 deletions(-)
diff --git a/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx b/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx
index dc98044ae..9b636f7cf 100644
--- a/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx
+++ b/apps/web/src/app/(unauthenticated)/unverified-account/page.tsx
@@ -1,51 +1,8 @@
-'use client';
-
-import { useState } from 'react';
-
-import { useSearchParams } from 'next/navigation';
-
import { Mails } from 'lucide-react';
-import { ONE_SECOND } from '@documenso/lib/constants/time';
-import { trpc } from '@documenso/trpc/react';
-import { Button } from '@documenso/ui/primitives/button';
-import { useToast } from '@documenso/ui/primitives/use-toast';
-
-const RESEND_CONFIRMATION_EMAIL_TIMEOUT = 20 * ONE_SECOND;
+import { SendConfirmationEmailForm } from '~/components/forms/send-confirmation-email';
export default function UnverifiedAccount() {
- const [isButtonDisabled, setIsButtonDisabled] = useState(false);
- const searchParams = useSearchParams();
- const { toast } = useToast();
-
- const encryptedEmail = searchParams?.get('token') ?? '';
-
- const { mutateAsync: sendConfirmationEmail } = trpc.profile.sendConfirmationEmail.useMutation();
-
- const onResendConfirmationEmail = async () => {
- try {
- setIsButtonDisabled(true);
-
- await sendConfirmationEmail({ encryptedEmail });
-
- toast({
- title: 'Success',
- description: 'Verification email sent successfully.',
- duration: 5000,
- });
-
- setTimeout(() => setIsButtonDisabled(false), RESEND_CONFIRMATION_EMAIL_TIMEOUT);
- } catch (err) {
- setIsButtonDisabled(false);
-
- toast({
- title: 'Error',
- description: 'Something went wrong while sending the confirmation email.',
- variant: 'destructive',
- });
- }
- };
-
return (
@@ -55,13 +12,11 @@ export default function UnverifiedAccount() {
Confirm email
- To gain full access to your account and unlock all its features, please confirm your email
- address by clicking on the link sent to your email address.
+ To gain access to your account, please confirm your email address by clicking on the
+ confirmation link from your inbox.
-
- Resend email
-
+
);
diff --git a/apps/web/src/components/forms/signin.tsx b/apps/web/src/components/forms/signin.tsx
index 0353333cf..d0b5e1b60 100644
--- a/apps/web/src/components/forms/signin.tsx
+++ b/apps/web/src/components/forms/signin.tsx
@@ -11,7 +11,6 @@ import { FcGoogle } from 'react-icons/fc';
import { z } from 'zod';
import { ErrorCode, isErrorCode } from '@documenso/lib/next-auth/error-codes';
-import { trpc } from '@documenso/trpc/react';
import { cn } from '@documenso/ui/lib/utils';
import { Button } from '@documenso/ui/primitives/button';
import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@documenso/ui/primitives/dialog';
@@ -62,8 +61,6 @@ export const SignInForm = ({ className, isGoogleSSOEnabled }: SignInFormProps) =
useState(false);
const router = useRouter();
- const { mutateAsync: encryptSecondaryData } = trpc.crypto.encryptSecondaryData.useMutation();
-
const [twoFactorAuthenticationMethod, setTwoFactorAuthenticationMethod] = useState<
'totp' | 'backup'
>('totp');
@@ -132,9 +129,12 @@ export const SignInForm = ({ className, isGoogleSSOEnabled }: SignInFormProps) =
const errorMessage = ERROR_MESSAGES[result.error];
if (result.error === ErrorCode.UNVERIFIED_EMAIL) {
- const encryptedEmail = await encryptSecondaryData({ data: email });
+ router.push(`/unverified-account`);
- router.push(`/unverified-account?token=${encryptedEmail}`);
+ toast({
+ title: 'Unable to sign in',
+ description: errorMessage ?? 'An unknown error occurred',
+ });
return;
}
diff --git a/apps/web/src/components/forms/signup.tsx b/apps/web/src/components/forms/signup.tsx
index bc7ee0ce5..4520e00ca 100644
--- a/apps/web/src/components/forms/signup.tsx
+++ b/apps/web/src/components/forms/signup.tsx
@@ -62,19 +62,17 @@ export const SignUpForm = ({ className, isGoogleSSOEnabled }: SignUpFormProps) =
const isSubmitting = form.formState.isSubmitting;
const { mutateAsync: signup } = trpc.auth.signup.useMutation();
- const { mutateAsync: encryptSecondaryData } = trpc.crypto.encryptSecondaryData.useMutation();
const onFormSubmit = async ({ name, email, password, signature }: TSignUpFormSchema) => {
try {
await signup({ name, email, password, signature });
- const encryptedEmail = await encryptSecondaryData({ data: email });
-
- router.push(`/unverified-account?token=${encryptedEmail}`);
+ router.push(`/unverified-account}`);
toast({
title: 'Registration Successful',
- description: 'You have successfully registered. Please sign in to continue.',
+ description:
+ 'You have successfully registered. Please verify your account by clicking on the link you received in the email.',
duration: 5000,
});
diff --git a/packages/lib/next-auth/auth-options.ts b/packages/lib/next-auth/auth-options.ts
index 37f1ed864..1dedfe12b 100644
--- a/packages/lib/next-auth/auth-options.ts
+++ b/packages/lib/next-auth/auth-options.ts
@@ -14,6 +14,7 @@ import { IdentityProvider } from '@documenso/prisma/client';
import { isTwoFactorAuthenticationEnabled } from '../server-only/2fa/is-2fa-availble';
import { validateTwoFactorAuthentication } from '../server-only/2fa/validate-2fa';
import { getUserByEmail } from '../server-only/user/get-user-by-email';
+import { sendConfirmationToken } from '../server-only/user/send-confirmation-token';
import { ErrorCode } from './error-codes';
export const NEXT_AUTH_OPTIONS: AuthOptions = {
@@ -71,6 +72,15 @@ export const NEXT_AUTH_OPTIONS: AuthOptions = {
}
if (!user.emailVerified) {
+ const totalUserVerificationTokens = user.VerificationToken.length;
+ const lastUserVerificationToken = user.VerificationToken[totalUserVerificationTokens - 1];
+ const expiredToken =
+ DateTime.fromJSDate(lastUserVerificationToken.expires) <= DateTime.now();
+
+ if (totalUserVerificationTokens < 1 || expiredToken) {
+ await sendConfirmationToken({ email });
+ }
+
throw new Error(ErrorCode.UNVERIFIED_EMAIL);
}
diff --git a/packages/lib/server-only/user/get-user-by-email.ts b/packages/lib/server-only/user/get-user-by-email.ts
index 0a2ef8d16..8c61202a2 100644
--- a/packages/lib/server-only/user/get-user-by-email.ts
+++ b/packages/lib/server-only/user/get-user-by-email.ts
@@ -9,5 +9,8 @@ export const getUserByEmail = async ({ email }: GetUserByEmailOptions) => {
where: {
email: email.toLowerCase(),
},
+ include: {
+ VerificationToken: true,
+ },
});
};
diff --git a/packages/lib/server-only/user/send-confirmation-token.ts b/packages/lib/server-only/user/send-confirmation-token.ts
index af4a97a48..a399dd9fc 100644
--- a/packages/lib/server-only/user/send-confirmation-token.ts
+++ b/packages/lib/server-only/user/send-confirmation-token.ts
@@ -20,6 +20,10 @@ export const sendConfirmationToken = async ({ email }: { email: string }) => {
throw new Error('User not found');
}
+ if (user.emailVerified) {
+ throw new Error('Email verified');
+ }
+
const createdToken = await prisma.verificationToken.create({
data: {
identifier: IDENTIFIER,
diff --git a/packages/trpc/server/profile-router/router.ts b/packages/trpc/server/profile-router/router.ts
index 1faa3c8e6..3d765372b 100644
--- a/packages/trpc/server/profile-router/router.ts
+++ b/packages/trpc/server/profile-router/router.ts
@@ -1,6 +1,5 @@
import { TRPCError } from '@trpc/server';
-import { decryptSecondaryData } from '@documenso/lib/server-only/crypto/decrypt';
import { forgotPassword } from '@documenso/lib/server-only/user/forgot-password';
import { getUserById } from '@documenso/lib/server-only/user/get-user-by-id';
import { resetPassword } from '@documenso/lib/server-only/user/reset-password';
@@ -118,15 +117,9 @@ export const profileRouter = router({
.input(ZConfirmEmailMutationSchema)
.mutation(async ({ input }) => {
try {
- const { encryptedEmail } = input;
+ const { email } = input;
- const decryptedEmail = decryptSecondaryData(encryptedEmail);
-
- if (!decryptedEmail) {
- throw new Error('Email is required');
- }
-
- return await sendConfirmationToken({ email: decryptedEmail });
+ return await sendConfirmationToken({ email });
} catch (err) {
let message = 'We were unable to send a confirmation email. Please try again.';
diff --git a/packages/trpc/server/profile-router/schema.ts b/packages/trpc/server/profile-router/schema.ts
index 135d0d1e8..ef9ca2a14 100644
--- a/packages/trpc/server/profile-router/schema.ts
+++ b/packages/trpc/server/profile-router/schema.ts
@@ -24,7 +24,7 @@ export const ZResetPasswordFormSchema = z.object({
});
export const ZConfirmEmailMutationSchema = z.object({
- encryptedEmail: z.string().min(1),
+ email: z.string().email().min(1),
});
export type TRetrieveUserByIdQuerySchema = z.infer;
From 6053a4a40a55db36c815dbc2bdbf3c140f62860d Mon Sep 17 00:00:00 2001
From: Catalin Pit <25515812+catalinpit@users.noreply.github.com>
Date: Tue, 30 Jan 2024 12:56:32 +0200
Subject: [PATCH 13/42] chore: refactor
---
.../forms/send-confirmation-email.tsx | 93 +++++++++++++++++++
apps/web/src/components/forms/signup.tsx | 2 +-
2 files changed, 94 insertions(+), 1 deletion(-)
create mode 100644 apps/web/src/components/forms/send-confirmation-email.tsx
diff --git a/apps/web/src/components/forms/send-confirmation-email.tsx b/apps/web/src/components/forms/send-confirmation-email.tsx
new file mode 100644
index 000000000..9e669539e
--- /dev/null
+++ b/apps/web/src/components/forms/send-confirmation-email.tsx
@@ -0,0 +1,93 @@
+'use client';
+
+import { zodResolver } from '@hookform/resolvers/zod';
+import { useForm } from 'react-hook-form';
+import { z } from 'zod';
+
+import { trpc } from '@documenso/trpc/react';
+import { cn } from '@documenso/ui/lib/utils';
+import { Button } from '@documenso/ui/primitives/button';
+import {
+ Form,
+ FormControl,
+ FormField,
+ FormItem,
+ FormLabel,
+} from '@documenso/ui/primitives/form/form';
+import { Input } from '@documenso/ui/primitives/input';
+import { useToast } from '@documenso/ui/primitives/use-toast';
+
+export const ZSendConfirmationEmailFormSchema = z.object({
+ email: z.string().email().min(1),
+});
+
+export type TSendConfirmationEmailFormSchema = z.infer;
+
+export type SendConfirmationEmailFormProps = {
+ className?: string;
+};
+
+export const SendConfirmationEmailForm = ({ className }: SendConfirmationEmailFormProps) => {
+ const { toast } = useToast();
+
+ const form = useForm({
+ values: {
+ email: '',
+ },
+ resolver: zodResolver(ZSendConfirmationEmailFormSchema),
+ });
+
+ const isSubmitting = form.formState.isSubmitting;
+
+ const { mutateAsync: sendConfirmationEmail } = trpc.profile.sendConfirmationEmail.useMutation();
+
+ const onFormSubmit = async ({ email }: TSendConfirmationEmailFormSchema) => {
+ try {
+ await sendConfirmationEmail({ email });
+
+ toast({
+ title: 'Confirmation email sent',
+ description:
+ 'A confirmation email has been sent, and it should arrive in your inbox shortly.',
+ duration: 5000,
+ });
+
+ form.reset();
+ } catch (err) {
+ toast({
+ title: 'An error occurred while sending your confirmation email',
+ description: 'Please try again and make sure you enter the correct email address.',
+ variant: 'destructive',
+ });
+ }
+ };
+
+ return (
+
+
+
+
+ );
+};
diff --git a/apps/web/src/components/forms/signup.tsx b/apps/web/src/components/forms/signup.tsx
index 4520e00ca..7bfe07968 100644
--- a/apps/web/src/components/forms/signup.tsx
+++ b/apps/web/src/components/forms/signup.tsx
@@ -67,7 +67,7 @@ export const SignUpForm = ({ className, isGoogleSSOEnabled }: SignUpFormProps) =
try {
await signup({ name, email, password, signature });
- router.push(`/unverified-account}`);
+ router.push(`/unverified-account`);
toast({
title: 'Registration Successful',
From 747a7b0aea078d4cf52db95abda58b51e269b7f8 Mon Sep 17 00:00:00 2001
From: Timur Ercan
Date: Tue, 30 Jan 2024 16:15:32 +0100
Subject: [PATCH 14/42] chore: security contacts and descr
---
.well-known/security.txt | 3 +++
1 file changed, 3 insertions(+)
diff --git a/.well-known/security.txt b/.well-known/security.txt
index 5cd29187c..0b00c7123 100644
--- a/.well-known/security.txt
+++ b/.well-known/security.txt
@@ -1,3 +1,6 @@
+# General Issues
Contact: https://github.com/documenso/documenso/issues/new?assignees=&labels=bug&projects=&template=bug-report.yml
+# Report critical issues privately, to let us take appropriate action before publishing
+Contact: mailto:security@documenso.com
Preferred-Languages: en
Canonical: https://documenso.com/.well-known/security.txt
From 08f82b23dcc78f309f648785574cfe30eb0e2387 Mon Sep 17 00:00:00 2001
From: Mythie
Date: Wed, 31 Jan 2024 22:32:42 +1100
Subject: [PATCH 15/42] fix: update env entries to evaluate at runtime
---
.../src/app/(marketing)/claimed/page.tsx | 7 ++-----
.../src/app/(marketing)/singleplayer/client.tsx | 3 ++-
.../src/components/(marketing)/pricing-table.tsx | 9 +++------
.../single-player-mode-success.tsx | 3 ++-
.../src/components/(marketing)/widget.tsx | 7 ++++++-
apps/marketing/src/pages/api/claim-plan/index.ts | 14 ++++++++------
.../(dashboard)/documents/[id]/edit-document.tsx | 2 +-
.../billing/create-billing-portal.action.ts | 7 ++-----
.../settings/billing/create-checkout.action.ts | 9 +++------
.../app/(share)/share/[slug]/opengraph/route.tsx | 7 +++----
apps/web/src/app/(share)/share/[slug]/page.tsx | 12 ++++--------
apps/web/src/app/layout.tsx | 9 ++++-----
.../(dashboard)/avatar/avatar-with-recipient.tsx | 7 ++-----
apps/web/src/helpers/get-asset-buffer.ts | 6 ++----
packages/ee/server-only/limits/client.ts | 2 +-
packages/lib/constants/app.ts | 15 ++++++++-------
packages/lib/constants/crypto.ts | 16 ++++++++--------
packages/lib/constants/feature-flags.ts | 10 +++++-----
packages/lib/constants/pdf.ts | 2 +-
packages/lib/next-auth/auth-options.ts | 4 +---
.../server-only/auth/send-confirmation-email.ts | 11 +++++------
.../lib/server-only/auth/send-forgot-password.ts | 10 ++++------
.../lib/server-only/auth/send-reset-password.ts | 8 +++-----
.../lib/server-only/document/delete-document.ts | 7 ++-----
.../lib/server-only/document/resend-document.tsx | 10 ++++------
.../server-only/document/send-completed-email.ts | 9 +++------
.../lib/server-only/document/send-document.tsx | 10 ++++------
.../server-only/document/send-pending-email.ts | 8 +++-----
packages/lib/server-only/feature-flags/all.ts | 9 +++------
packages/lib/server-only/feature-flags/get.ts | 10 ++++------
.../lib/server-only/pdf/insert-text-in-pdf.ts | 2 +-
packages/lib/universal/get-base-url.ts | 10 +++++-----
packages/lib/universal/get-feature-flag.ts | 6 +++---
packages/lib/universal/upload/put-file.ts | 4 ++--
packages/lib/universal/upload/server-actions.ts | 8 +++++---
packages/trpc/server/auth-router/router.ts | 4 ++--
.../trpc/server/singleplayer-router/router.ts | 6 ++----
.../document/document-share-button.tsx | 13 ++++++-------
38 files changed, 129 insertions(+), 167 deletions(-)
diff --git a/apps/marketing/src/app/(marketing)/claimed/page.tsx b/apps/marketing/src/app/(marketing)/claimed/page.tsx
index 931045bd2..7f85b5d2e 100644
--- a/apps/marketing/src/app/(marketing)/claimed/page.tsx
+++ b/apps/marketing/src/app/(marketing)/claimed/page.tsx
@@ -4,6 +4,7 @@ import { redirect } from 'next/navigation';
import { ArrowRight } from 'lucide-react';
+import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import { redis } from '@documenso/lib/server-only/redis';
import { stripe } from '@documenso/lib/server-only/stripe';
import { prisma } from '@documenso/prisma';
@@ -175,11 +176,7 @@ export default async function ClaimedPlanPage({ searchParams = {} }: ClaimedPlan
This is a temporary password. Please change it as soon as possible.
-
+
Let's get started!
diff --git a/apps/marketing/src/app/(marketing)/singleplayer/client.tsx b/apps/marketing/src/app/(marketing)/singleplayer/client.tsx
index 389528bf8..f1884bf5c 100644
--- a/apps/marketing/src/app/(marketing)/singleplayer/client.tsx
+++ b/apps/marketing/src/app/(marketing)/singleplayer/client.tsx
@@ -6,6 +6,7 @@ import Link from 'next/link';
import { useRouter } from 'next/navigation';
import { useAnalytics } from '@documenso/lib/client-only/hooks/use-analytics';
+import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import { base64 } from '@documenso/lib/universal/base64';
import { putFile } from '@documenso/lib/universal/upload/put-file';
import type { Field, Recipient } from '@documenso/prisma/client';
@@ -188,7 +189,7 @@ export const SinglePlayerClient = () => {
Create a{' '}
diff --git a/apps/marketing/src/components/(marketing)/pricing-table.tsx b/apps/marketing/src/components/(marketing)/pricing-table.tsx
index b65411064..4e06c4b3a 100644
--- a/apps/marketing/src/components/(marketing)/pricing-table.tsx
+++ b/apps/marketing/src/components/(marketing)/pricing-table.tsx
@@ -8,6 +8,7 @@ import Link from 'next/link';
import { AnimatePresence, motion } from 'framer-motion';
import { usePlausible } from 'next-plausible';
+import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import { cn } from '@documenso/ui/lib/utils';
import { Button } from '@documenso/ui/primitives/button';
@@ -82,11 +83,7 @@ export const PricingTable = ({ className, ...props }: PricingTableProps) => {
-
+
Signup Now
@@ -117,7 +114,7 @@ export const PricingTable = ({ className, ...props }: PricingTableProps) => {
- Signup Now
+ Signup Now
diff --git a/apps/marketing/src/components/(marketing)/single-player-mode/single-player-mode-success.tsx b/apps/marketing/src/components/(marketing)/single-player-mode/single-player-mode-success.tsx
index 1af71c775..d8a8e2c53 100644
--- a/apps/marketing/src/components/(marketing)/single-player-mode/single-player-mode-success.tsx
+++ b/apps/marketing/src/components/(marketing)/single-player-mode/single-player-mode-success.tsx
@@ -6,6 +6,7 @@ import Link from 'next/link';
import signingCelebration from '@documenso/assets/images/signing-celebration.png';
import { useFeatureFlags } from '@documenso/lib/client-only/providers/feature-flag';
+import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import type { Signature } from '@documenso/prisma/client';
import { DocumentStatus } from '@documenso/prisma/client';
import type { DocumentWithRecipient } from '@documenso/prisma/types/document-with-recipient';
@@ -85,7 +86,7 @@ export const SinglePlayerModeSuccess = ({
Create a{' '}
diff --git a/apps/marketing/src/components/(marketing)/widget.tsx b/apps/marketing/src/components/(marketing)/widget.tsx
index 80c13b275..b0baeb5fc 100644
--- a/apps/marketing/src/components/(marketing)/widget.tsx
+++ b/apps/marketing/src/components/(marketing)/widget.tsx
@@ -7,6 +7,7 @@ import { zodResolver } from '@hookform/resolvers/zod';
import { AnimatePresence, motion } from 'framer-motion';
import { Loader } from 'lucide-react';
import { usePlausible } from 'next-plausible';
+import { env } from 'next-runtime-env';
import { Controller, useForm } from 'react-hook-form';
import { z } from 'zod';
@@ -144,7 +145,11 @@ export const Widget = ({ className, children, ...props }: WidgetProps) => {
setTimeout(resolve, 1000);
});
- const planId = process.env.NEXT_PUBLIC_STRIPE_COMMUNITY_PLAN_MONTHLY_PRICE_ID;
+ const planId = env('NEXT_PUBLIC_STRIPE_COMMUNITY_PLAN_MONTHLY_PRICE_ID');
+
+ if (!planId) {
+ throw new Error('No plan ID found.');
+ }
const claimPlanInput = signatureDataUrl
? {
diff --git a/apps/marketing/src/pages/api/claim-plan/index.ts b/apps/marketing/src/pages/api/claim-plan/index.ts
index 57597001e..c63a727c5 100644
--- a/apps/marketing/src/pages/api/claim-plan/index.ts
+++ b/apps/marketing/src/pages/api/claim-plan/index.ts
@@ -1,13 +1,15 @@
-import { NextApiRequest, NextApiResponse } from 'next';
+import type { NextApiRequest, NextApiResponse } from 'next';
import { randomUUID } from 'crypto';
-import { TEarlyAdopterCheckoutMetadataSchema } from '@documenso/ee/server-only/stripe/webhook/early-adopter-checkout-metadata';
+import type { TEarlyAdopterCheckoutMetadataSchema } from '@documenso/ee/server-only/stripe/webhook/early-adopter-checkout-metadata';
+import { NEXT_PUBLIC_MARKETING_URL, NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import { redis } from '@documenso/lib/server-only/redis';
import { stripe } from '@documenso/lib/server-only/stripe';
import { prisma } from '@documenso/prisma';
-import { TClaimPlanResponseSchema, ZClaimPlanRequestSchema } from '~/api/claim-plan/types';
+import type { TClaimPlanResponseSchema } from '~/api/claim-plan/types';
+import { ZClaimPlanRequestSchema } from '~/api/claim-plan/types';
export default async function handler(
req: NextApiRequest,
@@ -40,7 +42,7 @@ export default async function handler(
if (user) {
return res.status(200).json({
- redirectUrl: `${process.env.NEXT_PUBLIC_WEBAPP_URL}/signin`,
+ redirectUrl: `${NEXT_PUBLIC_WEBAPP_URL()}/signin`,
});
}
@@ -77,8 +79,8 @@ export default async function handler(
mode: 'subscription',
metadata,
allow_promotion_codes: true,
- success_url: `${process.env.NEXT_PUBLIC_MARKETING_URL}/claimed?sessionId={CHECKOUT_SESSION_ID}`,
- cancel_url: `${process.env.NEXT_PUBLIC_MARKETING_URL}`,
+ success_url: `${NEXT_PUBLIC_MARKETING_URL()}/claimed?sessionId={CHECKOUT_SESSION_ID}`,
+ cancel_url: `${NEXT_PUBLIC_MARKETING_URL()}`,
});
if (!checkout.url) {
diff --git a/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx b/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx
index 832e255fd..2159b87f2 100644
--- a/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx
+++ b/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx
@@ -61,7 +61,7 @@ export const EditDocumentForm = ({
const { mutateAsync: setPasswordForDocument } =
trpc.document.setPasswordForDocument.useMutation();
- const documentFlow: Record = {
+ const documentFlow: Record = {
title: {
title: 'Add Title',
description: 'Add the title to the document.',
diff --git a/apps/web/src/app/(dashboard)/settings/billing/create-billing-portal.action.ts b/apps/web/src/app/(dashboard)/settings/billing/create-billing-portal.action.ts
index 7d952d599..5435aefb1 100644
--- a/apps/web/src/app/(dashboard)/settings/billing/create-billing-portal.action.ts
+++ b/apps/web/src/app/(dashboard)/settings/billing/create-billing-portal.action.ts
@@ -1,20 +1,17 @@
'use server';
-import { env } from 'next-runtime-env';
-
import { getStripeCustomerByUser } from '@documenso/ee/server-only/stripe/get-customer';
import { getPortalSession } from '@documenso/ee/server-only/stripe/get-portal-session';
+import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session';
export const createBillingPortal = async () => {
- const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
-
const { user } = await getRequiredServerComponentSession();
const { stripeCustomer } = await getStripeCustomerByUser(user);
return getPortalSession({
customerId: stripeCustomer.id,
- returnUrl: `${NEXT_PUBLIC_WEBAPP_URL}/settings/billing`,
+ returnUrl: `${NEXT_PUBLIC_WEBAPP_URL()}/settings/billing`,
});
};
diff --git a/apps/web/src/app/(dashboard)/settings/billing/create-checkout.action.ts b/apps/web/src/app/(dashboard)/settings/billing/create-checkout.action.ts
index ef3fb0f30..90dd77e79 100644
--- a/apps/web/src/app/(dashboard)/settings/billing/create-checkout.action.ts
+++ b/apps/web/src/app/(dashboard)/settings/billing/create-checkout.action.ts
@@ -1,10 +1,9 @@
'use server';
-import { env } from 'next-runtime-env';
-
import { getCheckoutSession } from '@documenso/ee/server-only/stripe/get-checkout-session';
import { getStripeCustomerByUser } from '@documenso/ee/server-only/stripe/get-customer';
import { getPortalSession } from '@documenso/ee/server-only/stripe/get-portal-session';
+import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import { getRequiredServerComponentSession } from '@documenso/lib/next-auth/get-server-component-session';
import { getSubscriptionsByUserId } from '@documenso/lib/server-only/subscription/get-subscriptions-by-user-id';
@@ -13,8 +12,6 @@ export type CreateCheckoutOptions = {
};
export const createCheckout = async ({ priceId }: CreateCheckoutOptions) => {
- const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
-
const session = await getRequiredServerComponentSession();
const { user, stripeCustomer } = await getStripeCustomerByUser(session.user);
@@ -31,13 +28,13 @@ export const createCheckout = async ({ priceId }: CreateCheckoutOptions) => {
if (foundSubscription) {
return getPortalSession({
customerId: stripeCustomer.id,
- returnUrl: `${NEXT_PUBLIC_WEBAPP_URL}/settings/billing`,
+ returnUrl: `${NEXT_PUBLIC_WEBAPP_URL()}/settings/billing`,
});
}
return getCheckoutSession({
customerId: stripeCustomer.id,
priceId,
- returnUrl: `${NEXT_PUBLIC_WEBAPP_URL}/settings/billing`,
+ returnUrl: `${NEXT_PUBLIC_WEBAPP_URL()}/settings/billing`,
});
};
diff --git a/apps/web/src/app/(share)/share/[slug]/opengraph/route.tsx b/apps/web/src/app/(share)/share/[slug]/opengraph/route.tsx
index e9977b8f3..27f39a6b1 100644
--- a/apps/web/src/app/(share)/share/[slug]/opengraph/route.tsx
+++ b/apps/web/src/app/(share)/share/[slug]/opengraph/route.tsx
@@ -1,9 +1,10 @@
import { ImageResponse } from 'next/og';
import { NextResponse } from 'next/server';
-import { env } from 'next-runtime-env';
import { P, match } from 'ts-pattern';
+import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
+
import type { ShareHandlerAPIResponse } from '~/pages/api/share';
export const runtime = 'edge';
@@ -23,8 +24,6 @@ type SharePageOpenGraphImageProps = {
};
export async function GET(_request: Request, { params: { slug } }: SharePageOpenGraphImageProps) {
- const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
-
const [interSemiBold, interRegular, caveatRegular, shareFrameImage] = await Promise.all([
fetch(new URL('@documenso/assets/fonts/inter-semibold.ttf', import.meta.url)).then(
async (res) => res.arrayBuffer(),
@@ -40,7 +39,7 @@ export async function GET(_request: Request, { params: { slug } }: SharePageOpen
),
]);
- const baseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const baseUrl = NEXT_PUBLIC_WEBAPP_URL() || 'http://localhost:3000';
const recipientOrSender: ShareHandlerAPIResponse = await fetch(
new URL(`/api/share?slug=${slug}`, baseUrl),
diff --git a/apps/web/src/app/(share)/share/[slug]/page.tsx b/apps/web/src/app/(share)/share/[slug]/page.tsx
index ab530ba0b..80d991934 100644
--- a/apps/web/src/app/(share)/share/[slug]/page.tsx
+++ b/apps/web/src/app/(share)/share/[slug]/page.tsx
@@ -2,9 +2,7 @@ import type { Metadata } from 'next';
import { headers } from 'next/headers';
import { redirect } from 'next/navigation';
-import { env } from 'next-runtime-env';
-
-import { APP_BASE_URL } from '@documenso/lib/constants/app';
+import { APP_BASE_URL, NEXT_PUBLIC_MARKETING_URL } from '@documenso/lib/constants/app';
type SharePageProps = {
params: { slug: string };
@@ -18,20 +16,18 @@ export function generateMetadata({ params: { slug } }: SharePageProps) {
title: 'Documenso - Join the open source signing revolution',
description: 'I just signed with Documenso!',
type: 'website',
- images: [`${APP_BASE_URL}/share/${slug}/opengraph`],
+ images: [`${APP_BASE_URL()}/share/${slug}/opengraph`],
},
twitter: {
site: '@documenso',
card: 'summary_large_image',
- images: [`${APP_BASE_URL}/share/${slug}/opengraph`],
+ images: [`${APP_BASE_URL()}/share/${slug}/opengraph`],
description: 'I just signed with Documenso!',
},
} satisfies Metadata;
}
export default function SharePage() {
- const NEXT_PUBLIC_MARKETING_URL = env('NEXT_PUBLIC_MARKETING_URL');
-
const userAgent = headers().get('User-Agent') ?? '';
// https://stackoverflow.com/questions/47026171/how-to-detect-bots-for-open-graph-with-user-agent
@@ -39,5 +35,5 @@ export default function SharePage() {
return null;
}
- redirect(NEXT_PUBLIC_MARKETING_URL ?? 'http://localhost:3001');
+ redirect(NEXT_PUBLIC_MARKETING_URL() ?? 'http://localhost:3001');
}
diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx
index 1e6619a46..606aa0f10 100644
--- a/apps/web/src/app/layout.tsx
+++ b/apps/web/src/app/layout.tsx
@@ -2,10 +2,11 @@ import { Suspense } from 'react';
import { Caveat, Inter } from 'next/font/google';
-import { PublicEnvScript, env } from 'next-runtime-env';
+import { PublicEnvScript } from 'next-runtime-env';
import { FeatureFlagProvider } from '@documenso/lib/client-only/providers/feature-flag';
import { LocaleProvider } from '@documenso/lib/client-only/providers/locale';
+import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import { getServerComponentAllFlags } from '@documenso/lib/server-only/feature-flags/get-server-component-feature-flag';
import { getLocale } from '@documenso/lib/server-only/headers/get-locale';
import { TrpcProvider } from '@documenso/trpc/react';
@@ -21,8 +22,6 @@ import './globals.css';
const fontInter = Inter({ subsets: ['latin'], variable: '--font-sans' });
const fontCaveat = Caveat({ subsets: ['latin'], variable: '--font-signature' });
-const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
-
export const metadata = {
title: {
template: '%s - Documenso',
@@ -39,12 +38,12 @@ export const metadata = {
description:
'Join Documenso, the open signing infrastructure, and get a 10x better signing experience. Pricing starts at $30/mo. forever! Sign in now and enjoy a faster, smarter, and more beautiful document signing process. Integrates with your favorite tools, customizable, and expandable. Support our mission and become a part of our open-source community.',
type: 'website',
- images: [`${NEXT_PUBLIC_WEBAPP_URL}/opengraph-image.jpg`],
+ images: [`${NEXT_PUBLIC_WEBAPP_URL()}/opengraph-image.jpg`],
},
twitter: {
site: '@documenso',
card: 'summary_large_image',
- images: [`${NEXT_PUBLIC_WEBAPP_URL}/opengraph-image.jpg`],
+ images: [`${NEXT_PUBLIC_WEBAPP_URL()}/opengraph-image.jpg`],
description:
'Join Documenso, the open signing infrastructure, and get a 10x better signing experience. Pricing starts at $30/mo. forever! Sign in now and enjoy a faster, smarter, and more beautiful document signing process. Integrates with your favorite tools, customizable, and expandable. Support our mission and become a part of our open-source community.',
},
diff --git a/apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx b/apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx
index 727627ddd..a809ed23e 100644
--- a/apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx
+++ b/apps/web/src/components/(dashboard)/avatar/avatar-with-recipient.tsx
@@ -2,10 +2,9 @@
import React from 'react';
-import { env } from 'next-runtime-env';
-
import { useCopyToClipboard } from '@documenso/lib/client-only/hooks/use-copy-to-clipboard';
import { getRecipientType } from '@documenso/lib/client-only/recipient-type';
+import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import { recipientAbbreviation } from '@documenso/lib/utils/recipient-formatter';
import type { Recipient } from '@documenso/prisma/client';
import { cn } from '@documenso/ui/lib/utils';
@@ -18,8 +17,6 @@ export type AvatarWithRecipientProps = {
};
export function AvatarWithRecipient({ recipient }: AvatarWithRecipientProps) {
- const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
-
const [, copy] = useCopyToClipboard();
const { toast } = useToast();
@@ -28,7 +25,7 @@ export function AvatarWithRecipient({ recipient }: AvatarWithRecipientProps) {
return;
}
- void copy(`${NEXT_PUBLIC_WEBAPP_URL}/sign/${recipient.token}`).then(() => {
+ void copy(`${NEXT_PUBLIC_WEBAPP_URL()}/sign/${recipient.token}`).then(() => {
toast({
title: 'Copied to clipboard',
description: 'The signing link has been copied to your clipboard.',
diff --git a/apps/web/src/helpers/get-asset-buffer.ts b/apps/web/src/helpers/get-asset-buffer.ts
index 12c27d1a5..871e669b1 100644
--- a/apps/web/src/helpers/get-asset-buffer.ts
+++ b/apps/web/src/helpers/get-asset-buffer.ts
@@ -1,4 +1,4 @@
-import { env } from 'next-runtime-env';
+import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
/**
* getAssetBuffer is used to retrieve array buffers for various assets
@@ -10,9 +10,7 @@ import { env } from 'next-runtime-env';
* @param path The path to the asset, relative to the `public` folder.
*/
export const getAssetBuffer = async (path: string) => {
- const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
-
- const baseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const baseUrl = NEXT_PUBLIC_WEBAPP_URL() || 'http://localhost:3000';
return fetch(new URL(path, baseUrl)).then(async (res) => res.arrayBuffer());
};
diff --git a/packages/ee/server-only/limits/client.ts b/packages/ee/server-only/limits/client.ts
index 9bb2bd0ac..fa31e6e40 100644
--- a/packages/ee/server-only/limits/client.ts
+++ b/packages/ee/server-only/limits/client.ts
@@ -11,7 +11,7 @@ export type GetLimitsOptions = {
export const getLimits = async ({ headers }: GetLimitsOptions = {}) => {
const requestHeaders = headers ?? {};
- const url = new URL('/api/limits', APP_BASE_URL ?? 'http://localhost:3000');
+ const url = new URL('/api/limits', APP_BASE_URL() ?? 'http://localhost:3000');
return fetch(url, {
headers: {
diff --git a/packages/lib/constants/app.ts b/packages/lib/constants/app.ts
index cee5a7586..0675bb84b 100644
--- a/packages/lib/constants/app.ts
+++ b/packages/lib/constants/app.ts
@@ -1,12 +1,13 @@
import { env } from 'next-runtime-env';
-const NEXT_PUBLIC_PROJECT = process.env.NEXT_PUBLIC_PROJECT;
-const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
-const NEXT_PUBLIC_MARKETING_URL = env('NEXT_PUBLIC_MARKETING_URL');
+export const NEXT_PUBLIC_PROJECT = () => env('NEXT_PUBLIC_PROJECT');
+export const NEXT_PUBLIC_WEBAPP_URL = () => env('NEXT_PUBLIC_WEBAPP_URL');
+export const NEXT_PUBLIC_MARKETING_URL = () => env('NEXT_PUBLIC_MARKETING_URL');
-export const IS_APP_MARKETING = NEXT_PUBLIC_PROJECT === 'marketing';
-export const IS_APP_WEB = NEXT_PUBLIC_PROJECT === 'web';
+export const IS_APP_MARKETING = () => NEXT_PUBLIC_PROJECT() === 'marketing';
+export const IS_APP_WEB = () => NEXT_PUBLIC_PROJECT() === 'web';
-export const APP_FOLDER = IS_APP_MARKETING ? 'marketing' : 'web';
+export const APP_FOLDER = () => (IS_APP_MARKETING() ? 'marketing' : 'web');
-export const APP_BASE_URL = IS_APP_WEB ? NEXT_PUBLIC_WEBAPP_URL : NEXT_PUBLIC_MARKETING_URL;
+export const APP_BASE_URL = () =>
+ IS_APP_WEB() ? NEXT_PUBLIC_WEBAPP_URL() : NEXT_PUBLIC_MARKETING_URL();
diff --git a/packages/lib/constants/crypto.ts b/packages/lib/constants/crypto.ts
index 40d3ef113..74f306a53 100644
--- a/packages/lib/constants/crypto.ts
+++ b/packages/lib/constants/crypto.ts
@@ -2,15 +2,15 @@ export const DOCUMENSO_ENCRYPTION_KEY = process.env.NEXT_PRIVATE_ENCRYPTION_KEY;
export const DOCUMENSO_ENCRYPTION_SECONDARY_KEY = process.env.NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY;
-if (!DOCUMENSO_ENCRYPTION_KEY || !DOCUMENSO_ENCRYPTION_SECONDARY_KEY) {
- throw new Error('Missing DOCUMENSO_ENCRYPTION_KEY or DOCUMENSO_ENCRYPTION_SECONDARY_KEY keys');
-}
+// if (!DOCUMENSO_ENCRYPTION_KEY || !DOCUMENSO_ENCRYPTION_SECONDARY_KEY) {
+// throw new Error('Missing DOCUMENSO_ENCRYPTION_KEY or DOCUMENSO_ENCRYPTION_SECONDARY_KEY keys');
+// }
-if (DOCUMENSO_ENCRYPTION_KEY === DOCUMENSO_ENCRYPTION_SECONDARY_KEY) {
- throw new Error(
- 'DOCUMENSO_ENCRYPTION_KEY and DOCUMENSO_ENCRYPTION_SECONDARY_KEY cannot be equal',
- );
-}
+// if (DOCUMENSO_ENCRYPTION_KEY === DOCUMENSO_ENCRYPTION_SECONDARY_KEY) {
+// throw new Error(
+// 'DOCUMENSO_ENCRYPTION_KEY and DOCUMENSO_ENCRYPTION_SECONDARY_KEY cannot be equal',
+// );
+// }
if (DOCUMENSO_ENCRYPTION_KEY === 'CAFEBABE') {
console.warn('*********************************************************************');
diff --git a/packages/lib/constants/feature-flags.ts b/packages/lib/constants/feature-flags.ts
index a0e958e3a..d33db549e 100644
--- a/packages/lib/constants/feature-flags.ts
+++ b/packages/lib/constants/feature-flags.ts
@@ -2,8 +2,8 @@ import { env } from 'next-runtime-env';
import { APP_BASE_URL } from './app';
-const NEXT_PUBLIC_FEATURE_BILLING_ENABLED = env('NEXT_PUBLIC_FEATURE_BILLING_ENABLED');
-const NEXT_PUBLIC_POSTHOG_KEY = env('NEXT_PUBLIC_POSTHOG_KEY');
+const NEXT_PUBLIC_FEATURE_BILLING_ENABLED = () => env('NEXT_PUBLIC_FEATURE_BILLING_ENABLED');
+const NEXT_PUBLIC_POSTHOG_KEY = () => env('NEXT_PUBLIC_POSTHOG_KEY');
/**
* The flag name for global session recording feature flag.
@@ -21,7 +21,7 @@ export const FEATURE_FLAG_POLL_INTERVAL = 30000;
* Does not take any person or group properties into account.
*/
export const LOCAL_FEATURE_FLAGS: Record = {
- app_billing: NEXT_PUBLIC_FEATURE_BILLING_ENABLED === 'true',
+ app_billing: NEXT_PUBLIC_FEATURE_BILLING_ENABLED() === 'true',
marketing_header_single_player_mode: false,
} as const;
@@ -29,8 +29,8 @@ export const LOCAL_FEATURE_FLAGS: Record = {
* Extract the PostHog configuration from the environment.
*/
export function extractPostHogConfig(): { key: string; host: string } | null {
- const postHogKey = NEXT_PUBLIC_POSTHOG_KEY;
- const postHogHost = `${APP_BASE_URL}/ingest`;
+ const postHogKey = NEXT_PUBLIC_POSTHOG_KEY();
+ const postHogHost = `${APP_BASE_URL()}/ingest`;
if (!postHogKey || !postHogHost) {
return null;
diff --git a/packages/lib/constants/pdf.ts b/packages/lib/constants/pdf.ts
index eba72ab56..19663ef58 100644
--- a/packages/lib/constants/pdf.ts
+++ b/packages/lib/constants/pdf.ts
@@ -6,4 +6,4 @@ export const DEFAULT_HANDWRITING_FONT_SIZE = 50;
export const MIN_STANDARD_FONT_SIZE = 8;
export const MIN_HANDWRITING_FONT_SIZE = 20;
-export const CAVEAT_FONT_PATH = `${APP_BASE_URL}/fonts/caveat.ttf`;
+export const CAVEAT_FONT_PATH = () => `${APP_BASE_URL()}/fonts/caveat.ttf`;
diff --git a/packages/lib/next-auth/auth-options.ts b/packages/lib/next-auth/auth-options.ts
index 4823833cc..8f324d248 100644
--- a/packages/lib/next-auth/auth-options.ts
+++ b/packages/lib/next-auth/auth-options.ts
@@ -17,8 +17,6 @@ import { validateTwoFactorAuthentication } from '../server-only/2fa/validate-2fa
import { getUserByEmail } from '../server-only/user/get-user-by-email';
import { ErrorCode } from './error-codes';
-const NEXT_PUBLIC_DISABLE_SIGNUP = env('NEXT_PUBLIC_DISABLE_SIGNUP');
-
export const NEXT_AUTH_OPTIONS: AuthOptions = {
adapter: PrismaAdapter(prisma),
secret: process.env.NEXTAUTH_SECRET ?? 'secret',
@@ -186,7 +184,7 @@ export const NEXT_AUTH_OPTIONS: AuthOptions = {
async signIn({ user }) {
// We do this to stop OAuth providers from creating an account
// when signups are disabled
- if (NEXT_PUBLIC_DISABLE_SIGNUP === 'true') {
+ if (env('NEXT_PUBLIC_DISABLE_SIGNUP') === 'true') {
const userData = await getUserByEmail({ email: user.email! });
return !!userData;
diff --git a/packages/lib/server-only/auth/send-confirmation-email.ts b/packages/lib/server-only/auth/send-confirmation-email.ts
index c808e8f3d..3e1ac920d 100644
--- a/packages/lib/server-only/auth/send-confirmation-email.ts
+++ b/packages/lib/server-only/auth/send-confirmation-email.ts
@@ -1,20 +1,19 @@
import { createElement } from 'react';
-import { env } from 'next-runtime-env';
-
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import { ConfirmEmailTemplate } from '@documenso/email/templates/confirm-email';
import { prisma } from '@documenso/prisma';
+import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app';
+
export interface SendConfirmationEmailProps {
userId: number;
}
export const sendConfirmationEmail = async ({ userId }: SendConfirmationEmailProps) => {
- const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
- const NEXT_PRIVATE_SMTP_FROM_NAME = env('NEXT_PRIVATE_SMTP_FROM_NAME');
- const NEXT_PRIVATE_SMTP_FROM_ADDRESS = env('NEXT_PRIVATE_SMTP_FROM_ADDRESS');
+ const NEXT_PRIVATE_SMTP_FROM_NAME = process.env.NEXT_PRIVATE_SMTP_FROM_NAME;
+ const NEXT_PRIVATE_SMTP_FROM_ADDRESS = process.env.NEXT_PRIVATE_SMTP_FROM_ADDRESS;
const user = await prisma.user.findFirstOrThrow({
where: {
@@ -36,7 +35,7 @@ export const sendConfirmationEmail = async ({ userId }: SendConfirmationEmailPro
throw new Error('Verification token not found for the user');
}
- const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL() || 'http://localhost:3000';
const confirmationLink = `${assetBaseUrl}/verify-email/${verificationToken.token}`;
const senderName = NEXT_PRIVATE_SMTP_FROM_NAME || 'Documenso';
const senderAdress = NEXT_PRIVATE_SMTP_FROM_ADDRESS || 'noreply@documenso.com';
diff --git a/packages/lib/server-only/auth/send-forgot-password.ts b/packages/lib/server-only/auth/send-forgot-password.ts
index 125db9338..6e3a582a8 100644
--- a/packages/lib/server-only/auth/send-forgot-password.ts
+++ b/packages/lib/server-only/auth/send-forgot-password.ts
@@ -1,19 +1,17 @@
import { createElement } from 'react';
-import { env } from 'next-runtime-env';
-
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import { ForgotPasswordTemplate } from '@documenso/email/templates/forgot-password';
import { prisma } from '@documenso/prisma';
+import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app';
+
export interface SendForgotPasswordOptions {
userId: number;
}
export const sendForgotPassword = async ({ userId }: SendForgotPasswordOptions) => {
- const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
-
const user = await prisma.user.findFirstOrThrow({
where: {
id: userId,
@@ -33,8 +31,8 @@ export const sendForgotPassword = async ({ userId }: SendForgotPasswordOptions)
}
const token = user.PasswordResetToken[0].token;
- const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
- const resetPasswordLink = `${NEXT_PUBLIC_WEBAPP_URL}/reset-password/${token}`;
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL() || 'http://localhost:3000';
+ const resetPasswordLink = `${NEXT_PUBLIC_WEBAPP_URL()}/reset-password/${token}`;
const template = createElement(ForgotPasswordTemplate, {
assetBaseUrl,
diff --git a/packages/lib/server-only/auth/send-reset-password.ts b/packages/lib/server-only/auth/send-reset-password.ts
index 3dcec113c..6bcd5820d 100644
--- a/packages/lib/server-only/auth/send-reset-password.ts
+++ b/packages/lib/server-only/auth/send-reset-password.ts
@@ -1,26 +1,24 @@
import { createElement } from 'react';
-import { env } from 'next-runtime-env';
-
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import { ResetPasswordTemplate } from '@documenso/email/templates/reset-password';
import { prisma } from '@documenso/prisma';
+import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app';
+
export interface SendResetPasswordOptions {
userId: number;
}
export const sendResetPassword = async ({ userId }: SendResetPasswordOptions) => {
- const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
-
const user = await prisma.user.findFirstOrThrow({
where: {
id: userId,
},
});
- const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL() || 'http://localhost:3000';
const template = createElement(ResetPasswordTemplate, {
assetBaseUrl,
diff --git a/packages/lib/server-only/document/delete-document.ts b/packages/lib/server-only/document/delete-document.ts
index 58b1f48a9..a5cf96cdd 100644
--- a/packages/lib/server-only/document/delete-document.ts
+++ b/packages/lib/server-only/document/delete-document.ts
@@ -2,14 +2,13 @@
import { createElement } from 'react';
-import { env } from 'next-runtime-env';
-
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import DocumentCancelTemplate from '@documenso/email/templates/document-cancel';
import { prisma } from '@documenso/prisma';
import { DocumentStatus } from '@documenso/prisma/client';
+import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app';
import { FROM_ADDRESS, FROM_NAME } from '../../constants/email';
export type DeleteDocumentOptions = {
@@ -18,8 +17,6 @@ export type DeleteDocumentOptions = {
status: DocumentStatus;
};
-const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
-
export const deleteDocument = async ({ id, userId, status }: DeleteDocumentOptions) => {
// if the document is a draft, hard-delete
if (status === DocumentStatus.DRAFT) {
@@ -53,7 +50,7 @@ export const deleteDocument = async ({ id, userId, status }: DeleteDocumentOptio
if (document.Recipient.length > 0) {
await Promise.all(
document.Recipient.map(async (recipient) => {
- const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL() || 'http://localhost:3000';
const template = createElement(DocumentCancelTemplate, {
documentName: document.title,
diff --git a/packages/lib/server-only/document/resend-document.tsx b/packages/lib/server-only/document/resend-document.tsx
index a048cf600..85e148a57 100644
--- a/packages/lib/server-only/document/resend-document.tsx
+++ b/packages/lib/server-only/document/resend-document.tsx
@@ -1,7 +1,5 @@
import { createElement } from 'react';
-import { env } from 'next-runtime-env';
-
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import { DocumentInviteEmailTemplate } from '@documenso/email/templates/document-invite';
@@ -10,14 +8,14 @@ import { renderCustomEmailTemplate } from '@documenso/lib/utils/render-custom-em
import { prisma } from '@documenso/prisma';
import { DocumentStatus, SigningStatus } from '@documenso/prisma/client';
+import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app';
+
export type ResendDocumentOptions = {
documentId: number;
userId: number;
recipients: number[];
};
-const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
-
export const resendDocument = async ({ documentId, userId, recipients }: ResendDocumentOptions) => {
const user = await prisma.user.findFirstOrThrow({
where: {
@@ -71,8 +69,8 @@ export const resendDocument = async ({ documentId, userId, recipients }: ResendD
'document.name': document.title,
};
- const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
- const signDocumentLink = `${NEXT_PUBLIC_WEBAPP_URL}/sign/${recipient.token}`;
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL() || 'http://localhost:3000';
+ const signDocumentLink = `${NEXT_PUBLIC_WEBAPP_URL()}/sign/${recipient.token}`;
const template = createElement(DocumentInviteEmailTemplate, {
documentName: document.title,
diff --git a/packages/lib/server-only/document/send-completed-email.ts b/packages/lib/server-only/document/send-completed-email.ts
index 9b624a23c..c7134d164 100644
--- a/packages/lib/server-only/document/send-completed-email.ts
+++ b/packages/lib/server-only/document/send-completed-email.ts
@@ -1,12 +1,11 @@
import { createElement } from 'react';
-import { env } from 'next-runtime-env';
-
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import { DocumentCompletedEmailTemplate } from '@documenso/email/templates/document-completed';
import { prisma } from '@documenso/prisma';
+import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app';
import { getFile } from '../../universal/upload/get-file';
export interface SendDocumentOptions {
@@ -14,8 +13,6 @@ export interface SendDocumentOptions {
}
export const sendCompletedEmail = async ({ documentId }: SendDocumentOptions) => {
- const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
-
const document = await prisma.document.findUnique({
where: {
id: documentId,
@@ -40,12 +37,12 @@ export const sendCompletedEmail = async ({ documentId }: SendDocumentOptions) =>
document.Recipient.map(async (recipient) => {
const { email, name, token } = recipient;
- const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL() || 'http://localhost:3000';
const template = createElement(DocumentCompletedEmailTemplate, {
documentName: document.title,
assetBaseUrl,
- downloadLink: `${NEXT_PUBLIC_WEBAPP_URL}/sign/${token}/complete`,
+ downloadLink: `${NEXT_PUBLIC_WEBAPP_URL()}/sign/${token}/complete`,
});
await mailer.sendMail({
diff --git a/packages/lib/server-only/document/send-document.tsx b/packages/lib/server-only/document/send-document.tsx
index f72c79792..86f610cc9 100644
--- a/packages/lib/server-only/document/send-document.tsx
+++ b/packages/lib/server-only/document/send-document.tsx
@@ -1,7 +1,5 @@
import { createElement } from 'react';
-import { env } from 'next-runtime-env';
-
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import { DocumentInviteEmailTemplate } from '@documenso/email/templates/document-invite';
@@ -10,14 +8,14 @@ import { renderCustomEmailTemplate } from '@documenso/lib/utils/render-custom-em
import { prisma } from '@documenso/prisma';
import { DocumentStatus, SendStatus } from '@documenso/prisma/client';
+import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app';
+
export type SendDocumentOptions = {
documentId: number;
userId: number;
};
export const sendDocument = async ({ documentId, userId }: SendDocumentOptions) => {
- const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
-
const user = await prisma.user.findFirstOrThrow({
where: {
id: userId,
@@ -63,8 +61,8 @@ export const sendDocument = async ({ documentId, userId }: SendDocumentOptions)
return;
}
- const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
- const signDocumentLink = `${NEXT_PUBLIC_WEBAPP_URL}/sign/${recipient.token}`;
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL() || 'http://localhost:3000';
+ const signDocumentLink = `${NEXT_PUBLIC_WEBAPP_URL()}/sign/${recipient.token}`;
const template = createElement(DocumentInviteEmailTemplate, {
documentName: document.title,
diff --git a/packages/lib/server-only/document/send-pending-email.ts b/packages/lib/server-only/document/send-pending-email.ts
index abbecd72a..73e938a7d 100644
--- a/packages/lib/server-only/document/send-pending-email.ts
+++ b/packages/lib/server-only/document/send-pending-email.ts
@@ -1,20 +1,18 @@
import { createElement } from 'react';
-import { env } from 'next-runtime-env';
-
import { mailer } from '@documenso/email/mailer';
import { render } from '@documenso/email/render';
import { DocumentPendingEmailTemplate } from '@documenso/email/templates/document-pending';
import { prisma } from '@documenso/prisma';
+import { NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app';
+
export interface SendPendingEmailOptions {
documentId: number;
recipientId: number;
}
export const sendPendingEmail = async ({ documentId, recipientId }: SendPendingEmailOptions) => {
- const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
-
const document = await prisma.document.findFirst({
where: {
id: documentId,
@@ -45,7 +43,7 @@ export const sendPendingEmail = async ({ documentId, recipientId }: SendPendingE
const { email, name } = recipient;
- const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000';
+ const assetBaseUrl = NEXT_PUBLIC_WEBAPP_URL() || 'http://localhost:3000';
const template = createElement(DocumentPendingEmailTemplate, {
documentName: document.title,
diff --git a/packages/lib/server-only/feature-flags/all.ts b/packages/lib/server-only/feature-flags/all.ts
index fff6cd855..71efd5425 100644
--- a/packages/lib/server-only/feature-flags/all.ts
+++ b/packages/lib/server-only/feature-flags/all.ts
@@ -1,20 +1,17 @@
import { NextRequest, NextResponse } from 'next/server';
import { getToken } from 'next-auth/jwt';
-import { env } from 'next-runtime-env';
import { LOCAL_FEATURE_FLAGS } from '@documenso/lib/constants/feature-flags';
import PostHogServerClient from '@documenso/lib/server-only/feature-flags/get-post-hog-server-client';
+import { NEXT_PUBLIC_MARKETING_URL, NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app';
import { extractDistinctUserId, mapJwtToFlagProperties } from './get';
/**
* Get all the evaluated feature flags based on the current user if possible.
*/
export default async function handlerFeatureFlagAll(req: Request) {
- const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
- const NEXT_PUBLIC_MARKETING_URL = env('NEXT_PUBLIC_MARKETING_URL');
-
const requestHeaders = Object.fromEntries(req.headers.entries());
const nextReq = new NextRequest(req, {
@@ -42,11 +39,11 @@ export default async function handlerFeatureFlagAll(req: Request) {
const origin = req.headers.get('origin');
if (origin) {
- if (origin.startsWith(NEXT_PUBLIC_WEBAPP_URL ?? 'http://localhost:3000')) {
+ if (origin.startsWith(NEXT_PUBLIC_WEBAPP_URL() ?? 'http://localhost:3000')) {
res.headers.set('Access-Control-Allow-Origin', origin);
}
- if (origin.startsWith(NEXT_PUBLIC_MARKETING_URL ?? 'http://localhost:3001')) {
+ if (origin.startsWith(NEXT_PUBLIC_MARKETING_URL() ?? 'http://localhost:3001')) {
res.headers.set('Access-Control-Allow-Origin', origin);
}
}
diff --git a/packages/lib/server-only/feature-flags/get.ts b/packages/lib/server-only/feature-flags/get.ts
index 6f8a2c011..5b2b3b7fd 100644
--- a/packages/lib/server-only/feature-flags/get.ts
+++ b/packages/lib/server-only/feature-flags/get.ts
@@ -3,11 +3,12 @@ import { NextRequest, NextResponse } from 'next/server';
import { nanoid } from 'nanoid';
import type { JWT } from 'next-auth/jwt';
import { getToken } from 'next-auth/jwt';
-import { env } from 'next-runtime-env';
import { LOCAL_FEATURE_FLAGS, extractPostHogConfig } from '@documenso/lib/constants/feature-flags';
import PostHogServerClient from '@documenso/lib/server-only/feature-flags/get-post-hog-server-client';
+import { NEXT_PUBLIC_MARKETING_URL, NEXT_PUBLIC_WEBAPP_URL } from '../../constants/app';
+
/**
* Evaluate a single feature flag based on the current user if possible.
*
@@ -15,9 +16,6 @@ import PostHogServerClient from '@documenso/lib/server-only/feature-flags/get-po
* @returns A Response with the feature flag value.
*/
export default async function handleFeatureFlagGet(req: Request) {
- const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
- const NEXT_PUBLIC_MARKETING_URL = env('NEXT_PUBLIC_MARKETING_URL');
-
const { searchParams } = new URL(req.url ?? '');
const flag = searchParams.get('flag');
@@ -62,11 +60,11 @@ export default async function handleFeatureFlagGet(req: Request) {
const origin = req.headers.get('Origin');
if (origin) {
- if (origin.startsWith(NEXT_PUBLIC_WEBAPP_URL ?? 'http://localhost:3000')) {
+ if (origin.startsWith(NEXT_PUBLIC_WEBAPP_URL() ?? 'http://localhost:3000')) {
res.headers.set('Access-Control-Allow-Origin', origin);
}
- if (origin.startsWith(NEXT_PUBLIC_MARKETING_URL ?? 'http://localhost:3001')) {
+ if (origin.startsWith(NEXT_PUBLIC_MARKETING_URL() ?? 'http://localhost:3001')) {
res.headers.set('Access-Control-Allow-Origin', origin);
}
}
diff --git a/packages/lib/server-only/pdf/insert-text-in-pdf.ts b/packages/lib/server-only/pdf/insert-text-in-pdf.ts
index 248702b6e..d5120341c 100644
--- a/packages/lib/server-only/pdf/insert-text-in-pdf.ts
+++ b/packages/lib/server-only/pdf/insert-text-in-pdf.ts
@@ -12,7 +12,7 @@ export async function insertTextInPDF(
useHandwritingFont = true,
): Promise {
// Fetch the font file from the public URL.
- const fontResponse = await fetch(CAVEAT_FONT_PATH);
+ const fontResponse = await fetch(CAVEAT_FONT_PATH());
const fontCaveat = await fontResponse.arrayBuffer();
const pdfDoc = await PDFDocument.load(pdfAsBase64);
diff --git a/packages/lib/universal/get-base-url.ts b/packages/lib/universal/get-base-url.ts
index b7c9d4ea4..7f9380047 100644
--- a/packages/lib/universal/get-base-url.ts
+++ b/packages/lib/universal/get-base-url.ts
@@ -1,7 +1,5 @@
/* eslint-disable turbo/no-undeclared-env-vars */
-import { env } from 'next-runtime-env';
-
-const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
+import { NEXT_PUBLIC_WEBAPP_URL } from '../constants/app';
export const getBaseUrl = () => {
if (typeof window !== 'undefined') {
@@ -12,8 +10,10 @@ export const getBaseUrl = () => {
return `https://${process.env.VERCEL_URL}`;
}
- if (NEXT_PUBLIC_WEBAPP_URL) {
- return NEXT_PUBLIC_WEBAPP_URL;
+ const webAppUrl = NEXT_PUBLIC_WEBAPP_URL();
+
+ if (webAppUrl) {
+ return webAppUrl;
}
return `http://localhost:${process.env.PORT ?? 3000}`;
diff --git a/packages/lib/universal/get-feature-flag.ts b/packages/lib/universal/get-feature-flag.ts
index 0fc0aa131..f4650f691 100644
--- a/packages/lib/universal/get-feature-flag.ts
+++ b/packages/lib/universal/get-feature-flag.ts
@@ -22,7 +22,7 @@ export const getFlag = async (
return LOCAL_FEATURE_FLAGS[flag] ?? true;
}
- const url = new URL(`${APP_BASE_URL}/api/feature-flag/get`);
+ const url = new URL(`${APP_BASE_URL()}/api/feature-flag/get`);
url.searchParams.set('flag', flag);
const response = await fetch(url, {
@@ -55,7 +55,7 @@ export const getAllFlags = async (
return LOCAL_FEATURE_FLAGS;
}
- const url = new URL(`${APP_BASE_URL}/api/feature-flag/all`);
+ const url = new URL(`${APP_BASE_URL()}/api/feature-flag/all`);
return fetch(url, {
headers: {
@@ -80,7 +80,7 @@ export const getAllAnonymousFlags = async (): Promise Promise;
};
-const NEXT_PUBLIC_UPLOAD_TRANSPORT = env('NEXT_PUBLIC_UPLOAD_TRANSPORT');
-
export const putFile = async (file: File) => {
+ const NEXT_PUBLIC_UPLOAD_TRANSPORT = env('NEXT_PUBLIC_UPLOAD_TRANSPORT');
+
const { type, data } = await match(NEXT_PUBLIC_UPLOAD_TRANSPORT)
.with('s3', async () => putFileInS3(file))
.otherwise(async () => putFileInDatabase(file));
diff --git a/packages/lib/universal/upload/server-actions.ts b/packages/lib/universal/upload/server-actions.ts
index 61429cd86..fd4bfc57a 100644
--- a/packages/lib/universal/upload/server-actions.ts
+++ b/packages/lib/universal/upload/server-actions.ts
@@ -18,8 +18,6 @@ import { APP_BASE_URL } from '../../constants/app';
import { ONE_HOUR, ONE_SECOND } from '../../constants/time';
import { alphaid } from '../id';
-const NEXT_PUBLIC_UPLOAD_TRANSPORT = env('NEXT_PUBLIC_UPLOAD_TRANSPORT');
-
export const getPresignPostUrl = async (fileName: string, contentType: string) => {
const client = getS3Client();
@@ -28,8 +26,10 @@ export const getPresignPostUrl = async (fileName: string, contentType: string) =
let token: JWT | null = null;
try {
+ const baseUrl = APP_BASE_URL() ?? 'http://localhost:3000';
+
token = await getToken({
- req: new NextRequest(APP_BASE_URL ?? 'http://localhost:3000', {
+ req: new NextRequest(baseUrl, {
headers: headers(),
}),
});
@@ -120,6 +120,8 @@ export const deleteS3File = async (key: string) => {
};
const getS3Client = () => {
+ const NEXT_PUBLIC_UPLOAD_TRANSPORT = env('NEXT_PUBLIC_UPLOAD_TRANSPORT');
+
if (NEXT_PUBLIC_UPLOAD_TRANSPORT !== 's3') {
throw new Error('Invalid upload transport');
}
diff --git a/packages/trpc/server/auth-router/router.ts b/packages/trpc/server/auth-router/router.ts
index 0debd7f8d..65fe8d296 100644
--- a/packages/trpc/server/auth-router/router.ts
+++ b/packages/trpc/server/auth-router/router.ts
@@ -9,12 +9,12 @@ import { sendConfirmationToken } from '@documenso/lib/server-only/user/send-conf
import { authenticatedProcedure, procedure, router } from '../trpc';
import { ZSignUpMutationSchema, ZVerifyPasswordMutationSchema } from './schema';
-const NEXT_PUBLIC_DISABLE_SIGNUP = env('NEXT_PUBLIC_DISABLE_SIGNUP');
+const NEXT_PUBLIC_DISABLE_SIGNUP = () => env('NEXT_PUBLIC_DISABLE_SIGNUP');
export const authRouter = router({
signup: procedure.input(ZSignUpMutationSchema).mutation(async ({ input }) => {
try {
- if (NEXT_PUBLIC_DISABLE_SIGNUP === 'true') {
+ if (NEXT_PUBLIC_DISABLE_SIGNUP() === 'true') {
throw new TRPCError({
code: 'BAD_REQUEST',
message: 'Signups are disabled.',
diff --git a/packages/trpc/server/singleplayer-router/router.ts b/packages/trpc/server/singleplayer-router/router.ts
index cb92aa7a4..4b4c12c0a 100644
--- a/packages/trpc/server/singleplayer-router/router.ts
+++ b/packages/trpc/server/singleplayer-router/router.ts
@@ -1,11 +1,11 @@
import { createElement } from 'react';
-import { env } from 'next-runtime-env';
import { PDFDocument } from 'pdf-lib';
import { mailer } from '@documenso/email/mailer';
import { renderAsync } from '@documenso/email/render';
import { DocumentSelfSignedEmailTemplate } from '@documenso/email/templates/document-self-signed';
+import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import { FROM_ADDRESS, FROM_NAME, SERVICE_USER_EMAIL } from '@documenso/lib/constants/email';
import { insertFieldInPDF } from '@documenso/lib/server-only/pdf/insert-field-in-pdf';
import { alphaid } from '@documenso/lib/universal/id';
@@ -25,8 +25,6 @@ import { procedure, router } from '../trpc';
import { mapField } from './helper';
import { ZCreateSinglePlayerDocumentMutationSchema } from './schema';
-const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
-
export const singleplayerRouter = router({
createSinglePlayerDocument: procedure
.input(ZCreateSinglePlayerDocumentMutationSchema)
@@ -151,7 +149,7 @@ export const singleplayerRouter = router({
const template = createElement(DocumentSelfSignedEmailTemplate, {
documentName: documentName,
- assetBaseUrl: NEXT_PUBLIC_WEBAPP_URL || 'http://localhost:3000',
+ assetBaseUrl: NEXT_PUBLIC_WEBAPP_URL() || 'http://localhost:3000',
});
const [html, text] = await Promise.all([
diff --git a/packages/ui/components/document/document-share-button.tsx b/packages/ui/components/document/document-share-button.tsx
index f304d92c0..e20e677c7 100644
--- a/packages/ui/components/document/document-share-button.tsx
+++ b/packages/ui/components/document/document-share-button.tsx
@@ -4,10 +4,10 @@ import type { HTMLAttributes } from 'react';
import React, { useState } from 'react';
import { Copy, Sparkles } from 'lucide-react';
-import { env } from 'next-runtime-env';
import { FaXTwitter } from 'react-icons/fa6';
import { useCopyShareLink } from '@documenso/lib/client-only/hooks/use-copy-share-link';
+import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app';
import {
TOAST_DOCUMENT_SHARE_ERROR,
TOAST_DOCUMENT_SHARE_SUCCESS,
@@ -39,7 +39,6 @@ export const DocumentShareButton = ({
className,
trigger,
}: DocumentShareButtonProps) => {
- const NEXT_PUBLIC_WEBAPP_URL = env('NEXT_PUBLIC_WEBAPP_URL');
const { toast } = useToast();
const { copyShareLink, createAndCopyShareLink, isCopyingShareLink } = useCopyShareLink({
@@ -70,7 +69,7 @@ export const DocumentShareButton = ({
const onCopyClick = async () => {
if (shareLink) {
- await copyShareLink(`${NEXT_PUBLIC_WEBAPP_URL}/share/${shareLink.slug}`);
+ await copyShareLink(`${NEXT_PUBLIC_WEBAPP_URL()}/share/${shareLink.slug}`);
} else {
await createAndCopyShareLink({
token,
@@ -94,7 +93,7 @@ export const DocumentShareButton = ({
}
// Ensuring we've prewarmed the opengraph image for the Twitter
- await fetch(`${NEXT_PUBLIC_WEBAPP_URL}/share/${slug}/opengraph`, {
+ await fetch(`${NEXT_PUBLIC_WEBAPP_URL()}/share/${slug}/opengraph`, {
// We don't care about the response, so we can use no-cors
mode: 'no-cors',
});
@@ -102,7 +101,7 @@ export const DocumentShareButton = ({
window.open(
generateTwitterIntent(
`I just ${token ? 'signed' : 'sent'} a document in style with @documenso. Check it out!`,
- `${NEXT_PUBLIC_WEBAPP_URL}/share/${slug}`,
+ `${NEXT_PUBLIC_WEBAPP_URL()}/share/${slug}`,
),
'_blank',
);
@@ -150,7 +149,7 @@ export const DocumentShareButton = ({
'animate-pulse': !shareLink?.slug,
})}
>
- {NEXT_PUBLIC_WEBAPP_URL}/share/{shareLink?.slug || '...'}
+ {NEXT_PUBLIC_WEBAPP_URL()}/share/{shareLink?.slug || '...'}
{shareLink?.slug && (
From 3541a805e5477570396fa8cfab59429946c9ff75 Mon Sep 17 00:00:00 2001
From: Adithya Krishna
Date: Wed, 31 Jan 2024 18:16:07 +0530
Subject: [PATCH 16/42] chore: add migration file
Signed-off-by: Adithya Krishna
---
.../20240131120410_add_document_meta_redirect_url/migration.sql | 2 ++
1 file changed, 2 insertions(+)
create mode 100644 packages/prisma/migrations/20240131120410_add_document_meta_redirect_url/migration.sql
diff --git a/packages/prisma/migrations/20240131120410_add_document_meta_redirect_url/migration.sql b/packages/prisma/migrations/20240131120410_add_document_meta_redirect_url/migration.sql
new file mode 100644
index 000000000..0eb8a1175
--- /dev/null
+++ b/packages/prisma/migrations/20240131120410_add_document_meta_redirect_url/migration.sql
@@ -0,0 +1,2 @@
+-- AlterTable
+ALTER TABLE "DocumentMeta" ADD COLUMN "redirectUrl" TEXT;
From f4c24fd9441fb8ff2224b0ef73dc6a019baf802f Mon Sep 17 00:00:00 2001
From: Adithya Krishna
Date: Wed, 31 Jan 2024 18:17:43 +0530
Subject: [PATCH 17/42] feat: add a feature for redirecting users on signing
Signed-off-by: Adithya Krishna
---
.../documents/[id]/edit-document.tsx | 5 ++--
.../document-meta/upsert-document-meta.ts | 8 +++++--
packages/prisma/schema.prisma | 1 +
.../trpc/server/document-router/router.ts | 3 ++-
.../trpc/server/document-router/schema.ts | 1 +
.../primitives/document-flow/add-subject.tsx | 24 ++++++++++++++++++-
.../document-flow/add-subject.types.ts | 1 +
7 files changed, 37 insertions(+), 6 deletions(-)
diff --git a/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx b/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx
index 2159b87f2..546452352 100644
--- a/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx
+++ b/apps/web/src/app/(dashboard)/documents/[id]/edit-document.tsx
@@ -149,7 +149,7 @@ export const EditDocumentForm = ({
};
const onAddSubjectFormSubmit = async (data: TAddSubjectFormSchema) => {
- const { subject, message, timezone, dateFormat } = data.meta;
+ const { subject, message, timezone, dateFormat, redirectUrl } = data.meta;
try {
await sendDocument({
@@ -157,8 +157,9 @@ export const EditDocumentForm = ({
meta: {
subject,
message,
- timezone,
dateFormat,
+ timezone,
+ redirectUrl,
},
});
diff --git a/packages/lib/server-only/document-meta/upsert-document-meta.ts b/packages/lib/server-only/document-meta/upsert-document-meta.ts
index b67c6848b..b5e1dc553 100644
--- a/packages/lib/server-only/document-meta/upsert-document-meta.ts
+++ b/packages/lib/server-only/document-meta/upsert-document-meta.ts
@@ -9,6 +9,7 @@ export type CreateDocumentMetaOptions = {
timezone?: string;
password?: string;
dateFormat?: string;
+ redirectUrl?: string;
userId: number;
};
@@ -20,6 +21,7 @@ export const upsertDocumentMeta = async ({
documentId,
userId,
password,
+ redirectUrl,
}: CreateDocumentMetaOptions) => {
await prisma.document.findFirstOrThrow({
where: {
@@ -35,17 +37,19 @@ export const upsertDocumentMeta = async ({
create: {
subject,
message,
+ password,
dateFormat,
timezone,
- password,
documentId,
+ redirectUrl,
},
update: {
subject,
message,
- dateFormat,
password,
+ dateFormat,
timezone,
+ redirectUrl,
},
});
};
diff --git a/packages/prisma/schema.prisma b/packages/prisma/schema.prisma
index e1549e072..35da3dbd6 100644
--- a/packages/prisma/schema.prisma
+++ b/packages/prisma/schema.prisma
@@ -166,6 +166,7 @@ model DocumentMeta {
dateFormat String? @db.Text @default("yyyy-MM-dd hh:mm a")
documentId Int @unique
document Document @relation(fields: [documentId], references: [id], onDelete: Cascade)
+ redirectUrl String? @db.Text
}
enum ReadStatus {
diff --git a/packages/trpc/server/document-router/router.ts b/packages/trpc/server/document-router/router.ts
index 9dba63797..304788525 100644
--- a/packages/trpc/server/document-router/router.ts
+++ b/packages/trpc/server/document-router/router.ts
@@ -216,13 +216,14 @@ export const documentRouter = router({
try {
const { documentId, meta } = input;
- if (meta.message || meta.subject || meta.timezone || meta.dateFormat) {
+ if (meta.message || meta.subject || meta.timezone || meta.dateFormat || meta.redirectUrl) {
await upsertDocumentMeta({
documentId,
subject: meta.subject,
message: meta.message,
dateFormat: meta.dateFormat,
timezone: meta.timezone,
+ redirectUrl: meta.redirectUrl,
userId: ctx.user.id,
});
}
diff --git a/packages/trpc/server/document-router/schema.ts b/packages/trpc/server/document-router/schema.ts
index c4389bdfb..ddf945bfe 100644
--- a/packages/trpc/server/document-router/schema.ts
+++ b/packages/trpc/server/document-router/schema.ts
@@ -70,6 +70,7 @@ export const ZSendDocumentMutationSchema = z.object({
message: z.string(),
timezone: z.string(),
dateFormat: z.string(),
+ redirectUrl: z.string().optional(),
}),
});
diff --git a/packages/ui/primitives/document-flow/add-subject.tsx b/packages/ui/primitives/document-flow/add-subject.tsx
index 8fef8af7b..2b361e7fa 100644
--- a/packages/ui/primitives/document-flow/add-subject.tsx
+++ b/packages/ui/primitives/document-flow/add-subject.tsx
@@ -60,7 +60,6 @@ export const AddSubjectFormPartial = ({
register,
handleSubmit,
formState: { errors, isSubmitting, touchedFields },
- getValues,
setValue,
} = useForm({
defaultValues: {
@@ -69,6 +68,7 @@ export const AddSubjectFormPartial = ({
message: document.documentMeta?.message ?? '',
timezone: document.documentMeta?.timezone ?? DEFAULT_DOCUMENT_TIME_ZONE,
dateFormat: document.documentMeta?.dateFormat ?? DEFAULT_DOCUMENT_DATE_FORMAT,
+ redirectUrl: document.documentMeta?.redirectUrl ?? '',
},
},
});
@@ -214,6 +214,28 @@ export const AddSubjectFormPartial = ({
)}
/>
+
+
+
+
+
+ Title
+
+ *
+
+
+
+
+
+
+
+
+
diff --git a/packages/ui/primitives/document-flow/add-subject.types.ts b/packages/ui/primitives/document-flow/add-subject.types.ts
index ea14f4c0f..285b8f813 100644
--- a/packages/ui/primitives/document-flow/add-subject.types.ts
+++ b/packages/ui/primitives/document-flow/add-subject.types.ts
@@ -9,6 +9,7 @@ export const ZAddSubjectFormSchema = z.object({
message: z.string(),
timezone: z.string().optional().default(DEFAULT_DOCUMENT_TIME_ZONE),
dateFormat: z.string().optional().default(DEFAULT_DOCUMENT_DATE_FORMAT),
+ redirectUrl: z.string().optional(),
}),
});
From 9c4ec34a3c8a9fb6a190752538420809a1f60d37 Mon Sep 17 00:00:00 2001
From: Lucas Smith
Date: Fri, 2 Feb 2024 04:00:28 +0000
Subject: [PATCH 18/42] fix: add precommit step for .well-known
---
.husky/pre-commit | 12 +
.../marketing/public/.well-known/security.txt | 6 +
apps/marketing/public/pdf.worker.min.js | 56591 +---------------
apps/web/public/.well-known/security.txt | 6 +
lint-staged.config.cjs | 6 +-
scripts/copy-pdfjs.cjs | 1 +
scripts/copy-wellknown.cjs | 16 +
7 files changed, 45 insertions(+), 56593 deletions(-)
create mode 100644 apps/marketing/public/.well-known/security.txt
create mode 100644 apps/web/public/.well-known/security.txt
create mode 100644 scripts/copy-wellknown.cjs
diff --git a/.husky/pre-commit b/.husky/pre-commit
index d24fdfc60..3d805e3cf 100755
--- a/.husky/pre-commit
+++ b/.husky/pre-commit
@@ -1,4 +1,16 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
+SCRIPT_DIR="$(readlink -f "$(dirname "$0")")"
+MONOREPO_ROOT="$(readlink -f "$SCRIPT_DIR/../")"
+
+echo "Copying pdf.js"
+npm run copy:pdfjs --workspace apps/**
+
+echo "Copying .well-known/ contents"
+node "$MONOREPO_ROOT/scripts/copy-wellknown.cjs"
+
+git add "$MONOREPO_ROOT/apps/web/public/"
+git add "$MONOREPO_ROOT/apps/marketing/public/"
+
npx lint-staged
diff --git a/apps/marketing/public/.well-known/security.txt b/apps/marketing/public/.well-known/security.txt
new file mode 100644
index 000000000..0b00c7123
--- /dev/null
+++ b/apps/marketing/public/.well-known/security.txt
@@ -0,0 +1,6 @@
+# General Issues
+Contact: https://github.com/documenso/documenso/issues/new?assignees=&labels=bug&projects=&template=bug-report.yml
+# Report critical issues privately, to let us take appropriate action before publishing
+Contact: mailto:security@documenso.com
+Preferred-Languages: en
+Canonical: https://documenso.com/.well-known/security.txt
diff --git a/apps/marketing/public/pdf.worker.min.js b/apps/marketing/public/pdf.worker.min.js
index 3b79c94ef..3099f8071 100644
--- a/apps/marketing/public/pdf.worker.min.js
+++ b/apps/marketing/public/pdf.worker.min.js
@@ -19,56593 +19,4 @@
* @licend The above is the entire license notice for the
* JavaScript code in this page
*/
-!(function webpackUniversalModuleDefinition(e, t) {
- 'object' == typeof exports && 'object' == typeof module
- ? (module.exports = t())
- : 'function' == typeof define && define.amd
- ? define('pdfjs-dist/build/pdf.worker', [], t)
- : 'object' == typeof exports
- ? (exports['pdfjs-dist/build/pdf.worker'] = t())
- : (e['pdfjs-dist/build/pdf.worker'] = e.pdfjsWorker = t());
-})(globalThis, () =>
- (() => {
- 'use strict';
- var e = [
- ,
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.WorkerTask = t.WorkerMessageHandler = void 0;
- var r = a(2),
- i = a(3),
- n = a(4),
- s = a(6),
- o = a(71),
- c = a(65),
- l = a(102),
- h = a(103),
- u = a(104);
- class WorkerTask {
- constructor(e) {
- this.name = e;
- this.terminated = !1;
- this._capability = new r.PromiseCapability();
- }
- get finished() {
- return this._capability.promise;
- }
- finish() {
- this._capability.resolve();
- }
- terminate() {
- this.terminated = !0;
- }
- ensureNotTerminated() {
- if (this.terminated) throw new Error('Worker task was terminated');
- }
- }
- t.WorkerTask = WorkerTask;
- class WorkerMessageHandler {
- static setup(e, t) {
- let a = !1;
- e.on('test', function (t) {
- if (!a) {
- a = !0;
- e.send('test', t instanceof Uint8Array);
- }
- });
- e.on('configure', function (e) {
- (0, r.setVerbosityLevel)(e.verbosity);
- });
- e.on('GetDocRequest', function (e) {
- return WorkerMessageHandler.createDocumentHandler(e, t);
- });
- }
- static createDocumentHandler(e, t) {
- let a,
- d = !1,
- f = null;
- const g = new Set(),
- p = (0, r.getVerbosityLevel)(),
- { docId: m, apiVersion: b } = e,
- y = '3.6.172';
- if (b !== y)
- throw new Error(`The API version "${b}" does not match the Worker version "${y}".`);
- const w = [];
- for (const e in []) w.push(e);
- if (w.length)
- throw new Error(
- 'The `Array.prototype` contains unexpected enumerable properties: ' +
- w.join(', ') +
- '; thus breaking e.g. `for...in` iteration of `Array`s.',
- );
- if (
- (l.isNodeJS && 'undefined' == typeof Path2D) ||
- 'undefined' == typeof ReadableStream
- ) {
- const e =
- 'The browser/environment lacks native support for critical functionality used by the PDF.js library (e.g. `Path2D` and/or `ReadableStream`); ';
- if (l.isNodeJS) throw new Error(e + 'please use a `legacy`-build instead.');
- throw new Error(e + 'please update to a supported browser.');
- }
- const S = m + '_worker';
- let x = new h.MessageHandler(S, m, t);
- function ensureNotTerminated() {
- if (d) throw new Error('Worker was terminated');
- }
- function startWorkerTask(e) {
- g.add(e);
- }
- function finishWorkerTask(e) {
- e.finish();
- g.delete(e);
- }
- async function loadDocument(e) {
- await a.ensureDoc('checkHeader');
- await a.ensureDoc('parseStartXRef');
- await a.ensureDoc('parse', [e]);
- await a.ensureDoc('checkFirstPage', [e]);
- await a.ensureDoc('checkLastPage', [e]);
- const t = await a.ensureDoc('isPureXfa');
- if (t) {
- const e = new WorkerTask('loadXfaFonts');
- startWorkerTask(e);
- await Promise.all([
- a
- .loadXfaFonts(x, e)
- .catch((e) => {})
- .then(() => finishWorkerTask(e)),
- a.loadXfaImages(),
- ]);
- }
- const [r, i] = await Promise.all([
- a.ensureDoc('numPages'),
- a.ensureDoc('fingerprints'),
- ]);
- return {
- numPages: r,
- fingerprints: i,
- htmlForXfa: t ? await a.ensureDoc('htmlForXfa') : null,
- };
- }
- function getPdfManager({
- data: e,
- password: t,
- disableAutoFetch: a,
- rangeChunkSize: n,
- length: o,
- docBaseUrl: c,
- enableXfa: l,
- evaluatorOptions: h,
- }) {
- const d = {
- source: null,
- disableAutoFetch: a,
- docBaseUrl: c,
- docId: m,
- enableXfa: l,
- evaluatorOptions: h,
- handler: x,
- length: o,
- password: t,
- rangeChunkSize: n,
- },
- g = new r.PromiseCapability();
- let p;
- if (e) {
- try {
- d.source = e;
- p = new s.LocalPdfManager(d);
- g.resolve(p);
- } catch (e) {
- g.reject(e);
- }
- return g.promise;
- }
- let b,
- y = [];
- try {
- b = new u.PDFWorkerStream(x);
- } catch (e) {
- g.reject(e);
- return g.promise;
- }
- const w = b.getFullReader();
- w.headersReady
- .then(function () {
- if (w.isRangeSupported) {
- d.source = b;
- d.length = w.contentLength;
- d.disableAutoFetch ||= w.isStreamingSupported;
- p = new s.NetworkPdfManager(d);
- for (const e of y) p.sendProgressiveData(e);
- y = [];
- g.resolve(p);
- f = null;
- }
- })
- .catch(function (e) {
- g.reject(e);
- f = null;
- });
- let S = 0;
- new Promise(function (e, t) {
- const readChunk = function ({ value: e, done: a }) {
- try {
- ensureNotTerminated();
- if (a) {
- p ||
- (function () {
- const e = (0, i.arrayBuffersToBytes)(y);
- o &&
- e.length !== o &&
- (0, r.warn)('reported HTTP length is different from actual');
- try {
- d.source = e;
- p = new s.LocalPdfManager(d);
- g.resolve(p);
- } catch (e) {
- g.reject(e);
- }
- y = [];
- })();
- f = null;
- return;
- }
- S += e.byteLength;
- w.isStreamingSupported ||
- x.send('DocProgress', {
- loaded: S,
- total: Math.max(S, w.contentLength || 0),
- });
- p ? p.sendProgressiveData(e) : y.push(e);
- w.read().then(readChunk, t);
- } catch (e) {
- t(e);
- }
- };
- w.read().then(readChunk, t);
- }).catch(function (e) {
- g.reject(e);
- f = null;
- });
- f = function (e) {
- b.cancelAllRequests(e);
- };
- return g.promise;
- }
- x.on('GetPage', function (e) {
- return a.getPage(e.pageIndex).then(function (e) {
- return Promise.all([
- a.ensure(e, 'rotate'),
- a.ensure(e, 'ref'),
- a.ensure(e, 'userUnit'),
- a.ensure(e, 'view'),
- ]).then(function ([e, t, a, r]) {
- return { rotate: e, ref: t, userUnit: a, view: r };
- });
- });
- });
- x.on('GetPageIndex', function (e) {
- const t = n.Ref.get(e.num, e.gen);
- return a.ensureCatalog('getPageIndex', [t]);
- });
- x.on('GetDestinations', function (e) {
- return a.ensureCatalog('destinations');
- });
- x.on('GetDestination', function (e) {
- return a.ensureCatalog('getDestination', [e.id]);
- });
- x.on('GetPageLabels', function (e) {
- return a.ensureCatalog('pageLabels');
- });
- x.on('GetPageLayout', function (e) {
- return a.ensureCatalog('pageLayout');
- });
- x.on('GetPageMode', function (e) {
- return a.ensureCatalog('pageMode');
- });
- x.on('GetViewerPreferences', function (e) {
- return a.ensureCatalog('viewerPreferences');
- });
- x.on('GetOpenAction', function (e) {
- return a.ensureCatalog('openAction');
- });
- x.on('GetAttachments', function (e) {
- return a.ensureCatalog('attachments');
- });
- x.on('GetJavaScript', function (e) {
- return a.ensureCatalog('javaScript');
- });
- x.on('GetDocJSActions', function (e) {
- return a.ensureCatalog('jsActions');
- });
- x.on('GetPageJSActions', function ({ pageIndex: e }) {
- return a.getPage(e).then(function (e) {
- return a.ensure(e, 'jsActions');
- });
- });
- x.on('GetOutline', function (e) {
- return a.ensureCatalog('documentOutline');
- });
- x.on('GetOptionalContentConfig', function (e) {
- return a.ensureCatalog('optionalContentConfig');
- });
- x.on('GetPermissions', function (e) {
- return a.ensureCatalog('permissions');
- });
- x.on('GetMetadata', function (e) {
- return Promise.all([a.ensureDoc('documentInfo'), a.ensureCatalog('metadata')]);
- });
- x.on('GetMarkInfo', function (e) {
- return a.ensureCatalog('markInfo');
- });
- x.on('GetData', function (e) {
- return a.requestLoadedStream().then(function (e) {
- return e.bytes;
- });
- });
- x.on('GetAnnotations', function ({ pageIndex: e, intent: t }) {
- return a.getPage(e).then(function (a) {
- const r = new WorkerTask(`GetAnnotations: page ${e}`);
- startWorkerTask(r);
- return a.getAnnotationsData(x, r, t).then(
- (e) => {
- finishWorkerTask(r);
- return e;
- },
- (e) => {
- finishWorkerTask(r);
- throw e;
- },
- );
- });
- });
- x.on('GetFieldObjects', function (e) {
- return a.ensureDoc('fieldObjects');
- });
- x.on('HasJSActions', function (e) {
- return a.ensureDoc('hasJSActions');
- });
- x.on('GetCalculationOrderIds', function (e) {
- return a.ensureDoc('calculationOrderIds');
- });
- x.on(
- 'SaveDocument',
- function ({ isPureXfa: e, numPages: t, annotationStorage: s, filename: o }) {
- const l = [
- a.requestLoadedStream(),
- a.ensureCatalog('acroForm'),
- a.ensureCatalog('acroFormRef'),
- a.ensureDoc('xref'),
- a.ensureDoc('startXRef'),
- ],
- h = e ? null : (0, i.getNewAnnotationsMap)(s);
- if (h)
- for (const [e, t] of h)
- l.push(
- a.getPage(e).then((a) => {
- const r = new WorkerTask(`Save (editor): page ${e}`);
- return a.saveNewAnnotations(x, r, t).finally(function () {
- finishWorkerTask(r);
- });
- }),
- );
- if (e) l.push(a.serializeXfaData(s));
- else
- for (let e = 0; e < t; e++)
- l.push(
- a.getPage(e).then(function (t) {
- const a = new WorkerTask(`Save: page ${e}`);
- return t.save(x, a, s).finally(function () {
- finishWorkerTask(a);
- });
- }),
- );
- return Promise.all(l).then(function ([t, a, i, s, l, ...h]) {
- let u = [],
- d = null;
- if (e) {
- d = h[0];
- if (!d) return t.bytes;
- } else {
- u = h.flat(2);
- if (0 === u.length) return t.bytes;
- }
- const f = i && a instanceof n.Dict && u.some((e) => e.needAppearances),
- g = (a instanceof n.Dict && a.get('XFA')) || null;
- let p = null,
- m = !1;
- if (Array.isArray(g)) {
- for (let e = 0, t = g.length; e < t; e += 2)
- if ('datasets' === g[e]) {
- p = g[e + 1];
- m = !0;
- }
- null === p && (p = s.getNewTemporaryRef());
- } else g && (0, r.warn)('Unsupported XFA type.');
- let b = Object.create(null);
- if (s.trailer) {
- const e = Object.create(null),
- t = s.trailer.get('Info') || null;
- t instanceof n.Dict &&
- t.forEach((t, a) => {
- 'string' == typeof a && (e[t] = (0, r.stringToPDFString)(a));
- });
- b = {
- rootRef: s.trailer.getRaw('Root') || null,
- encryptRef: s.trailer.getRaw('Encrypt') || null,
- newRef: s.getNewTemporaryRef(),
- infoRef: s.trailer.getRaw('Info') || null,
- info: e,
- fileIds: s.trailer.get('ID') || null,
- startXRef: s.lastXRefStreamPos ?? l,
- filename: o,
- };
- }
- try {
- return (0,
- c.incrementalUpdate)({ originalData: t.bytes, xrefInfo: b, newRefs: u, xref: s, hasXfa: !!g, xfaDatasetsRef: p, hasXfaDatasetsEntry: m, needAppearances: f, acroFormRef: i, acroForm: a, xfaData: d });
- } finally {
- s.resetNewTemporaryRef();
- }
- });
- },
- );
- x.on('GetOperatorList', function (e, t) {
- const i = e.pageIndex;
- a.getPage(i).then(function (a) {
- const n = new WorkerTask(`GetOperatorList: page ${i}`);
- startWorkerTask(n);
- const s = p >= r.VerbosityLevel.INFOS ? Date.now() : 0;
- a.getOperatorList({
- handler: x,
- sink: t,
- task: n,
- intent: e.intent,
- cacheKey: e.cacheKey,
- annotationStorage: e.annotationStorage,
- }).then(
- function (e) {
- finishWorkerTask(n);
- s &&
- (0, r.info)(
- `page=${i + 1} - getOperatorList: time=${Date.now() - s}ms, len=${
- e.length
- }`,
- );
- t.close();
- },
- function (e) {
- finishWorkerTask(n);
- n.terminated || t.error(e);
- },
- );
- });
- });
- x.on('GetTextContent', function (e, t) {
- const { pageIndex: i, includeMarkedContent: n, disableNormalization: s } = e;
- a.getPage(i).then(function (e) {
- const a = new WorkerTask('GetTextContent: page ' + i);
- startWorkerTask(a);
- const o = p >= r.VerbosityLevel.INFOS ? Date.now() : 0;
- e.extractTextContent({
- handler: x,
- task: a,
- sink: t,
- includeMarkedContent: n,
- disableNormalization: s,
- }).then(
- function () {
- finishWorkerTask(a);
- o &&
- (0, r.info)(
- `page=${i + 1} - getTextContent: time=` + (Date.now() - o) + 'ms',
- );
- t.close();
- },
- function (e) {
- finishWorkerTask(a);
- a.terminated || t.error(e);
- },
- );
- });
- });
- x.on('GetStructTree', function (e) {
- return a.getPage(e.pageIndex).then(function (e) {
- return a.ensure(e, 'getStructTree');
- });
- });
- x.on('FontFallback', function (e) {
- return a.fontFallback(e.id, x);
- });
- x.on('Cleanup', function (e) {
- return a.cleanup(!0);
- });
- x.on('Terminate', function (e) {
- d = !0;
- const t = [];
- if (a) {
- a.terminate(new r.AbortException('Worker was terminated.'));
- const e = a.cleanup();
- t.push(e);
- a = null;
- } else (0, o.clearGlobalCaches)();
- f && f(new r.AbortException('Worker was terminated.'));
- for (const e of g) {
- t.push(e.finished);
- e.terminate();
- }
- return Promise.all(t).then(function () {
- x.destroy();
- x = null;
- });
- });
- x.on('Ready', function (t) {
- !(function setupDoc(e) {
- function onSuccess(e) {
- ensureNotTerminated();
- x.send('GetDoc', { pdfInfo: e });
- }
- function onFailure(e) {
- ensureNotTerminated();
- if (e instanceof r.PasswordException) {
- const t = new WorkerTask(`PasswordException: response ${e.code}`);
- startWorkerTask(t);
- x.sendWithPromise('PasswordRequest', e)
- .then(function ({ password: e }) {
- finishWorkerTask(t);
- a.updatePassword(e);
- pdfManagerReady();
- })
- .catch(function () {
- finishWorkerTask(t);
- x.send('DocException', e);
- });
- } else
- e instanceof r.InvalidPDFException ||
- e instanceof r.MissingPDFException ||
- e instanceof r.UnexpectedResponseException ||
- e instanceof r.UnknownErrorException
- ? x.send('DocException', e)
- : x.send(
- 'DocException',
- new r.UnknownErrorException(e.message, e.toString()),
- );
- }
- function pdfManagerReady() {
- ensureNotTerminated();
- loadDocument(!1).then(onSuccess, function (e) {
- ensureNotTerminated();
- e instanceof i.XRefParseException
- ? a.requestLoadedStream().then(function () {
- ensureNotTerminated();
- loadDocument(!0).then(onSuccess, onFailure);
- })
- : onFailure(e);
- });
- }
- ensureNotTerminated();
- getPdfManager(e)
- .then(function (e) {
- if (d) {
- e.terminate(new r.AbortException('Worker was terminated.'));
- throw new Error('Worker was terminated');
- }
- a = e;
- a.requestLoadedStream(!0).then((e) => {
- x.send('DataLoaded', { length: e.bytes.byteLength });
- });
- })
- .then(pdfManagerReady, onFailure);
- })(e);
- e = null;
- });
- return S;
- }
- static initializeFromPort(e) {
- const t = new h.MessageHandler('worker', 'main', e);
- WorkerMessageHandler.setup(t, e);
- t.send('ready', null);
- }
- }
- t.WorkerMessageHandler = WorkerMessageHandler;
- 'undefined' == typeof window &&
- !l.isNodeJS &&
- 'undefined' != typeof self &&
- (function isMessagePort(e) {
- return 'function' == typeof e.postMessage && 'onmessage' in e;
- })(self) &&
- WorkerMessageHandler.initializeFromPort(self);
- },
- (e, t) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.VerbosityLevel =
- t.Util =
- t.UnknownErrorException =
- t.UnexpectedResponseException =
- t.TextRenderingMode =
- t.RenderingIntentFlag =
- t.PromiseCapability =
- t.PermissionFlag =
- t.PasswordResponses =
- t.PasswordException =
- t.PageActionEventType =
- t.OPS =
- t.MissingPDFException =
- t.MAX_IMAGE_SIZE_TO_CACHE =
- t.LINE_FACTOR =
- t.LINE_DESCENT_FACTOR =
- t.InvalidPDFException =
- t.ImageKind =
- t.IDENTITY_MATRIX =
- t.FormatError =
- t.FeatureTest =
- t.FONT_IDENTITY_MATRIX =
- t.DocumentActionEventType =
- t.CMapCompressionType =
- t.BaseException =
- t.BASELINE_FACTOR =
- t.AnnotationType =
- t.AnnotationStateModelType =
- t.AnnotationReviewState =
- t.AnnotationReplyType =
- t.AnnotationMode =
- t.AnnotationMarkedState =
- t.AnnotationFlag =
- t.AnnotationFieldFlag =
- t.AnnotationEditorType =
- t.AnnotationEditorPrefix =
- t.AnnotationEditorParamsType =
- t.AnnotationBorderStyleType =
- t.AnnotationActionEventType =
- t.AbortException =
- void 0;
- t.assert = function assert(e, t) {
- e || unreachable(t);
- };
- t.bytesToString = function bytesToString(e) {
- ('object' == typeof e && void 0 !== e?.length) ||
- unreachable('Invalid argument for bytesToString');
- const t = e.length,
- a = 8192;
- if (t < a) return String.fromCharCode.apply(null, e);
- const r = [];
- for (let i = 0; i < t; i += a) {
- const n = Math.min(i + a, t),
- s = e.subarray(i, n);
- r.push(String.fromCharCode.apply(null, s));
- }
- return r.join('');
- };
- t.createValidAbsoluteUrl = function createValidAbsoluteUrl(e, t = null, a = null) {
- if (!e) return null;
- try {
- if (a && 'string' == typeof e) {
- if (a.addDefaultProtocol && e.startsWith('www.')) {
- const t = e.match(/\./g);
- t?.length >= 2 && (e = `http://${e}`);
- }
- if (a.tryConvertEncoding)
- try {
- e = stringToUTF8String(e);
- } catch (e) {}
- }
- const r = t ? new URL(e, t) : new URL(e);
- if (
- (function _isValidProtocol(e) {
- switch (e?.protocol) {
- case 'http:':
- case 'https:':
- case 'ftp:':
- case 'mailto:':
- case 'tel:':
- return !0;
- default:
- return !1;
- }
- })(r)
- )
- return r;
- } catch (e) {}
- return null;
- };
- t.getModificationDate = function getModificationDate(e = new Date()) {
- return [
- e.getUTCFullYear().toString(),
- (e.getUTCMonth() + 1).toString().padStart(2, '0'),
- e.getUTCDate().toString().padStart(2, '0'),
- e.getUTCHours().toString().padStart(2, '0'),
- e.getUTCMinutes().toString().padStart(2, '0'),
- e.getUTCSeconds().toString().padStart(2, '0'),
- ].join('');
- };
- t.getVerbosityLevel = function getVerbosityLevel() {
- return r;
- };
- t.info = function info(e) {
- r >= a.INFOS && console.log(`Info: ${e}`);
- };
- t.isArrayBuffer = function isArrayBuffer(e) {
- return 'object' == typeof e && void 0 !== e?.byteLength;
- };
- t.isArrayEqual = function isArrayEqual(e, t) {
- if (e.length !== t.length) return !1;
- for (let a = 0, r = e.length; a < r; a++) if (e[a] !== t[a]) return !1;
- return !0;
- };
- t.normalizeUnicode = function normalizeUnicode(e) {
- if (!o) {
- o =
- /([\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;
- c = new Map([['ſt', 'ſt']]);
- }
- return e.replaceAll(o, (e, t, a) => (t ? t.normalize('NFKC') : c.get(a)));
- };
- t.objectFromMap = function objectFromMap(e) {
- const t = Object.create(null);
- for (const [a, r] of e) t[a] = r;
- return t;
- };
- t.objectSize = function objectSize(e) {
- return Object.keys(e).length;
- };
- t.setVerbosityLevel = function setVerbosityLevel(e) {
- Number.isInteger(e) && (r = e);
- };
- t.shadow = shadow;
- t.string32 = function string32(e) {
- return String.fromCharCode((e >> 24) & 255, (e >> 16) & 255, (e >> 8) & 255, 255 & e);
- };
- t.stringToBytes = stringToBytes;
- t.stringToPDFString = function stringToPDFString(e) {
- if (e[0] >= 'ï') {
- let t;
- 'þ' === e[0] && 'ÿ' === e[1]
- ? (t = 'utf-16be')
- : 'ÿ' === e[0] && 'þ' === e[1]
- ? (t = 'utf-16le')
- : 'ï' === e[0] && '»' === e[1] && '¿' === e[2] && (t = 'utf-8');
- if (t)
- try {
- const a = new TextDecoder(t, { fatal: !0 }),
- r = stringToBytes(e);
- return a.decode(r);
- } catch (e) {
- warn(`stringToPDFString: "${e}".`);
- }
- }
- const t = [];
- for (let a = 0, r = e.length; a < r; a++) {
- const r = s[e.charCodeAt(a)];
- t.push(r ? String.fromCharCode(r) : e.charAt(a));
- }
- return t.join('');
- };
- t.stringToUTF8String = stringToUTF8String;
- t.unreachable = unreachable;
- t.utf8StringToString = function utf8StringToString(e) {
- return unescape(encodeURIComponent(e));
- };
- t.warn = warn;
- t.IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
- t.FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
- t.MAX_IMAGE_SIZE_TO_CACHE = 1e7;
- t.LINE_FACTOR = 1.35;
- t.LINE_DESCENT_FACTOR = 0.35;
- t.BASELINE_FACTOR = 0.25925925925925924;
- t.RenderingIntentFlag = {
- ANY: 1,
- DISPLAY: 2,
- PRINT: 4,
- SAVE: 8,
- ANNOTATIONS_FORMS: 16,
- ANNOTATIONS_STORAGE: 32,
- ANNOTATIONS_DISABLE: 64,
- OPLIST: 256,
- };
- t.AnnotationMode = { DISABLE: 0, ENABLE: 1, ENABLE_FORMS: 2, ENABLE_STORAGE: 3 };
- t.AnnotationEditorPrefix = 'pdfjs_internal_editor_';
- t.AnnotationEditorType = { DISABLE: -1, NONE: 0, FREETEXT: 3, INK: 15 };
- t.AnnotationEditorParamsType = {
- FREETEXT_SIZE: 1,
- FREETEXT_COLOR: 2,
- FREETEXT_OPACITY: 3,
- INK_COLOR: 11,
- INK_THICKNESS: 12,
- INK_OPACITY: 13,
- };
- t.PermissionFlag = {
- PRINT: 4,
- MODIFY_CONTENTS: 8,
- COPY: 16,
- MODIFY_ANNOTATIONS: 32,
- FILL_INTERACTIVE_FORMS: 256,
- COPY_FOR_ACCESSIBILITY: 512,
- ASSEMBLE: 1024,
- PRINT_HIGH_QUALITY: 2048,
- };
- t.TextRenderingMode = {
- FILL: 0,
- STROKE: 1,
- FILL_STROKE: 2,
- INVISIBLE: 3,
- FILL_ADD_TO_PATH: 4,
- STROKE_ADD_TO_PATH: 5,
- FILL_STROKE_ADD_TO_PATH: 6,
- ADD_TO_PATH: 7,
- FILL_STROKE_MASK: 3,
- ADD_TO_PATH_FLAG: 4,
- };
- t.ImageKind = { GRAYSCALE_1BPP: 1, RGB_24BPP: 2, RGBA_32BPP: 3 };
- t.AnnotationType = {
- TEXT: 1,
- LINK: 2,
- FREETEXT: 3,
- LINE: 4,
- SQUARE: 5,
- CIRCLE: 6,
- POLYGON: 7,
- POLYLINE: 8,
- HIGHLIGHT: 9,
- UNDERLINE: 10,
- SQUIGGLY: 11,
- STRIKEOUT: 12,
- STAMP: 13,
- CARET: 14,
- INK: 15,
- POPUP: 16,
- FILEATTACHMENT: 17,
- SOUND: 18,
- MOVIE: 19,
- WIDGET: 20,
- SCREEN: 21,
- PRINTERMARK: 22,
- TRAPNET: 23,
- WATERMARK: 24,
- THREED: 25,
- REDACT: 26,
- };
- t.AnnotationStateModelType = { MARKED: 'Marked', REVIEW: 'Review' };
- t.AnnotationMarkedState = { MARKED: 'Marked', UNMARKED: 'Unmarked' };
- t.AnnotationReviewState = {
- ACCEPTED: 'Accepted',
- REJECTED: 'Rejected',
- CANCELLED: 'Cancelled',
- COMPLETED: 'Completed',
- NONE: 'None',
- };
- t.AnnotationReplyType = { GROUP: 'Group', REPLY: 'R' };
- t.AnnotationFlag = {
- INVISIBLE: 1,
- HIDDEN: 2,
- PRINT: 4,
- NOZOOM: 8,
- NOROTATE: 16,
- NOVIEW: 32,
- READONLY: 64,
- LOCKED: 128,
- TOGGLENOVIEW: 256,
- LOCKEDCONTENTS: 512,
- };
- t.AnnotationFieldFlag = {
- READONLY: 1,
- REQUIRED: 2,
- NOEXPORT: 4,
- MULTILINE: 4096,
- PASSWORD: 8192,
- NOTOGGLETOOFF: 16384,
- RADIO: 32768,
- PUSHBUTTON: 65536,
- COMBO: 131072,
- EDIT: 262144,
- SORT: 524288,
- FILESELECT: 1048576,
- MULTISELECT: 2097152,
- DONOTSPELLCHECK: 4194304,
- DONOTSCROLL: 8388608,
- COMB: 16777216,
- RICHTEXT: 33554432,
- RADIOSINUNISON: 33554432,
- COMMITONSELCHANGE: 67108864,
- };
- t.AnnotationBorderStyleType = { SOLID: 1, DASHED: 2, BEVELED: 3, INSET: 4, UNDERLINE: 5 };
- t.AnnotationActionEventType = {
- E: 'Mouse Enter',
- X: 'Mouse Exit',
- D: 'Mouse Down',
- U: 'Mouse Up',
- Fo: 'Focus',
- Bl: 'Blur',
- PO: 'PageOpen',
- PC: 'PageClose',
- PV: 'PageVisible',
- PI: 'PageInvisible',
- K: 'Keystroke',
- F: 'Format',
- V: 'Validate',
- C: 'Calculate',
- };
- t.DocumentActionEventType = {
- WC: 'WillClose',
- WS: 'WillSave',
- DS: 'DidSave',
- WP: 'WillPrint',
- DP: 'DidPrint',
- };
- t.PageActionEventType = { O: 'PageOpen', C: 'PageClose' };
- const a = { ERRORS: 0, WARNINGS: 1, INFOS: 5 };
- t.VerbosityLevel = a;
- t.CMapCompressionType = { NONE: 0, BINARY: 1 };
- t.OPS = {
- dependency: 1,
- setLineWidth: 2,
- setLineCap: 3,
- setLineJoin: 4,
- setMiterLimit: 5,
- setDash: 6,
- setRenderingIntent: 7,
- setFlatness: 8,
- setGState: 9,
- save: 10,
- restore: 11,
- transform: 12,
- moveTo: 13,
- lineTo: 14,
- curveTo: 15,
- curveTo2: 16,
- curveTo3: 17,
- closePath: 18,
- rectangle: 19,
- stroke: 20,
- closeStroke: 21,
- fill: 22,
- eoFill: 23,
- fillStroke: 24,
- eoFillStroke: 25,
- closeFillStroke: 26,
- closeEOFillStroke: 27,
- endPath: 28,
- clip: 29,
- eoClip: 30,
- beginText: 31,
- endText: 32,
- setCharSpacing: 33,
- setWordSpacing: 34,
- setHScale: 35,
- setLeading: 36,
- setFont: 37,
- setTextRenderingMode: 38,
- setTextRise: 39,
- moveText: 40,
- setLeadingMoveText: 41,
- setTextMatrix: 42,
- nextLine: 43,
- showText: 44,
- showSpacedText: 45,
- nextLineShowText: 46,
- nextLineSetSpacingShowText: 47,
- setCharWidth: 48,
- setCharWidthAndBounds: 49,
- setStrokeColorSpace: 50,
- setFillColorSpace: 51,
- setStrokeColor: 52,
- setStrokeColorN: 53,
- setFillColor: 54,
- setFillColorN: 55,
- setStrokeGray: 56,
- setFillGray: 57,
- setStrokeRGBColor: 58,
- setFillRGBColor: 59,
- setStrokeCMYKColor: 60,
- setFillCMYKColor: 61,
- shadingFill: 62,
- beginInlineImage: 63,
- beginImageData: 64,
- endInlineImage: 65,
- paintXObject: 66,
- markPoint: 67,
- markPointProps: 68,
- beginMarkedContent: 69,
- beginMarkedContentProps: 70,
- endMarkedContent: 71,
- beginCompat: 72,
- endCompat: 73,
- paintFormXObjectBegin: 74,
- paintFormXObjectEnd: 75,
- beginGroup: 76,
- endGroup: 77,
- beginAnnotation: 80,
- endAnnotation: 81,
- paintImageMaskXObject: 83,
- paintImageMaskXObjectGroup: 84,
- paintImageXObject: 85,
- paintInlineImageXObject: 86,
- paintInlineImageXObjectGroup: 87,
- paintImageXObjectRepeat: 88,
- paintImageMaskXObjectRepeat: 89,
- paintSolidColorImageMask: 90,
- constructPath: 91,
- };
- t.PasswordResponses = { NEED_PASSWORD: 1, INCORRECT_PASSWORD: 2 };
- let r = a.WARNINGS;
- function warn(e) {
- r >= a.WARNINGS && console.log(`Warning: ${e}`);
- }
- function unreachable(e) {
- throw new Error(e);
- }
- function shadow(e, t, a, r = !1) {
- Object.defineProperty(e, t, {
- value: a,
- enumerable: !r,
- configurable: !0,
- writable: !1,
- });
- return a;
- }
- const i = (function BaseExceptionClosure() {
- function BaseException(e, t) {
- this.constructor === BaseException && unreachable('Cannot initialize BaseException.');
- this.message = e;
- this.name = t;
- }
- BaseException.prototype = new Error();
- BaseException.constructor = BaseException;
- return BaseException;
- })();
- t.BaseException = i;
- t.PasswordException = class PasswordException extends i {
- constructor(e, t) {
- super(e, 'PasswordException');
- this.code = t;
- }
- };
- t.UnknownErrorException = class UnknownErrorException extends i {
- constructor(e, t) {
- super(e, 'UnknownErrorException');
- this.details = t;
- }
- };
- t.InvalidPDFException = class InvalidPDFException extends i {
- constructor(e) {
- super(e, 'InvalidPDFException');
- }
- };
- t.MissingPDFException = class MissingPDFException extends i {
- constructor(e) {
- super(e, 'MissingPDFException');
- }
- };
- t.UnexpectedResponseException = class UnexpectedResponseException extends i {
- constructor(e, t) {
- super(e, 'UnexpectedResponseException');
- this.status = t;
- }
- };
- t.FormatError = class FormatError extends i {
- constructor(e) {
- super(e, 'FormatError');
- }
- };
- t.AbortException = class AbortException extends i {
- constructor(e) {
- super(e, 'AbortException');
- }
- };
- function stringToBytes(e) {
- 'string' != typeof e && unreachable('Invalid argument for stringToBytes');
- const t = e.length,
- a = new Uint8Array(t);
- for (let r = 0; r < t; ++r) a[r] = 255 & e.charCodeAt(r);
- return a;
- }
- t.FeatureTest = class FeatureTest {
- static get isLittleEndian() {
- return shadow(
- this,
- 'isLittleEndian',
- (function isLittleEndian() {
- const e = new Uint8Array(4);
- e[0] = 1;
- return 1 === new Uint32Array(e.buffer, 0, 1)[0];
- })(),
- );
- }
- static get isEvalSupported() {
- return shadow(
- this,
- 'isEvalSupported',
- (function isEvalSupported() {
- try {
- new Function('');
- return !0;
- } catch (e) {
- return !1;
- }
- })(),
- );
- }
- static get isOffscreenCanvasSupported() {
- return shadow(
- this,
- 'isOffscreenCanvasSupported',
- 'undefined' != typeof OffscreenCanvas,
- );
- }
- static get platform() {
- return 'undefined' == typeof navigator
- ? shadow(this, 'platform', { isWin: !1, isMac: !1 })
- : shadow(this, 'platform', {
- isWin: navigator.platform.includes('Win'),
- isMac: navigator.platform.includes('Mac'),
- });
- }
- };
- const n = [...Array(256).keys()].map((e) => e.toString(16).padStart(2, '0'));
- class Util {
- static makeHexColor(e, t, a) {
- return `#${n[e]}${n[t]}${n[a]}`;
- }
- static scaleMinMax(e, t) {
- let a;
- if (e[0]) {
- if (e[0] < 0) {
- a = t[0];
- t[0] = t[1];
- t[1] = a;
- }
- t[0] *= e[0];
- t[1] *= e[0];
- if (e[3] < 0) {
- a = t[2];
- t[2] = t[3];
- t[3] = a;
- }
- t[2] *= e[3];
- t[3] *= e[3];
- } else {
- a = t[0];
- t[0] = t[2];
- t[2] = a;
- a = t[1];
- t[1] = t[3];
- t[3] = a;
- if (e[1] < 0) {
- a = t[2];
- t[2] = t[3];
- t[3] = a;
- }
- t[2] *= e[1];
- t[3] *= e[1];
- if (e[2] < 0) {
- a = t[0];
- t[0] = t[1];
- t[1] = a;
- }
- t[0] *= e[2];
- t[1] *= e[2];
- }
- t[0] += e[4];
- t[1] += e[4];
- t[2] += e[5];
- t[3] += e[5];
- }
- static transform(e, t) {
- return [
- e[0] * t[0] + e[2] * t[1],
- e[1] * t[0] + e[3] * t[1],
- e[0] * t[2] + e[2] * t[3],
- e[1] * t[2] + e[3] * t[3],
- e[0] * t[4] + e[2] * t[5] + e[4],
- e[1] * t[4] + e[3] * t[5] + e[5],
- ];
- }
- static applyTransform(e, t) {
- return [e[0] * t[0] + e[1] * t[2] + t[4], e[0] * t[1] + e[1] * t[3] + t[5]];
- }
- static applyInverseTransform(e, t) {
- const a = t[0] * t[3] - t[1] * t[2];
- return [
- (e[0] * t[3] - e[1] * t[2] + t[2] * t[5] - t[4] * t[3]) / a,
- (-e[0] * t[1] + e[1] * t[0] + t[4] * t[1] - t[5] * t[0]) / a,
- ];
- }
- static getAxialAlignedBoundingBox(e, t) {
- const a = Util.applyTransform(e, t),
- r = Util.applyTransform(e.slice(2, 4), t),
- i = Util.applyTransform([e[0], e[3]], t),
- n = Util.applyTransform([e[2], e[1]], t);
- return [
- Math.min(a[0], r[0], i[0], n[0]),
- Math.min(a[1], r[1], i[1], n[1]),
- Math.max(a[0], r[0], i[0], n[0]),
- Math.max(a[1], r[1], i[1], n[1]),
- ];
- }
- static inverseTransform(e) {
- const t = e[0] * e[3] - e[1] * e[2];
- return [
- e[3] / t,
- -e[1] / t,
- -e[2] / t,
- e[0] / t,
- (e[2] * e[5] - e[4] * e[3]) / t,
- (e[4] * e[1] - e[5] * e[0]) / t,
- ];
- }
- static singularValueDecompose2dScale(e) {
- const t = [e[0], e[2], e[1], e[3]],
- a = e[0] * t[0] + e[1] * t[2],
- r = e[0] * t[1] + e[1] * t[3],
- i = e[2] * t[0] + e[3] * t[2],
- n = e[2] * t[1] + e[3] * t[3],
- s = (a + n) / 2,
- o = Math.sqrt((a + n) ** 2 - 4 * (a * n - i * r)) / 2,
- c = s + o || 1,
- l = s - o || 1;
- return [Math.sqrt(c), Math.sqrt(l)];
- }
- static normalizeRect(e) {
- const t = e.slice(0);
- if (e[0] > e[2]) {
- t[0] = e[2];
- t[2] = e[0];
- }
- if (e[1] > e[3]) {
- t[1] = e[3];
- t[3] = e[1];
- }
- return t;
- }
- static intersect(e, t) {
- const a = Math.max(Math.min(e[0], e[2]), Math.min(t[0], t[2])),
- r = Math.min(Math.max(e[0], e[2]), Math.max(t[0], t[2]));
- if (a > r) return null;
- const i = Math.max(Math.min(e[1], e[3]), Math.min(t[1], t[3])),
- n = Math.min(Math.max(e[1], e[3]), Math.max(t[1], t[3]));
- return i > n ? null : [a, i, r, n];
- }
- static bezierBoundingBox(e, t, a, r, i, n, s, o) {
- const c = [],
- l = [[], []];
- let h, u, d, f, g, p, m, b;
- for (let l = 0; l < 2; ++l) {
- if (0 === l) {
- u = 6 * e - 12 * a + 6 * i;
- h = -3 * e + 9 * a - 9 * i + 3 * s;
- d = 3 * a - 3 * e;
- } else {
- u = 6 * t - 12 * r + 6 * n;
- h = -3 * t + 9 * r - 9 * n + 3 * o;
- d = 3 * r - 3 * t;
- }
- if (Math.abs(h) < 1e-12) {
- if (Math.abs(u) < 1e-12) continue;
- f = -d / u;
- 0 < f && f < 1 && c.push(f);
- } else {
- m = u * u - 4 * d * h;
- b = Math.sqrt(m);
- if (!(m < 0)) {
- g = (-u + b) / (2 * h);
- 0 < g && g < 1 && c.push(g);
- p = (-u - b) / (2 * h);
- 0 < p && p < 1 && c.push(p);
- }
- }
- }
- let y,
- w = c.length;
- const S = w;
- for (; w--; ) {
- f = c[w];
- y = 1 - f;
- l[0][w] = y * y * y * e + 3 * y * y * f * a + 3 * y * f * f * i + f * f * f * s;
- l[1][w] = y * y * y * t + 3 * y * y * f * r + 3 * y * f * f * n + f * f * f * o;
- }
- l[0][S] = e;
- l[1][S] = t;
- l[0][S + 1] = s;
- l[1][S + 1] = o;
- l[0].length = l[1].length = S + 2;
- return [Math.min(...l[0]), Math.min(...l[1]), Math.max(...l[0]), Math.max(...l[1])];
- }
- }
- t.Util = Util;
- const s = [
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 728, 711, 710,
- 729, 733, 731, 730, 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8226, 8224, 8225, 8230, 8212, 8211,
- 402, 8260, 8249, 8250, 8722, 8240, 8222, 8220, 8221, 8216, 8217, 8218, 8482, 64257,
- 64258, 321, 338, 352, 376, 381, 305, 322, 339, 353, 382, 0, 8364,
- ];
- function stringToUTF8String(e) {
- return decodeURIComponent(escape(e));
- }
- t.PromiseCapability = class PromiseCapability {
- #e = !1;
- constructor() {
- this.promise = new Promise((e, t) => {
- this.resolve = (t) => {
- this.#e = !0;
- e(t);
- };
- this.reject = (e) => {
- this.#e = !0;
- t(e);
- };
- });
- }
- get settled() {
- return this.#e;
- }
- };
- let o = null,
- c = null;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.XRefParseException =
- t.XRefEntryException =
- t.ParserEOFException =
- t.PDF_VERSION_REGEXP =
- t.MissingDataException =
- void 0;
- t.arrayBuffersToBytes = function arrayBuffersToBytes(e) {
- const t = e.length;
- if (0 === t) return new Uint8Array(0);
- if (1 === t) return new Uint8Array(e[0]);
- let a = 0;
- for (let r = 0; r < t; r++) a += e[r].byteLength;
- const r = new Uint8Array(a);
- let i = 0;
- for (let a = 0; a < t; a++) {
- const t = new Uint8Array(e[a]);
- r.set(t, i);
- i += t.byteLength;
- }
- return r;
- };
- t.collectActions = function collectActions(e, t, a) {
- const n = Object.create(null),
- s = getInheritableProperty({ dict: t, key: 'AA', stopWhenFound: !1 });
- if (s)
- for (let t = s.length - 1; t >= 0; t--) {
- const r = s[t];
- if (r instanceof i.Dict)
- for (const t of r.getKeys()) {
- const s = a[t];
- if (!s) continue;
- const o = [];
- _collectJS(r.getRaw(t), e, o, new i.RefSet());
- o.length > 0 && (n[s] = o);
- }
- }
- if (t.has('A')) {
- const a = [];
- _collectJS(t.get('A'), e, a, new i.RefSet());
- a.length > 0 && (n.Action = a);
- }
- return (0, r.objectSize)(n) > 0 ? n : null;
- };
- t.encodeToXmlString = function encodeToXmlString(e) {
- const t = [];
- let a = 0;
- for (let r = 0, i = e.length; r < i; r++) {
- const i = e.codePointAt(r);
- if (32 <= i && i <= 126) {
- const n = o[i];
- if (n) {
- a < r && t.push(e.substring(a, r));
- t.push(n);
- a = r + 1;
- }
- } else {
- a < r && t.push(e.substring(a, r));
- t.push(`${i.toString(16).toUpperCase()};`);
- i > 55295 && (i < 57344 || i > 65533) && r++;
- a = r + 1;
- }
- }
- if (0 === t.length) return e;
- a < e.length && t.push(e.substring(a, e.length));
- return t.join('');
- };
- t.escapePDFName = function escapePDFName(e) {
- const t = [];
- let a = 0;
- for (let r = 0, i = e.length; r < i; r++) {
- const i = e.charCodeAt(r);
- if (
- i < 33 ||
- i > 126 ||
- 35 === i ||
- 40 === i ||
- 41 === i ||
- 60 === i ||
- 62 === i ||
- 91 === i ||
- 93 === i ||
- 123 === i ||
- 125 === i ||
- 47 === i ||
- 37 === i
- ) {
- a < r && t.push(e.substring(a, r));
- t.push(`#${i.toString(16)}`);
- a = r + 1;
- }
- }
- if (0 === t.length) return e;
- a < e.length && t.push(e.substring(a, e.length));
- return t.join('');
- };
- t.escapeString = function escapeString(e) {
- return e.replaceAll(/([()\\\n\r])/g, (e) =>
- '\n' === e ? '\\n' : '\r' === e ? '\\r' : `\\${e}`,
- );
- };
- t.getInheritableProperty = getInheritableProperty;
- t.getLookupTableFactory = function getLookupTableFactory(e) {
- let t;
- return function () {
- if (e) {
- t = Object.create(null);
- e(t);
- e = null;
- }
- return t;
- };
- };
- t.getNewAnnotationsMap = function getNewAnnotationsMap(e) {
- if (!e) return null;
- const t = new Map();
- for (const [a, i] of e) {
- if (!a.startsWith(r.AnnotationEditorPrefix)) continue;
- let e = t.get(i.pageIndex);
- if (!e) {
- e = [];
- t.set(i.pageIndex, e);
- }
- e.push(i);
- }
- return t.size > 0 ? t : null;
- };
- t.getRotationMatrix = function getRotationMatrix(e, t, a) {
- switch (e) {
- case 90:
- return [0, 1, -1, 0, t, 0];
- case 180:
- return [-1, 0, 0, -1, t, a];
- case 270:
- return [0, -1, 1, 0, 0, a];
- default:
- throw new Error('Invalid rotation');
- }
- };
- t.isAscii = function isAscii(e) {
- return /^[\x00-\x7F]*$/.test(e);
- };
- t.isWhiteSpace = function isWhiteSpace(e) {
- return 32 === e || 9 === e || 13 === e || 10 === e;
- };
- t.log2 = function log2(e) {
- if (e <= 0) return 0;
- return Math.ceil(Math.log2(e));
- };
- t.numberToString = function numberToString(e) {
- if (Number.isInteger(e)) return e.toString();
- const t = Math.round(100 * e);
- if (t % 100 == 0) return (t / 100).toString();
- if (t % 10 == 0) return e.toFixed(1);
- return e.toFixed(2);
- };
- t.parseXFAPath = function parseXFAPath(e) {
- const t = /(.+)\[(\d+)\]$/;
- return e.split('.').map((e) => {
- const a = e.match(t);
- return a ? { name: a[1], pos: parseInt(a[2], 10) } : { name: e, pos: 0 };
- });
- };
- t.readInt8 = function readInt8(e, t) {
- return (e[t] << 24) >> 24;
- };
- t.readUint16 = function readUint16(e, t) {
- return (e[t] << 8) | e[t + 1];
- };
- t.readUint32 = function readUint32(e, t) {
- return ((e[t] << 24) | (e[t + 1] << 16) | (e[t + 2] << 8) | e[t + 3]) >>> 0;
- };
- t.recoverJsURL = function recoverJsURL(e) {
- const t = new RegExp(
- '^\\s*(' +
- ['app.launchURL', 'window.open', 'xfa.host.gotoURL']
- .join('|')
- .replaceAll('.', '\\.') +
- ')\\((?:\'|")([^\'"]*)(?:\'|")(?:,\\s*(\\w+)\\)|\\))',
- 'i',
- ).exec(e);
- if (t && t[2]) {
- const e = t[2];
- let a = !1;
- 'true' === t[3] && 'app.launchURL' === t[1] && (a = !0);
- return { url: e, newWindow: a };
- }
- return null;
- };
- t.stringToUTF16HexString = function stringToUTF16HexString(e) {
- const t = [];
- for (let a = 0, r = e.length; a < r; a++) {
- const r = e.charCodeAt(a);
- t.push(
- ((r >> 8) & 255).toString(16).padStart(2, '0'),
- (255 & r).toString(16).padStart(2, '0'),
- );
- }
- return t.join('');
- };
- t.stringToUTF16String = function stringToUTF16String(e, t = !1) {
- const a = [];
- t && a.push('þÿ');
- for (let t = 0, r = e.length; t < r; t++) {
- const r = e.charCodeAt(t);
- a.push(String.fromCharCode((r >> 8) & 255), String.fromCharCode(255 & r));
- }
- return a.join('');
- };
- t.toRomanNumerals = function toRomanNumerals(e, t = !1) {
- (0, r.assert)(Number.isInteger(e) && e > 0, 'The number should be a positive integer.');
- const a = [];
- let i;
- for (; e >= 1e3; ) {
- e -= 1e3;
- a.push('M');
- }
- i = (e / 100) | 0;
- e %= 100;
- a.push(s[i]);
- i = (e / 10) | 0;
- e %= 10;
- a.push(s[10 + i]);
- a.push(s[20 + e]);
- const n = a.join('');
- return t ? n.toLowerCase() : n;
- };
- t.validateCSSFont = function validateCSSFont(e) {
- const t = new Set([
- '100',
- '200',
- '300',
- '400',
- '500',
- '600',
- '700',
- '800',
- '900',
- '1000',
- 'normal',
- 'bold',
- 'bolder',
- 'lighter',
- ]),
- { fontFamily: a, fontWeight: i, italicAngle: n } = e,
- s = /^("|').*("|')$/.exec(a);
- if (s && s[1] === s[2]) {
- if (new RegExp(`[^\\\\]${s[1]}`).test(a.slice(1, -1))) {
- (0, r.warn)(`XFA - FontFamily contains unescaped ${s[1]}: ${a}.`);
- return !1;
- }
- } else
- for (const e of a.split(/[ \t]+/))
- if (/^(\d|(-(\d|-)))/.test(e) || !/^[\w-\\]+$/.test(e)) {
- (0, r.warn)(`XFA - FontFamily contains invalid : ${a}.`);
- return !1;
- }
- const o = i ? i.toString() : '';
- e.fontWeight = t.has(o) ? o : '400';
- const c = parseFloat(n);
- e.italicAngle = isNaN(c) || c < -90 || c > 90 ? '14' : n.toString();
- return !0;
- };
- var r = a(2),
- i = a(4),
- n = a(5);
- t.PDF_VERSION_REGEXP = /^[1-9]\.\d$/;
- class MissingDataException extends r.BaseException {
- constructor(e, t) {
- super(`Missing data [${e}, ${t})`, 'MissingDataException');
- this.begin = e;
- this.end = t;
- }
- }
- t.MissingDataException = MissingDataException;
- class ParserEOFException extends r.BaseException {
- constructor(e) {
- super(e, 'ParserEOFException');
- }
- }
- t.ParserEOFException = ParserEOFException;
- class XRefEntryException extends r.BaseException {
- constructor(e) {
- super(e, 'XRefEntryException');
- }
- }
- t.XRefEntryException = XRefEntryException;
- class XRefParseException extends r.BaseException {
- constructor(e) {
- super(e, 'XRefParseException');
- }
- }
- t.XRefParseException = XRefParseException;
- function getInheritableProperty({
- dict: e,
- key: t,
- getArray: a = !1,
- stopWhenFound: r = !0,
- }) {
- let n;
- const s = new i.RefSet();
- for (; e instanceof i.Dict && (!e.objId || !s.has(e.objId)); ) {
- e.objId && s.put(e.objId);
- const i = a ? e.getArray(t) : e.get(t);
- if (void 0 !== i) {
- if (r) return i;
- (n ||= []).push(i);
- }
- e = e.get('Parent');
- }
- return n;
- }
- const s = [
- '',
- 'C',
- 'CC',
- 'CCC',
- 'CD',
- 'D',
- 'DC',
- 'DCC',
- 'DCCC',
- 'CM',
- '',
- 'X',
- 'XX',
- 'XXX',
- 'XL',
- 'L',
- 'LX',
- 'LXX',
- 'LXXX',
- 'XC',
- '',
- 'I',
- 'II',
- 'III',
- 'IV',
- 'V',
- 'VI',
- 'VII',
- 'VIII',
- 'IX',
- ];
- function _collectJS(e, t, a, s) {
- if (!e) return;
- let o = null;
- if (e instanceof i.Ref) {
- if (s.has(e)) return;
- o = e;
- s.put(o);
- e = t.fetch(e);
- }
- if (Array.isArray(e)) for (const r of e) _collectJS(r, t, a, s);
- else if (e instanceof i.Dict) {
- if ((0, i.isName)(e.get('S'), 'JavaScript')) {
- const t = e.get('JS');
- let i;
- t instanceof n.BaseStream ? (i = t.getString()) : 'string' == typeof t && (i = t);
- i &&= (0, r.stringToPDFString)(i).replaceAll('\0', '');
- i && a.push(i);
- }
- _collectJS(e.getRaw('Next'), t, a, s);
- }
- o && s.remove(o);
- }
- const o = { 60: '<', 62: '>', 38: '&', 34: '"', 39: ''' };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.RefSetCache =
- t.RefSet =
- t.Ref =
- t.Name =
- t.EOF =
- t.Dict =
- t.Cmd =
- t.CIRCULAR_REF =
- void 0;
- t.clearPrimitiveCaches = function clearPrimitiveCaches() {
- s = Object.create(null);
- o = Object.create(null);
- c = Object.create(null);
- };
- t.isCmd = function isCmd(e, t) {
- return e instanceof Cmd && (void 0 === t || e.cmd === t);
- };
- t.isDict = function isDict(e, t) {
- return e instanceof Dict && (void 0 === t || isName(e.get('Type'), t));
- };
- t.isName = isName;
- t.isRefsEqual = function isRefsEqual(e, t) {
- return e.num === t.num && e.gen === t.gen;
- };
- var r = a(2);
- const i = Symbol('CIRCULAR_REF');
- t.CIRCULAR_REF = i;
- const n = Symbol('EOF');
- t.EOF = n;
- let s = Object.create(null),
- o = Object.create(null),
- c = Object.create(null);
- class Name {
- constructor(e) {
- this.name = e;
- }
- static get(e) {
- return (o[e] ||= new Name(e));
- }
- }
- t.Name = Name;
- class Cmd {
- constructor(e) {
- this.cmd = e;
- }
- static get(e) {
- return (s[e] ||= new Cmd(e));
- }
- }
- t.Cmd = Cmd;
- const l = function nonSerializableClosure() {
- return l;
- };
- class Dict {
- constructor(e = null) {
- this._map = Object.create(null);
- this.xref = e;
- this.objId = null;
- this.suppressEncryption = !1;
- this.__nonSerializable__ = l;
- }
- assignXref(e) {
- this.xref = e;
- }
- get size() {
- return Object.keys(this._map).length;
- }
- get(e, t, a) {
- let r = this._map[e];
- if (void 0 === r && void 0 !== t) {
- r = this._map[t];
- void 0 === r && void 0 !== a && (r = this._map[a]);
- }
- return r instanceof Ref && this.xref
- ? this.xref.fetch(r, this.suppressEncryption)
- : r;
- }
- async getAsync(e, t, a) {
- let r = this._map[e];
- if (void 0 === r && void 0 !== t) {
- r = this._map[t];
- void 0 === r && void 0 !== a && (r = this._map[a]);
- }
- return r instanceof Ref && this.xref
- ? this.xref.fetchAsync(r, this.suppressEncryption)
- : r;
- }
- getArray(e, t, a) {
- let r = this._map[e];
- if (void 0 === r && void 0 !== t) {
- r = this._map[t];
- void 0 === r && void 0 !== a && (r = this._map[a]);
- }
- r instanceof Ref && this.xref && (r = this.xref.fetch(r, this.suppressEncryption));
- if (Array.isArray(r)) {
- r = r.slice();
- for (let e = 0, t = r.length; e < t; e++)
- r[e] instanceof Ref &&
- this.xref &&
- (r[e] = this.xref.fetch(r[e], this.suppressEncryption));
- }
- return r;
- }
- getRaw(e) {
- return this._map[e];
- }
- getKeys() {
- return Object.keys(this._map);
- }
- getRawValues() {
- return Object.values(this._map);
- }
- set(e, t) {
- this._map[e] = t;
- }
- has(e) {
- return void 0 !== this._map[e];
- }
- forEach(e) {
- for (const t in this._map) e(t, this.get(t));
- }
- static get empty() {
- const e = new Dict(null);
- e.set = (e, t) => {
- (0, r.unreachable)('Should not call `set` on the empty dictionary.');
- };
- return (0, r.shadow)(this, 'empty', e);
- }
- static merge({ xref: e, dictArray: t, mergeSubDicts: a = !1 }) {
- const r = new Dict(e),
- i = new Map();
- for (const e of t)
- if (e instanceof Dict)
- for (const [t, r] of Object.entries(e._map)) {
- let e = i.get(t);
- if (void 0 === e) {
- e = [];
- i.set(t, e);
- } else if (!(a && r instanceof Dict)) continue;
- e.push(r);
- }
- for (const [t, a] of i) {
- if (1 === a.length || !(a[0] instanceof Dict)) {
- r._map[t] = a[0];
- continue;
- }
- const i = new Dict(e);
- for (const e of a)
- for (const [t, a] of Object.entries(e._map))
- void 0 === i._map[t] && (i._map[t] = a);
- i.size > 0 && (r._map[t] = i);
- }
- i.clear();
- return r.size > 0 ? r : Dict.empty;
- }
- }
- t.Dict = Dict;
- class Ref {
- constructor(e, t) {
- this.num = e;
- this.gen = t;
- }
- toString() {
- return 0 === this.gen ? `${this.num}R` : `${this.num}R${this.gen}`;
- }
- static get(e, t) {
- const a = 0 === t ? `${e}R` : `${e}R${t}`;
- return (c[a] ||= new Ref(e, t));
- }
- }
- t.Ref = Ref;
- class RefSet {
- constructor(e = null) {
- this._set = new Set(e && e._set);
- }
- has(e) {
- return this._set.has(e.toString());
- }
- put(e) {
- this._set.add(e.toString());
- }
- remove(e) {
- this._set.delete(e.toString());
- }
- [Symbol.iterator]() {
- return this._set.values();
- }
- clear() {
- this._set.clear();
- }
- }
- t.RefSet = RefSet;
- class RefSetCache {
- constructor() {
- this._map = new Map();
- }
- get size() {
- return this._map.size;
- }
- get(e) {
- return this._map.get(e.toString());
- }
- has(e) {
- return this._map.has(e.toString());
- }
- put(e, t) {
- this._map.set(e.toString(), t);
- }
- putAlias(e, t) {
- this._map.set(e.toString(), this.get(t));
- }
- [Symbol.iterator]() {
- return this._map.values();
- }
- clear() {
- this._map.clear();
- }
- }
- t.RefSetCache = RefSetCache;
- function isName(e, t) {
- return e instanceof Name && (void 0 === t || e.name === t);
- }
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.BaseStream = void 0;
- var r = a(2);
- class BaseStream {
- constructor() {
- this.constructor === BaseStream &&
- (0, r.unreachable)('Cannot initialize BaseStream.');
- }
- get length() {
- (0, r.unreachable)('Abstract getter `length` accessed');
- }
- get isEmpty() {
- (0, r.unreachable)('Abstract getter `isEmpty` accessed');
- }
- get isDataLoaded() {
- return (0, r.shadow)(this, 'isDataLoaded', !0);
- }
- getByte() {
- (0, r.unreachable)('Abstract method `getByte` called');
- }
- getBytes(e) {
- (0, r.unreachable)('Abstract method `getBytes` called');
- }
- peekByte() {
- const e = this.getByte();
- -1 !== e && this.pos--;
- return e;
- }
- peekBytes(e) {
- const t = this.getBytes(e);
- this.pos -= t.length;
- return t;
- }
- getUint16() {
- const e = this.getByte(),
- t = this.getByte();
- return -1 === e || -1 === t ? -1 : (e << 8) + t;
- }
- getInt32() {
- return (
- (this.getByte() << 24) +
- (this.getByte() << 16) +
- (this.getByte() << 8) +
- this.getByte()
- );
- }
- getByteRange(e, t) {
- (0, r.unreachable)('Abstract method `getByteRange` called');
- }
- getString(e) {
- return (0, r.bytesToString)(this.getBytes(e));
- }
- skip(e) {
- this.pos += e || 1;
- }
- reset() {
- (0, r.unreachable)('Abstract method `reset` called');
- }
- moveStart() {
- (0, r.unreachable)('Abstract method `moveStart` called');
- }
- makeSubStream(e, t, a = null) {
- (0, r.unreachable)('Abstract method `makeSubStream` called');
- }
- getBaseStreams() {
- return null;
- }
- }
- t.BaseStream = BaseStream;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.NetworkPdfManager = t.LocalPdfManager = void 0;
- var r = a(2),
- i = a(7),
- n = a(3),
- s = a(9),
- o = a(8);
- class BasePdfManager {
- constructor(e) {
- this.constructor === BasePdfManager &&
- (0, r.unreachable)('Cannot initialize BasePdfManager.');
- this._docBaseUrl = (function parseDocBaseUrl(e) {
- if (e) {
- const t = (0, r.createValidAbsoluteUrl)(e);
- if (t) return t.href;
- (0, r.warn)(`Invalid absolute docBaseUrl: "${e}".`);
- }
- return null;
- })(e.docBaseUrl);
- this._docId = e.docId;
- this._password = e.password;
- this.enableXfa = e.enableXfa;
- e.evaluatorOptions.isOffscreenCanvasSupported &&=
- r.FeatureTest.isOffscreenCanvasSupported;
- this.evaluatorOptions = e.evaluatorOptions;
- }
- get docId() {
- return this._docId;
- }
- get password() {
- return this._password;
- }
- get docBaseUrl() {
- const e = this.pdfDocument.catalog;
- return (0, r.shadow)(this, 'docBaseUrl', e.baseUrl || this._docBaseUrl);
- }
- ensureDoc(e, t) {
- return this.ensure(this.pdfDocument, e, t);
- }
- ensureXRef(e, t) {
- return this.ensure(this.pdfDocument.xref, e, t);
- }
- ensureCatalog(e, t) {
- return this.ensure(this.pdfDocument.catalog, e, t);
- }
- getPage(e) {
- return this.pdfDocument.getPage(e);
- }
- fontFallback(e, t) {
- return this.pdfDocument.fontFallback(e, t);
- }
- loadXfaFonts(e, t) {
- return this.pdfDocument.loadXfaFonts(e, t);
- }
- loadXfaImages() {
- return this.pdfDocument.loadXfaImages();
- }
- serializeXfaData(e) {
- return this.pdfDocument.serializeXfaData(e);
- }
- cleanup(e = !1) {
- return this.pdfDocument.cleanup(e);
- }
- async ensure(e, t, a) {
- (0, r.unreachable)('Abstract method `ensure` called');
- }
- requestRange(e, t) {
- (0, r.unreachable)('Abstract method `requestRange` called');
- }
- requestLoadedStream(e = !1) {
- (0, r.unreachable)('Abstract method `requestLoadedStream` called');
- }
- sendProgressiveData(e) {
- (0, r.unreachable)('Abstract method `sendProgressiveData` called');
- }
- updatePassword(e) {
- this._password = e;
- }
- terminate(e) {
- (0, r.unreachable)('Abstract method `terminate` called');
- }
- }
- t.LocalPdfManager = class LocalPdfManager extends BasePdfManager {
- constructor(e) {
- super(e);
- const t = new o.Stream(e.source);
- this.pdfDocument = new s.PDFDocument(this, t);
- this._loadedStreamPromise = Promise.resolve(t);
- }
- async ensure(e, t, a) {
- const r = e[t];
- return 'function' == typeof r ? r.apply(e, a) : r;
- }
- requestRange(e, t) {
- return Promise.resolve();
- }
- requestLoadedStream(e = !1) {
- return this._loadedStreamPromise;
- }
- terminate(e) {}
- };
- t.NetworkPdfManager = class NetworkPdfManager extends BasePdfManager {
- constructor(e) {
- super(e);
- this.streamManager = new i.ChunkedStreamManager(e.source, {
- msgHandler: e.handler,
- length: e.length,
- disableAutoFetch: e.disableAutoFetch,
- rangeChunkSize: e.rangeChunkSize,
- });
- this.pdfDocument = new s.PDFDocument(this, this.streamManager.getStream());
- }
- async ensure(e, t, a) {
- try {
- const r = e[t];
- return 'function' == typeof r ? r.apply(e, a) : r;
- } catch (r) {
- if (!(r instanceof n.MissingDataException)) throw r;
- await this.requestRange(r.begin, r.end);
- return this.ensure(e, t, a);
- }
- }
- requestRange(e, t) {
- return this.streamManager.requestRange(e, t);
- }
- requestLoadedStream(e = !1) {
- return this.streamManager.requestAllChunks(e);
- }
- sendProgressiveData(e) {
- this.streamManager.onReceiveData({ chunk: e });
- }
- terminate(e) {
- this.streamManager.abort(e);
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.ChunkedStreamManager = t.ChunkedStream = void 0;
- var r = a(3),
- i = a(2),
- n = a(8);
- class ChunkedStream extends n.Stream {
- constructor(e, t, a) {
- super(new Uint8Array(e), 0, e, null);
- this.chunkSize = t;
- this._loadedChunks = new Set();
- this.numChunks = Math.ceil(e / t);
- this.manager = a;
- this.progressiveDataLength = 0;
- this.lastSuccessfulEnsureByteChunk = -1;
- }
- getMissingChunks() {
- const e = [];
- for (let t = 0, a = this.numChunks; t < a; ++t)
- this._loadedChunks.has(t) || e.push(t);
- return e;
- }
- get numChunksLoaded() {
- return this._loadedChunks.size;
- }
- get isDataLoaded() {
- return this.numChunksLoaded === this.numChunks;
- }
- onReceiveData(e, t) {
- const a = this.chunkSize;
- if (e % a != 0) throw new Error(`Bad begin offset: ${e}`);
- const r = e + t.byteLength;
- if (r % a != 0 && r !== this.bytes.length) throw new Error(`Bad end offset: ${r}`);
- this.bytes.set(new Uint8Array(t), e);
- const i = Math.floor(e / a),
- n = Math.floor((r - 1) / a) + 1;
- for (let e = i; e < n; ++e) this._loadedChunks.add(e);
- }
- onReceiveProgressiveData(e) {
- let t = this.progressiveDataLength;
- const a = Math.floor(t / this.chunkSize);
- this.bytes.set(new Uint8Array(e), t);
- t += e.byteLength;
- this.progressiveDataLength = t;
- const r = t >= this.end ? this.numChunks : Math.floor(t / this.chunkSize);
- for (let e = a; e < r; ++e) this._loadedChunks.add(e);
- }
- ensureByte(e) {
- if (e < this.progressiveDataLength) return;
- const t = Math.floor(e / this.chunkSize);
- if (!(t > this.numChunks) && t !== this.lastSuccessfulEnsureByteChunk) {
- if (!this._loadedChunks.has(t)) throw new r.MissingDataException(e, e + 1);
- this.lastSuccessfulEnsureByteChunk = t;
- }
- }
- ensureRange(e, t) {
- if (e >= t) return;
- if (t <= this.progressiveDataLength) return;
- const a = Math.floor(e / this.chunkSize);
- if (a > this.numChunks) return;
- const i = Math.min(Math.floor((t - 1) / this.chunkSize) + 1, this.numChunks);
- for (let n = a; n < i; ++n)
- if (!this._loadedChunks.has(n)) throw new r.MissingDataException(e, t);
- }
- nextEmptyChunk(e) {
- const t = this.numChunks;
- for (let a = 0; a < t; ++a) {
- const r = (e + a) % t;
- if (!this._loadedChunks.has(r)) return r;
- }
- return null;
- }
- hasChunk(e) {
- return this._loadedChunks.has(e);
- }
- getByte() {
- const e = this.pos;
- if (e >= this.end) return -1;
- e >= this.progressiveDataLength && this.ensureByte(e);
- return this.bytes[this.pos++];
- }
- getBytes(e) {
- const t = this.bytes,
- a = this.pos,
- r = this.end;
- if (!e) {
- r > this.progressiveDataLength && this.ensureRange(a, r);
- return t.subarray(a, r);
- }
- let i = a + e;
- i > r && (i = r);
- i > this.progressiveDataLength && this.ensureRange(a, i);
- this.pos = i;
- return t.subarray(a, i);
- }
- getByteRange(e, t) {
- e < 0 && (e = 0);
- t > this.end && (t = this.end);
- t > this.progressiveDataLength && this.ensureRange(e, t);
- return this.bytes.subarray(e, t);
- }
- makeSubStream(e, t, a = null) {
- t
- ? e + t > this.progressiveDataLength && this.ensureRange(e, e + t)
- : e >= this.progressiveDataLength && this.ensureByte(e);
- function ChunkedStreamSubstream() {}
- ChunkedStreamSubstream.prototype = Object.create(this);
- ChunkedStreamSubstream.prototype.getMissingChunks = function () {
- const e = this.chunkSize,
- t = Math.floor(this.start / e),
- a = Math.floor((this.end - 1) / e) + 1,
- r = [];
- for (let e = t; e < a; ++e) this._loadedChunks.has(e) || r.push(e);
- return r;
- };
- Object.defineProperty(ChunkedStreamSubstream.prototype, 'isDataLoaded', {
- get() {
- return (
- this.numChunksLoaded === this.numChunks || 0 === this.getMissingChunks().length
- );
- },
- configurable: !0,
- });
- const r = new ChunkedStreamSubstream();
- r.pos = r.start = e;
- r.end = e + t || this.end;
- r.dict = a;
- return r;
- }
- getBaseStreams() {
- return [this];
- }
- }
- t.ChunkedStream = ChunkedStream;
- t.ChunkedStreamManager = class ChunkedStreamManager {
- constructor(e, t) {
- this.length = t.length;
- this.chunkSize = t.rangeChunkSize;
- this.stream = new ChunkedStream(this.length, this.chunkSize, this);
- this.pdfNetworkStream = e;
- this.disableAutoFetch = t.disableAutoFetch;
- this.msgHandler = t.msgHandler;
- this.currRequestId = 0;
- this._chunksNeededByRequest = new Map();
- this._requestsByChunk = new Map();
- this._promisesByRequest = new Map();
- this.progressiveDataLength = 0;
- this.aborted = !1;
- this._loadedStreamCapability = new i.PromiseCapability();
- }
- sendRequest(e, t) {
- const a = this.pdfNetworkStream.getRangeReader(e, t);
- a.isStreamingSupported || (a.onProgress = this.onProgress.bind(this));
- let i = [],
- n = 0;
- return new Promise((e, t) => {
- const readChunk = ({ value: s, done: o }) => {
- try {
- if (o) {
- const t = (0, r.arrayBuffersToBytes)(i);
- i = null;
- e(t);
- return;
- }
- n += s.byteLength;
- a.isStreamingSupported && this.onProgress({ loaded: n });
- i.push(s);
- a.read().then(readChunk, t);
- } catch (e) {
- t(e);
- }
- };
- a.read().then(readChunk, t);
- }).then((t) => {
- this.aborted || this.onReceiveData({ chunk: t, begin: e });
- });
- }
- requestAllChunks(e = !1) {
- if (!e) {
- const e = this.stream.getMissingChunks();
- this._requestChunks(e);
- }
- return this._loadedStreamCapability.promise;
- }
- _requestChunks(e) {
- const t = this.currRequestId++,
- a = new Set();
- this._chunksNeededByRequest.set(t, a);
- for (const t of e) this.stream.hasChunk(t) || a.add(t);
- if (0 === a.size) return Promise.resolve();
- const r = new i.PromiseCapability();
- this._promisesByRequest.set(t, r);
- const n = [];
- for (const e of a) {
- let a = this._requestsByChunk.get(e);
- if (!a) {
- a = [];
- this._requestsByChunk.set(e, a);
- n.push(e);
- }
- a.push(t);
- }
- if (n.length > 0) {
- const e = this.groupChunks(n);
- for (const t of e) {
- const e = t.beginChunk * this.chunkSize,
- a = Math.min(t.endChunk * this.chunkSize, this.length);
- this.sendRequest(e, a).catch(r.reject);
- }
- }
- return r.promise.catch((e) => {
- if (!this.aborted) throw e;
- });
- }
- getStream() {
- return this.stream;
- }
- requestRange(e, t) {
- t = Math.min(t, this.length);
- const a = this.getBeginChunk(e),
- r = this.getEndChunk(t),
- i = [];
- for (let e = a; e < r; ++e) i.push(e);
- return this._requestChunks(i);
- }
- requestRanges(e = []) {
- const t = [];
- for (const a of e) {
- const e = this.getBeginChunk(a.begin),
- r = this.getEndChunk(a.end);
- for (let a = e; a < r; ++a) t.includes(a) || t.push(a);
- }
- t.sort(function (e, t) {
- return e - t;
- });
- return this._requestChunks(t);
- }
- groupChunks(e) {
- const t = [];
- let a = -1,
- r = -1;
- for (let i = 0, n = e.length; i < n; ++i) {
- const n = e[i];
- a < 0 && (a = n);
- if (r >= 0 && r + 1 !== n) {
- t.push({ beginChunk: a, endChunk: r + 1 });
- a = n;
- }
- i + 1 === e.length && t.push({ beginChunk: a, endChunk: n + 1 });
- r = n;
- }
- return t;
- }
- onProgress(e) {
- this.msgHandler.send('DocProgress', {
- loaded: this.stream.numChunksLoaded * this.chunkSize + e.loaded,
- total: this.length,
- });
- }
- onReceiveData(e) {
- const t = e.chunk,
- a = void 0 === e.begin,
- r = a ? this.progressiveDataLength : e.begin,
- i = r + t.byteLength,
- n = Math.floor(r / this.chunkSize),
- s =
- i < this.length ? Math.floor(i / this.chunkSize) : Math.ceil(i / this.chunkSize);
- if (a) {
- this.stream.onReceiveProgressiveData(t);
- this.progressiveDataLength = i;
- } else this.stream.onReceiveData(r, t);
- this.stream.isDataLoaded && this._loadedStreamCapability.resolve(this.stream);
- const o = [];
- for (let e = n; e < s; ++e) {
- const t = this._requestsByChunk.get(e);
- if (t) {
- this._requestsByChunk.delete(e);
- for (const a of t) {
- const t = this._chunksNeededByRequest.get(a);
- t.has(e) && t.delete(e);
- t.size > 0 || o.push(a);
- }
- }
- }
- if (!this.disableAutoFetch && 0 === this._requestsByChunk.size) {
- let e;
- if (1 === this.stream.numChunksLoaded) {
- const t = this.stream.numChunks - 1;
- this.stream.hasChunk(t) || (e = t);
- } else e = this.stream.nextEmptyChunk(s);
- Number.isInteger(e) && this._requestChunks([e]);
- }
- for (const e of o) {
- const t = this._promisesByRequest.get(e);
- this._promisesByRequest.delete(e);
- t.resolve();
- }
- this.msgHandler.send('DocProgress', {
- loaded: this.stream.numChunksLoaded * this.chunkSize,
- total: this.length,
- });
- }
- onError(e) {
- this._loadedStreamCapability.reject(e);
- }
- getBeginChunk(e) {
- return Math.floor(e / this.chunkSize);
- }
- getEndChunk(e) {
- return Math.floor((e - 1) / this.chunkSize) + 1;
- }
- abort(e) {
- this.aborted = !0;
- this.pdfNetworkStream && this.pdfNetworkStream.cancelAllRequests(e);
- for (const t of this._promisesByRequest.values()) t.reject(e);
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.StringStream = t.Stream = t.NullStream = void 0;
- var r = a(5),
- i = a(2);
- class Stream extends r.BaseStream {
- constructor(e, t, a, r) {
- super();
- this.bytes = e instanceof Uint8Array ? e : new Uint8Array(e);
- this.start = t || 0;
- this.pos = this.start;
- this.end = t + a || this.bytes.length;
- this.dict = r;
- }
- get length() {
- return this.end - this.start;
- }
- get isEmpty() {
- return 0 === this.length;
- }
- getByte() {
- return this.pos >= this.end ? -1 : this.bytes[this.pos++];
- }
- getBytes(e) {
- const t = this.bytes,
- a = this.pos,
- r = this.end;
- if (!e) return t.subarray(a, r);
- let i = a + e;
- i > r && (i = r);
- this.pos = i;
- return t.subarray(a, i);
- }
- getByteRange(e, t) {
- e < 0 && (e = 0);
- t > this.end && (t = this.end);
- return this.bytes.subarray(e, t);
- }
- reset() {
- this.pos = this.start;
- }
- moveStart() {
- this.start = this.pos;
- }
- makeSubStream(e, t, a = null) {
- return new Stream(this.bytes.buffer, e, t, a);
- }
- }
- t.Stream = Stream;
- t.StringStream = class StringStream extends Stream {
- constructor(e) {
- super((0, i.stringToBytes)(e));
- }
- };
- t.NullStream = class NullStream extends Stream {
- constructor() {
- super(new Uint8Array(0));
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.Page = t.PDFDocument = void 0;
- var r = a(10),
- i = a(2),
- n = a(3),
- s = a(4),
- o = a(51),
- c = a(5),
- l = a(67),
- h = a(69),
- u = a(71),
- d = a(100),
- f = a(16),
- g = a(8),
- p = a(75),
- m = a(63),
- b = a(13),
- y = a(18),
- w = a(74),
- S = a(65),
- x = a(76),
- C = a(101);
- const k = [0, 0, 612, 792];
- class Page {
- constructor({
- pdfManager: e,
- xref: t,
- pageIndex: a,
- pageDict: r,
- ref: i,
- globalIdFactory: n,
- fontCache: s,
- builtInCMapCache: o,
- standardFontDataCache: c,
- globalImageCache: l,
- nonBlendModesSet: h,
- xfaFactory: u,
- }) {
- this.pdfManager = e;
- this.pageIndex = a;
- this.pageDict = r;
- this.xref = t;
- this.ref = i;
- this.fontCache = s;
- this.builtInCMapCache = o;
- this.standardFontDataCache = c;
- this.globalImageCache = l;
- this.nonBlendModesSet = h;
- this.evaluatorOptions = e.evaluatorOptions;
- this.resourcesPromise = null;
- this.xfaFactory = u;
- const d = { obj: 0 };
- this._localIdFactory = class extends n {
- static createObjId() {
- return `p${a}_${++d.obj}`;
- }
- static getPageObjId() {
- return `page${i.toString()}`;
- }
- };
- }
- _getInheritableProperty(e, t = !1) {
- const a = (0, n.getInheritableProperty)({
- dict: this.pageDict,
- key: e,
- getArray: t,
- stopWhenFound: !1,
- });
- return Array.isArray(a)
- ? 1 !== a.length && a[0] instanceof s.Dict
- ? s.Dict.merge({ xref: this.xref, dictArray: a })
- : a[0]
- : a;
- }
- get content() {
- return this.pageDict.getArray('Contents');
- }
- get resources() {
- const e = this._getInheritableProperty('Resources');
- return (0, i.shadow)(this, 'resources', e instanceof s.Dict ? e : s.Dict.empty);
- }
- _getBoundingBox(e) {
- if (this.xfaData) return this.xfaData.bbox;
- let t = this._getInheritableProperty(e, !0);
- if (Array.isArray(t) && 4 === t.length) {
- t = i.Util.normalizeRect(t);
- if (t[2] - t[0] > 0 && t[3] - t[1] > 0) return t;
- (0, i.warn)(`Empty, or invalid, /${e} entry.`);
- }
- return null;
- }
- get mediaBox() {
- return (0, i.shadow)(this, 'mediaBox', this._getBoundingBox('MediaBox') || k);
- }
- get cropBox() {
- return (0, i.shadow)(
- this,
- 'cropBox',
- this._getBoundingBox('CropBox') || this.mediaBox,
- );
- }
- get userUnit() {
- let e = this.pageDict.get('UserUnit');
- ('number' != typeof e || e <= 0) && (e = 1);
- return (0, i.shadow)(this, 'userUnit', e);
- }
- get view() {
- const { cropBox: e, mediaBox: t } = this;
- if (e !== t && !(0, i.isArrayEqual)(e, t)) {
- const a = i.Util.intersect(e, t);
- if (a && a[2] - a[0] > 0 && a[3] - a[1] > 0) return (0, i.shadow)(this, 'view', a);
- (0, i.warn)('Empty /CropBox and /MediaBox intersection.');
- }
- return (0, i.shadow)(this, 'view', t);
- }
- get rotate() {
- let e = this._getInheritableProperty('Rotate') || 0;
- e % 90 != 0
- ? (e = 0)
- : e >= 360
- ? (e %= 360)
- : e < 0 && (e = ((e % 360) + 360) % 360);
- return (0, i.shadow)(this, 'rotate', e);
- }
- _onSubStreamError(e, t) {
- if (!this.evaluatorOptions.ignoreErrors) throw e;
- (0, i.warn)(`getContentStream - ignoring sub-stream (${t}): "${e}".`);
- }
- getContentStream() {
- return this.pdfManager
- .ensure(this, 'content')
- .then((e) =>
- e instanceof c.BaseStream
- ? e
- : Array.isArray(e)
- ? new y.StreamsSequenceStream(e, this._onSubStreamError.bind(this))
- : new g.NullStream(),
- );
- }
- get xfaData() {
- return (0, i.shadow)(
- this,
- 'xfaData',
- this.xfaFactory ? { bbox: this.xfaFactory.getBoundingBox(this.pageIndex) } : null,
- );
- }
- async saveNewAnnotations(e, t, a) {
- if (this.xfaFactory) throw new Error('XFA: Cannot save new annotations.');
- const i = new b.PartialEvaluator({
- xref: this.xref,
- handler: e,
- pageIndex: this.pageIndex,
- idFactory: this._localIdFactory,
- fontCache: this.fontCache,
- builtInCMapCache: this.builtInCMapCache,
- standardFontDataCache: this.standardFontDataCache,
- globalImageCache: this.globalImageCache,
- options: this.evaluatorOptions,
- }),
- n = this.pageDict,
- s = this.annotations.slice(),
- o = await r.AnnotationFactory.saveNewAnnotations(i, t, a);
- for (const { ref: e } of o.annotations) s.push(e);
- const c = n.get('Annots');
- n.set('Annots', s);
- const l = [];
- let h = null;
- this.xref.encrypt &&
- (h = this.xref.encrypt.createCipherTransform(this.ref.num, this.ref.gen));
- (0, S.writeObject)(this.ref, n, l, h);
- c && n.set('Annots', c);
- const u = o.dependencies;
- u.push({ ref: this.ref, data: l.join('') }, ...o.annotations);
- return u;
- }
- save(e, t, a) {
- const r = new b.PartialEvaluator({
- xref: this.xref,
- handler: e,
- pageIndex: this.pageIndex,
- idFactory: this._localIdFactory,
- fontCache: this.fontCache,
- builtInCMapCache: this.builtInCMapCache,
- standardFontDataCache: this.standardFontDataCache,
- globalImageCache: this.globalImageCache,
- options: this.evaluatorOptions,
- });
- return this._parsedAnnotations.then(function (e) {
- const n = [];
- for (const s of e)
- s.mustBePrinted(a) &&
- n.push(
- s.save(r, t, a).catch(function (e) {
- (0,
- i.warn)(`save - ignoring annotation data during "${t.name}" task: "${e}".`);
- return null;
- }),
- );
- return Promise.all(n).then(function (e) {
- return e.filter((e) => !!e);
- });
- });
- }
- loadResources(e) {
- this.resourcesPromise ||
- (this.resourcesPromise = this.pdfManager.ensure(this, 'resources'));
- return this.resourcesPromise.then(() =>
- new p.ObjectLoader(this.resources, e, this.xref).load(),
- );
- }
- getOperatorList({
- handler: e,
- sink: t,
- task: a,
- intent: s,
- cacheKey: o,
- annotationStorage: c = null,
- }) {
- const l = this.getContentStream(),
- h = this.loadResources([
- 'ColorSpace',
- 'ExtGState',
- 'Font',
- 'Pattern',
- 'Properties',
- 'Shading',
- 'XObject',
- ]),
- u = new b.PartialEvaluator({
- xref: this.xref,
- handler: e,
- pageIndex: this.pageIndex,
- idFactory: this._localIdFactory,
- fontCache: this.fontCache,
- builtInCMapCache: this.builtInCMapCache,
- standardFontDataCache: this.standardFontDataCache,
- globalImageCache: this.globalImageCache,
- options: this.evaluatorOptions,
- }),
- d = this.xfaFactory ? null : (0, n.getNewAnnotationsMap)(c);
- let f = Promise.resolve(null);
- if (d) {
- const e = d.get(this.pageIndex);
- e && (f = r.AnnotationFactory.printNewAnnotations(u, a, e));
- }
- const g = Promise.all([l, h]).then(([r]) => {
- const i = new m.OperatorList(s, t);
- e.send('StartRenderPage', {
- transparency: u.hasBlendModes(this.resources, this.nonBlendModesSet),
- pageIndex: this.pageIndex,
- cacheKey: o,
- });
- return u
- .getOperatorList({
- stream: r,
- task: a,
- resources: this.resources,
- operatorList: i,
- })
- .then(function () {
- return i;
- });
- });
- return Promise.all([g, this._parsedAnnotations, f]).then(function ([e, t, r]) {
- r && (t = t.concat(r));
- if (0 === t.length || s & i.RenderingIntentFlag.ANNOTATIONS_DISABLE) {
- e.flush(!0);
- return { length: e.totalLength };
- }
- const n = !!(s & i.RenderingIntentFlag.ANNOTATIONS_FORMS),
- o = !!(s & i.RenderingIntentFlag.ANY),
- l = !!(s & i.RenderingIntentFlag.DISPLAY),
- h = !!(s & i.RenderingIntentFlag.PRINT),
- d = [];
- for (const e of t)
- (o || (l && e.mustBeViewed(c)) || (h && e.mustBePrinted(c))) &&
- d.push(
- e.getOperatorList(u, a, s, n, c).catch(function (e) {
- (0,
- i.warn)(`getOperatorList - ignoring annotation data during "${a.name}" task: "${e}".`);
- return { opList: null, separateForm: !1, separateCanvas: !1 };
- }),
- );
- return Promise.all(d).then(function (t) {
- let a = !1,
- r = !1;
- for (const { opList: i, separateForm: n, separateCanvas: s } of t) {
- e.addOpList(i);
- a ||= n;
- r ||= s;
- }
- e.flush(!0, { form: a, canvas: r });
- return { length: e.totalLength };
- });
- });
- }
- extractTextContent({
- handler: e,
- task: t,
- includeMarkedContent: a,
- disableNormalization: r,
- sink: i,
- }) {
- const n = this.getContentStream(),
- s = this.loadResources(['ExtGState', 'Font', 'Properties', 'XObject']);
- return Promise.all([n, s]).then(([n]) =>
- new b.PartialEvaluator({
- xref: this.xref,
- handler: e,
- pageIndex: this.pageIndex,
- idFactory: this._localIdFactory,
- fontCache: this.fontCache,
- builtInCMapCache: this.builtInCMapCache,
- standardFontDataCache: this.standardFontDataCache,
- globalImageCache: this.globalImageCache,
- options: this.evaluatorOptions,
- }).getTextContent({
- stream: n,
- task: t,
- resources: this.resources,
- includeMarkedContent: a,
- disableNormalization: r,
- sink: i,
- viewBox: this.view,
- }),
- );
- }
- async getStructTree() {
- const e = await this.pdfManager.ensureCatalog('structTreeRoot');
- if (!e) return null;
- return (await this.pdfManager.ensure(this, '_parseStructTree', [e])).serializable;
- }
- _parseStructTree(e) {
- const t = new w.StructTreePage(e, this.pageDict);
- t.parse();
- return t;
- }
- async getAnnotationsData(e, t, a) {
- const r = await this._parsedAnnotations;
- if (0 === r.length) return [];
- const n = [],
- s = [];
- let o;
- const c = !!(a & i.RenderingIntentFlag.ANY),
- l = !!(a & i.RenderingIntentFlag.DISPLAY),
- h = !!(a & i.RenderingIntentFlag.PRINT);
- for (const a of r) {
- const r = c || (l && a.viewable);
- (r || (h && a.printable)) && n.push(a.data);
- if (a.hasTextContent && r) {
- o ||= new b.PartialEvaluator({
- xref: this.xref,
- handler: e,
- pageIndex: this.pageIndex,
- idFactory: this._localIdFactory,
- fontCache: this.fontCache,
- builtInCMapCache: this.builtInCMapCache,
- standardFontDataCache: this.standardFontDataCache,
- globalImageCache: this.globalImageCache,
- options: this.evaluatorOptions,
- });
- s.push(
- a.extractTextContent(o, t, this.view).catch(function (e) {
- (0,
- i.warn)(`getAnnotationsData - ignoring textContent during "${t.name}" task: "${e}".`);
- }),
- );
- }
- }
- await Promise.all(s);
- return n;
- }
- get annotations() {
- const e = this._getInheritableProperty('Annots');
- return (0, i.shadow)(this, 'annotations', Array.isArray(e) ? e : []);
- }
- get _parsedAnnotations() {
- const e = this.pdfManager.ensure(this, 'annotations').then(() => {
- const e = [];
- for (const t of this.annotations)
- e.push(
- r.AnnotationFactory.create(
- this.xref,
- t,
- this.pdfManager,
- this._localIdFactory,
- !1,
- ).catch(function (e) {
- (0, i.warn)(`_parsedAnnotations: "${e}".`);
- return null;
- }),
- );
- return Promise.all(e).then(function (e) {
- if (0 === e.length) return e;
- const t = [];
- let a;
- for (const i of e)
- i && (i instanceof r.PopupAnnotation ? (a ||= []).push(i) : t.push(i));
- a && t.push(...a);
- return t;
- });
- });
- return (0, i.shadow)(this, '_parsedAnnotations', e);
- }
- get jsActions() {
- const e = (0, n.collectActions)(this.xref, this.pageDict, i.PageActionEventType);
- return (0, i.shadow)(this, 'jsActions', e);
- }
- }
- t.Page = Page;
- const v = new Uint8Array([37, 80, 68, 70, 45]),
- F = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]),
- O = new Uint8Array([101, 110, 100, 111, 98, 106]);
- function find(e, t, a = 1024, r = !1) {
- const i = t.length,
- n = e.peekBytes(a),
- s = n.length - i;
- if (s <= 0) return !1;
- if (r) {
- const a = i - 1;
- let r = n.length - 1;
- for (; r >= a; ) {
- let s = 0;
- for (; s < i && n[r - s] === t[a - s]; ) s++;
- if (s >= i) {
- e.pos += r - a;
- return !0;
- }
- r--;
- }
- } else {
- let a = 0;
- for (; a <= s; ) {
- let r = 0;
- for (; r < i && n[a + r] === t[r]; ) r++;
- if (r >= i) {
- e.pos += a;
- return !0;
- }
- a++;
- }
- }
- return !1;
- }
- t.PDFDocument = class PDFDocument {
- constructor(e, t) {
- if (t.length <= 0)
- throw new i.InvalidPDFException(
- 'The PDF file is empty, i.e. its size is zero bytes.',
- );
- this.pdfManager = e;
- this.stream = t;
- this.xref = new C.XRef(t, e);
- this._pagePromises = new Map();
- this._version = null;
- const a = { font: 0 };
- this._globalIdFactory = class {
- static getDocId() {
- return `g_${e.docId}`;
- }
- static createFontId() {
- return 'f' + ++a.font;
- }
- static createObjId() {
- (0, i.unreachable)('Abstract method `createObjId` called.');
- }
- static getPageObjId() {
- (0, i.unreachable)('Abstract method `getPageObjId` called.');
- }
- };
- }
- parse(e) {
- this.xref.parse(e);
- this.catalog = new h.Catalog(this.pdfManager, this.xref);
- }
- get linearization() {
- let e = null;
- try {
- e = f.Linearization.create(this.stream);
- } catch (e) {
- if (e instanceof n.MissingDataException) throw e;
- (0, i.info)(e);
- }
- return (0, i.shadow)(this, 'linearization', e);
- }
- get startXRef() {
- const e = this.stream;
- let t = 0;
- if (this.linearization) {
- e.reset();
- find(e, O) && (t = e.pos + 6 - e.start);
- } else {
- const a = 1024,
- r = F.length;
- let i = !1,
- s = e.end;
- for (; !i && s > 0; ) {
- s -= a - r;
- s < 0 && (s = 0);
- e.pos = s;
- i = find(e, F, a, !0);
- }
- if (i) {
- e.skip(9);
- let a;
- do {
- a = e.getByte();
- } while ((0, n.isWhiteSpace)(a));
- let r = '';
- for (; a >= 32 && a <= 57; ) {
- r += String.fromCharCode(a);
- a = e.getByte();
- }
- t = parseInt(r, 10);
- isNaN(t) && (t = 0);
- }
- }
- return (0, i.shadow)(this, 'startXRef', t);
- }
- checkHeader() {
- const e = this.stream;
- e.reset();
- if (!find(e, v)) return;
- e.moveStart();
- e.skip(v.length);
- let t,
- a = '';
- for (; (t = e.getByte()) > 32 && a.length < 7; ) a += String.fromCharCode(t);
- n.PDF_VERSION_REGEXP.test(a)
- ? (this._version = a)
- : (0, i.warn)(`Invalid PDF header version: ${a}`);
- }
- parseStartXRef() {
- this.xref.setStartXRef(this.startXRef);
- }
- get numPages() {
- let e = 0;
- e = this.catalog.hasActualNumPages
- ? this.catalog.numPages
- : this.xfaFactory
- ? this.xfaFactory.getNumPages()
- : this.linearization
- ? this.linearization.numPages
- : this.catalog.numPages;
- return (0, i.shadow)(this, 'numPages', e);
- }
- _hasOnlyDocumentSignatures(e, t = 0) {
- return (
- !!Array.isArray(e) &&
- e.every((e) => {
- if (!((e = this.xref.fetchIfRef(e)) instanceof s.Dict)) return !1;
- if (e.has('Kids')) {
- if (++t > 10) {
- (0, i.warn)('_hasOnlyDocumentSignatures: maximum recursion depth reached');
- return !1;
- }
- return this._hasOnlyDocumentSignatures(e.get('Kids'), t);
- }
- const a = (0, s.isName)(e.get('FT'), 'Sig'),
- r = e.get('Rect'),
- n = Array.isArray(r) && r.every((e) => 0 === e);
- return a && n;
- })
- );
- }
- get _xfaStreams() {
- const e = this.catalog.acroForm;
- if (!e) return null;
- const t = e.get('XFA'),
- a = {
- 'xdp:xdp': '',
- template: '',
- datasets: '',
- config: '',
- connectionSet: '',
- localeSet: '',
- stylesheet: '',
- '/xdp:xdp': '',
- };
- if (t instanceof c.BaseStream && !t.isEmpty) {
- a['xdp:xdp'] = t;
- return a;
- }
- if (!Array.isArray(t) || 0 === t.length) return null;
- for (let e = 0, r = t.length; e < r; e += 2) {
- let i;
- i = 0 === e ? 'xdp:xdp' : e === r - 2 ? '/xdp:xdp' : t[e];
- if (!a.hasOwnProperty(i)) continue;
- const n = this.xref.fetchIfRef(t[e + 1]);
- n instanceof c.BaseStream && !n.isEmpty && (a[i] = n);
- }
- return a;
- }
- get xfaDatasets() {
- const e = this._xfaStreams;
- if (!e) return (0, i.shadow)(this, 'xfaDatasets', null);
- for (const t of ['datasets', 'xdp:xdp']) {
- const a = e[t];
- if (a)
- try {
- const e = { [t]: (0, i.stringToUTF8String)(a.getString()) };
- return (0, i.shadow)(this, 'xfaDatasets', new d.DatasetReader(e));
- } catch (e) {
- (0, i.warn)('XFA - Invalid utf-8 string.');
- break;
- }
- }
- return (0, i.shadow)(this, 'xfaDatasets', null);
- }
- get xfaData() {
- const e = this._xfaStreams;
- if (!e) return null;
- const t = Object.create(null);
- for (const [a, r] of Object.entries(e))
- if (r)
- try {
- t[a] = (0, i.stringToUTF8String)(r.getString());
- } catch (e) {
- (0, i.warn)('XFA - Invalid utf-8 string.');
- return null;
- }
- return t;
- }
- get xfaFactory() {
- let e;
- this.pdfManager.enableXfa &&
- this.catalog.needsRendering &&
- this.formInfo.hasXfa &&
- !this.formInfo.hasAcroForm &&
- (e = this.xfaData);
- return (0, i.shadow)(this, 'xfaFactory', e ? new x.XFAFactory(e) : null);
- }
- get isPureXfa() {
- return !!this.xfaFactory && this.xfaFactory.isValid();
- }
- get htmlForXfa() {
- return this.xfaFactory ? this.xfaFactory.getPages() : null;
- }
- async loadXfaImages() {
- const e = await this.pdfManager.ensureCatalog('xfaImages');
- if (!e) return;
- const t = e.getKeys(),
- a = new p.ObjectLoader(e, t, this.xref);
- await a.load();
- const r = new Map();
- for (const a of t) {
- const t = e.get(a);
- t instanceof c.BaseStream && r.set(a, t.getBytes());
- }
- this.xfaFactory.setImages(r);
- }
- async loadXfaFonts(e, t) {
- const a = await this.pdfManager.ensureCatalog('acroForm');
- if (!a) return;
- const r = await a.getAsync('DR');
- if (!(r instanceof s.Dict)) return;
- const c = new p.ObjectLoader(r, ['Font'], this.xref);
- await c.load();
- const l = r.get('Font');
- if (!(l instanceof s.Dict)) return;
- const h = Object.assign(Object.create(null), this.pdfManager.evaluatorOptions);
- h.useSystemFonts = !1;
- const u = new b.PartialEvaluator({
- xref: this.xref,
- handler: e,
- pageIndex: -1,
- idFactory: this._globalIdFactory,
- fontCache: this.catalog.fontCache,
- builtInCMapCache: this.catalog.builtInCMapCache,
- standardFontDataCache: this.catalog.standardFontDataCache,
- options: h,
- }),
- d = new m.OperatorList(),
- f = [],
- g = {
- get font() {
- return f.at(-1);
- },
- set font(e) {
- f.push(e);
- },
- clone() {
- return this;
- },
- },
- y = new Map();
- l.forEach((e, t) => {
- y.set(e, t);
- });
- const w = [];
- for (const [e, a] of y) {
- const o = a.get('FontDescriptor');
- if (!(o instanceof s.Dict)) continue;
- let c = o.get('FontFamily');
- c = c.replaceAll(/[ ]+(\d)/g, '$1');
- const l = {
- fontFamily: c,
- fontWeight: o.get('FontWeight'),
- italicAngle: -o.get('ItalicAngle'),
- };
- (0, n.validateCSSFont)(l) &&
- w.push(
- u
- .handleSetFont(r, [s.Name.get(e), 1], null, d, t, g, null, l)
- .catch(function (e) {
- (0, i.warn)(`loadXfaFonts: "${e}".`);
- return null;
- }),
- );
- }
- await Promise.all(w);
- const S = this.xfaFactory.setFonts(f);
- if (!S) return;
- h.ignoreErrors = !0;
- w.length = 0;
- f.length = 0;
- const x = new Set();
- for (const e of S) (0, o.getXfaFontName)(`${e}-Regular`) || x.add(e);
- x.size && S.push('PdfJS-Fallback');
- for (const e of S)
- if (!x.has(e))
- for (const a of [
- { name: 'Regular', fontWeight: 400, italicAngle: 0 },
- { name: 'Bold', fontWeight: 700, italicAngle: 0 },
- { name: 'Italic', fontWeight: 400, italicAngle: 12 },
- { name: 'BoldItalic', fontWeight: 700, italicAngle: 12 },
- ]) {
- const n = `${e}-${a.name}`,
- c = (0, o.getXfaFontDict)(n);
- w.push(
- u
- .handleSetFont(r, [s.Name.get(n), 1], null, d, t, g, c, {
- fontFamily: e,
- fontWeight: a.fontWeight,
- italicAngle: a.italicAngle,
- })
- .catch(function (e) {
- (0, i.warn)(`loadXfaFonts: "${e}".`);
- return null;
- }),
- );
- }
- await Promise.all(w);
- this.xfaFactory.appendFonts(f, x);
- }
- async serializeXfaData(e) {
- return this.xfaFactory ? this.xfaFactory.serializeData(e) : null;
- }
- get version() {
- return this.catalog.version || this._version;
- }
- get formInfo() {
- const e = { hasFields: !1, hasAcroForm: !1, hasXfa: !1, hasSignatures: !1 },
- t = this.catalog.acroForm;
- if (!t) return (0, i.shadow)(this, 'formInfo', e);
- try {
- const a = t.get('Fields'),
- r = Array.isArray(a) && a.length > 0;
- e.hasFields = r;
- const i = t.get('XFA');
- e.hasXfa =
- (Array.isArray(i) && i.length > 0) || (i instanceof c.BaseStream && !i.isEmpty);
- const n = !!(1 & t.get('SigFlags')),
- s = n && this._hasOnlyDocumentSignatures(a);
- e.hasAcroForm = r && !s;
- e.hasSignatures = n;
- } catch (e) {
- if (e instanceof n.MissingDataException) throw e;
- (0, i.warn)(`Cannot fetch form information: "${e}".`);
- }
- return (0, i.shadow)(this, 'formInfo', e);
- }
- get documentInfo() {
- const e = {
- PDFFormatVersion: this.version,
- Language: this.catalog.lang,
- EncryptFilterName: this.xref.encrypt ? this.xref.encrypt.filterName : null,
- IsLinearized: !!this.linearization,
- IsAcroFormPresent: this.formInfo.hasAcroForm,
- IsXFAPresent: this.formInfo.hasXfa,
- IsCollectionPresent: !!this.catalog.collection,
- IsSignaturesPresent: this.formInfo.hasSignatures,
- };
- let t;
- try {
- t = this.xref.trailer.get('Info');
- } catch (e) {
- if (e instanceof n.MissingDataException) throw e;
- (0, i.info)('The document information dictionary is invalid.');
- }
- if (!(t instanceof s.Dict)) return (0, i.shadow)(this, 'documentInfo', e);
- for (const a of t.getKeys()) {
- const r = t.get(a);
- switch (a) {
- case 'Title':
- case 'Author':
- case 'Subject':
- case 'Keywords':
- case 'Creator':
- case 'Producer':
- case 'CreationDate':
- case 'ModDate':
- if ('string' == typeof r) {
- e[a] = (0, i.stringToPDFString)(r);
- continue;
- }
- break;
- case 'Trapped':
- if (r instanceof s.Name) {
- e[a] = r;
- continue;
- }
- break;
- default:
- let t;
- switch (typeof r) {
- case 'string':
- t = (0, i.stringToPDFString)(r);
- break;
- case 'number':
- case 'boolean':
- t = r;
- break;
- default:
- r instanceof s.Name && (t = r);
- }
- if (void 0 === t) {
- (0, i.warn)(`Bad value, for custom key "${a}", in Info: ${r}.`);
- continue;
- }
- e.Custom || (e.Custom = Object.create(null));
- e.Custom[a] = t;
- continue;
- }
- (0, i.warn)(`Bad value, for key "${a}", in Info: ${r}.`);
- }
- return (0, i.shadow)(this, 'documentInfo', e);
- }
- get fingerprints() {
- function validate(e) {
- return (
- 'string' == typeof e && e.length > 0 && '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' !== e
- );
- }
- function hexString(e) {
- const t = [];
- for (const a of e) {
- const e = a.toString(16);
- t.push(e.padStart(2, '0'));
- }
- return t.join('');
- }
- const e = this.xref.trailer.get('ID');
- let t, a;
- if (Array.isArray(e) && validate(e[0])) {
- t = (0, i.stringToBytes)(e[0]);
- e[1] !== e[0] && validate(e[1]) && (a = (0, i.stringToBytes)(e[1]));
- } else t = (0, l.calculateMD5)(this.stream.getByteRange(0, 1024), 0, 1024);
- return (0, i.shadow)(this, 'fingerprints', [hexString(t), a ? hexString(a) : null]);
- }
- async _getLinearizationPage(e) {
- const { catalog: t, linearization: a, xref: r } = this,
- n = s.Ref.get(a.objectNumberFirst, 0);
- try {
- const e = await r.fetchAsync(n);
- if (e instanceof s.Dict) {
- let a = e.getRaw('Type');
- a instanceof s.Ref && (a = await r.fetchAsync(a));
- if ((0, s.isName)(a, 'Page') || (!e.has('Type') && !e.has('Kids'))) {
- t.pageKidsCountCache.has(n) || t.pageKidsCountCache.put(n, 1);
- t.pageIndexCache.has(n) || t.pageIndexCache.put(n, 0);
- return [e, n];
- }
- }
- throw new i.FormatError(
- "The Linearization dictionary doesn't point to a valid Page dictionary.",
- );
- } catch (a) {
- (0, i.warn)(`_getLinearizationPage: "${a.message}".`);
- return t.getPageDict(e);
- }
- }
- getPage(e) {
- const t = this._pagePromises.get(e);
- if (t) return t;
- const { catalog: a, linearization: r, xfaFactory: i } = this;
- let n;
- n = i
- ? Promise.resolve([s.Dict.empty, null])
- : r && r.pageFirst === e
- ? this._getLinearizationPage(e)
- : a.getPageDict(e);
- n = n.then(
- ([t, r]) =>
- new Page({
- pdfManager: this.pdfManager,
- xref: this.xref,
- pageIndex: e,
- pageDict: t,
- ref: r,
- globalIdFactory: this._globalIdFactory,
- fontCache: a.fontCache,
- builtInCMapCache: a.builtInCMapCache,
- standardFontDataCache: a.standardFontDataCache,
- globalImageCache: a.globalImageCache,
- nonBlendModesSet: a.nonBlendModesSet,
- xfaFactory: i,
- }),
- );
- this._pagePromises.set(e, n);
- return n;
- }
- async checkFirstPage(e = !1) {
- if (!e)
- try {
- await this.getPage(0);
- } catch (e) {
- if (e instanceof n.XRefEntryException) {
- this._pagePromises.delete(0);
- await this.cleanup();
- throw new n.XRefParseException();
- }
- }
- }
- async checkLastPage(e = !1) {
- const { catalog: t, pdfManager: a } = this;
- t.setActualNumPages();
- let r;
- try {
- await Promise.all([
- a.ensureDoc('xfaFactory'),
- a.ensureDoc('linearization'),
- a.ensureCatalog('numPages'),
- ]);
- if (this.xfaFactory) return;
- r = this.linearization ? this.linearization.numPages : t.numPages;
- if (!Number.isInteger(r)) throw new i.FormatError('Page count is not an integer.');
- if (r <= 1) return;
- await this.getPage(r - 1);
- } catch (s) {
- this._pagePromises.delete(r - 1);
- await this.cleanup();
- if (s instanceof n.XRefEntryException && !e) throw new n.XRefParseException();
- (0, i.warn)(`checkLastPage - invalid /Pages tree /Count: ${r}.`);
- let o;
- try {
- o = await t.getAllPageDicts(e);
- } catch (a) {
- if (a instanceof n.XRefEntryException && !e) throw new n.XRefParseException();
- t.setActualNumPages(1);
- return;
- }
- for (const [e, [r, i]] of o) {
- let n;
- if (r instanceof Error) {
- n = Promise.reject(r);
- n.catch(() => {});
- } else
- n = Promise.resolve(
- new Page({
- pdfManager: a,
- xref: this.xref,
- pageIndex: e,
- pageDict: r,
- ref: i,
- globalIdFactory: this._globalIdFactory,
- fontCache: t.fontCache,
- builtInCMapCache: t.builtInCMapCache,
- standardFontDataCache: t.standardFontDataCache,
- globalImageCache: t.globalImageCache,
- nonBlendModesSet: t.nonBlendModesSet,
- xfaFactory: null,
- }),
- );
- this._pagePromises.set(e, n);
- }
- t.setActualNumPages(o.size);
- }
- }
- fontFallback(e, t) {
- return this.catalog.fontFallback(e, t);
- }
- async cleanup(e = !1) {
- return this.catalog ? this.catalog.cleanup(e) : (0, u.clearGlobalCaches)();
- }
- _collectFieldObjects(e, t, a) {
- const n = this.xref.fetchIfRef(t);
- if (n.has('T')) {
- const t = (0, i.stringToPDFString)(n.get('T'));
- e = '' === e ? t : `${e}.${t}`;
- }
- a.has(e) || a.set(e, []);
- a.get(e).push(
- r.AnnotationFactory.create(this.xref, t, this.pdfManager, this._localIdFactory, !0)
- .then((e) => e && e.getFieldObject())
- .catch(function (e) {
- (0, i.warn)(`_collectFieldObjects: "${e}".`);
- return null;
- }),
- );
- if (n.has('Kids')) {
- const t = n.get('Kids');
- for (const r of t) this._collectFieldObjects(e, r, a);
- }
- }
- get fieldObjects() {
- if (!this.formInfo.hasFields)
- return (0, i.shadow)(this, 'fieldObjects', Promise.resolve(null));
- const e = Object.create(null),
- t = new Map();
- for (const e of this.catalog.acroForm.get('Fields'))
- this._collectFieldObjects('', e, t);
- const a = [];
- for (const [r, i] of t)
- a.push(
- Promise.all(i).then((t) => {
- (t = t.filter((e) => !!e)).length > 0 && (e[r] = t);
- }),
- );
- return (0, i.shadow)(
- this,
- 'fieldObjects',
- Promise.all(a).then(() => e),
- );
- }
- get hasJSActions() {
- const e = this.pdfManager.ensureDoc('_parseHasJSActions');
- return (0, i.shadow)(this, 'hasJSActions', e);
- }
- async _parseHasJSActions() {
- const [e, t] = await Promise.all([
- this.pdfManager.ensureCatalog('jsActions'),
- this.pdfManager.ensureDoc('fieldObjects'),
- ]);
- return (
- !!e || (!!t && Object.values(t).some((e) => e.some((e) => null !== e.actions)))
- );
- }
- get calculationOrderIds() {
- const e = this.catalog.acroForm;
- if (!e || !e.has('CO')) return (0, i.shadow)(this, 'calculationOrderIds', null);
- const t = e.get('CO');
- if (!Array.isArray(t) || 0 === t.length)
- return (0, i.shadow)(this, 'calculationOrderIds', null);
- const a = [];
- for (const e of t) e instanceof s.Ref && a.push(e.toString());
- return 0 === a.length
- ? (0, i.shadow)(this, 'calculationOrderIds', null)
- : (0, i.shadow)(this, 'calculationOrderIds', a);
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.PopupAnnotation =
- t.MarkupAnnotation =
- t.AnnotationFactory =
- t.AnnotationBorderStyle =
- t.Annotation =
- void 0;
- t.getQuadPoints = getQuadPoints;
- var r = a(2),
- i = a(3),
- n = a(11),
- s = a(4),
- o = a(65),
- c = a(5),
- l = a(60),
- h = a(69),
- u = a(12),
- d = a(72),
- f = a(75),
- g = a(63),
- p = a(8),
- m = a(76);
- t.AnnotationFactory = class AnnotationFactory {
- static create(e, t, a, r, i) {
- return Promise.all([
- a.ensureCatalog('acroForm'),
- a.ensureCatalog('baseUrl'),
- a.ensureCatalog('attachments'),
- a.ensureDoc('xfaDatasets'),
- i ? this._getPageIndex(e, t, a) : -1,
- ]).then(([n, s, o, c, l]) => a.ensure(this, '_create', [e, t, a, r, n, o, c, i, l]));
- }
- static _create(e, t, a, n, o, c = null, l, h, u = -1) {
- const d = e.fetchIfRef(t);
- if (!(d instanceof s.Dict)) return;
- const f = t instanceof s.Ref ? t.toString() : `annot_${n.createObjId()}`;
- let g = d.get('Subtype');
- g = g instanceof s.Name ? g.name : null;
- const p = o instanceof s.Dict ? o : s.Dict.empty,
- m = {
- xref: e,
- ref: t,
- dict: d,
- subtype: g,
- id: f,
- pdfManager: a,
- acroForm: p,
- attachments: c,
- xfaDatasets: l,
- collectFields: h,
- needAppearances: !h && !0 === p.get('NeedAppearances'),
- pageIndex: u,
- isOffscreenCanvasSupported: a.evaluatorOptions.isOffscreenCanvasSupported,
- };
- switch (g) {
- case 'Link':
- return new LinkAnnotation(m);
- case 'Text':
- return new TextAnnotation(m);
- case 'Widget':
- let e = (0, i.getInheritableProperty)({ dict: d, key: 'FT' });
- e = e instanceof s.Name ? e.name : null;
- switch (e) {
- case 'Tx':
- return new TextWidgetAnnotation(m);
- case 'Btn':
- return new ButtonWidgetAnnotation(m);
- case 'Ch':
- return new ChoiceWidgetAnnotation(m);
- case 'Sig':
- return new SignatureWidgetAnnotation(m);
- }
- (0, r.warn)(
- `Unimplemented widget field type "${e}", falling back to base field type.`,
- );
- return new WidgetAnnotation(m);
- case 'Popup':
- return new PopupAnnotation(m);
- case 'FreeText':
- return new FreeTextAnnotation(m);
- case 'Line':
- return new LineAnnotation(m);
- case 'Square':
- return new SquareAnnotation(m);
- case 'Circle':
- return new CircleAnnotation(m);
- case 'PolyLine':
- return new PolylineAnnotation(m);
- case 'Polygon':
- return new PolygonAnnotation(m);
- case 'Caret':
- return new CaretAnnotation(m);
- case 'Ink':
- return new InkAnnotation(m);
- case 'Highlight':
- return new HighlightAnnotation(m);
- case 'Underline':
- return new UnderlineAnnotation(m);
- case 'Squiggly':
- return new SquigglyAnnotation(m);
- case 'StrikeOut':
- return new StrikeOutAnnotation(m);
- case 'Stamp':
- return new StampAnnotation(m);
- case 'FileAttachment':
- return new FileAttachmentAnnotation(m);
- default:
- h ||
- (g
- ? (0, r.warn)(
- `Unimplemented annotation type "${g}", falling back to base annotation.`,
- )
- : (0, r.warn)('Annotation is missing the required /Subtype.'));
- return new Annotation(m);
- }
- }
- static async _getPageIndex(e, t, a) {
- try {
- const r = await e.fetchIfRefAsync(t);
- if (!(r instanceof s.Dict)) return -1;
- const i = r.getRaw('P');
- if (!(i instanceof s.Ref)) return -1;
- return await a.ensureCatalog('getPageIndex', [i]);
- } catch (e) {
- (0, r.warn)(`_getPageIndex: "${e}".`);
- return -1;
- }
- }
- static async saveNewAnnotations(e, t, a) {
- const i = e.xref;
- let n;
- const c = [],
- l = [];
- for (const h of a)
- switch (h.annotationType) {
- case r.AnnotationEditorType.FREETEXT:
- if (!n) {
- const e = new s.Dict(i);
- e.set('BaseFont', s.Name.get('Helvetica'));
- e.set('Type', s.Name.get('Font'));
- e.set('Subtype', s.Name.get('Type1'));
- e.set('Encoding', s.Name.get('WinAnsiEncoding'));
- const t = [];
- n = i.getNewTemporaryRef();
- (0, o.writeObject)(n, e, t, null);
- c.push({ ref: n, data: t.join('') });
- }
- l.push(
- FreeTextAnnotation.createNewAnnotation(i, h, c, {
- evaluator: e,
- task: t,
- baseFontRef: n,
- }),
- );
- break;
- case r.AnnotationEditorType.INK:
- l.push(InkAnnotation.createNewAnnotation(i, h, c));
- }
- return { annotations: await Promise.all(l), dependencies: c };
- }
- static async printNewAnnotations(e, t, a) {
- if (!a) return null;
- const i = e.xref,
- { isOffscreenCanvasSupported: n } = e.options,
- s = [];
- for (const o of a)
- switch (o.annotationType) {
- case r.AnnotationEditorType.FREETEXT:
- s.push(
- FreeTextAnnotation.createNewPrintAnnotation(i, o, {
- evaluator: e,
- task: t,
- isOffscreenCanvasSupported: n,
- }),
- );
- break;
- case r.AnnotationEditorType.INK:
- s.push(
- InkAnnotation.createNewPrintAnnotation(i, o, {
- isOffscreenCanvasSupported: n,
- }),
- );
- }
- return Promise.all(s);
- }
- };
- function getRgbColor(e, t = new Uint8ClampedArray(3)) {
- if (!Array.isArray(e)) return t;
- const a = t || new Uint8ClampedArray(3);
- switch (e.length) {
- case 0:
- return null;
- case 1:
- u.ColorSpace.singletons.gray.getRgbItem(e, 0, a, 0);
- return a;
- case 3:
- u.ColorSpace.singletons.rgb.getRgbItem(e, 0, a, 0);
- return a;
- case 4:
- u.ColorSpace.singletons.cmyk.getRgbItem(e, 0, a, 0);
- return a;
- default:
- return t;
- }
- }
- function getPdfColorArray(e) {
- return Array.from(e, (e) => e / 255);
- }
- function getQuadPoints(e, t) {
- const a = e.getArray('QuadPoints');
- if (!Array.isArray(a) || 0 === a.length || a.length % 8 > 0) return null;
- const r = [];
- for (let e = 0, i = a.length / 8; e < i; e++) {
- let i = 1 / 0,
- n = -1 / 0,
- s = 1 / 0,
- o = -1 / 0;
- for (let t = 8 * e, r = 8 * e + 8; t < r; t += 2) {
- const e = a[t],
- r = a[t + 1];
- i = Math.min(e, i);
- n = Math.max(e, n);
- s = Math.min(r, s);
- o = Math.max(r, o);
- }
- if (null !== t && (i < t[0] || n > t[2] || s < t[1] || o > t[3])) return null;
- r.push([
- { x: i, y: o },
- { x: n, y: o },
- { x: i, y: s },
- { x: n, y: s },
- ]);
- }
- return r;
- }
- function getTransformMatrix(e, t, a) {
- const [i, n, s, o] = r.Util.getAxialAlignedBoundingBox(t, a);
- if (i === s || n === o) return [1, 0, 0, 1, e[0], e[1]];
- const c = (e[2] - e[0]) / (s - i),
- l = (e[3] - e[1]) / (o - n);
- return [c, 0, 0, l, e[0] - i * c, e[1] - n * l];
- }
- class Annotation {
- constructor(e) {
- const { dict: t, xref: a } = e;
- this.setTitle(t.get('T'));
- this.setContents(t.get('Contents'));
- this.setModificationDate(t.get('M'));
- this.setFlags(t.get('F'));
- this.setRectangle(t.getArray('Rect'));
- this.setColor(t.getArray('C'));
- this.setBorderStyle(t);
- this.setAppearance(t);
- this.setOptionalContent(t);
- const n = t.get('MK');
- this.setBorderAndBackgroundColors(n);
- this.setRotation(n);
- this._streams = [];
- this.appearance && this._streams.push(this.appearance);
- const o = !!(this.flags & r.AnnotationFlag.LOCKED),
- c = !!(this.flags & r.AnnotationFlag.LOCKEDCONTENTS);
- this.data = {
- annotationFlags: this.flags,
- borderStyle: this.borderStyle,
- color: this.color,
- backgroundColor: this.backgroundColor,
- borderColor: this.borderColor,
- rotation: this.rotation,
- contentsObj: this._contents,
- hasAppearance: !!this.appearance,
- id: e.id,
- modificationDate: this.modificationDate,
- rect: this.rectangle,
- subtype: e.subtype,
- hasOwnCanvas: !1,
- noRotate: !!(this.flags & r.AnnotationFlag.NOROTATE),
- noHTML: o && c,
- };
- if (e.collectFields) {
- const n = t.get('Kids');
- if (Array.isArray(n)) {
- const e = [];
- for (const t of n) t instanceof s.Ref && e.push(t.toString());
- 0 !== e.length && (this.data.kidIds = e);
- }
- this.data.actions = (0, i.collectActions)(a, t, r.AnnotationActionEventType);
- this.data.fieldName = this._constructFieldName(t);
- this.data.pageIndex = e.pageIndex;
- }
- this._isOffscreenCanvasSupported = e.isOffscreenCanvasSupported;
- this._fallbackFontDict = null;
- this._needAppearances = !1;
- }
- _hasFlag(e, t) {
- return !!(e & t);
- }
- _isViewable(e) {
- return (
- !this._hasFlag(e, r.AnnotationFlag.INVISIBLE) &&
- !this._hasFlag(e, r.AnnotationFlag.NOVIEW)
- );
- }
- _isPrintable(e) {
- return (
- this._hasFlag(e, r.AnnotationFlag.PRINT) &&
- !this._hasFlag(e, r.AnnotationFlag.INVISIBLE)
- );
- }
- mustBeViewed(e) {
- const t = e && e.get(this.data.id);
- return t && void 0 !== t.hidden
- ? !t.hidden
- : this.viewable && !this._hasFlag(this.flags, r.AnnotationFlag.HIDDEN);
- }
- mustBePrinted(e) {
- const t = e && e.get(this.data.id);
- return t && void 0 !== t.print ? t.print : this.printable;
- }
- get viewable() {
- return (
- null !== this.data.quadPoints && (0 === this.flags || this._isViewable(this.flags))
- );
- }
- get printable() {
- return (
- null !== this.data.quadPoints && 0 !== this.flags && this._isPrintable(this.flags)
- );
- }
- _parseStringHelper(e) {
- const t = 'string' == typeof e ? (0, r.stringToPDFString)(e) : '';
- return { str: t, dir: t && 'rtl' === (0, l.bidi)(t).dir ? 'rtl' : 'ltr' };
- }
- setDefaultAppearance(e) {
- const t =
- (0, i.getInheritableProperty)({ dict: e.dict, key: 'DA' }) || e.acroForm.get('DA');
- this._defaultAppearance = 'string' == typeof t ? t : '';
- this.data.defaultAppearanceData = (0, n.parseDefaultAppearance)(
- this._defaultAppearance,
- );
- }
- setTitle(e) {
- this._title = this._parseStringHelper(e);
- }
- setContents(e) {
- this._contents = this._parseStringHelper(e);
- }
- setModificationDate(e) {
- this.modificationDate = 'string' == typeof e ? e : null;
- }
- setFlags(e) {
- this.flags = Number.isInteger(e) && e > 0 ? e : 0;
- }
- hasFlag(e) {
- return this._hasFlag(this.flags, e);
- }
- setRectangle(e) {
- Array.isArray(e) && 4 === e.length
- ? (this.rectangle = r.Util.normalizeRect(e))
- : (this.rectangle = [0, 0, 0, 0]);
- }
- setColor(e) {
- this.color = getRgbColor(e);
- }
- setLineEndings(e) {
- this.lineEndings = ['None', 'None'];
- if (Array.isArray(e) && 2 === e.length)
- for (let t = 0; t < 2; t++) {
- const a = e[t];
- if (a instanceof s.Name)
- switch (a.name) {
- case 'None':
- continue;
- case 'Square':
- case 'Circle':
- case 'Diamond':
- case 'OpenArrow':
- case 'ClosedArrow':
- case 'Butt':
- case 'ROpenArrow':
- case 'RClosedArrow':
- case 'Slash':
- this.lineEndings[t] = a.name;
- continue;
- }
- (0, r.warn)(`Ignoring invalid lineEnding: ${a}`);
- }
- }
- setRotation(e) {
- this.rotation = 0;
- if (e instanceof s.Dict) {
- let t = e.get('R') || 0;
- if (Number.isInteger(t) && 0 !== t) {
- t %= 360;
- t < 0 && (t += 360);
- t % 90 == 0 && (this.rotation = t);
- }
- }
- }
- setBorderAndBackgroundColors(e) {
- if (e instanceof s.Dict) {
- this.borderColor = getRgbColor(e.getArray('BC'), null);
- this.backgroundColor = getRgbColor(e.getArray('BG'), null);
- } else this.borderColor = this.backgroundColor = null;
- }
- setBorderStyle(e) {
- this.borderStyle = new AnnotationBorderStyle();
- if (e instanceof s.Dict)
- if (e.has('BS')) {
- const t = e.get('BS'),
- a = t.get('Type');
- if (!a || (0, s.isName)(a, 'Border')) {
- this.borderStyle.setWidth(t.get('W'), this.rectangle);
- this.borderStyle.setStyle(t.get('S'));
- this.borderStyle.setDashArray(t.getArray('D'));
- }
- } else if (e.has('Border')) {
- const t = e.getArray('Border');
- if (Array.isArray(t) && t.length >= 3) {
- this.borderStyle.setHorizontalCornerRadius(t[0]);
- this.borderStyle.setVerticalCornerRadius(t[1]);
- this.borderStyle.setWidth(t[2], this.rectangle);
- 4 === t.length && this.borderStyle.setDashArray(t[3], !0);
- }
- } else this.borderStyle.setWidth(0);
- }
- setAppearance(e) {
- this.appearance = null;
- const t = e.get('AP');
- if (!(t instanceof s.Dict)) return;
- const a = t.get('N');
- if (a instanceof c.BaseStream) {
- this.appearance = a;
- return;
- }
- if (!(a instanceof s.Dict)) return;
- const r = e.get('AS');
- if (!(r instanceof s.Name && a.has(r.name))) return;
- const i = a.get(r.name);
- i instanceof c.BaseStream && (this.appearance = i);
- }
- setOptionalContent(e) {
- this.oc = null;
- const t = e.get('OC');
- t instanceof s.Name
- ? (0, r.warn)('setOptionalContent: Support for /Name-entry is not implemented.')
- : t instanceof s.Dict && (this.oc = t);
- }
- loadResources(e, t) {
- return t.dict.getAsync('Resources').then((t) => {
- if (!t) return;
- return new f.ObjectLoader(t, e, t.xref).load().then(function () {
- return t;
- });
- });
- }
- async getOperatorList(e, t, a, i, n) {
- const o = this.data;
- let c = this.appearance;
- const l = !!(this.data.hasOwnCanvas && a & r.RenderingIntentFlag.DISPLAY);
- if (!c) {
- if (!l)
- return { opList: new g.OperatorList(), separateForm: !1, separateCanvas: !1 };
- c = new p.StringStream('');
- c.dict = new s.Dict();
- }
- const h = c.dict,
- u = await this.loadResources(
- ['ExtGState', 'ColorSpace', 'Pattern', 'Shading', 'XObject', 'Font'],
- c,
- ),
- d = h.getArray('BBox') || [0, 0, 1, 1],
- f = h.getArray('Matrix') || [1, 0, 0, 1, 0, 0],
- m = getTransformMatrix(o.rect, d, f),
- b = new g.OperatorList();
- let y;
- this.oc && (y = await e.parseMarkedContentProps(this.oc, null));
- void 0 !== y && b.addOp(r.OPS.beginMarkedContentProps, ['OC', y]);
- b.addOp(r.OPS.beginAnnotation, [o.id, o.rect, m, f, l]);
- await e.getOperatorList({
- stream: c,
- task: t,
- resources: u,
- operatorList: b,
- fallbackFontDict: this._fallbackFontDict,
- });
- b.addOp(r.OPS.endAnnotation, []);
- void 0 !== y && b.addOp(r.OPS.endMarkedContent, []);
- this.reset();
- return { opList: b, separateForm: !1, separateCanvas: l };
- }
- async save(e, t, a) {
- return null;
- }
- get hasTextContent() {
- return !1;
- }
- async extractTextContent(e, t, a) {
- if (!this.appearance) return;
- const r = await this.loadResources(
- ['ExtGState', 'Font', 'Properties', 'XObject'],
- this.appearance,
- ),
- i = [],
- n = [],
- s = {
- desiredSize: Math.Infinity,
- ready: !0,
- enqueue(e, t) {
- for (const t of e.items) {
- n.push(t.str);
- if (t.hasEOL) {
- i.push(n.join(''));
- n.length = 0;
- }
- }
- },
- };
- await e.getTextContent({
- stream: this.appearance,
- task: t,
- resources: r,
- includeMarkedContent: !0,
- sink: s,
- viewBox: a,
- });
- this.reset();
- n.length && i.push(n.join(''));
- i.length > 0 && (this.data.textContent = i);
- }
- getFieldObject() {
- return this.data.kidIds
- ? {
- id: this.data.id,
- actions: this.data.actions,
- name: this.data.fieldName,
- strokeColor: this.data.borderColor,
- fillColor: this.data.backgroundColor,
- type: '',
- kidIds: this.data.kidIds,
- page: this.data.pageIndex,
- rotation: this.rotation,
- }
- : null;
- }
- reset() {
- for (const e of this._streams) e.reset();
- }
- _constructFieldName(e) {
- if (!e.has('T') && !e.has('Parent')) {
- (0, r.warn)('Unknown field name, falling back to empty field name.');
- return '';
- }
- if (!e.has('Parent')) return (0, r.stringToPDFString)(e.get('T'));
- const t = [];
- e.has('T') && t.unshift((0, r.stringToPDFString)(e.get('T')));
- let a = e;
- const i = new s.RefSet();
- e.objId && i.put(e.objId);
- for (; a.has('Parent'); ) {
- a = a.get('Parent');
- if (!(a instanceof s.Dict) || (a.objId && i.has(a.objId))) break;
- a.objId && i.put(a.objId);
- if (a.has('T')) {
- const e = (0, r.stringToPDFString)(a.get('T'));
- e.startsWith('#') || t.unshift(e);
- }
- }
- return t.join('.');
- }
- }
- t.Annotation = Annotation;
- class AnnotationBorderStyle {
- constructor() {
- this.width = 1;
- this.style = r.AnnotationBorderStyleType.SOLID;
- this.dashArray = [3];
- this.horizontalCornerRadius = 0;
- this.verticalCornerRadius = 0;
- }
- setWidth(e, t = [0, 0, 0, 0]) {
- if (e instanceof s.Name) this.width = 0;
- else if ('number' == typeof e) {
- if (e > 0) {
- const a = (t[2] - t[0]) / 2,
- i = (t[3] - t[1]) / 2;
- if (a > 0 && i > 0 && (e > a || e > i)) {
- (0, r.warn)(`AnnotationBorderStyle.setWidth - ignoring width: ${e}`);
- e = 1;
- }
- }
- this.width = e;
- }
- }
- setStyle(e) {
- if (e instanceof s.Name)
- switch (e.name) {
- case 'S':
- this.style = r.AnnotationBorderStyleType.SOLID;
- break;
- case 'D':
- this.style = r.AnnotationBorderStyleType.DASHED;
- break;
- case 'B':
- this.style = r.AnnotationBorderStyleType.BEVELED;
- break;
- case 'I':
- this.style = r.AnnotationBorderStyleType.INSET;
- break;
- case 'U':
- this.style = r.AnnotationBorderStyleType.UNDERLINE;
- }
- }
- setDashArray(e, t = !1) {
- if (Array.isArray(e) && e.length > 0) {
- let a = !0,
- r = !0;
- for (const t of e) {
- if (!(+t >= 0)) {
- a = !1;
- break;
- }
- t > 0 && (r = !1);
- }
- if (a && !r) {
- this.dashArray = e;
- t && this.setStyle(s.Name.get('D'));
- } else this.width = 0;
- } else e && (this.width = 0);
- }
- setHorizontalCornerRadius(e) {
- Number.isInteger(e) && (this.horizontalCornerRadius = e);
- }
- setVerticalCornerRadius(e) {
- Number.isInteger(e) && (this.verticalCornerRadius = e);
- }
- }
- t.AnnotationBorderStyle = AnnotationBorderStyle;
- class MarkupAnnotation extends Annotation {
- constructor(e) {
- super(e);
- const { dict: t } = e;
- if (t.has('IRT')) {
- const e = t.getRaw('IRT');
- this.data.inReplyTo = e instanceof s.Ref ? e.toString() : null;
- const a = t.get('RT');
- this.data.replyType = a instanceof s.Name ? a.name : r.AnnotationReplyType.REPLY;
- }
- if (this.data.replyType === r.AnnotationReplyType.GROUP) {
- const e = t.get('IRT');
- this.setTitle(e.get('T'));
- this.data.titleObj = this._title;
- this.setContents(e.get('Contents'));
- this.data.contentsObj = this._contents;
- if (e.has('CreationDate')) {
- this.setCreationDate(e.get('CreationDate'));
- this.data.creationDate = this.creationDate;
- } else this.data.creationDate = null;
- if (e.has('M')) {
- this.setModificationDate(e.get('M'));
- this.data.modificationDate = this.modificationDate;
- } else this.data.modificationDate = null;
- this.data.hasPopup = e.has('Popup');
- if (e.has('C')) {
- this.setColor(e.getArray('C'));
- this.data.color = this.color;
- } else this.data.color = null;
- } else {
- this.data.titleObj = this._title;
- this.setCreationDate(t.get('CreationDate'));
- this.data.creationDate = this.creationDate;
- this.data.hasPopup = t.has('Popup');
- t.has('C') || (this.data.color = null);
- }
- t.has('RC') && (this.data.richText = m.XFAFactory.getRichTextAsHtml(t.get('RC')));
- }
- setCreationDate(e) {
- this.creationDate = 'string' == typeof e ? e : null;
- }
- _setDefaultAppearance({
- xref: e,
- extra: t,
- strokeColor: a,
- fillColor: r,
- blendMode: i,
- strokeAlpha: n,
- fillAlpha: o,
- pointsCallback: c,
- }) {
- let l = Number.MAX_VALUE,
- h = Number.MAX_VALUE,
- u = Number.MIN_VALUE,
- d = Number.MIN_VALUE;
- const f = ['q'];
- t && f.push(t);
- a && f.push(`${a[0]} ${a[1]} ${a[2]} RG`);
- r && f.push(`${r[0]} ${r[1]} ${r[2]} rg`);
- let g = this.data.quadPoints;
- g ||
- (g = [
- [
- { x: this.rectangle[0], y: this.rectangle[3] },
- { x: this.rectangle[2], y: this.rectangle[3] },
- { x: this.rectangle[0], y: this.rectangle[1] },
- { x: this.rectangle[2], y: this.rectangle[1] },
- ],
- ]);
- for (const e of g) {
- const [t, a, r, i] = c(f, e);
- l = Math.min(l, t);
- u = Math.max(u, a);
- h = Math.min(h, r);
- d = Math.max(d, i);
- }
- f.push('Q');
- const m = new s.Dict(e),
- b = new s.Dict(e);
- b.set('Subtype', s.Name.get('Form'));
- const y = new p.StringStream(f.join(' '));
- y.dict = b;
- m.set('Fm0', y);
- const w = new s.Dict(e);
- i && w.set('BM', s.Name.get(i));
- 'number' == typeof n && w.set('CA', n);
- 'number' == typeof o && w.set('ca', o);
- const S = new s.Dict(e);
- S.set('GS0', w);
- const x = new s.Dict(e);
- x.set('ExtGState', S);
- x.set('XObject', m);
- const C = new s.Dict(e);
- C.set('Resources', x);
- const k = (this.data.rect = [l, h, u, d]);
- C.set('BBox', k);
- this.appearance = new p.StringStream('/GS0 gs /Fm0 Do');
- this.appearance.dict = C;
- this._streams.push(this.appearance, y);
- }
- static async createNewAnnotation(e, t, a, r) {
- const i = e.getNewTemporaryRef(),
- n = await this.createNewAppearanceStream(t, e, r),
- s = [];
- let c;
- if (n) {
- const r = e.getNewTemporaryRef();
- c = this.createNewDict(t, e, { apRef: r });
- const i = e.encrypt ? e.encrypt.createCipherTransform(r.num, r.gen) : null;
- (0, o.writeObject)(r, n, s, i);
- a.push({ ref: r, data: s.join('') });
- } else c = this.createNewDict(t, e, {});
- s.length = 0;
- const l = e.encrypt ? e.encrypt.createCipherTransform(i.num, i.gen) : null;
- (0, o.writeObject)(i, c, s, l);
- return { ref: i, data: s.join('') };
- }
- static async createNewPrintAnnotation(e, t, a) {
- const r = await this.createNewAppearanceStream(t, e, a),
- i = this.createNewDict(t, e, { ap: r });
- return new this.prototype.constructor({
- dict: i,
- xref: e,
- isOffscreenCanvasSupported: a.isOffscreenCanvasSupported,
- });
- }
- }
- t.MarkupAnnotation = MarkupAnnotation;
- class WidgetAnnotation extends Annotation {
- constructor(e) {
- super(e);
- const { dict: t, xref: a } = e,
- n = this.data;
- this.ref = e.ref;
- this._needAppearances = e.needAppearances;
- n.annotationType = r.AnnotationType.WIDGET;
- void 0 === n.fieldName && (n.fieldName = this._constructFieldName(t));
- void 0 === n.actions &&
- (n.actions = (0, i.collectActions)(a, t, r.AnnotationActionEventType));
- let o = (0, i.getInheritableProperty)({ dict: t, key: 'V', getArray: !0 });
- n.fieldValue = this._decodeFormValue(o);
- const c = (0, i.getInheritableProperty)({ dict: t, key: 'DV', getArray: !0 });
- n.defaultFieldValue = this._decodeFormValue(c);
- if (void 0 === o && e.xfaDatasets) {
- const t = this._title.str;
- if (t) {
- this._hasValueFromXFA = !0;
- n.fieldValue = o = e.xfaDatasets.getValue(t);
- }
- }
- void 0 === o && null !== n.defaultFieldValue && (n.fieldValue = n.defaultFieldValue);
- n.alternativeText = (0, r.stringToPDFString)(t.get('TU') || '');
- this.setDefaultAppearance(e);
- n.hasAppearance ||=
- this._needAppearances && void 0 !== n.fieldValue && null !== n.fieldValue;
- const l = (0, i.getInheritableProperty)({ dict: t, key: 'FT' });
- n.fieldType = l instanceof s.Name ? l.name : null;
- const h = (0, i.getInheritableProperty)({ dict: t, key: 'DR' }),
- u = e.acroForm.get('DR'),
- d = this.appearance && this.appearance.dict.get('Resources');
- this._fieldResources = {
- localResources: h,
- acroFormResources: u,
- appearanceResources: d,
- mergedResources: s.Dict.merge({ xref: a, dictArray: [h, d, u], mergeSubDicts: !0 }),
- };
- n.fieldFlags = (0, i.getInheritableProperty)({ dict: t, key: 'Ff' });
- (!Number.isInteger(n.fieldFlags) || n.fieldFlags < 0) && (n.fieldFlags = 0);
- n.readOnly = this.hasFieldFlag(r.AnnotationFieldFlag.READONLY);
- n.required = this.hasFieldFlag(r.AnnotationFieldFlag.REQUIRED);
- n.hidden = this._hasFlag(n.annotationFlags, r.AnnotationFlag.HIDDEN);
- }
- _decodeFormValue(e) {
- return Array.isArray(e)
- ? e.filter((e) => 'string' == typeof e).map((e) => (0, r.stringToPDFString)(e))
- : e instanceof s.Name
- ? (0, r.stringToPDFString)(e.name)
- : 'string' == typeof e
- ? (0, r.stringToPDFString)(e)
- : null;
- }
- hasFieldFlag(e) {
- return !!(this.data.fieldFlags & e);
- }
- getRotationMatrix(e) {
- const t = e ? e.get(this.data.id) : void 0;
- let a = t && t.rotation;
- void 0 === a && (a = this.rotation);
- if (0 === a) return r.IDENTITY_MATRIX;
- const n = this.data.rect[2] - this.data.rect[0],
- s = this.data.rect[3] - this.data.rect[1];
- return (0, i.getRotationMatrix)(a, n, s);
- }
- getBorderAndBackgroundAppearances(e) {
- const t = e ? e.get(this.data.id) : void 0;
- let a = t && t.rotation;
- void 0 === a && (a = this.rotation);
- if (!this.backgroundColor && !this.borderColor) return '';
- const r = this.data.rect[2] - this.data.rect[0],
- i = this.data.rect[3] - this.data.rect[1],
- s = 0 === a || 180 === a ? `0 0 ${r} ${i} re` : `0 0 ${i} ${r} re`;
- let o = '';
- this.backgroundColor &&
- (o = `${(0, n.getPdfColor)(this.backgroundColor, !0)} ${s} f `);
- if (this.borderColor) {
- o += `${this.borderStyle.width || 1} w ${(0, n.getPdfColor)(
- this.borderColor,
- !1,
- )} ${s} S `;
- }
- return o;
- }
- async getOperatorList(e, t, a, i, n) {
- if (
- i &&
- !(this instanceof SignatureWidgetAnnotation) &&
- !this.data.noHTML &&
- !this.data.hasOwnCanvas
- )
- return { opList: new g.OperatorList(), separateForm: !0, separateCanvas: !1 };
- if (!this._hasText) return super.getOperatorList(e, t, a, i, n);
- const s = await this._getAppearance(e, t, a, n);
- if (this.appearance && null === s) return super.getOperatorList(e, t, a, i, n);
- const o = new g.OperatorList();
- if (!this._defaultAppearance || null === s)
- return { opList: o, separateForm: !1, separateCanvas: !1 };
- const c = [
- 0,
- 0,
- this.data.rect[2] - this.data.rect[0],
- this.data.rect[3] - this.data.rect[1],
- ],
- l = getTransformMatrix(this.data.rect, c, [1, 0, 0, 1, 0, 0]);
- let h;
- this.oc && (h = await e.parseMarkedContentProps(this.oc, null));
- void 0 !== h && o.addOp(r.OPS.beginMarkedContentProps, ['OC', h]);
- o.addOp(r.OPS.beginAnnotation, [
- this.data.id,
- this.data.rect,
- l,
- this.getRotationMatrix(n),
- !1,
- ]);
- const u = new p.StringStream(s);
- await e.getOperatorList({
- stream: u,
- task: t,
- resources: this._fieldResources.mergedResources,
- operatorList: o,
- });
- o.addOp(r.OPS.endAnnotation, []);
- void 0 !== h && o.addOp(r.OPS.endMarkedContent, []);
- return { opList: o, separateForm: !1, separateCanvas: !1 };
- }
- _getMKDict(e) {
- const t = new s.Dict(null);
- e && t.set('R', e);
- this.borderColor && t.set('BC', getPdfColorArray(this.borderColor));
- this.backgroundColor && t.set('BG', getPdfColorArray(this.backgroundColor));
- return t.size > 0 ? t : null;
- }
- amendSavedDict(e, t) {}
- async save(e, t, a) {
- const n = a ? a.get(this.data.id) : void 0;
- let c = n && n.value,
- l = n && n.rotation;
- if (c === this.data.fieldValue || void 0 === c) {
- if (!this._hasValueFromXFA && void 0 === l) return null;
- c ||= this.data.fieldValue;
- }
- if (
- void 0 === l &&
- !this._hasValueFromXFA &&
- Array.isArray(c) &&
- Array.isArray(this.data.fieldValue) &&
- c.length === this.data.fieldValue.length &&
- c.every((e, t) => e === this.data.fieldValue[t])
- )
- return null;
- void 0 === l && (l = this.rotation);
- let h = null;
- if (!this._needAppearances) {
- h = await this._getAppearance(e, t, r.RenderingIntentFlag.SAVE, a);
- if (null === h) return null;
- }
- let u = !1;
- if (h && h.needAppearances) {
- u = !0;
- h = null;
- }
- const { xref: d } = e,
- f = d.fetchIfRef(this.ref);
- if (!(f instanceof s.Dict)) return null;
- const g = new s.Dict(d);
- for (const e of f.getKeys()) 'AP' !== e && g.set(e, f.getRaw(e));
- const m = { path: this.data.fieldName, value: c },
- encoder = (e) => ((0, i.isAscii)(e) ? e : (0, i.stringToUTF16String)(e, !0));
- g.set('V', Array.isArray(c) ? c.map(encoder) : encoder(c));
- this.amendSavedDict(a, g);
- const b = this._getMKDict(l);
- b && g.set('MK', b);
- const y = d.encrypt,
- w = y ? y.createCipherTransform(this.ref.num, this.ref.gen) : null,
- S = [],
- x = [{ ref: this.ref, data: '', xfa: m, needAppearances: u }];
- if (null !== h) {
- const e = d.getNewTemporaryRef(),
- t = new s.Dict(d);
- g.set('AP', t);
- t.set('N', e);
- let i = null;
- y && (i = y.createCipherTransform(e.num, e.gen));
- const n = this._getSaveFieldResources(d),
- c = new p.StringStream(h),
- l = (c.dict = new s.Dict(d));
- l.set('Subtype', s.Name.get('Form'));
- l.set('Resources', n);
- l.set('BBox', [
- 0,
- 0,
- this.data.rect[2] - this.data.rect[0],
- this.data.rect[3] - this.data.rect[1],
- ]);
- const u = this.getRotationMatrix(a);
- u !== r.IDENTITY_MATRIX && l.set('Matrix', u);
- (0, o.writeObject)(e, c, S, i);
- x.push({ ref: e, data: S.join(''), xfa: null, needAppearances: !1 });
- S.length = 0;
- }
- g.set('M', `D:${(0, r.getModificationDate)()}`);
- (0, o.writeObject)(this.ref, g, S, w);
- x[0].data = S.join('');
- return x;
- }
- async _getAppearance(e, t, a, s) {
- if (this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD)) return null;
- const o = s ? s.get(this.data.id) : void 0;
- let c, l;
- if (o) {
- c = o.formattedValue || o.value;
- l = o.rotation;
- }
- if (
- void 0 === l &&
- void 0 === c &&
- !this._needAppearances &&
- (!this._hasValueFromXFA || this.appearance)
- )
- return null;
- const h = this.getBorderAndBackgroundAppearances(s);
- if (void 0 === c) {
- c = this.data.fieldValue;
- if (!c) return `/Tx BMC q ${h}Q EMC`;
- }
- Array.isArray(c) && 1 === c.length && (c = c[0]);
- (0, r.assert)('string' == typeof c, 'Expected `value` to be a string.');
- c = c.trim();
- if (this.data.combo) {
- const e = this.data.options.find(({ exportValue: e }) => c === e);
- c = (e && e.displayValue) || c;
- }
- if ('' === c) return `/Tx BMC q ${h}Q EMC`;
- void 0 === l && (l = this.rotation);
- let u,
- d = -1;
- if (this.data.multiLine) {
- u = c.split(/\r\n?|\n/).map((e) => e.normalize('NFC'));
- d = u.length;
- } else u = [c.replace(/\r\n?|\n/, '').normalize('NFC')];
- let f = this.data.rect[3] - this.data.rect[1],
- g = this.data.rect[2] - this.data.rect[0];
- (90 !== l && 270 !== l) || ([g, f] = [f, g]);
- this._defaultAppearance ||
- (this.data.defaultAppearanceData = (0, n.parseDefaultAppearance)(
- (this._defaultAppearance = '/Helvetica 0 Tf 0 g'),
- ));
- let p,
- m,
- b,
- y = await WidgetAnnotation._getFontData(
- e,
- t,
- this.data.defaultAppearanceData,
- this._fieldResources.mergedResources,
- );
- const w = [];
- let S = !1;
- for (const e of u) {
- const t = y.encodeString(e);
- t.length > 1 && (S = !0);
- w.push(t.join(''));
- }
- if (S && a & r.RenderingIntentFlag.SAVE) return { needAppearances: !0 };
- if (S && this._isOffscreenCanvasSupported) {
- const a = this.data.comb ? 'monospace' : 'sans-serif',
- r = new n.FakeUnicodeFont(e.xref, a),
- s = r.createFontResources(u.join('')),
- o = s.getRaw('Font');
- if (this._fieldResources.mergedResources.has('Font')) {
- const e = this._fieldResources.mergedResources.get('Font');
- for (const t of o.getKeys()) e.set(t, o.getRaw(t));
- } else this._fieldResources.mergedResources.set('Font', o);
- const l = r.fontName.name;
- y = await WidgetAnnotation._getFontData(e, t, { fontName: l, fontSize: 0 }, s);
- for (let e = 0, t = w.length; e < t; e++) w[e] = (0, i.stringToUTF16String)(u[e]);
- const h = Object.assign(Object.create(null), this.data.defaultAppearanceData);
- this.data.defaultAppearanceData.fontSize = 0;
- this.data.defaultAppearanceData.fontName = l;
- [p, m, b] = this._computeFontSize(f - 2, g - 4, c, y, d);
- this.data.defaultAppearanceData = h;
- } else {
- this._isOffscreenCanvasSupported ||
- (0, r.warn)(
- '_getAppearance: OffscreenCanvas is not supported, annotation may not render correctly.',
- );
- [p, m, b] = this._computeFontSize(f - 2, g - 4, c, y, d);
- }
- let x = y.descent;
- x = isNaN(x)
- ? r.BASELINE_FACTOR * b
- : Math.max(r.BASELINE_FACTOR * b, Math.abs(x) * m);
- const C = Math.min(Math.floor((f - m) / 2), 1),
- k = this.data.textAlignment;
- if (this.data.multiLine)
- return this._getMultilineAppearance(p, w, y, m, g, f, k, 2, C, x, b, s);
- if (this.data.comb)
- return this._getCombAppearance(p, y, w[0], m, g, f, 2, C, x, b, s);
- const v = C + x;
- if (0 === k || k > 2)
- return (
- `/Tx BMC q ${h}BT ` +
- p +
- ` 1 0 0 1 ${(0, i.numberToString)(2)} ${(0, i.numberToString)(v)} Tm (${(0,
- i.escapeString)(w[0])}) Tj ET Q EMC`
- );
- return (
- `/Tx BMC q ${h}BT ` +
- p +
- ` 1 0 0 1 0 0 Tm ${this._renderText(w[0], y, m, g, k, { shift: 0 }, 2, v)} ET Q EMC`
- );
- }
- static async _getFontData(e, t, a, r) {
- const i = new g.OperatorList(),
- n = {
- font: null,
- clone() {
- return this;
- },
- },
- { fontName: o, fontSize: c } = a;
- await e.handleSetFont(r, [o && s.Name.get(o), c], null, i, t, n, null);
- return n.font;
- }
- _getTextWidth(e, t) {
- return t.charsToGlyphs(e).reduce((e, t) => e + t.width, 0) / 1e3;
- }
- _computeFontSize(e, t, a, i, s) {
- let { fontSize: o } = this.data.defaultAppearanceData,
- c = (o || 12) * r.LINE_FACTOR,
- l = Math.round(e / c);
- if (!o) {
- const roundWithTwoDigits = (e) => Math.floor(100 * e) / 100;
- if (-1 === s) {
- const n = this._getTextWidth(a, i);
- o = roundWithTwoDigits(Math.min(e / r.LINE_FACTOR, n > t ? t / n : 1 / 0));
- l = 1;
- } else {
- const n = a.split(/\r\n?|\n/),
- h = [];
- for (const e of n) {
- const t = i.encodeString(e).join(''),
- a = i.charsToGlyphs(t),
- r = i.getCharPositions(t);
- h.push({ line: t, glyphs: a, positions: r });
- }
- const isTooBig = (a) => {
- let r = 0;
- for (const n of h) {
- r += this._splitLine(null, i, a, t, n).length * a;
- if (r > e) return !0;
- }
- return !1;
- };
- l = Math.max(l, s);
- for (;;) {
- c = e / l;
- o = roundWithTwoDigits(c / r.LINE_FACTOR);
- if (!isTooBig(o)) break;
- l++;
- }
- }
- const { fontName: h, fontColor: u } = this.data.defaultAppearanceData;
- this._defaultAppearance = (0, n.createDefaultAppearance)({
- fontSize: o,
- fontName: h,
- fontColor: u,
- });
- }
- return [this._defaultAppearance, o, e / l];
- }
- _renderText(e, t, a, r, n, s, o, c) {
- let l;
- if (1 === n) {
- l = (r - this._getTextWidth(e, t) * a) / 2;
- } else if (2 === n) {
- l = r - this._getTextWidth(e, t) * a - o;
- } else l = o;
- const h = (0, i.numberToString)(l - s.shift);
- s.shift = l;
- return `${h} ${(c = (0, i.numberToString)(c))} Td (${(0, i.escapeString)(e)}) Tj`;
- }
- _getSaveFieldResources(e) {
- const {
- localResources: t,
- appearanceResources: a,
- acroFormResources: r,
- } = this._fieldResources,
- i = this.data.defaultAppearanceData && this.data.defaultAppearanceData.fontName;
- if (!i) return t || s.Dict.empty;
- for (const e of [t, a])
- if (e instanceof s.Dict) {
- const t = e.get('Font');
- if (t instanceof s.Dict && t.has(i)) return e;
- }
- if (r instanceof s.Dict) {
- const a = r.get('Font');
- if (a instanceof s.Dict && a.has(i)) {
- const r = new s.Dict(e);
- r.set(i, a.getRaw(i));
- const n = new s.Dict(e);
- n.set('Font', r);
- return s.Dict.merge({ xref: e, dictArray: [n, t], mergeSubDicts: !0 });
- }
- }
- return t || s.Dict.empty;
- }
- getFieldObject() {
- return null;
- }
- }
- class TextWidgetAnnotation extends WidgetAnnotation {
- constructor(e) {
- super(e);
- this.data.hasOwnCanvas = this.data.readOnly && !this.data.noHTML;
- this._hasText = !0;
- const t = e.dict;
- 'string' != typeof this.data.fieldValue && (this.data.fieldValue = '');
- let a = (0, i.getInheritableProperty)({ dict: t, key: 'Q' });
- (!Number.isInteger(a) || a < 0 || a > 2) && (a = null);
- this.data.textAlignment = a;
- let n = (0, i.getInheritableProperty)({ dict: t, key: 'MaxLen' });
- (!Number.isInteger(n) || n < 0) && (n = 0);
- this.data.maxLen = n;
- this.data.multiLine = this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE);
- this.data.comb =
- this.hasFieldFlag(r.AnnotationFieldFlag.COMB) &&
- !this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE) &&
- !this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD) &&
- !this.hasFieldFlag(r.AnnotationFieldFlag.FILESELECT) &&
- 0 !== this.data.maxLen;
- this.data.doNotScroll = this.hasFieldFlag(r.AnnotationFieldFlag.DONOTSCROLL);
- }
- _getCombAppearance(e, t, a, r, n, s, o, c, l, h, u) {
- const d = n / this.data.maxLen,
- f = this.getBorderAndBackgroundAppearances(u),
- g = [],
- p = t.getCharPositions(a);
- for (const [e, t] of p) g.push(`(${(0, i.escapeString)(a.substring(e, t))}) Tj`);
- const m = g.join(` ${(0, i.numberToString)(d)} 0 Td `);
- return (
- `/Tx BMC q ${f}BT ` +
- e +
- ` 1 0 0 1 ${(0, i.numberToString)(o)} ${(0, i.numberToString)(
- c + l,
- )} Tm ${m} ET Q EMC`
- );
- }
- _getMultilineAppearance(e, t, a, r, n, s, o, c, l, h, u, d) {
- const f = [],
- g = n - 2 * c,
- p = { shift: 0 };
- for (let e = 0, i = t.length; e < i; e++) {
- const i = t[e],
- s = this._splitLine(i, a, r, g);
- for (let t = 0, i = s.length; t < i; t++) {
- const i = s[t],
- d = 0 === e && 0 === t ? -l - (u - h) : -u;
- f.push(this._renderText(i, a, r, n, o, p, c, d));
- }
- }
- const m = this.getBorderAndBackgroundAppearances(d),
- b = f.join('\n');
- return (
- `/Tx BMC q ${m}BT ` + e + ` 1 0 0 1 0 ${(0, i.numberToString)(s)} Tm ${b} ET Q EMC`
- );
- }
- _splitLine(e, t, a, r, i = {}) {
- e = i.line || e;
- const n = i.glyphs || t.charsToGlyphs(e);
- if (n.length <= 1) return [e];
- const s = i.positions || t.getCharPositions(e),
- o = a / 1e3,
- c = [];
- let l = -1,
- h = -1,
- u = -1,
- d = 0,
- f = 0;
- for (let t = 0, a = n.length; t < a; t++) {
- const [a, i] = s[t],
- g = n[t],
- p = g.width * o;
- if (' ' === g.unicode)
- if (f + p > r) {
- c.push(e.substring(d, a));
- d = a;
- f = p;
- l = -1;
- u = -1;
- } else {
- f += p;
- l = a;
- h = i;
- u = t;
- }
- else if (f + p > r)
- if (-1 !== l) {
- c.push(e.substring(d, h));
- d = h;
- t = u + 1;
- l = -1;
- f = 0;
- } else {
- c.push(e.substring(d, a));
- d = a;
- f = p;
- }
- else f += p;
- }
- d < e.length && c.push(e.substring(d, e.length));
- return c;
- }
- getFieldObject() {
- return {
- id: this.data.id,
- value: this.data.fieldValue,
- defaultValue: this.data.defaultFieldValue || '',
- multiline: this.data.multiLine,
- password: this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD),
- charLimit: this.data.maxLen,
- comb: this.data.comb,
- editable: !this.data.readOnly,
- hidden: this.data.hidden,
- name: this.data.fieldName,
- rect: this.data.rect,
- actions: this.data.actions,
- page: this.data.pageIndex,
- strokeColor: this.data.borderColor,
- fillColor: this.data.backgroundColor,
- rotation: this.rotation,
- type: 'text',
- };
- }
- }
- class ButtonWidgetAnnotation extends WidgetAnnotation {
- constructor(e) {
- super(e);
- this.checkedAppearance = null;
- this.uncheckedAppearance = null;
- this.data.checkBox =
- !this.hasFieldFlag(r.AnnotationFieldFlag.RADIO) &&
- !this.hasFieldFlag(r.AnnotationFieldFlag.PUSHBUTTON);
- this.data.radioButton =
- this.hasFieldFlag(r.AnnotationFieldFlag.RADIO) &&
- !this.hasFieldFlag(r.AnnotationFieldFlag.PUSHBUTTON);
- this.data.pushButton = this.hasFieldFlag(r.AnnotationFieldFlag.PUSHBUTTON);
- this.data.isTooltipOnly = !1;
- if (this.data.checkBox) this._processCheckBox(e);
- else if (this.data.radioButton) this._processRadioButton(e);
- else if (this.data.pushButton) {
- this.data.hasOwnCanvas = !0;
- this._processPushButton(e);
- } else (0, r.warn)('Invalid field flags for button widget annotation');
- }
- async getOperatorList(e, t, a, i, n) {
- if (this.data.pushButton) return super.getOperatorList(e, t, a, !1, n);
- let s = null,
- o = null;
- if (n) {
- const e = n.get(this.data.id);
- s = e ? e.value : null;
- o = e ? e.rotation : null;
- }
- if (null === s && this.appearance) return super.getOperatorList(e, t, a, i, n);
- null == s &&
- (s = this.data.checkBox
- ? this.data.fieldValue === this.data.exportValue
- : this.data.fieldValue === this.data.buttonValue);
- const c = s ? this.checkedAppearance : this.uncheckedAppearance;
- if (c) {
- const s = this.appearance,
- l = c.dict.getArray('Matrix') || r.IDENTITY_MATRIX;
- o && c.dict.set('Matrix', this.getRotationMatrix(n));
- this.appearance = c;
- const h = super.getOperatorList(e, t, a, i, n);
- this.appearance = s;
- c.dict.set('Matrix', l);
- return h;
- }
- return { opList: new g.OperatorList(), separateForm: !1, separateCanvas: !1 };
- }
- async save(e, t, a) {
- return this.data.checkBox
- ? this._saveCheckbox(e, t, a)
- : this.data.radioButton
- ? this._saveRadioButton(e, t, a)
- : null;
- }
- async _saveCheckbox(e, t, a) {
- if (!a) return null;
- const i = a.get(this.data.id);
- let n = i && i.rotation,
- c = i && i.value;
- if (void 0 === n) {
- if (void 0 === c) return null;
- if ((this.data.fieldValue === this.data.exportValue) === c) return null;
- }
- const l = e.xref.fetchIfRef(this.ref);
- if (!(l instanceof s.Dict)) return null;
- void 0 === n && (n = this.rotation);
- void 0 === c && (c = this.data.fieldValue === this.data.exportValue);
- const h = { path: this.data.fieldName, value: c ? this.data.exportValue : '' },
- u = s.Name.get(c ? this.data.exportValue : 'Off');
- l.set('V', u);
- l.set('AS', u);
- l.set('M', `D:${(0, r.getModificationDate)()}`);
- const d = this._getMKDict(n);
- d && l.set('MK', d);
- const f = e.xref.encrypt;
- let g = null;
- f && (g = f.createCipherTransform(this.ref.num, this.ref.gen));
- const p = [`${this.ref.num} ${this.ref.gen} obj\n`];
- (0, o.writeDict)(l, p, g);
- p.push('\nendobj\n');
- return [{ ref: this.ref, data: p.join(''), xfa: h }];
- }
- async _saveRadioButton(e, t, a) {
- if (!a) return null;
- const i = a.get(this.data.id);
- let n = i && i.rotation,
- c = i && i.value;
- if (void 0 === n) {
- if (void 0 === c) return null;
- if ((this.data.fieldValue === this.data.buttonValue) === c) return null;
- }
- const l = e.xref.fetchIfRef(this.ref);
- if (!(l instanceof s.Dict)) return null;
- void 0 === c && (c = this.data.fieldValue === this.data.buttonValue);
- void 0 === n && (n = this.rotation);
- const h = { path: this.data.fieldName, value: c ? this.data.buttonValue : '' },
- u = s.Name.get(c ? this.data.buttonValue : 'Off');
- let d = null;
- const f = e.xref.encrypt;
- if (c)
- if (this.parent instanceof s.Ref) {
- const t = e.xref.fetch(this.parent);
- let a = null;
- f && (a = f.createCipherTransform(this.parent.num, this.parent.gen));
- t.set('V', u);
- d = [`${this.parent.num} ${this.parent.gen} obj\n`];
- (0, o.writeDict)(t, d, a);
- d.push('\nendobj\n');
- } else this.parent instanceof s.Dict && this.parent.set('V', u);
- l.set('AS', u);
- l.set('M', `D:${(0, r.getModificationDate)()}`);
- const g = this._getMKDict(n);
- g && l.set('MK', g);
- let p = null;
- f && (p = f.createCipherTransform(this.ref.num, this.ref.gen));
- const m = [`${this.ref.num} ${this.ref.gen} obj\n`];
- (0, o.writeDict)(l, m, p);
- m.push('\nendobj\n');
- const b = [{ ref: this.ref, data: m.join(''), xfa: h }];
- null !== d && b.push({ ref: this.parent, data: d.join(''), xfa: null });
- return b;
- }
- _getDefaultCheckedAppearance(e, t) {
- const a = this.data.rect[2] - this.data.rect[0],
- n = this.data.rect[3] - this.data.rect[1],
- o = [0, 0, a, n],
- c = 0.8 * Math.min(a, n);
- let l, h;
- if ('check' === t) {
- l = { width: 0.755 * c, height: 0.705 * c };
- h = '3';
- } else if ('disc' === t) {
- l = { width: 0.791 * c, height: 0.705 * c };
- h = 'l';
- } else (0, r.unreachable)(`_getDefaultCheckedAppearance - unsupported type: ${t}`);
- const u = `q BT /PdfJsZaDb ${c} Tf 0 g ${(0, i.numberToString)(
- (a - l.width) / 2,
- )} ${(0, i.numberToString)((n - l.height) / 2)} Td (${h}) Tj ET Q`,
- d = new s.Dict(e.xref);
- d.set('FormType', 1);
- d.set('Subtype', s.Name.get('Form'));
- d.set('Type', s.Name.get('XObject'));
- d.set('BBox', o);
- d.set('Matrix', [1, 0, 0, 1, 0, 0]);
- d.set('Length', u.length);
- const f = new s.Dict(e.xref),
- g = new s.Dict(e.xref);
- g.set('PdfJsZaDb', this.fallbackFontDict);
- f.set('Font', g);
- d.set('Resources', f);
- this.checkedAppearance = new p.StringStream(u);
- this.checkedAppearance.dict = d;
- this._streams.push(this.checkedAppearance);
- }
- _processCheckBox(e) {
- const t = e.dict.get('AP');
- if (!(t instanceof s.Dict)) return;
- const a = t.get('N');
- if (!(a instanceof s.Dict)) return;
- const r = this._decodeFormValue(e.dict.get('AS'));
- 'string' == typeof r && (this.data.fieldValue = r);
- const i =
- null !== this.data.fieldValue && 'Off' !== this.data.fieldValue
- ? this.data.fieldValue
- : 'Yes',
- n = a.getKeys();
- if (0 === n.length) n.push('Off', i);
- else if (1 === n.length) 'Off' === n[0] ? n.push(i) : n.unshift('Off');
- else if (n.includes(i)) {
- n.length = 0;
- n.push('Off', i);
- } else {
- const e = n.find((e) => 'Off' !== e);
- n.length = 0;
- n.push('Off', e);
- }
- n.includes(this.data.fieldValue) || (this.data.fieldValue = 'Off');
- this.data.exportValue = n[1];
- const o = a.get(this.data.exportValue);
- this.checkedAppearance = o instanceof c.BaseStream ? o : null;
- const l = a.get('Off');
- this.uncheckedAppearance = l instanceof c.BaseStream ? l : null;
- this.checkedAppearance
- ? this._streams.push(this.checkedAppearance)
- : this._getDefaultCheckedAppearance(e, 'check');
- this.uncheckedAppearance && this._streams.push(this.uncheckedAppearance);
- this._fallbackFontDict = this.fallbackFontDict;
- }
- _processRadioButton(e) {
- this.data.fieldValue = this.data.buttonValue = null;
- const t = e.dict.get('Parent');
- if (t instanceof s.Dict) {
- this.parent = e.dict.getRaw('Parent');
- const a = t.get('V');
- a instanceof s.Name && (this.data.fieldValue = this._decodeFormValue(a));
- }
- const a = e.dict.get('AP');
- if (!(a instanceof s.Dict)) return;
- const r = a.get('N');
- if (!(r instanceof s.Dict)) return;
- for (const e of r.getKeys())
- if ('Off' !== e) {
- this.data.buttonValue = this._decodeFormValue(e);
- break;
- }
- const i = r.get(this.data.buttonValue);
- this.checkedAppearance = i instanceof c.BaseStream ? i : null;
- const n = r.get('Off');
- this.uncheckedAppearance = n instanceof c.BaseStream ? n : null;
- this.checkedAppearance
- ? this._streams.push(this.checkedAppearance)
- : this._getDefaultCheckedAppearance(e, 'disc');
- this.uncheckedAppearance && this._streams.push(this.uncheckedAppearance);
- this._fallbackFontDict = this.fallbackFontDict;
- }
- _processPushButton(e) {
- if (e.dict.has('A') || e.dict.has('AA') || this.data.alternativeText) {
- this.data.isTooltipOnly = !e.dict.has('A') && !e.dict.has('AA');
- h.Catalog.parseDestDictionary({
- destDict: e.dict,
- resultObj: this.data,
- docBaseUrl: e.pdfManager.docBaseUrl,
- docAttachments: e.attachments,
- });
- } else (0, r.warn)('Push buttons without action dictionaries are not supported');
- }
- getFieldObject() {
- let e,
- t = 'button';
- if (this.data.checkBox) {
- t = 'checkbox';
- e = this.data.exportValue;
- } else if (this.data.radioButton) {
- t = 'radiobutton';
- e = this.data.buttonValue;
- }
- return {
- id: this.data.id,
- value: this.data.fieldValue || 'Off',
- defaultValue: this.data.defaultFieldValue,
- exportValues: e,
- editable: !this.data.readOnly,
- name: this.data.fieldName,
- rect: this.data.rect,
- hidden: this.data.hidden,
- actions: this.data.actions,
- page: this.data.pageIndex,
- strokeColor: this.data.borderColor,
- fillColor: this.data.backgroundColor,
- rotation: this.rotation,
- type: t,
- };
- }
- get fallbackFontDict() {
- const e = new s.Dict();
- e.set('BaseFont', s.Name.get('ZapfDingbats'));
- e.set('Type', s.Name.get('FallbackType'));
- e.set('Subtype', s.Name.get('FallbackType'));
- e.set('Encoding', s.Name.get('ZapfDingbatsEncoding'));
- return (0, r.shadow)(this, 'fallbackFontDict', e);
- }
- }
- class ChoiceWidgetAnnotation extends WidgetAnnotation {
- constructor(e) {
- super(e);
- const { dict: t, xref: a } = e;
- this.indices = t.getArray('I');
- this.hasIndices = Array.isArray(this.indices) && this.indices.length > 0;
- this.data.options = [];
- const n = (0, i.getInheritableProperty)({ dict: t, key: 'Opt' });
- if (Array.isArray(n))
- for (let e = 0, t = n.length; e < t; e++) {
- const t = a.fetchIfRef(n[e]),
- r = Array.isArray(t);
- this.data.options[e] = {
- exportValue: this._decodeFormValue(r ? a.fetchIfRef(t[0]) : t),
- displayValue: this._decodeFormValue(r ? a.fetchIfRef(t[1]) : t),
- };
- }
- if (this.hasIndices) {
- this.data.fieldValue = [];
- const e = this.data.options.length;
- for (const t of this.indices)
- Number.isInteger(t) &&
- t >= 0 &&
- t < e &&
- this.data.fieldValue.push(this.data.options[t].exportValue);
- } else
- 'string' == typeof this.data.fieldValue
- ? (this.data.fieldValue = [this.data.fieldValue])
- : this.data.fieldValue || (this.data.fieldValue = []);
- this.data.combo = this.hasFieldFlag(r.AnnotationFieldFlag.COMBO);
- this.data.multiSelect = this.hasFieldFlag(r.AnnotationFieldFlag.MULTISELECT);
- this._hasText = !0;
- }
- getFieldObject() {
- const e = this.data.combo ? 'combobox' : 'listbox',
- t = this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null;
- return {
- id: this.data.id,
- value: t,
- defaultValue: this.data.defaultFieldValue,
- editable: !this.data.readOnly,
- name: this.data.fieldName,
- rect: this.data.rect,
- numItems: this.data.fieldValue.length,
- multipleSelection: this.data.multiSelect,
- hidden: this.data.hidden,
- actions: this.data.actions,
- items: this.data.options,
- page: this.data.pageIndex,
- strokeColor: this.data.borderColor,
- fillColor: this.data.backgroundColor,
- rotation: this.rotation,
- type: e,
- };
- }
- amendSavedDict(e, t) {
- if (!this.hasIndices) return;
- const a = e ? e.get(this.data.id) : void 0;
- let r = a && a.value;
- Array.isArray(r) || (r = [r]);
- const i = [],
- { options: n } = this.data;
- for (let e = 0, t = 0, a = n.length; e < a; e++)
- if (n[e].exportValue === r[t]) {
- i.push(e);
- t += 1;
- }
- t.set('I', i);
- }
- async _getAppearance(e, t, a, i) {
- if (this.data.combo) return super._getAppearance(e, t, a, i);
- let s, o;
- const c = i ? i.get(this.data.id) : void 0;
- if (c) {
- o = c.rotation;
- s = c.value;
- }
- if (void 0 === o && void 0 === s && !this._needAppearances) return null;
- void 0 === s ? (s = this.data.fieldValue) : Array.isArray(s) || (s = [s]);
- let l = this.data.rect[3] - this.data.rect[1],
- h = this.data.rect[2] - this.data.rect[0];
- (90 !== o && 270 !== o) || ([h, l] = [l, h]);
- const u = this.data.options.length,
- d = [];
- for (let e = 0; e < u; e++) {
- const { exportValue: t } = this.data.options[e];
- s.includes(t) && d.push(e);
- }
- this._defaultAppearance ||
- (this.data.defaultAppearanceData = (0, n.parseDefaultAppearance)(
- (this._defaultAppearance = '/Helvetica 0 Tf 0 g'),
- ));
- const f = await WidgetAnnotation._getFontData(
- e,
- t,
- this.data.defaultAppearanceData,
- this._fieldResources.mergedResources,
- );
- let g,
- { fontSize: p } = this.data.defaultAppearanceData;
- if (p) g = this._defaultAppearance;
- else {
- const e = (l - 1) / u;
- let t,
- a = -1;
- for (const { displayValue: e } of this.data.options) {
- const r = this._getTextWidth(e, f);
- if (r > a) {
- a = r;
- t = e;
- }
- }
- [g, p] = this._computeFontSize(e, h - 4, t, f, -1);
- }
- const m = p * r.LINE_FACTOR,
- b = (m - p) / 2,
- y = Math.floor(l / m);
- let w;
- if (1 === d.length) {
- const e = d[0];
- w = e - (e % y);
- } else w = d.length ? d[0] : 0;
- const S = Math.min(w + y + 1, u),
- x = ['/Tx BMC q', `1 1 ${h} ${l} re W n`];
- if (d.length) {
- x.push('0.600006 0.756866 0.854904 rg');
- for (const e of d)
- w <= e && e < S && x.push(`1 ${l - (e - w + 1) * m} ${h} ${m} re f`);
- }
- x.push('BT', g, `1 0 0 1 0 ${l} Tm`);
- const C = { shift: 0 };
- for (let e = w; e < S; e++) {
- const { displayValue: t } = this.data.options[e],
- a = e === w ? b : 0;
- x.push(this._renderText(t, f, p, h, 0, C, 2, -m + a));
- }
- x.push('ET Q EMC');
- return x.join('\n');
- }
- }
- class SignatureWidgetAnnotation extends WidgetAnnotation {
- constructor(e) {
- super(e);
- this.data.fieldValue = null;
- this.data.hasOwnCanvas = this.data.noRotate;
- }
- getFieldObject() {
- return {
- id: this.data.id,
- value: null,
- page: this.data.pageIndex,
- type: 'signature',
- };
- }
- }
- class TextAnnotation extends MarkupAnnotation {
- constructor(e) {
- super(e);
- this.data.noRotate = !0;
- this.data.hasOwnCanvas = this.data.noRotate;
- const { dict: t } = e;
- this.data.annotationType = r.AnnotationType.TEXT;
- if (this.data.hasAppearance) this.data.name = 'NoIcon';
- else {
- this.data.rect[1] = this.data.rect[3] - 22;
- this.data.rect[2] = this.data.rect[0] + 22;
- this.data.name = t.has('Name') ? t.get('Name').name : 'Note';
- }
- if (t.has('State')) {
- this.data.state = t.get('State') || null;
- this.data.stateModel = t.get('StateModel') || null;
- } else {
- this.data.state = null;
- this.data.stateModel = null;
- }
- }
- }
- class LinkAnnotation extends Annotation {
- constructor(e) {
- super(e);
- this.data.annotationType = r.AnnotationType.LINK;
- const t = getQuadPoints(e.dict, this.rectangle);
- t && (this.data.quadPoints = t);
- this.data.borderColor ||= this.data.color;
- h.Catalog.parseDestDictionary({
- destDict: e.dict,
- resultObj: this.data,
- docBaseUrl: e.pdfManager.docBaseUrl,
- docAttachments: e.attachments,
- });
- }
- }
- class PopupAnnotation extends Annotation {
- constructor(e) {
- super(e);
- const { dict: t } = e;
- this.data.annotationType = r.AnnotationType.POPUP;
- let a = t.get('Parent');
- if (!a) {
- (0, r.warn)('Popup annotation has a missing or invalid parent annotation.');
- return;
- }
- const i = a.get('Subtype');
- this.data.parentType = i instanceof s.Name ? i.name : null;
- const n = t.getRaw('Parent');
- this.data.parentId = n instanceof s.Ref ? n.toString() : null;
- const o = a.getArray('Rect');
- Array.isArray(o) && 4 === o.length
- ? (this.data.parentRect = r.Util.normalizeRect(o))
- : (this.data.parentRect = [0, 0, 0, 0]);
- const c = a.get('RT');
- (0, s.isName)(c, r.AnnotationReplyType.GROUP) && (a = a.get('IRT'));
- if (a.has('M')) {
- this.setModificationDate(a.get('M'));
- this.data.modificationDate = this.modificationDate;
- } else this.data.modificationDate = null;
- if (a.has('C')) {
- this.setColor(a.getArray('C'));
- this.data.color = this.color;
- } else this.data.color = null;
- if (!this.viewable) {
- const e = a.get('F');
- this._isViewable(e) && this.setFlags(e);
- }
- this.setTitle(a.get('T'));
- this.data.titleObj = this._title;
- this.setContents(a.get('Contents'));
- this.data.contentsObj = this._contents;
- a.has('RC') && (this.data.richText = m.XFAFactory.getRichTextAsHtml(a.get('RC')));
- }
- }
- t.PopupAnnotation = PopupAnnotation;
- class FreeTextAnnotation extends MarkupAnnotation {
- constructor(e) {
- super(e);
- this.data.hasOwnCanvas = this.data.noRotate;
- const { xref: t } = e;
- this.data.annotationType = r.AnnotationType.FREETEXT;
- this.setDefaultAppearance(e);
- if (!this.appearance && this._isOffscreenCanvasSupported) {
- const a = e.dict.get('CA'),
- r = new n.FakeUnicodeFont(t, 'sans-serif'),
- i = this.data.defaultAppearanceData;
- this.appearance = r.createAppearance(
- this._contents.str,
- this.rectangle,
- this.rotation,
- i.fontSize || 10,
- i.fontColor,
- a,
- );
- this._streams.push(this.appearance, n.FakeUnicodeFont.toUnicodeStream);
- } else
- this._isOffscreenCanvasSupported ||
- (0, r.warn)(
- 'FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly.',
- );
- }
- get hasTextContent() {
- return !!this.appearance;
- }
- static createNewDict(e, t, { apRef: a, ap: o }) {
- const { color: c, fontSize: l, rect: h, rotation: u, user: d, value: f } = e,
- g = new s.Dict(t);
- g.set('Type', s.Name.get('Annot'));
- g.set('Subtype', s.Name.get('FreeText'));
- g.set('CreationDate', `D:${(0, r.getModificationDate)()}`);
- g.set('Rect', h);
- const p = `/Helv ${l} Tf ${(0, n.getPdfColor)(c, !0)}`;
- g.set('DA', p);
- g.set('Contents', (0, i.isAscii)(f) ? f : (0, i.stringToUTF16String)(f, !0));
- g.set('F', 4);
- g.set('Border', [0, 0, 0]);
- g.set('Rotate', u);
- d && g.set('T', (0, i.isAscii)(d) ? d : (0, i.stringToUTF16String)(d, !0));
- if (a || o) {
- const e = new s.Dict(t);
- g.set('AP', e);
- a ? e.set('N', a) : e.set('N', o);
- }
- return g;
- }
- static async createNewAppearanceStream(e, t, a) {
- const { baseFontRef: o, evaluator: c, task: l } = a,
- { color: h, fontSize: u, rect: d, rotation: f, value: g } = e,
- m = new s.Dict(t),
- b = new s.Dict(t);
- if (o) b.set('Helv', o);
- else {
- const e = new s.Dict(t);
- e.set('BaseFont', s.Name.get('Helvetica'));
- e.set('Type', s.Name.get('Font'));
- e.set('Subtype', s.Name.get('Type1'));
- e.set('Encoding', s.Name.get('WinAnsiEncoding'));
- b.set('Helv', e);
- }
- m.set('Font', b);
- const y = await WidgetAnnotation._getFontData(
- c,
- l,
- { fontName: 'Helvetica', fontSize: u },
- m,
- ),
- [w, S, x, C] = d;
- let k = x - w,
- v = C - S;
- f % 180 != 0 && ([k, v] = [v, k]);
- const F = g.split('\n'),
- O = u / 1e3;
- let T = -1 / 0;
- const M = [];
- for (let e of F) {
- const t = y.encodeString(e);
- if (t.length > 1) return null;
- e = t.join('');
- M.push(e);
- let a = 0;
- const r = y.charsToGlyphs(e);
- for (const e of r) a += e.width * O;
- T = Math.max(T, a);
- }
- let E = 1;
- T > k && (E = k / T);
- let D = 1;
- const N = r.LINE_FACTOR * u,
- R = r.LINE_DESCENT_FACTOR * u,
- L = N * F.length;
- L > v && (D = v / L);
- const _ = u * Math.min(E, D),
- $ = [
- 'q',
- `0 0 ${(0, i.numberToString)(k)} ${(0, i.numberToString)(v)} re W n`,
- 'BT',
- `1 0 0 1 0 ${(0, i.numberToString)(v + R)} Tm 0 Tc ${(0, n.getPdfColor)(h, !0)}`,
- `/Helv ${(0, i.numberToString)(_)} Tf`,
- ],
- j = (0, i.numberToString)(N);
- for (const e of M) $.push(`0 -${j} Td (${(0, i.escapeString)(e)}) Tj`);
- $.push('ET', 'Q');
- const U = $.join('\n'),
- X = new s.Dict(t);
- X.set('FormType', 1);
- X.set('Subtype', s.Name.get('Form'));
- X.set('Type', s.Name.get('XObject'));
- X.set('BBox', [0, 0, k, v]);
- X.set('Resources', m);
- if (f) {
- const e = (0, i.getRotationMatrix)(f, k, v);
- X.set('Matrix', e);
- }
- const H = new p.StringStream(U);
- H.dict = X;
- return H;
- }
- }
- class LineAnnotation extends MarkupAnnotation {
- constructor(e) {
- super(e);
- const { dict: t, xref: a } = e;
- this.data.annotationType = r.AnnotationType.LINE;
- this.data.hasOwnCanvas = this.data.noRotate;
- const i = t.getArray('L');
- this.data.lineCoordinates = r.Util.normalizeRect(i);
- this.setLineEndings(t.getArray('LE'));
- this.data.lineEndings = this.lineEndings;
- if (!this.appearance) {
- const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0],
- n = t.get('CA'),
- s = getRgbColor(t.getArray('IC'), null),
- o = s ? getPdfColorArray(s) : null,
- c = o ? n : null,
- l = this.borderStyle.width || 1,
- h = 2 * l,
- u = [
- this.data.lineCoordinates[0] - h,
- this.data.lineCoordinates[1] - h,
- this.data.lineCoordinates[2] + h,
- this.data.lineCoordinates[3] + h,
- ];
- r.Util.intersect(this.rectangle, u) || (this.rectangle = u);
- this._setDefaultAppearance({
- xref: a,
- extra: `${l} w`,
- strokeColor: e,
- fillColor: o,
- strokeAlpha: n,
- fillAlpha: c,
- pointsCallback: (e, t) => {
- e.push(`${i[0]} ${i[1]} m`, `${i[2]} ${i[3]} l`, 'S');
- return [t[0].x - l, t[1].x + l, t[3].y - l, t[1].y + l];
- },
- });
- }
- }
- }
- class SquareAnnotation extends MarkupAnnotation {
- constructor(e) {
- super(e);
- const { dict: t, xref: a } = e;
- this.data.annotationType = r.AnnotationType.SQUARE;
- this.data.hasOwnCanvas = this.data.noRotate;
- if (!this.appearance) {
- const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0],
- r = t.get('CA'),
- i = getRgbColor(t.getArray('IC'), null),
- n = i ? getPdfColorArray(i) : null,
- s = n ? r : null;
- if (0 === this.borderStyle.width && !n) return;
- this._setDefaultAppearance({
- xref: a,
- extra: `${this.borderStyle.width} w`,
- strokeColor: e,
- fillColor: n,
- strokeAlpha: r,
- fillAlpha: s,
- pointsCallback: (e, t) => {
- const a = t[2].x + this.borderStyle.width / 2,
- r = t[2].y + this.borderStyle.width / 2,
- i = t[3].x - t[2].x - this.borderStyle.width,
- s = t[1].y - t[3].y - this.borderStyle.width;
- e.push(`${a} ${r} ${i} ${s} re`);
- n ? e.push('B') : e.push('S');
- return [t[0].x, t[1].x, t[3].y, t[1].y];
- },
- });
- }
- }
- }
- class CircleAnnotation extends MarkupAnnotation {
- constructor(e) {
- super(e);
- const { dict: t, xref: a } = e;
- this.data.annotationType = r.AnnotationType.CIRCLE;
- if (!this.appearance) {
- const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0],
- r = t.get('CA'),
- i = getRgbColor(t.getArray('IC'), null),
- n = i ? getPdfColorArray(i) : null,
- s = n ? r : null;
- if (0 === this.borderStyle.width && !n) return;
- const o = (4 / 3) * Math.tan(Math.PI / 8);
- this._setDefaultAppearance({
- xref: a,
- extra: `${this.borderStyle.width} w`,
- strokeColor: e,
- fillColor: n,
- strokeAlpha: r,
- fillAlpha: s,
- pointsCallback: (e, t) => {
- const a = t[0].x + this.borderStyle.width / 2,
- r = t[0].y - this.borderStyle.width / 2,
- i = t[3].x - this.borderStyle.width / 2,
- s = t[3].y + this.borderStyle.width / 2,
- c = a + (i - a) / 2,
- l = r + (s - r) / 2,
- h = ((i - a) / 2) * o,
- u = ((s - r) / 2) * o;
- e.push(
- `${c} ${s} m`,
- `${c + h} ${s} ${i} ${l + u} ${i} ${l} c`,
- `${i} ${l - u} ${c + h} ${r} ${c} ${r} c`,
- `${c - h} ${r} ${a} ${l - u} ${a} ${l} c`,
- `${a} ${l + u} ${c - h} ${s} ${c} ${s} c`,
- 'h',
- );
- n ? e.push('B') : e.push('S');
- return [t[0].x, t[1].x, t[3].y, t[1].y];
- },
- });
- }
- }
- }
- class PolylineAnnotation extends MarkupAnnotation {
- constructor(e) {
- super(e);
- const { dict: t, xref: a } = e;
- this.data.annotationType = r.AnnotationType.POLYLINE;
- this.data.hasOwnCanvas = this.data.noRotate;
- this.data.vertices = [];
- if (!(this instanceof PolygonAnnotation)) {
- this.setLineEndings(t.getArray('LE'));
- this.data.lineEndings = this.lineEndings;
- }
- const i = t.getArray('Vertices');
- if (Array.isArray(i)) {
- for (let e = 0, t = i.length; e < t; e += 2)
- this.data.vertices.push({ x: i[e], y: i[e + 1] });
- if (!this.appearance) {
- const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0],
- i = t.get('CA'),
- n = this.borderStyle.width || 1,
- s = 2 * n,
- o = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
- for (const e of this.data.vertices) {
- o[0] = Math.min(o[0], e.x - s);
- o[1] = Math.min(o[1], e.y - s);
- o[2] = Math.max(o[2], e.x + s);
- o[3] = Math.max(o[3], e.y + s);
- }
- r.Util.intersect(this.rectangle, o) || (this.rectangle = o);
- this._setDefaultAppearance({
- xref: a,
- extra: `${n} w`,
- strokeColor: e,
- strokeAlpha: i,
- pointsCallback: (e, t) => {
- const a = this.data.vertices;
- for (let t = 0, r = a.length; t < r; t++)
- e.push(`${a[t].x} ${a[t].y} ${0 === t ? 'm' : 'l'}`);
- e.push('S');
- return [t[0].x, t[1].x, t[3].y, t[1].y];
- },
- });
- }
- }
- }
- }
- class PolygonAnnotation extends PolylineAnnotation {
- constructor(e) {
- super(e);
- this.data.annotationType = r.AnnotationType.POLYGON;
- }
- }
- class CaretAnnotation extends MarkupAnnotation {
- constructor(e) {
- super(e);
- this.data.annotationType = r.AnnotationType.CARET;
- }
- }
- class InkAnnotation extends MarkupAnnotation {
- constructor(e) {
- super(e);
- this.data.hasOwnCanvas = this.data.noRotate;
- const { dict: t, xref: a } = e;
- this.data.annotationType = r.AnnotationType.INK;
- this.data.inkLists = [];
- const i = t.getArray('InkList');
- if (Array.isArray(i)) {
- for (let e = 0, t = i.length; e < t; ++e) {
- this.data.inkLists.push([]);
- for (let t = 0, r = i[e].length; t < r; t += 2)
- this.data.inkLists[e].push({
- x: a.fetchIfRef(i[e][t]),
- y: a.fetchIfRef(i[e][t + 1]),
- });
- }
- if (!this.appearance) {
- const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0],
- i = t.get('CA'),
- n = this.borderStyle.width || 1,
- s = 2 * n,
- o = [1 / 0, 1 / 0, -1 / 0, -1 / 0];
- for (const e of this.data.inkLists)
- for (const t of e) {
- o[0] = Math.min(o[0], t.x - s);
- o[1] = Math.min(o[1], t.y - s);
- o[2] = Math.max(o[2], t.x + s);
- o[3] = Math.max(o[3], t.y + s);
- }
- r.Util.intersect(this.rectangle, o) || (this.rectangle = o);
- this._setDefaultAppearance({
- xref: a,
- extra: `${n} w`,
- strokeColor: e,
- strokeAlpha: i,
- pointsCallback: (e, t) => {
- for (const t of this.data.inkLists) {
- for (let a = 0, r = t.length; a < r; a++)
- e.push(`${t[a].x} ${t[a].y} ${0 === a ? 'm' : 'l'}`);
- e.push('S');
- }
- return [t[0].x, t[1].x, t[3].y, t[1].y];
- },
- });
- }
- }
- }
- static createNewDict(e, t, { apRef: a, ap: i }) {
- const { paths: n, rect: o, rotation: c } = e,
- l = new s.Dict(t);
- l.set('Type', s.Name.get('Annot'));
- l.set('Subtype', s.Name.get('Ink'));
- l.set('CreationDate', `D:${(0, r.getModificationDate)()}`);
- l.set('Rect', o);
- l.set(
- 'InkList',
- n.map((e) => e.points),
- );
- l.set('F', 4);
- l.set('Border', [0, 0, 0]);
- l.set('Rotate', c);
- const h = new s.Dict(t);
- l.set('AP', h);
- a ? h.set('N', a) : h.set('N', i);
- return l;
- }
- static async createNewAppearanceStream(e, t, a) {
- const { color: r, rect: o, rotation: c, paths: l, thickness: h, opacity: u } = e,
- [d, f, g, m] = o;
- let b = g - d,
- y = m - f;
- c % 180 != 0 && ([b, y] = [y, b]);
- const w = [`${h} w 1 J 1 j`, `${(0, n.getPdfColor)(r, !1)}`];
- 1 !== u && w.push('/R0 gs');
- const S = [];
- for (const { bezier: e } of l) {
- S.length = 0;
- S.push(`${(0, i.numberToString)(e[0])} ${(0, i.numberToString)(e[1])} m`);
- for (let t = 2, a = e.length; t < a; t += 6) {
- const a = e
- .slice(t, t + 6)
- .map(i.numberToString)
- .join(' ');
- S.push(`${a} c`);
- }
- S.push('S');
- w.push(S.join('\n'));
- }
- const x = w.join('\n'),
- C = new s.Dict(t);
- C.set('FormType', 1);
- C.set('Subtype', s.Name.get('Form'));
- C.set('Type', s.Name.get('XObject'));
- C.set('BBox', [0, 0, b, y]);
- C.set('Length', x.length);
- if (c) {
- const e = (0, i.getRotationMatrix)(c, b, y);
- C.set('Matrix', e);
- }
- if (1 !== u) {
- const e = new s.Dict(t),
- a = new s.Dict(t),
- r = new s.Dict(t);
- r.set('CA', u);
- r.set('Type', s.Name.get('ExtGState'));
- a.set('R0', r);
- e.set('ExtGState', a);
- C.set('Resources', e);
- }
- const k = new p.StringStream(x);
- k.dict = C;
- return k;
- }
- }
- class HighlightAnnotation extends MarkupAnnotation {
- constructor(e) {
- super(e);
- const { dict: t, xref: a } = e;
- this.data.annotationType = r.AnnotationType.HIGHLIGHT;
- if ((this.data.quadPoints = getQuadPoints(t, null))) {
- const e = this.appearance && this.appearance.dict.get('Resources');
- if (!this.appearance || !e || !e.has('ExtGState')) {
- this.appearance &&
- (0, r.warn)('HighlightAnnotation - ignoring built-in appearance stream.');
- const e = this.color ? getPdfColorArray(this.color) : [1, 1, 0],
- i = t.get('CA');
- this._setDefaultAppearance({
- xref: a,
- fillColor: e,
- blendMode: 'Multiply',
- fillAlpha: i,
- pointsCallback: (e, t) => {
- e.push(
- `${t[0].x} ${t[0].y} m`,
- `${t[1].x} ${t[1].y} l`,
- `${t[3].x} ${t[3].y} l`,
- `${t[2].x} ${t[2].y} l`,
- 'f',
- );
- return [t[0].x, t[1].x, t[3].y, t[1].y];
- },
- });
- }
- } else this.data.hasPopup = !1;
- }
- }
- class UnderlineAnnotation extends MarkupAnnotation {
- constructor(e) {
- super(e);
- const { dict: t, xref: a } = e;
- this.data.annotationType = r.AnnotationType.UNDERLINE;
- if ((this.data.quadPoints = getQuadPoints(t, null))) {
- if (!this.appearance) {
- const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0],
- r = t.get('CA');
- this._setDefaultAppearance({
- xref: a,
- extra: '[] 0 d 1 w',
- strokeColor: e,
- strokeAlpha: r,
- pointsCallback: (e, t) => {
- e.push(`${t[2].x} ${t[2].y} m`, `${t[3].x} ${t[3].y} l`, 'S');
- return [t[0].x, t[1].x, t[3].y, t[1].y];
- },
- });
- }
- } else this.data.hasPopup = !1;
- }
- }
- class SquigglyAnnotation extends MarkupAnnotation {
- constructor(e) {
- super(e);
- const { dict: t, xref: a } = e;
- this.data.annotationType = r.AnnotationType.SQUIGGLY;
- if ((this.data.quadPoints = getQuadPoints(t, null))) {
- if (!this.appearance) {
- const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0],
- r = t.get('CA');
- this._setDefaultAppearance({
- xref: a,
- extra: '[] 0 d 1 w',
- strokeColor: e,
- strokeAlpha: r,
- pointsCallback: (e, t) => {
- const a = (t[0].y - t[2].y) / 6;
- let r = a,
- i = t[2].x;
- const n = t[2].y,
- s = t[3].x;
- e.push(`${i} ${n + r} m`);
- do {
- i += 2;
- r = 0 === r ? a : 0;
- e.push(`${i} ${n + r} l`);
- } while (i < s);
- e.push('S');
- return [t[2].x, s, n - 2 * a, n + 2 * a];
- },
- });
- }
- } else this.data.hasPopup = !1;
- }
- }
- class StrikeOutAnnotation extends MarkupAnnotation {
- constructor(e) {
- super(e);
- const { dict: t, xref: a } = e;
- this.data.annotationType = r.AnnotationType.STRIKEOUT;
- if ((this.data.quadPoints = getQuadPoints(t, null))) {
- if (!this.appearance) {
- const e = this.color ? getPdfColorArray(this.color) : [0, 0, 0],
- r = t.get('CA');
- this._setDefaultAppearance({
- xref: a,
- extra: '[] 0 d 1 w',
- strokeColor: e,
- strokeAlpha: r,
- pointsCallback: (e, t) => {
- e.push(
- (t[0].x + t[2].x) / 2 + ' ' + (t[0].y + t[2].y) / 2 + ' m',
- (t[1].x + t[3].x) / 2 + ' ' + (t[1].y + t[3].y) / 2 + ' l',
- 'S',
- );
- return [t[0].x, t[1].x, t[3].y, t[1].y];
- },
- });
- }
- } else this.data.hasPopup = !1;
- }
- }
- class StampAnnotation extends MarkupAnnotation {
- constructor(e) {
- super(e);
- this.data.annotationType = r.AnnotationType.STAMP;
- this.data.hasOwnCanvas = this.data.noRotate;
- }
- }
- class FileAttachmentAnnotation extends MarkupAnnotation {
- constructor(e) {
- super(e);
- const { dict: t, xref: a } = e,
- i = new d.FileSpec(t.get('FS'), a);
- this.data.annotationType = r.AnnotationType.FILEATTACHMENT;
- this.data.hasOwnCanvas = this.data.noRotate;
- this.data.file = i.serializable;
- const n = t.get('Name');
- this.data.name = n instanceof s.Name ? (0, r.stringToPDFString)(n.name) : 'PushPin';
- }
- }
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.FakeUnicodeFont = void 0;
- t.createDefaultAppearance = function createDefaultAppearance({
- fontSize: e,
- fontName: t,
- fontColor: a,
- }) {
- return `/${(0, i.escapePDFName)(t)} ${e} Tf ${getPdfColor(a, !0)}`;
- };
- t.getPdfColor = getPdfColor;
- t.parseDefaultAppearance = function parseDefaultAppearance(e) {
- return new DefaultAppearanceEvaluator(e).parse();
- };
- var r = a(4),
- i = a(3),
- n = a(2),
- s = a(12),
- o = a(13),
- c = a(8);
- class DefaultAppearanceEvaluator extends o.EvaluatorPreprocessor {
- constructor(e) {
- super(new c.StringStream(e));
- }
- parse() {
- const e = { fn: 0, args: [] },
- t = { fontSize: 0, fontName: '', fontColor: new Uint8ClampedArray(3) };
- try {
- for (;;) {
- e.args.length = 0;
- if (!this.read(e)) break;
- if (0 !== this.savedStatesDepth) continue;
- const { fn: a, args: i } = e;
- switch (0 | a) {
- case n.OPS.setFont:
- const [e, a] = i;
- e instanceof r.Name && (t.fontName = e.name);
- 'number' == typeof a && a > 0 && (t.fontSize = a);
- break;
- case n.OPS.setFillRGBColor:
- s.ColorSpace.singletons.rgb.getRgbItem(i, 0, t.fontColor, 0);
- break;
- case n.OPS.setFillGray:
- s.ColorSpace.singletons.gray.getRgbItem(i, 0, t.fontColor, 0);
- break;
- case n.OPS.setFillColorSpace:
- s.ColorSpace.singletons.cmyk.getRgbItem(i, 0, t.fontColor, 0);
- }
- }
- } catch (e) {
- (0, n.warn)(`parseDefaultAppearance - ignoring errors: "${e}".`);
- }
- return t;
- }
- }
- function getPdfColor(e, t) {
- if (e[0] === e[1] && e[1] === e[2]) {
- const a = e[0] / 255;
- return `${(0, i.numberToString)(a)} ${t ? 'g' : 'G'}`;
- }
- return (
- Array.from(e, (e) => (0, i.numberToString)(e / 255)).join(' ') +
- ' ' +
- (t ? 'rg' : 'RG')
- );
- }
- class FakeUnicodeFont {
- constructor(e, t) {
- this.xref = e;
- this.widths = null;
- this.firstChar = 1 / 0;
- this.lastChar = -1 / 0;
- this.fontFamily = t;
- const a = new OffscreenCanvas(1, 1);
- this.ctxMeasure = a.getContext('2d');
- FakeUnicodeFont._fontNameId || (FakeUnicodeFont._fontNameId = 1);
- this.fontName = r.Name.get(`InvalidPDFjsFont_${t}_${FakeUnicodeFont._fontNameId++}`);
- }
- get toUnicodeRef() {
- if (!FakeUnicodeFont._toUnicodeRef) {
- const e =
- '/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> \nendcodespacerange\n1 beginbfrange\n<0000> <0000>\nendbfrange\nendcmap CMapName currentdict /CMap defineresource pop end end',
- t = (FakeUnicodeFont.toUnicodeStream = new c.StringStream(e)),
- a = new r.Dict(this.xref);
- t.dict = a;
- a.set('Length', e.length);
- FakeUnicodeFont._toUnicodeRef = this.xref.getNewPersistentRef(t);
- }
- return FakeUnicodeFont._toUnicodeRef;
- }
- get fontDescriptorRef() {
- if (!FakeUnicodeFont._fontDescriptorRef) {
- const e = new r.Dict(this.xref);
- e.set('Type', r.Name.get('FontDescriptor'));
- e.set('FontName', this.fontName);
- e.set('FontFamily', 'MyriadPro Regular');
- e.set('FontBBox', [0, 0, 0, 0]);
- e.set('FontStretch', r.Name.get('Normal'));
- e.set('FontWeight', 400);
- e.set('ItalicAngle', 0);
- FakeUnicodeFont._fontDescriptorRef = this.xref.getNewPersistentRef(e);
- }
- return FakeUnicodeFont._fontDescriptorRef;
- }
- get descendantFontRef() {
- const e = new r.Dict(this.xref);
- e.set('BaseFont', this.fontName);
- e.set('Type', r.Name.get('Font'));
- e.set('Subtype', r.Name.get('CIDFontType0'));
- e.set('CIDToGIDMap', r.Name.get('Identity'));
- e.set('FirstChar', this.firstChar);
- e.set('LastChar', this.lastChar);
- e.set('FontDescriptor', this.fontDescriptorRef);
- e.set('DW', 1e3);
- const t = [],
- a = [...this.widths.entries()].sort();
- let i = null,
- n = null;
- for (const [e, r] of a)
- if (i)
- if (e === i + n.length) n.push(r);
- else {
- t.push(i, n);
- i = e;
- n = [r];
- }
- else {
- i = e;
- n = [r];
- }
- i && t.push(i, n);
- e.set('W', t);
- const s = new r.Dict(this.xref);
- s.set('Ordering', 'Identity');
- s.set('Registry', 'Adobe');
- s.set('Supplement', 0);
- e.set('CIDSystemInfo', s);
- return this.xref.getNewPersistentRef(e);
- }
- get baseFontRef() {
- const e = new r.Dict(this.xref);
- e.set('BaseFont', this.fontName);
- e.set('Type', r.Name.get('Font'));
- e.set('Subtype', r.Name.get('Type0'));
- e.set('Encoding', r.Name.get('Identity-H'));
- e.set('DescendantFonts', [this.descendantFontRef]);
- e.set('ToUnicode', this.toUnicodeRef);
- return this.xref.getNewPersistentRef(e);
- }
- get resources() {
- const e = new r.Dict(this.xref),
- t = new r.Dict(this.xref);
- t.set(this.fontName.name, this.baseFontRef);
- e.set('Font', t);
- return e;
- }
- _createContext() {
- this.widths = new Map();
- this.ctxMeasure.font = `1000px ${this.fontFamily}`;
- return this.ctxMeasure;
- }
- createFontResources(e) {
- const t = this._createContext();
- for (const a of e.split(/\r\n?|\n/))
- for (const e of a.split('')) {
- const a = e.charCodeAt(0);
- if (this.widths.has(a)) continue;
- const r = t.measureText(e),
- i = Math.ceil(r.width);
- this.widths.set(a, i);
- this.firstChar = Math.min(a, this.firstChar);
- this.lastChar = Math.max(a, this.lastChar);
- }
- return this.resources;
- }
- createAppearance(e, t, a, s, o, l) {
- const h = this._createContext(),
- u = [];
- let d = -1 / 0;
- for (const t of e.split(/\r\n?|\n/)) {
- u.push(t);
- const e = h.measureText(t).width;
- d = Math.max(d, e);
- for (const e of t.split('')) {
- const t = e.charCodeAt(0);
- let a = this.widths.get(t);
- if (void 0 === a) {
- const r = h.measureText(e);
- a = Math.ceil(r.width);
- this.widths.set(t, a);
- this.firstChar = Math.min(t, this.firstChar);
- this.lastChar = Math.max(t, this.lastChar);
- }
- }
- }
- d *= s / 1e3;
- const [f, g, p, m] = t;
- let b = p - f,
- y = m - g;
- a % 180 != 0 && ([b, y] = [y, b]);
- let w = 1;
- d > b && (w = b / d);
- let S = 1;
- const x = n.LINE_FACTOR * s,
- C = n.LINE_DESCENT_FACTOR * s,
- k = x * u.length;
- k > y && (S = y / k);
- const v = s * Math.min(w, S),
- F = [
- 'q',
- `0 0 ${(0, i.numberToString)(b)} ${(0, i.numberToString)(y)} re W n`,
- 'BT',
- `1 0 0 1 0 ${(0, i.numberToString)(y + C)} Tm 0 Tc ${getPdfColor(o, !0)}`,
- `/${this.fontName.name} ${(0, i.numberToString)(v)} Tf`,
- ],
- { resources: O } = this;
- if (1 !== (l = 'number' == typeof l && l >= 0 && l <= 1 ? l : 1)) {
- F.push('/R0 gs');
- const e = new r.Dict(this.xref),
- t = new r.Dict(this.xref);
- t.set('ca', l);
- t.set('CA', l);
- t.set('Type', r.Name.get('ExtGState'));
- e.set('R0', t);
- O.set('ExtGState', e);
- }
- const T = (0, i.numberToString)(x);
- for (const e of u) F.push(`0 -${T} Td <${(0, i.stringToUTF16HexString)(e)}> Tj`);
- F.push('ET', 'Q');
- const M = F.join('\n'),
- E = new r.Dict(this.xref);
- E.set('Subtype', r.Name.get('Form'));
- E.set('Type', r.Name.get('XObject'));
- E.set('BBox', [0, 0, b, y]);
- E.set('Length', M.length);
- E.set('Resources', O);
- if (a) {
- const e = (0, i.getRotationMatrix)(a, b, y);
- E.set('Matrix', e);
- }
- const D = new c.StringStream(M);
- D.dict = E;
- return D;
- }
- }
- t.FakeUnicodeFont = FakeUnicodeFont;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.ColorSpace = void 0;
- var r = a(2),
- i = a(4),
- n = a(5),
- s = a(3);
- class ColorSpace {
- constructor(e, t) {
- this.constructor === ColorSpace &&
- (0, r.unreachable)('Cannot initialize ColorSpace.');
- this.name = e;
- this.numComps = t;
- }
- getRgb(e, t) {
- const a = new Uint8ClampedArray(3);
- this.getRgbItem(e, t, a, 0);
- return a;
- }
- getRgbItem(e, t, a, i) {
- (0, r.unreachable)('Should not call ColorSpace.getRgbItem');
- }
- getRgbBuffer(e, t, a, i, n, s, o) {
- (0, r.unreachable)('Should not call ColorSpace.getRgbBuffer');
- }
- getOutputLength(e, t) {
- (0, r.unreachable)('Should not call ColorSpace.getOutputLength');
- }
- isPassthrough(e) {
- return !1;
- }
- isDefaultDecode(e, t) {
- return ColorSpace.isDefaultDecode(e, this.numComps);
- }
- fillRgb(e, t, a, r, i, n, s, o, c) {
- const l = t * a;
- let h = null;
- const u = 1 << s,
- d = a !== i || t !== r;
- if (this.isPassthrough(s)) h = o;
- else if (
- 1 === this.numComps &&
- l > u &&
- 'DeviceGray' !== this.name &&
- 'DeviceRGB' !== this.name
- ) {
- const t = s <= 8 ? new Uint8Array(u) : new Uint16Array(u);
- for (let e = 0; e < u; e++) t[e] = e;
- const a = new Uint8ClampedArray(3 * u);
- this.getRgbBuffer(t, 0, u, a, 0, s, 0);
- if (d) {
- h = new Uint8Array(3 * l);
- let e = 0;
- for (let t = 0; t < l; ++t) {
- const r = 3 * o[t];
- h[e++] = a[r];
- h[e++] = a[r + 1];
- h[e++] = a[r + 2];
- }
- } else {
- let t = 0;
- for (let r = 0; r < l; ++r) {
- const i = 3 * o[r];
- e[t++] = a[i];
- e[t++] = a[i + 1];
- e[t++] = a[i + 2];
- t += c;
- }
- }
- } else if (d) {
- h = new Uint8ClampedArray(3 * l);
- this.getRgbBuffer(o, 0, l, h, 0, s, 0);
- } else this.getRgbBuffer(o, 0, r * n, e, 0, s, c);
- if (h)
- if (d)
- !(function resizeRgbImage(e, t, a, r, i, n, s) {
- s = 1 !== s ? 0 : s;
- const o = a / i,
- c = r / n;
- let l,
- h = 0;
- const u = new Uint16Array(i),
- d = 3 * a;
- for (let e = 0; e < i; e++) u[e] = 3 * Math.floor(e * o);
- for (let a = 0; a < n; a++) {
- const r = Math.floor(a * c) * d;
- for (let a = 0; a < i; a++) {
- l = r + u[a];
- t[h++] = e[l++];
- t[h++] = e[l++];
- t[h++] = e[l++];
- h += s;
- }
- }
- })(h, e, t, a, r, i, c);
- else {
- let t = 0,
- a = 0;
- for (let i = 0, s = r * n; i < s; i++) {
- e[t++] = h[a++];
- e[t++] = h[a++];
- e[t++] = h[a++];
- t += c;
- }
- }
- }
- get usesZeroToOneRange() {
- return (0, r.shadow)(this, 'usesZeroToOneRange', !0);
- }
- static _cache(e, t, a, r) {
- if (!a)
- throw new Error('ColorSpace._cache - expected "localColorSpaceCache" argument.');
- if (!r) throw new Error('ColorSpace._cache - expected "parsedColorSpace" argument.');
- let n, s;
- if (e instanceof i.Ref) {
- s = e;
- e = t.fetch(e);
- }
- e instanceof i.Name && (n = e.name);
- (n || s) && a.set(n, s, r);
- }
- static getCached(e, t, a) {
- if (!a)
- throw new Error('ColorSpace.getCached - expected "localColorSpaceCache" argument.');
- if (e instanceof i.Ref) {
- const r = a.getByRef(e);
- if (r) return r;
- try {
- e = t.fetch(e);
- } catch (e) {
- if (e instanceof s.MissingDataException) throw e;
- }
- }
- if (e instanceof i.Name) {
- const t = a.getByName(e.name);
- if (t) return t;
- }
- return null;
- }
- static async parseAsync({
- cs: e,
- xref: t,
- resources: a = null,
- pdfFunctionFactory: r,
- localColorSpaceCache: i,
- }) {
- const n = this._parse(e, t, a, r);
- this._cache(e, t, i, n);
- return n;
- }
- static parse({
- cs: e,
- xref: t,
- resources: a = null,
- pdfFunctionFactory: r,
- localColorSpaceCache: i,
- }) {
- const n = this.getCached(e, t, i);
- if (n) return n;
- const s = this._parse(e, t, a, r);
- this._cache(e, t, i, s);
- return s;
- }
- static _parse(e, t, a = null, n) {
- if ((e = t.fetchIfRef(e)) instanceof i.Name)
- switch (e.name) {
- case 'G':
- case 'DeviceGray':
- return this.singletons.gray;
- case 'RGB':
- case 'DeviceRGB':
- return this.singletons.rgb;
- case 'CMYK':
- case 'DeviceCMYK':
- return this.singletons.cmyk;
- case 'Pattern':
- return new PatternCS(null);
- default:
- if (a instanceof i.Dict) {
- const r = a.get('ColorSpace');
- if (r instanceof i.Dict) {
- const s = r.get(e.name);
- if (s) {
- if (s instanceof i.Name) return this._parse(s, t, a, n);
- e = s;
- break;
- }
- }
- }
- throw new r.FormatError(`Unrecognized ColorSpace: ${e.name}`);
- }
- if (Array.isArray(e)) {
- const i = t.fetchIfRef(e[0]).name;
- let s, o, u, d, f, g;
- switch (i) {
- case 'G':
- case 'DeviceGray':
- return this.singletons.gray;
- case 'RGB':
- case 'DeviceRGB':
- return this.singletons.rgb;
- case 'CMYK':
- case 'DeviceCMYK':
- return this.singletons.cmyk;
- case 'CalGray':
- s = t.fetchIfRef(e[1]);
- d = s.getArray('WhitePoint');
- f = s.getArray('BlackPoint');
- g = s.get('Gamma');
- return new c(d, f, g);
- case 'CalRGB':
- s = t.fetchIfRef(e[1]);
- d = s.getArray('WhitePoint');
- f = s.getArray('BlackPoint');
- g = s.getArray('Gamma');
- const p = s.getArray('Matrix');
- return new l(d, f, g, p);
- case 'ICCBased':
- const m = t.fetchIfRef(e[1]).dict;
- o = m.get('N');
- const b = m.get('Alternate');
- if (b) {
- const e = this._parse(b, t, a, n);
- if (e.numComps === o) return e;
- (0, r.warn)('ICCBased color space: Ignoring incorrect /Alternate entry.');
- }
- if (1 === o) return this.singletons.gray;
- if (3 === o) return this.singletons.rgb;
- if (4 === o) return this.singletons.cmyk;
- break;
- case 'Pattern':
- u = e[1] || null;
- u && (u = this._parse(u, t, a, n));
- return new PatternCS(u);
- case 'I':
- case 'Indexed':
- u = this._parse(e[1], t, a, n);
- const y = t.fetchIfRef(e[2]) + 1,
- w = t.fetchIfRef(e[3]);
- return new IndexedCS(u, y, w);
- case 'Separation':
- case 'DeviceN':
- const S = t.fetchIfRef(e[1]);
- o = Array.isArray(S) ? S.length : 1;
- u = this._parse(e[2], t, a, n);
- const x = n.create(e[3]);
- return new AlternateCS(o, u, x);
- case 'Lab':
- s = t.fetchIfRef(e[1]);
- d = s.getArray('WhitePoint');
- f = s.getArray('BlackPoint');
- const C = s.getArray('Range');
- return new h(d, f, C);
- default:
- throw new r.FormatError(`Unimplemented ColorSpace object: ${i}`);
- }
- }
- throw new r.FormatError(`Unrecognized ColorSpace object: ${e}`);
- }
- static isDefaultDecode(e, t) {
- if (!Array.isArray(e)) return !0;
- if (2 * t !== e.length) {
- (0, r.warn)('The decode map is not the correct length');
- return !0;
- }
- for (let t = 0, a = e.length; t < a; t += 2)
- if (0 !== e[t] || 1 !== e[t + 1]) return !1;
- return !0;
- }
- static get singletons() {
- return (0, r.shadow)(this, 'singletons', {
- get gray() {
- return (0, r.shadow)(this, 'gray', new DeviceGrayCS());
- },
- get rgb() {
- return (0, r.shadow)(this, 'rgb', new DeviceRgbCS());
- },
- get cmyk() {
- return (0, r.shadow)(this, 'cmyk', new o());
- },
- });
- }
- }
- t.ColorSpace = ColorSpace;
- class AlternateCS extends ColorSpace {
- constructor(e, t, a) {
- super('Alternate', e);
- this.base = t;
- this.tintFn = a;
- this.tmpBuf = new Float32Array(t.numComps);
- }
- getRgbItem(e, t, a, r) {
- const i = this.tmpBuf;
- this.tintFn(e, t, i, 0);
- this.base.getRgbItem(i, 0, a, r);
- }
- getRgbBuffer(e, t, a, r, i, n, s) {
- const o = this.tintFn,
- c = this.base,
- l = 1 / ((1 << n) - 1),
- h = c.numComps,
- u = c.usesZeroToOneRange,
- d = (c.isPassthrough(8) || !u) && 0 === s;
- let f = d ? i : 0;
- const g = d ? r : new Uint8ClampedArray(h * a),
- p = this.numComps,
- m = new Float32Array(p),
- b = new Float32Array(h);
- let y, w;
- for (y = 0; y < a; y++) {
- for (w = 0; w < p; w++) m[w] = e[t++] * l;
- o(m, 0, b, 0);
- if (u) for (w = 0; w < h; w++) g[f++] = 255 * b[w];
- else {
- c.getRgbItem(b, 0, g, f);
- f += h;
- }
- }
- d || c.getRgbBuffer(g, 0, a, r, i, 8, s);
- }
- getOutputLength(e, t) {
- return this.base.getOutputLength((e * this.base.numComps) / this.numComps, t);
- }
- }
- class PatternCS extends ColorSpace {
- constructor(e) {
- super('Pattern', null);
- this.base = e;
- }
- isDefaultDecode(e, t) {
- (0, r.unreachable)('Should not call PatternCS.isDefaultDecode');
- }
- }
- class IndexedCS extends ColorSpace {
- constructor(e, t, a) {
- super('Indexed', 1);
- this.base = e;
- this.highVal = t;
- const i = e.numComps * t;
- this.lookup = new Uint8Array(i);
- if (a instanceof n.BaseStream) {
- const e = a.getBytes(i);
- this.lookup.set(e);
- } else {
- if ('string' != typeof a)
- throw new r.FormatError(`IndexedCS - unrecognized lookup table: ${a}`);
- for (let e = 0; e < i; ++e) this.lookup[e] = 255 & a.charCodeAt(e);
- }
- }
- getRgbItem(e, t, a, r) {
- const i = this.base.numComps,
- n = e[t] * i;
- this.base.getRgbBuffer(this.lookup, n, 1, a, r, 8, 0);
- }
- getRgbBuffer(e, t, a, r, i, n, s) {
- const o = this.base,
- c = o.numComps,
- l = o.getOutputLength(c, s),
- h = this.lookup;
- for (let n = 0; n < a; ++n) {
- const a = e[t++] * c;
- o.getRgbBuffer(h, a, 1, r, i, 8, s);
- i += l;
- }
- }
- getOutputLength(e, t) {
- return this.base.getOutputLength(e * this.base.numComps, t);
- }
- isDefaultDecode(e, t) {
- if (!Array.isArray(e)) return !0;
- if (2 !== e.length) {
- (0, r.warn)('Decode map length is not correct');
- return !0;
- }
- if (!Number.isInteger(t) || t < 1) {
- (0, r.warn)('Bits per component is not correct');
- return !0;
- }
- return 0 === e[0] && e[1] === (1 << t) - 1;
- }
- }
- class DeviceGrayCS extends ColorSpace {
- constructor() {
- super('DeviceGray', 1);
- }
- getRgbItem(e, t, a, r) {
- const i = 255 * e[t];
- a[r] = a[r + 1] = a[r + 2] = i;
- }
- getRgbBuffer(e, t, a, r, i, n, s) {
- const o = 255 / ((1 << n) - 1);
- let c = t,
- l = i;
- for (let t = 0; t < a; ++t) {
- const t = o * e[c++];
- r[l++] = t;
- r[l++] = t;
- r[l++] = t;
- l += s;
- }
- }
- getOutputLength(e, t) {
- return e * (3 + t);
- }
- }
- class DeviceRgbCS extends ColorSpace {
- constructor() {
- super('DeviceRGB', 3);
- }
- getRgbItem(e, t, a, r) {
- a[r] = 255 * e[t];
- a[r + 1] = 255 * e[t + 1];
- a[r + 2] = 255 * e[t + 2];
- }
- getRgbBuffer(e, t, a, r, i, n, s) {
- if (8 === n && 0 === s) {
- r.set(e.subarray(t, t + 3 * a), i);
- return;
- }
- const o = 255 / ((1 << n) - 1);
- let c = t,
- l = i;
- for (let t = 0; t < a; ++t) {
- r[l++] = o * e[c++];
- r[l++] = o * e[c++];
- r[l++] = o * e[c++];
- l += s;
- }
- }
- getOutputLength(e, t) {
- return ((e * (3 + t)) / 3) | 0;
- }
- isPassthrough(e) {
- return 8 === e;
- }
- }
- const o = (function DeviceCmykCSClosure() {
- function convertToRgb(e, t, a, r, i) {
- const n = e[t] * a,
- s = e[t + 1] * a,
- o = e[t + 2] * a,
- c = e[t + 3] * a;
- r[i] =
- 255 +
- n *
- (-4.387332384609988 * n +
- 54.48615194189176 * s +
- 18.82290502165302 * o +
- 212.25662451639585 * c -
- 285.2331026137004) +
- s *
- (1.7149763477362134 * s -
- 5.6096736904047315 * o +
- -17.873870861415444 * c -
- 5.497006427196366) +
- o * (-2.5217340131683033 * o - 21.248923337353073 * c + 17.5119270841813) +
- c * (-21.86122147463605 * c - 189.48180835922747);
- r[i + 1] =
- 255 +
- n *
- (8.841041422036149 * n +
- 60.118027045597366 * s +
- 6.871425592049007 * o +
- 31.159100130055922 * c -
- 79.2970844816548) +
- s *
- (-15.310361306967817 * s +
- 17.575251261109482 * o +
- 131.35250912493976 * c -
- 190.9453302588951) +
- o * (4.444339102852739 * o + 9.8632861493405 * c - 24.86741582555878) +
- c * (-20.737325471181034 * c - 187.80453709719578);
- r[i + 2] =
- 255 +
- n *
- (0.8842522430003296 * n +
- 8.078677503112928 * s +
- 30.89978309703729 * o -
- 0.23883238689178934 * c -
- 14.183576799673286) +
- s *
- (10.49593273432072 * s +
- 63.02378494754052 * o +
- 50.606957656360734 * c -
- 112.23884253719248) +
- o * (0.03296041114873217 * o + 115.60384449646641 * c - 193.58209356861505) +
- c * (-22.33816807309886 * c - 180.12613974708367);
- }
- return class DeviceCmykCS extends ColorSpace {
- constructor() {
- super('DeviceCMYK', 4);
- }
- getRgbItem(e, t, a, r) {
- convertToRgb(e, t, 1, a, r);
- }
- getRgbBuffer(e, t, a, r, i, n, s) {
- const o = 1 / ((1 << n) - 1);
- for (let n = 0; n < a; n++) {
- convertToRgb(e, t, o, r, i);
- t += 4;
- i += 3 + s;
- }
- }
- getOutputLength(e, t) {
- return ((e / 4) * (3 + t)) | 0;
- }
- };
- })(),
- c = (function CalGrayCSClosure() {
- function convertToRgb(e, t, a, r, i, n) {
- const s = (t[a] * n) ** e.G,
- o = e.YW * s,
- c = Math.max(295.8 * o ** 0.3333333333333333 - 40.8, 0);
- r[i] = c;
- r[i + 1] = c;
- r[i + 2] = c;
- }
- return class CalGrayCS extends ColorSpace {
- constructor(e, t, a) {
- super('CalGray', 1);
- if (!e)
- throw new r.FormatError(
- 'WhitePoint missing - required for color space CalGray',
- );
- t = t || [0, 0, 0];
- a = a || 1;
- this.XW = e[0];
- this.YW = e[1];
- this.ZW = e[2];
- this.XB = t[0];
- this.YB = t[1];
- this.ZB = t[2];
- this.G = a;
- if (this.XW < 0 || this.ZW < 0 || 1 !== this.YW)
- throw new r.FormatError(
- `Invalid WhitePoint components for ${this.name}, no fallback available`,
- );
- if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {
- (0, r.info)(`Invalid BlackPoint for ${this.name}, falling back to default.`);
- this.XB = this.YB = this.ZB = 0;
- }
- (0 === this.XB && 0 === this.YB && 0 === this.ZB) ||
- (0, r.warn)(
- `${this.name}, BlackPoint: XB: ${this.XB}, YB: ${this.YB}, ZB: ${this.ZB}, only default values are supported.`,
- );
- if (this.G < 1) {
- (0, r.info)(
- `Invalid Gamma: ${this.G} for ${this.name}, falling back to default.`,
- );
- this.G = 1;
- }
- }
- getRgbItem(e, t, a, r) {
- convertToRgb(this, e, t, a, r, 1);
- }
- getRgbBuffer(e, t, a, r, i, n, s) {
- const o = 1 / ((1 << n) - 1);
- for (let n = 0; n < a; ++n) {
- convertToRgb(this, e, t, r, i, o);
- t += 1;
- i += 3 + s;
- }
- }
- getOutputLength(e, t) {
- return e * (3 + t);
- }
- };
- })(),
- l = (function CalRGBCSClosure() {
- const e = new Float32Array([
- 0.8951, 0.2664, -0.1614, -0.7502, 1.7135, 0.0367, 0.0389, -0.0685, 1.0296,
- ]),
- t = new Float32Array([
- 0.9869929, -0.1470543, 0.1599627, 0.4323053, 0.5183603, 0.0492912, -0.0085287,
- 0.0400428, 0.9684867,
- ]),
- a = new Float32Array([
- 3.2404542, -1.5371385, -0.4985314, -0.969266, 1.8760108, 0.041556, 0.0556434,
- -0.2040259, 1.0572252,
- ]),
- i = new Float32Array([1, 1, 1]),
- n = new Float32Array(3),
- s = new Float32Array(3),
- o = new Float32Array(3),
- c = (24 / 116) ** 3 / 8;
- function matrixProduct(e, t, a) {
- a[0] = e[0] * t[0] + e[1] * t[1] + e[2] * t[2];
- a[1] = e[3] * t[0] + e[4] * t[1] + e[5] * t[2];
- a[2] = e[6] * t[0] + e[7] * t[1] + e[8] * t[2];
- }
- function sRGBTransferFunction(e) {
- return e <= 0.0031308
- ? adjustToRange(0, 1, 12.92 * e)
- : e >= 0.99554525
- ? 1
- : adjustToRange(0, 1, 1.055 * e ** (1 / 2.4) - 0.055);
- }
- function adjustToRange(e, t, a) {
- return Math.max(e, Math.min(t, a));
- }
- function decodeL(e) {
- return e < 0 ? -decodeL(-e) : e > 8 ? ((e + 16) / 116) ** 3 : e * c;
- }
- function convertToRgb(r, c, l, h, u, d) {
- const f = adjustToRange(0, 1, c[l] * d),
- g = adjustToRange(0, 1, c[l + 1] * d),
- p = adjustToRange(0, 1, c[l + 2] * d),
- m = 1 === f ? 1 : f ** r.GR,
- b = 1 === g ? 1 : g ** r.GG,
- y = 1 === p ? 1 : p ** r.GB,
- w = r.MXA * m + r.MXB * b + r.MXC * y,
- S = r.MYA * m + r.MYB * b + r.MYC * y,
- x = r.MZA * m + r.MZB * b + r.MZC * y,
- C = s;
- C[0] = w;
- C[1] = S;
- C[2] = x;
- const k = o;
- !(function normalizeWhitePointToFlat(a, r, i) {
- if (1 === a[0] && 1 === a[2]) {
- i[0] = r[0];
- i[1] = r[1];
- i[2] = r[2];
- return;
- }
- const s = i;
- matrixProduct(e, r, s);
- const o = n;
- !(function convertToFlat(e, t, a) {
- a[0] = (1 * t[0]) / e[0];
- a[1] = (1 * t[1]) / e[1];
- a[2] = (1 * t[2]) / e[2];
- })(a, s, o);
- matrixProduct(t, o, i);
- })(r.whitePoint, C, k);
- const v = s;
- !(function compensateBlackPoint(e, t, a) {
- if (0 === e[0] && 0 === e[1] && 0 === e[2]) {
- a[0] = t[0];
- a[1] = t[1];
- a[2] = t[2];
- return;
- }
- const r = decodeL(0),
- i = (1 - r) / (1 - decodeL(e[0])),
- n = 1 - i,
- s = (1 - r) / (1 - decodeL(e[1])),
- o = 1 - s,
- c = (1 - r) / (1 - decodeL(e[2])),
- l = 1 - c;
- a[0] = t[0] * i + n;
- a[1] = t[1] * s + o;
- a[2] = t[2] * c + l;
- })(r.blackPoint, k, v);
- const F = o;
- !(function normalizeWhitePointToD65(a, r, i) {
- const s = i;
- matrixProduct(e, r, s);
- const o = n;
- !(function convertToD65(e, t, a) {
- a[0] = (0.95047 * t[0]) / e[0];
- a[1] = (1 * t[1]) / e[1];
- a[2] = (1.08883 * t[2]) / e[2];
- })(a, s, o);
- matrixProduct(t, o, i);
- })(i, v, F);
- const O = s;
- matrixProduct(a, F, O);
- h[u] = 255 * sRGBTransferFunction(O[0]);
- h[u + 1] = 255 * sRGBTransferFunction(O[1]);
- h[u + 2] = 255 * sRGBTransferFunction(O[2]);
- }
- return class CalRGBCS extends ColorSpace {
- constructor(e, t, a, i) {
- super('CalRGB', 3);
- if (!e)
- throw new r.FormatError('WhitePoint missing - required for color space CalRGB');
- t ||= new Float32Array(3);
- a ||= new Float32Array([1, 1, 1]);
- i ||= new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]);
- const n = e[0],
- s = e[1],
- o = e[2];
- this.whitePoint = e;
- const c = t[0],
- l = t[1],
- h = t[2];
- this.blackPoint = t;
- this.GR = a[0];
- this.GG = a[1];
- this.GB = a[2];
- this.MXA = i[0];
- this.MYA = i[1];
- this.MZA = i[2];
- this.MXB = i[3];
- this.MYB = i[4];
- this.MZB = i[5];
- this.MXC = i[6];
- this.MYC = i[7];
- this.MZC = i[8];
- if (n < 0 || o < 0 || 1 !== s)
- throw new r.FormatError(
- `Invalid WhitePoint components for ${this.name}, no fallback available`,
- );
- if (c < 0 || l < 0 || h < 0) {
- (0, r.info)(
- `Invalid BlackPoint for ${this.name} [${c}, ${l}, ${h}], falling back to default.`,
- );
- this.blackPoint = new Float32Array(3);
- }
- if (this.GR < 0 || this.GG < 0 || this.GB < 0) {
- (0, r.info)(
- `Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ${this.name}, falling back to default.`,
- );
- this.GR = this.GG = this.GB = 1;
- }
- }
- getRgbItem(e, t, a, r) {
- convertToRgb(this, e, t, a, r, 1);
- }
- getRgbBuffer(e, t, a, r, i, n, s) {
- const o = 1 / ((1 << n) - 1);
- for (let n = 0; n < a; ++n) {
- convertToRgb(this, e, t, r, i, o);
- t += 3;
- i += 3 + s;
- }
- }
- getOutputLength(e, t) {
- return ((e * (3 + t)) / 3) | 0;
- }
- };
- })(),
- h = (function LabCSClosure() {
- function fn_g(e) {
- let t;
- t = e >= 6 / 29 ? e ** 3 : (108 / 841) * (e - 4 / 29);
- return t;
- }
- function decode(e, t, a, r) {
- return a + (e * (r - a)) / t;
- }
- function convertToRgb(e, t, a, r, i, n) {
- let s = t[a],
- o = t[a + 1],
- c = t[a + 2];
- if (!1 !== r) {
- s = decode(s, r, 0, 100);
- o = decode(o, r, e.amin, e.amax);
- c = decode(c, r, e.bmin, e.bmax);
- }
- o > e.amax ? (o = e.amax) : o < e.amin && (o = e.amin);
- c > e.bmax ? (c = e.bmax) : c < e.bmin && (c = e.bmin);
- const l = (s + 16) / 116,
- h = l + o / 500,
- u = l - c / 200,
- d = e.XW * fn_g(h),
- f = e.YW * fn_g(l),
- g = e.ZW * fn_g(u);
- let p, m, b;
- if (e.ZW < 1) {
- p = 3.1339 * d + -1.617 * f + -0.4906 * g;
- m = -0.9785 * d + 1.916 * f + 0.0333 * g;
- b = 0.072 * d + -0.229 * f + 1.4057 * g;
- } else {
- p = 3.2406 * d + -1.5372 * f + -0.4986 * g;
- m = -0.9689 * d + 1.8758 * f + 0.0415 * g;
- b = 0.0557 * d + -0.204 * f + 1.057 * g;
- }
- i[n] = 255 * Math.sqrt(p);
- i[n + 1] = 255 * Math.sqrt(m);
- i[n + 2] = 255 * Math.sqrt(b);
- }
- return class LabCS extends ColorSpace {
- constructor(e, t, a) {
- super('Lab', 3);
- if (!e)
- throw new r.FormatError('WhitePoint missing - required for color space Lab');
- t ||= [0, 0, 0];
- a ||= [-100, 100, -100, 100];
- this.XW = e[0];
- this.YW = e[1];
- this.ZW = e[2];
- this.amin = a[0];
- this.amax = a[1];
- this.bmin = a[2];
- this.bmax = a[3];
- this.XB = t[0];
- this.YB = t[1];
- this.ZB = t[2];
- if (this.XW < 0 || this.ZW < 0 || 1 !== this.YW)
- throw new r.FormatError('Invalid WhitePoint components, no fallback available');
- if (this.XB < 0 || this.YB < 0 || this.ZB < 0) {
- (0, r.info)('Invalid BlackPoint, falling back to default');
- this.XB = this.YB = this.ZB = 0;
- }
- if (this.amin > this.amax || this.bmin > this.bmax) {
- (0, r.info)('Invalid Range, falling back to defaults');
- this.amin = -100;
- this.amax = 100;
- this.bmin = -100;
- this.bmax = 100;
- }
- }
- getRgbItem(e, t, a, r) {
- convertToRgb(this, e, t, !1, a, r);
- }
- getRgbBuffer(e, t, a, r, i, n, s) {
- const o = (1 << n) - 1;
- for (let n = 0; n < a; n++) {
- convertToRgb(this, e, t, o, r, i);
- t += 3;
- i += 3 + s;
- }
- }
- getOutputLength(e, t) {
- return ((e * (3 + t)) / 3) | 0;
- }
- isDefaultDecode(e, t) {
- return !0;
- }
- get usesZeroToOneRange() {
- return (0, r.shadow)(this, 'usesZeroToOneRange', !1);
- }
- };
- })();
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.PartialEvaluator = t.EvaluatorPreprocessor = void 0;
- var r = a(2),
- i = a(14),
- n = a(4),
- s = a(34),
- o = a(37),
- c = a(41),
- l = a(50),
- h = a(51),
- u = a(42),
- d = a(57),
- f = a(16),
- g = a(59),
- p = a(8),
- m = a(5),
- b = a(60),
- y = a(12),
- w = a(18),
- S = a(38),
- x = a(39),
- C = a(3),
- k = a(45),
- v = a(40),
- F = a(61),
- O = a(62),
- T = a(63),
- M = a(64);
- const E = Object.freeze({
- maxImageSize: -1,
- disableFontFace: !1,
- ignoreErrors: !1,
- isEvalSupported: !0,
- isOffscreenCanvasSupported: !1,
- canvasMaxAreaInBytes: -1,
- fontExtraProperties: !1,
- useSystemFonts: !0,
- cMapUrl: null,
- standardFontDataUrl: null,
- }),
- D = 1,
- N = 2,
- R = Promise.resolve();
- function normalizeBlendMode(e, t = !1) {
- if (Array.isArray(e)) {
- for (const t of e) {
- const e = normalizeBlendMode(t, !0);
- if (e) return e;
- }
- (0, r.warn)(`Unsupported blend mode Array: ${e}`);
- return 'source-over';
- }
- if (!(e instanceof n.Name)) return t ? null : 'source-over';
- switch (e.name) {
- case 'Normal':
- case 'Compatible':
- return 'source-over';
- case 'Multiply':
- return 'multiply';
- case 'Screen':
- return 'screen';
- case 'Overlay':
- return 'overlay';
- case 'Darken':
- return 'darken';
- case 'Lighten':
- return 'lighten';
- case 'ColorDodge':
- return 'color-dodge';
- case 'ColorBurn':
- return 'color-burn';
- case 'HardLight':
- return 'hard-light';
- case 'SoftLight':
- return 'soft-light';
- case 'Difference':
- return 'difference';
- case 'Exclusion':
- return 'exclusion';
- case 'Hue':
- return 'hue';
- case 'Saturation':
- return 'saturation';
- case 'Color':
- return 'color';
- case 'Luminosity':
- return 'luminosity';
- }
- if (t) return null;
- (0, r.warn)(`Unsupported blend mode: ${e.name}`);
- return 'source-over';
- }
- function incrementCachedImageMaskCount(e) {
- e.fn === r.OPS.paintImageMaskXObject &&
- e.args[0] &&
- e.args[0].count > 0 &&
- e.args[0].count++;
- }
- class TimeSlotManager {
- static TIME_SLOT_DURATION_MS = 20;
- static CHECK_TIME_EVERY = 100;
- constructor() {
- this.reset();
- }
- check() {
- if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) return !1;
- this.checked = 0;
- return this.endTime <= Date.now();
- }
- reset() {
- this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS;
- this.checked = 0;
- }
- }
- class PartialEvaluator {
- constructor({
- xref: e,
- handler: t,
- pageIndex: a,
- idFactory: r,
- fontCache: i,
- builtInCMapCache: n,
- standardFontDataCache: s,
- globalImageCache: o,
- options: c = null,
- }) {
- this.xref = e;
- this.handler = t;
- this.pageIndex = a;
- this.idFactory = r;
- this.fontCache = i;
- this.builtInCMapCache = n;
- this.standardFontDataCache = s;
- this.globalImageCache = o;
- this.options = c || E;
- this.parsingType3Font = !1;
- this._regionalImageCache = new g.RegionalImageCache();
- this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this);
- F.ImageResizer.setMaxArea(this.options.canvasMaxAreaInBytes);
- }
- get _pdfFunctionFactory() {
- const e = new d.PDFFunctionFactory({
- xref: this.xref,
- isEvalSupported: this.options.isEvalSupported,
- });
- return (0, r.shadow)(this, '_pdfFunctionFactory', e);
- }
- clone(e = null) {
- const t = Object.create(this);
- t.options = Object.assign(Object.create(null), this.options, e);
- return t;
- }
- hasBlendModes(e, t) {
- if (!(e instanceof n.Dict)) return !1;
- if (e.objId && t.has(e.objId)) return !1;
- const a = new n.RefSet(t);
- e.objId && a.put(e.objId);
- const i = [e],
- s = this.xref;
- for (; i.length; ) {
- const e = i.shift(),
- t = e.get('ExtGState');
- if (t instanceof n.Dict)
- for (let e of t.getRawValues()) {
- if (e instanceof n.Ref) {
- if (a.has(e)) continue;
- try {
- e = s.fetch(e);
- } catch (t) {
- a.put(e);
- (0, r.info)(`hasBlendModes - ignoring ExtGState: "${t}".`);
- continue;
- }
- }
- if (!(e instanceof n.Dict)) continue;
- e.objId && a.put(e.objId);
- const t = e.get('BM');
- if (t instanceof n.Name) {
- if ('Normal' !== t.name) return !0;
- } else if (void 0 !== t && Array.isArray(t))
- for (const e of t) if (e instanceof n.Name && 'Normal' !== e.name) return !0;
- }
- const o = e.get('XObject');
- if (o instanceof n.Dict)
- for (let e of o.getRawValues()) {
- if (e instanceof n.Ref) {
- if (a.has(e)) continue;
- try {
- e = s.fetch(e);
- } catch (t) {
- a.put(e);
- (0, r.info)(`hasBlendModes - ignoring XObject: "${t}".`);
- continue;
- }
- }
- if (!(e instanceof m.BaseStream)) continue;
- e.dict.objId && a.put(e.dict.objId);
- const t = e.dict.get('Resources');
- if (t instanceof n.Dict && (!t.objId || !a.has(t.objId))) {
- i.push(t);
- t.objId && a.put(t.objId);
- }
- }
- }
- for (const e of a) t.put(e);
- return !1;
- }
- async fetchBuiltInCMap(e) {
- const t = this.builtInCMapCache.get(e);
- if (t) return t;
- let a;
- if (null !== this.options.cMapUrl) {
- const t = `${this.options.cMapUrl}${e}.bcmap`,
- i = await fetch(t);
- if (!i.ok)
- throw new Error(
- `fetchBuiltInCMap: failed to fetch file "${t}" with "${i.statusText}".`,
- );
- a = {
- cMapData: new Uint8Array(await i.arrayBuffer()),
- compressionType: r.CMapCompressionType.BINARY,
- };
- } else a = await this.handler.sendWithPromise('FetchBuiltInCMap', { name: e });
- a.compressionType !== r.CMapCompressionType.NONE && this.builtInCMapCache.set(e, a);
- return a;
- }
- async fetchStandardFontData(e) {
- const t = this.standardFontDataCache.get(e);
- if (t) return new p.Stream(t);
- if (this.options.useSystemFonts && 'Symbol' !== e && 'ZapfDingbats' !== e)
- return null;
- const a = (0, c.getFontNameToFileMap)()[e];
- let i;
- if (null !== this.options.standardFontDataUrl) {
- const e = `${this.options.standardFontDataUrl}${a}`,
- t = await fetch(e);
- t.ok
- ? (i = await t.arrayBuffer())
- : (0, r.warn)(
- `fetchStandardFontData: failed to fetch file "${e}" with "${t.statusText}".`,
- );
- } else
- try {
- i = await this.handler.sendWithPromise('FetchStandardFontData', { filename: a });
- } catch (e) {
- (0, r.warn)(`fetchStandardFontData: failed to fetch file "${a}" with "${e}".`);
- }
- if (!i) return null;
- this.standardFontDataCache.set(e, i);
- return new p.Stream(i);
- }
- async buildFormXObject(e, t, a, i, s, o, c) {
- const l = t.dict,
- h = l.getArray('Matrix');
- let u,
- d,
- f = l.getArray('BBox');
- f = Array.isArray(f) && 4 === f.length ? r.Util.normalizeRect(f) : null;
- l.has('OC') && (u = await this.parseMarkedContentProps(l.get('OC'), e));
- void 0 !== u && i.addOp(r.OPS.beginMarkedContentProps, ['OC', u]);
- const g = l.get('Group');
- if (g) {
- d = { matrix: h, bbox: f, smask: a, isolated: !1, knockout: !1 };
- const t = g.get('S');
- let s = null;
- if ((0, n.isName)(t, 'Transparency')) {
- d.isolated = g.get('I') || !1;
- d.knockout = g.get('K') || !1;
- if (g.has('CS')) {
- const t = g.getRaw('CS'),
- a = y.ColorSpace.getCached(t, this.xref, c);
- s =
- a ||
- (await this.parseColorSpace({
- cs: t,
- resources: e,
- localColorSpaceCache: c,
- }));
- }
- }
- if (a && a.backdrop) {
- s ||= y.ColorSpace.singletons.rgb;
- a.backdrop = s.getRgb(a.backdrop, 0);
- }
- i.addOp(r.OPS.beginGroup, [d]);
- }
- const p = g ? [h, null] : [h, f];
- i.addOp(r.OPS.paintFormXObjectBegin, p);
- return this.getOperatorList({
- stream: t,
- task: s,
- resources: l.get('Resources') || e,
- operatorList: i,
- initialState: o,
- }).then(function () {
- i.addOp(r.OPS.paintFormXObjectEnd, []);
- g && i.addOp(r.OPS.endGroup, [d]);
- void 0 !== u && i.addOp(r.OPS.endMarkedContent, []);
- });
- }
- _sendImgData(e, t, a = !1) {
- const r = t ? [t.bitmap || t.data.buffer] : null;
- return this.parsingType3Font || a
- ? this.handler.send('commonobj', [e, 'Image', t], r)
- : this.handler.send('obj', [e, this.pageIndex, 'Image', t], r);
- }
- async buildPaintImageXObject({
- resources: e,
- image: t,
- isInline: a = !1,
- operatorList: i,
- cacheKey: n,
- localImageCache: s,
- localColorSpaceCache: o,
- }) {
- const c = t.dict,
- l = c.objId,
- h = c.get('W', 'Width'),
- u = c.get('H', 'Height');
- if (!h || 'number' != typeof h || !u || 'number' != typeof u) {
- (0, r.warn)('Image dimensions are missing, or not numbers.');
- return;
- }
- const d = this.options.maxImageSize;
- if (-1 !== d && h * u > d) {
- const e = 'Image exceeded maximum allowed size and was removed.';
- if (this.options.ignoreErrors) {
- (0, r.warn)(e);
- return;
- }
- throw new Error(e);
- }
- let f;
- c.has('OC') && (f = await this.parseMarkedContentProps(c.get('OC'), e));
- let g, p;
- if (c.get('IM', 'ImageMask') || !1) {
- const e = c.get('I', 'Interpolate'),
- a = (h + 7) >> 3,
- o = t.getBytes(a * u),
- d = c.getArray('D', 'Decode');
- if (this.parsingType3Font) {
- g = M.PDFImage.createRawMask({
- imgArray: o,
- width: h,
- height: u,
- imageIsFromDecodeStream: t instanceof w.DecodeStream,
- inverseDecode: !!d && d[0] > 0,
- interpolate: e,
- });
- g.cached = !!n;
- p = [g];
- i.addImageOps(r.OPS.paintImageMaskXObject, p, f);
- if (n) {
- const e = { fn: r.OPS.paintImageMaskXObject, args: p, optionalContent: f };
- s.set(n, l, e);
- l && this._regionalImageCache.set(null, l, e);
- }
- return;
- }
- g = await M.PDFImage.createMask({
- imgArray: o,
- width: h,
- height: u,
- imageIsFromDecodeStream: t instanceof w.DecodeStream,
- inverseDecode: !!d && d[0] > 0,
- interpolate: e,
- isOffscreenCanvasSupported: this.options.isOffscreenCanvasSupported,
- });
- if (g.isSingleOpaquePixel) {
- i.addImageOps(r.OPS.paintSolidColorImageMask, [], f);
- if (n) {
- const e = { fn: r.OPS.paintSolidColorImageMask, args: [], optionalContent: f };
- s.set(n, l, e);
- l && this._regionalImageCache.set(null, l, e);
- }
- return;
- }
- const m = `mask_${this.idFactory.createObjId()}`;
- i.addDependency(m);
- this._sendImgData(m, g);
- p = [
- {
- data: m,
- width: g.width,
- height: g.height,
- interpolate: g.interpolate,
- count: 1,
- },
- ];
- i.addImageOps(r.OPS.paintImageMaskXObject, p, f);
- if (n) {
- const e = { fn: r.OPS.paintImageMaskXObject, args: p, optionalContent: f };
- s.set(n, l, e);
- l && this._regionalImageCache.set(null, l, e);
- }
- return;
- }
- const m = c.get('SM', 'SMask') || !1,
- b = c.get('Mask') || !1;
- if (a && !m && !b && h + u < 200) {
- const n = new M.PDFImage({
- xref: this.xref,
- res: e,
- image: t,
- isInline: a,
- pdfFunctionFactory: this._pdfFunctionFactory,
- localColorSpaceCache: o,
- });
- g = await n.createImageData(!0, !1);
- i.isOffscreenCanvasSupported = this.options.isOffscreenCanvasSupported;
- i.addImageOps(r.OPS.paintInlineImageXObject, [g], f);
- return;
- }
- let y = `img_${this.idFactory.createObjId()}`,
- S = !1;
- if (this.parsingType3Font) y = `${this.idFactory.getDocId()}_type3_${y}`;
- else if (l) {
- S = this.globalImageCache.shouldCache(l, this.pageIndex);
- S && (y = `${this.idFactory.getDocId()}_${y}`);
- }
- i.addDependency(y);
- p = [y, h, u];
- M.PDFImage.buildImage({
- xref: this.xref,
- res: e,
- image: t,
- isInline: a,
- pdfFunctionFactory: this._pdfFunctionFactory,
- localColorSpaceCache: o,
- })
- .then(async (e) => {
- g = await e.createImageData(!1, this.options.isOffscreenCanvasSupported);
- if (n && l && S) {
- let e = 0;
- e = g.bitmap ? g.width * g.height * 4 : g.data.length;
- this.globalImageCache.addByteSize(l, e);
- }
- return this._sendImgData(y, g, S);
- })
- .catch((e) => {
- (0, r.warn)(`Unable to decode image "${y}": "${e}".`);
- return this._sendImgData(y, null, S);
- });
- i.addImageOps(r.OPS.paintImageXObject, p, f);
- if (n) {
- const e = { fn: r.OPS.paintImageXObject, args: p, optionalContent: f };
- s.set(n, l, e);
- if (l) {
- this._regionalImageCache.set(null, l, e);
- if (S) {
- (0, r.assert)(!a, 'Cannot cache an inline image globally.');
- this.globalImageCache.setData(l, {
- objId: y,
- fn: r.OPS.paintImageXObject,
- args: p,
- optionalContent: f,
- byteSize: 0,
- });
- }
- }
- }
- }
- handleSMask(e, t, a, r, i, n) {
- const s = e.get('G'),
- o = { subtype: e.get('S').name, backdrop: e.get('BC') },
- c = e.get('TR');
- if ((0, d.isPDFFunction)(c)) {
- const e = this._pdfFunctionFactory.create(c),
- t = new Uint8Array(256),
- a = new Float32Array(1);
- for (let r = 0; r < 256; r++) {
- a[0] = r / 255;
- e(a, 0, a, 0);
- t[r] = (255 * a[0]) | 0;
- }
- o.transferMap = t;
- }
- return this.buildFormXObject(t, s, o, a, r, i.state.clone(), n);
- }
- handleTransferFunction(e) {
- let t;
- if (Array.isArray(e)) t = e;
- else {
- if (!(0, d.isPDFFunction)(e)) return null;
- t = [e];
- }
- const a = [];
- let r = 0,
- i = 0;
- for (const e of t) {
- const t = this.xref.fetchIfRef(e);
- r++;
- if ((0, n.isName)(t, 'Identity')) {
- a.push(null);
- continue;
- }
- if (!(0, d.isPDFFunction)(t)) return null;
- const s = this._pdfFunctionFactory.create(t),
- o = new Uint8Array(256),
- c = new Float32Array(1);
- for (let e = 0; e < 256; e++) {
- c[0] = e / 255;
- s(c, 0, c, 0);
- o[e] = (255 * c[0]) | 0;
- }
- a.push(o);
- i++;
- }
- return (1 !== r && 4 !== r) || 0 === i ? null : a;
- }
- handleTilingType(e, t, a, i, s, o, c, h) {
- const u = new T.OperatorList(),
- d = n.Dict.merge({ xref: this.xref, dictArray: [s.get('Resources'), a] });
- return this.getOperatorList({ stream: i, task: c, resources: d, operatorList: u })
- .then(function () {
- const a = u.getIR(),
- r = (0, l.getTilingPatternIR)(a, s, t);
- o.addDependencies(u.dependencies);
- o.addOp(e, r);
- s.objId && h.set(null, s.objId, { operatorListIR: a, dict: s });
- })
- .catch((e) => {
- if (!(e instanceof r.AbortException)) {
- if (!this.options.ignoreErrors) throw e;
- (0, r.warn)(`handleTilingType - ignoring pattern: "${e}".`);
- }
- });
- }
- handleSetFont(e, t, a, r, i, o, c = null, l = null) {
- const h = t && t[0] instanceof n.Name ? t[0].name : null;
- return this.loadFont(h, a, e, c, l)
- .then((t) =>
- t.font.isType3Font
- ? t
- .loadType3Data(this, e, i)
- .then(function () {
- r.addDependencies(t.type3Dependencies);
- return t;
- })
- .catch(
- (e) =>
- new TranslatedFont({
- loadedName: 'g_font_error',
- font: new s.ErrorFont(`Type3 font load error: ${e}`),
- dict: t.font,
- evaluatorOptions: this.options,
- }),
- )
- : t,
- )
- .then((e) => {
- o.font = e.font;
- e.send(this.handler);
- return e.loadedName;
- });
- }
- handleText(e, t) {
- const a = t.font,
- i = a.charsToGlyphs(e);
- if (a.data) {
- (!!(t.textRenderingMode & r.TextRenderingMode.ADD_TO_PATH_FLAG) ||
- 'Pattern' === t.fillColorSpace.name ||
- a.disableFontFace ||
- this.options.disableFontFace) &&
- PartialEvaluator.buildFontPaths(a, i, this.handler, this.options);
- }
- return i;
- }
- ensureStateFont(e) {
- if (e.font) return;
- const t = new r.FormatError(
- 'Missing setFont (Tf) operator before text rendering operator.',
- );
- if (!this.options.ignoreErrors) throw t;
- (0, r.warn)(`ensureStateFont: "${t}".`);
- }
- async setGState({
- resources: e,
- gState: t,
- operatorList: a,
- cacheKey: i,
- task: s,
- stateManager: o,
- localGStateCache: c,
- localColorSpaceCache: l,
- }) {
- const h = t.objId;
- let u = !0;
- const d = [];
- let f = Promise.resolve();
- for (const i of t.getKeys()) {
- const c = t.get(i);
- switch (i) {
- case 'Type':
- break;
- case 'LW':
- case 'LC':
- case 'LJ':
- case 'ML':
- case 'D':
- case 'RI':
- case 'FL':
- case 'CA':
- case 'ca':
- d.push([i, c]);
- break;
- case 'Font':
- u = !1;
- f = f.then(() =>
- this.handleSetFont(e, null, c[0], a, s, o.state).then(function (e) {
- a.addDependency(e);
- d.push([i, [e, c[1]]]);
- }),
- );
- break;
- case 'BM':
- d.push([i, normalizeBlendMode(c)]);
- break;
- case 'SMask':
- if ((0, n.isName)(c, 'None')) {
- d.push([i, !1]);
- break;
- }
- if (c instanceof n.Dict) {
- u = !1;
- f = f.then(() => this.handleSMask(c, e, a, s, o, l));
- d.push([i, !0]);
- } else (0, r.warn)('Unsupported SMask type');
- break;
- case 'TR':
- const t = this.handleTransferFunction(c);
- d.push([i, t]);
- break;
- case 'OP':
- case 'op':
- case 'OPM':
- case 'BG':
- case 'BG2':
- case 'UCR':
- case 'UCR2':
- case 'TR2':
- case 'HT':
- case 'SM':
- case 'SA':
- case 'AIS':
- case 'TK':
- (0, r.info)('graphic state operator ' + i);
- break;
- default:
- (0, r.info)('Unknown graphic state operator ' + i);
- }
- }
- return f.then(function () {
- d.length > 0 && a.addOp(r.OPS.setGState, [d]);
- u && c.set(i, h, d);
- });
- }
- loadFont(e, t, a, i = null, o = null) {
- const errorFont = async () =>
- new TranslatedFont({
- loadedName: 'g_font_error',
- font: new s.ErrorFont(`Font "${e}" is not available.`),
- dict: t,
- evaluatorOptions: this.options,
- }),
- c = this.xref;
- let l;
- if (t) t instanceof n.Ref && (l = t);
- else {
- const t = a.get('Font');
- t && (l = t.getRaw(e));
- }
- if (!l) {
- const a = `Font "${e || (t && t.toString())}" is not available`;
- if (!this.options.ignoreErrors && !this.parsingType3Font) {
- (0, r.warn)(`${a}.`);
- return errorFont();
- }
- (0, r.warn)(`${a} -- attempting to fallback to a default font.`);
- l = i || PartialEvaluator.fallbackFontDict;
- }
- if (this.parsingType3Font && this.type3FontRefs.has(l)) return errorFont();
- if (this.fontCache.has(l)) return this.fontCache.get(l);
- if (!((t = c.fetchIfRef(l)) instanceof n.Dict)) return errorFont();
- if (t.cacheKey && this.fontCache.has(t.cacheKey))
- return this.fontCache.get(t.cacheKey);
- const h = new r.PromiseCapability();
- let u;
- try {
- u = this.preEvaluateFont(t);
- u.cssFontInfo = o;
- } catch (e) {
- (0, r.warn)(`loadFont - preEvaluateFont failed: "${e}".`);
- return errorFont();
- }
- const { descriptor: d, hash: f } = u,
- g = l instanceof n.Ref;
- let p;
- g && (p = `f${l.toString()}`);
- if (f && d instanceof n.Dict) {
- const e = (d.fontAliases ||= Object.create(null));
- if (e[f]) {
- const t = e[f].aliasRef;
- if (g && t && this.fontCache.has(t)) {
- this.fontCache.putAlias(l, t);
- return this.fontCache.get(l);
- }
- } else e[f] = { fontID: this.idFactory.createFontId() };
- g && (e[f].aliasRef = l);
- p = e[f].fontID;
- }
- if (g) this.fontCache.put(l, h.promise);
- else {
- p || (p = this.idFactory.createFontId());
- t.cacheKey = `cacheKey_${p}`;
- this.fontCache.put(t.cacheKey, h.promise);
- }
- (0, r.assert)(p && p.startsWith('f'), 'The "fontID" must be (correctly) defined.');
- t.loadedName = `${this.idFactory.getDocId()}_${p}`;
- this.translateFont(u)
- .then((e) => {
- h.resolve(
- new TranslatedFont({
- loadedName: t.loadedName,
- font: e,
- dict: t,
- evaluatorOptions: this.options,
- }),
- );
- })
- .catch((e) => {
- (0, r.warn)(`loadFont - translateFont failed: "${e}".`);
- h.resolve(
- new TranslatedFont({
- loadedName: t.loadedName,
- font: new s.ErrorFont(e instanceof Error ? e.message : e),
- dict: t,
- evaluatorOptions: this.options,
- }),
- );
- });
- return h.promise;
- }
- buildPath(e, t, a, i = !1) {
- const n = e.length - 1;
- a || (a = []);
- if (n < 0 || e.fnArray[n] !== r.OPS.constructPath) {
- if (i) {
- (0, r.warn)(`Encountered path operator "${t}" inside of a text object.`);
- e.addOp(r.OPS.save, null);
- }
- let n;
- switch (t) {
- case r.OPS.rectangle:
- const e = a[0] + a[2],
- t = a[1] + a[3];
- n = [
- Math.min(a[0], e),
- Math.max(a[0], e),
- Math.min(a[1], t),
- Math.max(a[1], t),
- ];
- break;
- case r.OPS.moveTo:
- case r.OPS.lineTo:
- n = [a[0], a[0], a[1], a[1]];
- break;
- default:
- n = [1 / 0, -1 / 0, 1 / 0, -1 / 0];
- }
- e.addOp(r.OPS.constructPath, [[t], a, n]);
- i && e.addOp(r.OPS.restore, null);
- } else {
- const i = e.argsArray[n];
- i[0].push(t);
- i[1].push(...a);
- const s = i[2];
- switch (t) {
- case r.OPS.rectangle:
- const e = a[0] + a[2],
- t = a[1] + a[3];
- s[0] = Math.min(s[0], a[0], e);
- s[1] = Math.max(s[1], a[0], e);
- s[2] = Math.min(s[2], a[1], t);
- s[3] = Math.max(s[3], a[1], t);
- break;
- case r.OPS.moveTo:
- case r.OPS.lineTo:
- s[0] = Math.min(s[0], a[0]);
- s[1] = Math.max(s[1], a[0]);
- s[2] = Math.min(s[2], a[1]);
- s[3] = Math.max(s[3], a[1]);
- }
- }
- }
- parseColorSpace({ cs: e, resources: t, localColorSpaceCache: a }) {
- return y.ColorSpace.parseAsync({
- cs: e,
- xref: this.xref,
- resources: t,
- pdfFunctionFactory: this._pdfFunctionFactory,
- localColorSpaceCache: a,
- }).catch((e) => {
- if (e instanceof r.AbortException) return null;
- if (this.options.ignoreErrors) {
- (0, r.warn)(`parseColorSpace - ignoring ColorSpace: "${e}".`);
- return null;
- }
- throw e;
- });
- }
- parseShading({
- shading: e,
- resources: t,
- localColorSpaceCache: a,
- localShadingPatternCache: r,
- }) {
- let i = r.get(e);
- if (!i) {
- const n = l.Pattern.parseShading(
- e,
- this.xref,
- t,
- this._pdfFunctionFactory,
- a,
- ).getIR();
- i = `pattern_${this.idFactory.createObjId()}`;
- this.parsingType3Font && (i = `${this.idFactory.getDocId()}_type3_${i}`);
- r.set(e, i);
- this.parsingType3Font
- ? this.handler.send('commonobj', [i, 'Pattern', n])
- : this.handler.send('obj', [i, this.pageIndex, 'Pattern', n]);
- }
- return i;
- }
- handleColorN(e, t, a, i, s, o, c, h, u, d) {
- const f = a.pop();
- if (f instanceof n.Name) {
- const g = s.getRaw(f.name),
- p = g instanceof n.Ref && u.getByRef(g);
- if (p)
- try {
- const r = i.base ? i.base.getRgb(a, 0) : null,
- n = (0, l.getTilingPatternIR)(p.operatorListIR, p.dict, r);
- e.addOp(t, n);
- return;
- } catch (e) {}
- const b = this.xref.fetchIfRef(g);
- if (b) {
- const n = b instanceof m.BaseStream ? b.dict : b,
- s = n.get('PatternType');
- if (s === D) {
- const r = i.base ? i.base.getRgb(a, 0) : null;
- return this.handleTilingType(t, r, o, b, n, e, c, u);
- }
- if (s === N) {
- const a = n.get('Shading'),
- r = n.getArray('Matrix'),
- i = this.parseShading({
- shading: a,
- resources: o,
- localColorSpaceCache: h,
- localShadingPatternCache: d,
- });
- e.addOp(t, ['Shading', i, r]);
- return;
- }
- throw new r.FormatError(`Unknown PatternType: ${s}`);
- }
- }
- throw new r.FormatError(`Unknown PatternName: ${f}`);
- }
- _parseVisibilityExpression(e, t, a) {
- if (++t > 10) {
- (0, r.warn)('Visibility expression is too deeply nested');
- return;
- }
- const i = e.length,
- s = this.xref.fetchIfRef(e[0]);
- if (!(i < 2) && s instanceof n.Name) {
- switch (s.name) {
- case 'And':
- case 'Or':
- case 'Not':
- a.push(s.name);
- break;
- default:
- (0, r.warn)(`Invalid operator ${s.name} in visibility expression`);
- return;
- }
- for (let r = 1; r < i; r++) {
- const i = e[r],
- s = this.xref.fetchIfRef(i);
- if (Array.isArray(s)) {
- const e = [];
- a.push(e);
- this._parseVisibilityExpression(s, t, e);
- } else i instanceof n.Ref && a.push(i.toString());
- }
- } else (0, r.warn)('Invalid visibility expression');
- }
- async parseMarkedContentProps(e, t) {
- let a;
- if (e instanceof n.Name) {
- a = t.get('Properties').get(e.name);
- } else {
- if (!(e instanceof n.Dict))
- throw new r.FormatError('Optional content properties malformed.');
- a = e;
- }
- const i = a.get('Type').name;
- if ('OCG' === i) return { type: i, id: a.objId };
- if ('OCMD' === i) {
- const e = a.get('VE');
- if (Array.isArray(e)) {
- const t = [];
- this._parseVisibilityExpression(e, 0, t);
- if (t.length > 0) return { type: 'OCMD', expression: t };
- }
- const t = a.get('OCGs');
- if (Array.isArray(t) || t instanceof n.Dict) {
- const e = [];
- if (Array.isArray(t)) for (const a of t) e.push(a.toString());
- else e.push(t.objId);
- return {
- type: i,
- ids: e,
- policy: a.get('P') instanceof n.Name ? a.get('P').name : null,
- expression: null,
- };
- }
- if (t instanceof n.Ref) return { type: i, id: t.toString() };
- }
- return null;
- }
- getOperatorList({
- stream: e,
- task: t,
- resources: a,
- operatorList: i,
- initialState: s = null,
- fallbackFontDict: o = null,
- }) {
- a ||= n.Dict.empty;
- s ||= new EvalState();
- if (!i) throw new Error('getOperatorList: missing "operatorList" parameter');
- const c = this,
- l = this.xref;
- let h = !1;
- const u = new g.LocalImageCache(),
- d = new g.LocalColorSpaceCache(),
- f = new g.LocalGStateCache(),
- p = new g.LocalTilingPatternCache(),
- b = new Map(),
- w = a.get('XObject') || n.Dict.empty,
- S = a.get('Pattern') || n.Dict.empty,
- x = new StateManager(s),
- C = new EvaluatorPreprocessor(e, l, x),
- k = new TimeSlotManager();
- function closePendingRestoreOPS(e) {
- for (let e = 0, t = C.savedStatesDepth; e < t; e++) i.addOp(r.OPS.restore, []);
- }
- return new Promise(function promiseBody(e, s) {
- const next = function (t) {
- Promise.all([t, i.ready]).then(function () {
- try {
- promiseBody(e, s);
- } catch (e) {
- s(e);
- }
- }, s);
- };
- t.ensureNotTerminated();
- k.reset();
- const g = {};
- let v, F, O, T, M, E;
- for (; !(v = k.check()); ) {
- g.args = null;
- if (!C.read(g)) break;
- let e = g.args,
- s = g.fn;
- switch (0 | s) {
- case r.OPS.paintXObject:
- E = e[0] instanceof n.Name;
- M = e[0].name;
- if (E) {
- const t = u.getByName(M);
- if (t) {
- i.addImageOps(t.fn, t.args, t.optionalContent);
- incrementCachedImageMaskCount(t);
- e = null;
- continue;
- }
- }
- next(
- new Promise(function (e, s) {
- if (!E) throw new r.FormatError('XObject must be referred to by name.');
- let o = w.getRaw(M);
- if (o instanceof n.Ref) {
- const t = u.getByRef(o) || c._regionalImageCache.getByRef(o);
- if (t) {
- i.addImageOps(t.fn, t.args, t.optionalContent);
- incrementCachedImageMaskCount(t);
- e();
- return;
- }
- const a = c.globalImageCache.getData(o, c.pageIndex);
- if (a) {
- i.addDependency(a.objId);
- i.addImageOps(a.fn, a.args, a.optionalContent);
- e();
- return;
- }
- o = l.fetch(o);
- }
- if (!(o instanceof m.BaseStream))
- throw new r.FormatError('XObject should be a stream');
- const h = o.dict.get('Subtype');
- if (!(h instanceof n.Name))
- throw new r.FormatError('XObject should have a Name subtype');
- if ('Form' !== h.name)
- if ('Image' !== h.name) {
- if ('PS' !== h.name)
- throw new r.FormatError(`Unhandled XObject subtype ${h.name}`);
- (0, r.info)('Ignored XObject subtype PS');
- e();
- } else
- c.buildPaintImageXObject({
- resources: a,
- image: o,
- operatorList: i,
- cacheKey: M,
- localImageCache: u,
- localColorSpaceCache: d,
- }).then(e, s);
- else {
- x.save();
- c.buildFormXObject(a, o, null, i, t, x.state.clone(), d).then(
- function () {
- x.restore();
- e();
- },
- s,
- );
- }
- }).catch(function (e) {
- if (!(e instanceof r.AbortException)) {
- if (!c.options.ignoreErrors) throw e;
- (0, r.warn)(`getOperatorList - ignoring XObject: "${e}".`);
- }
- }),
- );
- return;
- case r.OPS.setFont:
- var D = e[1];
- next(
- c.handleSetFont(a, e, null, i, t, x.state, o).then(function (e) {
- i.addDependency(e);
- i.addOp(r.OPS.setFont, [e, D]);
- }),
- );
- return;
- case r.OPS.beginText:
- h = !0;
- break;
- case r.OPS.endText:
- h = !1;
- break;
- case r.OPS.endInlineImage:
- var N = e[0].cacheKey;
- if (N) {
- const t = u.getByName(N);
- if (t) {
- i.addImageOps(t.fn, t.args, t.optionalContent);
- incrementCachedImageMaskCount(t);
- e = null;
- continue;
- }
- }
- next(
- c.buildPaintImageXObject({
- resources: a,
- image: e[0],
- isInline: !0,
- operatorList: i,
- cacheKey: N,
- localImageCache: u,
- localColorSpaceCache: d,
- }),
- );
- return;
- case r.OPS.showText:
- if (!x.state.font) {
- c.ensureStateFont(x.state);
- continue;
- }
- e[0] = c.handleText(e[0], x.state);
- break;
- case r.OPS.showSpacedText:
- if (!x.state.font) {
- c.ensureStateFont(x.state);
- continue;
- }
- var L = [],
- _ = x.state;
- for (const t of e[0])
- 'string' == typeof t
- ? L.push(...c.handleText(t, _))
- : 'number' == typeof t && L.push(t);
- e[0] = L;
- s = r.OPS.showText;
- break;
- case r.OPS.nextLineShowText:
- if (!x.state.font) {
- c.ensureStateFont(x.state);
- continue;
- }
- i.addOp(r.OPS.nextLine);
- e[0] = c.handleText(e[0], x.state);
- s = r.OPS.showText;
- break;
- case r.OPS.nextLineSetSpacingShowText:
- if (!x.state.font) {
- c.ensureStateFont(x.state);
- continue;
- }
- i.addOp(r.OPS.nextLine);
- i.addOp(r.OPS.setWordSpacing, [e.shift()]);
- i.addOp(r.OPS.setCharSpacing, [e.shift()]);
- e[0] = c.handleText(e[0], x.state);
- s = r.OPS.showText;
- break;
- case r.OPS.setTextRenderingMode:
- x.state.textRenderingMode = e[0];
- break;
- case r.OPS.setFillColorSpace: {
- const t = y.ColorSpace.getCached(e[0], l, d);
- if (t) {
- x.state.fillColorSpace = t;
- continue;
- }
- next(
- c
- .parseColorSpace({ cs: e[0], resources: a, localColorSpaceCache: d })
- .then(function (e) {
- e && (x.state.fillColorSpace = e);
- }),
- );
- return;
- }
- case r.OPS.setStrokeColorSpace: {
- const t = y.ColorSpace.getCached(e[0], l, d);
- if (t) {
- x.state.strokeColorSpace = t;
- continue;
- }
- next(
- c
- .parseColorSpace({ cs: e[0], resources: a, localColorSpaceCache: d })
- .then(function (e) {
- e && (x.state.strokeColorSpace = e);
- }),
- );
- return;
- }
- case r.OPS.setFillColor:
- T = x.state.fillColorSpace;
- e = T.getRgb(e, 0);
- s = r.OPS.setFillRGBColor;
- break;
- case r.OPS.setStrokeColor:
- T = x.state.strokeColorSpace;
- e = T.getRgb(e, 0);
- s = r.OPS.setStrokeRGBColor;
- break;
- case r.OPS.setFillGray:
- x.state.fillColorSpace = y.ColorSpace.singletons.gray;
- e = y.ColorSpace.singletons.gray.getRgb(e, 0);
- s = r.OPS.setFillRGBColor;
- break;
- case r.OPS.setStrokeGray:
- x.state.strokeColorSpace = y.ColorSpace.singletons.gray;
- e = y.ColorSpace.singletons.gray.getRgb(e, 0);
- s = r.OPS.setStrokeRGBColor;
- break;
- case r.OPS.setFillCMYKColor:
- x.state.fillColorSpace = y.ColorSpace.singletons.cmyk;
- e = y.ColorSpace.singletons.cmyk.getRgb(e, 0);
- s = r.OPS.setFillRGBColor;
- break;
- case r.OPS.setStrokeCMYKColor:
- x.state.strokeColorSpace = y.ColorSpace.singletons.cmyk;
- e = y.ColorSpace.singletons.cmyk.getRgb(e, 0);
- s = r.OPS.setStrokeRGBColor;
- break;
- case r.OPS.setFillRGBColor:
- x.state.fillColorSpace = y.ColorSpace.singletons.rgb;
- e = y.ColorSpace.singletons.rgb.getRgb(e, 0);
- break;
- case r.OPS.setStrokeRGBColor:
- x.state.strokeColorSpace = y.ColorSpace.singletons.rgb;
- e = y.ColorSpace.singletons.rgb.getRgb(e, 0);
- break;
- case r.OPS.setFillColorN:
- T = x.state.fillColorSpace;
- if ('Pattern' === T.name) {
- next(c.handleColorN(i, r.OPS.setFillColorN, e, T, S, a, t, d, p, b));
- return;
- }
- e = T.getRgb(e, 0);
- s = r.OPS.setFillRGBColor;
- break;
- case r.OPS.setStrokeColorN:
- T = x.state.strokeColorSpace;
- if ('Pattern' === T.name) {
- next(c.handleColorN(i, r.OPS.setStrokeColorN, e, T, S, a, t, d, p, b));
- return;
- }
- e = T.getRgb(e, 0);
- s = r.OPS.setStrokeRGBColor;
- break;
- case r.OPS.shadingFill:
- var $ = a.get('Shading');
- if (!$) throw new r.FormatError('No shading resource found');
- var j = $.get(e[0].name);
- if (!j) throw new r.FormatError('No shading object found');
- e = [
- c.parseShading({
- shading: j,
- resources: a,
- localColorSpaceCache: d,
- localShadingPatternCache: b,
- }),
- ];
- s = r.OPS.shadingFill;
- break;
- case r.OPS.setGState:
- E = e[0] instanceof n.Name;
- M = e[0].name;
- if (E) {
- const t = f.getByName(M);
- if (t) {
- t.length > 0 && i.addOp(r.OPS.setGState, [t]);
- e = null;
- continue;
- }
- }
- next(
- new Promise(function (e, s) {
- if (!E) throw new r.FormatError('GState must be referred to by name.');
- const o = a.get('ExtGState');
- if (!(o instanceof n.Dict))
- throw new r.FormatError('ExtGState should be a dictionary.');
- const l = o.get(M);
- if (!(l instanceof n.Dict))
- throw new r.FormatError('GState should be a dictionary.');
- c.setGState({
- resources: a,
- gState: l,
- operatorList: i,
- cacheKey: M,
- task: t,
- stateManager: x,
- localGStateCache: f,
- localColorSpaceCache: d,
- }).then(e, s);
- }).catch(function (e) {
- if (!(e instanceof r.AbortException)) {
- if (!c.options.ignoreErrors) throw e;
- (0, r.warn)(`getOperatorList - ignoring ExtGState: "${e}".`);
- }
- }),
- );
- return;
- case r.OPS.moveTo:
- case r.OPS.lineTo:
- case r.OPS.curveTo:
- case r.OPS.curveTo2:
- case r.OPS.curveTo3:
- case r.OPS.closePath:
- case r.OPS.rectangle:
- c.buildPath(i, s, e, h);
- continue;
- case r.OPS.markPoint:
- case r.OPS.markPointProps:
- case r.OPS.beginCompat:
- case r.OPS.endCompat:
- continue;
- case r.OPS.beginMarkedContentProps:
- if (!(e[0] instanceof n.Name)) {
- (0, r.warn)(`Expected name for beginMarkedContentProps arg0=${e[0]}`);
- continue;
- }
- if ('OC' === e[0].name) {
- next(
- c
- .parseMarkedContentProps(e[1], a)
- .then((e) => {
- i.addOp(r.OPS.beginMarkedContentProps, ['OC', e]);
- })
- .catch((e) => {
- if (!(e instanceof r.AbortException)) {
- if (!c.options.ignoreErrors) throw e;
- (0, r.warn)(
- `getOperatorList - ignoring beginMarkedContentProps: "${e}".`,
- );
- }
- }),
- );
- return;
- }
- e = [e[0].name, e[1] instanceof n.Dict ? e[1].get('MCID') : null];
- break;
- case r.OPS.beginMarkedContent:
- case r.OPS.endMarkedContent:
- default:
- if (null !== e) {
- for (F = 0, O = e.length; F < O && !(e[F] instanceof n.Dict); F++);
- if (F < O) {
- (0, r.warn)('getOperatorList - ignoring operator: ' + s);
- continue;
- }
- }
- }
- i.addOp(s, e);
- }
- if (v) next(R);
- else {
- closePendingRestoreOPS();
- e();
- }
- }).catch((e) => {
- if (!(e instanceof r.AbortException)) {
- if (!this.options.ignoreErrors) throw e;
- (0, r.warn)(`getOperatorList - ignoring errors during "${t.name}" task: "${e}".`);
- closePendingRestoreOPS();
- }
- });
- }
- getTextContent({
- stream: e,
- task: t,
- resources: a,
- stateManager: i = null,
- includeMarkedContent: s = !1,
- sink: o,
- seenStyles: c = new Set(),
- viewBox: l,
- markedContentData: h = null,
- disableNormalization: u = !1,
- }) {
- a ||= n.Dict.empty;
- i ||= new StateManager(new TextState());
- s && (h ||= { level: 0 });
- const d = { items: [], styles: Object.create(null) },
- f = {
- initialized: !1,
- str: [],
- totalWidth: 0,
- totalHeight: 0,
- width: 0,
- height: 0,
- vertical: !1,
- prevTransform: null,
- textAdvanceScale: 0,
- spaceInFlowMin: 0,
- spaceInFlowMax: 0,
- trackingSpaceMin: 1 / 0,
- negativeSpaceMax: -1 / 0,
- notASpace: -1 / 0,
- transform: null,
- fontName: null,
- hasEOL: !1,
- },
- p = [' ', ' '];
- let y = 0;
- function saveLastChar(e) {
- const t = (y + 1) % 2,
- a = ' ' !== p[y] && ' ' === p[t];
- p[y] = e;
- y = t;
- return a;
- }
- function shouldAddWhitepsace() {
- return ' ' !== p[y] && ' ' === p[(y + 1) % 2];
- }
- function resetLastChars() {
- p[0] = p[1] = ' ';
- y = 0;
- }
- const w = this,
- S = this.xref,
- x = [];
- let C = null;
- const k = new g.LocalImageCache(),
- v = new g.LocalGStateCache(),
- F = new EvaluatorPreprocessor(e, S, i);
- let O;
- function pushWhitespace({
- width: e = 0,
- height: t = 0,
- transform: a = f.prevTransform,
- fontName: r = f.fontName,
- }) {
- d.items.push({
- str: ' ',
- dir: 'ltr',
- width: e,
- height: t,
- transform: a,
- fontName: r,
- hasEOL: !1,
- });
- }
- function getCurrentTextTransform() {
- const e = O.font,
- t = [O.fontSize * O.textHScale, 0, 0, O.fontSize, 0, O.textRise];
- if (
- e.isType3Font &&
- (O.fontSize <= 1 || e.isCharBBox) &&
- !(0, r.isArrayEqual)(O.fontMatrix, r.FONT_IDENTITY_MATRIX)
- ) {
- const a = e.bbox[3] - e.bbox[1];
- a > 0 && (t[3] *= a * O.fontMatrix[3]);
- }
- return r.Util.transform(O.ctm, r.Util.transform(O.textMatrix, t));
- }
- function ensureTextContentItem() {
- if (f.initialized) return f;
- const { font: e, loadedName: t } = O;
- if (!c.has(t)) {
- c.add(t);
- d.styles[t] = {
- fontFamily: e.fallbackName,
- ascent: e.ascent,
- descent: e.descent,
- vertical: e.vertical,
- };
- }
- f.fontName = t;
- const a = (f.transform = getCurrentTextTransform());
- if (e.vertical) {
- f.width = f.totalWidth = Math.hypot(a[0], a[1]);
- f.height = f.totalHeight = 0;
- f.vertical = !0;
- } else {
- f.width = f.totalWidth = 0;
- f.height = f.totalHeight = Math.hypot(a[2], a[3]);
- f.vertical = !1;
- }
- const r = Math.hypot(O.textLineMatrix[0], O.textLineMatrix[1]),
- i = Math.hypot(O.ctm[0], O.ctm[1]);
- f.textAdvanceScale = i * r;
- const { fontSize: n } = O;
- f.trackingSpaceMin = 0.102 * n;
- f.notASpace = 0.03 * n;
- f.negativeSpaceMax = -0.2 * n;
- f.spaceInFlowMin = 0.102 * n;
- f.spaceInFlowMax = 0.6 * n;
- f.hasEOL = !1;
- f.initialized = !0;
- return f;
- }
- function updateAdvanceScale() {
- if (!f.initialized) return;
- const e = Math.hypot(O.textLineMatrix[0], O.textLineMatrix[1]),
- t = Math.hypot(O.ctm[0], O.ctm[1]) * e;
- if (t !== f.textAdvanceScale) {
- if (f.vertical) {
- f.totalHeight += f.height * f.textAdvanceScale;
- f.height = 0;
- } else {
- f.totalWidth += f.width * f.textAdvanceScale;
- f.width = 0;
- }
- f.textAdvanceScale = t;
- }
- }
- function handleSetFont(e, i) {
- return w
- .loadFont(e, i, a)
- .then(function (e) {
- return e.font.isType3Font
- ? e
- .loadType3Data(w, a, t)
- .catch(function () {})
- .then(function () {
- return e;
- })
- : e;
- })
- .then(function (e) {
- O.loadedName = e.loadedName;
- O.font = e.font;
- O.fontMatrix = e.font.fontMatrix || r.FONT_IDENTITY_MATRIX;
- });
- }
- function applyInverseRotation(e, t, a) {
- const r = Math.hypot(a[0], a[1]);
- return [(a[0] * e + a[1] * t) / r, (a[2] * e + a[3] * t) / r];
- }
- function compareWithLastPosition(e) {
- const t = getCurrentTextTransform();
- let a = t[4],
- r = t[5];
- if (O.font && O.font.vertical) {
- if (a < l[0] || a > l[2] || r + e < l[1] || r > l[3]) return !1;
- } else if (a + e < l[0] || a > l[2] || r < l[1] || r > l[3]) return !1;
- if (!O.font || !f.prevTransform) return !0;
- let i = f.prevTransform[4],
- n = f.prevTransform[5];
- if (i === a && n === r) return !0;
- let s = -1;
- t[0] && 0 === t[1] && 0 === t[2]
- ? (s = t[0] > 0 ? 0 : 180)
- : t[1] && 0 === t[0] && 0 === t[3] && (s = t[1] > 0 ? 90 : 270);
- switch (s) {
- case 0:
- break;
- case 90:
- [a, r] = [r, a];
- [i, n] = [n, i];
- break;
- case 180:
- [a, r, i, n] = [-a, -r, -i, -n];
- break;
- case 270:
- [a, r] = [-r, -a];
- [i, n] = [-n, -i];
- break;
- default:
- [a, r] = applyInverseRotation(a, r, t);
- [i, n] = applyInverseRotation(i, n, f.prevTransform);
- }
- if (O.font.vertical) {
- const e = (n - r) / f.textAdvanceScale,
- t = a - i,
- s = Math.sign(f.height);
- if (e < s * f.negativeSpaceMax) {
- if (Math.abs(t) > 0.5 * f.width) {
- appendEOL();
- return !0;
- }
- resetLastChars();
- flushTextContentItem();
- return !0;
- }
- if (Math.abs(t) > f.width) {
- appendEOL();
- return !0;
- }
- e <= s * f.notASpace && resetLastChars();
- if (e <= s * f.trackingSpaceMin)
- if (shouldAddWhitepsace()) {
- resetLastChars();
- flushTextContentItem();
- pushWhitespace({ height: Math.abs(e) });
- } else f.height += e;
- else if (!addFakeSpaces(e, f.prevTransform, s))
- if (0 === f.str.length) {
- resetLastChars();
- pushWhitespace({ height: Math.abs(e) });
- } else f.height += e;
- Math.abs(t) > 0.25 * f.width && flushTextContentItem();
- return !0;
- }
- const o = (a - i) / f.textAdvanceScale,
- c = r - n,
- h = Math.sign(f.width);
- if (o < h * f.negativeSpaceMax) {
- if (Math.abs(c) > 0.5 * f.height) {
- appendEOL();
- return !0;
- }
- resetLastChars();
- flushTextContentItem();
- return !0;
- }
- if (Math.abs(c) > f.height) {
- appendEOL();
- return !0;
- }
- o <= h * f.notASpace && resetLastChars();
- if (o <= h * f.trackingSpaceMin)
- if (shouldAddWhitepsace()) {
- resetLastChars();
- flushTextContentItem();
- pushWhitespace({ width: Math.abs(o) });
- } else f.width += o;
- else if (!addFakeSpaces(o, f.prevTransform, h))
- if (0 === f.str.length) {
- resetLastChars();
- pushWhitespace({ width: Math.abs(o) });
- } else f.width += o;
- Math.abs(c) > 0.25 * f.height && flushTextContentItem();
- return !0;
- }
- function buildTextContentItem({ chars: e, extraSpacing: t }) {
- const a = O.font;
- if (!e) {
- const e = O.charSpacing + t;
- e &&
- (a.vertical
- ? O.translateTextMatrix(0, -e)
- : O.translateTextMatrix(e * O.textHScale, 0));
- return;
- }
- const r = a.charsToGlyphs(e),
- i = O.fontMatrix[0] * O.fontSize;
- for (let e = 0, n = r.length; e < n; e++) {
- const s = r[e],
- { category: o } = s;
- if (o.isInvisibleFormatMark) continue;
- let c = O.charSpacing + (e + 1 === n ? t : 0),
- l = s.width;
- a.vertical && (l = s.vmetric ? s.vmetric[0] : -l);
- let h = l * i;
- if (o.isWhitespace) {
- if (a.vertical) {
- c += -h + O.wordSpacing;
- O.translateTextMatrix(0, -c);
- } else {
- c += h + O.wordSpacing;
- O.translateTextMatrix(c * O.textHScale, 0);
- }
- saveLastChar(' ');
- continue;
- }
- if (!o.isZeroWidthDiacritic && !compareWithLastPosition(h)) {
- a.vertical
- ? O.translateTextMatrix(0, h)
- : O.translateTextMatrix(h * O.textHScale, 0);
- continue;
- }
- const u = ensureTextContentItem();
- o.isZeroWidthDiacritic && (h = 0);
- if (a.vertical) {
- O.translateTextMatrix(0, h);
- h = Math.abs(h);
- u.height += h;
- } else {
- h *= O.textHScale;
- O.translateTextMatrix(h, 0);
- u.width += h;
- }
- h && (u.prevTransform = getCurrentTextTransform());
- const d = s.unicode;
- saveLastChar(d) && u.str.push(' ');
- u.str.push(d);
- c &&
- (a.vertical
- ? O.translateTextMatrix(0, -c)
- : O.translateTextMatrix(c * O.textHScale, 0));
- }
- }
- function appendEOL() {
- resetLastChars();
- if (f.initialized) {
- f.hasEOL = !0;
- flushTextContentItem();
- } else
- d.items.push({
- str: '',
- dir: 'ltr',
- width: 0,
- height: 0,
- transform: getCurrentTextTransform(),
- fontName: O.loadedName,
- hasEOL: !0,
- });
- }
- function addFakeSpaces(e, t, a) {
- if (a * f.spaceInFlowMin <= e && e <= a * f.spaceInFlowMax) {
- if (f.initialized) {
- resetLastChars();
- f.str.push(' ');
- }
- return !1;
- }
- const r = f.fontName;
- let i = 0;
- if (f.vertical) {
- i = e;
- e = 0;
- }
- flushTextContentItem();
- resetLastChars();
- pushWhitespace({
- width: Math.abs(e),
- height: Math.abs(i),
- transform: t || getCurrentTextTransform(),
- fontName: r,
- });
- return !0;
- }
- function flushTextContentItem() {
- if (f.initialized && f.str) {
- f.vertical
- ? (f.totalHeight += f.height * f.textAdvanceScale)
- : (f.totalWidth += f.width * f.textAdvanceScale);
- d.items.push(
- (function runBidiTransform(e) {
- let t = e.str.join('');
- u || (t = (0, r.normalizeUnicode)(t));
- const a = (0, b.bidi)(t, -1, e.vertical);
- return {
- str: a.str,
- dir: a.dir,
- width: Math.abs(e.totalWidth),
- height: Math.abs(e.totalHeight),
- transform: e.transform,
- fontName: e.fontName,
- hasEOL: e.hasEOL,
- };
- })(f),
- );
- f.initialized = !1;
- f.str.length = 0;
- }
- }
- function enqueueChunk(e = !1) {
- const t = d.items.length;
- if (0 !== t && !(e && t < 10)) {
- o.enqueue(d, t);
- d.items = [];
- d.styles = Object.create(null);
- }
- }
- const T = new TimeSlotManager();
- return new Promise(function promiseBody(e, f) {
- const next = function (t) {
- enqueueChunk(!0);
- Promise.all([t, o.ready]).then(function () {
- try {
- promiseBody(e, f);
- } catch (e) {
- f(e);
- }
- }, f);
- };
- t.ensureNotTerminated();
- T.reset();
- const g = {};
- let p,
- b = [];
- for (; !(p = T.check()); ) {
- b.length = 0;
- g.args = b;
- if (!F.read(g)) break;
- O = i.state;
- const e = g.fn;
- b = g.args;
- switch (0 | e) {
- case r.OPS.setFont:
- var y = b[0].name,
- M = b[1];
- if (O.font && y === O.fontName && M === O.fontSize) break;
- flushTextContentItem();
- O.fontName = y;
- O.fontSize = M;
- next(handleSetFont(y, null));
- return;
- case r.OPS.setTextRise:
- O.textRise = b[0];
- break;
- case r.OPS.setHScale:
- O.textHScale = b[0] / 100;
- break;
- case r.OPS.setLeading:
- O.leading = b[0];
- break;
- case r.OPS.moveText:
- O.translateTextLineMatrix(b[0], b[1]);
- O.textMatrix = O.textLineMatrix.slice();
- break;
- case r.OPS.setLeadingMoveText:
- O.leading = -b[1];
- O.translateTextLineMatrix(b[0], b[1]);
- O.textMatrix = O.textLineMatrix.slice();
- break;
- case r.OPS.nextLine:
- O.carriageReturn();
- break;
- case r.OPS.setTextMatrix:
- O.setTextMatrix(b[0], b[1], b[2], b[3], b[4], b[5]);
- O.setTextLineMatrix(b[0], b[1], b[2], b[3], b[4], b[5]);
- updateAdvanceScale();
- break;
- case r.OPS.setCharSpacing:
- O.charSpacing = b[0];
- break;
- case r.OPS.setWordSpacing:
- O.wordSpacing = b[0];
- break;
- case r.OPS.beginText:
- O.textMatrix = r.IDENTITY_MATRIX.slice();
- O.textLineMatrix = r.IDENTITY_MATRIX.slice();
- break;
- case r.OPS.showSpacedText:
- if (!i.state.font) {
- w.ensureStateFont(i.state);
- continue;
- }
- const e = ((O.font.vertical ? 1 : -1) * O.fontSize) / 1e3,
- f = b[0];
- for (let t = 0, a = f.length; t < a - 1; t++) {
- const a = f[t];
- if ('string' == typeof a) x.push(a);
- else if ('number' == typeof a && 0 !== a) {
- const t = x.join('');
- x.length = 0;
- buildTextContentItem({ chars: t, extraSpacing: a * e });
- }
- }
- const g = f.at(-1);
- 'string' == typeof g && x.push(g);
- if (x.length > 0) {
- const e = x.join('');
- x.length = 0;
- buildTextContentItem({ chars: e, extraSpacing: 0 });
- }
- break;
- case r.OPS.showText:
- if (!i.state.font) {
- w.ensureStateFont(i.state);
- continue;
- }
- buildTextContentItem({ chars: b[0], extraSpacing: 0 });
- break;
- case r.OPS.nextLineShowText:
- if (!i.state.font) {
- w.ensureStateFont(i.state);
- continue;
- }
- O.carriageReturn();
- buildTextContentItem({ chars: b[0], extraSpacing: 0 });
- break;
- case r.OPS.nextLineSetSpacingShowText:
- if (!i.state.font) {
- w.ensureStateFont(i.state);
- continue;
- }
- O.wordSpacing = b[0];
- O.charSpacing = b[1];
- O.carriageReturn();
- buildTextContentItem({ chars: b[2], extraSpacing: 0 });
- break;
- case r.OPS.paintXObject:
- flushTextContentItem();
- C || (C = a.get('XObject') || n.Dict.empty);
- var E = b[0] instanceof n.Name,
- D = b[0].name;
- if (E && k.getByName(D)) break;
- next(
- new Promise(function (e, d) {
- if (!E) throw new r.FormatError('XObject must be referred to by name.');
- let f = C.getRaw(D);
- if (f instanceof n.Ref) {
- if (k.getByRef(f)) {
- e();
- return;
- }
- if (w.globalImageCache.getData(f, w.pageIndex)) {
- e();
- return;
- }
- f = S.fetch(f);
- }
- if (!(f instanceof m.BaseStream))
- throw new r.FormatError('XObject should be a stream');
- const g = f.dict.get('Subtype');
- if (!(g instanceof n.Name))
- throw new r.FormatError('XObject should have a Name subtype');
- if ('Form' !== g.name) {
- k.set(D, f.dict.objId, !0);
- e();
- return;
- }
- const p = i.state.clone(),
- b = new StateManager(p),
- y = f.dict.getArray('Matrix');
- Array.isArray(y) && 6 === y.length && b.transform(y);
- enqueueChunk();
- const x = {
- enqueueInvoked: !1,
- enqueue(e, t) {
- this.enqueueInvoked = !0;
- o.enqueue(e, t);
- },
- get desiredSize() {
- return o.desiredSize;
- },
- get ready() {
- return o.ready;
- },
- };
- w.getTextContent({
- stream: f,
- task: t,
- resources: f.dict.get('Resources') || a,
- stateManager: b,
- includeMarkedContent: s,
- sink: x,
- seenStyles: c,
- viewBox: l,
- markedContentData: h,
- disableNormalization: u,
- }).then(function () {
- x.enqueueInvoked || k.set(D, f.dict.objId, !0);
- e();
- }, d);
- }).catch(function (e) {
- if (!(e instanceof r.AbortException)) {
- if (!w.options.ignoreErrors) throw e;
- (0, r.warn)(`getTextContent - ignoring XObject: "${e}".`);
- }
- }),
- );
- return;
- case r.OPS.setGState:
- E = b[0] instanceof n.Name;
- D = b[0].name;
- if (E && v.getByName(D)) break;
- next(
- new Promise(function (e, t) {
- if (!E) throw new r.FormatError('GState must be referred to by name.');
- const i = a.get('ExtGState');
- if (!(i instanceof n.Dict))
- throw new r.FormatError('ExtGState should be a dictionary.');
- const s = i.get(D);
- if (!(s instanceof n.Dict))
- throw new r.FormatError('GState should be a dictionary.');
- const o = s.get('Font');
- if (o) {
- flushTextContentItem();
- O.fontName = null;
- O.fontSize = o[1];
- handleSetFont(null, o[0]).then(e, t);
- } else {
- v.set(D, s.objId, !0);
- e();
- }
- }).catch(function (e) {
- if (!(e instanceof r.AbortException)) {
- if (!w.options.ignoreErrors) throw e;
- (0, r.warn)(`getTextContent - ignoring ExtGState: "${e}".`);
- }
- }),
- );
- return;
- case r.OPS.beginMarkedContent:
- flushTextContentItem();
- if (s) {
- h.level++;
- d.items.push({
- type: 'beginMarkedContent',
- tag: b[0] instanceof n.Name ? b[0].name : null,
- });
- }
- break;
- case r.OPS.beginMarkedContentProps:
- flushTextContentItem();
- if (s) {
- h.level++;
- let e = null;
- b[1] instanceof n.Dict && (e = b[1].get('MCID'));
- d.items.push({
- type: 'beginMarkedContentProps',
- id: Number.isInteger(e) ? `${w.idFactory.getPageObjId()}_mcid${e}` : null,
- tag: b[0] instanceof n.Name ? b[0].name : null,
- });
- }
- break;
- case r.OPS.endMarkedContent:
- flushTextContentItem();
- if (s) {
- if (0 === h.level) break;
- h.level--;
- d.items.push({ type: 'endMarkedContent' });
- }
- }
- if (d.items.length >= o.desiredSize) {
- p = !0;
- break;
- }
- }
- if (p) next(R);
- else {
- flushTextContentItem();
- enqueueChunk();
- e();
- }
- }).catch((e) => {
- if (!(e instanceof r.AbortException)) {
- if (!this.options.ignoreErrors) throw e;
- (0, r.warn)(`getTextContent - ignoring errors during "${t.name}" task: "${e}".`);
- flushTextContentItem();
- enqueueChunk();
- }
- });
- }
- extractDataStructures(e, t, a) {
- const i = this.xref;
- let s;
- const c = this.readToUnicode(a.toUnicode || e.get('ToUnicode') || t.get('ToUnicode'));
- if (a.composite) {
- const t = e.get('CIDSystemInfo');
- t instanceof n.Dict &&
- (a.cidSystemInfo = {
- registry: (0, r.stringToPDFString)(t.get('Registry')),
- ordering: (0, r.stringToPDFString)(t.get('Ordering')),
- supplement: t.get('Supplement'),
- });
- try {
- const t = e.get('CIDToGIDMap');
- t instanceof m.BaseStream && (s = t.getBytes());
- } catch (e) {
- if (!this.options.ignoreErrors) throw e;
- (0, r.warn)(`extractDataStructures - ignoring CIDToGIDMap data: "${e}".`);
- }
- }
- const l = [];
- let h,
- u = null;
- if (e.has('Encoding')) {
- h = e.get('Encoding');
- if (h instanceof n.Dict) {
- u = h.get('BaseEncoding');
- u = u instanceof n.Name ? u.name : null;
- if (h.has('Differences')) {
- const e = h.get('Differences');
- let t = 0;
- for (const a of e) {
- const e = i.fetchIfRef(a);
- if ('number' == typeof e) t = e;
- else {
- if (!(e instanceof n.Name))
- throw new r.FormatError(`Invalid entry in 'Differences' array: ${e}`);
- l[t++] = e.name;
- }
- }
- }
- } else if (h instanceof n.Name) u = h.name;
- else {
- const e = 'Encoding is not a Name nor a Dict';
- if (!this.options.ignoreErrors) throw new r.FormatError(e);
- (0, r.warn)(e);
- }
- 'MacRomanEncoding' !== u &&
- 'MacExpertEncoding' !== u &&
- 'WinAnsiEncoding' !== u &&
- (u = null);
- }
- if (u) a.defaultEncoding = (0, o.getEncoding)(u);
- else {
- const e = !!(a.flags & S.FontFlags.Symbolic),
- t = !!(a.flags & S.FontFlags.Nonsymbolic);
- h = o.StandardEncoding;
- 'TrueType' !== a.type || t || (h = o.WinAnsiEncoding);
- if (e) {
- h = o.MacRomanEncoding;
- (a.file && !a.isInternalFont) ||
- (/Symbol/i.test(a.name)
- ? (h = o.SymbolSetEncoding)
- : /Dingbats|Wingdings/i.test(a.name) && (h = o.ZapfDingbatsEncoding));
- }
- a.defaultEncoding = h;
- }
- a.differences = l;
- a.baseEncodingName = u;
- a.hasEncoding = !!u || l.length > 0;
- a.dict = e;
- return c
- .then((e) => {
- a.toUnicode = e;
- return this.buildToUnicode(a);
- })
- .then((e) => {
- a.toUnicode = e;
- s && (a.cidToGidMap = this.readCidToGidMap(s, e));
- return a;
- });
- }
- _simpleFontToUnicode(e, t = !1) {
- (0, r.assert)(!e.composite, 'Must be a simple font.');
- const a = [],
- i = e.defaultEncoding.slice(),
- n = e.baseEncodingName,
- s = e.differences;
- for (const e in s) {
- const t = s[e];
- '.notdef' !== t && (i[e] = t);
- }
- const c = (0, x.getGlyphsUnicode)();
- for (const r in i) {
- let s = i[r];
- if ('' === s) continue;
- let l = c[s];
- if (void 0 !== l) {
- a[r] = String.fromCharCode(l);
- continue;
- }
- let h = 0;
- switch (s[0]) {
- case 'G':
- 3 === s.length && (h = parseInt(s.substring(1), 16));
- break;
- case 'g':
- 5 === s.length && (h = parseInt(s.substring(1), 16));
- break;
- case 'C':
- case 'c':
- if (s.length >= 3 && s.length <= 4) {
- const a = s.substring(1);
- if (t) {
- h = parseInt(a, 16);
- break;
- }
- h = +a;
- if (Number.isNaN(h) && Number.isInteger(parseInt(a, 16)))
- return this._simpleFontToUnicode(e, !0);
- }
- break;
- case 'u':
- l = (0, v.getUnicodeForGlyph)(s, c);
- -1 !== l && (h = l);
- break;
- default:
- switch (s) {
- case 'f_h':
- case 'f_t':
- case 'T_h':
- a[r] = s.replaceAll('_', '');
- continue;
- }
- }
- if (h > 0 && h <= 1114111 && Number.isInteger(h)) {
- if (n && h === +r) {
- const e = (0, o.getEncoding)(n);
- if (e && (s = e[r])) {
- a[r] = String.fromCharCode(c[s]);
- continue;
- }
- }
- a[r] = String.fromCodePoint(h);
- }
- }
- return a;
- }
- async buildToUnicode(e) {
- e.hasIncludedToUnicodeMap = !!e.toUnicode && e.toUnicode.length > 0;
- if (e.hasIncludedToUnicodeMap) {
- !e.composite &&
- e.hasEncoding &&
- (e.fallbackToUnicode = this._simpleFontToUnicode(e));
- return e.toUnicode;
- }
- if (!e.composite) return new u.ToUnicodeMap(this._simpleFontToUnicode(e));
- if (
- e.composite &&
- ((e.cMap.builtInCMap && !(e.cMap instanceof i.IdentityCMap)) ||
- ('Adobe' === e.cidSystemInfo.registry &&
- ('GB1' === e.cidSystemInfo.ordering ||
- 'CNS1' === e.cidSystemInfo.ordering ||
- 'Japan1' === e.cidSystemInfo.ordering ||
- 'Korea1' === e.cidSystemInfo.ordering)))
- ) {
- const { registry: t, ordering: a } = e.cidSystemInfo,
- s = n.Name.get(`${t}-${a}-UCS2`),
- o = await i.CMapFactory.create({
- encoding: s,
- fetchBuiltInCMap: this._fetchBuiltInCMapBound,
- useCMap: null,
- }),
- c = [],
- l = [];
- e.cMap.forEach(function (e, t) {
- if (t > 65535) throw new r.FormatError('Max size of CID is 65,535');
- const a = o.lookup(t);
- if (a) {
- l.length = 0;
- for (let e = 0, t = a.length; e < t; e += 2)
- l.push((a.charCodeAt(e) << 8) + a.charCodeAt(e + 1));
- c[e] = String.fromCharCode(...l);
- }
- });
- return new u.ToUnicodeMap(c);
- }
- return new u.IdentityToUnicodeMap(e.firstChar, e.lastChar);
- }
- readToUnicode(e) {
- return e
- ? e instanceof n.Name
- ? i.CMapFactory.create({
- encoding: e,
- fetchBuiltInCMap: this._fetchBuiltInCMapBound,
- useCMap: null,
- }).then(function (e) {
- return e instanceof i.IdentityCMap
- ? new u.IdentityToUnicodeMap(0, 65535)
- : new u.ToUnicodeMap(e.getMap());
- })
- : e instanceof m.BaseStream
- ? i.CMapFactory.create({
- encoding: e,
- fetchBuiltInCMap: this._fetchBuiltInCMapBound,
- useCMap: null,
- }).then(
- function (e) {
- if (e instanceof i.IdentityCMap)
- return new u.IdentityToUnicodeMap(0, 65535);
- const t = new Array(e.length);
- e.forEach(function (e, a) {
- if ('number' == typeof a) {
- t[e] = String.fromCodePoint(a);
- return;
- }
- const r = [];
- for (let e = 0; e < a.length; e += 2) {
- const t = (a.charCodeAt(e) << 8) | a.charCodeAt(e + 1);
- if (55296 != (63488 & t)) {
- r.push(t);
- continue;
- }
- e += 2;
- const i = (a.charCodeAt(e) << 8) | a.charCodeAt(e + 1);
- r.push(((1023 & t) << 10) + (1023 & i) + 65536);
- }
- t[e] = String.fromCodePoint(...r);
- });
- return new u.ToUnicodeMap(t);
- },
- (e) => {
- if (e instanceof r.AbortException) return null;
- if (this.options.ignoreErrors) {
- (0, r.warn)(`readToUnicode - ignoring ToUnicode data: "${e}".`);
- return null;
- }
- throw e;
- },
- )
- : Promise.resolve(null)
- : Promise.resolve(null);
- }
- readCidToGidMap(e, t) {
- const a = [];
- for (let r = 0, i = e.length; r < i; r++) {
- const i = (e[r++] << 8) | e[r],
- n = r >> 1;
- (0 !== i || t.has(n)) && (a[n] = i);
- }
- return a;
- }
- extractWidths(e, t, a) {
- const r = this.xref;
- let i = [],
- s = 0;
- const o = [];
- let c, l, h, u, d, f, g, p;
- if (a.composite) {
- s = e.has('DW') ? e.get('DW') : 1e3;
- p = e.get('W');
- if (p)
- for (l = 0, h = p.length; l < h; l++) {
- f = r.fetchIfRef(p[l++]);
- g = r.fetchIfRef(p[l]);
- if (Array.isArray(g))
- for (u = 0, d = g.length; u < d; u++) i[f++] = r.fetchIfRef(g[u]);
- else {
- const e = r.fetchIfRef(p[++l]);
- for (u = f; u <= g; u++) i[u] = e;
- }
- }
- if (a.vertical) {
- let t = e.getArray('DW2') || [880, -1e3];
- c = [t[1], 0.5 * s, t[0]];
- t = e.get('W2');
- if (t)
- for (l = 0, h = t.length; l < h; l++) {
- f = r.fetchIfRef(t[l++]);
- g = r.fetchIfRef(t[l]);
- if (Array.isArray(g))
- for (u = 0, d = g.length; u < d; u++)
- o[f++] = [r.fetchIfRef(g[u++]), r.fetchIfRef(g[u++]), r.fetchIfRef(g[u])];
- else {
- const e = [
- r.fetchIfRef(t[++l]),
- r.fetchIfRef(t[++l]),
- r.fetchIfRef(t[++l]),
- ];
- for (u = f; u <= g; u++) o[u] = e;
- }
- }
- }
- } else {
- const o = a.firstChar;
- p = e.get('Widths');
- if (p) {
- u = o;
- for (l = 0, h = p.length; l < h; l++) i[u++] = r.fetchIfRef(p[l]);
- s = parseFloat(t.get('MissingWidth')) || 0;
- } else {
- const t = e.get('BaseFont');
- if (t instanceof n.Name) {
- const e = this.getBaseFontMetrics(t.name);
- i = this.buildCharCodeToWidth(e.widths, a);
- s = e.defaultWidth;
- }
- }
- }
- let m = !0,
- b = s;
- for (const e in i) {
- const t = i[e];
- if (t)
- if (b) {
- if (b !== t) {
- m = !1;
- break;
- }
- } else b = t;
- }
- m && (a.flags |= S.FontFlags.FixedPitch);
- a.defaultWidth = s;
- a.widths = i;
- a.defaultVMetrics = c;
- a.vmetrics = o;
- }
- isSerifFont(e) {
- const t = e.split('-')[0];
- return t in (0, c.getSerifFonts)() || /serif/gi.test(t);
- }
- getBaseFontMetrics(e) {
- let t = 0,
- a = Object.create(null),
- r = !1;
- let i = (0, c.getStdFontMap)()[e] || e;
- const n = (0, k.getMetrics)();
- i in n || (i = this.isSerifFont(e) ? 'Times-Roman' : 'Helvetica');
- const s = n[i];
- if ('number' == typeof s) {
- t = s;
- r = !0;
- } else a = s();
- return { defaultWidth: t, monospace: r, widths: a };
- }
- buildCharCodeToWidth(e, t) {
- const a = Object.create(null),
- r = t.differences,
- i = t.defaultEncoding;
- for (let t = 0; t < 256; t++)
- t in r && e[r[t]] ? (a[t] = e[r[t]]) : t in i && e[i[t]] && (a[t] = e[i[t]]);
- return a;
- }
- preEvaluateFont(e) {
- const t = e;
- let a = e.get('Subtype');
- if (!(a instanceof n.Name)) throw new r.FormatError('invalid font Subtype');
- let i,
- s,
- o = !1;
- if ('Type0' === a.name) {
- const t = e.get('DescendantFonts');
- if (!t) throw new r.FormatError('Descendant fonts are not specified');
- if (!((e = Array.isArray(t) ? this.xref.fetchIfRef(t[0]) : t) instanceof n.Dict))
- throw new r.FormatError('Descendant font is not a dictionary.');
- a = e.get('Subtype');
- if (!(a instanceof n.Name)) throw new r.FormatError('invalid font Subtype');
- o = !0;
- }
- const c = e.get('FirstChar') || 0,
- l = e.get('LastChar') || (o ? 65535 : 255),
- h = e.get('FontDescriptor');
- if (h) {
- i = new O.MurmurHash3_64();
- const a = t.getRaw('Encoding');
- if (a instanceof n.Name) i.update(a.name);
- else if (a instanceof n.Ref) i.update(a.toString());
- else if (a instanceof n.Dict)
- for (const e of a.getRawValues())
- if (e instanceof n.Name) i.update(e.name);
- else if (e instanceof n.Ref) i.update(e.toString());
- else if (Array.isArray(e)) {
- const t = e.length,
- a = new Array(t);
- for (let r = 0; r < t; r++) {
- const t = e[r];
- t instanceof n.Name
- ? (a[r] = t.name)
- : ('number' == typeof t || t instanceof n.Ref) && (a[r] = t.toString());
- }
- i.update(a.join());
- }
- i.update(`${c}-${l}`);
- s = e.get('ToUnicode') || t.get('ToUnicode');
- if (s instanceof m.BaseStream) {
- const e = s.str || s,
- t = e.buffer
- ? new Uint8Array(e.buffer.buffer, 0, e.bufferLength)
- : new Uint8Array(e.bytes.buffer, e.start, e.end - e.start);
- i.update(t);
- } else s instanceof n.Name && i.update(s.name);
- const r = e.get('Widths') || t.get('Widths');
- if (Array.isArray(r)) {
- const e = [];
- for (const t of r)
- ('number' == typeof t || t instanceof n.Ref) && e.push(t.toString());
- i.update(e.join());
- }
- if (o) {
- i.update('compositeFont');
- const a = e.get('W') || t.get('W');
- if (Array.isArray(a)) {
- const e = [];
- for (const t of a)
- if ('number' == typeof t || t instanceof n.Ref) e.push(t.toString());
- else if (Array.isArray(t)) {
- const a = [];
- for (const e of t)
- ('number' == typeof e || e instanceof n.Ref) && a.push(e.toString());
- e.push(`[${a.join()}]`);
- }
- i.update(e.join());
- }
- const r = e.getRaw('CIDToGIDMap') || t.getRaw('CIDToGIDMap');
- r instanceof n.Name
- ? i.update(r.name)
- : r instanceof n.Ref
- ? i.update(r.toString())
- : r instanceof m.BaseStream && i.update(r.peekBytes());
- }
- }
- return {
- descriptor: h,
- dict: e,
- baseDict: t,
- composite: o,
- type: a.name,
- firstChar: c,
- lastChar: l,
- toUnicode: s,
- hash: i ? i.hexdigest() : '',
- };
- }
- async translateFont({
- descriptor: e,
- dict: t,
- baseDict: a,
- composite: o,
- type: l,
- firstChar: u,
- lastChar: d,
- toUnicode: f,
- cssFontInfo: g,
- }) {
- const m = 'Type3' === l;
- let b;
- if (!e) {
- if (!m) {
- let e = t.get('BaseFont');
- if (!(e instanceof n.Name)) throw new r.FormatError('Base font is not specified');
- e = e.name.replaceAll(/[,_]/g, '-');
- const i = this.getBaseFontMetrics(e),
- o = e.split('-')[0],
- h =
- (this.isSerifFont(o) ? S.FontFlags.Serif : 0) |
- (i.monospace ? S.FontFlags.FixedPitch : 0) |
- ((0, c.getSymbolsFonts)()[o]
- ? S.FontFlags.Symbolic
- : S.FontFlags.Nonsymbolic);
- b = {
- type: l,
- name: e,
- loadedName: a.loadedName,
- widths: i.widths,
- defaultWidth: i.defaultWidth,
- isSimulatedFlags: !0,
- flags: h,
- firstChar: u,
- lastChar: d,
- toUnicode: f,
- xHeight: 0,
- capHeight: 0,
- italicAngle: 0,
- isType3Font: m,
- };
- const g = t.get('Widths'),
- p = (0, c.getStandardFontName)(e);
- let y = null;
- if (p) {
- y = await this.fetchStandardFontData(p);
- b.isInternalFont = !!y;
- }
- return this.extractDataStructures(t, t, b).then((t) => {
- if (g) {
- const e = [];
- let a = u;
- for (const t of g) e[a++] = this.xref.fetchIfRef(t);
- t.widths = e;
- } else t.widths = this.buildCharCodeToWidth(i.widths, t);
- return new s.Font(e, y, t);
- });
- }
- (e = new n.Dict(null)).set('FontName', n.Name.get(l));
- e.set('FontBBox', t.getArray('FontBBox') || [0, 0, 0, 0]);
- }
- let y,
- w,
- x,
- C,
- k,
- v = e.get('FontName'),
- F = t.get('BaseFont');
- 'string' == typeof v && (v = n.Name.get(v));
- 'string' == typeof F && (F = n.Name.get(F));
- if (!m) {
- const e = v && v.name,
- t = F && F.name;
- if (e !== t) {
- (0, r.info)(
- `The FontDescriptor's FontName is "${e}" but should be the same as the Font's BaseFont "${t}".`,
- );
- e && t && t.startsWith(e) && (v = F);
- }
- }
- v ||= F;
- if (!(v instanceof n.Name)) throw new r.FormatError('invalid font name');
- try {
- y = e.get('FontFile', 'FontFile2', 'FontFile3');
- } catch (e) {
- if (!this.options.ignoreErrors) throw e;
- (0, r.warn)(`translateFont - fetching "${v.name}" font file: "${e}".`);
- y = new p.NullStream();
- }
- let O = !1,
- T = null;
- if (y) {
- if (y.dict) {
- const e = y.dict.get('Subtype');
- e instanceof n.Name && (w = e.name);
- x = y.dict.get('Length1');
- C = y.dict.get('Length2');
- k = y.dict.get('Length3');
- }
- } else if (g) {
- const e = (0, h.getXfaFontName)(v.name);
- if (e) {
- g.fontFamily = `${g.fontFamily}-PdfJS-XFA`;
- g.metrics = e.metrics || null;
- T = e.factors || null;
- y = await this.fetchStandardFontData(e.name);
- O = !!y;
- a = t = (0, h.getXfaFontDict)(v.name);
- o = !0;
- }
- } else if (!m) {
- const e = (0, c.getStandardFontName)(v.name);
- if (e) {
- y = await this.fetchStandardFontData(e);
- O = !!y;
- }
- }
- b = {
- type: l,
- name: v.name,
- subtype: w,
- file: y,
- length1: x,
- length2: C,
- length3: k,
- isInternalFont: O,
- loadedName: a.loadedName,
- composite: o,
- fixedPitch: !1,
- fontMatrix: t.getArray('FontMatrix') || r.FONT_IDENTITY_MATRIX,
- firstChar: u,
- lastChar: d,
- toUnicode: f,
- bbox: e.getArray('FontBBox') || t.getArray('FontBBox'),
- ascent: e.get('Ascent'),
- descent: e.get('Descent'),
- xHeight: e.get('XHeight') || 0,
- capHeight: e.get('CapHeight') || 0,
- flags: e.get('Flags'),
- italicAngle: e.get('ItalicAngle') || 0,
- isType3Font: m,
- cssFontInfo: g,
- scaleFactors: T,
- };
- if (o) {
- const e = a.get('Encoding');
- e instanceof n.Name && (b.cidEncoding = e.name);
- const t = await i.CMapFactory.create({
- encoding: e,
- fetchBuiltInCMap: this._fetchBuiltInCMapBound,
- useCMap: null,
- });
- b.cMap = t;
- b.vertical = b.cMap.vertical;
- }
- return this.extractDataStructures(t, a, b).then((a) => {
- this.extractWidths(t, e, a);
- return new s.Font(v.name, y, a);
- });
- }
- static buildFontPaths(e, t, a, i) {
- function buildPath(t) {
- const n = `${e.loadedName}_path_${t}`;
- try {
- if (e.renderer.hasBuiltPath(t)) return;
- a.send('commonobj', [n, 'FontPath', e.renderer.getPathJs(t)]);
- } catch (e) {
- if (i.ignoreErrors) {
- (0, r.warn)(`buildFontPaths - ignoring ${n} glyph: "${e}".`);
- return;
- }
- throw e;
- }
- }
- for (const e of t) {
- buildPath(e.fontChar);
- const t = e.accent;
- t && t.fontChar && buildPath(t.fontChar);
- }
- }
- static get fallbackFontDict() {
- const e = new n.Dict();
- e.set('BaseFont', n.Name.get('PDFJS-FallbackFont'));
- e.set('Type', n.Name.get('FallbackType'));
- e.set('Subtype', n.Name.get('FallbackType'));
- e.set('Encoding', n.Name.get('WinAnsiEncoding'));
- return (0, r.shadow)(this, 'fallbackFontDict', e);
- }
- }
- t.PartialEvaluator = PartialEvaluator;
- class TranslatedFont {
- constructor({ loadedName: e, font: t, dict: a, evaluatorOptions: r }) {
- this.loadedName = e;
- this.font = t;
- this.dict = a;
- this._evaluatorOptions = r || E;
- this.type3Loaded = null;
- this.type3Dependencies = t.isType3Font ? new Set() : null;
- this.sent = !1;
- }
- send(e) {
- if (!this.sent) {
- this.sent = !0;
- e.send('commonobj', [
- this.loadedName,
- 'Font',
- this.font.exportData(this._evaluatorOptions.fontExtraProperties),
- ]);
- }
- }
- fallback(e) {
- if (this.font.data) {
- this.font.disableFontFace = !0;
- PartialEvaluator.buildFontPaths(
- this.font,
- this.font.glyphCacheValues,
- e,
- this._evaluatorOptions,
- );
- }
- }
- loadType3Data(e, t, a) {
- if (this.type3Loaded) return this.type3Loaded;
- if (!this.font.isType3Font) throw new Error('Must be a Type3 font.');
- const i = e.clone({ ignoreErrors: !1 });
- i.parsingType3Font = !0;
- const s = new n.RefSet(e.type3FontRefs);
- this.dict.objId && !s.has(this.dict.objId) && s.put(this.dict.objId);
- i.type3FontRefs = s;
- const o = this.font,
- c = this.type3Dependencies;
- let l = Promise.resolve();
- const h = this.dict.get('CharProcs'),
- u = this.dict.get('Resources') || t,
- d = Object.create(null),
- f = r.Util.normalizeRect(o.bbox || [0, 0, 0, 0]),
- g = f[2] - f[0],
- p = f[3] - f[1],
- m = Math.hypot(g, p);
- for (const e of h.getKeys())
- l = l.then(() => {
- const t = h.get(e),
- n = new T.OperatorList();
- return i
- .getOperatorList({ stream: t, task: a, resources: u, operatorList: n })
- .then(() => {
- n.fnArray[0] === r.OPS.setCharWidthAndBounds &&
- this._removeType3ColorOperators(n, m);
- d[e] = n.getIR();
- for (const e of n.dependencies) c.add(e);
- })
- .catch(function (t) {
- (0, r.warn)(`Type3 font resource "${e}" is not available.`);
- const a = new T.OperatorList();
- d[e] = a.getIR();
- });
- });
- this.type3Loaded = l.then(() => {
- o.charProcOperatorList = d;
- if (this._bbox) {
- o.isCharBBox = !0;
- o.bbox = this._bbox;
- }
- });
- return this.type3Loaded;
- }
- _removeType3ColorOperators(e, t = NaN) {
- const a = r.Util.normalizeRect(e.argsArray[0].slice(2)),
- i = a[2] - a[0],
- n = a[3] - a[1],
- s = Math.hypot(i, n);
- if (0 === i || 0 === n) {
- e.fnArray.splice(0, 1);
- e.argsArray.splice(0, 1);
- } else if (0 === t || Math.round(s / t) >= 10) {
- this._bbox || (this._bbox = [1 / 0, 1 / 0, -1 / 0, -1 / 0]);
- this._bbox[0] = Math.min(this._bbox[0], a[0]);
- this._bbox[1] = Math.min(this._bbox[1], a[1]);
- this._bbox[2] = Math.max(this._bbox[2], a[2]);
- this._bbox[3] = Math.max(this._bbox[3], a[3]);
- }
- let o = 0,
- c = e.length;
- for (; o < c; ) {
- switch (e.fnArray[o]) {
- case r.OPS.setCharWidthAndBounds:
- break;
- case r.OPS.setStrokeColorSpace:
- case r.OPS.setFillColorSpace:
- case r.OPS.setStrokeColor:
- case r.OPS.setStrokeColorN:
- case r.OPS.setFillColor:
- case r.OPS.setFillColorN:
- case r.OPS.setStrokeGray:
- case r.OPS.setFillGray:
- case r.OPS.setStrokeRGBColor:
- case r.OPS.setFillRGBColor:
- case r.OPS.setStrokeCMYKColor:
- case r.OPS.setFillCMYKColor:
- case r.OPS.shadingFill:
- case r.OPS.setRenderingIntent:
- e.fnArray.splice(o, 1);
- e.argsArray.splice(o, 1);
- c--;
- continue;
- case r.OPS.setGState:
- const [t] = e.argsArray[o];
- let a = 0,
- i = t.length;
- for (; a < i; ) {
- const [e] = t[a];
- switch (e) {
- case 'TR':
- case 'TR2':
- case 'HT':
- case 'BG':
- case 'BG2':
- case 'UCR':
- case 'UCR2':
- t.splice(a, 1);
- i--;
- continue;
- }
- a++;
- }
- }
- o++;
- }
- }
- }
- class StateManager {
- constructor(e = new EvalState()) {
- this.state = e;
- this.stateStack = [];
- }
- save() {
- const e = this.state;
- this.stateStack.push(this.state);
- this.state = e.clone();
- }
- restore() {
- const e = this.stateStack.pop();
- e && (this.state = e);
- }
- transform(e) {
- this.state.ctm = r.Util.transform(this.state.ctm, e);
- }
- }
- class TextState {
- constructor() {
- this.ctm = new Float32Array(r.IDENTITY_MATRIX);
- this.fontName = null;
- this.fontSize = 0;
- this.loadedName = null;
- this.font = null;
- this.fontMatrix = r.FONT_IDENTITY_MATRIX;
- this.textMatrix = r.IDENTITY_MATRIX.slice();
- this.textLineMatrix = r.IDENTITY_MATRIX.slice();
- this.charSpacing = 0;
- this.wordSpacing = 0;
- this.leading = 0;
- this.textHScale = 1;
- this.textRise = 0;
- }
- setTextMatrix(e, t, a, r, i, n) {
- const s = this.textMatrix;
- s[0] = e;
- s[1] = t;
- s[2] = a;
- s[3] = r;
- s[4] = i;
- s[5] = n;
- }
- setTextLineMatrix(e, t, a, r, i, n) {
- const s = this.textLineMatrix;
- s[0] = e;
- s[1] = t;
- s[2] = a;
- s[3] = r;
- s[4] = i;
- s[5] = n;
- }
- translateTextMatrix(e, t) {
- const a = this.textMatrix;
- a[4] = a[0] * e + a[2] * t + a[4];
- a[5] = a[1] * e + a[3] * t + a[5];
- }
- translateTextLineMatrix(e, t) {
- const a = this.textLineMatrix;
- a[4] = a[0] * e + a[2] * t + a[4];
- a[5] = a[1] * e + a[3] * t + a[5];
- }
- carriageReturn() {
- this.translateTextLineMatrix(0, -this.leading);
- this.textMatrix = this.textLineMatrix.slice();
- }
- clone() {
- const e = Object.create(this);
- e.textMatrix = this.textMatrix.slice();
- e.textLineMatrix = this.textLineMatrix.slice();
- e.fontMatrix = this.fontMatrix.slice();
- return e;
- }
- }
- class EvalState {
- constructor() {
- this.ctm = new Float32Array(r.IDENTITY_MATRIX);
- this.font = null;
- this.textRenderingMode = r.TextRenderingMode.FILL;
- this.fillColorSpace = y.ColorSpace.singletons.gray;
- this.strokeColorSpace = y.ColorSpace.singletons.gray;
- }
- clone() {
- return Object.create(this);
- }
- }
- class EvaluatorPreprocessor {
- static get opMap() {
- const e = (0, C.getLookupTableFactory)(function (e) {
- e.w = { id: r.OPS.setLineWidth, numArgs: 1, variableArgs: !1 };
- e.J = { id: r.OPS.setLineCap, numArgs: 1, variableArgs: !1 };
- e.j = { id: r.OPS.setLineJoin, numArgs: 1, variableArgs: !1 };
- e.M = { id: r.OPS.setMiterLimit, numArgs: 1, variableArgs: !1 };
- e.d = { id: r.OPS.setDash, numArgs: 2, variableArgs: !1 };
- e.ri = { id: r.OPS.setRenderingIntent, numArgs: 1, variableArgs: !1 };
- e.i = { id: r.OPS.setFlatness, numArgs: 1, variableArgs: !1 };
- e.gs = { id: r.OPS.setGState, numArgs: 1, variableArgs: !1 };
- e.q = { id: r.OPS.save, numArgs: 0, variableArgs: !1 };
- e.Q = { id: r.OPS.restore, numArgs: 0, variableArgs: !1 };
- e.cm = { id: r.OPS.transform, numArgs: 6, variableArgs: !1 };
- e.m = { id: r.OPS.moveTo, numArgs: 2, variableArgs: !1 };
- e.l = { id: r.OPS.lineTo, numArgs: 2, variableArgs: !1 };
- e.c = { id: r.OPS.curveTo, numArgs: 6, variableArgs: !1 };
- e.v = { id: r.OPS.curveTo2, numArgs: 4, variableArgs: !1 };
- e.y = { id: r.OPS.curveTo3, numArgs: 4, variableArgs: !1 };
- e.h = { id: r.OPS.closePath, numArgs: 0, variableArgs: !1 };
- e.re = { id: r.OPS.rectangle, numArgs: 4, variableArgs: !1 };
- e.S = { id: r.OPS.stroke, numArgs: 0, variableArgs: !1 };
- e.s = { id: r.OPS.closeStroke, numArgs: 0, variableArgs: !1 };
- e.f = { id: r.OPS.fill, numArgs: 0, variableArgs: !1 };
- e.F = { id: r.OPS.fill, numArgs: 0, variableArgs: !1 };
- e['f*'] = { id: r.OPS.eoFill, numArgs: 0, variableArgs: !1 };
- e.B = { id: r.OPS.fillStroke, numArgs: 0, variableArgs: !1 };
- e['B*'] = { id: r.OPS.eoFillStroke, numArgs: 0, variableArgs: !1 };
- e.b = { id: r.OPS.closeFillStroke, numArgs: 0, variableArgs: !1 };
- e['b*'] = { id: r.OPS.closeEOFillStroke, numArgs: 0, variableArgs: !1 };
- e.n = { id: r.OPS.endPath, numArgs: 0, variableArgs: !1 };
- e.W = { id: r.OPS.clip, numArgs: 0, variableArgs: !1 };
- e['W*'] = { id: r.OPS.eoClip, numArgs: 0, variableArgs: !1 };
- e.BT = { id: r.OPS.beginText, numArgs: 0, variableArgs: !1 };
- e.ET = { id: r.OPS.endText, numArgs: 0, variableArgs: !1 };
- e.Tc = { id: r.OPS.setCharSpacing, numArgs: 1, variableArgs: !1 };
- e.Tw = { id: r.OPS.setWordSpacing, numArgs: 1, variableArgs: !1 };
- e.Tz = { id: r.OPS.setHScale, numArgs: 1, variableArgs: !1 };
- e.TL = { id: r.OPS.setLeading, numArgs: 1, variableArgs: !1 };
- e.Tf = { id: r.OPS.setFont, numArgs: 2, variableArgs: !1 };
- e.Tr = { id: r.OPS.setTextRenderingMode, numArgs: 1, variableArgs: !1 };
- e.Ts = { id: r.OPS.setTextRise, numArgs: 1, variableArgs: !1 };
- e.Td = { id: r.OPS.moveText, numArgs: 2, variableArgs: !1 };
- e.TD = { id: r.OPS.setLeadingMoveText, numArgs: 2, variableArgs: !1 };
- e.Tm = { id: r.OPS.setTextMatrix, numArgs: 6, variableArgs: !1 };
- e['T*'] = { id: r.OPS.nextLine, numArgs: 0, variableArgs: !1 };
- e.Tj = { id: r.OPS.showText, numArgs: 1, variableArgs: !1 };
- e.TJ = { id: r.OPS.showSpacedText, numArgs: 1, variableArgs: !1 };
- e["'"] = { id: r.OPS.nextLineShowText, numArgs: 1, variableArgs: !1 };
- e['"'] = { id: r.OPS.nextLineSetSpacingShowText, numArgs: 3, variableArgs: !1 };
- e.d0 = { id: r.OPS.setCharWidth, numArgs: 2, variableArgs: !1 };
- e.d1 = { id: r.OPS.setCharWidthAndBounds, numArgs: 6, variableArgs: !1 };
- e.CS = { id: r.OPS.setStrokeColorSpace, numArgs: 1, variableArgs: !1 };
- e.cs = { id: r.OPS.setFillColorSpace, numArgs: 1, variableArgs: !1 };
- e.SC = { id: r.OPS.setStrokeColor, numArgs: 4, variableArgs: !0 };
- e.SCN = { id: r.OPS.setStrokeColorN, numArgs: 33, variableArgs: !0 };
- e.sc = { id: r.OPS.setFillColor, numArgs: 4, variableArgs: !0 };
- e.scn = { id: r.OPS.setFillColorN, numArgs: 33, variableArgs: !0 };
- e.G = { id: r.OPS.setStrokeGray, numArgs: 1, variableArgs: !1 };
- e.g = { id: r.OPS.setFillGray, numArgs: 1, variableArgs: !1 };
- e.RG = { id: r.OPS.setStrokeRGBColor, numArgs: 3, variableArgs: !1 };
- e.rg = { id: r.OPS.setFillRGBColor, numArgs: 3, variableArgs: !1 };
- e.K = { id: r.OPS.setStrokeCMYKColor, numArgs: 4, variableArgs: !1 };
- e.k = { id: r.OPS.setFillCMYKColor, numArgs: 4, variableArgs: !1 };
- e.sh = { id: r.OPS.shadingFill, numArgs: 1, variableArgs: !1 };
- e.BI = { id: r.OPS.beginInlineImage, numArgs: 0, variableArgs: !1 };
- e.ID = { id: r.OPS.beginImageData, numArgs: 0, variableArgs: !1 };
- e.EI = { id: r.OPS.endInlineImage, numArgs: 1, variableArgs: !1 };
- e.Do = { id: r.OPS.paintXObject, numArgs: 1, variableArgs: !1 };
- e.MP = { id: r.OPS.markPoint, numArgs: 1, variableArgs: !1 };
- e.DP = { id: r.OPS.markPointProps, numArgs: 2, variableArgs: !1 };
- e.BMC = { id: r.OPS.beginMarkedContent, numArgs: 1, variableArgs: !1 };
- e.BDC = { id: r.OPS.beginMarkedContentProps, numArgs: 2, variableArgs: !1 };
- e.EMC = { id: r.OPS.endMarkedContent, numArgs: 0, variableArgs: !1 };
- e.BX = { id: r.OPS.beginCompat, numArgs: 0, variableArgs: !1 };
- e.EX = { id: r.OPS.endCompat, numArgs: 0, variableArgs: !1 };
- e.BM = null;
- e.BD = null;
- e.true = null;
- e.fa = null;
- e.fal = null;
- e.fals = null;
- e.false = null;
- e.nu = null;
- e.nul = null;
- e.null = null;
- });
- return (0, r.shadow)(this, 'opMap', e());
- }
- static MAX_INVALID_PATH_OPS = 10;
- constructor(e, t, a = new StateManager()) {
- this.parser = new f.Parser({
- lexer: new f.Lexer(e, EvaluatorPreprocessor.opMap),
- xref: t,
- });
- this.stateManager = a;
- this.nonProcessedArgs = [];
- this._isPathOp = !1;
- this._numInvalidPathOPS = 0;
- }
- get savedStatesDepth() {
- return this.stateManager.stateStack.length;
- }
- read(e) {
- let t = e.args;
- for (;;) {
- const a = this.parser.getObj();
- if (a instanceof n.Cmd) {
- const i = a.cmd,
- n = EvaluatorPreprocessor.opMap[i];
- if (!n) {
- (0, r.warn)(`Unknown command "${i}".`);
- continue;
- }
- const s = n.id,
- o = n.numArgs;
- let c = null !== t ? t.length : 0;
- this._isPathOp || (this._numInvalidPathOPS = 0);
- this._isPathOp = s >= r.OPS.moveTo && s <= r.OPS.endPath;
- if (n.variableArgs)
- c > o &&
- (0, r.info)(`Command ${i}: expected [0, ${o}] args, but received ${c} args.`);
- else {
- if (c !== o) {
- const e = this.nonProcessedArgs;
- for (; c > o; ) {
- e.push(t.shift());
- c--;
- }
- for (; c < o && 0 !== e.length; ) {
- null === t && (t = []);
- t.unshift(e.pop());
- c++;
- }
- }
- if (c < o) {
- const e = `command ${i}: expected ${o} args, but received ${c} args.`;
- if (
- this._isPathOp &&
- ++this._numInvalidPathOPS > EvaluatorPreprocessor.MAX_INVALID_PATH_OPS
- )
- throw new r.FormatError(`Invalid ${e}`);
- (0, r.warn)(`Skipping ${e}`);
- null !== t && (t.length = 0);
- continue;
- }
- }
- this.preprocessCommand(s, t);
- e.fn = s;
- e.args = t;
- return !0;
- }
- if (a === n.EOF) return !1;
- if (null !== a) {
- null === t && (t = []);
- t.push(a);
- if (t.length > 33) throw new r.FormatError('Too many arguments');
- }
- }
- }
- preprocessCommand(e, t) {
- switch (0 | e) {
- case r.OPS.save:
- this.stateManager.save();
- break;
- case r.OPS.restore:
- this.stateManager.restore();
- break;
- case r.OPS.transform:
- this.stateManager.transform(t);
- }
- }
- }
- t.EvaluatorPreprocessor = EvaluatorPreprocessor;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.IdentityCMap = t.CMapFactory = t.CMap = void 0;
- var r = a(2),
- i = a(4),
- n = a(5),
- s = a(15),
- o = a(16),
- c = a(3),
- l = a(8);
- const h = [
- 'Adobe-GB1-UCS2',
- 'Adobe-CNS1-UCS2',
- 'Adobe-Japan1-UCS2',
- 'Adobe-Korea1-UCS2',
- '78-EUC-H',
- '78-EUC-V',
- '78-H',
- '78-RKSJ-H',
- '78-RKSJ-V',
- '78-V',
- '78ms-RKSJ-H',
- '78ms-RKSJ-V',
- '83pv-RKSJ-H',
- '90ms-RKSJ-H',
- '90ms-RKSJ-V',
- '90msp-RKSJ-H',
- '90msp-RKSJ-V',
- '90pv-RKSJ-H',
- '90pv-RKSJ-V',
- 'Add-H',
- 'Add-RKSJ-H',
- 'Add-RKSJ-V',
- 'Add-V',
- 'Adobe-CNS1-0',
- 'Adobe-CNS1-1',
- 'Adobe-CNS1-2',
- 'Adobe-CNS1-3',
- 'Adobe-CNS1-4',
- 'Adobe-CNS1-5',
- 'Adobe-CNS1-6',
- 'Adobe-GB1-0',
- 'Adobe-GB1-1',
- 'Adobe-GB1-2',
- 'Adobe-GB1-3',
- 'Adobe-GB1-4',
- 'Adobe-GB1-5',
- 'Adobe-Japan1-0',
- 'Adobe-Japan1-1',
- 'Adobe-Japan1-2',
- 'Adobe-Japan1-3',
- 'Adobe-Japan1-4',
- 'Adobe-Japan1-5',
- 'Adobe-Japan1-6',
- 'Adobe-Korea1-0',
- 'Adobe-Korea1-1',
- 'Adobe-Korea1-2',
- 'B5-H',
- 'B5-V',
- 'B5pc-H',
- 'B5pc-V',
- 'CNS-EUC-H',
- 'CNS-EUC-V',
- 'CNS1-H',
- 'CNS1-V',
- 'CNS2-H',
- 'CNS2-V',
- 'ETHK-B5-H',
- 'ETHK-B5-V',
- 'ETen-B5-H',
- 'ETen-B5-V',
- 'ETenms-B5-H',
- 'ETenms-B5-V',
- 'EUC-H',
- 'EUC-V',
- 'Ext-H',
- 'Ext-RKSJ-H',
- 'Ext-RKSJ-V',
- 'Ext-V',
- 'GB-EUC-H',
- 'GB-EUC-V',
- 'GB-H',
- 'GB-V',
- 'GBK-EUC-H',
- 'GBK-EUC-V',
- 'GBK2K-H',
- 'GBK2K-V',
- 'GBKp-EUC-H',
- 'GBKp-EUC-V',
- 'GBT-EUC-H',
- 'GBT-EUC-V',
- 'GBT-H',
- 'GBT-V',
- 'GBTpc-EUC-H',
- 'GBTpc-EUC-V',
- 'GBpc-EUC-H',
- 'GBpc-EUC-V',
- 'H',
- 'HKdla-B5-H',
- 'HKdla-B5-V',
- 'HKdlb-B5-H',
- 'HKdlb-B5-V',
- 'HKgccs-B5-H',
- 'HKgccs-B5-V',
- 'HKm314-B5-H',
- 'HKm314-B5-V',
- 'HKm471-B5-H',
- 'HKm471-B5-V',
- 'HKscs-B5-H',
- 'HKscs-B5-V',
- 'Hankaku',
- 'Hiragana',
- 'KSC-EUC-H',
- 'KSC-EUC-V',
- 'KSC-H',
- 'KSC-Johab-H',
- 'KSC-Johab-V',
- 'KSC-V',
- 'KSCms-UHC-H',
- 'KSCms-UHC-HW-H',
- 'KSCms-UHC-HW-V',
- 'KSCms-UHC-V',
- 'KSCpc-EUC-H',
- 'KSCpc-EUC-V',
- 'Katakana',
- 'NWP-H',
- 'NWP-V',
- 'RKSJ-H',
- 'RKSJ-V',
- 'Roman',
- 'UniCNS-UCS2-H',
- 'UniCNS-UCS2-V',
- 'UniCNS-UTF16-H',
- 'UniCNS-UTF16-V',
- 'UniCNS-UTF32-H',
- 'UniCNS-UTF32-V',
- 'UniCNS-UTF8-H',
- 'UniCNS-UTF8-V',
- 'UniGB-UCS2-H',
- 'UniGB-UCS2-V',
- 'UniGB-UTF16-H',
- 'UniGB-UTF16-V',
- 'UniGB-UTF32-H',
- 'UniGB-UTF32-V',
- 'UniGB-UTF8-H',
- 'UniGB-UTF8-V',
- 'UniJIS-UCS2-H',
- 'UniJIS-UCS2-HW-H',
- 'UniJIS-UCS2-HW-V',
- 'UniJIS-UCS2-V',
- 'UniJIS-UTF16-H',
- 'UniJIS-UTF16-V',
- 'UniJIS-UTF32-H',
- 'UniJIS-UTF32-V',
- 'UniJIS-UTF8-H',
- 'UniJIS-UTF8-V',
- 'UniJIS2004-UTF16-H',
- 'UniJIS2004-UTF16-V',
- 'UniJIS2004-UTF32-H',
- 'UniJIS2004-UTF32-V',
- 'UniJIS2004-UTF8-H',
- 'UniJIS2004-UTF8-V',
- 'UniJISPro-UCS2-HW-V',
- 'UniJISPro-UCS2-V',
- 'UniJISPro-UTF8-V',
- 'UniJISX0213-UTF32-H',
- 'UniJISX0213-UTF32-V',
- 'UniJISX02132004-UTF32-H',
- 'UniJISX02132004-UTF32-V',
- 'UniKS-UCS2-H',
- 'UniKS-UCS2-V',
- 'UniKS-UTF16-H',
- 'UniKS-UTF16-V',
- 'UniKS-UTF32-H',
- 'UniKS-UTF32-V',
- 'UniKS-UTF8-H',
- 'UniKS-UTF8-V',
- 'V',
- 'WP-Symbol',
- ],
- u = 2 ** 24 - 1;
- class CMap {
- constructor(e = !1) {
- this.codespaceRanges = [[], [], [], []];
- this.numCodespaceRanges = 0;
- this._map = [];
- this.name = '';
- this.vertical = !1;
- this.useCMap = null;
- this.builtInCMap = e;
- }
- addCodespaceRange(e, t, a) {
- this.codespaceRanges[e - 1].push(t, a);
- this.numCodespaceRanges++;
- }
- mapCidRange(e, t, a) {
- if (t - e > u) throw new Error('mapCidRange - ignoring data above MAX_MAP_RANGE.');
- for (; e <= t; ) this._map[e++] = a++;
- }
- mapBfRange(e, t, a) {
- if (t - e > u) throw new Error('mapBfRange - ignoring data above MAX_MAP_RANGE.');
- const r = a.length - 1;
- for (; e <= t; ) {
- this._map[e++] = a;
- const t = a.charCodeAt(r) + 1;
- t > 255
- ? (a =
- a.substring(0, r - 1) + String.fromCharCode(a.charCodeAt(r - 1) + 1) + '\0')
- : (a = a.substring(0, r) + String.fromCharCode(t));
- }
- }
- mapBfRangeToArray(e, t, a) {
- if (t - e > u)
- throw new Error('mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.');
- const r = a.length;
- let i = 0;
- for (; e <= t && i < r; ) {
- this._map[e] = a[i++];
- ++e;
- }
- }
- mapOne(e, t) {
- this._map[e] = t;
- }
- lookup(e) {
- return this._map[e];
- }
- contains(e) {
- return void 0 !== this._map[e];
- }
- forEach(e) {
- const t = this._map,
- a = t.length;
- if (a <= 65536) for (let r = 0; r < a; r++) void 0 !== t[r] && e(r, t[r]);
- else for (const a in t) e(a, t[a]);
- }
- charCodeOf(e) {
- const t = this._map;
- if (t.length <= 65536) return t.indexOf(e);
- for (const a in t) if (t[a] === e) return 0 | a;
- return -1;
- }
- getMap() {
- return this._map;
- }
- readCharCode(e, t, a) {
- let r = 0;
- const i = this.codespaceRanges;
- for (let n = 0, s = i.length; n < s; n++) {
- r = ((r << 8) | e.charCodeAt(t + n)) >>> 0;
- const s = i[n];
- for (let e = 0, t = s.length; e < t; ) {
- const t = s[e++],
- i = s[e++];
- if (r >= t && r <= i) {
- a.charcode = r;
- a.length = n + 1;
- return;
- }
- }
- }
- a.charcode = 0;
- a.length = 1;
- }
- getCharCodeLength(e) {
- const t = this.codespaceRanges;
- for (let a = 0, r = t.length; a < r; a++) {
- const r = t[a];
- for (let t = 0, i = r.length; t < i; ) {
- const i = r[t++],
- n = r[t++];
- if (e >= i && e <= n) return a + 1;
- }
- }
- return 1;
- }
- get length() {
- return this._map.length;
- }
- get isIdentityCMap() {
- if ('Identity-H' !== this.name && 'Identity-V' !== this.name) return !1;
- if (65536 !== this._map.length) return !1;
- for (let e = 0; e < 65536; e++) if (this._map[e] !== e) return !1;
- return !0;
- }
- }
- t.CMap = CMap;
- class IdentityCMap extends CMap {
- constructor(e, t) {
- super();
- this.vertical = e;
- this.addCodespaceRange(t, 0, 65535);
- }
- mapCidRange(e, t, a) {
- (0, r.unreachable)('should not call mapCidRange');
- }
- mapBfRange(e, t, a) {
- (0, r.unreachable)('should not call mapBfRange');
- }
- mapBfRangeToArray(e, t, a) {
- (0, r.unreachable)('should not call mapBfRangeToArray');
- }
- mapOne(e, t) {
- (0, r.unreachable)('should not call mapCidOne');
- }
- lookup(e) {
- return Number.isInteger(e) && e <= 65535 ? e : void 0;
- }
- contains(e) {
- return Number.isInteger(e) && e <= 65535;
- }
- forEach(e) {
- for (let t = 0; t <= 65535; t++) e(t, t);
- }
- charCodeOf(e) {
- return Number.isInteger(e) && e <= 65535 ? e : -1;
- }
- getMap() {
- const e = new Array(65536);
- for (let t = 0; t <= 65535; t++) e[t] = t;
- return e;
- }
- get length() {
- return 65536;
- }
- get isIdentityCMap() {
- (0, r.unreachable)('should not access .isIdentityCMap');
- }
- }
- t.IdentityCMap = IdentityCMap;
- function strToInt(e) {
- let t = 0;
- for (let a = 0; a < e.length; a++) t = (t << 8) | e.charCodeAt(a);
- return t >>> 0;
- }
- function expectString(e) {
- if ('string' != typeof e) throw new r.FormatError('Malformed CMap: expected string.');
- }
- function expectInt(e) {
- if (!Number.isInteger(e)) throw new r.FormatError('Malformed CMap: expected int.');
- }
- function parseBfChar(e, t) {
- for (;;) {
- let a = t.getObj();
- if (a === i.EOF) break;
- if ((0, i.isCmd)(a, 'endbfchar')) return;
- expectString(a);
- const r = strToInt(a);
- a = t.getObj();
- expectString(a);
- const n = a;
- e.mapOne(r, n);
- }
- }
- function parseBfRange(e, t) {
- for (;;) {
- let a = t.getObj();
- if (a === i.EOF) break;
- if ((0, i.isCmd)(a, 'endbfrange')) return;
- expectString(a);
- const r = strToInt(a);
- a = t.getObj();
- expectString(a);
- const n = strToInt(a);
- a = t.getObj();
- if (Number.isInteger(a) || 'string' == typeof a) {
- const t = Number.isInteger(a) ? String.fromCharCode(a) : a;
- e.mapBfRange(r, n, t);
- } else {
- if (!(0, i.isCmd)(a, '[')) break;
- {
- a = t.getObj();
- const s = [];
- for (; !(0, i.isCmd)(a, ']') && a !== i.EOF; ) {
- s.push(a);
- a = t.getObj();
- }
- e.mapBfRangeToArray(r, n, s);
- }
- }
- }
- throw new r.FormatError('Invalid bf range.');
- }
- function parseCidChar(e, t) {
- for (;;) {
- let a = t.getObj();
- if (a === i.EOF) break;
- if ((0, i.isCmd)(a, 'endcidchar')) return;
- expectString(a);
- const r = strToInt(a);
- a = t.getObj();
- expectInt(a);
- const n = a;
- e.mapOne(r, n);
- }
- }
- function parseCidRange(e, t) {
- for (;;) {
- let a = t.getObj();
- if (a === i.EOF) break;
- if ((0, i.isCmd)(a, 'endcidrange')) return;
- expectString(a);
- const r = strToInt(a);
- a = t.getObj();
- expectString(a);
- const n = strToInt(a);
- a = t.getObj();
- expectInt(a);
- const s = a;
- e.mapCidRange(r, n, s);
- }
- }
- function parseCodespaceRange(e, t) {
- for (;;) {
- let a = t.getObj();
- if (a === i.EOF) break;
- if ((0, i.isCmd)(a, 'endcodespacerange')) return;
- if ('string' != typeof a) break;
- const r = strToInt(a);
- a = t.getObj();
- if ('string' != typeof a) break;
- const n = strToInt(a);
- e.addCodespaceRange(a.length, r, n);
- }
- throw new r.FormatError('Invalid codespace range.');
- }
- function parseWMode(e, t) {
- const a = t.getObj();
- Number.isInteger(a) && (e.vertical = !!a);
- }
- function parseCMapName(e, t) {
- const a = t.getObj();
- a instanceof i.Name && (e.name = a.name);
- }
- async function parseCMap(e, t, a, n) {
- let s, o;
- e: for (;;)
- try {
- const a = t.getObj();
- if (a === i.EOF) break;
- if (a instanceof i.Name) {
- 'WMode' === a.name
- ? parseWMode(e, t)
- : 'CMapName' === a.name && parseCMapName(e, t);
- s = a;
- } else if (a instanceof i.Cmd)
- switch (a.cmd) {
- case 'endcmap':
- break e;
- case 'usecmap':
- s instanceof i.Name && (o = s.name);
- break;
- case 'begincodespacerange':
- parseCodespaceRange(e, t);
- break;
- case 'beginbfchar':
- parseBfChar(e, t);
- break;
- case 'begincidchar':
- parseCidChar(e, t);
- break;
- case 'beginbfrange':
- parseBfRange(e, t);
- break;
- case 'begincidrange':
- parseCidRange(e, t);
- }
- } catch (e) {
- if (e instanceof c.MissingDataException) throw e;
- (0, r.warn)('Invalid cMap data: ' + e);
- continue;
- }
- !n && o && (n = o);
- return n ? extendCMap(e, a, n) : e;
- }
- async function extendCMap(e, t, a) {
- e.useCMap = await createBuiltInCMap(a, t);
- if (0 === e.numCodespaceRanges) {
- const t = e.useCMap.codespaceRanges;
- for (let a = 0; a < t.length; a++) e.codespaceRanges[a] = t[a].slice();
- e.numCodespaceRanges = e.useCMap.numCodespaceRanges;
- }
- e.useCMap.forEach(function (t, a) {
- e.contains(t) || e.mapOne(t, e.useCMap.lookup(t));
- });
- return e;
- }
- async function createBuiltInCMap(e, t) {
- if ('Identity-H' === e) return new IdentityCMap(!1, 2);
- if ('Identity-V' === e) return new IdentityCMap(!0, 2);
- if (!h.includes(e)) throw new Error('Unknown CMap name: ' + e);
- if (!t) throw new Error('Built-in CMap parameters are not provided.');
- const { cMapData: a, compressionType: i } = await t(e),
- n = new CMap(!0);
- if (i === r.CMapCompressionType.BINARY)
- return new s.BinaryCMapReader().process(a, n, (e) => extendCMap(n, t, e));
- if (i === r.CMapCompressionType.NONE) {
- const e = new o.Lexer(new l.Stream(a));
- return parseCMap(n, e, t, null);
- }
- throw new Error(`Invalid CMap "compressionType" value: ${i}`);
- }
- t.CMapFactory = class CMapFactory {
- static async create({ encoding: e, fetchBuiltInCMap: t, useCMap: a }) {
- if (e instanceof i.Name) return createBuiltInCMap(e.name, t);
- if (e instanceof n.BaseStream) {
- const r = await parseCMap(new CMap(), new o.Lexer(e), t, a);
- return r.isIdentityCMap ? createBuiltInCMap(r.name, t) : r;
- }
- throw new Error('Encoding required.');
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.BinaryCMapReader = void 0;
- var r = a(2);
- function hexToInt(e, t) {
- let a = 0;
- for (let r = 0; r <= t; r++) a = (a << 8) | e[r];
- return a >>> 0;
- }
- function hexToStr(e, t) {
- return 1 === t
- ? String.fromCharCode(e[0], e[1])
- : 3 === t
- ? String.fromCharCode(e[0], e[1], e[2], e[3])
- : String.fromCharCode(...e.subarray(0, t + 1));
- }
- function addHex(e, t, a) {
- let r = 0;
- for (let i = a; i >= 0; i--) {
- r += e[i] + t[i];
- e[i] = 255 & r;
- r >>= 8;
- }
- }
- function incHex(e, t) {
- let a = 1;
- for (let r = t; r >= 0 && a > 0; r--) {
- a += e[r];
- e[r] = 255 & a;
- a >>= 8;
- }
- }
- const i = 16;
- class BinaryCMapStream {
- constructor(e) {
- this.buffer = e;
- this.pos = 0;
- this.end = e.length;
- this.tmpBuf = new Uint8Array(19);
- }
- readByte() {
- return this.pos >= this.end ? -1 : this.buffer[this.pos++];
- }
- readNumber() {
- let e,
- t = 0;
- do {
- const a = this.readByte();
- if (a < 0) throw new r.FormatError('unexpected EOF in bcmap');
- e = !(128 & a);
- t = (t << 7) | (127 & a);
- } while (!e);
- return t;
- }
- readSigned() {
- const e = this.readNumber();
- return 1 & e ? ~(e >>> 1) : e >>> 1;
- }
- readHex(e, t) {
- e.set(this.buffer.subarray(this.pos, this.pos + t + 1));
- this.pos += t + 1;
- }
- readHexNumber(e, t) {
- let a;
- const i = this.tmpBuf;
- let n = 0;
- do {
- const e = this.readByte();
- if (e < 0) throw new r.FormatError('unexpected EOF in bcmap');
- a = !(128 & e);
- i[n++] = 127 & e;
- } while (!a);
- let s = t,
- o = 0,
- c = 0;
- for (; s >= 0; ) {
- for (; c < 8 && i.length > 0; ) {
- o |= i[--n] << c;
- c += 7;
- }
- e[s] = 255 & o;
- s--;
- o >>= 8;
- c -= 8;
- }
- }
- readHexSigned(e, t) {
- this.readHexNumber(e, t);
- const a = 1 & e[t] ? 255 : 0;
- let r = 0;
- for (let i = 0; i <= t; i++) {
- r = ((1 & r) << 8) | e[i];
- e[i] = (r >> 1) ^ a;
- }
- }
- readString() {
- const e = this.readNumber(),
- t = new Array(e);
- for (let a = 0; a < e; a++) t[a] = this.readNumber();
- return String.fromCharCode(...t);
- }
- }
- t.BinaryCMapReader = class BinaryCMapReader {
- async process(e, t, a) {
- const r = new BinaryCMapStream(e),
- n = r.readByte();
- t.vertical = !!(1 & n);
- let s = null;
- const o = new Uint8Array(i),
- c = new Uint8Array(i),
- l = new Uint8Array(i),
- h = new Uint8Array(i),
- u = new Uint8Array(i);
- let d, f;
- for (; (f = r.readByte()) >= 0; ) {
- const e = f >> 5;
- if (7 === e) {
- switch (31 & f) {
- case 0:
- r.readString();
- break;
- case 1:
- s = r.readString();
- }
- continue;
- }
- const a = !!(16 & f),
- n = 15 & f;
- if (n + 1 > i) throw new Error('BinaryCMapReader.process: Invalid dataSize.');
- const g = 1,
- p = r.readNumber();
- switch (e) {
- case 0:
- r.readHex(o, n);
- r.readHexNumber(c, n);
- addHex(c, o, n);
- t.addCodespaceRange(n + 1, hexToInt(o, n), hexToInt(c, n));
- for (let e = 1; e < p; e++) {
- incHex(c, n);
- r.readHexNumber(o, n);
- addHex(o, c, n);
- r.readHexNumber(c, n);
- addHex(c, o, n);
- t.addCodespaceRange(n + 1, hexToInt(o, n), hexToInt(c, n));
- }
- break;
- case 1:
- r.readHex(o, n);
- r.readHexNumber(c, n);
- addHex(c, o, n);
- r.readNumber();
- for (let e = 1; e < p; e++) {
- incHex(c, n);
- r.readHexNumber(o, n);
- addHex(o, c, n);
- r.readHexNumber(c, n);
- addHex(c, o, n);
- r.readNumber();
- }
- break;
- case 2:
- r.readHex(l, n);
- d = r.readNumber();
- t.mapOne(hexToInt(l, n), d);
- for (let e = 1; e < p; e++) {
- incHex(l, n);
- if (!a) {
- r.readHexNumber(u, n);
- addHex(l, u, n);
- }
- d = r.readSigned() + (d + 1);
- t.mapOne(hexToInt(l, n), d);
- }
- break;
- case 3:
- r.readHex(o, n);
- r.readHexNumber(c, n);
- addHex(c, o, n);
- d = r.readNumber();
- t.mapCidRange(hexToInt(o, n), hexToInt(c, n), d);
- for (let e = 1; e < p; e++) {
- incHex(c, n);
- if (a) o.set(c);
- else {
- r.readHexNumber(o, n);
- addHex(o, c, n);
- }
- r.readHexNumber(c, n);
- addHex(c, o, n);
- d = r.readNumber();
- t.mapCidRange(hexToInt(o, n), hexToInt(c, n), d);
- }
- break;
- case 4:
- r.readHex(l, g);
- r.readHex(h, n);
- t.mapOne(hexToInt(l, g), hexToStr(h, n));
- for (let e = 1; e < p; e++) {
- incHex(l, g);
- if (!a) {
- r.readHexNumber(u, g);
- addHex(l, u, g);
- }
- incHex(h, n);
- r.readHexSigned(u, n);
- addHex(h, u, n);
- t.mapOne(hexToInt(l, g), hexToStr(h, n));
- }
- break;
- case 5:
- r.readHex(o, g);
- r.readHexNumber(c, g);
- addHex(c, o, g);
- r.readHex(h, n);
- t.mapBfRange(hexToInt(o, g), hexToInt(c, g), hexToStr(h, n));
- for (let e = 1; e < p; e++) {
- incHex(c, g);
- if (a) o.set(c);
- else {
- r.readHexNumber(o, g);
- addHex(o, c, g);
- }
- r.readHexNumber(c, g);
- addHex(c, o, g);
- r.readHex(h, n);
- t.mapBfRange(hexToInt(o, g), hexToInt(c, g), hexToStr(h, n));
- }
- break;
- default:
- throw new Error(`BinaryCMapReader.process - unknown type: ${e}`);
- }
- }
- return s ? a(s) : t;
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.Parser = t.Linearization = t.Lexer = void 0;
- var r = a(2),
- i = a(4),
- n = a(3),
- s = a(17),
- o = a(19),
- c = a(20),
- l = a(22),
- h = a(23),
- u = a(26),
- d = a(29),
- f = a(31),
- g = a(8),
- p = a(32),
- m = a(33);
- class Parser {
- constructor({ lexer: e, xref: t, allowStreams: a = !1, recoveryMode: r = !1 }) {
- this.lexer = e;
- this.xref = t;
- this.allowStreams = a;
- this.recoveryMode = r;
- this.imageCache = Object.create(null);
- this._imageId = 0;
- this.refill();
- }
- refill() {
- this.buf1 = this.lexer.getObj();
- this.buf2 = this.lexer.getObj();
- }
- shift() {
- if (this.buf2 instanceof i.Cmd && 'ID' === this.buf2.cmd) {
- this.buf1 = this.buf2;
- this.buf2 = null;
- } else {
- this.buf1 = this.buf2;
- this.buf2 = this.lexer.getObj();
- }
- }
- tryShift() {
- try {
- this.shift();
- return !0;
- } catch (e) {
- if (e instanceof n.MissingDataException) throw e;
- return !1;
- }
- }
- getObj(e = null) {
- const t = this.buf1;
- this.shift();
- if (t instanceof i.Cmd)
- switch (t.cmd) {
- case 'BI':
- return this.makeInlineImage(e);
- case '[':
- const a = [];
- for (; !(0, i.isCmd)(this.buf1, ']') && this.buf1 !== i.EOF; )
- a.push(this.getObj(e));
- if (this.buf1 === i.EOF) {
- if (this.recoveryMode) return a;
- throw new n.ParserEOFException('End of file inside array.');
- }
- this.shift();
- return a;
- case '<<':
- const s = new i.Dict(this.xref);
- for (; !(0, i.isCmd)(this.buf1, '>>') && this.buf1 !== i.EOF; ) {
- if (!(this.buf1 instanceof i.Name)) {
- (0, r.info)('Malformed dictionary: key must be a name object');
- this.shift();
- continue;
- }
- const t = this.buf1.name;
- this.shift();
- if (this.buf1 === i.EOF) break;
- s.set(t, this.getObj(e));
- }
- if (this.buf1 === i.EOF) {
- if (this.recoveryMode) return s;
- throw new n.ParserEOFException('End of file inside dictionary.');
- }
- if ((0, i.isCmd)(this.buf2, 'stream'))
- return this.allowStreams ? this.makeStream(s, e) : s;
- this.shift();
- return s;
- default:
- return t;
- }
- if (Number.isInteger(t)) {
- if (Number.isInteger(this.buf1) && (0, i.isCmd)(this.buf2, 'R')) {
- const e = i.Ref.get(t, this.buf1);
- this.shift();
- this.shift();
- return e;
- }
- return t;
- }
- return 'string' == typeof t && e ? e.decryptString(t) : t;
- }
- findDefaultInlineStreamEnd(e) {
- const t = this.lexer,
- a = e.pos;
- let s,
- o,
- c = 0;
- for (; -1 !== (s = e.getByte()); )
- if (0 === c) c = 69 === s ? 1 : 0;
- else if (1 === c) c = 73 === s ? 2 : 0;
- else if (32 === s || 10 === s || 13 === s) {
- o = e.pos;
- const a = e.peekBytes(10);
- for (let e = 0, t = a.length; e < t; e++) {
- s = a[e];
- if (
- (0 !== s || 0 === a[e + 1]) &&
- 10 !== s &&
- 13 !== s &&
- (s < 32 || s > 127)
- ) {
- c = 0;
- break;
- }
- }
- if (2 !== c) continue;
- if (t.knownCommands) {
- const e = t.peekObj();
- e instanceof i.Cmd && !t.knownCommands[e.cmd] && (c = 0);
- } else
- (0, r.warn)('findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.');
- if (2 === c) break;
- } else c = 0;
- if (-1 === s) {
- (0, r.warn)(
- 'findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker',
- );
- if (o) {
- (0, r.warn)('... trying to recover by using the last "EI" occurrence.');
- e.skip(-(e.pos - o));
- }
- }
- let l = 4;
- e.skip(-l);
- s = e.peekByte();
- e.skip(l);
- (0, n.isWhiteSpace)(s) || l--;
- return e.pos - l - a;
- }
- findDCTDecodeInlineStreamEnd(e) {
- const t = e.pos;
- let a,
- i,
- n = !1;
- for (; -1 !== (a = e.getByte()); )
- if (255 === a) {
- switch (e.getByte()) {
- case 0:
- break;
- case 255:
- e.skip(-1);
- break;
- case 217:
- n = !0;
- break;
- case 192:
- case 193:
- case 194:
- case 195:
- case 197:
- case 198:
- case 199:
- case 201:
- case 202:
- case 203:
- case 205:
- case 206:
- case 207:
- case 196:
- case 204:
- case 218:
- case 219:
- case 220:
- case 221:
- case 222:
- case 223:
- case 224:
- case 225:
- case 226:
- case 227:
- case 228:
- case 229:
- case 230:
- case 231:
- case 232:
- case 233:
- case 234:
- case 235:
- case 236:
- case 237:
- case 238:
- case 239:
- case 254:
- i = e.getUint16();
- i > 2 ? e.skip(i - 2) : e.skip(-2);
- }
- if (n) break;
- }
- const s = e.pos - t;
- if (-1 === a) {
- (0, r.warn)(
- 'Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.',
- );
- e.skip(-s);
- return this.findDefaultInlineStreamEnd(e);
- }
- this.inlineStreamSkipEI(e);
- return s;
- }
- findASCII85DecodeInlineStreamEnd(e) {
- const t = e.pos;
- let a;
- for (; -1 !== (a = e.getByte()); )
- if (126 === a) {
- const t = e.pos;
- a = e.peekByte();
- for (; (0, n.isWhiteSpace)(a); ) {
- e.skip();
- a = e.peekByte();
- }
- if (62 === a) {
- e.skip();
- break;
- }
- if (e.pos > t) {
- const t = e.peekBytes(2);
- if (69 === t[0] && 73 === t[1]) break;
- }
- }
- const i = e.pos - t;
- if (-1 === a) {
- (0, r.warn)(
- 'Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.',
- );
- e.skip(-i);
- return this.findDefaultInlineStreamEnd(e);
- }
- this.inlineStreamSkipEI(e);
- return i;
- }
- findASCIIHexDecodeInlineStreamEnd(e) {
- const t = e.pos;
- let a;
- for (; -1 !== (a = e.getByte()) && 62 !== a; );
- const i = e.pos - t;
- if (-1 === a) {
- (0, r.warn)(
- 'Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.',
- );
- e.skip(-i);
- return this.findDefaultInlineStreamEnd(e);
- }
- this.inlineStreamSkipEI(e);
- return i;
- }
- inlineStreamSkipEI(e) {
- let t,
- a = 0;
- for (; -1 !== (t = e.getByte()); )
- if (0 === a) a = 69 === t ? 1 : 0;
- else if (1 === a) a = 73 === t ? 2 : 0;
- else if (2 === a) break;
- }
- makeInlineImage(e) {
- const t = this.lexer,
- a = t.stream,
- n = Object.create(null);
- let s;
- for (; !(0, i.isCmd)(this.buf1, 'ID') && this.buf1 !== i.EOF; ) {
- if (!(this.buf1 instanceof i.Name))
- throw new r.FormatError('Dictionary key must be a name object');
- const t = this.buf1.name;
- this.shift();
- if (this.buf1 === i.EOF) break;
- n[t] = this.getObj(e);
- }
- -1 !== t.beginInlineImagePos && (s = a.pos - t.beginInlineImagePos);
- const o = this.xref.fetchIfRef(n.F || n.Filter);
- let c;
- if (o instanceof i.Name) c = o.name;
- else if (Array.isArray(o)) {
- const e = this.xref.fetchIfRef(o[0]);
- e instanceof i.Name && (c = e.name);
- }
- const l = a.pos;
- let h, u;
- switch (c) {
- case 'DCT':
- case 'DCTDecode':
- h = this.findDCTDecodeInlineStreamEnd(a);
- break;
- case 'A85':
- case 'ASCII85Decode':
- h = this.findASCII85DecodeInlineStreamEnd(a);
- break;
- case 'AHx':
- case 'ASCIIHexDecode':
- h = this.findASCIIHexDecodeInlineStreamEnd(a);
- break;
- default:
- h = this.findDefaultInlineStreamEnd(a);
- }
- if (h < 1e3 && s > 0) {
- const e = a.pos;
- a.pos = t.beginInlineImagePos;
- u = (function getInlineImageCacheKey(e) {
- const t = [],
- a = e.length;
- let r = 0;
- for (; r < a - 1; ) t.push((e[r++] << 8) | e[r++]);
- r < a && t.push(e[r]);
- return a + '_' + String.fromCharCode.apply(null, t);
- })(a.getBytes(s + h));
- a.pos = e;
- const r = this.imageCache[u];
- if (void 0 !== r) {
- this.buf2 = i.Cmd.get('EI');
- this.shift();
- r.reset();
- return r;
- }
- }
- const d = new i.Dict(this.xref);
- for (const e in n) d.set(e, n[e]);
- let f = a.makeSubStream(l, h, d);
- e && (f = e.createStream(f, h));
- f = this.filter(f, d, h);
- f.dict = d;
- if (void 0 !== u) {
- f.cacheKey = 'inline_img_' + ++this._imageId;
- this.imageCache[u] = f;
- }
- this.buf2 = i.Cmd.get('EI');
- this.shift();
- return f;
- }
- _findStreamLength(e, t) {
- const { stream: a } = this.lexer;
- a.pos = e;
- const r = t.length;
- for (; a.pos < a.end; ) {
- const i = a.peekBytes(2048),
- n = i.length - r;
- if (n <= 0) break;
- let s = 0;
- for (; s < n; ) {
- let n = 0;
- for (; n < r && i[s + n] === t[n]; ) n++;
- if (n >= r) {
- a.pos += s;
- return a.pos - e;
- }
- s++;
- }
- a.pos += n;
- }
- return -1;
- }
- makeStream(e, t) {
- const a = this.lexer;
- let s = a.stream;
- a.skipToNextLine();
- const o = s.pos - 1;
- let c = e.get('Length');
- if (!Number.isInteger(c)) {
- (0, r.info)(`Bad length "${c && c.toString()}" in stream.`);
- c = 0;
- }
- s.pos = o + c;
- a.nextChar();
- if (this.tryShift() && (0, i.isCmd)(this.buf2, 'endstream')) this.shift();
- else {
- const e = new Uint8Array([101, 110, 100, 115, 116, 114, 101, 97, 109]);
- let t = this._findStreamLength(o, e);
- if (t < 0) {
- const a = 1;
- for (let i = 1; i <= a; i++) {
- const a = e.length - i,
- c = e.slice(0, a),
- l = this._findStreamLength(o, c);
- if (l >= 0) {
- const e = s.peekBytes(a + 1)[a];
- if (!(0, n.isWhiteSpace)(e)) break;
- (0, r.info)(
- `Found "${(0, r.bytesToString)(c)}" when searching for endstream command.`,
- );
- t = l;
- break;
- }
- }
- if (t < 0) throw new r.FormatError('Missing endstream command.');
- }
- c = t;
- a.nextChar();
- this.shift();
- this.shift();
- }
- this.shift();
- s = s.makeSubStream(o, c, e);
- t && (s = t.createStream(s, c));
- s = this.filter(s, e, c);
- s.dict = e;
- return s;
- }
- filter(e, t, a) {
- let n = t.get('F', 'Filter'),
- s = t.get('DP', 'DecodeParms');
- if (n instanceof i.Name) {
- Array.isArray(s) &&
- (0, r.warn)('/DecodeParms should not be an Array, when /Filter is a Name.');
- return this.makeFilter(e, n.name, a, s);
- }
- let o = a;
- if (Array.isArray(n)) {
- const t = n,
- a = s;
- for (let c = 0, l = t.length; c < l; ++c) {
- n = this.xref.fetchIfRef(t[c]);
- if (!(n instanceof i.Name)) throw new r.FormatError(`Bad filter name "${n}"`);
- s = null;
- Array.isArray(a) && c in a && (s = this.xref.fetchIfRef(a[c]));
- e = this.makeFilter(e, n.name, o, s);
- o = null;
- }
- }
- return e;
- }
- makeFilter(e, t, a, i) {
- if (0 === a) {
- (0, r.warn)(`Empty "${t}" stream.`);
- return new g.NullStream();
- }
- try {
- switch (t) {
- case 'Fl':
- case 'FlateDecode':
- return i
- ? new p.PredictorStream(new l.FlateStream(e, a), a, i)
- : new l.FlateStream(e, a);
- case 'LZW':
- case 'LZWDecode':
- let t = 1;
- if (i) {
- i.has('EarlyChange') && (t = i.get('EarlyChange'));
- return new p.PredictorStream(new f.LZWStream(e, a, t), a, i);
- }
- return new f.LZWStream(e, a, t);
- case 'DCT':
- case 'DCTDecode':
- return new u.JpegStream(e, a, i);
- case 'JPX':
- case 'JPXDecode':
- return new d.JpxStream(e, a, i);
- case 'A85':
- case 'ASCII85Decode':
- return new s.Ascii85Stream(e, a);
- case 'AHx':
- case 'ASCIIHexDecode':
- return new o.AsciiHexStream(e, a);
- case 'CCF':
- case 'CCITTFaxDecode':
- return new c.CCITTFaxStream(e, a, i);
- case 'RL':
- case 'RunLengthDecode':
- return new m.RunLengthStream(e, a);
- case 'JBIG2Decode':
- return new h.Jbig2Stream(e, a, i);
- }
- (0, r.warn)(`Filter "${t}" is not supported.`);
- return e;
- } catch (e) {
- if (e instanceof n.MissingDataException) throw e;
- (0, r.warn)(`Invalid stream: "${e}"`);
- return new g.NullStream();
- }
- }
- }
- t.Parser = Parser;
- const b = [
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 1, 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- ];
- function toHexDigit(e) {
- return e >= 48 && e <= 57
- ? 15 & e
- : (e >= 65 && e <= 70) || (e >= 97 && e <= 102)
- ? 9 + (15 & e)
- : -1;
- }
- class Lexer {
- constructor(e, t = null) {
- this.stream = e;
- this.nextChar();
- this.strBuf = [];
- this.knownCommands = t;
- this._hexStringNumWarn = 0;
- this.beginInlineImagePos = -1;
- }
- nextChar() {
- return (this.currentChar = this.stream.getByte());
- }
- peekChar() {
- return this.stream.peekByte();
- }
- getNumber() {
- let e = this.currentChar,
- t = !1,
- a = 0,
- i = 0;
- if (45 === e) {
- i = -1;
- e = this.nextChar();
- 45 === e && (e = this.nextChar());
- } else if (43 === e) {
- i = 1;
- e = this.nextChar();
- }
- if (10 === e || 13 === e)
- do {
- e = this.nextChar();
- } while (10 === e || 13 === e);
- if (46 === e) {
- a = 10;
- e = this.nextChar();
- }
- if (e < 48 || e > 57) {
- const t = `Invalid number: ${String.fromCharCode(e)} (charCode ${e})`;
- if ((0, n.isWhiteSpace)(e) || -1 === e) {
- (0, r.info)(`Lexer.getNumber - "${t}".`);
- return 0;
- }
- throw new r.FormatError(t);
- }
- i ||= 1;
- let s = e - 48,
- o = 0,
- c = 1;
- for (; (e = this.nextChar()) >= 0; )
- if (e >= 48 && e <= 57) {
- const r = e - 48;
- if (t) o = 10 * o + r;
- else {
- 0 !== a && (a *= 10);
- s = 10 * s + r;
- }
- } else if (46 === e) {
- if (0 !== a) break;
- a = 1;
- } else if (45 === e)
- (0, r.warn)('Badly formatted number: minus sign in the middle');
- else {
- if (69 !== e && 101 !== e) break;
- e = this.peekChar();
- if (43 === e || 45 === e) {
- c = 45 === e ? -1 : 1;
- this.nextChar();
- } else if (e < 48 || e > 57) break;
- t = !0;
- }
- 0 !== a && (s /= a);
- t && (s *= 10 ** (c * o));
- return i * s;
- }
- getString() {
- let e = 1,
- t = !1;
- const a = this.strBuf;
- a.length = 0;
- let i = this.nextChar();
- for (;;) {
- let n = !1;
- switch (0 | i) {
- case -1:
- (0, r.warn)('Unterminated string');
- t = !0;
- break;
- case 40:
- ++e;
- a.push('(');
- break;
- case 41:
- if (0 == --e) {
- this.nextChar();
- t = !0;
- } else a.push(')');
- break;
- case 92:
- i = this.nextChar();
- switch (i) {
- case -1:
- (0, r.warn)('Unterminated string');
- t = !0;
- break;
- case 110:
- a.push('\n');
- break;
- case 114:
- a.push('\r');
- break;
- case 116:
- a.push('\t');
- break;
- case 98:
- a.push('\b');
- break;
- case 102:
- a.push('\f');
- break;
- case 92:
- case 40:
- case 41:
- a.push(String.fromCharCode(i));
- break;
- case 48:
- case 49:
- case 50:
- case 51:
- case 52:
- case 53:
- case 54:
- case 55:
- let e = 15 & i;
- i = this.nextChar();
- n = !0;
- if (i >= 48 && i <= 55) {
- e = (e << 3) + (15 & i);
- i = this.nextChar();
- if (i >= 48 && i <= 55) {
- n = !1;
- e = (e << 3) + (15 & i);
- }
- }
- a.push(String.fromCharCode(e));
- break;
- case 13:
- 10 === this.peekChar() && this.nextChar();
- break;
- case 10:
- break;
- default:
- a.push(String.fromCharCode(i));
- }
- break;
- default:
- a.push(String.fromCharCode(i));
- }
- if (t) break;
- n || (i = this.nextChar());
- }
- return a.join('');
- }
- getName() {
- let e, t;
- const a = this.strBuf;
- a.length = 0;
- for (; (e = this.nextChar()) >= 0 && !b[e]; )
- if (35 === e) {
- e = this.nextChar();
- if (b[e]) {
- (0, r.warn)(
- 'Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.',
- );
- a.push('#');
- break;
- }
- const i = toHexDigit(e);
- if (-1 !== i) {
- t = e;
- e = this.nextChar();
- const n = toHexDigit(e);
- if (-1 === n) {
- (0, r.warn)(
- `Lexer_getName: Illegal digit (${String.fromCharCode(
- e,
- )}) in hexadecimal number.`,
- );
- a.push('#', String.fromCharCode(t));
- if (b[e]) break;
- a.push(String.fromCharCode(e));
- continue;
- }
- a.push(String.fromCharCode((i << 4) | n));
- } else a.push('#', String.fromCharCode(e));
- } else a.push(String.fromCharCode(e));
- a.length > 127 &&
- (0, r.warn)(`Name token is longer than allowed by the spec: ${a.length}`);
- return i.Name.get(a.join(''));
- }
- _hexStringWarn(e) {
- 5 != this._hexStringNumWarn++
- ? this._hexStringNumWarn > 5 ||
- (0, r.warn)(`getHexString - ignoring invalid character: ${e}`)
- : (0, r.warn)('getHexString - ignoring additional invalid characters.');
- }
- getHexString() {
- const e = this.strBuf;
- e.length = 0;
- let t,
- a,
- i = this.currentChar,
- n = !0;
- this._hexStringNumWarn = 0;
- for (;;) {
- if (i < 0) {
- (0, r.warn)('Unterminated hex string');
- break;
- }
- if (62 === i) {
- this.nextChar();
- break;
- }
- if (1 !== b[i]) {
- if (n) {
- t = toHexDigit(i);
- if (-1 === t) {
- this._hexStringWarn(i);
- i = this.nextChar();
- continue;
- }
- } else {
- a = toHexDigit(i);
- if (-1 === a) {
- this._hexStringWarn(i);
- i = this.nextChar();
- continue;
- }
- e.push(String.fromCharCode((t << 4) | a));
- }
- n = !n;
- i = this.nextChar();
- } else i = this.nextChar();
- }
- return e.join('');
- }
- getObj() {
- let e = !1,
- t = this.currentChar;
- for (;;) {
- if (t < 0) return i.EOF;
- if (e) (10 !== t && 13 !== t) || (e = !1);
- else if (37 === t) e = !0;
- else if (1 !== b[t]) break;
- t = this.nextChar();
- }
- switch (0 | t) {
- case 48:
- case 49:
- case 50:
- case 51:
- case 52:
- case 53:
- case 54:
- case 55:
- case 56:
- case 57:
- case 43:
- case 45:
- case 46:
- return this.getNumber();
- case 40:
- return this.getString();
- case 47:
- return this.getName();
- case 91:
- this.nextChar();
- return i.Cmd.get('[');
- case 93:
- this.nextChar();
- return i.Cmd.get(']');
- case 60:
- t = this.nextChar();
- if (60 === t) {
- this.nextChar();
- return i.Cmd.get('<<');
- }
- return this.getHexString();
- case 62:
- t = this.nextChar();
- if (62 === t) {
- this.nextChar();
- return i.Cmd.get('>>');
- }
- return i.Cmd.get('>');
- case 123:
- this.nextChar();
- return i.Cmd.get('{');
- case 125:
- this.nextChar();
- return i.Cmd.get('}');
- case 41:
- this.nextChar();
- throw new r.FormatError(`Illegal character: ${t}`);
- }
- let a = String.fromCharCode(t);
- if (t < 32 || t > 127) {
- const e = this.peekChar();
- if (e >= 32 && e <= 127) {
- this.nextChar();
- return i.Cmd.get(a);
- }
- }
- const n = this.knownCommands;
- let s = n && void 0 !== n[a];
- for (; (t = this.nextChar()) >= 0 && !b[t]; ) {
- const e = a + String.fromCharCode(t);
- if (s && void 0 === n[e]) break;
- if (128 === a.length)
- throw new r.FormatError(`Command token too long: ${a.length}`);
- a = e;
- s = n && void 0 !== n[a];
- }
- if ('true' === a) return !0;
- if ('false' === a) return !1;
- if ('null' === a) return null;
- 'BI' === a && (this.beginInlineImagePos = this.stream.pos);
- return i.Cmd.get(a);
- }
- peekObj() {
- const e = this.stream.pos,
- t = this.currentChar,
- a = this.beginInlineImagePos;
- let i;
- try {
- i = this.getObj();
- } catch (e) {
- if (e instanceof n.MissingDataException) throw e;
- (0, r.warn)(`peekObj: ${e}`);
- }
- this.stream.pos = e;
- this.currentChar = t;
- this.beginInlineImagePos = a;
- return i;
- }
- skipToNextLine() {
- let e = this.currentChar;
- for (; e >= 0; ) {
- if (13 === e) {
- e = this.nextChar();
- 10 === e && this.nextChar();
- break;
- }
- if (10 === e) {
- this.nextChar();
- break;
- }
- e = this.nextChar();
- }
- }
- }
- t.Lexer = Lexer;
- t.Linearization = class Linearization {
- static create(e) {
- function getInt(e, t, a = !1) {
- const r = e.get(t);
- if (Number.isInteger(r) && (a ? r >= 0 : r > 0)) return r;
- throw new Error(`The "${t}" parameter in the linearization dictionary is invalid.`);
- }
- const t = new Parser({ lexer: new Lexer(e), xref: null }),
- a = t.getObj(),
- r = t.getObj(),
- n = t.getObj(),
- s = t.getObj();
- let o, c;
- if (
- !(
- Number.isInteger(a) &&
- Number.isInteger(r) &&
- (0, i.isCmd)(n, 'obj') &&
- s instanceof i.Dict &&
- 'number' == typeof (o = s.get('Linearized')) &&
- o > 0
- )
- )
- return null;
- if ((c = getInt(s, 'L')) !== e.length)
- throw new Error(
- 'The "L" parameter in the linearization dictionary does not equal the stream length.',
- );
- return {
- length: c,
- hints: (function getHints(e) {
- const t = e.get('H');
- let a;
- if (Array.isArray(t) && (2 === (a = t.length) || 4 === a)) {
- for (let e = 0; e < a; e++) {
- const a = t[e];
- if (!(Number.isInteger(a) && a > 0))
- throw new Error(`Hint (${e}) in the linearization dictionary is invalid.`);
- }
- return t;
- }
- throw new Error('Hint array in the linearization dictionary is invalid.');
- })(s),
- objectNumberFirst: getInt(s, 'O'),
- endFirst: getInt(s, 'E'),
- numPages: getInt(s, 'N'),
- mainXRefEntriesOffset: getInt(s, 'T'),
- pageFirst: s.has('P') ? getInt(s, 'P', !0) : 0,
- };
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.Ascii85Stream = void 0;
- var r = a(18),
- i = a(3);
- class Ascii85Stream extends r.DecodeStream {
- constructor(e, t) {
- t && (t *= 0.8);
- super(t);
- this.str = e;
- this.dict = e.dict;
- this.input = new Uint8Array(5);
- }
- readBlock() {
- const e = this.str;
- let t = e.getByte();
- for (; (0, i.isWhiteSpace)(t); ) t = e.getByte();
- if (-1 === t || 126 === t) {
- this.eof = !0;
- return;
- }
- const a = this.bufferLength;
- let r, n;
- if (122 === t) {
- r = this.ensureBuffer(a + 4);
- for (n = 0; n < 4; ++n) r[a + n] = 0;
- this.bufferLength += 4;
- } else {
- const s = this.input;
- s[0] = t;
- for (n = 1; n < 5; ++n) {
- t = e.getByte();
- for (; (0, i.isWhiteSpace)(t); ) t = e.getByte();
- s[n] = t;
- if (-1 === t || 126 === t) break;
- }
- r = this.ensureBuffer(a + n - 1);
- this.bufferLength += n - 1;
- if (n < 5) {
- for (; n < 5; ++n) s[n] = 117;
- this.eof = !0;
- }
- let o = 0;
- for (n = 0; n < 5; ++n) o = 85 * o + (s[n] - 33);
- for (n = 3; n >= 0; --n) {
- r[a + n] = 255 & o;
- o >>= 8;
- }
- }
- }
- }
- t.Ascii85Stream = Ascii85Stream;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.StreamsSequenceStream = t.DecodeStream = void 0;
- var r = a(5),
- i = a(8);
- const n = new Uint8Array(0);
- class DecodeStream extends r.BaseStream {
- constructor(e) {
- super();
- this._rawMinBufferLength = e || 0;
- this.pos = 0;
- this.bufferLength = 0;
- this.eof = !1;
- this.buffer = n;
- this.minBufferLength = 512;
- if (e) for (; this.minBufferLength < e; ) this.minBufferLength *= 2;
- }
- get isEmpty() {
- for (; !this.eof && 0 === this.bufferLength; ) this.readBlock();
- return 0 === this.bufferLength;
- }
- ensureBuffer(e) {
- const t = this.buffer;
- if (e <= t.byteLength) return t;
- let a = this.minBufferLength;
- for (; a < e; ) a *= 2;
- const r = new Uint8Array(a);
- r.set(t);
- return (this.buffer = r);
- }
- getByte() {
- const e = this.pos;
- for (; this.bufferLength <= e; ) {
- if (this.eof) return -1;
- this.readBlock();
- }
- return this.buffer[this.pos++];
- }
- getBytes(e) {
- const t = this.pos;
- let a;
- if (e) {
- this.ensureBuffer(t + e);
- a = t + e;
- for (; !this.eof && this.bufferLength < a; ) this.readBlock();
- const r = this.bufferLength;
- a > r && (a = r);
- } else {
- for (; !this.eof; ) this.readBlock();
- a = this.bufferLength;
- }
- this.pos = a;
- return this.buffer.subarray(t, a);
- }
- reset() {
- this.pos = 0;
- }
- makeSubStream(e, t, a = null) {
- if (void 0 === t) for (; !this.eof; ) this.readBlock();
- else {
- const a = e + t;
- for (; this.bufferLength <= a && !this.eof; ) this.readBlock();
- }
- return new i.Stream(this.buffer, e, t, a);
- }
- getBaseStreams() {
- return this.str ? this.str.getBaseStreams() : null;
- }
- }
- t.DecodeStream = DecodeStream;
- t.StreamsSequenceStream = class StreamsSequenceStream extends DecodeStream {
- constructor(e, t = null) {
- let a = 0;
- for (const t of e) a += t instanceof DecodeStream ? t._rawMinBufferLength : t.length;
- super(a);
- this.streams = e;
- this._onError = t;
- }
- readBlock() {
- const e = this.streams;
- if (0 === e.length) {
- this.eof = !0;
- return;
- }
- const t = e.shift();
- let a;
- try {
- a = t.getBytes();
- } catch (e) {
- if (this._onError) {
- this._onError(e, t.dict && t.dict.objId);
- return;
- }
- throw e;
- }
- const r = this.bufferLength,
- i = r + a.length;
- this.ensureBuffer(i).set(a, r);
- this.bufferLength = i;
- }
- getBaseStreams() {
- const e = [];
- for (const t of this.streams) {
- const a = t.getBaseStreams();
- a && e.push(...a);
- }
- return e.length > 0 ? e : null;
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.AsciiHexStream = void 0;
- var r = a(18);
- class AsciiHexStream extends r.DecodeStream {
- constructor(e, t) {
- t && (t *= 0.5);
- super(t);
- this.str = e;
- this.dict = e.dict;
- this.firstDigit = -1;
- }
- readBlock() {
- const e = this.str.getBytes(8e3);
- if (!e.length) {
- this.eof = !0;
- return;
- }
- const t = (e.length + 1) >> 1,
- a = this.ensureBuffer(this.bufferLength + t);
- let r = this.bufferLength,
- i = this.firstDigit;
- for (const t of e) {
- let e;
- if (t >= 48 && t <= 57) e = 15 & t;
- else {
- if (!((t >= 65 && t <= 70) || (t >= 97 && t <= 102))) {
- if (62 === t) {
- this.eof = !0;
- break;
- }
- continue;
- }
- e = 9 + (15 & t);
- }
- if (i < 0) i = e;
- else {
- a[r++] = (i << 4) | e;
- i = -1;
- }
- }
- if (i >= 0 && this.eof) {
- a[r++] = i << 4;
- i = -1;
- }
- this.firstDigit = i;
- this.bufferLength = r;
- }
- }
- t.AsciiHexStream = AsciiHexStream;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.CCITTFaxStream = void 0;
- var r = a(21),
- i = a(18),
- n = a(4);
- class CCITTFaxStream extends i.DecodeStream {
- constructor(e, t, a) {
- super(t);
- this.str = e;
- this.dict = e.dict;
- a instanceof n.Dict || (a = n.Dict.empty);
- const i = { next: () => e.getByte() };
- this.ccittFaxDecoder = new r.CCITTFaxDecoder(i, {
- K: a.get('K'),
- EndOfLine: a.get('EndOfLine'),
- EncodedByteAlign: a.get('EncodedByteAlign'),
- Columns: a.get('Columns'),
- Rows: a.get('Rows'),
- EndOfBlock: a.get('EndOfBlock'),
- BlackIs1: a.get('BlackIs1'),
- });
- }
- readBlock() {
- for (; !this.eof; ) {
- const e = this.ccittFaxDecoder.readNextChar();
- if (-1 === e) {
- this.eof = !0;
- return;
- }
- this.ensureBuffer(this.bufferLength + 1);
- this.buffer[this.bufferLength++] = e;
- }
- }
- }
- t.CCITTFaxStream = CCITTFaxStream;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.CCITTFaxDecoder = void 0;
- var r = a(2);
- const i = -1,
- n = [
- [-1, -1],
- [-1, -1],
- [7, 8],
- [7, 7],
- [6, 6],
- [6, 6],
- [6, 5],
- [6, 5],
- [4, 0],
- [4, 0],
- [4, 0],
- [4, 0],
- [4, 0],
- [4, 0],
- [4, 0],
- [4, 0],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 3],
- [3, 3],
- [3, 3],
- [3, 3],
- [3, 3],
- [3, 3],
- [3, 3],
- [3, 3],
- [3, 3],
- [3, 3],
- [3, 3],
- [3, 3],
- [3, 3],
- [3, 3],
- [3, 3],
- [3, 3],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- [1, 2],
- ],
- s = [
- [-1, -1],
- [12, -2],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [11, 1792],
- [11, 1792],
- [12, 1984],
- [12, 2048],
- [12, 2112],
- [12, 2176],
- [12, 2240],
- [12, 2304],
- [11, 1856],
- [11, 1856],
- [11, 1920],
- [11, 1920],
- [12, 2368],
- [12, 2432],
- [12, 2496],
- [12, 2560],
- ],
- o = [
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [8, 29],
- [8, 29],
- [8, 30],
- [8, 30],
- [8, 45],
- [8, 45],
- [8, 46],
- [8, 46],
- [7, 22],
- [7, 22],
- [7, 22],
- [7, 22],
- [7, 23],
- [7, 23],
- [7, 23],
- [7, 23],
- [8, 47],
- [8, 47],
- [8, 48],
- [8, 48],
- [6, 13],
- [6, 13],
- [6, 13],
- [6, 13],
- [6, 13],
- [6, 13],
- [6, 13],
- [6, 13],
- [7, 20],
- [7, 20],
- [7, 20],
- [7, 20],
- [8, 33],
- [8, 33],
- [8, 34],
- [8, 34],
- [8, 35],
- [8, 35],
- [8, 36],
- [8, 36],
- [8, 37],
- [8, 37],
- [8, 38],
- [8, 38],
- [7, 19],
- [7, 19],
- [7, 19],
- [7, 19],
- [8, 31],
- [8, 31],
- [8, 32],
- [8, 32],
- [6, 1],
- [6, 1],
- [6, 1],
- [6, 1],
- [6, 1],
- [6, 1],
- [6, 1],
- [6, 1],
- [6, 12],
- [6, 12],
- [6, 12],
- [6, 12],
- [6, 12],
- [6, 12],
- [6, 12],
- [6, 12],
- [8, 53],
- [8, 53],
- [8, 54],
- [8, 54],
- [7, 26],
- [7, 26],
- [7, 26],
- [7, 26],
- [8, 39],
- [8, 39],
- [8, 40],
- [8, 40],
- [8, 41],
- [8, 41],
- [8, 42],
- [8, 42],
- [8, 43],
- [8, 43],
- [8, 44],
- [8, 44],
- [7, 21],
- [7, 21],
- [7, 21],
- [7, 21],
- [7, 28],
- [7, 28],
- [7, 28],
- [7, 28],
- [8, 61],
- [8, 61],
- [8, 62],
- [8, 62],
- [8, 63],
- [8, 63],
- [8, 0],
- [8, 0],
- [8, 320],
- [8, 320],
- [8, 384],
- [8, 384],
- [5, 10],
- [5, 10],
- [5, 10],
- [5, 10],
- [5, 10],
- [5, 10],
- [5, 10],
- [5, 10],
- [5, 10],
- [5, 10],
- [5, 10],
- [5, 10],
- [5, 10],
- [5, 10],
- [5, 10],
- [5, 10],
- [5, 11],
- [5, 11],
- [5, 11],
- [5, 11],
- [5, 11],
- [5, 11],
- [5, 11],
- [5, 11],
- [5, 11],
- [5, 11],
- [5, 11],
- [5, 11],
- [5, 11],
- [5, 11],
- [5, 11],
- [5, 11],
- [7, 27],
- [7, 27],
- [7, 27],
- [7, 27],
- [8, 59],
- [8, 59],
- [8, 60],
- [8, 60],
- [9, 1472],
- [9, 1536],
- [9, 1600],
- [9, 1728],
- [7, 18],
- [7, 18],
- [7, 18],
- [7, 18],
- [7, 24],
- [7, 24],
- [7, 24],
- [7, 24],
- [8, 49],
- [8, 49],
- [8, 50],
- [8, 50],
- [8, 51],
- [8, 51],
- [8, 52],
- [8, 52],
- [7, 25],
- [7, 25],
- [7, 25],
- [7, 25],
- [8, 55],
- [8, 55],
- [8, 56],
- [8, 56],
- [8, 57],
- [8, 57],
- [8, 58],
- [8, 58],
- [6, 192],
- [6, 192],
- [6, 192],
- [6, 192],
- [6, 192],
- [6, 192],
- [6, 192],
- [6, 192],
- [6, 1664],
- [6, 1664],
- [6, 1664],
- [6, 1664],
- [6, 1664],
- [6, 1664],
- [6, 1664],
- [6, 1664],
- [8, 448],
- [8, 448],
- [8, 512],
- [8, 512],
- [9, 704],
- [9, 768],
- [8, 640],
- [8, 640],
- [8, 576],
- [8, 576],
- [9, 832],
- [9, 896],
- [9, 960],
- [9, 1024],
- [9, 1088],
- [9, 1152],
- [9, 1216],
- [9, 1280],
- [9, 1344],
- [9, 1408],
- [7, 256],
- [7, 256],
- [7, 256],
- [7, 256],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 2],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [4, 3],
- [5, 128],
- [5, 128],
- [5, 128],
- [5, 128],
- [5, 128],
- [5, 128],
- [5, 128],
- [5, 128],
- [5, 128],
- [5, 128],
- [5, 128],
- [5, 128],
- [5, 128],
- [5, 128],
- [5, 128],
- [5, 128],
- [5, 8],
- [5, 8],
- [5, 8],
- [5, 8],
- [5, 8],
- [5, 8],
- [5, 8],
- [5, 8],
- [5, 8],
- [5, 8],
- [5, 8],
- [5, 8],
- [5, 8],
- [5, 8],
- [5, 8],
- [5, 8],
- [5, 9],
- [5, 9],
- [5, 9],
- [5, 9],
- [5, 9],
- [5, 9],
- [5, 9],
- [5, 9],
- [5, 9],
- [5, 9],
- [5, 9],
- [5, 9],
- [5, 9],
- [5, 9],
- [5, 9],
- [5, 9],
- [6, 16],
- [6, 16],
- [6, 16],
- [6, 16],
- [6, 16],
- [6, 16],
- [6, 16],
- [6, 16],
- [6, 17],
- [6, 17],
- [6, 17],
- [6, 17],
- [6, 17],
- [6, 17],
- [6, 17],
- [6, 17],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 4],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [6, 14],
- [6, 14],
- [6, 14],
- [6, 14],
- [6, 14],
- [6, 14],
- [6, 14],
- [6, 14],
- [6, 15],
- [6, 15],
- [6, 15],
- [6, 15],
- [6, 15],
- [6, 15],
- [6, 15],
- [6, 15],
- [5, 64],
- [5, 64],
- [5, 64],
- [5, 64],
- [5, 64],
- [5, 64],
- [5, 64],
- [5, 64],
- [5, 64],
- [5, 64],
- [5, 64],
- [5, 64],
- [5, 64],
- [5, 64],
- [5, 64],
- [5, 64],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- [4, 7],
- ],
- c = [
- [-1, -1],
- [-1, -1],
- [12, -2],
- [12, -2],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [11, 1792],
- [11, 1792],
- [11, 1792],
- [11, 1792],
- [12, 1984],
- [12, 1984],
- [12, 2048],
- [12, 2048],
- [12, 2112],
- [12, 2112],
- [12, 2176],
- [12, 2176],
- [12, 2240],
- [12, 2240],
- [12, 2304],
- [12, 2304],
- [11, 1856],
- [11, 1856],
- [11, 1856],
- [11, 1856],
- [11, 1920],
- [11, 1920],
- [11, 1920],
- [11, 1920],
- [12, 2368],
- [12, 2368],
- [12, 2432],
- [12, 2432],
- [12, 2496],
- [12, 2496],
- [12, 2560],
- [12, 2560],
- [10, 18],
- [10, 18],
- [10, 18],
- [10, 18],
- [10, 18],
- [10, 18],
- [10, 18],
- [10, 18],
- [12, 52],
- [12, 52],
- [13, 640],
- [13, 704],
- [13, 768],
- [13, 832],
- [12, 55],
- [12, 55],
- [12, 56],
- [12, 56],
- [13, 1280],
- [13, 1344],
- [13, 1408],
- [13, 1472],
- [12, 59],
- [12, 59],
- [12, 60],
- [12, 60],
- [13, 1536],
- [13, 1600],
- [11, 24],
- [11, 24],
- [11, 24],
- [11, 24],
- [11, 25],
- [11, 25],
- [11, 25],
- [11, 25],
- [13, 1664],
- [13, 1728],
- [12, 320],
- [12, 320],
- [12, 384],
- [12, 384],
- [12, 448],
- [12, 448],
- [13, 512],
- [13, 576],
- [12, 53],
- [12, 53],
- [12, 54],
- [12, 54],
- [13, 896],
- [13, 960],
- [13, 1024],
- [13, 1088],
- [13, 1152],
- [13, 1216],
- [10, 64],
- [10, 64],
- [10, 64],
- [10, 64],
- [10, 64],
- [10, 64],
- [10, 64],
- [10, 64],
- ],
- l = [
- [8, 13],
- [8, 13],
- [8, 13],
- [8, 13],
- [8, 13],
- [8, 13],
- [8, 13],
- [8, 13],
- [8, 13],
- [8, 13],
- [8, 13],
- [8, 13],
- [8, 13],
- [8, 13],
- [8, 13],
- [8, 13],
- [11, 23],
- [11, 23],
- [12, 50],
- [12, 51],
- [12, 44],
- [12, 45],
- [12, 46],
- [12, 47],
- [12, 57],
- [12, 58],
- [12, 61],
- [12, 256],
- [10, 16],
- [10, 16],
- [10, 16],
- [10, 16],
- [10, 17],
- [10, 17],
- [10, 17],
- [10, 17],
- [12, 48],
- [12, 49],
- [12, 62],
- [12, 63],
- [12, 30],
- [12, 31],
- [12, 32],
- [12, 33],
- [12, 40],
- [12, 41],
- [11, 22],
- [11, 22],
- [8, 14],
- [8, 14],
- [8, 14],
- [8, 14],
- [8, 14],
- [8, 14],
- [8, 14],
- [8, 14],
- [8, 14],
- [8, 14],
- [8, 14],
- [8, 14],
- [8, 14],
- [8, 14],
- [8, 14],
- [8, 14],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 10],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [7, 11],
- [9, 15],
- [9, 15],
- [9, 15],
- [9, 15],
- [9, 15],
- [9, 15],
- [9, 15],
- [9, 15],
- [12, 128],
- [12, 192],
- [12, 26],
- [12, 27],
- [12, 28],
- [12, 29],
- [11, 19],
- [11, 19],
- [11, 20],
- [11, 20],
- [12, 34],
- [12, 35],
- [12, 36],
- [12, 37],
- [12, 38],
- [12, 39],
- [11, 21],
- [11, 21],
- [12, 42],
- [12, 43],
- [10, 0],
- [10, 0],
- [10, 0],
- [10, 0],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- [7, 12],
- ],
- h = [
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [-1, -1],
- [6, 9],
- [6, 8],
- [5, 7],
- [5, 7],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 6],
- [4, 5],
- [4, 5],
- [4, 5],
- [4, 5],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 1],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [3, 4],
- [2, 3],
- [2, 3],
- [2, 3],
- [2, 3],
- [2, 3],
- [2, 3],
- [2, 3],
- [2, 3],
- [2, 3],
- [2, 3],
- [2, 3],
- [2, 3],
- [2, 3],
- [2, 3],
- [2, 3],
- [2, 3],
- [2, 2],
- [2, 2],
- [2, 2],
- [2, 2],
- [2, 2],
- [2, 2],
- [2, 2],
- [2, 2],
- [2, 2],
- [2, 2],
- [2, 2],
- [2, 2],
- [2, 2],
- [2, 2],
- [2, 2],
- [2, 2],
- ];
- t.CCITTFaxDecoder = class CCITTFaxDecoder {
- constructor(e, t = {}) {
- if (!e || 'function' != typeof e.next)
- throw new Error('CCITTFaxDecoder - invalid "source" parameter.');
- this.source = e;
- this.eof = !1;
- this.encoding = t.K || 0;
- this.eoline = t.EndOfLine || !1;
- this.byteAlign = t.EncodedByteAlign || !1;
- this.columns = t.Columns || 1728;
- this.rows = t.Rows || 0;
- let a,
- r = t.EndOfBlock;
- null == r && (r = !0);
- this.eoblock = r;
- this.black = t.BlackIs1 || !1;
- this.codingLine = new Uint32Array(this.columns + 1);
- this.refLine = new Uint32Array(this.columns + 2);
- this.codingLine[0] = this.columns;
- this.codingPos = 0;
- this.row = 0;
- this.nextLine2D = this.encoding < 0;
- this.inputBits = 0;
- this.inputBuf = 0;
- this.outputBits = 0;
- this.rowsDone = !1;
- for (; 0 === (a = this._lookBits(12)); ) this._eatBits(1);
- 1 === a && this._eatBits(12);
- if (this.encoding > 0) {
- this.nextLine2D = !this._lookBits(1);
- this._eatBits(1);
- }
- }
- readNextChar() {
- if (this.eof) return -1;
- const e = this.refLine,
- t = this.codingLine,
- a = this.columns;
- let n, s, o, c, l;
- if (0 === this.outputBits) {
- this.rowsDone && (this.eof = !0);
- if (this.eof) return -1;
- this.err = !1;
- let o, l, h;
- if (this.nextLine2D) {
- for (c = 0; t[c] < a; ++c) e[c] = t[c];
- e[c++] = a;
- e[c] = a;
- t[0] = 0;
- this.codingPos = 0;
- n = 0;
- s = 0;
- for (; t[this.codingPos] < a; ) {
- o = this._getTwoDimCode();
- switch (o) {
- case 0:
- this._addPixels(e[n + 1], s);
- e[n + 1] < a && (n += 2);
- break;
- case 1:
- o = l = 0;
- if (s) {
- do {
- o += h = this._getBlackCode();
- } while (h >= 64);
- do {
- l += h = this._getWhiteCode();
- } while (h >= 64);
- } else {
- do {
- o += h = this._getWhiteCode();
- } while (h >= 64);
- do {
- l += h = this._getBlackCode();
- } while (h >= 64);
- }
- this._addPixels(t[this.codingPos] + o, s);
- t[this.codingPos] < a && this._addPixels(t[this.codingPos] + l, 1 ^ s);
- for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2;
- break;
- case 7:
- this._addPixels(e[n] + 3, s);
- s ^= 1;
- if (t[this.codingPos] < a) {
- ++n;
- for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2;
- }
- break;
- case 5:
- this._addPixels(e[n] + 2, s);
- s ^= 1;
- if (t[this.codingPos] < a) {
- ++n;
- for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2;
- }
- break;
- case 3:
- this._addPixels(e[n] + 1, s);
- s ^= 1;
- if (t[this.codingPos] < a) {
- ++n;
- for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2;
- }
- break;
- case 2:
- this._addPixels(e[n], s);
- s ^= 1;
- if (t[this.codingPos] < a) {
- ++n;
- for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2;
- }
- break;
- case 8:
- this._addPixelsNeg(e[n] - 3, s);
- s ^= 1;
- if (t[this.codingPos] < a) {
- n > 0 ? --n : ++n;
- for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2;
- }
- break;
- case 6:
- this._addPixelsNeg(e[n] - 2, s);
- s ^= 1;
- if (t[this.codingPos] < a) {
- n > 0 ? --n : ++n;
- for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2;
- }
- break;
- case 4:
- this._addPixelsNeg(e[n] - 1, s);
- s ^= 1;
- if (t[this.codingPos] < a) {
- n > 0 ? --n : ++n;
- for (; e[n] <= t[this.codingPos] && e[n] < a; ) n += 2;
- }
- break;
- case i:
- this._addPixels(a, 0);
- this.eof = !0;
- break;
- default:
- (0, r.info)('bad 2d code');
- this._addPixels(a, 0);
- this.err = !0;
- }
- }
- } else {
- t[0] = 0;
- this.codingPos = 0;
- s = 0;
- for (; t[this.codingPos] < a; ) {
- o = 0;
- if (s)
- do {
- o += h = this._getBlackCode();
- } while (h >= 64);
- else
- do {
- o += h = this._getWhiteCode();
- } while (h >= 64);
- this._addPixels(t[this.codingPos] + o, s);
- s ^= 1;
- }
- }
- let u = !1;
- this.byteAlign && (this.inputBits &= -8);
- if (this.eoblock || this.row !== this.rows - 1) {
- o = this._lookBits(12);
- if (this.eoline)
- for (; o !== i && 1 !== o; ) {
- this._eatBits(1);
- o = this._lookBits(12);
- }
- else
- for (; 0 === o; ) {
- this._eatBits(1);
- o = this._lookBits(12);
- }
- if (1 === o) {
- this._eatBits(12);
- u = !0;
- } else o === i && (this.eof = !0);
- } else this.rowsDone = !0;
- if (!this.eof && this.encoding > 0 && !this.rowsDone) {
- this.nextLine2D = !this._lookBits(1);
- this._eatBits(1);
- }
- if (this.eoblock && u && this.byteAlign) {
- o = this._lookBits(12);
- if (1 === o) {
- this._eatBits(12);
- if (this.encoding > 0) {
- this._lookBits(1);
- this._eatBits(1);
- }
- if (this.encoding >= 0)
- for (c = 0; c < 4; ++c) {
- o = this._lookBits(12);
- 1 !== o && (0, r.info)('bad rtc code: ' + o);
- this._eatBits(12);
- if (this.encoding > 0) {
- this._lookBits(1);
- this._eatBits(1);
- }
- }
- this.eof = !0;
- }
- } else if (this.err && this.eoline) {
- for (;;) {
- o = this._lookBits(13);
- if (o === i) {
- this.eof = !0;
- return -1;
- }
- if (o >> 1 == 1) break;
- this._eatBits(1);
- }
- this._eatBits(12);
- if (this.encoding > 0) {
- this._eatBits(1);
- this.nextLine2D = !(1 & o);
- }
- }
- t[0] > 0
- ? (this.outputBits = t[(this.codingPos = 0)])
- : (this.outputBits = t[(this.codingPos = 1)]);
- this.row++;
- }
- if (this.outputBits >= 8) {
- l = 1 & this.codingPos ? 0 : 255;
- this.outputBits -= 8;
- if (0 === this.outputBits && t[this.codingPos] < a) {
- this.codingPos++;
- this.outputBits = t[this.codingPos] - t[this.codingPos - 1];
- }
- } else {
- o = 8;
- l = 0;
- do {
- if ('number' != typeof this.outputBits)
- throw new r.FormatError(
- 'Invalid /CCITTFaxDecode data, "outputBits" must be a number.',
- );
- if (this.outputBits > o) {
- l <<= o;
- 1 & this.codingPos || (l |= 255 >> (8 - o));
- this.outputBits -= o;
- o = 0;
- } else {
- l <<= this.outputBits;
- 1 & this.codingPos || (l |= 255 >> (8 - this.outputBits));
- o -= this.outputBits;
- this.outputBits = 0;
- if (t[this.codingPos] < a) {
- this.codingPos++;
- this.outputBits = t[this.codingPos] - t[this.codingPos - 1];
- } else if (o > 0) {
- l <<= o;
- o = 0;
- }
- }
- } while (o);
- }
- this.black && (l ^= 255);
- return l;
- }
- _addPixels(e, t) {
- const a = this.codingLine;
- let i = this.codingPos;
- if (e > a[i]) {
- if (e > this.columns) {
- (0, r.info)('row is wrong length');
- this.err = !0;
- e = this.columns;
- }
- (1 & i) ^ t && ++i;
- a[i] = e;
- }
- this.codingPos = i;
- }
- _addPixelsNeg(e, t) {
- const a = this.codingLine;
- let i = this.codingPos;
- if (e > a[i]) {
- if (e > this.columns) {
- (0, r.info)('row is wrong length');
- this.err = !0;
- e = this.columns;
- }
- (1 & i) ^ t && ++i;
- a[i] = e;
- } else if (e < a[i]) {
- if (e < 0) {
- (0, r.info)('invalid code');
- this.err = !0;
- e = 0;
- }
- for (; i > 0 && e < a[i - 1]; ) --i;
- a[i] = e;
- }
- this.codingPos = i;
- }
- _findTableCode(e, t, a, r) {
- const n = r || 0;
- for (let r = e; r <= t; ++r) {
- let e = this._lookBits(r);
- if (e === i) return [!0, 1, !1];
- r < t && (e <<= t - r);
- if (!n || e >= n) {
- const t = a[e - n];
- if (t[0] === r) {
- this._eatBits(r);
- return [!0, t[1], !0];
- }
- }
- }
- return [!1, 0, !1];
- }
- _getTwoDimCode() {
- let e,
- t = 0;
- if (this.eoblock) {
- t = this._lookBits(7);
- e = n[t];
- if (e && e[0] > 0) {
- this._eatBits(e[0]);
- return e[1];
- }
- } else {
- const e = this._findTableCode(1, 7, n);
- if (e[0] && e[2]) return e[1];
- }
- (0, r.info)('Bad two dim code');
- return i;
- }
- _getWhiteCode() {
- let e,
- t = 0;
- if (this.eoblock) {
- t = this._lookBits(12);
- if (t === i) return 1;
- e = t >> 5 == 0 ? s[t] : o[t >> 3];
- if (e[0] > 0) {
- this._eatBits(e[0]);
- return e[1];
- }
- } else {
- let e = this._findTableCode(1, 9, o);
- if (e[0]) return e[1];
- e = this._findTableCode(11, 12, s);
- if (e[0]) return e[1];
- }
- (0, r.info)('bad white code');
- this._eatBits(1);
- return 1;
- }
- _getBlackCode() {
- let e, t;
- if (this.eoblock) {
- e = this._lookBits(13);
- if (e === i) return 1;
- t = e >> 7 == 0 ? c[e] : e >> 9 == 0 && e >> 7 != 0 ? l[(e >> 1) - 64] : h[e >> 7];
- if (t[0] > 0) {
- this._eatBits(t[0]);
- return t[1];
- }
- } else {
- let e = this._findTableCode(2, 6, h);
- if (e[0]) return e[1];
- e = this._findTableCode(7, 12, l, 64);
- if (e[0]) return e[1];
- e = this._findTableCode(10, 13, c);
- if (e[0]) return e[1];
- }
- (0, r.info)('bad black code');
- this._eatBits(1);
- return 1;
- }
- _lookBits(e) {
- let t;
- for (; this.inputBits < e; ) {
- if (-1 === (t = this.source.next()))
- return 0 === this.inputBits
- ? i
- : (this.inputBuf << (e - this.inputBits)) & (65535 >> (16 - e));
- this.inputBuf = (this.inputBuf << 8) | t;
- this.inputBits += 8;
- }
- return (this.inputBuf >> (this.inputBits - e)) & (65535 >> (16 - e));
- }
- _eatBits(e) {
- (this.inputBits -= e) < 0 && (this.inputBits = 0);
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.FlateStream = void 0;
- var r = a(18),
- i = a(2);
- const n = new Int32Array([
- 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15,
- ]),
- s = new Int32Array([
- 3, 4, 5, 6, 7, 8, 9, 10, 65547, 65549, 65551, 65553, 131091, 131095, 131099, 131103,
- 196643, 196651, 196659, 196667, 262211, 262227, 262243, 262259, 327811, 327843,
- 327875, 327907, 258, 258, 258,
- ]),
- o = new Int32Array([
- 1, 2, 3, 4, 65541, 65543, 131081, 131085, 196625, 196633, 262177, 262193, 327745,
- 327777, 393345, 393409, 459009, 459137, 524801, 525057, 590849, 591361, 657409,
- 658433, 724993, 727041, 794625, 798721, 868353, 876545,
- ]),
- c = [
- new Int32Array([
- 459008, 524368, 524304, 524568, 459024, 524400, 524336, 590016, 459016, 524384,
- 524320, 589984, 524288, 524416, 524352, 590048, 459012, 524376, 524312, 589968,
- 459028, 524408, 524344, 590032, 459020, 524392, 524328, 59e4, 524296, 524424,
- 524360, 590064, 459010, 524372, 524308, 524572, 459026, 524404, 524340, 590024,
- 459018, 524388, 524324, 589992, 524292, 524420, 524356, 590056, 459014, 524380,
- 524316, 589976, 459030, 524412, 524348, 590040, 459022, 524396, 524332, 590008,
- 524300, 524428, 524364, 590072, 459009, 524370, 524306, 524570, 459025, 524402,
- 524338, 590020, 459017, 524386, 524322, 589988, 524290, 524418, 524354, 590052,
- 459013, 524378, 524314, 589972, 459029, 524410, 524346, 590036, 459021, 524394,
- 524330, 590004, 524298, 524426, 524362, 590068, 459011, 524374, 524310, 524574,
- 459027, 524406, 524342, 590028, 459019, 524390, 524326, 589996, 524294, 524422,
- 524358, 590060, 459015, 524382, 524318, 589980, 459031, 524414, 524350, 590044,
- 459023, 524398, 524334, 590012, 524302, 524430, 524366, 590076, 459008, 524369,
- 524305, 524569, 459024, 524401, 524337, 590018, 459016, 524385, 524321, 589986,
- 524289, 524417, 524353, 590050, 459012, 524377, 524313, 589970, 459028, 524409,
- 524345, 590034, 459020, 524393, 524329, 590002, 524297, 524425, 524361, 590066,
- 459010, 524373, 524309, 524573, 459026, 524405, 524341, 590026, 459018, 524389,
- 524325, 589994, 524293, 524421, 524357, 590058, 459014, 524381, 524317, 589978,
- 459030, 524413, 524349, 590042, 459022, 524397, 524333, 590010, 524301, 524429,
- 524365, 590074, 459009, 524371, 524307, 524571, 459025, 524403, 524339, 590022,
- 459017, 524387, 524323, 589990, 524291, 524419, 524355, 590054, 459013, 524379,
- 524315, 589974, 459029, 524411, 524347, 590038, 459021, 524395, 524331, 590006,
- 524299, 524427, 524363, 590070, 459011, 524375, 524311, 524575, 459027, 524407,
- 524343, 590030, 459019, 524391, 524327, 589998, 524295, 524423, 524359, 590062,
- 459015, 524383, 524319, 589982, 459031, 524415, 524351, 590046, 459023, 524399,
- 524335, 590014, 524303, 524431, 524367, 590078, 459008, 524368, 524304, 524568,
- 459024, 524400, 524336, 590017, 459016, 524384, 524320, 589985, 524288, 524416,
- 524352, 590049, 459012, 524376, 524312, 589969, 459028, 524408, 524344, 590033,
- 459020, 524392, 524328, 590001, 524296, 524424, 524360, 590065, 459010, 524372,
- 524308, 524572, 459026, 524404, 524340, 590025, 459018, 524388, 524324, 589993,
- 524292, 524420, 524356, 590057, 459014, 524380, 524316, 589977, 459030, 524412,
- 524348, 590041, 459022, 524396, 524332, 590009, 524300, 524428, 524364, 590073,
- 459009, 524370, 524306, 524570, 459025, 524402, 524338, 590021, 459017, 524386,
- 524322, 589989, 524290, 524418, 524354, 590053, 459013, 524378, 524314, 589973,
- 459029, 524410, 524346, 590037, 459021, 524394, 524330, 590005, 524298, 524426,
- 524362, 590069, 459011, 524374, 524310, 524574, 459027, 524406, 524342, 590029,
- 459019, 524390, 524326, 589997, 524294, 524422, 524358, 590061, 459015, 524382,
- 524318, 589981, 459031, 524414, 524350, 590045, 459023, 524398, 524334, 590013,
- 524302, 524430, 524366, 590077, 459008, 524369, 524305, 524569, 459024, 524401,
- 524337, 590019, 459016, 524385, 524321, 589987, 524289, 524417, 524353, 590051,
- 459012, 524377, 524313, 589971, 459028, 524409, 524345, 590035, 459020, 524393,
- 524329, 590003, 524297, 524425, 524361, 590067, 459010, 524373, 524309, 524573,
- 459026, 524405, 524341, 590027, 459018, 524389, 524325, 589995, 524293, 524421,
- 524357, 590059, 459014, 524381, 524317, 589979, 459030, 524413, 524349, 590043,
- 459022, 524397, 524333, 590011, 524301, 524429, 524365, 590075, 459009, 524371,
- 524307, 524571, 459025, 524403, 524339, 590023, 459017, 524387, 524323, 589991,
- 524291, 524419, 524355, 590055, 459013, 524379, 524315, 589975, 459029, 524411,
- 524347, 590039, 459021, 524395, 524331, 590007, 524299, 524427, 524363, 590071,
- 459011, 524375, 524311, 524575, 459027, 524407, 524343, 590031, 459019, 524391,
- 524327, 589999, 524295, 524423, 524359, 590063, 459015, 524383, 524319, 589983,
- 459031, 524415, 524351, 590047, 459023, 524399, 524335, 590015, 524303, 524431,
- 524367, 590079,
- ]),
- 9,
- ],
- l = [
- new Int32Array([
- 327680, 327696, 327688, 327704, 327684, 327700, 327692, 327708, 327682, 327698,
- 327690, 327706, 327686, 327702, 327694, 0, 327681, 327697, 327689, 327705, 327685,
- 327701, 327693, 327709, 327683, 327699, 327691, 327707, 327687, 327703, 327695, 0,
- ]),
- 5,
- ];
- class FlateStream extends r.DecodeStream {
- constructor(e, t) {
- super(t);
- this.str = e;
- this.dict = e.dict;
- const a = e.getByte(),
- r = e.getByte();
- if (-1 === a || -1 === r)
- throw new i.FormatError(`Invalid header in flate stream: ${a}, ${r}`);
- if (8 != (15 & a))
- throw new i.FormatError(`Unknown compression method in flate stream: ${a}, ${r}`);
- if (((a << 8) + r) % 31 != 0)
- throw new i.FormatError(`Bad FCHECK in flate stream: ${a}, ${r}`);
- if (32 & r) throw new i.FormatError(`FDICT bit set in flate stream: ${a}, ${r}`);
- this.codeSize = 0;
- this.codeBuf = 0;
- }
- getBits(e) {
- const t = this.str;
- let a,
- r = this.codeSize,
- n = this.codeBuf;
- for (; r < e; ) {
- if (-1 === (a = t.getByte()))
- throw new i.FormatError('Bad encoding in flate stream');
- n |= a << r;
- r += 8;
- }
- a = n & ((1 << e) - 1);
- this.codeBuf = n >> e;
- this.codeSize = r -= e;
- return a;
- }
- getCode(e) {
- const t = this.str,
- a = e[0],
- r = e[1];
- let n,
- s = this.codeSize,
- o = this.codeBuf;
- for (; s < r && -1 !== (n = t.getByte()); ) {
- o |= n << s;
- s += 8;
- }
- const c = a[o & ((1 << r) - 1)],
- l = c >> 16,
- h = 65535 & c;
- if (l < 1 || s < l) throw new i.FormatError('Bad encoding in flate stream');
- this.codeBuf = o >> l;
- this.codeSize = s - l;
- return h;
- }
- generateHuffmanTable(e) {
- const t = e.length;
- let a,
- r = 0;
- for (a = 0; a < t; ++a) e[a] > r && (r = e[a]);
- const i = 1 << r,
- n = new Int32Array(i);
- for (let s = 1, o = 0, c = 2; s <= r; ++s, o <<= 1, c <<= 1)
- for (let r = 0; r < t; ++r)
- if (e[r] === s) {
- let e = 0,
- t = o;
- for (a = 0; a < s; ++a) {
- e = (e << 1) | (1 & t);
- t >>= 1;
- }
- for (a = e; a < i; a += c) n[a] = (s << 16) | r;
- ++o;
- }
- return [n, r];
- }
- readBlock() {
- let e, t;
- const a = this.str;
- let r,
- h,
- u = this.getBits(3);
- 1 & u && (this.eof = !0);
- u >>= 1;
- if (0 === u) {
- let t;
- if (-1 === (t = a.getByte()))
- throw new i.FormatError('Bad block header in flate stream');
- let r = t;
- if (-1 === (t = a.getByte()))
- throw new i.FormatError('Bad block header in flate stream');
- r |= t << 8;
- if (-1 === (t = a.getByte()))
- throw new i.FormatError('Bad block header in flate stream');
- let n = t;
- if (-1 === (t = a.getByte()))
- throw new i.FormatError('Bad block header in flate stream');
- n |= t << 8;
- if (n !== (65535 & ~r) && (0 !== r || 0 !== n))
- throw new i.FormatError('Bad uncompressed block length in flate stream');
- this.codeBuf = 0;
- this.codeSize = 0;
- const s = this.bufferLength,
- o = s + r;
- e = this.ensureBuffer(o);
- this.bufferLength = o;
- if (0 === r) -1 === a.peekByte() && (this.eof = !0);
- else {
- const t = a.getBytes(r);
- e.set(t, s);
- t.length < r && (this.eof = !0);
- }
- return;
- }
- if (1 === u) {
- r = c;
- h = l;
- } else {
- if (2 !== u) throw new i.FormatError('Unknown block type in flate stream');
- {
- const e = this.getBits(5) + 257,
- a = this.getBits(5) + 1,
- i = this.getBits(4) + 4,
- s = new Uint8Array(n.length);
- let o;
- for (o = 0; o < i; ++o) s[n[o]] = this.getBits(3);
- const c = this.generateHuffmanTable(s);
- t = 0;
- o = 0;
- const l = e + a,
- u = new Uint8Array(l);
- let d, f, g;
- for (; o < l; ) {
- const e = this.getCode(c);
- if (16 === e) {
- d = 2;
- f = 3;
- g = t;
- } else if (17 === e) {
- d = 3;
- f = 3;
- g = t = 0;
- } else {
- if (18 !== e) {
- u[o++] = t = e;
- continue;
- }
- d = 7;
- f = 11;
- g = t = 0;
- }
- let a = this.getBits(d) + f;
- for (; a-- > 0; ) u[o++] = g;
- }
- r = this.generateHuffmanTable(u.subarray(0, e));
- h = this.generateHuffmanTable(u.subarray(e, l));
- }
- }
- e = this.buffer;
- let d = e ? e.length : 0,
- f = this.bufferLength;
- for (;;) {
- let a = this.getCode(r);
- if (a < 256) {
- if (f + 1 >= d) {
- e = this.ensureBuffer(f + 1);
- d = e.length;
- }
- e[f++] = a;
- continue;
- }
- if (256 === a) {
- this.bufferLength = f;
- return;
- }
- a -= 257;
- a = s[a];
- let i = a >> 16;
- i > 0 && (i = this.getBits(i));
- t = (65535 & a) + i;
- a = this.getCode(h);
- a = o[a];
- i = a >> 16;
- i > 0 && (i = this.getBits(i));
- const n = (65535 & a) + i;
- if (f + t >= d) {
- e = this.ensureBuffer(f + t);
- d = e.length;
- }
- for (let a = 0; a < t; ++a, ++f) e[f] = e[f - n];
- }
- }
- }
- t.FlateStream = FlateStream;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.Jbig2Stream = void 0;
- var r = a(5),
- i = a(18),
- n = a(4),
- s = a(24),
- o = a(2);
- class Jbig2Stream extends i.DecodeStream {
- constructor(e, t, a) {
- super(t);
- this.stream = e;
- this.dict = e.dict;
- this.maybeLength = t;
- this.params = a;
- }
- get bytes() {
- return (0, o.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));
- }
- ensureBuffer(e) {}
- readBlock() {
- if (this.eof) return;
- const e = new s.Jbig2Image(),
- t = [];
- if (this.params instanceof n.Dict) {
- const e = this.params.get('JBIG2Globals');
- if (e instanceof r.BaseStream) {
- const a = e.getBytes();
- t.push({ data: a, start: 0, end: a.length });
- }
- }
- t.push({ data: this.bytes, start: 0, end: this.bytes.length });
- const a = e.parseChunks(t),
- i = a.length;
- for (let e = 0; e < i; e++) a[e] ^= 255;
- this.buffer = a;
- this.bufferLength = i;
- this.eof = !0;
- }
- }
- t.Jbig2Stream = Jbig2Stream;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.Jbig2Image = void 0;
- var r = a(2),
- i = a(3),
- n = a(25),
- s = a(21);
- class Jbig2Error extends r.BaseException {
- constructor(e) {
- super(`JBIG2 error: ${e}`, 'Jbig2Error');
- }
- }
- class ContextCache {
- getContexts(e) {
- return e in this ? this[e] : (this[e] = new Int8Array(65536));
- }
- }
- class DecodingContext {
- constructor(e, t, a) {
- this.data = e;
- this.start = t;
- this.end = a;
- }
- get decoder() {
- const e = new n.ArithmeticDecoder(this.data, this.start, this.end);
- return (0, r.shadow)(this, 'decoder', e);
- }
- get contextCache() {
- const e = new ContextCache();
- return (0, r.shadow)(this, 'contextCache', e);
- }
- }
- const o = 2 ** 31 - 1,
- c = -(2 ** 31);
- function decodeInteger(e, t, a) {
- const r = e.getContexts(t);
- let i = 1;
- function readBits(e) {
- let t = 0;
- for (let n = 0; n < e; n++) {
- const e = a.readBit(r, i);
- i = i < 256 ? (i << 1) | e : (511 & ((i << 1) | e)) | 256;
- t = (t << 1) | e;
- }
- return t >>> 0;
- }
- const n = readBits(1),
- s = readBits(1)
- ? readBits(1)
- ? readBits(1)
- ? readBits(1)
- ? readBits(1)
- ? readBits(32) + 4436
- : readBits(12) + 340
- : readBits(8) + 84
- : readBits(6) + 20
- : readBits(4) + 4
- : readBits(2);
- let l;
- 0 === n ? (l = s) : s > 0 && (l = -s);
- return l >= c && l <= o ? l : null;
- }
- function decodeIAID(e, t, a) {
- const r = e.getContexts('IAID');
- let i = 1;
- for (let e = 0; e < a; e++) {
- i = (i << 1) | t.readBit(r, i);
- }
- return a < 31 ? i & ((1 << a) - 1) : 2147483647 & i;
- }
- const l = [
- 'SymbolDictionary',
- null,
- null,
- null,
- 'IntermediateTextRegion',
- null,
- 'ImmediateTextRegion',
- 'ImmediateLosslessTextRegion',
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- 'PatternDictionary',
- null,
- null,
- null,
- 'IntermediateHalftoneRegion',
- null,
- 'ImmediateHalftoneRegion',
- 'ImmediateLosslessHalftoneRegion',
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- 'IntermediateGenericRegion',
- null,
- 'ImmediateGenericRegion',
- 'ImmediateLosslessGenericRegion',
- 'IntermediateGenericRefinementRegion',
- null,
- 'ImmediateGenericRefinementRegion',
- 'ImmediateLosslessGenericRefinementRegion',
- null,
- null,
- null,
- null,
- 'PageInformation',
- 'EndOfPage',
- 'EndOfStripe',
- 'EndOfFile',
- 'Profiles',
- 'Tables',
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- null,
- 'Extension',
- ],
- h = [
- [
- { x: -1, y: -2 },
- { x: 0, y: -2 },
- { x: 1, y: -2 },
- { x: -2, y: -1 },
- { x: -1, y: -1 },
- { x: 0, y: -1 },
- { x: 1, y: -1 },
- { x: 2, y: -1 },
- { x: -4, y: 0 },
- { x: -3, y: 0 },
- { x: -2, y: 0 },
- { x: -1, y: 0 },
- ],
- [
- { x: -1, y: -2 },
- { x: 0, y: -2 },
- { x: 1, y: -2 },
- { x: 2, y: -2 },
- { x: -2, y: -1 },
- { x: -1, y: -1 },
- { x: 0, y: -1 },
- { x: 1, y: -1 },
- { x: 2, y: -1 },
- { x: -3, y: 0 },
- { x: -2, y: 0 },
- { x: -1, y: 0 },
- ],
- [
- { x: -1, y: -2 },
- { x: 0, y: -2 },
- { x: 1, y: -2 },
- { x: -2, y: -1 },
- { x: -1, y: -1 },
- { x: 0, y: -1 },
- { x: 1, y: -1 },
- { x: -2, y: 0 },
- { x: -1, y: 0 },
- ],
- [
- { x: -3, y: -1 },
- { x: -2, y: -1 },
- { x: -1, y: -1 },
- { x: 0, y: -1 },
- { x: 1, y: -1 },
- { x: -4, y: 0 },
- { x: -3, y: 0 },
- { x: -2, y: 0 },
- { x: -1, y: 0 },
- ],
- ],
- u = [
- {
- coding: [
- { x: 0, y: -1 },
- { x: 1, y: -1 },
- { x: -1, y: 0 },
- ],
- reference: [
- { x: 0, y: -1 },
- { x: 1, y: -1 },
- { x: -1, y: 0 },
- { x: 0, y: 0 },
- { x: 1, y: 0 },
- { x: -1, y: 1 },
- { x: 0, y: 1 },
- { x: 1, y: 1 },
- ],
- },
- {
- coding: [
- { x: -1, y: -1 },
- { x: 0, y: -1 },
- { x: 1, y: -1 },
- { x: -1, y: 0 },
- ],
- reference: [
- { x: 0, y: -1 },
- { x: -1, y: 0 },
- { x: 0, y: 0 },
- { x: 1, y: 0 },
- { x: 0, y: 1 },
- { x: 1, y: 1 },
- ],
- },
- ],
- d = [39717, 1941, 229, 405],
- f = [32, 8];
- function decodeBitmap(e, t, a, r, i, n, s, o) {
- if (e) {
- return decodeMMRBitmap(new Reader(o.data, o.start, o.end), t, a, !1);
- }
- if (
- 0 === r &&
- !n &&
- !i &&
- 4 === s.length &&
- 3 === s[0].x &&
- -1 === s[0].y &&
- -3 === s[1].x &&
- -1 === s[1].y &&
- 2 === s[2].x &&
- -2 === s[2].y &&
- -2 === s[3].x &&
- -2 === s[3].y
- )
- return (function decodeBitmapTemplate0(e, t, a) {
- const r = a.decoder,
- i = a.contextCache.getContexts('GB'),
- n = [];
- let s, o, c, l, h, u, d;
- for (o = 0; o < t; o++) {
- h = n[o] = new Uint8Array(e);
- u = o < 1 ? h : n[o - 1];
- d = o < 2 ? h : n[o - 2];
- s =
- (d[0] << 13) |
- (d[1] << 12) |
- (d[2] << 11) |
- (u[0] << 7) |
- (u[1] << 6) |
- (u[2] << 5) |
- (u[3] << 4);
- for (c = 0; c < e; c++) {
- h[c] = l = r.readBit(i, s);
- s =
- ((31735 & s) << 1) |
- (c + 3 < e ? d[c + 3] << 11 : 0) |
- (c + 4 < e ? u[c + 4] << 4 : 0) |
- l;
- }
- }
- return n;
- })(t, a, o);
- const c = !!n,
- l = h[r].concat(s);
- l.sort(function (e, t) {
- return e.y - t.y || e.x - t.x;
- });
- const u = l.length,
- f = new Int8Array(u),
- g = new Int8Array(u),
- p = [];
- let m,
- b,
- y = 0,
- w = 0,
- S = 0,
- x = 0;
- for (b = 0; b < u; b++) {
- f[b] = l[b].x;
- g[b] = l[b].y;
- w = Math.min(w, l[b].x);
- S = Math.max(S, l[b].x);
- x = Math.min(x, l[b].y);
- b < u - 1 && l[b].y === l[b + 1].y && l[b].x === l[b + 1].x - 1
- ? (y |= 1 << (u - 1 - b))
- : p.push(b);
- }
- const C = p.length,
- k = new Int8Array(C),
- v = new Int8Array(C),
- F = new Uint16Array(C);
- for (m = 0; m < C; m++) {
- b = p[m];
- k[m] = l[b].x;
- v[m] = l[b].y;
- F[m] = 1 << (u - 1 - b);
- }
- const O = -w,
- T = -x,
- M = t - S,
- E = d[r];
- let D = new Uint8Array(t);
- const N = [],
- R = o.decoder,
- L = o.contextCache.getContexts('GB');
- let _,
- $,
- j,
- U,
- X,
- H = 0,
- q = 0;
- for (let e = 0; e < a; e++) {
- if (i) {
- H ^= R.readBit(L, E);
- if (H) {
- N.push(D);
- continue;
- }
- }
- D = new Uint8Array(D);
- N.push(D);
- for (_ = 0; _ < t; _++) {
- if (c && n[e][_]) {
- D[_] = 0;
- continue;
- }
- if (_ >= O && _ < M && e >= T) {
- q = (q << 1) & y;
- for (b = 0; b < C; b++) {
- $ = e + v[b];
- j = _ + k[b];
- U = N[$][j];
- if (U) {
- U = F[b];
- q |= U;
- }
- }
- } else {
- q = 0;
- X = u - 1;
- for (b = 0; b < u; b++, X--) {
- j = _ + f[b];
- if (j >= 0 && j < t) {
- $ = e + g[b];
- if ($ >= 0) {
- U = N[$][j];
- U && (q |= U << X);
- }
- }
- }
- }
- const a = R.readBit(L, q);
- D[_] = a;
- }
- }
- return N;
- }
- function decodeRefinement(e, t, a, r, i, n, s, o, c) {
- let l = u[a].coding;
- 0 === a && (l = l.concat([o[0]]));
- const h = l.length,
- d = new Int32Array(h),
- g = new Int32Array(h);
- let p;
- for (p = 0; p < h; p++) {
- d[p] = l[p].x;
- g[p] = l[p].y;
- }
- let m = u[a].reference;
- 0 === a && (m = m.concat([o[1]]));
- const b = m.length,
- y = new Int32Array(b),
- w = new Int32Array(b);
- for (p = 0; p < b; p++) {
- y[p] = m[p].x;
- w[p] = m[p].y;
- }
- const S = r[0].length,
- x = r.length,
- C = f[a],
- k = [],
- v = c.decoder,
- F = c.contextCache.getContexts('GR');
- let O = 0;
- for (let a = 0; a < t; a++) {
- if (s) {
- O ^= v.readBit(F, C);
- if (O) throw new Jbig2Error('prediction is not supported');
- }
- const t = new Uint8Array(e);
- k.push(t);
- for (let s = 0; s < e; s++) {
- let o,
- c,
- l = 0;
- for (p = 0; p < h; p++) {
- o = a + g[p];
- c = s + d[p];
- o < 0 || c < 0 || c >= e ? (l <<= 1) : (l = (l << 1) | k[o][c]);
- }
- for (p = 0; p < b; p++) {
- o = a + w[p] - n;
- c = s + y[p] - i;
- o < 0 || o >= x || c < 0 || c >= S ? (l <<= 1) : (l = (l << 1) | r[o][c]);
- }
- const u = v.readBit(F, l);
- t[s] = u;
- }
- }
- return k;
- }
- function decodeTextRegion(e, t, a, r, i, n, s, o, c, l, h, u, d, f, g, p, m, b, y) {
- if (e && t) throw new Jbig2Error('refinement with Huffman is not supported');
- const w = [];
- let S, x;
- for (S = 0; S < r; S++) {
- x = new Uint8Array(a);
- if (i) for (let e = 0; e < a; e++) x[e] = i;
- w.push(x);
- }
- const C = m.decoder,
- k = m.contextCache;
- let v = e ? -f.tableDeltaT.decode(y) : -decodeInteger(k, 'IADT', C),
- F = 0;
- S = 0;
- for (; S < n; ) {
- v += e ? f.tableDeltaT.decode(y) : decodeInteger(k, 'IADT', C);
- F += e ? f.tableFirstS.decode(y) : decodeInteger(k, 'IAFS', C);
- let r = F;
- for (;;) {
- let i = 0;
- s > 1 && (i = e ? y.readBits(b) : decodeInteger(k, 'IAIT', C));
- const n = s * v + i,
- F = e ? f.symbolIDTable.decode(y) : decodeIAID(k, C, c),
- O = t && (e ? y.readBit() : decodeInteger(k, 'IARI', C));
- let T = o[F],
- M = T[0].length,
- E = T.length;
- if (O) {
- const e = decodeInteger(k, 'IARDW', C),
- t = decodeInteger(k, 'IARDH', C);
- M += e;
- E += t;
- T = decodeRefinement(
- M,
- E,
- g,
- T,
- (e >> 1) + decodeInteger(k, 'IARDX', C),
- (t >> 1) + decodeInteger(k, 'IARDY', C),
- !1,
- p,
- m,
- );
- }
- const D = n - (1 & u ? 0 : E - 1),
- N = r - (2 & u ? M - 1 : 0);
- let R, L, _;
- if (l) {
- for (R = 0; R < E; R++) {
- x = w[N + R];
- if (!x) continue;
- _ = T[R];
- const e = Math.min(a - D, M);
- switch (d) {
- case 0:
- for (L = 0; L < e; L++) x[D + L] |= _[L];
- break;
- case 2:
- for (L = 0; L < e; L++) x[D + L] ^= _[L];
- break;
- default:
- throw new Jbig2Error(`operator ${d} is not supported`);
- }
- }
- r += E - 1;
- } else {
- for (L = 0; L < E; L++) {
- x = w[D + L];
- if (x) {
- _ = T[L];
- switch (d) {
- case 0:
- for (R = 0; R < M; R++) x[N + R] |= _[R];
- break;
- case 2:
- for (R = 0; R < M; R++) x[N + R] ^= _[R];
- break;
- default:
- throw new Jbig2Error(`operator ${d} is not supported`);
- }
- }
- }
- r += M - 1;
- }
- S++;
- const $ = e ? f.tableDeltaS.decode(y) : decodeInteger(k, 'IADS', C);
- if (null === $) break;
- r += $ + h;
- }
- }
- return w;
- }
- function readSegmentHeader(e, t) {
- const a = {};
- a.number = (0, i.readUint32)(e, t);
- const r = e[t + 4],
- n = 63 & r;
- if (!l[n]) throw new Jbig2Error('invalid segment type: ' + n);
- a.type = n;
- a.typeName = l[n];
- a.deferredNonRetain = !!(128 & r);
- const s = !!(64 & r),
- o = e[t + 5];
- let c = (o >> 5) & 7;
- const h = [31 & o];
- let u = t + 6;
- if (7 === o) {
- c = 536870911 & (0, i.readUint32)(e, u - 1);
- u += 3;
- let t = (c + 7) >> 3;
- h[0] = e[u++];
- for (; --t > 0; ) h.push(e[u++]);
- } else if (5 === o || 6 === o) throw new Jbig2Error('invalid referred-to flags');
- a.retainBits = h;
- let d = 4;
- a.number <= 256 ? (d = 1) : a.number <= 65536 && (d = 2);
- const f = [];
- let p, m;
- for (p = 0; p < c; p++) {
- let t;
- t = 1 === d ? e[u] : 2 === d ? (0, i.readUint16)(e, u) : (0, i.readUint32)(e, u);
- f.push(t);
- u += d;
- }
- a.referredTo = f;
- if (s) {
- a.pageAssociation = (0, i.readUint32)(e, u);
- u += 4;
- } else a.pageAssociation = e[u++];
- a.length = (0, i.readUint32)(e, u);
- u += 4;
- if (4294967295 === a.length) {
- if (38 !== n) throw new Jbig2Error('invalid unknown segment length');
- {
- const t = readRegionSegmentInformation(e, u),
- r = !!(1 & e[u + g]),
- i = 6,
- n = new Uint8Array(i);
- if (!r) {
- n[0] = 255;
- n[1] = 172;
- }
- n[2] = (t.height >>> 24) & 255;
- n[3] = (t.height >> 16) & 255;
- n[4] = (t.height >> 8) & 255;
- n[5] = 255 & t.height;
- for (p = u, m = e.length; p < m; p++) {
- let t = 0;
- for (; t < i && n[t] === e[p + t]; ) t++;
- if (t === i) {
- a.length = p + i;
- break;
- }
- }
- if (4294967295 === a.length) throw new Jbig2Error('segment end was not found');
- }
- }
- a.headerEnd = u;
- return a;
- }
- function readSegments(e, t, a, r) {
- const i = [];
- let n = a;
- for (; n < r; ) {
- const a = readSegmentHeader(t, n);
- n = a.headerEnd;
- const r = { header: a, data: t };
- if (!e.randomAccess) {
- r.start = n;
- n += a.length;
- r.end = n;
- }
- i.push(r);
- if (51 === a.type) break;
- }
- if (e.randomAccess)
- for (let e = 0, t = i.length; e < t; e++) {
- i[e].start = n;
- n += i[e].header.length;
- i[e].end = n;
- }
- return i;
- }
- function readRegionSegmentInformation(e, t) {
- return {
- width: (0, i.readUint32)(e, t),
- height: (0, i.readUint32)(e, t + 4),
- x: (0, i.readUint32)(e, t + 8),
- y: (0, i.readUint32)(e, t + 12),
- combinationOperator: 7 & e[t + 16],
- };
- }
- const g = 17;
- function processSegment(e, t) {
- const a = e.header,
- r = e.data,
- n = e.end;
- let s,
- o,
- c,
- l,
- h = e.start;
- switch (a.type) {
- case 0:
- const e = {},
- t = (0, i.readUint16)(r, h);
- e.huffman = !!(1 & t);
- e.refinement = !!(2 & t);
- e.huffmanDHSelector = (t >> 2) & 3;
- e.huffmanDWSelector = (t >> 4) & 3;
- e.bitmapSizeSelector = (t >> 6) & 1;
- e.aggregationInstancesSelector = (t >> 7) & 1;
- e.bitmapCodingContextUsed = !!(256 & t);
- e.bitmapCodingContextRetained = !!(512 & t);
- e.template = (t >> 10) & 3;
- e.refinementTemplate = (t >> 12) & 1;
- h += 2;
- if (!e.huffman) {
- l = 0 === e.template ? 4 : 1;
- o = [];
- for (c = 0; c < l; c++) {
- o.push({ x: (0, i.readInt8)(r, h), y: (0, i.readInt8)(r, h + 1) });
- h += 2;
- }
- e.at = o;
- }
- if (e.refinement && !e.refinementTemplate) {
- o = [];
- for (c = 0; c < 2; c++) {
- o.push({ x: (0, i.readInt8)(r, h), y: (0, i.readInt8)(r, h + 1) });
- h += 2;
- }
- e.refinementAt = o;
- }
- e.numberOfExportedSymbols = (0, i.readUint32)(r, h);
- h += 4;
- e.numberOfNewSymbols = (0, i.readUint32)(r, h);
- h += 4;
- s = [e, a.number, a.referredTo, r, h, n];
- break;
- case 6:
- case 7:
- const u = {};
- u.info = readRegionSegmentInformation(r, h);
- h += g;
- const d = (0, i.readUint16)(r, h);
- h += 2;
- u.huffman = !!(1 & d);
- u.refinement = !!(2 & d);
- u.logStripSize = (d >> 2) & 3;
- u.stripSize = 1 << u.logStripSize;
- u.referenceCorner = (d >> 4) & 3;
- u.transposed = !!(64 & d);
- u.combinationOperator = (d >> 7) & 3;
- u.defaultPixelValue = (d >> 9) & 1;
- u.dsOffset = (d << 17) >> 27;
- u.refinementTemplate = (d >> 15) & 1;
- if (u.huffman) {
- const e = (0, i.readUint16)(r, h);
- h += 2;
- u.huffmanFS = 3 & e;
- u.huffmanDS = (e >> 2) & 3;
- u.huffmanDT = (e >> 4) & 3;
- u.huffmanRefinementDW = (e >> 6) & 3;
- u.huffmanRefinementDH = (e >> 8) & 3;
- u.huffmanRefinementDX = (e >> 10) & 3;
- u.huffmanRefinementDY = (e >> 12) & 3;
- u.huffmanRefinementSizeSelector = !!(16384 & e);
- }
- if (u.refinement && !u.refinementTemplate) {
- o = [];
- for (c = 0; c < 2; c++) {
- o.push({ x: (0, i.readInt8)(r, h), y: (0, i.readInt8)(r, h + 1) });
- h += 2;
- }
- u.refinementAt = o;
- }
- u.numberOfSymbolInstances = (0, i.readUint32)(r, h);
- h += 4;
- s = [u, a.referredTo, r, h, n];
- break;
- case 16:
- const f = {},
- p = r[h++];
- f.mmr = !!(1 & p);
- f.template = (p >> 1) & 3;
- f.patternWidth = r[h++];
- f.patternHeight = r[h++];
- f.maxPatternIndex = (0, i.readUint32)(r, h);
- h += 4;
- s = [f, a.number, r, h, n];
- break;
- case 22:
- case 23:
- const m = {};
- m.info = readRegionSegmentInformation(r, h);
- h += g;
- const b = r[h++];
- m.mmr = !!(1 & b);
- m.template = (b >> 1) & 3;
- m.enableSkip = !!(8 & b);
- m.combinationOperator = (b >> 4) & 7;
- m.defaultPixelValue = (b >> 7) & 1;
- m.gridWidth = (0, i.readUint32)(r, h);
- h += 4;
- m.gridHeight = (0, i.readUint32)(r, h);
- h += 4;
- m.gridOffsetX = 4294967295 & (0, i.readUint32)(r, h);
- h += 4;
- m.gridOffsetY = 4294967295 & (0, i.readUint32)(r, h);
- h += 4;
- m.gridVectorX = (0, i.readUint16)(r, h);
- h += 2;
- m.gridVectorY = (0, i.readUint16)(r, h);
- h += 2;
- s = [m, a.referredTo, r, h, n];
- break;
- case 38:
- case 39:
- const y = {};
- y.info = readRegionSegmentInformation(r, h);
- h += g;
- const w = r[h++];
- y.mmr = !!(1 & w);
- y.template = (w >> 1) & 3;
- y.prediction = !!(8 & w);
- if (!y.mmr) {
- l = 0 === y.template ? 4 : 1;
- o = [];
- for (c = 0; c < l; c++) {
- o.push({ x: (0, i.readInt8)(r, h), y: (0, i.readInt8)(r, h + 1) });
- h += 2;
- }
- y.at = o;
- }
- s = [y, r, h, n];
- break;
- case 48:
- const S = {
- width: (0, i.readUint32)(r, h),
- height: (0, i.readUint32)(r, h + 4),
- resolutionX: (0, i.readUint32)(r, h + 8),
- resolutionY: (0, i.readUint32)(r, h + 12),
- };
- 4294967295 === S.height && delete S.height;
- const x = r[h + 16];
- (0, i.readUint16)(r, h + 17);
- S.lossless = !!(1 & x);
- S.refinement = !!(2 & x);
- S.defaultPixelValue = (x >> 2) & 1;
- S.combinationOperator = (x >> 3) & 3;
- S.requiresBuffer = !!(32 & x);
- S.combinationOperatorOverride = !!(64 & x);
- s = [S];
- break;
- case 49:
- case 50:
- case 51:
- case 62:
- break;
- case 53:
- s = [a.number, r, h, n];
- break;
- default:
- throw new Jbig2Error(`segment type ${a.typeName}(${a.type}) is not implemented`);
- }
- const u = 'on' + a.typeName;
- u in t && t[u].apply(t, s);
- }
- function processSegments(e, t) {
- for (let a = 0, r = e.length; a < r; a++) processSegment(e[a], t);
- }
- class SimpleSegmentVisitor {
- onPageInformation(e) {
- this.currentPageInfo = e;
- const t = (e.width + 7) >> 3,
- a = new Uint8ClampedArray(t * e.height);
- e.defaultPixelValue && a.fill(255);
- this.buffer = a;
- }
- drawBitmap(e, t) {
- const a = this.currentPageInfo,
- r = e.width,
- i = e.height,
- n = (a.width + 7) >> 3,
- s = a.combinationOperatorOverride ? e.combinationOperator : a.combinationOperator,
- o = this.buffer,
- c = 128 >> (7 & e.x);
- let l,
- h,
- u,
- d,
- f = e.y * n + (e.x >> 3);
- switch (s) {
- case 0:
- for (l = 0; l < i; l++) {
- u = c;
- d = f;
- for (h = 0; h < r; h++) {
- t[l][h] && (o[d] |= u);
- u >>= 1;
- if (!u) {
- u = 128;
- d++;
- }
- }
- f += n;
- }
- break;
- case 2:
- for (l = 0; l < i; l++) {
- u = c;
- d = f;
- for (h = 0; h < r; h++) {
- t[l][h] && (o[d] ^= u);
- u >>= 1;
- if (!u) {
- u = 128;
- d++;
- }
- }
- f += n;
- }
- break;
- default:
- throw new Jbig2Error(`operator ${s} is not supported`);
- }
- }
- onImmediateGenericRegion(e, t, a, r) {
- const i = e.info,
- n = new DecodingContext(t, a, r),
- s = decodeBitmap(e.mmr, i.width, i.height, e.template, e.prediction, null, e.at, n);
- this.drawBitmap(i, s);
- }
- onImmediateLosslessGenericRegion() {
- this.onImmediateGenericRegion(...arguments);
- }
- onSymbolDictionary(e, t, a, r, n, s) {
- let o, c;
- if (e.huffman) {
- o = (function getSymbolDictionaryHuffmanTables(e, t, a) {
- let r,
- i,
- n,
- s,
- o = 0;
- switch (e.huffmanDHSelector) {
- case 0:
- case 1:
- r = getStandardTable(e.huffmanDHSelector + 4);
- break;
- case 3:
- r = getCustomHuffmanTable(o, t, a);
- o++;
- break;
- default:
- throw new Jbig2Error('invalid Huffman DH selector');
- }
- switch (e.huffmanDWSelector) {
- case 0:
- case 1:
- i = getStandardTable(e.huffmanDWSelector + 2);
- break;
- case 3:
- i = getCustomHuffmanTable(o, t, a);
- o++;
- break;
- default:
- throw new Jbig2Error('invalid Huffman DW selector');
- }
- if (e.bitmapSizeSelector) {
- n = getCustomHuffmanTable(o, t, a);
- o++;
- } else n = getStandardTable(1);
- s = e.aggregationInstancesSelector
- ? getCustomHuffmanTable(o, t, a)
- : getStandardTable(1);
- return {
- tableDeltaHeight: r,
- tableDeltaWidth: i,
- tableBitmapSize: n,
- tableAggregateInstances: s,
- };
- })(e, a, this.customTables);
- c = new Reader(r, n, s);
- }
- let l = this.symbols;
- l || (this.symbols = l = {});
- const h = [];
- for (const e of a) {
- const t = l[e];
- t && h.push(...t);
- }
- const u = new DecodingContext(r, n, s);
- l[t] = (function decodeSymbolDictionary(e, t, a, r, n, s, o, c, l, h, u, d) {
- if (e && t) throw new Jbig2Error('symbol refinement with Huffman is not supported');
- const f = [];
- let g = 0,
- p = (0, i.log2)(a.length + r);
- const m = u.decoder,
- b = u.contextCache;
- let y, w;
- if (e) {
- y = getStandardTable(1);
- w = [];
- p = Math.max(p, 1);
- }
- for (; f.length < r; ) {
- g += e ? s.tableDeltaHeight.decode(d) : decodeInteger(b, 'IADH', m);
- let r = 0,
- i = 0;
- const n = e ? w.length : 0;
- for (;;) {
- const n = e ? s.tableDeltaWidth.decode(d) : decodeInteger(b, 'IADW', m);
- if (null === n) break;
- r += n;
- i += r;
- let y;
- if (t) {
- const i = decodeInteger(b, 'IAAI', m);
- if (i > 1)
- y = decodeTextRegion(
- e,
- t,
- r,
- g,
- 0,
- i,
- 1,
- a.concat(f),
- p,
- 0,
- 0,
- 1,
- 0,
- s,
- l,
- h,
- u,
- 0,
- d,
- );
- else {
- const e = decodeIAID(b, m, p),
- t = decodeInteger(b, 'IARDX', m),
- i = decodeInteger(b, 'IARDY', m);
- y = decodeRefinement(
- r,
- g,
- l,
- e < a.length ? a[e] : f[e - a.length],
- t,
- i,
- !1,
- h,
- u,
- );
- }
- f.push(y);
- } else if (e) w.push(r);
- else {
- y = decodeBitmap(!1, r, g, o, !1, null, c, u);
- f.push(y);
- }
- }
- if (e && !t) {
- const e = s.tableBitmapSize.decode(d);
- d.byteAlign();
- let t;
- if (0 === e) t = readUncompressedBitmap(d, i, g);
- else {
- const a = d.end,
- r = d.position + e;
- d.end = r;
- t = decodeMMRBitmap(d, i, g, !1);
- d.end = a;
- d.position = r;
- }
- const a = w.length;
- if (n === a - 1) f.push(t);
- else {
- let e,
- r,
- i,
- s,
- o,
- c = 0;
- for (e = n; e < a; e++) {
- s = w[e];
- i = c + s;
- o = [];
- for (r = 0; r < g; r++) o.push(t[r].subarray(c, i));
- f.push(o);
- c = i;
- }
- }
- }
- }
- const S = [],
- x = [];
- let C,
- k,
- v = !1;
- const F = a.length + r;
- for (; x.length < F; ) {
- let t = e ? y.decode(d) : decodeInteger(b, 'IAEX', m);
- for (; t--; ) x.push(v);
- v = !v;
- }
- for (C = 0, k = a.length; C < k; C++) x[C] && S.push(a[C]);
- for (let e = 0; e < r; C++, e++) x[C] && S.push(f[e]);
- return S;
- })(
- e.huffman,
- e.refinement,
- h,
- e.numberOfNewSymbols,
- e.numberOfExportedSymbols,
- o,
- e.template,
- e.at,
- e.refinementTemplate,
- e.refinementAt,
- u,
- c,
- );
- }
- onImmediateTextRegion(e, t, a, r, n) {
- const s = e.info;
- let o, c;
- const l = this.symbols,
- h = [];
- for (const e of t) {
- const t = l[e];
- t && h.push(...t);
- }
- const u = (0, i.log2)(h.length);
- if (e.huffman) {
- c = new Reader(a, r, n);
- o = (function getTextRegionHuffmanTables(e, t, a, r, i) {
- const n = [];
- for (let e = 0; e <= 34; e++) {
- const t = i.readBits(4);
- n.push(new HuffmanLine([e, t, 0, 0]));
- }
- const s = new HuffmanTable(n, !1);
- n.length = 0;
- for (let e = 0; e < r; ) {
- const t = s.decode(i);
- if (t >= 32) {
- let a, r, s;
- switch (t) {
- case 32:
- if (0 === e) throw new Jbig2Error('no previous value in symbol ID table');
- r = i.readBits(2) + 3;
- a = n[e - 1].prefixLength;
- break;
- case 33:
- r = i.readBits(3) + 3;
- a = 0;
- break;
- case 34:
- r = i.readBits(7) + 11;
- a = 0;
- break;
- default:
- throw new Jbig2Error('invalid code length in symbol ID table');
- }
- for (s = 0; s < r; s++) {
- n.push(new HuffmanLine([e, a, 0, 0]));
- e++;
- }
- } else {
- n.push(new HuffmanLine([e, t, 0, 0]));
- e++;
- }
- }
- i.byteAlign();
- const o = new HuffmanTable(n, !1);
- let c,
- l,
- h,
- u = 0;
- switch (e.huffmanFS) {
- case 0:
- case 1:
- c = getStandardTable(e.huffmanFS + 6);
- break;
- case 3:
- c = getCustomHuffmanTable(u, t, a);
- u++;
- break;
- default:
- throw new Jbig2Error('invalid Huffman FS selector');
- }
- switch (e.huffmanDS) {
- case 0:
- case 1:
- case 2:
- l = getStandardTable(e.huffmanDS + 8);
- break;
- case 3:
- l = getCustomHuffmanTable(u, t, a);
- u++;
- break;
- default:
- throw new Jbig2Error('invalid Huffman DS selector');
- }
- switch (e.huffmanDT) {
- case 0:
- case 1:
- case 2:
- h = getStandardTable(e.huffmanDT + 11);
- break;
- case 3:
- h = getCustomHuffmanTable(u, t, a);
- u++;
- break;
- default:
- throw new Jbig2Error('invalid Huffman DT selector');
- }
- if (e.refinement)
- throw new Jbig2Error('refinement with Huffman is not supported');
- return { symbolIDTable: o, tableFirstS: c, tableDeltaS: l, tableDeltaT: h };
- })(e, t, this.customTables, h.length, c);
- }
- const d = new DecodingContext(a, r, n),
- f = decodeTextRegion(
- e.huffman,
- e.refinement,
- s.width,
- s.height,
- e.defaultPixelValue,
- e.numberOfSymbolInstances,
- e.stripSize,
- h,
- u,
- e.transposed,
- e.dsOffset,
- e.referenceCorner,
- e.combinationOperator,
- o,
- e.refinementTemplate,
- e.refinementAt,
- d,
- e.logStripSize,
- c,
- );
- this.drawBitmap(s, f);
- }
- onImmediateLosslessTextRegion() {
- this.onImmediateTextRegion(...arguments);
- }
- onPatternDictionary(e, t, a, r, i) {
- let n = this.patterns;
- n || (this.patterns = n = {});
- const s = new DecodingContext(a, r, i);
- n[t] = (function decodePatternDictionary(e, t, a, r, i, n) {
- const s = [];
- if (!e) {
- s.push({ x: -t, y: 0 });
- 0 === i && s.push({ x: -3, y: -1 }, { x: 2, y: -2 }, { x: -2, y: -2 });
- }
- const o = decodeBitmap(e, (r + 1) * t, a, i, !1, null, s, n),
- c = [];
- for (let e = 0; e <= r; e++) {
- const r = [],
- i = t * e,
- n = i + t;
- for (let e = 0; e < a; e++) r.push(o[e].subarray(i, n));
- c.push(r);
- }
- return c;
- })(e.mmr, e.patternWidth, e.patternHeight, e.maxPatternIndex, e.template, s);
- }
- onImmediateHalftoneRegion(e, t, a, r, n) {
- const s = this.patterns[t[0]],
- o = e.info,
- c = new DecodingContext(a, r, n),
- l = (function decodeHalftoneRegion(e, t, a, r, n, s, o, c, l, h, u, d, f, g, p) {
- if (o) throw new Jbig2Error('skip is not supported');
- if (0 !== c)
- throw new Jbig2Error(`operator "${c}" is not supported in halftone region`);
- const m = [];
- let b, y, w;
- for (b = 0; b < n; b++) {
- w = new Uint8Array(r);
- if (s) for (y = 0; y < r; y++) w[y] = s;
- m.push(w);
- }
- const S = t.length,
- x = t[0],
- C = x[0].length,
- k = x.length,
- v = (0, i.log2)(S),
- F = [];
- if (!e) {
- F.push({ x: a <= 1 ? 3 : 2, y: -1 });
- 0 === a && F.push({ x: -3, y: -1 }, { x: 2, y: -2 }, { x: -2, y: -2 });
- }
- const O = [];
- let T, M, E, D, N, R, L, _, $, j, U;
- e && (T = new Reader(p.data, p.start, p.end));
- for (b = v - 1; b >= 0; b--) {
- M = e
- ? decodeMMRBitmap(T, l, h, !0)
- : decodeBitmap(!1, l, h, a, !1, null, F, p);
- O[b] = M;
- }
- for (E = 0; E < h; E++)
- for (D = 0; D < l; D++) {
- N = 0;
- R = 0;
- for (y = v - 1; y >= 0; y--) {
- N ^= O[y][E][D];
- R |= N << y;
- }
- L = t[R];
- _ = (u + E * g + D * f) >> 8;
- $ = (d + E * f - D * g) >> 8;
- if (_ >= 0 && _ + C <= r && $ >= 0 && $ + k <= n)
- for (b = 0; b < k; b++) {
- U = m[$ + b];
- j = L[b];
- for (y = 0; y < C; y++) U[_ + y] |= j[y];
- }
- else {
- let e, t;
- for (b = 0; b < k; b++) {
- t = $ + b;
- if (!(t < 0 || t >= n)) {
- U = m[t];
- j = L[b];
- for (y = 0; y < C; y++) {
- e = _ + y;
- e >= 0 && e < r && (U[e] |= j[y]);
- }
- }
- }
- }
- }
- return m;
- })(
- e.mmr,
- s,
- e.template,
- o.width,
- o.height,
- e.defaultPixelValue,
- e.enableSkip,
- e.combinationOperator,
- e.gridWidth,
- e.gridHeight,
- e.gridOffsetX,
- e.gridOffsetY,
- e.gridVectorX,
- e.gridVectorY,
- c,
- );
- this.drawBitmap(o, l);
- }
- onImmediateLosslessHalftoneRegion() {
- this.onImmediateHalftoneRegion(...arguments);
- }
- onTables(e, t, a, r) {
- let n = this.customTables;
- n || (this.customTables = n = {});
- n[e] = (function decodeTablesSegment(e, t, a) {
- const r = e[t],
- n = 4294967295 & (0, i.readUint32)(e, t + 1),
- s = 4294967295 & (0, i.readUint32)(e, t + 5),
- o = new Reader(e, t + 9, a),
- c = 1 + ((r >> 1) & 7),
- l = 1 + ((r >> 4) & 7),
- h = [];
- let u,
- d,
- f = n;
- do {
- u = o.readBits(c);
- d = o.readBits(l);
- h.push(new HuffmanLine([f, u, d, 0]));
- f += 1 << d;
- } while (f < s);
- u = o.readBits(c);
- h.push(new HuffmanLine([n - 1, u, 32, 0, 'lower']));
- u = o.readBits(c);
- h.push(new HuffmanLine([s, u, 32, 0]));
- if (1 & r) {
- u = o.readBits(c);
- h.push(new HuffmanLine([u, 0]));
- }
- return new HuffmanTable(h, !1);
- })(t, a, r);
- }
- }
- class HuffmanLine {
- constructor(e) {
- if (2 === e.length) {
- this.isOOB = !0;
- this.rangeLow = 0;
- this.prefixLength = e[0];
- this.rangeLength = 0;
- this.prefixCode = e[1];
- this.isLowerRange = !1;
- } else {
- this.isOOB = !1;
- this.rangeLow = e[0];
- this.prefixLength = e[1];
- this.rangeLength = e[2];
- this.prefixCode = e[3];
- this.isLowerRange = 'lower' === e[4];
- }
- }
- }
- class HuffmanTreeNode {
- constructor(e) {
- this.children = [];
- if (e) {
- this.isLeaf = !0;
- this.rangeLength = e.rangeLength;
- this.rangeLow = e.rangeLow;
- this.isLowerRange = e.isLowerRange;
- this.isOOB = e.isOOB;
- } else this.isLeaf = !1;
- }
- buildTree(e, t) {
- const a = (e.prefixCode >> t) & 1;
- if (t <= 0) this.children[a] = new HuffmanTreeNode(e);
- else {
- let r = this.children[a];
- r || (this.children[a] = r = new HuffmanTreeNode(null));
- r.buildTree(e, t - 1);
- }
- }
- decodeNode(e) {
- if (this.isLeaf) {
- if (this.isOOB) return null;
- const t = e.readBits(this.rangeLength);
- return this.rangeLow + (this.isLowerRange ? -t : t);
- }
- const t = this.children[e.readBit()];
- if (!t) throw new Jbig2Error('invalid Huffman data');
- return t.decodeNode(e);
- }
- }
- class HuffmanTable {
- constructor(e, t) {
- t || this.assignPrefixCodes(e);
- this.rootNode = new HuffmanTreeNode(null);
- for (let t = 0, a = e.length; t < a; t++) {
- const a = e[t];
- a.prefixLength > 0 && this.rootNode.buildTree(a, a.prefixLength - 1);
- }
- }
- decode(e) {
- return this.rootNode.decodeNode(e);
- }
- assignPrefixCodes(e) {
- const t = e.length;
- let a = 0;
- for (let r = 0; r < t; r++) a = Math.max(a, e[r].prefixLength);
- const r = new Uint32Array(a + 1);
- for (let a = 0; a < t; a++) r[e[a].prefixLength]++;
- let i,
- n,
- s,
- o = 1,
- c = 0;
- r[0] = 0;
- for (; o <= a; ) {
- c = (c + r[o - 1]) << 1;
- i = c;
- n = 0;
- for (; n < t; ) {
- s = e[n];
- if (s.prefixLength === o) {
- s.prefixCode = i;
- i++;
- }
- n++;
- }
- o++;
- }
- }
- }
- const p = {};
- function getStandardTable(e) {
- let t,
- a = p[e];
- if (a) return a;
- switch (e) {
- case 1:
- t = [
- [0, 1, 4, 0],
- [16, 2, 8, 2],
- [272, 3, 16, 6],
- [65808, 3, 32, 7],
- ];
- break;
- case 2:
- t = [
- [0, 1, 0, 0],
- [1, 2, 0, 2],
- [2, 3, 0, 6],
- [3, 4, 3, 14],
- [11, 5, 6, 30],
- [75, 6, 32, 62],
- [6, 63],
- ];
- break;
- case 3:
- t = [
- [-256, 8, 8, 254],
- [0, 1, 0, 0],
- [1, 2, 0, 2],
- [2, 3, 0, 6],
- [3, 4, 3, 14],
- [11, 5, 6, 30],
- [-257, 8, 32, 255, 'lower'],
- [75, 7, 32, 126],
- [6, 62],
- ];
- break;
- case 4:
- t = [
- [1, 1, 0, 0],
- [2, 2, 0, 2],
- [3, 3, 0, 6],
- [4, 4, 3, 14],
- [12, 5, 6, 30],
- [76, 5, 32, 31],
- ];
- break;
- case 5:
- t = [
- [-255, 7, 8, 126],
- [1, 1, 0, 0],
- [2, 2, 0, 2],
- [3, 3, 0, 6],
- [4, 4, 3, 14],
- [12, 5, 6, 30],
- [-256, 7, 32, 127, 'lower'],
- [76, 6, 32, 62],
- ];
- break;
- case 6:
- t = [
- [-2048, 5, 10, 28],
- [-1024, 4, 9, 8],
- [-512, 4, 8, 9],
- [-256, 4, 7, 10],
- [-128, 5, 6, 29],
- [-64, 5, 5, 30],
- [-32, 4, 5, 11],
- [0, 2, 7, 0],
- [128, 3, 7, 2],
- [256, 3, 8, 3],
- [512, 4, 9, 12],
- [1024, 4, 10, 13],
- [-2049, 6, 32, 62, 'lower'],
- [2048, 6, 32, 63],
- ];
- break;
- case 7:
- t = [
- [-1024, 4, 9, 8],
- [-512, 3, 8, 0],
- [-256, 4, 7, 9],
- [-128, 5, 6, 26],
- [-64, 5, 5, 27],
- [-32, 4, 5, 10],
- [0, 4, 5, 11],
- [32, 5, 5, 28],
- [64, 5, 6, 29],
- [128, 4, 7, 12],
- [256, 3, 8, 1],
- [512, 3, 9, 2],
- [1024, 3, 10, 3],
- [-1025, 5, 32, 30, 'lower'],
- [2048, 5, 32, 31],
- ];
- break;
- case 8:
- t = [
- [-15, 8, 3, 252],
- [-7, 9, 1, 508],
- [-5, 8, 1, 253],
- [-3, 9, 0, 509],
- [-2, 7, 0, 124],
- [-1, 4, 0, 10],
- [0, 2, 1, 0],
- [2, 5, 0, 26],
- [3, 6, 0, 58],
- [4, 3, 4, 4],
- [20, 6, 1, 59],
- [22, 4, 4, 11],
- [38, 4, 5, 12],
- [70, 5, 6, 27],
- [134, 5, 7, 28],
- [262, 6, 7, 60],
- [390, 7, 8, 125],
- [646, 6, 10, 61],
- [-16, 9, 32, 510, 'lower'],
- [1670, 9, 32, 511],
- [2, 1],
- ];
- break;
- case 9:
- t = [
- [-31, 8, 4, 252],
- [-15, 9, 2, 508],
- [-11, 8, 2, 253],
- [-7, 9, 1, 509],
- [-5, 7, 1, 124],
- [-3, 4, 1, 10],
- [-1, 3, 1, 2],
- [1, 3, 1, 3],
- [3, 5, 1, 26],
- [5, 6, 1, 58],
- [7, 3, 5, 4],
- [39, 6, 2, 59],
- [43, 4, 5, 11],
- [75, 4, 6, 12],
- [139, 5, 7, 27],
- [267, 5, 8, 28],
- [523, 6, 8, 60],
- [779, 7, 9, 125],
- [1291, 6, 11, 61],
- [-32, 9, 32, 510, 'lower'],
- [3339, 9, 32, 511],
- [2, 0],
- ];
- break;
- case 10:
- t = [
- [-21, 7, 4, 122],
- [-5, 8, 0, 252],
- [-4, 7, 0, 123],
- [-3, 5, 0, 24],
- [-2, 2, 2, 0],
- [2, 5, 0, 25],
- [3, 6, 0, 54],
- [4, 7, 0, 124],
- [5, 8, 0, 253],
- [6, 2, 6, 1],
- [70, 5, 5, 26],
- [102, 6, 5, 55],
- [134, 6, 6, 56],
- [198, 6, 7, 57],
- [326, 6, 8, 58],
- [582, 6, 9, 59],
- [1094, 6, 10, 60],
- [2118, 7, 11, 125],
- [-22, 8, 32, 254, 'lower'],
- [4166, 8, 32, 255],
- [2, 2],
- ];
- break;
- case 11:
- t = [
- [1, 1, 0, 0],
- [2, 2, 1, 2],
- [4, 4, 0, 12],
- [5, 4, 1, 13],
- [7, 5, 1, 28],
- [9, 5, 2, 29],
- [13, 6, 2, 60],
- [17, 7, 2, 122],
- [21, 7, 3, 123],
- [29, 7, 4, 124],
- [45, 7, 5, 125],
- [77, 7, 6, 126],
- [141, 7, 32, 127],
- ];
- break;
- case 12:
- t = [
- [1, 1, 0, 0],
- [2, 2, 0, 2],
- [3, 3, 1, 6],
- [5, 5, 0, 28],
- [6, 5, 1, 29],
- [8, 6, 1, 60],
- [10, 7, 0, 122],
- [11, 7, 1, 123],
- [13, 7, 2, 124],
- [17, 7, 3, 125],
- [25, 7, 4, 126],
- [41, 8, 5, 254],
- [73, 8, 32, 255],
- ];
- break;
- case 13:
- t = [
- [1, 1, 0, 0],
- [2, 3, 0, 4],
- [3, 4, 0, 12],
- [4, 5, 0, 28],
- [5, 4, 1, 13],
- [7, 3, 3, 5],
- [15, 6, 1, 58],
- [17, 6, 2, 59],
- [21, 6, 3, 60],
- [29, 6, 4, 61],
- [45, 6, 5, 62],
- [77, 7, 6, 126],
- [141, 7, 32, 127],
- ];
- break;
- case 14:
- t = [
- [-2, 3, 0, 4],
- [-1, 3, 0, 5],
- [0, 1, 0, 0],
- [1, 3, 0, 6],
- [2, 3, 0, 7],
- ];
- break;
- case 15:
- t = [
- [-24, 7, 4, 124],
- [-8, 6, 2, 60],
- [-4, 5, 1, 28],
- [-2, 4, 0, 12],
- [-1, 3, 0, 4],
- [0, 1, 0, 0],
- [1, 3, 0, 5],
- [2, 4, 0, 13],
- [3, 5, 1, 29],
- [5, 6, 2, 61],
- [9, 7, 4, 125],
- [-25, 7, 32, 126, 'lower'],
- [25, 7, 32, 127],
- ];
- break;
- default:
- throw new Jbig2Error(`standard table B.${e} does not exist`);
- }
- for (let e = 0, a = t.length; e < a; e++) t[e] = new HuffmanLine(t[e]);
- a = new HuffmanTable(t, !0);
- p[e] = a;
- return a;
- }
- class Reader {
- constructor(e, t, a) {
- this.data = e;
- this.start = t;
- this.end = a;
- this.position = t;
- this.shift = -1;
- this.currentByte = 0;
- }
- readBit() {
- if (this.shift < 0) {
- if (this.position >= this.end)
- throw new Jbig2Error('end of data while reading bit');
- this.currentByte = this.data[this.position++];
- this.shift = 7;
- }
- const e = (this.currentByte >> this.shift) & 1;
- this.shift--;
- return e;
- }
- readBits(e) {
- let t,
- a = 0;
- for (t = e - 1; t >= 0; t--) a |= this.readBit() << t;
- return a;
- }
- byteAlign() {
- this.shift = -1;
- }
- next() {
- return this.position >= this.end ? -1 : this.data[this.position++];
- }
- }
- function getCustomHuffmanTable(e, t, a) {
- let r = 0;
- for (let i = 0, n = t.length; i < n; i++) {
- const n = a[t[i]];
- if (n) {
- if (e === r) return n;
- r++;
- }
- }
- throw new Jbig2Error("can't find custom Huffman table");
- }
- function readUncompressedBitmap(e, t, a) {
- const r = [];
- for (let i = 0; i < a; i++) {
- const a = new Uint8Array(t);
- r.push(a);
- for (let r = 0; r < t; r++) a[r] = e.readBit();
- e.byteAlign();
- }
- return r;
- }
- function decodeMMRBitmap(e, t, a, r) {
- const i = { K: -1, Columns: t, Rows: a, BlackIs1: !0, EndOfBlock: r },
- n = new s.CCITTFaxDecoder(e, i),
- o = [];
- let c,
- l = !1;
- for (let e = 0; e < a; e++) {
- const e = new Uint8Array(t);
- o.push(e);
- let a = -1;
- for (let r = 0; r < t; r++) {
- if (a < 0) {
- c = n.readNextChar();
- if (-1 === c) {
- c = 0;
- l = !0;
- }
- a = 7;
- }
- e[r] = (c >> a) & 1;
- a--;
- }
- }
- if (r && !l) {
- const e = 5;
- for (let t = 0; t < e && -1 !== n.readNextChar(); t++);
- }
- return o;
- }
- t.Jbig2Image = class Jbig2Image {
- parseChunks(e) {
- return (function parseJbig2Chunks(e) {
- const t = new SimpleSegmentVisitor();
- for (let a = 0, r = e.length; a < r; a++) {
- const r = e[a];
- processSegments(readSegments({}, r.data, r.start, r.end), t);
- }
- return t.buffer;
- })(e);
- }
- parse(e) {
- throw new Error('Not implemented: Jbig2Image.parse');
- }
- };
- },
- (e, t) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.ArithmeticDecoder = void 0;
- const a = [
- { qe: 22017, nmps: 1, nlps: 1, switchFlag: 1 },
- { qe: 13313, nmps: 2, nlps: 6, switchFlag: 0 },
- { qe: 6145, nmps: 3, nlps: 9, switchFlag: 0 },
- { qe: 2753, nmps: 4, nlps: 12, switchFlag: 0 },
- { qe: 1313, nmps: 5, nlps: 29, switchFlag: 0 },
- { qe: 545, nmps: 38, nlps: 33, switchFlag: 0 },
- { qe: 22017, nmps: 7, nlps: 6, switchFlag: 1 },
- { qe: 21505, nmps: 8, nlps: 14, switchFlag: 0 },
- { qe: 18433, nmps: 9, nlps: 14, switchFlag: 0 },
- { qe: 14337, nmps: 10, nlps: 14, switchFlag: 0 },
- { qe: 12289, nmps: 11, nlps: 17, switchFlag: 0 },
- { qe: 9217, nmps: 12, nlps: 18, switchFlag: 0 },
- { qe: 7169, nmps: 13, nlps: 20, switchFlag: 0 },
- { qe: 5633, nmps: 29, nlps: 21, switchFlag: 0 },
- { qe: 22017, nmps: 15, nlps: 14, switchFlag: 1 },
- { qe: 21505, nmps: 16, nlps: 14, switchFlag: 0 },
- { qe: 20737, nmps: 17, nlps: 15, switchFlag: 0 },
- { qe: 18433, nmps: 18, nlps: 16, switchFlag: 0 },
- { qe: 14337, nmps: 19, nlps: 17, switchFlag: 0 },
- { qe: 13313, nmps: 20, nlps: 18, switchFlag: 0 },
- { qe: 12289, nmps: 21, nlps: 19, switchFlag: 0 },
- { qe: 10241, nmps: 22, nlps: 19, switchFlag: 0 },
- { qe: 9217, nmps: 23, nlps: 20, switchFlag: 0 },
- { qe: 8705, nmps: 24, nlps: 21, switchFlag: 0 },
- { qe: 7169, nmps: 25, nlps: 22, switchFlag: 0 },
- { qe: 6145, nmps: 26, nlps: 23, switchFlag: 0 },
- { qe: 5633, nmps: 27, nlps: 24, switchFlag: 0 },
- { qe: 5121, nmps: 28, nlps: 25, switchFlag: 0 },
- { qe: 4609, nmps: 29, nlps: 26, switchFlag: 0 },
- { qe: 4353, nmps: 30, nlps: 27, switchFlag: 0 },
- { qe: 2753, nmps: 31, nlps: 28, switchFlag: 0 },
- { qe: 2497, nmps: 32, nlps: 29, switchFlag: 0 },
- { qe: 2209, nmps: 33, nlps: 30, switchFlag: 0 },
- { qe: 1313, nmps: 34, nlps: 31, switchFlag: 0 },
- { qe: 1089, nmps: 35, nlps: 32, switchFlag: 0 },
- { qe: 673, nmps: 36, nlps: 33, switchFlag: 0 },
- { qe: 545, nmps: 37, nlps: 34, switchFlag: 0 },
- { qe: 321, nmps: 38, nlps: 35, switchFlag: 0 },
- { qe: 273, nmps: 39, nlps: 36, switchFlag: 0 },
- { qe: 133, nmps: 40, nlps: 37, switchFlag: 0 },
- { qe: 73, nmps: 41, nlps: 38, switchFlag: 0 },
- { qe: 37, nmps: 42, nlps: 39, switchFlag: 0 },
- { qe: 21, nmps: 43, nlps: 40, switchFlag: 0 },
- { qe: 9, nmps: 44, nlps: 41, switchFlag: 0 },
- { qe: 5, nmps: 45, nlps: 42, switchFlag: 0 },
- { qe: 1, nmps: 45, nlps: 43, switchFlag: 0 },
- { qe: 22017, nmps: 46, nlps: 46, switchFlag: 0 },
- ];
- t.ArithmeticDecoder = class ArithmeticDecoder {
- constructor(e, t, a) {
- this.data = e;
- this.bp = t;
- this.dataEnd = a;
- this.chigh = e[t];
- this.clow = 0;
- this.byteIn();
- this.chigh = ((this.chigh << 7) & 65535) | ((this.clow >> 9) & 127);
- this.clow = (this.clow << 7) & 65535;
- this.ct -= 7;
- this.a = 32768;
- }
- byteIn() {
- const e = this.data;
- let t = this.bp;
- if (255 === e[t])
- if (e[t + 1] > 143) {
- this.clow += 65280;
- this.ct = 8;
- } else {
- t++;
- this.clow += e[t] << 9;
- this.ct = 7;
- this.bp = t;
- }
- else {
- t++;
- this.clow += t < this.dataEnd ? e[t] << 8 : 65280;
- this.ct = 8;
- this.bp = t;
- }
- if (this.clow > 65535) {
- this.chigh += this.clow >> 16;
- this.clow &= 65535;
- }
- }
- readBit(e, t) {
- let r = e[t] >> 1,
- i = 1 & e[t];
- const n = a[r],
- s = n.qe;
- let o,
- c = this.a - s;
- if (this.chigh < s)
- if (c < s) {
- c = s;
- o = i;
- r = n.nmps;
- } else {
- c = s;
- o = 1 ^ i;
- 1 === n.switchFlag && (i = o);
- r = n.nlps;
- }
- else {
- this.chigh -= s;
- if (0 != (32768 & c)) {
- this.a = c;
- return i;
- }
- if (c < s) {
- o = 1 ^ i;
- 1 === n.switchFlag && (i = o);
- r = n.nlps;
- } else {
- o = i;
- r = n.nmps;
- }
- }
- do {
- 0 === this.ct && this.byteIn();
- c <<= 1;
- this.chigh = ((this.chigh << 1) & 65535) | ((this.clow >> 15) & 1);
- this.clow = (this.clow << 1) & 65535;
- this.ct--;
- } while (0 == (32768 & c));
- this.a = c;
- e[t] = (r << 1) | i;
- return o;
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.JpegStream = void 0;
- var r = a(18),
- i = a(4),
- n = a(27),
- s = a(2);
- class JpegStream extends r.DecodeStream {
- constructor(e, t, a) {
- let r;
- for (; -1 !== (r = e.getByte()); )
- if (255 === r) {
- e.skip(-1);
- break;
- }
- super(t);
- this.stream = e;
- this.dict = e.dict;
- this.maybeLength = t;
- this.params = a;
- }
- get bytes() {
- return (0, s.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));
- }
- ensureBuffer(e) {}
- readBlock() {
- if (this.eof) return;
- const e = { decodeTransform: void 0, colorTransform: void 0 },
- t = this.dict.getArray('D', 'Decode');
- if ((this.forceRGBA || this.forceRGB) && Array.isArray(t)) {
- const a = this.dict.get('BPC', 'BitsPerComponent') || 8,
- r = t.length,
- i = new Int32Array(r);
- let n = !1;
- const s = (1 << a) - 1;
- for (let e = 0; e < r; e += 2) {
- i[e] = (256 * (t[e + 1] - t[e])) | 0;
- i[e + 1] = (t[e] * s) | 0;
- (256 === i[e] && 0 === i[e + 1]) || (n = !0);
- }
- n && (e.decodeTransform = i);
- }
- if (this.params instanceof i.Dict) {
- const t = this.params.get('ColorTransform');
- Number.isInteger(t) && (e.colorTransform = t);
- }
- const a = new n.JpegImage(e);
- a.parse(this.bytes);
- const r = a.getData({
- width: this.drawWidth,
- height: this.drawHeight,
- forceRGBA: this.forceRGBA,
- forceRGB: this.forceRGB,
- isSourcePDF: !0,
- });
- this.buffer = r;
- this.bufferLength = r.length;
- this.eof = !0;
- }
- }
- t.JpegStream = JpegStream;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.JpegImage = void 0;
- var r = a(2),
- i = a(28),
- n = a(3);
- class JpegError extends r.BaseException {
- constructor(e) {
- super(`JPEG error: ${e}`, 'JpegError');
- }
- }
- class DNLMarkerError extends r.BaseException {
- constructor(e, t) {
- super(e, 'DNLMarkerError');
- this.scanLines = t;
- }
- }
- class EOIMarkerError extends r.BaseException {
- constructor(e) {
- super(e, 'EOIMarkerError');
- }
- }
- const s = new Uint8Array([
- 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40, 48, 41,
- 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36, 29, 22, 15, 23, 30,
- 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61, 54, 47, 55, 62, 63,
- ]),
- o = 4017,
- c = 799,
- l = 3406,
- h = 2276,
- u = 1567,
- d = 3784,
- f = 5793,
- g = 2896;
- function buildHuffmanTable(e, t) {
- let a,
- r,
- i = 0,
- n = 16;
- for (; n > 0 && !e[n - 1]; ) n--;
- const s = [{ children: [], index: 0 }];
- let o,
- c = s[0];
- for (a = 0; a < n; a++) {
- for (r = 0; r < e[a]; r++) {
- c = s.pop();
- c.children[c.index] = t[i];
- for (; c.index > 0; ) c = s.pop();
- c.index++;
- s.push(c);
- for (; s.length <= a; ) {
- s.push((o = { children: [], index: 0 }));
- c.children[c.index] = o.children;
- c = o;
- }
- i++;
- }
- if (a + 1 < n) {
- s.push((o = { children: [], index: 0 }));
- c.children[c.index] = o.children;
- c = o;
- }
- }
- return s[0].children;
- }
- function getBlockBufferOffset(e, t, a) {
- return 64 * ((e.blocksPerLine + 1) * t + a);
- }
- function decodeScan(e, t, a, i, o, c, l, h, u, d = !1) {
- const f = a.mcusPerLine,
- g = a.progressive,
- p = t;
- let m = 0,
- b = 0;
- function readBit() {
- if (b > 0) {
- b--;
- return (m >> b) & 1;
- }
- m = e[t++];
- if (255 === m) {
- const r = e[t++];
- if (r) {
- if (220 === r && d) {
- t += 2;
- const r = (0, n.readUint16)(e, t);
- t += 2;
- if (r > 0 && r !== a.scanLines)
- throw new DNLMarkerError(
- 'Found DNL marker (0xFFDC) while parsing scan data',
- r,
- );
- } else if (217 === r) {
- if (d) {
- const e = x * (8 === a.precision ? 8 : 0);
- if (e > 0 && Math.round(a.scanLines / e) >= 5)
- throw new DNLMarkerError(
- 'Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter',
- e,
- );
- }
- throw new EOIMarkerError('Found EOI marker (0xFFD9) while parsing scan data');
- }
- throw new JpegError(`unexpected marker ${((m << 8) | r).toString(16)}`);
- }
- }
- b = 7;
- return m >>> 7;
- }
- function decodeHuffman(e) {
- let t = e;
- for (;;) {
- t = t[readBit()];
- switch (typeof t) {
- case 'number':
- return t;
- case 'object':
- continue;
- }
- throw new JpegError('invalid huffman sequence');
- }
- }
- function receive(e) {
- let t = 0;
- for (; e > 0; ) {
- t = (t << 1) | readBit();
- e--;
- }
- return t;
- }
- function receiveAndExtend(e) {
- if (1 === e) return 1 === readBit() ? 1 : -1;
- const t = receive(e);
- return t >= 1 << (e - 1) ? t : t + (-1 << e) + 1;
- }
- let y = 0;
- let w,
- S = 0;
- let x = 0;
- function decodeMcu(e, t, a, r, i) {
- const n = a % f;
- x = ((a / f) | 0) * e.v + r;
- const s = n * e.h + i;
- t(e, getBlockBufferOffset(e, x, s));
- }
- function decodeBlock(e, t, a) {
- x = (a / e.blocksPerLine) | 0;
- const r = a % e.blocksPerLine;
- t(e, getBlockBufferOffset(e, x, r));
- }
- const C = i.length;
- let k, v, F, O, T, M;
- M = g
- ? 0 === c
- ? 0 === h
- ? function decodeDCFirst(e, t) {
- const a = decodeHuffman(e.huffmanTableDC),
- r = 0 === a ? 0 : receiveAndExtend(a) << u;
- e.blockData[t] = e.pred += r;
- }
- : function decodeDCSuccessive(e, t) {
- e.blockData[t] |= readBit() << u;
- }
- : 0 === h
- ? function decodeACFirst(e, t) {
- if (y > 0) {
- y--;
- return;
- }
- let a = c;
- const r = l;
- for (; a <= r; ) {
- const r = decodeHuffman(e.huffmanTableAC),
- i = 15 & r,
- n = r >> 4;
- if (0 === i) {
- if (n < 15) {
- y = receive(n) + (1 << n) - 1;
- break;
- }
- a += 16;
- continue;
- }
- a += n;
- const o = s[a];
- e.blockData[t + o] = receiveAndExtend(i) * (1 << u);
- a++;
- }
- }
- : function decodeACSuccessive(e, t) {
- let a = c;
- const r = l;
- let i,
- n,
- o = 0;
- for (; a <= r; ) {
- const r = t + s[a],
- c = e.blockData[r] < 0 ? -1 : 1;
- switch (S) {
- case 0:
- n = decodeHuffman(e.huffmanTableAC);
- i = 15 & n;
- o = n >> 4;
- if (0 === i)
- if (o < 15) {
- y = receive(o) + (1 << o);
- S = 4;
- } else {
- o = 16;
- S = 1;
- }
- else {
- if (1 !== i) throw new JpegError('invalid ACn encoding');
- w = receiveAndExtend(i);
- S = o ? 2 : 3;
- }
- continue;
- case 1:
- case 2:
- if (e.blockData[r]) e.blockData[r] += c * (readBit() << u);
- else {
- o--;
- 0 === o && (S = 2 === S ? 3 : 0);
- }
- break;
- case 3:
- if (e.blockData[r]) e.blockData[r] += c * (readBit() << u);
- else {
- e.blockData[r] = w << u;
- S = 0;
- }
- break;
- case 4:
- e.blockData[r] && (e.blockData[r] += c * (readBit() << u));
- }
- a++;
- }
- if (4 === S) {
- y--;
- 0 === y && (S = 0);
- }
- }
- : function decodeBaseline(e, t) {
- const a = decodeHuffman(e.huffmanTableDC),
- r = 0 === a ? 0 : receiveAndExtend(a);
- e.blockData[t] = e.pred += r;
- let i = 1;
- for (; i < 64; ) {
- const a = decodeHuffman(e.huffmanTableAC),
- r = 15 & a,
- n = a >> 4;
- if (0 === r) {
- if (n < 15) break;
- i += 16;
- continue;
- }
- i += n;
- const o = s[i];
- e.blockData[t + o] = receiveAndExtend(r);
- i++;
- }
- };
- let E,
- D,
- N,
- R,
- L = 0;
- D = 1 === C ? i[0].blocksPerLine * i[0].blocksPerColumn : f * a.mcusPerColumn;
- for (; L <= D; ) {
- const a = o ? Math.min(D - L, o) : D;
- if (a > 0) {
- for (v = 0; v < C; v++) i[v].pred = 0;
- y = 0;
- if (1 === C) {
- k = i[0];
- for (T = 0; T < a; T++) {
- decodeBlock(k, M, L);
- L++;
- }
- } else
- for (T = 0; T < a; T++) {
- for (v = 0; v < C; v++) {
- k = i[v];
- N = k.h;
- R = k.v;
- for (F = 0; F < R; F++) for (O = 0; O < N; O++) decodeMcu(k, M, L, F, O);
- }
- L++;
- }
- }
- b = 0;
- E = findNextFileMarker(e, t);
- if (!E) break;
- if (E.invalid) {
- const e = a > 0 ? 'unexpected' : 'excessive';
- (0, r.warn)(`decodeScan - ${e} MCU data, current marker is: ${E.invalid}`);
- t = E.offset;
- }
- if (!(E.marker >= 65488 && E.marker <= 65495)) break;
- t += 2;
- }
- return t - p;
- }
- function quantizeAndInverse(e, t, a) {
- const r = e.quantizationTable,
- i = e.blockData;
- let n, s, p, m, b, y, w, S, x, C, k, v, F, O, T, M, E;
- if (!r) throw new JpegError('missing required Quantization Table.');
- for (let e = 0; e < 64; e += 8) {
- x = i[t + e];
- C = i[t + e + 1];
- k = i[t + e + 2];
- v = i[t + e + 3];
- F = i[t + e + 4];
- O = i[t + e + 5];
- T = i[t + e + 6];
- M = i[t + e + 7];
- x *= r[e];
- if (0 != (C | k | v | F | O | T | M)) {
- C *= r[e + 1];
- k *= r[e + 2];
- v *= r[e + 3];
- F *= r[e + 4];
- O *= r[e + 5];
- T *= r[e + 6];
- M *= r[e + 7];
- n = (f * x + 128) >> 8;
- s = (f * F + 128) >> 8;
- p = k;
- m = T;
- b = (g * (C - M) + 128) >> 8;
- S = (g * (C + M) + 128) >> 8;
- y = v << 4;
- w = O << 4;
- n = (n + s + 1) >> 1;
- s = n - s;
- E = (p * d + m * u + 128) >> 8;
- p = (p * u - m * d + 128) >> 8;
- m = E;
- b = (b + w + 1) >> 1;
- w = b - w;
- S = (S + y + 1) >> 1;
- y = S - y;
- n = (n + m + 1) >> 1;
- m = n - m;
- s = (s + p + 1) >> 1;
- p = s - p;
- E = (b * h + S * l + 2048) >> 12;
- b = (b * l - S * h + 2048) >> 12;
- S = E;
- E = (y * c + w * o + 2048) >> 12;
- y = (y * o - w * c + 2048) >> 12;
- w = E;
- a[e] = n + S;
- a[e + 7] = n - S;
- a[e + 1] = s + w;
- a[e + 6] = s - w;
- a[e + 2] = p + y;
- a[e + 5] = p - y;
- a[e + 3] = m + b;
- a[e + 4] = m - b;
- } else {
- E = (f * x + 512) >> 10;
- a[e] = E;
- a[e + 1] = E;
- a[e + 2] = E;
- a[e + 3] = E;
- a[e + 4] = E;
- a[e + 5] = E;
- a[e + 6] = E;
- a[e + 7] = E;
- }
- }
- for (let e = 0; e < 8; ++e) {
- x = a[e];
- C = a[e + 8];
- k = a[e + 16];
- v = a[e + 24];
- F = a[e + 32];
- O = a[e + 40];
- T = a[e + 48];
- M = a[e + 56];
- if (0 != (C | k | v | F | O | T | M)) {
- n = (f * x + 2048) >> 12;
- s = (f * F + 2048) >> 12;
- p = k;
- m = T;
- b = (g * (C - M) + 2048) >> 12;
- S = (g * (C + M) + 2048) >> 12;
- y = v;
- w = O;
- n = 4112 + ((n + s + 1) >> 1);
- s = n - s;
- E = (p * d + m * u + 2048) >> 12;
- p = (p * u - m * d + 2048) >> 12;
- m = E;
- b = (b + w + 1) >> 1;
- w = b - w;
- S = (S + y + 1) >> 1;
- y = S - y;
- n = (n + m + 1) >> 1;
- m = n - m;
- s = (s + p + 1) >> 1;
- p = s - p;
- E = (b * h + S * l + 2048) >> 12;
- b = (b * l - S * h + 2048) >> 12;
- S = E;
- E = (y * c + w * o + 2048) >> 12;
- y = (y * o - w * c + 2048) >> 12;
- w = E;
- x = n + S;
- M = n - S;
- C = s + w;
- T = s - w;
- k = p + y;
- O = p - y;
- v = m + b;
- F = m - b;
- x < 16 ? (x = 0) : x >= 4080 ? (x = 255) : (x >>= 4);
- C < 16 ? (C = 0) : C >= 4080 ? (C = 255) : (C >>= 4);
- k < 16 ? (k = 0) : k >= 4080 ? (k = 255) : (k >>= 4);
- v < 16 ? (v = 0) : v >= 4080 ? (v = 255) : (v >>= 4);
- F < 16 ? (F = 0) : F >= 4080 ? (F = 255) : (F >>= 4);
- O < 16 ? (O = 0) : O >= 4080 ? (O = 255) : (O >>= 4);
- T < 16 ? (T = 0) : T >= 4080 ? (T = 255) : (T >>= 4);
- M < 16 ? (M = 0) : M >= 4080 ? (M = 255) : (M >>= 4);
- i[t + e] = x;
- i[t + e + 8] = C;
- i[t + e + 16] = k;
- i[t + e + 24] = v;
- i[t + e + 32] = F;
- i[t + e + 40] = O;
- i[t + e + 48] = T;
- i[t + e + 56] = M;
- } else {
- E = (f * x + 8192) >> 14;
- E = E < -2040 ? 0 : E >= 2024 ? 255 : (E + 2056) >> 4;
- i[t + e] = E;
- i[t + e + 8] = E;
- i[t + e + 16] = E;
- i[t + e + 24] = E;
- i[t + e + 32] = E;
- i[t + e + 40] = E;
- i[t + e + 48] = E;
- i[t + e + 56] = E;
- }
- }
- }
- function buildComponentData(e, t) {
- const a = t.blocksPerLine,
- r = t.blocksPerColumn,
- i = new Int16Array(64);
- for (let e = 0; e < r; e++)
- for (let r = 0; r < a; r++) {
- quantizeAndInverse(t, getBlockBufferOffset(t, e, r), i);
- }
- return t.blockData;
- }
- function findNextFileMarker(e, t, a = t) {
- const r = e.length - 1;
- let i = a < t ? a : t;
- if (t >= r) return null;
- const s = (0, n.readUint16)(e, t);
- if (s >= 65472 && s <= 65534) return { invalid: null, marker: s, offset: t };
- let o = (0, n.readUint16)(e, i);
- for (; !(o >= 65472 && o <= 65534); ) {
- if (++i >= r) return null;
- o = (0, n.readUint16)(e, i);
- }
- return { invalid: s.toString(16), marker: o, offset: i };
- }
- t.JpegImage = class JpegImage {
- constructor({ decodeTransform: e = null, colorTransform: t = -1 } = {}) {
- this._decodeTransform = e;
- this._colorTransform = t;
- }
- parse(e, { dnlScanLines: t = null } = {}) {
- function readDataBlock() {
- const t = (0, n.readUint16)(e, o);
- o += 2;
- let a = o + t - 2;
- const i = findNextFileMarker(e, a, o);
- if (i && i.invalid) {
- (0, r.warn)('readDataBlock - incorrect length, current marker is: ' + i.invalid);
- a = i.offset;
- }
- const s = e.subarray(o, a);
- o += s.length;
- return s;
- }
- function prepareComponents(e) {
- const t = Math.ceil(e.samplesPerLine / 8 / e.maxH),
- a = Math.ceil(e.scanLines / 8 / e.maxV);
- for (const r of e.components) {
- const i = Math.ceil((Math.ceil(e.samplesPerLine / 8) * r.h) / e.maxH),
- n = Math.ceil((Math.ceil(e.scanLines / 8) * r.v) / e.maxV),
- s = t * r.h,
- o = 64 * (a * r.v) * (s + 1);
- r.blockData = new Int16Array(o);
- r.blocksPerLine = i;
- r.blocksPerColumn = n;
- }
- e.mcusPerLine = t;
- e.mcusPerColumn = a;
- }
- let a,
- i,
- o = 0,
- c = null,
- l = null,
- h = 0;
- const u = [],
- d = [],
- f = [];
- let g = (0, n.readUint16)(e, o);
- o += 2;
- if (65496 !== g) throw new JpegError('SOI not found');
- g = (0, n.readUint16)(e, o);
- o += 2;
- e: for (; 65497 !== g; ) {
- let p, m, b;
- switch (g) {
- case 65504:
- case 65505:
- case 65506:
- case 65507:
- case 65508:
- case 65509:
- case 65510:
- case 65511:
- case 65512:
- case 65513:
- case 65514:
- case 65515:
- case 65516:
- case 65517:
- case 65518:
- case 65519:
- case 65534:
- const y = readDataBlock();
- 65504 === g &&
- 74 === y[0] &&
- 70 === y[1] &&
- 73 === y[2] &&
- 70 === y[3] &&
- 0 === y[4] &&
- (c = {
- version: { major: y[5], minor: y[6] },
- densityUnits: y[7],
- xDensity: (y[8] << 8) | y[9],
- yDensity: (y[10] << 8) | y[11],
- thumbWidth: y[12],
- thumbHeight: y[13],
- thumbData: y.subarray(14, 14 + 3 * y[12] * y[13]),
- });
- 65518 === g &&
- 65 === y[0] &&
- 100 === y[1] &&
- 111 === y[2] &&
- 98 === y[3] &&
- 101 === y[4] &&
- (l = {
- version: (y[5] << 8) | y[6],
- flags0: (y[7] << 8) | y[8],
- flags1: (y[9] << 8) | y[10],
- transformCode: y[11],
- });
- break;
- case 65499:
- const w = (0, n.readUint16)(e, o);
- o += 2;
- const S = w + o - 2;
- let x;
- for (; o < S; ) {
- const t = e[o++],
- a = new Uint16Array(64);
- if (t >> 4 == 0)
- for (m = 0; m < 64; m++) {
- x = s[m];
- a[x] = e[o++];
- }
- else {
- if (t >> 4 != 1) throw new JpegError('DQT - invalid table spec');
- for (m = 0; m < 64; m++) {
- x = s[m];
- a[x] = (0, n.readUint16)(e, o);
- o += 2;
- }
- }
- u[15 & t] = a;
- }
- break;
- case 65472:
- case 65473:
- case 65474:
- if (a) throw new JpegError('Only single frame JPEGs supported');
- o += 2;
- a = {};
- a.extended = 65473 === g;
- a.progressive = 65474 === g;
- a.precision = e[o++];
- const C = (0, n.readUint16)(e, o);
- o += 2;
- a.scanLines = t || C;
- a.samplesPerLine = (0, n.readUint16)(e, o);
- o += 2;
- a.components = [];
- a.componentIds = {};
- const k = e[o++];
- let v = 0,
- F = 0;
- for (p = 0; p < k; p++) {
- const t = e[o],
- r = e[o + 1] >> 4,
- i = 15 & e[o + 1];
- v < r && (v = r);
- F < i && (F = i);
- const n = e[o + 2];
- b = a.components.push({
- h: r,
- v: i,
- quantizationId: n,
- quantizationTable: null,
- });
- a.componentIds[t] = b - 1;
- o += 3;
- }
- a.maxH = v;
- a.maxV = F;
- prepareComponents(a);
- break;
- case 65476:
- const O = (0, n.readUint16)(e, o);
- o += 2;
- for (p = 2; p < O; ) {
- const t = e[o++],
- a = new Uint8Array(16);
- let r = 0;
- for (m = 0; m < 16; m++, o++) r += a[m] = e[o];
- const i = new Uint8Array(r);
- for (m = 0; m < r; m++, o++) i[m] = e[o];
- p += 17 + r;
- (t >> 4 == 0 ? f : d)[15 & t] = buildHuffmanTable(a, i);
- }
- break;
- case 65501:
- o += 2;
- i = (0, n.readUint16)(e, o);
- o += 2;
- break;
- case 65498:
- const T = 1 == ++h && !t;
- o += 2;
- const M = e[o++],
- E = [];
- for (p = 0; p < M; p++) {
- const t = e[o++],
- r = a.componentIds[t],
- i = a.components[r];
- i.index = t;
- const n = e[o++];
- i.huffmanTableDC = f[n >> 4];
- i.huffmanTableAC = d[15 & n];
- E.push(i);
- }
- const D = e[o++],
- N = e[o++],
- R = e[o++];
- try {
- const t = decodeScan(e, o, a, E, i, D, N, R >> 4, 15 & R, T);
- o += t;
- } catch (t) {
- if (t instanceof DNLMarkerError) {
- (0, r.warn)(`${t.message} -- attempting to re-parse the JPEG image.`);
- return this.parse(e, { dnlScanLines: t.scanLines });
- }
- if (t instanceof EOIMarkerError) {
- (0, r.warn)(`${t.message} -- ignoring the rest of the image data.`);
- break e;
- }
- throw t;
- }
- break;
- case 65500:
- o += 4;
- break;
- case 65535:
- 255 !== e[o] && o--;
- break;
- default:
- const L = findNextFileMarker(e, o - 2, o - 3);
- if (L && L.invalid) {
- (0, r.warn)(
- 'JpegImage.parse - unexpected data, current marker is: ' + L.invalid,
- );
- o = L.offset;
- break;
- }
- if (!L || o >= e.length - 1) {
- (0, r.warn)(
- 'JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).',
- );
- break e;
- }
- throw new JpegError('JpegImage.parse - unknown marker: ' + g.toString(16));
- }
- g = (0, n.readUint16)(e, o);
- o += 2;
- }
- this.width = a.samplesPerLine;
- this.height = a.scanLines;
- this.jfif = c;
- this.adobe = l;
- this.components = [];
- for (const e of a.components) {
- const t = u[e.quantizationId];
- t && (e.quantizationTable = t);
- this.components.push({
- index: e.index,
- output: buildComponentData(0, e),
- scaleX: e.h / a.maxH,
- scaleY: e.v / a.maxV,
- blocksPerLine: e.blocksPerLine,
- blocksPerColumn: e.blocksPerColumn,
- });
- }
- this.numComponents = this.components.length;
- }
- _getLinearizedBlockData(e, t, a = !1) {
- const r = this.width / e,
- i = this.height / t;
- let n,
- s,
- o,
- c,
- l,
- h,
- u,
- d,
- f,
- g,
- p,
- m = 0;
- const b = this.components.length,
- y = e * t * b,
- w = new Uint8ClampedArray(y),
- S = new Uint32Array(e),
- x = 4294967288;
- let C;
- for (u = 0; u < b; u++) {
- n = this.components[u];
- s = n.scaleX * r;
- o = n.scaleY * i;
- m = u;
- p = n.output;
- c = (n.blocksPerLine + 1) << 3;
- if (s !== C) {
- for (l = 0; l < e; l++) {
- d = 0 | (l * s);
- S[l] = ((d & x) << 3) | (7 & d);
- }
- C = s;
- }
- for (h = 0; h < t; h++) {
- d = 0 | (h * o);
- g = (c * (d & x)) | ((7 & d) << 3);
- for (l = 0; l < e; l++) {
- w[m] = p[g + S[l]];
- m += b;
- }
- }
- }
- let k = this._decodeTransform;
- a ||
- 4 !== b ||
- k ||
- (k = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255]));
- if (k)
- for (u = 0; u < y; )
- for (d = 0, f = 0; d < b; d++, u++, f += 2)
- w[u] = ((w[u] * k[f]) >> 8) + k[f + 1];
- return w;
- }
- get _isColorConversionNeeded() {
- return this.adobe
- ? !!this.adobe.transformCode
- : 3 === this.numComponents
- ? 0 !== this._colorTransform &&
- (82 !== this.components[0].index ||
- 71 !== this.components[1].index ||
- 66 !== this.components[2].index)
- : 1 === this._colorTransform;
- }
- _convertYccToRgb(e) {
- let t, a, r;
- for (let i = 0, n = e.length; i < n; i += 3) {
- t = e[i];
- a = e[i + 1];
- r = e[i + 2];
- e[i] = t - 179.456 + 1.402 * r;
- e[i + 1] = t + 135.459 - 0.344 * a - 0.714 * r;
- e[i + 2] = t - 226.816 + 1.772 * a;
- }
- return e;
- }
- _convertYccToRgba(e, t) {
- for (let a = 0, r = 0, i = e.length; a < i; a += 3, r += 4) {
- const i = e[a],
- n = e[a + 1],
- s = e[a + 2];
- t[r] = i - 179.456 + 1.402 * s;
- t[r + 1] = i + 135.459 - 0.344 * n - 0.714 * s;
- t[r + 2] = i - 226.816 + 1.772 * n;
- t[r + 3] = 255;
- }
- return t;
- }
- _convertYcckToRgb(e) {
- let t,
- a,
- r,
- i,
- n = 0;
- for (let s = 0, o = e.length; s < o; s += 4) {
- t = e[s];
- a = e[s + 1];
- r = e[s + 2];
- i = e[s + 3];
- e[n++] =
- a *
- (-660635669420364e-19 * a +
- 0.000437130475926232 * r -
- 54080610064599e-18 * t +
- 0.00048449797120281 * i -
- 0.154362151871126) -
- 122.67195406894 +
- r *
- (-0.000957964378445773 * r +
- 0.000817076911346625 * t -
- 0.00477271405408747 * i +
- 1.53380253221734) +
- t * (0.000961250184130688 * t - 0.00266257332283933 * i + 0.48357088451265) +
- i * (-0.000336197177618394 * i + 0.484791561490776);
- e[n++] =
- 107.268039397724 +
- a *
- (219927104525741e-19 * a -
- 0.000640992018297945 * r +
- 0.000659397001245577 * t +
- 0.000426105652938837 * i -
- 0.176491792462875) +
- r *
- (-0.000778269941513683 * r +
- 0.00130872261408275 * t +
- 0.000770482631801132 * i -
- 0.151051492775562) +
- t * (0.00126935368114843 * t - 0.00265090189010898 * i + 0.25802910206845) +
- i * (-0.000318913117588328 * i - 0.213742400323665);
- e[n++] =
- a *
- (-0.000570115196973677 * a -
- 263409051004589e-19 * r +
- 0.0020741088115012 * t -
- 0.00288260236853442 * i +
- 0.814272968359295) -
- 20.810012546947 +
- r *
- (-153496057440975e-19 * r -
- 0.000132689043961446 * t +
- 0.000560833691242812 * i -
- 0.195152027534049) +
- t * (0.00174418132927582 * t - 0.00255243321439347 * i + 0.116935020465145) +
- i * (-0.000343531996510555 * i + 0.24165260232407);
- }
- return e.subarray(0, n);
- }
- _convertYcckToRgba(e) {
- for (let t = 0, a = e.length; t < a; t += 4) {
- const a = e[t],
- r = e[t + 1],
- i = e[t + 2],
- n = e[t + 3];
- e[t] =
- r *
- (-660635669420364e-19 * r +
- 0.000437130475926232 * i -
- 54080610064599e-18 * a +
- 0.00048449797120281 * n -
- 0.154362151871126) -
- 122.67195406894 +
- i *
- (-0.000957964378445773 * i +
- 0.000817076911346625 * a -
- 0.00477271405408747 * n +
- 1.53380253221734) +
- a * (0.000961250184130688 * a - 0.00266257332283933 * n + 0.48357088451265) +
- n * (-0.000336197177618394 * n + 0.484791561490776);
- e[t + 1] =
- 107.268039397724 +
- r *
- (219927104525741e-19 * r -
- 0.000640992018297945 * i +
- 0.000659397001245577 * a +
- 0.000426105652938837 * n -
- 0.176491792462875) +
- i *
- (-0.000778269941513683 * i +
- 0.00130872261408275 * a +
- 0.000770482631801132 * n -
- 0.151051492775562) +
- a * (0.00126935368114843 * a - 0.00265090189010898 * n + 0.25802910206845) +
- n * (-0.000318913117588328 * n - 0.213742400323665);
- e[t + 2] =
- r *
- (-0.000570115196973677 * r -
- 263409051004589e-19 * i +
- 0.0020741088115012 * a -
- 0.00288260236853442 * n +
- 0.814272968359295) -
- 20.810012546947 +
- i *
- (-153496057440975e-19 * i -
- 0.000132689043961446 * a +
- 0.000560833691242812 * n -
- 0.195152027534049) +
- a * (0.00174418132927582 * a - 0.00255243321439347 * n + 0.116935020465145) +
- n * (-0.000343531996510555 * n + 0.24165260232407);
- e[t + 3] = 255;
- }
- return e;
- }
- _convertYcckToCmyk(e) {
- let t, a, r;
- for (let i = 0, n = e.length; i < n; i += 4) {
- t = e[i];
- a = e[i + 1];
- r = e[i + 2];
- e[i] = 434.456 - t - 1.402 * r;
- e[i + 1] = 119.541 - t + 0.344 * a + 0.714 * r;
- e[i + 2] = 481.816 - t - 1.772 * a;
- }
- return e;
- }
- _convertCmykToRgb(e) {
- let t,
- a,
- r,
- i,
- n = 0;
- for (let s = 0, o = e.length; s < o; s += 4) {
- t = e[s];
- a = e[s + 1];
- r = e[s + 2];
- i = e[s + 3];
- e[n++] =
- 255 +
- t *
- (-6747147073602441e-20 * t +
- 0.0008379262121013727 * a +
- 0.0002894718188643294 * r +
- 0.003264231057537806 * i -
- 1.1185611867203937) +
- a *
- (26374107616089405e-21 * a -
- 8626949158638572e-20 * r -
- 0.0002748769067499491 * i -
- 0.02155688794978967) +
- r * (-3878099212869363e-20 * r - 0.0003267808279485286 * i + 0.0686742238595345) -
- i * (0.0003361971776183937 * i + 0.7430659151342254);
- e[n++] =
- 255 +
- t *
- (0.00013596372813588848 * t +
- 0.000924537132573585 * a +
- 0.00010567359618683593 * r +
- 0.0004791864687436512 * i -
- 0.3109689587515875) +
- a *
- (-0.00023545346108370344 * a +
- 0.0002702845253534714 * r +
- 0.0020200308977307156 * i -
- 0.7488052167015494) +
- r *
- (6834815998235662e-20 * r + 0.00015168452363460973 * i - 0.09751927774728933) -
- i * (0.0003189131175883281 * i + 0.7364883807733168);
- e[n++] =
- 255 +
- t *
- (13598650411385307e-21 * t +
- 0.00012423956175490851 * a +
- 0.0004751985097583589 * r -
- 36729317476630422e-22 * i -
- 0.05562186980264034) +
- a *
- (0.00016141380598724676 * a +
- 0.0009692239130725186 * r +
- 0.0007782692450036253 * i -
- 0.44015232367526463) +
- r * (5.068882914068769e-7 * r + 0.0017778369011375071 * i - 0.7591454649749609) -
- i * (0.0003435319965105553 * i + 0.7063770186160144);
- }
- return e.subarray(0, n);
- }
- _convertCmykToRgba(e) {
- for (let t = 0, a = e.length; t < a; t += 4) {
- const a = e[t],
- r = e[t + 1],
- i = e[t + 2],
- n = e[t + 3];
- e[t] =
- 255 +
- a *
- (-6747147073602441e-20 * a +
- 0.0008379262121013727 * r +
- 0.0002894718188643294 * i +
- 0.003264231057537806 * n -
- 1.1185611867203937) +
- r *
- (26374107616089405e-21 * r -
- 8626949158638572e-20 * i -
- 0.0002748769067499491 * n -
- 0.02155688794978967) +
- i * (-3878099212869363e-20 * i - 0.0003267808279485286 * n + 0.0686742238595345) -
- n * (0.0003361971776183937 * n + 0.7430659151342254);
- e[t + 1] =
- 255 +
- a *
- (0.00013596372813588848 * a +
- 0.000924537132573585 * r +
- 0.00010567359618683593 * i +
- 0.0004791864687436512 * n -
- 0.3109689587515875) +
- r *
- (-0.00023545346108370344 * r +
- 0.0002702845253534714 * i +
- 0.0020200308977307156 * n -
- 0.7488052167015494) +
- i *
- (6834815998235662e-20 * i + 0.00015168452363460973 * n - 0.09751927774728933) -
- n * (0.0003189131175883281 * n + 0.7364883807733168);
- e[t + 2] =
- 255 +
- a *
- (13598650411385307e-21 * a +
- 0.00012423956175490851 * r +
- 0.0004751985097583589 * i -
- 36729317476630422e-22 * n -
- 0.05562186980264034) +
- r *
- (0.00016141380598724676 * r +
- 0.0009692239130725186 * i +
- 0.0007782692450036253 * n -
- 0.44015232367526463) +
- i * (5.068882914068769e-7 * i + 0.0017778369011375071 * n - 0.7591454649749609) -
- n * (0.0003435319965105553 * n + 0.7063770186160144);
- e[t + 3] = 255;
- }
- return e;
- }
- getData({
- width: e,
- height: t,
- forceRGBA: a = !1,
- forceRGB: r = !1,
- isSourcePDF: n = !1,
- }) {
- if (this.numComponents > 4) throw new JpegError('Unsupported color mode');
- const s = this._getLinearizedBlockData(e, t, n);
- if (1 === this.numComponents && (a || r)) {
- const e = s.length * (a ? 4 : 3),
- t = new Uint8ClampedArray(e);
- let r = 0;
- if (a) (0, i.grayToRGBA)(s, new Uint32Array(t.buffer));
- else
- for (const e of s) {
- t[r++] = e;
- t[r++] = e;
- t[r++] = e;
- }
- return t;
- }
- if (3 === this.numComponents && this._isColorConversionNeeded) {
- if (a) {
- const e = new Uint8ClampedArray((s.length / 3) * 4);
- return this._convertYccToRgba(s, e);
- }
- return this._convertYccToRgb(s);
- }
- if (4 === this.numComponents) {
- if (this._isColorConversionNeeded)
- return a
- ? this._convertYcckToRgba(s)
- : r
- ? this._convertYcckToRgb(s)
- : this._convertYcckToCmyk(s);
- if (a) return this._convertCmykToRgba(s);
- if (r) return this._convertCmykToRgb(s);
- }
- return s;
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.convertBlackAndWhiteToRGBA = convertBlackAndWhiteToRGBA;
- t.convertToRGBA = function convertToRGBA(e) {
- switch (e.kind) {
- case r.ImageKind.GRAYSCALE_1BPP:
- return convertBlackAndWhiteToRGBA(e);
- case r.ImageKind.RGB_24BPP:
- return (function convertRGBToRGBA({
- src: e,
- srcPos: t = 0,
- dest: a,
- destPos: i = 0,
- width: n,
- height: s,
- }) {
- let o = 0;
- const c = e.length >> 2,
- l = new Uint32Array(e.buffer, t, c);
- if (r.FeatureTest.isLittleEndian) {
- for (; o < c - 2; o += 3, i += 4) {
- const e = l[o],
- t = l[o + 1],
- r = l[o + 2];
- a[i] = 4278190080 | e;
- a[i + 1] = (e >>> 24) | (t << 8) | 4278190080;
- a[i + 2] = (t >>> 16) | (r << 16) | 4278190080;
- a[i + 3] = (r >>> 8) | 4278190080;
- }
- for (let t = 4 * o, r = e.length; t < r; t += 3)
- a[i++] = e[t] | (e[t + 1] << 8) | (e[t + 2] << 16) | 4278190080;
- } else {
- for (; o < c - 2; o += 3, i += 4) {
- const e = l[o],
- t = l[o + 1],
- r = l[o + 2];
- a[i] = 255 | e;
- a[i + 1] = (e << 24) | (t >>> 8) | 255;
- a[i + 2] = (t << 16) | (r >>> 16) | 255;
- a[i + 3] = (r << 8) | 255;
- }
- for (let t = 4 * o, r = e.length; t < r; t += 3)
- a[i++] = (e[t] << 24) | (e[t + 1] << 16) | (e[t + 2] << 8) | 255;
- }
- return { srcPos: t, destPos: i };
- })(e);
- }
- return null;
- };
- t.grayToRGBA = function grayToRGBA(e, t) {
- if (r.FeatureTest.isLittleEndian)
- for (let a = 0, r = e.length; a < r; a++) t[a] = (65793 * e[a]) | 4278190080;
- else for (let a = 0, r = e.length; a < r; a++) t[a] = (16843008 * e[a]) | 255;
- };
- var r = a(2);
- function convertBlackAndWhiteToRGBA({
- src: e,
- srcPos: t = 0,
- dest: a,
- width: i,
- height: n,
- nonBlackColor: s = 4294967295,
- inverseDecode: o = !1,
- }) {
- const c = r.FeatureTest.isLittleEndian ? 4278190080 : 255,
- [l, h] = o ? [s, c] : [c, s],
- u = i >> 3,
- d = 7 & i,
- f = e.length;
- a = new Uint32Array(a.buffer);
- let g = 0;
- for (let r = 0; r < n; r++) {
- for (const r = t + u; t < r; t++) {
- const r = t < f ? e[t] : 255;
- a[g++] = 128 & r ? h : l;
- a[g++] = 64 & r ? h : l;
- a[g++] = 32 & r ? h : l;
- a[g++] = 16 & r ? h : l;
- a[g++] = 8 & r ? h : l;
- a[g++] = 4 & r ? h : l;
- a[g++] = 2 & r ? h : l;
- a[g++] = 1 & r ? h : l;
- }
- if (0 === d) continue;
- const r = t < f ? e[t++] : 255;
- for (let e = 0; e < d; e++) a[g++] = r & (1 << (7 - e)) ? h : l;
- }
- return { srcPos: t, destPos: g };
- }
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.JpxStream = void 0;
- var r = a(18),
- i = a(30),
- n = a(2);
- class JpxStream extends r.DecodeStream {
- constructor(e, t, a) {
- super(t);
- this.stream = e;
- this.dict = e.dict;
- this.maybeLength = t;
- this.params = a;
- }
- get bytes() {
- return (0, n.shadow)(this, 'bytes', this.stream.getBytes(this.maybeLength));
- }
- ensureBuffer(e) {}
- readBlock() {
- if (this.eof) return;
- const e = new i.JpxImage();
- e.parse(this.bytes);
- const t = e.width,
- a = e.height,
- r = e.componentsCount,
- n = e.tiles.length;
- if (1 === n) this.buffer = e.tiles[0].items;
- else {
- const i = new Uint8ClampedArray(t * a * r);
- for (let a = 0; a < n; a++) {
- const n = e.tiles[a],
- s = n.width,
- o = n.height,
- c = n.left,
- l = n.top,
- h = n.items;
- let u = 0,
- d = (t * l + c) * r;
- const f = t * r,
- g = s * r;
- for (let e = 0; e < o; e++) {
- const e = h.subarray(u, u + g);
- i.set(e, d);
- u += g;
- d += f;
- }
- }
- this.buffer = i;
- }
- this.bufferLength = this.buffer.length;
- this.eof = !0;
- }
- }
- t.JpxStream = JpxStream;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.JpxImage = void 0;
- var r = a(2),
- i = a(3),
- n = a(25);
- class JpxError extends r.BaseException {
- constructor(e) {
- super(`JPX error: ${e}`, 'JpxError');
- }
- }
- const s = { LL: 0, LH: 1, HL: 1, HH: 2 };
- t.JpxImage = class JpxImage {
- constructor() {
- this.failOnCorruptedImage = !1;
- }
- parse(e) {
- if (65359 === (0, i.readUint16)(e, 0)) {
- this.parseCodestream(e, 0, e.length);
- return;
- }
- const t = e.length;
- let a = 0;
- for (; a < t; ) {
- let n = 8,
- s = (0, i.readUint32)(e, a);
- const o = (0, i.readUint32)(e, a + 4);
- a += n;
- if (1 === s) {
- s = 4294967296 * (0, i.readUint32)(e, a) + (0, i.readUint32)(e, a + 4);
- a += 8;
- n += 8;
- }
- 0 === s && (s = t - a + n);
- if (s < n) throw new JpxError('Invalid box field size');
- const c = s - n;
- let l = !0;
- switch (o) {
- case 1785737832:
- l = !1;
- break;
- case 1668246642:
- const t = e[a];
- if (1 === t) {
- const t = (0, i.readUint32)(e, a + 3);
- switch (t) {
- case 16:
- case 17:
- case 18:
- break;
- default:
- (0, r.warn)('Unknown colorspace ' + t);
- }
- } else 2 === t && (0, r.info)('ICC profile not supported');
- break;
- case 1785737827:
- this.parseCodestream(e, a, a + c);
- break;
- case 1783636e3:
- 218793738 !== (0, i.readUint32)(e, a) && (0, r.warn)('Invalid JP2 signature');
- break;
- case 1783634458:
- case 1718909296:
- case 1920099697:
- case 1919251232:
- case 1768449138:
- break;
- default:
- const n = String.fromCharCode(
- (o >> 24) & 255,
- (o >> 16) & 255,
- (o >> 8) & 255,
- 255 & o,
- );
- (0, r.warn)(`Unsupported header type ${o} (${n}).`);
- }
- l && (a += c);
- }
- }
- parseImageProperties(e) {
- let t = e.getByte();
- for (; t >= 0; ) {
- const a = t;
- t = e.getByte();
- if (65361 === ((a << 8) | t)) {
- e.skip(4);
- const t = e.getInt32() >>> 0,
- a = e.getInt32() >>> 0,
- r = e.getInt32() >>> 0,
- i = e.getInt32() >>> 0;
- e.skip(16);
- const n = e.getUint16();
- this.width = t - r;
- this.height = a - i;
- this.componentsCount = n;
- this.bitsPerComponent = 8;
- return;
- }
- }
- throw new JpxError('No size marker found in JPX stream');
- }
- parseCodestream(e, t, a) {
- const n = {};
- let s = !1;
- try {
- let o = t;
- for (; o + 1 < a; ) {
- const t = (0, i.readUint16)(e, o);
- o += 2;
- let a,
- c,
- l,
- h,
- u,
- d,
- f = 0;
- switch (t) {
- case 65359:
- n.mainHeader = !0;
- break;
- case 65497:
- break;
- case 65361:
- f = (0, i.readUint16)(e, o);
- const g = {};
- g.Xsiz = (0, i.readUint32)(e, o + 4);
- g.Ysiz = (0, i.readUint32)(e, o + 8);
- g.XOsiz = (0, i.readUint32)(e, o + 12);
- g.YOsiz = (0, i.readUint32)(e, o + 16);
- g.XTsiz = (0, i.readUint32)(e, o + 20);
- g.YTsiz = (0, i.readUint32)(e, o + 24);
- g.XTOsiz = (0, i.readUint32)(e, o + 28);
- g.YTOsiz = (0, i.readUint32)(e, o + 32);
- const p = (0, i.readUint16)(e, o + 36);
- g.Csiz = p;
- const m = [];
- a = o + 38;
- for (let t = 0; t < p; t++) {
- const t = {
- precision: 1 + (127 & e[a]),
- isSigned: !!(128 & e[a]),
- XRsiz: e[a + 1],
- YRsiz: e[a + 2],
- };
- a += 3;
- calculateComponentDimensions(t, g);
- m.push(t);
- }
- n.SIZ = g;
- n.components = m;
- calculateTileGrids(n, m);
- n.QCC = [];
- n.COC = [];
- break;
- case 65372:
- f = (0, i.readUint16)(e, o);
- const b = {};
- a = o + 2;
- c = e[a++];
- switch (31 & c) {
- case 0:
- h = 8;
- u = !0;
- break;
- case 1:
- h = 16;
- u = !1;
- break;
- case 2:
- h = 16;
- u = !0;
- break;
- default:
- throw new Error('Invalid SQcd value ' + c);
- }
- b.noQuantization = 8 === h;
- b.scalarExpounded = u;
- b.guardBits = c >> 5;
- l = [];
- for (; a < f + o; ) {
- const t = {};
- if (8 === h) {
- t.epsilon = e[a++] >> 3;
- t.mu = 0;
- } else {
- t.epsilon = e[a] >> 3;
- t.mu = ((7 & e[a]) << 8) | e[a + 1];
- a += 2;
- }
- l.push(t);
- }
- b.SPqcds = l;
- if (n.mainHeader) n.QCD = b;
- else {
- n.currentTile.QCD = b;
- n.currentTile.QCC = [];
- }
- break;
- case 65373:
- f = (0, i.readUint16)(e, o);
- const y = {};
- a = o + 2;
- let w;
- if (n.SIZ.Csiz < 257) w = e[a++];
- else {
- w = (0, i.readUint16)(e, a);
- a += 2;
- }
- c = e[a++];
- switch (31 & c) {
- case 0:
- h = 8;
- u = !0;
- break;
- case 1:
- h = 16;
- u = !1;
- break;
- case 2:
- h = 16;
- u = !0;
- break;
- default:
- throw new Error('Invalid SQcd value ' + c);
- }
- y.noQuantization = 8 === h;
- y.scalarExpounded = u;
- y.guardBits = c >> 5;
- l = [];
- for (; a < f + o; ) {
- const t = {};
- if (8 === h) {
- t.epsilon = e[a++] >> 3;
- t.mu = 0;
- } else {
- t.epsilon = e[a] >> 3;
- t.mu = ((7 & e[a]) << 8) | e[a + 1];
- a += 2;
- }
- l.push(t);
- }
- y.SPqcds = l;
- n.mainHeader ? (n.QCC[w] = y) : (n.currentTile.QCC[w] = y);
- break;
- case 65362:
- f = (0, i.readUint16)(e, o);
- const S = {};
- a = o + 2;
- const x = e[a++];
- S.entropyCoderWithCustomPrecincts = !!(1 & x);
- S.sopMarkerUsed = !!(2 & x);
- S.ephMarkerUsed = !!(4 & x);
- S.progressionOrder = e[a++];
- S.layersCount = (0, i.readUint16)(e, a);
- a += 2;
- S.multipleComponentTransform = e[a++];
- S.decompositionLevelsCount = e[a++];
- S.xcb = 2 + (15 & e[a++]);
- S.ycb = 2 + (15 & e[a++]);
- const C = e[a++];
- S.selectiveArithmeticCodingBypass = !!(1 & C);
- S.resetContextProbabilities = !!(2 & C);
- S.terminationOnEachCodingPass = !!(4 & C);
- S.verticallyStripe = !!(8 & C);
- S.predictableTermination = !!(16 & C);
- S.segmentationSymbolUsed = !!(32 & C);
- S.reversibleTransformation = e[a++];
- if (S.entropyCoderWithCustomPrecincts) {
- const t = [];
- for (; a < f + o; ) {
- const r = e[a++];
- t.push({ PPx: 15 & r, PPy: r >> 4 });
- }
- S.precinctsSizes = t;
- }
- const k = [];
- S.selectiveArithmeticCodingBypass &&
- k.push('selectiveArithmeticCodingBypass');
- S.terminationOnEachCodingPass && k.push('terminationOnEachCodingPass');
- S.verticallyStripe && k.push('verticallyStripe');
- S.predictableTermination && k.push('predictableTermination');
- if (k.length > 0) {
- s = !0;
- (0, r.warn)(`JPX: Unsupported COD options (${k.join(', ')}).`);
- }
- if (n.mainHeader) n.COD = S;
- else {
- n.currentTile.COD = S;
- n.currentTile.COC = [];
- }
- break;
- case 65424:
- f = (0, i.readUint16)(e, o);
- d = {};
- d.index = (0, i.readUint16)(e, o + 2);
- d.length = (0, i.readUint32)(e, o + 4);
- d.dataEnd = d.length + o - 2;
- d.partIndex = e[o + 8];
- d.partsCount = e[o + 9];
- n.mainHeader = !1;
- if (0 === d.partIndex) {
- d.COD = n.COD;
- d.COC = n.COC.slice(0);
- d.QCD = n.QCD;
- d.QCC = n.QCC.slice(0);
- }
- n.currentTile = d;
- break;
- case 65427:
- d = n.currentTile;
- if (0 === d.partIndex) {
- initializeTile(n, d.index);
- buildPackets(n);
- }
- f = d.dataEnd - o;
- parseTilePackets(n, e, o, f);
- break;
- case 65363:
- (0, r.warn)('JPX: Codestream code 0xFF53 (COC) is not implemented.');
- case 65365:
- case 65367:
- case 65368:
- case 65380:
- f = (0, i.readUint16)(e, o);
- break;
- default:
- throw new Error('Unknown codestream code: ' + t.toString(16));
- }
- o += f;
- }
- } catch (e) {
- if (s || this.failOnCorruptedImage) throw new JpxError(e.message);
- (0, r.warn)(`JPX: Trying to recover from: "${e.message}".`);
- }
- this.tiles = (function transformComponents(e) {
- const t = e.SIZ,
- a = e.components,
- r = t.Csiz,
- i = [];
- for (let t = 0, n = e.tiles.length; t < n; t++) {
- const n = e.tiles[t],
- s = [];
- for (let t = 0; t < r; t++) s[t] = transformTile(e, n, t);
- const o = s[0],
- c = new Uint8ClampedArray(o.items.length * r),
- l = { left: o.left, top: o.top, width: o.width, height: o.height, items: c };
- let h,
- u,
- d,
- f,
- g,
- p,
- m,
- b = 0;
- if (n.codingStyleDefaultParameters.multipleComponentTransform) {
- const e = 4 === r,
- t = s[0].items,
- i = s[1].items,
- o = s[2].items,
- l = e ? s[3].items : null;
- h = a[0].precision - 8;
- u = 0.5 + (128 << h);
- const y = n.components[0],
- w = r - 3;
- f = t.length;
- if (y.codingStyleParameters.reversibleTransformation)
- for (d = 0; d < f; d++, b += w) {
- g = t[d] + u;
- p = i[d];
- m = o[d];
- const e = g - ((m + p) >> 2);
- c[b++] = (e + m) >> h;
- c[b++] = e >> h;
- c[b++] = (e + p) >> h;
- }
- else
- for (d = 0; d < f; d++, b += w) {
- g = t[d] + u;
- p = i[d];
- m = o[d];
- c[b++] = (g + 1.402 * m) >> h;
- c[b++] = (g - 0.34413 * p - 0.71414 * m) >> h;
- c[b++] = (g + 1.772 * p) >> h;
- }
- if (e) for (d = 0, b = 3; d < f; d++, b += 4) c[b] = (l[d] + u) >> h;
- } else
- for (let e = 0; e < r; e++) {
- const t = s[e].items;
- h = a[e].precision - 8;
- u = 0.5 + (128 << h);
- for (b = e, d = 0, f = t.length; d < f; d++) {
- c[b] = (t[d] + u) >> h;
- b += r;
- }
- }
- i.push(l);
- }
- return i;
- })(n);
- this.width = n.SIZ.Xsiz - n.SIZ.XOsiz;
- this.height = n.SIZ.Ysiz - n.SIZ.YOsiz;
- this.componentsCount = n.SIZ.Csiz;
- }
- };
- function calculateComponentDimensions(e, t) {
- e.x0 = Math.ceil(t.XOsiz / e.XRsiz);
- e.x1 = Math.ceil(t.Xsiz / e.XRsiz);
- e.y0 = Math.ceil(t.YOsiz / e.YRsiz);
- e.y1 = Math.ceil(t.Ysiz / e.YRsiz);
- e.width = e.x1 - e.x0;
- e.height = e.y1 - e.y0;
- }
- function calculateTileGrids(e, t) {
- const a = e.SIZ,
- r = [];
- let i;
- const n = Math.ceil((a.Xsiz - a.XTOsiz) / a.XTsiz),
- s = Math.ceil((a.Ysiz - a.YTOsiz) / a.YTsiz);
- for (let e = 0; e < s; e++)
- for (let t = 0; t < n; t++) {
- i = {};
- i.tx0 = Math.max(a.XTOsiz + t * a.XTsiz, a.XOsiz);
- i.ty0 = Math.max(a.YTOsiz + e * a.YTsiz, a.YOsiz);
- i.tx1 = Math.min(a.XTOsiz + (t + 1) * a.XTsiz, a.Xsiz);
- i.ty1 = Math.min(a.YTOsiz + (e + 1) * a.YTsiz, a.Ysiz);
- i.width = i.tx1 - i.tx0;
- i.height = i.ty1 - i.ty0;
- i.components = [];
- r.push(i);
- }
- e.tiles = r;
- for (let e = 0, n = a.Csiz; e < n; e++) {
- const a = t[e];
- for (let t = 0, n = r.length; t < n; t++) {
- const n = {};
- i = r[t];
- n.tcx0 = Math.ceil(i.tx0 / a.XRsiz);
- n.tcy0 = Math.ceil(i.ty0 / a.YRsiz);
- n.tcx1 = Math.ceil(i.tx1 / a.XRsiz);
- n.tcy1 = Math.ceil(i.ty1 / a.YRsiz);
- n.width = n.tcx1 - n.tcx0;
- n.height = n.tcy1 - n.tcy0;
- i.components[e] = n;
- }
- }
- }
- function getBlocksDimensions(e, t, a) {
- const r = t.codingStyleParameters,
- i = {};
- if (r.entropyCoderWithCustomPrecincts) {
- i.PPx = r.precinctsSizes[a].PPx;
- i.PPy = r.precinctsSizes[a].PPy;
- } else {
- i.PPx = 15;
- i.PPy = 15;
- }
- i.xcb_ = a > 0 ? Math.min(r.xcb, i.PPx - 1) : Math.min(r.xcb, i.PPx);
- i.ycb_ = a > 0 ? Math.min(r.ycb, i.PPy - 1) : Math.min(r.ycb, i.PPy);
- return i;
- }
- function buildPrecincts(e, t, a) {
- const r = 1 << a.PPx,
- i = 1 << a.PPy,
- n = 0 === t.resLevel,
- s = 1 << (a.PPx + (n ? 0 : -1)),
- o = 1 << (a.PPy + (n ? 0 : -1)),
- c = t.trx1 > t.trx0 ? Math.ceil(t.trx1 / r) - Math.floor(t.trx0 / r) : 0,
- l = t.try1 > t.try0 ? Math.ceil(t.try1 / i) - Math.floor(t.try0 / i) : 0,
- h = c * l;
- t.precinctParameters = {
- precinctWidth: r,
- precinctHeight: i,
- numprecinctswide: c,
- numprecinctshigh: l,
- numprecincts: h,
- precinctWidthInSubband: s,
- precinctHeightInSubband: o,
- };
- }
- function buildCodeblocks(e, t, a) {
- const r = a.xcb_,
- i = a.ycb_,
- n = 1 << r,
- s = 1 << i,
- o = t.tbx0 >> r,
- c = t.tby0 >> i,
- l = (t.tbx1 + n - 1) >> r,
- h = (t.tby1 + s - 1) >> i,
- u = t.resolution.precinctParameters,
- d = [],
- f = [];
- let g, p, m, b;
- for (p = c; p < h; p++)
- for (g = o; g < l; g++) {
- m = {
- cbx: g,
- cby: p,
- tbx0: n * g,
- tby0: s * p,
- tbx1: n * (g + 1),
- tby1: s * (p + 1),
- };
- m.tbx0_ = Math.max(t.tbx0, m.tbx0);
- m.tby0_ = Math.max(t.tby0, m.tby0);
- m.tbx1_ = Math.min(t.tbx1, m.tbx1);
- m.tby1_ = Math.min(t.tby1, m.tby1);
- b =
- Math.floor((m.tbx0_ - t.tbx0) / u.precinctWidthInSubband) +
- Math.floor((m.tby0_ - t.tby0) / u.precinctHeightInSubband) * u.numprecinctswide;
- m.precinctNumber = b;
- m.subbandType = t.type;
- m.Lblock = 3;
- if (m.tbx1_ <= m.tbx0_ || m.tby1_ <= m.tby0_) continue;
- d.push(m);
- let e = f[b];
- if (void 0 !== e) {
- g < e.cbxMin ? (e.cbxMin = g) : g > e.cbxMax && (e.cbxMax = g);
- p < e.cbyMin ? (e.cbxMin = p) : p > e.cbyMax && (e.cbyMax = p);
- } else f[b] = e = { cbxMin: g, cbyMin: p, cbxMax: g, cbyMax: p };
- m.precinct = e;
- }
- t.codeblockParameters = {
- codeblockWidth: r,
- codeblockHeight: i,
- numcodeblockwide: l - o + 1,
- numcodeblockhigh: h - c + 1,
- };
- t.codeblocks = d;
- t.precincts = f;
- }
- function createPacket(e, t, a) {
- const r = [],
- i = e.subbands;
- for (let e = 0, a = i.length; e < a; e++) {
- const a = i[e].codeblocks;
- for (let e = 0, i = a.length; e < i; e++) {
- const i = a[e];
- i.precinctNumber === t && r.push(i);
- }
- }
- return { layerNumber: a, codeblocks: r };
- }
- function LayerResolutionComponentPositionIterator(e) {
- const t = e.SIZ,
- a = e.currentTile.index,
- r = e.tiles[a],
- i = r.codingStyleDefaultParameters.layersCount,
- n = t.Csiz;
- let s = 0;
- for (let e = 0; e < n; e++)
- s = Math.max(s, r.components[e].codingStyleParameters.decompositionLevelsCount);
- let o = 0,
- c = 0,
- l = 0,
- h = 0;
- this.nextPacket = function JpxImage_nextPacket() {
- for (; o < i; o++) {
- for (; c <= s; c++) {
- for (; l < n; l++) {
- const e = r.components[l];
- if (c > e.codingStyleParameters.decompositionLevelsCount) continue;
- const t = e.resolutions[c],
- a = t.precinctParameters.numprecincts;
- for (; h < a; ) {
- const e = createPacket(t, h, o);
- h++;
- return e;
- }
- h = 0;
- }
- l = 0;
- }
- c = 0;
- }
- throw new JpxError('Out of packets');
- };
- }
- function ResolutionLayerComponentPositionIterator(e) {
- const t = e.SIZ,
- a = e.currentTile.index,
- r = e.tiles[a],
- i = r.codingStyleDefaultParameters.layersCount,
- n = t.Csiz;
- let s = 0;
- for (let e = 0; e < n; e++)
- s = Math.max(s, r.components[e].codingStyleParameters.decompositionLevelsCount);
- let o = 0,
- c = 0,
- l = 0,
- h = 0;
- this.nextPacket = function JpxImage_nextPacket() {
- for (; o <= s; o++) {
- for (; c < i; c++) {
- for (; l < n; l++) {
- const e = r.components[l];
- if (o > e.codingStyleParameters.decompositionLevelsCount) continue;
- const t = e.resolutions[o],
- a = t.precinctParameters.numprecincts;
- for (; h < a; ) {
- const e = createPacket(t, h, c);
- h++;
- return e;
- }
- h = 0;
- }
- l = 0;
- }
- c = 0;
- }
- throw new JpxError('Out of packets');
- };
- }
- function ResolutionPositionComponentLayerIterator(e) {
- const t = e.SIZ,
- a = e.currentTile.index,
- r = e.tiles[a],
- i = r.codingStyleDefaultParameters.layersCount,
- n = t.Csiz;
- let s,
- o,
- c,
- l,
- h = 0;
- for (c = 0; c < n; c++) {
- const e = r.components[c];
- h = Math.max(h, e.codingStyleParameters.decompositionLevelsCount);
- }
- const u = new Int32Array(h + 1);
- for (o = 0; o <= h; ++o) {
- let e = 0;
- for (c = 0; c < n; ++c) {
- const t = r.components[c].resolutions;
- o < t.length && (e = Math.max(e, t[o].precinctParameters.numprecincts));
- }
- u[o] = e;
- }
- s = 0;
- o = 0;
- c = 0;
- l = 0;
- this.nextPacket = function JpxImage_nextPacket() {
- for (; o <= h; o++) {
- for (; l < u[o]; l++) {
- for (; c < n; c++) {
- const e = r.components[c];
- if (o > e.codingStyleParameters.decompositionLevelsCount) continue;
- const t = e.resolutions[o],
- a = t.precinctParameters.numprecincts;
- if (!(l >= a)) {
- for (; s < i; ) {
- const e = createPacket(t, l, s);
- s++;
- return e;
- }
- s = 0;
- }
- }
- c = 0;
- }
- l = 0;
- }
- throw new JpxError('Out of packets');
- };
- }
- function PositionComponentResolutionLayerIterator(e) {
- const t = e.SIZ,
- a = e.currentTile.index,
- r = e.tiles[a],
- i = r.codingStyleDefaultParameters.layersCount,
- n = t.Csiz,
- s = getPrecinctSizesInImageScale(r),
- o = s;
- let c = 0,
- l = 0,
- h = 0,
- u = 0,
- d = 0;
- this.nextPacket = function JpxImage_nextPacket() {
- for (; d < o.maxNumHigh; d++) {
- for (; u < o.maxNumWide; u++) {
- for (; h < n; h++) {
- const e = r.components[h],
- t = e.codingStyleParameters.decompositionLevelsCount;
- for (; l <= t; l++) {
- const t = e.resolutions[l],
- a = s.components[h].resolutions[l],
- r = getPrecinctIndexIfExist(u, d, a, o, t);
- if (null !== r) {
- for (; c < i; ) {
- const e = createPacket(t, r, c);
- c++;
- return e;
- }
- c = 0;
- }
- }
- l = 0;
- }
- h = 0;
- }
- u = 0;
- }
- throw new JpxError('Out of packets');
- };
- }
- function ComponentPositionResolutionLayerIterator(e) {
- const t = e.SIZ,
- a = e.currentTile.index,
- r = e.tiles[a],
- i = r.codingStyleDefaultParameters.layersCount,
- n = t.Csiz,
- s = getPrecinctSizesInImageScale(r);
- let o = 0,
- c = 0,
- l = 0,
- h = 0,
- u = 0;
- this.nextPacket = function JpxImage_nextPacket() {
- for (; l < n; ++l) {
- const e = r.components[l],
- t = s.components[l],
- a = e.codingStyleParameters.decompositionLevelsCount;
- for (; u < t.maxNumHigh; u++) {
- for (; h < t.maxNumWide; h++) {
- for (; c <= a; c++) {
- const a = e.resolutions[c],
- r = t.resolutions[c],
- n = getPrecinctIndexIfExist(h, u, r, t, a);
- if (null !== n) {
- for (; o < i; ) {
- const e = createPacket(a, n, o);
- o++;
- return e;
- }
- o = 0;
- }
- }
- c = 0;
- }
- h = 0;
- }
- u = 0;
- }
- throw new JpxError('Out of packets');
- };
- }
- function getPrecinctIndexIfExist(e, t, a, r, i) {
- const n = e * r.minWidth,
- s = t * r.minHeight;
- if (n % a.width != 0 || s % a.height != 0) return null;
- const o = (s / a.width) * i.precinctParameters.numprecinctswide;
- return n / a.height + o;
- }
- function getPrecinctSizesInImageScale(e) {
- const t = e.components.length;
- let a = Number.MAX_VALUE,
- r = Number.MAX_VALUE,
- i = 0,
- n = 0;
- const s = new Array(t);
- for (let o = 0; o < t; o++) {
- const t = e.components[o],
- c = t.codingStyleParameters.decompositionLevelsCount,
- l = new Array(c + 1);
- let h = Number.MAX_VALUE,
- u = Number.MAX_VALUE,
- d = 0,
- f = 0,
- g = 1;
- for (let e = c; e >= 0; --e) {
- const a = t.resolutions[e],
- r = g * a.precinctParameters.precinctWidth,
- i = g * a.precinctParameters.precinctHeight;
- h = Math.min(h, r);
- u = Math.min(u, i);
- d = Math.max(d, a.precinctParameters.numprecinctswide);
- f = Math.max(f, a.precinctParameters.numprecinctshigh);
- l[e] = { width: r, height: i };
- g <<= 1;
- }
- a = Math.min(a, h);
- r = Math.min(r, u);
- i = Math.max(i, d);
- n = Math.max(n, f);
- s[o] = { resolutions: l, minWidth: h, minHeight: u, maxNumWide: d, maxNumHigh: f };
- }
- return { components: s, minWidth: a, minHeight: r, maxNumWide: i, maxNumHigh: n };
- }
- function buildPackets(e) {
- const t = e.SIZ,
- a = e.currentTile.index,
- r = e.tiles[a],
- i = t.Csiz;
- for (let e = 0; e < i; e++) {
- const t = r.components[e],
- a = t.codingStyleParameters.decompositionLevelsCount,
- i = [],
- n = [];
- for (let e = 0; e <= a; e++) {
- const r = getBlocksDimensions(0, t, e),
- s = {},
- o = 1 << (a - e);
- s.trx0 = Math.ceil(t.tcx0 / o);
- s.try0 = Math.ceil(t.tcy0 / o);
- s.trx1 = Math.ceil(t.tcx1 / o);
- s.try1 = Math.ceil(t.tcy1 / o);
- s.resLevel = e;
- buildPrecincts(0, s, r);
- i.push(s);
- let c;
- if (0 === e) {
- c = {};
- c.type = 'LL';
- c.tbx0 = Math.ceil(t.tcx0 / o);
- c.tby0 = Math.ceil(t.tcy0 / o);
- c.tbx1 = Math.ceil(t.tcx1 / o);
- c.tby1 = Math.ceil(t.tcy1 / o);
- c.resolution = s;
- buildCodeblocks(0, c, r);
- n.push(c);
- s.subbands = [c];
- } else {
- const i = 1 << (a - e + 1),
- o = [];
- c = {};
- c.type = 'HL';
- c.tbx0 = Math.ceil(t.tcx0 / i - 0.5);
- c.tby0 = Math.ceil(t.tcy0 / i);
- c.tbx1 = Math.ceil(t.tcx1 / i - 0.5);
- c.tby1 = Math.ceil(t.tcy1 / i);
- c.resolution = s;
- buildCodeblocks(0, c, r);
- n.push(c);
- o.push(c);
- c = {};
- c.type = 'LH';
- c.tbx0 = Math.ceil(t.tcx0 / i);
- c.tby0 = Math.ceil(t.tcy0 / i - 0.5);
- c.tbx1 = Math.ceil(t.tcx1 / i);
- c.tby1 = Math.ceil(t.tcy1 / i - 0.5);
- c.resolution = s;
- buildCodeblocks(0, c, r);
- n.push(c);
- o.push(c);
- c = {};
- c.type = 'HH';
- c.tbx0 = Math.ceil(t.tcx0 / i - 0.5);
- c.tby0 = Math.ceil(t.tcy0 / i - 0.5);
- c.tbx1 = Math.ceil(t.tcx1 / i - 0.5);
- c.tby1 = Math.ceil(t.tcy1 / i - 0.5);
- c.resolution = s;
- buildCodeblocks(0, c, r);
- n.push(c);
- o.push(c);
- s.subbands = o;
- }
- }
- t.resolutions = i;
- t.subbands = n;
- }
- const n = r.codingStyleDefaultParameters.progressionOrder;
- switch (n) {
- case 0:
- r.packetsIterator = new LayerResolutionComponentPositionIterator(e);
- break;
- case 1:
- r.packetsIterator = new ResolutionLayerComponentPositionIterator(e);
- break;
- case 2:
- r.packetsIterator = new ResolutionPositionComponentLayerIterator(e);
- break;
- case 3:
- r.packetsIterator = new PositionComponentResolutionLayerIterator(e);
- break;
- case 4:
- r.packetsIterator = new ComponentPositionResolutionLayerIterator(e);
- break;
- default:
- throw new JpxError(`Unsupported progression order ${n}`);
- }
- }
- function parseTilePackets(e, t, a, r) {
- let n,
- s = 0,
- o = 0,
- c = !1;
- function readBits(e) {
- for (; o < e; ) {
- const e = t[a + s];
- s++;
- if (c) {
- n = (n << 7) | e;
- o += 7;
- c = !1;
- } else {
- n = (n << 8) | e;
- o += 8;
- }
- 255 === e && (c = !0);
- }
- o -= e;
- return (n >>> o) & ((1 << e) - 1);
- }
- function skipMarkerIfEqual(e) {
- if (255 === t[a + s - 1] && t[a + s] === e) {
- skipBytes(1);
- return !0;
- }
- if (255 === t[a + s] && t[a + s + 1] === e) {
- skipBytes(2);
- return !0;
- }
- return !1;
- }
- function skipBytes(e) {
- s += e;
- }
- function alignToByte() {
- o = 0;
- if (c) {
- s++;
- c = !1;
- }
- }
- function readCodingpasses() {
- if (0 === readBits(1)) return 1;
- if (0 === readBits(1)) return 2;
- let e = readBits(2);
- if (e < 3) return e + 3;
- e = readBits(5);
- if (e < 31) return e + 6;
- e = readBits(7);
- return e + 37;
- }
- const l = e.currentTile.index,
- h = e.tiles[l],
- u = e.COD.sopMarkerUsed,
- d = e.COD.ephMarkerUsed,
- f = h.packetsIterator;
- for (; s < r; ) {
- alignToByte();
- u && skipMarkerIfEqual(145) && skipBytes(4);
- const e = f.nextPacket();
- if (!readBits(1)) continue;
- const r = e.layerNumber,
- n = [];
- let o;
- for (let t = 0, a = e.codeblocks.length; t < a; t++) {
- o = e.codeblocks[t];
- let a = o.precinct;
- const s = o.cbx - a.cbxMin,
- c = o.cby - a.cbyMin;
- let l,
- h,
- u = !1,
- d = !1;
- if (void 0 !== o.included) u = !!readBits(1);
- else {
- a = o.precinct;
- let e;
- if (void 0 !== a.inclusionTree) e = a.inclusionTree;
- else {
- const t = a.cbxMax - a.cbxMin + 1,
- i = a.cbyMax - a.cbyMin + 1;
- e = new InclusionTree(t, i, r);
- h = new TagTree(t, i);
- a.inclusionTree = e;
- a.zeroBitPlanesTree = h;
- for (let e = 0; e < r; e++)
- if (0 !== readBits(1)) throw new JpxError('Invalid tag tree');
- }
- if (e.reset(s, c, r))
- for (;;) {
- if (!readBits(1)) {
- e.incrementValue(r);
- break;
- }
- l = !e.nextLevel();
- if (l) {
- o.included = !0;
- u = d = !0;
- break;
- }
- }
- }
- if (!u) continue;
- if (d) {
- h = a.zeroBitPlanesTree;
- h.reset(s, c);
- for (;;)
- if (readBits(1)) {
- l = !h.nextLevel();
- if (l) break;
- } else h.incrementValue();
- o.zeroBitPlanes = h.value;
- }
- const f = readCodingpasses();
- for (; readBits(1); ) o.Lblock++;
- const g = (0, i.log2)(f),
- p = readBits((f < 1 << g ? g - 1 : g) + o.Lblock);
- n.push({ codeblock: o, codingpasses: f, dataLength: p });
- }
- alignToByte();
- d && skipMarkerIfEqual(146);
- for (; n.length > 0; ) {
- const e = n.shift();
- o = e.codeblock;
- void 0 === o.data && (o.data = []);
- o.data.push({
- data: t,
- start: a + s,
- end: a + s + e.dataLength,
- codingpasses: e.codingpasses,
- });
- s += e.dataLength;
- }
- }
- return s;
- }
- function copyCoefficients(e, t, a, r, i, s, o, c, l) {
- const h = r.tbx0,
- u = r.tby0,
- d = r.tbx1 - r.tbx0,
- f = r.codeblocks,
- g = 'H' === r.type.charAt(0) ? 1 : 0,
- p = 'H' === r.type.charAt(1) ? t : 0;
- for (let a = 0, m = f.length; a < m; ++a) {
- const m = f[a],
- b = m.tbx1_ - m.tbx0_,
- y = m.tby1_ - m.tby0_;
- if (0 === b || 0 === y) continue;
- if (void 0 === m.data) continue;
- const w = new BitModel(b, y, m.subbandType, m.zeroBitPlanes, s);
- let S = 2;
- const x = m.data;
- let C,
- k,
- v,
- F = 0,
- O = 0;
- for (C = 0, k = x.length; C < k; C++) {
- v = x[C];
- F += v.end - v.start;
- O += v.codingpasses;
- }
- const T = new Uint8Array(F);
- let M = 0;
- for (C = 0, k = x.length; C < k; C++) {
- v = x[C];
- const e = v.data.subarray(v.start, v.end);
- T.set(e, M);
- M += e.length;
- }
- const E = new n.ArithmeticDecoder(T, 0, F);
- w.setDecoder(E);
- for (C = 0; C < O; C++) {
- switch (S) {
- case 0:
- w.runSignificancePropagationPass();
- break;
- case 1:
- w.runMagnitudeRefinementPass();
- break;
- case 2:
- w.runCleanupPass();
- c && w.checkSegmentationSymbol();
- }
- l && w.reset();
- S = (S + 1) % 3;
- }
- let D = m.tbx0_ - h + (m.tby0_ - u) * d;
- const N = w.coefficentsSign,
- R = w.coefficentsMagnitude,
- L = w.bitsDecoded,
- _ = o ? 0 : 0.5;
- let $, j, U;
- M = 0;
- const X = 'LL' !== r.type;
- for (C = 0; C < y; C++) {
- const a = 2 * ((D / d) | 0) * (t - d) + g + p;
- for ($ = 0; $ < b; $++) {
- j = R[M];
- if (0 !== j) {
- j = (j + _) * i;
- 0 !== N[M] && (j = -j);
- U = L[M];
- const t = X ? a + (D << 1) : D;
- e[t] = o && U >= s ? j : j * (1 << (s - U));
- }
- D++;
- M++;
- }
- D += d - b;
- }
- }
- }
- function transformTile(e, t, a) {
- const r = t.components[a],
- i = r.codingStyleParameters,
- n = r.quantizationParameters,
- o = i.decompositionLevelsCount,
- c = n.SPqcds,
- l = n.scalarExpounded,
- h = n.guardBits,
- u = i.segmentationSymbolUsed,
- d = i.resetContextProbabilities,
- f = e.components[a].precision,
- g = i.reversibleTransformation,
- p = g ? new ReversibleTransform() : new IrreversibleTransform(),
- m = [];
- let b = 0;
- for (let e = 0; e <= o; e++) {
- const t = r.resolutions[e],
- a = t.trx1 - t.trx0,
- i = t.try1 - t.try0,
- n = new Float32Array(a * i);
- for (let r = 0, i = t.subbands.length; r < i; r++) {
- let i, o;
- if (l) {
- i = c[b].mu;
- o = c[b].epsilon;
- b++;
- } else {
- i = c[0].mu;
- o = c[0].epsilon + (e > 0 ? 1 - e : 0);
- }
- const p = t.subbands[r],
- m = s[p.type];
- copyCoefficients(
- n,
- a,
- 0,
- p,
- g ? 1 : 2 ** (f + m - o) * (1 + i / 2048),
- h + o - 1,
- g,
- u,
- d,
- );
- }
- m.push({ width: a, height: i, items: n });
- }
- const y = p.calculate(m, r.tcx0, r.tcy0);
- return { left: r.tcx0, top: r.tcy0, width: y.width, height: y.height, items: y.items };
- }
- function initializeTile(e, t) {
- const a = e.SIZ.Csiz,
- r = e.tiles[t];
- for (let t = 0; t < a; t++) {
- const a = r.components[t],
- i = void 0 !== e.currentTile.QCC[t] ? e.currentTile.QCC[t] : e.currentTile.QCD;
- a.quantizationParameters = i;
- const n = void 0 !== e.currentTile.COC[t] ? e.currentTile.COC[t] : e.currentTile.COD;
- a.codingStyleParameters = n;
- }
- r.codingStyleDefaultParameters = e.currentTile.COD;
- }
- class TagTree {
- constructor(e, t) {
- const a = (0, i.log2)(Math.max(e, t)) + 1;
- this.levels = [];
- for (let r = 0; r < a; r++) {
- const a = { width: e, height: t, items: [] };
- this.levels.push(a);
- e = Math.ceil(e / 2);
- t = Math.ceil(t / 2);
- }
- }
- reset(e, t) {
- let a,
- r = 0,
- i = 0;
- for (; r < this.levels.length; ) {
- a = this.levels[r];
- const n = e + t * a.width;
- if (void 0 !== a.items[n]) {
- i = a.items[n];
- break;
- }
- a.index = n;
- e >>= 1;
- t >>= 1;
- r++;
- }
- r--;
- a = this.levels[r];
- a.items[a.index] = i;
- this.currentLevel = r;
- delete this.value;
- }
- incrementValue() {
- const e = this.levels[this.currentLevel];
- e.items[e.index]++;
- }
- nextLevel() {
- let e = this.currentLevel,
- t = this.levels[e];
- const a = t.items[t.index];
- e--;
- if (e < 0) {
- this.value = a;
- return !1;
- }
- this.currentLevel = e;
- t = this.levels[e];
- t.items[t.index] = a;
- return !0;
- }
- }
- class InclusionTree {
- constructor(e, t, a) {
- const r = (0, i.log2)(Math.max(e, t)) + 1;
- this.levels = [];
- for (let i = 0; i < r; i++) {
- const r = new Uint8Array(e * t);
- for (let e = 0, t = r.length; e < t; e++) r[e] = a;
- const i = { width: e, height: t, items: r };
- this.levels.push(i);
- e = Math.ceil(e / 2);
- t = Math.ceil(t / 2);
- }
- }
- reset(e, t, a) {
- let r = 0;
- for (; r < this.levels.length; ) {
- const i = this.levels[r],
- n = e + t * i.width;
- i.index = n;
- const s = i.items[n];
- if (255 === s) break;
- if (s > a) {
- this.currentLevel = r;
- this.propagateValues();
- return !1;
- }
- e >>= 1;
- t >>= 1;
- r++;
- }
- this.currentLevel = r - 1;
- return !0;
- }
- incrementValue(e) {
- const t = this.levels[this.currentLevel];
- t.items[t.index] = e + 1;
- this.propagateValues();
- }
- propagateValues() {
- let e = this.currentLevel,
- t = this.levels[e];
- const a = t.items[t.index];
- for (; --e >= 0; ) {
- t = this.levels[e];
- t.items[t.index] = a;
- }
- }
- nextLevel() {
- let e = this.currentLevel,
- t = this.levels[e];
- const a = t.items[t.index];
- t.items[t.index] = 255;
- e--;
- if (e < 0) return !1;
- this.currentLevel = e;
- t = this.levels[e];
- t.items[t.index] = a;
- return !0;
- }
- }
- class BitModel {
- static UNIFORM_CONTEXT = 17;
- static RUNLENGTH_CONTEXT = 18;
- static LLAndLHContextsLabel = new Uint8Array([
- 0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0,
- 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7,
- 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8,
- ]);
- static HLContextLabel = new Uint8Array([
- 0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0,
- 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8,
- 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8,
- ]);
- static HHContextLabel = new Uint8Array([
- 0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, 5, 5, 0, 0,
- 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8,
- 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8,
- ]);
- constructor(e, t, a, r, i) {
- this.width = e;
- this.height = t;
- let n;
- n =
- 'HH' === a
- ? BitModel.HHContextLabel
- : 'HL' === a
- ? BitModel.HLContextLabel
- : BitModel.LLAndLHContextsLabel;
- this.contextLabelTable = n;
- const s = e * t;
- this.neighborsSignificance = new Uint8Array(s);
- this.coefficentsSign = new Uint8Array(s);
- let o;
- o = i > 14 ? new Uint32Array(s) : i > 6 ? new Uint16Array(s) : new Uint8Array(s);
- this.coefficentsMagnitude = o;
- this.processingFlags = new Uint8Array(s);
- const c = new Uint8Array(s);
- if (0 !== r) for (let e = 0; e < s; e++) c[e] = r;
- this.bitsDecoded = c;
- this.reset();
- }
- setDecoder(e) {
- this.decoder = e;
- }
- reset() {
- this.contexts = new Int8Array(19);
- this.contexts[0] = 8;
- this.contexts[BitModel.UNIFORM_CONTEXT] = 92;
- this.contexts[BitModel.RUNLENGTH_CONTEXT] = 6;
- }
- setNeighborsSignificance(e, t, a) {
- const r = this.neighborsSignificance,
- i = this.width,
- n = this.height,
- s = t > 0,
- o = t + 1 < i;
- let c;
- if (e > 0) {
- c = a - i;
- s && (r[c - 1] += 16);
- o && (r[c + 1] += 16);
- r[c] += 4;
- }
- if (e + 1 < n) {
- c = a + i;
- s && (r[c - 1] += 16);
- o && (r[c + 1] += 16);
- r[c] += 4;
- }
- s && (r[a - 1] += 1);
- o && (r[a + 1] += 1);
- r[a] |= 128;
- }
- runSignificancePropagationPass() {
- const e = this.decoder,
- t = this.width,
- a = this.height,
- r = this.coefficentsMagnitude,
- i = this.coefficentsSign,
- n = this.neighborsSignificance,
- s = this.processingFlags,
- o = this.contexts,
- c = this.contextLabelTable,
- l = this.bitsDecoded;
- for (let h = 0; h < a; h += 4)
- for (let u = 0; u < t; u++) {
- let d = h * t + u;
- for (let f = 0; f < 4; f++, d += t) {
- const t = h + f;
- if (t >= a) break;
- s[d] &= -2;
- if (r[d] || !n[d]) continue;
- const g = c[n[d]];
- if (e.readBit(o, g)) {
- const e = this.decodeSignBit(t, u, d);
- i[d] = e;
- r[d] = 1;
- this.setNeighborsSignificance(t, u, d);
- s[d] |= 2;
- }
- l[d]++;
- s[d] |= 1;
- }
- }
- }
- decodeSignBit(e, t, a) {
- const r = this.width,
- i = this.height,
- n = this.coefficentsMagnitude,
- s = this.coefficentsSign;
- let o, c, l, h, u, d;
- h = t > 0 && 0 !== n[a - 1];
- if (t + 1 < r && 0 !== n[a + 1]) {
- l = s[a + 1];
- if (h) {
- c = s[a - 1];
- o = 1 - l - c;
- } else o = 1 - l - l;
- } else if (h) {
- c = s[a - 1];
- o = 1 - c - c;
- } else o = 0;
- const f = 3 * o;
- h = e > 0 && 0 !== n[a - r];
- if (e + 1 < i && 0 !== n[a + r]) {
- l = s[a + r];
- if (h) {
- c = s[a - r];
- o = 1 - l - c + f;
- } else o = 1 - l - l + f;
- } else if (h) {
- c = s[a - r];
- o = 1 - c - c + f;
- } else o = f;
- if (o >= 0) {
- u = 9 + o;
- d = this.decoder.readBit(this.contexts, u);
- } else {
- u = 9 - o;
- d = 1 ^ this.decoder.readBit(this.contexts, u);
- }
- return d;
- }
- runMagnitudeRefinementPass() {
- const e = this.decoder,
- t = this.width,
- a = this.height,
- r = this.coefficentsMagnitude,
- i = this.neighborsSignificance,
- n = this.contexts,
- s = this.bitsDecoded,
- o = this.processingFlags,
- c = t * a,
- l = 4 * t;
- for (let a, h = 0; h < c; h = a) {
- a = Math.min(c, h + l);
- for (let c = 0; c < t; c++)
- for (let l = h + c; l < a; l += t) {
- if (!r[l] || 0 != (1 & o[l])) continue;
- let t = 16;
- if (0 != (2 & o[l])) {
- o[l] ^= 2;
- t = 0 === (127 & i[l]) ? 15 : 14;
- }
- const a = e.readBit(n, t);
- r[l] = (r[l] << 1) | a;
- s[l]++;
- o[l] |= 1;
- }
- }
- }
- runCleanupPass() {
- const e = this.decoder,
- t = this.width,
- a = this.height,
- r = this.neighborsSignificance,
- i = this.coefficentsMagnitude,
- n = this.coefficentsSign,
- s = this.contexts,
- o = this.contextLabelTable,
- c = this.bitsDecoded,
- l = this.processingFlags,
- h = t,
- u = 2 * t,
- d = 3 * t;
- let f;
- for (let g = 0; g < a; g = f) {
- f = Math.min(g + 4, a);
- const p = g * t,
- m = g + 3 < a;
- for (let a = 0; a < t; a++) {
- const b = p + a;
- let y,
- w = 0,
- S = b,
- x = g;
- if (
- m &&
- 0 === l[b] &&
- 0 === l[b + h] &&
- 0 === l[b + u] &&
- 0 === l[b + d] &&
- 0 === r[b] &&
- 0 === r[b + h] &&
- 0 === r[b + u] &&
- 0 === r[b + d]
- ) {
- if (!e.readBit(s, BitModel.RUNLENGTH_CONTEXT)) {
- c[b]++;
- c[b + h]++;
- c[b + u]++;
- c[b + d]++;
- continue;
- }
- w =
- (e.readBit(s, BitModel.UNIFORM_CONTEXT) << 1) |
- e.readBit(s, BitModel.UNIFORM_CONTEXT);
- if (0 !== w) {
- x = g + w;
- S += w * t;
- }
- y = this.decodeSignBit(x, a, S);
- n[S] = y;
- i[S] = 1;
- this.setNeighborsSignificance(x, a, S);
- l[S] |= 2;
- S = b;
- for (let e = g; e <= x; e++, S += t) c[S]++;
- w++;
- }
- for (x = g + w; x < f; x++, S += t) {
- if (i[S] || 0 != (1 & l[S])) continue;
- const t = o[r[S]];
- if (1 === e.readBit(s, t)) {
- y = this.decodeSignBit(x, a, S);
- n[S] = y;
- i[S] = 1;
- this.setNeighborsSignificance(x, a, S);
- l[S] |= 2;
- }
- c[S]++;
- }
- }
- }
- }
- checkSegmentationSymbol() {
- const e = this.decoder,
- t = this.contexts;
- if (
- 10 !==
- ((e.readBit(t, BitModel.UNIFORM_CONTEXT) << 3) |
- (e.readBit(t, BitModel.UNIFORM_CONTEXT) << 2) |
- (e.readBit(t, BitModel.UNIFORM_CONTEXT) << 1) |
- e.readBit(t, BitModel.UNIFORM_CONTEXT))
- )
- throw new JpxError('Invalid segmentation symbol');
- }
- }
- class Transform {
- constructor() {
- this.constructor === Transform && (0, r.unreachable)('Cannot initialize Transform.');
- }
- calculate(e, t, a) {
- let r = e[0];
- for (let i = 1, n = e.length; i < n; i++) r = this.iterate(r, e[i], t, a);
- return r;
- }
- extend(e, t, a) {
- let r = t - 1,
- i = t + 1,
- n = t + a - 2,
- s = t + a;
- e[r--] = e[i++];
- e[s++] = e[n--];
- e[r--] = e[i++];
- e[s++] = e[n--];
- e[r--] = e[i++];
- e[s++] = e[n--];
- e[r] = e[i];
- e[s] = e[n];
- }
- filter(e, t, a) {
- (0, r.unreachable)('Abstract method `filter` called');
- }
- iterate(e, t, a, r) {
- const i = e.width,
- n = e.height;
- let s = e.items;
- const o = t.width,
- c = t.height,
- l = t.items;
- let h, u, d, f, g, p;
- for (d = 0, h = 0; h < n; h++) {
- f = 2 * h * o;
- for (u = 0; u < i; u++, d++, f += 2) l[f] = s[d];
- }
- s = e.items = null;
- const m = new Float32Array(o + 8);
- if (1 === o) {
- if (0 != (1 & a)) for (p = 0, d = 0; p < c; p++, d += o) l[d] *= 0.5;
- } else
- for (p = 0, d = 0; p < c; p++, d += o) {
- m.set(l.subarray(d, d + o), 4);
- this.extend(m, 4, o);
- this.filter(m, 4, o);
- l.set(m.subarray(4, 4 + o), d);
- }
- let b = 16;
- const y = [];
- for (h = 0; h < b; h++) y.push(new Float32Array(c + 8));
- let w,
- S = 0;
- e = 4 + c;
- if (1 === c) {
- if (0 != (1 & r)) for (g = 0; g < o; g++) l[g] *= 0.5;
- } else
- for (g = 0; g < o; g++) {
- if (0 === S) {
- b = Math.min(o - g, b);
- for (d = g, f = 4; f < e; d += o, f++)
- for (w = 0; w < b; w++) y[w][f] = l[d + w];
- S = b;
- }
- S--;
- const t = y[S];
- this.extend(t, 4, c);
- this.filter(t, 4, c);
- if (0 === S) {
- d = g - b + 1;
- for (f = 4; f < e; d += o, f++) for (w = 0; w < b; w++) l[d + w] = y[w][f];
- }
- }
- return { width: o, height: c, items: l };
- }
- }
- class IrreversibleTransform extends Transform {
- filter(e, t, a) {
- const r = a >> 1;
- let i, n, s, o;
- const c = -1.586134342059924,
- l = -0.052980118572961,
- h = 0.882911075530934,
- u = 0.443506852043971,
- d = 1.230174104914001;
- i = (t |= 0) - 3;
- for (n = r + 4; n--; i += 2) e[i] *= 0.8128930661159609;
- i = t - 2;
- s = u * e[i - 1];
- for (n = r + 3; n--; i += 2) {
- o = u * e[i + 1];
- e[i] = d * e[i] - s - o;
- if (!n--) break;
- i += 2;
- s = u * e[i + 1];
- e[i] = d * e[i] - s - o;
- }
- i = t - 1;
- s = h * e[i - 1];
- for (n = r + 2; n--; i += 2) {
- o = h * e[i + 1];
- e[i] -= s + o;
- if (!n--) break;
- i += 2;
- s = h * e[i + 1];
- e[i] -= s + o;
- }
- i = t;
- s = l * e[i - 1];
- for (n = r + 1; n--; i += 2) {
- o = l * e[i + 1];
- e[i] -= s + o;
- if (!n--) break;
- i += 2;
- s = l * e[i + 1];
- e[i] -= s + o;
- }
- if (0 !== r) {
- i = t + 1;
- s = c * e[i - 1];
- for (n = r; n--; i += 2) {
- o = c * e[i + 1];
- e[i] -= s + o;
- if (!n--) break;
- i += 2;
- s = c * e[i + 1];
- e[i] -= s + o;
- }
- }
- }
- }
- class ReversibleTransform extends Transform {
- filter(e, t, a) {
- const r = a >> 1;
- let i, n;
- for (i = t |= 0, n = r + 1; n--; i += 2) e[i] -= (e[i - 1] + e[i + 1] + 2) >> 2;
- for (i = t + 1, n = r; n--; i += 2) e[i] += (e[i - 1] + e[i + 1]) >> 1;
- }
- }
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.LZWStream = void 0;
- var r = a(18);
- class LZWStream extends r.DecodeStream {
- constructor(e, t, a) {
- super(t);
- this.str = e;
- this.dict = e.dict;
- this.cachedData = 0;
- this.bitsCached = 0;
- const r = 4096,
- i = {
- earlyChange: a,
- codeLength: 9,
- nextCode: 258,
- dictionaryValues: new Uint8Array(r),
- dictionaryLengths: new Uint16Array(r),
- dictionaryPrevCodes: new Uint16Array(r),
- currentSequence: new Uint8Array(r),
- currentSequenceLength: 0,
- };
- for (let e = 0; e < 256; ++e) {
- i.dictionaryValues[e] = e;
- i.dictionaryLengths[e] = 1;
- }
- this.lzwState = i;
- }
- readBits(e) {
- let t = this.bitsCached,
- a = this.cachedData;
- for (; t < e; ) {
- const e = this.str.getByte();
- if (-1 === e) {
- this.eof = !0;
- return null;
- }
- a = (a << 8) | e;
- t += 8;
- }
- this.bitsCached = t -= e;
- this.cachedData = a;
- this.lastCode = null;
- return (a >>> t) & ((1 << e) - 1);
- }
- readBlock() {
- let e,
- t,
- a,
- r = 1024;
- const i = this.lzwState;
- if (!i) return;
- const n = i.earlyChange;
- let s = i.nextCode;
- const o = i.dictionaryValues,
- c = i.dictionaryLengths,
- l = i.dictionaryPrevCodes;
- let h = i.codeLength,
- u = i.prevCode;
- const d = i.currentSequence;
- let f = i.currentSequenceLength,
- g = 0,
- p = this.bufferLength,
- m = this.ensureBuffer(this.bufferLength + r);
- for (e = 0; e < 512; e++) {
- const e = this.readBits(h),
- i = f > 0;
- if (e < 256) {
- d[0] = e;
- f = 1;
- } else {
- if (!(e >= 258)) {
- if (256 === e) {
- h = 9;
- s = 258;
- f = 0;
- continue;
- }
- this.eof = !0;
- delete this.lzwState;
- break;
- }
- if (e < s) {
- f = c[e];
- for (t = f - 1, a = e; t >= 0; t--) {
- d[t] = o[a];
- a = l[a];
- }
- } else d[f++] = d[0];
- }
- if (i) {
- l[s] = u;
- c[s] = c[u] + 1;
- o[s] = d[0];
- s++;
- h =
- (s + n) & (s + n - 1)
- ? h
- : 0 | Math.min(Math.log(s + n) / 0.6931471805599453 + 1, 12);
- }
- u = e;
- g += f;
- if (r < g) {
- do {
- r += 512;
- } while (r < g);
- m = this.ensureBuffer(this.bufferLength + r);
- }
- for (t = 0; t < f; t++) m[p++] = d[t];
- }
- i.nextCode = s;
- i.codeLength = h;
- i.prevCode = u;
- i.currentSequenceLength = f;
- this.bufferLength = p;
- }
- }
- t.LZWStream = LZWStream;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.PredictorStream = void 0;
- var r = a(18),
- i = a(4),
- n = a(2);
- class PredictorStream extends r.DecodeStream {
- constructor(e, t, a) {
- super(t);
- if (!(a instanceof i.Dict)) return e;
- const r = (this.predictor = a.get('Predictor') || 1);
- if (r <= 1) return e;
- if (2 !== r && (r < 10 || r > 15))
- throw new n.FormatError(`Unsupported predictor: ${r}`);
- this.readBlock = 2 === r ? this.readBlockTiff : this.readBlockPng;
- this.str = e;
- this.dict = e.dict;
- const s = (this.colors = a.get('Colors') || 1),
- o = (this.bits = a.get('BPC', 'BitsPerComponent') || 8),
- c = (this.columns = a.get('Columns') || 1);
- this.pixBytes = (s * o + 7) >> 3;
- this.rowBytes = (c * s * o + 7) >> 3;
- return this;
- }
- readBlockTiff() {
- const e = this.rowBytes,
- t = this.bufferLength,
- a = this.ensureBuffer(t + e),
- r = this.bits,
- i = this.colors,
- n = this.str.getBytes(e);
- this.eof = !n.length;
- if (this.eof) return;
- let s,
- o = 0,
- c = 0,
- l = 0,
- h = 0,
- u = t;
- if (1 === r && 1 === i)
- for (s = 0; s < e; ++s) {
- let e = n[s] ^ o;
- e ^= e >> 1;
- e ^= e >> 2;
- e ^= e >> 4;
- o = (1 & e) << 7;
- a[u++] = e;
- }
- else if (8 === r) {
- for (s = 0; s < i; ++s) a[u++] = n[s];
- for (; s < e; ++s) {
- a[u] = a[u - i] + n[s];
- u++;
- }
- } else if (16 === r) {
- const t = 2 * i;
- for (s = 0; s < t; ++s) a[u++] = n[s];
- for (; s < e; s += 2) {
- const e =
- ((255 & n[s]) << 8) +
- (255 & n[s + 1]) +
- ((255 & a[u - t]) << 8) +
- (255 & a[u - t + 1]);
- a[u++] = (e >> 8) & 255;
- a[u++] = 255 & e;
- }
- } else {
- const e = new Uint8Array(i + 1),
- u = (1 << r) - 1;
- let d = 0,
- f = t;
- const g = this.columns;
- for (s = 0; s < g; ++s)
- for (let t = 0; t < i; ++t) {
- if (l < r) {
- o = (o << 8) | (255 & n[d++]);
- l += 8;
- }
- e[t] = (e[t] + (o >> (l - r))) & u;
- l -= r;
- c = (c << r) | e[t];
- h += r;
- if (h >= 8) {
- a[f++] = (c >> (h - 8)) & 255;
- h -= 8;
- }
- }
- h > 0 && (a[f++] = (c << (8 - h)) + (o & ((1 << (8 - h)) - 1)));
- }
- this.bufferLength += e;
- }
- readBlockPng() {
- const e = this.rowBytes,
- t = this.pixBytes,
- a = this.str.getByte(),
- r = this.str.getBytes(e);
- this.eof = !r.length;
- if (this.eof) return;
- const i = this.bufferLength,
- s = this.ensureBuffer(i + e);
- let o = s.subarray(i - e, i);
- 0 === o.length && (o = new Uint8Array(e));
- let c,
- l,
- h,
- u = i;
- switch (a) {
- case 0:
- for (c = 0; c < e; ++c) s[u++] = r[c];
- break;
- case 1:
- for (c = 0; c < t; ++c) s[u++] = r[c];
- for (; c < e; ++c) {
- s[u] = (s[u - t] + r[c]) & 255;
- u++;
- }
- break;
- case 2:
- for (c = 0; c < e; ++c) s[u++] = (o[c] + r[c]) & 255;
- break;
- case 3:
- for (c = 0; c < t; ++c) s[u++] = (o[c] >> 1) + r[c];
- for (; c < e; ++c) {
- s[u] = (((o[c] + s[u - t]) >> 1) + r[c]) & 255;
- u++;
- }
- break;
- case 4:
- for (c = 0; c < t; ++c) {
- l = o[c];
- h = r[c];
- s[u++] = l + h;
- }
- for (; c < e; ++c) {
- l = o[c];
- const e = o[c - t],
- a = s[u - t],
- i = a + l - e;
- let n = i - a;
- n < 0 && (n = -n);
- let d = i - l;
- d < 0 && (d = -d);
- let f = i - e;
- f < 0 && (f = -f);
- h = r[c];
- s[u++] = n <= d && n <= f ? a + h : d <= f ? l + h : e + h;
- }
- break;
- default:
- throw new n.FormatError(`Unsupported predictor: ${a}`);
- }
- this.bufferLength += e;
- }
- }
- t.PredictorStream = PredictorStream;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.RunLengthStream = void 0;
- var r = a(18);
- class RunLengthStream extends r.DecodeStream {
- constructor(e, t) {
- super(t);
- this.str = e;
- this.dict = e.dict;
- }
- readBlock() {
- const e = this.str.getBytes(2);
- if (!e || e.length < 2 || 128 === e[0]) {
- this.eof = !0;
- return;
- }
- let t,
- a = this.bufferLength,
- r = e[0];
- if (r < 128) {
- t = this.ensureBuffer(a + r + 1);
- t[a++] = e[1];
- if (r > 0) {
- const e = this.str.getBytes(r);
- t.set(e, a);
- a += r;
- }
- } else {
- r = 257 - r;
- const i = e[1];
- t = this.ensureBuffer(a + r + 1);
- for (let e = 0; e < r; e++) t[a++] = i;
- }
- this.bufferLength = a;
- }
- }
- t.RunLengthStream = RunLengthStream;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.Font = t.ErrorFont = void 0;
- var r = a(2),
- i = a(35),
- n = a(38),
- s = a(40),
- o = a(39),
- c = a(37),
- l = a(41),
- h = a(42),
- u = a(43),
- d = a(44),
- f = a(45),
- g = a(46),
- p = a(14),
- m = a(47),
- b = a(3),
- y = a(8),
- w = a(48);
- const S = [
- [57344, 63743],
- [1048576, 1114109],
- ],
- x = 1e3,
- C = [
- 'ascent',
- 'bbox',
- 'black',
- 'bold',
- 'charProcOperatorList',
- 'composite',
- 'cssFontInfo',
- 'data',
- 'defaultVMetrics',
- 'defaultWidth',
- 'descent',
- 'fallbackName',
- 'fontMatrix',
- 'isInvalidPDFjsFont',
- 'isType3Font',
- 'italic',
- 'loadedName',
- 'mimetype',
- 'missingFile',
- 'name',
- 'remeasure',
- 'subtype',
- 'type',
- 'vertical',
- ],
- k = [
- 'cMap',
- 'defaultEncoding',
- 'differences',
- 'isMonospace',
- 'isSerifFont',
- 'isSymbolicFont',
- 'seacMap',
- 'toFontChar',
- 'toUnicode',
- 'vmetrics',
- 'widths',
- ];
- function adjustWidths(e) {
- if (!e.fontMatrix) return;
- if (e.fontMatrix[0] === r.FONT_IDENTITY_MATRIX[0]) return;
- const t = 0.001 / e.fontMatrix[0],
- a = e.widths;
- for (const e in a) a[e] *= t;
- e.defaultWidth *= t;
- }
- function amendFallbackToUnicode(e) {
- if (!e.fallbackToUnicode) return;
- if (e.toUnicode instanceof h.IdentityToUnicodeMap) return;
- const t = [];
- for (const a in e.fallbackToUnicode)
- e.toUnicode.has(a) || (t[a] = e.fallbackToUnicode[a]);
- t.length > 0 && e.toUnicode.amend(t);
- }
- class Glyph {
- constructor(e, t, a, r, i, n, s, o, c) {
- this.originalCharCode = e;
- this.fontChar = t;
- this.unicode = a;
- this.accent = r;
- this.width = i;
- this.vmetric = n;
- this.operatorListId = s;
- this.isSpace = o;
- this.isInFont = c;
- }
- get category() {
- return (0, r.shadow)(
- this,
- 'category',
- (0, s.getCharUnicodeCategory)(this.unicode),
- !0,
- );
- }
- }
- function int16(e, t) {
- return (e << 8) + t;
- }
- function writeSignedInt16(e, t, a) {
- e[t + 1] = a;
- e[t] = a >>> 8;
- }
- function signedInt16(e, t) {
- const a = (e << 8) + t;
- return 32768 & a ? a - 65536 : a;
- }
- function string16(e) {
- return String.fromCharCode((e >> 8) & 255, 255 & e);
- }
- function safeString16(e) {
- e > 32767 ? (e = 32767) : e < -32768 && (e = -32768);
- return String.fromCharCode((e >> 8) & 255, 255 & e);
- }
- function isTrueTypeCollectionFile(e) {
- const t = e.peekBytes(4);
- return 'ttcf' === (0, r.bytesToString)(t);
- }
- function getFontFileType(e, { type: t, subtype: a, composite: i }) {
- let n, s;
- if (
- (function isTrueTypeFile(e) {
- const t = e.peekBytes(4);
- return 65536 === (0, b.readUint32)(t, 0) || 'true' === (0, r.bytesToString)(t);
- })(e) ||
- isTrueTypeCollectionFile(e)
- )
- n = i ? 'CIDFontType2' : 'TrueType';
- else if (
- (function isOpenTypeFile(e) {
- const t = e.peekBytes(4);
- return 'OTTO' === (0, r.bytesToString)(t);
- })(e)
- )
- n = i ? 'CIDFontType2' : 'OpenType';
- else if (
- (function isType1File(e) {
- const t = e.peekBytes(2);
- return (37 === t[0] && 33 === t[1]) || (128 === t[0] && 1 === t[1]);
- })(e)
- )
- n = i ? 'CIDFontType0' : 'MMType1' === t ? 'MMType1' : 'Type1';
- else if (
- (function isCFFFile(e) {
- const t = e.peekBytes(4);
- return t[0] >= 1 && t[3] >= 1 && t[3] <= 4;
- })(e)
- )
- if (i) {
- n = 'CIDFontType0';
- s = 'CIDFontType0C';
- } else {
- n = 'MMType1' === t ? 'MMType1' : 'Type1';
- s = 'Type1C';
- }
- else {
- (0, r.warn)('getFontFileType: Unable to detect correct font file Type/Subtype.');
- n = t;
- s = a;
- }
- return [n, s];
- }
- function applyStandardFontGlyphMap(e, t) {
- for (const a in t) e[+a] = t[a];
- }
- function buildToFontChar(e, t, a) {
- const r = [];
- let i;
- for (let a = 0, n = e.length; a < n; a++) {
- i = (0, s.getUnicodeForGlyph)(e[a], t);
- -1 !== i && (r[a] = i);
- }
- for (const e in a) {
- i = (0, s.getUnicodeForGlyph)(a[e], t);
- -1 !== i && (r[+e] = i);
- }
- return r;
- }
- function isMacNameRecord(e) {
- return 1 === e.platform && 0 === e.encoding && 0 === e.language;
- }
- function isWinNameRecord(e) {
- return 3 === e.platform && 1 === e.encoding && 1033 === e.language;
- }
- function convertCidString(e, t, a = !1) {
- switch (t.length) {
- case 1:
- return t.charCodeAt(0);
- case 2:
- return (t.charCodeAt(0) << 8) | t.charCodeAt(1);
- }
- const i = `Unsupported CID string (charCode ${e}): "${t}".`;
- if (a) throw new r.FormatError(i);
- (0, r.warn)(i);
- return t;
- }
- function adjustMapping(e, t, a, i) {
- const n = Object.create(null),
- s = new Map(),
- o = [],
- c = new Set();
- let l = 0;
- let h = S[l][0],
- u = S[l][1];
- for (let f in e) {
- f |= 0;
- let g = e[f];
- if (!t(g)) continue;
- if (h > u) {
- l++;
- if (l >= S.length) {
- (0, r.warn)('Ran out of space in font private use area.');
- break;
- }
- h = S[l][0];
- u = S[l][1];
- }
- const p = h++;
- 0 === g && (g = a);
- let m = i.get(f);
- 'string' == typeof m && (m = m.codePointAt(0));
- if (
- m &&
- !((d = m), (S[0][0] <= d && d <= S[0][1]) || (S[1][0] <= d && d <= S[1][1])) &&
- !c.has(g)
- ) {
- s.set(m, g);
- c.add(g);
- }
- n[p] = g;
- o[f] = p;
- }
- var d;
- return {
- toFontChar: o,
- charCodeToGlyphId: n,
- toUnicodeExtraMap: s,
- nextAvailableFontCharCode: h,
- };
- }
- function createCmapTable(e, t, a) {
- const i = (function getRanges(e, t, a) {
- const r = [];
- for (const t in e) e[t] >= a || r.push({ fontCharCode: 0 | t, glyphId: e[t] });
- if (t) for (const [e, i] of t) i >= a || r.push({ fontCharCode: e, glyphId: i });
- 0 === r.length && r.push({ fontCharCode: 0, glyphId: 0 });
- r.sort(function fontGetRangesSort(e, t) {
- return e.fontCharCode - t.fontCharCode;
- });
- const i = [],
- n = r.length;
- for (let e = 0; e < n; ) {
- const t = r[e].fontCharCode,
- a = [r[e].glyphId];
- ++e;
- let s = t;
- for (; e < n && s + 1 === r[e].fontCharCode; ) {
- a.push(r[e].glyphId);
- ++s;
- ++e;
- if (65535 === s) break;
- }
- i.push([t, s, a]);
- }
- return i;
- })(e, t, a),
- n = i.at(-1)[1] > 65535 ? 2 : 1;
- let s,
- o,
- c,
- l,
- h = '\0\0' + string16(n) + '\0\0' + (0, r.string32)(4 + 8 * n);
- for (s = i.length - 1; s >= 0 && !(i[s][0] <= 65535); --s);
- const u = s + 1;
- i[s][0] < 65535 && 65535 === i[s][1] && (i[s][1] = 65534);
- const d = i[s][1] < 65535 ? 1 : 0,
- f = u + d,
- g = m.OpenTypeFileBuilder.getSearchParams(f, 2);
- let p,
- b,
- y,
- w,
- S = '',
- x = '',
- C = '',
- k = '',
- v = '',
- F = 0;
- for (s = 0, o = u; s < o; s++) {
- p = i[s];
- b = p[0];
- y = p[1];
- S += string16(b);
- x += string16(y);
- w = p[2];
- let e = !0;
- for (c = 1, l = w.length; c < l; ++c)
- if (w[c] !== w[c - 1] + 1) {
- e = !1;
- break;
- }
- if (e) {
- C += string16((w[0] - b) & 65535);
- k += string16(0);
- } else {
- const e = 2 * (f - s) + 2 * F;
- F += y - b + 1;
- C += string16(0);
- k += string16(e);
- for (c = 0, l = w.length; c < l; ++c) v += string16(w[c]);
- }
- }
- if (d > 0) {
- x += 'ÿÿ';
- S += 'ÿÿ';
- C += '\0';
- k += '\0\0';
- }
- const O =
- '\0\0' +
- string16(2 * f) +
- string16(g.range) +
- string16(g.entry) +
- string16(g.rangeShift) +
- x +
- '\0\0' +
- S +
- C +
- k +
- v;
- let T = '',
- M = '';
- if (n > 1) {
- h += '\0\0\n' + (0, r.string32)(4 + 8 * n + 4 + O.length);
- T = '';
- for (s = 0, o = i.length; s < o; s++) {
- p = i[s];
- b = p[0];
- w = p[2];
- let e = w[0];
- for (c = 1, l = w.length; c < l; ++c)
- if (w[c] !== w[c - 1] + 1) {
- y = p[0] + c - 1;
- T += (0, r.string32)(b) + (0, r.string32)(y) + (0, r.string32)(e);
- b = y + 1;
- e = w[c];
- }
- T += (0, r.string32)(b) + (0, r.string32)(p[1]) + (0, r.string32)(e);
- }
- M =
- '\0\f\0\0' +
- (0, r.string32)(T.length + 16) +
- '\0\0\0\0' +
- (0, r.string32)(T.length / 12);
- }
- return h + '\0' + string16(O.length + 4) + O + M + T;
- }
- function createOS2Table(e, t, a) {
- a ||= { unitsPerEm: 0, yMax: 0, yMin: 0, ascent: 0, descent: 0 };
- let i = 0,
- n = 0,
- o = 0,
- c = 0,
- l = null,
- h = 0,
- u = -1;
- if (t) {
- for (let e in t) {
- e |= 0;
- (l > e || !l) && (l = e);
- h < e && (h = e);
- u = (0, s.getUnicodeRangeFor)(e, u);
- if (u < 32) i |= 1 << u;
- else if (u < 64) n |= 1 << (u - 32);
- else if (u < 96) o |= 1 << (u - 64);
- else {
- if (!(u < 123))
- throw new r.FormatError(
- 'Unicode ranges Bits > 123 are reserved for internal usage',
- );
- c |= 1 << (u - 96);
- }
- }
- h > 65535 && (h = 65535);
- } else {
- l = 0;
- h = 255;
- }
- const d = e.bbox || [0, 0, 0, 0],
- f = a.unitsPerEm || 1 / (e.fontMatrix || r.FONT_IDENTITY_MATRIX)[0],
- g = e.ascentScaled ? 1 : f / x,
- p = a.ascent || Math.round(g * (e.ascent || d[3]));
- let m = a.descent || Math.round(g * (e.descent || d[1]));
- m > 0 && e.descent > 0 && d[1] < 0 && (m = -m);
- const b = a.yMax || p,
- y = -a.yMin || -m;
- return (
- '\0$ô\0\0\0Š»\0\0\0ŒŠ»\0\0ß\x001\0\0\0\0' +
- String.fromCharCode(e.fixedPitch ? 9 : 0) +
- '\0\0\0\0\0\0' +
- (0, r.string32)(i) +
- (0, r.string32)(n) +
- (0, r.string32)(o) +
- (0, r.string32)(c) +
- '*21*' +
- string16(e.italicAngle ? 1 : 0) +
- string16(l || e.firstChar) +
- string16(h || e.lastChar) +
- string16(p) +
- string16(m) +
- '\0d' +
- string16(b) +
- string16(y) +
- '\0\0\0\0\0\0\0\0' +
- string16(e.xHeight) +
- string16(e.capHeight) +
- string16(0) +
- string16(l || e.firstChar) +
- '\0'
- );
- }
- function createPostTable(e) {
- const t = Math.floor(65536 * e.italicAngle);
- return (
- '\0\0\0' +
- (0, r.string32)(t) +
- '\0\0\0\0' +
- (0, r.string32)(e.fixedPitch ? 1 : 0) +
- '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0'
- );
- }
- function createPostscriptName(e) {
- return e.replaceAll(/[^\x21-\x7E]|[[\](){}<>/%]/g, '').slice(0, 63);
- }
- function createNameTable(e, t) {
- t || (t = [[], []]);
- const a = [
- t[0][0] || 'Original licence',
- t[0][1] || e,
- t[0][2] || 'Unknown',
- t[0][3] || 'uniqueID',
- t[0][4] || e,
- t[0][5] || 'Version 0.11',
- t[0][6] || createPostscriptName(e),
- t[0][7] || 'Unknown',
- t[0][8] || 'Unknown',
- t[0][9] || 'Unknown',
- ],
- r = [];
- let i, n, s, o, c;
- for (i = 0, n = a.length; i < n; i++) {
- c = t[1][i] || a[i];
- const e = [];
- for (s = 0, o = c.length; s < o; s++) e.push(string16(c.charCodeAt(s)));
- r.push(e.join(''));
- }
- const l = [a, r],
- h = ['\0', '\0'],
- u = ['\0\0', '\0'],
- d = ['\0\0', '\t'],
- f = a.length * h.length;
- let g = '\0\0' + string16(f) + string16(12 * f + 6),
- p = 0;
- for (i = 0, n = h.length; i < n; i++) {
- const e = l[i];
- for (s = 0, o = e.length; s < o; s++) {
- c = e[s];
- g += h[i] + u[i] + d[i] + string16(s) + string16(c.length) + string16(p);
- p += c.length;
- }
- }
- g += a.join('') + r.join('');
- return g;
- }
- t.Font = class Font {
- constructor(e, t, a) {
- this.name = e;
- this.psName = null;
- this.mimetype = null;
- this.disableFontFace = !1;
- this.loadedName = a.loadedName;
- this.isType3Font = a.isType3Font;
- this.missingFile = !1;
- this.cssFontInfo = a.cssFontInfo;
- this._charsCache = Object.create(null);
- this._glyphCache = Object.create(null);
- let i = !!(a.flags & n.FontFlags.Serif);
- if (!i && !a.isSimulatedFlags) {
- const t = e.replaceAll(/[,_]/g, '-').split('-')[0],
- a = (0, l.getSerifFonts)();
- for (const e of t.split('+'))
- if (a[e]) {
- i = !0;
- break;
- }
- }
- this.isSerifFont = i;
- this.isSymbolicFont = !!(a.flags & n.FontFlags.Symbolic);
- this.isMonospace = !!(a.flags & n.FontFlags.FixedPitch);
- let { type: s, subtype: o } = a;
- this.type = s;
- this.subtype = o;
- const c = e.match(/^InvalidPDFjsFont_(.*)_\d+$/);
- this.isInvalidPDFjsFont = !!c;
- this.isInvalidPDFjsFont
- ? (this.fallbackName = c[1])
- : this.isMonospace
- ? (this.fallbackName = 'monospace')
- : this.isSerifFont
- ? (this.fallbackName = 'serif')
- : (this.fallbackName = 'sans-serif');
- this.differences = a.differences;
- this.widths = a.widths;
- this.defaultWidth = a.defaultWidth;
- this.composite = a.composite;
- this.cMap = a.cMap;
- this.capHeight = a.capHeight / x;
- this.ascent = a.ascent / x;
- this.descent = a.descent / x;
- this.lineHeight = this.ascent - this.descent;
- this.fontMatrix = a.fontMatrix;
- this.bbox = a.bbox;
- this.defaultEncoding = a.defaultEncoding;
- this.toUnicode = a.toUnicode;
- this.toFontChar = [];
- if ('Type3' === a.type) {
- for (let e = 0; e < 256; e++)
- this.toFontChar[e] = this.differences[e] || a.defaultEncoding[e];
- return;
- }
- this.cidEncoding = a.cidEncoding || '';
- this.vertical = !!a.vertical;
- if (this.vertical) {
- this.vmetrics = a.vmetrics;
- this.defaultVMetrics = a.defaultVMetrics;
- }
- if (!t || t.isEmpty) {
- t && (0, r.warn)('Font file is empty in "' + e + '" (' + this.loadedName + ')');
- this.fallbackToSystemFont(a);
- return;
- }
- [s, o] = getFontFileType(t, a);
- (s === this.type && o === this.subtype) ||
- (0, r.info)(
- `Inconsistent font file Type/SubType, expected: ${this.type}/${this.subtype} but found: ${s}/${o}.`,
- );
- let h;
- try {
- switch (s) {
- case 'MMType1':
- (0, r.info)('MMType1 font (' + e + '), falling back to Type1.');
- case 'Type1':
- case 'CIDFontType0':
- this.mimetype = 'font/opentype';
- const i =
- 'Type1C' === o || 'CIDFontType0C' === o
- ? new u.CFFFont(t, a)
- : new w.Type1Font(e, t, a);
- adjustWidths(a);
- h = this.convert(e, i, a);
- break;
- case 'OpenType':
- case 'TrueType':
- case 'CIDFontType2':
- this.mimetype = 'font/opentype';
- h = this.checkAndRepair(e, t, a);
- if (this.isOpenType) {
- adjustWidths(a);
- s = 'OpenType';
- }
- break;
- default:
- throw new r.FormatError(`Font ${s} is not supported`);
- }
- } catch (e) {
- (0, r.warn)(e);
- this.fallbackToSystemFont(a);
- return;
- }
- amendFallbackToUnicode(a);
- this.data = h;
- this.type = s;
- this.subtype = o;
- this.fontMatrix = a.fontMatrix;
- this.widths = a.widths;
- this.defaultWidth = a.defaultWidth;
- this.toUnicode = a.toUnicode;
- this.seacMap = a.seacMap;
- }
- get renderer() {
- const e = d.FontRendererFactory.create(this, n.SEAC_ANALYSIS_ENABLED);
- return (0, r.shadow)(this, 'renderer', e);
- }
- exportData(e = !1) {
- const t = e ? [...C, ...k] : C,
- a = Object.create(null);
- let r, i;
- for (r of t) {
- i = this[r];
- void 0 !== i && (a[r] = i);
- }
- return a;
- }
- fallbackToSystemFont(e) {
- this.missingFile = !0;
- const { name: t, type: a } = this;
- let i = (0, n.normalizeFontName)(t);
- const u = (0, l.getStdFontMap)(),
- d = (0, l.getNonStdFontMap)(),
- g = !!u[i],
- p = !(!d[i] || !u[d[i]]);
- i = u[i] || d[i] || i;
- const m = (0, f.getFontBasicMetrics)()[i];
- if (m) {
- isNaN(this.ascent) && (this.ascent = m.ascent / x);
- isNaN(this.descent) && (this.descent = m.descent / x);
- isNaN(this.capHeight) && (this.capHeight = m.capHeight / x);
- }
- this.bold = /bold/gi.test(i);
- this.italic = /oblique|italic/gi.test(i);
- this.black = /Black/g.test(t);
- const b = /Narrow/g.test(t);
- this.remeasure = (!g || b) && Object.keys(this.widths).length > 0;
- if ((g || p) && 'CIDFontType2' === a && this.cidEncoding.startsWith('Identity-')) {
- const a = e.cidToGidMap,
- r = [];
- applyStandardFontGlyphMap(r, (0, l.getGlyphMapForStandardFonts)());
- /Arial-?Black/i.test(t)
- ? applyStandardFontGlyphMap(r, (0, l.getSupplementalGlyphMapForArialBlack)())
- : /Calibri/i.test(t) &&
- applyStandardFontGlyphMap(r, (0, l.getSupplementalGlyphMapForCalibri)());
- if (a) {
- for (const e in r) {
- const t = r[e];
- void 0 !== a[t] && (r[+e] = a[t]);
- }
- a.length !== this.toUnicode.length &&
- e.hasIncludedToUnicodeMap &&
- this.toUnicode instanceof h.IdentityToUnicodeMap &&
- this.toUnicode.forEach(function (e, t) {
- const i = r[e];
- void 0 === a[i] && (r[+e] = t);
- });
- }
- this.toUnicode instanceof h.IdentityToUnicodeMap ||
- this.toUnicode.forEach(function (e, t) {
- r[+e] = t;
- });
- this.toFontChar = r;
- this.toUnicode = new h.ToUnicodeMap(r);
- } else if (/Symbol/i.test(i))
- this.toFontChar = buildToFontChar(
- c.SymbolSetEncoding,
- (0, o.getGlyphsUnicode)(),
- this.differences,
- );
- else if (/Dingbats/i.test(i)) {
- /Wingdings/i.test(t) &&
- (0, r.warn)('Non-embedded Wingdings font, falling back to ZapfDingbats.');
- this.toFontChar = buildToFontChar(
- c.ZapfDingbatsEncoding,
- (0, o.getDingbatsGlyphsUnicode)(),
- this.differences,
- );
- } else if (g) {
- const e = buildToFontChar(
- this.defaultEncoding,
- (0, o.getGlyphsUnicode)(),
- this.differences,
- );
- 'CIDFontType2' !== a ||
- this.cidEncoding.startsWith('Identity-') ||
- this.toUnicode instanceof h.IdentityToUnicodeMap ||
- this.toUnicode.forEach(function (t, a) {
- e[+t] = a;
- });
- this.toFontChar = e;
- } else {
- const e = (0, o.getGlyphsUnicode)(),
- a = [];
- this.toUnicode.forEach((t, r) => {
- if (!this.composite) {
- const a = this.differences[t] || this.defaultEncoding[t],
- i = (0, s.getUnicodeForGlyph)(a, e);
- -1 !== i && (r = i);
- }
- a[+t] = r;
- });
- this.composite &&
- this.toUnicode instanceof h.IdentityToUnicodeMap &&
- /Tahoma|Verdana/i.test(t) &&
- applyStandardFontGlyphMap(a, (0, l.getGlyphMapForStandardFonts)());
- this.toFontChar = a;
- }
- amendFallbackToUnicode(e);
- this.loadedName = i.split('-')[0];
- }
- checkAndRepair(e, t, a) {
- const s = [
- 'OS/2',
- 'cmap',
- 'head',
- 'hhea',
- 'hmtx',
- 'maxp',
- 'name',
- 'post',
- 'loca',
- 'glyf',
- 'fpgm',
- 'prep',
- 'cvt ',
- 'CFF ',
- ];
- function readTables(e, t) {
- const a = Object.create(null);
- a['OS/2'] = null;
- a.cmap = null;
- a.head = null;
- a.hhea = null;
- a.hmtx = null;
- a.maxp = null;
- a.name = null;
- a.post = null;
- for (let r = 0; r < t; r++) {
- const t = readTableEntry(e);
- s.includes(t.tag) && 0 !== t.length && (a[t.tag] = t);
- }
- return a;
- }
- function readTableEntry(e) {
- const t = e.getString(4),
- a = e.getInt32() >>> 0,
- r = e.getInt32() >>> 0,
- i = e.getInt32() >>> 0,
- n = e.pos;
- e.pos = e.start || 0;
- e.skip(r);
- const s = e.getBytes(i);
- e.pos = n;
- if ('head' === t) {
- s[8] = s[9] = s[10] = s[11] = 0;
- s[17] |= 32;
- }
- return { tag: t, checksum: a, length: i, offset: r, data: s };
- }
- function readOpenTypeHeader(e) {
- return {
- version: e.getString(4),
- numTables: e.getUint16(),
- searchRange: e.getUint16(),
- entrySelector: e.getUint16(),
- rangeShift: e.getUint16(),
- };
- }
- function sanitizeGlyph(e, t, a, r, i, n) {
- const s = { length: 0, sizeOfInstructions: 0 };
- if (a - t <= 12) return s;
- const o = e.subarray(t, a);
- let c = signedInt16(o[0], o[1]);
- if (c < 0) {
- c = -1;
- writeSignedInt16(o, 0, c);
- r.set(o, i);
- s.length = o.length;
- return s;
- }
- let l,
- h = 10,
- u = 0;
- for (l = 0; l < c; l++) {
- u = ((o[h] << 8) | o[h + 1]) + 1;
- h += 2;
- }
- const d = h,
- f = (o[h] << 8) | o[h + 1];
- s.sizeOfInstructions = f;
- h += 2 + f;
- const g = h;
- let p = 0;
- for (l = 0; l < u; l++) {
- const e = o[h++];
- 192 & e && (o[h - 1] = 63 & e);
- let t = 2;
- 2 & e ? (t = 1) : 16 & e && (t = 0);
- let a = 2;
- 4 & e ? (a = 1) : 32 & e && (a = 0);
- const r = t + a;
- p += r;
- if (8 & e) {
- const e = o[h++];
- l += e;
- p += e * r;
- }
- }
- if (0 === p) return s;
- let m = h + p;
- if (m > o.length) return s;
- if (!n && f > 0) {
- r.set(o.subarray(0, d), i);
- r.set([0, 0], i + d);
- r.set(o.subarray(g, m), i + d + 2);
- m -= f;
- o.length - m > 3 && (m = (m + 3) & -4);
- s.length = m;
- return s;
- }
- if (o.length - m > 3) {
- m = (m + 3) & -4;
- r.set(o.subarray(0, m), i);
- s.length = m;
- return s;
- }
- r.set(o, i);
- s.length = o.length;
- return s;
- }
- function readNameTable(e) {
- const a = (t.start || 0) + e.offset;
- t.pos = a;
- const r = [[], []],
- i = [],
- n = e.length,
- s = a + n;
- if (0 !== t.getUint16() || n < 6) return [r, i];
- const o = t.getUint16(),
- c = t.getUint16();
- let l, h;
- for (l = 0; l < o && t.pos + 12 <= s; l++) {
- const e = {
- platform: t.getUint16(),
- encoding: t.getUint16(),
- language: t.getUint16(),
- name: t.getUint16(),
- length: t.getUint16(),
- offset: t.getUint16(),
- };
- (isMacNameRecord(e) || isWinNameRecord(e)) && i.push(e);
- }
- for (l = 0, h = i.length; l < h; l++) {
- const e = i[l];
- if (e.length <= 0) continue;
- const n = a + c + e.offset;
- if (n + e.length > s) continue;
- t.pos = n;
- const o = e.name;
- if (e.encoding) {
- let a = '';
- for (let r = 0, i = e.length; r < i; r += 2)
- a += String.fromCharCode(t.getUint16());
- r[1][o] = a;
- } else r[0][o] = t.getString(e.length);
- }
- return [r, i];
- }
- const l = [
- 0, 0, 0, 0, 0, 0, 0, 0, -2, -2, -2, -2, 0, 0, -2, -5, -1, -1, -1, -1, -1, -1, -1,
- -1, 0, 0, -1, 0, -1, -1, -1, -1, 1, -1, -999, 0, 1, 0, -1, -2, 0, -1, -2, -1, -1, 0,
- -1, -1, 0, 0, -999, -999, -1, -1, -1, -1, -2, -999, -2, -2, -999, 0, -2, -2, 0, 0,
- -2, 0, -2, 0, 0, 0, -2, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, -1, -1, -1, 0, 0, -1, 0,
- -1, -1, 0, -999, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2,
- -999, -999, -999, -999, -999, -1, -1, -2, -2, 0, 0, 0, 0, -1, -1, -999, -2, -2, 0,
- 0, -1, -2, -2, 0, 0, 0, -1, -1, -1, -2,
- ];
- function sanitizeTTProgram(e, t) {
- let a,
- i,
- n,
- s,
- o,
- c = e.data,
- h = 0,
- u = 0,
- d = 0;
- const f = [],
- g = [],
- p = [];
- let m = t.tooComplexToFollowFunctions,
- b = !1,
- y = 0,
- w = 0;
- for (let e = c.length; h < e; ) {
- const e = c[h++];
- if (64 === e) {
- i = c[h++];
- if (b || w) h += i;
- else for (a = 0; a < i; a++) f.push(c[h++]);
- } else if (65 === e) {
- i = c[h++];
- if (b || w) h += 2 * i;
- else
- for (a = 0; a < i; a++) {
- n = c[h++];
- f.push((n << 8) | c[h++]);
- }
- } else if (176 == (248 & e)) {
- i = e - 176 + 1;
- if (b || w) h += i;
- else for (a = 0; a < i; a++) f.push(c[h++]);
- } else if (184 == (248 & e)) {
- i = e - 184 + 1;
- if (b || w) h += 2 * i;
- else
- for (a = 0; a < i; a++) {
- n = c[h++];
- f.push((n << 8) | c[h++]);
- }
- } else if (43 !== e || m)
- if (44 !== e || m) {
- if (45 === e)
- if (b) {
- b = !1;
- u = h;
- } else {
- o = g.pop();
- if (!o) {
- (0, r.warn)('TT: ENDF bad stack');
- t.hintsValid = !1;
- return;
- }
- s = p.pop();
- c = o.data;
- h = o.i;
- t.functionsStackDeltas[s] = f.length - o.stackTop;
- }
- else if (137 === e) {
- if (b || w) {
- (0, r.warn)('TT: nested IDEFs not allowed');
- m = !0;
- }
- b = !0;
- d = h;
- } else if (88 === e) ++y;
- else if (27 === e) w = y;
- else if (89 === e) {
- w === y && (w = 0);
- --y;
- } else if (28 === e && !b && !w) {
- const e = f.at(-1);
- e > 0 && (h += e - 1);
- }
- } else {
- if (b || w) {
- (0, r.warn)('TT: nested FDEFs not allowed');
- m = !0;
- }
- b = !0;
- d = h;
- s = f.pop();
- t.functionsDefined[s] = { data: c, i: h };
- }
- else if (!b && !w) {
- s = f.at(-1);
- if (isNaN(s)) (0, r.info)('TT: CALL empty stack (or invalid entry).');
- else {
- t.functionsUsed[s] = !0;
- if (s in t.functionsStackDeltas) {
- const e = f.length + t.functionsStackDeltas[s];
- if (e < 0) {
- (0, r.warn)('TT: CALL invalid functions stack delta.');
- t.hintsValid = !1;
- return;
- }
- f.length = e;
- } else if (s in t.functionsDefined && !p.includes(s)) {
- g.push({ data: c, i: h, stackTop: f.length - 1 });
- p.push(s);
- o = t.functionsDefined[s];
- if (!o) {
- (0, r.warn)('TT: CALL non-existent function');
- t.hintsValid = !1;
- return;
- }
- c = o.data;
- h = o.i;
- }
- }
- }
- if (!b && !w) {
- let t = 0;
- e <= 142 ? (t = l[e]) : e >= 192 && e <= 223 ? (t = -1) : e >= 224 && (t = -2);
- if (e >= 113 && e <= 117) {
- i = f.pop();
- isNaN(i) || (t = 2 * -i);
- }
- for (; t < 0 && f.length > 0; ) {
- f.pop();
- t++;
- }
- for (; t > 0; ) {
- f.push(NaN);
- t--;
- }
- }
- }
- t.tooComplexToFollowFunctions = m;
- const S = [c];
- h > c.length && S.push(new Uint8Array(h - c.length));
- if (d > u) {
- (0, r.warn)('TT: complementing a missing function tail');
- S.push(new Uint8Array([34, 45]));
- }
- !(function foldTTTable(e, t) {
- if (t.length > 1) {
- let a,
- r,
- i = 0;
- for (a = 0, r = t.length; a < r; a++) i += t[a].length;
- i = (i + 3) & -4;
- const n = new Uint8Array(i);
- let s = 0;
- for (a = 0, r = t.length; a < r; a++) {
- n.set(t[a], s);
- s += t[a].length;
- }
- e.data = n;
- e.length = i;
- }
- })(e, S);
- }
- let d, f, b, w;
- if (isTrueTypeCollectionFile((t = new y.Stream(new Uint8Array(t.getBytes()))))) {
- const e = (function readTrueTypeCollectionData(e, t) {
- const { numFonts: a, offsetTable: i } = (function readTrueTypeCollectionHeader(
- e,
- ) {
- const t = e.getString(4);
- (0, r.assert)('ttcf' === t, 'Must be a TrueType Collection font.');
- const a = e.getUint16(),
- i = e.getUint16(),
- n = e.getInt32() >>> 0,
- s = [];
- for (let t = 0; t < n; t++) s.push(e.getInt32() >>> 0);
- const o = {
- ttcTag: t,
- majorVersion: a,
- minorVersion: i,
- numFonts: n,
- offsetTable: s,
- };
- switch (a) {
- case 1:
- return o;
- case 2:
- o.dsigTag = e.getInt32() >>> 0;
- o.dsigLength = e.getInt32() >>> 0;
- o.dsigOffset = e.getInt32() >>> 0;
- return o;
- }
- throw new r.FormatError(`Invalid TrueType Collection majorVersion: ${a}.`);
- })(e),
- n = t.split('+');
- let s;
- for (let o = 0; o < a; o++) {
- e.pos = (e.start || 0) + i[o];
- const a = readOpenTypeHeader(e),
- c = readTables(e, a.numTables);
- if (!c.name)
- throw new r.FormatError(
- 'TrueType Collection font must contain a "name" table.',
- );
- const [l] = readNameTable(c.name);
- for (let e = 0, r = l.length; e < r; e++)
- for (let r = 0, i = l[e].length; r < i; r++) {
- const i = l[e][r] && l[e][r].replaceAll(/\s/g, '');
- if (i) {
- if (i === t) return { header: a, tables: c };
- if (!(n.length < 2))
- for (const e of n) i === e && (s = { name: e, header: a, tables: c });
- }
- }
- }
- if (s) {
- (0, r.warn)(
- `TrueType Collection does not contain "${t}" font, falling back to "${s.name}" font instead.`,
- );
- return { header: s.header, tables: s.tables };
- }
- throw new r.FormatError(`TrueType Collection does not contain "${t}" font.`);
- })(t, this.name);
- d = e.header;
- f = e.tables;
- } else {
- d = readOpenTypeHeader(t);
- f = readTables(t, d.numTables);
- }
- const S = !f['CFF '];
- if (S) {
- if (!f.loca) throw new r.FormatError('Required "loca" table is not found');
- if (!f.glyf) {
- (0, r.warn)('Required "glyf" table is not found -- trying to recover.');
- f.glyf = { tag: 'glyf', data: new Uint8Array(0) };
- }
- this.isOpenType = !1;
- } else {
- const t =
- a.composite &&
- ((a.cidToGidMap || []).length > 0 || !(a.cMap instanceof p.IdentityCMap));
- if (('OTTO' === d.version && !t) || !f.head || !f.hhea || !f.maxp || !f.post) {
- w = new y.Stream(f['CFF '].data);
- b = new u.CFFFont(w, a);
- adjustWidths(a);
- return this.convert(e, b, a);
- }
- delete f.glyf;
- delete f.loca;
- delete f.fpgm;
- delete f.prep;
- delete f['cvt '];
- this.isOpenType = !0;
- }
- if (!f.maxp) throw new r.FormatError('Required "maxp" table is not found');
- t.pos = (t.start || 0) + f.maxp.offset;
- const x = t.getInt32(),
- C = t.getUint16();
- if (a.scaleFactors && a.scaleFactors.length === C && S) {
- const { scaleFactors: e } = a,
- t = int16(f.head.data[50], f.head.data[51]),
- r = new g.GlyfTable({
- glyfTable: f.glyf.data,
- isGlyphLocationsLong: t,
- locaTable: f.loca.data,
- numGlyphs: C,
- });
- r.scale(e);
- const { glyf: i, loca: n, isLocationLong: s } = r.write();
- f.glyf.data = i;
- f.loca.data = n;
- if (s !== !!t) {
- f.head.data[50] = 0;
- f.head.data[51] = s ? 1 : 0;
- }
- const o = f.hmtx.data;
- for (let t = 0; t < C; t++) {
- const a = 4 * t,
- r = Math.round(e[t] * int16(o[a], o[a + 1]));
- o[a] = (r >> 8) & 255;
- o[a + 1] = 255 & r;
- writeSignedInt16(o, a + 2, Math.round(e[t] * signedInt16(o[a + 2], o[a + 3])));
- }
- }
- let k = C + 1,
- v = !0;
- if (k > 65535) {
- v = !1;
- k = C;
- (0, r.warn)('Not enough space in glyfs to duplicate first glyph.');
- }
- let F = 0,
- O = 0;
- if (x >= 65536 && f.maxp.length >= 22) {
- t.pos += 8;
- if (t.getUint16() > 2) {
- f.maxp.data[14] = 0;
- f.maxp.data[15] = 2;
- }
- t.pos += 4;
- F = t.getUint16();
- t.pos += 4;
- O = t.getUint16();
- }
- f.maxp.data[4] = k >> 8;
- f.maxp.data[5] = 255 & k;
- const T = (function sanitizeTTPrograms(e, t, a, i) {
- const n = {
- functionsDefined: [],
- functionsUsed: [],
- functionsStackDeltas: [],
- tooComplexToFollowFunctions: !1,
- hintsValid: !0,
- };
- e && sanitizeTTProgram(e, n);
- t && sanitizeTTProgram(t, n);
- e &&
- (function checkInvalidFunctions(e, t) {
- if (!e.tooComplexToFollowFunctions)
- if (e.functionsDefined.length > t) {
- (0, r.warn)('TT: more functions defined than expected');
- e.hintsValid = !1;
- } else
- for (let a = 0, i = e.functionsUsed.length; a < i; a++) {
- if (a > t) {
- (0, r.warn)('TT: invalid function id: ' + a);
- e.hintsValid = !1;
- return;
- }
- if (e.functionsUsed[a] && !e.functionsDefined[a]) {
- (0, r.warn)('TT: undefined function: ' + a);
- e.hintsValid = !1;
- return;
- }
- }
- })(n, i);
- if (a && 1 & a.length) {
- const e = new Uint8Array(a.length + 1);
- e.set(a.data);
- a.data = e;
- }
- return n.hintsValid;
- })(f.fpgm, f.prep, f['cvt '], F);
- if (!T) {
- delete f.fpgm;
- delete f.prep;
- delete f['cvt '];
- }
- !(function sanitizeMetrics(e, t, a, i, n, s) {
- if (!t) {
- a && (a.data = null);
- return;
- }
- e.pos = (e.start || 0) + t.offset;
- e.pos += 4;
- e.pos += 2;
- e.pos += 2;
- e.pos += 2;
- e.pos += 2;
- e.pos += 2;
- e.pos += 2;
- e.pos += 2;
- e.pos += 2;
- e.pos += 2;
- const o = e.getUint16();
- e.pos += 8;
- e.pos += 2;
- let c = e.getUint16();
- if (0 !== o) {
- if (!(2 & int16(i.data[44], i.data[45]))) {
- t.data[22] = 0;
- t.data[23] = 0;
- }
- }
- if (c > n) {
- (0, r.info)(
- `The numOfMetrics (${c}) should not be greater than the numGlyphs (${n}).`,
- );
- c = n;
- t.data[34] = (65280 & c) >> 8;
- t.data[35] = 255 & c;
- }
- const l = n - c - ((a.length - 4 * c) >> 1);
- if (l > 0) {
- const e = new Uint8Array(a.length + 2 * l);
- e.set(a.data);
- if (s) {
- e[a.length] = a.data[2];
- e[a.length + 1] = a.data[3];
- }
- a.data = e;
- }
- })(t, f.hhea, f.hmtx, f.head, k, v);
- if (!f.head) throw new r.FormatError('Required "head" table is not found');
- !(function sanitizeHead(e, t, a) {
- const i = e.data,
- n = (function int32(e, t, a, r) {
- return (e << 24) + (t << 16) + (a << 8) + r;
- })(i[0], i[1], i[2], i[3]);
- if (n >> 16 != 1) {
- (0, r.info)('Attempting to fix invalid version in head table: ' + n);
- i[0] = 0;
- i[1] = 1;
- i[2] = 0;
- i[3] = 0;
- }
- const s = int16(i[50], i[51]);
- if (s < 0 || s > 1) {
- (0, r.info)('Attempting to fix invalid indexToLocFormat in head table: ' + s);
- const e = t + 1;
- if (a === e << 1) {
- i[50] = 0;
- i[51] = 0;
- } else {
- if (a !== e << 2)
- throw new r.FormatError('Could not fix indexToLocFormat: ' + s);
- i[50] = 0;
- i[51] = 1;
- }
- }
- })(f.head, C, S ? f.loca.length : 0);
- let M = Object.create(null);
- if (S) {
- const e = int16(f.head.data[50], f.head.data[51]),
- t = (function sanitizeGlyphLocations(e, t, a, r, i, n, s) {
- let o, c, l;
- if (r) {
- o = 4;
- c = function fontItemDecodeLong(e, t) {
- return (e[t] << 24) | (e[t + 1] << 16) | (e[t + 2] << 8) | e[t + 3];
- };
- l = function fontItemEncodeLong(e, t, a) {
- e[t] = (a >>> 24) & 255;
- e[t + 1] = (a >> 16) & 255;
- e[t + 2] = (a >> 8) & 255;
- e[t + 3] = 255 & a;
- };
- } else {
- o = 2;
- c = function fontItemDecode(e, t) {
- return (e[t] << 9) | (e[t + 1] << 1);
- };
- l = function fontItemEncode(e, t, a) {
- e[t] = (a >> 9) & 255;
- e[t + 1] = (a >> 1) & 255;
- };
- }
- const h = n ? a + 1 : a,
- u = o * (1 + h),
- d = new Uint8Array(u);
- d.set(e.data.subarray(0, u));
- e.data = d;
- const f = t.data,
- g = f.length,
- p = new Uint8Array(g);
- let m, b;
- const y = [];
- for (m = 0, b = 0; m < a + 1; m++, b += o) {
- let e = c(d, b);
- e > g && (e = g);
- y.push({ index: m, offset: e, endOffset: 0 });
- }
- y.sort((e, t) => e.offset - t.offset);
- for (m = 0; m < a; m++) y[m].endOffset = y[m + 1].offset;
- y.sort((e, t) => e.index - t.index);
- for (m = 0; m < a; m++) {
- const { offset: e, endOffset: t } = y[m];
- if (0 !== e || 0 !== t) break;
- const a = y[m + 1].offset;
- if (0 !== a) {
- y[m].endOffset = a;
- break;
- }
- }
- const w = Object.create(null);
- let S = 0;
- l(d, 0, S);
- for (m = 0, b = o; m < a; m++, b += o) {
- const e = sanitizeGlyph(f, y[m].offset, y[m].endOffset, p, S, i),
- t = e.length;
- 0 === t && (w[m] = !0);
- e.sizeOfInstructions > s && (s = e.sizeOfInstructions);
- S += t;
- l(d, b, S);
- }
- if (0 === S) {
- const e = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]);
- for (m = 0, b = o; m < h; m++, b += o) l(d, b, e.length);
- t.data = e;
- } else if (n) {
- const a = c(d, o);
- if (p.length > a + S) t.data = p.subarray(0, a + S);
- else {
- t.data = new Uint8Array(a + S);
- t.data.set(p.subarray(0, S));
- }
- t.data.set(p.subarray(0, a), S);
- l(e.data, d.length - o, S + a);
- } else t.data = p.subarray(0, S);
- return { missingGlyphs: w, maxSizeOfInstructions: s };
- })(f.loca, f.glyf, C, e, T, v, O);
- M = t.missingGlyphs;
- if (x >= 65536 && f.maxp.length >= 22) {
- f.maxp.data[26] = t.maxSizeOfInstructions >> 8;
- f.maxp.data[27] = 255 & t.maxSizeOfInstructions;
- }
- }
- if (!f.hhea) throw new r.FormatError('Required "hhea" table is not found');
- if (0 === f.hhea.data[10] && 0 === f.hhea.data[11]) {
- f.hhea.data[10] = 255;
- f.hhea.data[11] = 255;
- }
- const E = {
- unitsPerEm: int16(f.head.data[18], f.head.data[19]),
- yMax: int16(f.head.data[42], f.head.data[43]),
- yMin: signedInt16(f.head.data[38], f.head.data[39]),
- ascent: signedInt16(f.hhea.data[4], f.hhea.data[5]),
- descent: signedInt16(f.hhea.data[6], f.hhea.data[7]),
- lineGap: signedInt16(f.hhea.data[8], f.hhea.data[9]),
- };
- this.ascent = E.ascent / E.unitsPerEm;
- this.descent = E.descent / E.unitsPerEm;
- this.lineGap = E.lineGap / E.unitsPerEm;
- if (this.cssFontInfo && this.cssFontInfo.lineHeight) {
- this.lineHeight = this.cssFontInfo.metrics.lineHeight;
- this.lineGap = this.cssFontInfo.metrics.lineGap;
- } else this.lineHeight = this.ascent - this.descent + this.lineGap;
- f.post &&
- (function readPostScriptTable(e, a, i) {
- const s = (t.start || 0) + e.offset;
- t.pos = s;
- const o = s + e.length,
- c = t.getInt32();
- t.skip(28);
- let l,
- h,
- u = !0;
- switch (c) {
- case 65536:
- l = n.MacStandardGlyphOrdering;
- break;
- case 131072:
- const e = t.getUint16();
- if (e !== i) {
- u = !1;
- break;
- }
- const s = [];
- for (h = 0; h < e; ++h) {
- const e = t.getUint16();
- if (e >= 32768) {
- u = !1;
- break;
- }
- s.push(e);
- }
- if (!u) break;
- const d = [],
- f = [];
- for (; t.pos < o; ) {
- const e = t.getByte();
- f.length = e;
- for (h = 0; h < e; ++h) f[h] = String.fromCharCode(t.getByte());
- d.push(f.join(''));
- }
- l = [];
- for (h = 0; h < e; ++h) {
- const e = s[h];
- e < 258 ? l.push(n.MacStandardGlyphOrdering[e]) : l.push(d[e - 258]);
- }
- break;
- case 196608:
- break;
- default:
- (0, r.warn)('Unknown/unsupported post table version ' + c);
- u = !1;
- a.defaultEncoding && (l = a.defaultEncoding);
- }
- a.glyphNames = l;
- return u;
- })(f.post, a, C);
- f.post = { tag: 'post', data: createPostTable(a) };
- const D = [];
- function hasGlyph(e) {
- return !M[e];
- }
- if (a.composite) {
- const e = a.cidToGidMap || [],
- t = 0 === e.length;
- a.cMap.forEach(function (a, i) {
- 'string' == typeof i && (i = convertCidString(a, i, !0));
- if (i > 65535) throw new r.FormatError('Max size of CID is 65,535');
- let n = -1;
- t ? (n = i) : void 0 !== e[i] && (n = e[i]);
- n >= 0 && n < C && hasGlyph(n) && (D[a] = n);
- });
- } else {
- const e = (function readCmapTable(e, t, a, i) {
- if (!e) {
- (0, r.warn)('No cmap table available.');
- return { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: !1 };
- }
- let n,
- s = (t.start || 0) + e.offset;
- t.pos = s;
- t.skip(2);
- const o = t.getUint16();
- let c,
- l = !1;
- for (let e = 0; e < o; e++) {
- const r = t.getUint16(),
- n = t.getUint16(),
- s = t.getInt32() >>> 0;
- let h = !1;
- if (!c || c.platformId !== r || c.encodingId !== n) {
- if (0 !== r || (0 !== n && 1 !== n && 3 !== n))
- if (1 === r && 0 === n) h = !0;
- else if (3 !== r || 1 !== n || (!i && c)) {
- if (a && 3 === r && 0 === n) {
- h = !0;
- let a = !0;
- if (e < o - 1) {
- const e = t.peekBytes(2);
- int16(e[0], e[1]) < r && (a = !1);
- }
- a && (l = !0);
- }
- } else {
- h = !0;
- a || (l = !0);
- }
- else h = !0;
- h && (c = { platformId: r, encodingId: n, offset: s });
- if (l) break;
- }
- }
- c && (t.pos = s + c.offset);
- if (!c || -1 === t.peekByte()) {
- (0, r.warn)('Could not find a preferred cmap table.');
- return { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: !1 };
- }
- const h = t.getUint16();
- let u = !1;
- const d = [];
- let f, g;
- if (0 === h) {
- t.skip(4);
- for (f = 0; f < 256; f++) {
- const e = t.getByte();
- e && d.push({ charCode: f, glyphId: e });
- }
- u = !0;
- } else if (2 === h) {
- t.skip(4);
- const e = [];
- let a = 0;
- for (let r = 0; r < 256; r++) {
- const r = t.getUint16() >> 3;
- e.push(r);
- a = Math.max(r, a);
- }
- const r = [];
- for (let e = 0; e <= a; e++)
- r.push({
- firstCode: t.getUint16(),
- entryCount: t.getUint16(),
- idDelta: signedInt16(t.getByte(), t.getByte()),
- idRangePos: t.pos + t.getUint16(),
- });
- for (let a = 0; a < 256; a++)
- if (0 === e[a]) {
- t.pos = r[0].idRangePos + 2 * a;
- g = t.getUint16();
- d.push({ charCode: a, glyphId: g });
- } else {
- const i = r[e[a]];
- for (f = 0; f < i.entryCount; f++) {
- const e = (a << 8) + f + i.firstCode;
- t.pos = i.idRangePos + 2 * f;
- g = t.getUint16();
- 0 !== g && (g = (g + i.idDelta) % 65536);
- d.push({ charCode: e, glyphId: g });
- }
- }
- } else if (4 === h) {
- t.skip(4);
- const e = t.getUint16() >> 1;
- t.skip(6);
- const a = [];
- let r;
- for (r = 0; r < e; r++) a.push({ end: t.getUint16() });
- t.skip(2);
- for (r = 0; r < e; r++) a[r].start = t.getUint16();
- for (r = 0; r < e; r++) a[r].delta = t.getUint16();
- let i,
- o = 0;
- for (r = 0; r < e; r++) {
- n = a[r];
- const s = t.getUint16();
- if (s) {
- i = (s >> 1) - (e - r);
- n.offsetIndex = i;
- o = Math.max(o, i + n.end - n.start + 1);
- } else n.offsetIndex = -1;
- }
- const c = [];
- for (f = 0; f < o; f++) c.push(t.getUint16());
- for (r = 0; r < e; r++) {
- n = a[r];
- s = n.start;
- const e = n.end,
- t = n.delta;
- i = n.offsetIndex;
- for (f = s; f <= e; f++)
- if (65535 !== f) {
- g = i < 0 ? f : c[i + f - s];
- g = (g + t) & 65535;
- d.push({ charCode: f, glyphId: g });
- }
- }
- } else if (6 === h) {
- t.skip(4);
- const e = t.getUint16(),
- a = t.getUint16();
- for (f = 0; f < a; f++) {
- g = t.getUint16();
- const a = e + f;
- d.push({ charCode: a, glyphId: g });
- }
- } else {
- if (12 !== h) {
- (0, r.warn)('cmap table has unsupported format: ' + h);
- return { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: !1 };
- }
- {
- t.skip(10);
- const e = t.getInt32() >>> 0;
- for (f = 0; f < e; f++) {
- const e = t.getInt32() >>> 0,
- a = t.getInt32() >>> 0;
- let r = t.getInt32() >>> 0;
- for (let t = e; t <= a; t++) d.push({ charCode: t, glyphId: r++ });
- }
- }
- }
- d.sort(function (e, t) {
- return e.charCode - t.charCode;
- });
- for (let e = 1; e < d.length; e++)
- if (d[e - 1].charCode === d[e].charCode) {
- d.splice(e, 1);
- e--;
- }
- return {
- platformId: c.platformId,
- encodingId: c.encodingId,
- mappings: d,
- hasShortCmap: u,
- };
- })(f.cmap, t, this.isSymbolicFont, a.hasEncoding),
- i = e.platformId,
- s = e.encodingId,
- l = e.mappings;
- let u = [],
- d = !1;
- !a.hasEncoding ||
- ('MacRomanEncoding' !== a.baseEncodingName &&
- 'WinAnsiEncoding' !== a.baseEncodingName) ||
- (u = (0, c.getEncoding)(a.baseEncodingName));
- if (
- a.hasEncoding &&
- !this.isSymbolicFont &&
- ((3 === i && 1 === s) || (1 === i && 0 === s))
- ) {
- const e = (0, o.getGlyphsUnicode)();
- for (let t = 0; t < 256; t++) {
- let r;
- r =
- void 0 !== this.differences[t]
- ? this.differences[t]
- : u.length && '' !== u[t]
- ? u[t]
- : c.StandardEncoding[t];
- if (!r) continue;
- const o = (0, n.recoverGlyphName)(r, e);
- let d;
- 3 === i && 1 === s
- ? (d = e[o])
- : 1 === i && 0 === s && (d = c.MacRomanEncoding.indexOf(o));
- if (void 0 === d) {
- if (
- !a.glyphNames &&
- a.hasIncludedToUnicodeMap &&
- !(this.toUnicode instanceof h.IdentityToUnicodeMap)
- ) {
- const e = this.toUnicode.get(t);
- e && (d = e.codePointAt(0));
- }
- if (void 0 === d) continue;
- }
- for (const e of l)
- if (e.charCode === d) {
- D[t] = e.glyphId;
- break;
- }
- }
- } else if (0 === i) {
- for (const e of l) D[e.charCode] = e.glyphId;
- d = !0;
- } else
- for (const e of l) {
- let t = e.charCode;
- 3 === i && t >= 61440 && t <= 61695 && (t &= 255);
- D[t] = e.glyphId;
- }
- if (a.glyphNames && (u.length || this.differences.length))
- for (let e = 0; e < 256; ++e) {
- if (!d && void 0 !== D[e]) continue;
- const t = this.differences[e] || u[e];
- if (!t) continue;
- const r = a.glyphNames.indexOf(t);
- r > 0 && hasGlyph(r) && (D[e] = r);
- }
- }
- 0 === D.length && (D[0] = 0);
- let N = k - 1;
- v || (N = 0);
- if (!a.cssFontInfo) {
- const e = adjustMapping(D, hasGlyph, N, this.toUnicode);
- this.toFontChar = e.toFontChar;
- f.cmap = {
- tag: 'cmap',
- data: createCmapTable(e.charCodeToGlyphId, e.toUnicodeExtraMap, k),
- };
- (f['OS/2'] &&
- (function validateOS2Table(e, t) {
- t.pos = (t.start || 0) + e.offset;
- const a = t.getUint16();
- t.skip(60);
- const r = t.getUint16();
- if (a < 4 && 768 & r) return !1;
- if (t.getUint16() > t.getUint16()) return !1;
- t.skip(6);
- if (0 === t.getUint16()) return !1;
- e.data[8] = e.data[9] = 0;
- return !0;
- })(f['OS/2'], t)) ||
- (f['OS/2'] = { tag: 'OS/2', data: createOS2Table(a, e.charCodeToGlyphId, E) });
- }
- if (!S)
- try {
- w = new y.Stream(f['CFF '].data);
- b = new i.CFFParser(w, a, n.SEAC_ANALYSIS_ENABLED).parse();
- b.duplicateFirstGlyph();
- const e = new i.CFFCompiler(b);
- f['CFF '].data = e.compile();
- } catch (e) {
- (0, r.warn)('Failed to compile font ' + a.loadedName);
- }
- if (f.name) {
- const [t, r] = readNameTable(f.name);
- f.name.data = createNameTable(e, t);
- this.psName = t[0][6] || null;
- a.composite ||
- (function adjustTrueTypeToUnicode(e, t, a) {
- if (e.isInternalFont) return;
- if (e.hasIncludedToUnicodeMap) return;
- if (e.hasEncoding) return;
- if (e.toUnicode instanceof h.IdentityToUnicodeMap) return;
- if (!t) return;
- if (0 === a.length) return;
- if (e.defaultEncoding === c.WinAnsiEncoding) return;
- for (const e of a) if (!isWinNameRecord(e)) return;
- const r = c.WinAnsiEncoding,
- i = [],
- n = (0, o.getGlyphsUnicode)();
- for (const e in r) {
- const t = r[e];
- if ('' === t) continue;
- const a = n[t];
- void 0 !== a && (i[e] = String.fromCharCode(a));
- }
- i.length > 0 && e.toUnicode.amend(i);
- })(a, this.isSymbolicFont, r);
- } else f.name = { tag: 'name', data: createNameTable(this.name) };
- const R = new m.OpenTypeFileBuilder(d.version);
- for (const e in f) R.addTable(e, f[e].data);
- return R.toArray();
- }
- convert(e, t, a) {
- a.fixedPitch = !1;
- a.builtInEncoding &&
- (function adjustType1ToUnicode(e, t) {
- if (e.isInternalFont) return;
- if (e.hasIncludedToUnicodeMap) return;
- if (t === e.defaultEncoding) return;
- if (e.toUnicode instanceof h.IdentityToUnicodeMap) return;
- const a = [],
- r = (0, o.getGlyphsUnicode)();
- for (const i in t) {
- if (e.hasEncoding && (e.baseEncodingName || void 0 !== e.differences[i]))
- continue;
- const n = t[i],
- o = (0, s.getUnicodeForGlyph)(n, r);
- -1 !== o && (a[i] = String.fromCharCode(o));
- }
- a.length > 0 && e.toUnicode.amend(a);
- })(a, a.builtInEncoding);
- let i = 1;
- t instanceof u.CFFFont && (i = t.numGlyphs - 1);
- const l = t.getGlyphMapping(a);
- let d = null,
- f = l,
- g = null;
- if (!a.cssFontInfo) {
- d = adjustMapping(l, t.hasGlyphId.bind(t), i, this.toUnicode);
- this.toFontChar = d.toFontChar;
- f = d.charCodeToGlyphId;
- g = d.toUnicodeExtraMap;
- }
- const p = t.numGlyphs;
- function getCharCodes(e, t) {
- let a = null;
- for (const r in e) t === e[r] && (a ||= []).push(0 | r);
- return a;
- }
- function createCharCode(e, t) {
- for (const a in e) if (t === e[a]) return 0 | a;
- d.charCodeToGlyphId[d.nextAvailableFontCharCode] = t;
- return d.nextAvailableFontCharCode++;
- }
- const b = t.seacs;
- if (d && n.SEAC_ANALYSIS_ENABLED && b && b.length) {
- const e = a.fontMatrix || r.FONT_IDENTITY_MATRIX,
- i = t.getCharset(),
- n = Object.create(null);
- for (let t in b) {
- t |= 0;
- const a = b[t],
- r = c.StandardEncoding[a[2]],
- s = c.StandardEncoding[a[3]],
- o = i.indexOf(r),
- h = i.indexOf(s);
- if (o < 0 || h < 0) continue;
- const u = {
- x: a[0] * e[0] + a[1] * e[2] + e[4],
- y: a[0] * e[1] + a[1] * e[3] + e[5],
- },
- f = getCharCodes(l, t);
- if (f)
- for (const e of f) {
- const t = d.charCodeToGlyphId,
- a = createCharCode(t, o),
- r = createCharCode(t, h);
- n[e] = { baseFontCharCode: a, accentFontCharCode: r, accentOffset: u };
- }
- }
- a.seacMap = n;
- }
- const y = 1 / (a.fontMatrix || r.FONT_IDENTITY_MATRIX)[0],
- w = new m.OpenTypeFileBuilder('OTTO');
- w.addTable('CFF ', t.data);
- w.addTable('OS/2', createOS2Table(a, f));
- w.addTable('cmap', createCmapTable(f, g, p));
- w.addTable(
- 'head',
- '\0\0\0\0\0\0\0\0\0\0_<õ\0\0' +
- safeString16(y) +
- "\0\0\0\0ž\v~'\0\0\0\0ž\v~'\0\0" +
- safeString16(a.descent) +
- 'ÿ' +
- safeString16(a.ascent) +
- string16(a.italicAngle ? 2 : 0) +
- '\0\0\0\0\0\0\0',
- );
- w.addTable(
- 'hhea',
- '\0\0\0' +
- safeString16(a.ascent) +
- safeString16(a.descent) +
- '\0\0ÿÿ\0\0\0\0\0\0' +
- safeString16(a.capHeight) +
- safeString16(Math.tan(a.italicAngle) * a.xHeight) +
- '\0\0\0\0\0\0\0\0\0\0\0\0' +
- string16(p),
- );
- w.addTable(
- 'hmtx',
- (function fontFieldsHmtx() {
- const e = t.charstrings,
- a = t.cff ? t.cff.widths : null;
- let r = '\0\0\0\0';
- for (let t = 1, i = p; t < i; t++) {
- let i = 0;
- if (e) {
- const a = e[t - 1];
- i = 'width' in a ? a.width : 0;
- } else a && (i = Math.ceil(a[t] || 0));
- r += string16(i) + string16(0);
- }
- return r;
- })(),
- );
- w.addTable('maxp', '\0\0P\0' + string16(p));
- w.addTable('name', createNameTable(e));
- w.addTable('post', createPostTable(a));
- return w.toArray();
- }
- get spaceWidth() {
- const e = ['space', 'minus', 'one', 'i', 'I'];
- let t;
- for (const a of e) {
- if (a in this.widths) {
- t = this.widths[a];
- break;
- }
- const e = (0, o.getGlyphsUnicode)()[a];
- let r = 0;
- if (this.composite && this.cMap.contains(e)) {
- r = this.cMap.lookup(e);
- 'string' == typeof r && (r = convertCidString(e, r));
- }
- !r && this.toUnicode && (r = this.toUnicode.charCodeOf(e));
- r <= 0 && (r = e);
- t = this.widths[r];
- if (t) break;
- }
- return (0, r.shadow)(this, 'spaceWidth', t || this.defaultWidth);
- }
- _charToGlyph(e, t = !1) {
- let a,
- i,
- n,
- o = this._glyphCache[e];
- if (o && o.isSpace === t) return o;
- let c = e;
- if (this.cMap && this.cMap.contains(e)) {
- c = this.cMap.lookup(e);
- 'string' == typeof c && (c = convertCidString(e, c));
- }
- i = this.widths[c];
- 'number' != typeof i && (i = this.defaultWidth);
- const l = this.vmetrics && this.vmetrics[c];
- let h = this.toUnicode.get(e) || e;
- 'number' == typeof h && (h = String.fromCharCode(h));
- let u = void 0 !== this.toFontChar[e];
- a = this.toFontChar[e] || e;
- if (this.missingFile) {
- const t = this.differences[e] || this.defaultEncoding[e];
- ('.notdef' !== t && '' !== t) || 'Type1' !== this.type || (a = 32);
- a = (0, s.mapSpecialUnicodeValues)(a);
- }
- this.isType3Font && (n = a);
- let d = null;
- if (this.seacMap && this.seacMap[e]) {
- u = !0;
- const t = this.seacMap[e];
- a = t.baseFontCharCode;
- d = {
- fontChar: String.fromCodePoint(t.accentFontCharCode),
- offset: t.accentOffset,
- };
- }
- let f = '';
- 'number' == typeof a &&
- (a <= 1114111
- ? (f = String.fromCodePoint(a))
- : (0, r.warn)(`charToGlyph - invalid fontCharCode: ${a}`));
- o = new Glyph(e, f, h, d, i, l, n, t, u);
- return (this._glyphCache[e] = o);
- }
- charsToGlyphs(e) {
- let t = this._charsCache[e];
- if (t) return t;
- t = [];
- if (this.cMap) {
- const a = Object.create(null),
- r = e.length;
- let i = 0;
- for (; i < r; ) {
- this.cMap.readCharCode(e, i, a);
- const { charcode: r, length: n } = a;
- i += n;
- const s = this._charToGlyph(r, 1 === n && 32 === e.charCodeAt(i - 1));
- t.push(s);
- }
- } else
- for (let a = 0, r = e.length; a < r; ++a) {
- const r = e.charCodeAt(a),
- i = this._charToGlyph(r, 32 === r);
- t.push(i);
- }
- return (this._charsCache[e] = t);
- }
- getCharPositions(e) {
- const t = [];
- if (this.cMap) {
- const a = Object.create(null);
- let r = 0;
- for (; r < e.length; ) {
- this.cMap.readCharCode(e, r, a);
- const i = a.length;
- t.push([r, r + i]);
- r += i;
- }
- } else for (let a = 0, r = e.length; a < r; ++a) t.push([a, a + 1]);
- return t;
- }
- get glyphCacheValues() {
- return Object.values(this._glyphCache);
- }
- encodeString(e) {
- const t = [],
- a = [],
- hasCurrentBufErrors = () => t.length % 2 == 1,
- r =
- this.toUnicode instanceof h.IdentityToUnicodeMap
- ? (e) => this.toUnicode.charCodeOf(e)
- : (e) => this.toUnicode.charCodeOf(String.fromCodePoint(e));
- for (let i = 0, n = e.length; i < n; i++) {
- const n = e.codePointAt(i);
- n > 55295 && (n < 57344 || n > 65533) && i++;
- if (this.toUnicode) {
- const e = r(n);
- if (-1 !== e) {
- if (hasCurrentBufErrors()) {
- t.push(a.join(''));
- a.length = 0;
- }
- for (let t = (this.cMap ? this.cMap.getCharCodeLength(e) : 1) - 1; t >= 0; t--)
- a.push(String.fromCharCode((e >> (8 * t)) & 255));
- continue;
- }
- }
- if (!hasCurrentBufErrors()) {
- t.push(a.join(''));
- a.length = 0;
- }
- a.push(String.fromCodePoint(n));
- }
- t.push(a.join(''));
- return t;
- }
- };
- t.ErrorFont = class ErrorFont {
- constructor(e) {
- this.error = e;
- this.loadedName = 'g_font_error';
- this.missingFile = !0;
- }
- charsToGlyphs() {
- return [];
- }
- encodeString(e) {
- return [e];
- }
- exportData(e = !1) {
- return { error: this.error };
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.CFFTopDict =
- t.CFFStrings =
- t.CFFStandardStrings =
- t.CFFPrivateDict =
- t.CFFParser =
- t.CFFIndex =
- t.CFFHeader =
- t.CFFFDSelect =
- t.CFFCompiler =
- t.CFFCharset =
- t.CFF =
- void 0;
- var r = a(2),
- i = a(36),
- n = a(37);
- const s = [
- '.notdef',
- 'space',
- 'exclam',
- 'quotedbl',
- 'numbersign',
- 'dollar',
- 'percent',
- 'ampersand',
- 'quoteright',
- 'parenleft',
- 'parenright',
- 'asterisk',
- 'plus',
- 'comma',
- 'hyphen',
- 'period',
- 'slash',
- 'zero',
- 'one',
- 'two',
- 'three',
- 'four',
- 'five',
- 'six',
- 'seven',
- 'eight',
- 'nine',
- 'colon',
- 'semicolon',
- 'less',
- 'equal',
- 'greater',
- 'question',
- 'at',
- 'A',
- 'B',
- 'C',
- 'D',
- 'E',
- 'F',
- 'G',
- 'H',
- 'I',
- 'J',
- 'K',
- 'L',
- 'M',
- 'N',
- 'O',
- 'P',
- 'Q',
- 'R',
- 'S',
- 'T',
- 'U',
- 'V',
- 'W',
- 'X',
- 'Y',
- 'Z',
- 'bracketleft',
- 'backslash',
- 'bracketright',
- 'asciicircum',
- 'underscore',
- 'quoteleft',
- 'a',
- 'b',
- 'c',
- 'd',
- 'e',
- 'f',
- 'g',
- 'h',
- 'i',
- 'j',
- 'k',
- 'l',
- 'm',
- 'n',
- 'o',
- 'p',
- 'q',
- 'r',
- 's',
- 't',
- 'u',
- 'v',
- 'w',
- 'x',
- 'y',
- 'z',
- 'braceleft',
- 'bar',
- 'braceright',
- 'asciitilde',
- 'exclamdown',
- 'cent',
- 'sterling',
- 'fraction',
- 'yen',
- 'florin',
- 'section',
- 'currency',
- 'quotesingle',
- 'quotedblleft',
- 'guillemotleft',
- 'guilsinglleft',
- 'guilsinglright',
- 'fi',
- 'fl',
- 'endash',
- 'dagger',
- 'daggerdbl',
- 'periodcentered',
- 'paragraph',
- 'bullet',
- 'quotesinglbase',
- 'quotedblbase',
- 'quotedblright',
- 'guillemotright',
- 'ellipsis',
- 'perthousand',
- 'questiondown',
- 'grave',
- 'acute',
- 'circumflex',
- 'tilde',
- 'macron',
- 'breve',
- 'dotaccent',
- 'dieresis',
- 'ring',
- 'cedilla',
- 'hungarumlaut',
- 'ogonek',
- 'caron',
- 'emdash',
- 'AE',
- 'ordfeminine',
- 'Lslash',
- 'Oslash',
- 'OE',
- 'ordmasculine',
- 'ae',
- 'dotlessi',
- 'lslash',
- 'oslash',
- 'oe',
- 'germandbls',
- 'onesuperior',
- 'logicalnot',
- 'mu',
- 'trademark',
- 'Eth',
- 'onehalf',
- 'plusminus',
- 'Thorn',
- 'onequarter',
- 'divide',
- 'brokenbar',
- 'degree',
- 'thorn',
- 'threequarters',
- 'twosuperior',
- 'registered',
- 'minus',
- 'eth',
- 'multiply',
- 'threesuperior',
- 'copyright',
- 'Aacute',
- 'Acircumflex',
- 'Adieresis',
- 'Agrave',
- 'Aring',
- 'Atilde',
- 'Ccedilla',
- 'Eacute',
- 'Ecircumflex',
- 'Edieresis',
- 'Egrave',
- 'Iacute',
- 'Icircumflex',
- 'Idieresis',
- 'Igrave',
- 'Ntilde',
- 'Oacute',
- 'Ocircumflex',
- 'Odieresis',
- 'Ograve',
- 'Otilde',
- 'Scaron',
- 'Uacute',
- 'Ucircumflex',
- 'Udieresis',
- 'Ugrave',
- 'Yacute',
- 'Ydieresis',
- 'Zcaron',
- 'aacute',
- 'acircumflex',
- 'adieresis',
- 'agrave',
- 'aring',
- 'atilde',
- 'ccedilla',
- 'eacute',
- 'ecircumflex',
- 'edieresis',
- 'egrave',
- 'iacute',
- 'icircumflex',
- 'idieresis',
- 'igrave',
- 'ntilde',
- 'oacute',
- 'ocircumflex',
- 'odieresis',
- 'ograve',
- 'otilde',
- 'scaron',
- 'uacute',
- 'ucircumflex',
- 'udieresis',
- 'ugrave',
- 'yacute',
- 'ydieresis',
- 'zcaron',
- 'exclamsmall',
- 'Hungarumlautsmall',
- 'dollaroldstyle',
- 'dollarsuperior',
- 'ampersandsmall',
- 'Acutesmall',
- 'parenleftsuperior',
- 'parenrightsuperior',
- 'twodotenleader',
- 'onedotenleader',
- 'zerooldstyle',
- 'oneoldstyle',
- 'twooldstyle',
- 'threeoldstyle',
- 'fouroldstyle',
- 'fiveoldstyle',
- 'sixoldstyle',
- 'sevenoldstyle',
- 'eightoldstyle',
- 'nineoldstyle',
- 'commasuperior',
- 'threequartersemdash',
- 'periodsuperior',
- 'questionsmall',
- 'asuperior',
- 'bsuperior',
- 'centsuperior',
- 'dsuperior',
- 'esuperior',
- 'isuperior',
- 'lsuperior',
- 'msuperior',
- 'nsuperior',
- 'osuperior',
- 'rsuperior',
- 'ssuperior',
- 'tsuperior',
- 'ff',
- 'ffi',
- 'ffl',
- 'parenleftinferior',
- 'parenrightinferior',
- 'Circumflexsmall',
- 'hyphensuperior',
- 'Gravesmall',
- 'Asmall',
- 'Bsmall',
- 'Csmall',
- 'Dsmall',
- 'Esmall',
- 'Fsmall',
- 'Gsmall',
- 'Hsmall',
- 'Ismall',
- 'Jsmall',
- 'Ksmall',
- 'Lsmall',
- 'Msmall',
- 'Nsmall',
- 'Osmall',
- 'Psmall',
- 'Qsmall',
- 'Rsmall',
- 'Ssmall',
- 'Tsmall',
- 'Usmall',
- 'Vsmall',
- 'Wsmall',
- 'Xsmall',
- 'Ysmall',
- 'Zsmall',
- 'colonmonetary',
- 'onefitted',
- 'rupiah',
- 'Tildesmall',
- 'exclamdownsmall',
- 'centoldstyle',
- 'Lslashsmall',
- 'Scaronsmall',
- 'Zcaronsmall',
- 'Dieresissmall',
- 'Brevesmall',
- 'Caronsmall',
- 'Dotaccentsmall',
- 'Macronsmall',
- 'figuredash',
- 'hypheninferior',
- 'Ogoneksmall',
- 'Ringsmall',
- 'Cedillasmall',
- 'questiondownsmall',
- 'oneeighth',
- 'threeeighths',
- 'fiveeighths',
- 'seveneighths',
- 'onethird',
- 'twothirds',
- 'zerosuperior',
- 'foursuperior',
- 'fivesuperior',
- 'sixsuperior',
- 'sevensuperior',
- 'eightsuperior',
- 'ninesuperior',
- 'zeroinferior',
- 'oneinferior',
- 'twoinferior',
- 'threeinferior',
- 'fourinferior',
- 'fiveinferior',
- 'sixinferior',
- 'seveninferior',
- 'eightinferior',
- 'nineinferior',
- 'centinferior',
- 'dollarinferior',
- 'periodinferior',
- 'commainferior',
- 'Agravesmall',
- 'Aacutesmall',
- 'Acircumflexsmall',
- 'Atildesmall',
- 'Adieresissmall',
- 'Aringsmall',
- 'AEsmall',
- 'Ccedillasmall',
- 'Egravesmall',
- 'Eacutesmall',
- 'Ecircumflexsmall',
- 'Edieresissmall',
- 'Igravesmall',
- 'Iacutesmall',
- 'Icircumflexsmall',
- 'Idieresissmall',
- 'Ethsmall',
- 'Ntildesmall',
- 'Ogravesmall',
- 'Oacutesmall',
- 'Ocircumflexsmall',
- 'Otildesmall',
- 'Odieresissmall',
- 'OEsmall',
- 'Oslashsmall',
- 'Ugravesmall',
- 'Uacutesmall',
- 'Ucircumflexsmall',
- 'Udieresissmall',
- 'Yacutesmall',
- 'Thornsmall',
- 'Ydieresissmall',
- '001.000',
- '001.001',
- '001.002',
- '001.003',
- 'Black',
- 'Bold',
- 'Book',
- 'Light',
- 'Medium',
- 'Regular',
- 'Roman',
- 'Semibold',
- ];
- t.CFFStandardStrings = s;
- const o = 391,
- c = [
- null,
- { id: 'hstem', min: 2, stackClearing: !0, stem: !0 },
- null,
- { id: 'vstem', min: 2, stackClearing: !0, stem: !0 },
- { id: 'vmoveto', min: 1, stackClearing: !0 },
- { id: 'rlineto', min: 2, resetStack: !0 },
- { id: 'hlineto', min: 1, resetStack: !0 },
- { id: 'vlineto', min: 1, resetStack: !0 },
- { id: 'rrcurveto', min: 6, resetStack: !0 },
- null,
- { id: 'callsubr', min: 1, undefStack: !0 },
- { id: 'return', min: 0, undefStack: !0 },
- null,
- null,
- { id: 'endchar', min: 0, stackClearing: !0 },
- null,
- null,
- null,
- { id: 'hstemhm', min: 2, stackClearing: !0, stem: !0 },
- { id: 'hintmask', min: 0, stackClearing: !0 },
- { id: 'cntrmask', min: 0, stackClearing: !0 },
- { id: 'rmoveto', min: 2, stackClearing: !0 },
- { id: 'hmoveto', min: 1, stackClearing: !0 },
- { id: 'vstemhm', min: 2, stackClearing: !0, stem: !0 },
- { id: 'rcurveline', min: 8, resetStack: !0 },
- { id: 'rlinecurve', min: 8, resetStack: !0 },
- { id: 'vvcurveto', min: 4, resetStack: !0 },
- { id: 'hhcurveto', min: 4, resetStack: !0 },
- null,
- { id: 'callgsubr', min: 1, undefStack: !0 },
- { id: 'vhcurveto', min: 4, resetStack: !0 },
- { id: 'hvcurveto', min: 4, resetStack: !0 },
- ],
- l = [
- null,
- null,
- null,
- { id: 'and', min: 2, stackDelta: -1 },
- { id: 'or', min: 2, stackDelta: -1 },
- { id: 'not', min: 1, stackDelta: 0 },
- null,
- null,
- null,
- { id: 'abs', min: 1, stackDelta: 0 },
- {
- id: 'add',
- min: 2,
- stackDelta: -1,
- stackFn(e, t) {
- e[t - 2] = e[t - 2] + e[t - 1];
- },
- },
- {
- id: 'sub',
- min: 2,
- stackDelta: -1,
- stackFn(e, t) {
- e[t - 2] = e[t - 2] - e[t - 1];
- },
- },
- {
- id: 'div',
- min: 2,
- stackDelta: -1,
- stackFn(e, t) {
- e[t - 2] = e[t - 2] / e[t - 1];
- },
- },
- null,
- {
- id: 'neg',
- min: 1,
- stackDelta: 0,
- stackFn(e, t) {
- e[t - 1] = -e[t - 1];
- },
- },
- { id: 'eq', min: 2, stackDelta: -1 },
- null,
- null,
- { id: 'drop', min: 1, stackDelta: -1 },
- null,
- { id: 'put', min: 2, stackDelta: -2 },
- { id: 'get', min: 1, stackDelta: 0 },
- { id: 'ifelse', min: 4, stackDelta: -3 },
- { id: 'random', min: 0, stackDelta: 1 },
- {
- id: 'mul',
- min: 2,
- stackDelta: -1,
- stackFn(e, t) {
- e[t - 2] = e[t - 2] * e[t - 1];
- },
- },
- null,
- { id: 'sqrt', min: 1, stackDelta: 0 },
- { id: 'dup', min: 1, stackDelta: 1 },
- { id: 'exch', min: 2, stackDelta: 0 },
- { id: 'index', min: 2, stackDelta: 0 },
- { id: 'roll', min: 3, stackDelta: -2 },
- null,
- null,
- null,
- { id: 'hflex', min: 7, resetStack: !0 },
- { id: 'flex', min: 13, resetStack: !0 },
- { id: 'hflex1', min: 9, resetStack: !0 },
- { id: 'flex1', min: 11, resetStack: !0 },
- ];
- t.CFFParser = class CFFParser {
- constructor(e, t, a) {
- this.bytes = e.getBytes();
- this.properties = t;
- this.seacAnalysisEnabled = !!a;
- }
- parse() {
- const e = this.properties,
- t = new CFF();
- this.cff = t;
- const a = this.parseHeader(),
- r = this.parseIndex(a.endPos),
- i = this.parseIndex(r.endPos),
- n = this.parseIndex(i.endPos),
- s = this.parseIndex(n.endPos),
- o = this.parseDict(i.obj.get(0)),
- c = this.createDict(CFFTopDict, o, t.strings);
- t.header = a.obj;
- t.names = this.parseNameIndex(r.obj);
- t.strings = this.parseStringIndex(n.obj);
- t.topDict = c;
- t.globalSubrIndex = s.obj;
- this.parsePrivateDict(t.topDict);
- t.isCIDFont = c.hasName('ROS');
- const l = c.getByName('CharStrings'),
- h = this.parseIndex(l).obj,
- u = c.getByName('FontMatrix');
- u && (e.fontMatrix = u);
- const d = c.getByName('FontBBox');
- if (d) {
- e.ascent = Math.max(d[3], d[1]);
- e.descent = Math.min(d[1], d[3]);
- e.ascentScaled = !0;
- }
- let f, g;
- if (t.isCIDFont) {
- const e = this.parseIndex(c.getByName('FDArray')).obj;
- for (let a = 0, r = e.count; a < r; ++a) {
- const r = e.get(a),
- i = this.createDict(CFFTopDict, this.parseDict(r), t.strings);
- this.parsePrivateDict(i);
- t.fdArray.push(i);
- }
- g = null;
- f = this.parseCharsets(c.getByName('charset'), h.count, t.strings, !0);
- t.fdSelect = this.parseFDSelect(c.getByName('FDSelect'), h.count);
- } else {
- f = this.parseCharsets(c.getByName('charset'), h.count, t.strings, !1);
- g = this.parseEncoding(c.getByName('Encoding'), e, t.strings, f.charset);
- }
- t.charset = f;
- t.encoding = g;
- const p = this.parseCharStrings({
- charStrings: h,
- localSubrIndex: c.privateDict.subrsIndex,
- globalSubrIndex: s.obj,
- fdSelect: t.fdSelect,
- fdArray: t.fdArray,
- privateDict: c.privateDict,
- });
- t.charStrings = p.charStrings;
- t.seacs = p.seacs;
- t.widths = p.widths;
- return t;
- }
- parseHeader() {
- let e = this.bytes;
- const t = e.length;
- let a = 0;
- for (; a < t && 1 !== e[a]; ) ++a;
- if (a >= t) throw new r.FormatError('Invalid CFF header');
- if (0 !== a) {
- (0, r.info)('cff data is shifted');
- e = e.subarray(a);
- this.bytes = e;
- }
- const i = e[0],
- n = e[1],
- s = e[2],
- o = e[3];
- return { obj: new CFFHeader(i, n, s, o), endPos: s };
- }
- parseDict(e) {
- let t = 0;
- function parseOperand() {
- let a = e[t++];
- if (30 === a)
- return (function parseFloatOperand() {
- let a = '';
- const r = 15,
- i = [
- '0',
- '1',
- '2',
- '3',
- '4',
- '5',
- '6',
- '7',
- '8',
- '9',
- '.',
- 'E',
- 'E-',
- null,
- '-',
- ],
- n = e.length;
- for (; t < n; ) {
- const n = e[t++],
- s = n >> 4,
- o = 15 & n;
- if (s === r) break;
- a += i[s];
- if (o === r) break;
- a += i[o];
- }
- return parseFloat(a);
- })();
- if (28 === a) {
- a = e[t++];
- a = ((a << 24) | (e[t++] << 16)) >> 16;
- return a;
- }
- if (29 === a) {
- a = e[t++];
- a = (a << 8) | e[t++];
- a = (a << 8) | e[t++];
- a = (a << 8) | e[t++];
- return a;
- }
- if (a >= 32 && a <= 246) return a - 139;
- if (a >= 247 && a <= 250) return 256 * (a - 247) + e[t++] + 108;
- if (a >= 251 && a <= 254) return -256 * (a - 251) - e[t++] - 108;
- (0, r.warn)('CFFParser_parseDict: "' + a + '" is a reserved command.');
- return NaN;
- }
- let a = [];
- const i = [];
- t = 0;
- const n = e.length;
- for (; t < n; ) {
- let r = e[t];
- if (r <= 21) {
- 12 === r && (r = (r << 8) | e[++t]);
- i.push([r, a]);
- a = [];
- ++t;
- } else a.push(parseOperand());
- }
- return i;
- }
- parseIndex(e) {
- const t = new CFFIndex(),
- a = this.bytes,
- r = (a[e++] << 8) | a[e++],
- i = [];
- let n,
- s,
- o = e;
- if (0 !== r) {
- const t = a[e++],
- c = e + (r + 1) * t - 1;
- for (n = 0, s = r + 1; n < s; ++n) {
- let r = 0;
- for (let i = 0; i < t; ++i) {
- r <<= 8;
- r += a[e++];
- }
- i.push(c + r);
- }
- o = i[r];
- }
- for (n = 0, s = i.length - 1; n < s; ++n) {
- const e = i[n],
- r = i[n + 1];
- t.add(a.subarray(e, r));
- }
- return { obj: t, endPos: o };
- }
- parseNameIndex(e) {
- const t = [];
- for (let a = 0, i = e.count; a < i; ++a) {
- const i = e.get(a);
- t.push((0, r.bytesToString)(i));
- }
- return t;
- }
- parseStringIndex(e) {
- const t = new CFFStrings();
- for (let a = 0, i = e.count; a < i; ++a) {
- const i = e.get(a);
- t.add((0, r.bytesToString)(i));
- }
- return t;
- }
- createDict(e, t, a) {
- const r = new e(a);
- for (const [e, a] of t) r.setByKey(e, a);
- return r;
- }
- parseCharString(e, t, a, i) {
- if (!t || e.callDepth > 10) return !1;
- let n = e.stackSize;
- const s = e.stack;
- let o = t.length;
- for (let h = 0; h < o; ) {
- const u = t[h++];
- let d = null;
- if (12 === u) {
- const e = t[h++];
- if (0 === e) {
- t[h - 2] = 139;
- t[h - 1] = 22;
- n = 0;
- } else d = l[e];
- } else if (28 === u) {
- s[n] = ((t[h] << 24) | (t[h + 1] << 16)) >> 16;
- h += 2;
- n++;
- } else if (14 === u) {
- if (n >= 4) {
- n -= 4;
- if (this.seacAnalysisEnabled) {
- e.seac = s.slice(n, n + 4);
- return !1;
- }
- }
- d = c[u];
- } else if (u >= 32 && u <= 246) {
- s[n] = u - 139;
- n++;
- } else if (u >= 247 && u <= 254) {
- s[n] = u < 251 ? ((u - 247) << 8) + t[h] + 108 : -((u - 251) << 8) - t[h] - 108;
- h++;
- n++;
- } else if (255 === u) {
- s[n] = ((t[h] << 24) | (t[h + 1] << 16) | (t[h + 2] << 8) | t[h + 3]) / 65536;
- h += 4;
- n++;
- } else if (19 === u || 20 === u) {
- e.hints += n >> 1;
- h += (e.hints + 7) >> 3;
- n %= 2;
- d = c[u];
- } else {
- if (10 === u || 29 === u) {
- let t;
- t = 10 === u ? a : i;
- if (!t) {
- d = c[u];
- (0, r.warn)('Missing subrsIndex for ' + d.id);
- return !1;
- }
- let o = 32768;
- t.count < 1240 ? (o = 107) : t.count < 33900 && (o = 1131);
- const l = s[--n] + o;
- if (l < 0 || l >= t.count || isNaN(l)) {
- d = c[u];
- (0, r.warn)('Out of bounds subrIndex for ' + d.id);
- return !1;
- }
- e.stackSize = n;
- e.callDepth++;
- if (!this.parseCharString(e, t.get(l), a, i)) return !1;
- e.callDepth--;
- n = e.stackSize;
- continue;
- }
- if (11 === u) {
- e.stackSize = n;
- return !0;
- }
- if (0 === u && h === t.length) {
- t[h - 1] = 14;
- d = c[14];
- } else {
- if (9 === u) {
- t.copyWithin(h - 1, h, -1);
- h -= 1;
- o -= 1;
- continue;
- }
- d = c[u];
- }
- }
- if (d) {
- if (d.stem) {
- e.hints += n >> 1;
- if (3 === u || 23 === u) e.hasVStems = !0;
- else if (e.hasVStems && (1 === u || 18 === u)) {
- (0, r.warn)('CFF stem hints are in wrong order');
- t[h - 1] = 1 === u ? 3 : 23;
- }
- }
- if ('min' in d && !e.undefStack && n < d.min) {
- (0, r.warn)(
- 'Not enough parameters for ' +
- d.id +
- '; actual: ' +
- n +
- ', expected: ' +
- d.min,
- );
- if (0 === n) {
- t[h - 1] = 14;
- return !0;
- }
- return !1;
- }
- if (e.firstStackClearing && d.stackClearing) {
- e.firstStackClearing = !1;
- n -= d.min;
- n >= 2 && d.stem
- ? (n %= 2)
- : n > 1 &&
- (0, r.warn)('Found too many parameters for stack-clearing command');
- n > 0 && (e.width = s[n - 1]);
- }
- if ('stackDelta' in d) {
- 'stackFn' in d && d.stackFn(s, n);
- n += d.stackDelta;
- } else if (d.stackClearing) n = 0;
- else if (d.resetStack) {
- n = 0;
- e.undefStack = !1;
- } else if (d.undefStack) {
- n = 0;
- e.undefStack = !0;
- e.firstStackClearing = !1;
- }
- }
- }
- o < t.length && t.fill(14, o);
- e.stackSize = n;
- return !0;
- }
- parseCharStrings({
- charStrings: e,
- localSubrIndex: t,
- globalSubrIndex: a,
- fdSelect: i,
- fdArray: n,
- privateDict: s,
- }) {
- const o = [],
- c = [],
- l = e.count;
- for (let h = 0; h < l; h++) {
- const l = e.get(h),
- u = {
- callDepth: 0,
- stackSize: 0,
- stack: [],
- undefStack: !0,
- hints: 0,
- firstStackClearing: !0,
- seac: null,
- width: null,
- hasVStems: !1,
- };
- let d = !0,
- f = null,
- g = s;
- if (i && n.length) {
- const e = i.getFDIndex(h);
- if (-1 === e) {
- (0, r.warn)('Glyph index is not in fd select.');
- d = !1;
- }
- if (e >= n.length) {
- (0, r.warn)('Invalid fd index for glyph index.');
- d = !1;
- }
- if (d) {
- g = n[e].privateDict;
- f = g.subrsIndex;
- }
- } else t && (f = t);
- d && (d = this.parseCharString(u, l, f, a));
- if (null !== u.width) {
- const e = g.getByName('nominalWidthX');
- c[h] = e + u.width;
- } else {
- const e = g.getByName('defaultWidthX');
- c[h] = e;
- }
- null !== u.seac && (o[h] = u.seac);
- d || e.set(h, new Uint8Array([14]));
- }
- return { charStrings: e, seacs: o, widths: c };
- }
- emptyPrivateDictionary(e) {
- const t = this.createDict(CFFPrivateDict, [], e.strings);
- e.setByKey(18, [0, 0]);
- e.privateDict = t;
- }
- parsePrivateDict(e) {
- if (!e.hasName('Private')) {
- this.emptyPrivateDictionary(e);
- return;
- }
- const t = e.getByName('Private');
- if (!Array.isArray(t) || 2 !== t.length) {
- e.removeByName('Private');
- return;
- }
- const a = t[0],
- r = t[1];
- if (0 === a || r >= this.bytes.length) {
- this.emptyPrivateDictionary(e);
- return;
- }
- const i = r + a,
- n = this.bytes.subarray(r, i),
- s = this.parseDict(n),
- o = this.createDict(CFFPrivateDict, s, e.strings);
- e.privateDict = o;
- 0 === o.getByName('ExpansionFactor') && o.setByName('ExpansionFactor', 0.06);
- if (!o.getByName('Subrs')) return;
- const c = o.getByName('Subrs'),
- l = r + c;
- if (0 === c || l >= this.bytes.length) {
- this.emptyPrivateDictionary(e);
- return;
- }
- const h = this.parseIndex(l);
- o.subrsIndex = h.obj;
- }
- parseCharsets(e, t, a, n) {
- if (0 === e) return new CFFCharset(!0, d.ISO_ADOBE, i.ISOAdobeCharset);
- if (1 === e) return new CFFCharset(!0, d.EXPERT, i.ExpertCharset);
- if (2 === e) return new CFFCharset(!0, d.EXPERT_SUBSET, i.ExpertSubsetCharset);
- const s = this.bytes,
- o = e,
- c = s[e++],
- l = [n ? 0 : '.notdef'];
- let h, u, f;
- t -= 1;
- switch (c) {
- case 0:
- for (f = 0; f < t; f++) {
- h = (s[e++] << 8) | s[e++];
- l.push(n ? h : a.get(h));
- }
- break;
- case 1:
- for (; l.length <= t; ) {
- h = (s[e++] << 8) | s[e++];
- u = s[e++];
- for (f = 0; f <= u; f++) l.push(n ? h++ : a.get(h++));
- }
- break;
- case 2:
- for (; l.length <= t; ) {
- h = (s[e++] << 8) | s[e++];
- u = (s[e++] << 8) | s[e++];
- for (f = 0; f <= u; f++) l.push(n ? h++ : a.get(h++));
- }
- break;
- default:
- throw new r.FormatError('Unknown charset format');
- }
- const g = e,
- p = s.subarray(o, g);
- return new CFFCharset(!1, c, l, p);
- }
- parseEncoding(e, t, a, i) {
- const s = Object.create(null),
- o = this.bytes;
- let c,
- l,
- h,
- u = !1,
- d = null;
- if (0 === e || 1 === e) {
- u = !0;
- c = e;
- const t = e ? n.ExpertEncoding : n.StandardEncoding;
- for (l = 0, h = i.length; l < h; l++) {
- const e = t.indexOf(i[l]);
- -1 !== e && (s[e] = l);
- }
- } else {
- const t = e;
- c = o[e++];
- switch (127 & c) {
- case 0:
- const t = o[e++];
- for (l = 1; l <= t; l++) s[o[e++]] = l;
- break;
- case 1:
- const a = o[e++];
- let i = 1;
- for (l = 0; l < a; l++) {
- const t = o[e++],
- a = o[e++];
- for (let e = t; e <= t + a; e++) s[e] = i++;
- }
- break;
- default:
- throw new r.FormatError(`Unknown encoding format: ${c} in CFF`);
- }
- const n = e;
- if (128 & c) {
- o[t] &= 127;
- !(function readSupplement() {
- const t = o[e++];
- for (l = 0; l < t; l++) {
- const t = o[e++],
- r = (o[e++] << 8) + (255 & o[e++]);
- s[t] = i.indexOf(a.get(r));
- }
- })();
- }
- d = o.subarray(t, n);
- }
- c &= 127;
- return new CFFEncoding(u, c, s, d);
- }
- parseFDSelect(e, t) {
- const a = this.bytes,
- i = a[e++],
- n = [];
- let s;
- switch (i) {
- case 0:
- for (s = 0; s < t; ++s) {
- const t = a[e++];
- n.push(t);
- }
- break;
- case 3:
- const o = (a[e++] << 8) | a[e++];
- for (s = 0; s < o; ++s) {
- let t = (a[e++] << 8) | a[e++];
- if (0 === s && 0 !== t) {
- (0, r.warn)(
- 'parseFDSelect: The first range must have a first GID of 0 -- trying to recover.',
- );
- t = 0;
- }
- const i = a[e++],
- o = (a[e] << 8) | a[e + 1];
- for (let e = t; e < o; ++e) n.push(i);
- }
- e += 2;
- break;
- default:
- throw new r.FormatError(`parseFDSelect: Unknown format "${i}".`);
- }
- if (n.length !== t) throw new r.FormatError('parseFDSelect: Invalid font data.');
- return new CFFFDSelect(i, n);
- }
- };
- class CFF {
- constructor() {
- this.header = null;
- this.names = [];
- this.topDict = null;
- this.strings = new CFFStrings();
- this.globalSubrIndex = null;
- this.encoding = null;
- this.charset = null;
- this.charStrings = null;
- this.fdArray = [];
- this.fdSelect = null;
- this.isCIDFont = !1;
- }
- duplicateFirstGlyph() {
- if (this.charStrings.count >= 65535) {
- (0, r.warn)('Not enough space in charstrings to duplicate first glyph.');
- return;
- }
- const e = this.charStrings.get(0);
- this.charStrings.add(e);
- this.isCIDFont && this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]);
- }
- hasGlyphId(e) {
- if (e < 0 || e >= this.charStrings.count) return !1;
- return this.charStrings.get(e).length > 0;
- }
- }
- t.CFF = CFF;
- class CFFHeader {
- constructor(e, t, a, r) {
- this.major = e;
- this.minor = t;
- this.hdrSize = a;
- this.offSize = r;
- }
- }
- t.CFFHeader = CFFHeader;
- class CFFStrings {
- constructor() {
- this.strings = [];
- }
- get(e) {
- return e >= 0 && e <= 390
- ? s[e]
- : e - o <= this.strings.length
- ? this.strings[e - o]
- : s[0];
- }
- getSID(e) {
- let t = s.indexOf(e);
- if (-1 !== t) return t;
- t = this.strings.indexOf(e);
- return -1 !== t ? t + o : -1;
- }
- add(e) {
- this.strings.push(e);
- }
- get count() {
- return this.strings.length;
- }
- }
- t.CFFStrings = CFFStrings;
- class CFFIndex {
- constructor() {
- this.objects = [];
- this.length = 0;
- }
- add(e) {
- this.length += e.length;
- this.objects.push(e);
- }
- set(e, t) {
- this.length += t.length - this.objects[e].length;
- this.objects[e] = t;
- }
- get(e) {
- return this.objects[e];
- }
- get count() {
- return this.objects.length;
- }
- }
- t.CFFIndex = CFFIndex;
- class CFFDict {
- constructor(e, t) {
- this.keyToNameMap = e.keyToNameMap;
- this.nameToKeyMap = e.nameToKeyMap;
- this.defaults = e.defaults;
- this.types = e.types;
- this.opcodes = e.opcodes;
- this.order = e.order;
- this.strings = t;
- this.values = Object.create(null);
- }
- setByKey(e, t) {
- if (!(e in this.keyToNameMap)) return !1;
- if (0 === t.length) return !0;
- for (const a of t)
- if (isNaN(a)) {
- (0, r.warn)(`Invalid CFFDict value: "${t}" for key "${e}".`);
- return !0;
- }
- const a = this.types[e];
- ('num' !== a && 'sid' !== a && 'offset' !== a) || (t = t[0]);
- this.values[e] = t;
- return !0;
- }
- setByName(e, t) {
- if (!(e in this.nameToKeyMap))
- throw new r.FormatError(`Invalid dictionary name "${e}"`);
- this.values[this.nameToKeyMap[e]] = t;
- }
- hasName(e) {
- return this.nameToKeyMap[e] in this.values;
- }
- getByName(e) {
- if (!(e in this.nameToKeyMap))
- throw new r.FormatError(`Invalid dictionary name ${e}"`);
- const t = this.nameToKeyMap[e];
- return t in this.values ? this.values[t] : this.defaults[t];
- }
- removeByName(e) {
- delete this.values[this.nameToKeyMap[e]];
- }
- static createTables(e) {
- const t = {
- keyToNameMap: {},
- nameToKeyMap: {},
- defaults: {},
- types: {},
- opcodes: {},
- order: [],
- };
- for (const a of e) {
- const e = Array.isArray(a[0]) ? (a[0][0] << 8) + a[0][1] : a[0];
- t.keyToNameMap[e] = a[1];
- t.nameToKeyMap[a[1]] = e;
- t.types[e] = a[2];
- t.defaults[e] = a[3];
- t.opcodes[e] = Array.isArray(a[0]) ? a[0] : [a[0]];
- t.order.push(e);
- }
- return t;
- }
- }
- const h = [
- [[12, 30], 'ROS', ['sid', 'sid', 'num'], null],
- [[12, 20], 'SyntheticBase', 'num', null],
- [0, 'version', 'sid', null],
- [1, 'Notice', 'sid', null],
- [[12, 0], 'Copyright', 'sid', null],
- [2, 'FullName', 'sid', null],
- [3, 'FamilyName', 'sid', null],
- [4, 'Weight', 'sid', null],
- [[12, 1], 'isFixedPitch', 'num', 0],
- [[12, 2], 'ItalicAngle', 'num', 0],
- [[12, 3], 'UnderlinePosition', 'num', -100],
- [[12, 4], 'UnderlineThickness', 'num', 50],
- [[12, 5], 'PaintType', 'num', 0],
- [[12, 6], 'CharstringType', 'num', 2],
- [
- [12, 7],
- 'FontMatrix',
- ['num', 'num', 'num', 'num', 'num', 'num'],
- [0.001, 0, 0, 0.001, 0, 0],
- ],
- [13, 'UniqueID', 'num', null],
- [5, 'FontBBox', ['num', 'num', 'num', 'num'], [0, 0, 0, 0]],
- [[12, 8], 'StrokeWidth', 'num', 0],
- [14, 'XUID', 'array', null],
- [15, 'charset', 'offset', 0],
- [16, 'Encoding', 'offset', 0],
- [17, 'CharStrings', 'offset', 0],
- [18, 'Private', ['offset', 'offset'], null],
- [[12, 21], 'PostScript', 'sid', null],
- [[12, 22], 'BaseFontName', 'sid', null],
- [[12, 23], 'BaseFontBlend', 'delta', null],
- [[12, 31], 'CIDFontVersion', 'num', 0],
- [[12, 32], 'CIDFontRevision', 'num', 0],
- [[12, 33], 'CIDFontType', 'num', 0],
- [[12, 34], 'CIDCount', 'num', 8720],
- [[12, 35], 'UIDBase', 'num', null],
- [[12, 37], 'FDSelect', 'offset', null],
- [[12, 36], 'FDArray', 'offset', null],
- [[12, 38], 'FontName', 'sid', null],
- ];
- class CFFTopDict extends CFFDict {
- static get tables() {
- return (0, r.shadow)(this, 'tables', this.createTables(h));
- }
- constructor(e) {
- super(CFFTopDict.tables, e);
- this.privateDict = null;
- }
- }
- t.CFFTopDict = CFFTopDict;
- const u = [
- [6, 'BlueValues', 'delta', null],
- [7, 'OtherBlues', 'delta', null],
- [8, 'FamilyBlues', 'delta', null],
- [9, 'FamilyOtherBlues', 'delta', null],
- [[12, 9], 'BlueScale', 'num', 0.039625],
- [[12, 10], 'BlueShift', 'num', 7],
- [[12, 11], 'BlueFuzz', 'num', 1],
- [10, 'StdHW', 'num', null],
- [11, 'StdVW', 'num', null],
- [[12, 12], 'StemSnapH', 'delta', null],
- [[12, 13], 'StemSnapV', 'delta', null],
- [[12, 14], 'ForceBold', 'num', 0],
- [[12, 17], 'LanguageGroup', 'num', 0],
- [[12, 18], 'ExpansionFactor', 'num', 0.06],
- [[12, 19], 'initialRandomSeed', 'num', 0],
- [20, 'defaultWidthX', 'num', 0],
- [21, 'nominalWidthX', 'num', 0],
- [19, 'Subrs', 'offset', null],
- ];
- class CFFPrivateDict extends CFFDict {
- static get tables() {
- return (0, r.shadow)(this, 'tables', this.createTables(u));
- }
- constructor(e) {
- super(CFFPrivateDict.tables, e);
- this.subrsIndex = null;
- }
- }
- t.CFFPrivateDict = CFFPrivateDict;
- const d = { ISO_ADOBE: 0, EXPERT: 1, EXPERT_SUBSET: 2 };
- class CFFCharset {
- constructor(e, t, a, r) {
- this.predefined = e;
- this.format = t;
- this.charset = a;
- this.raw = r;
- }
- }
- t.CFFCharset = CFFCharset;
- class CFFEncoding {
- constructor(e, t, a, r) {
- this.predefined = e;
- this.format = t;
- this.encoding = a;
- this.raw = r;
- }
- }
- class CFFFDSelect {
- constructor(e, t) {
- this.format = e;
- this.fdSelect = t;
- }
- getFDIndex(e) {
- return e < 0 || e >= this.fdSelect.length ? -1 : this.fdSelect[e];
- }
- }
- t.CFFFDSelect = CFFFDSelect;
- class CFFOffsetTracker {
- constructor() {
- this.offsets = Object.create(null);
- }
- isTracking(e) {
- return e in this.offsets;
- }
- track(e, t) {
- if (e in this.offsets) throw new r.FormatError(`Already tracking location of ${e}`);
- this.offsets[e] = t;
- }
- offset(e) {
- for (const t in this.offsets) this.offsets[t] += e;
- }
- setEntryLocation(e, t, a) {
- if (!(e in this.offsets)) throw new r.FormatError(`Not tracking location of ${e}`);
- const i = a.data,
- n = this.offsets[e];
- for (let e = 0, a = t.length; e < a; ++e) {
- const a = 5 * e + n,
- s = a + 1,
- o = a + 2,
- c = a + 3,
- l = a + 4;
- if (29 !== i[a] || 0 !== i[s] || 0 !== i[o] || 0 !== i[c] || 0 !== i[l])
- throw new r.FormatError('writing to an offset that is not empty');
- const h = t[e];
- i[a] = 29;
- i[s] = (h >> 24) & 255;
- i[o] = (h >> 16) & 255;
- i[c] = (h >> 8) & 255;
- i[l] = 255 & h;
- }
- }
- }
- class CFFCompiler {
- constructor(e) {
- this.cff = e;
- }
- compile() {
- const e = this.cff,
- t = {
- data: [],
- length: 0,
- add(e) {
- e.length <= 65536 ? this.data.push(...e) : (this.data = this.data.concat(e));
- this.length = this.data.length;
- },
- },
- a = this.compileHeader(e.header);
- t.add(a);
- const i = this.compileNameIndex(e.names);
- t.add(i);
- if (e.isCIDFont && e.topDict.hasName('FontMatrix')) {
- const t = e.topDict.getByName('FontMatrix');
- e.topDict.removeByName('FontMatrix');
- for (const a of e.fdArray) {
- let e = t.slice(0);
- a.hasName('FontMatrix') && (e = r.Util.transform(e, a.getByName('FontMatrix')));
- a.setByName('FontMatrix', e);
- }
- }
- const n = e.topDict.getByName('XUID');
- n && n.length > 16 && e.topDict.removeByName('XUID');
- e.topDict.setByName('charset', 0);
- let s = this.compileTopDicts([e.topDict], t.length, e.isCIDFont);
- t.add(s.output);
- const o = s.trackers[0],
- c = this.compileStringIndex(e.strings.strings);
- t.add(c);
- const l = this.compileIndex(e.globalSubrIndex);
- t.add(l);
- if (e.encoding && e.topDict.hasName('Encoding'))
- if (e.encoding.predefined) o.setEntryLocation('Encoding', [e.encoding.format], t);
- else {
- const a = this.compileEncoding(e.encoding);
- o.setEntryLocation('Encoding', [t.length], t);
- t.add(a);
- }
- const h = this.compileCharset(e.charset, e.charStrings.count, e.strings, e.isCIDFont);
- o.setEntryLocation('charset', [t.length], t);
- t.add(h);
- const u = this.compileCharStrings(e.charStrings);
- o.setEntryLocation('CharStrings', [t.length], t);
- t.add(u);
- if (e.isCIDFont) {
- o.setEntryLocation('FDSelect', [t.length], t);
- const a = this.compileFDSelect(e.fdSelect);
- t.add(a);
- s = this.compileTopDicts(e.fdArray, t.length, !0);
- o.setEntryLocation('FDArray', [t.length], t);
- t.add(s.output);
- const r = s.trackers;
- this.compilePrivateDicts(e.fdArray, r, t);
- }
- this.compilePrivateDicts([e.topDict], [o], t);
- t.add([0]);
- return t.data;
- }
- encodeNumber(e) {
- return Number.isInteger(e) ? this.encodeInteger(e) : this.encodeFloat(e);
- }
- static get EncodeFloatRegExp() {
- return (0, r.shadow)(
- this,
- 'EncodeFloatRegExp',
- /\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/,
- );
- }
- encodeFloat(e) {
- let t = e.toString();
- const a = CFFCompiler.EncodeFloatRegExp.exec(t);
- if (a) {
- const r = parseFloat('1e' + ((a[2] ? +a[2] : 0) + a[1].length));
- t = (Math.round(e * r) / r).toString();
- }
- let r,
- i,
- n = '';
- for (r = 0, i = t.length; r < i; ++r) {
- const e = t[r];
- n +=
- 'e' === e ? ('-' === t[++r] ? 'c' : 'b') : '.' === e ? 'a' : '-' === e ? 'e' : e;
- }
- n += 1 & n.length ? 'f' : 'ff';
- const s = [30];
- for (r = 0, i = n.length; r < i; r += 2) s.push(parseInt(n.substring(r, r + 2), 16));
- return s;
- }
- encodeInteger(e) {
- let t;
- t =
- e >= -107 && e <= 107
- ? [e + 139]
- : e >= 108 && e <= 1131
- ? [247 + ((e -= 108) >> 8), 255 & e]
- : e >= -1131 && e <= -108
- ? [251 + ((e = -e - 108) >> 8), 255 & e]
- : e >= -32768 && e <= 32767
- ? [28, (e >> 8) & 255, 255 & e]
- : [29, (e >> 24) & 255, (e >> 16) & 255, (e >> 8) & 255, 255 & e];
- return t;
- }
- compileHeader(e) {
- return [e.major, e.minor, 4, e.offSize];
- }
- compileNameIndex(e) {
- const t = new CFFIndex();
- for (const a of e) {
- const e = Math.min(a.length, 127);
- let i = new Array(e);
- for (let t = 0; t < e; t++) {
- let e = a[t];
- (e < '!' ||
- e > '~' ||
- '[' === e ||
- ']' === e ||
- '(' === e ||
- ')' === e ||
- '{' === e ||
- '}' === e ||
- '<' === e ||
- '>' === e ||
- '/' === e ||
- '%' === e) &&
- (e = '_');
- i[t] = e;
- }
- i = i.join('');
- '' === i && (i = 'Bad_Font_Name');
- t.add((0, r.stringToBytes)(i));
- }
- return this.compileIndex(t);
- }
- compileTopDicts(e, t, a) {
- const r = [];
- let i = new CFFIndex();
- for (const n of e) {
- if (a) {
- n.removeByName('CIDFontVersion');
- n.removeByName('CIDFontRevision');
- n.removeByName('CIDFontType');
- n.removeByName('CIDCount');
- n.removeByName('UIDBase');
- }
- const e = new CFFOffsetTracker(),
- s = this.compileDict(n, e);
- r.push(e);
- i.add(s);
- e.offset(t);
- }
- i = this.compileIndex(i, r);
- return { trackers: r, output: i };
- }
- compilePrivateDicts(e, t, a) {
- for (let i = 0, n = e.length; i < n; ++i) {
- const n = e[i],
- s = n.privateDict;
- if (!s || !n.hasName('Private'))
- throw new r.FormatError('There must be a private dictionary.');
- const o = new CFFOffsetTracker(),
- c = this.compileDict(s, o);
- let l = a.length;
- o.offset(l);
- c.length || (l = 0);
- t[i].setEntryLocation('Private', [c.length, l], a);
- a.add(c);
- if (s.subrsIndex && s.hasName('Subrs')) {
- const e = this.compileIndex(s.subrsIndex);
- o.setEntryLocation('Subrs', [c.length], a);
- a.add(e);
- }
- }
- }
- compileDict(e, t) {
- const a = [];
- for (const i of e.order) {
- if (!(i in e.values)) continue;
- let n = e.values[i],
- s = e.types[i];
- Array.isArray(s) || (s = [s]);
- Array.isArray(n) || (n = [n]);
- if (0 !== n.length) {
- for (let o = 0, c = s.length; o < c; ++o) {
- const c = s[o],
- l = n[o];
- switch (c) {
- case 'num':
- case 'sid':
- a.push(...this.encodeNumber(l));
- break;
- case 'offset':
- const s = e.keyToNameMap[i];
- t.isTracking(s) || t.track(s, a.length);
- a.push(29, 0, 0, 0, 0);
- break;
- case 'array':
- case 'delta':
- a.push(...this.encodeNumber(l));
- for (let e = 1, t = n.length; e < t; ++e)
- a.push(...this.encodeNumber(n[e]));
- break;
- default:
- throw new r.FormatError(`Unknown data type of ${c}`);
- }
- }
- a.push(...e.opcodes[i]);
- }
- }
- return a;
- }
- compileStringIndex(e) {
- const t = new CFFIndex();
- for (const a of e) t.add((0, r.stringToBytes)(a));
- return this.compileIndex(t);
- }
- compileCharStrings(e) {
- const t = new CFFIndex();
- for (let a = 0; a < e.count; a++) {
- const r = e.get(a);
- 0 !== r.length ? t.add(r) : t.add(new Uint8Array([139, 14]));
- }
- return this.compileIndex(t);
- }
- compileCharset(e, t, a, i) {
- let n;
- const s = t - 1;
- if (i) n = new Uint8Array([2, 0, 0, (s >> 8) & 255, 255 & s]);
- else {
- n = new Uint8Array(1 + 2 * s);
- n[0] = 0;
- let t = 0;
- const i = e.charset.length;
- let o = !1;
- for (let s = 1; s < n.length; s += 2) {
- let c = 0;
- if (t < i) {
- const i = e.charset[t++];
- c = a.getSID(i);
- if (-1 === c) {
- c = 0;
- if (!o) {
- o = !0;
- (0, r.warn)(`Couldn't find ${i} in CFF strings`);
- }
- }
- }
- n[s] = (c >> 8) & 255;
- n[s + 1] = 255 & c;
- }
- }
- return this.compileTypedArray(n);
- }
- compileEncoding(e) {
- return this.compileTypedArray(e.raw);
- }
- compileFDSelect(e) {
- const t = e.format;
- let a, r;
- switch (t) {
- case 0:
- a = new Uint8Array(1 + e.fdSelect.length);
- a[0] = t;
- for (r = 0; r < e.fdSelect.length; r++) a[r + 1] = e.fdSelect[r];
- break;
- case 3:
- const i = 0;
- let n = e.fdSelect[0];
- const s = [t, 0, 0, (i >> 8) & 255, 255 & i, n];
- for (r = 1; r < e.fdSelect.length; r++) {
- const t = e.fdSelect[r];
- if (t !== n) {
- s.push((r >> 8) & 255, 255 & r, t);
- n = t;
- }
- }
- const o = (s.length - 3) / 3;
- s[1] = (o >> 8) & 255;
- s[2] = 255 & o;
- s.push((r >> 8) & 255, 255 & r);
- a = new Uint8Array(s);
- }
- return this.compileTypedArray(a);
- }
- compileTypedArray(e) {
- return Array.from(e);
- }
- compileIndex(e, t = []) {
- const a = e.objects,
- r = a.length;
- if (0 === r) return [0, 0];
- const i = [(r >> 8) & 255, 255 & r];
- let n,
- s,
- o = 1;
- for (n = 0; n < r; ++n) o += a[n].length;
- s = o < 256 ? 1 : o < 65536 ? 2 : o < 16777216 ? 3 : 4;
- i.push(s);
- let c = 1;
- for (n = 0; n < r + 1; n++) {
- 1 === s
- ? i.push(255 & c)
- : 2 === s
- ? i.push((c >> 8) & 255, 255 & c)
- : 3 === s
- ? i.push((c >> 16) & 255, (c >> 8) & 255, 255 & c)
- : i.push((c >>> 24) & 255, (c >> 16) & 255, (c >> 8) & 255, 255 & c);
- a[n] && (c += a[n].length);
- }
- for (n = 0; n < r; n++) {
- t[n] && t[n].offset(i.length);
- i.push(...a[n]);
- }
- return i;
- }
- }
- t.CFFCompiler = CFFCompiler;
- },
- (e, t) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.ISOAdobeCharset = t.ExpertSubsetCharset = t.ExpertCharset = void 0;
- t.ISOAdobeCharset = [
- '.notdef',
- 'space',
- 'exclam',
- 'quotedbl',
- 'numbersign',
- 'dollar',
- 'percent',
- 'ampersand',
- 'quoteright',
- 'parenleft',
- 'parenright',
- 'asterisk',
- 'plus',
- 'comma',
- 'hyphen',
- 'period',
- 'slash',
- 'zero',
- 'one',
- 'two',
- 'three',
- 'four',
- 'five',
- 'six',
- 'seven',
- 'eight',
- 'nine',
- 'colon',
- 'semicolon',
- 'less',
- 'equal',
- 'greater',
- 'question',
- 'at',
- 'A',
- 'B',
- 'C',
- 'D',
- 'E',
- 'F',
- 'G',
- 'H',
- 'I',
- 'J',
- 'K',
- 'L',
- 'M',
- 'N',
- 'O',
- 'P',
- 'Q',
- 'R',
- 'S',
- 'T',
- 'U',
- 'V',
- 'W',
- 'X',
- 'Y',
- 'Z',
- 'bracketleft',
- 'backslash',
- 'bracketright',
- 'asciicircum',
- 'underscore',
- 'quoteleft',
- 'a',
- 'b',
- 'c',
- 'd',
- 'e',
- 'f',
- 'g',
- 'h',
- 'i',
- 'j',
- 'k',
- 'l',
- 'm',
- 'n',
- 'o',
- 'p',
- 'q',
- 'r',
- 's',
- 't',
- 'u',
- 'v',
- 'w',
- 'x',
- 'y',
- 'z',
- 'braceleft',
- 'bar',
- 'braceright',
- 'asciitilde',
- 'exclamdown',
- 'cent',
- 'sterling',
- 'fraction',
- 'yen',
- 'florin',
- 'section',
- 'currency',
- 'quotesingle',
- 'quotedblleft',
- 'guillemotleft',
- 'guilsinglleft',
- 'guilsinglright',
- 'fi',
- 'fl',
- 'endash',
- 'dagger',
- 'daggerdbl',
- 'periodcentered',
- 'paragraph',
- 'bullet',
- 'quotesinglbase',
- 'quotedblbase',
- 'quotedblright',
- 'guillemotright',
- 'ellipsis',
- 'perthousand',
- 'questiondown',
- 'grave',
- 'acute',
- 'circumflex',
- 'tilde',
- 'macron',
- 'breve',
- 'dotaccent',
- 'dieresis',
- 'ring',
- 'cedilla',
- 'hungarumlaut',
- 'ogonek',
- 'caron',
- 'emdash',
- 'AE',
- 'ordfeminine',
- 'Lslash',
- 'Oslash',
- 'OE',
- 'ordmasculine',
- 'ae',
- 'dotlessi',
- 'lslash',
- 'oslash',
- 'oe',
- 'germandbls',
- 'onesuperior',
- 'logicalnot',
- 'mu',
- 'trademark',
- 'Eth',
- 'onehalf',
- 'plusminus',
- 'Thorn',
- 'onequarter',
- 'divide',
- 'brokenbar',
- 'degree',
- 'thorn',
- 'threequarters',
- 'twosuperior',
- 'registered',
- 'minus',
- 'eth',
- 'multiply',
- 'threesuperior',
- 'copyright',
- 'Aacute',
- 'Acircumflex',
- 'Adieresis',
- 'Agrave',
- 'Aring',
- 'Atilde',
- 'Ccedilla',
- 'Eacute',
- 'Ecircumflex',
- 'Edieresis',
- 'Egrave',
- 'Iacute',
- 'Icircumflex',
- 'Idieresis',
- 'Igrave',
- 'Ntilde',
- 'Oacute',
- 'Ocircumflex',
- 'Odieresis',
- 'Ograve',
- 'Otilde',
- 'Scaron',
- 'Uacute',
- 'Ucircumflex',
- 'Udieresis',
- 'Ugrave',
- 'Yacute',
- 'Ydieresis',
- 'Zcaron',
- 'aacute',
- 'acircumflex',
- 'adieresis',
- 'agrave',
- 'aring',
- 'atilde',
- 'ccedilla',
- 'eacute',
- 'ecircumflex',
- 'edieresis',
- 'egrave',
- 'iacute',
- 'icircumflex',
- 'idieresis',
- 'igrave',
- 'ntilde',
- 'oacute',
- 'ocircumflex',
- 'odieresis',
- 'ograve',
- 'otilde',
- 'scaron',
- 'uacute',
- 'ucircumflex',
- 'udieresis',
- 'ugrave',
- 'yacute',
- 'ydieresis',
- 'zcaron',
- ];
- t.ExpertCharset = [
- '.notdef',
- 'space',
- 'exclamsmall',
- 'Hungarumlautsmall',
- 'dollaroldstyle',
- 'dollarsuperior',
- 'ampersandsmall',
- 'Acutesmall',
- 'parenleftsuperior',
- 'parenrightsuperior',
- 'twodotenleader',
- 'onedotenleader',
- 'comma',
- 'hyphen',
- 'period',
- 'fraction',
- 'zerooldstyle',
- 'oneoldstyle',
- 'twooldstyle',
- 'threeoldstyle',
- 'fouroldstyle',
- 'fiveoldstyle',
- 'sixoldstyle',
- 'sevenoldstyle',
- 'eightoldstyle',
- 'nineoldstyle',
- 'colon',
- 'semicolon',
- 'commasuperior',
- 'threequartersemdash',
- 'periodsuperior',
- 'questionsmall',
- 'asuperior',
- 'bsuperior',
- 'centsuperior',
- 'dsuperior',
- 'esuperior',
- 'isuperior',
- 'lsuperior',
- 'msuperior',
- 'nsuperior',
- 'osuperior',
- 'rsuperior',
- 'ssuperior',
- 'tsuperior',
- 'ff',
- 'fi',
- 'fl',
- 'ffi',
- 'ffl',
- 'parenleftinferior',
- 'parenrightinferior',
- 'Circumflexsmall',
- 'hyphensuperior',
- 'Gravesmall',
- 'Asmall',
- 'Bsmall',
- 'Csmall',
- 'Dsmall',
- 'Esmall',
- 'Fsmall',
- 'Gsmall',
- 'Hsmall',
- 'Ismall',
- 'Jsmall',
- 'Ksmall',
- 'Lsmall',
- 'Msmall',
- 'Nsmall',
- 'Osmall',
- 'Psmall',
- 'Qsmall',
- 'Rsmall',
- 'Ssmall',
- 'Tsmall',
- 'Usmall',
- 'Vsmall',
- 'Wsmall',
- 'Xsmall',
- 'Ysmall',
- 'Zsmall',
- 'colonmonetary',
- 'onefitted',
- 'rupiah',
- 'Tildesmall',
- 'exclamdownsmall',
- 'centoldstyle',
- 'Lslashsmall',
- 'Scaronsmall',
- 'Zcaronsmall',
- 'Dieresissmall',
- 'Brevesmall',
- 'Caronsmall',
- 'Dotaccentsmall',
- 'Macronsmall',
- 'figuredash',
- 'hypheninferior',
- 'Ogoneksmall',
- 'Ringsmall',
- 'Cedillasmall',
- 'onequarter',
- 'onehalf',
- 'threequarters',
- 'questiondownsmall',
- 'oneeighth',
- 'threeeighths',
- 'fiveeighths',
- 'seveneighths',
- 'onethird',
- 'twothirds',
- 'zerosuperior',
- 'onesuperior',
- 'twosuperior',
- 'threesuperior',
- 'foursuperior',
- 'fivesuperior',
- 'sixsuperior',
- 'sevensuperior',
- 'eightsuperior',
- 'ninesuperior',
- 'zeroinferior',
- 'oneinferior',
- 'twoinferior',
- 'threeinferior',
- 'fourinferior',
- 'fiveinferior',
- 'sixinferior',
- 'seveninferior',
- 'eightinferior',
- 'nineinferior',
- 'centinferior',
- 'dollarinferior',
- 'periodinferior',
- 'commainferior',
- 'Agravesmall',
- 'Aacutesmall',
- 'Acircumflexsmall',
- 'Atildesmall',
- 'Adieresissmall',
- 'Aringsmall',
- 'AEsmall',
- 'Ccedillasmall',
- 'Egravesmall',
- 'Eacutesmall',
- 'Ecircumflexsmall',
- 'Edieresissmall',
- 'Igravesmall',
- 'Iacutesmall',
- 'Icircumflexsmall',
- 'Idieresissmall',
- 'Ethsmall',
- 'Ntildesmall',
- 'Ogravesmall',
- 'Oacutesmall',
- 'Ocircumflexsmall',
- 'Otildesmall',
- 'Odieresissmall',
- 'OEsmall',
- 'Oslashsmall',
- 'Ugravesmall',
- 'Uacutesmall',
- 'Ucircumflexsmall',
- 'Udieresissmall',
- 'Yacutesmall',
- 'Thornsmall',
- 'Ydieresissmall',
- ];
- t.ExpertSubsetCharset = [
- '.notdef',
- 'space',
- 'dollaroldstyle',
- 'dollarsuperior',
- 'parenleftsuperior',
- 'parenrightsuperior',
- 'twodotenleader',
- 'onedotenleader',
- 'comma',
- 'hyphen',
- 'period',
- 'fraction',
- 'zerooldstyle',
- 'oneoldstyle',
- 'twooldstyle',
- 'threeoldstyle',
- 'fouroldstyle',
- 'fiveoldstyle',
- 'sixoldstyle',
- 'sevenoldstyle',
- 'eightoldstyle',
- 'nineoldstyle',
- 'colon',
- 'semicolon',
- 'commasuperior',
- 'threequartersemdash',
- 'periodsuperior',
- 'asuperior',
- 'bsuperior',
- 'centsuperior',
- 'dsuperior',
- 'esuperior',
- 'isuperior',
- 'lsuperior',
- 'msuperior',
- 'nsuperior',
- 'osuperior',
- 'rsuperior',
- 'ssuperior',
- 'tsuperior',
- 'ff',
- 'fi',
- 'fl',
- 'ffi',
- 'ffl',
- 'parenleftinferior',
- 'parenrightinferior',
- 'hyphensuperior',
- 'colonmonetary',
- 'onefitted',
- 'rupiah',
- 'centoldstyle',
- 'figuredash',
- 'hypheninferior',
- 'onequarter',
- 'onehalf',
- 'threequarters',
- 'oneeighth',
- 'threeeighths',
- 'fiveeighths',
- 'seveneighths',
- 'onethird',
- 'twothirds',
- 'zerosuperior',
- 'onesuperior',
- 'twosuperior',
- 'threesuperior',
- 'foursuperior',
- 'fivesuperior',
- 'sixsuperior',
- 'sevensuperior',
- 'eightsuperior',
- 'ninesuperior',
- 'zeroinferior',
- 'oneinferior',
- 'twoinferior',
- 'threeinferior',
- 'fourinferior',
- 'fiveinferior',
- 'sixinferior',
- 'seveninferior',
- 'eightinferior',
- 'nineinferior',
- 'centinferior',
- 'dollarinferior',
- 'periodinferior',
- 'commainferior',
- ];
- },
- (e, t) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.ZapfDingbatsEncoding =
- t.WinAnsiEncoding =
- t.SymbolSetEncoding =
- t.StandardEncoding =
- t.MacRomanEncoding =
- t.ExpertEncoding =
- void 0;
- t.getEncoding = function getEncoding(e) {
- switch (e) {
- case 'WinAnsiEncoding':
- return s;
- case 'StandardEncoding':
- return n;
- case 'MacRomanEncoding':
- return i;
- case 'SymbolSetEncoding':
- return o;
- case 'ZapfDingbatsEncoding':
- return c;
- case 'ExpertEncoding':
- return a;
- case 'MacExpertEncoding':
- return r;
- default:
- return null;
- }
- };
- const a = [
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'space',
- 'exclamsmall',
- 'Hungarumlautsmall',
- '',
- 'dollaroldstyle',
- 'dollarsuperior',
- 'ampersandsmall',
- 'Acutesmall',
- 'parenleftsuperior',
- 'parenrightsuperior',
- 'twodotenleader',
- 'onedotenleader',
- 'comma',
- 'hyphen',
- 'period',
- 'fraction',
- 'zerooldstyle',
- 'oneoldstyle',
- 'twooldstyle',
- 'threeoldstyle',
- 'fouroldstyle',
- 'fiveoldstyle',
- 'sixoldstyle',
- 'sevenoldstyle',
- 'eightoldstyle',
- 'nineoldstyle',
- 'colon',
- 'semicolon',
- 'commasuperior',
- 'threequartersemdash',
- 'periodsuperior',
- 'questionsmall',
- '',
- 'asuperior',
- 'bsuperior',
- 'centsuperior',
- 'dsuperior',
- 'esuperior',
- '',
- '',
- '',
- 'isuperior',
- '',
- '',
- 'lsuperior',
- 'msuperior',
- 'nsuperior',
- 'osuperior',
- '',
- '',
- 'rsuperior',
- 'ssuperior',
- 'tsuperior',
- '',
- 'ff',
- 'fi',
- 'fl',
- 'ffi',
- 'ffl',
- 'parenleftinferior',
- '',
- 'parenrightinferior',
- 'Circumflexsmall',
- 'hyphensuperior',
- 'Gravesmall',
- 'Asmall',
- 'Bsmall',
- 'Csmall',
- 'Dsmall',
- 'Esmall',
- 'Fsmall',
- 'Gsmall',
- 'Hsmall',
- 'Ismall',
- 'Jsmall',
- 'Ksmall',
- 'Lsmall',
- 'Msmall',
- 'Nsmall',
- 'Osmall',
- 'Psmall',
- 'Qsmall',
- 'Rsmall',
- 'Ssmall',
- 'Tsmall',
- 'Usmall',
- 'Vsmall',
- 'Wsmall',
- 'Xsmall',
- 'Ysmall',
- 'Zsmall',
- 'colonmonetary',
- 'onefitted',
- 'rupiah',
- 'Tildesmall',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'exclamdownsmall',
- 'centoldstyle',
- 'Lslashsmall',
- '',
- '',
- 'Scaronsmall',
- 'Zcaronsmall',
- 'Dieresissmall',
- 'Brevesmall',
- 'Caronsmall',
- '',
- 'Dotaccentsmall',
- '',
- '',
- 'Macronsmall',
- '',
- '',
- 'figuredash',
- 'hypheninferior',
- '',
- '',
- 'Ogoneksmall',
- 'Ringsmall',
- 'Cedillasmall',
- '',
- '',
- '',
- 'onequarter',
- 'onehalf',
- 'threequarters',
- 'questiondownsmall',
- 'oneeighth',
- 'threeeighths',
- 'fiveeighths',
- 'seveneighths',
- 'onethird',
- 'twothirds',
- '',
- '',
- 'zerosuperior',
- 'onesuperior',
- 'twosuperior',
- 'threesuperior',
- 'foursuperior',
- 'fivesuperior',
- 'sixsuperior',
- 'sevensuperior',
- 'eightsuperior',
- 'ninesuperior',
- 'zeroinferior',
- 'oneinferior',
- 'twoinferior',
- 'threeinferior',
- 'fourinferior',
- 'fiveinferior',
- 'sixinferior',
- 'seveninferior',
- 'eightinferior',
- 'nineinferior',
- 'centinferior',
- 'dollarinferior',
- 'periodinferior',
- 'commainferior',
- 'Agravesmall',
- 'Aacutesmall',
- 'Acircumflexsmall',
- 'Atildesmall',
- 'Adieresissmall',
- 'Aringsmall',
- 'AEsmall',
- 'Ccedillasmall',
- 'Egravesmall',
- 'Eacutesmall',
- 'Ecircumflexsmall',
- 'Edieresissmall',
- 'Igravesmall',
- 'Iacutesmall',
- 'Icircumflexsmall',
- 'Idieresissmall',
- 'Ethsmall',
- 'Ntildesmall',
- 'Ogravesmall',
- 'Oacutesmall',
- 'Ocircumflexsmall',
- 'Otildesmall',
- 'Odieresissmall',
- 'OEsmall',
- 'Oslashsmall',
- 'Ugravesmall',
- 'Uacutesmall',
- 'Ucircumflexsmall',
- 'Udieresissmall',
- 'Yacutesmall',
- 'Thornsmall',
- 'Ydieresissmall',
- ];
- t.ExpertEncoding = a;
- const r = [
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'space',
- 'exclamsmall',
- 'Hungarumlautsmall',
- 'centoldstyle',
- 'dollaroldstyle',
- 'dollarsuperior',
- 'ampersandsmall',
- 'Acutesmall',
- 'parenleftsuperior',
- 'parenrightsuperior',
- 'twodotenleader',
- 'onedotenleader',
- 'comma',
- 'hyphen',
- 'period',
- 'fraction',
- 'zerooldstyle',
- 'oneoldstyle',
- 'twooldstyle',
- 'threeoldstyle',
- 'fouroldstyle',
- 'fiveoldstyle',
- 'sixoldstyle',
- 'sevenoldstyle',
- 'eightoldstyle',
- 'nineoldstyle',
- 'colon',
- 'semicolon',
- '',
- 'threequartersemdash',
- '',
- 'questionsmall',
- '',
- '',
- '',
- '',
- 'Ethsmall',
- '',
- '',
- 'onequarter',
- 'onehalf',
- 'threequarters',
- 'oneeighth',
- 'threeeighths',
- 'fiveeighths',
- 'seveneighths',
- 'onethird',
- 'twothirds',
- '',
- '',
- '',
- '',
- '',
- '',
- 'ff',
- 'fi',
- 'fl',
- 'ffi',
- 'ffl',
- 'parenleftinferior',
- '',
- 'parenrightinferior',
- 'Circumflexsmall',
- 'hypheninferior',
- 'Gravesmall',
- 'Asmall',
- 'Bsmall',
- 'Csmall',
- 'Dsmall',
- 'Esmall',
- 'Fsmall',
- 'Gsmall',
- 'Hsmall',
- 'Ismall',
- 'Jsmall',
- 'Ksmall',
- 'Lsmall',
- 'Msmall',
- 'Nsmall',
- 'Osmall',
- 'Psmall',
- 'Qsmall',
- 'Rsmall',
- 'Ssmall',
- 'Tsmall',
- 'Usmall',
- 'Vsmall',
- 'Wsmall',
- 'Xsmall',
- 'Ysmall',
- 'Zsmall',
- 'colonmonetary',
- 'onefitted',
- 'rupiah',
- 'Tildesmall',
- '',
- '',
- 'asuperior',
- 'centsuperior',
- '',
- '',
- '',
- '',
- 'Aacutesmall',
- 'Agravesmall',
- 'Acircumflexsmall',
- 'Adieresissmall',
- 'Atildesmall',
- 'Aringsmall',
- 'Ccedillasmall',
- 'Eacutesmall',
- 'Egravesmall',
- 'Ecircumflexsmall',
- 'Edieresissmall',
- 'Iacutesmall',
- 'Igravesmall',
- 'Icircumflexsmall',
- 'Idieresissmall',
- 'Ntildesmall',
- 'Oacutesmall',
- 'Ogravesmall',
- 'Ocircumflexsmall',
- 'Odieresissmall',
- 'Otildesmall',
- 'Uacutesmall',
- 'Ugravesmall',
- 'Ucircumflexsmall',
- 'Udieresissmall',
- '',
- 'eightsuperior',
- 'fourinferior',
- 'threeinferior',
- 'sixinferior',
- 'eightinferior',
- 'seveninferior',
- 'Scaronsmall',
- '',
- 'centinferior',
- 'twoinferior',
- '',
- 'Dieresissmall',
- '',
- 'Caronsmall',
- 'osuperior',
- 'fiveinferior',
- '',
- 'commainferior',
- 'periodinferior',
- 'Yacutesmall',
- '',
- 'dollarinferior',
- '',
- '',
- 'Thornsmall',
- '',
- 'nineinferior',
- 'zeroinferior',
- 'Zcaronsmall',
- 'AEsmall',
- 'Oslashsmall',
- 'questiondownsmall',
- 'oneinferior',
- 'Lslashsmall',
- '',
- '',
- '',
- '',
- '',
- '',
- 'Cedillasmall',
- '',
- '',
- '',
- '',
- '',
- 'OEsmall',
- 'figuredash',
- 'hyphensuperior',
- '',
- '',
- '',
- '',
- 'exclamdownsmall',
- '',
- 'Ydieresissmall',
- '',
- 'onesuperior',
- 'twosuperior',
- 'threesuperior',
- 'foursuperior',
- 'fivesuperior',
- 'sixsuperior',
- 'sevensuperior',
- 'ninesuperior',
- 'zerosuperior',
- '',
- 'esuperior',
- 'rsuperior',
- 'tsuperior',
- '',
- '',
- 'isuperior',
- 'ssuperior',
- 'dsuperior',
- '',
- '',
- '',
- '',
- '',
- 'lsuperior',
- 'Ogoneksmall',
- 'Brevesmall',
- 'Macronsmall',
- 'bsuperior',
- 'nsuperior',
- 'msuperior',
- 'commasuperior',
- 'periodsuperior',
- 'Dotaccentsmall',
- 'Ringsmall',
- '',
- '',
- '',
- '',
- ],
- i = [
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'space',
- 'exclam',
- 'quotedbl',
- 'numbersign',
- 'dollar',
- 'percent',
- 'ampersand',
- 'quotesingle',
- 'parenleft',
- 'parenright',
- 'asterisk',
- 'plus',
- 'comma',
- 'hyphen',
- 'period',
- 'slash',
- 'zero',
- 'one',
- 'two',
- 'three',
- 'four',
- 'five',
- 'six',
- 'seven',
- 'eight',
- 'nine',
- 'colon',
- 'semicolon',
- 'less',
- 'equal',
- 'greater',
- 'question',
- 'at',
- 'A',
- 'B',
- 'C',
- 'D',
- 'E',
- 'F',
- 'G',
- 'H',
- 'I',
- 'J',
- 'K',
- 'L',
- 'M',
- 'N',
- 'O',
- 'P',
- 'Q',
- 'R',
- 'S',
- 'T',
- 'U',
- 'V',
- 'W',
- 'X',
- 'Y',
- 'Z',
- 'bracketleft',
- 'backslash',
- 'bracketright',
- 'asciicircum',
- 'underscore',
- 'grave',
- 'a',
- 'b',
- 'c',
- 'd',
- 'e',
- 'f',
- 'g',
- 'h',
- 'i',
- 'j',
- 'k',
- 'l',
- 'm',
- 'n',
- 'o',
- 'p',
- 'q',
- 'r',
- 's',
- 't',
- 'u',
- 'v',
- 'w',
- 'x',
- 'y',
- 'z',
- 'braceleft',
- 'bar',
- 'braceright',
- 'asciitilde',
- '',
- 'Adieresis',
- 'Aring',
- 'Ccedilla',
- 'Eacute',
- 'Ntilde',
- 'Odieresis',
- 'Udieresis',
- 'aacute',
- 'agrave',
- 'acircumflex',
- 'adieresis',
- 'atilde',
- 'aring',
- 'ccedilla',
- 'eacute',
- 'egrave',
- 'ecircumflex',
- 'edieresis',
- 'iacute',
- 'igrave',
- 'icircumflex',
- 'idieresis',
- 'ntilde',
- 'oacute',
- 'ograve',
- 'ocircumflex',
- 'odieresis',
- 'otilde',
- 'uacute',
- 'ugrave',
- 'ucircumflex',
- 'udieresis',
- 'dagger',
- 'degree',
- 'cent',
- 'sterling',
- 'section',
- 'bullet',
- 'paragraph',
- 'germandbls',
- 'registered',
- 'copyright',
- 'trademark',
- 'acute',
- 'dieresis',
- 'notequal',
- 'AE',
- 'Oslash',
- 'infinity',
- 'plusminus',
- 'lessequal',
- 'greaterequal',
- 'yen',
- 'mu',
- 'partialdiff',
- 'summation',
- 'product',
- 'pi',
- 'integral',
- 'ordfeminine',
- 'ordmasculine',
- 'Omega',
- 'ae',
- 'oslash',
- 'questiondown',
- 'exclamdown',
- 'logicalnot',
- 'radical',
- 'florin',
- 'approxequal',
- 'Delta',
- 'guillemotleft',
- 'guillemotright',
- 'ellipsis',
- 'space',
- 'Agrave',
- 'Atilde',
- 'Otilde',
- 'OE',
- 'oe',
- 'endash',
- 'emdash',
- 'quotedblleft',
- 'quotedblright',
- 'quoteleft',
- 'quoteright',
- 'divide',
- 'lozenge',
- 'ydieresis',
- 'Ydieresis',
- 'fraction',
- 'currency',
- 'guilsinglleft',
- 'guilsinglright',
- 'fi',
- 'fl',
- 'daggerdbl',
- 'periodcentered',
- 'quotesinglbase',
- 'quotedblbase',
- 'perthousand',
- 'Acircumflex',
- 'Ecircumflex',
- 'Aacute',
- 'Edieresis',
- 'Egrave',
- 'Iacute',
- 'Icircumflex',
- 'Idieresis',
- 'Igrave',
- 'Oacute',
- 'Ocircumflex',
- 'apple',
- 'Ograve',
- 'Uacute',
- 'Ucircumflex',
- 'Ugrave',
- 'dotlessi',
- 'circumflex',
- 'tilde',
- 'macron',
- 'breve',
- 'dotaccent',
- 'ring',
- 'cedilla',
- 'hungarumlaut',
- 'ogonek',
- 'caron',
- ];
- t.MacRomanEncoding = i;
- const n = [
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'space',
- 'exclam',
- 'quotedbl',
- 'numbersign',
- 'dollar',
- 'percent',
- 'ampersand',
- 'quoteright',
- 'parenleft',
- 'parenright',
- 'asterisk',
- 'plus',
- 'comma',
- 'hyphen',
- 'period',
- 'slash',
- 'zero',
- 'one',
- 'two',
- 'three',
- 'four',
- 'five',
- 'six',
- 'seven',
- 'eight',
- 'nine',
- 'colon',
- 'semicolon',
- 'less',
- 'equal',
- 'greater',
- 'question',
- 'at',
- 'A',
- 'B',
- 'C',
- 'D',
- 'E',
- 'F',
- 'G',
- 'H',
- 'I',
- 'J',
- 'K',
- 'L',
- 'M',
- 'N',
- 'O',
- 'P',
- 'Q',
- 'R',
- 'S',
- 'T',
- 'U',
- 'V',
- 'W',
- 'X',
- 'Y',
- 'Z',
- 'bracketleft',
- 'backslash',
- 'bracketright',
- 'asciicircum',
- 'underscore',
- 'quoteleft',
- 'a',
- 'b',
- 'c',
- 'd',
- 'e',
- 'f',
- 'g',
- 'h',
- 'i',
- 'j',
- 'k',
- 'l',
- 'm',
- 'n',
- 'o',
- 'p',
- 'q',
- 'r',
- 's',
- 't',
- 'u',
- 'v',
- 'w',
- 'x',
- 'y',
- 'z',
- 'braceleft',
- 'bar',
- 'braceright',
- 'asciitilde',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'exclamdown',
- 'cent',
- 'sterling',
- 'fraction',
- 'yen',
- 'florin',
- 'section',
- 'currency',
- 'quotesingle',
- 'quotedblleft',
- 'guillemotleft',
- 'guilsinglleft',
- 'guilsinglright',
- 'fi',
- 'fl',
- '',
- 'endash',
- 'dagger',
- 'daggerdbl',
- 'periodcentered',
- '',
- 'paragraph',
- 'bullet',
- 'quotesinglbase',
- 'quotedblbase',
- 'quotedblright',
- 'guillemotright',
- 'ellipsis',
- 'perthousand',
- '',
- 'questiondown',
- '',
- 'grave',
- 'acute',
- 'circumflex',
- 'tilde',
- 'macron',
- 'breve',
- 'dotaccent',
- 'dieresis',
- '',
- 'ring',
- 'cedilla',
- '',
- 'hungarumlaut',
- 'ogonek',
- 'caron',
- 'emdash',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'AE',
- '',
- 'ordfeminine',
- '',
- '',
- '',
- '',
- 'Lslash',
- 'Oslash',
- 'OE',
- 'ordmasculine',
- '',
- '',
- '',
- '',
- '',
- 'ae',
- '',
- '',
- '',
- 'dotlessi',
- '',
- '',
- 'lslash',
- 'oslash',
- 'oe',
- 'germandbls',
- '',
- '',
- '',
- '',
- ];
- t.StandardEncoding = n;
- const s = [
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'space',
- 'exclam',
- 'quotedbl',
- 'numbersign',
- 'dollar',
- 'percent',
- 'ampersand',
- 'quotesingle',
- 'parenleft',
- 'parenright',
- 'asterisk',
- 'plus',
- 'comma',
- 'hyphen',
- 'period',
- 'slash',
- 'zero',
- 'one',
- 'two',
- 'three',
- 'four',
- 'five',
- 'six',
- 'seven',
- 'eight',
- 'nine',
- 'colon',
- 'semicolon',
- 'less',
- 'equal',
- 'greater',
- 'question',
- 'at',
- 'A',
- 'B',
- 'C',
- 'D',
- 'E',
- 'F',
- 'G',
- 'H',
- 'I',
- 'J',
- 'K',
- 'L',
- 'M',
- 'N',
- 'O',
- 'P',
- 'Q',
- 'R',
- 'S',
- 'T',
- 'U',
- 'V',
- 'W',
- 'X',
- 'Y',
- 'Z',
- 'bracketleft',
- 'backslash',
- 'bracketright',
- 'asciicircum',
- 'underscore',
- 'grave',
- 'a',
- 'b',
- 'c',
- 'd',
- 'e',
- 'f',
- 'g',
- 'h',
- 'i',
- 'j',
- 'k',
- 'l',
- 'm',
- 'n',
- 'o',
- 'p',
- 'q',
- 'r',
- 's',
- 't',
- 'u',
- 'v',
- 'w',
- 'x',
- 'y',
- 'z',
- 'braceleft',
- 'bar',
- 'braceright',
- 'asciitilde',
- 'bullet',
- 'Euro',
- 'bullet',
- 'quotesinglbase',
- 'florin',
- 'quotedblbase',
- 'ellipsis',
- 'dagger',
- 'daggerdbl',
- 'circumflex',
- 'perthousand',
- 'Scaron',
- 'guilsinglleft',
- 'OE',
- 'bullet',
- 'Zcaron',
- 'bullet',
- 'bullet',
- 'quoteleft',
- 'quoteright',
- 'quotedblleft',
- 'quotedblright',
- 'bullet',
- 'endash',
- 'emdash',
- 'tilde',
- 'trademark',
- 'scaron',
- 'guilsinglright',
- 'oe',
- 'bullet',
- 'zcaron',
- 'Ydieresis',
- 'space',
- 'exclamdown',
- 'cent',
- 'sterling',
- 'currency',
- 'yen',
- 'brokenbar',
- 'section',
- 'dieresis',
- 'copyright',
- 'ordfeminine',
- 'guillemotleft',
- 'logicalnot',
- 'hyphen',
- 'registered',
- 'macron',
- 'degree',
- 'plusminus',
- 'twosuperior',
- 'threesuperior',
- 'acute',
- 'mu',
- 'paragraph',
- 'periodcentered',
- 'cedilla',
- 'onesuperior',
- 'ordmasculine',
- 'guillemotright',
- 'onequarter',
- 'onehalf',
- 'threequarters',
- 'questiondown',
- 'Agrave',
- 'Aacute',
- 'Acircumflex',
- 'Atilde',
- 'Adieresis',
- 'Aring',
- 'AE',
- 'Ccedilla',
- 'Egrave',
- 'Eacute',
- 'Ecircumflex',
- 'Edieresis',
- 'Igrave',
- 'Iacute',
- 'Icircumflex',
- 'Idieresis',
- 'Eth',
- 'Ntilde',
- 'Ograve',
- 'Oacute',
- 'Ocircumflex',
- 'Otilde',
- 'Odieresis',
- 'multiply',
- 'Oslash',
- 'Ugrave',
- 'Uacute',
- 'Ucircumflex',
- 'Udieresis',
- 'Yacute',
- 'Thorn',
- 'germandbls',
- 'agrave',
- 'aacute',
- 'acircumflex',
- 'atilde',
- 'adieresis',
- 'aring',
- 'ae',
- 'ccedilla',
- 'egrave',
- 'eacute',
- 'ecircumflex',
- 'edieresis',
- 'igrave',
- 'iacute',
- 'icircumflex',
- 'idieresis',
- 'eth',
- 'ntilde',
- 'ograve',
- 'oacute',
- 'ocircumflex',
- 'otilde',
- 'odieresis',
- 'divide',
- 'oslash',
- 'ugrave',
- 'uacute',
- 'ucircumflex',
- 'udieresis',
- 'yacute',
- 'thorn',
- 'ydieresis',
- ];
- t.WinAnsiEncoding = s;
- const o = [
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'space',
- 'exclam',
- 'universal',
- 'numbersign',
- 'existential',
- 'percent',
- 'ampersand',
- 'suchthat',
- 'parenleft',
- 'parenright',
- 'asteriskmath',
- 'plus',
- 'comma',
- 'minus',
- 'period',
- 'slash',
- 'zero',
- 'one',
- 'two',
- 'three',
- 'four',
- 'five',
- 'six',
- 'seven',
- 'eight',
- 'nine',
- 'colon',
- 'semicolon',
- 'less',
- 'equal',
- 'greater',
- 'question',
- 'congruent',
- 'Alpha',
- 'Beta',
- 'Chi',
- 'Delta',
- 'Epsilon',
- 'Phi',
- 'Gamma',
- 'Eta',
- 'Iota',
- 'theta1',
- 'Kappa',
- 'Lambda',
- 'Mu',
- 'Nu',
- 'Omicron',
- 'Pi',
- 'Theta',
- 'Rho',
- 'Sigma',
- 'Tau',
- 'Upsilon',
- 'sigma1',
- 'Omega',
- 'Xi',
- 'Psi',
- 'Zeta',
- 'bracketleft',
- 'therefore',
- 'bracketright',
- 'perpendicular',
- 'underscore',
- 'radicalex',
- 'alpha',
- 'beta',
- 'chi',
- 'delta',
- 'epsilon',
- 'phi',
- 'gamma',
- 'eta',
- 'iota',
- 'phi1',
- 'kappa',
- 'lambda',
- 'mu',
- 'nu',
- 'omicron',
- 'pi',
- 'theta',
- 'rho',
- 'sigma',
- 'tau',
- 'upsilon',
- 'omega1',
- 'omega',
- 'xi',
- 'psi',
- 'zeta',
- 'braceleft',
- 'bar',
- 'braceright',
- 'similar',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'Euro',
- 'Upsilon1',
- 'minute',
- 'lessequal',
- 'fraction',
- 'infinity',
- 'florin',
- 'club',
- 'diamond',
- 'heart',
- 'spade',
- 'arrowboth',
- 'arrowleft',
- 'arrowup',
- 'arrowright',
- 'arrowdown',
- 'degree',
- 'plusminus',
- 'second',
- 'greaterequal',
- 'multiply',
- 'proportional',
- 'partialdiff',
- 'bullet',
- 'divide',
- 'notequal',
- 'equivalence',
- 'approxequal',
- 'ellipsis',
- 'arrowvertex',
- 'arrowhorizex',
- 'carriagereturn',
- 'aleph',
- 'Ifraktur',
- 'Rfraktur',
- 'weierstrass',
- 'circlemultiply',
- 'circleplus',
- 'emptyset',
- 'intersection',
- 'union',
- 'propersuperset',
- 'reflexsuperset',
- 'notsubset',
- 'propersubset',
- 'reflexsubset',
- 'element',
- 'notelement',
- 'angle',
- 'gradient',
- 'registerserif',
- 'copyrightserif',
- 'trademarkserif',
- 'product',
- 'radical',
- 'dotmath',
- 'logicalnot',
- 'logicaland',
- 'logicalor',
- 'arrowdblboth',
- 'arrowdblleft',
- 'arrowdblup',
- 'arrowdblright',
- 'arrowdbldown',
- 'lozenge',
- 'angleleft',
- 'registersans',
- 'copyrightsans',
- 'trademarksans',
- 'summation',
- 'parenlefttp',
- 'parenleftex',
- 'parenleftbt',
- 'bracketlefttp',
- 'bracketleftex',
- 'bracketleftbt',
- 'bracelefttp',
- 'braceleftmid',
- 'braceleftbt',
- 'braceex',
- '',
- 'angleright',
- 'integral',
- 'integraltp',
- 'integralex',
- 'integralbt',
- 'parenrighttp',
- 'parenrightex',
- 'parenrightbt',
- 'bracketrighttp',
- 'bracketrightex',
- 'bracketrightbt',
- 'bracerighttp',
- 'bracerightmid',
- 'bracerightbt',
- '',
- ];
- t.SymbolSetEncoding = o;
- const c = [
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'space',
- 'a1',
- 'a2',
- 'a202',
- 'a3',
- 'a4',
- 'a5',
- 'a119',
- 'a118',
- 'a117',
- 'a11',
- 'a12',
- 'a13',
- 'a14',
- 'a15',
- 'a16',
- 'a105',
- 'a17',
- 'a18',
- 'a19',
- 'a20',
- 'a21',
- 'a22',
- 'a23',
- 'a24',
- 'a25',
- 'a26',
- 'a27',
- 'a28',
- 'a6',
- 'a7',
- 'a8',
- 'a9',
- 'a10',
- 'a29',
- 'a30',
- 'a31',
- 'a32',
- 'a33',
- 'a34',
- 'a35',
- 'a36',
- 'a37',
- 'a38',
- 'a39',
- 'a40',
- 'a41',
- 'a42',
- 'a43',
- 'a44',
- 'a45',
- 'a46',
- 'a47',
- 'a48',
- 'a49',
- 'a50',
- 'a51',
- 'a52',
- 'a53',
- 'a54',
- 'a55',
- 'a56',
- 'a57',
- 'a58',
- 'a59',
- 'a60',
- 'a61',
- 'a62',
- 'a63',
- 'a64',
- 'a65',
- 'a66',
- 'a67',
- 'a68',
- 'a69',
- 'a70',
- 'a71',
- 'a72',
- 'a73',
- 'a74',
- 'a203',
- 'a75',
- 'a204',
- 'a76',
- 'a77',
- 'a78',
- 'a79',
- 'a81',
- 'a82',
- 'a83',
- 'a84',
- 'a97',
- 'a98',
- 'a99',
- 'a100',
- '',
- 'a89',
- 'a90',
- 'a93',
- 'a94',
- 'a91',
- 'a92',
- 'a205',
- 'a85',
- 'a206',
- 'a86',
- 'a87',
- 'a88',
- 'a95',
- 'a96',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- '',
- 'a101',
- 'a102',
- 'a103',
- 'a104',
- 'a106',
- 'a107',
- 'a108',
- 'a112',
- 'a111',
- 'a110',
- 'a109',
- 'a120',
- 'a121',
- 'a122',
- 'a123',
- 'a124',
- 'a125',
- 'a126',
- 'a127',
- 'a128',
- 'a129',
- 'a130',
- 'a131',
- 'a132',
- 'a133',
- 'a134',
- 'a135',
- 'a136',
- 'a137',
- 'a138',
- 'a139',
- 'a140',
- 'a141',
- 'a142',
- 'a143',
- 'a144',
- 'a145',
- 'a146',
- 'a147',
- 'a148',
- 'a149',
- 'a150',
- 'a151',
- 'a152',
- 'a153',
- 'a154',
- 'a155',
- 'a156',
- 'a157',
- 'a158',
- 'a159',
- 'a160',
- 'a161',
- 'a163',
- 'a164',
- 'a196',
- 'a165',
- 'a192',
- 'a166',
- 'a167',
- 'a168',
- 'a169',
- 'a170',
- 'a171',
- 'a172',
- 'a173',
- 'a162',
- 'a174',
- 'a175',
- 'a176',
- 'a177',
- 'a178',
- 'a179',
- 'a193',
- 'a180',
- 'a199',
- 'a181',
- 'a200',
- 'a182',
- '',
- 'a201',
- 'a183',
- 'a184',
- 'a197',
- 'a185',
- 'a194',
- 'a198',
- 'a186',
- 'a195',
- 'a187',
- 'a188',
- 'a189',
- 'a190',
- 'a191',
- '',
- ];
- t.ZapfDingbatsEncoding = c;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.SEAC_ANALYSIS_ENABLED = t.MacStandardGlyphOrdering = t.FontFlags = void 0;
- t.normalizeFontName = function normalizeFontName(e) {
- return e.replaceAll(/[,_]/g, '-').replaceAll(/\s/g, '');
- };
- t.recoverGlyphName = recoverGlyphName;
- t.type1FontGlyphMapping = function type1FontGlyphMapping(e, t, a) {
- const n = Object.create(null);
- let s, c, l;
- const h = !!(e.flags & o.Symbolic);
- if (e.isInternalFont) {
- l = t;
- for (c = 0; c < l.length; c++) {
- s = a.indexOf(l[c]);
- n[c] = s >= 0 ? s : 0;
- }
- } else if (e.baseEncodingName) {
- l = (0, r.getEncoding)(e.baseEncodingName);
- for (c = 0; c < l.length; c++) {
- s = a.indexOf(l[c]);
- n[c] = s >= 0 ? s : 0;
- }
- } else if (h) for (c in t) n[c] = t[c];
- else {
- l = r.StandardEncoding;
- for (c = 0; c < l.length; c++) {
- s = a.indexOf(l[c]);
- n[c] = s >= 0 ? s : 0;
- }
- }
- const u = e.differences;
- let d;
- if (u)
- for (c in u) {
- const e = u[c];
- s = a.indexOf(e);
- if (-1 === s) {
- d || (d = (0, i.getGlyphsUnicode)());
- const t = recoverGlyphName(e, d);
- t !== e && (s = a.indexOf(t));
- }
- n[c] = s >= 0 ? s : 0;
- }
- return n;
- };
- var r = a(37),
- i = a(39),
- n = a(40),
- s = a(2);
- t.SEAC_ANALYSIS_ENABLED = !0;
- const o = {
- FixedPitch: 1,
- Serif: 2,
- Symbolic: 4,
- Script: 8,
- Nonsymbolic: 32,
- Italic: 64,
- AllCap: 65536,
- SmallCap: 131072,
- ForceBold: 262144,
- };
- t.FontFlags = o;
- t.MacStandardGlyphOrdering = [
- '.notdef',
- '.null',
- 'nonmarkingreturn',
- 'space',
- 'exclam',
- 'quotedbl',
- 'numbersign',
- 'dollar',
- 'percent',
- 'ampersand',
- 'quotesingle',
- 'parenleft',
- 'parenright',
- 'asterisk',
- 'plus',
- 'comma',
- 'hyphen',
- 'period',
- 'slash',
- 'zero',
- 'one',
- 'two',
- 'three',
- 'four',
- 'five',
- 'six',
- 'seven',
- 'eight',
- 'nine',
- 'colon',
- 'semicolon',
- 'less',
- 'equal',
- 'greater',
- 'question',
- 'at',
- 'A',
- 'B',
- 'C',
- 'D',
- 'E',
- 'F',
- 'G',
- 'H',
- 'I',
- 'J',
- 'K',
- 'L',
- 'M',
- 'N',
- 'O',
- 'P',
- 'Q',
- 'R',
- 'S',
- 'T',
- 'U',
- 'V',
- 'W',
- 'X',
- 'Y',
- 'Z',
- 'bracketleft',
- 'backslash',
- 'bracketright',
- 'asciicircum',
- 'underscore',
- 'grave',
- 'a',
- 'b',
- 'c',
- 'd',
- 'e',
- 'f',
- 'g',
- 'h',
- 'i',
- 'j',
- 'k',
- 'l',
- 'm',
- 'n',
- 'o',
- 'p',
- 'q',
- 'r',
- 's',
- 't',
- 'u',
- 'v',
- 'w',
- 'x',
- 'y',
- 'z',
- 'braceleft',
- 'bar',
- 'braceright',
- 'asciitilde',
- 'Adieresis',
- 'Aring',
- 'Ccedilla',
- 'Eacute',
- 'Ntilde',
- 'Odieresis',
- 'Udieresis',
- 'aacute',
- 'agrave',
- 'acircumflex',
- 'adieresis',
- 'atilde',
- 'aring',
- 'ccedilla',
- 'eacute',
- 'egrave',
- 'ecircumflex',
- 'edieresis',
- 'iacute',
- 'igrave',
- 'icircumflex',
- 'idieresis',
- 'ntilde',
- 'oacute',
- 'ograve',
- 'ocircumflex',
- 'odieresis',
- 'otilde',
- 'uacute',
- 'ugrave',
- 'ucircumflex',
- 'udieresis',
- 'dagger',
- 'degree',
- 'cent',
- 'sterling',
- 'section',
- 'bullet',
- 'paragraph',
- 'germandbls',
- 'registered',
- 'copyright',
- 'trademark',
- 'acute',
- 'dieresis',
- 'notequal',
- 'AE',
- 'Oslash',
- 'infinity',
- 'plusminus',
- 'lessequal',
- 'greaterequal',
- 'yen',
- 'mu',
- 'partialdiff',
- 'summation',
- 'product',
- 'pi',
- 'integral',
- 'ordfeminine',
- 'ordmasculine',
- 'Omega',
- 'ae',
- 'oslash',
- 'questiondown',
- 'exclamdown',
- 'logicalnot',
- 'radical',
- 'florin',
- 'approxequal',
- 'Delta',
- 'guillemotleft',
- 'guillemotright',
- 'ellipsis',
- 'nonbreakingspace',
- 'Agrave',
- 'Atilde',
- 'Otilde',
- 'OE',
- 'oe',
- 'endash',
- 'emdash',
- 'quotedblleft',
- 'quotedblright',
- 'quoteleft',
- 'quoteright',
- 'divide',
- 'lozenge',
- 'ydieresis',
- 'Ydieresis',
- 'fraction',
- 'currency',
- 'guilsinglleft',
- 'guilsinglright',
- 'fi',
- 'fl',
- 'daggerdbl',
- 'periodcentered',
- 'quotesinglbase',
- 'quotedblbase',
- 'perthousand',
- 'Acircumflex',
- 'Ecircumflex',
- 'Aacute',
- 'Edieresis',
- 'Egrave',
- 'Iacute',
- 'Icircumflex',
- 'Idieresis',
- 'Igrave',
- 'Oacute',
- 'Ocircumflex',
- 'apple',
- 'Ograve',
- 'Uacute',
- 'Ucircumflex',
- 'Ugrave',
- 'dotlessi',
- 'circumflex',
- 'tilde',
- 'macron',
- 'breve',
- 'dotaccent',
- 'ring',
- 'cedilla',
- 'hungarumlaut',
- 'ogonek',
- 'caron',
- 'Lslash',
- 'lslash',
- 'Scaron',
- 'scaron',
- 'Zcaron',
- 'zcaron',
- 'brokenbar',
- 'Eth',
- 'eth',
- 'Yacute',
- 'yacute',
- 'Thorn',
- 'thorn',
- 'minus',
- 'multiply',
- 'onesuperior',
- 'twosuperior',
- 'threesuperior',
- 'onehalf',
- 'onequarter',
- 'threequarters',
- 'franc',
- 'Gbreve',
- 'gbreve',
- 'Idotaccent',
- 'Scedilla',
- 'scedilla',
- 'Cacute',
- 'cacute',
- 'Ccaron',
- 'ccaron',
- 'dcroat',
- ];
- function recoverGlyphName(e, t) {
- if (void 0 !== t[e]) return e;
- const a = (0, n.getUnicodeForGlyph)(e, t);
- if (-1 !== a) for (const e in t) if (t[e] === a) return e;
- (0, s.info)('Unable to recover a standard glyph name for: ' + e);
- return e;
- }
- },
- (e, t, a) => {
- a.r(t);
- a.d(t, { getDingbatsGlyphsUnicode: () => n, getGlyphsUnicode: () => i });
- var r = a(3);
- const i = (0, r.getLookupTableFactory)(function (e) {
- e.A = 65;
- e.AE = 198;
- e.AEacute = 508;
- e.AEmacron = 482;
- e.AEsmall = 63462;
- e.Aacute = 193;
- e.Aacutesmall = 63457;
- e.Abreve = 258;
- e.Abreveacute = 7854;
- e.Abrevecyrillic = 1232;
- e.Abrevedotbelow = 7862;
- e.Abrevegrave = 7856;
- e.Abrevehookabove = 7858;
- e.Abrevetilde = 7860;
- e.Acaron = 461;
- e.Acircle = 9398;
- e.Acircumflex = 194;
- e.Acircumflexacute = 7844;
- e.Acircumflexdotbelow = 7852;
- e.Acircumflexgrave = 7846;
- e.Acircumflexhookabove = 7848;
- e.Acircumflexsmall = 63458;
- e.Acircumflextilde = 7850;
- e.Acute = 63177;
- e.Acutesmall = 63412;
- e.Acyrillic = 1040;
- e.Adblgrave = 512;
- e.Adieresis = 196;
- e.Adieresiscyrillic = 1234;
- e.Adieresismacron = 478;
- e.Adieresissmall = 63460;
- e.Adotbelow = 7840;
- e.Adotmacron = 480;
- e.Agrave = 192;
- e.Agravesmall = 63456;
- e.Ahookabove = 7842;
- e.Aiecyrillic = 1236;
- e.Ainvertedbreve = 514;
- e.Alpha = 913;
- e.Alphatonos = 902;
- e.Amacron = 256;
- e.Amonospace = 65313;
- e.Aogonek = 260;
- e.Aring = 197;
- e.Aringacute = 506;
- e.Aringbelow = 7680;
- e.Aringsmall = 63461;
- e.Asmall = 63329;
- e.Atilde = 195;
- e.Atildesmall = 63459;
- e.Aybarmenian = 1329;
- e.B = 66;
- e.Bcircle = 9399;
- e.Bdotaccent = 7682;
- e.Bdotbelow = 7684;
- e.Becyrillic = 1041;
- e.Benarmenian = 1330;
- e.Beta = 914;
- e.Bhook = 385;
- e.Blinebelow = 7686;
- e.Bmonospace = 65314;
- e.Brevesmall = 63220;
- e.Bsmall = 63330;
- e.Btopbar = 386;
- e.C = 67;
- e.Caarmenian = 1342;
- e.Cacute = 262;
- e.Caron = 63178;
- e.Caronsmall = 63221;
- e.Ccaron = 268;
- e.Ccedilla = 199;
- e.Ccedillaacute = 7688;
- e.Ccedillasmall = 63463;
- e.Ccircle = 9400;
- e.Ccircumflex = 264;
- e.Cdot = 266;
- e.Cdotaccent = 266;
- e.Cedillasmall = 63416;
- e.Chaarmenian = 1353;
- e.Cheabkhasiancyrillic = 1212;
- e.Checyrillic = 1063;
- e.Chedescenderabkhasiancyrillic = 1214;
- e.Chedescendercyrillic = 1206;
- e.Chedieresiscyrillic = 1268;
- e.Cheharmenian = 1347;
- e.Chekhakassiancyrillic = 1227;
- e.Cheverticalstrokecyrillic = 1208;
- e.Chi = 935;
- e.Chook = 391;
- e.Circumflexsmall = 63222;
- e.Cmonospace = 65315;
- e.Coarmenian = 1361;
- e.Csmall = 63331;
- e.D = 68;
- e.DZ = 497;
- e.DZcaron = 452;
- e.Daarmenian = 1332;
- e.Dafrican = 393;
- e.Dcaron = 270;
- e.Dcedilla = 7696;
- e.Dcircle = 9401;
- e.Dcircumflexbelow = 7698;
- e.Dcroat = 272;
- e.Ddotaccent = 7690;
- e.Ddotbelow = 7692;
- e.Decyrillic = 1044;
- e.Deicoptic = 1006;
- e.Delta = 8710;
- e.Deltagreek = 916;
- e.Dhook = 394;
- e.Dieresis = 63179;
- e.DieresisAcute = 63180;
- e.DieresisGrave = 63181;
- e.Dieresissmall = 63400;
- e.Digammagreek = 988;
- e.Djecyrillic = 1026;
- e.Dlinebelow = 7694;
- e.Dmonospace = 65316;
- e.Dotaccentsmall = 63223;
- e.Dslash = 272;
- e.Dsmall = 63332;
- e.Dtopbar = 395;
- e.Dz = 498;
- e.Dzcaron = 453;
- e.Dzeabkhasiancyrillic = 1248;
- e.Dzecyrillic = 1029;
- e.Dzhecyrillic = 1039;
- e.E = 69;
- e.Eacute = 201;
- e.Eacutesmall = 63465;
- e.Ebreve = 276;
- e.Ecaron = 282;
- e.Ecedillabreve = 7708;
- e.Echarmenian = 1333;
- e.Ecircle = 9402;
- e.Ecircumflex = 202;
- e.Ecircumflexacute = 7870;
- e.Ecircumflexbelow = 7704;
- e.Ecircumflexdotbelow = 7878;
- e.Ecircumflexgrave = 7872;
- e.Ecircumflexhookabove = 7874;
- e.Ecircumflexsmall = 63466;
- e.Ecircumflextilde = 7876;
- e.Ecyrillic = 1028;
- e.Edblgrave = 516;
- e.Edieresis = 203;
- e.Edieresissmall = 63467;
- e.Edot = 278;
- e.Edotaccent = 278;
- e.Edotbelow = 7864;
- e.Efcyrillic = 1060;
- e.Egrave = 200;
- e.Egravesmall = 63464;
- e.Eharmenian = 1335;
- e.Ehookabove = 7866;
- e.Eightroman = 8551;
- e.Einvertedbreve = 518;
- e.Eiotifiedcyrillic = 1124;
- e.Elcyrillic = 1051;
- e.Elevenroman = 8554;
- e.Emacron = 274;
- e.Emacronacute = 7702;
- e.Emacrongrave = 7700;
- e.Emcyrillic = 1052;
- e.Emonospace = 65317;
- e.Encyrillic = 1053;
- e.Endescendercyrillic = 1186;
- e.Eng = 330;
- e.Enghecyrillic = 1188;
- e.Enhookcyrillic = 1223;
- e.Eogonek = 280;
- e.Eopen = 400;
- e.Epsilon = 917;
- e.Epsilontonos = 904;
- e.Ercyrillic = 1056;
- e.Ereversed = 398;
- e.Ereversedcyrillic = 1069;
- e.Escyrillic = 1057;
- e.Esdescendercyrillic = 1194;
- e.Esh = 425;
- e.Esmall = 63333;
- e.Eta = 919;
- e.Etarmenian = 1336;
- e.Etatonos = 905;
- e.Eth = 208;
- e.Ethsmall = 63472;
- e.Etilde = 7868;
- e.Etildebelow = 7706;
- e.Euro = 8364;
- e.Ezh = 439;
- e.Ezhcaron = 494;
- e.Ezhreversed = 440;
- e.F = 70;
- e.Fcircle = 9403;
- e.Fdotaccent = 7710;
- e.Feharmenian = 1366;
- e.Feicoptic = 996;
- e.Fhook = 401;
- e.Fitacyrillic = 1138;
- e.Fiveroman = 8548;
- e.Fmonospace = 65318;
- e.Fourroman = 8547;
- e.Fsmall = 63334;
- e.G = 71;
- e.GBsquare = 13191;
- e.Gacute = 500;
- e.Gamma = 915;
- e.Gammaafrican = 404;
- e.Gangiacoptic = 1002;
- e.Gbreve = 286;
- e.Gcaron = 486;
- e.Gcedilla = 290;
- e.Gcircle = 9404;
- e.Gcircumflex = 284;
- e.Gcommaaccent = 290;
- e.Gdot = 288;
- e.Gdotaccent = 288;
- e.Gecyrillic = 1043;
- e.Ghadarmenian = 1346;
- e.Ghemiddlehookcyrillic = 1172;
- e.Ghestrokecyrillic = 1170;
- e.Gheupturncyrillic = 1168;
- e.Ghook = 403;
- e.Gimarmenian = 1331;
- e.Gjecyrillic = 1027;
- e.Gmacron = 7712;
- e.Gmonospace = 65319;
- e.Grave = 63182;
- e.Gravesmall = 63328;
- e.Gsmall = 63335;
- e.Gsmallhook = 667;
- e.Gstroke = 484;
- e.H = 72;
- e.H18533 = 9679;
- e.H18543 = 9642;
- e.H18551 = 9643;
- e.H22073 = 9633;
- e.HPsquare = 13259;
- e.Haabkhasiancyrillic = 1192;
- e.Hadescendercyrillic = 1202;
- e.Hardsigncyrillic = 1066;
- e.Hbar = 294;
- e.Hbrevebelow = 7722;
- e.Hcedilla = 7720;
- e.Hcircle = 9405;
- e.Hcircumflex = 292;
- e.Hdieresis = 7718;
- e.Hdotaccent = 7714;
- e.Hdotbelow = 7716;
- e.Hmonospace = 65320;
- e.Hoarmenian = 1344;
- e.Horicoptic = 1e3;
- e.Hsmall = 63336;
- e.Hungarumlaut = 63183;
- e.Hungarumlautsmall = 63224;
- e.Hzsquare = 13200;
- e.I = 73;
- e.IAcyrillic = 1071;
- e.IJ = 306;
- e.IUcyrillic = 1070;
- e.Iacute = 205;
- e.Iacutesmall = 63469;
- e.Ibreve = 300;
- e.Icaron = 463;
- e.Icircle = 9406;
- e.Icircumflex = 206;
- e.Icircumflexsmall = 63470;
- e.Icyrillic = 1030;
- e.Idblgrave = 520;
- e.Idieresis = 207;
- e.Idieresisacute = 7726;
- e.Idieresiscyrillic = 1252;
- e.Idieresissmall = 63471;
- e.Idot = 304;
- e.Idotaccent = 304;
- e.Idotbelow = 7882;
- e.Iebrevecyrillic = 1238;
- e.Iecyrillic = 1045;
- e.Ifraktur = 8465;
- e.Igrave = 204;
- e.Igravesmall = 63468;
- e.Ihookabove = 7880;
- e.Iicyrillic = 1048;
- e.Iinvertedbreve = 522;
- e.Iishortcyrillic = 1049;
- e.Imacron = 298;
- e.Imacroncyrillic = 1250;
- e.Imonospace = 65321;
- e.Iniarmenian = 1339;
- e.Iocyrillic = 1025;
- e.Iogonek = 302;
- e.Iota = 921;
- e.Iotaafrican = 406;
- e.Iotadieresis = 938;
- e.Iotatonos = 906;
- e.Ismall = 63337;
- e.Istroke = 407;
- e.Itilde = 296;
- e.Itildebelow = 7724;
- e.Izhitsacyrillic = 1140;
- e.Izhitsadblgravecyrillic = 1142;
- e.J = 74;
- e.Jaarmenian = 1345;
- e.Jcircle = 9407;
- e.Jcircumflex = 308;
- e.Jecyrillic = 1032;
- e.Jheharmenian = 1355;
- e.Jmonospace = 65322;
- e.Jsmall = 63338;
- e.K = 75;
- e.KBsquare = 13189;
- e.KKsquare = 13261;
- e.Kabashkircyrillic = 1184;
- e.Kacute = 7728;
- e.Kacyrillic = 1050;
- e.Kadescendercyrillic = 1178;
- e.Kahookcyrillic = 1219;
- e.Kappa = 922;
- e.Kastrokecyrillic = 1182;
- e.Kaverticalstrokecyrillic = 1180;
- e.Kcaron = 488;
- e.Kcedilla = 310;
- e.Kcircle = 9408;
- e.Kcommaaccent = 310;
- e.Kdotbelow = 7730;
- e.Keharmenian = 1364;
- e.Kenarmenian = 1343;
- e.Khacyrillic = 1061;
- e.Kheicoptic = 998;
- e.Khook = 408;
- e.Kjecyrillic = 1036;
- e.Klinebelow = 7732;
- e.Kmonospace = 65323;
- e.Koppacyrillic = 1152;
- e.Koppagreek = 990;
- e.Ksicyrillic = 1134;
- e.Ksmall = 63339;
- e.L = 76;
- e.LJ = 455;
- e.LL = 63167;
- e.Lacute = 313;
- e.Lambda = 923;
- e.Lcaron = 317;
- e.Lcedilla = 315;
- e.Lcircle = 9409;
- e.Lcircumflexbelow = 7740;
- e.Lcommaaccent = 315;
- e.Ldot = 319;
- e.Ldotaccent = 319;
- e.Ldotbelow = 7734;
- e.Ldotbelowmacron = 7736;
- e.Liwnarmenian = 1340;
- e.Lj = 456;
- e.Ljecyrillic = 1033;
- e.Llinebelow = 7738;
- e.Lmonospace = 65324;
- e.Lslash = 321;
- e.Lslashsmall = 63225;
- e.Lsmall = 63340;
- e.M = 77;
- e.MBsquare = 13190;
- e.Macron = 63184;
- e.Macronsmall = 63407;
- e.Macute = 7742;
- e.Mcircle = 9410;
- e.Mdotaccent = 7744;
- e.Mdotbelow = 7746;
- e.Menarmenian = 1348;
- e.Mmonospace = 65325;
- e.Msmall = 63341;
- e.Mturned = 412;
- e.Mu = 924;
- e.N = 78;
- e.NJ = 458;
- e.Nacute = 323;
- e.Ncaron = 327;
- e.Ncedilla = 325;
- e.Ncircle = 9411;
- e.Ncircumflexbelow = 7754;
- e.Ncommaaccent = 325;
- e.Ndotaccent = 7748;
- e.Ndotbelow = 7750;
- e.Nhookleft = 413;
- e.Nineroman = 8552;
- e.Nj = 459;
- e.Njecyrillic = 1034;
- e.Nlinebelow = 7752;
- e.Nmonospace = 65326;
- e.Nowarmenian = 1350;
- e.Nsmall = 63342;
- e.Ntilde = 209;
- e.Ntildesmall = 63473;
- e.Nu = 925;
- e.O = 79;
- e.OE = 338;
- e.OEsmall = 63226;
- e.Oacute = 211;
- e.Oacutesmall = 63475;
- e.Obarredcyrillic = 1256;
- e.Obarreddieresiscyrillic = 1258;
- e.Obreve = 334;
- e.Ocaron = 465;
- e.Ocenteredtilde = 415;
- e.Ocircle = 9412;
- e.Ocircumflex = 212;
- e.Ocircumflexacute = 7888;
- e.Ocircumflexdotbelow = 7896;
- e.Ocircumflexgrave = 7890;
- e.Ocircumflexhookabove = 7892;
- e.Ocircumflexsmall = 63476;
- e.Ocircumflextilde = 7894;
- e.Ocyrillic = 1054;
- e.Odblacute = 336;
- e.Odblgrave = 524;
- e.Odieresis = 214;
- e.Odieresiscyrillic = 1254;
- e.Odieresissmall = 63478;
- e.Odotbelow = 7884;
- e.Ogoneksmall = 63227;
- e.Ograve = 210;
- e.Ogravesmall = 63474;
- e.Oharmenian = 1365;
- e.Ohm = 8486;
- e.Ohookabove = 7886;
- e.Ohorn = 416;
- e.Ohornacute = 7898;
- e.Ohorndotbelow = 7906;
- e.Ohorngrave = 7900;
- e.Ohornhookabove = 7902;
- e.Ohorntilde = 7904;
- e.Ohungarumlaut = 336;
- e.Oi = 418;
- e.Oinvertedbreve = 526;
- e.Omacron = 332;
- e.Omacronacute = 7762;
- e.Omacrongrave = 7760;
- e.Omega = 8486;
- e.Omegacyrillic = 1120;
- e.Omegagreek = 937;
- e.Omegaroundcyrillic = 1146;
- e.Omegatitlocyrillic = 1148;
- e.Omegatonos = 911;
- e.Omicron = 927;
- e.Omicrontonos = 908;
- e.Omonospace = 65327;
- e.Oneroman = 8544;
- e.Oogonek = 490;
- e.Oogonekmacron = 492;
- e.Oopen = 390;
- e.Oslash = 216;
- e.Oslashacute = 510;
- e.Oslashsmall = 63480;
- e.Osmall = 63343;
- e.Ostrokeacute = 510;
- e.Otcyrillic = 1150;
- e.Otilde = 213;
- e.Otildeacute = 7756;
- e.Otildedieresis = 7758;
- e.Otildesmall = 63477;
- e.P = 80;
- e.Pacute = 7764;
- e.Pcircle = 9413;
- e.Pdotaccent = 7766;
- e.Pecyrillic = 1055;
- e.Peharmenian = 1354;
- e.Pemiddlehookcyrillic = 1190;
- e.Phi = 934;
- e.Phook = 420;
- e.Pi = 928;
- e.Piwrarmenian = 1363;
- e.Pmonospace = 65328;
- e.Psi = 936;
- e.Psicyrillic = 1136;
- e.Psmall = 63344;
- e.Q = 81;
- e.Qcircle = 9414;
- e.Qmonospace = 65329;
- e.Qsmall = 63345;
- e.R = 82;
- e.Raarmenian = 1356;
- e.Racute = 340;
- e.Rcaron = 344;
- e.Rcedilla = 342;
- e.Rcircle = 9415;
- e.Rcommaaccent = 342;
- e.Rdblgrave = 528;
- e.Rdotaccent = 7768;
- e.Rdotbelow = 7770;
- e.Rdotbelowmacron = 7772;
- e.Reharmenian = 1360;
- e.Rfraktur = 8476;
- e.Rho = 929;
- e.Ringsmall = 63228;
- e.Rinvertedbreve = 530;
- e.Rlinebelow = 7774;
- e.Rmonospace = 65330;
- e.Rsmall = 63346;
- e.Rsmallinverted = 641;
- e.Rsmallinvertedsuperior = 694;
- e.S = 83;
- e.SF010000 = 9484;
- e.SF020000 = 9492;
- e.SF030000 = 9488;
- e.SF040000 = 9496;
- e.SF050000 = 9532;
- e.SF060000 = 9516;
- e.SF070000 = 9524;
- e.SF080000 = 9500;
- e.SF090000 = 9508;
- e.SF100000 = 9472;
- e.SF110000 = 9474;
- e.SF190000 = 9569;
- e.SF200000 = 9570;
- e.SF210000 = 9558;
- e.SF220000 = 9557;
- e.SF230000 = 9571;
- e.SF240000 = 9553;
- e.SF250000 = 9559;
- e.SF260000 = 9565;
- e.SF270000 = 9564;
- e.SF280000 = 9563;
- e.SF360000 = 9566;
- e.SF370000 = 9567;
- e.SF380000 = 9562;
- e.SF390000 = 9556;
- e.SF400000 = 9577;
- e.SF410000 = 9574;
- e.SF420000 = 9568;
- e.SF430000 = 9552;
- e.SF440000 = 9580;
- e.SF450000 = 9575;
- e.SF460000 = 9576;
- e.SF470000 = 9572;
- e.SF480000 = 9573;
- e.SF490000 = 9561;
- e.SF500000 = 9560;
- e.SF510000 = 9554;
- e.SF520000 = 9555;
- e.SF530000 = 9579;
- e.SF540000 = 9578;
- e.Sacute = 346;
- e.Sacutedotaccent = 7780;
- e.Sampigreek = 992;
- e.Scaron = 352;
- e.Scarondotaccent = 7782;
- e.Scaronsmall = 63229;
- e.Scedilla = 350;
- e.Schwa = 399;
- e.Schwacyrillic = 1240;
- e.Schwadieresiscyrillic = 1242;
- e.Scircle = 9416;
- e.Scircumflex = 348;
- e.Scommaaccent = 536;
- e.Sdotaccent = 7776;
- e.Sdotbelow = 7778;
- e.Sdotbelowdotaccent = 7784;
- e.Seharmenian = 1357;
- e.Sevenroman = 8550;
- e.Shaarmenian = 1351;
- e.Shacyrillic = 1064;
- e.Shchacyrillic = 1065;
- e.Sheicoptic = 994;
- e.Shhacyrillic = 1210;
- e.Shimacoptic = 1004;
- e.Sigma = 931;
- e.Sixroman = 8549;
- e.Smonospace = 65331;
- e.Softsigncyrillic = 1068;
- e.Ssmall = 63347;
- e.Stigmagreek = 986;
- e.T = 84;
- e.Tau = 932;
- e.Tbar = 358;
- e.Tcaron = 356;
- e.Tcedilla = 354;
- e.Tcircle = 9417;
- e.Tcircumflexbelow = 7792;
- e.Tcommaaccent = 354;
- e.Tdotaccent = 7786;
- e.Tdotbelow = 7788;
- e.Tecyrillic = 1058;
- e.Tedescendercyrillic = 1196;
- e.Tenroman = 8553;
- e.Tetsecyrillic = 1204;
- e.Theta = 920;
- e.Thook = 428;
- e.Thorn = 222;
- e.Thornsmall = 63486;
- e.Threeroman = 8546;
- e.Tildesmall = 63230;
- e.Tiwnarmenian = 1359;
- e.Tlinebelow = 7790;
- e.Tmonospace = 65332;
- e.Toarmenian = 1337;
- e.Tonefive = 444;
- e.Tonesix = 388;
- e.Tonetwo = 423;
- e.Tretroflexhook = 430;
- e.Tsecyrillic = 1062;
- e.Tshecyrillic = 1035;
- e.Tsmall = 63348;
- e.Twelveroman = 8555;
- e.Tworoman = 8545;
- e.U = 85;
- e.Uacute = 218;
- e.Uacutesmall = 63482;
- e.Ubreve = 364;
- e.Ucaron = 467;
- e.Ucircle = 9418;
- e.Ucircumflex = 219;
- e.Ucircumflexbelow = 7798;
- e.Ucircumflexsmall = 63483;
- e.Ucyrillic = 1059;
- e.Udblacute = 368;
- e.Udblgrave = 532;
- e.Udieresis = 220;
- e.Udieresisacute = 471;
- e.Udieresisbelow = 7794;
- e.Udieresiscaron = 473;
- e.Udieresiscyrillic = 1264;
- e.Udieresisgrave = 475;
- e.Udieresismacron = 469;
- e.Udieresissmall = 63484;
- e.Udotbelow = 7908;
- e.Ugrave = 217;
- e.Ugravesmall = 63481;
- e.Uhookabove = 7910;
- e.Uhorn = 431;
- e.Uhornacute = 7912;
- e.Uhorndotbelow = 7920;
- e.Uhorngrave = 7914;
- e.Uhornhookabove = 7916;
- e.Uhorntilde = 7918;
- e.Uhungarumlaut = 368;
- e.Uhungarumlautcyrillic = 1266;
- e.Uinvertedbreve = 534;
- e.Ukcyrillic = 1144;
- e.Umacron = 362;
- e.Umacroncyrillic = 1262;
- e.Umacrondieresis = 7802;
- e.Umonospace = 65333;
- e.Uogonek = 370;
- e.Upsilon = 933;
- e.Upsilon1 = 978;
- e.Upsilonacutehooksymbolgreek = 979;
- e.Upsilonafrican = 433;
- e.Upsilondieresis = 939;
- e.Upsilondieresishooksymbolgreek = 980;
- e.Upsilonhooksymbol = 978;
- e.Upsilontonos = 910;
- e.Uring = 366;
- e.Ushortcyrillic = 1038;
- e.Usmall = 63349;
- e.Ustraightcyrillic = 1198;
- e.Ustraightstrokecyrillic = 1200;
- e.Utilde = 360;
- e.Utildeacute = 7800;
- e.Utildebelow = 7796;
- e.V = 86;
- e.Vcircle = 9419;
- e.Vdotbelow = 7806;
- e.Vecyrillic = 1042;
- e.Vewarmenian = 1358;
- e.Vhook = 434;
- e.Vmonospace = 65334;
- e.Voarmenian = 1352;
- e.Vsmall = 63350;
- e.Vtilde = 7804;
- e.W = 87;
- e.Wacute = 7810;
- e.Wcircle = 9420;
- e.Wcircumflex = 372;
- e.Wdieresis = 7812;
- e.Wdotaccent = 7814;
- e.Wdotbelow = 7816;
- e.Wgrave = 7808;
- e.Wmonospace = 65335;
- e.Wsmall = 63351;
- e.X = 88;
- e.Xcircle = 9421;
- e.Xdieresis = 7820;
- e.Xdotaccent = 7818;
- e.Xeharmenian = 1341;
- e.Xi = 926;
- e.Xmonospace = 65336;
- e.Xsmall = 63352;
- e.Y = 89;
- e.Yacute = 221;
- e.Yacutesmall = 63485;
- e.Yatcyrillic = 1122;
- e.Ycircle = 9422;
- e.Ycircumflex = 374;
- e.Ydieresis = 376;
- e.Ydieresissmall = 63487;
- e.Ydotaccent = 7822;
- e.Ydotbelow = 7924;
- e.Yericyrillic = 1067;
- e.Yerudieresiscyrillic = 1272;
- e.Ygrave = 7922;
- e.Yhook = 435;
- e.Yhookabove = 7926;
- e.Yiarmenian = 1349;
- e.Yicyrillic = 1031;
- e.Yiwnarmenian = 1362;
- e.Ymonospace = 65337;
- e.Ysmall = 63353;
- e.Ytilde = 7928;
- e.Yusbigcyrillic = 1130;
- e.Yusbigiotifiedcyrillic = 1132;
- e.Yuslittlecyrillic = 1126;
- e.Yuslittleiotifiedcyrillic = 1128;
- e.Z = 90;
- e.Zaarmenian = 1334;
- e.Zacute = 377;
- e.Zcaron = 381;
- e.Zcaronsmall = 63231;
- e.Zcircle = 9423;
- e.Zcircumflex = 7824;
- e.Zdot = 379;
- e.Zdotaccent = 379;
- e.Zdotbelow = 7826;
- e.Zecyrillic = 1047;
- e.Zedescendercyrillic = 1176;
- e.Zedieresiscyrillic = 1246;
- e.Zeta = 918;
- e.Zhearmenian = 1338;
- e.Zhebrevecyrillic = 1217;
- e.Zhecyrillic = 1046;
- e.Zhedescendercyrillic = 1174;
- e.Zhedieresiscyrillic = 1244;
- e.Zlinebelow = 7828;
- e.Zmonospace = 65338;
- e.Zsmall = 63354;
- e.Zstroke = 437;
- e.a = 97;
- e.aabengali = 2438;
- e.aacute = 225;
- e.aadeva = 2310;
- e.aagujarati = 2694;
- e.aagurmukhi = 2566;
- e.aamatragurmukhi = 2622;
- e.aarusquare = 13059;
- e.aavowelsignbengali = 2494;
- e.aavowelsigndeva = 2366;
- e.aavowelsigngujarati = 2750;
- e.abbreviationmarkarmenian = 1375;
- e.abbreviationsigndeva = 2416;
- e.abengali = 2437;
- e.abopomofo = 12570;
- e.abreve = 259;
- e.abreveacute = 7855;
- e.abrevecyrillic = 1233;
- e.abrevedotbelow = 7863;
- e.abrevegrave = 7857;
- e.abrevehookabove = 7859;
- e.abrevetilde = 7861;
- e.acaron = 462;
- e.acircle = 9424;
- e.acircumflex = 226;
- e.acircumflexacute = 7845;
- e.acircumflexdotbelow = 7853;
- e.acircumflexgrave = 7847;
- e.acircumflexhookabove = 7849;
- e.acircumflextilde = 7851;
- e.acute = 180;
- e.acutebelowcmb = 791;
- e.acutecmb = 769;
- e.acutecomb = 769;
- e.acutedeva = 2388;
- e.acutelowmod = 719;
- e.acutetonecmb = 833;
- e.acyrillic = 1072;
- e.adblgrave = 513;
- e.addakgurmukhi = 2673;
- e.adeva = 2309;
- e.adieresis = 228;
- e.adieresiscyrillic = 1235;
- e.adieresismacron = 479;
- e.adotbelow = 7841;
- e.adotmacron = 481;
- e.ae = 230;
- e.aeacute = 509;
- e.aekorean = 12624;
- e.aemacron = 483;
- e.afii00208 = 8213;
- e.afii08941 = 8356;
- e.afii10017 = 1040;
- e.afii10018 = 1041;
- e.afii10019 = 1042;
- e.afii10020 = 1043;
- e.afii10021 = 1044;
- e.afii10022 = 1045;
- e.afii10023 = 1025;
- e.afii10024 = 1046;
- e.afii10025 = 1047;
- e.afii10026 = 1048;
- e.afii10027 = 1049;
- e.afii10028 = 1050;
- e.afii10029 = 1051;
- e.afii10030 = 1052;
- e.afii10031 = 1053;
- e.afii10032 = 1054;
- e.afii10033 = 1055;
- e.afii10034 = 1056;
- e.afii10035 = 1057;
- e.afii10036 = 1058;
- e.afii10037 = 1059;
- e.afii10038 = 1060;
- e.afii10039 = 1061;
- e.afii10040 = 1062;
- e.afii10041 = 1063;
- e.afii10042 = 1064;
- e.afii10043 = 1065;
- e.afii10044 = 1066;
- e.afii10045 = 1067;
- e.afii10046 = 1068;
- e.afii10047 = 1069;
- e.afii10048 = 1070;
- e.afii10049 = 1071;
- e.afii10050 = 1168;
- e.afii10051 = 1026;
- e.afii10052 = 1027;
- e.afii10053 = 1028;
- e.afii10054 = 1029;
- e.afii10055 = 1030;
- e.afii10056 = 1031;
- e.afii10057 = 1032;
- e.afii10058 = 1033;
- e.afii10059 = 1034;
- e.afii10060 = 1035;
- e.afii10061 = 1036;
- e.afii10062 = 1038;
- e.afii10063 = 63172;
- e.afii10064 = 63173;
- e.afii10065 = 1072;
- e.afii10066 = 1073;
- e.afii10067 = 1074;
- e.afii10068 = 1075;
- e.afii10069 = 1076;
- e.afii10070 = 1077;
- e.afii10071 = 1105;
- e.afii10072 = 1078;
- e.afii10073 = 1079;
- e.afii10074 = 1080;
- e.afii10075 = 1081;
- e.afii10076 = 1082;
- e.afii10077 = 1083;
- e.afii10078 = 1084;
- e.afii10079 = 1085;
- e.afii10080 = 1086;
- e.afii10081 = 1087;
- e.afii10082 = 1088;
- e.afii10083 = 1089;
- e.afii10084 = 1090;
- e.afii10085 = 1091;
- e.afii10086 = 1092;
- e.afii10087 = 1093;
- e.afii10088 = 1094;
- e.afii10089 = 1095;
- e.afii10090 = 1096;
- e.afii10091 = 1097;
- e.afii10092 = 1098;
- e.afii10093 = 1099;
- e.afii10094 = 1100;
- e.afii10095 = 1101;
- e.afii10096 = 1102;
- e.afii10097 = 1103;
- e.afii10098 = 1169;
- e.afii10099 = 1106;
- e.afii10100 = 1107;
- e.afii10101 = 1108;
- e.afii10102 = 1109;
- e.afii10103 = 1110;
- e.afii10104 = 1111;
- e.afii10105 = 1112;
- e.afii10106 = 1113;
- e.afii10107 = 1114;
- e.afii10108 = 1115;
- e.afii10109 = 1116;
- e.afii10110 = 1118;
- e.afii10145 = 1039;
- e.afii10146 = 1122;
- e.afii10147 = 1138;
- e.afii10148 = 1140;
- e.afii10192 = 63174;
- e.afii10193 = 1119;
- e.afii10194 = 1123;
- e.afii10195 = 1139;
- e.afii10196 = 1141;
- e.afii10831 = 63175;
- e.afii10832 = 63176;
- e.afii10846 = 1241;
- e.afii299 = 8206;
- e.afii300 = 8207;
- e.afii301 = 8205;
- e.afii57381 = 1642;
- e.afii57388 = 1548;
- e.afii57392 = 1632;
- e.afii57393 = 1633;
- e.afii57394 = 1634;
- e.afii57395 = 1635;
- e.afii57396 = 1636;
- e.afii57397 = 1637;
- e.afii57398 = 1638;
- e.afii57399 = 1639;
- e.afii57400 = 1640;
- e.afii57401 = 1641;
- e.afii57403 = 1563;
- e.afii57407 = 1567;
- e.afii57409 = 1569;
- e.afii57410 = 1570;
- e.afii57411 = 1571;
- e.afii57412 = 1572;
- e.afii57413 = 1573;
- e.afii57414 = 1574;
- e.afii57415 = 1575;
- e.afii57416 = 1576;
- e.afii57417 = 1577;
- e.afii57418 = 1578;
- e.afii57419 = 1579;
- e.afii57420 = 1580;
- e.afii57421 = 1581;
- e.afii57422 = 1582;
- e.afii57423 = 1583;
- e.afii57424 = 1584;
- e.afii57425 = 1585;
- e.afii57426 = 1586;
- e.afii57427 = 1587;
- e.afii57428 = 1588;
- e.afii57429 = 1589;
- e.afii57430 = 1590;
- e.afii57431 = 1591;
- e.afii57432 = 1592;
- e.afii57433 = 1593;
- e.afii57434 = 1594;
- e.afii57440 = 1600;
- e.afii57441 = 1601;
- e.afii57442 = 1602;
- e.afii57443 = 1603;
- e.afii57444 = 1604;
- e.afii57445 = 1605;
- e.afii57446 = 1606;
- e.afii57448 = 1608;
- e.afii57449 = 1609;
- e.afii57450 = 1610;
- e.afii57451 = 1611;
- e.afii57452 = 1612;
- e.afii57453 = 1613;
- e.afii57454 = 1614;
- e.afii57455 = 1615;
- e.afii57456 = 1616;
- e.afii57457 = 1617;
- e.afii57458 = 1618;
- e.afii57470 = 1607;
- e.afii57505 = 1700;
- e.afii57506 = 1662;
- e.afii57507 = 1670;
- e.afii57508 = 1688;
- e.afii57509 = 1711;
- e.afii57511 = 1657;
- e.afii57512 = 1672;
- e.afii57513 = 1681;
- e.afii57514 = 1722;
- e.afii57519 = 1746;
- e.afii57534 = 1749;
- e.afii57636 = 8362;
- e.afii57645 = 1470;
- e.afii57658 = 1475;
- e.afii57664 = 1488;
- e.afii57665 = 1489;
- e.afii57666 = 1490;
- e.afii57667 = 1491;
- e.afii57668 = 1492;
- e.afii57669 = 1493;
- e.afii57670 = 1494;
- e.afii57671 = 1495;
- e.afii57672 = 1496;
- e.afii57673 = 1497;
- e.afii57674 = 1498;
- e.afii57675 = 1499;
- e.afii57676 = 1500;
- e.afii57677 = 1501;
- e.afii57678 = 1502;
- e.afii57679 = 1503;
- e.afii57680 = 1504;
- e.afii57681 = 1505;
- e.afii57682 = 1506;
- e.afii57683 = 1507;
- e.afii57684 = 1508;
- e.afii57685 = 1509;
- e.afii57686 = 1510;
- e.afii57687 = 1511;
- e.afii57688 = 1512;
- e.afii57689 = 1513;
- e.afii57690 = 1514;
- e.afii57694 = 64298;
- e.afii57695 = 64299;
- e.afii57700 = 64331;
- e.afii57705 = 64287;
- e.afii57716 = 1520;
- e.afii57717 = 1521;
- e.afii57718 = 1522;
- e.afii57723 = 64309;
- e.afii57793 = 1460;
- e.afii57794 = 1461;
- e.afii57795 = 1462;
- e.afii57796 = 1467;
- e.afii57797 = 1464;
- e.afii57798 = 1463;
- e.afii57799 = 1456;
- e.afii57800 = 1458;
- e.afii57801 = 1457;
- e.afii57802 = 1459;
- e.afii57803 = 1474;
- e.afii57804 = 1473;
- e.afii57806 = 1465;
- e.afii57807 = 1468;
- e.afii57839 = 1469;
- e.afii57841 = 1471;
- e.afii57842 = 1472;
- e.afii57929 = 700;
- e.afii61248 = 8453;
- e.afii61289 = 8467;
- e.afii61352 = 8470;
- e.afii61573 = 8236;
- e.afii61574 = 8237;
- e.afii61575 = 8238;
- e.afii61664 = 8204;
- e.afii63167 = 1645;
- e.afii64937 = 701;
- e.agrave = 224;
- e.agujarati = 2693;
- e.agurmukhi = 2565;
- e.ahiragana = 12354;
- e.ahookabove = 7843;
- e.aibengali = 2448;
- e.aibopomofo = 12574;
- e.aideva = 2320;
- e.aiecyrillic = 1237;
- e.aigujarati = 2704;
- e.aigurmukhi = 2576;
- e.aimatragurmukhi = 2632;
- e.ainarabic = 1593;
- e.ainfinalarabic = 65226;
- e.aininitialarabic = 65227;
- e.ainmedialarabic = 65228;
- e.ainvertedbreve = 515;
- e.aivowelsignbengali = 2504;
- e.aivowelsigndeva = 2376;
- e.aivowelsigngujarati = 2760;
- e.akatakana = 12450;
- e.akatakanahalfwidth = 65393;
- e.akorean = 12623;
- e.alef = 1488;
- e.alefarabic = 1575;
- e.alefdageshhebrew = 64304;
- e.aleffinalarabic = 65166;
- e.alefhamzaabovearabic = 1571;
- e.alefhamzaabovefinalarabic = 65156;
- e.alefhamzabelowarabic = 1573;
- e.alefhamzabelowfinalarabic = 65160;
- e.alefhebrew = 1488;
- e.aleflamedhebrew = 64335;
- e.alefmaddaabovearabic = 1570;
- e.alefmaddaabovefinalarabic = 65154;
- e.alefmaksuraarabic = 1609;
- e.alefmaksurafinalarabic = 65264;
- e.alefmaksurainitialarabic = 65267;
- e.alefmaksuramedialarabic = 65268;
- e.alefpatahhebrew = 64302;
- e.alefqamatshebrew = 64303;
- e.aleph = 8501;
- e.allequal = 8780;
- e.alpha = 945;
- e.alphatonos = 940;
- e.amacron = 257;
- e.amonospace = 65345;
- e.ampersand = 38;
- e.ampersandmonospace = 65286;
- e.ampersandsmall = 63270;
- e.amsquare = 13250;
- e.anbopomofo = 12578;
- e.angbopomofo = 12580;
- e.angbracketleft = 12296;
- e.angbracketright = 12297;
- e.angkhankhuthai = 3674;
- e.angle = 8736;
- e.anglebracketleft = 12296;
- e.anglebracketleftvertical = 65087;
- e.anglebracketright = 12297;
- e.anglebracketrightvertical = 65088;
- e.angleleft = 9001;
- e.angleright = 9002;
- e.angstrom = 8491;
- e.anoteleia = 903;
- e.anudattadeva = 2386;
- e.anusvarabengali = 2434;
- e.anusvaradeva = 2306;
- e.anusvaragujarati = 2690;
- e.aogonek = 261;
- e.apaatosquare = 13056;
- e.aparen = 9372;
- e.apostrophearmenian = 1370;
- e.apostrophemod = 700;
- e.apple = 63743;
- e.approaches = 8784;
- e.approxequal = 8776;
- e.approxequalorimage = 8786;
- e.approximatelyequal = 8773;
- e.araeaekorean = 12686;
- e.araeakorean = 12685;
- e.arc = 8978;
- e.arighthalfring = 7834;
- e.aring = 229;
- e.aringacute = 507;
- e.aringbelow = 7681;
- e.arrowboth = 8596;
- e.arrowdashdown = 8675;
- e.arrowdashleft = 8672;
- e.arrowdashright = 8674;
- e.arrowdashup = 8673;
- e.arrowdblboth = 8660;
- e.arrowdbldown = 8659;
- e.arrowdblleft = 8656;
- e.arrowdblright = 8658;
- e.arrowdblup = 8657;
- e.arrowdown = 8595;
- e.arrowdownleft = 8601;
- e.arrowdownright = 8600;
- e.arrowdownwhite = 8681;
- e.arrowheaddownmod = 709;
- e.arrowheadleftmod = 706;
- e.arrowheadrightmod = 707;
- e.arrowheadupmod = 708;
- e.arrowhorizex = 63719;
- e.arrowleft = 8592;
- e.arrowleftdbl = 8656;
- e.arrowleftdblstroke = 8653;
- e.arrowleftoverright = 8646;
- e.arrowleftwhite = 8678;
- e.arrowright = 8594;
- e.arrowrightdblstroke = 8655;
- e.arrowrightheavy = 10142;
- e.arrowrightoverleft = 8644;
- e.arrowrightwhite = 8680;
- e.arrowtableft = 8676;
- e.arrowtabright = 8677;
- e.arrowup = 8593;
- e.arrowupdn = 8597;
- e.arrowupdnbse = 8616;
- e.arrowupdownbase = 8616;
- e.arrowupleft = 8598;
- e.arrowupleftofdown = 8645;
- e.arrowupright = 8599;
- e.arrowupwhite = 8679;
- e.arrowvertex = 63718;
- e.asciicircum = 94;
- e.asciicircummonospace = 65342;
- e.asciitilde = 126;
- e.asciitildemonospace = 65374;
- e.ascript = 593;
- e.ascriptturned = 594;
- e.asmallhiragana = 12353;
- e.asmallkatakana = 12449;
- e.asmallkatakanahalfwidth = 65383;
- e.asterisk = 42;
- e.asteriskaltonearabic = 1645;
- e.asteriskarabic = 1645;
- e.asteriskmath = 8727;
- e.asteriskmonospace = 65290;
- e.asterisksmall = 65121;
- e.asterism = 8258;
- e.asuperior = 63209;
- e.asymptoticallyequal = 8771;
- e.at = 64;
- e.atilde = 227;
- e.atmonospace = 65312;
- e.atsmall = 65131;
- e.aturned = 592;
- e.aubengali = 2452;
- e.aubopomofo = 12576;
- e.audeva = 2324;
- e.augujarati = 2708;
- e.augurmukhi = 2580;
- e.aulengthmarkbengali = 2519;
- e.aumatragurmukhi = 2636;
- e.auvowelsignbengali = 2508;
- e.auvowelsigndeva = 2380;
- e.auvowelsigngujarati = 2764;
- e.avagrahadeva = 2365;
- e.aybarmenian = 1377;
- e.ayin = 1506;
- e.ayinaltonehebrew = 64288;
- e.ayinhebrew = 1506;
- e.b = 98;
- e.babengali = 2476;
- e.backslash = 92;
- e.backslashmonospace = 65340;
- e.badeva = 2348;
- e.bagujarati = 2732;
- e.bagurmukhi = 2604;
- e.bahiragana = 12400;
- e.bahtthai = 3647;
- e.bakatakana = 12496;
- e.bar = 124;
- e.barmonospace = 65372;
- e.bbopomofo = 12549;
- e.bcircle = 9425;
- e.bdotaccent = 7683;
- e.bdotbelow = 7685;
- e.beamedsixteenthnotes = 9836;
- e.because = 8757;
- e.becyrillic = 1073;
- e.beharabic = 1576;
- e.behfinalarabic = 65168;
- e.behinitialarabic = 65169;
- e.behiragana = 12409;
- e.behmedialarabic = 65170;
- e.behmeeminitialarabic = 64671;
- e.behmeemisolatedarabic = 64520;
- e.behnoonfinalarabic = 64621;
- e.bekatakana = 12505;
- e.benarmenian = 1378;
- e.bet = 1489;
- e.beta = 946;
- e.betasymbolgreek = 976;
- e.betdagesh = 64305;
- e.betdageshhebrew = 64305;
- e.bethebrew = 1489;
- e.betrafehebrew = 64332;
- e.bhabengali = 2477;
- e.bhadeva = 2349;
- e.bhagujarati = 2733;
- e.bhagurmukhi = 2605;
- e.bhook = 595;
- e.bihiragana = 12403;
- e.bikatakana = 12499;
- e.bilabialclick = 664;
- e.bindigurmukhi = 2562;
- e.birusquare = 13105;
- e.blackcircle = 9679;
- e.blackdiamond = 9670;
- e.blackdownpointingtriangle = 9660;
- e.blackleftpointingpointer = 9668;
- e.blackleftpointingtriangle = 9664;
- e.blacklenticularbracketleft = 12304;
- e.blacklenticularbracketleftvertical = 65083;
- e.blacklenticularbracketright = 12305;
- e.blacklenticularbracketrightvertical = 65084;
- e.blacklowerlefttriangle = 9699;
- e.blacklowerrighttriangle = 9698;
- e.blackrectangle = 9644;
- e.blackrightpointingpointer = 9658;
- e.blackrightpointingtriangle = 9654;
- e.blacksmallsquare = 9642;
- e.blacksmilingface = 9787;
- e.blacksquare = 9632;
- e.blackstar = 9733;
- e.blackupperlefttriangle = 9700;
- e.blackupperrighttriangle = 9701;
- e.blackuppointingsmalltriangle = 9652;
- e.blackuppointingtriangle = 9650;
- e.blank = 9251;
- e.blinebelow = 7687;
- e.block = 9608;
- e.bmonospace = 65346;
- e.bobaimaithai = 3610;
- e.bohiragana = 12412;
- e.bokatakana = 12508;
- e.bparen = 9373;
- e.bqsquare = 13251;
- e.braceex = 63732;
- e.braceleft = 123;
- e.braceleftbt = 63731;
- e.braceleftmid = 63730;
- e.braceleftmonospace = 65371;
- e.braceleftsmall = 65115;
- e.bracelefttp = 63729;
- e.braceleftvertical = 65079;
- e.braceright = 125;
- e.bracerightbt = 63742;
- e.bracerightmid = 63741;
- e.bracerightmonospace = 65373;
- e.bracerightsmall = 65116;
- e.bracerighttp = 63740;
- e.bracerightvertical = 65080;
- e.bracketleft = 91;
- e.bracketleftbt = 63728;
- e.bracketleftex = 63727;
- e.bracketleftmonospace = 65339;
- e.bracketlefttp = 63726;
- e.bracketright = 93;
- e.bracketrightbt = 63739;
- e.bracketrightex = 63738;
- e.bracketrightmonospace = 65341;
- e.bracketrighttp = 63737;
- e.breve = 728;
- e.brevebelowcmb = 814;
- e.brevecmb = 774;
- e.breveinvertedbelowcmb = 815;
- e.breveinvertedcmb = 785;
- e.breveinverteddoublecmb = 865;
- e.bridgebelowcmb = 810;
- e.bridgeinvertedbelowcmb = 826;
- e.brokenbar = 166;
- e.bstroke = 384;
- e.bsuperior = 63210;
- e.btopbar = 387;
- e.buhiragana = 12406;
- e.bukatakana = 12502;
- e.bullet = 8226;
- e.bulletinverse = 9688;
- e.bulletoperator = 8729;
- e.bullseye = 9678;
- e.c = 99;
- e.caarmenian = 1390;
- e.cabengali = 2458;
- e.cacute = 263;
- e.cadeva = 2330;
- e.cagujarati = 2714;
- e.cagurmukhi = 2586;
- e.calsquare = 13192;
- e.candrabindubengali = 2433;
- e.candrabinducmb = 784;
- e.candrabindudeva = 2305;
- e.candrabindugujarati = 2689;
- e.capslock = 8682;
- e.careof = 8453;
- e.caron = 711;
- e.caronbelowcmb = 812;
- e.caroncmb = 780;
- e.carriagereturn = 8629;
- e.cbopomofo = 12568;
- e.ccaron = 269;
- e.ccedilla = 231;
- e.ccedillaacute = 7689;
- e.ccircle = 9426;
- e.ccircumflex = 265;
- e.ccurl = 597;
- e.cdot = 267;
- e.cdotaccent = 267;
- e.cdsquare = 13253;
- e.cedilla = 184;
- e.cedillacmb = 807;
- e.cent = 162;
- e.centigrade = 8451;
- e.centinferior = 63199;
- e.centmonospace = 65504;
- e.centoldstyle = 63394;
- e.centsuperior = 63200;
- e.chaarmenian = 1401;
- e.chabengali = 2459;
- e.chadeva = 2331;
- e.chagujarati = 2715;
- e.chagurmukhi = 2587;
- e.chbopomofo = 12564;
- e.cheabkhasiancyrillic = 1213;
- e.checkmark = 10003;
- e.checyrillic = 1095;
- e.chedescenderabkhasiancyrillic = 1215;
- e.chedescendercyrillic = 1207;
- e.chedieresiscyrillic = 1269;
- e.cheharmenian = 1395;
- e.chekhakassiancyrillic = 1228;
- e.cheverticalstrokecyrillic = 1209;
- e.chi = 967;
- e.chieuchacirclekorean = 12919;
- e.chieuchaparenkorean = 12823;
- e.chieuchcirclekorean = 12905;
- e.chieuchkorean = 12618;
- e.chieuchparenkorean = 12809;
- e.chochangthai = 3594;
- e.chochanthai = 3592;
- e.chochingthai = 3593;
- e.chochoethai = 3596;
- e.chook = 392;
- e.cieucacirclekorean = 12918;
- e.cieucaparenkorean = 12822;
- e.cieuccirclekorean = 12904;
- e.cieuckorean = 12616;
- e.cieucparenkorean = 12808;
- e.cieucuparenkorean = 12828;
- e.circle = 9675;
- e.circlecopyrt = 169;
- e.circlemultiply = 8855;
- e.circleot = 8857;
- e.circleplus = 8853;
- e.circlepostalmark = 12342;
- e.circlewithlefthalfblack = 9680;
- e.circlewithrighthalfblack = 9681;
- e.circumflex = 710;
- e.circumflexbelowcmb = 813;
- e.circumflexcmb = 770;
- e.clear = 8999;
- e.clickalveolar = 450;
- e.clickdental = 448;
- e.clicklateral = 449;
- e.clickretroflex = 451;
- e.club = 9827;
- e.clubsuitblack = 9827;
- e.clubsuitwhite = 9831;
- e.cmcubedsquare = 13220;
- e.cmonospace = 65347;
- e.cmsquaredsquare = 13216;
- e.coarmenian = 1409;
- e.colon = 58;
- e.colonmonetary = 8353;
- e.colonmonospace = 65306;
- e.colonsign = 8353;
- e.colonsmall = 65109;
- e.colontriangularhalfmod = 721;
- e.colontriangularmod = 720;
- e.comma = 44;
- e.commaabovecmb = 787;
- e.commaaboverightcmb = 789;
- e.commaaccent = 63171;
- e.commaarabic = 1548;
- e.commaarmenian = 1373;
- e.commainferior = 63201;
- e.commamonospace = 65292;
- e.commareversedabovecmb = 788;
- e.commareversedmod = 701;
- e.commasmall = 65104;
- e.commasuperior = 63202;
- e.commaturnedabovecmb = 786;
- e.commaturnedmod = 699;
- e.compass = 9788;
- e.congruent = 8773;
- e.contourintegral = 8750;
- e.control = 8963;
- e.controlACK = 6;
- e.controlBEL = 7;
- e.controlBS = 8;
- e.controlCAN = 24;
- e.controlCR = 13;
- e.controlDC1 = 17;
- e.controlDC2 = 18;
- e.controlDC3 = 19;
- e.controlDC4 = 20;
- e.controlDEL = 127;
- e.controlDLE = 16;
- e.controlEM = 25;
- e.controlENQ = 5;
- e.controlEOT = 4;
- e.controlESC = 27;
- e.controlETB = 23;
- e.controlETX = 3;
- e.controlFF = 12;
- e.controlFS = 28;
- e.controlGS = 29;
- e.controlHT = 9;
- e.controlLF = 10;
- e.controlNAK = 21;
- e.controlNULL = 0;
- e.controlRS = 30;
- e.controlSI = 15;
- e.controlSO = 14;
- e.controlSOT = 2;
- e.controlSTX = 1;
- e.controlSUB = 26;
- e.controlSYN = 22;
- e.controlUS = 31;
- e.controlVT = 11;
- e.copyright = 169;
- e.copyrightsans = 63721;
- e.copyrightserif = 63193;
- e.cornerbracketleft = 12300;
- e.cornerbracketlefthalfwidth = 65378;
- e.cornerbracketleftvertical = 65089;
- e.cornerbracketright = 12301;
- e.cornerbracketrighthalfwidth = 65379;
- e.cornerbracketrightvertical = 65090;
- e.corporationsquare = 13183;
- e.cosquare = 13255;
- e.coverkgsquare = 13254;
- e.cparen = 9374;
- e.cruzeiro = 8354;
- e.cstretched = 663;
- e.curlyand = 8911;
- e.curlyor = 8910;
- e.currency = 164;
- e.cyrBreve = 63185;
- e.cyrFlex = 63186;
- e.cyrbreve = 63188;
- e.cyrflex = 63189;
- e.d = 100;
- e.daarmenian = 1380;
- e.dabengali = 2470;
- e.dadarabic = 1590;
- e.dadeva = 2342;
- e.dadfinalarabic = 65214;
- e.dadinitialarabic = 65215;
- e.dadmedialarabic = 65216;
- e.dagesh = 1468;
- e.dageshhebrew = 1468;
- e.dagger = 8224;
- e.daggerdbl = 8225;
- e.dagujarati = 2726;
- e.dagurmukhi = 2598;
- e.dahiragana = 12384;
- e.dakatakana = 12480;
- e.dalarabic = 1583;
- e.dalet = 1491;
- e.daletdagesh = 64307;
- e.daletdageshhebrew = 64307;
- e.dalethebrew = 1491;
- e.dalfinalarabic = 65194;
- e.dammaarabic = 1615;
- e.dammalowarabic = 1615;
- e.dammatanaltonearabic = 1612;
- e.dammatanarabic = 1612;
- e.danda = 2404;
- e.dargahebrew = 1447;
- e.dargalefthebrew = 1447;
- e.dasiapneumatacyrilliccmb = 1157;
- e.dblGrave = 63187;
- e.dblanglebracketleft = 12298;
- e.dblanglebracketleftvertical = 65085;
- e.dblanglebracketright = 12299;
- e.dblanglebracketrightvertical = 65086;
- e.dblarchinvertedbelowcmb = 811;
- e.dblarrowleft = 8660;
- e.dblarrowright = 8658;
- e.dbldanda = 2405;
- e.dblgrave = 63190;
- e.dblgravecmb = 783;
- e.dblintegral = 8748;
- e.dbllowline = 8215;
- e.dbllowlinecmb = 819;
- e.dbloverlinecmb = 831;
- e.dblprimemod = 698;
- e.dblverticalbar = 8214;
- e.dblverticallineabovecmb = 782;
- e.dbopomofo = 12553;
- e.dbsquare = 13256;
- e.dcaron = 271;
- e.dcedilla = 7697;
- e.dcircle = 9427;
- e.dcircumflexbelow = 7699;
- e.dcroat = 273;
- e.ddabengali = 2465;
- e.ddadeva = 2337;
- e.ddagujarati = 2721;
- e.ddagurmukhi = 2593;
- e.ddalarabic = 1672;
- e.ddalfinalarabic = 64393;
- e.dddhadeva = 2396;
- e.ddhabengali = 2466;
- e.ddhadeva = 2338;
- e.ddhagujarati = 2722;
- e.ddhagurmukhi = 2594;
- e.ddotaccent = 7691;
- e.ddotbelow = 7693;
- e.decimalseparatorarabic = 1643;
- e.decimalseparatorpersian = 1643;
- e.decyrillic = 1076;
- e.degree = 176;
- e.dehihebrew = 1453;
- e.dehiragana = 12391;
- e.deicoptic = 1007;
- e.dekatakana = 12487;
- e.deleteleft = 9003;
- e.deleteright = 8998;
- e.delta = 948;
- e.deltaturned = 397;
- e.denominatorminusonenumeratorbengali = 2552;
- e.dezh = 676;
- e.dhabengali = 2471;
- e.dhadeva = 2343;
- e.dhagujarati = 2727;
- e.dhagurmukhi = 2599;
- e.dhook = 599;
- e.dialytikatonos = 901;
- e.dialytikatonoscmb = 836;
- e.diamond = 9830;
- e.diamondsuitwhite = 9826;
- e.dieresis = 168;
- e.dieresisacute = 63191;
- e.dieresisbelowcmb = 804;
- e.dieresiscmb = 776;
- e.dieresisgrave = 63192;
- e.dieresistonos = 901;
- e.dihiragana = 12386;
- e.dikatakana = 12482;
- e.dittomark = 12291;
- e.divide = 247;
- e.divides = 8739;
- e.divisionslash = 8725;
- e.djecyrillic = 1106;
- e.dkshade = 9619;
- e.dlinebelow = 7695;
- e.dlsquare = 13207;
- e.dmacron = 273;
- e.dmonospace = 65348;
- e.dnblock = 9604;
- e.dochadathai = 3598;
- e.dodekthai = 3604;
- e.dohiragana = 12393;
- e.dokatakana = 12489;
- e.dollar = 36;
- e.dollarinferior = 63203;
- e.dollarmonospace = 65284;
- e.dollaroldstyle = 63268;
- e.dollarsmall = 65129;
- e.dollarsuperior = 63204;
- e.dong = 8363;
- e.dorusquare = 13094;
- e.dotaccent = 729;
- e.dotaccentcmb = 775;
- e.dotbelowcmb = 803;
- e.dotbelowcomb = 803;
- e.dotkatakana = 12539;
- e.dotlessi = 305;
- e.dotlessj = 63166;
- e.dotlessjstrokehook = 644;
- e.dotmath = 8901;
- e.dottedcircle = 9676;
- e.doubleyodpatah = 64287;
- e.doubleyodpatahhebrew = 64287;
- e.downtackbelowcmb = 798;
- e.downtackmod = 725;
- e.dparen = 9375;
- e.dsuperior = 63211;
- e.dtail = 598;
- e.dtopbar = 396;
- e.duhiragana = 12389;
- e.dukatakana = 12485;
- e.dz = 499;
- e.dzaltone = 675;
- e.dzcaron = 454;
- e.dzcurl = 677;
- e.dzeabkhasiancyrillic = 1249;
- e.dzecyrillic = 1109;
- e.dzhecyrillic = 1119;
- e.e = 101;
- e.eacute = 233;
- e.earth = 9793;
- e.ebengali = 2447;
- e.ebopomofo = 12572;
- e.ebreve = 277;
- e.ecandradeva = 2317;
- e.ecandragujarati = 2701;
- e.ecandravowelsigndeva = 2373;
- e.ecandravowelsigngujarati = 2757;
- e.ecaron = 283;
- e.ecedillabreve = 7709;
- e.echarmenian = 1381;
- e.echyiwnarmenian = 1415;
- e.ecircle = 9428;
- e.ecircumflex = 234;
- e.ecircumflexacute = 7871;
- e.ecircumflexbelow = 7705;
- e.ecircumflexdotbelow = 7879;
- e.ecircumflexgrave = 7873;
- e.ecircumflexhookabove = 7875;
- e.ecircumflextilde = 7877;
- e.ecyrillic = 1108;
- e.edblgrave = 517;
- e.edeva = 2319;
- e.edieresis = 235;
- e.edot = 279;
- e.edotaccent = 279;
- e.edotbelow = 7865;
- e.eegurmukhi = 2575;
- e.eematragurmukhi = 2631;
- e.efcyrillic = 1092;
- e.egrave = 232;
- e.egujarati = 2703;
- e.eharmenian = 1383;
- e.ehbopomofo = 12573;
- e.ehiragana = 12360;
- e.ehookabove = 7867;
- e.eibopomofo = 12575;
- e.eight = 56;
- e.eightarabic = 1640;
- e.eightbengali = 2542;
- e.eightcircle = 9319;
- e.eightcircleinversesansserif = 10129;
- e.eightdeva = 2414;
- e.eighteencircle = 9329;
- e.eighteenparen = 9349;
- e.eighteenperiod = 9369;
- e.eightgujarati = 2798;
- e.eightgurmukhi = 2670;
- e.eighthackarabic = 1640;
- e.eighthangzhou = 12328;
- e.eighthnotebeamed = 9835;
- e.eightideographicparen = 12839;
- e.eightinferior = 8328;
- e.eightmonospace = 65304;
- e.eightoldstyle = 63288;
- e.eightparen = 9339;
- e.eightperiod = 9359;
- e.eightpersian = 1784;
- e.eightroman = 8567;
- e.eightsuperior = 8312;
- e.eightthai = 3672;
- e.einvertedbreve = 519;
- e.eiotifiedcyrillic = 1125;
- e.ekatakana = 12456;
- e.ekatakanahalfwidth = 65396;
- e.ekonkargurmukhi = 2676;
- e.ekorean = 12628;
- e.elcyrillic = 1083;
- e.element = 8712;
- e.elevencircle = 9322;
- e.elevenparen = 9342;
- e.elevenperiod = 9362;
- e.elevenroman = 8570;
- e.ellipsis = 8230;
- e.ellipsisvertical = 8942;
- e.emacron = 275;
- e.emacronacute = 7703;
- e.emacrongrave = 7701;
- e.emcyrillic = 1084;
- e.emdash = 8212;
- e.emdashvertical = 65073;
- e.emonospace = 65349;
- e.emphasismarkarmenian = 1371;
- e.emptyset = 8709;
- e.enbopomofo = 12579;
- e.encyrillic = 1085;
- e.endash = 8211;
- e.endashvertical = 65074;
- e.endescendercyrillic = 1187;
- e.eng = 331;
- e.engbopomofo = 12581;
- e.enghecyrillic = 1189;
- e.enhookcyrillic = 1224;
- e.enspace = 8194;
- e.eogonek = 281;
- e.eokorean = 12627;
- e.eopen = 603;
- e.eopenclosed = 666;
- e.eopenreversed = 604;
- e.eopenreversedclosed = 606;
- e.eopenreversedhook = 605;
- e.eparen = 9376;
- e.epsilon = 949;
- e.epsilontonos = 941;
- e.equal = 61;
- e.equalmonospace = 65309;
- e.equalsmall = 65126;
- e.equalsuperior = 8316;
- e.equivalence = 8801;
- e.erbopomofo = 12582;
- e.ercyrillic = 1088;
- e.ereversed = 600;
- e.ereversedcyrillic = 1101;
- e.escyrillic = 1089;
- e.esdescendercyrillic = 1195;
- e.esh = 643;
- e.eshcurl = 646;
- e.eshortdeva = 2318;
- e.eshortvowelsigndeva = 2374;
- e.eshreversedloop = 426;
- e.eshsquatreversed = 645;
- e.esmallhiragana = 12359;
- e.esmallkatakana = 12455;
- e.esmallkatakanahalfwidth = 65386;
- e.estimated = 8494;
- e.esuperior = 63212;
- e.eta = 951;
- e.etarmenian = 1384;
- e.etatonos = 942;
- e.eth = 240;
- e.etilde = 7869;
- e.etildebelow = 7707;
- e.etnahtafoukhhebrew = 1425;
- e.etnahtafoukhlefthebrew = 1425;
- e.etnahtahebrew = 1425;
- e.etnahtalefthebrew = 1425;
- e.eturned = 477;
- e.eukorean = 12641;
- e.euro = 8364;
- e.evowelsignbengali = 2503;
- e.evowelsigndeva = 2375;
- e.evowelsigngujarati = 2759;
- e.exclam = 33;
- e.exclamarmenian = 1372;
- e.exclamdbl = 8252;
- e.exclamdown = 161;
- e.exclamdownsmall = 63393;
- e.exclammonospace = 65281;
- e.exclamsmall = 63265;
- e.existential = 8707;
- e.ezh = 658;
- e.ezhcaron = 495;
- e.ezhcurl = 659;
- e.ezhreversed = 441;
- e.ezhtail = 442;
- e.f = 102;
- e.fadeva = 2398;
- e.fagurmukhi = 2654;
- e.fahrenheit = 8457;
- e.fathaarabic = 1614;
- e.fathalowarabic = 1614;
- e.fathatanarabic = 1611;
- e.fbopomofo = 12552;
- e.fcircle = 9429;
- e.fdotaccent = 7711;
- e.feharabic = 1601;
- e.feharmenian = 1414;
- e.fehfinalarabic = 65234;
- e.fehinitialarabic = 65235;
- e.fehmedialarabic = 65236;
- e.feicoptic = 997;
- e.female = 9792;
- e.ff = 64256;
- e.f_f = 64256;
- e.ffi = 64259;
- e.f_f_i = 64259;
- e.ffl = 64260;
- e.f_f_l = 64260;
- e.fi = 64257;
- e.f_i = 64257;
- e.fifteencircle = 9326;
- e.fifteenparen = 9346;
- e.fifteenperiod = 9366;
- e.figuredash = 8210;
- e.filledbox = 9632;
- e.filledrect = 9644;
- e.finalkaf = 1498;
- e.finalkafdagesh = 64314;
- e.finalkafdageshhebrew = 64314;
- e.finalkafhebrew = 1498;
- e.finalmem = 1501;
- e.finalmemhebrew = 1501;
- e.finalnun = 1503;
- e.finalnunhebrew = 1503;
- e.finalpe = 1507;
- e.finalpehebrew = 1507;
- e.finaltsadi = 1509;
- e.finaltsadihebrew = 1509;
- e.firsttonechinese = 713;
- e.fisheye = 9673;
- e.fitacyrillic = 1139;
- e.five = 53;
- e.fivearabic = 1637;
- e.fivebengali = 2539;
- e.fivecircle = 9316;
- e.fivecircleinversesansserif = 10126;
- e.fivedeva = 2411;
- e.fiveeighths = 8541;
- e.fivegujarati = 2795;
- e.fivegurmukhi = 2667;
- e.fivehackarabic = 1637;
- e.fivehangzhou = 12325;
- e.fiveideographicparen = 12836;
- e.fiveinferior = 8325;
- e.fivemonospace = 65301;
- e.fiveoldstyle = 63285;
- e.fiveparen = 9336;
- e.fiveperiod = 9356;
- e.fivepersian = 1781;
- e.fiveroman = 8564;
- e.fivesuperior = 8309;
- e.fivethai = 3669;
- e.fl = 64258;
- e.f_l = 64258;
- e.florin = 402;
- e.fmonospace = 65350;
- e.fmsquare = 13209;
- e.fofanthai = 3615;
- e.fofathai = 3613;
- e.fongmanthai = 3663;
- e.forall = 8704;
- e.four = 52;
- e.fourarabic = 1636;
- e.fourbengali = 2538;
- e.fourcircle = 9315;
- e.fourcircleinversesansserif = 10125;
- e.fourdeva = 2410;
- e.fourgujarati = 2794;
- e.fourgurmukhi = 2666;
- e.fourhackarabic = 1636;
- e.fourhangzhou = 12324;
- e.fourideographicparen = 12835;
- e.fourinferior = 8324;
- e.fourmonospace = 65300;
- e.fournumeratorbengali = 2551;
- e.fouroldstyle = 63284;
- e.fourparen = 9335;
- e.fourperiod = 9355;
- e.fourpersian = 1780;
- e.fourroman = 8563;
- e.foursuperior = 8308;
- e.fourteencircle = 9325;
- e.fourteenparen = 9345;
- e.fourteenperiod = 9365;
- e.fourthai = 3668;
- e.fourthtonechinese = 715;
- e.fparen = 9377;
- e.fraction = 8260;
- e.franc = 8355;
- e.g = 103;
- e.gabengali = 2455;
- e.gacute = 501;
- e.gadeva = 2327;
- e.gafarabic = 1711;
- e.gaffinalarabic = 64403;
- e.gafinitialarabic = 64404;
- e.gafmedialarabic = 64405;
- e.gagujarati = 2711;
- e.gagurmukhi = 2583;
- e.gahiragana = 12364;
- e.gakatakana = 12460;
- e.gamma = 947;
- e.gammalatinsmall = 611;
- e.gammasuperior = 736;
- e.gangiacoptic = 1003;
- e.gbopomofo = 12557;
- e.gbreve = 287;
- e.gcaron = 487;
- e.gcedilla = 291;
- e.gcircle = 9430;
- e.gcircumflex = 285;
- e.gcommaaccent = 291;
- e.gdot = 289;
- e.gdotaccent = 289;
- e.gecyrillic = 1075;
- e.gehiragana = 12370;
- e.gekatakana = 12466;
- e.geometricallyequal = 8785;
- e.gereshaccenthebrew = 1436;
- e.gereshhebrew = 1523;
- e.gereshmuqdamhebrew = 1437;
- e.germandbls = 223;
- e.gershayimaccenthebrew = 1438;
- e.gershayimhebrew = 1524;
- e.getamark = 12307;
- e.ghabengali = 2456;
- e.ghadarmenian = 1394;
- e.ghadeva = 2328;
- e.ghagujarati = 2712;
- e.ghagurmukhi = 2584;
- e.ghainarabic = 1594;
- e.ghainfinalarabic = 65230;
- e.ghaininitialarabic = 65231;
- e.ghainmedialarabic = 65232;
- e.ghemiddlehookcyrillic = 1173;
- e.ghestrokecyrillic = 1171;
- e.gheupturncyrillic = 1169;
- e.ghhadeva = 2394;
- e.ghhagurmukhi = 2650;
- e.ghook = 608;
- e.ghzsquare = 13203;
- e.gihiragana = 12366;
- e.gikatakana = 12462;
- e.gimarmenian = 1379;
- e.gimel = 1490;
- e.gimeldagesh = 64306;
- e.gimeldageshhebrew = 64306;
- e.gimelhebrew = 1490;
- e.gjecyrillic = 1107;
- e.glottalinvertedstroke = 446;
- e.glottalstop = 660;
- e.glottalstopinverted = 662;
- e.glottalstopmod = 704;
- e.glottalstopreversed = 661;
- e.glottalstopreversedmod = 705;
- e.glottalstopreversedsuperior = 740;
- e.glottalstopstroke = 673;
- e.glottalstopstrokereversed = 674;
- e.gmacron = 7713;
- e.gmonospace = 65351;
- e.gohiragana = 12372;
- e.gokatakana = 12468;
- e.gparen = 9378;
- e.gpasquare = 13228;
- e.gradient = 8711;
- e.grave = 96;
- e.gravebelowcmb = 790;
- e.gravecmb = 768;
- e.gravecomb = 768;
- e.gravedeva = 2387;
- e.gravelowmod = 718;
- e.gravemonospace = 65344;
- e.gravetonecmb = 832;
- e.greater = 62;
- e.greaterequal = 8805;
- e.greaterequalorless = 8923;
- e.greatermonospace = 65310;
- e.greaterorequivalent = 8819;
- e.greaterorless = 8823;
- e.greateroverequal = 8807;
- e.greatersmall = 65125;
- e.gscript = 609;
- e.gstroke = 485;
- e.guhiragana = 12368;
- e.guillemotleft = 171;
- e.guillemotright = 187;
- e.guilsinglleft = 8249;
- e.guilsinglright = 8250;
- e.gukatakana = 12464;
- e.guramusquare = 13080;
- e.gysquare = 13257;
- e.h = 104;
- e.haabkhasiancyrillic = 1193;
- e.haaltonearabic = 1729;
- e.habengali = 2489;
- e.hadescendercyrillic = 1203;
- e.hadeva = 2361;
- e.hagujarati = 2745;
- e.hagurmukhi = 2617;
- e.haharabic = 1581;
- e.hahfinalarabic = 65186;
- e.hahinitialarabic = 65187;
- e.hahiragana = 12399;
- e.hahmedialarabic = 65188;
- e.haitusquare = 13098;
- e.hakatakana = 12495;
- e.hakatakanahalfwidth = 65418;
- e.halantgurmukhi = 2637;
- e.hamzaarabic = 1569;
- e.hamzalowarabic = 1569;
- e.hangulfiller = 12644;
- e.hardsigncyrillic = 1098;
- e.harpoonleftbarbup = 8636;
- e.harpoonrightbarbup = 8640;
- e.hasquare = 13258;
- e.hatafpatah = 1458;
- e.hatafpatah16 = 1458;
- e.hatafpatah23 = 1458;
- e.hatafpatah2f = 1458;
- e.hatafpatahhebrew = 1458;
- e.hatafpatahnarrowhebrew = 1458;
- e.hatafpatahquarterhebrew = 1458;
- e.hatafpatahwidehebrew = 1458;
- e.hatafqamats = 1459;
- e.hatafqamats1b = 1459;
- e.hatafqamats28 = 1459;
- e.hatafqamats34 = 1459;
- e.hatafqamatshebrew = 1459;
- e.hatafqamatsnarrowhebrew = 1459;
- e.hatafqamatsquarterhebrew = 1459;
- e.hatafqamatswidehebrew = 1459;
- e.hatafsegol = 1457;
- e.hatafsegol17 = 1457;
- e.hatafsegol24 = 1457;
- e.hatafsegol30 = 1457;
- e.hatafsegolhebrew = 1457;
- e.hatafsegolnarrowhebrew = 1457;
- e.hatafsegolquarterhebrew = 1457;
- e.hatafsegolwidehebrew = 1457;
- e.hbar = 295;
- e.hbopomofo = 12559;
- e.hbrevebelow = 7723;
- e.hcedilla = 7721;
- e.hcircle = 9431;
- e.hcircumflex = 293;
- e.hdieresis = 7719;
- e.hdotaccent = 7715;
- e.hdotbelow = 7717;
- e.he = 1492;
- e.heart = 9829;
- e.heartsuitblack = 9829;
- e.heartsuitwhite = 9825;
- e.hedagesh = 64308;
- e.hedageshhebrew = 64308;
- e.hehaltonearabic = 1729;
- e.heharabic = 1607;
- e.hehebrew = 1492;
- e.hehfinalaltonearabic = 64423;
- e.hehfinalalttwoarabic = 65258;
- e.hehfinalarabic = 65258;
- e.hehhamzaabovefinalarabic = 64421;
- e.hehhamzaaboveisolatedarabic = 64420;
- e.hehinitialaltonearabic = 64424;
- e.hehinitialarabic = 65259;
- e.hehiragana = 12408;
- e.hehmedialaltonearabic = 64425;
- e.hehmedialarabic = 65260;
- e.heiseierasquare = 13179;
- e.hekatakana = 12504;
- e.hekatakanahalfwidth = 65421;
- e.hekutaarusquare = 13110;
- e.henghook = 615;
- e.herutusquare = 13113;
- e.het = 1495;
- e.hethebrew = 1495;
- e.hhook = 614;
- e.hhooksuperior = 689;
- e.hieuhacirclekorean = 12923;
- e.hieuhaparenkorean = 12827;
- e.hieuhcirclekorean = 12909;
- e.hieuhkorean = 12622;
- e.hieuhparenkorean = 12813;
- e.hihiragana = 12402;
- e.hikatakana = 12498;
- e.hikatakanahalfwidth = 65419;
- e.hiriq = 1460;
- e.hiriq14 = 1460;
- e.hiriq21 = 1460;
- e.hiriq2d = 1460;
- e.hiriqhebrew = 1460;
- e.hiriqnarrowhebrew = 1460;
- e.hiriqquarterhebrew = 1460;
- e.hiriqwidehebrew = 1460;
- e.hlinebelow = 7830;
- e.hmonospace = 65352;
- e.hoarmenian = 1392;
- e.hohipthai = 3627;
- e.hohiragana = 12411;
- e.hokatakana = 12507;
- e.hokatakanahalfwidth = 65422;
- e.holam = 1465;
- e.holam19 = 1465;
- e.holam26 = 1465;
- e.holam32 = 1465;
- e.holamhebrew = 1465;
- e.holamnarrowhebrew = 1465;
- e.holamquarterhebrew = 1465;
- e.holamwidehebrew = 1465;
- e.honokhukthai = 3630;
- e.hookabovecomb = 777;
- e.hookcmb = 777;
- e.hookpalatalizedbelowcmb = 801;
- e.hookretroflexbelowcmb = 802;
- e.hoonsquare = 13122;
- e.horicoptic = 1001;
- e.horizontalbar = 8213;
- e.horncmb = 795;
- e.hotsprings = 9832;
- e.house = 8962;
- e.hparen = 9379;
- e.hsuperior = 688;
- e.hturned = 613;
- e.huhiragana = 12405;
- e.huiitosquare = 13107;
- e.hukatakana = 12501;
- e.hukatakanahalfwidth = 65420;
- e.hungarumlaut = 733;
- e.hungarumlautcmb = 779;
- e.hv = 405;
- e.hyphen = 45;
- e.hypheninferior = 63205;
- e.hyphenmonospace = 65293;
- e.hyphensmall = 65123;
- e.hyphensuperior = 63206;
- e.hyphentwo = 8208;
- e.i = 105;
- e.iacute = 237;
- e.iacyrillic = 1103;
- e.ibengali = 2439;
- e.ibopomofo = 12583;
- e.ibreve = 301;
- e.icaron = 464;
- e.icircle = 9432;
- e.icircumflex = 238;
- e.icyrillic = 1110;
- e.idblgrave = 521;
- e.ideographearthcircle = 12943;
- e.ideographfirecircle = 12939;
- e.ideographicallianceparen = 12863;
- e.ideographiccallparen = 12858;
- e.ideographiccentrecircle = 12965;
- e.ideographicclose = 12294;
- e.ideographiccomma = 12289;
- e.ideographiccommaleft = 65380;
- e.ideographiccongratulationparen = 12855;
- e.ideographiccorrectcircle = 12963;
- e.ideographicearthparen = 12847;
- e.ideographicenterpriseparen = 12861;
- e.ideographicexcellentcircle = 12957;
- e.ideographicfestivalparen = 12864;
- e.ideographicfinancialcircle = 12950;
- e.ideographicfinancialparen = 12854;
- e.ideographicfireparen = 12843;
- e.ideographichaveparen = 12850;
- e.ideographichighcircle = 12964;
- e.ideographiciterationmark = 12293;
- e.ideographiclaborcircle = 12952;
- e.ideographiclaborparen = 12856;
- e.ideographicleftcircle = 12967;
- e.ideographiclowcircle = 12966;
- e.ideographicmedicinecircle = 12969;
- e.ideographicmetalparen = 12846;
- e.ideographicmoonparen = 12842;
- e.ideographicnameparen = 12852;
- e.ideographicperiod = 12290;
- e.ideographicprintcircle = 12958;
- e.ideographicreachparen = 12867;
- e.ideographicrepresentparen = 12857;
- e.ideographicresourceparen = 12862;
- e.ideographicrightcircle = 12968;
- e.ideographicsecretcircle = 12953;
- e.ideographicselfparen = 12866;
- e.ideographicsocietyparen = 12851;
- e.ideographicspace = 12288;
- e.ideographicspecialparen = 12853;
- e.ideographicstockparen = 12849;
- e.ideographicstudyparen = 12859;
- e.ideographicsunparen = 12848;
- e.ideographicsuperviseparen = 12860;
- e.ideographicwaterparen = 12844;
- e.ideographicwoodparen = 12845;
- e.ideographiczero = 12295;
- e.ideographmetalcircle = 12942;
- e.ideographmooncircle = 12938;
- e.ideographnamecircle = 12948;
- e.ideographsuncircle = 12944;
- e.ideographwatercircle = 12940;
- e.ideographwoodcircle = 12941;
- e.ideva = 2311;
- e.idieresis = 239;
- e.idieresisacute = 7727;
- e.idieresiscyrillic = 1253;
- e.idotbelow = 7883;
- e.iebrevecyrillic = 1239;
- e.iecyrillic = 1077;
- e.ieungacirclekorean = 12917;
- e.ieungaparenkorean = 12821;
- e.ieungcirclekorean = 12903;
- e.ieungkorean = 12615;
- e.ieungparenkorean = 12807;
- e.igrave = 236;
- e.igujarati = 2695;
- e.igurmukhi = 2567;
- e.ihiragana = 12356;
- e.ihookabove = 7881;
- e.iibengali = 2440;
- e.iicyrillic = 1080;
- e.iideva = 2312;
- e.iigujarati = 2696;
- e.iigurmukhi = 2568;
- e.iimatragurmukhi = 2624;
- e.iinvertedbreve = 523;
- e.iishortcyrillic = 1081;
- e.iivowelsignbengali = 2496;
- e.iivowelsigndeva = 2368;
- e.iivowelsigngujarati = 2752;
- e.ij = 307;
- e.ikatakana = 12452;
- e.ikatakanahalfwidth = 65394;
- e.ikorean = 12643;
- e.ilde = 732;
- e.iluyhebrew = 1452;
- e.imacron = 299;
- e.imacroncyrillic = 1251;
- e.imageorapproximatelyequal = 8787;
- e.imatragurmukhi = 2623;
- e.imonospace = 65353;
- e.increment = 8710;
- e.infinity = 8734;
- e.iniarmenian = 1387;
- e.integral = 8747;
- e.integralbottom = 8993;
- e.integralbt = 8993;
- e.integralex = 63733;
- e.integraltop = 8992;
- e.integraltp = 8992;
- e.intersection = 8745;
- e.intisquare = 13061;
- e.invbullet = 9688;
- e.invcircle = 9689;
- e.invsmileface = 9787;
- e.iocyrillic = 1105;
- e.iogonek = 303;
- e.iota = 953;
- e.iotadieresis = 970;
- e.iotadieresistonos = 912;
- e.iotalatin = 617;
- e.iotatonos = 943;
- e.iparen = 9380;
- e.irigurmukhi = 2674;
- e.ismallhiragana = 12355;
- e.ismallkatakana = 12451;
- e.ismallkatakanahalfwidth = 65384;
- e.issharbengali = 2554;
- e.istroke = 616;
- e.isuperior = 63213;
- e.iterationhiragana = 12445;
- e.iterationkatakana = 12541;
- e.itilde = 297;
- e.itildebelow = 7725;
- e.iubopomofo = 12585;
- e.iucyrillic = 1102;
- e.ivowelsignbengali = 2495;
- e.ivowelsigndeva = 2367;
- e.ivowelsigngujarati = 2751;
- e.izhitsacyrillic = 1141;
- e.izhitsadblgravecyrillic = 1143;
- e.j = 106;
- e.jaarmenian = 1393;
- e.jabengali = 2460;
- e.jadeva = 2332;
- e.jagujarati = 2716;
- e.jagurmukhi = 2588;
- e.jbopomofo = 12560;
- e.jcaron = 496;
- e.jcircle = 9433;
- e.jcircumflex = 309;
- e.jcrossedtail = 669;
- e.jdotlessstroke = 607;
- e.jecyrillic = 1112;
- e.jeemarabic = 1580;
- e.jeemfinalarabic = 65182;
- e.jeeminitialarabic = 65183;
- e.jeemmedialarabic = 65184;
- e.jeharabic = 1688;
- e.jehfinalarabic = 64395;
- e.jhabengali = 2461;
- e.jhadeva = 2333;
- e.jhagujarati = 2717;
- e.jhagurmukhi = 2589;
- e.jheharmenian = 1403;
- e.jis = 12292;
- e.jmonospace = 65354;
- e.jparen = 9381;
- e.jsuperior = 690;
- e.k = 107;
- e.kabashkircyrillic = 1185;
- e.kabengali = 2453;
- e.kacute = 7729;
- e.kacyrillic = 1082;
- e.kadescendercyrillic = 1179;
- e.kadeva = 2325;
- e.kaf = 1499;
- e.kafarabic = 1603;
- e.kafdagesh = 64315;
- e.kafdageshhebrew = 64315;
- e.kaffinalarabic = 65242;
- e.kafhebrew = 1499;
- e.kafinitialarabic = 65243;
- e.kafmedialarabic = 65244;
- e.kafrafehebrew = 64333;
- e.kagujarati = 2709;
- e.kagurmukhi = 2581;
- e.kahiragana = 12363;
- e.kahookcyrillic = 1220;
- e.kakatakana = 12459;
- e.kakatakanahalfwidth = 65398;
- e.kappa = 954;
- e.kappasymbolgreek = 1008;
- e.kapyeounmieumkorean = 12657;
- e.kapyeounphieuphkorean = 12676;
- e.kapyeounpieupkorean = 12664;
- e.kapyeounssangpieupkorean = 12665;
- e.karoriisquare = 13069;
- e.kashidaautoarabic = 1600;
- e.kashidaautonosidebearingarabic = 1600;
- e.kasmallkatakana = 12533;
- e.kasquare = 13188;
- e.kasraarabic = 1616;
- e.kasratanarabic = 1613;
- e.kastrokecyrillic = 1183;
- e.katahiraprolongmarkhalfwidth = 65392;
- e.kaverticalstrokecyrillic = 1181;
- e.kbopomofo = 12558;
- e.kcalsquare = 13193;
- e.kcaron = 489;
- e.kcedilla = 311;
- e.kcircle = 9434;
- e.kcommaaccent = 311;
- e.kdotbelow = 7731;
- e.keharmenian = 1412;
- e.kehiragana = 12369;
- e.kekatakana = 12465;
- e.kekatakanahalfwidth = 65401;
- e.kenarmenian = 1391;
- e.kesmallkatakana = 12534;
- e.kgreenlandic = 312;
- e.khabengali = 2454;
- e.khacyrillic = 1093;
- e.khadeva = 2326;
- e.khagujarati = 2710;
- e.khagurmukhi = 2582;
- e.khaharabic = 1582;
- e.khahfinalarabic = 65190;
- e.khahinitialarabic = 65191;
- e.khahmedialarabic = 65192;
- e.kheicoptic = 999;
- e.khhadeva = 2393;
- e.khhagurmukhi = 2649;
- e.khieukhacirclekorean = 12920;
- e.khieukhaparenkorean = 12824;
- e.khieukhcirclekorean = 12906;
- e.khieukhkorean = 12619;
- e.khieukhparenkorean = 12810;
- e.khokhaithai = 3586;
- e.khokhonthai = 3589;
- e.khokhuatthai = 3587;
- e.khokhwaithai = 3588;
- e.khomutthai = 3675;
- e.khook = 409;
- e.khorakhangthai = 3590;
- e.khzsquare = 13201;
- e.kihiragana = 12365;
- e.kikatakana = 12461;
- e.kikatakanahalfwidth = 65399;
- e.kiroguramusquare = 13077;
- e.kiromeetorusquare = 13078;
- e.kirosquare = 13076;
- e.kiyeokacirclekorean = 12910;
- e.kiyeokaparenkorean = 12814;
- e.kiyeokcirclekorean = 12896;
- e.kiyeokkorean = 12593;
- e.kiyeokparenkorean = 12800;
- e.kiyeoksioskorean = 12595;
- e.kjecyrillic = 1116;
- e.klinebelow = 7733;
- e.klsquare = 13208;
- e.kmcubedsquare = 13222;
- e.kmonospace = 65355;
- e.kmsquaredsquare = 13218;
- e.kohiragana = 12371;
- e.kohmsquare = 13248;
- e.kokaithai = 3585;
- e.kokatakana = 12467;
- e.kokatakanahalfwidth = 65402;
- e.kooposquare = 13086;
- e.koppacyrillic = 1153;
- e.koreanstandardsymbol = 12927;
- e.koroniscmb = 835;
- e.kparen = 9382;
- e.kpasquare = 13226;
- e.ksicyrillic = 1135;
- e.ktsquare = 13263;
- e.kturned = 670;
- e.kuhiragana = 12367;
- e.kukatakana = 12463;
- e.kukatakanahalfwidth = 65400;
- e.kvsquare = 13240;
- e.kwsquare = 13246;
- e.l = 108;
- e.labengali = 2482;
- e.lacute = 314;
- e.ladeva = 2354;
- e.lagujarati = 2738;
- e.lagurmukhi = 2610;
- e.lakkhangyaothai = 3653;
- e.lamaleffinalarabic = 65276;
- e.lamalefhamzaabovefinalarabic = 65272;
- e.lamalefhamzaaboveisolatedarabic = 65271;
- e.lamalefhamzabelowfinalarabic = 65274;
- e.lamalefhamzabelowisolatedarabic = 65273;
- e.lamalefisolatedarabic = 65275;
- e.lamalefmaddaabovefinalarabic = 65270;
- e.lamalefmaddaaboveisolatedarabic = 65269;
- e.lamarabic = 1604;
- e.lambda = 955;
- e.lambdastroke = 411;
- e.lamed = 1500;
- e.lameddagesh = 64316;
- e.lameddageshhebrew = 64316;
- e.lamedhebrew = 1500;
- e.lamfinalarabic = 65246;
- e.lamhahinitialarabic = 64714;
- e.laminitialarabic = 65247;
- e.lamjeeminitialarabic = 64713;
- e.lamkhahinitialarabic = 64715;
- e.lamlamhehisolatedarabic = 65010;
- e.lammedialarabic = 65248;
- e.lammeemhahinitialarabic = 64904;
- e.lammeeminitialarabic = 64716;
- e.largecircle = 9711;
- e.lbar = 410;
- e.lbelt = 620;
- e.lbopomofo = 12556;
- e.lcaron = 318;
- e.lcedilla = 316;
- e.lcircle = 9435;
- e.lcircumflexbelow = 7741;
- e.lcommaaccent = 316;
- e.ldot = 320;
- e.ldotaccent = 320;
- e.ldotbelow = 7735;
- e.ldotbelowmacron = 7737;
- e.leftangleabovecmb = 794;
- e.lefttackbelowcmb = 792;
- e.less = 60;
- e.lessequal = 8804;
- e.lessequalorgreater = 8922;
- e.lessmonospace = 65308;
- e.lessorequivalent = 8818;
- e.lessorgreater = 8822;
- e.lessoverequal = 8806;
- e.lesssmall = 65124;
- e.lezh = 622;
- e.lfblock = 9612;
- e.lhookretroflex = 621;
- e.lira = 8356;
- e.liwnarmenian = 1388;
- e.lj = 457;
- e.ljecyrillic = 1113;
- e.ll = 63168;
- e.lladeva = 2355;
- e.llagujarati = 2739;
- e.llinebelow = 7739;
- e.llladeva = 2356;
- e.llvocalicbengali = 2529;
- e.llvocalicdeva = 2401;
- e.llvocalicvowelsignbengali = 2531;
- e.llvocalicvowelsigndeva = 2403;
- e.lmiddletilde = 619;
- e.lmonospace = 65356;
- e.lmsquare = 13264;
- e.lochulathai = 3628;
- e.logicaland = 8743;
- e.logicalnot = 172;
- e.logicalnotreversed = 8976;
- e.logicalor = 8744;
- e.lolingthai = 3621;
- e.longs = 383;
- e.lowlinecenterline = 65102;
- e.lowlinecmb = 818;
- e.lowlinedashed = 65101;
- e.lozenge = 9674;
- e.lparen = 9383;
- e.lslash = 322;
- e.lsquare = 8467;
- e.lsuperior = 63214;
- e.ltshade = 9617;
- e.luthai = 3622;
- e.lvocalicbengali = 2444;
- e.lvocalicdeva = 2316;
- e.lvocalicvowelsignbengali = 2530;
- e.lvocalicvowelsigndeva = 2402;
- e.lxsquare = 13267;
- e.m = 109;
- e.mabengali = 2478;
- e.macron = 175;
- e.macronbelowcmb = 817;
- e.macroncmb = 772;
- e.macronlowmod = 717;
- e.macronmonospace = 65507;
- e.macute = 7743;
- e.madeva = 2350;
- e.magujarati = 2734;
- e.magurmukhi = 2606;
- e.mahapakhhebrew = 1444;
- e.mahapakhlefthebrew = 1444;
- e.mahiragana = 12414;
- e.maichattawalowleftthai = 63637;
- e.maichattawalowrightthai = 63636;
- e.maichattawathai = 3659;
- e.maichattawaupperleftthai = 63635;
- e.maieklowleftthai = 63628;
- e.maieklowrightthai = 63627;
- e.maiekthai = 3656;
- e.maiekupperleftthai = 63626;
- e.maihanakatleftthai = 63620;
- e.maihanakatthai = 3633;
- e.maitaikhuleftthai = 63625;
- e.maitaikhuthai = 3655;
- e.maitholowleftthai = 63631;
- e.maitholowrightthai = 63630;
- e.maithothai = 3657;
- e.maithoupperleftthai = 63629;
- e.maitrilowleftthai = 63634;
- e.maitrilowrightthai = 63633;
- e.maitrithai = 3658;
- e.maitriupperleftthai = 63632;
- e.maiyamokthai = 3654;
- e.makatakana = 12510;
- e.makatakanahalfwidth = 65423;
- e.male = 9794;
- e.mansyonsquare = 13127;
- e.maqafhebrew = 1470;
- e.mars = 9794;
- e.masoracirclehebrew = 1455;
- e.masquare = 13187;
- e.mbopomofo = 12551;
- e.mbsquare = 13268;
- e.mcircle = 9436;
- e.mcubedsquare = 13221;
- e.mdotaccent = 7745;
- e.mdotbelow = 7747;
- e.meemarabic = 1605;
- e.meemfinalarabic = 65250;
- e.meeminitialarabic = 65251;
- e.meemmedialarabic = 65252;
- e.meemmeeminitialarabic = 64721;
- e.meemmeemisolatedarabic = 64584;
- e.meetorusquare = 13133;
- e.mehiragana = 12417;
- e.meizierasquare = 13182;
- e.mekatakana = 12513;
- e.mekatakanahalfwidth = 65426;
- e.mem = 1502;
- e.memdagesh = 64318;
- e.memdageshhebrew = 64318;
- e.memhebrew = 1502;
- e.menarmenian = 1396;
- e.merkhahebrew = 1445;
- e.merkhakefulahebrew = 1446;
- e.merkhakefulalefthebrew = 1446;
- e.merkhalefthebrew = 1445;
- e.mhook = 625;
- e.mhzsquare = 13202;
- e.middledotkatakanahalfwidth = 65381;
- e.middot = 183;
- e.mieumacirclekorean = 12914;
- e.mieumaparenkorean = 12818;
- e.mieumcirclekorean = 12900;
- e.mieumkorean = 12609;
- e.mieumpansioskorean = 12656;
- e.mieumparenkorean = 12804;
- e.mieumpieupkorean = 12654;
- e.mieumsioskorean = 12655;
- e.mihiragana = 12415;
- e.mikatakana = 12511;
- e.mikatakanahalfwidth = 65424;
- e.minus = 8722;
- e.minusbelowcmb = 800;
- e.minuscircle = 8854;
- e.minusmod = 727;
- e.minusplus = 8723;
- e.minute = 8242;
- e.miribaarusquare = 13130;
- e.mirisquare = 13129;
- e.mlonglegturned = 624;
- e.mlsquare = 13206;
- e.mmcubedsquare = 13219;
- e.mmonospace = 65357;
- e.mmsquaredsquare = 13215;
- e.mohiragana = 12418;
- e.mohmsquare = 13249;
- e.mokatakana = 12514;
- e.mokatakanahalfwidth = 65427;
- e.molsquare = 13270;
- e.momathai = 3617;
- e.moverssquare = 13223;
- e.moverssquaredsquare = 13224;
- e.mparen = 9384;
- e.mpasquare = 13227;
- e.mssquare = 13235;
- e.msuperior = 63215;
- e.mturned = 623;
- e.mu = 181;
- e.mu1 = 181;
- e.muasquare = 13186;
- e.muchgreater = 8811;
- e.muchless = 8810;
- e.mufsquare = 13196;
- e.mugreek = 956;
- e.mugsquare = 13197;
- e.muhiragana = 12416;
- e.mukatakana = 12512;
- e.mukatakanahalfwidth = 65425;
- e.mulsquare = 13205;
- e.multiply = 215;
- e.mumsquare = 13211;
- e.munahhebrew = 1443;
- e.munahlefthebrew = 1443;
- e.musicalnote = 9834;
- e.musicalnotedbl = 9835;
- e.musicflatsign = 9837;
- e.musicsharpsign = 9839;
- e.mussquare = 13234;
- e.muvsquare = 13238;
- e.muwsquare = 13244;
- e.mvmegasquare = 13241;
- e.mvsquare = 13239;
- e.mwmegasquare = 13247;
- e.mwsquare = 13245;
- e.n = 110;
- e.nabengali = 2472;
- e.nabla = 8711;
- e.nacute = 324;
- e.nadeva = 2344;
- e.nagujarati = 2728;
- e.nagurmukhi = 2600;
- e.nahiragana = 12394;
- e.nakatakana = 12490;
- e.nakatakanahalfwidth = 65413;
- e.napostrophe = 329;
- e.nasquare = 13185;
- e.nbopomofo = 12555;
- e.nbspace = 160;
- e.ncaron = 328;
- e.ncedilla = 326;
- e.ncircle = 9437;
- e.ncircumflexbelow = 7755;
- e.ncommaaccent = 326;
- e.ndotaccent = 7749;
- e.ndotbelow = 7751;
- e.nehiragana = 12397;
- e.nekatakana = 12493;
- e.nekatakanahalfwidth = 65416;
- e.newsheqelsign = 8362;
- e.nfsquare = 13195;
- e.ngabengali = 2457;
- e.ngadeva = 2329;
- e.ngagujarati = 2713;
- e.ngagurmukhi = 2585;
- e.ngonguthai = 3591;
- e.nhiragana = 12435;
- e.nhookleft = 626;
- e.nhookretroflex = 627;
- e.nieunacirclekorean = 12911;
- e.nieunaparenkorean = 12815;
- e.nieuncieuckorean = 12597;
- e.nieuncirclekorean = 12897;
- e.nieunhieuhkorean = 12598;
- e.nieunkorean = 12596;
- e.nieunpansioskorean = 12648;
- e.nieunparenkorean = 12801;
- e.nieunsioskorean = 12647;
- e.nieuntikeutkorean = 12646;
- e.nihiragana = 12395;
- e.nikatakana = 12491;
- e.nikatakanahalfwidth = 65414;
- e.nikhahitleftthai = 63641;
- e.nikhahitthai = 3661;
- e.nine = 57;
- e.ninearabic = 1641;
- e.ninebengali = 2543;
- e.ninecircle = 9320;
- e.ninecircleinversesansserif = 10130;
- e.ninedeva = 2415;
- e.ninegujarati = 2799;
- e.ninegurmukhi = 2671;
- e.ninehackarabic = 1641;
- e.ninehangzhou = 12329;
- e.nineideographicparen = 12840;
- e.nineinferior = 8329;
- e.ninemonospace = 65305;
- e.nineoldstyle = 63289;
- e.nineparen = 9340;
- e.nineperiod = 9360;
- e.ninepersian = 1785;
- e.nineroman = 8568;
- e.ninesuperior = 8313;
- e.nineteencircle = 9330;
- e.nineteenparen = 9350;
- e.nineteenperiod = 9370;
- e.ninethai = 3673;
- e.nj = 460;
- e.njecyrillic = 1114;
- e.nkatakana = 12531;
- e.nkatakanahalfwidth = 65437;
- e.nlegrightlong = 414;
- e.nlinebelow = 7753;
- e.nmonospace = 65358;
- e.nmsquare = 13210;
- e.nnabengali = 2467;
- e.nnadeva = 2339;
- e.nnagujarati = 2723;
- e.nnagurmukhi = 2595;
- e.nnnadeva = 2345;
- e.nohiragana = 12398;
- e.nokatakana = 12494;
- e.nokatakanahalfwidth = 65417;
- e.nonbreakingspace = 160;
- e.nonenthai = 3603;
- e.nonuthai = 3609;
- e.noonarabic = 1606;
- e.noonfinalarabic = 65254;
- e.noonghunnaarabic = 1722;
- e.noonghunnafinalarabic = 64415;
- e.nooninitialarabic = 65255;
- e.noonjeeminitialarabic = 64722;
- e.noonjeemisolatedarabic = 64587;
- e.noonmedialarabic = 65256;
- e.noonmeeminitialarabic = 64725;
- e.noonmeemisolatedarabic = 64590;
- e.noonnoonfinalarabic = 64653;
- e.notcontains = 8716;
- e.notelement = 8713;
- e.notelementof = 8713;
- e.notequal = 8800;
- e.notgreater = 8815;
- e.notgreaternorequal = 8817;
- e.notgreaternorless = 8825;
- e.notidentical = 8802;
- e.notless = 8814;
- e.notlessnorequal = 8816;
- e.notparallel = 8742;
- e.notprecedes = 8832;
- e.notsubset = 8836;
- e.notsucceeds = 8833;
- e.notsuperset = 8837;
- e.nowarmenian = 1398;
- e.nparen = 9385;
- e.nssquare = 13233;
- e.nsuperior = 8319;
- e.ntilde = 241;
- e.nu = 957;
- e.nuhiragana = 12396;
- e.nukatakana = 12492;
- e.nukatakanahalfwidth = 65415;
- e.nuktabengali = 2492;
- e.nuktadeva = 2364;
- e.nuktagujarati = 2748;
- e.nuktagurmukhi = 2620;
- e.numbersign = 35;
- e.numbersignmonospace = 65283;
- e.numbersignsmall = 65119;
- e.numeralsigngreek = 884;
- e.numeralsignlowergreek = 885;
- e.numero = 8470;
- e.nun = 1504;
- e.nundagesh = 64320;
- e.nundageshhebrew = 64320;
- e.nunhebrew = 1504;
- e.nvsquare = 13237;
- e.nwsquare = 13243;
- e.nyabengali = 2462;
- e.nyadeva = 2334;
- e.nyagujarati = 2718;
- e.nyagurmukhi = 2590;
- e.o = 111;
- e.oacute = 243;
- e.oangthai = 3629;
- e.obarred = 629;
- e.obarredcyrillic = 1257;
- e.obarreddieresiscyrillic = 1259;
- e.obengali = 2451;
- e.obopomofo = 12571;
- e.obreve = 335;
- e.ocandradeva = 2321;
- e.ocandragujarati = 2705;
- e.ocandravowelsigndeva = 2377;
- e.ocandravowelsigngujarati = 2761;
- e.ocaron = 466;
- e.ocircle = 9438;
- e.ocircumflex = 244;
- e.ocircumflexacute = 7889;
- e.ocircumflexdotbelow = 7897;
- e.ocircumflexgrave = 7891;
- e.ocircumflexhookabove = 7893;
- e.ocircumflextilde = 7895;
- e.ocyrillic = 1086;
- e.odblacute = 337;
- e.odblgrave = 525;
- e.odeva = 2323;
- e.odieresis = 246;
- e.odieresiscyrillic = 1255;
- e.odotbelow = 7885;
- e.oe = 339;
- e.oekorean = 12634;
- e.ogonek = 731;
- e.ogonekcmb = 808;
- e.ograve = 242;
- e.ogujarati = 2707;
- e.oharmenian = 1413;
- e.ohiragana = 12362;
- e.ohookabove = 7887;
- e.ohorn = 417;
- e.ohornacute = 7899;
- e.ohorndotbelow = 7907;
- e.ohorngrave = 7901;
- e.ohornhookabove = 7903;
- e.ohorntilde = 7905;
- e.ohungarumlaut = 337;
- e.oi = 419;
- e.oinvertedbreve = 527;
- e.okatakana = 12458;
- e.okatakanahalfwidth = 65397;
- e.okorean = 12631;
- e.olehebrew = 1451;
- e.omacron = 333;
- e.omacronacute = 7763;
- e.omacrongrave = 7761;
- e.omdeva = 2384;
- e.omega = 969;
- e.omega1 = 982;
- e.omegacyrillic = 1121;
- e.omegalatinclosed = 631;
- e.omegaroundcyrillic = 1147;
- e.omegatitlocyrillic = 1149;
- e.omegatonos = 974;
- e.omgujarati = 2768;
- e.omicron = 959;
- e.omicrontonos = 972;
- e.omonospace = 65359;
- e.one = 49;
- e.onearabic = 1633;
- e.onebengali = 2535;
- e.onecircle = 9312;
- e.onecircleinversesansserif = 10122;
- e.onedeva = 2407;
- e.onedotenleader = 8228;
- e.oneeighth = 8539;
- e.onefitted = 63196;
- e.onegujarati = 2791;
- e.onegurmukhi = 2663;
- e.onehackarabic = 1633;
- e.onehalf = 189;
- e.onehangzhou = 12321;
- e.oneideographicparen = 12832;
- e.oneinferior = 8321;
- e.onemonospace = 65297;
- e.onenumeratorbengali = 2548;
- e.oneoldstyle = 63281;
- e.oneparen = 9332;
- e.oneperiod = 9352;
- e.onepersian = 1777;
- e.onequarter = 188;
- e.oneroman = 8560;
- e.onesuperior = 185;
- e.onethai = 3665;
- e.onethird = 8531;
- e.oogonek = 491;
- e.oogonekmacron = 493;
- e.oogurmukhi = 2579;
- e.oomatragurmukhi = 2635;
- e.oopen = 596;
- e.oparen = 9386;
- e.openbullet = 9702;
- e.option = 8997;
- e.ordfeminine = 170;
- e.ordmasculine = 186;
- e.orthogonal = 8735;
- e.oshortdeva = 2322;
- e.oshortvowelsigndeva = 2378;
- e.oslash = 248;
- e.oslashacute = 511;
- e.osmallhiragana = 12361;
- e.osmallkatakana = 12457;
- e.osmallkatakanahalfwidth = 65387;
- e.ostrokeacute = 511;
- e.osuperior = 63216;
- e.otcyrillic = 1151;
- e.otilde = 245;
- e.otildeacute = 7757;
- e.otildedieresis = 7759;
- e.oubopomofo = 12577;
- e.overline = 8254;
- e.overlinecenterline = 65098;
- e.overlinecmb = 773;
- e.overlinedashed = 65097;
- e.overlinedblwavy = 65100;
- e.overlinewavy = 65099;
- e.overscore = 175;
- e.ovowelsignbengali = 2507;
- e.ovowelsigndeva = 2379;
- e.ovowelsigngujarati = 2763;
- e.p = 112;
- e.paampssquare = 13184;
- e.paasentosquare = 13099;
- e.pabengali = 2474;
- e.pacute = 7765;
- e.padeva = 2346;
- e.pagedown = 8671;
- e.pageup = 8670;
- e.pagujarati = 2730;
- e.pagurmukhi = 2602;
- e.pahiragana = 12401;
- e.paiyannoithai = 3631;
- e.pakatakana = 12497;
- e.palatalizationcyrilliccmb = 1156;
- e.palochkacyrillic = 1216;
- e.pansioskorean = 12671;
- e.paragraph = 182;
- e.parallel = 8741;
- e.parenleft = 40;
- e.parenleftaltonearabic = 64830;
- e.parenleftbt = 63725;
- e.parenleftex = 63724;
- e.parenleftinferior = 8333;
- e.parenleftmonospace = 65288;
- e.parenleftsmall = 65113;
- e.parenleftsuperior = 8317;
- e.parenlefttp = 63723;
- e.parenleftvertical = 65077;
- e.parenright = 41;
- e.parenrightaltonearabic = 64831;
- e.parenrightbt = 63736;
- e.parenrightex = 63735;
- e.parenrightinferior = 8334;
- e.parenrightmonospace = 65289;
- e.parenrightsmall = 65114;
- e.parenrightsuperior = 8318;
- e.parenrighttp = 63734;
- e.parenrightvertical = 65078;
- e.partialdiff = 8706;
- e.paseqhebrew = 1472;
- e.pashtahebrew = 1433;
- e.pasquare = 13225;
- e.patah = 1463;
- e.patah11 = 1463;
- e.patah1d = 1463;
- e.patah2a = 1463;
- e.patahhebrew = 1463;
- e.patahnarrowhebrew = 1463;
- e.patahquarterhebrew = 1463;
- e.patahwidehebrew = 1463;
- e.pazerhebrew = 1441;
- e.pbopomofo = 12550;
- e.pcircle = 9439;
- e.pdotaccent = 7767;
- e.pe = 1508;
- e.pecyrillic = 1087;
- e.pedagesh = 64324;
- e.pedageshhebrew = 64324;
- e.peezisquare = 13115;
- e.pefinaldageshhebrew = 64323;
- e.peharabic = 1662;
- e.peharmenian = 1402;
- e.pehebrew = 1508;
- e.pehfinalarabic = 64343;
- e.pehinitialarabic = 64344;
- e.pehiragana = 12410;
- e.pehmedialarabic = 64345;
- e.pekatakana = 12506;
- e.pemiddlehookcyrillic = 1191;
- e.perafehebrew = 64334;
- e.percent = 37;
- e.percentarabic = 1642;
- e.percentmonospace = 65285;
- e.percentsmall = 65130;
- e.period = 46;
- e.periodarmenian = 1417;
- e.periodcentered = 183;
- e.periodhalfwidth = 65377;
- e.periodinferior = 63207;
- e.periodmonospace = 65294;
- e.periodsmall = 65106;
- e.periodsuperior = 63208;
- e.perispomenigreekcmb = 834;
- e.perpendicular = 8869;
- e.perthousand = 8240;
- e.peseta = 8359;
- e.pfsquare = 13194;
- e.phabengali = 2475;
- e.phadeva = 2347;
- e.phagujarati = 2731;
- e.phagurmukhi = 2603;
- e.phi = 966;
- e.phi1 = 981;
- e.phieuphacirclekorean = 12922;
- e.phieuphaparenkorean = 12826;
- e.phieuphcirclekorean = 12908;
- e.phieuphkorean = 12621;
- e.phieuphparenkorean = 12812;
- e.philatin = 632;
- e.phinthuthai = 3642;
- e.phisymbolgreek = 981;
- e.phook = 421;
- e.phophanthai = 3614;
- e.phophungthai = 3612;
- e.phosamphaothai = 3616;
- e.pi = 960;
- e.pieupacirclekorean = 12915;
- e.pieupaparenkorean = 12819;
- e.pieupcieuckorean = 12662;
- e.pieupcirclekorean = 12901;
- e.pieupkiyeokkorean = 12658;
- e.pieupkorean = 12610;
- e.pieupparenkorean = 12805;
- e.pieupsioskiyeokkorean = 12660;
- e.pieupsioskorean = 12612;
- e.pieupsiostikeutkorean = 12661;
- e.pieupthieuthkorean = 12663;
- e.pieuptikeutkorean = 12659;
- e.pihiragana = 12404;
- e.pikatakana = 12500;
- e.pisymbolgreek = 982;
- e.piwrarmenian = 1411;
- e.plus = 43;
- e.plusbelowcmb = 799;
- e.pluscircle = 8853;
- e.plusminus = 177;
- e.plusmod = 726;
- e.plusmonospace = 65291;
- e.plussmall = 65122;
- e.plussuperior = 8314;
- e.pmonospace = 65360;
- e.pmsquare = 13272;
- e.pohiragana = 12413;
- e.pointingindexdownwhite = 9759;
- e.pointingindexleftwhite = 9756;
- e.pointingindexrightwhite = 9758;
- e.pointingindexupwhite = 9757;
- e.pokatakana = 12509;
- e.poplathai = 3611;
- e.postalmark = 12306;
- e.postalmarkface = 12320;
- e.pparen = 9387;
- e.precedes = 8826;
- e.prescription = 8478;
- e.primemod = 697;
- e.primereversed = 8245;
- e.product = 8719;
- e.projective = 8965;
- e.prolongedkana = 12540;
- e.propellor = 8984;
- e.propersubset = 8834;
- e.propersuperset = 8835;
- e.proportion = 8759;
- e.proportional = 8733;
- e.psi = 968;
- e.psicyrillic = 1137;
- e.psilipneumatacyrilliccmb = 1158;
- e.pssquare = 13232;
- e.puhiragana = 12407;
- e.pukatakana = 12503;
- e.pvsquare = 13236;
- e.pwsquare = 13242;
- e.q = 113;
- e.qadeva = 2392;
- e.qadmahebrew = 1448;
- e.qafarabic = 1602;
- e.qaffinalarabic = 65238;
- e.qafinitialarabic = 65239;
- e.qafmedialarabic = 65240;
- e.qamats = 1464;
- e.qamats10 = 1464;
- e.qamats1a = 1464;
- e.qamats1c = 1464;
- e.qamats27 = 1464;
- e.qamats29 = 1464;
- e.qamats33 = 1464;
- e.qamatsde = 1464;
- e.qamatshebrew = 1464;
- e.qamatsnarrowhebrew = 1464;
- e.qamatsqatanhebrew = 1464;
- e.qamatsqatannarrowhebrew = 1464;
- e.qamatsqatanquarterhebrew = 1464;
- e.qamatsqatanwidehebrew = 1464;
- e.qamatsquarterhebrew = 1464;
- e.qamatswidehebrew = 1464;
- e.qarneyparahebrew = 1439;
- e.qbopomofo = 12561;
- e.qcircle = 9440;
- e.qhook = 672;
- e.qmonospace = 65361;
- e.qof = 1511;
- e.qofdagesh = 64327;
- e.qofdageshhebrew = 64327;
- e.qofhebrew = 1511;
- e.qparen = 9388;
- e.quarternote = 9833;
- e.qubuts = 1467;
- e.qubuts18 = 1467;
- e.qubuts25 = 1467;
- e.qubuts31 = 1467;
- e.qubutshebrew = 1467;
- e.qubutsnarrowhebrew = 1467;
- e.qubutsquarterhebrew = 1467;
- e.qubutswidehebrew = 1467;
- e.question = 63;
- e.questionarabic = 1567;
- e.questionarmenian = 1374;
- e.questiondown = 191;
- e.questiondownsmall = 63423;
- e.questiongreek = 894;
- e.questionmonospace = 65311;
- e.questionsmall = 63295;
- e.quotedbl = 34;
- e.quotedblbase = 8222;
- e.quotedblleft = 8220;
- e.quotedblmonospace = 65282;
- e.quotedblprime = 12318;
- e.quotedblprimereversed = 12317;
- e.quotedblright = 8221;
- e.quoteleft = 8216;
- e.quoteleftreversed = 8219;
- e.quotereversed = 8219;
- e.quoteright = 8217;
- e.quoterightn = 329;
- e.quotesinglbase = 8218;
- e.quotesingle = 39;
- e.quotesinglemonospace = 65287;
- e.r = 114;
- e.raarmenian = 1404;
- e.rabengali = 2480;
- e.racute = 341;
- e.radeva = 2352;
- e.radical = 8730;
- e.radicalex = 63717;
- e.radoverssquare = 13230;
- e.radoverssquaredsquare = 13231;
- e.radsquare = 13229;
- e.rafe = 1471;
- e.rafehebrew = 1471;
- e.ragujarati = 2736;
- e.ragurmukhi = 2608;
- e.rahiragana = 12425;
- e.rakatakana = 12521;
- e.rakatakanahalfwidth = 65431;
- e.ralowerdiagonalbengali = 2545;
- e.ramiddlediagonalbengali = 2544;
- e.ramshorn = 612;
- e.ratio = 8758;
- e.rbopomofo = 12566;
- e.rcaron = 345;
- e.rcedilla = 343;
- e.rcircle = 9441;
- e.rcommaaccent = 343;
- e.rdblgrave = 529;
- e.rdotaccent = 7769;
- e.rdotbelow = 7771;
- e.rdotbelowmacron = 7773;
- e.referencemark = 8251;
- e.reflexsubset = 8838;
- e.reflexsuperset = 8839;
- e.registered = 174;
- e.registersans = 63720;
- e.registerserif = 63194;
- e.reharabic = 1585;
- e.reharmenian = 1408;
- e.rehfinalarabic = 65198;
- e.rehiragana = 12428;
- e.rekatakana = 12524;
- e.rekatakanahalfwidth = 65434;
- e.resh = 1512;
- e.reshdageshhebrew = 64328;
- e.reshhebrew = 1512;
- e.reversedtilde = 8765;
- e.reviahebrew = 1431;
- e.reviamugrashhebrew = 1431;
- e.revlogicalnot = 8976;
- e.rfishhook = 638;
- e.rfishhookreversed = 639;
- e.rhabengali = 2525;
- e.rhadeva = 2397;
- e.rho = 961;
- e.rhook = 637;
- e.rhookturned = 635;
- e.rhookturnedsuperior = 693;
- e.rhosymbolgreek = 1009;
- e.rhotichookmod = 734;
- e.rieulacirclekorean = 12913;
- e.rieulaparenkorean = 12817;
- e.rieulcirclekorean = 12899;
- e.rieulhieuhkorean = 12608;
- e.rieulkiyeokkorean = 12602;
- e.rieulkiyeoksioskorean = 12649;
- e.rieulkorean = 12601;
- e.rieulmieumkorean = 12603;
- e.rieulpansioskorean = 12652;
- e.rieulparenkorean = 12803;
- e.rieulphieuphkorean = 12607;
- e.rieulpieupkorean = 12604;
- e.rieulpieupsioskorean = 12651;
- e.rieulsioskorean = 12605;
- e.rieulthieuthkorean = 12606;
- e.rieultikeutkorean = 12650;
- e.rieulyeorinhieuhkorean = 12653;
- e.rightangle = 8735;
- e.righttackbelowcmb = 793;
- e.righttriangle = 8895;
- e.rihiragana = 12426;
- e.rikatakana = 12522;
- e.rikatakanahalfwidth = 65432;
- e.ring = 730;
- e.ringbelowcmb = 805;
- e.ringcmb = 778;
- e.ringhalfleft = 703;
- e.ringhalfleftarmenian = 1369;
- e.ringhalfleftbelowcmb = 796;
- e.ringhalfleftcentered = 723;
- e.ringhalfright = 702;
- e.ringhalfrightbelowcmb = 825;
- e.ringhalfrightcentered = 722;
- e.rinvertedbreve = 531;
- e.rittorusquare = 13137;
- e.rlinebelow = 7775;
- e.rlongleg = 636;
- e.rlonglegturned = 634;
- e.rmonospace = 65362;
- e.rohiragana = 12429;
- e.rokatakana = 12525;
- e.rokatakanahalfwidth = 65435;
- e.roruathai = 3619;
- e.rparen = 9389;
- e.rrabengali = 2524;
- e.rradeva = 2353;
- e.rragurmukhi = 2652;
- e.rreharabic = 1681;
- e.rrehfinalarabic = 64397;
- e.rrvocalicbengali = 2528;
- e.rrvocalicdeva = 2400;
- e.rrvocalicgujarati = 2784;
- e.rrvocalicvowelsignbengali = 2500;
- e.rrvocalicvowelsigndeva = 2372;
- e.rrvocalicvowelsigngujarati = 2756;
- e.rsuperior = 63217;
- e.rtblock = 9616;
- e.rturned = 633;
- e.rturnedsuperior = 692;
- e.ruhiragana = 12427;
- e.rukatakana = 12523;
- e.rukatakanahalfwidth = 65433;
- e.rupeemarkbengali = 2546;
- e.rupeesignbengali = 2547;
- e.rupiah = 63197;
- e.ruthai = 3620;
- e.rvocalicbengali = 2443;
- e.rvocalicdeva = 2315;
- e.rvocalicgujarati = 2699;
- e.rvocalicvowelsignbengali = 2499;
- e.rvocalicvowelsigndeva = 2371;
- e.rvocalicvowelsigngujarati = 2755;
- e.s = 115;
- e.sabengali = 2488;
- e.sacute = 347;
- e.sacutedotaccent = 7781;
- e.sadarabic = 1589;
- e.sadeva = 2360;
- e.sadfinalarabic = 65210;
- e.sadinitialarabic = 65211;
- e.sadmedialarabic = 65212;
- e.sagujarati = 2744;
- e.sagurmukhi = 2616;
- e.sahiragana = 12373;
- e.sakatakana = 12469;
- e.sakatakanahalfwidth = 65403;
- e.sallallahoualayhewasallamarabic = 65018;
- e.samekh = 1505;
- e.samekhdagesh = 64321;
- e.samekhdageshhebrew = 64321;
- e.samekhhebrew = 1505;
- e.saraaathai = 3634;
- e.saraaethai = 3649;
- e.saraaimaimalaithai = 3652;
- e.saraaimaimuanthai = 3651;
- e.saraamthai = 3635;
- e.saraathai = 3632;
- e.saraethai = 3648;
- e.saraiileftthai = 63622;
- e.saraiithai = 3637;
- e.saraileftthai = 63621;
- e.saraithai = 3636;
- e.saraothai = 3650;
- e.saraueeleftthai = 63624;
- e.saraueethai = 3639;
- e.saraueleftthai = 63623;
- e.sarauethai = 3638;
- e.sarauthai = 3640;
- e.sarauuthai = 3641;
- e.sbopomofo = 12569;
- e.scaron = 353;
- e.scarondotaccent = 7783;
- e.scedilla = 351;
- e.schwa = 601;
- e.schwacyrillic = 1241;
- e.schwadieresiscyrillic = 1243;
- e.schwahook = 602;
- e.scircle = 9442;
- e.scircumflex = 349;
- e.scommaaccent = 537;
- e.sdotaccent = 7777;
- e.sdotbelow = 7779;
- e.sdotbelowdotaccent = 7785;
- e.seagullbelowcmb = 828;
- e.second = 8243;
- e.secondtonechinese = 714;
- e.section = 167;
- e.seenarabic = 1587;
- e.seenfinalarabic = 65202;
- e.seeninitialarabic = 65203;
- e.seenmedialarabic = 65204;
- e.segol = 1462;
- e.segol13 = 1462;
- e.segol1f = 1462;
- e.segol2c = 1462;
- e.segolhebrew = 1462;
- e.segolnarrowhebrew = 1462;
- e.segolquarterhebrew = 1462;
- e.segoltahebrew = 1426;
- e.segolwidehebrew = 1462;
- e.seharmenian = 1405;
- e.sehiragana = 12379;
- e.sekatakana = 12475;
- e.sekatakanahalfwidth = 65406;
- e.semicolon = 59;
- e.semicolonarabic = 1563;
- e.semicolonmonospace = 65307;
- e.semicolonsmall = 65108;
- e.semivoicedmarkkana = 12444;
- e.semivoicedmarkkanahalfwidth = 65439;
- e.sentisquare = 13090;
- e.sentosquare = 13091;
- e.seven = 55;
- e.sevenarabic = 1639;
- e.sevenbengali = 2541;
- e.sevencircle = 9318;
- e.sevencircleinversesansserif = 10128;
- e.sevendeva = 2413;
- e.seveneighths = 8542;
- e.sevengujarati = 2797;
- e.sevengurmukhi = 2669;
- e.sevenhackarabic = 1639;
- e.sevenhangzhou = 12327;
- e.sevenideographicparen = 12838;
- e.seveninferior = 8327;
- e.sevenmonospace = 65303;
- e.sevenoldstyle = 63287;
- e.sevenparen = 9338;
- e.sevenperiod = 9358;
- e.sevenpersian = 1783;
- e.sevenroman = 8566;
- e.sevensuperior = 8311;
- e.seventeencircle = 9328;
- e.seventeenparen = 9348;
- e.seventeenperiod = 9368;
- e.seventhai = 3671;
- e.sfthyphen = 173;
- e.shaarmenian = 1399;
- e.shabengali = 2486;
- e.shacyrillic = 1096;
- e.shaddaarabic = 1617;
- e.shaddadammaarabic = 64609;
- e.shaddadammatanarabic = 64606;
- e.shaddafathaarabic = 64608;
- e.shaddakasraarabic = 64610;
- e.shaddakasratanarabic = 64607;
- e.shade = 9618;
- e.shadedark = 9619;
- e.shadelight = 9617;
- e.shademedium = 9618;
- e.shadeva = 2358;
- e.shagujarati = 2742;
- e.shagurmukhi = 2614;
- e.shalshelethebrew = 1427;
- e.shbopomofo = 12565;
- e.shchacyrillic = 1097;
- e.sheenarabic = 1588;
- e.sheenfinalarabic = 65206;
- e.sheeninitialarabic = 65207;
- e.sheenmedialarabic = 65208;
- e.sheicoptic = 995;
- e.sheqel = 8362;
- e.sheqelhebrew = 8362;
- e.sheva = 1456;
- e.sheva115 = 1456;
- e.sheva15 = 1456;
- e.sheva22 = 1456;
- e.sheva2e = 1456;
- e.shevahebrew = 1456;
- e.shevanarrowhebrew = 1456;
- e.shevaquarterhebrew = 1456;
- e.shevawidehebrew = 1456;
- e.shhacyrillic = 1211;
- e.shimacoptic = 1005;
- e.shin = 1513;
- e.shindagesh = 64329;
- e.shindageshhebrew = 64329;
- e.shindageshshindot = 64300;
- e.shindageshshindothebrew = 64300;
- e.shindageshsindot = 64301;
- e.shindageshsindothebrew = 64301;
- e.shindothebrew = 1473;
- e.shinhebrew = 1513;
- e.shinshindot = 64298;
- e.shinshindothebrew = 64298;
- e.shinsindot = 64299;
- e.shinsindothebrew = 64299;
- e.shook = 642;
- e.sigma = 963;
- e.sigma1 = 962;
- e.sigmafinal = 962;
- e.sigmalunatesymbolgreek = 1010;
- e.sihiragana = 12375;
- e.sikatakana = 12471;
- e.sikatakanahalfwidth = 65404;
- e.siluqhebrew = 1469;
- e.siluqlefthebrew = 1469;
- e.similar = 8764;
- e.sindothebrew = 1474;
- e.siosacirclekorean = 12916;
- e.siosaparenkorean = 12820;
- e.sioscieuckorean = 12670;
- e.sioscirclekorean = 12902;
- e.sioskiyeokkorean = 12666;
- e.sioskorean = 12613;
- e.siosnieunkorean = 12667;
- e.siosparenkorean = 12806;
- e.siospieupkorean = 12669;
- e.siostikeutkorean = 12668;
- e.six = 54;
- e.sixarabic = 1638;
- e.sixbengali = 2540;
- e.sixcircle = 9317;
- e.sixcircleinversesansserif = 10127;
- e.sixdeva = 2412;
- e.sixgujarati = 2796;
- e.sixgurmukhi = 2668;
- e.sixhackarabic = 1638;
- e.sixhangzhou = 12326;
- e.sixideographicparen = 12837;
- e.sixinferior = 8326;
- e.sixmonospace = 65302;
- e.sixoldstyle = 63286;
- e.sixparen = 9337;
- e.sixperiod = 9357;
- e.sixpersian = 1782;
- e.sixroman = 8565;
- e.sixsuperior = 8310;
- e.sixteencircle = 9327;
- e.sixteencurrencydenominatorbengali = 2553;
- e.sixteenparen = 9347;
- e.sixteenperiod = 9367;
- e.sixthai = 3670;
- e.slash = 47;
- e.slashmonospace = 65295;
- e.slong = 383;
- e.slongdotaccent = 7835;
- e.smileface = 9786;
- e.smonospace = 65363;
- e.sofpasuqhebrew = 1475;
- e.softhyphen = 173;
- e.softsigncyrillic = 1100;
- e.sohiragana = 12381;
- e.sokatakana = 12477;
- e.sokatakanahalfwidth = 65407;
- e.soliduslongoverlaycmb = 824;
- e.solidusshortoverlaycmb = 823;
- e.sorusithai = 3625;
- e.sosalathai = 3624;
- e.sosothai = 3595;
- e.sosuathai = 3626;
- e.space = 32;
- e.spacehackarabic = 32;
- e.spade = 9824;
- e.spadesuitblack = 9824;
- e.spadesuitwhite = 9828;
- e.sparen = 9390;
- e.squarebelowcmb = 827;
- e.squarecc = 13252;
- e.squarecm = 13213;
- e.squarediagonalcrosshatchfill = 9641;
- e.squarehorizontalfill = 9636;
- e.squarekg = 13199;
- e.squarekm = 13214;
- e.squarekmcapital = 13262;
- e.squareln = 13265;
- e.squarelog = 13266;
- e.squaremg = 13198;
- e.squaremil = 13269;
- e.squaremm = 13212;
- e.squaremsquared = 13217;
- e.squareorthogonalcrosshatchfill = 9638;
- e.squareupperlefttolowerrightfill = 9639;
- e.squareupperrighttolowerleftfill = 9640;
- e.squareverticalfill = 9637;
- e.squarewhitewithsmallblack = 9635;
- e.srsquare = 13275;
- e.ssabengali = 2487;
- e.ssadeva = 2359;
- e.ssagujarati = 2743;
- e.ssangcieuckorean = 12617;
- e.ssanghieuhkorean = 12677;
- e.ssangieungkorean = 12672;
- e.ssangkiyeokkorean = 12594;
- e.ssangnieunkorean = 12645;
- e.ssangpieupkorean = 12611;
- e.ssangsioskorean = 12614;
- e.ssangtikeutkorean = 12600;
- e.ssuperior = 63218;
- e.sterling = 163;
- e.sterlingmonospace = 65505;
- e.strokelongoverlaycmb = 822;
- e.strokeshortoverlaycmb = 821;
- e.subset = 8834;
- e.subsetnotequal = 8842;
- e.subsetorequal = 8838;
- e.succeeds = 8827;
- e.suchthat = 8715;
- e.suhiragana = 12377;
- e.sukatakana = 12473;
- e.sukatakanahalfwidth = 65405;
- e.sukunarabic = 1618;
- e.summation = 8721;
- e.sun = 9788;
- e.superset = 8835;
- e.supersetnotequal = 8843;
- e.supersetorequal = 8839;
- e.svsquare = 13276;
- e.syouwaerasquare = 13180;
- e.t = 116;
- e.tabengali = 2468;
- e.tackdown = 8868;
- e.tackleft = 8867;
- e.tadeva = 2340;
- e.tagujarati = 2724;
- e.tagurmukhi = 2596;
- e.taharabic = 1591;
- e.tahfinalarabic = 65218;
- e.tahinitialarabic = 65219;
- e.tahiragana = 12383;
- e.tahmedialarabic = 65220;
- e.taisyouerasquare = 13181;
- e.takatakana = 12479;
- e.takatakanahalfwidth = 65408;
- e.tatweelarabic = 1600;
- e.tau = 964;
- e.tav = 1514;
- e.tavdages = 64330;
- e.tavdagesh = 64330;
- e.tavdageshhebrew = 64330;
- e.tavhebrew = 1514;
- e.tbar = 359;
- e.tbopomofo = 12554;
- e.tcaron = 357;
- e.tccurl = 680;
- e.tcedilla = 355;
- e.tcheharabic = 1670;
- e.tchehfinalarabic = 64379;
- e.tchehinitialarabic = 64380;
- e.tchehmedialarabic = 64381;
- e.tcircle = 9443;
- e.tcircumflexbelow = 7793;
- e.tcommaaccent = 355;
- e.tdieresis = 7831;
- e.tdotaccent = 7787;
- e.tdotbelow = 7789;
- e.tecyrillic = 1090;
- e.tedescendercyrillic = 1197;
- e.teharabic = 1578;
- e.tehfinalarabic = 65174;
- e.tehhahinitialarabic = 64674;
- e.tehhahisolatedarabic = 64524;
- e.tehinitialarabic = 65175;
- e.tehiragana = 12390;
- e.tehjeeminitialarabic = 64673;
- e.tehjeemisolatedarabic = 64523;
- e.tehmarbutaarabic = 1577;
- e.tehmarbutafinalarabic = 65172;
- e.tehmedialarabic = 65176;
- e.tehmeeminitialarabic = 64676;
- e.tehmeemisolatedarabic = 64526;
- e.tehnoonfinalarabic = 64627;
- e.tekatakana = 12486;
- e.tekatakanahalfwidth = 65411;
- e.telephone = 8481;
- e.telephoneblack = 9742;
- e.telishagedolahebrew = 1440;
- e.telishaqetanahebrew = 1449;
- e.tencircle = 9321;
- e.tenideographicparen = 12841;
- e.tenparen = 9341;
- e.tenperiod = 9361;
- e.tenroman = 8569;
- e.tesh = 679;
- e.tet = 1496;
- e.tetdagesh = 64312;
- e.tetdageshhebrew = 64312;
- e.tethebrew = 1496;
- e.tetsecyrillic = 1205;
- e.tevirhebrew = 1435;
- e.tevirlefthebrew = 1435;
- e.thabengali = 2469;
- e.thadeva = 2341;
- e.thagujarati = 2725;
- e.thagurmukhi = 2597;
- e.thalarabic = 1584;
- e.thalfinalarabic = 65196;
- e.thanthakhatlowleftthai = 63640;
- e.thanthakhatlowrightthai = 63639;
- e.thanthakhatthai = 3660;
- e.thanthakhatupperleftthai = 63638;
- e.theharabic = 1579;
- e.thehfinalarabic = 65178;
- e.thehinitialarabic = 65179;
- e.thehmedialarabic = 65180;
- e.thereexists = 8707;
- e.therefore = 8756;
- e.theta = 952;
- e.theta1 = 977;
- e.thetasymbolgreek = 977;
- e.thieuthacirclekorean = 12921;
- e.thieuthaparenkorean = 12825;
- e.thieuthcirclekorean = 12907;
- e.thieuthkorean = 12620;
- e.thieuthparenkorean = 12811;
- e.thirteencircle = 9324;
- e.thirteenparen = 9344;
- e.thirteenperiod = 9364;
- e.thonangmonthothai = 3601;
- e.thook = 429;
- e.thophuthaothai = 3602;
- e.thorn = 254;
- e.thothahanthai = 3607;
- e.thothanthai = 3600;
- e.thothongthai = 3608;
- e.thothungthai = 3606;
- e.thousandcyrillic = 1154;
- e.thousandsseparatorarabic = 1644;
- e.thousandsseparatorpersian = 1644;
- e.three = 51;
- e.threearabic = 1635;
- e.threebengali = 2537;
- e.threecircle = 9314;
- e.threecircleinversesansserif = 10124;
- e.threedeva = 2409;
- e.threeeighths = 8540;
- e.threegujarati = 2793;
- e.threegurmukhi = 2665;
- e.threehackarabic = 1635;
- e.threehangzhou = 12323;
- e.threeideographicparen = 12834;
- e.threeinferior = 8323;
- e.threemonospace = 65299;
- e.threenumeratorbengali = 2550;
- e.threeoldstyle = 63283;
- e.threeparen = 9334;
- e.threeperiod = 9354;
- e.threepersian = 1779;
- e.threequarters = 190;
- e.threequartersemdash = 63198;
- e.threeroman = 8562;
- e.threesuperior = 179;
- e.threethai = 3667;
- e.thzsquare = 13204;
- e.tihiragana = 12385;
- e.tikatakana = 12481;
- e.tikatakanahalfwidth = 65409;
- e.tikeutacirclekorean = 12912;
- e.tikeutaparenkorean = 12816;
- e.tikeutcirclekorean = 12898;
- e.tikeutkorean = 12599;
- e.tikeutparenkorean = 12802;
- e.tilde = 732;
- e.tildebelowcmb = 816;
- e.tildecmb = 771;
- e.tildecomb = 771;
- e.tildedoublecmb = 864;
- e.tildeoperator = 8764;
- e.tildeoverlaycmb = 820;
- e.tildeverticalcmb = 830;
- e.timescircle = 8855;
- e.tipehahebrew = 1430;
- e.tipehalefthebrew = 1430;
- e.tippigurmukhi = 2672;
- e.titlocyrilliccmb = 1155;
- e.tiwnarmenian = 1407;
- e.tlinebelow = 7791;
- e.tmonospace = 65364;
- e.toarmenian = 1385;
- e.tohiragana = 12392;
- e.tokatakana = 12488;
- e.tokatakanahalfwidth = 65412;
- e.tonebarextrahighmod = 741;
- e.tonebarextralowmod = 745;
- e.tonebarhighmod = 742;
- e.tonebarlowmod = 744;
- e.tonebarmidmod = 743;
- e.tonefive = 445;
- e.tonesix = 389;
- e.tonetwo = 424;
- e.tonos = 900;
- e.tonsquare = 13095;
- e.topatakthai = 3599;
- e.tortoiseshellbracketleft = 12308;
- e.tortoiseshellbracketleftsmall = 65117;
- e.tortoiseshellbracketleftvertical = 65081;
- e.tortoiseshellbracketright = 12309;
- e.tortoiseshellbracketrightsmall = 65118;
- e.tortoiseshellbracketrightvertical = 65082;
- e.totaothai = 3605;
- e.tpalatalhook = 427;
- e.tparen = 9391;
- e.trademark = 8482;
- e.trademarksans = 63722;
- e.trademarkserif = 63195;
- e.tretroflexhook = 648;
- e.triagdn = 9660;
- e.triaglf = 9668;
- e.triagrt = 9658;
- e.triagup = 9650;
- e.ts = 678;
- e.tsadi = 1510;
- e.tsadidagesh = 64326;
- e.tsadidageshhebrew = 64326;
- e.tsadihebrew = 1510;
- e.tsecyrillic = 1094;
- e.tsere = 1461;
- e.tsere12 = 1461;
- e.tsere1e = 1461;
- e.tsere2b = 1461;
- e.tserehebrew = 1461;
- e.tserenarrowhebrew = 1461;
- e.tserequarterhebrew = 1461;
- e.tserewidehebrew = 1461;
- e.tshecyrillic = 1115;
- e.tsuperior = 63219;
- e.ttabengali = 2463;
- e.ttadeva = 2335;
- e.ttagujarati = 2719;
- e.ttagurmukhi = 2591;
- e.tteharabic = 1657;
- e.ttehfinalarabic = 64359;
- e.ttehinitialarabic = 64360;
- e.ttehmedialarabic = 64361;
- e.tthabengali = 2464;
- e.tthadeva = 2336;
- e.tthagujarati = 2720;
- e.tthagurmukhi = 2592;
- e.tturned = 647;
- e.tuhiragana = 12388;
- e.tukatakana = 12484;
- e.tukatakanahalfwidth = 65410;
- e.tusmallhiragana = 12387;
- e.tusmallkatakana = 12483;
- e.tusmallkatakanahalfwidth = 65391;
- e.twelvecircle = 9323;
- e.twelveparen = 9343;
- e.twelveperiod = 9363;
- e.twelveroman = 8571;
- e.twentycircle = 9331;
- e.twentyhangzhou = 21316;
- e.twentyparen = 9351;
- e.twentyperiod = 9371;
- e.two = 50;
- e.twoarabic = 1634;
- e.twobengali = 2536;
- e.twocircle = 9313;
- e.twocircleinversesansserif = 10123;
- e.twodeva = 2408;
- e.twodotenleader = 8229;
- e.twodotleader = 8229;
- e.twodotleadervertical = 65072;
- e.twogujarati = 2792;
- e.twogurmukhi = 2664;
- e.twohackarabic = 1634;
- e.twohangzhou = 12322;
- e.twoideographicparen = 12833;
- e.twoinferior = 8322;
- e.twomonospace = 65298;
- e.twonumeratorbengali = 2549;
- e.twooldstyle = 63282;
- e.twoparen = 9333;
- e.twoperiod = 9353;
- e.twopersian = 1778;
- e.tworoman = 8561;
- e.twostroke = 443;
- e.twosuperior = 178;
- e.twothai = 3666;
- e.twothirds = 8532;
- e.u = 117;
- e.uacute = 250;
- e.ubar = 649;
- e.ubengali = 2441;
- e.ubopomofo = 12584;
- e.ubreve = 365;
- e.ucaron = 468;
- e.ucircle = 9444;
- e.ucircumflex = 251;
- e.ucircumflexbelow = 7799;
- e.ucyrillic = 1091;
- e.udattadeva = 2385;
- e.udblacute = 369;
- e.udblgrave = 533;
- e.udeva = 2313;
- e.udieresis = 252;
- e.udieresisacute = 472;
- e.udieresisbelow = 7795;
- e.udieresiscaron = 474;
- e.udieresiscyrillic = 1265;
- e.udieresisgrave = 476;
- e.udieresismacron = 470;
- e.udotbelow = 7909;
- e.ugrave = 249;
- e.ugujarati = 2697;
- e.ugurmukhi = 2569;
- e.uhiragana = 12358;
- e.uhookabove = 7911;
- e.uhorn = 432;
- e.uhornacute = 7913;
- e.uhorndotbelow = 7921;
- e.uhorngrave = 7915;
- e.uhornhookabove = 7917;
- e.uhorntilde = 7919;
- e.uhungarumlaut = 369;
- e.uhungarumlautcyrillic = 1267;
- e.uinvertedbreve = 535;
- e.ukatakana = 12454;
- e.ukatakanahalfwidth = 65395;
- e.ukcyrillic = 1145;
- e.ukorean = 12636;
- e.umacron = 363;
- e.umacroncyrillic = 1263;
- e.umacrondieresis = 7803;
- e.umatragurmukhi = 2625;
- e.umonospace = 65365;
- e.underscore = 95;
- e.underscoredbl = 8215;
- e.underscoremonospace = 65343;
- e.underscorevertical = 65075;
- e.underscorewavy = 65103;
- e.union = 8746;
- e.universal = 8704;
- e.uogonek = 371;
- e.uparen = 9392;
- e.upblock = 9600;
- e.upperdothebrew = 1476;
- e.upsilon = 965;
- e.upsilondieresis = 971;
- e.upsilondieresistonos = 944;
- e.upsilonlatin = 650;
- e.upsilontonos = 973;
- e.uptackbelowcmb = 797;
- e.uptackmod = 724;
- e.uragurmukhi = 2675;
- e.uring = 367;
- e.ushortcyrillic = 1118;
- e.usmallhiragana = 12357;
- e.usmallkatakana = 12453;
- e.usmallkatakanahalfwidth = 65385;
- e.ustraightcyrillic = 1199;
- e.ustraightstrokecyrillic = 1201;
- e.utilde = 361;
- e.utildeacute = 7801;
- e.utildebelow = 7797;
- e.uubengali = 2442;
- e.uudeva = 2314;
- e.uugujarati = 2698;
- e.uugurmukhi = 2570;
- e.uumatragurmukhi = 2626;
- e.uuvowelsignbengali = 2498;
- e.uuvowelsigndeva = 2370;
- e.uuvowelsigngujarati = 2754;
- e.uvowelsignbengali = 2497;
- e.uvowelsigndeva = 2369;
- e.uvowelsigngujarati = 2753;
- e.v = 118;
- e.vadeva = 2357;
- e.vagujarati = 2741;
- e.vagurmukhi = 2613;
- e.vakatakana = 12535;
- e.vav = 1493;
- e.vavdagesh = 64309;
- e.vavdagesh65 = 64309;
- e.vavdageshhebrew = 64309;
- e.vavhebrew = 1493;
- e.vavholam = 64331;
- e.vavholamhebrew = 64331;
- e.vavvavhebrew = 1520;
- e.vavyodhebrew = 1521;
- e.vcircle = 9445;
- e.vdotbelow = 7807;
- e.vecyrillic = 1074;
- e.veharabic = 1700;
- e.vehfinalarabic = 64363;
- e.vehinitialarabic = 64364;
- e.vehmedialarabic = 64365;
- e.vekatakana = 12537;
- e.venus = 9792;
- e.verticalbar = 124;
- e.verticallineabovecmb = 781;
- e.verticallinebelowcmb = 809;
- e.verticallinelowmod = 716;
- e.verticallinemod = 712;
- e.vewarmenian = 1406;
- e.vhook = 651;
- e.vikatakana = 12536;
- e.viramabengali = 2509;
- e.viramadeva = 2381;
- e.viramagujarati = 2765;
- e.visargabengali = 2435;
- e.visargadeva = 2307;
- e.visargagujarati = 2691;
- e.vmonospace = 65366;
- e.voarmenian = 1400;
- e.voicediterationhiragana = 12446;
- e.voicediterationkatakana = 12542;
- e.voicedmarkkana = 12443;
- e.voicedmarkkanahalfwidth = 65438;
- e.vokatakana = 12538;
- e.vparen = 9393;
- e.vtilde = 7805;
- e.vturned = 652;
- e.vuhiragana = 12436;
- e.vukatakana = 12532;
- e.w = 119;
- e.wacute = 7811;
- e.waekorean = 12633;
- e.wahiragana = 12431;
- e.wakatakana = 12527;
- e.wakatakanahalfwidth = 65436;
- e.wakorean = 12632;
- e.wasmallhiragana = 12430;
- e.wasmallkatakana = 12526;
- e.wattosquare = 13143;
- e.wavedash = 12316;
- e.wavyunderscorevertical = 65076;
- e.wawarabic = 1608;
- e.wawfinalarabic = 65262;
- e.wawhamzaabovearabic = 1572;
- e.wawhamzaabovefinalarabic = 65158;
- e.wbsquare = 13277;
- e.wcircle = 9446;
- e.wcircumflex = 373;
- e.wdieresis = 7813;
- e.wdotaccent = 7815;
- e.wdotbelow = 7817;
- e.wehiragana = 12433;
- e.weierstrass = 8472;
- e.wekatakana = 12529;
- e.wekorean = 12638;
- e.weokorean = 12637;
- e.wgrave = 7809;
- e.whitebullet = 9702;
- e.whitecircle = 9675;
- e.whitecircleinverse = 9689;
- e.whitecornerbracketleft = 12302;
- e.whitecornerbracketleftvertical = 65091;
- e.whitecornerbracketright = 12303;
- e.whitecornerbracketrightvertical = 65092;
- e.whitediamond = 9671;
- e.whitediamondcontainingblacksmalldiamond = 9672;
- e.whitedownpointingsmalltriangle = 9663;
- e.whitedownpointingtriangle = 9661;
- e.whiteleftpointingsmalltriangle = 9667;
- e.whiteleftpointingtriangle = 9665;
- e.whitelenticularbracketleft = 12310;
- e.whitelenticularbracketright = 12311;
- e.whiterightpointingsmalltriangle = 9657;
- e.whiterightpointingtriangle = 9655;
- e.whitesmallsquare = 9643;
- e.whitesmilingface = 9786;
- e.whitesquare = 9633;
- e.whitestar = 9734;
- e.whitetelephone = 9743;
- e.whitetortoiseshellbracketleft = 12312;
- e.whitetortoiseshellbracketright = 12313;
- e.whiteuppointingsmalltriangle = 9653;
- e.whiteuppointingtriangle = 9651;
- e.wihiragana = 12432;
- e.wikatakana = 12528;
- e.wikorean = 12639;
- e.wmonospace = 65367;
- e.wohiragana = 12434;
- e.wokatakana = 12530;
- e.wokatakanahalfwidth = 65382;
- e.won = 8361;
- e.wonmonospace = 65510;
- e.wowaenthai = 3623;
- e.wparen = 9394;
- e.wring = 7832;
- e.wsuperior = 695;
- e.wturned = 653;
- e.wynn = 447;
- e.x = 120;
- e.xabovecmb = 829;
- e.xbopomofo = 12562;
- e.xcircle = 9447;
- e.xdieresis = 7821;
- e.xdotaccent = 7819;
- e.xeharmenian = 1389;
- e.xi = 958;
- e.xmonospace = 65368;
- e.xparen = 9395;
- e.xsuperior = 739;
- e.y = 121;
- e.yaadosquare = 13134;
- e.yabengali = 2479;
- e.yacute = 253;
- e.yadeva = 2351;
- e.yaekorean = 12626;
- e.yagujarati = 2735;
- e.yagurmukhi = 2607;
- e.yahiragana = 12420;
- e.yakatakana = 12516;
- e.yakatakanahalfwidth = 65428;
- e.yakorean = 12625;
- e.yamakkanthai = 3662;
- e.yasmallhiragana = 12419;
- e.yasmallkatakana = 12515;
- e.yasmallkatakanahalfwidth = 65388;
- e.yatcyrillic = 1123;
- e.ycircle = 9448;
- e.ycircumflex = 375;
- e.ydieresis = 255;
- e.ydotaccent = 7823;
- e.ydotbelow = 7925;
- e.yeharabic = 1610;
- e.yehbarreearabic = 1746;
- e.yehbarreefinalarabic = 64431;
- e.yehfinalarabic = 65266;
- e.yehhamzaabovearabic = 1574;
- e.yehhamzaabovefinalarabic = 65162;
- e.yehhamzaaboveinitialarabic = 65163;
- e.yehhamzaabovemedialarabic = 65164;
- e.yehinitialarabic = 65267;
- e.yehmedialarabic = 65268;
- e.yehmeeminitialarabic = 64733;
- e.yehmeemisolatedarabic = 64600;
- e.yehnoonfinalarabic = 64660;
- e.yehthreedotsbelowarabic = 1745;
- e.yekorean = 12630;
- e.yen = 165;
- e.yenmonospace = 65509;
- e.yeokorean = 12629;
- e.yeorinhieuhkorean = 12678;
- e.yerahbenyomohebrew = 1450;
- e.yerahbenyomolefthebrew = 1450;
- e.yericyrillic = 1099;
- e.yerudieresiscyrillic = 1273;
- e.yesieungkorean = 12673;
- e.yesieungpansioskorean = 12675;
- e.yesieungsioskorean = 12674;
- e.yetivhebrew = 1434;
- e.ygrave = 7923;
- e.yhook = 436;
- e.yhookabove = 7927;
- e.yiarmenian = 1397;
- e.yicyrillic = 1111;
- e.yikorean = 12642;
- e.yinyang = 9775;
- e.yiwnarmenian = 1410;
- e.ymonospace = 65369;
- e.yod = 1497;
- e.yoddagesh = 64313;
- e.yoddageshhebrew = 64313;
- e.yodhebrew = 1497;
- e.yodyodhebrew = 1522;
- e.yodyodpatahhebrew = 64287;
- e.yohiragana = 12424;
- e.yoikorean = 12681;
- e.yokatakana = 12520;
- e.yokatakanahalfwidth = 65430;
- e.yokorean = 12635;
- e.yosmallhiragana = 12423;
- e.yosmallkatakana = 12519;
- e.yosmallkatakanahalfwidth = 65390;
- e.yotgreek = 1011;
- e.yoyaekorean = 12680;
- e.yoyakorean = 12679;
- e.yoyakthai = 3618;
- e.yoyingthai = 3597;
- e.yparen = 9396;
- e.ypogegrammeni = 890;
- e.ypogegrammenigreekcmb = 837;
- e.yr = 422;
- e.yring = 7833;
- e.ysuperior = 696;
- e.ytilde = 7929;
- e.yturned = 654;
- e.yuhiragana = 12422;
- e.yuikorean = 12684;
- e.yukatakana = 12518;
- e.yukatakanahalfwidth = 65429;
- e.yukorean = 12640;
- e.yusbigcyrillic = 1131;
- e.yusbigiotifiedcyrillic = 1133;
- e.yuslittlecyrillic = 1127;
- e.yuslittleiotifiedcyrillic = 1129;
- e.yusmallhiragana = 12421;
- e.yusmallkatakana = 12517;
- e.yusmallkatakanahalfwidth = 65389;
- e.yuyekorean = 12683;
- e.yuyeokorean = 12682;
- e.yyabengali = 2527;
- e.yyadeva = 2399;
- e.z = 122;
- e.zaarmenian = 1382;
- e.zacute = 378;
- e.zadeva = 2395;
- e.zagurmukhi = 2651;
- e.zaharabic = 1592;
- e.zahfinalarabic = 65222;
- e.zahinitialarabic = 65223;
- e.zahiragana = 12374;
- e.zahmedialarabic = 65224;
- e.zainarabic = 1586;
- e.zainfinalarabic = 65200;
- e.zakatakana = 12470;
- e.zaqefgadolhebrew = 1429;
- e.zaqefqatanhebrew = 1428;
- e.zarqahebrew = 1432;
- e.zayin = 1494;
- e.zayindagesh = 64310;
- e.zayindageshhebrew = 64310;
- e.zayinhebrew = 1494;
- e.zbopomofo = 12567;
- e.zcaron = 382;
- e.zcircle = 9449;
- e.zcircumflex = 7825;
- e.zcurl = 657;
- e.zdot = 380;
- e.zdotaccent = 380;
- e.zdotbelow = 7827;
- e.zecyrillic = 1079;
- e.zedescendercyrillic = 1177;
- e.zedieresiscyrillic = 1247;
- e.zehiragana = 12380;
- e.zekatakana = 12476;
- e.zero = 48;
- e.zeroarabic = 1632;
- e.zerobengali = 2534;
- e.zerodeva = 2406;
- e.zerogujarati = 2790;
- e.zerogurmukhi = 2662;
- e.zerohackarabic = 1632;
- e.zeroinferior = 8320;
- e.zeromonospace = 65296;
- e.zerooldstyle = 63280;
- e.zeropersian = 1776;
- e.zerosuperior = 8304;
- e.zerothai = 3664;
- e.zerowidthjoiner = 65279;
- e.zerowidthnonjoiner = 8204;
- e.zerowidthspace = 8203;
- e.zeta = 950;
- e.zhbopomofo = 12563;
- e.zhearmenian = 1386;
- e.zhebrevecyrillic = 1218;
- e.zhecyrillic = 1078;
- e.zhedescendercyrillic = 1175;
- e.zhedieresiscyrillic = 1245;
- e.zihiragana = 12376;
- e.zikatakana = 12472;
- e.zinorhebrew = 1454;
- e.zlinebelow = 7829;
- e.zmonospace = 65370;
- e.zohiragana = 12382;
- e.zokatakana = 12478;
- e.zparen = 9397;
- e.zretroflexhook = 656;
- e.zstroke = 438;
- e.zuhiragana = 12378;
- e.zukatakana = 12474;
- e['.notdef'] = 0;
- e.angbracketleftbig = 9001;
- e.angbracketleftBig = 9001;
- e.angbracketleftbigg = 9001;
- e.angbracketleftBigg = 9001;
- e.angbracketrightBig = 9002;
- e.angbracketrightbig = 9002;
- e.angbracketrightBigg = 9002;
- e.angbracketrightbigg = 9002;
- e.arrowhookleft = 8618;
- e.arrowhookright = 8617;
- e.arrowlefttophalf = 8636;
- e.arrowleftbothalf = 8637;
- e.arrownortheast = 8599;
- e.arrownorthwest = 8598;
- e.arrowrighttophalf = 8640;
- e.arrowrightbothalf = 8641;
- e.arrowsoutheast = 8600;
- e.arrowsouthwest = 8601;
- e.backslashbig = 8726;
- e.backslashBig = 8726;
- e.backslashBigg = 8726;
- e.backslashbigg = 8726;
- e.bardbl = 8214;
- e.bracehtipdownleft = 65079;
- e.bracehtipdownright = 65079;
- e.bracehtipupleft = 65080;
- e.bracehtipupright = 65080;
- e.braceleftBig = 123;
- e.braceleftbig = 123;
- e.braceleftbigg = 123;
- e.braceleftBigg = 123;
- e.bracerightBig = 125;
- e.bracerightbig = 125;
- e.bracerightbigg = 125;
- e.bracerightBigg = 125;
- e.bracketleftbig = 91;
- e.bracketleftBig = 91;
- e.bracketleftbigg = 91;
- e.bracketleftBigg = 91;
- e.bracketrightBig = 93;
- e.bracketrightbig = 93;
- e.bracketrightbigg = 93;
- e.bracketrightBigg = 93;
- e.ceilingleftbig = 8968;
- e.ceilingleftBig = 8968;
- e.ceilingleftBigg = 8968;
- e.ceilingleftbigg = 8968;
- e.ceilingrightbig = 8969;
- e.ceilingrightBig = 8969;
- e.ceilingrightbigg = 8969;
- e.ceilingrightBigg = 8969;
- e.circledotdisplay = 8857;
- e.circledottext = 8857;
- e.circlemultiplydisplay = 8855;
- e.circlemultiplytext = 8855;
- e.circleplusdisplay = 8853;
- e.circleplustext = 8853;
- e.contintegraldisplay = 8750;
- e.contintegraltext = 8750;
- e.coproductdisplay = 8720;
- e.coproducttext = 8720;
- e.floorleftBig = 8970;
- e.floorleftbig = 8970;
- e.floorleftbigg = 8970;
- e.floorleftBigg = 8970;
- e.floorrightbig = 8971;
- e.floorrightBig = 8971;
- e.floorrightBigg = 8971;
- e.floorrightbigg = 8971;
- e.hatwide = 770;
- e.hatwider = 770;
- e.hatwidest = 770;
- e.intercal = 7488;
- e.integraldisplay = 8747;
- e.integraltext = 8747;
- e.intersectiondisplay = 8898;
- e.intersectiontext = 8898;
- e.logicalanddisplay = 8743;
- e.logicalandtext = 8743;
- e.logicalordisplay = 8744;
- e.logicalortext = 8744;
- e.parenleftBig = 40;
- e.parenleftbig = 40;
- e.parenleftBigg = 40;
- e.parenleftbigg = 40;
- e.parenrightBig = 41;
- e.parenrightbig = 41;
- e.parenrightBigg = 41;
- e.parenrightbigg = 41;
- e.prime = 8242;
- e.productdisplay = 8719;
- e.producttext = 8719;
- e.radicalbig = 8730;
- e.radicalBig = 8730;
- e.radicalBigg = 8730;
- e.radicalbigg = 8730;
- e.radicalbt = 8730;
- e.radicaltp = 8730;
- e.radicalvertex = 8730;
- e.slashbig = 47;
- e.slashBig = 47;
- e.slashBigg = 47;
- e.slashbigg = 47;
- e.summationdisplay = 8721;
- e.summationtext = 8721;
- e.tildewide = 732;
- e.tildewider = 732;
- e.tildewidest = 732;
- e.uniondisplay = 8899;
- e.unionmultidisplay = 8846;
- e.unionmultitext = 8846;
- e.unionsqdisplay = 8852;
- e.unionsqtext = 8852;
- e.uniontext = 8899;
- e.vextenddouble = 8741;
- e.vextendsingle = 8739;
- }),
- n = (0, r.getLookupTableFactory)(function (e) {
- e.space = 32;
- e.a1 = 9985;
- e.a2 = 9986;
- e.a202 = 9987;
- e.a3 = 9988;
- e.a4 = 9742;
- e.a5 = 9990;
- e.a119 = 9991;
- e.a118 = 9992;
- e.a117 = 9993;
- e.a11 = 9755;
- e.a12 = 9758;
- e.a13 = 9996;
- e.a14 = 9997;
- e.a15 = 9998;
- e.a16 = 9999;
- e.a105 = 1e4;
- e.a17 = 10001;
- e.a18 = 10002;
- e.a19 = 10003;
- e.a20 = 10004;
- e.a21 = 10005;
- e.a22 = 10006;
- e.a23 = 10007;
- e.a24 = 10008;
- e.a25 = 10009;
- e.a26 = 10010;
- e.a27 = 10011;
- e.a28 = 10012;
- e.a6 = 10013;
- e.a7 = 10014;
- e.a8 = 10015;
- e.a9 = 10016;
- e.a10 = 10017;
- e.a29 = 10018;
- e.a30 = 10019;
- e.a31 = 10020;
- e.a32 = 10021;
- e.a33 = 10022;
- e.a34 = 10023;
- e.a35 = 9733;
- e.a36 = 10025;
- e.a37 = 10026;
- e.a38 = 10027;
- e.a39 = 10028;
- e.a40 = 10029;
- e.a41 = 10030;
- e.a42 = 10031;
- e.a43 = 10032;
- e.a44 = 10033;
- e.a45 = 10034;
- e.a46 = 10035;
- e.a47 = 10036;
- e.a48 = 10037;
- e.a49 = 10038;
- e.a50 = 10039;
- e.a51 = 10040;
- e.a52 = 10041;
- e.a53 = 10042;
- e.a54 = 10043;
- e.a55 = 10044;
- e.a56 = 10045;
- e.a57 = 10046;
- e.a58 = 10047;
- e.a59 = 10048;
- e.a60 = 10049;
- e.a61 = 10050;
- e.a62 = 10051;
- e.a63 = 10052;
- e.a64 = 10053;
- e.a65 = 10054;
- e.a66 = 10055;
- e.a67 = 10056;
- e.a68 = 10057;
- e.a69 = 10058;
- e.a70 = 10059;
- e.a71 = 9679;
- e.a72 = 10061;
- e.a73 = 9632;
- e.a74 = 10063;
- e.a203 = 10064;
- e.a75 = 10065;
- e.a204 = 10066;
- e.a76 = 9650;
- e.a77 = 9660;
- e.a78 = 9670;
- e.a79 = 10070;
- e.a81 = 9687;
- e.a82 = 10072;
- e.a83 = 10073;
- e.a84 = 10074;
- e.a97 = 10075;
- e.a98 = 10076;
- e.a99 = 10077;
- e.a100 = 10078;
- e.a101 = 10081;
- e.a102 = 10082;
- e.a103 = 10083;
- e.a104 = 10084;
- e.a106 = 10085;
- e.a107 = 10086;
- e.a108 = 10087;
- e.a112 = 9827;
- e.a111 = 9830;
- e.a110 = 9829;
- e.a109 = 9824;
- e.a120 = 9312;
- e.a121 = 9313;
- e.a122 = 9314;
- e.a123 = 9315;
- e.a124 = 9316;
- e.a125 = 9317;
- e.a126 = 9318;
- e.a127 = 9319;
- e.a128 = 9320;
- e.a129 = 9321;
- e.a130 = 10102;
- e.a131 = 10103;
- e.a132 = 10104;
- e.a133 = 10105;
- e.a134 = 10106;
- e.a135 = 10107;
- e.a136 = 10108;
- e.a137 = 10109;
- e.a138 = 10110;
- e.a139 = 10111;
- e.a140 = 10112;
- e.a141 = 10113;
- e.a142 = 10114;
- e.a143 = 10115;
- e.a144 = 10116;
- e.a145 = 10117;
- e.a146 = 10118;
- e.a147 = 10119;
- e.a148 = 10120;
- e.a149 = 10121;
- e.a150 = 10122;
- e.a151 = 10123;
- e.a152 = 10124;
- e.a153 = 10125;
- e.a154 = 10126;
- e.a155 = 10127;
- e.a156 = 10128;
- e.a157 = 10129;
- e.a158 = 10130;
- e.a159 = 10131;
- e.a160 = 10132;
- e.a161 = 8594;
- e.a163 = 8596;
- e.a164 = 8597;
- e.a196 = 10136;
- e.a165 = 10137;
- e.a192 = 10138;
- e.a166 = 10139;
- e.a167 = 10140;
- e.a168 = 10141;
- e.a169 = 10142;
- e.a170 = 10143;
- e.a171 = 10144;
- e.a172 = 10145;
- e.a173 = 10146;
- e.a162 = 10147;
- e.a174 = 10148;
- e.a175 = 10149;
- e.a176 = 10150;
- e.a177 = 10151;
- e.a178 = 10152;
- e.a179 = 10153;
- e.a193 = 10154;
- e.a180 = 10155;
- e.a199 = 10156;
- e.a181 = 10157;
- e.a200 = 10158;
- e.a182 = 10159;
- e.a201 = 10161;
- e.a183 = 10162;
- e.a184 = 10163;
- e.a197 = 10164;
- e.a185 = 10165;
- e.a194 = 10166;
- e.a198 = 10167;
- e.a186 = 10168;
- e.a195 = 10169;
- e.a187 = 10170;
- e.a188 = 10171;
- e.a189 = 10172;
- e.a190 = 10173;
- e.a191 = 10174;
- e.a89 = 10088;
- e.a90 = 10089;
- e.a93 = 10090;
- e.a94 = 10091;
- e.a91 = 10092;
- e.a92 = 10093;
- e.a205 = 10094;
- e.a85 = 10095;
- e.a206 = 10096;
- e.a86 = 10097;
- e.a87 = 10098;
- e.a88 = 10099;
- e.a95 = 10100;
- e.a96 = 10101;
- e['.notdef'] = 0;
- });
- },
- (e, t, a) => {
- a.r(t);
- a.d(t, {
- clearUnicodeCaches: () => clearUnicodeCaches,
- getCharUnicodeCategory: () => getCharUnicodeCategory,
- getUnicodeForGlyph: () => getUnicodeForGlyph,
- getUnicodeRangeFor: () => getUnicodeRangeFor,
- mapSpecialUnicodeValues: () => mapSpecialUnicodeValues,
- });
- const r = (0, a(3).getLookupTableFactory)(function (e) {
- e[63721] = 169;
- e[63193] = 169;
- e[63720] = 174;
- e[63194] = 174;
- e[63722] = 8482;
- e[63195] = 8482;
- e[63729] = 9127;
- e[63730] = 9128;
- e[63731] = 9129;
- e[63740] = 9131;
- e[63741] = 9132;
- e[63742] = 9133;
- e[63726] = 9121;
- e[63727] = 9122;
- e[63728] = 9123;
- e[63737] = 9124;
- e[63738] = 9125;
- e[63739] = 9126;
- e[63723] = 9115;
- e[63724] = 9116;
- e[63725] = 9117;
- e[63734] = 9118;
- e[63735] = 9119;
- e[63736] = 9120;
- });
- function mapSpecialUnicodeValues(e) {
- return e >= 65520 && e <= 65535
- ? 0
- : e >= 62976 && e <= 63743
- ? r()[e] || e
- : 173 === e
- ? 45
- : e;
- }
- function getUnicodeForGlyph(e, t) {
- let a = t[e];
- if (void 0 !== a) return a;
- if (!e) return -1;
- if ('u' === e[0]) {
- const t = e.length;
- let r;
- if (7 === t && 'n' === e[1] && 'i' === e[2]) r = e.substring(3);
- else {
- if (!(t >= 5 && t <= 7)) return -1;
- r = e.substring(1);
- }
- if (r === r.toUpperCase()) {
- a = parseInt(r, 16);
- if (a >= 0) return a;
- }
- }
- return -1;
- }
- const i = [
- [0, 127],
- [128, 255],
- [256, 383],
- [384, 591],
- [592, 687, 7424, 7551, 7552, 7615],
- [688, 767, 42752, 42783],
- [768, 879, 7616, 7679],
- [880, 1023],
- [11392, 11519],
- [1024, 1279, 1280, 1327, 11744, 11775, 42560, 42655],
- [1328, 1423],
- [1424, 1535],
- [42240, 42559],
- [1536, 1791, 1872, 1919],
- [1984, 2047],
- [2304, 2431],
- [2432, 2559],
- [2560, 2687],
- [2688, 2815],
- [2816, 2943],
- [2944, 3071],
- [3072, 3199],
- [3200, 3327],
- [3328, 3455],
- [3584, 3711],
- [3712, 3839],
- [4256, 4351, 11520, 11567],
- [6912, 7039],
- [4352, 4607],
- [7680, 7935, 11360, 11391, 42784, 43007],
- [7936, 8191],
- [8192, 8303, 11776, 11903],
- [8304, 8351],
- [8352, 8399],
- [8400, 8447],
- [8448, 8527],
- [8528, 8591],
- [8592, 8703, 10224, 10239, 10496, 10623, 11008, 11263],
- [8704, 8959, 10752, 11007, 10176, 10223, 10624, 10751],
- [8960, 9215],
- [9216, 9279],
- [9280, 9311],
- [9312, 9471],
- [9472, 9599],
- [9600, 9631],
- [9632, 9727],
- [9728, 9983],
- [9984, 10175],
- [12288, 12351],
- [12352, 12447],
- [12448, 12543, 12784, 12799],
- [12544, 12591, 12704, 12735],
- [12592, 12687],
- [43072, 43135],
- [12800, 13055],
- [13056, 13311],
- [44032, 55215],
- [55296, 57343],
- [67840, 67871],
- [
- 19968, 40959, 11904, 12031, 12032, 12255, 12272, 12287, 13312, 19903, 131072, 173791,
- 12688, 12703,
- ],
- [57344, 63743],
- [12736, 12783, 63744, 64255, 194560, 195103],
- [64256, 64335],
- [64336, 65023],
- [65056, 65071],
- [65040, 65055],
- [65104, 65135],
- [65136, 65279],
- [65280, 65519],
- [65520, 65535],
- [3840, 4095],
- [1792, 1871],
- [1920, 1983],
- [3456, 3583],
- [4096, 4255],
- [4608, 4991, 4992, 5023, 11648, 11743],
- [5024, 5119],
- [5120, 5759],
- [5760, 5791],
- [5792, 5887],
- [6016, 6143],
- [6144, 6319],
- [10240, 10495],
- [40960, 42127],
- [5888, 5919, 5920, 5951, 5952, 5983, 5984, 6015],
- [66304, 66351],
- [66352, 66383],
- [66560, 66639],
- [118784, 119039, 119040, 119295, 119296, 119375],
- [119808, 120831],
- [1044480, 1048573],
- [65024, 65039, 917760, 917999],
- [917504, 917631],
- [6400, 6479],
- [6480, 6527],
- [6528, 6623],
- [6656, 6687],
- [11264, 11359],
- [11568, 11647],
- [19904, 19967],
- [43008, 43055],
- [65536, 65663, 65664, 65791, 65792, 65855],
- [65856, 65935],
- [66432, 66463],
- [66464, 66527],
- [66640, 66687],
- [66688, 66735],
- [67584, 67647],
- [68096, 68191],
- [119552, 119647],
- [73728, 74751, 74752, 74879],
- [119648, 119679],
- [7040, 7103],
- [7168, 7247],
- [7248, 7295],
- [43136, 43231],
- [43264, 43311],
- [43312, 43359],
- [43520, 43615],
- [65936, 65999],
- [66e3, 66047],
- [66208, 66271, 66176, 66207, 67872, 67903],
- [127024, 127135, 126976, 127023],
- ];
- function getUnicodeRangeFor(e, t = -1) {
- if (-1 !== t) {
- const a = i[t];
- for (let r = 0, i = a.length; r < i; r += 2) if (e >= a[r] && e <= a[r + 1]) return t;
- }
- for (let t = 0, a = i.length; t < a; t++) {
- const a = i[t];
- for (let r = 0, i = a.length; r < i; r += 2) if (e >= a[r] && e <= a[r + 1]) return t;
- }
- return -1;
- }
- const n = new RegExp('^(\\s)|(\\p{Mn})|(\\p{Cf})$', 'u'),
- s = new Map();
- function getCharUnicodeCategory(e) {
- const t = s.get(e);
- if (t) return t;
- const a = e.match(n),
- r = {
- isWhitespace: !(!a || !a[1]),
- isZeroWidthDiacritic: !(!a || !a[2]),
- isInvisibleFormatMark: !(!a || !a[3]),
- };
- s.set(e, r);
- return r;
- }
- function clearUnicodeCaches() {
- s.clear();
- }
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.getSerifFonts =
- t.getNonStdFontMap =
- t.getGlyphMapForStandardFonts =
- t.getFontNameToFileMap =
- void 0;
- t.getStandardFontName = function getStandardFontName(e) {
- const t = (0, i.normalizeFontName)(e);
- return n()[t];
- };
- t.getSymbolsFonts =
- t.getSupplementalGlyphMapForCalibri =
- t.getSupplementalGlyphMapForArialBlack =
- t.getStdFontMap =
- void 0;
- var r = a(3),
- i = a(38);
- const n = (0, r.getLookupTableFactory)(function (e) {
- e['Times-Roman'] = 'Times-Roman';
- e.Helvetica = 'Helvetica';
- e.Courier = 'Courier';
- e.Symbol = 'Symbol';
- e['Times-Bold'] = 'Times-Bold';
- e['Helvetica-Bold'] = 'Helvetica-Bold';
- e['Courier-Bold'] = 'Courier-Bold';
- e.ZapfDingbats = 'ZapfDingbats';
- e['Times-Italic'] = 'Times-Italic';
- e['Helvetica-Oblique'] = 'Helvetica-Oblique';
- e['Courier-Oblique'] = 'Courier-Oblique';
- e['Times-BoldItalic'] = 'Times-BoldItalic';
- e['Helvetica-BoldOblique'] = 'Helvetica-BoldOblique';
- e['Courier-BoldOblique'] = 'Courier-BoldOblique';
- e.ArialNarrow = 'Helvetica';
- e['ArialNarrow-Bold'] = 'Helvetica-Bold';
- e['ArialNarrow-BoldItalic'] = 'Helvetica-BoldOblique';
- e['ArialNarrow-Italic'] = 'Helvetica-Oblique';
- e.ArialBlack = 'Helvetica';
- e['ArialBlack-Bold'] = 'Helvetica-Bold';
- e['ArialBlack-BoldItalic'] = 'Helvetica-BoldOblique';
- e['ArialBlack-Italic'] = 'Helvetica-Oblique';
- e['Arial-Black'] = 'Helvetica';
- e['Arial-Black-Bold'] = 'Helvetica-Bold';
- e['Arial-Black-BoldItalic'] = 'Helvetica-BoldOblique';
- e['Arial-Black-Italic'] = 'Helvetica-Oblique';
- e.Arial = 'Helvetica';
- e['Arial-Bold'] = 'Helvetica-Bold';
- e['Arial-BoldItalic'] = 'Helvetica-BoldOblique';
- e['Arial-Italic'] = 'Helvetica-Oblique';
- e.ArialMT = 'Helvetica';
- e['Arial-BoldItalicMT'] = 'Helvetica-BoldOblique';
- e['Arial-BoldMT'] = 'Helvetica-Bold';
- e['Arial-ItalicMT'] = 'Helvetica-Oblique';
- e.ArialUnicodeMS = 'Helvetica';
- e['ArialUnicodeMS-Bold'] = 'Helvetica-Bold';
- e['ArialUnicodeMS-BoldItalic'] = 'Helvetica-BoldOblique';
- e['ArialUnicodeMS-Italic'] = 'Helvetica-Oblique';
- e['Courier-BoldItalic'] = 'Courier-BoldOblique';
- e['Courier-Italic'] = 'Courier-Oblique';
- e.CourierNew = 'Courier';
- e['CourierNew-Bold'] = 'Courier-Bold';
- e['CourierNew-BoldItalic'] = 'Courier-BoldOblique';
- e['CourierNew-Italic'] = 'Courier-Oblique';
- e['CourierNewPS-BoldItalicMT'] = 'Courier-BoldOblique';
- e['CourierNewPS-BoldMT'] = 'Courier-Bold';
- e['CourierNewPS-ItalicMT'] = 'Courier-Oblique';
- e.CourierNewPSMT = 'Courier';
- e['Helvetica-BoldItalic'] = 'Helvetica-BoldOblique';
- e['Helvetica-Italic'] = 'Helvetica-Oblique';
- e['Symbol-Bold'] = 'Symbol';
- e['Symbol-BoldItalic'] = 'Symbol';
- e['Symbol-Italic'] = 'Symbol';
- e.TimesNewRoman = 'Times-Roman';
- e['TimesNewRoman-Bold'] = 'Times-Bold';
- e['TimesNewRoman-BoldItalic'] = 'Times-BoldItalic';
- e['TimesNewRoman-Italic'] = 'Times-Italic';
- e.TimesNewRomanPS = 'Times-Roman';
- e['TimesNewRomanPS-Bold'] = 'Times-Bold';
- e['TimesNewRomanPS-BoldItalic'] = 'Times-BoldItalic';
- e['TimesNewRomanPS-BoldItalicMT'] = 'Times-BoldItalic';
- e['TimesNewRomanPS-BoldMT'] = 'Times-Bold';
- e['TimesNewRomanPS-Italic'] = 'Times-Italic';
- e['TimesNewRomanPS-ItalicMT'] = 'Times-Italic';
- e.TimesNewRomanPSMT = 'Times-Roman';
- e['TimesNewRomanPSMT-Bold'] = 'Times-Bold';
- e['TimesNewRomanPSMT-BoldItalic'] = 'Times-BoldItalic';
- e['TimesNewRomanPSMT-Italic'] = 'Times-Italic';
- });
- t.getStdFontMap = n;
- const s = (0, r.getLookupTableFactory)(function (e) {
- e.Courier = 'FoxitFixed.pfb';
- e['Courier-Bold'] = 'FoxitFixedBold.pfb';
- e['Courier-BoldOblique'] = 'FoxitFixedBoldItalic.pfb';
- e['Courier-Oblique'] = 'FoxitFixedItalic.pfb';
- e.Helvetica = 'FoxitSans.pfb';
- e['Helvetica-Bold'] = 'FoxitSansBold.pfb';
- e['Helvetica-BoldOblique'] = 'FoxitSansBoldItalic.pfb';
- e['Helvetica-Oblique'] = 'FoxitSansItalic.pfb';
- e['Times-Roman'] = 'FoxitSerif.pfb';
- e['Times-Bold'] = 'FoxitSerifBold.pfb';
- e['Times-BoldItalic'] = 'FoxitSerifBoldItalic.pfb';
- e['Times-Italic'] = 'FoxitSerifItalic.pfb';
- e.Symbol = 'FoxitSymbol.pfb';
- e.ZapfDingbats = 'FoxitDingbats.pfb';
- e['LiberationSans-Regular'] = 'LiberationSans-Regular.ttf';
- e['LiberationSans-Bold'] = 'LiberationSans-Bold.ttf';
- e['LiberationSans-Italic'] = 'LiberationSans-Italic.ttf';
- e['LiberationSans-BoldItalic'] = 'LiberationSans-BoldItalic.ttf';
- });
- t.getFontNameToFileMap = s;
- const o = (0, r.getLookupTableFactory)(function (e) {
- e.Calibri = 'Helvetica';
- e['Calibri-Bold'] = 'Helvetica-Bold';
- e['Calibri-BoldItalic'] = 'Helvetica-BoldOblique';
- e['Calibri-Italic'] = 'Helvetica-Oblique';
- e.CenturyGothic = 'Helvetica';
- e['CenturyGothic-Bold'] = 'Helvetica-Bold';
- e['CenturyGothic-BoldItalic'] = 'Helvetica-BoldOblique';
- e['CenturyGothic-Italic'] = 'Helvetica-Oblique';
- e.ComicSansMS = 'Comic Sans MS';
- e['ComicSansMS-Bold'] = 'Comic Sans MS-Bold';
- e['ComicSansMS-BoldItalic'] = 'Comic Sans MS-BoldItalic';
- e['ComicSansMS-Italic'] = 'Comic Sans MS-Italic';
- e['ItcSymbol-Bold'] = 'Helvetica-Bold';
- e['ItcSymbol-BoldItalic'] = 'Helvetica-BoldOblique';
- e['ItcSymbol-Book'] = 'Helvetica';
- e['ItcSymbol-BookItalic'] = 'Helvetica-Oblique';
- e['ItcSymbol-Medium'] = 'Helvetica';
- e['ItcSymbol-MediumItalic'] = 'Helvetica-Oblique';
- e.LucidaConsole = 'Courier';
- e['LucidaConsole-Bold'] = 'Courier-Bold';
- e['LucidaConsole-BoldItalic'] = 'Courier-BoldOblique';
- e['LucidaConsole-Italic'] = 'Courier-Oblique';
- e['LucidaSans-Demi'] = 'Helvetica-Bold';
- e['MS-Gothic'] = 'MS Gothic';
- e['MS-Gothic-Bold'] = 'MS Gothic-Bold';
- e['MS-Gothic-BoldItalic'] = 'MS Gothic-BoldItalic';
- e['MS-Gothic-Italic'] = 'MS Gothic-Italic';
- e['MS-Mincho'] = 'MS Mincho';
- e['MS-Mincho-Bold'] = 'MS Mincho-Bold';
- e['MS-Mincho-BoldItalic'] = 'MS Mincho-BoldItalic';
- e['MS-Mincho-Italic'] = 'MS Mincho-Italic';
- e['MS-PGothic'] = 'MS PGothic';
- e['MS-PGothic-Bold'] = 'MS PGothic-Bold';
- e['MS-PGothic-BoldItalic'] = 'MS PGothic-BoldItalic';
- e['MS-PGothic-Italic'] = 'MS PGothic-Italic';
- e['MS-PMincho'] = 'MS PMincho';
- e['MS-PMincho-Bold'] = 'MS PMincho-Bold';
- e['MS-PMincho-BoldItalic'] = 'MS PMincho-BoldItalic';
- e['MS-PMincho-Italic'] = 'MS PMincho-Italic';
- e.NuptialScript = 'Times-Italic';
- e.SegoeUISymbol = 'Helvetica';
- e.Wingdings = 'ZapfDingbats';
- e['Wingdings-Regular'] = 'ZapfDingbats';
- });
- t.getNonStdFontMap = o;
- const c = (0, r.getLookupTableFactory)(function (e) {
- e['Adobe Jenson'] = !0;
- e['Adobe Text'] = !0;
- e.Albertus = !0;
- e.Aldus = !0;
- e.Alexandria = !0;
- e.Algerian = !0;
- e['American Typewriter'] = !0;
- e.Antiqua = !0;
- e.Apex = !0;
- e.Arno = !0;
- e.Aster = !0;
- e.Aurora = !0;
- e.Baskerville = !0;
- e.Bell = !0;
- e.Bembo = !0;
- e['Bembo Schoolbook'] = !0;
- e.Benguiat = !0;
- e['Berkeley Old Style'] = !0;
- e['Bernhard Modern'] = !0;
- e['Berthold City'] = !0;
- e.Bodoni = !0;
- e['Bauer Bodoni'] = !0;
- e['Book Antiqua'] = !0;
- e.Bookman = !0;
- e['Bordeaux Roman'] = !0;
- e['Californian FB'] = !0;
- e.Calisto = !0;
- e.Calvert = !0;
- e.Capitals = !0;
- e.Cambria = !0;
- e.Cartier = !0;
- e.Caslon = !0;
- e.Catull = !0;
- e.Centaur = !0;
- e['Century Old Style'] = !0;
- e['Century Schoolbook'] = !0;
- e.Chaparral = !0;
- e['Charis SIL'] = !0;
- e.Cheltenham = !0;
- e['Cholla Slab'] = !0;
- e.Clarendon = !0;
- e.Clearface = !0;
- e.Cochin = !0;
- e.Colonna = !0;
- e['Computer Modern'] = !0;
- e['Concrete Roman'] = !0;
- e.Constantia = !0;
- e['Cooper Black'] = !0;
- e.Corona = !0;
- e.Ecotype = !0;
- e.Egyptienne = !0;
- e.Elephant = !0;
- e.Excelsior = !0;
- e.Fairfield = !0;
- e['FF Scala'] = !0;
- e.Folkard = !0;
- e.Footlight = !0;
- e.FreeSerif = !0;
- e['Friz Quadrata'] = !0;
- e.Garamond = !0;
- e.Gentium = !0;
- e.Georgia = !0;
- e.Gloucester = !0;
- e['Goudy Old Style'] = !0;
- e['Goudy Schoolbook'] = !0;
- e['Goudy Pro Font'] = !0;
- e.Granjon = !0;
- e['Guardian Egyptian'] = !0;
- e.Heather = !0;
- e.Hercules = !0;
- e['High Tower Text'] = !0;
- e.Hiroshige = !0;
- e['Hoefler Text'] = !0;
- e['Humana Serif'] = !0;
- e.Imprint = !0;
- e['Ionic No. 5'] = !0;
- e.Janson = !0;
- e.Joanna = !0;
- e.Korinna = !0;
- e.Lexicon = !0;
- e.LiberationSerif = !0;
- e['Liberation Serif'] = !0;
- e['Linux Libertine'] = !0;
- e.Literaturnaya = !0;
- e.Lucida = !0;
- e['Lucida Bright'] = !0;
- e.Melior = !0;
- e.Memphis = !0;
- e.Miller = !0;
- e.Minion = !0;
- e.Modern = !0;
- e['Mona Lisa'] = !0;
- e['Mrs Eaves'] = !0;
- e['MS Serif'] = !0;
- e['Museo Slab'] = !0;
- e['New York'] = !0;
- e['Nimbus Roman'] = !0;
- e['NPS Rawlinson Roadway'] = !0;
- e.NuptialScript = !0;
- e.Palatino = !0;
- e.Perpetua = !0;
- e.Plantin = !0;
- e['Plantin Schoolbook'] = !0;
- e.Playbill = !0;
- e['Poor Richard'] = !0;
- e['Rawlinson Roadway'] = !0;
- e.Renault = !0;
- e.Requiem = !0;
- e.Rockwell = !0;
- e.Roman = !0;
- e['Rotis Serif'] = !0;
- e.Sabon = !0;
- e.Scala = !0;
- e.Seagull = !0;
- e.Sistina = !0;
- e.Souvenir = !0;
- e.STIX = !0;
- e['Stone Informal'] = !0;
- e['Stone Serif'] = !0;
- e.Sylfaen = !0;
- e.Times = !0;
- e.Trajan = !0;
- e['Trinité'] = !0;
- e['Trump Mediaeval'] = !0;
- e.Utopia = !0;
- e['Vale Type'] = !0;
- e['Bitstream Vera'] = !0;
- e['Vera Serif'] = !0;
- e.Versailles = !0;
- e.Wanted = !0;
- e.Weiss = !0;
- e['Wide Latin'] = !0;
- e.Windsor = !0;
- e.XITS = !0;
- });
- t.getSerifFonts = c;
- const l = (0, r.getLookupTableFactory)(function (e) {
- e.Dingbats = !0;
- e.Symbol = !0;
- e.ZapfDingbats = !0;
- });
- t.getSymbolsFonts = l;
- const h = (0, r.getLookupTableFactory)(function (e) {
- e[2] = 10;
- e[3] = 32;
- e[4] = 33;
- e[5] = 34;
- e[6] = 35;
- e[7] = 36;
- e[8] = 37;
- e[9] = 38;
- e[10] = 39;
- e[11] = 40;
- e[12] = 41;
- e[13] = 42;
- e[14] = 43;
- e[15] = 44;
- e[16] = 45;
- e[17] = 46;
- e[18] = 47;
- e[19] = 48;
- e[20] = 49;
- e[21] = 50;
- e[22] = 51;
- e[23] = 52;
- e[24] = 53;
- e[25] = 54;
- e[26] = 55;
- e[27] = 56;
- e[28] = 57;
- e[29] = 58;
- e[30] = 894;
- e[31] = 60;
- e[32] = 61;
- e[33] = 62;
- e[34] = 63;
- e[35] = 64;
- e[36] = 65;
- e[37] = 66;
- e[38] = 67;
- e[39] = 68;
- e[40] = 69;
- e[41] = 70;
- e[42] = 71;
- e[43] = 72;
- e[44] = 73;
- e[45] = 74;
- e[46] = 75;
- e[47] = 76;
- e[48] = 77;
- e[49] = 78;
- e[50] = 79;
- e[51] = 80;
- e[52] = 81;
- e[53] = 82;
- e[54] = 83;
- e[55] = 84;
- e[56] = 85;
- e[57] = 86;
- e[58] = 87;
- e[59] = 88;
- e[60] = 89;
- e[61] = 90;
- e[62] = 91;
- e[63] = 92;
- e[64] = 93;
- e[65] = 94;
- e[66] = 95;
- e[67] = 96;
- e[68] = 97;
- e[69] = 98;
- e[70] = 99;
- e[71] = 100;
- e[72] = 101;
- e[73] = 102;
- e[74] = 103;
- e[75] = 104;
- e[76] = 105;
- e[77] = 106;
- e[78] = 107;
- e[79] = 108;
- e[80] = 109;
- e[81] = 110;
- e[82] = 111;
- e[83] = 112;
- e[84] = 113;
- e[85] = 114;
- e[86] = 115;
- e[87] = 116;
- e[88] = 117;
- e[89] = 118;
- e[90] = 119;
- e[91] = 120;
- e[92] = 121;
- e[93] = 122;
- e[94] = 123;
- e[95] = 124;
- e[96] = 125;
- e[97] = 126;
- e[98] = 196;
- e[99] = 197;
- e[100] = 199;
- e[101] = 201;
- e[102] = 209;
- e[103] = 214;
- e[104] = 220;
- e[105] = 225;
- e[106] = 224;
- e[107] = 226;
- e[108] = 228;
- e[109] = 227;
- e[110] = 229;
- e[111] = 231;
- e[112] = 233;
- e[113] = 232;
- e[114] = 234;
- e[115] = 235;
- e[116] = 237;
- e[117] = 236;
- e[118] = 238;
- e[119] = 239;
- e[120] = 241;
- e[121] = 243;
- e[122] = 242;
- e[123] = 244;
- e[124] = 246;
- e[125] = 245;
- e[126] = 250;
- e[127] = 249;
- e[128] = 251;
- e[129] = 252;
- e[130] = 8224;
- e[131] = 176;
- e[132] = 162;
- e[133] = 163;
- e[134] = 167;
- e[135] = 8226;
- e[136] = 182;
- e[137] = 223;
- e[138] = 174;
- e[139] = 169;
- e[140] = 8482;
- e[141] = 180;
- e[142] = 168;
- e[143] = 8800;
- e[144] = 198;
- e[145] = 216;
- e[146] = 8734;
- e[147] = 177;
- e[148] = 8804;
- e[149] = 8805;
- e[150] = 165;
- e[151] = 181;
- e[152] = 8706;
- e[153] = 8721;
- e[154] = 8719;
- e[156] = 8747;
- e[157] = 170;
- e[158] = 186;
- e[159] = 8486;
- e[160] = 230;
- e[161] = 248;
- e[162] = 191;
- e[163] = 161;
- e[164] = 172;
- e[165] = 8730;
- e[166] = 402;
- e[167] = 8776;
- e[168] = 8710;
- e[169] = 171;
- e[170] = 187;
- e[171] = 8230;
- e[179] = 8220;
- e[180] = 8221;
- e[181] = 8216;
- e[182] = 8217;
- e[200] = 193;
- e[203] = 205;
- e[207] = 211;
- e[210] = 218;
- e[223] = 711;
- e[224] = 321;
- e[225] = 322;
- e[226] = 352;
- e[227] = 353;
- e[228] = 381;
- e[229] = 382;
- e[233] = 221;
- e[234] = 253;
- e[252] = 263;
- e[253] = 268;
- e[254] = 269;
- e[258] = 258;
- e[260] = 260;
- e[261] = 261;
- e[265] = 280;
- e[266] = 281;
- e[267] = 282;
- e[268] = 283;
- e[269] = 313;
- e[275] = 323;
- e[276] = 324;
- e[278] = 328;
- e[283] = 344;
- e[284] = 345;
- e[285] = 346;
- e[286] = 347;
- e[292] = 367;
- e[295] = 377;
- e[296] = 378;
- e[298] = 380;
- e[305] = 963;
- e[306] = 964;
- e[307] = 966;
- e[308] = 8215;
- e[309] = 8252;
- e[310] = 8319;
- e[311] = 8359;
- e[312] = 8592;
- e[313] = 8593;
- e[337] = 9552;
- e[493] = 1039;
- e[494] = 1040;
- e[672] = 1488;
- e[673] = 1489;
- e[674] = 1490;
- e[675] = 1491;
- e[676] = 1492;
- e[677] = 1493;
- e[678] = 1494;
- e[679] = 1495;
- e[680] = 1496;
- e[681] = 1497;
- e[682] = 1498;
- e[683] = 1499;
- e[684] = 1500;
- e[685] = 1501;
- e[686] = 1502;
- e[687] = 1503;
- e[688] = 1504;
- e[689] = 1505;
- e[690] = 1506;
- e[691] = 1507;
- e[692] = 1508;
- e[693] = 1509;
- e[694] = 1510;
- e[695] = 1511;
- e[696] = 1512;
- e[697] = 1513;
- e[698] = 1514;
- e[705] = 1524;
- e[706] = 8362;
- e[710] = 64288;
- e[711] = 64298;
- e[759] = 1617;
- e[761] = 1776;
- e[763] = 1778;
- e[775] = 1652;
- e[777] = 1764;
- e[778] = 1780;
- e[779] = 1781;
- e[780] = 1782;
- e[782] = 771;
- e[783] = 64726;
- e[786] = 8363;
- e[788] = 8532;
- e[790] = 768;
- e[791] = 769;
- e[792] = 768;
- e[795] = 803;
- e[797] = 64336;
- e[798] = 64337;
- e[799] = 64342;
- e[800] = 64343;
- e[801] = 64344;
- e[802] = 64345;
- e[803] = 64362;
- e[804] = 64363;
- e[805] = 64364;
- e[2424] = 7821;
- e[2425] = 7822;
- e[2426] = 7823;
- e[2427] = 7824;
- e[2428] = 7825;
- e[2429] = 7826;
- e[2430] = 7827;
- e[2433] = 7682;
- e[2678] = 8045;
- e[2679] = 8046;
- e[2830] = 1552;
- e[2838] = 686;
- e[2840] = 751;
- e[2842] = 753;
- e[2843] = 754;
- e[2844] = 755;
- e[2846] = 757;
- e[2856] = 767;
- e[2857] = 848;
- e[2858] = 849;
- e[2862] = 853;
- e[2863] = 854;
- e[2864] = 855;
- e[2865] = 861;
- e[2866] = 862;
- e[2906] = 7460;
- e[2908] = 7462;
- e[2909] = 7463;
- e[2910] = 7464;
- e[2912] = 7466;
- e[2913] = 7467;
- e[2914] = 7468;
- e[2916] = 7470;
- e[2917] = 7471;
- e[2918] = 7472;
- e[2920] = 7474;
- e[2921] = 7475;
- e[2922] = 7476;
- e[2924] = 7478;
- e[2925] = 7479;
- e[2926] = 7480;
- e[2928] = 7482;
- e[2929] = 7483;
- e[2930] = 7484;
- e[2932] = 7486;
- e[2933] = 7487;
- e[2934] = 7488;
- e[2936] = 7490;
- e[2937] = 7491;
- e[2938] = 7492;
- e[2940] = 7494;
- e[2941] = 7495;
- e[2942] = 7496;
- e[2944] = 7498;
- e[2946] = 7500;
- e[2948] = 7502;
- e[2950] = 7504;
- e[2951] = 7505;
- e[2952] = 7506;
- e[2954] = 7508;
- e[2955] = 7509;
- e[2956] = 7510;
- e[2958] = 7512;
- e[2959] = 7513;
- e[2960] = 7514;
- e[2962] = 7516;
- e[2963] = 7517;
- e[2964] = 7518;
- e[2966] = 7520;
- e[2967] = 7521;
- e[2968] = 7522;
- e[2970] = 7524;
- e[2971] = 7525;
- e[2972] = 7526;
- e[2974] = 7528;
- e[2975] = 7529;
- e[2976] = 7530;
- e[2978] = 1537;
- e[2979] = 1538;
- e[2980] = 1539;
- e[2982] = 1549;
- e[2983] = 1551;
- e[2984] = 1552;
- e[2986] = 1554;
- e[2987] = 1555;
- e[2988] = 1556;
- e[2990] = 1623;
- e[2991] = 1624;
- e[2995] = 1775;
- e[2999] = 1791;
- e[3002] = 64290;
- e[3003] = 64291;
- e[3004] = 64292;
- e[3006] = 64294;
- e[3007] = 64295;
- e[3008] = 64296;
- e[3011] = 1900;
- e[3014] = 8223;
- e[3015] = 8244;
- e[3017] = 7532;
- e[3018] = 7533;
- e[3019] = 7534;
- e[3075] = 7590;
- e[3076] = 7591;
- e[3079] = 7594;
- e[3080] = 7595;
- e[3083] = 7598;
- e[3084] = 7599;
- e[3087] = 7602;
- e[3088] = 7603;
- e[3091] = 7606;
- e[3092] = 7607;
- e[3095] = 7610;
- e[3096] = 7611;
- e[3099] = 7614;
- e[3100] = 7615;
- e[3103] = 7618;
- e[3104] = 7619;
- e[3107] = 8337;
- e[3108] = 8338;
- e[3116] = 1884;
- e[3119] = 1885;
- e[3120] = 1885;
- e[3123] = 1886;
- e[3124] = 1886;
- e[3127] = 1887;
- e[3128] = 1887;
- e[3131] = 1888;
- e[3132] = 1888;
- e[3135] = 1889;
- e[3136] = 1889;
- e[3139] = 1890;
- e[3140] = 1890;
- e[3143] = 1891;
- e[3144] = 1891;
- e[3147] = 1892;
- e[3148] = 1892;
- e[3153] = 580;
- e[3154] = 581;
- e[3157] = 584;
- e[3158] = 585;
- e[3161] = 588;
- e[3162] = 589;
- e[3165] = 891;
- e[3166] = 892;
- e[3169] = 1274;
- e[3170] = 1275;
- e[3173] = 1278;
- e[3174] = 1279;
- e[3181] = 7622;
- e[3182] = 7623;
- e[3282] = 11799;
- e[3316] = 578;
- e[3379] = 42785;
- e[3393] = 1159;
- e[3416] = 8377;
- });
- t.getGlyphMapForStandardFonts = h;
- const u = (0, r.getLookupTableFactory)(function (e) {
- e[227] = 322;
- e[264] = 261;
- e[291] = 346;
- });
- t.getSupplementalGlyphMapForArialBlack = u;
- const d = (0, r.getLookupTableFactory)(function (e) {
- e[1] = 32;
- e[4] = 65;
- e[5] = 192;
- e[6] = 193;
- e[9] = 196;
- e[17] = 66;
- e[18] = 67;
- e[21] = 268;
- e[24] = 68;
- e[28] = 69;
- e[29] = 200;
- e[30] = 201;
- e[32] = 282;
- e[38] = 70;
- e[39] = 71;
- e[44] = 72;
- e[47] = 73;
- e[48] = 204;
- e[49] = 205;
- e[58] = 74;
- e[60] = 75;
- e[62] = 76;
- e[68] = 77;
- e[69] = 78;
- e[75] = 79;
- e[76] = 210;
- e[80] = 214;
- e[87] = 80;
- e[89] = 81;
- e[90] = 82;
- e[92] = 344;
- e[94] = 83;
- e[97] = 352;
- e[100] = 84;
- e[104] = 85;
- e[109] = 220;
- e[115] = 86;
- e[116] = 87;
- e[121] = 88;
- e[122] = 89;
- e[124] = 221;
- e[127] = 90;
- e[129] = 381;
- e[258] = 97;
- e[259] = 224;
- e[260] = 225;
- e[263] = 228;
- e[268] = 261;
- e[271] = 98;
- e[272] = 99;
- e[273] = 263;
- e[275] = 269;
- e[282] = 100;
- e[286] = 101;
- e[287] = 232;
- e[288] = 233;
- e[290] = 283;
- e[295] = 281;
- e[296] = 102;
- e[336] = 103;
- e[346] = 104;
- e[349] = 105;
- e[350] = 236;
- e[351] = 237;
- e[361] = 106;
- e[364] = 107;
- e[367] = 108;
- e[371] = 322;
- e[373] = 109;
- e[374] = 110;
- e[381] = 111;
- e[382] = 242;
- e[383] = 243;
- e[386] = 246;
- e[393] = 112;
- e[395] = 113;
- e[396] = 114;
- e[398] = 345;
- e[400] = 115;
- e[401] = 347;
- e[403] = 353;
- e[410] = 116;
- e[437] = 117;
- e[442] = 252;
- e[448] = 118;
- e[449] = 119;
- e[454] = 120;
- e[455] = 121;
- e[457] = 253;
- e[460] = 122;
- e[462] = 382;
- e[463] = 380;
- e[853] = 44;
- e[855] = 58;
- e[856] = 46;
- e[876] = 47;
- e[878] = 45;
- e[882] = 45;
- e[894] = 40;
- e[895] = 41;
- e[896] = 91;
- e[897] = 93;
- e[923] = 64;
- e[1004] = 48;
- e[1005] = 49;
- e[1006] = 50;
- e[1007] = 51;
- e[1008] = 52;
- e[1009] = 53;
- e[1010] = 54;
- e[1011] = 55;
- e[1012] = 56;
- e[1013] = 57;
- e[1081] = 37;
- e[1085] = 43;
- e[1086] = 45;
- });
- t.getSupplementalGlyphMapForCalibri = d;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.ToUnicodeMap = t.IdentityToUnicodeMap = void 0;
- var r = a(2);
- t.ToUnicodeMap = class ToUnicodeMap {
- constructor(e = []) {
- this._map = e;
- }
- get length() {
- return this._map.length;
- }
- forEach(e) {
- for (const t in this._map) e(t, this._map[t].charCodeAt(0));
- }
- has(e) {
- return void 0 !== this._map[e];
- }
- get(e) {
- return this._map[e];
- }
- charCodeOf(e) {
- const t = this._map;
- if (t.length <= 65536) return t.indexOf(e);
- for (const a in t) if (t[a] === e) return 0 | a;
- return -1;
- }
- amend(e) {
- for (const t in e) this._map[t] = e[t];
- }
- };
- t.IdentityToUnicodeMap = class IdentityToUnicodeMap {
- constructor(e, t) {
- this.firstChar = e;
- this.lastChar = t;
- }
- get length() {
- return this.lastChar + 1 - this.firstChar;
- }
- forEach(e) {
- for (let t = this.firstChar, a = this.lastChar; t <= a; t++) e(t, t);
- }
- has(e) {
- return this.firstChar <= e && e <= this.lastChar;
- }
- get(e) {
- if (this.firstChar <= e && e <= this.lastChar) return String.fromCharCode(e);
- }
- charCodeOf(e) {
- return Number.isInteger(e) && e >= this.firstChar && e <= this.lastChar ? e : -1;
- }
- amend(e) {
- (0, r.unreachable)('Should not call amend()');
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.CFFFont = void 0;
- var r = a(35),
- i = a(38),
- n = a(2);
- t.CFFFont = class CFFFont {
- constructor(e, t) {
- this.properties = t;
- const a = new r.CFFParser(e, t, i.SEAC_ANALYSIS_ENABLED);
- this.cff = a.parse();
- this.cff.duplicateFirstGlyph();
- const s = new r.CFFCompiler(this.cff);
- this.seacs = this.cff.seacs;
- try {
- this.data = s.compile();
- } catch (a) {
- (0, n.warn)('Failed to compile font ' + t.loadedName);
- this.data = e;
- }
- this._createBuiltInEncoding();
- }
- get numGlyphs() {
- return this.cff.charStrings.count;
- }
- getCharset() {
- return this.cff.charset.charset;
- }
- getGlyphMapping() {
- const e = this.cff,
- t = this.properties,
- { cidToGidMap: a, cMap: r } = t,
- n = e.charset.charset;
- let s, o;
- if (t.composite) {
- let t, i;
- if (a && a.length > 0) {
- t = Object.create(null);
- for (let e = 0, r = a.length; e < r; e++) {
- const r = a[e];
- void 0 !== r && (t[r] = e);
- }
- }
- s = Object.create(null);
- if (e.isCIDFont)
- for (o = 0; o < n.length; o++) {
- const e = n[o];
- i = r.charCodeOf(e);
- t && void 0 !== t[i] && (i = t[i]);
- s[i] = o;
- }
- else
- for (o = 0; o < e.charStrings.count; o++) {
- i = r.charCodeOf(o);
- s[i] = o;
- }
- return s;
- }
- let c = e.encoding ? e.encoding.encoding : null;
- t.isInternalFont && (c = t.defaultEncoding);
- s = (0, i.type1FontGlyphMapping)(t, c, n);
- return s;
- }
- hasGlyphId(e) {
- return this.cff.hasGlyphId(e);
- }
- _createBuiltInEncoding() {
- const { charset: e, encoding: t } = this.cff;
- if (!e || !t) return;
- const a = e.charset,
- r = t.encoding,
- i = [];
- for (const e in r) {
- const t = r[e];
- if (t >= 0) {
- const r = a[t];
- r && (i[e] = r);
- }
- }
- i.length > 0 && (this.properties.builtInEncoding = i);
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.FontRendererFactory = void 0;
- var r = a(2),
- i = a(35),
- n = a(39),
- s = a(37),
- o = a(8);
- function getUint32(e, t) {
- return ((e[t] << 24) | (e[t + 1] << 16) | (e[t + 2] << 8) | e[t + 3]) >>> 0;
- }
- function getUint16(e, t) {
- return (e[t] << 8) | e[t + 1];
- }
- function getInt16(e, t) {
- return ((e[t] << 24) | (e[t + 1] << 16)) >> 16;
- }
- function getInt8(e, t) {
- return (e[t] << 24) >> 24;
- }
- function getFloat214(e, t) {
- return getInt16(e, t) / 16384;
- }
- function getSubroutineBias(e) {
- const t = e.length;
- let a = 32768;
- t < 1240 ? (a = 107) : t < 33900 && (a = 1131);
- return a;
- }
- function parseCmap(e, t, a) {
- const i = 1 === getUint16(e, t + 2) ? getUint32(e, t + 8) : getUint32(e, t + 16),
- n = getUint16(e, t + i);
- let s, o, c;
- if (4 === n) {
- getUint16(e, t + i + 2);
- const a = getUint16(e, t + i + 6) >> 1;
- o = t + i + 14;
- s = [];
- for (c = 0; c < a; c++, o += 2) s[c] = { end: getUint16(e, o) };
- o += 2;
- for (c = 0; c < a; c++, o += 2) s[c].start = getUint16(e, o);
- for (c = 0; c < a; c++, o += 2) s[c].idDelta = getUint16(e, o);
- for (c = 0; c < a; c++, o += 2) {
- let t = getUint16(e, o);
- if (0 !== t) {
- s[c].ids = [];
- for (let a = 0, r = s[c].end - s[c].start + 1; a < r; a++) {
- s[c].ids[a] = getUint16(e, o + t);
- t += 2;
- }
- }
- }
- return s;
- }
- if (12 === n) {
- const a = getUint32(e, t + i + 12);
- o = t + i + 16;
- s = [];
- for (c = 0; c < a; c++) {
- t = getUint32(e, o);
- s.push({ start: t, end: getUint32(e, o + 4), idDelta: getUint32(e, o + 8) - t });
- o += 12;
- }
- return s;
- }
- throw new r.FormatError(`unsupported cmap: ${n}`);
- }
- function parseCff(e, t, a, r) {
- const n = new i.CFFParser(new o.Stream(e, t, a - t), {}, r).parse();
- return {
- glyphs: n.charStrings.objects,
- subrs:
- n.topDict.privateDict &&
- n.topDict.privateDict.subrsIndex &&
- n.topDict.privateDict.subrsIndex.objects,
- gsubrs: n.globalSubrIndex && n.globalSubrIndex.objects,
- isCFFCIDFont: n.isCIDFont,
- fdSelect: n.fdSelect,
- fdArray: n.fdArray,
- };
- }
- function lookupCmap(e, t) {
- const a = t.codePointAt(0);
- let r = 0,
- i = 0,
- n = e.length - 1;
- for (; i < n; ) {
- const t = (i + n + 1) >> 1;
- a < e[t].start ? (n = t - 1) : (i = t);
- }
- e[i].start <= a &&
- a <= e[i].end &&
- (r = (e[i].idDelta + (e[i].ids ? e[i].ids[a - e[i].start] : a)) & 65535);
- return { charCode: a, glyphId: r };
- }
- function compileGlyf(e, t, a) {
- function moveTo(e, a) {
- t.push({ cmd: 'moveTo', args: [e, a] });
- }
- function lineTo(e, a) {
- t.push({ cmd: 'lineTo', args: [e, a] });
- }
- function quadraticCurveTo(e, a, r, i) {
- t.push({ cmd: 'quadraticCurveTo', args: [e, a, r, i] });
- }
- let r = 0;
- const i = getInt16(e, r);
- let n,
- s = 0,
- o = 0;
- r += 10;
- if (i < 0)
- do {
- n = getUint16(e, r);
- const i = getUint16(e, r + 2);
- r += 4;
- let c, l;
- if (1 & n) {
- if (2 & n) {
- c = getInt16(e, r);
- l = getInt16(e, r + 2);
- } else {
- c = getUint16(e, r);
- l = getUint16(e, r + 2);
- }
- r += 4;
- } else if (2 & n) {
- c = getInt8(e, r++);
- l = getInt8(e, r++);
- } else {
- c = e[r++];
- l = e[r++];
- }
- if (2 & n) {
- s = c;
- o = l;
- } else {
- s = 0;
- o = 0;
- }
- let h = 1,
- u = 1,
- d = 0,
- f = 0;
- if (8 & n) {
- h = u = getFloat214(e, r);
- r += 2;
- } else if (64 & n) {
- h = getFloat214(e, r);
- u = getFloat214(e, r + 2);
- r += 4;
- } else if (128 & n) {
- h = getFloat214(e, r);
- d = getFloat214(e, r + 2);
- f = getFloat214(e, r + 4);
- u = getFloat214(e, r + 6);
- r += 8;
- }
- const g = a.glyphs[i];
- if (g) {
- t.push({ cmd: 'save' }, { cmd: 'transform', args: [h, d, f, u, s, o] });
- compileGlyf(g, t, a);
- t.push({ cmd: 'restore' });
- }
- } while (32 & n);
- else {
- const t = [];
- let a, c;
- for (a = 0; a < i; a++) {
- t.push(getUint16(e, r));
- r += 2;
- }
- r += 2 + getUint16(e, r);
- const l = t.at(-1) + 1,
- h = [];
- for (; h.length < l; ) {
- n = e[r++];
- let t = 1;
- 8 & n && (t += e[r++]);
- for (; t-- > 0; ) h.push({ flags: n });
- }
- for (a = 0; a < l; a++) {
- switch (18 & h[a].flags) {
- case 0:
- s += getInt16(e, r);
- r += 2;
- break;
- case 2:
- s -= e[r++];
- break;
- case 18:
- s += e[r++];
- }
- h[a].x = s;
- }
- for (a = 0; a < l; a++) {
- switch (36 & h[a].flags) {
- case 0:
- o += getInt16(e, r);
- r += 2;
- break;
- case 4:
- o -= e[r++];
- break;
- case 36:
- o += e[r++];
- }
- h[a].y = o;
- }
- let u = 0;
- for (r = 0; r < i; r++) {
- const e = t[r],
- i = h.slice(u, e + 1);
- if (1 & i[0].flags) i.push(i[0]);
- else if (1 & i.at(-1).flags) i.unshift(i.at(-1));
- else {
- const e = {
- flags: 1,
- x: (i[0].x + i.at(-1).x) / 2,
- y: (i[0].y + i.at(-1).y) / 2,
- };
- i.unshift(e);
- i.push(e);
- }
- moveTo(i[0].x, i[0].y);
- for (a = 1, c = i.length; a < c; a++)
- if (1 & i[a].flags) lineTo(i[a].x, i[a].y);
- else if (1 & i[a + 1].flags) {
- quadraticCurveTo(i[a].x, i[a].y, i[a + 1].x, i[a + 1].y);
- a++;
- } else
- quadraticCurveTo(
- i[a].x,
- i[a].y,
- (i[a].x + i[a + 1].x) / 2,
- (i[a].y + i[a + 1].y) / 2,
- );
- u = e + 1;
- }
- }
- }
- function compileCharString(e, t, a, i) {
- function moveTo(e, a) {
- t.push({ cmd: 'moveTo', args: [e, a] });
- }
- function lineTo(e, a) {
- t.push({ cmd: 'lineTo', args: [e, a] });
- }
- function bezierCurveTo(e, a, r, i, n, s) {
- t.push({ cmd: 'bezierCurveTo', args: [e, a, r, i, n, s] });
- }
- const n = [];
- let o = 0,
- c = 0,
- l = 0;
- !(function parse(e) {
- let h = 0;
- for (; h < e.length; ) {
- let u,
- d,
- f,
- g,
- p,
- m,
- b,
- y,
- w,
- S = !1,
- x = e[h++];
- switch (x) {
- case 1:
- case 3:
- case 18:
- case 23:
- l += n.length >> 1;
- S = !0;
- break;
- case 4:
- c += n.pop();
- moveTo(o, c);
- S = !0;
- break;
- case 5:
- for (; n.length > 0; ) {
- o += n.shift();
- c += n.shift();
- lineTo(o, c);
- }
- break;
- case 6:
- for (; n.length > 0; ) {
- o += n.shift();
- lineTo(o, c);
- if (0 === n.length) break;
- c += n.shift();
- lineTo(o, c);
- }
- break;
- case 7:
- for (; n.length > 0; ) {
- c += n.shift();
- lineTo(o, c);
- if (0 === n.length) break;
- o += n.shift();
- lineTo(o, c);
- }
- break;
- case 8:
- for (; n.length > 0; ) {
- u = o + n.shift();
- f = c + n.shift();
- d = u + n.shift();
- g = f + n.shift();
- o = d + n.shift();
- c = g + n.shift();
- bezierCurveTo(u, f, d, g, o, c);
- }
- break;
- case 10:
- y = n.pop();
- w = null;
- if (a.isCFFCIDFont) {
- const e = a.fdSelect.getFDIndex(i);
- if (e >= 0 && e < a.fdArray.length) {
- const t = a.fdArray[e];
- let r;
- t.privateDict &&
- t.privateDict.subrsIndex &&
- (r = t.privateDict.subrsIndex.objects);
- if (r) {
- y += getSubroutineBias(r);
- w = r[y];
- }
- } else (0, r.warn)('Invalid fd index for glyph index.');
- } else w = a.subrs[y + a.subrsBias];
- w && parse(w);
- break;
- case 11:
- return;
- case 12:
- x = e[h++];
- switch (x) {
- case 34:
- u = o + n.shift();
- d = u + n.shift();
- p = c + n.shift();
- o = d + n.shift();
- bezierCurveTo(u, c, d, p, o, p);
- u = o + n.shift();
- d = u + n.shift();
- o = d + n.shift();
- bezierCurveTo(u, p, d, c, o, c);
- break;
- case 35:
- u = o + n.shift();
- f = c + n.shift();
- d = u + n.shift();
- g = f + n.shift();
- o = d + n.shift();
- c = g + n.shift();
- bezierCurveTo(u, f, d, g, o, c);
- u = o + n.shift();
- f = c + n.shift();
- d = u + n.shift();
- g = f + n.shift();
- o = d + n.shift();
- c = g + n.shift();
- bezierCurveTo(u, f, d, g, o, c);
- n.pop();
- break;
- case 36:
- u = o + n.shift();
- p = c + n.shift();
- d = u + n.shift();
- m = p + n.shift();
- o = d + n.shift();
- bezierCurveTo(u, p, d, m, o, m);
- u = o + n.shift();
- d = u + n.shift();
- b = m + n.shift();
- o = d + n.shift();
- bezierCurveTo(u, m, d, b, o, c);
- break;
- case 37:
- const e = o,
- t = c;
- u = o + n.shift();
- f = c + n.shift();
- d = u + n.shift();
- g = f + n.shift();
- o = d + n.shift();
- c = g + n.shift();
- bezierCurveTo(u, f, d, g, o, c);
- u = o + n.shift();
- f = c + n.shift();
- d = u + n.shift();
- g = f + n.shift();
- o = d;
- c = g;
- Math.abs(o - e) > Math.abs(c - t) ? (o += n.shift()) : (c += n.shift());
- bezierCurveTo(u, f, d, g, o, c);
- break;
- default:
- throw new r.FormatError(`unknown operator: 12 ${x}`);
- }
- break;
- case 14:
- if (n.length >= 4) {
- const e = n.pop(),
- r = n.pop();
- c = n.pop();
- o = n.pop();
- t.push({ cmd: 'save' }, { cmd: 'translate', args: [o, c] });
- let i = lookupCmap(
- a.cmap,
- String.fromCharCode(a.glyphNameMap[s.StandardEncoding[e]]),
- );
- compileCharString(a.glyphs[i.glyphId], t, a, i.glyphId);
- t.push({ cmd: 'restore' });
- i = lookupCmap(
- a.cmap,
- String.fromCharCode(a.glyphNameMap[s.StandardEncoding[r]]),
- );
- compileCharString(a.glyphs[i.glyphId], t, a, i.glyphId);
- }
- return;
- case 19:
- case 20:
- l += n.length >> 1;
- h += (l + 7) >> 3;
- S = !0;
- break;
- case 21:
- c += n.pop();
- o += n.pop();
- moveTo(o, c);
- S = !0;
- break;
- case 22:
- o += n.pop();
- moveTo(o, c);
- S = !0;
- break;
- case 24:
- for (; n.length > 2; ) {
- u = o + n.shift();
- f = c + n.shift();
- d = u + n.shift();
- g = f + n.shift();
- o = d + n.shift();
- c = g + n.shift();
- bezierCurveTo(u, f, d, g, o, c);
- }
- o += n.shift();
- c += n.shift();
- lineTo(o, c);
- break;
- case 25:
- for (; n.length > 6; ) {
- o += n.shift();
- c += n.shift();
- lineTo(o, c);
- }
- u = o + n.shift();
- f = c + n.shift();
- d = u + n.shift();
- g = f + n.shift();
- o = d + n.shift();
- c = g + n.shift();
- bezierCurveTo(u, f, d, g, o, c);
- break;
- case 26:
- n.length % 2 && (o += n.shift());
- for (; n.length > 0; ) {
- u = o;
- f = c + n.shift();
- d = u + n.shift();
- g = f + n.shift();
- o = d;
- c = g + n.shift();
- bezierCurveTo(u, f, d, g, o, c);
- }
- break;
- case 27:
- n.length % 2 && (c += n.shift());
- for (; n.length > 0; ) {
- u = o + n.shift();
- f = c;
- d = u + n.shift();
- g = f + n.shift();
- o = d + n.shift();
- c = g;
- bezierCurveTo(u, f, d, g, o, c);
- }
- break;
- case 28:
- n.push(((e[h] << 24) | (e[h + 1] << 16)) >> 16);
- h += 2;
- break;
- case 29:
- y = n.pop() + a.gsubrsBias;
- w = a.gsubrs[y];
- w && parse(w);
- break;
- case 30:
- for (; n.length > 0; ) {
- u = o;
- f = c + n.shift();
- d = u + n.shift();
- g = f + n.shift();
- o = d + n.shift();
- c = g + (1 === n.length ? n.shift() : 0);
- bezierCurveTo(u, f, d, g, o, c);
- if (0 === n.length) break;
- u = o + n.shift();
- f = c;
- d = u + n.shift();
- g = f + n.shift();
- c = g + n.shift();
- o = d + (1 === n.length ? n.shift() : 0);
- bezierCurveTo(u, f, d, g, o, c);
- }
- break;
- case 31:
- for (; n.length > 0; ) {
- u = o + n.shift();
- f = c;
- d = u + n.shift();
- g = f + n.shift();
- c = g + n.shift();
- o = d + (1 === n.length ? n.shift() : 0);
- bezierCurveTo(u, f, d, g, o, c);
- if (0 === n.length) break;
- u = o;
- f = c + n.shift();
- d = u + n.shift();
- g = f + n.shift();
- o = d + n.shift();
- c = g + (1 === n.length ? n.shift() : 0);
- bezierCurveTo(u, f, d, g, o, c);
- }
- break;
- default:
- if (x < 32) throw new r.FormatError(`unknown operator: ${x}`);
- if (x < 247) n.push(x - 139);
- else if (x < 251) n.push(256 * (x - 247) + e[h++] + 108);
- else if (x < 255) n.push(256 * -(x - 251) - e[h++] - 108);
- else {
- n.push(
- ((e[h] << 24) | (e[h + 1] << 16) | (e[h + 2] << 8) | e[h + 3]) / 65536,
- );
- h += 4;
- }
- }
- S && (n.length = 0);
- }
- })(e);
- }
- const c = [];
- class CompiledFont {
- constructor(e) {
- this.constructor === CompiledFont &&
- (0, r.unreachable)('Cannot initialize CompiledFont.');
- this.fontMatrix = e;
- this.compiledGlyphs = Object.create(null);
- this.compiledCharCodeToGlyphId = Object.create(null);
- }
- getPathJs(e) {
- const { charCode: t, glyphId: a } = lookupCmap(this.cmap, e);
- let r = this.compiledGlyphs[a];
- if (!r)
- try {
- r = this.compileGlyph(this.glyphs[a], a);
- this.compiledGlyphs[a] = r;
- } catch (e) {
- this.compiledGlyphs[a] = c;
- void 0 === this.compiledCharCodeToGlyphId[t] &&
- (this.compiledCharCodeToGlyphId[t] = a);
- throw e;
- }
- void 0 === this.compiledCharCodeToGlyphId[t] &&
- (this.compiledCharCodeToGlyphId[t] = a);
- return r;
- }
- compileGlyph(e, t) {
- if (!e || 0 === e.length || 14 === e[0]) return c;
- let a = this.fontMatrix;
- if (this.isCFFCIDFont) {
- const e = this.fdSelect.getFDIndex(t);
- if (e >= 0 && e < this.fdArray.length) {
- a = this.fdArray[e].getByName('FontMatrix') || r.FONT_IDENTITY_MATRIX;
- } else (0, r.warn)('Invalid fd index for glyph index.');
- }
- const i = [
- { cmd: 'save' },
- { cmd: 'transform', args: a.slice() },
- { cmd: 'scale', args: ['size', '-size'] },
- ];
- this.compileGlyphImpl(e, i, t);
- i.push({ cmd: 'restore' });
- return i;
- }
- compileGlyphImpl() {
- (0, r.unreachable)('Children classes should implement this.');
- }
- hasBuiltPath(e) {
- const { charCode: t, glyphId: a } = lookupCmap(this.cmap, e);
- return (
- void 0 !== this.compiledGlyphs[a] && void 0 !== this.compiledCharCodeToGlyphId[t]
- );
- }
- }
- class TrueTypeCompiled extends CompiledFont {
- constructor(e, t, a) {
- super(a || [488e-6, 0, 0, 488e-6, 0, 0]);
- this.glyphs = e;
- this.cmap = t;
- }
- compileGlyphImpl(e, t) {
- compileGlyf(e, t, this);
- }
- }
- class Type2Compiled extends CompiledFont {
- constructor(e, t, a, r) {
- super(a || [0.001, 0, 0, 0.001, 0, 0]);
- this.glyphs = e.glyphs;
- this.gsubrs = e.gsubrs || [];
- this.subrs = e.subrs || [];
- this.cmap = t;
- this.glyphNameMap = r || (0, n.getGlyphsUnicode)();
- this.gsubrsBias = getSubroutineBias(this.gsubrs);
- this.subrsBias = getSubroutineBias(this.subrs);
- this.isCFFCIDFont = e.isCFFCIDFont;
- this.fdSelect = e.fdSelect;
- this.fdArray = e.fdArray;
- }
- compileGlyphImpl(e, t, a) {
- compileCharString(e, t, this, a);
- }
- }
- t.FontRendererFactory = class FontRendererFactory {
- static create(e, t) {
- const a = new Uint8Array(e.data);
- let i, n, s, o, c, l;
- const h = getUint16(a, 4);
- for (let e = 0, u = 12; e < h; e++, u += 16) {
- const e = (0, r.bytesToString)(a.subarray(u, u + 4)),
- h = getUint32(a, u + 8),
- d = getUint32(a, u + 12);
- switch (e) {
- case 'cmap':
- i = parseCmap(a, h);
- break;
- case 'glyf':
- n = a.subarray(h, h + d);
- break;
- case 'loca':
- s = a.subarray(h, h + d);
- break;
- case 'head':
- l = getUint16(a, h + 18);
- c = getUint16(a, h + 50);
- break;
- case 'CFF ':
- o = parseCff(a, h, h + d, t);
- }
- }
- if (n) {
- const t = l ? [1 / l, 0, 0, 1 / l, 0, 0] : e.fontMatrix;
- return new TrueTypeCompiled(
- (function parseGlyfTable(e, t, a) {
- let r, i;
- if (a) {
- r = 4;
- i = getUint32;
- } else {
- r = 2;
- i = (e, t) => 2 * getUint16(e, t);
- }
- const n = [];
- let s = i(t, 0);
- for (let a = r; a < t.length; a += r) {
- const r = i(t, a);
- n.push(e.subarray(s, r));
- s = r;
- }
- return n;
- })(n, s, c),
- i,
- t,
- );
- }
- return new Type2Compiled(o, i, e.fontMatrix, e.glyphNameMap);
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.getMetrics = t.getFontBasicMetrics = void 0;
- var r = a(3);
- const i = (0, r.getLookupTableFactory)(function (e) {
- e.Courier = 600;
- e['Courier-Bold'] = 600;
- e['Courier-BoldOblique'] = 600;
- e['Courier-Oblique'] = 600;
- e.Helvetica = (0, r.getLookupTableFactory)(function (e) {
- e.space = 278;
- e.exclam = 278;
- e.quotedbl = 355;
- e.numbersign = 556;
- e.dollar = 556;
- e.percent = 889;
- e.ampersand = 667;
- e.quoteright = 222;
- e.parenleft = 333;
- e.parenright = 333;
- e.asterisk = 389;
- e.plus = 584;
- e.comma = 278;
- e.hyphen = 333;
- e.period = 278;
- e.slash = 278;
- e.zero = 556;
- e.one = 556;
- e.two = 556;
- e.three = 556;
- e.four = 556;
- e.five = 556;
- e.six = 556;
- e.seven = 556;
- e.eight = 556;
- e.nine = 556;
- e.colon = 278;
- e.semicolon = 278;
- e.less = 584;
- e.equal = 584;
- e.greater = 584;
- e.question = 556;
- e.at = 1015;
- e.A = 667;
- e.B = 667;
- e.C = 722;
- e.D = 722;
- e.E = 667;
- e.F = 611;
- e.G = 778;
- e.H = 722;
- e.I = 278;
- e.J = 500;
- e.K = 667;
- e.L = 556;
- e.M = 833;
- e.N = 722;
- e.O = 778;
- e.P = 667;
- e.Q = 778;
- e.R = 722;
- e.S = 667;
- e.T = 611;
- e.U = 722;
- e.V = 667;
- e.W = 944;
- e.X = 667;
- e.Y = 667;
- e.Z = 611;
- e.bracketleft = 278;
- e.backslash = 278;
- e.bracketright = 278;
- e.asciicircum = 469;
- e.underscore = 556;
- e.quoteleft = 222;
- e.a = 556;
- e.b = 556;
- e.c = 500;
- e.d = 556;
- e.e = 556;
- e.f = 278;
- e.g = 556;
- e.h = 556;
- e.i = 222;
- e.j = 222;
- e.k = 500;
- e.l = 222;
- e.m = 833;
- e.n = 556;
- e.o = 556;
- e.p = 556;
- e.q = 556;
- e.r = 333;
- e.s = 500;
- e.t = 278;
- e.u = 556;
- e.v = 500;
- e.w = 722;
- e.x = 500;
- e.y = 500;
- e.z = 500;
- e.braceleft = 334;
- e.bar = 260;
- e.braceright = 334;
- e.asciitilde = 584;
- e.exclamdown = 333;
- e.cent = 556;
- e.sterling = 556;
- e.fraction = 167;
- e.yen = 556;
- e.florin = 556;
- e.section = 556;
- e.currency = 556;
- e.quotesingle = 191;
- e.quotedblleft = 333;
- e.guillemotleft = 556;
- e.guilsinglleft = 333;
- e.guilsinglright = 333;
- e.fi = 500;
- e.fl = 500;
- e.endash = 556;
- e.dagger = 556;
- e.daggerdbl = 556;
- e.periodcentered = 278;
- e.paragraph = 537;
- e.bullet = 350;
- e.quotesinglbase = 222;
- e.quotedblbase = 333;
- e.quotedblright = 333;
- e.guillemotright = 556;
- e.ellipsis = 1e3;
- e.perthousand = 1e3;
- e.questiondown = 611;
- e.grave = 333;
- e.acute = 333;
- e.circumflex = 333;
- e.tilde = 333;
- e.macron = 333;
- e.breve = 333;
- e.dotaccent = 333;
- e.dieresis = 333;
- e.ring = 333;
- e.cedilla = 333;
- e.hungarumlaut = 333;
- e.ogonek = 333;
- e.caron = 333;
- e.emdash = 1e3;
- e.AE = 1e3;
- e.ordfeminine = 370;
- e.Lslash = 556;
- e.Oslash = 778;
- e.OE = 1e3;
- e.ordmasculine = 365;
- e.ae = 889;
- e.dotlessi = 278;
- e.lslash = 222;
- e.oslash = 611;
- e.oe = 944;
- e.germandbls = 611;
- e.Idieresis = 278;
- e.eacute = 556;
- e.abreve = 556;
- e.uhungarumlaut = 556;
- e.ecaron = 556;
- e.Ydieresis = 667;
- e.divide = 584;
- e.Yacute = 667;
- e.Acircumflex = 667;
- e.aacute = 556;
- e.Ucircumflex = 722;
- e.yacute = 500;
- e.scommaaccent = 500;
- e.ecircumflex = 556;
- e.Uring = 722;
- e.Udieresis = 722;
- e.aogonek = 556;
- e.Uacute = 722;
- e.uogonek = 556;
- e.Edieresis = 667;
- e.Dcroat = 722;
- e.commaaccent = 250;
- e.copyright = 737;
- e.Emacron = 667;
- e.ccaron = 500;
- e.aring = 556;
- e.Ncommaaccent = 722;
- e.lacute = 222;
- e.agrave = 556;
- e.Tcommaaccent = 611;
- e.Cacute = 722;
- e.atilde = 556;
- e.Edotaccent = 667;
- e.scaron = 500;
- e.scedilla = 500;
- e.iacute = 278;
- e.lozenge = 471;
- e.Rcaron = 722;
- e.Gcommaaccent = 778;
- e.ucircumflex = 556;
- e.acircumflex = 556;
- e.Amacron = 667;
- e.rcaron = 333;
- e.ccedilla = 500;
- e.Zdotaccent = 611;
- e.Thorn = 667;
- e.Omacron = 778;
- e.Racute = 722;
- e.Sacute = 667;
- e.dcaron = 643;
- e.Umacron = 722;
- e.uring = 556;
- e.threesuperior = 333;
- e.Ograve = 778;
- e.Agrave = 667;
- e.Abreve = 667;
- e.multiply = 584;
- e.uacute = 556;
- e.Tcaron = 611;
- e.partialdiff = 476;
- e.ydieresis = 500;
- e.Nacute = 722;
- e.icircumflex = 278;
- e.Ecircumflex = 667;
- e.adieresis = 556;
- e.edieresis = 556;
- e.cacute = 500;
- e.nacute = 556;
- e.umacron = 556;
- e.Ncaron = 722;
- e.Iacute = 278;
- e.plusminus = 584;
- e.brokenbar = 260;
- e.registered = 737;
- e.Gbreve = 778;
- e.Idotaccent = 278;
- e.summation = 600;
- e.Egrave = 667;
- e.racute = 333;
- e.omacron = 556;
- e.Zacute = 611;
- e.Zcaron = 611;
- e.greaterequal = 549;
- e.Eth = 722;
- e.Ccedilla = 722;
- e.lcommaaccent = 222;
- e.tcaron = 317;
- e.eogonek = 556;
- e.Uogonek = 722;
- e.Aacute = 667;
- e.Adieresis = 667;
- e.egrave = 556;
- e.zacute = 500;
- e.iogonek = 222;
- e.Oacute = 778;
- e.oacute = 556;
- e.amacron = 556;
- e.sacute = 500;
- e.idieresis = 278;
- e.Ocircumflex = 778;
- e.Ugrave = 722;
- e.Delta = 612;
- e.thorn = 556;
- e.twosuperior = 333;
- e.Odieresis = 778;
- e.mu = 556;
- e.igrave = 278;
- e.ohungarumlaut = 556;
- e.Eogonek = 667;
- e.dcroat = 556;
- e.threequarters = 834;
- e.Scedilla = 667;
- e.lcaron = 299;
- e.Kcommaaccent = 667;
- e.Lacute = 556;
- e.trademark = 1e3;
- e.edotaccent = 556;
- e.Igrave = 278;
- e.Imacron = 278;
- e.Lcaron = 556;
- e.onehalf = 834;
- e.lessequal = 549;
- e.ocircumflex = 556;
- e.ntilde = 556;
- e.Uhungarumlaut = 722;
- e.Eacute = 667;
- e.emacron = 556;
- e.gbreve = 556;
- e.onequarter = 834;
- e.Scaron = 667;
- e.Scommaaccent = 667;
- e.Ohungarumlaut = 778;
- e.degree = 400;
- e.ograve = 556;
- e.Ccaron = 722;
- e.ugrave = 556;
- e.radical = 453;
- e.Dcaron = 722;
- e.rcommaaccent = 333;
- e.Ntilde = 722;
- e.otilde = 556;
- e.Rcommaaccent = 722;
- e.Lcommaaccent = 556;
- e.Atilde = 667;
- e.Aogonek = 667;
- e.Aring = 667;
- e.Otilde = 778;
- e.zdotaccent = 500;
- e.Ecaron = 667;
- e.Iogonek = 278;
- e.kcommaaccent = 500;
- e.minus = 584;
- e.Icircumflex = 278;
- e.ncaron = 556;
- e.tcommaaccent = 278;
- e.logicalnot = 584;
- e.odieresis = 556;
- e.udieresis = 556;
- e.notequal = 549;
- e.gcommaaccent = 556;
- e.eth = 556;
- e.zcaron = 500;
- e.ncommaaccent = 556;
- e.onesuperior = 333;
- e.imacron = 278;
- e.Euro = 556;
- });
- e['Helvetica-Bold'] = (0, r.getLookupTableFactory)(function (e) {
- e.space = 278;
- e.exclam = 333;
- e.quotedbl = 474;
- e.numbersign = 556;
- e.dollar = 556;
- e.percent = 889;
- e.ampersand = 722;
- e.quoteright = 278;
- e.parenleft = 333;
- e.parenright = 333;
- e.asterisk = 389;
- e.plus = 584;
- e.comma = 278;
- e.hyphen = 333;
- e.period = 278;
- e.slash = 278;
- e.zero = 556;
- e.one = 556;
- e.two = 556;
- e.three = 556;
- e.four = 556;
- e.five = 556;
- e.six = 556;
- e.seven = 556;
- e.eight = 556;
- e.nine = 556;
- e.colon = 333;
- e.semicolon = 333;
- e.less = 584;
- e.equal = 584;
- e.greater = 584;
- e.question = 611;
- e.at = 975;
- e.A = 722;
- e.B = 722;
- e.C = 722;
- e.D = 722;
- e.E = 667;
- e.F = 611;
- e.G = 778;
- e.H = 722;
- e.I = 278;
- e.J = 556;
- e.K = 722;
- e.L = 611;
- e.M = 833;
- e.N = 722;
- e.O = 778;
- e.P = 667;
- e.Q = 778;
- e.R = 722;
- e.S = 667;
- e.T = 611;
- e.U = 722;
- e.V = 667;
- e.W = 944;
- e.X = 667;
- e.Y = 667;
- e.Z = 611;
- e.bracketleft = 333;
- e.backslash = 278;
- e.bracketright = 333;
- e.asciicircum = 584;
- e.underscore = 556;
- e.quoteleft = 278;
- e.a = 556;
- e.b = 611;
- e.c = 556;
- e.d = 611;
- e.e = 556;
- e.f = 333;
- e.g = 611;
- e.h = 611;
- e.i = 278;
- e.j = 278;
- e.k = 556;
- e.l = 278;
- e.m = 889;
- e.n = 611;
- e.o = 611;
- e.p = 611;
- e.q = 611;
- e.r = 389;
- e.s = 556;
- e.t = 333;
- e.u = 611;
- e.v = 556;
- e.w = 778;
- e.x = 556;
- e.y = 556;
- e.z = 500;
- e.braceleft = 389;
- e.bar = 280;
- e.braceright = 389;
- e.asciitilde = 584;
- e.exclamdown = 333;
- e.cent = 556;
- e.sterling = 556;
- e.fraction = 167;
- e.yen = 556;
- e.florin = 556;
- e.section = 556;
- e.currency = 556;
- e.quotesingle = 238;
- e.quotedblleft = 500;
- e.guillemotleft = 556;
- e.guilsinglleft = 333;
- e.guilsinglright = 333;
- e.fi = 611;
- e.fl = 611;
- e.endash = 556;
- e.dagger = 556;
- e.daggerdbl = 556;
- e.periodcentered = 278;
- e.paragraph = 556;
- e.bullet = 350;
- e.quotesinglbase = 278;
- e.quotedblbase = 500;
- e.quotedblright = 500;
- e.guillemotright = 556;
- e.ellipsis = 1e3;
- e.perthousand = 1e3;
- e.questiondown = 611;
- e.grave = 333;
- e.acute = 333;
- e.circumflex = 333;
- e.tilde = 333;
- e.macron = 333;
- e.breve = 333;
- e.dotaccent = 333;
- e.dieresis = 333;
- e.ring = 333;
- e.cedilla = 333;
- e.hungarumlaut = 333;
- e.ogonek = 333;
- e.caron = 333;
- e.emdash = 1e3;
- e.AE = 1e3;
- e.ordfeminine = 370;
- e.Lslash = 611;
- e.Oslash = 778;
- e.OE = 1e3;
- e.ordmasculine = 365;
- e.ae = 889;
- e.dotlessi = 278;
- e.lslash = 278;
- e.oslash = 611;
- e.oe = 944;
- e.germandbls = 611;
- e.Idieresis = 278;
- e.eacute = 556;
- e.abreve = 556;
- e.uhungarumlaut = 611;
- e.ecaron = 556;
- e.Ydieresis = 667;
- e.divide = 584;
- e.Yacute = 667;
- e.Acircumflex = 722;
- e.aacute = 556;
- e.Ucircumflex = 722;
- e.yacute = 556;
- e.scommaaccent = 556;
- e.ecircumflex = 556;
- e.Uring = 722;
- e.Udieresis = 722;
- e.aogonek = 556;
- e.Uacute = 722;
- e.uogonek = 611;
- e.Edieresis = 667;
- e.Dcroat = 722;
- e.commaaccent = 250;
- e.copyright = 737;
- e.Emacron = 667;
- e.ccaron = 556;
- e.aring = 556;
- e.Ncommaaccent = 722;
- e.lacute = 278;
- e.agrave = 556;
- e.Tcommaaccent = 611;
- e.Cacute = 722;
- e.atilde = 556;
- e.Edotaccent = 667;
- e.scaron = 556;
- e.scedilla = 556;
- e.iacute = 278;
- e.lozenge = 494;
- e.Rcaron = 722;
- e.Gcommaaccent = 778;
- e.ucircumflex = 611;
- e.acircumflex = 556;
- e.Amacron = 722;
- e.rcaron = 389;
- e.ccedilla = 556;
- e.Zdotaccent = 611;
- e.Thorn = 667;
- e.Omacron = 778;
- e.Racute = 722;
- e.Sacute = 667;
- e.dcaron = 743;
- e.Umacron = 722;
- e.uring = 611;
- e.threesuperior = 333;
- e.Ograve = 778;
- e.Agrave = 722;
- e.Abreve = 722;
- e.multiply = 584;
- e.uacute = 611;
- e.Tcaron = 611;
- e.partialdiff = 494;
- e.ydieresis = 556;
- e.Nacute = 722;
- e.icircumflex = 278;
- e.Ecircumflex = 667;
- e.adieresis = 556;
- e.edieresis = 556;
- e.cacute = 556;
- e.nacute = 611;
- e.umacron = 611;
- e.Ncaron = 722;
- e.Iacute = 278;
- e.plusminus = 584;
- e.brokenbar = 280;
- e.registered = 737;
- e.Gbreve = 778;
- e.Idotaccent = 278;
- e.summation = 600;
- e.Egrave = 667;
- e.racute = 389;
- e.omacron = 611;
- e.Zacute = 611;
- e.Zcaron = 611;
- e.greaterequal = 549;
- e.Eth = 722;
- e.Ccedilla = 722;
- e.lcommaaccent = 278;
- e.tcaron = 389;
- e.eogonek = 556;
- e.Uogonek = 722;
- e.Aacute = 722;
- e.Adieresis = 722;
- e.egrave = 556;
- e.zacute = 500;
- e.iogonek = 278;
- e.Oacute = 778;
- e.oacute = 611;
- e.amacron = 556;
- e.sacute = 556;
- e.idieresis = 278;
- e.Ocircumflex = 778;
- e.Ugrave = 722;
- e.Delta = 612;
- e.thorn = 611;
- e.twosuperior = 333;
- e.Odieresis = 778;
- e.mu = 611;
- e.igrave = 278;
- e.ohungarumlaut = 611;
- e.Eogonek = 667;
- e.dcroat = 611;
- e.threequarters = 834;
- e.Scedilla = 667;
- e.lcaron = 400;
- e.Kcommaaccent = 722;
- e.Lacute = 611;
- e.trademark = 1e3;
- e.edotaccent = 556;
- e.Igrave = 278;
- e.Imacron = 278;
- e.Lcaron = 611;
- e.onehalf = 834;
- e.lessequal = 549;
- e.ocircumflex = 611;
- e.ntilde = 611;
- e.Uhungarumlaut = 722;
- e.Eacute = 667;
- e.emacron = 556;
- e.gbreve = 611;
- e.onequarter = 834;
- e.Scaron = 667;
- e.Scommaaccent = 667;
- e.Ohungarumlaut = 778;
- e.degree = 400;
- e.ograve = 611;
- e.Ccaron = 722;
- e.ugrave = 611;
- e.radical = 549;
- e.Dcaron = 722;
- e.rcommaaccent = 389;
- e.Ntilde = 722;
- e.otilde = 611;
- e.Rcommaaccent = 722;
- e.Lcommaaccent = 611;
- e.Atilde = 722;
- e.Aogonek = 722;
- e.Aring = 722;
- e.Otilde = 778;
- e.zdotaccent = 500;
- e.Ecaron = 667;
- e.Iogonek = 278;
- e.kcommaaccent = 556;
- e.minus = 584;
- e.Icircumflex = 278;
- e.ncaron = 611;
- e.tcommaaccent = 333;
- e.logicalnot = 584;
- e.odieresis = 611;
- e.udieresis = 611;
- e.notequal = 549;
- e.gcommaaccent = 611;
- e.eth = 611;
- e.zcaron = 500;
- e.ncommaaccent = 611;
- e.onesuperior = 333;
- e.imacron = 278;
- e.Euro = 556;
- });
- e['Helvetica-BoldOblique'] = (0, r.getLookupTableFactory)(function (e) {
- e.space = 278;
- e.exclam = 333;
- e.quotedbl = 474;
- e.numbersign = 556;
- e.dollar = 556;
- e.percent = 889;
- e.ampersand = 722;
- e.quoteright = 278;
- e.parenleft = 333;
- e.parenright = 333;
- e.asterisk = 389;
- e.plus = 584;
- e.comma = 278;
- e.hyphen = 333;
- e.period = 278;
- e.slash = 278;
- e.zero = 556;
- e.one = 556;
- e.two = 556;
- e.three = 556;
- e.four = 556;
- e.five = 556;
- e.six = 556;
- e.seven = 556;
- e.eight = 556;
- e.nine = 556;
- e.colon = 333;
- e.semicolon = 333;
- e.less = 584;
- e.equal = 584;
- e.greater = 584;
- e.question = 611;
- e.at = 975;
- e.A = 722;
- e.B = 722;
- e.C = 722;
- e.D = 722;
- e.E = 667;
- e.F = 611;
- e.G = 778;
- e.H = 722;
- e.I = 278;
- e.J = 556;
- e.K = 722;
- e.L = 611;
- e.M = 833;
- e.N = 722;
- e.O = 778;
- e.P = 667;
- e.Q = 778;
- e.R = 722;
- e.S = 667;
- e.T = 611;
- e.U = 722;
- e.V = 667;
- e.W = 944;
- e.X = 667;
- e.Y = 667;
- e.Z = 611;
- e.bracketleft = 333;
- e.backslash = 278;
- e.bracketright = 333;
- e.asciicircum = 584;
- e.underscore = 556;
- e.quoteleft = 278;
- e.a = 556;
- e.b = 611;
- e.c = 556;
- e.d = 611;
- e.e = 556;
- e.f = 333;
- e.g = 611;
- e.h = 611;
- e.i = 278;
- e.j = 278;
- e.k = 556;
- e.l = 278;
- e.m = 889;
- e.n = 611;
- e.o = 611;
- e.p = 611;
- e.q = 611;
- e.r = 389;
- e.s = 556;
- e.t = 333;
- e.u = 611;
- e.v = 556;
- e.w = 778;
- e.x = 556;
- e.y = 556;
- e.z = 500;
- e.braceleft = 389;
- e.bar = 280;
- e.braceright = 389;
- e.asciitilde = 584;
- e.exclamdown = 333;
- e.cent = 556;
- e.sterling = 556;
- e.fraction = 167;
- e.yen = 556;
- e.florin = 556;
- e.section = 556;
- e.currency = 556;
- e.quotesingle = 238;
- e.quotedblleft = 500;
- e.guillemotleft = 556;
- e.guilsinglleft = 333;
- e.guilsinglright = 333;
- e.fi = 611;
- e.fl = 611;
- e.endash = 556;
- e.dagger = 556;
- e.daggerdbl = 556;
- e.periodcentered = 278;
- e.paragraph = 556;
- e.bullet = 350;
- e.quotesinglbase = 278;
- e.quotedblbase = 500;
- e.quotedblright = 500;
- e.guillemotright = 556;
- e.ellipsis = 1e3;
- e.perthousand = 1e3;
- e.questiondown = 611;
- e.grave = 333;
- e.acute = 333;
- e.circumflex = 333;
- e.tilde = 333;
- e.macron = 333;
- e.breve = 333;
- e.dotaccent = 333;
- e.dieresis = 333;
- e.ring = 333;
- e.cedilla = 333;
- e.hungarumlaut = 333;
- e.ogonek = 333;
- e.caron = 333;
- e.emdash = 1e3;
- e.AE = 1e3;
- e.ordfeminine = 370;
- e.Lslash = 611;
- e.Oslash = 778;
- e.OE = 1e3;
- e.ordmasculine = 365;
- e.ae = 889;
- e.dotlessi = 278;
- e.lslash = 278;
- e.oslash = 611;
- e.oe = 944;
- e.germandbls = 611;
- e.Idieresis = 278;
- e.eacute = 556;
- e.abreve = 556;
- e.uhungarumlaut = 611;
- e.ecaron = 556;
- e.Ydieresis = 667;
- e.divide = 584;
- e.Yacute = 667;
- e.Acircumflex = 722;
- e.aacute = 556;
- e.Ucircumflex = 722;
- e.yacute = 556;
- e.scommaaccent = 556;
- e.ecircumflex = 556;
- e.Uring = 722;
- e.Udieresis = 722;
- e.aogonek = 556;
- e.Uacute = 722;
- e.uogonek = 611;
- e.Edieresis = 667;
- e.Dcroat = 722;
- e.commaaccent = 250;
- e.copyright = 737;
- e.Emacron = 667;
- e.ccaron = 556;
- e.aring = 556;
- e.Ncommaaccent = 722;
- e.lacute = 278;
- e.agrave = 556;
- e.Tcommaaccent = 611;
- e.Cacute = 722;
- e.atilde = 556;
- e.Edotaccent = 667;
- e.scaron = 556;
- e.scedilla = 556;
- e.iacute = 278;
- e.lozenge = 494;
- e.Rcaron = 722;
- e.Gcommaaccent = 778;
- e.ucircumflex = 611;
- e.acircumflex = 556;
- e.Amacron = 722;
- e.rcaron = 389;
- e.ccedilla = 556;
- e.Zdotaccent = 611;
- e.Thorn = 667;
- e.Omacron = 778;
- e.Racute = 722;
- e.Sacute = 667;
- e.dcaron = 743;
- e.Umacron = 722;
- e.uring = 611;
- e.threesuperior = 333;
- e.Ograve = 778;
- e.Agrave = 722;
- e.Abreve = 722;
- e.multiply = 584;
- e.uacute = 611;
- e.Tcaron = 611;
- e.partialdiff = 494;
- e.ydieresis = 556;
- e.Nacute = 722;
- e.icircumflex = 278;
- e.Ecircumflex = 667;
- e.adieresis = 556;
- e.edieresis = 556;
- e.cacute = 556;
- e.nacute = 611;
- e.umacron = 611;
- e.Ncaron = 722;
- e.Iacute = 278;
- e.plusminus = 584;
- e.brokenbar = 280;
- e.registered = 737;
- e.Gbreve = 778;
- e.Idotaccent = 278;
- e.summation = 600;
- e.Egrave = 667;
- e.racute = 389;
- e.omacron = 611;
- e.Zacute = 611;
- e.Zcaron = 611;
- e.greaterequal = 549;
- e.Eth = 722;
- e.Ccedilla = 722;
- e.lcommaaccent = 278;
- e.tcaron = 389;
- e.eogonek = 556;
- e.Uogonek = 722;
- e.Aacute = 722;
- e.Adieresis = 722;
- e.egrave = 556;
- e.zacute = 500;
- e.iogonek = 278;
- e.Oacute = 778;
- e.oacute = 611;
- e.amacron = 556;
- e.sacute = 556;
- e.idieresis = 278;
- e.Ocircumflex = 778;
- e.Ugrave = 722;
- e.Delta = 612;
- e.thorn = 611;
- e.twosuperior = 333;
- e.Odieresis = 778;
- e.mu = 611;
- e.igrave = 278;
- e.ohungarumlaut = 611;
- e.Eogonek = 667;
- e.dcroat = 611;
- e.threequarters = 834;
- e.Scedilla = 667;
- e.lcaron = 400;
- e.Kcommaaccent = 722;
- e.Lacute = 611;
- e.trademark = 1e3;
- e.edotaccent = 556;
- e.Igrave = 278;
- e.Imacron = 278;
- e.Lcaron = 611;
- e.onehalf = 834;
- e.lessequal = 549;
- e.ocircumflex = 611;
- e.ntilde = 611;
- e.Uhungarumlaut = 722;
- e.Eacute = 667;
- e.emacron = 556;
- e.gbreve = 611;
- e.onequarter = 834;
- e.Scaron = 667;
- e.Scommaaccent = 667;
- e.Ohungarumlaut = 778;
- e.degree = 400;
- e.ograve = 611;
- e.Ccaron = 722;
- e.ugrave = 611;
- e.radical = 549;
- e.Dcaron = 722;
- e.rcommaaccent = 389;
- e.Ntilde = 722;
- e.otilde = 611;
- e.Rcommaaccent = 722;
- e.Lcommaaccent = 611;
- e.Atilde = 722;
- e.Aogonek = 722;
- e.Aring = 722;
- e.Otilde = 778;
- e.zdotaccent = 500;
- e.Ecaron = 667;
- e.Iogonek = 278;
- e.kcommaaccent = 556;
- e.minus = 584;
- e.Icircumflex = 278;
- e.ncaron = 611;
- e.tcommaaccent = 333;
- e.logicalnot = 584;
- e.odieresis = 611;
- e.udieresis = 611;
- e.notequal = 549;
- e.gcommaaccent = 611;
- e.eth = 611;
- e.zcaron = 500;
- e.ncommaaccent = 611;
- e.onesuperior = 333;
- e.imacron = 278;
- e.Euro = 556;
- });
- e['Helvetica-Oblique'] = (0, r.getLookupTableFactory)(function (e) {
- e.space = 278;
- e.exclam = 278;
- e.quotedbl = 355;
- e.numbersign = 556;
- e.dollar = 556;
- e.percent = 889;
- e.ampersand = 667;
- e.quoteright = 222;
- e.parenleft = 333;
- e.parenright = 333;
- e.asterisk = 389;
- e.plus = 584;
- e.comma = 278;
- e.hyphen = 333;
- e.period = 278;
- e.slash = 278;
- e.zero = 556;
- e.one = 556;
- e.two = 556;
- e.three = 556;
- e.four = 556;
- e.five = 556;
- e.six = 556;
- e.seven = 556;
- e.eight = 556;
- e.nine = 556;
- e.colon = 278;
- e.semicolon = 278;
- e.less = 584;
- e.equal = 584;
- e.greater = 584;
- e.question = 556;
- e.at = 1015;
- e.A = 667;
- e.B = 667;
- e.C = 722;
- e.D = 722;
- e.E = 667;
- e.F = 611;
- e.G = 778;
- e.H = 722;
- e.I = 278;
- e.J = 500;
- e.K = 667;
- e.L = 556;
- e.M = 833;
- e.N = 722;
- e.O = 778;
- e.P = 667;
- e.Q = 778;
- e.R = 722;
- e.S = 667;
- e.T = 611;
- e.U = 722;
- e.V = 667;
- e.W = 944;
- e.X = 667;
- e.Y = 667;
- e.Z = 611;
- e.bracketleft = 278;
- e.backslash = 278;
- e.bracketright = 278;
- e.asciicircum = 469;
- e.underscore = 556;
- e.quoteleft = 222;
- e.a = 556;
- e.b = 556;
- e.c = 500;
- e.d = 556;
- e.e = 556;
- e.f = 278;
- e.g = 556;
- e.h = 556;
- e.i = 222;
- e.j = 222;
- e.k = 500;
- e.l = 222;
- e.m = 833;
- e.n = 556;
- e.o = 556;
- e.p = 556;
- e.q = 556;
- e.r = 333;
- e.s = 500;
- e.t = 278;
- e.u = 556;
- e.v = 500;
- e.w = 722;
- e.x = 500;
- e.y = 500;
- e.z = 500;
- e.braceleft = 334;
- e.bar = 260;
- e.braceright = 334;
- e.asciitilde = 584;
- e.exclamdown = 333;
- e.cent = 556;
- e.sterling = 556;
- e.fraction = 167;
- e.yen = 556;
- e.florin = 556;
- e.section = 556;
- e.currency = 556;
- e.quotesingle = 191;
- e.quotedblleft = 333;
- e.guillemotleft = 556;
- e.guilsinglleft = 333;
- e.guilsinglright = 333;
- e.fi = 500;
- e.fl = 500;
- e.endash = 556;
- e.dagger = 556;
- e.daggerdbl = 556;
- e.periodcentered = 278;
- e.paragraph = 537;
- e.bullet = 350;
- e.quotesinglbase = 222;
- e.quotedblbase = 333;
- e.quotedblright = 333;
- e.guillemotright = 556;
- e.ellipsis = 1e3;
- e.perthousand = 1e3;
- e.questiondown = 611;
- e.grave = 333;
- e.acute = 333;
- e.circumflex = 333;
- e.tilde = 333;
- e.macron = 333;
- e.breve = 333;
- e.dotaccent = 333;
- e.dieresis = 333;
- e.ring = 333;
- e.cedilla = 333;
- e.hungarumlaut = 333;
- e.ogonek = 333;
- e.caron = 333;
- e.emdash = 1e3;
- e.AE = 1e3;
- e.ordfeminine = 370;
- e.Lslash = 556;
- e.Oslash = 778;
- e.OE = 1e3;
- e.ordmasculine = 365;
- e.ae = 889;
- e.dotlessi = 278;
- e.lslash = 222;
- e.oslash = 611;
- e.oe = 944;
- e.germandbls = 611;
- e.Idieresis = 278;
- e.eacute = 556;
- e.abreve = 556;
- e.uhungarumlaut = 556;
- e.ecaron = 556;
- e.Ydieresis = 667;
- e.divide = 584;
- e.Yacute = 667;
- e.Acircumflex = 667;
- e.aacute = 556;
- e.Ucircumflex = 722;
- e.yacute = 500;
- e.scommaaccent = 500;
- e.ecircumflex = 556;
- e.Uring = 722;
- e.Udieresis = 722;
- e.aogonek = 556;
- e.Uacute = 722;
- e.uogonek = 556;
- e.Edieresis = 667;
- e.Dcroat = 722;
- e.commaaccent = 250;
- e.copyright = 737;
- e.Emacron = 667;
- e.ccaron = 500;
- e.aring = 556;
- e.Ncommaaccent = 722;
- e.lacute = 222;
- e.agrave = 556;
- e.Tcommaaccent = 611;
- e.Cacute = 722;
- e.atilde = 556;
- e.Edotaccent = 667;
- e.scaron = 500;
- e.scedilla = 500;
- e.iacute = 278;
- e.lozenge = 471;
- e.Rcaron = 722;
- e.Gcommaaccent = 778;
- e.ucircumflex = 556;
- e.acircumflex = 556;
- e.Amacron = 667;
- e.rcaron = 333;
- e.ccedilla = 500;
- e.Zdotaccent = 611;
- e.Thorn = 667;
- e.Omacron = 778;
- e.Racute = 722;
- e.Sacute = 667;
- e.dcaron = 643;
- e.Umacron = 722;
- e.uring = 556;
- e.threesuperior = 333;
- e.Ograve = 778;
- e.Agrave = 667;
- e.Abreve = 667;
- e.multiply = 584;
- e.uacute = 556;
- e.Tcaron = 611;
- e.partialdiff = 476;
- e.ydieresis = 500;
- e.Nacute = 722;
- e.icircumflex = 278;
- e.Ecircumflex = 667;
- e.adieresis = 556;
- e.edieresis = 556;
- e.cacute = 500;
- e.nacute = 556;
- e.umacron = 556;
- e.Ncaron = 722;
- e.Iacute = 278;
- e.plusminus = 584;
- e.brokenbar = 260;
- e.registered = 737;
- e.Gbreve = 778;
- e.Idotaccent = 278;
- e.summation = 600;
- e.Egrave = 667;
- e.racute = 333;
- e.omacron = 556;
- e.Zacute = 611;
- e.Zcaron = 611;
- e.greaterequal = 549;
- e.Eth = 722;
- e.Ccedilla = 722;
- e.lcommaaccent = 222;
- e.tcaron = 317;
- e.eogonek = 556;
- e.Uogonek = 722;
- e.Aacute = 667;
- e.Adieresis = 667;
- e.egrave = 556;
- e.zacute = 500;
- e.iogonek = 222;
- e.Oacute = 778;
- e.oacute = 556;
- e.amacron = 556;
- e.sacute = 500;
- e.idieresis = 278;
- e.Ocircumflex = 778;
- e.Ugrave = 722;
- e.Delta = 612;
- e.thorn = 556;
- e.twosuperior = 333;
- e.Odieresis = 778;
- e.mu = 556;
- e.igrave = 278;
- e.ohungarumlaut = 556;
- e.Eogonek = 667;
- e.dcroat = 556;
- e.threequarters = 834;
- e.Scedilla = 667;
- e.lcaron = 299;
- e.Kcommaaccent = 667;
- e.Lacute = 556;
- e.trademark = 1e3;
- e.edotaccent = 556;
- e.Igrave = 278;
- e.Imacron = 278;
- e.Lcaron = 556;
- e.onehalf = 834;
- e.lessequal = 549;
- e.ocircumflex = 556;
- e.ntilde = 556;
- e.Uhungarumlaut = 722;
- e.Eacute = 667;
- e.emacron = 556;
- e.gbreve = 556;
- e.onequarter = 834;
- e.Scaron = 667;
- e.Scommaaccent = 667;
- e.Ohungarumlaut = 778;
- e.degree = 400;
- e.ograve = 556;
- e.Ccaron = 722;
- e.ugrave = 556;
- e.radical = 453;
- e.Dcaron = 722;
- e.rcommaaccent = 333;
- e.Ntilde = 722;
- e.otilde = 556;
- e.Rcommaaccent = 722;
- e.Lcommaaccent = 556;
- e.Atilde = 667;
- e.Aogonek = 667;
- e.Aring = 667;
- e.Otilde = 778;
- e.zdotaccent = 500;
- e.Ecaron = 667;
- e.Iogonek = 278;
- e.kcommaaccent = 500;
- e.minus = 584;
- e.Icircumflex = 278;
- e.ncaron = 556;
- e.tcommaaccent = 278;
- e.logicalnot = 584;
- e.odieresis = 556;
- e.udieresis = 556;
- e.notequal = 549;
- e.gcommaaccent = 556;
- e.eth = 556;
- e.zcaron = 500;
- e.ncommaaccent = 556;
- e.onesuperior = 333;
- e.imacron = 278;
- e.Euro = 556;
- });
- e.Symbol = (0, r.getLookupTableFactory)(function (e) {
- e.space = 250;
- e.exclam = 333;
- e.universal = 713;
- e.numbersign = 500;
- e.existential = 549;
- e.percent = 833;
- e.ampersand = 778;
- e.suchthat = 439;
- e.parenleft = 333;
- e.parenright = 333;
- e.asteriskmath = 500;
- e.plus = 549;
- e.comma = 250;
- e.minus = 549;
- e.period = 250;
- e.slash = 278;
- e.zero = 500;
- e.one = 500;
- e.two = 500;
- e.three = 500;
- e.four = 500;
- e.five = 500;
- e.six = 500;
- e.seven = 500;
- e.eight = 500;
- e.nine = 500;
- e.colon = 278;
- e.semicolon = 278;
- e.less = 549;
- e.equal = 549;
- e.greater = 549;
- e.question = 444;
- e.congruent = 549;
- e.Alpha = 722;
- e.Beta = 667;
- e.Chi = 722;
- e.Delta = 612;
- e.Epsilon = 611;
- e.Phi = 763;
- e.Gamma = 603;
- e.Eta = 722;
- e.Iota = 333;
- e.theta1 = 631;
- e.Kappa = 722;
- e.Lambda = 686;
- e.Mu = 889;
- e.Nu = 722;
- e.Omicron = 722;
- e.Pi = 768;
- e.Theta = 741;
- e.Rho = 556;
- e.Sigma = 592;
- e.Tau = 611;
- e.Upsilon = 690;
- e.sigma1 = 439;
- e.Omega = 768;
- e.Xi = 645;
- e.Psi = 795;
- e.Zeta = 611;
- e.bracketleft = 333;
- e.therefore = 863;
- e.bracketright = 333;
- e.perpendicular = 658;
- e.underscore = 500;
- e.radicalex = 500;
- e.alpha = 631;
- e.beta = 549;
- e.chi = 549;
- e.delta = 494;
- e.epsilon = 439;
- e.phi = 521;
- e.gamma = 411;
- e.eta = 603;
- e.iota = 329;
- e.phi1 = 603;
- e.kappa = 549;
- e.lambda = 549;
- e.mu = 576;
- e.nu = 521;
- e.omicron = 549;
- e.pi = 549;
- e.theta = 521;
- e.rho = 549;
- e.sigma = 603;
- e.tau = 439;
- e.upsilon = 576;
- e.omega1 = 713;
- e.omega = 686;
- e.xi = 493;
- e.psi = 686;
- e.zeta = 494;
- e.braceleft = 480;
- e.bar = 200;
- e.braceright = 480;
- e.similar = 549;
- e.Euro = 750;
- e.Upsilon1 = 620;
- e.minute = 247;
- e.lessequal = 549;
- e.fraction = 167;
- e.infinity = 713;
- e.florin = 500;
- e.club = 753;
- e.diamond = 753;
- e.heart = 753;
- e.spade = 753;
- e.arrowboth = 1042;
- e.arrowleft = 987;
- e.arrowup = 603;
- e.arrowright = 987;
- e.arrowdown = 603;
- e.degree = 400;
- e.plusminus = 549;
- e.second = 411;
- e.greaterequal = 549;
- e.multiply = 549;
- e.proportional = 713;
- e.partialdiff = 494;
- e.bullet = 460;
- e.divide = 549;
- e.notequal = 549;
- e.equivalence = 549;
- e.approxequal = 549;
- e.ellipsis = 1e3;
- e.arrowvertex = 603;
- e.arrowhorizex = 1e3;
- e.carriagereturn = 658;
- e.aleph = 823;
- e.Ifraktur = 686;
- e.Rfraktur = 795;
- e.weierstrass = 987;
- e.circlemultiply = 768;
- e.circleplus = 768;
- e.emptyset = 823;
- e.intersection = 768;
- e.union = 768;
- e.propersuperset = 713;
- e.reflexsuperset = 713;
- e.notsubset = 713;
- e.propersubset = 713;
- e.reflexsubset = 713;
- e.element = 713;
- e.notelement = 713;
- e.angle = 768;
- e.gradient = 713;
- e.registerserif = 790;
- e.copyrightserif = 790;
- e.trademarkserif = 890;
- e.product = 823;
- e.radical = 549;
- e.dotmath = 250;
- e.logicalnot = 713;
- e.logicaland = 603;
- e.logicalor = 603;
- e.arrowdblboth = 1042;
- e.arrowdblleft = 987;
- e.arrowdblup = 603;
- e.arrowdblright = 987;
- e.arrowdbldown = 603;
- e.lozenge = 494;
- e.angleleft = 329;
- e.registersans = 790;
- e.copyrightsans = 790;
- e.trademarksans = 786;
- e.summation = 713;
- e.parenlefttp = 384;
- e.parenleftex = 384;
- e.parenleftbt = 384;
- e.bracketlefttp = 384;
- e.bracketleftex = 384;
- e.bracketleftbt = 384;
- e.bracelefttp = 494;
- e.braceleftmid = 494;
- e.braceleftbt = 494;
- e.braceex = 494;
- e.angleright = 329;
- e.integral = 274;
- e.integraltp = 686;
- e.integralex = 686;
- e.integralbt = 686;
- e.parenrighttp = 384;
- e.parenrightex = 384;
- e.parenrightbt = 384;
- e.bracketrighttp = 384;
- e.bracketrightex = 384;
- e.bracketrightbt = 384;
- e.bracerighttp = 494;
- e.bracerightmid = 494;
- e.bracerightbt = 494;
- e.apple = 790;
- });
- e['Times-Roman'] = (0, r.getLookupTableFactory)(function (e) {
- e.space = 250;
- e.exclam = 333;
- e.quotedbl = 408;
- e.numbersign = 500;
- e.dollar = 500;
- e.percent = 833;
- e.ampersand = 778;
- e.quoteright = 333;
- e.parenleft = 333;
- e.parenright = 333;
- e.asterisk = 500;
- e.plus = 564;
- e.comma = 250;
- e.hyphen = 333;
- e.period = 250;
- e.slash = 278;
- e.zero = 500;
- e.one = 500;
- e.two = 500;
- e.three = 500;
- e.four = 500;
- e.five = 500;
- e.six = 500;
- e.seven = 500;
- e.eight = 500;
- e.nine = 500;
- e.colon = 278;
- e.semicolon = 278;
- e.less = 564;
- e.equal = 564;
- e.greater = 564;
- e.question = 444;
- e.at = 921;
- e.A = 722;
- e.B = 667;
- e.C = 667;
- e.D = 722;
- e.E = 611;
- e.F = 556;
- e.G = 722;
- e.H = 722;
- e.I = 333;
- e.J = 389;
- e.K = 722;
- e.L = 611;
- e.M = 889;
- e.N = 722;
- e.O = 722;
- e.P = 556;
- e.Q = 722;
- e.R = 667;
- e.S = 556;
- e.T = 611;
- e.U = 722;
- e.V = 722;
- e.W = 944;
- e.X = 722;
- e.Y = 722;
- e.Z = 611;
- e.bracketleft = 333;
- e.backslash = 278;
- e.bracketright = 333;
- e.asciicircum = 469;
- e.underscore = 500;
- e.quoteleft = 333;
- e.a = 444;
- e.b = 500;
- e.c = 444;
- e.d = 500;
- e.e = 444;
- e.f = 333;
- e.g = 500;
- e.h = 500;
- e.i = 278;
- e.j = 278;
- e.k = 500;
- e.l = 278;
- e.m = 778;
- e.n = 500;
- e.o = 500;
- e.p = 500;
- e.q = 500;
- e.r = 333;
- e.s = 389;
- e.t = 278;
- e.u = 500;
- e.v = 500;
- e.w = 722;
- e.x = 500;
- e.y = 500;
- e.z = 444;
- e.braceleft = 480;
- e.bar = 200;
- e.braceright = 480;
- e.asciitilde = 541;
- e.exclamdown = 333;
- e.cent = 500;
- e.sterling = 500;
- e.fraction = 167;
- e.yen = 500;
- e.florin = 500;
- e.section = 500;
- e.currency = 500;
- e.quotesingle = 180;
- e.quotedblleft = 444;
- e.guillemotleft = 500;
- e.guilsinglleft = 333;
- e.guilsinglright = 333;
- e.fi = 556;
- e.fl = 556;
- e.endash = 500;
- e.dagger = 500;
- e.daggerdbl = 500;
- e.periodcentered = 250;
- e.paragraph = 453;
- e.bullet = 350;
- e.quotesinglbase = 333;
- e.quotedblbase = 444;
- e.quotedblright = 444;
- e.guillemotright = 500;
- e.ellipsis = 1e3;
- e.perthousand = 1e3;
- e.questiondown = 444;
- e.grave = 333;
- e.acute = 333;
- e.circumflex = 333;
- e.tilde = 333;
- e.macron = 333;
- e.breve = 333;
- e.dotaccent = 333;
- e.dieresis = 333;
- e.ring = 333;
- e.cedilla = 333;
- e.hungarumlaut = 333;
- e.ogonek = 333;
- e.caron = 333;
- e.emdash = 1e3;
- e.AE = 889;
- e.ordfeminine = 276;
- e.Lslash = 611;
- e.Oslash = 722;
- e.OE = 889;
- e.ordmasculine = 310;
- e.ae = 667;
- e.dotlessi = 278;
- e.lslash = 278;
- e.oslash = 500;
- e.oe = 722;
- e.germandbls = 500;
- e.Idieresis = 333;
- e.eacute = 444;
- e.abreve = 444;
- e.uhungarumlaut = 500;
- e.ecaron = 444;
- e.Ydieresis = 722;
- e.divide = 564;
- e.Yacute = 722;
- e.Acircumflex = 722;
- e.aacute = 444;
- e.Ucircumflex = 722;
- e.yacute = 500;
- e.scommaaccent = 389;
- e.ecircumflex = 444;
- e.Uring = 722;
- e.Udieresis = 722;
- e.aogonek = 444;
- e.Uacute = 722;
- e.uogonek = 500;
- e.Edieresis = 611;
- e.Dcroat = 722;
- e.commaaccent = 250;
- e.copyright = 760;
- e.Emacron = 611;
- e.ccaron = 444;
- e.aring = 444;
- e.Ncommaaccent = 722;
- e.lacute = 278;
- e.agrave = 444;
- e.Tcommaaccent = 611;
- e.Cacute = 667;
- e.atilde = 444;
- e.Edotaccent = 611;
- e.scaron = 389;
- e.scedilla = 389;
- e.iacute = 278;
- e.lozenge = 471;
- e.Rcaron = 667;
- e.Gcommaaccent = 722;
- e.ucircumflex = 500;
- e.acircumflex = 444;
- e.Amacron = 722;
- e.rcaron = 333;
- e.ccedilla = 444;
- e.Zdotaccent = 611;
- e.Thorn = 556;
- e.Omacron = 722;
- e.Racute = 667;
- e.Sacute = 556;
- e.dcaron = 588;
- e.Umacron = 722;
- e.uring = 500;
- e.threesuperior = 300;
- e.Ograve = 722;
- e.Agrave = 722;
- e.Abreve = 722;
- e.multiply = 564;
- e.uacute = 500;
- e.Tcaron = 611;
- e.partialdiff = 476;
- e.ydieresis = 500;
- e.Nacute = 722;
- e.icircumflex = 278;
- e.Ecircumflex = 611;
- e.adieresis = 444;
- e.edieresis = 444;
- e.cacute = 444;
- e.nacute = 500;
- e.umacron = 500;
- e.Ncaron = 722;
- e.Iacute = 333;
- e.plusminus = 564;
- e.brokenbar = 200;
- e.registered = 760;
- e.Gbreve = 722;
- e.Idotaccent = 333;
- e.summation = 600;
- e.Egrave = 611;
- e.racute = 333;
- e.omacron = 500;
- e.Zacute = 611;
- e.Zcaron = 611;
- e.greaterequal = 549;
- e.Eth = 722;
- e.Ccedilla = 667;
- e.lcommaaccent = 278;
- e.tcaron = 326;
- e.eogonek = 444;
- e.Uogonek = 722;
- e.Aacute = 722;
- e.Adieresis = 722;
- e.egrave = 444;
- e.zacute = 444;
- e.iogonek = 278;
- e.Oacute = 722;
- e.oacute = 500;
- e.amacron = 444;
- e.sacute = 389;
- e.idieresis = 278;
- e.Ocircumflex = 722;
- e.Ugrave = 722;
- e.Delta = 612;
- e.thorn = 500;
- e.twosuperior = 300;
- e.Odieresis = 722;
- e.mu = 500;
- e.igrave = 278;
- e.ohungarumlaut = 500;
- e.Eogonek = 611;
- e.dcroat = 500;
- e.threequarters = 750;
- e.Scedilla = 556;
- e.lcaron = 344;
- e.Kcommaaccent = 722;
- e.Lacute = 611;
- e.trademark = 980;
- e.edotaccent = 444;
- e.Igrave = 333;
- e.Imacron = 333;
- e.Lcaron = 611;
- e.onehalf = 750;
- e.lessequal = 549;
- e.ocircumflex = 500;
- e.ntilde = 500;
- e.Uhungarumlaut = 722;
- e.Eacute = 611;
- e.emacron = 444;
- e.gbreve = 500;
- e.onequarter = 750;
- e.Scaron = 556;
- e.Scommaaccent = 556;
- e.Ohungarumlaut = 722;
- e.degree = 400;
- e.ograve = 500;
- e.Ccaron = 667;
- e.ugrave = 500;
- e.radical = 453;
- e.Dcaron = 722;
- e.rcommaaccent = 333;
- e.Ntilde = 722;
- e.otilde = 500;
- e.Rcommaaccent = 667;
- e.Lcommaaccent = 611;
- e.Atilde = 722;
- e.Aogonek = 722;
- e.Aring = 722;
- e.Otilde = 722;
- e.zdotaccent = 444;
- e.Ecaron = 611;
- e.Iogonek = 333;
- e.kcommaaccent = 500;
- e.minus = 564;
- e.Icircumflex = 333;
- e.ncaron = 500;
- e.tcommaaccent = 278;
- e.logicalnot = 564;
- e.odieresis = 500;
- e.udieresis = 500;
- e.notequal = 549;
- e.gcommaaccent = 500;
- e.eth = 500;
- e.zcaron = 444;
- e.ncommaaccent = 500;
- e.onesuperior = 300;
- e.imacron = 278;
- e.Euro = 500;
- });
- e['Times-Bold'] = (0, r.getLookupTableFactory)(function (e) {
- e.space = 250;
- e.exclam = 333;
- e.quotedbl = 555;
- e.numbersign = 500;
- e.dollar = 500;
- e.percent = 1e3;
- e.ampersand = 833;
- e.quoteright = 333;
- e.parenleft = 333;
- e.parenright = 333;
- e.asterisk = 500;
- e.plus = 570;
- e.comma = 250;
- e.hyphen = 333;
- e.period = 250;
- e.slash = 278;
- e.zero = 500;
- e.one = 500;
- e.two = 500;
- e.three = 500;
- e.four = 500;
- e.five = 500;
- e.six = 500;
- e.seven = 500;
- e.eight = 500;
- e.nine = 500;
- e.colon = 333;
- e.semicolon = 333;
- e.less = 570;
- e.equal = 570;
- e.greater = 570;
- e.question = 500;
- e.at = 930;
- e.A = 722;
- e.B = 667;
- e.C = 722;
- e.D = 722;
- e.E = 667;
- e.F = 611;
- e.G = 778;
- e.H = 778;
- e.I = 389;
- e.J = 500;
- e.K = 778;
- e.L = 667;
- e.M = 944;
- e.N = 722;
- e.O = 778;
- e.P = 611;
- e.Q = 778;
- e.R = 722;
- e.S = 556;
- e.T = 667;
- e.U = 722;
- e.V = 722;
- e.W = 1e3;
- e.X = 722;
- e.Y = 722;
- e.Z = 667;
- e.bracketleft = 333;
- e.backslash = 278;
- e.bracketright = 333;
- e.asciicircum = 581;
- e.underscore = 500;
- e.quoteleft = 333;
- e.a = 500;
- e.b = 556;
- e.c = 444;
- e.d = 556;
- e.e = 444;
- e.f = 333;
- e.g = 500;
- e.h = 556;
- e.i = 278;
- e.j = 333;
- e.k = 556;
- e.l = 278;
- e.m = 833;
- e.n = 556;
- e.o = 500;
- e.p = 556;
- e.q = 556;
- e.r = 444;
- e.s = 389;
- e.t = 333;
- e.u = 556;
- e.v = 500;
- e.w = 722;
- e.x = 500;
- e.y = 500;
- e.z = 444;
- e.braceleft = 394;
- e.bar = 220;
- e.braceright = 394;
- e.asciitilde = 520;
- e.exclamdown = 333;
- e.cent = 500;
- e.sterling = 500;
- e.fraction = 167;
- e.yen = 500;
- e.florin = 500;
- e.section = 500;
- e.currency = 500;
- e.quotesingle = 278;
- e.quotedblleft = 500;
- e.guillemotleft = 500;
- e.guilsinglleft = 333;
- e.guilsinglright = 333;
- e.fi = 556;
- e.fl = 556;
- e.endash = 500;
- e.dagger = 500;
- e.daggerdbl = 500;
- e.periodcentered = 250;
- e.paragraph = 540;
- e.bullet = 350;
- e.quotesinglbase = 333;
- e.quotedblbase = 500;
- e.quotedblright = 500;
- e.guillemotright = 500;
- e.ellipsis = 1e3;
- e.perthousand = 1e3;
- e.questiondown = 500;
- e.grave = 333;
- e.acute = 333;
- e.circumflex = 333;
- e.tilde = 333;
- e.macron = 333;
- e.breve = 333;
- e.dotaccent = 333;
- e.dieresis = 333;
- e.ring = 333;
- e.cedilla = 333;
- e.hungarumlaut = 333;
- e.ogonek = 333;
- e.caron = 333;
- e.emdash = 1e3;
- e.AE = 1e3;
- e.ordfeminine = 300;
- e.Lslash = 667;
- e.Oslash = 778;
- e.OE = 1e3;
- e.ordmasculine = 330;
- e.ae = 722;
- e.dotlessi = 278;
- e.lslash = 278;
- e.oslash = 500;
- e.oe = 722;
- e.germandbls = 556;
- e.Idieresis = 389;
- e.eacute = 444;
- e.abreve = 500;
- e.uhungarumlaut = 556;
- e.ecaron = 444;
- e.Ydieresis = 722;
- e.divide = 570;
- e.Yacute = 722;
- e.Acircumflex = 722;
- e.aacute = 500;
- e.Ucircumflex = 722;
- e.yacute = 500;
- e.scommaaccent = 389;
- e.ecircumflex = 444;
- e.Uring = 722;
- e.Udieresis = 722;
- e.aogonek = 500;
- e.Uacute = 722;
- e.uogonek = 556;
- e.Edieresis = 667;
- e.Dcroat = 722;
- e.commaaccent = 250;
- e.copyright = 747;
- e.Emacron = 667;
- e.ccaron = 444;
- e.aring = 500;
- e.Ncommaaccent = 722;
- e.lacute = 278;
- e.agrave = 500;
- e.Tcommaaccent = 667;
- e.Cacute = 722;
- e.atilde = 500;
- e.Edotaccent = 667;
- e.scaron = 389;
- e.scedilla = 389;
- e.iacute = 278;
- e.lozenge = 494;
- e.Rcaron = 722;
- e.Gcommaaccent = 778;
- e.ucircumflex = 556;
- e.acircumflex = 500;
- e.Amacron = 722;
- e.rcaron = 444;
- e.ccedilla = 444;
- e.Zdotaccent = 667;
- e.Thorn = 611;
- e.Omacron = 778;
- e.Racute = 722;
- e.Sacute = 556;
- e.dcaron = 672;
- e.Umacron = 722;
- e.uring = 556;
- e.threesuperior = 300;
- e.Ograve = 778;
- e.Agrave = 722;
- e.Abreve = 722;
- e.multiply = 570;
- e.uacute = 556;
- e.Tcaron = 667;
- e.partialdiff = 494;
- e.ydieresis = 500;
- e.Nacute = 722;
- e.icircumflex = 278;
- e.Ecircumflex = 667;
- e.adieresis = 500;
- e.edieresis = 444;
- e.cacute = 444;
- e.nacute = 556;
- e.umacron = 556;
- e.Ncaron = 722;
- e.Iacute = 389;
- e.plusminus = 570;
- e.brokenbar = 220;
- e.registered = 747;
- e.Gbreve = 778;
- e.Idotaccent = 389;
- e.summation = 600;
- e.Egrave = 667;
- e.racute = 444;
- e.omacron = 500;
- e.Zacute = 667;
- e.Zcaron = 667;
- e.greaterequal = 549;
- e.Eth = 722;
- e.Ccedilla = 722;
- e.lcommaaccent = 278;
- e.tcaron = 416;
- e.eogonek = 444;
- e.Uogonek = 722;
- e.Aacute = 722;
- e.Adieresis = 722;
- e.egrave = 444;
- e.zacute = 444;
- e.iogonek = 278;
- e.Oacute = 778;
- e.oacute = 500;
- e.amacron = 500;
- e.sacute = 389;
- e.idieresis = 278;
- e.Ocircumflex = 778;
- e.Ugrave = 722;
- e.Delta = 612;
- e.thorn = 556;
- e.twosuperior = 300;
- e.Odieresis = 778;
- e.mu = 556;
- e.igrave = 278;
- e.ohungarumlaut = 500;
- e.Eogonek = 667;
- e.dcroat = 556;
- e.threequarters = 750;
- e.Scedilla = 556;
- e.lcaron = 394;
- e.Kcommaaccent = 778;
- e.Lacute = 667;
- e.trademark = 1e3;
- e.edotaccent = 444;
- e.Igrave = 389;
- e.Imacron = 389;
- e.Lcaron = 667;
- e.onehalf = 750;
- e.lessequal = 549;
- e.ocircumflex = 500;
- e.ntilde = 556;
- e.Uhungarumlaut = 722;
- e.Eacute = 667;
- e.emacron = 444;
- e.gbreve = 500;
- e.onequarter = 750;
- e.Scaron = 556;
- e.Scommaaccent = 556;
- e.Ohungarumlaut = 778;
- e.degree = 400;
- e.ograve = 500;
- e.Ccaron = 722;
- e.ugrave = 556;
- e.radical = 549;
- e.Dcaron = 722;
- e.rcommaaccent = 444;
- e.Ntilde = 722;
- e.otilde = 500;
- e.Rcommaaccent = 722;
- e.Lcommaaccent = 667;
- e.Atilde = 722;
- e.Aogonek = 722;
- e.Aring = 722;
- e.Otilde = 778;
- e.zdotaccent = 444;
- e.Ecaron = 667;
- e.Iogonek = 389;
- e.kcommaaccent = 556;
- e.minus = 570;
- e.Icircumflex = 389;
- e.ncaron = 556;
- e.tcommaaccent = 333;
- e.logicalnot = 570;
- e.odieresis = 500;
- e.udieresis = 556;
- e.notequal = 549;
- e.gcommaaccent = 500;
- e.eth = 500;
- e.zcaron = 444;
- e.ncommaaccent = 556;
- e.onesuperior = 300;
- e.imacron = 278;
- e.Euro = 500;
- });
- e['Times-BoldItalic'] = (0, r.getLookupTableFactory)(function (e) {
- e.space = 250;
- e.exclam = 389;
- e.quotedbl = 555;
- e.numbersign = 500;
- e.dollar = 500;
- e.percent = 833;
- e.ampersand = 778;
- e.quoteright = 333;
- e.parenleft = 333;
- e.parenright = 333;
- e.asterisk = 500;
- e.plus = 570;
- e.comma = 250;
- e.hyphen = 333;
- e.period = 250;
- e.slash = 278;
- e.zero = 500;
- e.one = 500;
- e.two = 500;
- e.three = 500;
- e.four = 500;
- e.five = 500;
- e.six = 500;
- e.seven = 500;
- e.eight = 500;
- e.nine = 500;
- e.colon = 333;
- e.semicolon = 333;
- e.less = 570;
- e.equal = 570;
- e.greater = 570;
- e.question = 500;
- e.at = 832;
- e.A = 667;
- e.B = 667;
- e.C = 667;
- e.D = 722;
- e.E = 667;
- e.F = 667;
- e.G = 722;
- e.H = 778;
- e.I = 389;
- e.J = 500;
- e.K = 667;
- e.L = 611;
- e.M = 889;
- e.N = 722;
- e.O = 722;
- e.P = 611;
- e.Q = 722;
- e.R = 667;
- e.S = 556;
- e.T = 611;
- e.U = 722;
- e.V = 667;
- e.W = 889;
- e.X = 667;
- e.Y = 611;
- e.Z = 611;
- e.bracketleft = 333;
- e.backslash = 278;
- e.bracketright = 333;
- e.asciicircum = 570;
- e.underscore = 500;
- e.quoteleft = 333;
- e.a = 500;
- e.b = 500;
- e.c = 444;
- e.d = 500;
- e.e = 444;
- e.f = 333;
- e.g = 500;
- e.h = 556;
- e.i = 278;
- e.j = 278;
- e.k = 500;
- e.l = 278;
- e.m = 778;
- e.n = 556;
- e.o = 500;
- e.p = 500;
- e.q = 500;
- e.r = 389;
- e.s = 389;
- e.t = 278;
- e.u = 556;
- e.v = 444;
- e.w = 667;
- e.x = 500;
- e.y = 444;
- e.z = 389;
- e.braceleft = 348;
- e.bar = 220;
- e.braceright = 348;
- e.asciitilde = 570;
- e.exclamdown = 389;
- e.cent = 500;
- e.sterling = 500;
- e.fraction = 167;
- e.yen = 500;
- e.florin = 500;
- e.section = 500;
- e.currency = 500;
- e.quotesingle = 278;
- e.quotedblleft = 500;
- e.guillemotleft = 500;
- e.guilsinglleft = 333;
- e.guilsinglright = 333;
- e.fi = 556;
- e.fl = 556;
- e.endash = 500;
- e.dagger = 500;
- e.daggerdbl = 500;
- e.periodcentered = 250;
- e.paragraph = 500;
- e.bullet = 350;
- e.quotesinglbase = 333;
- e.quotedblbase = 500;
- e.quotedblright = 500;
- e.guillemotright = 500;
- e.ellipsis = 1e3;
- e.perthousand = 1e3;
- e.questiondown = 500;
- e.grave = 333;
- e.acute = 333;
- e.circumflex = 333;
- e.tilde = 333;
- e.macron = 333;
- e.breve = 333;
- e.dotaccent = 333;
- e.dieresis = 333;
- e.ring = 333;
- e.cedilla = 333;
- e.hungarumlaut = 333;
- e.ogonek = 333;
- e.caron = 333;
- e.emdash = 1e3;
- e.AE = 944;
- e.ordfeminine = 266;
- e.Lslash = 611;
- e.Oslash = 722;
- e.OE = 944;
- e.ordmasculine = 300;
- e.ae = 722;
- e.dotlessi = 278;
- e.lslash = 278;
- e.oslash = 500;
- e.oe = 722;
- e.germandbls = 500;
- e.Idieresis = 389;
- e.eacute = 444;
- e.abreve = 500;
- e.uhungarumlaut = 556;
- e.ecaron = 444;
- e.Ydieresis = 611;
- e.divide = 570;
- e.Yacute = 611;
- e.Acircumflex = 667;
- e.aacute = 500;
- e.Ucircumflex = 722;
- e.yacute = 444;
- e.scommaaccent = 389;
- e.ecircumflex = 444;
- e.Uring = 722;
- e.Udieresis = 722;
- e.aogonek = 500;
- e.Uacute = 722;
- e.uogonek = 556;
- e.Edieresis = 667;
- e.Dcroat = 722;
- e.commaaccent = 250;
- e.copyright = 747;
- e.Emacron = 667;
- e.ccaron = 444;
- e.aring = 500;
- e.Ncommaaccent = 722;
- e.lacute = 278;
- e.agrave = 500;
- e.Tcommaaccent = 611;
- e.Cacute = 667;
- e.atilde = 500;
- e.Edotaccent = 667;
- e.scaron = 389;
- e.scedilla = 389;
- e.iacute = 278;
- e.lozenge = 494;
- e.Rcaron = 667;
- e.Gcommaaccent = 722;
- e.ucircumflex = 556;
- e.acircumflex = 500;
- e.Amacron = 667;
- e.rcaron = 389;
- e.ccedilla = 444;
- e.Zdotaccent = 611;
- e.Thorn = 611;
- e.Omacron = 722;
- e.Racute = 667;
- e.Sacute = 556;
- e.dcaron = 608;
- e.Umacron = 722;
- e.uring = 556;
- e.threesuperior = 300;
- e.Ograve = 722;
- e.Agrave = 667;
- e.Abreve = 667;
- e.multiply = 570;
- e.uacute = 556;
- e.Tcaron = 611;
- e.partialdiff = 494;
- e.ydieresis = 444;
- e.Nacute = 722;
- e.icircumflex = 278;
- e.Ecircumflex = 667;
- e.adieresis = 500;
- e.edieresis = 444;
- e.cacute = 444;
- e.nacute = 556;
- e.umacron = 556;
- e.Ncaron = 722;
- e.Iacute = 389;
- e.plusminus = 570;
- e.brokenbar = 220;
- e.registered = 747;
- e.Gbreve = 722;
- e.Idotaccent = 389;
- e.summation = 600;
- e.Egrave = 667;
- e.racute = 389;
- e.omacron = 500;
- e.Zacute = 611;
- e.Zcaron = 611;
- e.greaterequal = 549;
- e.Eth = 722;
- e.Ccedilla = 667;
- e.lcommaaccent = 278;
- e.tcaron = 366;
- e.eogonek = 444;
- e.Uogonek = 722;
- e.Aacute = 667;
- e.Adieresis = 667;
- e.egrave = 444;
- e.zacute = 389;
- e.iogonek = 278;
- e.Oacute = 722;
- e.oacute = 500;
- e.amacron = 500;
- e.sacute = 389;
- e.idieresis = 278;
- e.Ocircumflex = 722;
- e.Ugrave = 722;
- e.Delta = 612;
- e.thorn = 500;
- e.twosuperior = 300;
- e.Odieresis = 722;
- e.mu = 576;
- e.igrave = 278;
- e.ohungarumlaut = 500;
- e.Eogonek = 667;
- e.dcroat = 500;
- e.threequarters = 750;
- e.Scedilla = 556;
- e.lcaron = 382;
- e.Kcommaaccent = 667;
- e.Lacute = 611;
- e.trademark = 1e3;
- e.edotaccent = 444;
- e.Igrave = 389;
- e.Imacron = 389;
- e.Lcaron = 611;
- e.onehalf = 750;
- e.lessequal = 549;
- e.ocircumflex = 500;
- e.ntilde = 556;
- e.Uhungarumlaut = 722;
- e.Eacute = 667;
- e.emacron = 444;
- e.gbreve = 500;
- e.onequarter = 750;
- e.Scaron = 556;
- e.Scommaaccent = 556;
- e.Ohungarumlaut = 722;
- e.degree = 400;
- e.ograve = 500;
- e.Ccaron = 667;
- e.ugrave = 556;
- e.radical = 549;
- e.Dcaron = 722;
- e.rcommaaccent = 389;
- e.Ntilde = 722;
- e.otilde = 500;
- e.Rcommaaccent = 667;
- e.Lcommaaccent = 611;
- e.Atilde = 667;
- e.Aogonek = 667;
- e.Aring = 667;
- e.Otilde = 722;
- e.zdotaccent = 389;
- e.Ecaron = 667;
- e.Iogonek = 389;
- e.kcommaaccent = 500;
- e.minus = 606;
- e.Icircumflex = 389;
- e.ncaron = 556;
- e.tcommaaccent = 278;
- e.logicalnot = 606;
- e.odieresis = 500;
- e.udieresis = 556;
- e.notequal = 549;
- e.gcommaaccent = 500;
- e.eth = 500;
- e.zcaron = 389;
- e.ncommaaccent = 556;
- e.onesuperior = 300;
- e.imacron = 278;
- e.Euro = 500;
- });
- e['Times-Italic'] = (0, r.getLookupTableFactory)(function (e) {
- e.space = 250;
- e.exclam = 333;
- e.quotedbl = 420;
- e.numbersign = 500;
- e.dollar = 500;
- e.percent = 833;
- e.ampersand = 778;
- e.quoteright = 333;
- e.parenleft = 333;
- e.parenright = 333;
- e.asterisk = 500;
- e.plus = 675;
- e.comma = 250;
- e.hyphen = 333;
- e.period = 250;
- e.slash = 278;
- e.zero = 500;
- e.one = 500;
- e.two = 500;
- e.three = 500;
- e.four = 500;
- e.five = 500;
- e.six = 500;
- e.seven = 500;
- e.eight = 500;
- e.nine = 500;
- e.colon = 333;
- e.semicolon = 333;
- e.less = 675;
- e.equal = 675;
- e.greater = 675;
- e.question = 500;
- e.at = 920;
- e.A = 611;
- e.B = 611;
- e.C = 667;
- e.D = 722;
- e.E = 611;
- e.F = 611;
- e.G = 722;
- e.H = 722;
- e.I = 333;
- e.J = 444;
- e.K = 667;
- e.L = 556;
- e.M = 833;
- e.N = 667;
- e.O = 722;
- e.P = 611;
- e.Q = 722;
- e.R = 611;
- e.S = 500;
- e.T = 556;
- e.U = 722;
- e.V = 611;
- e.W = 833;
- e.X = 611;
- e.Y = 556;
- e.Z = 556;
- e.bracketleft = 389;
- e.backslash = 278;
- e.bracketright = 389;
- e.asciicircum = 422;
- e.underscore = 500;
- e.quoteleft = 333;
- e.a = 500;
- e.b = 500;
- e.c = 444;
- e.d = 500;
- e.e = 444;
- e.f = 278;
- e.g = 500;
- e.h = 500;
- e.i = 278;
- e.j = 278;
- e.k = 444;
- e.l = 278;
- e.m = 722;
- e.n = 500;
- e.o = 500;
- e.p = 500;
- e.q = 500;
- e.r = 389;
- e.s = 389;
- e.t = 278;
- e.u = 500;
- e.v = 444;
- e.w = 667;
- e.x = 444;
- e.y = 444;
- e.z = 389;
- e.braceleft = 400;
- e.bar = 275;
- e.braceright = 400;
- e.asciitilde = 541;
- e.exclamdown = 389;
- e.cent = 500;
- e.sterling = 500;
- e.fraction = 167;
- e.yen = 500;
- e.florin = 500;
- e.section = 500;
- e.currency = 500;
- e.quotesingle = 214;
- e.quotedblleft = 556;
- e.guillemotleft = 500;
- e.guilsinglleft = 333;
- e.guilsinglright = 333;
- e.fi = 500;
- e.fl = 500;
- e.endash = 500;
- e.dagger = 500;
- e.daggerdbl = 500;
- e.periodcentered = 250;
- e.paragraph = 523;
- e.bullet = 350;
- e.quotesinglbase = 333;
- e.quotedblbase = 556;
- e.quotedblright = 556;
- e.guillemotright = 500;
- e.ellipsis = 889;
- e.perthousand = 1e3;
- e.questiondown = 500;
- e.grave = 333;
- e.acute = 333;
- e.circumflex = 333;
- e.tilde = 333;
- e.macron = 333;
- e.breve = 333;
- e.dotaccent = 333;
- e.dieresis = 333;
- e.ring = 333;
- e.cedilla = 333;
- e.hungarumlaut = 333;
- e.ogonek = 333;
- e.caron = 333;
- e.emdash = 889;
- e.AE = 889;
- e.ordfeminine = 276;
- e.Lslash = 556;
- e.Oslash = 722;
- e.OE = 944;
- e.ordmasculine = 310;
- e.ae = 667;
- e.dotlessi = 278;
- e.lslash = 278;
- e.oslash = 500;
- e.oe = 667;
- e.germandbls = 500;
- e.Idieresis = 333;
- e.eacute = 444;
- e.abreve = 500;
- e.uhungarumlaut = 500;
- e.ecaron = 444;
- e.Ydieresis = 556;
- e.divide = 675;
- e.Yacute = 556;
- e.Acircumflex = 611;
- e.aacute = 500;
- e.Ucircumflex = 722;
- e.yacute = 444;
- e.scommaaccent = 389;
- e.ecircumflex = 444;
- e.Uring = 722;
- e.Udieresis = 722;
- e.aogonek = 500;
- e.Uacute = 722;
- e.uogonek = 500;
- e.Edieresis = 611;
- e.Dcroat = 722;
- e.commaaccent = 250;
- e.copyright = 760;
- e.Emacron = 611;
- e.ccaron = 444;
- e.aring = 500;
- e.Ncommaaccent = 667;
- e.lacute = 278;
- e.agrave = 500;
- e.Tcommaaccent = 556;
- e.Cacute = 667;
- e.atilde = 500;
- e.Edotaccent = 611;
- e.scaron = 389;
- e.scedilla = 389;
- e.iacute = 278;
- e.lozenge = 471;
- e.Rcaron = 611;
- e.Gcommaaccent = 722;
- e.ucircumflex = 500;
- e.acircumflex = 500;
- e.Amacron = 611;
- e.rcaron = 389;
- e.ccedilla = 444;
- e.Zdotaccent = 556;
- e.Thorn = 611;
- e.Omacron = 722;
- e.Racute = 611;
- e.Sacute = 500;
- e.dcaron = 544;
- e.Umacron = 722;
- e.uring = 500;
- e.threesuperior = 300;
- e.Ograve = 722;
- e.Agrave = 611;
- e.Abreve = 611;
- e.multiply = 675;
- e.uacute = 500;
- e.Tcaron = 556;
- e.partialdiff = 476;
- e.ydieresis = 444;
- e.Nacute = 667;
- e.icircumflex = 278;
- e.Ecircumflex = 611;
- e.adieresis = 500;
- e.edieresis = 444;
- e.cacute = 444;
- e.nacute = 500;
- e.umacron = 500;
- e.Ncaron = 667;
- e.Iacute = 333;
- e.plusminus = 675;
- e.brokenbar = 275;
- e.registered = 760;
- e.Gbreve = 722;
- e.Idotaccent = 333;
- e.summation = 600;
- e.Egrave = 611;
- e.racute = 389;
- e.omacron = 500;
- e.Zacute = 556;
- e.Zcaron = 556;
- e.greaterequal = 549;
- e.Eth = 722;
- e.Ccedilla = 667;
- e.lcommaaccent = 278;
- e.tcaron = 300;
- e.eogonek = 444;
- e.Uogonek = 722;
- e.Aacute = 611;
- e.Adieresis = 611;
- e.egrave = 444;
- e.zacute = 389;
- e.iogonek = 278;
- e.Oacute = 722;
- e.oacute = 500;
- e.amacron = 500;
- e.sacute = 389;
- e.idieresis = 278;
- e.Ocircumflex = 722;
- e.Ugrave = 722;
- e.Delta = 612;
- e.thorn = 500;
- e.twosuperior = 300;
- e.Odieresis = 722;
- e.mu = 500;
- e.igrave = 278;
- e.ohungarumlaut = 500;
- e.Eogonek = 611;
- e.dcroat = 500;
- e.threequarters = 750;
- e.Scedilla = 500;
- e.lcaron = 300;
- e.Kcommaaccent = 667;
- e.Lacute = 556;
- e.trademark = 980;
- e.edotaccent = 444;
- e.Igrave = 333;
- e.Imacron = 333;
- e.Lcaron = 611;
- e.onehalf = 750;
- e.lessequal = 549;
- e.ocircumflex = 500;
- e.ntilde = 500;
- e.Uhungarumlaut = 722;
- e.Eacute = 611;
- e.emacron = 444;
- e.gbreve = 500;
- e.onequarter = 750;
- e.Scaron = 500;
- e.Scommaaccent = 500;
- e.Ohungarumlaut = 722;
- e.degree = 400;
- e.ograve = 500;
- e.Ccaron = 667;
- e.ugrave = 500;
- e.radical = 453;
- e.Dcaron = 722;
- e.rcommaaccent = 389;
- e.Ntilde = 667;
- e.otilde = 500;
- e.Rcommaaccent = 611;
- e.Lcommaaccent = 556;
- e.Atilde = 611;
- e.Aogonek = 611;
- e.Aring = 611;
- e.Otilde = 722;
- e.zdotaccent = 389;
- e.Ecaron = 611;
- e.Iogonek = 333;
- e.kcommaaccent = 444;
- e.minus = 675;
- e.Icircumflex = 333;
- e.ncaron = 500;
- e.tcommaaccent = 278;
- e.logicalnot = 675;
- e.odieresis = 500;
- e.udieresis = 500;
- e.notequal = 549;
- e.gcommaaccent = 500;
- e.eth = 500;
- e.zcaron = 389;
- e.ncommaaccent = 500;
- e.onesuperior = 300;
- e.imacron = 278;
- e.Euro = 500;
- });
- e.ZapfDingbats = (0, r.getLookupTableFactory)(function (e) {
- e.space = 278;
- e.a1 = 974;
- e.a2 = 961;
- e.a202 = 974;
- e.a3 = 980;
- e.a4 = 719;
- e.a5 = 789;
- e.a119 = 790;
- e.a118 = 791;
- e.a117 = 690;
- e.a11 = 960;
- e.a12 = 939;
- e.a13 = 549;
- e.a14 = 855;
- e.a15 = 911;
- e.a16 = 933;
- e.a105 = 911;
- e.a17 = 945;
- e.a18 = 974;
- e.a19 = 755;
- e.a20 = 846;
- e.a21 = 762;
- e.a22 = 761;
- e.a23 = 571;
- e.a24 = 677;
- e.a25 = 763;
- e.a26 = 760;
- e.a27 = 759;
- e.a28 = 754;
- e.a6 = 494;
- e.a7 = 552;
- e.a8 = 537;
- e.a9 = 577;
- e.a10 = 692;
- e.a29 = 786;
- e.a30 = 788;
- e.a31 = 788;
- e.a32 = 790;
- e.a33 = 793;
- e.a34 = 794;
- e.a35 = 816;
- e.a36 = 823;
- e.a37 = 789;
- e.a38 = 841;
- e.a39 = 823;
- e.a40 = 833;
- e.a41 = 816;
- e.a42 = 831;
- e.a43 = 923;
- e.a44 = 744;
- e.a45 = 723;
- e.a46 = 749;
- e.a47 = 790;
- e.a48 = 792;
- e.a49 = 695;
- e.a50 = 776;
- e.a51 = 768;
- e.a52 = 792;
- e.a53 = 759;
- e.a54 = 707;
- e.a55 = 708;
- e.a56 = 682;
- e.a57 = 701;
- e.a58 = 826;
- e.a59 = 815;
- e.a60 = 789;
- e.a61 = 789;
- e.a62 = 707;
- e.a63 = 687;
- e.a64 = 696;
- e.a65 = 689;
- e.a66 = 786;
- e.a67 = 787;
- e.a68 = 713;
- e.a69 = 791;
- e.a70 = 785;
- e.a71 = 791;
- e.a72 = 873;
- e.a73 = 761;
- e.a74 = 762;
- e.a203 = 762;
- e.a75 = 759;
- e.a204 = 759;
- e.a76 = 892;
- e.a77 = 892;
- e.a78 = 788;
- e.a79 = 784;
- e.a81 = 438;
- e.a82 = 138;
- e.a83 = 277;
- e.a84 = 415;
- e.a97 = 392;
- e.a98 = 392;
- e.a99 = 668;
- e.a100 = 668;
- e.a89 = 390;
- e.a90 = 390;
- e.a93 = 317;
- e.a94 = 317;
- e.a91 = 276;
- e.a92 = 276;
- e.a205 = 509;
- e.a85 = 509;
- e.a206 = 410;
- e.a86 = 410;
- e.a87 = 234;
- e.a88 = 234;
- e.a95 = 334;
- e.a96 = 334;
- e.a101 = 732;
- e.a102 = 544;
- e.a103 = 544;
- e.a104 = 910;
- e.a106 = 667;
- e.a107 = 760;
- e.a108 = 760;
- e.a112 = 776;
- e.a111 = 595;
- e.a110 = 694;
- e.a109 = 626;
- e.a120 = 788;
- e.a121 = 788;
- e.a122 = 788;
- e.a123 = 788;
- e.a124 = 788;
- e.a125 = 788;
- e.a126 = 788;
- e.a127 = 788;
- e.a128 = 788;
- e.a129 = 788;
- e.a130 = 788;
- e.a131 = 788;
- e.a132 = 788;
- e.a133 = 788;
- e.a134 = 788;
- e.a135 = 788;
- e.a136 = 788;
- e.a137 = 788;
- e.a138 = 788;
- e.a139 = 788;
- e.a140 = 788;
- e.a141 = 788;
- e.a142 = 788;
- e.a143 = 788;
- e.a144 = 788;
- e.a145 = 788;
- e.a146 = 788;
- e.a147 = 788;
- e.a148 = 788;
- e.a149 = 788;
- e.a150 = 788;
- e.a151 = 788;
- e.a152 = 788;
- e.a153 = 788;
- e.a154 = 788;
- e.a155 = 788;
- e.a156 = 788;
- e.a157 = 788;
- e.a158 = 788;
- e.a159 = 788;
- e.a160 = 894;
- e.a161 = 838;
- e.a163 = 1016;
- e.a164 = 458;
- e.a196 = 748;
- e.a165 = 924;
- e.a192 = 748;
- e.a166 = 918;
- e.a167 = 927;
- e.a168 = 928;
- e.a169 = 928;
- e.a170 = 834;
- e.a171 = 873;
- e.a172 = 828;
- e.a173 = 924;
- e.a162 = 924;
- e.a174 = 917;
- e.a175 = 930;
- e.a176 = 931;
- e.a177 = 463;
- e.a178 = 883;
- e.a179 = 836;
- e.a193 = 836;
- e.a180 = 867;
- e.a199 = 867;
- e.a181 = 696;
- e.a200 = 696;
- e.a182 = 874;
- e.a201 = 874;
- e.a183 = 760;
- e.a184 = 946;
- e.a197 = 771;
- e.a185 = 865;
- e.a194 = 771;
- e.a198 = 888;
- e.a186 = 967;
- e.a195 = 888;
- e.a187 = 831;
- e.a188 = 873;
- e.a189 = 927;
- e.a190 = 970;
- e.a191 = 918;
- });
- });
- t.getMetrics = i;
- const n = (0, r.getLookupTableFactory)(function (e) {
- e.Courier = { ascent: 629, descent: -157, capHeight: 562, xHeight: -426 };
- e['Courier-Bold'] = { ascent: 629, descent: -157, capHeight: 562, xHeight: 439 };
- e['Courier-Oblique'] = { ascent: 629, descent: -157, capHeight: 562, xHeight: 426 };
- e['Courier-BoldOblique'] = { ascent: 629, descent: -157, capHeight: 562, xHeight: 426 };
- e.Helvetica = { ascent: 718, descent: -207, capHeight: 718, xHeight: 523 };
- e['Helvetica-Bold'] = { ascent: 718, descent: -207, capHeight: 718, xHeight: 532 };
- e['Helvetica-Oblique'] = { ascent: 718, descent: -207, capHeight: 718, xHeight: 523 };
- e['Helvetica-BoldOblique'] = {
- ascent: 718,
- descent: -207,
- capHeight: 718,
- xHeight: 532,
- };
- e['Times-Roman'] = { ascent: 683, descent: -217, capHeight: 662, xHeight: 450 };
- e['Times-Bold'] = { ascent: 683, descent: -217, capHeight: 676, xHeight: 461 };
- e['Times-Italic'] = { ascent: 683, descent: -217, capHeight: 653, xHeight: 441 };
- e['Times-BoldItalic'] = { ascent: 683, descent: -217, capHeight: 669, xHeight: 462 };
- e.Symbol = {
- ascent: Math.NaN,
- descent: Math.NaN,
- capHeight: Math.NaN,
- xHeight: Math.NaN,
- };
- e.ZapfDingbats = {
- ascent: Math.NaN,
- descent: Math.NaN,
- capHeight: Math.NaN,
- xHeight: Math.NaN,
- };
- });
- t.getFontBasicMetrics = n;
- },
- (e, t) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.GlyfTable = void 0;
- t.GlyfTable = class GlyfTable {
- constructor({ glyfTable: e, isGlyphLocationsLong: t, locaTable: a, numGlyphs: r }) {
- this.glyphs = [];
- const i = new DataView(a.buffer, a.byteOffset, a.byteLength),
- n = new DataView(e.buffer, e.byteOffset, e.byteLength),
- s = t ? 4 : 2;
- let o = t ? i.getUint32(0) : 2 * i.getUint16(0),
- c = 0;
- for (let e = 0; e < r; e++) {
- c += s;
- const e = t ? i.getUint32(c) : 2 * i.getUint16(c);
- if (e === o) {
- this.glyphs.push(new Glyph({}));
- continue;
- }
- const a = Glyph.parse(o, n);
- this.glyphs.push(a);
- o = e;
- }
- }
- getSize() {
- return this.glyphs.reduce((e, t) => e + ((t.getSize() + 3) & -4), 0);
- }
- write() {
- const e = this.getSize(),
- t = new DataView(new ArrayBuffer(e)),
- a = e > 131070,
- r = a ? 4 : 2,
- i = new DataView(new ArrayBuffer((this.glyphs.length + 1) * r));
- a ? i.setUint32(0, 0) : i.setUint16(0, 0);
- let n = 0,
- s = 0;
- for (const e of this.glyphs) {
- n += e.write(n, t);
- n = (n + 3) & -4;
- s += r;
- a ? i.setUint32(s, n) : i.setUint16(s, n >> 1);
- }
- return {
- isLocationLong: a,
- loca: new Uint8Array(i.buffer),
- glyf: new Uint8Array(t.buffer),
- };
- }
- scale(e) {
- for (let t = 0, a = this.glyphs.length; t < a; t++) this.glyphs[t].scale(e[t]);
- }
- };
- class Glyph {
- constructor({ header: e = null, simple: t = null, composites: a = null }) {
- this.header = e;
- this.simple = t;
- this.composites = a;
- }
- static parse(e, t) {
- const [a, r] = GlyphHeader.parse(e, t);
- e += a;
- if (r.numberOfContours < 0) {
- const a = [];
- for (;;) {
- const [r, i] = CompositeGlyph.parse(e, t);
- e += r;
- a.push(i);
- if (!(32 & i.flags)) break;
- }
- return new Glyph({ header: r, composites: a });
- }
- const i = SimpleGlyph.parse(e, t, r.numberOfContours);
- return new Glyph({ header: r, simple: i });
- }
- getSize() {
- if (!this.header) return 0;
- const e = this.simple
- ? this.simple.getSize()
- : this.composites.reduce((e, t) => e + t.getSize(), 0);
- return this.header.getSize() + e;
- }
- write(e, t) {
- if (!this.header) return 0;
- const a = e;
- e += this.header.write(e, t);
- if (this.simple) e += this.simple.write(e, t);
- else for (const a of this.composites) e += a.write(e, t);
- return e - a;
- }
- scale(e) {
- if (!this.header) return;
- const t = (this.header.xMin + this.header.xMax) / 2;
- this.header.scale(t, e);
- if (this.simple) this.simple.scale(t, e);
- else for (const a of this.composites) a.scale(t, e);
- }
- }
- class GlyphHeader {
- constructor({ numberOfContours: e, xMin: t, yMin: a, xMax: r, yMax: i }) {
- this.numberOfContours = e;
- this.xMin = t;
- this.yMin = a;
- this.xMax = r;
- this.yMax = i;
- }
- static parse(e, t) {
- return [
- 10,
- new GlyphHeader({
- numberOfContours: t.getInt16(e),
- xMin: t.getInt16(e + 2),
- yMin: t.getInt16(e + 4),
- xMax: t.getInt16(e + 6),
- yMax: t.getInt16(e + 8),
- }),
- ];
- }
- getSize() {
- return 10;
- }
- write(e, t) {
- t.setInt16(e, this.numberOfContours);
- t.setInt16(e + 2, this.xMin);
- t.setInt16(e + 4, this.yMin);
- t.setInt16(e + 6, this.xMax);
- t.setInt16(e + 8, this.yMax);
- return 10;
- }
- scale(e, t) {
- this.xMin = Math.round(e + (this.xMin - e) * t);
- this.xMax = Math.round(e + (this.xMax - e) * t);
- }
- }
- class Contour {
- constructor({ flags: e, xCoordinates: t, yCoordinates: a }) {
- this.xCoordinates = t;
- this.yCoordinates = a;
- this.flags = e;
- }
- }
- class SimpleGlyph {
- constructor({ contours: e, instructions: t }) {
- this.contours = e;
- this.instructions = t;
- }
- static parse(e, t, a) {
- const r = [];
- for (let i = 0; i < a; i++) {
- const a = t.getUint16(e);
- e += 2;
- r.push(a);
- }
- const i = r[a - 1] + 1,
- n = t.getUint16(e);
- e += 2;
- const s = new Uint8Array(t).slice(e, e + n);
- e += n;
- const o = [];
- for (let a = 0; a < i; e++, a++) {
- let r = t.getUint8(e);
- o.push(r);
- if (8 & r) {
- const i = t.getUint8(++e);
- r ^= 8;
- for (let e = 0; e < i; e++) o.push(r);
- a += i;
- }
- }
- const c = [];
- let l = [],
- h = [],
- u = [];
- const d = [];
- let f = 0,
- g = 0;
- for (let a = 0; a < i; a++) {
- const i = o[a];
- if (2 & i) {
- const a = t.getUint8(e++);
- g += 16 & i ? a : -a;
- l.push(g);
- } else if (16 & i) l.push(g);
- else {
- g += t.getInt16(e);
- e += 2;
- l.push(g);
- }
- if (r[f] === a) {
- f++;
- c.push(l);
- l = [];
- }
- }
- g = 0;
- f = 0;
- for (let a = 0; a < i; a++) {
- const i = o[a];
- if (4 & i) {
- const a = t.getUint8(e++);
- g += 32 & i ? a : -a;
- h.push(g);
- } else if (32 & i) h.push(g);
- else {
- g += t.getInt16(e);
- e += 2;
- h.push(g);
- }
- u.push((1 & i) | (64 & i));
- if (r[f] === a) {
- l = c[f];
- f++;
- d.push(new Contour({ flags: u, xCoordinates: l, yCoordinates: h }));
- h = [];
- u = [];
- }
- }
- return new SimpleGlyph({ contours: d, instructions: s });
- }
- getSize() {
- let e = 2 * this.contours.length + 2 + this.instructions.length,
- t = 0,
- a = 0;
- for (const r of this.contours) {
- e += r.flags.length;
- for (let i = 0, n = r.xCoordinates.length; i < n; i++) {
- const n = r.xCoordinates[i],
- s = r.yCoordinates[i];
- let o = Math.abs(n - t);
- o > 255 ? (e += 2) : o > 0 && (e += 1);
- t = n;
- o = Math.abs(s - a);
- o > 255 ? (e += 2) : o > 0 && (e += 1);
- a = s;
- }
- }
- return e;
- }
- write(e, t) {
- const a = e,
- r = [],
- i = [],
- n = [];
- let s = 0,
- o = 0;
- for (const a of this.contours) {
- for (let e = 0, t = a.xCoordinates.length; e < t; e++) {
- let t = a.flags[e];
- const c = a.xCoordinates[e];
- let l = c - s;
- if (0 === l) {
- t |= 16;
- r.push(0);
- } else {
- const e = Math.abs(l);
- if (e <= 255) {
- t |= l >= 0 ? 18 : 2;
- r.push(e);
- } else r.push(l);
- }
- s = c;
- const h = a.yCoordinates[e];
- l = h - o;
- if (0 === l) {
- t |= 32;
- i.push(0);
- } else {
- const e = Math.abs(l);
- if (e <= 255) {
- t |= l >= 0 ? 36 : 4;
- i.push(e);
- } else i.push(l);
- }
- o = h;
- n.push(t);
- }
- t.setUint16(e, r.length - 1);
- e += 2;
- }
- t.setUint16(e, this.instructions.length);
- e += 2;
- if (this.instructions.length) {
- new Uint8Array(t.buffer, 0, t.buffer.byteLength).set(this.instructions, e);
- e += this.instructions.length;
- }
- for (const a of n) t.setUint8(e++, a);
- for (let a = 0, i = r.length; a < i; a++) {
- const i = r[a],
- s = n[a];
- if (2 & s) t.setUint8(e++, i);
- else if (!(16 & s)) {
- t.setInt16(e, i);
- e += 2;
- }
- }
- for (let a = 0, r = i.length; a < r; a++) {
- const r = i[a],
- s = n[a];
- if (4 & s) t.setUint8(e++, r);
- else if (!(32 & s)) {
- t.setInt16(e, r);
- e += 2;
- }
- }
- return e - a;
- }
- scale(e, t) {
- for (const a of this.contours)
- if (0 !== a.xCoordinates.length)
- for (let r = 0, i = a.xCoordinates.length; r < i; r++)
- a.xCoordinates[r] = Math.round(e + (a.xCoordinates[r] - e) * t);
- }
- }
- class CompositeGlyph {
- constructor({
- flags: e,
- glyphIndex: t,
- argument1: a,
- argument2: r,
- transf: i,
- instructions: n,
- }) {
- this.flags = e;
- this.glyphIndex = t;
- this.argument1 = a;
- this.argument2 = r;
- this.transf = i;
- this.instructions = n;
- }
- static parse(e, t) {
- const a = e,
- r = [];
- let i = t.getUint16(e);
- const n = t.getUint16(e + 2);
- e += 4;
- let s, o;
- if (1 & i) {
- if (2 & i) {
- s = t.getInt16(e);
- o = t.getInt16(e + 2);
- } else {
- s = t.getUint16(e);
- o = t.getUint16(e + 2);
- }
- e += 4;
- i ^= 1;
- } else {
- if (2 & i) {
- s = t.getInt8(e);
- o = t.getInt8(e + 1);
- } else {
- s = t.getUint8(e);
- o = t.getUint8(e + 1);
- }
- e += 2;
- }
- if (8 & i) {
- r.push(t.getUint16(e));
- e += 2;
- } else if (64 & i) {
- r.push(t.getUint16(e), t.getUint16(e + 2));
- e += 4;
- } else if (128 & i) {
- r.push(t.getUint16(e), t.getUint16(e + 2), t.getUint16(e + 4), t.getUint16(e + 6));
- e += 8;
- }
- let c = null;
- if (256 & i) {
- const a = t.getUint16(e);
- e += 2;
- c = new Uint8Array(t).slice(e, e + a);
- e += a;
- }
- return [
- e - a,
- new CompositeGlyph({
- flags: i,
- glyphIndex: n,
- argument1: s,
- argument2: o,
- transf: r,
- instructions: c,
- }),
- ];
- }
- getSize() {
- let e = 4 + 2 * this.transf.length;
- 256 & this.flags && (e += 2 + this.instructions.length);
- e += 2;
- 2 & this.flags
- ? (this.argument1 >= -128 &&
- this.argument1 <= 127 &&
- this.argument2 >= -128 &&
- this.argument2 <= 127) ||
- (e += 2)
- : (this.argument1 >= 0 &&
- this.argument1 <= 255 &&
- this.argument2 >= 0 &&
- this.argument2 <= 255) ||
- (e += 2);
- return e;
- }
- write(e, t) {
- const a = e;
- 2 & this.flags
- ? (this.argument1 >= -128 &&
- this.argument1 <= 127 &&
- this.argument2 >= -128 &&
- this.argument2 <= 127) ||
- (this.flags |= 1)
- : (this.argument1 >= 0 &&
- this.argument1 <= 255 &&
- this.argument2 >= 0 &&
- this.argument2 <= 255) ||
- (this.flags |= 1);
- t.setUint16(e, this.flags);
- t.setUint16(e + 2, this.glyphIndex);
- e += 4;
- if (1 & this.flags) {
- if (2 & this.flags) {
- t.setInt16(e, this.argument1);
- t.setInt16(e + 2, this.argument2);
- } else {
- t.setUint16(e, this.argument1);
- t.setUint16(e + 2, this.argument2);
- }
- e += 4;
- } else {
- t.setUint8(e, this.argument1);
- t.setUint8(e + 1, this.argument2);
- e += 2;
- }
- if (256 & this.flags) {
- t.setUint16(e, this.instructions.length);
- e += 2;
- if (this.instructions.length) {
- new Uint8Array(t.buffer, 0, t.buffer.byteLength).set(this.instructions, e);
- e += this.instructions.length;
- }
- }
- return e - a;
- }
- scale(e, t) {}
- }
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.OpenTypeFileBuilder = void 0;
- var r = a(3),
- i = a(2);
- function writeInt16(e, t, a) {
- e[t] = (a >> 8) & 255;
- e[t + 1] = 255 & a;
- }
- function writeInt32(e, t, a) {
- e[t] = (a >> 24) & 255;
- e[t + 1] = (a >> 16) & 255;
- e[t + 2] = (a >> 8) & 255;
- e[t + 3] = 255 & a;
- }
- function writeData(e, t, a) {
- if (a instanceof Uint8Array) e.set(a, t);
- else if ('string' == typeof a)
- for (let r = 0, i = a.length; r < i; r++) e[t++] = 255 & a.charCodeAt(r);
- else for (const r of a) e[t++] = 255 & r;
- }
- class OpenTypeFileBuilder {
- constructor(e) {
- this.sfnt = e;
- this.tables = Object.create(null);
- }
- static getSearchParams(e, t) {
- let a = 1,
- r = 0;
- for (; (a ^ e) > a; ) {
- a <<= 1;
- r++;
- }
- const i = a * t;
- return { range: i, entry: r, rangeShift: t * e - i };
- }
- toArray() {
- let e = this.sfnt;
- const t = this.tables,
- a = Object.keys(t);
- a.sort();
- const n = a.length;
- let s,
- o,
- c,
- l,
- h,
- u = 12 + 16 * n;
- const d = [u];
- for (s = 0; s < n; s++) {
- l = t[a[s]];
- u += ((l.length + 3) & -4) >>> 0;
- d.push(u);
- }
- const f = new Uint8Array(u);
- for (s = 0; s < n; s++) {
- l = t[a[s]];
- writeData(f, d[s], l);
- }
- 'true' === e && (e = (0, i.string32)(65536));
- f[0] = 255 & e.charCodeAt(0);
- f[1] = 255 & e.charCodeAt(1);
- f[2] = 255 & e.charCodeAt(2);
- f[3] = 255 & e.charCodeAt(3);
- writeInt16(f, 4, n);
- const g = OpenTypeFileBuilder.getSearchParams(n, 16);
- writeInt16(f, 6, g.range);
- writeInt16(f, 8, g.entry);
- writeInt16(f, 10, g.rangeShift);
- u = 12;
- for (s = 0; s < n; s++) {
- h = a[s];
- f[u] = 255 & h.charCodeAt(0);
- f[u + 1] = 255 & h.charCodeAt(1);
- f[u + 2] = 255 & h.charCodeAt(2);
- f[u + 3] = 255 & h.charCodeAt(3);
- let e = 0;
- for (o = d[s], c = d[s + 1]; o < c; o += 4) {
- e = (e + (0, r.readUint32)(f, o)) >>> 0;
- }
- writeInt32(f, u + 4, e);
- writeInt32(f, u + 8, d[s]);
- writeInt32(f, u + 12, t[h].length);
- u += 16;
- }
- return f;
- }
- addTable(e, t) {
- if (e in this.tables) throw new Error('Table ' + e + ' already exists');
- this.tables[e] = t;
- }
- }
- t.OpenTypeFileBuilder = OpenTypeFileBuilder;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.Type1Font = void 0;
- var r = a(35),
- i = a(2),
- n = a(38),
- s = a(3),
- o = a(8),
- c = a(49);
- function findBlock(e, t, a) {
- const r = e.length,
- i = t.length,
- n = r - i;
- let o = a,
- c = !1;
- for (; o < n; ) {
- let a = 0;
- for (; a < i && e[o + a] === t[a]; ) a++;
- if (a >= i) {
- o += a;
- for (; o < r && (0, s.isWhiteSpace)(e[o]); ) o++;
- c = !0;
- break;
- }
- o++;
- }
- return { found: c, length: o };
- }
- t.Type1Font = class Type1Font {
- constructor(e, t, a) {
- let r = a.length1,
- s = a.length2,
- l = t.peekBytes(6);
- const h = 128 === l[0] && 1 === l[1];
- if (h) {
- t.skip(6);
- r = (l[5] << 24) | (l[4] << 16) | (l[3] << 8) | l[2];
- }
- const u = (function getHeaderBlock(e, t) {
- const a = [101, 101, 120, 101, 99],
- r = e.pos;
- let n, s, c, l;
- try {
- n = e.getBytes(t);
- s = n.length;
- } catch (e) {}
- if (s === t) {
- c = findBlock(n, a, t - 2 * a.length);
- if (c.found && c.length === t) return { stream: new o.Stream(n), length: t };
- }
- (0, i.warn)('Invalid "Length1" property in Type1 font -- trying to recover.');
- e.pos = r;
- for (;;) {
- c = findBlock(e.peekBytes(2048), a, 0);
- if (0 === c.length) break;
- e.pos += c.length;
- if (c.found) {
- l = e.pos - r;
- break;
- }
- }
- e.pos = r;
- if (l) return { stream: new o.Stream(e.getBytes(l)), length: l };
- (0, i.warn)('Unable to recover "Length1" property in Type1 font -- using as is.');
- return { stream: new o.Stream(e.getBytes(t)), length: t };
- })(t, r);
- new c.Type1Parser(u.stream, !1, n.SEAC_ANALYSIS_ENABLED).extractFontHeader(a);
- if (h) {
- l = t.getBytes(6);
- s = (l[5] << 24) | (l[4] << 16) | (l[3] << 8) | l[2];
- }
- const d = (function getEexecBlock(e, t) {
- const a = e.getBytes();
- if (0 === a.length)
- throw new i.FormatError('getEexecBlock - no font program found.');
- return { stream: new o.Stream(a), length: a.length };
- })(t),
- f = new c.Type1Parser(d.stream, !0, n.SEAC_ANALYSIS_ENABLED).extractFontProgram(a);
- for (const e in f.properties) a[e] = f.properties[e];
- const g = f.charstrings,
- p = this.getType2Charstrings(g),
- m = this.getType2Subrs(f.subrs);
- this.charstrings = g;
- this.data = this.wrap(e, p, this.charstrings, m, a);
- this.seacs = this.getSeacs(f.charstrings);
- }
- get numGlyphs() {
- return this.charstrings.length + 1;
- }
- getCharset() {
- const e = ['.notdef'];
- for (const { glyphName: t } of this.charstrings) e.push(t);
- return e;
- }
- getGlyphMapping(e) {
- const t = this.charstrings;
- if (e.composite) {
- const a = Object.create(null);
- for (let r = 0, i = t.length; r < i; r++) {
- a[e.cMap.charCodeOf(r)] = r + 1;
- }
- return a;
- }
- const a = ['.notdef'];
- let r, i;
- for (i = 0; i < t.length; i++) a.push(t[i].glyphName);
- const s = e.builtInEncoding;
- if (s) {
- r = Object.create(null);
- for (const e in s) {
- i = a.indexOf(s[e]);
- i >= 0 && (r[e] = i);
- }
- }
- return (0, n.type1FontGlyphMapping)(e, r, a);
- }
- hasGlyphId(e) {
- if (e < 0 || e >= this.numGlyphs) return !1;
- if (0 === e) return !0;
- return this.charstrings[e - 1].charstring.length > 0;
- }
- getSeacs(e) {
- const t = [];
- for (let a = 0, r = e.length; a < r; a++) {
- const r = e[a];
- r.seac && (t[a + 1] = r.seac);
- }
- return t;
- }
- getType2Charstrings(e) {
- const t = [];
- for (const a of e) t.push(a.charstring);
- return t;
- }
- getType2Subrs(e) {
- let t = 0;
- const a = e.length;
- t = a < 1133 ? 107 : a < 33769 ? 1131 : 32768;
- const r = [];
- let i;
- for (i = 0; i < t; i++) r.push([11]);
- for (i = 0; i < a; i++) r.push(e[i]);
- return r;
- }
- wrap(e, t, a, i, n) {
- const s = new r.CFF();
- s.header = new r.CFFHeader(1, 0, 4, 4);
- s.names = [e];
- const o = new r.CFFTopDict();
- o.setByName('version', 391);
- o.setByName('Notice', 392);
- o.setByName('FullName', 393);
- o.setByName('FamilyName', 394);
- o.setByName('Weight', 395);
- o.setByName('Encoding', null);
- o.setByName('FontMatrix', n.fontMatrix);
- o.setByName('FontBBox', n.bbox);
- o.setByName('charset', null);
- o.setByName('CharStrings', null);
- o.setByName('Private', null);
- s.topDict = o;
- const c = new r.CFFStrings();
- c.add('Version 0.11');
- c.add('See original notice');
- c.add(e);
- c.add(e);
- c.add('Medium');
- s.strings = c;
- s.globalSubrIndex = new r.CFFIndex();
- const l = t.length,
- h = ['.notdef'];
- let u, d;
- for (u = 0; u < l; u++) {
- const e = a[u].glyphName;
- -1 === r.CFFStandardStrings.indexOf(e) && c.add(e);
- h.push(e);
- }
- s.charset = new r.CFFCharset(!1, 0, h);
- const f = new r.CFFIndex();
- f.add([139, 14]);
- for (u = 0; u < l; u++) f.add(t[u]);
- s.charStrings = f;
- const g = new r.CFFPrivateDict();
- g.setByName('Subrs', null);
- const p = [
- 'BlueValues',
- 'OtherBlues',
- 'FamilyBlues',
- 'FamilyOtherBlues',
- 'StemSnapH',
- 'StemSnapV',
- 'BlueShift',
- 'BlueFuzz',
- 'BlueScale',
- 'LanguageGroup',
- 'ExpansionFactor',
- 'ForceBold',
- 'StdHW',
- 'StdVW',
- ];
- for (u = 0, d = p.length; u < d; u++) {
- const e = p[u];
- if (!(e in n.privateData)) continue;
- const t = n.privateData[e];
- if (Array.isArray(t)) for (let e = t.length - 1; e > 0; e--) t[e] -= t[e - 1];
- g.setByName(e, t);
- }
- s.topDict.privateDict = g;
- const m = new r.CFFIndex();
- for (u = 0, d = i.length; u < d; u++) m.add(i[u]);
- g.subrsIndex = m;
- return new r.CFFCompiler(s).compile();
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.Type1Parser = void 0;
- var r = a(37),
- i = a(3),
- n = a(8),
- s = a(2);
- const o = [4],
- c = [5],
- l = [6],
- h = [7],
- u = [8],
- d = [12, 35],
- f = [14],
- g = [21],
- p = [22],
- m = [30],
- b = [31];
- class Type1CharString {
- constructor() {
- this.width = 0;
- this.lsb = 0;
- this.flexing = !1;
- this.output = [];
- this.stack = [];
- }
- convert(e, t, a) {
- const r = e.length;
- let i,
- n,
- y,
- w = !1;
- for (let S = 0; S < r; S++) {
- let r = e[S];
- if (r < 32) {
- 12 === r && (r = (r << 8) + e[++S]);
- switch (r) {
- case 1:
- case 3:
- case 9:
- case 3072:
- case 3073:
- case 3074:
- case 3105:
- this.stack = [];
- break;
- case 4:
- if (this.flexing) {
- if (this.stack.length < 1) {
- w = !0;
- break;
- }
- const e = this.stack.pop();
- this.stack.push(0, e);
- break;
- }
- w = this.executeCommand(1, o);
- break;
- case 5:
- w = this.executeCommand(2, c);
- break;
- case 6:
- w = this.executeCommand(1, l);
- break;
- case 7:
- w = this.executeCommand(1, h);
- break;
- case 8:
- w = this.executeCommand(6, u);
- break;
- case 10:
- if (this.stack.length < 1) {
- w = !0;
- break;
- }
- y = this.stack.pop();
- if (!t[y]) {
- w = !0;
- break;
- }
- w = this.convert(t[y], t, a);
- break;
- case 11:
- return w;
- case 13:
- if (this.stack.length < 2) {
- w = !0;
- break;
- }
- i = this.stack.pop();
- n = this.stack.pop();
- this.lsb = n;
- this.width = i;
- this.stack.push(i, n);
- w = this.executeCommand(2, p);
- break;
- case 14:
- this.output.push(f[0]);
- break;
- case 21:
- if (this.flexing) break;
- w = this.executeCommand(2, g);
- break;
- case 22:
- if (this.flexing) {
- this.stack.push(0);
- break;
- }
- w = this.executeCommand(1, p);
- break;
- case 30:
- w = this.executeCommand(4, m);
- break;
- case 31:
- w = this.executeCommand(4, b);
- break;
- case 3078:
- if (a) {
- const e = this.stack.at(-5);
- this.seac = this.stack.splice(-4, 4);
- this.seac[0] += this.lsb - e;
- w = this.executeCommand(0, f);
- } else w = this.executeCommand(4, f);
- break;
- case 3079:
- if (this.stack.length < 4) {
- w = !0;
- break;
- }
- this.stack.pop();
- i = this.stack.pop();
- const e = this.stack.pop();
- n = this.stack.pop();
- this.lsb = n;
- this.width = i;
- this.stack.push(i, n, e);
- w = this.executeCommand(3, g);
- break;
- case 3084:
- if (this.stack.length < 2) {
- w = !0;
- break;
- }
- const S = this.stack.pop(),
- x = this.stack.pop();
- this.stack.push(x / S);
- break;
- case 3088:
- if (this.stack.length < 2) {
- w = !0;
- break;
- }
- y = this.stack.pop();
- const C = this.stack.pop();
- if (0 === y && 3 === C) {
- const e = this.stack.splice(-17, 17);
- this.stack.push(
- e[2] + e[0],
- e[3] + e[1],
- e[4],
- e[5],
- e[6],
- e[7],
- e[8],
- e[9],
- e[10],
- e[11],
- e[12],
- e[13],
- e[14],
- );
- w = this.executeCommand(13, d, !0);
- this.flexing = !1;
- this.stack.push(e[15], e[16]);
- } else 1 === y && 0 === C && (this.flexing = !0);
- break;
- case 3089:
- break;
- default:
- (0, s.warn)('Unknown type 1 charstring command of "' + r + '"');
- }
- if (w) break;
- } else {
- r <= 246
- ? (r -= 139)
- : (r =
- r <= 250
- ? 256 * (r - 247) + e[++S] + 108
- : r <= 254
- ? -256 * (r - 251) - e[++S] - 108
- : ((255 & e[++S]) << 24) |
- ((255 & e[++S]) << 16) |
- ((255 & e[++S]) << 8) |
- ((255 & e[++S]) << 0));
- this.stack.push(r);
- }
- }
- return w;
- }
- executeCommand(e, t, a) {
- const r = this.stack.length;
- if (e > r) return !0;
- const i = r - e;
- for (let e = i; e < r; e++) {
- let t = this.stack[e];
- if (Number.isInteger(t)) this.output.push(28, (t >> 8) & 255, 255 & t);
- else {
- t = (65536 * t) | 0;
- this.output.push(255, (t >> 24) & 255, (t >> 16) & 255, (t >> 8) & 255, 255 & t);
- }
- }
- this.output.push(...t);
- a ? this.stack.splice(i, e) : (this.stack.length = 0);
- return !1;
- }
- }
- function isHexDigit(e) {
- return (e >= 48 && e <= 57) || (e >= 65 && e <= 70) || (e >= 97 && e <= 102);
- }
- function decrypt(e, t, a) {
- if (a >= e.length) return new Uint8Array(0);
- let r,
- i,
- n = 0 | t;
- for (r = 0; r < a; r++) n = (52845 * (e[r] + n) + 22719) & 65535;
- const s = e.length - a,
- o = new Uint8Array(s);
- for (r = a, i = 0; i < s; r++, i++) {
- const t = e[r];
- o[i] = t ^ (n >> 8);
- n = (52845 * (t + n) + 22719) & 65535;
- }
- return o;
- }
- function isSpecial(e) {
- return (
- 47 === e || 91 === e || 93 === e || 123 === e || 125 === e || 40 === e || 41 === e
- );
- }
- t.Type1Parser = class Type1Parser {
- constructor(e, t, a) {
- if (t) {
- const t = e.getBytes(),
- a = !(
- (isHexDigit(t[0]) || (0, i.isWhiteSpace)(t[0])) &&
- isHexDigit(t[1]) &&
- isHexDigit(t[2]) &&
- isHexDigit(t[3]) &&
- isHexDigit(t[4]) &&
- isHexDigit(t[5]) &&
- isHexDigit(t[6]) &&
- isHexDigit(t[7])
- );
- e = new n.Stream(
- a
- ? decrypt(t, 55665, 4)
- : (function decryptAscii(e, t, a) {
- let r = 0 | t;
- const i = e.length,
- n = new Uint8Array(i >>> 1);
- let s, o;
- for (s = 0, o = 0; s < i; s++) {
- const t = e[s];
- if (!isHexDigit(t)) continue;
- s++;
- let a;
- for (; s < i && !isHexDigit((a = e[s])); ) s++;
- if (s < i) {
- const e = parseInt(String.fromCharCode(t, a), 16);
- n[o++] = e ^ (r >> 8);
- r = (52845 * (e + r) + 22719) & 65535;
- }
- }
- return n.slice(a, o);
- })(t, 55665, 4),
- );
- }
- this.seacAnalysisEnabled = !!a;
- this.stream = e;
- this.nextChar();
- }
- readNumberArray() {
- this.getToken();
- const e = [];
- for (;;) {
- const t = this.getToken();
- if (null === t || ']' === t || '}' === t) break;
- e.push(parseFloat(t || 0));
- }
- return e;
- }
- readNumber() {
- const e = this.getToken();
- return parseFloat(e || 0);
- }
- readInt() {
- const e = this.getToken();
- return 0 | parseInt(e || 0, 10);
- }
- readBoolean() {
- return 'true' === this.getToken() ? 1 : 0;
- }
- nextChar() {
- return (this.currentChar = this.stream.getByte());
- }
- prevChar() {
- this.stream.skip(-2);
- return (this.currentChar = this.stream.getByte());
- }
- getToken() {
- let e = !1,
- t = this.currentChar;
- for (;;) {
- if (-1 === t) return null;
- if (e) (10 !== t && 13 !== t) || (e = !1);
- else if (37 === t) e = !0;
- else if (!(0, i.isWhiteSpace)(t)) break;
- t = this.nextChar();
- }
- if (isSpecial(t)) {
- this.nextChar();
- return String.fromCharCode(t);
- }
- let a = '';
- do {
- a += String.fromCharCode(t);
- t = this.nextChar();
- } while (t >= 0 && !(0, i.isWhiteSpace)(t) && !isSpecial(t));
- return a;
- }
- readCharStrings(e, t) {
- return -1 === t ? e : decrypt(e, 4330, t);
- }
- extractFontProgram(e) {
- const t = this.stream,
- a = [],
- r = [],
- i = Object.create(null);
- i.lenIV = 4;
- const n = { subrs: [], charstrings: [], properties: { privateData: i } };
- let s, o, c, l;
- for (; null !== (s = this.getToken()); )
- if ('/' === s) {
- s = this.getToken();
- switch (s) {
- case 'CharStrings':
- this.getToken();
- this.getToken();
- this.getToken();
- this.getToken();
- for (;;) {
- s = this.getToken();
- if (null === s || 'end' === s) break;
- if ('/' !== s) continue;
- const e = this.getToken();
- o = this.readInt();
- this.getToken();
- c = o > 0 ? t.getBytes(o) : new Uint8Array(0);
- l = n.properties.privateData.lenIV;
- const a = this.readCharStrings(c, l);
- this.nextChar();
- s = this.getToken();
- 'noaccess' === s ? this.getToken() : '/' === s && this.prevChar();
- r.push({ glyph: e, encoded: a });
- }
- break;
- case 'Subrs':
- this.readInt();
- this.getToken();
- for (; 'dup' === this.getToken(); ) {
- const e = this.readInt();
- o = this.readInt();
- this.getToken();
- c = o > 0 ? t.getBytes(o) : new Uint8Array(0);
- l = n.properties.privateData.lenIV;
- const r = this.readCharStrings(c, l);
- this.nextChar();
- s = this.getToken();
- 'noaccess' === s && this.getToken();
- a[e] = r;
- }
- break;
- case 'BlueValues':
- case 'OtherBlues':
- case 'FamilyBlues':
- case 'FamilyOtherBlues':
- const e = this.readNumberArray();
- e.length > 0 && e.length, 0;
- break;
- case 'StemSnapH':
- case 'StemSnapV':
- n.properties.privateData[s] = this.readNumberArray();
- break;
- case 'StdHW':
- case 'StdVW':
- n.properties.privateData[s] = this.readNumberArray()[0];
- break;
- case 'BlueShift':
- case 'lenIV':
- case 'BlueFuzz':
- case 'BlueScale':
- case 'LanguageGroup':
- n.properties.privateData[s] = this.readNumber();
- break;
- case 'ExpansionFactor':
- n.properties.privateData[s] = this.readNumber() || 0.06;
- break;
- case 'ForceBold':
- n.properties.privateData[s] = this.readBoolean();
- }
- }
- for (const { encoded: t, glyph: i } of r) {
- const r = new Type1CharString(),
- s = r.convert(t, a, this.seacAnalysisEnabled);
- let o = r.output;
- s && (o = [14]);
- const c = { glyphName: i, charstring: o, width: r.width, lsb: r.lsb, seac: r.seac };
- '.notdef' === i ? n.charstrings.unshift(c) : n.charstrings.push(c);
- if (e.builtInEncoding) {
- const t = e.builtInEncoding.indexOf(i);
- t > -1 &&
- void 0 === e.widths[t] &&
- t >= e.firstChar &&
- t <= e.lastChar &&
- (e.widths[t] = r.width);
- }
- }
- return n;
- }
- extractFontHeader(e) {
- let t;
- for (; null !== (t = this.getToken()); )
- if ('/' === t) {
- t = this.getToken();
- switch (t) {
- case 'FontMatrix':
- const a = this.readNumberArray();
- e.fontMatrix = a;
- break;
- case 'Encoding':
- const i = this.getToken();
- let n;
- if (/^\d+$/.test(i)) {
- n = [];
- const e = 0 | parseInt(i, 10);
- this.getToken();
- for (let a = 0; a < e; a++) {
- t = this.getToken();
- for (; 'dup' !== t && 'def' !== t; ) {
- t = this.getToken();
- if (null === t) return;
- }
- if ('def' === t) break;
- const e = this.readInt();
- this.getToken();
- const a = this.getToken();
- n[e] = a;
- this.getToken();
- }
- } else n = (0, r.getEncoding)(i);
- e.builtInEncoding = n;
- break;
- case 'FontBBox':
- const s = this.readNumberArray();
- e.ascent = Math.max(s[3], s[1]);
- e.descent = Math.min(s[1], s[3]);
- e.ascentScaled = !0;
- }
- }
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.Pattern = void 0;
- t.getTilingPatternIR = function getTilingPatternIR(e, t, a) {
- const i = t.getArray('Matrix'),
- n = r.Util.normalizeRect(t.getArray('BBox')),
- s = t.get('XStep'),
- o = t.get('YStep'),
- c = t.get('PaintType'),
- l = t.get('TilingType');
- if (n[2] - n[0] == 0 || n[3] - n[1] == 0)
- throw new r.FormatError(`Invalid getTilingPatternIR /BBox array: [${n}].`);
- return ['TilingPattern', a, e, i, n, s, o, c, l];
- };
- var r = a(2),
- i = a(5),
- n = a(12),
- s = a(3);
- const o = 2,
- c = 3,
- l = 4,
- h = 5,
- u = 6,
- d = 7;
- t.Pattern = class Pattern {
- constructor() {
- (0, r.unreachable)('Cannot initialize Pattern.');
- }
- static parseShading(e, t, a, n, f) {
- const g = e instanceof i.BaseStream ? e.dict : e,
- p = g.get('ShadingType');
- try {
- switch (p) {
- case o:
- case c:
- return new RadialAxialShading(g, t, a, n, f);
- case l:
- case h:
- case u:
- case d:
- return new MeshShading(e, t, a, n, f);
- default:
- throw new r.FormatError('Unsupported ShadingType: ' + p);
- }
- } catch (e) {
- if (e instanceof s.MissingDataException) throw e;
- (0, r.warn)(e);
- return new DummyShading();
- }
- }
- };
- class BaseShading {
- static SMALL_NUMBER = 1e-6;
- constructor() {
- this.constructor === BaseShading &&
- (0, r.unreachable)('Cannot initialize BaseShading.');
- }
- getIR() {
- (0, r.unreachable)('Abstract method `getIR` called.');
- }
- }
- class RadialAxialShading extends BaseShading {
- constructor(e, t, a, i, s) {
- super();
- this.coordsArr = e.getArray('Coords');
- this.shadingType = e.get('ShadingType');
- const o = n.ColorSpace.parse({
- cs: e.getRaw('CS') || e.getRaw('ColorSpace'),
- xref: t,
- resources: a,
- pdfFunctionFactory: i,
- localColorSpaceCache: s,
- }),
- l = e.getArray('BBox');
- Array.isArray(l) && 4 === l.length
- ? (this.bbox = r.Util.normalizeRect(l))
- : (this.bbox = null);
- let h = 0,
- u = 1;
- if (e.has('Domain')) {
- const t = e.getArray('Domain');
- h = t[0];
- u = t[1];
- }
- let d = !1,
- f = !1;
- if (e.has('Extend')) {
- const t = e.getArray('Extend');
- d = t[0];
- f = t[1];
- }
- if (!(this.shadingType !== c || (d && f))) {
- const [e, t, a, i, n, s] = this.coordsArr,
- o = Math.hypot(e - i, t - n);
- a <= s + o && s <= a + o && (0, r.warn)('Unsupported radial gradient.');
- }
- this.extendStart = d;
- this.extendEnd = f;
- const g = e.getRaw('Function'),
- p = i.createFromArray(g),
- m = (u - h) / 840,
- b = (this.colorStops = []);
- if (h >= u || m <= 0) {
- (0, r.info)('Bad shading domain.');
- return;
- }
- const y = new Float32Array(o.numComps),
- w = new Float32Array(1);
- let S,
- x = 0;
- w[0] = h;
- p(w, 0, y, 0);
- let C = o.getRgb(y, 0);
- const k = r.Util.makeHexColor(C[0], C[1], C[2]);
- b.push([0, k]);
- let v = 1;
- w[0] = h + m;
- p(w, 0, y, 0);
- let F = o.getRgb(y, 0),
- O = F[0] - C[0] + 1,
- T = F[1] - C[1] + 1,
- M = F[2] - C[2] + 1,
- E = F[0] - C[0] - 1,
- D = F[1] - C[1] - 1,
- N = F[2] - C[2] - 1;
- for (let e = 2; e < 840; e++) {
- w[0] = h + e * m;
- p(w, 0, y, 0);
- S = o.getRgb(y, 0);
- const t = e - x;
- O = Math.min(O, (S[0] - C[0] + 1) / t);
- T = Math.min(T, (S[1] - C[1] + 1) / t);
- M = Math.min(M, (S[2] - C[2] + 1) / t);
- E = Math.max(E, (S[0] - C[0] - 1) / t);
- D = Math.max(D, (S[1] - C[1] - 1) / t);
- N = Math.max(N, (S[2] - C[2] - 1) / t);
- if (!(E <= O && D <= T && N <= M)) {
- const e = r.Util.makeHexColor(F[0], F[1], F[2]);
- b.push([v / 840, e]);
- O = S[0] - F[0] + 1;
- T = S[1] - F[1] + 1;
- M = S[2] - F[2] + 1;
- E = S[0] - F[0] - 1;
- D = S[1] - F[1] - 1;
- N = S[2] - F[2] - 1;
- x = v;
- C = F;
- }
- v = e;
- F = S;
- }
- const R = r.Util.makeHexColor(F[0], F[1], F[2]);
- b.push([1, R]);
- let L = 'transparent';
- if (e.has('Background')) {
- S = o.getRgb(e.get('Background'), 0);
- L = r.Util.makeHexColor(S[0], S[1], S[2]);
- }
- if (!d) {
- b.unshift([0, L]);
- b[1][0] += BaseShading.SMALL_NUMBER;
- }
- if (!f) {
- b.at(-1)[0] -= BaseShading.SMALL_NUMBER;
- b.push([1, L]);
- }
- this.colorStops = b;
- }
- getIR() {
- const e = this.coordsArr,
- t = this.shadingType;
- let a, i, n, s, l;
- if (t === o) {
- i = [e[0], e[1]];
- n = [e[2], e[3]];
- s = null;
- l = null;
- a = 'axial';
- } else if (t === c) {
- i = [e[0], e[1]];
- n = [e[3], e[4]];
- s = e[2];
- l = e[5];
- a = 'radial';
- } else (0, r.unreachable)(`getPattern type unknown: ${t}`);
- return ['RadialAxial', a, this.bbox, this.colorStops, i, n, s, l];
- }
- }
- class MeshStreamReader {
- constructor(e, t) {
- this.stream = e;
- this.context = t;
- this.buffer = 0;
- this.bufferLength = 0;
- const a = t.numComps;
- this.tmpCompsBuf = new Float32Array(a);
- const r = t.colorSpace.numComps;
- this.tmpCsCompsBuf = t.colorFn ? new Float32Array(r) : this.tmpCompsBuf;
- }
- get hasData() {
- if (this.stream.end) return this.stream.pos < this.stream.end;
- if (this.bufferLength > 0) return !0;
- const e = this.stream.getByte();
- if (e < 0) return !1;
- this.buffer = e;
- this.bufferLength = 8;
- return !0;
- }
- readBits(e) {
- let t = this.buffer,
- a = this.bufferLength;
- if (32 === e) {
- if (0 === a)
- return (
- ((this.stream.getByte() << 24) |
- (this.stream.getByte() << 16) |
- (this.stream.getByte() << 8) |
- this.stream.getByte()) >>>
- 0
- );
- t =
- (t << 24) |
- (this.stream.getByte() << 16) |
- (this.stream.getByte() << 8) |
- this.stream.getByte();
- const e = this.stream.getByte();
- this.buffer = e & ((1 << a) - 1);
- return ((t << (8 - a)) | ((255 & e) >> a)) >>> 0;
- }
- if (8 === e && 0 === a) return this.stream.getByte();
- for (; a < e; ) {
- t = (t << 8) | this.stream.getByte();
- a += 8;
- }
- a -= e;
- this.bufferLength = a;
- this.buffer = t & ((1 << a) - 1);
- return t >> a;
- }
- align() {
- this.buffer = 0;
- this.bufferLength = 0;
- }
- readFlag() {
- return this.readBits(this.context.bitsPerFlag);
- }
- readCoordinate() {
- const e = this.context.bitsPerCoordinate,
- t = this.readBits(e),
- a = this.readBits(e),
- r = this.context.decode,
- i = e < 32 ? 1 / ((1 << e) - 1) : 2.3283064365386963e-10;
- return [t * i * (r[1] - r[0]) + r[0], a * i * (r[3] - r[2]) + r[2]];
- }
- readComponents() {
- const e = this.context.numComps,
- t = this.context.bitsPerComponent,
- a = t < 32 ? 1 / ((1 << t) - 1) : 2.3283064365386963e-10,
- r = this.context.decode,
- i = this.tmpCompsBuf;
- for (let n = 0, s = 4; n < e; n++, s += 2) {
- const e = this.readBits(t);
- i[n] = e * a * (r[s + 1] - r[s]) + r[s];
- }
- const n = this.tmpCsCompsBuf;
- this.context.colorFn && this.context.colorFn(i, 0, n, 0);
- return this.context.colorSpace.getRgb(n, 0);
- }
- }
- const f = (function getBClosure() {
- const e = Object.create(null);
- return function (t) {
- return (e[t] ||= (function buildB(e) {
- const t = [];
- for (let a = 0; a <= e; a++) {
- const r = a / e,
- i = 1 - r;
- t.push(new Float32Array([i * i * i, 3 * r * i * i, 3 * r * r * i, r * r * r]));
- }
- return t;
- })(t));
- };
- })();
- class MeshShading extends BaseShading {
- static MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3;
- static MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20;
- static TRIANGLE_DENSITY = 20;
- constructor(e, t, a, s, o) {
- super();
- if (!(e instanceof i.BaseStream))
- throw new r.FormatError('Mesh data is not a stream');
- const c = e.dict;
- this.shadingType = c.get('ShadingType');
- const f = c.getArray('BBox');
- Array.isArray(f) && 4 === f.length
- ? (this.bbox = r.Util.normalizeRect(f))
- : (this.bbox = null);
- const g = n.ColorSpace.parse({
- cs: c.getRaw('CS') || c.getRaw('ColorSpace'),
- xref: t,
- resources: a,
- pdfFunctionFactory: s,
- localColorSpaceCache: o,
- });
- this.background = c.has('Background') ? g.getRgb(c.get('Background'), 0) : null;
- const p = c.getRaw('Function'),
- m = p ? s.createFromArray(p) : null;
- this.coords = [];
- this.colors = [];
- this.figures = [];
- const b = {
- bitsPerCoordinate: c.get('BitsPerCoordinate'),
- bitsPerComponent: c.get('BitsPerComponent'),
- bitsPerFlag: c.get('BitsPerFlag'),
- decode: c.getArray('Decode'),
- colorFn: m,
- colorSpace: g,
- numComps: m ? 1 : g.numComps,
- },
- y = new MeshStreamReader(e, b);
- let w = !1;
- switch (this.shadingType) {
- case l:
- this._decodeType4Shading(y);
- break;
- case h:
- const e = 0 | c.get('VerticesPerRow');
- if (e < 2) throw new r.FormatError('Invalid VerticesPerRow');
- this._decodeType5Shading(y, e);
- break;
- case u:
- this._decodeType6Shading(y);
- w = !0;
- break;
- case d:
- this._decodeType7Shading(y);
- w = !0;
- break;
- default:
- (0, r.unreachable)('Unsupported mesh type.');
- }
- if (w) {
- this._updateBounds();
- for (let e = 0, t = this.figures.length; e < t; e++) this._buildFigureFromPatch(e);
- }
- this._updateBounds();
- this._packData();
- }
- _decodeType4Shading(e) {
- const t = this.coords,
- a = this.colors,
- i = [],
- n = [];
- let s = 0;
- for (; e.hasData; ) {
- const o = e.readFlag(),
- c = e.readCoordinate(),
- l = e.readComponents();
- if (0 === s) {
- if (!(0 <= o && o <= 2)) throw new r.FormatError('Unknown type4 flag');
- switch (o) {
- case 0:
- s = 3;
- break;
- case 1:
- n.push(n.at(-2), n.at(-1));
- s = 1;
- break;
- case 2:
- n.push(n.at(-3), n.at(-1));
- s = 1;
- }
- i.push(o);
- }
- n.push(t.length);
- t.push(c);
- a.push(l);
- s--;
- e.align();
- }
- this.figures.push({
- type: 'triangles',
- coords: new Int32Array(n),
- colors: new Int32Array(n),
- });
- }
- _decodeType5Shading(e, t) {
- const a = this.coords,
- r = this.colors,
- i = [];
- for (; e.hasData; ) {
- const t = e.readCoordinate(),
- n = e.readComponents();
- i.push(a.length);
- a.push(t);
- r.push(n);
- }
- this.figures.push({
- type: 'lattice',
- coords: new Int32Array(i),
- colors: new Int32Array(i),
- verticesPerRow: t,
- });
- }
- _decodeType6Shading(e) {
- const t = this.coords,
- a = this.colors,
- i = new Int32Array(16),
- n = new Int32Array(4);
- for (; e.hasData; ) {
- const s = e.readFlag();
- if (!(0 <= s && s <= 3)) throw new r.FormatError('Unknown type6 flag');
- const o = t.length;
- for (let a = 0, r = 0 !== s ? 8 : 12; a < r; a++) t.push(e.readCoordinate());
- const c = a.length;
- for (let t = 0, r = 0 !== s ? 2 : 4; t < r; t++) a.push(e.readComponents());
- let l, h, u, d;
- switch (s) {
- case 0:
- i[12] = o + 3;
- i[13] = o + 4;
- i[14] = o + 5;
- i[15] = o + 6;
- i[8] = o + 2;
- i[11] = o + 7;
- i[4] = o + 1;
- i[7] = o + 8;
- i[0] = o;
- i[1] = o + 11;
- i[2] = o + 10;
- i[3] = o + 9;
- n[2] = c + 1;
- n[3] = c + 2;
- n[0] = c;
- n[1] = c + 3;
- break;
- case 1:
- l = i[12];
- h = i[13];
- u = i[14];
- d = i[15];
- i[12] = d;
- i[13] = o + 0;
- i[14] = o + 1;
- i[15] = o + 2;
- i[8] = u;
- i[11] = o + 3;
- i[4] = h;
- i[7] = o + 4;
- i[0] = l;
- i[1] = o + 7;
- i[2] = o + 6;
- i[3] = o + 5;
- l = n[2];
- h = n[3];
- n[2] = h;
- n[3] = c;
- n[0] = l;
- n[1] = c + 1;
- break;
- case 2:
- l = i[15];
- h = i[11];
- i[12] = i[3];
- i[13] = o + 0;
- i[14] = o + 1;
- i[15] = o + 2;
- i[8] = i[7];
- i[11] = o + 3;
- i[4] = h;
- i[7] = o + 4;
- i[0] = l;
- i[1] = o + 7;
- i[2] = o + 6;
- i[3] = o + 5;
- l = n[3];
- n[2] = n[1];
- n[3] = c;
- n[0] = l;
- n[1] = c + 1;
- break;
- case 3:
- i[12] = i[0];
- i[13] = o + 0;
- i[14] = o + 1;
- i[15] = o + 2;
- i[8] = i[1];
- i[11] = o + 3;
- i[4] = i[2];
- i[7] = o + 4;
- i[0] = i[3];
- i[1] = o + 7;
- i[2] = o + 6;
- i[3] = o + 5;
- n[2] = n[0];
- n[3] = c;
- n[0] = n[1];
- n[1] = c + 1;
- }
- i[5] = t.length;
- t.push([
- (-4 * t[i[0]][0] -
- t[i[15]][0] +
- 6 * (t[i[4]][0] + t[i[1]][0]) -
- 2 * (t[i[12]][0] + t[i[3]][0]) +
- 3 * (t[i[13]][0] + t[i[7]][0])) /
- 9,
- (-4 * t[i[0]][1] -
- t[i[15]][1] +
- 6 * (t[i[4]][1] + t[i[1]][1]) -
- 2 * (t[i[12]][1] + t[i[3]][1]) +
- 3 * (t[i[13]][1] + t[i[7]][1])) /
- 9,
- ]);
- i[6] = t.length;
- t.push([
- (-4 * t[i[3]][0] -
- t[i[12]][0] +
- 6 * (t[i[2]][0] + t[i[7]][0]) -
- 2 * (t[i[0]][0] + t[i[15]][0]) +
- 3 * (t[i[4]][0] + t[i[14]][0])) /
- 9,
- (-4 * t[i[3]][1] -
- t[i[12]][1] +
- 6 * (t[i[2]][1] + t[i[7]][1]) -
- 2 * (t[i[0]][1] + t[i[15]][1]) +
- 3 * (t[i[4]][1] + t[i[14]][1])) /
- 9,
- ]);
- i[9] = t.length;
- t.push([
- (-4 * t[i[12]][0] -
- t[i[3]][0] +
- 6 * (t[i[8]][0] + t[i[13]][0]) -
- 2 * (t[i[0]][0] + t[i[15]][0]) +
- 3 * (t[i[11]][0] + t[i[1]][0])) /
- 9,
- (-4 * t[i[12]][1] -
- t[i[3]][1] +
- 6 * (t[i[8]][1] + t[i[13]][1]) -
- 2 * (t[i[0]][1] + t[i[15]][1]) +
- 3 * (t[i[11]][1] + t[i[1]][1])) /
- 9,
- ]);
- i[10] = t.length;
- t.push([
- (-4 * t[i[15]][0] -
- t[i[0]][0] +
- 6 * (t[i[11]][0] + t[i[14]][0]) -
- 2 * (t[i[12]][0] + t[i[3]][0]) +
- 3 * (t[i[2]][0] + t[i[8]][0])) /
- 9,
- (-4 * t[i[15]][1] -
- t[i[0]][1] +
- 6 * (t[i[11]][1] + t[i[14]][1]) -
- 2 * (t[i[12]][1] + t[i[3]][1]) +
- 3 * (t[i[2]][1] + t[i[8]][1])) /
- 9,
- ]);
- this.figures.push({
- type: 'patch',
- coords: new Int32Array(i),
- colors: new Int32Array(n),
- });
- }
- }
- _decodeType7Shading(e) {
- const t = this.coords,
- a = this.colors,
- i = new Int32Array(16),
- n = new Int32Array(4);
- for (; e.hasData; ) {
- const s = e.readFlag();
- if (!(0 <= s && s <= 3)) throw new r.FormatError('Unknown type7 flag');
- const o = t.length;
- for (let a = 0, r = 0 !== s ? 12 : 16; a < r; a++) t.push(e.readCoordinate());
- const c = a.length;
- for (let t = 0, r = 0 !== s ? 2 : 4; t < r; t++) a.push(e.readComponents());
- let l, h, u, d;
- switch (s) {
- case 0:
- i[12] = o + 3;
- i[13] = o + 4;
- i[14] = o + 5;
- i[15] = o + 6;
- i[8] = o + 2;
- i[9] = o + 13;
- i[10] = o + 14;
- i[11] = o + 7;
- i[4] = o + 1;
- i[5] = o + 12;
- i[6] = o + 15;
- i[7] = o + 8;
- i[0] = o;
- i[1] = o + 11;
- i[2] = o + 10;
- i[3] = o + 9;
- n[2] = c + 1;
- n[3] = c + 2;
- n[0] = c;
- n[1] = c + 3;
- break;
- case 1:
- l = i[12];
- h = i[13];
- u = i[14];
- d = i[15];
- i[12] = d;
- i[13] = o + 0;
- i[14] = o + 1;
- i[15] = o + 2;
- i[8] = u;
- i[9] = o + 9;
- i[10] = o + 10;
- i[11] = o + 3;
- i[4] = h;
- i[5] = o + 8;
- i[6] = o + 11;
- i[7] = o + 4;
- i[0] = l;
- i[1] = o + 7;
- i[2] = o + 6;
- i[3] = o + 5;
- l = n[2];
- h = n[3];
- n[2] = h;
- n[3] = c;
- n[0] = l;
- n[1] = c + 1;
- break;
- case 2:
- l = i[15];
- h = i[11];
- i[12] = i[3];
- i[13] = o + 0;
- i[14] = o + 1;
- i[15] = o + 2;
- i[8] = i[7];
- i[9] = o + 9;
- i[10] = o + 10;
- i[11] = o + 3;
- i[4] = h;
- i[5] = o + 8;
- i[6] = o + 11;
- i[7] = o + 4;
- i[0] = l;
- i[1] = o + 7;
- i[2] = o + 6;
- i[3] = o + 5;
- l = n[3];
- n[2] = n[1];
- n[3] = c;
- n[0] = l;
- n[1] = c + 1;
- break;
- case 3:
- i[12] = i[0];
- i[13] = o + 0;
- i[14] = o + 1;
- i[15] = o + 2;
- i[8] = i[1];
- i[9] = o + 9;
- i[10] = o + 10;
- i[11] = o + 3;
- i[4] = i[2];
- i[5] = o + 8;
- i[6] = o + 11;
- i[7] = o + 4;
- i[0] = i[3];
- i[1] = o + 7;
- i[2] = o + 6;
- i[3] = o + 5;
- n[2] = n[0];
- n[3] = c;
- n[0] = n[1];
- n[1] = c + 1;
- }
- this.figures.push({
- type: 'patch',
- coords: new Int32Array(i),
- colors: new Int32Array(n),
- });
- }
- }
- _buildFigureFromPatch(e) {
- const t = this.figures[e];
- (0, r.assert)('patch' === t.type, 'Unexpected patch mesh figure');
- const a = this.coords,
- i = this.colors,
- n = t.coords,
- s = t.colors,
- o = Math.min(a[n[0]][0], a[n[3]][0], a[n[12]][0], a[n[15]][0]),
- c = Math.min(a[n[0]][1], a[n[3]][1], a[n[12]][1], a[n[15]][1]),
- l = Math.max(a[n[0]][0], a[n[3]][0], a[n[12]][0], a[n[15]][0]),
- h = Math.max(a[n[0]][1], a[n[3]][1], a[n[12]][1], a[n[15]][1]);
- let u = Math.ceil(
- ((l - o) * MeshShading.TRIANGLE_DENSITY) / (this.bounds[2] - this.bounds[0]),
- );
- u = Math.max(
- MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,
- Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, u),
- );
- let d = Math.ceil(
- ((h - c) * MeshShading.TRIANGLE_DENSITY) / (this.bounds[3] - this.bounds[1]),
- );
- d = Math.max(
- MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT,
- Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, d),
- );
- const g = u + 1,
- p = new Int32Array((d + 1) * g),
- m = new Int32Array((d + 1) * g);
- let b = 0;
- const y = new Uint8Array(3),
- w = new Uint8Array(3),
- S = i[s[0]],
- x = i[s[1]],
- C = i[s[2]],
- k = i[s[3]],
- v = f(d),
- F = f(u);
- for (let e = 0; e <= d; e++) {
- y[0] = ((S[0] * (d - e) + C[0] * e) / d) | 0;
- y[1] = ((S[1] * (d - e) + C[1] * e) / d) | 0;
- y[2] = ((S[2] * (d - e) + C[2] * e) / d) | 0;
- w[0] = ((x[0] * (d - e) + k[0] * e) / d) | 0;
- w[1] = ((x[1] * (d - e) + k[1] * e) / d) | 0;
- w[2] = ((x[2] * (d - e) + k[2] * e) / d) | 0;
- for (let t = 0; t <= u; t++, b++) {
- if (!((0 !== e && e !== d) || (0 !== t && t !== u))) continue;
- let r = 0,
- s = 0,
- o = 0;
- for (let i = 0; i <= 3; i++)
- for (let c = 0; c <= 3; c++, o++) {
- const l = v[e][i] * F[t][c];
- r += a[n[o]][0] * l;
- s += a[n[o]][1] * l;
- }
- p[b] = a.length;
- a.push([r, s]);
- m[b] = i.length;
- const c = new Uint8Array(3);
- c[0] = ((y[0] * (u - t) + w[0] * t) / u) | 0;
- c[1] = ((y[1] * (u - t) + w[1] * t) / u) | 0;
- c[2] = ((y[2] * (u - t) + w[2] * t) / u) | 0;
- i.push(c);
- }
- }
- p[0] = n[0];
- m[0] = s[0];
- p[u] = n[3];
- m[u] = s[1];
- p[g * d] = n[12];
- m[g * d] = s[2];
- p[g * d + u] = n[15];
- m[g * d + u] = s[3];
- this.figures[e] = { type: 'lattice', coords: p, colors: m, verticesPerRow: g };
- }
- _updateBounds() {
- let e = this.coords[0][0],
- t = this.coords[0][1],
- a = e,
- r = t;
- for (let i = 1, n = this.coords.length; i < n; i++) {
- const n = this.coords[i][0],
- s = this.coords[i][1];
- e = e > n ? n : e;
- t = t > s ? s : t;
- a = a < n ? n : a;
- r = r < s ? s : r;
- }
- this.bounds = [e, t, a, r];
- }
- _packData() {
- let e, t, a, r;
- const i = this.coords,
- n = new Float32Array(2 * i.length);
- for (e = 0, a = 0, t = i.length; e < t; e++) {
- const t = i[e];
- n[a++] = t[0];
- n[a++] = t[1];
- }
- this.coords = n;
- const s = this.colors,
- o = new Uint8Array(3 * s.length);
- for (e = 0, a = 0, t = s.length; e < t; e++) {
- const t = s[e];
- o[a++] = t[0];
- o[a++] = t[1];
- o[a++] = t[2];
- }
- this.colors = o;
- const c = this.figures;
- for (e = 0, t = c.length; e < t; e++) {
- const t = c[e],
- i = t.coords,
- n = t.colors;
- for (a = 0, r = i.length; a < r; a++) {
- i[a] *= 2;
- n[a] *= 3;
- }
- }
- }
- getIR() {
- return [
- 'Mesh',
- this.shadingType,
- this.coords,
- this.colors,
- this.figures,
- this.bounds,
- this.bbox,
- this.background,
- ];
- }
- }
- class DummyShading extends BaseShading {
- getIR() {
- return ['Dummy'];
- }
- }
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.getXfaFontDict = function getXfaFontDict(e) {
- const t = (function getXfaFontWidths(e) {
- const t = getXfaFontName(e);
- if (!t) return null;
- const { baseWidths: a, baseMapping: r, factors: i } = t;
- let n;
- n = i ? a.map((e, t) => e * i[t]) : a;
- let s,
- o = -2;
- const c = [];
- for (const [e, t] of r.map((e, t) => [e, t]).sort(([e], [t]) => e - t))
- if (-1 !== e)
- if (e === o + 1) {
- s.push(n[t]);
- o += 1;
- } else {
- o = e;
- s = [n[t]];
- c.push(e, s);
- }
- return c;
- })(e),
- a = new i.Dict(null);
- a.set('BaseFont', i.Name.get(e));
- a.set('Type', i.Name.get('Font'));
- a.set('Subtype', i.Name.get('CIDFontType2'));
- a.set('Encoding', i.Name.get('Identity-H'));
- a.set('CIDToGIDMap', i.Name.get('Identity'));
- a.set('W', t);
- a.set('FirstChar', t[0]);
- a.set('LastChar', t.at(-2) + t.at(-1).length - 1);
- const r = new i.Dict(null);
- a.set('FontDescriptor', r);
- const n = new i.Dict(null);
- n.set('Ordering', 'Identity');
- n.set('Registry', 'Adobe');
- n.set('Supplement', 0);
- a.set('CIDSystemInfo', n);
- return a;
- };
- t.getXfaFontName = getXfaFontName;
- var r = a(52),
- i = a(4),
- n = a(53),
- s = a(54),
- o = a(55),
- c = a(56),
- l = a(3),
- h = a(38);
- const u = (0, l.getLookupTableFactory)(function (e) {
- e['MyriadPro-Regular'] = e['PdfJS-Fallback-Regular'] = {
- name: 'LiberationSans-Regular',
- factors: o.MyriadProRegularFactors,
- baseWidths: s.LiberationSansRegularWidths,
- baseMapping: s.LiberationSansRegularMapping,
- metrics: o.MyriadProRegularMetrics,
- };
- e['MyriadPro-Bold'] = e['PdfJS-Fallback-Bold'] = {
- name: 'LiberationSans-Bold',
- factors: o.MyriadProBoldFactors,
- baseWidths: s.LiberationSansBoldWidths,
- baseMapping: s.LiberationSansBoldMapping,
- metrics: o.MyriadProBoldMetrics,
- };
- e['MyriadPro-It'] =
- e['MyriadPro-Italic'] =
- e['PdfJS-Fallback-Italic'] =
- {
- name: 'LiberationSans-Italic',
- factors: o.MyriadProItalicFactors,
- baseWidths: s.LiberationSansItalicWidths,
- baseMapping: s.LiberationSansItalicMapping,
- metrics: o.MyriadProItalicMetrics,
- };
- e['MyriadPro-BoldIt'] =
- e['MyriadPro-BoldItalic'] =
- e['PdfJS-Fallback-BoldItalic'] =
- {
- name: 'LiberationSans-BoldItalic',
- factors: o.MyriadProBoldItalicFactors,
- baseWidths: s.LiberationSansBoldItalicWidths,
- baseMapping: s.LiberationSansBoldItalicMapping,
- metrics: o.MyriadProBoldItalicMetrics,
- };
- e.ArialMT =
- e.Arial =
- e['Arial-Regular'] =
- {
- name: 'LiberationSans-Regular',
- baseWidths: s.LiberationSansRegularWidths,
- baseMapping: s.LiberationSansRegularMapping,
- };
- e['Arial-BoldMT'] = e['Arial-Bold'] = {
- name: 'LiberationSans-Bold',
- baseWidths: s.LiberationSansBoldWidths,
- baseMapping: s.LiberationSansBoldMapping,
- };
- e['Arial-ItalicMT'] = e['Arial-Italic'] = {
- name: 'LiberationSans-Italic',
- baseWidths: s.LiberationSansItalicWidths,
- baseMapping: s.LiberationSansItalicMapping,
- };
- e['Arial-BoldItalicMT'] = e['Arial-BoldItalic'] = {
- name: 'LiberationSans-BoldItalic',
- baseWidths: s.LiberationSansBoldItalicWidths,
- baseMapping: s.LiberationSansBoldItalicMapping,
- };
- e['Calibri-Regular'] = {
- name: 'LiberationSans-Regular',
- factors: r.CalibriRegularFactors,
- baseWidths: s.LiberationSansRegularWidths,
- baseMapping: s.LiberationSansRegularMapping,
- metrics: r.CalibriRegularMetrics,
- };
- e['Calibri-Bold'] = {
- name: 'LiberationSans-Bold',
- factors: r.CalibriBoldFactors,
- baseWidths: s.LiberationSansBoldWidths,
- baseMapping: s.LiberationSansBoldMapping,
- metrics: r.CalibriBoldMetrics,
- };
- e['Calibri-Italic'] = {
- name: 'LiberationSans-Italic',
- factors: r.CalibriItalicFactors,
- baseWidths: s.LiberationSansItalicWidths,
- baseMapping: s.LiberationSansItalicMapping,
- metrics: r.CalibriItalicMetrics,
- };
- e['Calibri-BoldItalic'] = {
- name: 'LiberationSans-BoldItalic',
- factors: r.CalibriBoldItalicFactors,
- baseWidths: s.LiberationSansBoldItalicWidths,
- baseMapping: s.LiberationSansBoldItalicMapping,
- metrics: r.CalibriBoldItalicMetrics,
- };
- e['Segoeui-Regular'] = {
- name: 'LiberationSans-Regular',
- factors: c.SegoeuiRegularFactors,
- baseWidths: s.LiberationSansRegularWidths,
- baseMapping: s.LiberationSansRegularMapping,
- metrics: c.SegoeuiRegularMetrics,
- };
- e['Segoeui-Bold'] = {
- name: 'LiberationSans-Bold',
- factors: c.SegoeuiBoldFactors,
- baseWidths: s.LiberationSansBoldWidths,
- baseMapping: s.LiberationSansBoldMapping,
- metrics: c.SegoeuiBoldMetrics,
- };
- e['Segoeui-Italic'] = {
- name: 'LiberationSans-Italic',
- factors: c.SegoeuiItalicFactors,
- baseWidths: s.LiberationSansItalicWidths,
- baseMapping: s.LiberationSansItalicMapping,
- metrics: c.SegoeuiItalicMetrics,
- };
- e['Segoeui-BoldItalic'] = {
- name: 'LiberationSans-BoldItalic',
- factors: c.SegoeuiBoldItalicFactors,
- baseWidths: s.LiberationSansBoldItalicWidths,
- baseMapping: s.LiberationSansBoldItalicMapping,
- metrics: c.SegoeuiBoldItalicMetrics,
- };
- e['Helvetica-Regular'] = e.Helvetica = {
- name: 'LiberationSans-Regular',
- factors: n.HelveticaRegularFactors,
- baseWidths: s.LiberationSansRegularWidths,
- baseMapping: s.LiberationSansRegularMapping,
- metrics: n.HelveticaRegularMetrics,
- };
- e['Helvetica-Bold'] = {
- name: 'LiberationSans-Bold',
- factors: n.HelveticaBoldFactors,
- baseWidths: s.LiberationSansBoldWidths,
- baseMapping: s.LiberationSansBoldMapping,
- metrics: n.HelveticaBoldMetrics,
- };
- e['Helvetica-Italic'] = {
- name: 'LiberationSans-Italic',
- factors: n.HelveticaItalicFactors,
- baseWidths: s.LiberationSansItalicWidths,
- baseMapping: s.LiberationSansItalicMapping,
- metrics: n.HelveticaItalicMetrics,
- };
- e['Helvetica-BoldItalic'] = {
- name: 'LiberationSans-BoldItalic',
- factors: n.HelveticaBoldItalicFactors,
- baseWidths: s.LiberationSansBoldItalicWidths,
- baseMapping: s.LiberationSansBoldItalicMapping,
- metrics: n.HelveticaBoldItalicMetrics,
- };
- });
- function getXfaFontName(e) {
- const t = (0, h.normalizeFontName)(e);
- return u()[t];
- }
- },
- (e, t) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.CalibriRegularMetrics =
- t.CalibriRegularFactors =
- t.CalibriItalicMetrics =
- t.CalibriItalicFactors =
- t.CalibriBoldMetrics =
- t.CalibriBoldItalicMetrics =
- t.CalibriBoldItalicFactors =
- t.CalibriBoldFactors =
- void 0;
- t.CalibriBoldFactors = [
- 1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566, 0.98152, 0.93548,
- 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.54657, 0.91133, 0.91133, 0.91133,
- 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845,
- 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762, 0.73293, 0.87289, 0.73133,
- 0.7514, 0.81921, 0.87356, 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.9121, 0.86943,
- 0.79795, 0.88198, 0.77958, 0.70864, 0.81055, 0.90399, 0.88653, 0.96017, 0.82577,
- 0.77892, 0.78257, 0.97507, 1.54657, 0.97507, 0.85284, 0.89552, 0.90176, 0.88762, 0.8785,
- 0.75241, 0.8785, 0.90518, 0.95015, 0.77618, 0.8785, 0.88401, 0.91916, 0.86304, 0.88401,
- 0.91488, 0.8785, 0.8801, 0.8785, 0.8785, 0.91343, 0.7173, 1.04106, 0.8785, 0.85075,
- 0.95794, 0.82616, 0.85162, 0.79492, 0.88331, 1.69808, 0.88331, 0.85284, 0.97801,
- 0.89552, 0.91133, 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.12401, 0.96839,
- 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1, 1.07463, 1,
- 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859, 0.83908,
- 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.73293, 0.73133, 0.73133,
- 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506, 0.9121, 0.86943, 0.86943,
- 0.86943, 0.86943, 0.86943, 0.85284, 0.87508, 0.90399, 0.90399, 0.90399, 0.90399,
- 0.77892, 0.79795, 0.90807, 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.88762, 0.8715,
- 0.75241, 0.90518, 0.90518, 0.90518, 0.90518, 0.88401, 0.88401, 0.88401, 0.88401, 0.8785,
- 0.8785, 0.8801, 0.8801, 0.8801, 0.8801, 0.8801, 0.90747, 0.89049, 0.8785, 0.8785,
- 0.8785, 0.8785, 0.85162, 0.8785, 0.85162, 0.83908, 0.88762, 0.83908, 0.88762, 0.83908,
- 0.88762, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241, 0.73293, 0.75241,
- 0.87289, 0.83016, 0.88506, 0.93125, 0.73133, 0.90518, 0.73133, 0.90518, 0.73133,
- 0.90518, 0.73133, 0.90518, 0.73133, 0.90518, 0.81921, 0.77618, 0.81921, 0.77618,
- 0.81921, 0.77618, 1, 1, 0.87356, 0.8785, 0.91075, 0.89608, 0.95958, 0.88401, 0.95958,
- 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.76229, 0.90167,
- 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401, 1, 1, 0.70424, 0.79468, 0.91926,
- 0.88175, 0.70823, 0.94903, 0.9121, 0.8785, 1, 1, 0.9121, 0.8785, 0.87802, 0.88656,
- 0.8785, 0.86943, 0.8801, 0.86943, 0.8801, 0.86943, 0.8801, 0.87402, 0.89291, 0.77958,
- 0.91343, 1, 1, 0.77958, 0.91343, 0.70864, 0.7173, 0.70864, 0.7173, 0.70864, 0.7173,
- 0.70864, 0.7173, 1, 1, 0.81055, 0.75841, 0.81055, 1.06452, 0.90399, 0.8785, 0.90399,
- 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.90399, 0.8785, 0.96017,
- 0.95794, 0.77892, 0.85162, 0.77892, 0.78257, 0.79492, 0.78257, 0.79492, 0.78257,
- 0.79492, 0.9297, 0.56892, 0.83908, 0.88762, 0.77539, 0.8715, 0.87508, 0.89049, 1, 1,
- 0.81055, 1.04106, 1.20528, 1.20528, 1, 1.15543, 0.70674, 0.98387, 0.94721, 1.33431,
- 1.45894, 0.95161, 1.06303, 0.83908, 0.80352, 0.57184, 0.6965, 0.56289, 0.82001, 0.56029,
- 0.81235, 1.02988, 0.83908, 0.7762, 0.68156, 0.80367, 0.73133, 0.78257, 0.87356, 0.86943,
- 0.95958, 0.75727, 0.89019, 1.04924, 0.9121, 0.7648, 0.86943, 0.87356, 0.79795, 0.78275,
- 0.81055, 0.77892, 0.9762, 0.82577, 0.99819, 0.84896, 0.95958, 0.77892, 0.96108, 1.01407,
- 0.89049, 1.02988, 0.94211, 0.96108, 0.8936, 0.84021, 0.87842, 0.96399, 0.79109, 0.89049,
- 1.00813, 1.02988, 0.86077, 0.87445, 0.92099, 0.84723, 0.86513, 0.8801, 0.75638, 0.85714,
- 0.78216, 0.79586, 0.87965, 0.94211, 0.97747, 0.78287, 0.97926, 0.84971, 1.02988,
- 0.94211, 0.8801, 0.94211, 0.84971, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90264,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 0.90518, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90548, 1, 1, 1,
- 1, 1, 1, 0.96017, 0.95794, 0.96017, 0.95794, 0.96017, 0.95794, 0.77892, 0.85162, 1, 1,
- 0.89552, 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.92794, 0.87012, 0.87012,
- 0.87012, 0.89552, 0.89552, 1.42259, 0.71143, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171,
- 1.4956, 2.2807, 0.93835, 0.83406, 0.91133, 0.84107, 0.91133, 1, 1, 1, 0.72021, 1,
- 1.23108, 0.83489, 0.88525, 0.88525, 0.81499, 0.90527, 1.81055, 0.90527, 1.81055,
- 1.31006, 1.53711, 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284, 0.90747, 1.17534,
- 0.69825, 0.9716, 1.37077, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284,
- 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1,
- 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- ];
- t.CalibriBoldMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };
- t.CalibriBoldItalicFactors = [
- 1.3877, 1, 1, 1, 0.97801, 0.92482, 0.89552, 0.91133, 0.81988, 0.97566, 0.98152, 0.93548,
- 0.93548, 1.2798, 0.85284, 0.92794, 1, 0.96134, 1.56239, 0.91133, 0.91133, 0.91133,
- 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.82845, 0.82845,
- 0.85284, 0.85284, 0.85284, 0.75859, 0.92138, 0.83908, 0.7762, 0.71805, 0.87289, 0.73133,
- 0.7514, 0.81921, 0.87356, 0.95958, 0.59526, 0.75727, 0.69225, 1.04924, 0.90872, 0.85938,
- 0.79795, 0.87068, 0.77958, 0.69766, 0.81055, 0.90399, 0.88653, 0.96068, 0.82577,
- 0.77892, 0.78257, 0.97507, 1.529, 0.97507, 0.85284, 0.89552, 0.90176, 0.94908, 0.86411,
- 0.74012, 0.86411, 0.88323, 0.95015, 0.86411, 0.86331, 0.88401, 0.91916, 0.86304,
- 0.88401, 0.9039, 0.86331, 0.86331, 0.86411, 0.86411, 0.90464, 0.70852, 1.04106, 0.86331,
- 0.84372, 0.95794, 0.82616, 0.84548, 0.79492, 0.88331, 1.69808, 0.88331, 0.85284,
- 0.97801, 0.89552, 0.91133, 0.89552, 0.91133, 1.7801, 0.89552, 1.24487, 1.13254, 1.19129,
- 0.96839, 0.85284, 0.68787, 0.70645, 0.85592, 0.90747, 1.01466, 1.0088, 0.90323, 1,
- 1.07463, 1, 0.91056, 0.75806, 1.19118, 0.96839, 0.78864, 0.82845, 0.84133, 0.75859,
- 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.83908, 0.77539, 0.71805, 0.73133,
- 0.73133, 0.73133, 0.73133, 0.95958, 0.95958, 0.95958, 0.95958, 0.88506, 0.90872,
- 0.85938, 0.85938, 0.85938, 0.85938, 0.85938, 0.85284, 0.87068, 0.90399, 0.90399,
- 0.90399, 0.90399, 0.77892, 0.79795, 0.90807, 0.94908, 0.94908, 0.94908, 0.94908,
- 0.94908, 0.94908, 0.85887, 0.74012, 0.88323, 0.88323, 0.88323, 0.88323, 0.88401,
- 0.88401, 0.88401, 0.88401, 0.8785, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331, 0.86331,
- 0.90747, 0.89049, 0.86331, 0.86331, 0.86331, 0.86331, 0.84548, 0.86411, 0.84548,
- 0.83908, 0.94908, 0.83908, 0.94908, 0.83908, 0.94908, 0.71805, 0.74012, 0.71805,
- 0.74012, 0.71805, 0.74012, 0.71805, 0.74012, 0.87289, 0.79538, 0.88506, 0.92726,
- 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133, 0.88323, 0.73133,
- 0.88323, 0.81921, 0.86411, 0.81921, 0.86411, 0.81921, 0.86411, 1, 1, 0.87356, 0.86331,
- 0.91075, 0.8777, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401, 0.95958, 0.88401,
- 0.95958, 0.88401, 0.76467, 0.90167, 0.59526, 0.91916, 1, 1, 0.86304, 0.69225, 0.88401,
- 1, 1, 0.70424, 0.77312, 0.91926, 0.88175, 0.70823, 0.94903, 0.90872, 0.86331, 1, 1,
- 0.90872, 0.86331, 0.86906, 0.88116, 0.86331, 0.85938, 0.86331, 0.85938, 0.86331,
- 0.85938, 0.86331, 0.87402, 0.86549, 0.77958, 0.90464, 1, 1, 0.77958, 0.90464, 0.69766,
- 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 0.69766, 0.70852, 1, 1, 0.81055, 0.75841,
- 0.81055, 1.06452, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.90399,
- 0.86331, 0.90399, 0.86331, 0.90399, 0.86331, 0.96068, 0.95794, 0.77892, 0.84548,
- 0.77892, 0.78257, 0.79492, 0.78257, 0.79492, 0.78257, 0.79492, 0.9297, 0.56892, 0.83908,
- 0.94908, 0.77539, 0.85887, 0.87068, 0.89049, 1, 1, 0.81055, 1.04106, 1.20528, 1.20528,
- 1, 1.15543, 0.70088, 0.98387, 0.94721, 1.33431, 1.45894, 0.95161, 1.48387, 0.83908,
- 0.80352, 0.57118, 0.6965, 0.56347, 0.79179, 0.55853, 0.80346, 1.02988, 0.83908, 0.7762,
- 0.67174, 0.86036, 0.73133, 0.78257, 0.87356, 0.86441, 0.95958, 0.75727, 0.89019,
- 1.04924, 0.90872, 0.74889, 0.85938, 0.87891, 0.79795, 0.7957, 0.81055, 0.77892, 0.97447,
- 0.82577, 0.97466, 0.87179, 0.95958, 0.77892, 0.94252, 0.95612, 0.8753, 1.02988, 0.92733,
- 0.94252, 0.87411, 0.84021, 0.8728, 0.95612, 0.74081, 0.8753, 1.02189, 1.02988, 0.84814,
- 0.87445, 0.91822, 0.84723, 0.85668, 0.86331, 0.81344, 0.87581, 0.76422, 0.82046,
- 0.96057, 0.92733, 0.99375, 0.78022, 0.95452, 0.86015, 1.02988, 0.92733, 0.86331,
- 0.92733, 0.86015, 0.73133, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.90631, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 0.88323, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85174, 1, 1, 1, 1, 1, 1,
- 0.96068, 0.95794, 0.96068, 0.95794, 0.96068, 0.95794, 0.77892, 0.84548, 1, 1, 0.89552,
- 0.90527, 1, 0.90363, 0.92794, 0.92794, 0.92794, 0.89807, 0.87012, 0.87012, 0.87012,
- 0.89552, 0.89552, 1.42259, 0.71094, 1.06152, 1, 1, 1.03372, 1.03372, 0.97171, 1.4956,
- 2.2807, 0.92972, 0.83406, 0.91133, 0.83326, 0.91133, 1, 1, 1, 0.72021, 1, 1.23108,
- 0.83489, 0.88525, 0.88525, 0.81499, 0.90616, 1.81055, 0.90527, 1.81055, 1.3107, 1.53711,
- 0.94434, 1.08696, 1, 0.95018, 0.77192, 0.85284, 0.90747, 1.17534, 0.69825, 0.9716,
- 1.37077, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941, 0.8941,
- 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.08004, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 0.90727, 0.90727, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1,
- ];
- t.CalibriBoldItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };
- t.CalibriItalicFactors = [
- 1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601, 0.91056,
- 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39543, 0.91133, 0.91133, 0.91133,
- 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309,
- 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552, 0.72346, 0.85193, 0.73206,
- 0.7522, 0.81105, 0.86275, 0.90685, 0.6377, 0.77892, 0.75593, 1.02638, 0.89249, 0.84118,
- 0.77452, 0.85374, 0.75186, 0.67789, 0.79776, 0.88844, 0.85066, 0.94309, 0.77818, 0.7306,
- 0.76659, 1.10369, 1.38313, 1.10369, 1.06139, 0.89552, 0.8739, 0.9245, 0.9245, 0.83203,
- 0.9245, 0.85865, 1.09842, 0.9245, 0.9245, 1.03297, 1.07692, 0.90918, 1.03297, 0.94959,
- 0.9245, 0.92274, 0.9245, 0.9245, 1.02933, 0.77832, 1.20562, 0.9245, 0.8916, 0.98986,
- 0.86621, 0.89453, 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801, 0.89552,
- 0.91133, 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.16359, 0.92098,
- 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1, 1.09091, 1,
- 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972, 0.75859, 0.8675, 0.8675,
- 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.72346, 0.73206, 0.73206, 0.73206, 0.73206,
- 0.90685, 0.90685, 0.90685, 0.90685, 0.86477, 0.89249, 0.84118, 0.84118, 0.84118,
- 0.84118, 0.84118, 0.85284, 0.84557, 0.88844, 0.88844, 0.88844, 0.88844, 0.7306, 0.77452,
- 0.86331, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.9245, 0.84843, 0.83203, 0.85865,
- 0.85865, 0.85865, 0.85865, 0.82601, 0.82601, 0.82601, 0.82601, 0.94469, 0.9245, 0.92274,
- 0.92274, 0.92274, 0.92274, 0.92274, 0.90747, 0.86651, 0.9245, 0.9245, 0.9245, 0.9245,
- 0.89453, 0.9245, 0.89453, 0.8675, 0.9245, 0.8675, 0.9245, 0.8675, 0.9245, 0.72346,
- 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.72346, 0.83203, 0.85193, 0.8875, 0.86477,
- 0.99034, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865, 0.73206, 0.85865,
- 0.73206, 0.85865, 0.81105, 0.9245, 0.81105, 0.9245, 0.81105, 0.9245, 1, 1, 0.86275,
- 0.9245, 0.90872, 0.93591, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685, 0.82601, 0.90685,
- 1.03297, 0.90685, 0.82601, 0.77896, 1.05611, 0.6377, 1.07692, 1, 1, 0.90918, 0.75593,
- 1.03297, 1, 1, 0.76032, 0.9375, 0.98156, 0.93407, 0.77261, 1.11429, 0.89249, 0.9245, 1,
- 1, 0.89249, 0.9245, 0.92534, 0.86698, 0.9245, 0.84118, 0.92274, 0.84118, 0.92274,
- 0.84118, 0.92274, 0.8667, 0.86291, 0.75186, 1.02933, 1, 1, 0.75186, 1.02933, 0.67789,
- 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 0.67789, 0.77832, 1, 1, 0.79776, 0.97655,
- 0.79776, 1.23023, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245, 0.88844, 0.9245,
- 0.88844, 0.9245, 0.88844, 0.9245, 0.94309, 0.98986, 0.7306, 0.89453, 0.7306, 0.76659,
- 0.79004, 0.76659, 0.79004, 0.76659, 0.79004, 1.09231, 0.54873, 0.8675, 0.9245, 0.76318,
- 0.84843, 0.84557, 0.86651, 1, 1, 0.79776, 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67009,
- 0.96334, 0.93695, 1.35191, 1.40909, 0.95161, 1.48387, 0.8675, 0.90861, 0.6192, 0.7363,
- 0.64824, 0.82411, 0.56321, 0.85696, 1.23516, 0.8675, 0.81552, 0.7286, 0.84134, 0.73206,
- 0.76659, 0.86275, 0.84369, 0.90685, 0.77892, 0.85871, 1.02638, 0.89249, 0.75828,
- 0.84118, 0.85984, 0.77452, 0.76466, 0.79776, 0.7306, 0.90782, 0.77818, 0.903, 0.87291,
- 0.90685, 0.7306, 0.99058, 1.03667, 0.94635, 1.23516, 0.9849, 0.99058, 0.92393, 0.8916,
- 0.942, 1.03667, 0.75026, 0.94635, 1.0297, 1.23516, 0.90918, 0.94048, 0.98217, 0.89746,
- 0.84153, 0.92274, 0.82507, 0.88832, 0.84438, 0.88178, 1.03525, 0.9849, 1.00225, 0.78086,
- 0.97248, 0.89404, 1.23516, 0.9849, 0.92274, 0.9849, 0.89404, 0.73206, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 0.89693, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.85865, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 0.90933, 1, 1, 1, 1, 1, 1, 0.94309, 0.98986, 0.94309, 0.98986, 0.94309,
- 0.98986, 0.7306, 0.89453, 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308,
- 1.12308, 1.2566, 1.2566, 1.2566, 0.89552, 0.89552, 1.42259, 0.68994, 1.03809, 1, 1,
- 1.0176, 1.0176, 1.11523, 1.4956, 2.01462, 0.97858, 0.82616, 0.91133, 0.83437, 0.91133,
- 1, 1, 1, 0.70508, 1, 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90572, 1.81055,
- 0.90749, 1.81055, 1.28809, 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589, 0.85284,
- 0.90747, 1.19658, 0.69825, 0.97622, 1.33512, 0.90747, 0.90747, 0.85284, 0.90747,
- 0.90747, 1.44947, 0.85284, 0.8941, 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572,
- 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1,
- 1.0336, 0.91027, 1, 1, 1, 0.99862, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- ];
- t.CalibriItalicMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };
- t.CalibriRegularFactors = [
- 1.3877, 1, 1, 1, 1.17223, 1.1293, 0.89552, 0.91133, 0.80395, 1.02269, 1.15601, 0.91056,
- 0.91056, 1.2798, 0.85284, 0.89807, 1, 0.90861, 1.39016, 0.91133, 0.91133, 0.91133,
- 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.91133, 0.96309, 0.96309,
- 0.85284, 0.85284, 0.85284, 0.83319, 0.88071, 0.8675, 0.81552, 0.73834, 0.85193, 0.73206,
- 0.7522, 0.81105, 0.86275, 0.90685, 0.6377, 0.77892, 0.75593, 1.02638, 0.89385, 0.85122,
- 0.77452, 0.86503, 0.75186, 0.68887, 0.79776, 0.88844, 0.85066, 0.94258, 0.77818, 0.7306,
- 0.76659, 1.10369, 1.39016, 1.10369, 1.06139, 0.89552, 0.8739, 0.86128, 0.94469, 0.8457,
- 0.94469, 0.89464, 1.09842, 0.84636, 0.94469, 1.03297, 1.07692, 0.90918, 1.03297,
- 0.95897, 0.94469, 0.9482, 0.94469, 0.94469, 1.04692, 0.78223, 1.20562, 0.94469, 0.90332,
- 0.98986, 0.86621, 0.90527, 0.79004, 0.94152, 1.77256, 0.94152, 0.85284, 0.97801,
- 0.89552, 0.91133, 0.89552, 0.91133, 1.91729, 0.89552, 1.17889, 1.13254, 1.08707,
- 0.92098, 0.85284, 0.68787, 0.71353, 0.84737, 0.90747, 1.0088, 1.0044, 0.87683, 1,
- 1.09091, 1, 0.92229, 0.739, 1.15642, 0.92098, 0.76288, 0.80504, 0.80972, 0.75859,
- 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.8675, 0.76318, 0.73834, 0.73206, 0.73206,
- 0.73206, 0.73206, 0.90685, 0.90685, 0.90685, 0.90685, 0.86477, 0.89385, 0.85122,
- 0.85122, 0.85122, 0.85122, 0.85122, 0.85284, 0.85311, 0.88844, 0.88844, 0.88844,
- 0.88844, 0.7306, 0.77452, 0.86331, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128, 0.86128,
- 0.8693, 0.8457, 0.89464, 0.89464, 0.89464, 0.89464, 0.82601, 0.82601, 0.82601, 0.82601,
- 0.94469, 0.94469, 0.9482, 0.9482, 0.9482, 0.9482, 0.9482, 0.90747, 0.86651, 0.94469,
- 0.94469, 0.94469, 0.94469, 0.90527, 0.94469, 0.90527, 0.8675, 0.86128, 0.8675, 0.86128,
- 0.8675, 0.86128, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457, 0.73834, 0.8457,
- 0.85193, 0.92454, 0.86477, 0.9921, 0.73206, 0.89464, 0.73206, 0.89464, 0.73206, 0.89464,
- 0.73206, 0.89464, 0.73206, 0.89464, 0.81105, 0.84636, 0.81105, 0.84636, 0.81105,
- 0.84636, 1, 1, 0.86275, 0.94469, 0.90872, 0.95786, 0.90685, 0.82601, 0.90685, 0.82601,
- 0.90685, 0.82601, 0.90685, 1.03297, 0.90685, 0.82601, 0.77741, 1.05611, 0.6377, 1.07692,
- 1, 1, 0.90918, 0.75593, 1.03297, 1, 1, 0.76032, 0.90452, 0.98156, 1.11842, 0.77261,
- 1.11429, 0.89385, 0.94469, 1, 1, 0.89385, 0.94469, 0.95877, 0.86901, 0.94469, 0.85122,
- 0.9482, 0.85122, 0.9482, 0.85122, 0.9482, 0.8667, 0.90016, 0.75186, 1.04692, 1, 1,
- 0.75186, 1.04692, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887, 0.78223, 0.68887,
- 0.78223, 1, 1, 0.79776, 0.92188, 0.79776, 1.23023, 0.88844, 0.94469, 0.88844, 0.94469,
- 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.88844, 0.94469, 0.94258,
- 0.98986, 0.7306, 0.90527, 0.7306, 0.76659, 0.79004, 0.76659, 0.79004, 0.76659, 0.79004,
- 1.09231, 0.54873, 0.8675, 0.86128, 0.76318, 0.8693, 0.85311, 0.86651, 1, 1, 0.79776,
- 1.20562, 1.18622, 1.18622, 1, 1.1437, 0.67742, 0.96334, 0.93695, 1.35191, 1.40909,
- 0.95161, 1.48387, 0.86686, 0.90861, 0.62267, 0.74359, 0.65649, 0.85498, 0.56963,
- 0.88254, 1.23516, 0.8675, 0.81552, 0.75443, 0.84503, 0.73206, 0.76659, 0.86275, 0.85122,
- 0.90685, 0.77892, 0.85746, 1.02638, 0.89385, 0.75657, 0.85122, 0.86275, 0.77452,
- 0.74171, 0.79776, 0.7306, 0.95165, 0.77818, 0.89772, 0.88831, 0.90685, 0.7306, 0.98142,
- 1.02191, 0.96576, 1.23516, 0.99018, 0.98142, 0.9236, 0.89258, 0.94035, 1.02191, 0.78848,
- 0.96576, 0.9561, 1.23516, 0.90918, 0.92578, 0.95424, 0.89746, 0.83969, 0.9482, 0.80113,
- 0.89442, 0.85208, 0.86155, 0.98022, 0.99018, 1.00452, 0.81209, 0.99247, 0.89181,
- 1.23516, 0.99018, 0.9482, 0.99018, 0.89181, 0.73206, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 0.88844, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.89464, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.96766,
- 1, 1, 1, 1, 1, 1, 0.94258, 0.98986, 0.94258, 0.98986, 0.94258, 0.98986, 0.7306, 0.90527,
- 1, 1, 0.89552, 0.90527, 1, 0.90186, 1.12308, 1.12308, 1.12308, 1.12308, 1.2566, 1.2566,
- 1.2566, 0.89552, 0.89552, 1.42259, 0.69043, 1.03809, 1, 1, 1.0176, 1.0176, 1.11523,
- 1.4956, 2.01462, 0.99331, 0.82616, 0.91133, 0.84286, 0.91133, 1, 1, 1, 0.70508, 1,
- 1.23108, 0.79801, 0.84426, 0.84426, 0.774, 0.90527, 1.81055, 0.90527, 1.81055, 1.28809,
- 1.55469, 0.94434, 1.07806, 1, 0.97094, 0.7589, 0.85284, 0.90747, 1.19658, 0.69825,
- 0.97622, 1.33512, 0.90747, 0.90747, 0.85356, 0.90747, 0.90747, 1.44947, 0.85284, 0.8941,
- 0.8941, 0.70572, 0.8, 0.70572, 0.70572, 0.70572, 0.70572, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 0.99862, 0.99862, 1, 1, 1, 1, 1, 1.0336, 0.91027, 1, 1, 1, 0.99862, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05859, 1.05859, 1, 1, 1, 1.07185, 0.99413, 0.96334,
- 1.08065, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- ];
- t.CalibriRegularMetrics = { lineHeight: 1.2207, lineGap: 0.2207 };
- },
- (e, t) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.HelveticaRegularMetrics =
- t.HelveticaRegularFactors =
- t.HelveticaItalicMetrics =
- t.HelveticaItalicFactors =
- t.HelveticaBoldMetrics =
- t.HelveticaBoldItalicMetrics =
- t.HelveticaBoldItalicFactors =
- t.HelveticaBoldFactors =
- void 0;
- t.HelveticaBoldFactors = [
- 0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977, 1.00087,
- 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973,
- 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1,
- 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001,
- 1.00026, 1.00022, 0.99977, 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022,
- 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,
- 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998, 0.99973, 1.00026,
- 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006,
- 0.99982, 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998, 1.00026,
- 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077, 0.99959, 1.00003, 0.99998,
- 0.99973, 0.99973, 0.99973, 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968,
- 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006,
- 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977, 0.99977,
- 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001,
- 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022,
- 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001,
- 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 0.99973,
- 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026,
- 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026,
- 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,
- 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977,
- 0.99973, 0.99977, 1.03374, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973,
- 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 1.00026, 1.00022,
- 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.0006,
- 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.00042,
- 0.99973, 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006,
- 1.00026, 1.03828, 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026,
- 0.99977, 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022,
- 1.00026, 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977, 0.99959, 1.00001,
- 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00026, 0.99998,
- 1.00026, 0.8121, 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026,
- 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001,
- 0.99973, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973,
- 1, 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998,
- 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 1.00034,
- 0.99977, 1, 0.99997, 1.00026, 1.00078, 1.00036, 0.99973, 1.00013, 1.0006, 0.99977,
- 0.99977, 0.99988, 0.85148, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001,
- 0.99999, 0.99977, 1.00069, 1.00022, 0.99977, 1.00001, 0.99984, 1.00026, 1.00001,
- 1.00024, 1.00001, 0.9999, 1, 1.0006, 1.00001, 1.00041, 0.99962, 1.00026, 1.0006,
- 0.99995, 1.00041, 0.99942, 0.99973, 0.99927, 1.00082, 0.99902, 1.00026, 1.00087, 1.0006,
- 1.00069, 0.99973, 0.99867, 0.99973, 0.9993, 1.00026, 1.00049, 1.00056, 1, 0.99988,
- 0.99935, 0.99995, 0.99954, 1.00055, 0.99945, 1.00032, 1.0006, 0.99995, 1.00026, 0.99995,
- 1.00032, 1.00001, 1.00008, 0.99971, 1.00019, 0.9994, 1.00001, 1.0006, 1.00044, 0.99973,
- 1.00023, 1.00047, 1, 0.99942, 0.99561, 0.99989, 1.00035, 0.99977, 1.00035, 0.99977,
- 1.00019, 0.99944, 1.00001, 1.00021, 0.99926, 1.00035, 1.00035, 0.99942, 1.00048,
- 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.99989, 1.00057,
- 1.00001, 0.99936, 1.00052, 1.00012, 0.99996, 1.00043, 1, 1.00035, 0.9994, 0.99976,
- 1.00035, 0.99973, 1.00052, 1.00041, 1.00119, 1.00037, 0.99973, 1.00002, 0.99986,
- 1.00041, 1.00041, 0.99902, 0.9996, 1.00034, 0.99999, 1.00026, 0.99999, 1.00026, 0.99973,
- 1.00052, 0.99973, 1, 0.99973, 1.00041, 1.00075, 0.9994, 1.0003, 0.99999, 1, 1.00041,
- 0.99955, 1, 0.99915, 0.99973, 0.99973, 1.00026, 1.00119, 0.99955, 0.99973, 1.0006,
- 0.99911, 1.0006, 1.00026, 0.99972, 1.00026, 0.99902, 1.00041, 0.99973, 0.99999, 1, 1,
- 1.00038, 1.0005, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001, 0.99973,
- 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973, 0.99973,
- 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475, 1,
- 0.99973, 0.99973, 1.00023, 0.99973, 0.99971, 1.00047, 1.00023, 1, 0.99991, 0.99984,
- 1.00002, 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.99972, 1, 1.20985, 1.39713,
- 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031,
- 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861,
- 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972, 0.99999, 0.99999, 0.99999,
- 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1,
- 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- ];
- t.HelveticaBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };
- t.HelveticaBoldItalicFactors = [
- 0.76116, 1, 1, 1.0006, 0.99998, 0.99974, 0.99973, 0.99973, 0.99982, 0.99977, 1.00087,
- 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973,
- 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1,
- 1.00003, 1.00003, 1.00003, 1.00026, 0.9999, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001,
- 1.00026, 1.00022, 0.99977, 1.0006, 0.99973, 0.99977, 1.00026, 0.99999, 0.99977, 1.00022,
- 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016, 1.00001,
- 1.00001, 1.00026, 0.99998, 1.0006, 0.99998, 1.00003, 0.99973, 0.99998, 0.99973, 1.00026,
- 0.99973, 1.00026, 0.99973, 0.99998, 1.00026, 1.00026, 1.0006, 1.0006, 0.99973, 1.0006,
- 0.99982, 1.00026, 1.00026, 1.00026, 1.00026, 0.99959, 0.99973, 0.99998, 1.00026,
- 0.99973, 1.00022, 0.99973, 0.99973, 1, 0.99959, 1.00077, 0.99959, 1.00003, 0.99998,
- 0.99973, 0.99973, 0.99973, 0.99973, 1.00077, 0.99973, 0.99998, 1.00025, 0.99968,
- 0.99973, 1.00003, 1.00025, 0.60299, 1.00024, 1.06409, 1, 1, 0.99998, 1, 0.99973, 1.0006,
- 0.99998, 1, 0.99936, 0.99973, 1.00002, 1.00002, 1.00002, 1.00026, 0.99977, 0.99977,
- 0.99977, 0.99977, 0.99977, 0.99977, 1, 0.99977, 1.00001, 1.00001, 1.00001, 1.00001,
- 1.0006, 1.0006, 1.0006, 1.0006, 0.99977, 0.99977, 1.00022, 1.00022, 1.00022, 1.00022,
- 1.00022, 1.00003, 1.00022, 0.99977, 0.99977, 0.99977, 0.99977, 1.00001, 1.00001,
- 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99982, 0.99973,
- 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1.0006, 1.0006, 1.0006, 1.00026, 1.00026,
- 1.00026, 1.00026, 1.00026, 1.00026, 1.00026, 1.06409, 1.00026, 1.00026, 1.00026,
- 1.00026, 1.00026, 0.99973, 1.00026, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,
- 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977,
- 0.99973, 0.99977, 1.0044, 0.99977, 1.00026, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,
- 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 1.00026, 1.00022, 1.00026,
- 1.00022, 1.00026, 1.00022, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.0006, 1.0006,
- 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99971, 0.99973,
- 0.99973, 1.0006, 0.99977, 0.99973, 0.99973, 1.00026, 1.0006, 1.00026, 1.0006, 1.00026,
- 1.01011, 1.00026, 0.99999, 1.00026, 1.0006, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,
- 1.00026, 0.9993, 0.9998, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026, 1.00022, 1.00026,
- 1, 1.00016, 0.99977, 0.99959, 0.99977, 0.99959, 0.99977, 0.99959, 1.00001, 0.99973,
- 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00026, 0.99998, 1.00026, 0.8121,
- 1.00026, 0.99998, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 0.99977,
- 1.00026, 0.99977, 1.00026, 0.99977, 1.00026, 1.00016, 1.00022, 1.00001, 0.99973,
- 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1, 1.0006, 0.99973, 0.99977, 0.99973, 1,
- 0.99982, 1.00022, 1.00026, 1.00001, 0.99973, 1.00026, 0.99998, 0.99998, 0.99998,
- 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,
- 0.99977, 1, 1, 1.00026, 0.99969, 0.99972, 0.99981, 0.9998, 1.0006, 0.99977, 0.99977,
- 1.00022, 0.91155, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006, 0.99977, 1.00001, 0.99999,
- 0.99977, 0.99966, 1.00022, 1.00032, 1.00001, 0.99944, 1.00026, 1.00001, 0.99968,
- 1.00001, 1.00047, 1, 1.0006, 1.00001, 0.99981, 1.00101, 1.00026, 1.0006, 0.99948,
- 0.99981, 1.00064, 0.99973, 0.99942, 1.00101, 1.00061, 1.00026, 1.00069, 1.0006, 1.00014,
- 0.99973, 1.01322, 0.99973, 1.00065, 1.00026, 1.00012, 0.99923, 1, 1.00064, 1.00076,
- 0.99948, 1.00055, 1.00063, 1.00007, 0.99943, 1.0006, 0.99948, 1.00026, 0.99948, 0.99943,
- 1.00001, 1.00001, 1.00029, 1.00038, 1.00035, 1.00001, 1.0006, 1.0006, 0.99973, 0.99978,
- 1.00001, 1.00057, 0.99989, 0.99967, 0.99964, 0.99967, 0.99977, 0.99999, 0.99977,
- 1.00038, 0.99977, 1.00001, 0.99973, 1.00066, 0.99967, 0.99967, 1.00041, 0.99998,
- 0.99999, 0.99977, 1.00022, 0.99967, 1.00001, 0.99977, 1.00026, 0.99964, 1.00031,
- 1.00001, 0.99999, 0.99999, 1, 1.00023, 1, 1, 0.99999, 1.00035, 1.00001, 0.99999,
- 0.99973, 0.99977, 0.99999, 1.00058, 0.99973, 0.99973, 0.99955, 0.9995, 1.00026, 1.00026,
- 1.00032, 0.99989, 1.00034, 0.99999, 1.00026, 1.00026, 1.00026, 0.99973, 0.45998,
- 0.99973, 1.00026, 0.99973, 1.00001, 0.99999, 0.99982, 0.99994, 0.99996, 1, 1.00042,
- 1.00044, 1.00029, 1.00023, 0.99973, 0.99973, 1.00026, 0.99949, 1.00002, 0.99973, 1.0006,
- 1.0006, 1.0006, 0.99975, 1.00026, 1.00026, 1.00032, 0.98685, 0.99973, 1.00026, 1, 1,
- 0.99966, 1.00044, 1.00016, 1.00022, 1.00016, 1.00022, 1.00016, 1.00022, 1.00001,
- 0.99973, 1, 1, 0.99973, 1, 1, 0.99955, 1.0006, 1.0006, 1.0006, 1.0006, 1, 1, 1, 0.99973,
- 0.99973, 0.99972, 1, 1, 1.00106, 0.99999, 0.99998, 0.99998, 0.99999, 0.99998, 1.66475,
- 1, 0.99973, 0.99973, 1, 0.99973, 0.99971, 0.99978, 1, 1, 0.99991, 0.99984, 1.00002,
- 1.00002, 1.00002, 1.00002, 1.00098, 1, 1, 1, 1.00049, 1, 1, 0.99972, 1, 1.20985,
- 1.39713, 1.00003, 1.00031, 1.00015, 1, 0.99561, 1.00027, 1.00031, 1.00031, 0.99915,
- 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1,
- 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.99972, 0.99999, 0.99999,
- 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995,
- 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1,
- ];
- t.HelveticaBoldItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };
- t.HelveticaItalicFactors = [
- 0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001, 1.00043,
- 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973,
- 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1,
- 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001, 0.99977, 0.99977,
- 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977,
- 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016,
- 1.00001, 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973,
- 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924,
- 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1,
- 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973,
- 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024,
- 1.06409, 1, 1, 0.99998, 1, 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002,
- 1.00002, 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1,
- 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977,
- 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977,
- 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,
- 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006,
- 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,
- 1.06409, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973,
- 1.00001, 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1,
- 0.99977, 1.0288, 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973,
- 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022,
- 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006, 1.0006, 1.0006,
- 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006, 1.0006, 0.99946, 1.00034, 1, 0.99924,
- 1.00001, 1, 1, 0.99973, 0.99924, 0.99973, 0.99924, 0.99973, 1.06311, 0.99973, 1.00024,
- 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.00041, 0.9998,
- 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1, 1.00016, 0.99977,
- 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1, 1.00001, 1,
- 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.89547, 1.00026, 1.0006, 0.99977, 0.99973,
- 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977,
- 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1, 1.00026, 1,
- 0.99924, 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001, 1, 1.00026,
- 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,
- 0.99998, 0.99998, 1.00001, 1, 1.00054, 0.99977, 1.00084, 1.00007, 0.99973, 1.00013,
- 0.99924, 1.00001, 1.00001, 0.99945, 0.91221, 1.00001, 1.00026, 0.99977, 1.00022, 1.0006,
- 1.00001, 1.00001, 0.99999, 0.99977, 0.99933, 1.00022, 1.00054, 1.00001, 1.00065,
- 1.00026, 1.00001, 1.0001, 1.00001, 1.00052, 1, 1.0006, 1.00001, 0.99945, 0.99897,
- 0.99968, 0.99924, 1.00036, 0.99945, 0.99949, 1, 1.0006, 0.99897, 0.99918, 0.99968,
- 0.99911, 0.99924, 1, 0.99962, 1.01487, 1, 1.0005, 0.99973, 1.00012, 1.00043, 1, 0.99995,
- 0.99994, 1.00036, 0.99947, 1.00019, 1.00063, 1.00025, 0.99924, 1.00036, 0.99973,
- 1.00036, 1.00025, 1.00001, 1.00001, 1.00027, 1.0001, 1.00068, 1.00001, 1.0006, 1.0006,
- 1, 1.00008, 0.99957, 0.99972, 0.9994, 0.99954, 0.99975, 1.00051, 1.00001, 1.00019,
- 1.00001, 1.0001, 0.99986, 1.00001, 1.00001, 1.00038, 0.99954, 0.99954, 0.9994, 1.00066,
- 0.99999, 0.99977, 1.00022, 1.00054, 1.00001, 0.99977, 1.00026, 0.99975, 1.0001, 1.00001,
- 0.99993, 0.9995, 0.99955, 1.00016, 0.99978, 0.99974, 1.00019, 1.00022, 0.99955, 1.00053,
- 0.99973, 1.00089, 1.00005, 0.99967, 1.00048, 0.99973, 1.00002, 1.00034, 0.99973,
- 0.99973, 0.99964, 1.00006, 1.00066, 0.99947, 0.99973, 0.98894, 0.99973, 1, 0.44898, 1,
- 0.99946, 1, 1.00039, 1.00082, 0.99991, 0.99991, 0.99985, 1.00022, 1.00023, 1.00061,
- 1.00006, 0.99966, 0.99973, 0.99973, 0.99973, 1.00019, 1.0008, 1, 0.99924, 0.99924,
- 0.99924, 0.99983, 1.00044, 0.99973, 0.99964, 0.98332, 1, 0.99973, 1, 1, 0.99962,
- 0.99895, 1.00016, 0.99977, 1.00016, 0.99977, 1.00016, 0.99977, 1.00001, 1, 1, 1,
- 0.99973, 1, 1, 0.99955, 0.99924, 0.99924, 0.99924, 0.99924, 0.99998, 0.99998, 0.99998,
- 0.99973, 0.99973, 0.99972, 1, 1, 1.00267, 0.99999, 0.99998, 0.99998, 1, 0.99998,
- 1.66475, 1, 0.99973, 0.99973, 1.00023, 0.99973, 1.00423, 0.99925, 0.99999, 1, 0.99991,
- 0.99984, 1.00002, 1.00002, 1.00002, 1.00002, 1.00049, 1, 1.00245, 1, 1, 1, 1, 0.96329,
- 1, 1.20985, 1.39713, 1.00003, 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031,
- 1.00003, 1.00031, 1.00031, 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625,
- 0.99999, 1, 0.99861, 0.99861, 1, 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999,
- 0.99999, 0.99999, 0.99999, 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962,
- 1.00042, 0.9995, 1, 1, 1, 1, 1, 1, 1, 1, 0.99998, 0.99998, 0.99998, 0.99998, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1,
- ];
- t.HelveticaItalicMetrics = { lineHeight: 1.35, lineGap: 0.2 };
- t.HelveticaRegularFactors = [
- 0.76116, 1, 1, 1.0006, 1.0006, 1.00006, 0.99973, 0.99973, 0.99982, 1.00001, 1.00043,
- 0.99998, 0.99998, 0.99959, 1.00003, 1.0006, 0.99998, 1.0006, 1.0006, 0.99973, 0.99973,
- 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006, 1,
- 1.00003, 1.00003, 1.00003, 0.99973, 0.99987, 1.00001, 1.00001, 0.99977, 0.99977,
- 1.00001, 1.00026, 1.00022, 0.99977, 1.0006, 1, 1.00001, 0.99973, 0.99999, 0.99977,
- 1.00022, 1.00001, 1.00022, 0.99977, 1.00001, 1.00026, 0.99977, 1.00001, 1.00016,
- 1.00001, 1.00001, 1.00026, 1.0006, 1.0006, 1.0006, 0.99949, 0.99973, 0.99998, 0.99973,
- 0.99973, 1, 0.99973, 0.99973, 1.0006, 0.99973, 0.99973, 0.99924, 0.99924, 1, 0.99924,
- 0.99999, 0.99973, 0.99973, 0.99973, 0.99973, 0.99998, 1, 1.0006, 0.99973, 1, 0.99977, 1,
- 1, 1, 1.00005, 1.0009, 1.00005, 1.00003, 0.99998, 0.99973, 0.99973, 0.99973, 0.99973,
- 1.0009, 0.99973, 0.99998, 1.00025, 0.99968, 0.99973, 1.00003, 1.00025, 0.60299, 1.00024,
- 1.06409, 1, 1, 0.99998, 1, 0.9998, 1.0006, 0.99998, 1, 0.99936, 0.99973, 1.00002,
- 1.00002, 1.00002, 1.00026, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1.00001, 1,
- 0.99977, 1.00001, 1.00001, 1.00001, 1.00001, 1.0006, 1.0006, 1.0006, 1.0006, 0.99977,
- 0.99977, 1.00022, 1.00022, 1.00022, 1.00022, 1.00022, 1.00003, 1.00022, 0.99977,
- 0.99977, 0.99977, 0.99977, 1.00001, 1.00001, 1.00026, 0.99973, 0.99973, 0.99973,
- 0.99973, 0.99973, 0.99973, 0.99982, 1, 0.99973, 0.99973, 0.99973, 0.99973, 1.0006,
- 1.0006, 1.0006, 1.0006, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973, 0.99973,
- 1.06409, 1.00026, 0.99973, 0.99973, 0.99973, 0.99973, 1, 0.99973, 1, 1.00001, 0.99973,
- 1.00001, 0.99973, 1.00001, 0.99973, 0.99977, 1, 0.99977, 1, 0.99977, 1, 0.99977, 1,
- 0.99977, 1.04596, 0.99977, 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00001,
- 0.99973, 1.00001, 0.99973, 1.00001, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973,
- 1.00022, 0.99973, 1.00022, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 1.0006, 1.0006,
- 1.0006, 1.0006, 1.0006, 1.0006, 1.0006, 0.99924, 1.0006, 1.0006, 1.00019, 1.00034, 1,
- 0.99924, 1.00001, 1, 1, 0.99973, 0.99924, 0.99973, 0.99924, 0.99973, 1.02572, 0.99973,
- 1.00005, 0.99973, 0.99924, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,
- 0.99999, 0.9998, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1.00022, 0.99973, 1,
- 1.00016, 0.99977, 0.99998, 0.99977, 0.99998, 0.99977, 0.99998, 1.00001, 1, 1.00001, 1,
- 1.00001, 1, 1.00001, 1, 1.00026, 1.0006, 1.00026, 0.84533, 1.00026, 1.0006, 0.99977,
- 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973, 0.99977, 0.99973,
- 0.99977, 0.99973, 1.00016, 0.99977, 1.00001, 1, 1.00001, 1.00026, 1, 1.00026, 1,
- 1.00026, 1, 0.99924, 0.99973, 1.00001, 0.99973, 1, 0.99982, 1.00022, 1.00026, 1.00001,
- 1, 1.00026, 1.0006, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998, 0.99998,
- 0.99998, 0.99998, 0.99998, 0.99998, 0.99928, 1, 0.99977, 1.00013, 1.00055, 0.99947,
- 0.99945, 0.99941, 0.99924, 1.00001, 1.00001, 1.0004, 0.91621, 1.00001, 1.00026, 0.99977,
- 1.00022, 1.0006, 1.00001, 1.00005, 0.99999, 0.99977, 1.00015, 1.00022, 0.99977, 1.00001,
- 0.99973, 1.00026, 1.00001, 1.00019, 1.00001, 0.99946, 1, 1.0006, 1.00001, 0.99978,
- 1.00045, 0.99973, 0.99924, 1.00023, 0.99978, 0.99966, 1, 1.00065, 1.00045, 1.00019,
- 0.99973, 0.99973, 0.99924, 1, 1, 0.96499, 1, 1.00055, 0.99973, 1.00008, 1.00027, 1,
- 0.9997, 0.99995, 1.00023, 0.99933, 1.00019, 1.00015, 1.00031, 0.99924, 1.00023, 0.99973,
- 1.00023, 1.00031, 1.00001, 0.99928, 1.00029, 1.00092, 1.00035, 1.00001, 1.0006, 1.0006,
- 1, 0.99988, 0.99975, 1, 1.00082, 0.99561, 0.9996, 1.00035, 1.00001, 0.99962, 1.00001,
- 1.00092, 0.99964, 1.00001, 0.99963, 0.99999, 1.00035, 1.00035, 1.00082, 0.99962,
- 0.99999, 0.99977, 1.00022, 1.00035, 1.00001, 0.99977, 1.00026, 0.9996, 0.99967, 1.00001,
- 1.00034, 1.00074, 1.00054, 1.00053, 1.00063, 0.99971, 0.99962, 1.00035, 0.99975,
- 0.99977, 0.99973, 1.00043, 0.99953, 1.0007, 0.99915, 0.99973, 1.00008, 0.99892, 1.00073,
- 1.00073, 1.00114, 0.99915, 1.00073, 0.99955, 0.99973, 1.00092, 0.99973, 1, 0.99998, 1,
- 1.0003, 1, 1.00043, 1.00001, 0.99969, 1.0003, 1, 1.00035, 1.00001, 0.9995, 1, 1.00092,
- 0.99973, 0.99973, 0.99973, 1.0007, 0.9995, 1, 0.99924, 1.0006, 0.99924, 0.99972,
- 1.00062, 0.99973, 1.00114, 1.00073, 1, 0.99955, 1, 1, 1.00047, 0.99968, 1.00016,
- 0.99977, 1.00016, 0.99977, 1.00016, 0.99977, 1.00001, 1, 1, 1, 0.99973, 1, 1, 0.99955,
- 0.99924, 0.99924, 0.99924, 0.99924, 0.99998, 0.99998, 0.99998, 0.99973, 0.99973,
- 0.99972, 1, 1, 1.00267, 0.99999, 0.99998, 0.99998, 1, 0.99998, 1.66475, 1, 0.99973,
- 0.99973, 1.00023, 0.99973, 0.99971, 0.99925, 1.00023, 1, 0.99991, 0.99984, 1.00002,
- 1.00002, 1.00002, 1.00002, 1, 1, 1, 1, 1, 1, 1, 0.96329, 1, 1.20985, 1.39713, 1.00003,
- 0.8254, 1.00015, 1, 1.00035, 1.00027, 1.00031, 1.00031, 0.99915, 1.00031, 1.00031,
- 0.99999, 1.00003, 0.99999, 0.99999, 1.41144, 1.6, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144, 1.41144,
- 1.41144, 1.41144, 1.41144, 1.40579, 1.40579, 1.36625, 0.99999, 1, 0.99861, 0.99861, 1,
- 1.00026, 1.00026, 1.00026, 1.00026, 0.95317, 0.99999, 0.99999, 0.99999, 0.99999,
- 1.40483, 1, 0.99977, 1.00054, 1, 1, 0.99953, 0.99962, 1.00042, 0.9995, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- ];
- t.HelveticaRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };
- },
- (e, t) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.LiberationSansRegularWidths =
- t.LiberationSansRegularMapping =
- t.LiberationSansItalicWidths =
- t.LiberationSansItalicMapping =
- t.LiberationSansBoldWidths =
- t.LiberationSansBoldMapping =
- t.LiberationSansBoldItalicWidths =
- t.LiberationSansBoldItalicMapping =
- void 0;
- t.LiberationSansBoldWidths = [
- 365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278,
- 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611,
- 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667,
- 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556,
- 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389,
- 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556,
- 280, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278,
- 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1e3, 722, 667,
- 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722,
- 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556,
- 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 549, 611, 611, 611, 611,
- 611, 556, 611, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722,
- 556, 722, 719, 722, 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611,
- 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278,
- 278, 278, 278, 785, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 385, 611,
- 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778,
- 611, 1e3, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667, 556, 667, 556,
- 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 722,
- 611, 944, 778, 667, 556, 667, 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1e3,
- 889, 778, 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333,
- 465, 722, 333, 853, 906, 474, 825, 927, 838, 278, 722, 722, 601, 719, 667, 611, 722,
- 778, 278, 722, 667, 833, 722, 644, 778, 722, 667, 600, 611, 667, 821, 667, 809, 802,
- 278, 667, 615, 451, 611, 278, 582, 615, 610, 556, 606, 475, 460, 611, 541, 278, 558,
- 556, 612, 556, 445, 611, 766, 619, 520, 684, 446, 582, 715, 576, 753, 845, 278, 582,
- 611, 582, 845, 667, 669, 885, 567, 711, 667, 278, 276, 556, 1094, 1062, 875, 610, 722,
- 622, 719, 722, 719, 722, 567, 712, 667, 904, 626, 719, 719, 610, 702, 833, 722, 778,
- 719, 667, 722, 611, 622, 854, 667, 730, 703, 1005, 1019, 870, 979, 719, 711, 1031, 719,
- 556, 618, 615, 417, 635, 556, 709, 497, 615, 615, 500, 635, 740, 604, 611, 604, 611,
- 556, 490, 556, 875, 556, 615, 581, 833, 844, 729, 854, 615, 552, 854, 583, 556, 556,
- 611, 417, 552, 556, 278, 281, 278, 969, 906, 611, 500, 615, 556, 604, 778, 611, 487,
- 447, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1e3, 1e3, 552, 278, 278,
- 278, 278, 500, 500, 500, 556, 556, 350, 1e3, 1e3, 240, 479, 333, 333, 604, 333, 167,
- 396, 556, 556, 1094, 556, 885, 489, 1115, 1e3, 768, 600, 834, 834, 834, 834, 1e3, 500,
- 1e3, 500, 1e3, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 722, 274, 549, 549,
- 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708,
- 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
- 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
- 708, 708, 708, 729, 604, 604, 354, 354, 1e3, 990, 990, 990, 990, 494, 604, 604, 604,
- 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333,
- 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333, 333, 333, 333, 333,
- ];
- t.LiberationSansBoldMapping = [
- -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163,
- 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181,
- 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
- 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
- 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
- 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
- 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506,
- 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732,
- 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917,
- 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935,
- 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,
- 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969,
- 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033,
- 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047,
- 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061,
- 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075,
- 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089,
- 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103,
- 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
- 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923,
- 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224,
- 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356,
- 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,
- 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745,
- 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488,
- 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558,
- 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572,
- 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617,
- 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679,
- 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835,
- 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1,
- ];
- t.LiberationSansBoldItalicWidths = [
- 365, 0, 333, 278, 333, 474, 556, 556, 889, 722, 238, 333, 333, 389, 584, 278, 333, 278,
- 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 333, 333, 584, 584, 584, 611,
- 975, 722, 722, 722, 722, 667, 611, 778, 722, 278, 556, 722, 611, 833, 722, 778, 667,
- 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 333, 278, 333, 584, 556, 333, 556,
- 611, 556, 611, 556, 333, 611, 611, 278, 278, 556, 278, 889, 611, 611, 611, 611, 389,
- 556, 333, 611, 556, 778, 556, 556, 500, 389, 280, 389, 584, 333, 556, 556, 556, 556,
- 280, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 556, 278,
- 333, 333, 365, 556, 834, 834, 834, 611, 722, 722, 722, 722, 722, 722, 1e3, 722, 667,
- 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722,
- 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 556, 556, 556, 556,
- 556, 278, 278, 278, 278, 611, 611, 611, 611, 611, 611, 611, 549, 611, 611, 611, 611,
- 611, 556, 611, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722,
- 556, 722, 740, 722, 611, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 611,
- 778, 611, 778, 611, 778, 611, 722, 611, 722, 611, 278, 278, 278, 278, 278, 278, 278,
- 278, 278, 278, 782, 556, 556, 278, 722, 556, 556, 611, 278, 611, 278, 611, 396, 611,
- 479, 611, 278, 722, 611, 722, 611, 722, 611, 708, 723, 611, 778, 611, 778, 611, 778,
- 611, 1e3, 944, 722, 389, 722, 389, 722, 389, 667, 556, 667, 556, 667, 556, 667, 556,
- 611, 333, 611, 479, 611, 333, 722, 611, 722, 611, 722, 611, 722, 611, 722, 611, 722,
- 611, 944, 778, 667, 556, 667, 611, 500, 611, 500, 611, 500, 278, 556, 722, 556, 1e3,
- 889, 778, 611, 667, 556, 611, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333,
- 333, 722, 333, 854, 906, 473, 844, 930, 847, 278, 722, 722, 610, 671, 667, 611, 722,
- 778, 278, 722, 667, 833, 722, 657, 778, 718, 667, 590, 611, 667, 822, 667, 829, 781,
- 278, 667, 620, 479, 611, 278, 591, 620, 621, 556, 610, 479, 492, 611, 558, 278, 566,
- 556, 603, 556, 450, 611, 712, 605, 532, 664, 409, 591, 704, 578, 773, 834, 278, 591,
- 611, 591, 834, 667, 667, 886, 614, 719, 667, 278, 278, 556, 1094, 1042, 854, 622, 719,
- 677, 719, 722, 708, 722, 614, 722, 667, 927, 643, 719, 719, 615, 687, 833, 722, 778,
- 719, 667, 722, 611, 677, 781, 667, 729, 708, 979, 989, 854, 1e3, 708, 719, 1042, 729,
- 556, 619, 604, 534, 618, 556, 736, 510, 611, 611, 507, 622, 740, 604, 611, 611, 611,
- 556, 889, 556, 885, 556, 646, 583, 889, 935, 707, 854, 594, 552, 865, 589, 556, 556,
- 611, 469, 563, 556, 278, 278, 278, 969, 906, 611, 507, 619, 556, 611, 778, 611, 575,
- 467, 944, 778, 944, 778, 944, 778, 667, 556, 333, 333, 556, 1e3, 1e3, 552, 278, 278,
- 278, 278, 500, 500, 500, 556, 556, 350, 1e3, 1e3, 240, 479, 333, 333, 604, 333, 167,
- 396, 556, 556, 1104, 556, 885, 516, 1146, 1e3, 768, 600, 834, 834, 834, 834, 999, 500,
- 1e3, 500, 1e3, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 722, 274, 549, 549,
- 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708,
- 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
- 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
- 708, 708, 708, 729, 604, 604, 354, 354, 1e3, 990, 990, 990, 990, 494, 604, 604, 604,
- 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 611, 611, 333,
- 333, 333, 333, 333, 333, 333, 333, 222, 222, 333, 333, 333, 333, 333, 333, 333, 333,
- ];
- t.LiberationSansBoldItalicMapping = [
- -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163,
- 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181,
- 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
- 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
- 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
- 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
- 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506,
- 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732,
- 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917,
- 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935,
- 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,
- 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969,
- 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033,
- 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047,
- 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061,
- 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075,
- 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089,
- 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103,
- 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
- 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923,
- 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224,
- 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356,
- 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,
- 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745,
- 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488,
- 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558,
- 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572,
- 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617,
- 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679,
- 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835,
- 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1,
- ];
- t.LiberationSansItalicWidths = [
- 365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278,
- 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556,
- 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667,
- 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556,
- 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333,
- 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556,
- 260, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278,
- 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1e3, 722, 667,
- 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722,
- 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556,
- 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 549, 611, 556, 556, 556,
- 556, 500, 556, 500, 667, 556, 667, 556, 667, 556, 722, 500, 722, 500, 722, 500, 722,
- 500, 722, 625, 722, 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556,
- 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278,
- 222, 278, 278, 733, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 281, 556,
- 400, 556, 222, 722, 556, 722, 556, 722, 556, 615, 723, 556, 778, 556, 778, 556, 778,
- 556, 1e3, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667, 500, 667, 500,
- 611, 278, 611, 354, 611, 278, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722,
- 556, 944, 722, 667, 500, 667, 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1e3,
- 889, 778, 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333,
- 333, 667, 278, 789, 846, 389, 794, 865, 775, 222, 667, 667, 570, 671, 667, 611, 722,
- 778, 278, 667, 667, 833, 722, 648, 778, 725, 667, 600, 611, 667, 837, 667, 831, 761,
- 278, 667, 570, 439, 555, 222, 550, 570, 571, 500, 556, 439, 463, 555, 542, 222, 500,
- 492, 548, 500, 447, 556, 670, 573, 486, 603, 374, 550, 652, 546, 728, 779, 222, 550,
- 556, 550, 779, 667, 667, 843, 544, 708, 667, 278, 278, 500, 1066, 982, 844, 589, 715,
- 639, 724, 667, 651, 667, 544, 704, 667, 917, 614, 715, 715, 589, 686, 833, 722, 778,
- 725, 667, 722, 611, 639, 795, 667, 727, 673, 920, 923, 805, 886, 651, 694, 1022, 682,
- 556, 562, 522, 493, 553, 556, 688, 465, 556, 556, 472, 564, 686, 550, 556, 556, 556,
- 500, 833, 500, 835, 500, 572, 518, 830, 851, 621, 736, 526, 492, 752, 534, 556, 556,
- 556, 378, 496, 500, 222, 222, 222, 910, 828, 556, 472, 565, 500, 556, 778, 556, 492,
- 339, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1e3, 1e3, 552, 222, 222,
- 222, 222, 333, 333, 333, 556, 556, 350, 1e3, 1e3, 188, 354, 333, 333, 500, 333, 167,
- 365, 556, 556, 1094, 556, 885, 323, 1083, 1e3, 768, 600, 834, 834, 834, 834, 1e3, 500,
- 998, 500, 1e3, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 719, 274, 549, 549,
- 584, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708,
- 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
- 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
- 708, 708, 708, 729, 604, 604, 354, 354, 1e3, 990, 990, 990, 990, 494, 604, 604, 604,
- 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333,
- 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324, 316, 328, 398, 285,
- ];
- t.LiberationSansItalicMapping = [
- -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163,
- 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181,
- 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
- 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
- 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
- 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
- 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506,
- 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732,
- 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917,
- 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935,
- 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,
- 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969,
- 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033,
- 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047,
- 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061,
- 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075,
- 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089,
- 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103,
- 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
- 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923,
- 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224,
- 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356,
- 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,
- 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745,
- 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488,
- 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558,
- 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572,
- 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617,
- 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679,
- 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835,
- 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1,
- ];
- t.LiberationSansRegularWidths = [
- 365, 0, 333, 278, 278, 355, 556, 556, 889, 667, 191, 333, 333, 389, 584, 278, 333, 278,
- 278, 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, 278, 278, 584, 584, 584, 556,
- 1015, 667, 667, 722, 722, 667, 611, 778, 722, 278, 500, 667, 556, 833, 722, 778, 667,
- 778, 722, 667, 611, 722, 667, 944, 667, 667, 611, 278, 278, 278, 469, 556, 333, 556,
- 556, 500, 556, 556, 278, 556, 556, 222, 222, 500, 222, 833, 556, 556, 556, 556, 333,
- 500, 278, 556, 500, 722, 500, 500, 500, 334, 260, 334, 584, 333, 556, 556, 556, 556,
- 260, 556, 333, 737, 370, 556, 584, 737, 552, 400, 549, 333, 333, 333, 576, 537, 278,
- 333, 333, 365, 556, 834, 834, 834, 611, 667, 667, 667, 667, 667, 667, 1e3, 722, 667,
- 667, 667, 667, 278, 278, 278, 278, 722, 722, 778, 778, 778, 778, 778, 584, 778, 722,
- 722, 722, 722, 667, 667, 611, 556, 556, 556, 556, 556, 556, 889, 500, 556, 556, 556,
- 556, 278, 278, 278, 278, 556, 556, 556, 556, 556, 556, 556, 549, 611, 556, 556, 556,
- 556, 500, 556, 500, 667, 556, 667, 556, 667, 556, 722, 500, 722, 500, 722, 500, 722,
- 500, 722, 615, 722, 556, 667, 556, 667, 556, 667, 556, 667, 556, 667, 556, 778, 556,
- 778, 556, 778, 556, 778, 556, 722, 556, 722, 556, 278, 278, 278, 278, 278, 278, 278,
- 222, 278, 278, 735, 444, 500, 222, 667, 500, 500, 556, 222, 556, 222, 556, 292, 556,
- 334, 556, 222, 722, 556, 722, 556, 722, 556, 604, 723, 556, 778, 556, 778, 556, 778,
- 556, 1e3, 944, 722, 333, 722, 333, 722, 333, 667, 500, 667, 500, 667, 500, 667, 500,
- 611, 278, 611, 375, 611, 278, 722, 556, 722, 556, 722, 556, 722, 556, 722, 556, 722,
- 556, 944, 722, 667, 500, 667, 611, 500, 611, 500, 611, 500, 222, 556, 667, 556, 1e3,
- 889, 778, 611, 667, 500, 611, 278, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333,
- 333, 667, 278, 784, 838, 384, 774, 855, 752, 222, 667, 667, 551, 668, 667, 611, 722,
- 778, 278, 667, 668, 833, 722, 650, 778, 722, 667, 618, 611, 667, 798, 667, 835, 748,
- 278, 667, 578, 446, 556, 222, 547, 578, 575, 500, 557, 446, 441, 556, 556, 222, 500,
- 500, 576, 500, 448, 556, 690, 569, 482, 617, 395, 547, 648, 525, 713, 781, 222, 547,
- 556, 547, 781, 667, 667, 865, 542, 719, 667, 278, 278, 500, 1057, 1010, 854, 583, 722,
- 635, 719, 667, 656, 667, 542, 677, 667, 923, 604, 719, 719, 583, 656, 833, 722, 778,
- 719, 667, 722, 611, 635, 760, 667, 740, 667, 917, 938, 792, 885, 656, 719, 1010, 722,
- 556, 573, 531, 365, 583, 556, 669, 458, 559, 559, 438, 583, 688, 552, 556, 542, 556,
- 500, 458, 500, 823, 500, 573, 521, 802, 823, 625, 719, 521, 510, 750, 542, 556, 556,
- 556, 365, 510, 500, 222, 278, 222, 906, 812, 556, 438, 559, 500, 552, 778, 556, 489,
- 411, 944, 722, 944, 722, 944, 722, 667, 500, 333, 333, 556, 1e3, 1e3, 552, 222, 222,
- 222, 222, 333, 333, 333, 556, 556, 350, 1e3, 1e3, 188, 354, 333, 333, 500, 333, 167,
- 365, 556, 556, 1094, 556, 885, 323, 1073, 1e3, 768, 600, 834, 834, 834, 834, 1e3, 500,
- 1e3, 500, 1e3, 500, 500, 494, 612, 823, 713, 584, 549, 713, 979, 719, 274, 549, 549,
- 583, 549, 549, 604, 584, 604, 604, 708, 625, 708, 708, 708, 708, 708, 708, 708, 708,
- 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
- 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
- 708, 708, 708, 729, 604, 604, 354, 354, 1e3, 990, 990, 990, 990, 494, 604, 604, 604,
- 604, 354, 1021, 1052, 917, 750, 750, 531, 656, 594, 510, 500, 750, 750, 500, 500, 333,
- 333, 333, 333, 333, 333, 333, 333, 222, 222, 294, 294, 324, 324, 316, 328, 398, 285,
- ];
- t.LiberationSansRegularMapping = [
- -1, -1, -1, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
- 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 161, 162, 163,
- 164, 165, 166, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181,
- 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
- 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
- 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
- 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
- 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
- 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
- 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
- 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 402, 506,
- 507, 508, 509, 510, 511, 536, 537, 538, 539, 710, 711, 713, 728, 729, 730, 731, 732,
- 733, 900, 901, 902, 903, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917,
- 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935,
- 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952,
- 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969,
- 970, 971, 972, 973, 974, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033,
- 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047,
- 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061,
- 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075,
- 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089,
- 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103,
- 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
- 1118, 1119, 1138, 1139, 1168, 1169, 7808, 7809, 7810, 7811, 7812, 7813, 7922, 7923,
- 8208, 8209, 8211, 8212, 8213, 8215, 8216, 8217, 8218, 8219, 8220, 8221, 8222, 8224,
- 8225, 8226, 8230, 8240, 8242, 8243, 8249, 8250, 8252, 8254, 8260, 8319, 8355, 8356,
- 8359, 8364, 8453, 8467, 8470, 8482, 8486, 8494, 8539, 8540, 8541, 8542, 8592, 8593,
- 8594, 8595, 8596, 8597, 8616, 8706, 8710, 8719, 8721, 8722, 8730, 8734, 8735, 8745,
- 8747, 8776, 8800, 8801, 8804, 8805, 8962, 8976, 8992, 8993, 9472, 9474, 9484, 9488,
- 9492, 9496, 9500, 9508, 9516, 9524, 9532, 9552, 9553, 9554, 9555, 9556, 9557, 9558,
- 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572,
- 9573, 9574, 9575, 9576, 9577, 9578, 9579, 9580, 9600, 9604, 9608, 9612, 9616, 9617,
- 9618, 9619, 9632, 9633, 9642, 9643, 9644, 9650, 9658, 9660, 9668, 9674, 9675, 9679,
- 9688, 9689, 9702, 9786, 9787, 9788, 9792, 9794, 9824, 9827, 9829, 9830, 9834, 9835,
- 9836, 61441, 61442, 61445, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1,
- ];
- },
- (e, t) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.MyriadProRegularMetrics =
- t.MyriadProRegularFactors =
- t.MyriadProItalicMetrics =
- t.MyriadProItalicFactors =
- t.MyriadProBoldMetrics =
- t.MyriadProBoldItalicMetrics =
- t.MyriadProBoldItalicFactors =
- t.MyriadProBoldFactors =
- void 0;
- t.MyriadProBoldFactors = [
- 1.36898, 1, 1, 0.72706, 0.80479, 0.83734, 0.98894, 0.99793, 0.9897, 0.93884, 0.86209,
- 0.94292, 0.94292, 1.16661, 1.02058, 0.93582, 0.96694, 0.93582, 1.19137, 0.99793,
- 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793, 0.99793,
- 0.78076, 0.78076, 1.02058, 1.02058, 1.02058, 0.72851, 0.78966, 0.90838, 0.83637,
- 0.82391, 0.96376, 0.80061, 0.86275, 0.8768, 0.95407, 1.0258, 0.73901, 0.85022, 0.83655,
- 1.0156, 0.95546, 0.92179, 0.87107, 0.92179, 0.82114, 0.8096, 0.89713, 0.94438, 0.95353,
- 0.94083, 0.91905, 0.90406, 0.9446, 0.94292, 1.18777, 0.94292, 1.02058, 0.89903, 0.90088,
- 0.94938, 0.97898, 0.81093, 0.97571, 0.94938, 1.024, 0.9577, 0.95933, 0.98621, 1.0474,
- 0.97455, 0.98981, 0.9672, 0.95933, 0.9446, 0.97898, 0.97407, 0.97646, 0.78036, 1.10208,
- 0.95442, 0.95298, 0.97579, 0.9332, 0.94039, 0.938, 0.80687, 1.01149, 0.80687, 1.02058,
- 0.80479, 0.99793, 0.99793, 0.99793, 0.99793, 1.01149, 1.00872, 0.90088, 0.91882, 1.0213,
- 0.8361, 1.02058, 0.62295, 0.54324, 0.89022, 1.08595, 1, 1, 0.90088, 1, 0.97455, 0.93582,
- 0.90088, 1, 1.05686, 0.8361, 0.99642, 0.99642, 0.99642, 0.72851, 0.90838, 0.90838,
- 0.90838, 0.90838, 0.90838, 0.90838, 0.868, 0.82391, 0.80061, 0.80061, 0.80061, 0.80061,
- 1.0258, 1.0258, 1.0258, 1.0258, 0.97484, 0.95546, 0.92179, 0.92179, 0.92179, 0.92179,
- 0.92179, 1.02058, 0.92179, 0.94438, 0.94438, 0.94438, 0.94438, 0.90406, 0.86958,
- 0.98225, 0.94938, 0.94938, 0.94938, 0.94938, 0.94938, 0.94938, 0.9031, 0.81093, 0.94938,
- 0.94938, 0.94938, 0.94938, 0.98621, 0.98621, 0.98621, 0.98621, 0.93969, 0.95933, 0.9446,
- 0.9446, 0.9446, 0.9446, 0.9446, 1.08595, 0.9446, 0.95442, 0.95442, 0.95442, 0.95442,
- 0.94039, 0.97898, 0.94039, 0.90838, 0.94938, 0.90838, 0.94938, 0.90838, 0.94938,
- 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.82391, 0.81093, 0.96376,
- 0.84313, 0.97484, 0.97571, 0.80061, 0.94938, 0.80061, 0.94938, 0.80061, 0.94938,
- 0.80061, 0.94938, 0.80061, 0.94938, 0.8768, 0.9577, 0.8768, 0.9577, 0.8768, 0.9577, 1,
- 1, 0.95407, 0.95933, 0.97069, 0.95933, 1.0258, 0.98621, 1.0258, 0.98621, 1.0258,
- 0.98621, 1.0258, 0.98621, 1.0258, 0.98621, 0.887, 1.01591, 0.73901, 1.0474, 1, 1,
- 0.97455, 0.83655, 0.98981, 1, 1, 0.83655, 0.73977, 0.83655, 0.73903, 0.84638, 1.033,
- 0.95546, 0.95933, 1, 1, 0.95546, 0.95933, 0.8271, 0.95417, 0.95933, 0.92179, 0.9446,
- 0.92179, 0.9446, 0.92179, 0.9446, 0.936, 0.91964, 0.82114, 0.97646, 1, 1, 0.82114,
- 0.97646, 0.8096, 0.78036, 0.8096, 0.78036, 1, 1, 0.8096, 0.78036, 1, 1, 0.89713,
- 0.77452, 0.89713, 1.10208, 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442,
- 0.94438, 0.95442, 0.94438, 0.95442, 0.94438, 0.95442, 0.94083, 0.97579, 0.90406,
- 0.94039, 0.90406, 0.9446, 0.938, 0.9446, 0.938, 0.9446, 0.938, 1, 0.99793, 0.90838,
- 0.94938, 0.868, 0.9031, 0.92179, 0.9446, 1, 1, 0.89713, 1.10208, 0.90088, 0.90088,
- 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90989, 0.9358, 0.91945,
- 0.83181, 0.75261, 0.87992, 0.82976, 0.96034, 0.83689, 0.97268, 1.0078, 0.90838, 0.83637,
- 0.8019, 0.90157, 0.80061, 0.9446, 0.95407, 0.92436, 1.0258, 0.85022, 0.97153, 1.0156,
- 0.95546, 0.89192, 0.92179, 0.92361, 0.87107, 0.96318, 0.89713, 0.93704, 0.95638,
- 0.91905, 0.91709, 0.92796, 1.0258, 0.93704, 0.94836, 1.0373, 0.95933, 1.0078, 0.95871,
- 0.94836, 0.96174, 0.92601, 0.9498, 0.98607, 0.95776, 0.95933, 1.05453, 1.0078, 0.98275,
- 0.9314, 0.95617, 0.91701, 1.05993, 0.9446, 0.78367, 0.9553, 1, 0.86832, 1.0128, 0.95871,
- 0.99394, 0.87548, 0.96361, 0.86774, 1.0078, 0.95871, 0.9446, 0.95871, 0.86774, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.94083, 0.97579, 0.94083, 0.97579, 0.94083, 0.97579,
- 0.90406, 0.94039, 0.96694, 1, 0.89903, 1, 1, 1, 0.93582, 0.93582, 0.93582, 1, 0.908,
- 0.908, 0.918, 0.94219, 0.94219, 0.96544, 1, 1.285, 1, 1, 0.81079, 0.81079, 1, 1,
- 0.74854, 1, 1, 1, 1, 0.99793, 1, 1, 1, 0.65, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1.17173, 1, 0.80535, 0.76169, 1.02058, 1.0732, 1.05486, 1, 1, 1.30692, 1.08595,
- 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.16161, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- ];
- t.MyriadProBoldMetrics = { lineHeight: 1.2, lineGap: 0.2 };
- t.MyriadProBoldItalicFactors = [
- 1.36898, 1, 1, 0.66227, 0.80779, 0.81625, 0.97276, 0.97276, 0.97733, 0.92222, 0.83266,
- 0.94292, 0.94292, 1.16148, 1.02058, 0.93582, 0.96694, 0.93582, 1.17337, 0.97276,
- 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276, 0.97276,
- 0.78076, 0.78076, 1.02058, 1.02058, 1.02058, 0.71541, 0.76813, 0.85576, 0.80591,
- 0.80729, 0.94299, 0.77512, 0.83655, 0.86523, 0.92222, 0.98621, 0.71743, 0.81698,
- 0.79726, 0.98558, 0.92222, 0.90637, 0.83809, 0.90637, 0.80729, 0.76463, 0.86275,
- 0.90699, 0.91605, 0.9154, 0.85308, 0.85458, 0.90531, 0.94292, 1.21296, 0.94292, 1.02058,
- 0.89903, 1.18616, 0.99613, 0.91677, 0.78216, 0.91677, 0.90083, 0.98796, 0.9135, 0.92168,
- 0.95381, 0.98981, 0.95298, 0.95381, 0.93459, 0.92168, 0.91513, 0.92004, 0.91677,
- 0.95077, 0.748, 1.04502, 0.91677, 0.92061, 0.94236, 0.89544, 0.89364, 0.9, 0.80687,
- 0.8578, 0.80687, 1.02058, 0.80779, 0.97276, 0.97276, 0.97276, 0.97276, 0.8578, 0.99973,
- 1.18616, 0.91339, 1.08074, 0.82891, 1.02058, 0.55509, 0.71526, 0.89022, 1.08595, 1, 1,
- 1.18616, 1, 0.96736, 0.93582, 1.18616, 1, 1.04864, 0.82711, 0.99043, 0.99043, 0.99043,
- 0.71541, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.85576, 0.845, 0.80729, 0.77512,
- 0.77512, 0.77512, 0.77512, 0.98621, 0.98621, 0.98621, 0.98621, 0.95961, 0.92222,
- 0.90637, 0.90637, 0.90637, 0.90637, 0.90637, 1.02058, 0.90251, 0.90699, 0.90699,
- 0.90699, 0.90699, 0.85458, 0.83659, 0.94951, 0.99613, 0.99613, 0.99613, 0.99613,
- 0.99613, 0.99613, 0.85811, 0.78216, 0.90083, 0.90083, 0.90083, 0.90083, 0.95381,
- 0.95381, 0.95381, 0.95381, 0.9135, 0.92168, 0.91513, 0.91513, 0.91513, 0.91513, 0.91513,
- 1.08595, 0.91677, 0.91677, 0.91677, 0.91677, 0.91677, 0.89364, 0.92332, 0.89364,
- 0.85576, 0.99613, 0.85576, 0.99613, 0.85576, 0.99613, 0.80729, 0.78216, 0.80729,
- 0.78216, 0.80729, 0.78216, 0.80729, 0.78216, 0.94299, 0.76783, 0.95961, 0.91677,
- 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512, 0.90083, 0.77512,
- 0.90083, 0.86523, 0.9135, 0.86523, 0.9135, 0.86523, 0.9135, 1, 1, 0.92222, 0.92168,
- 0.92222, 0.92168, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621, 0.95381, 0.98621,
- 0.95381, 0.98621, 0.95381, 0.86036, 0.97096, 0.71743, 0.98981, 1, 1, 0.95298, 0.79726,
- 0.95381, 1, 1, 0.79726, 0.6894, 0.79726, 0.74321, 0.81691, 1.0006, 0.92222, 0.92168, 1,
- 1, 0.92222, 0.92168, 0.79464, 0.92098, 0.92168, 0.90637, 0.91513, 0.90637, 0.91513,
- 0.90637, 0.91513, 0.909, 0.87514, 0.80729, 0.95077, 1, 1, 0.80729, 0.95077, 0.76463,
- 0.748, 0.76463, 0.748, 1, 1, 0.76463, 0.748, 1, 1, 0.86275, 0.72651, 0.86275, 1.04502,
- 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699, 0.91677, 0.90699,
- 0.91677, 0.90699, 0.91677, 0.9154, 0.94236, 0.85458, 0.89364, 0.85458, 0.90531, 0.9,
- 0.90531, 0.9, 0.90531, 0.9, 1, 0.97276, 0.85576, 0.99613, 0.845, 0.85811, 0.90251,
- 0.91677, 1, 1, 0.86275, 1.04502, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616, 1.18616,
- 1.18616, 1.18616, 1.18616, 1.00899, 1.30628, 0.85576, 0.80178, 0.66862, 0.7927, 0.69323,
- 0.88127, 0.72459, 0.89711, 0.95381, 0.85576, 0.80591, 0.7805, 0.94729, 0.77512, 0.90531,
- 0.92222, 0.90637, 0.98621, 0.81698, 0.92655, 0.98558, 0.92222, 0.85359, 0.90637,
- 0.90976, 0.83809, 0.94523, 0.86275, 0.83509, 0.93157, 0.85308, 0.83392, 0.92346,
- 0.98621, 0.83509, 0.92886, 0.91324, 0.92168, 0.95381, 0.90646, 0.92886, 0.90557,
- 0.86847, 0.90276, 0.91324, 0.86842, 0.92168, 0.99531, 0.95381, 0.9224, 0.85408, 0.92699,
- 0.86847, 1.0051, 0.91513, 0.80487, 0.93481, 1, 0.88159, 1.05214, 0.90646, 0.97355,
- 0.81539, 0.89398, 0.85923, 0.95381, 0.90646, 0.91513, 0.90646, 0.85923, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 0.9154, 0.94236, 0.9154, 0.94236, 0.9154, 0.94236, 0.85458,
- 0.89364, 0.96694, 1, 0.89903, 1, 1, 1, 0.91782, 0.91782, 0.91782, 1, 0.896, 0.896,
- 0.896, 0.9332, 0.9332, 0.95973, 1, 1.26, 1, 1, 0.80479, 0.80178, 1, 1, 0.85633, 1, 1, 1,
- 1, 0.97276, 1, 1, 1, 0.698, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.14542, 1,
- 0.79199, 0.78694, 1.02058, 1.03493, 1.05486, 1, 1, 1.23026, 1.08595, 1.08595, 1,
- 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.20006, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- ];
- t.MyriadProBoldItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };
- t.MyriadProItalicFactors = [
- 1.36898, 1, 1, 0.65507, 0.84943, 0.85639, 0.88465, 0.88465, 0.86936, 0.88307, 0.86948,
- 0.85283, 0.85283, 1.06383, 1.02058, 0.75945, 0.9219, 0.75945, 1.17337, 0.88465, 0.88465,
- 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.88465, 0.75945,
- 0.75945, 1.02058, 1.02058, 1.02058, 0.69046, 0.70926, 0.85158, 0.77812, 0.76852,
- 0.89591, 0.70466, 0.76125, 0.80094, 0.86822, 0.83864, 0.728, 0.77212, 0.79475, 0.93637,
- 0.87514, 0.8588, 0.76013, 0.8588, 0.72421, 0.69866, 0.77598, 0.85991, 0.80811, 0.87832,
- 0.78112, 0.77512, 0.8562, 1.0222, 1.18417, 1.0222, 1.27014, 0.89903, 1.15012, 0.93859,
- 0.94399, 0.846, 0.94399, 0.81453, 1.0186, 0.94219, 0.96017, 1.03075, 1.02175, 0.912,
- 1.03075, 0.96998, 0.96017, 0.93859, 0.94399, 0.94399, 0.95493, 0.746, 1.12658, 0.94578,
- 0.91, 0.979, 0.882, 0.882, 0.83, 0.85034, 0.83537, 0.85034, 1.02058, 0.70869, 0.88465,
- 0.88465, 0.88465, 0.88465, 0.83537, 0.90083, 1.15012, 0.9161, 0.94565, 0.73541, 1.02058,
- 0.53609, 0.69353, 0.79519, 1.08595, 1, 1, 1.15012, 1, 0.91974, 0.75945, 1.15012, 1,
- 0.9446, 0.73361, 0.9005, 0.9005, 0.9005, 0.62864, 0.85158, 0.85158, 0.85158, 0.85158,
- 0.85158, 0.85158, 0.773, 0.76852, 0.70466, 0.70466, 0.70466, 0.70466, 0.83864, 0.83864,
- 0.83864, 0.83864, 0.90561, 0.87514, 0.8588, 0.8588, 0.8588, 0.8588, 0.8588, 1.02058,
- 0.85751, 0.85991, 0.85991, 0.85991, 0.85991, 0.77512, 0.76013, 0.88075, 0.93859,
- 0.93859, 0.93859, 0.93859, 0.93859, 0.93859, 0.8075, 0.846, 0.81453, 0.81453, 0.81453,
- 0.81453, 0.82424, 0.82424, 0.82424, 0.82424, 0.9278, 0.96017, 0.93859, 0.93859, 0.93859,
- 0.93859, 0.93859, 1.08595, 0.8562, 0.94578, 0.94578, 0.94578, 0.94578, 0.882, 0.94578,
- 0.882, 0.85158, 0.93859, 0.85158, 0.93859, 0.85158, 0.93859, 0.76852, 0.846, 0.76852,
- 0.846, 0.76852, 0.846, 0.76852, 0.846, 0.89591, 0.8544, 0.90561, 0.94399, 0.70466,
- 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453, 0.70466, 0.81453,
- 0.80094, 0.94219, 0.80094, 0.94219, 0.80094, 0.94219, 1, 1, 0.86822, 0.96017, 0.86822,
- 0.96017, 0.83864, 0.82424, 0.83864, 0.82424, 0.83864, 0.82424, 0.83864, 1.03075,
- 0.83864, 0.82424, 0.81402, 1.02738, 0.728, 1.02175, 1, 1, 0.912, 0.79475, 1.03075, 1, 1,
- 0.79475, 0.83911, 0.79475, 0.66266, 0.80553, 1.06676, 0.87514, 0.96017, 1, 1, 0.87514,
- 0.96017, 0.86865, 0.87396, 0.96017, 0.8588, 0.93859, 0.8588, 0.93859, 0.8588, 0.93859,
- 0.867, 0.84759, 0.72421, 0.95493, 1, 1, 0.72421, 0.95493, 0.69866, 0.746, 0.69866,
- 0.746, 1, 1, 0.69866, 0.746, 1, 1, 0.77598, 0.88417, 0.77598, 1.12658, 0.85991, 0.94578,
- 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991, 0.94578, 0.85991,
- 0.94578, 0.87832, 0.979, 0.77512, 0.882, 0.77512, 0.8562, 0.83, 0.8562, 0.83, 0.8562,
- 0.83, 1, 0.88465, 0.85158, 0.93859, 0.773, 0.8075, 0.85751, 0.8562, 1, 1, 0.77598,
- 1.12658, 1.15012, 1.15012, 1.15012, 1.15012, 1.15012, 1.15313, 1.15012, 1.15012,
- 1.15012, 1.08106, 1.03901, 0.85158, 0.77025, 0.62264, 0.7646, 0.65351, 0.86026, 0.69461,
- 0.89947, 1.03075, 0.85158, 0.77812, 0.76449, 0.88836, 0.70466, 0.8562, 0.86822, 0.8588,
- 0.83864, 0.77212, 0.85308, 0.93637, 0.87514, 0.82352, 0.8588, 0.85701, 0.76013, 0.89058,
- 0.77598, 0.8156, 0.82565, 0.78112, 0.77899, 0.89386, 0.83864, 0.8156, 0.9486, 0.92388,
- 0.96186, 1.03075, 0.91123, 0.9486, 0.93298, 0.878, 0.93942, 0.92388, 0.84596, 0.96186,
- 0.95119, 1.03075, 0.922, 0.88787, 0.95829, 0.88, 0.93559, 0.93859, 0.78815, 0.93758, 1,
- 0.89217, 1.03737, 0.91123, 0.93969, 0.77487, 0.85769, 0.86799, 1.03075, 0.91123,
- 0.93859, 0.91123, 0.86799, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87832, 0.979,
- 0.87832, 0.979, 0.87832, 0.979, 0.77512, 0.882, 0.9219, 1, 0.89903, 1, 1, 1, 0.87321,
- 0.87321, 0.87321, 1, 1.027, 1.027, 1.027, 0.86847, 0.86847, 0.79121, 1, 1.124, 1, 1,
- 0.73572, 0.73572, 1, 1, 0.85034, 1, 1, 1, 1, 0.88465, 1, 1, 1, 0.669, 1, 1.36145, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04828, 1, 0.74948, 0.75187, 1.02058, 0.98391, 1.02119, 1,
- 1, 1.06233, 1.08595, 1.08595, 1, 1.08595, 1.08595, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.05233, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1,
- ];
- t.MyriadProItalicMetrics = { lineHeight: 1.2, lineGap: 0.2 };
- t.MyriadProRegularFactors = [
- 1.36898, 1, 1, 0.76305, 0.82784, 0.94935, 0.89364, 0.92241, 0.89073, 0.90706, 0.98472,
- 0.85283, 0.85283, 1.0664, 1.02058, 0.74505, 0.9219, 0.74505, 1.23456, 0.92241, 0.92241,
- 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.92241, 0.74505,
- 0.74505, 1.02058, 1.02058, 1.02058, 0.73002, 0.72601, 0.91755, 0.8126, 0.80314, 0.92222,
- 0.73764, 0.79726, 0.83051, 0.90284, 0.86023, 0.74, 0.8126, 0.84869, 0.96518, 0.91115,
- 0.8858, 0.79761, 0.8858, 0.74498, 0.73914, 0.81363, 0.89591, 0.83659, 0.89633, 0.85608,
- 0.8111, 0.90531, 1.0222, 1.22736, 1.0222, 1.27014, 0.89903, 0.90088, 0.86667, 1.0231,
- 0.896, 1.01411, 0.90083, 1.05099, 1.00512, 0.99793, 1.05326, 1.09377, 0.938, 1.06226,
- 1.00119, 0.99793, 0.98714, 1.0231, 1.01231, 0.98196, 0.792, 1.19137, 0.99074, 0.962,
- 1.01915, 0.926, 0.942, 0.856, 0.85034, 0.92006, 0.85034, 1.02058, 0.69067, 0.92241,
- 0.92241, 0.92241, 0.92241, 0.92006, 0.9332, 0.90088, 0.91882, 0.93484, 0.75339, 1.02058,
- 0.56866, 0.54324, 0.79519, 1.08595, 1, 1, 0.90088, 1, 0.95325, 0.74505, 0.90088, 1,
- 0.97198, 0.75339, 0.91009, 0.91009, 0.91009, 0.66466, 0.91755, 0.91755, 0.91755,
- 0.91755, 0.91755, 0.91755, 0.788, 0.80314, 0.73764, 0.73764, 0.73764, 0.73764, 0.86023,
- 0.86023, 0.86023, 0.86023, 0.92915, 0.91115, 0.8858, 0.8858, 0.8858, 0.8858, 0.8858,
- 1.02058, 0.8858, 0.89591, 0.89591, 0.89591, 0.89591, 0.8111, 0.79611, 0.89713, 0.86667,
- 0.86667, 0.86667, 0.86667, 0.86667, 0.86667, 0.86936, 0.896, 0.90083, 0.90083, 0.90083,
- 0.90083, 0.84224, 0.84224, 0.84224, 0.84224, 0.97276, 0.99793, 0.98714, 0.98714,
- 0.98714, 0.98714, 0.98714, 1.08595, 0.89876, 0.99074, 0.99074, 0.99074, 0.99074, 0.942,
- 1.0231, 0.942, 0.91755, 0.86667, 0.91755, 0.86667, 0.91755, 0.86667, 0.80314, 0.896,
- 0.80314, 0.896, 0.80314, 0.896, 0.80314, 0.896, 0.92222, 0.93372, 0.92915, 1.01411,
- 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764, 0.90083, 0.73764,
- 0.90083, 0.83051, 1.00512, 0.83051, 1.00512, 0.83051, 1.00512, 1, 1, 0.90284, 0.99793,
- 0.90976, 0.99793, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023, 0.84224, 0.86023,
- 1.05326, 0.86023, 0.84224, 0.82873, 1.07469, 0.74, 1.09377, 1, 1, 0.938, 0.84869,
- 1.06226, 1, 1, 0.84869, 0.83704, 0.84869, 0.81441, 0.85588, 1.08927, 0.91115, 0.99793,
- 1, 1, 0.91115, 0.99793, 0.91887, 0.90991, 0.99793, 0.8858, 0.98714, 0.8858, 0.98714,
- 0.8858, 0.98714, 0.894, 0.91434, 0.74498, 0.98196, 1, 1, 0.74498, 0.98196, 0.73914,
- 0.792, 0.73914, 0.792, 1, 1, 0.73914, 0.792, 1, 1, 0.81363, 0.904, 0.81363, 1.19137,
- 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591, 0.99074, 0.89591,
- 0.99074, 0.89591, 0.99074, 0.89633, 1.01915, 0.8111, 0.942, 0.8111, 0.90531, 0.856,
- 0.90531, 0.856, 0.90531, 0.856, 1, 0.92241, 0.91755, 0.86667, 0.788, 0.86936, 0.8858,
- 0.89876, 1, 1, 0.81363, 1.19137, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088, 0.90088,
- 0.90088, 0.90088, 0.90088, 0.90388, 1.03901, 0.92138, 0.78105, 0.7154, 0.86169, 0.80513,
- 0.94007, 0.82528, 0.98612, 1.06226, 0.91755, 0.8126, 0.81884, 0.92819, 0.73764, 0.90531,
- 0.90284, 0.8858, 0.86023, 0.8126, 0.91172, 0.96518, 0.91115, 0.83089, 0.8858, 0.87791,
- 0.79761, 0.89297, 0.81363, 0.88157, 0.89992, 0.85608, 0.81992, 0.94307, 0.86023,
- 0.88157, 0.95308, 0.98699, 0.99793, 1.06226, 0.95817, 0.95308, 0.97358, 0.928, 0.98088,
- 0.98699, 0.92761, 0.99793, 0.96017, 1.06226, 0.986, 0.944, 0.95978, 0.938, 0.96705,
- 0.98714, 0.80442, 0.98972, 1, 0.89762, 1.04552, 0.95817, 0.99007, 0.87064, 0.91879,
- 0.88888, 1.06226, 0.95817, 0.98714, 0.95817, 0.88888, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 0.89633, 1.01915, 0.89633, 1.01915, 0.89633, 1.01915, 0.8111, 0.942, 0.9219, 1,
- 0.89903, 1, 1, 1, 0.93173, 0.93173, 0.93173, 1, 1.06304, 1.06304, 1.06904, 0.89903,
- 0.89903, 0.80549, 1, 1.156, 1, 1, 0.76575, 0.76575, 1, 1, 0.72458, 1, 1, 1, 1, 0.92241,
- 1, 1, 1, 0.619, 1, 1.36145, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.07257, 1, 0.74705,
- 0.71119, 1.02058, 1.024, 1.02119, 1, 1, 1.1536, 1.08595, 1.08595, 1, 1.08595, 1.08595,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1.05638, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- ];
- t.MyriadProRegularMetrics = { lineHeight: 1.2, lineGap: 0.2 };
- },
- (e, t) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.SegoeuiRegularMetrics =
- t.SegoeuiRegularFactors =
- t.SegoeuiItalicMetrics =
- t.SegoeuiItalicFactors =
- t.SegoeuiBoldMetrics =
- t.SegoeuiBoldItalicMetrics =
- t.SegoeuiBoldItalicFactors =
- t.SegoeuiBoldFactors =
- void 0;
- t.SegoeuiBoldFactors = [
- 1.76738, 1, 1, 0.99297, 0.9824, 1.04016, 1.06497, 1.03424, 0.97529, 1.17647, 1.23203,
- 1.1085, 1.1085, 1.16939, 1.2107, 0.9754, 1.21408, 0.9754, 1.59578, 1.03424, 1.03424,
- 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 1.03424, 0.81378,
- 0.81378, 1.2107, 1.2107, 1.2107, 0.71703, 0.97847, 0.97363, 0.88776, 0.8641, 1.02096,
- 0.79795, 0.85132, 0.914, 1.06085, 1.1406, 0.8007, 0.89858, 0.83693, 1.14889, 1.09398,
- 0.97489, 0.92094, 0.97489, 0.90399, 0.84041, 0.95923, 1.00135, 1, 1.06467, 0.98243,
- 0.90996, 0.99361, 1.1085, 1.56942, 1.1085, 1.2107, 0.74627, 0.94282, 0.96752, 1.01519,
- 0.86304, 1.01359, 0.97278, 1.15103, 1.01359, 0.98561, 1.02285, 1.02285, 1.00527,
- 1.02285, 1.0302, 0.99041, 1.0008, 1.01519, 1.01359, 1.02258, 0.79104, 1.16862, 0.99041,
- 0.97454, 1.02511, 0.99298, 0.96752, 0.95801, 0.94856, 1.16579, 0.94856, 1.2107, 0.9824,
- 1.03424, 1.03424, 1, 1.03424, 1.16579, 0.8727, 1.3871, 1.18622, 1.10818, 1.04478,
- 1.2107, 1.18622, 0.75155, 0.94994, 1.28826, 1.21408, 1.21408, 0.91056, 1, 0.91572,
- 0.9754, 0.64663, 1.18328, 1.24866, 1.04478, 1.14169, 1.15749, 1.17389, 0.71703, 0.97363,
- 0.97363, 0.97363, 0.97363, 0.97363, 0.97363, 0.93506, 0.8641, 0.79795, 0.79795, 0.79795,
- 0.79795, 1.1406, 1.1406, 1.1406, 1.1406, 1.02096, 1.09398, 0.97426, 0.97426, 0.97426,
- 0.97426, 0.97426, 1.2107, 0.97489, 1.00135, 1.00135, 1.00135, 1.00135, 0.90996, 0.92094,
- 1.02798, 0.96752, 0.96752, 0.96752, 0.96752, 0.96752, 0.96752, 0.93136, 0.86304,
- 0.97278, 0.97278, 0.97278, 0.97278, 1.02285, 1.02285, 1.02285, 1.02285, 0.97122,
- 0.99041, 1, 1, 1, 1, 1, 1.28826, 1.0008, 0.99041, 0.99041, 0.99041, 0.99041, 0.96752,
- 1.01519, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.97363, 0.96752, 0.8641, 0.86304,
- 0.8641, 0.86304, 0.8641, 0.86304, 0.8641, 0.86304, 1.02096, 1.03057, 1.02096, 1.03517,
- 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795, 0.97278, 0.79795,
- 0.97278, 0.914, 1.01359, 0.914, 1.01359, 0.914, 1.01359, 1, 1, 1.06085, 0.98561,
- 1.06085, 1.00879, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285, 1.1406, 1.02285,
- 1.1406, 1.02285, 0.97138, 1.08692, 0.8007, 1.02285, 1, 1, 1.00527, 0.83693, 1.02285, 1,
- 1, 0.83693, 0.9455, 0.83693, 0.90418, 0.83693, 1.13005, 1.09398, 0.99041, 1, 1, 1.09398,
- 0.99041, 0.96692, 1.09251, 0.99041, 0.97489, 1.0008, 0.97489, 1.0008, 0.97489, 1.0008,
- 0.93994, 0.97931, 0.90399, 1.02258, 1, 1, 0.90399, 1.02258, 0.84041, 0.79104, 0.84041,
- 0.79104, 0.84041, 0.79104, 0.84041, 0.79104, 1, 1, 0.95923, 1.07034, 0.95923, 1.16862,
- 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135, 0.99041, 1.00135,
- 0.99041, 1.00135, 0.99041, 1.06467, 1.02511, 0.90996, 0.96752, 0.90996, 0.99361,
- 0.95801, 0.99361, 0.95801, 0.99361, 0.95801, 1.07733, 1.03424, 0.97363, 0.96752,
- 0.93506, 0.93136, 0.97489, 1.0008, 1, 1, 0.95923, 1.16862, 1.15103, 1.15103, 1.01173,
- 1.03959, 0.75953, 0.81378, 0.79912, 1.15103, 1.21994, 0.95161, 0.87815, 1.01149,
- 0.81525, 0.7676, 0.98167, 1.01134, 1.02546, 0.84097, 1.03089, 1.18102, 0.97363, 0.88776,
- 0.85134, 0.97826, 0.79795, 0.99361, 1.06085, 0.97489, 1.1406, 0.89858, 1.0388, 1.14889,
- 1.09398, 0.86039, 0.97489, 1.0595, 0.92094, 0.94793, 0.95923, 0.90996, 0.99346, 0.98243,
- 1.02112, 0.95493, 1.1406, 0.90996, 1.03574, 1.02597, 1.0008, 1.18102, 1.06628, 1.03574,
- 1.0192, 1.01932, 1.00886, 0.97531, 1.0106, 1.0008, 1.13189, 1.18102, 1.02277, 0.98683,
- 1.0016, 0.99561, 1.07237, 1.0008, 0.90434, 0.99921, 0.93803, 0.8965, 1.23085, 1.06628,
- 1.04983, 0.96268, 1.0499, 0.98439, 1.18102, 1.06628, 1.0008, 1.06628, 0.98439, 0.79795,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.09466, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.97278, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.02065, 1, 1, 1, 1, 1, 1, 1.06467, 1.02511, 1.06467,
- 1.02511, 1.06467, 1.02511, 0.90996, 0.96752, 1, 1.21408, 0.89903, 1, 1, 0.75155,
- 1.04394, 1.04394, 1.04394, 1.04394, 0.98633, 0.98633, 0.98633, 0.73047, 0.73047,
- 1.20642, 0.91211, 1.25635, 1.222, 1.02956, 1.03372, 1.03372, 0.96039, 1.24633, 1,
- 1.12454, 0.93503, 1.03424, 1.19687, 1.03424, 1, 1, 1, 0.771, 1, 1, 1.15749, 1.15749,
- 1.15749, 1.10948, 0.86279, 0.94434, 0.86279, 0.94434, 0.86182, 1, 1, 1.16897, 1,
- 0.96085, 0.90137, 1.2107, 1.18416, 1.13973, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004,
- 1.21172, 1.29004, 1.29004, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18874,
- 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163,
- 1, 1, 1, 1.09193, 1.09193, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- ];
- t.SegoeuiBoldMetrics = { lineHeight: 1.33008, lineGap: 0 };
- t.SegoeuiBoldItalicFactors = [
- 1.76738, 1, 1, 0.98946, 1.03959, 1.04016, 1.02809, 1.036, 0.97639, 1.10953, 1.23203,
- 1.11144, 1.11144, 1.16939, 1.21237, 0.9754, 1.21261, 0.9754, 1.59754, 1.036, 1.036,
- 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 1.036, 0.81378, 0.81378, 1.21237,
- 1.21237, 1.21237, 0.73541, 0.97847, 0.97363, 0.89723, 0.87897, 1.0426, 0.79429, 0.85292,
- 0.91149, 1.05815, 1.1406, 0.79631, 0.90128, 0.83853, 1.04396, 1.10615, 0.97552, 0.94436,
- 0.97552, 0.88641, 0.80527, 0.96083, 1.00135, 1, 1.06777, 0.9817, 0.91142, 0.99361,
- 1.11144, 1.57293, 1.11144, 1.21237, 0.74627, 1.31818, 1.06585, 0.97042, 0.83055,
- 0.97042, 0.93503, 1.1261, 0.97042, 0.97922, 1.14236, 0.94552, 1.01054, 1.14236, 1.02471,
- 0.97922, 0.94165, 0.97042, 0.97042, 1.0276, 0.78929, 1.1261, 0.97922, 0.95874, 1.02197,
- 0.98507, 0.96752, 0.97168, 0.95107, 1.16579, 0.95107, 1.21237, 1.03959, 1.036, 1.036, 1,
- 1.036, 1.16579, 0.87357, 1.31818, 1.18754, 1.26781, 1.05356, 1.21237, 1.18622, 0.79487,
- 0.94994, 1.29004, 1.24047, 1.24047, 1.31818, 1, 0.91484, 0.9754, 1.31818, 1.1349,
- 1.24866, 1.05356, 1.13934, 1.15574, 1.17389, 0.73541, 0.97363, 0.97363, 0.97363,
- 0.97363, 0.97363, 0.97363, 0.94385, 0.87897, 0.79429, 0.79429, 0.79429, 0.79429, 1.1406,
- 1.1406, 1.1406, 1.1406, 1.0426, 1.10615, 0.97552, 0.97552, 0.97552, 0.97552, 0.97552,
- 1.21237, 0.97552, 1.00135, 1.00135, 1.00135, 1.00135, 0.91142, 0.94436, 0.98721,
- 1.06585, 1.06585, 1.06585, 1.06585, 1.06585, 1.06585, 0.96705, 0.83055, 0.93503,
- 0.93503, 0.93503, 0.93503, 1.14236, 1.14236, 1.14236, 1.14236, 0.93125, 0.97922,
- 0.94165, 0.94165, 0.94165, 0.94165, 0.94165, 1.29004, 0.94165, 0.97922, 0.97922,
- 0.97922, 0.97922, 0.96752, 0.97042, 0.96752, 0.97363, 1.06585, 0.97363, 1.06585,
- 0.97363, 1.06585, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897, 0.83055, 0.87897,
- 0.83055, 1.0426, 1.0033, 1.0426, 0.97042, 0.79429, 0.93503, 0.79429, 0.93503, 0.79429,
- 0.93503, 0.79429, 0.93503, 0.79429, 0.93503, 0.91149, 0.97042, 0.91149, 0.97042,
- 0.91149, 0.97042, 1, 1, 1.05815, 0.97922, 1.05815, 0.97922, 1.1406, 1.14236, 1.1406,
- 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 1.1406, 1.14236, 0.97441, 1.04302, 0.79631,
- 1.01582, 1, 1, 1.01054, 0.83853, 1.14236, 1, 1, 0.83853, 1.09125, 0.83853, 0.90418,
- 0.83853, 1.19508, 1.10615, 0.97922, 1, 1, 1.10615, 0.97922, 1.01034, 1.10466, 0.97922,
- 0.97552, 0.94165, 0.97552, 0.94165, 0.97552, 0.94165, 0.91602, 0.91981, 0.88641, 1.0276,
- 1, 1, 0.88641, 1.0276, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527, 0.78929, 0.80527,
- 0.78929, 1, 1, 0.96083, 1.05403, 0.95923, 1.16862, 1.00135, 0.97922, 1.00135, 0.97922,
- 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.00135, 0.97922, 1.06777,
- 1.02197, 0.91142, 0.96752, 0.91142, 0.99361, 0.97168, 0.99361, 0.97168, 0.99361,
- 0.97168, 1.23199, 1.036, 0.97363, 1.06585, 0.94385, 0.96705, 0.97552, 0.94165, 1, 1,
- 0.96083, 1.1261, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818, 1.31818,
- 1.31818, 0.95161, 1.27126, 1.00811, 0.83284, 0.77702, 0.99137, 0.95253, 1.0347, 0.86142,
- 1.07205, 1.14236, 0.97363, 0.89723, 0.86869, 1.09818, 0.79429, 0.99361, 1.05815,
- 0.97552, 1.1406, 0.90128, 1.06662, 1.04396, 1.10615, 0.84918, 0.97552, 1.04694, 0.94436,
- 0.98015, 0.96083, 0.91142, 1.00356, 0.9817, 1.01945, 0.98999, 1.1406, 0.91142, 1.04961,
- 0.9898, 1.00639, 1.14236, 1.07514, 1.04961, 0.99607, 1.02897, 1.008, 0.9898, 0.95134,
- 1.00639, 1.11121, 1.14236, 1.00518, 0.97981, 1.02186, 1, 1.08578, 0.94165, 0.99314,
- 0.98387, 0.93028, 0.93377, 1.35125, 1.07514, 1.10687, 0.93491, 1.04232, 1.00351,
- 1.14236, 1.07514, 0.94165, 1.07514, 1.00351, 0.79429, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1.09097, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.93503, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 0.96609, 1, 1, 1, 1, 1, 1, 1.06777, 1.02197, 1.06777, 1.02197, 1.06777, 1.02197,
- 0.91142, 0.96752, 1, 1.21261, 0.89903, 1, 1, 0.75155, 1.04745, 1.04745, 1.04745,
- 1.04394, 0.98633, 0.98633, 0.98633, 0.72959, 0.72959, 1.20502, 0.91406, 1.26514, 1.222,
- 1.02956, 1.03372, 1.03372, 0.96039, 1.24633, 1, 1.09125, 0.93327, 1.03336, 1.16541,
- 1.036, 1, 1, 1, 0.771, 1, 1, 1.15574, 1.15574, 1.15574, 1.15574, 0.86364, 0.94434,
- 0.86279, 0.94434, 0.86224, 1, 1, 1.16798, 1, 0.96085, 0.90068, 1.21237, 1.18416,
- 1.13904, 0.69825, 0.9716, 2.10339, 1.29004, 1.29004, 1.21339, 1.29004, 1.29004, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862,
- 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.18775, 1.42603, 1, 1.42603, 1.42603,
- 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.13269, 1.13269, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- ];
- t.SegoeuiBoldItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };
- t.SegoeuiItalicFactors = [
- 1.76738, 1, 1, 0.98946, 1.14763, 1.05365, 1.06234, 0.96927, 0.92586, 1.15373, 1.18414,
- 0.91349, 0.91349, 1.07403, 1.17308, 0.78383, 1.20088, 0.78383, 1.42531, 0.96927,
- 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927,
- 0.78383, 0.78383, 1.17308, 1.17308, 1.17308, 0.77349, 0.94565, 0.94729, 0.85944,
- 0.88506, 0.9858, 0.74817, 0.80016, 0.88449, 0.98039, 0.95782, 0.69238, 0.89898, 0.83231,
- 0.98183, 1.03989, 0.96924, 0.86237, 0.96924, 0.80595, 0.74524, 0.86091, 0.95402,
- 0.94143, 0.98448, 0.8858, 0.83089, 0.93285, 1.0949, 1.39016, 1.0949, 1.45994, 0.74627,
- 1.04839, 0.97454, 0.97454, 0.87207, 0.97454, 0.87533, 1.06151, 0.97454, 1.00176,
- 1.16484, 1.08132, 0.98047, 1.16484, 1.02989, 1.01054, 0.96225, 0.97454, 0.97454,
- 1.06598, 0.79004, 1.16344, 1.00351, 0.94629, 0.9973, 0.91016, 0.96777, 0.9043, 0.91082,
- 0.92481, 0.91082, 1.17308, 0.95748, 0.96927, 0.96927, 1, 0.96927, 0.92481, 0.80597,
- 1.04839, 1.23393, 1.1781, 0.9245, 1.17308, 1.20808, 0.63218, 0.94261, 1.24822, 1.09971,
- 1.09971, 1.04839, 1, 0.85273, 0.78032, 1.04839, 1.09971, 1.22326, 0.9245, 1.09836,
- 1.13525, 1.15222, 0.70424, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729, 0.94729,
- 0.85498, 0.88506, 0.74817, 0.74817, 0.74817, 0.74817, 0.95782, 0.95782, 0.95782,
- 0.95782, 0.9858, 1.03989, 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.17308, 0.96924,
- 0.95402, 0.95402, 0.95402, 0.95402, 0.83089, 0.86237, 0.88409, 0.97454, 0.97454,
- 0.97454, 0.97454, 0.97454, 0.97454, 0.92916, 0.87207, 0.87533, 0.87533, 0.87533,
- 0.87533, 0.93146, 0.93146, 0.93146, 0.93146, 0.93854, 1.01054, 0.96225, 0.96225,
- 0.96225, 0.96225, 0.96225, 1.24822, 0.8761, 1.00351, 1.00351, 1.00351, 1.00351, 0.96777,
- 0.97454, 0.96777, 0.94729, 0.97454, 0.94729, 0.97454, 0.94729, 0.97454, 0.88506,
- 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.88506, 0.87207, 0.9858, 0.95391, 0.9858,
- 0.97454, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533, 0.74817, 0.87533,
- 0.74817, 0.87533, 0.88449, 0.97454, 0.88449, 0.97454, 0.88449, 0.97454, 1, 1, 0.98039,
- 1.00176, 0.98039, 1.00176, 0.95782, 0.93146, 0.95782, 0.93146, 0.95782, 0.93146,
- 0.95782, 1.16484, 0.95782, 0.93146, 0.84421, 1.12761, 0.69238, 1.08132, 1, 1, 0.98047,
- 0.83231, 1.16484, 1, 1, 0.84723, 1.04861, 0.84723, 0.78755, 0.83231, 1.23736, 1.03989,
- 1.01054, 1, 1, 1.03989, 1.01054, 0.9857, 1.03849, 1.01054, 0.96924, 0.96225, 0.96924,
- 0.96225, 0.96924, 0.96225, 0.92383, 0.90171, 0.80595, 1.06598, 1, 1, 0.80595, 1.06598,
- 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004, 0.74524, 0.79004, 1, 1, 0.86091,
- 1.02759, 0.85771, 1.16344, 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351,
- 0.95402, 1.00351, 0.95402, 1.00351, 0.95402, 1.00351, 0.98448, 0.9973, 0.83089, 0.96777,
- 0.83089, 0.93285, 0.9043, 0.93285, 0.9043, 0.93285, 0.9043, 1.31868, 0.96927, 0.94729,
- 0.97454, 0.85498, 0.92916, 0.96924, 0.8761, 1, 1, 0.86091, 1.16344, 1.04839, 1.04839,
- 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 1.04839, 0.81965, 0.81965,
- 0.94729, 0.78032, 0.71022, 0.90883, 0.84171, 0.99877, 0.77596, 1.05734, 1.2, 0.94729,
- 0.85944, 0.82791, 0.9607, 0.74817, 0.93285, 0.98039, 0.96924, 0.95782, 0.89898, 0.98316,
- 0.98183, 1.03989, 0.78614, 0.96924, 0.97642, 0.86237, 0.86075, 0.86091, 0.83089,
- 0.90082, 0.8858, 0.97296, 1.01284, 0.95782, 0.83089, 1.0976, 1.04, 1.03342, 1.2, 1.0675,
- 1.0976, 0.98205, 1.03809, 1.05097, 1.04, 0.95364, 1.03342, 1.05401, 1.2, 1.02148,
- 1.0119, 1.04724, 1.0127, 1.02732, 0.96225, 0.8965, 0.97783, 0.93574, 0.94818, 1.30679,
- 1.0675, 1.11826, 0.99821, 1.0557, 1.0326, 1.2, 1.0675, 0.96225, 1.0675, 1.0326, 0.74817,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.03754, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.87533, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.98705, 1, 1, 1, 1, 1, 1, 0.98448, 0.9973, 0.98448, 0.9973,
- 0.98448, 0.9973, 0.83089, 0.96777, 1, 1.20088, 0.89903, 1, 1, 0.75155, 0.94945, 0.94945,
- 0.94945, 0.94945, 1.12317, 1.12317, 1.12317, 0.67603, 0.67603, 1.15621, 0.73584,
- 1.21191, 1.22135, 1.06483, 0.94868, 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87709,
- 0.96927, 1.01473, 0.96927, 1, 1, 1, 0.77295, 1, 1, 1.09836, 1.09836, 1.09836, 1.01522,
- 0.86321, 0.94434, 0.8649, 0.94434, 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86438, 1.17308,
- 1.18416, 1.14589, 0.69825, 0.97622, 1.96791, 1.24822, 1.24822, 1.17308, 1.24822,
- 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603,
- 1, 0.99862, 0.99862, 1, 0.87025, 0.87025, 0.87025, 0.87025, 1.17984, 1.42603, 1,
- 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886, 1.04315, 1.15296, 1.34163, 1, 1, 1,
- 1.10742, 1.10742, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- ];
- t.SegoeuiItalicMetrics = { lineHeight: 1.33008, lineGap: 0 };
- t.SegoeuiRegularFactors = [
- 1.76738, 1, 1, 0.98594, 1.02285, 1.10454, 1.06234, 0.96927, 0.92037, 1.19985, 1.2046,
- 0.90616, 0.90616, 1.07152, 1.1714, 0.78032, 1.20088, 0.78032, 1.40246, 0.96927, 0.96927,
- 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.96927, 0.78032,
- 0.78032, 1.1714, 1.1714, 1.1714, 0.80597, 0.94084, 0.96706, 0.85944, 0.85734, 0.97093,
- 0.75842, 0.79936, 0.88198, 0.9831, 0.95782, 0.71387, 0.86969, 0.84636, 1.07796, 1.03584,
- 0.96924, 0.83968, 0.96924, 0.82826, 0.79649, 0.85771, 0.95132, 0.93119, 0.98965,
- 0.88433, 0.8287, 0.93365, 1.08612, 1.3638, 1.08612, 1.45786, 0.74627, 0.80499, 0.91484,
- 1.05707, 0.92383, 1.05882, 0.9403, 1.12654, 1.05882, 1.01756, 1.09011, 1.09011, 0.99414,
- 1.09011, 1.034, 1.01756, 1.05356, 1.05707, 1.05882, 1.04399, 0.84863, 1.21968, 1.01756,
- 0.95801, 1.00068, 0.91797, 0.96777, 0.9043, 0.90351, 0.92105, 0.90351, 1.1714, 0.85337,
- 0.96927, 0.96927, 0.99912, 0.96927, 0.92105, 0.80597, 1.2434, 1.20808, 1.05937, 0.90957,
- 1.1714, 1.20808, 0.75155, 0.94261, 1.24644, 1.09971, 1.09971, 0.84751, 1, 0.85273,
- 0.78032, 0.61584, 1.05425, 1.17914, 0.90957, 1.08665, 1.11593, 1.14169, 0.73381,
- 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.96706, 0.86035, 0.85734, 0.75842,
- 0.75842, 0.75842, 0.75842, 0.95782, 0.95782, 0.95782, 0.95782, 0.97093, 1.03584,
- 0.96924, 0.96924, 0.96924, 0.96924, 0.96924, 1.1714, 0.96924, 0.95132, 0.95132, 0.95132,
- 0.95132, 0.8287, 0.83968, 0.89049, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484, 0.91484,
- 0.93575, 0.92383, 0.9403, 0.9403, 0.9403, 0.9403, 0.8717, 0.8717, 0.8717, 0.8717,
- 1.00527, 1.01756, 1.05356, 1.05356, 1.05356, 1.05356, 1.05356, 1.24644, 0.95923,
- 1.01756, 1.01756, 1.01756, 1.01756, 0.96777, 1.05707, 0.96777, 0.96706, 0.91484,
- 0.96706, 0.91484, 0.96706, 0.91484, 0.85734, 0.92383, 0.85734, 0.92383, 0.85734,
- 0.92383, 0.85734, 0.92383, 0.97093, 1.0969, 0.97093, 1.05882, 0.75842, 0.9403, 0.75842,
- 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.75842, 0.9403, 0.88198, 1.05882, 0.88198,
- 1.05882, 0.88198, 1.05882, 1, 1, 0.9831, 1.01756, 0.9831, 1.01756, 0.95782, 0.8717,
- 0.95782, 0.8717, 0.95782, 0.8717, 0.95782, 1.09011, 0.95782, 0.8717, 0.84784, 1.11551,
- 0.71387, 1.09011, 1, 1, 0.99414, 0.84636, 1.09011, 1, 1, 0.84636, 1.0536, 0.84636,
- 0.94298, 0.84636, 1.23297, 1.03584, 1.01756, 1, 1, 1.03584, 1.01756, 1.00323, 1.03444,
- 1.01756, 0.96924, 1.05356, 0.96924, 1.05356, 0.96924, 1.05356, 0.93066, 0.98293,
- 0.82826, 1.04399, 1, 1, 0.82826, 1.04399, 0.79649, 0.84863, 0.79649, 0.84863, 0.79649,
- 0.84863, 0.79649, 0.84863, 1, 1, 0.85771, 1.17318, 0.85771, 1.21968, 0.95132, 1.01756,
- 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132, 1.01756, 0.95132,
- 1.01756, 0.98965, 1.00068, 0.8287, 0.96777, 0.8287, 0.93365, 0.9043, 0.93365, 0.9043,
- 0.93365, 0.9043, 1.08571, 0.96927, 0.96706, 0.91484, 0.86035, 0.93575, 0.96924, 0.95923,
- 1, 1, 0.85771, 1.21968, 1.11437, 1.11437, 0.93109, 0.91202, 0.60411, 0.84164, 0.55572,
- 1.01173, 0.97361, 0.81818, 0.81818, 0.96635, 0.78032, 0.72727, 0.92366, 0.98601,
- 1.03405, 0.77968, 1.09799, 1.2, 0.96706, 0.85944, 0.85638, 0.96491, 0.75842, 0.93365,
- 0.9831, 0.96924, 0.95782, 0.86969, 0.94152, 1.07796, 1.03584, 0.78437, 0.96924, 0.98715,
- 0.83968, 0.83491, 0.85771, 0.8287, 0.94492, 0.88433, 0.9287, 1.0098, 0.95782, 0.8287,
- 1.0625, 0.98248, 1.03424, 1.2, 1.01071, 1.0625, 0.95246, 1.03809, 1.04912, 0.98248,
- 1.00221, 1.03424, 1.05443, 1.2, 1.04785, 0.99609, 1.00169, 1.05176, 0.99346, 1.05356,
- 0.9087, 1.03004, 0.95542, 0.93117, 1.23362, 1.01071, 1.07831, 1.02512, 1.05205, 1.03502,
- 1.2, 1.01071, 1.05356, 1.01071, 1.03502, 0.75842, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1.03719, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.9403, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.04021, 1,
- 1, 1, 1, 1, 1, 0.98965, 1.00068, 0.98965, 1.00068, 0.98965, 1.00068, 0.8287, 0.96777, 1,
- 1.20088, 0.89903, 1, 1, 0.75155, 1.03077, 1.03077, 1.03077, 1.03077, 1.13196, 1.13196,
- 1.13196, 0.67428, 0.67428, 1.16039, 0.73291, 1.20996, 1.22135, 1.06483, 0.94868,
- 0.94868, 0.95996, 1.24633, 1, 1.07497, 0.87796, 0.96927, 1.01518, 0.96927, 1, 1, 1,
- 0.77295, 1, 1, 1.10539, 1.10539, 1.11358, 1.06967, 0.86279, 0.94434, 0.86279, 0.94434,
- 0.86182, 1, 1, 1.083, 1, 0.91578, 0.86507, 1.1714, 1.18416, 1.14589, 0.69825, 0.97622,
- 1.9697, 1.24822, 1.24822, 1.17238, 1.24822, 1.24822, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1.42603, 1, 0.99862, 0.99862, 1, 0.87025, 0.87025,
- 0.87025, 0.87025, 1.18083, 1.42603, 1, 1.42603, 1.42603, 0.99862, 1, 1, 1, 1, 1, 1.2886,
- 1.04315, 1.15296, 1.34163, 1, 1, 1, 1.10938, 1.10938, 1, 1, 1, 1.05425, 1.09971,
- 1.09971, 1.09971, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- ];
- t.SegoeuiRegularMetrics = { lineHeight: 1.33008, lineGap: 0 };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.PostScriptEvaluator = t.PostScriptCompiler = t.PDFFunctionFactory = void 0;
- t.isPDFFunction = function isPDFFunction(e) {
- let t;
- if (e instanceof r.Dict) t = e;
- else {
- if (!(e instanceof s.BaseStream)) return !1;
- t = e.dict;
- }
- return t.has('FunctionType');
- };
- var r = a(4),
- i = a(2),
- n = a(58),
- s = a(5),
- o = a(59);
- t.PDFFunctionFactory = class PDFFunctionFactory {
- constructor({ xref: e, isEvalSupported: t = !0 }) {
- this.xref = e;
- this.isEvalSupported = !1 !== t;
- }
- create(e) {
- const t = this.getCached(e);
- if (t) return t;
- const a = PDFFunction.parse({
- xref: this.xref,
- isEvalSupported: this.isEvalSupported,
- fn: e instanceof r.Ref ? this.xref.fetch(e) : e,
- });
- this._cache(e, a);
- return a;
- }
- createFromArray(e) {
- const t = this.getCached(e);
- if (t) return t;
- const a = PDFFunction.parseArray({
- xref: this.xref,
- isEvalSupported: this.isEvalSupported,
- fnObj: e instanceof r.Ref ? this.xref.fetch(e) : e,
- });
- this._cache(e, a);
- return a;
- }
- getCached(e) {
- let t;
- e instanceof r.Ref
- ? (t = e)
- : e instanceof r.Dict
- ? (t = e.objId)
- : e instanceof s.BaseStream && (t = e.dict && e.dict.objId);
- if (t) {
- const e = this._localFunctionCache.getByRef(t);
- if (e) return e;
- }
- return null;
- }
- _cache(e, t) {
- if (!t)
- throw new Error('PDFFunctionFactory._cache - expected "parsedFunction" argument.');
- let a;
- e instanceof r.Ref
- ? (a = e)
- : e instanceof r.Dict
- ? (a = e.objId)
- : e instanceof s.BaseStream && (a = e.dict && e.dict.objId);
- a && this._localFunctionCache.set(null, a, t);
- }
- get _localFunctionCache() {
- return (0, i.shadow)(this, '_localFunctionCache', new o.LocalFunctionCache());
- }
- };
- function toNumberArray(e) {
- if (!Array.isArray(e)) return null;
- const t = e.length;
- for (let a = 0; a < t; a++)
- if ('number' != typeof e[a]) {
- const a = new Array(t);
- for (let r = 0; r < t; r++) a[r] = +e[r];
- return a;
- }
- return e;
- }
- class PDFFunction {
- static getSampleArray(e, t, a, r) {
- let i,
- n,
- s = 1;
- for (i = 0, n = e.length; i < n; i++) s *= e[i];
- s *= t;
- const o = new Array(s);
- let c = 0,
- l = 0;
- const h = 1 / (2 ** a - 1),
- u = r.getBytes((s * a + 7) / 8);
- let d = 0;
- for (i = 0; i < s; i++) {
- for (; c < a; ) {
- l <<= 8;
- l |= u[d++];
- c += 8;
- }
- c -= a;
- o[i] = (l >> c) * h;
- l &= (1 << c) - 1;
- }
- return o;
- }
- static parse({ xref: e, isEvalSupported: t, fn: a }) {
- const r = a.dict || a;
- switch (r.get('FunctionType')) {
- case 0:
- return this.constructSampled({ xref: e, isEvalSupported: t, fn: a, dict: r });
- case 1:
- break;
- case 2:
- return this.constructInterpolated({ xref: e, isEvalSupported: t, dict: r });
- case 3:
- return this.constructStiched({ xref: e, isEvalSupported: t, dict: r });
- case 4:
- return this.constructPostScript({ xref: e, isEvalSupported: t, fn: a, dict: r });
- }
- throw new i.FormatError('Unknown type of function');
- }
- static parseArray({ xref: e, isEvalSupported: t, fnObj: a }) {
- if (!Array.isArray(a)) return this.parse({ xref: e, isEvalSupported: t, fn: a });
- const r = [];
- for (const i of a)
- r.push(this.parse({ xref: e, isEvalSupported: t, fn: e.fetchIfRef(i) }));
- return function (e, t, a, i) {
- for (let n = 0, s = r.length; n < s; n++) r[n](e, t, a, i + n);
- };
- }
- static constructSampled({ xref: e, isEvalSupported: t, fn: a, dict: r }) {
- function toMultiArray(e) {
- const t = e.length,
- a = [];
- let r = 0;
- for (let i = 0; i < t; i += 2) a[r++] = [e[i], e[i + 1]];
- return a;
- }
- function interpolate(e, t, a, r, i) {
- return r + ((i - r) / (a - t)) * (e - t);
- }
- let n = toNumberArray(r.getArray('Domain')),
- s = toNumberArray(r.getArray('Range'));
- if (!n || !s) throw new i.FormatError('No domain or range');
- const o = n.length / 2,
- c = s.length / 2;
- n = toMultiArray(n);
- s = toMultiArray(s);
- const l = toNumberArray(r.getArray('Size')),
- h = r.get('BitsPerSample'),
- u = r.get('Order') || 1;
- 1 !== u && (0, i.info)('No support for cubic spline interpolation: ' + u);
- let d = toNumberArray(r.getArray('Encode'));
- if (d) d = toMultiArray(d);
- else {
- d = [];
- for (let e = 0; e < o; ++e) d.push([0, l[e] - 1]);
- }
- let f = toNumberArray(r.getArray('Decode'));
- f = f ? toMultiArray(f) : s;
- const g = this.getSampleArray(l, c, h, a);
- return function constructSampledFn(e, t, a, r) {
- const i = 1 << o,
- h = new Float64Array(i),
- u = new Uint32Array(i);
- let p, m;
- for (m = 0; m < i; m++) h[m] = 1;
- let b = c,
- y = 1;
- for (p = 0; p < o; ++p) {
- const a = n[p][0],
- r = n[p][1];
- let s = interpolate(Math.min(Math.max(e[t + p], a), r), a, r, d[p][0], d[p][1]);
- const o = l[p];
- s = Math.min(Math.max(s, 0), o - 1);
- const c = s < o - 1 ? Math.floor(s) : s - 1,
- f = c + 1 - s,
- g = s - c,
- w = c * b,
- S = w + b;
- for (m = 0; m < i; m++)
- if (m & y) {
- h[m] *= g;
- u[m] += S;
- } else {
- h[m] *= f;
- u[m] += w;
- }
- b *= o;
- y <<= 1;
- }
- for (m = 0; m < c; ++m) {
- let e = 0;
- for (p = 0; p < i; p++) e += g[u[p] + m] * h[p];
- e = interpolate(e, 0, 1, f[m][0], f[m][1]);
- a[r + m] = Math.min(Math.max(e, s[m][0]), s[m][1]);
- }
- };
- }
- static constructInterpolated({ xref: e, isEvalSupported: t, dict: a }) {
- const r = toNumberArray(a.getArray('C0')) || [0],
- i = toNumberArray(a.getArray('C1')) || [1],
- n = a.get('N'),
- s = [];
- for (let e = 0, t = r.length; e < t; ++e) s.push(i[e] - r[e]);
- const o = s.length;
- return function constructInterpolatedFn(e, t, a, i) {
- const c = 1 === n ? e[t] : e[t] ** n;
- for (let e = 0; e < o; ++e) a[i + e] = r[e] + c * s[e];
- };
- }
- static constructStiched({ xref: e, isEvalSupported: t, dict: a }) {
- const r = toNumberArray(a.getArray('Domain'));
- if (!r) throw new i.FormatError('No domain');
- if (1 !== r.length / 2) throw new i.FormatError('Bad domain for stiched function');
- const n = [];
- for (const r of a.get('Functions'))
- n.push(this.parse({ xref: e, isEvalSupported: t, fn: e.fetchIfRef(r) }));
- const s = toNumberArray(a.getArray('Bounds')),
- o = toNumberArray(a.getArray('Encode')),
- c = new Float32Array(1);
- return function constructStichedFn(e, t, a, i) {
- const l = (function constructStichedFromIRClip(e, t, a) {
- e > a ? (e = a) : e < t && (e = t);
- return e;
- })(e[t], r[0], r[1]),
- h = s.length;
- let u;
- for (u = 0; u < h && !(l < s[u]); ++u);
- let d = r[0];
- u > 0 && (d = s[u - 1]);
- let f = r[1];
- u < s.length && (f = s[u]);
- const g = o[2 * u],
- p = o[2 * u + 1];
- c[0] = d === f ? g : g + ((l - d) * (p - g)) / (f - d);
- n[u](c, 0, a, i);
- };
- }
- static constructPostScript({ xref: e, isEvalSupported: t, fn: a, dict: r }) {
- const s = toNumberArray(r.getArray('Domain')),
- o = toNumberArray(r.getArray('Range'));
- if (!s) throw new i.FormatError('No domain.');
- if (!o) throw new i.FormatError('No range.');
- const c = new n.PostScriptLexer(a),
- l = new n.PostScriptParser(c).parse();
- if (t && i.FeatureTest.isEvalSupported) {
- const e = new PostScriptCompiler().compile(l, s, o);
- if (e) return new Function('src', 'srcOffset', 'dest', 'destOffset', e);
- }
- (0, i.info)('Unable to compile PS function');
- const h = o.length >> 1,
- u = s.length >> 1,
- d = new PostScriptEvaluator(l),
- f = Object.create(null);
- let g = 8192;
- const p = new Float32Array(u);
- return function constructPostScriptFn(e, t, a, r) {
- let i,
- n,
- s = '';
- const c = p;
- for (i = 0; i < u; i++) {
- n = e[t + i];
- c[i] = n;
- s += n + '_';
- }
- const l = f[s];
- if (void 0 !== l) {
- a.set(l, r);
- return;
- }
- const m = new Float32Array(h),
- b = d.execute(c),
- y = b.length - h;
- for (i = 0; i < h; i++) {
- n = b[y + i];
- let e = o[2 * i];
- if (n < e) n = e;
- else {
- e = o[2 * i + 1];
- n > e && (n = e);
- }
- m[i] = n;
- }
- if (g > 0) {
- g--;
- f[s] = m;
- }
- a.set(m, r);
- };
- }
- }
- class PostScriptStack {
- static MAX_STACK_SIZE = 100;
- constructor(e) {
- this.stack = e ? Array.from(e) : [];
- }
- push(e) {
- if (this.stack.length >= PostScriptStack.MAX_STACK_SIZE)
- throw new Error('PostScript function stack overflow.');
- this.stack.push(e);
- }
- pop() {
- if (this.stack.length <= 0) throw new Error('PostScript function stack underflow.');
- return this.stack.pop();
- }
- copy(e) {
- if (this.stack.length + e >= PostScriptStack.MAX_STACK_SIZE)
- throw new Error('PostScript function stack overflow.');
- const t = this.stack;
- for (let a = t.length - e, r = e - 1; r >= 0; r--, a++) t.push(t[a]);
- }
- index(e) {
- this.push(this.stack[this.stack.length - e - 1]);
- }
- roll(e, t) {
- const a = this.stack,
- r = a.length - e,
- i = a.length - 1,
- n = r + (t - Math.floor(t / e) * e);
- for (let e = r, t = i; e < t; e++, t--) {
- const r = a[e];
- a[e] = a[t];
- a[t] = r;
- }
- for (let e = r, t = n - 1; e < t; e++, t--) {
- const r = a[e];
- a[e] = a[t];
- a[t] = r;
- }
- for (let e = n, t = i; e < t; e++, t--) {
- const r = a[e];
- a[e] = a[t];
- a[t] = r;
- }
- }
- }
- class PostScriptEvaluator {
- constructor(e) {
- this.operators = e;
- }
- execute(e) {
- const t = new PostScriptStack(e);
- let a = 0;
- const r = this.operators,
- n = r.length;
- let s, o, c;
- for (; a < n; ) {
- s = r[a++];
- if ('number' != typeof s)
- switch (s) {
- case 'jz':
- c = t.pop();
- o = t.pop();
- o || (a = c);
- break;
- case 'j':
- o = t.pop();
- a = o;
- break;
- case 'abs':
- o = t.pop();
- t.push(Math.abs(o));
- break;
- case 'add':
- c = t.pop();
- o = t.pop();
- t.push(o + c);
- break;
- case 'and':
- c = t.pop();
- o = t.pop();
- 'boolean' == typeof o && 'boolean' == typeof c
- ? t.push(o && c)
- : t.push(o & c);
- break;
- case 'atan':
- c = t.pop();
- o = t.pop();
- o = (Math.atan2(o, c) / Math.PI) * 180;
- o < 0 && (o += 360);
- t.push(o);
- break;
- case 'bitshift':
- c = t.pop();
- o = t.pop();
- o > 0 ? t.push(o << c) : t.push(o >> c);
- break;
- case 'ceiling':
- o = t.pop();
- t.push(Math.ceil(o));
- break;
- case 'copy':
- o = t.pop();
- t.copy(o);
- break;
- case 'cos':
- o = t.pop();
- t.push(Math.cos(((o % 360) / 180) * Math.PI));
- break;
- case 'cvi':
- o = 0 | t.pop();
- t.push(o);
- break;
- case 'cvr':
- break;
- case 'div':
- c = t.pop();
- o = t.pop();
- t.push(o / c);
- break;
- case 'dup':
- t.copy(1);
- break;
- case 'eq':
- c = t.pop();
- o = t.pop();
- t.push(o === c);
- break;
- case 'exch':
- t.roll(2, 1);
- break;
- case 'exp':
- c = t.pop();
- o = t.pop();
- t.push(o ** c);
- break;
- case 'false':
- t.push(!1);
- break;
- case 'floor':
- o = t.pop();
- t.push(Math.floor(o));
- break;
- case 'ge':
- c = t.pop();
- o = t.pop();
- t.push(o >= c);
- break;
- case 'gt':
- c = t.pop();
- o = t.pop();
- t.push(o > c);
- break;
- case 'idiv':
- c = t.pop();
- o = t.pop();
- t.push((o / c) | 0);
- break;
- case 'index':
- o = t.pop();
- t.index(o);
- break;
- case 'le':
- c = t.pop();
- o = t.pop();
- t.push(o <= c);
- break;
- case 'ln':
- o = t.pop();
- t.push(Math.log(o));
- break;
- case 'log':
- o = t.pop();
- t.push(Math.log(o) / Math.LN10);
- break;
- case 'lt':
- c = t.pop();
- o = t.pop();
- t.push(o < c);
- break;
- case 'mod':
- c = t.pop();
- o = t.pop();
- t.push(o % c);
- break;
- case 'mul':
- c = t.pop();
- o = t.pop();
- t.push(o * c);
- break;
- case 'ne':
- c = t.pop();
- o = t.pop();
- t.push(o !== c);
- break;
- case 'neg':
- o = t.pop();
- t.push(-o);
- break;
- case 'not':
- o = t.pop();
- 'boolean' == typeof o ? t.push(!o) : t.push(~o);
- break;
- case 'or':
- c = t.pop();
- o = t.pop();
- 'boolean' == typeof o && 'boolean' == typeof c
- ? t.push(o || c)
- : t.push(o | c);
- break;
- case 'pop':
- t.pop();
- break;
- case 'roll':
- c = t.pop();
- o = t.pop();
- t.roll(o, c);
- break;
- case 'round':
- o = t.pop();
- t.push(Math.round(o));
- break;
- case 'sin':
- o = t.pop();
- t.push(Math.sin(((o % 360) / 180) * Math.PI));
- break;
- case 'sqrt':
- o = t.pop();
- t.push(Math.sqrt(o));
- break;
- case 'sub':
- c = t.pop();
- o = t.pop();
- t.push(o - c);
- break;
- case 'true':
- t.push(!0);
- break;
- case 'truncate':
- o = t.pop();
- o = o < 0 ? Math.ceil(o) : Math.floor(o);
- t.push(o);
- break;
- case 'xor':
- c = t.pop();
- o = t.pop();
- 'boolean' == typeof o && 'boolean' == typeof c
- ? t.push(o !== c)
- : t.push(o ^ c);
- break;
- default:
- throw new i.FormatError(`Unknown operator ${s}`);
- }
- else t.push(s);
- }
- return t.stack;
- }
- }
- t.PostScriptEvaluator = PostScriptEvaluator;
- class AstNode {
- constructor(e) {
- this.type = e;
- }
- visit(e) {
- (0, i.unreachable)('abstract method');
- }
- }
- class AstArgument extends AstNode {
- constructor(e, t, a) {
- super('args');
- this.index = e;
- this.min = t;
- this.max = a;
- }
- visit(e) {
- e.visitArgument(this);
- }
- }
- class AstLiteral extends AstNode {
- constructor(e) {
- super('literal');
- this.number = e;
- this.min = e;
- this.max = e;
- }
- visit(e) {
- e.visitLiteral(this);
- }
- }
- class AstBinaryOperation extends AstNode {
- constructor(e, t, a, r, i) {
- super('binary');
- this.op = e;
- this.arg1 = t;
- this.arg2 = a;
- this.min = r;
- this.max = i;
- }
- visit(e) {
- e.visitBinaryOperation(this);
- }
- }
- class AstMin extends AstNode {
- constructor(e, t) {
- super('max');
- this.arg = e;
- this.min = e.min;
- this.max = t;
- }
- visit(e) {
- e.visitMin(this);
- }
- }
- class AstVariable extends AstNode {
- constructor(e, t, a) {
- super('var');
- this.index = e;
- this.min = t;
- this.max = a;
- }
- visit(e) {
- e.visitVariable(this);
- }
- }
- class AstVariableDefinition extends AstNode {
- constructor(e, t) {
- super('definition');
- this.variable = e;
- this.arg = t;
- }
- visit(e) {
- e.visitVariableDefinition(this);
- }
- }
- class ExpressionBuilderVisitor {
- constructor() {
- this.parts = [];
- }
- visitArgument(e) {
- this.parts.push(
- 'Math.max(',
- e.min,
- ', Math.min(',
- e.max,
- ', src[srcOffset + ',
- e.index,
- ']))',
- );
- }
- visitVariable(e) {
- this.parts.push('v', e.index);
- }
- visitLiteral(e) {
- this.parts.push(e.number);
- }
- visitBinaryOperation(e) {
- this.parts.push('(');
- e.arg1.visit(this);
- this.parts.push(' ', e.op, ' ');
- e.arg2.visit(this);
- this.parts.push(')');
- }
- visitVariableDefinition(e) {
- this.parts.push('var ');
- e.variable.visit(this);
- this.parts.push(' = ');
- e.arg.visit(this);
- this.parts.push(';');
- }
- visitMin(e) {
- this.parts.push('Math.min(');
- e.arg.visit(this);
- this.parts.push(', ', e.max, ')');
- }
- toString() {
- return this.parts.join('');
- }
- }
- function buildAddOperation(e, t) {
- return 'literal' === t.type && 0 === t.number
- ? e
- : 'literal' === e.type && 0 === e.number
- ? t
- : 'literal' === t.type && 'literal' === e.type
- ? new AstLiteral(e.number + t.number)
- : new AstBinaryOperation('+', e, t, e.min + t.min, e.max + t.max);
- }
- function buildMulOperation(e, t) {
- if ('literal' === t.type) {
- if (0 === t.number) return new AstLiteral(0);
- if (1 === t.number) return e;
- if ('literal' === e.type) return new AstLiteral(e.number * t.number);
- }
- if ('literal' === e.type) {
- if (0 === e.number) return new AstLiteral(0);
- if (1 === e.number) return t;
- }
- const a = Math.min(e.min * t.min, e.min * t.max, e.max * t.min, e.max * t.max),
- r = Math.max(e.min * t.min, e.min * t.max, e.max * t.min, e.max * t.max);
- return new AstBinaryOperation('*', e, t, a, r);
- }
- function buildSubOperation(e, t) {
- if ('literal' === t.type) {
- if (0 === t.number) return e;
- if ('literal' === e.type) return new AstLiteral(e.number - t.number);
- }
- return 'binary' === t.type &&
- '-' === t.op &&
- 'literal' === e.type &&
- 1 === e.number &&
- 'literal' === t.arg1.type &&
- 1 === t.arg1.number
- ? t.arg2
- : new AstBinaryOperation('-', e, t, e.min - t.max, e.max - t.min);
- }
- function buildMinOperation(e, t) {
- return e.min >= t ? new AstLiteral(t) : e.max <= t ? e : new AstMin(e, t);
- }
- class PostScriptCompiler {
- compile(e, t, a) {
- const r = [],
- i = [],
- n = t.length >> 1,
- s = a.length >> 1;
- let o,
- c,
- l,
- h,
- u,
- d,
- f,
- g,
- p = 0;
- for (let e = 0; e < n; e++) r.push(new AstArgument(e, t[2 * e], t[2 * e + 1]));
- for (let t = 0, a = e.length; t < a; t++) {
- g = e[t];
- if ('number' != typeof g)
- switch (g) {
- case 'add':
- if (r.length < 2) return null;
- h = r.pop();
- l = r.pop();
- r.push(buildAddOperation(l, h));
- break;
- case 'cvr':
- if (r.length < 1) return null;
- break;
- case 'mul':
- if (r.length < 2) return null;
- h = r.pop();
- l = r.pop();
- r.push(buildMulOperation(l, h));
- break;
- case 'sub':
- if (r.length < 2) return null;
- h = r.pop();
- l = r.pop();
- r.push(buildSubOperation(l, h));
- break;
- case 'exch':
- if (r.length < 2) return null;
- u = r.pop();
- d = r.pop();
- r.push(u, d);
- break;
- case 'pop':
- if (r.length < 1) return null;
- r.pop();
- break;
- case 'index':
- if (r.length < 1) return null;
- l = r.pop();
- if ('literal' !== l.type) return null;
- o = l.number;
- if (o < 0 || !Number.isInteger(o) || r.length < o) return null;
- u = r[r.length - o - 1];
- if ('literal' === u.type || 'var' === u.type) {
- r.push(u);
- break;
- }
- f = new AstVariable(p++, u.min, u.max);
- r[r.length - o - 1] = f;
- r.push(f);
- i.push(new AstVariableDefinition(f, u));
- break;
- case 'dup':
- if (r.length < 1) return null;
- if (
- 'number' == typeof e[t + 1] &&
- 'gt' === e[t + 2] &&
- e[t + 3] === t + 7 &&
- 'jz' === e[t + 4] &&
- 'pop' === e[t + 5] &&
- e[t + 6] === e[t + 1]
- ) {
- l = r.pop();
- r.push(buildMinOperation(l, e[t + 1]));
- t += 6;
- break;
- }
- u = r.at(-1);
- if ('literal' === u.type || 'var' === u.type) {
- r.push(u);
- break;
- }
- f = new AstVariable(p++, u.min, u.max);
- r[r.length - 1] = f;
- r.push(f);
- i.push(new AstVariableDefinition(f, u));
- break;
- case 'roll':
- if (r.length < 2) return null;
- h = r.pop();
- l = r.pop();
- if ('literal' !== h.type || 'literal' !== l.type) return null;
- c = h.number;
- o = l.number;
- if (o <= 0 || !Number.isInteger(o) || !Number.isInteger(c) || r.length < o)
- return null;
- c = ((c % o) + o) % o;
- if (0 === c) break;
- r.push(...r.splice(r.length - o, o - c));
- break;
- default:
- return null;
- }
- else r.push(new AstLiteral(g));
- }
- if (r.length !== s) return null;
- const m = [];
- for (const e of i) {
- const t = new ExpressionBuilderVisitor();
- e.visit(t);
- m.push(t.toString());
- }
- for (let e = 0, t = r.length; e < t; e++) {
- const t = r[e],
- i = new ExpressionBuilderVisitor();
- t.visit(i);
- const n = a[2 * e],
- s = a[2 * e + 1],
- o = [i.toString()];
- if (n > t.min) {
- o.unshift('Math.max(', n, ', ');
- o.push(')');
- }
- if (s < t.max) {
- o.unshift('Math.min(', s, ', ');
- o.push(')');
- }
- o.unshift('dest[destOffset + ', e, '] = ');
- o.push(';');
- m.push(o.join(''));
- }
- return m.join('\n');
- }
- }
- t.PostScriptCompiler = PostScriptCompiler;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.PostScriptParser = t.PostScriptLexer = void 0;
- var r = a(2),
- i = a(4),
- n = a(3);
- t.PostScriptParser = class PostScriptParser {
- constructor(e) {
- this.lexer = e;
- this.operators = [];
- this.token = null;
- this.prev = null;
- }
- nextToken() {
- this.prev = this.token;
- this.token = this.lexer.getToken();
- }
- accept(e) {
- if (this.token.type === e) {
- this.nextToken();
- return !0;
- }
- return !1;
- }
- expect(e) {
- if (this.accept(e)) return !0;
- throw new r.FormatError(`Unexpected symbol: found ${this.token.type} expected ${e}.`);
- }
- parse() {
- this.nextToken();
- this.expect(s.LBRACE);
- this.parseBlock();
- this.expect(s.RBRACE);
- return this.operators;
- }
- parseBlock() {
- for (;;)
- if (this.accept(s.NUMBER)) this.operators.push(this.prev.value);
- else if (this.accept(s.OPERATOR)) this.operators.push(this.prev.value);
- else {
- if (!this.accept(s.LBRACE)) return;
- this.parseCondition();
- }
- }
- parseCondition() {
- const e = this.operators.length;
- this.operators.push(null, null);
- this.parseBlock();
- this.expect(s.RBRACE);
- if (this.accept(s.IF)) {
- this.operators[e] = this.operators.length;
- this.operators[e + 1] = 'jz';
- } else {
- if (!this.accept(s.LBRACE))
- throw new r.FormatError('PS Function: error parsing conditional.');
- {
- const t = this.operators.length;
- this.operators.push(null, null);
- const a = this.operators.length;
- this.parseBlock();
- this.expect(s.RBRACE);
- this.expect(s.IFELSE);
- this.operators[t] = this.operators.length;
- this.operators[t + 1] = 'j';
- this.operators[e] = a;
- this.operators[e + 1] = 'jz';
- }
- }
- }
- };
- const s = { LBRACE: 0, RBRACE: 1, NUMBER: 2, OPERATOR: 3, IF: 4, IFELSE: 5 };
- class PostScriptToken {
- static get opCache() {
- return (0, r.shadow)(this, 'opCache', Object.create(null));
- }
- constructor(e, t) {
- this.type = e;
- this.value = t;
- }
- static getOperator(e) {
- return (PostScriptToken.opCache[e] ||= new PostScriptToken(s.OPERATOR, e));
- }
- static get LBRACE() {
- return (0, r.shadow)(this, 'LBRACE', new PostScriptToken(s.LBRACE, '{'));
- }
- static get RBRACE() {
- return (0, r.shadow)(this, 'RBRACE', new PostScriptToken(s.RBRACE, '}'));
- }
- static get IF() {
- return (0, r.shadow)(this, 'IF', new PostScriptToken(s.IF, 'IF'));
- }
- static get IFELSE() {
- return (0, r.shadow)(this, 'IFELSE', new PostScriptToken(s.IFELSE, 'IFELSE'));
- }
- }
- t.PostScriptLexer = class PostScriptLexer {
- constructor(e) {
- this.stream = e;
- this.nextChar();
- this.strBuf = [];
- }
- nextChar() {
- return (this.currentChar = this.stream.getByte());
- }
- getToken() {
- let e = !1,
- t = this.currentChar;
- for (;;) {
- if (t < 0) return i.EOF;
- if (e) (10 !== t && 13 !== t) || (e = !1);
- else if (37 === t) e = !0;
- else if (!(0, n.isWhiteSpace)(t)) break;
- t = this.nextChar();
- }
- switch (0 | t) {
- case 48:
- case 49:
- case 50:
- case 51:
- case 52:
- case 53:
- case 54:
- case 55:
- case 56:
- case 57:
- case 43:
- case 45:
- case 46:
- return new PostScriptToken(s.NUMBER, this.getNumber());
- case 123:
- this.nextChar();
- return PostScriptToken.LBRACE;
- case 125:
- this.nextChar();
- return PostScriptToken.RBRACE;
- }
- const a = this.strBuf;
- a.length = 0;
- a[0] = String.fromCharCode(t);
- for (
- ;
- (t = this.nextChar()) >= 0 && ((t >= 65 && t <= 90) || (t >= 97 && t <= 122));
-
- )
- a.push(String.fromCharCode(t));
- const r = a.join('');
- switch (r.toLowerCase()) {
- case 'if':
- return PostScriptToken.IF;
- case 'ifelse':
- return PostScriptToken.IFELSE;
- default:
- return PostScriptToken.getOperator(r);
- }
- }
- getNumber() {
- let e = this.currentChar;
- const t = this.strBuf;
- t.length = 0;
- t[0] = String.fromCharCode(e);
- for (; (e = this.nextChar()) >= 0 && ((e >= 48 && e <= 57) || 45 === e || 46 === e); )
- t.push(String.fromCharCode(e));
- const a = parseFloat(t.join(''));
- if (isNaN(a)) throw new r.FormatError(`Invalid floating point number: ${a}`);
- return a;
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.RegionalImageCache =
- t.LocalTilingPatternCache =
- t.LocalImageCache =
- t.LocalGStateCache =
- t.LocalFunctionCache =
- t.LocalColorSpaceCache =
- t.GlobalImageCache =
- void 0;
- var r = a(2),
- i = a(4);
- class BaseLocalCache {
- constructor(e) {
- this.constructor === BaseLocalCache &&
- (0, r.unreachable)('Cannot initialize BaseLocalCache.');
- this._onlyRefs = !0 === (e && e.onlyRefs);
- if (!this._onlyRefs) {
- this._nameRefMap = new Map();
- this._imageMap = new Map();
- }
- this._imageCache = new i.RefSetCache();
- }
- getByName(e) {
- this._onlyRefs && (0, r.unreachable)('Should not call `getByName` method.');
- const t = this._nameRefMap.get(e);
- return t ? this.getByRef(t) : this._imageMap.get(e) || null;
- }
- getByRef(e) {
- return this._imageCache.get(e) || null;
- }
- set(e, t, a) {
- (0, r.unreachable)('Abstract method `set` called.');
- }
- }
- t.LocalImageCache = class LocalImageCache extends BaseLocalCache {
- set(e, t = null, a) {
- if ('string' != typeof e)
- throw new Error('LocalImageCache.set - expected "name" argument.');
- if (t) {
- if (this._imageCache.has(t)) return;
- this._nameRefMap.set(e, t);
- this._imageCache.put(t, a);
- } else this._imageMap.has(e) || this._imageMap.set(e, a);
- }
- };
- t.LocalColorSpaceCache = class LocalColorSpaceCache extends BaseLocalCache {
- set(e = null, t = null, a) {
- if ('string' != typeof e && !t)
- throw new Error(
- 'LocalColorSpaceCache.set - expected "name" and/or "ref" argument.',
- );
- if (t) {
- if (this._imageCache.has(t)) return;
- null !== e && this._nameRefMap.set(e, t);
- this._imageCache.put(t, a);
- } else this._imageMap.has(e) || this._imageMap.set(e, a);
- }
- };
- t.LocalFunctionCache = class LocalFunctionCache extends BaseLocalCache {
- constructor(e) {
- super({ onlyRefs: !0 });
- }
- set(e = null, t, a) {
- if (!t) throw new Error('LocalFunctionCache.set - expected "ref" argument.');
- this._imageCache.has(t) || this._imageCache.put(t, a);
- }
- };
- t.LocalGStateCache = class LocalGStateCache extends BaseLocalCache {
- set(e, t = null, a) {
- if ('string' != typeof e)
- throw new Error('LocalGStateCache.set - expected "name" argument.');
- if (t) {
- if (this._imageCache.has(t)) return;
- this._nameRefMap.set(e, t);
- this._imageCache.put(t, a);
- } else this._imageMap.has(e) || this._imageMap.set(e, a);
- }
- };
- t.LocalTilingPatternCache = class LocalTilingPatternCache extends BaseLocalCache {
- constructor(e) {
- super({ onlyRefs: !0 });
- }
- set(e = null, t, a) {
- if (!t) throw new Error('LocalTilingPatternCache.set - expected "ref" argument.');
- this._imageCache.has(t) || this._imageCache.put(t, a);
- }
- };
- t.RegionalImageCache = class RegionalImageCache extends BaseLocalCache {
- constructor(e) {
- super({ onlyRefs: !0 });
- }
- set(e = null, t, a) {
- if (!t) throw new Error('RegionalImageCache.set - expected "ref" argument.');
- this._imageCache.has(t) || this._imageCache.put(t, a);
- }
- };
- class GlobalImageCache {
- static NUM_PAGES_THRESHOLD = 2;
- static MIN_IMAGES_TO_CACHE = 10;
- static MAX_BYTE_SIZE = 5 * r.MAX_IMAGE_SIZE_TO_CACHE;
- constructor() {
- this._refCache = new i.RefSetCache();
- this._imageCache = new i.RefSetCache();
- }
- get _byteSize() {
- let e = 0;
- for (const t of this._imageCache) e += t.byteSize;
- return e;
- }
- get _cacheLimitReached() {
- return (
- !(this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) &&
- !(this._byteSize < GlobalImageCache.MAX_BYTE_SIZE)
- );
- }
- shouldCache(e, t) {
- let a = this._refCache.get(e);
- if (!a) {
- a = new Set();
- this._refCache.put(e, a);
- }
- a.add(t);
- return (
- !(a.size < GlobalImageCache.NUM_PAGES_THRESHOLD) &&
- !(!this._imageCache.has(e) && this._cacheLimitReached)
- );
- }
- addByteSize(e, t) {
- const a = this._imageCache.get(e);
- a && (a.byteSize || (a.byteSize = t));
- }
- getData(e, t) {
- const a = this._refCache.get(e);
- if (!a) return null;
- if (a.size < GlobalImageCache.NUM_PAGES_THRESHOLD) return null;
- const r = this._imageCache.get(e);
- if (!r) return null;
- a.add(t);
- return r;
- }
- setData(e, t) {
- if (!this._refCache.has(e))
- throw new Error(
- 'GlobalImageCache.setData - expected "shouldCache" to have been called.',
- );
- this._imageCache.has(e) ||
- (this._cacheLimitReached
- ? (0, r.warn)('GlobalImageCache.setData - cache limit reached.')
- : this._imageCache.put(e, t));
- }
- clear(e = !1) {
- e || this._refCache.clear();
- this._imageCache.clear();
- }
- }
- t.GlobalImageCache = GlobalImageCache;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.bidi = function bidi(e, t = -1, a = !1) {
- let c = !0;
- const l = e.length;
- if (0 === l || a) return createBidiText(e, c, a);
- s.length = l;
- o.length = l;
- let h,
- u,
- d = 0;
- for (h = 0; h < l; ++h) {
- s[h] = e.charAt(h);
- const t = e.charCodeAt(h);
- let a = 'L';
- if (t <= 255) a = i[t];
- else if (1424 <= t && t <= 1524) a = 'R';
- else if (1536 <= t && t <= 1791) {
- a = n[255 & t];
- a || (0, r.warn)('Bidi: invalid Unicode character ' + t.toString(16));
- } else
- ((1792 <= t && t <= 2220) ||
- (64336 <= t && t <= 65023) ||
- (65136 <= t && t <= 65279)) &&
- (a = 'AL');
- ('R' !== a && 'AL' !== a && 'AN' !== a) || d++;
- o[h] = a;
- }
- if (0 === d) {
- c = !0;
- return createBidiText(e, c);
- }
- if (-1 === t)
- if (d / l < 0.3 && l > 4) {
- c = !0;
- t = 0;
- } else {
- c = !1;
- t = 1;
- }
- const f = [];
- for (h = 0; h < l; ++h) f[h] = t;
- const g = isOdd(t) ? 'R' : 'L',
- p = g,
- m = p;
- let b,
- y = p;
- for (h = 0; h < l; ++h) 'NSM' === o[h] ? (o[h] = y) : (y = o[h]);
- y = p;
- for (h = 0; h < l; ++h) {
- b = o[h];
- 'EN' === b
- ? (o[h] = 'AL' === y ? 'AN' : 'EN')
- : ('R' !== b && 'L' !== b && 'AL' !== b) || (y = b);
- }
- for (h = 0; h < l; ++h) {
- b = o[h];
- 'AL' === b && (o[h] = 'R');
- }
- for (h = 1; h < l - 1; ++h) {
- 'ES' === o[h] && 'EN' === o[h - 1] && 'EN' === o[h + 1] && (o[h] = 'EN');
- 'CS' !== o[h] ||
- ('EN' !== o[h - 1] && 'AN' !== o[h - 1]) ||
- o[h + 1] !== o[h - 1] ||
- (o[h] = o[h - 1]);
- }
- for (h = 0; h < l; ++h)
- if ('EN' === o[h]) {
- for (let e = h - 1; e >= 0 && 'ET' === o[e]; --e) o[e] = 'EN';
- for (let e = h + 1; e < l && 'ET' === o[e]; ++e) o[e] = 'EN';
- }
- for (h = 0; h < l; ++h) {
- b = o[h];
- ('WS' !== b && 'ES' !== b && 'ET' !== b && 'CS' !== b) || (o[h] = 'ON');
- }
- y = p;
- for (h = 0; h < l; ++h) {
- b = o[h];
- 'EN' === b ? (o[h] = 'L' === y ? 'L' : 'EN') : ('R' !== b && 'L' !== b) || (y = b);
- }
- for (h = 0; h < l; ++h)
- if ('ON' === o[h]) {
- const e = findUnequal(o, h + 1, 'ON');
- let t = p;
- h > 0 && (t = o[h - 1]);
- let a = m;
- e + 1 < l && (a = o[e + 1]);
- 'L' !== t && (t = 'R');
- 'L' !== a && (a = 'R');
- t === a && setValues(o, h, e, t);
- h = e - 1;
- }
- for (h = 0; h < l; ++h) 'ON' === o[h] && (o[h] = g);
- for (h = 0; h < l; ++h) {
- b = o[h];
- isEven(f[h])
- ? 'R' === b
- ? (f[h] += 1)
- : ('AN' !== b && 'EN' !== b) || (f[h] += 2)
- : ('L' !== b && 'AN' !== b && 'EN' !== b) || (f[h] += 1);
- }
- let w,
- S = -1,
- x = 99;
- for (h = 0, u = f.length; h < u; ++h) {
- w = f[h];
- S < w && (S = w);
- x > w && isOdd(w) && (x = w);
- }
- for (w = S; w >= x; --w) {
- let e = -1;
- for (h = 0, u = f.length; h < u; ++h)
- if (f[h] < w) {
- if (e >= 0) {
- reverseValues(s, e, h);
- e = -1;
- }
- } else e < 0 && (e = h);
- e >= 0 && reverseValues(s, e, f.length);
- }
- for (h = 0, u = s.length; h < u; ++h) {
- const e = s[h];
- ('<' !== e && '>' !== e) || (s[h] = '');
- }
- return createBidiText(s.join(''), c);
- };
- var r = a(2);
- const i = [
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'S',
- 'B',
- 'S',
- 'WS',
- 'B',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'B',
- 'B',
- 'B',
- 'S',
- 'WS',
- 'ON',
- 'ON',
- 'ET',
- 'ET',
- 'ET',
- 'ON',
- 'ON',
- 'ON',
- 'ON',
- 'ON',
- 'ES',
- 'CS',
- 'ES',
- 'CS',
- 'CS',
- 'EN',
- 'EN',
- 'EN',
- 'EN',
- 'EN',
- 'EN',
- 'EN',
- 'EN',
- 'EN',
- 'EN',
- 'CS',
- 'ON',
- 'ON',
- 'ON',
- 'ON',
- 'ON',
- 'ON',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'ON',
- 'ON',
- 'ON',
- 'ON',
- 'ON',
- 'ON',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'ON',
- 'ON',
- 'ON',
- 'ON',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'B',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'BN',
- 'CS',
- 'ON',
- 'ET',
- 'ET',
- 'ET',
- 'ET',
- 'ON',
- 'ON',
- 'ON',
- 'ON',
- 'L',
- 'ON',
- 'ON',
- 'BN',
- 'ON',
- 'ON',
- 'ET',
- 'ET',
- 'EN',
- 'EN',
- 'ON',
- 'L',
- 'ON',
- 'ON',
- 'ON',
- 'EN',
- 'L',
- 'ON',
- 'ON',
- 'ON',
- 'ON',
- 'ON',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'ON',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'ON',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- 'L',
- ],
- n = [
- 'AN',
- 'AN',
- 'AN',
- 'AN',
- 'AN',
- 'AN',
- 'ON',
- 'ON',
- 'AL',
- 'ET',
- 'ET',
- 'AL',
- 'CS',
- 'AL',
- 'ON',
- 'ON',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'AL',
- 'AL',
- '',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'AN',
- 'AN',
- 'AN',
- 'AN',
- 'AN',
- 'AN',
- 'AN',
- 'AN',
- 'AN',
- 'AN',
- 'ET',
- 'AN',
- 'AN',
- 'AL',
- 'AL',
- 'AL',
- 'NSM',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'AN',
- 'ON',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'AL',
- 'AL',
- 'NSM',
- 'NSM',
- 'ON',
- 'NSM',
- 'NSM',
- 'NSM',
- 'NSM',
- 'AL',
- 'AL',
- 'EN',
- 'EN',
- 'EN',
- 'EN',
- 'EN',
- 'EN',
- 'EN',
- 'EN',
- 'EN',
- 'EN',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- 'AL',
- ];
- function isOdd(e) {
- return 0 != (1 & e);
- }
- function isEven(e) {
- return 0 == (1 & e);
- }
- function findUnequal(e, t, a) {
- let r, i;
- for (r = t, i = e.length; r < i; ++r) if (e[r] !== a) return r;
- return r;
- }
- function setValues(e, t, a, r) {
- for (let i = t; i < a; ++i) e[i] = r;
- }
- function reverseValues(e, t, a) {
- for (let r = t, i = a - 1; r < i; ++r, --i) {
- const t = e[r];
- e[r] = e[i];
- e[i] = t;
- }
- }
- function createBidiText(e, t, a = !1) {
- let r = 'ltr';
- a ? (r = 'ttb') : t || (r = 'rtl');
- return { str: e, dir: r };
- }
- const s = [],
- o = [];
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.ImageResizer = void 0;
- var r = a(2);
- class ImageResizer {
- constructor(e, t) {
- this._imgData = e;
- this._isMask = t;
- }
- static needsToBeResized(e, t) {
- if (e <= this._goodSquareLength && t <= this._goodSquareLength) return !1;
- const { MAX_DIM: a } = this;
- if (e > a || t > a) return !0;
- const r = e * t;
- if (this._hasMaxArea) return r > this.MAX_AREA;
- if (r < this._goodSquareLength ** 2) return !1;
- if (this._areGoodDims(e, t)) {
- this._goodSquareLength = Math.max(
- this._goodSquareLength,
- Math.floor(Math.sqrt(e * t)),
- );
- return !1;
- }
- this._goodSquareLength = this._guessMax(this._goodSquareLength, a, 128, 0);
- return r > (this.MAX_AREA = this._goodSquareLength ** 2);
- }
- static get MAX_DIM() {
- return (0, r.shadow)(this, 'MAX_DIM', this._guessMax(2048, 65537, 0, 1));
- }
- static get MAX_AREA() {
- this._hasMaxArea = !0;
- return (0, r.shadow)(
- this,
- 'MAX_AREA',
- this._guessMax(ImageResizer._goodSquareLength, this.MAX_DIM, 128, 0) ** 2,
- );
- }
- static set MAX_AREA(e) {
- if (e >= 0) {
- this._hasMaxArea = !0;
- (0, r.shadow)(this, 'MAX_AREA', e);
- }
- }
- static setMaxArea(e) {
- this._hasMaxArea || (this.MAX_AREA = e >> 2);
- }
- static _areGoodDims(e, t) {
- try {
- const a = new OffscreenCanvas(e, t),
- r = a.getContext('2d');
- r.fillRect(0, 0, 1, 1);
- const i = r.getImageData(0, 0, 1, 1).data[3];
- a.width = a.height = 1;
- return 0 !== i;
- } catch (e) {
- return !1;
- }
- }
- static _guessMax(e, t, a, r) {
- for (; e + a + 1 < t; ) {
- const a = Math.floor((e + t) / 2),
- i = r || a;
- this._areGoodDims(a, i) ? (e = a) : (t = a);
- }
- return e;
- }
- static async createImage(e, t = !1) {
- return new ImageResizer(e, t)._createImage();
- }
- async _createImage() {
- const e = this._encodeBMP(),
- t = new Blob([e.buffer], { type: 'image/bmp' }),
- a = createImageBitmap(t),
- { MAX_AREA: r, MAX_DIM: i } = ImageResizer,
- { _imgData: n } = this,
- { width: s, height: o } = n,
- c = Math.max(s / i, o / i, Math.sqrt((s * o) / r)),
- l = Math.max(c, 2),
- h = Math.round(10 * (c + 1.25)) / 10 / l,
- u = Math.floor(Math.log2(h)),
- d = new Array(u + 2).fill(2);
- d[0] = l;
- d.splice(-1, 1, h / (1 << u));
- let f = s,
- g = o,
- p = await a;
- for (const e of d) {
- const t = f,
- a = g;
- f = Math.floor(f / e) - 1;
- g = Math.floor(g / e) - 1;
- const r = new OffscreenCanvas(f, g);
- r.getContext('2d').drawImage(p, 0, 0, t, a, 0, 0, f, g);
- p = r.transferToImageBitmap();
- }
- n.data = null;
- n.bitmap = p;
- n.width = f;
- n.height = g;
- return n;
- }
- _encodeBMP() {
- const { width: e, height: t, kind: a } = this._imgData;
- let i,
- n = this._imgData.data,
- s = new Uint8Array(0),
- o = s,
- c = 0;
- switch (a) {
- case r.ImageKind.GRAYSCALE_1BPP: {
- i = 1;
- s = new Uint8Array(
- this._isMask
- ? [255, 255, 255, 255, 0, 0, 0, 0]
- : [0, 0, 0, 0, 255, 255, 255, 255],
- );
- const a = (e + 7) >> 3,
- r = (a + 3) & -4;
- if (a !== r) {
- const e = new Uint8Array(r * t);
- let i = 0;
- for (let s = 0, o = t * a; s < o; s += a, i += r)
- e.set(n.subarray(s, s + a), i);
- n = e;
- }
- break;
- }
- case r.ImageKind.RGB_24BPP:
- i = 24;
- if (3 & e) {
- const a = 3 * e,
- r = (a + 3) & -4,
- i = r - a,
- s = new Uint8Array(r * t);
- let o = 0;
- for (let e = 0, r = t * a; e < r; e += a) {
- const t = n.subarray(e, e + a);
- for (let e = 0; e < a; e += 3) {
- s[o++] = t[e + 2];
- s[o++] = t[e + 1];
- s[o++] = t[e];
- }
- o += i;
- }
- n = s;
- } else
- for (let e = 0, t = n.length; e < t; e += 3) {
- const t = n[e];
- n[e] = n[e + 2];
- n[e + 2] = t;
- }
- break;
- case r.ImageKind.RGBA_32BPP:
- i = 32;
- c = 3;
- o = new Uint8Array(68);
- const a = new DataView(o.buffer);
- if (r.FeatureTest.isLittleEndian) {
- a.setUint32(0, 255, !0);
- a.setUint32(4, 65280, !0);
- a.setUint32(8, 16711680, !0);
- a.setUint32(12, 4278190080, !0);
- } else {
- a.setUint32(0, 4278190080, !0);
- a.setUint32(4, 16711680, !0);
- a.setUint32(8, 65280, !0);
- a.setUint32(12, 255, !0);
- }
- break;
- default:
- throw new Error('invalid format');
- }
- let l = 0;
- const h = 40 + o.length,
- u = 14 + h + s.length + n.length,
- d = new Uint8Array(u),
- f = new DataView(d.buffer);
- f.setUint16(l, 19778, !0);
- l += 2;
- f.setUint32(l, u, !0);
- l += 4;
- f.setUint32(l, 0, !0);
- l += 4;
- f.setUint32(l, 14 + h + s.length, !0);
- l += 4;
- f.setUint32(l, h, !0);
- l += 4;
- f.setInt32(l, e, !0);
- l += 4;
- f.setInt32(l, -t, !0);
- l += 4;
- f.setUint16(l, 1, !0);
- l += 2;
- f.setUint16(l, i, !0);
- l += 2;
- f.setUint32(l, c, !0);
- l += 4;
- f.setUint32(l, 0, !0);
- l += 4;
- f.setInt32(l, 0, !0);
- l += 4;
- f.setInt32(l, 0, !0);
- l += 4;
- f.setUint32(l, s.length / 4, !0);
- l += 4;
- f.setUint32(l, 0, !0);
- l += 4;
- d.set(o, l);
- l += o.length;
- d.set(s, l);
- l += s.length;
- d.set(n, l);
- return d;
- }
- }
- t.ImageResizer = ImageResizer;
- ImageResizer._goodSquareLength = 2048;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.MurmurHash3_64 = void 0;
- var r = a(2);
- const i = 3285377520,
- n = 4294901760,
- s = 65535;
- t.MurmurHash3_64 = class MurmurHash3_64 {
- constructor(e) {
- this.h1 = e ? 4294967295 & e : i;
- this.h2 = e ? 4294967295 & e : i;
- }
- update(e) {
- let t, a;
- if ('string' == typeof e) {
- t = new Uint8Array(2 * e.length);
- a = 0;
- for (let r = 0, i = e.length; r < i; r++) {
- const i = e.charCodeAt(r);
- if (i <= 255) t[a++] = i;
- else {
- t[a++] = i >>> 8;
- t[a++] = 255 & i;
- }
- }
- } else {
- if (!(0, r.isArrayBuffer)(e))
- throw new Error(
- 'Wrong data format in MurmurHash3_64_update. Input must be a string or array.',
- );
- t = e.slice();
- a = t.byteLength;
- }
- const i = a >> 2,
- o = a - 4 * i,
- c = new Uint32Array(t.buffer, 0, i);
- let l = 0,
- h = 0,
- u = this.h1,
- d = this.h2;
- const f = 3432918353,
- g = 461845907,
- p = 11601,
- m = 13715;
- for (let e = 0; e < i; e++)
- if (1 & e) {
- l = c[e];
- l = ((l * f) & n) | ((l * p) & s);
- l = (l << 15) | (l >>> 17);
- l = ((l * g) & n) | ((l * m) & s);
- u ^= l;
- u = (u << 13) | (u >>> 19);
- u = 5 * u + 3864292196;
- } else {
- h = c[e];
- h = ((h * f) & n) | ((h * p) & s);
- h = (h << 15) | (h >>> 17);
- h = ((h * g) & n) | ((h * m) & s);
- d ^= h;
- d = (d << 13) | (d >>> 19);
- d = 5 * d + 3864292196;
- }
- l = 0;
- switch (o) {
- case 3:
- l ^= t[4 * i + 2] << 16;
- case 2:
- l ^= t[4 * i + 1] << 8;
- case 1:
- l ^= t[4 * i];
- l = ((l * f) & n) | ((l * p) & s);
- l = (l << 15) | (l >>> 17);
- l = ((l * g) & n) | ((l * m) & s);
- 1 & i ? (u ^= l) : (d ^= l);
- }
- this.h1 = u;
- this.h2 = d;
- }
- hexdigest() {
- let e = this.h1,
- t = this.h2;
- e ^= t >>> 1;
- e = ((3981806797 * e) & n) | ((36045 * e) & s);
- t = ((4283543511 * t) & n) | (((2950163797 * ((t << 16) | (e >>> 16))) & n) >>> 16);
- e ^= t >>> 1;
- e = ((444984403 * e) & n) | ((60499 * e) & s);
- t = ((3301882366 * t) & n) | (((3120437893 * ((t << 16) | (e >>> 16))) & n) >>> 16);
- e ^= t >>> 1;
- return (
- (e >>> 0).toString(16).padStart(8, '0') + (t >>> 0).toString(16).padStart(8, '0')
- );
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.OperatorList = void 0;
- var r = a(2);
- function addState(e, t, a, r, i) {
- let n = e;
- for (let e = 0, a = t.length - 1; e < a; e++) {
- const a = t[e];
- n = n[a] ||= [];
- }
- n[t.at(-1)] = { checkFn: a, iterateFn: r, processFn: i };
- }
- const i = [];
- addState(
- i,
- [r.OPS.save, r.OPS.transform, r.OPS.paintInlineImageXObject, r.OPS.restore],
- null,
- function iterateInlineImageGroup(e, t) {
- const a = e.fnArray,
- i = (t - (e.iCurr - 3)) % 4;
- switch (i) {
- case 0:
- return a[t] === r.OPS.save;
- case 1:
- return a[t] === r.OPS.transform;
- case 2:
- return a[t] === r.OPS.paintInlineImageXObject;
- case 3:
- return a[t] === r.OPS.restore;
- }
- throw new Error(`iterateInlineImageGroup - invalid pos: ${i}`);
- },
- function foundInlineImageGroup(e, t) {
- const a = e.fnArray,
- i = e.argsArray,
- n = e.iCurr,
- s = n - 3,
- o = n - 2,
- c = n - 1,
- l = Math.min(Math.floor((t - s) / 4), 200);
- if (l < 10) return t - ((t - s) % 4);
- let h = 0;
- const u = [];
- let d = 0,
- f = 1,
- g = 1;
- for (let e = 0; e < l; e++) {
- const t = i[o + (e << 2)],
- a = i[c + (e << 2)][0];
- if (f + a.width > 1e3) {
- h = Math.max(h, f);
- g += d + 2;
- f = 0;
- d = 0;
- }
- u.push({ transform: t, x: f, y: g, w: a.width, h: a.height });
- f += a.width + 2;
- d = Math.max(d, a.height);
- }
- const p = Math.max(h, f) + 1,
- m = g + d + 1,
- b = new Uint8Array(p * m * 4),
- y = p << 2;
- for (let e = 0; e < l; e++) {
- const t = i[c + (e << 2)][0].data,
- a = u[e].w << 2;
- let r = 0,
- n = (u[e].x + u[e].y * p) << 2;
- b.set(t.subarray(0, a), n - y);
- for (let i = 0, s = u[e].h; i < s; i++) {
- b.set(t.subarray(r, r + a), n);
- r += a;
- n += y;
- }
- b.set(t.subarray(r - a, r), n);
- for (; n >= 0; ) {
- t[n - 4] = t[n];
- t[n - 3] = t[n + 1];
- t[n - 2] = t[n + 2];
- t[n - 1] = t[n + 3];
- t[n + a] = t[n + a - 4];
- t[n + a + 1] = t[n + a - 3];
- t[n + a + 2] = t[n + a - 2];
- t[n + a + 3] = t[n + a - 1];
- n -= y;
- }
- }
- const w = { width: p, height: m };
- if (e.isOffscreenCanvasSupported) {
- const e = new OffscreenCanvas(p, m);
- e.getContext('2d').putImageData(
- new ImageData(new Uint8ClampedArray(b.buffer), p, m),
- 0,
- 0,
- );
- w.bitmap = e.transferToImageBitmap();
- w.data = null;
- } else {
- w.kind = r.ImageKind.RGBA_32BPP;
- w.data = b;
- }
- a.splice(s, 4 * l, r.OPS.paintInlineImageXObjectGroup);
- i.splice(s, 4 * l, [w, u]);
- return s + 1;
- },
- );
- addState(
- i,
- [r.OPS.save, r.OPS.transform, r.OPS.paintImageMaskXObject, r.OPS.restore],
- null,
- function iterateImageMaskGroup(e, t) {
- const a = e.fnArray,
- i = (t - (e.iCurr - 3)) % 4;
- switch (i) {
- case 0:
- return a[t] === r.OPS.save;
- case 1:
- return a[t] === r.OPS.transform;
- case 2:
- return a[t] === r.OPS.paintImageMaskXObject;
- case 3:
- return a[t] === r.OPS.restore;
- }
- throw new Error(`iterateImageMaskGroup - invalid pos: ${i}`);
- },
- function foundImageMaskGroup(e, t) {
- const a = e.fnArray,
- i = e.argsArray,
- n = e.iCurr,
- s = n - 3,
- o = n - 2,
- c = n - 1;
- let l = Math.floor((t - s) / 4);
- if (l < 10) return t - ((t - s) % 4);
- let h,
- u,
- d = !1;
- const f = i[c][0],
- g = i[o][0],
- p = i[o][1],
- m = i[o][2],
- b = i[o][3];
- if (p === m) {
- d = !0;
- h = o + 4;
- let e = c + 4;
- for (let t = 1; t < l; t++, h += 4, e += 4) {
- u = i[h];
- if (i[e][0] !== f || u[0] !== g || u[1] !== p || u[2] !== m || u[3] !== b) {
- t < 10 ? (d = !1) : (l = t);
- break;
- }
- }
- }
- if (d) {
- l = Math.min(l, 1e3);
- const e = new Float32Array(2 * l);
- h = o;
- for (let t = 0; t < l; t++, h += 4) {
- u = i[h];
- e[t << 1] = u[4];
- e[1 + (t << 1)] = u[5];
- }
- a.splice(s, 4 * l, r.OPS.paintImageMaskXObjectRepeat);
- i.splice(s, 4 * l, [f, g, p, m, b, e]);
- } else {
- l = Math.min(l, 100);
- const e = [];
- for (let t = 0; t < l; t++) {
- u = i[o + (t << 2)];
- const a = i[c + (t << 2)][0];
- e.push({
- data: a.data,
- width: a.width,
- height: a.height,
- interpolate: a.interpolate,
- count: a.count,
- transform: u,
- });
- }
- a.splice(s, 4 * l, r.OPS.paintImageMaskXObjectGroup);
- i.splice(s, 4 * l, [e]);
- }
- return s + 1;
- },
- );
- addState(
- i,
- [r.OPS.save, r.OPS.transform, r.OPS.paintImageXObject, r.OPS.restore],
- function (e) {
- const t = e.argsArray,
- a = e.iCurr - 2;
- return 0 === t[a][1] && 0 === t[a][2];
- },
- function iterateImageGroup(e, t) {
- const a = e.fnArray,
- i = e.argsArray,
- n = (t - (e.iCurr - 3)) % 4;
- switch (n) {
- case 0:
- return a[t] === r.OPS.save;
- case 1:
- if (a[t] !== r.OPS.transform) return !1;
- const n = e.iCurr - 2,
- s = i[n][0],
- o = i[n][3];
- return i[t][0] === s && 0 === i[t][1] && 0 === i[t][2] && i[t][3] === o;
- case 2:
- if (a[t] !== r.OPS.paintImageXObject) return !1;
- const c = i[e.iCurr - 1][0];
- return i[t][0] === c;
- case 3:
- return a[t] === r.OPS.restore;
- }
- throw new Error(`iterateImageGroup - invalid pos: ${n}`);
- },
- function (e, t) {
- const a = e.fnArray,
- i = e.argsArray,
- n = e.iCurr,
- s = n - 3,
- o = n - 2,
- c = i[n - 1][0],
- l = i[o][0],
- h = i[o][3],
- u = Math.min(Math.floor((t - s) / 4), 1e3);
- if (u < 3) return t - ((t - s) % 4);
- const d = new Float32Array(2 * u);
- let f = o;
- for (let e = 0; e < u; e++, f += 4) {
- const t = i[f];
- d[e << 1] = t[4];
- d[1 + (e << 1)] = t[5];
- }
- const g = [c, l, h, d];
- a.splice(s, 4 * u, r.OPS.paintImageXObjectRepeat);
- i.splice(s, 4 * u, g);
- return s + 1;
- },
- );
- addState(
- i,
- [r.OPS.beginText, r.OPS.setFont, r.OPS.setTextMatrix, r.OPS.showText, r.OPS.endText],
- null,
- function iterateShowTextGroup(e, t) {
- const a = e.fnArray,
- i = e.argsArray,
- n = (t - (e.iCurr - 4)) % 5;
- switch (n) {
- case 0:
- return a[t] === r.OPS.beginText;
- case 1:
- return a[t] === r.OPS.setFont;
- case 2:
- return a[t] === r.OPS.setTextMatrix;
- case 3:
- if (a[t] !== r.OPS.showText) return !1;
- const n = e.iCurr - 3,
- s = i[n][0],
- o = i[n][1];
- return i[t][0] === s && i[t][1] === o;
- case 4:
- return a[t] === r.OPS.endText;
- }
- throw new Error(`iterateShowTextGroup - invalid pos: ${n}`);
- },
- function (e, t) {
- const a = e.fnArray,
- r = e.argsArray,
- i = e.iCurr,
- n = i - 4,
- s = i - 3,
- o = i - 2,
- c = i - 1,
- l = i,
- h = r[s][0],
- u = r[s][1];
- let d = Math.min(Math.floor((t - n) / 5), 1e3);
- if (d < 3) return t - ((t - n) % 5);
- let f = n;
- if (
- n >= 4 &&
- a[n - 4] === a[s] &&
- a[n - 3] === a[o] &&
- a[n - 2] === a[c] &&
- a[n - 1] === a[l] &&
- r[n - 4][0] === h &&
- r[n - 4][1] === u
- ) {
- d++;
- f -= 5;
- }
- let g = f + 4;
- for (let e = 1; e < d; e++) {
- a.splice(g, 3);
- r.splice(g, 3);
- g += 2;
- }
- return g + 1;
- },
- );
- class NullOptimizer {
- constructor(e) {
- this.queue = e;
- }
- _optimize() {}
- push(e, t) {
- this.queue.fnArray.push(e);
- this.queue.argsArray.push(t);
- this._optimize();
- }
- flush() {}
- reset() {}
- }
- class QueueOptimizer extends NullOptimizer {
- constructor(e) {
- super(e);
- this.state = null;
- this.context = {
- iCurr: 0,
- fnArray: e.fnArray,
- argsArray: e.argsArray,
- isOffscreenCanvasSupported: !1,
- };
- this.match = null;
- this.lastProcessed = 0;
- }
- set isOffscreenCanvasSupported(e) {
- this.context.isOffscreenCanvasSupported = e;
- }
- _optimize() {
- const e = this.queue.fnArray;
- let t = this.lastProcessed,
- a = e.length,
- r = this.state,
- n = this.match;
- if (!r && !n && t + 1 === a && !i[e[t]]) {
- this.lastProcessed = a;
- return;
- }
- const s = this.context;
- for (; t < a; ) {
- if (n) {
- if ((0, n.iterateFn)(s, t)) {
- t++;
- continue;
- }
- t = (0, n.processFn)(s, t + 1);
- a = e.length;
- n = null;
- r = null;
- if (t >= a) break;
- }
- r = (r || i)[e[t]];
- if (r && !Array.isArray(r)) {
- s.iCurr = t;
- t++;
- if (!r.checkFn || (0, r.checkFn)(s)) {
- n = r;
- r = null;
- } else r = null;
- } else t++;
- }
- this.state = r;
- this.match = n;
- this.lastProcessed = t;
- }
- flush() {
- for (; this.match; ) {
- const e = this.queue.fnArray.length;
- this.lastProcessed = (0, this.match.processFn)(this.context, e);
- this.match = null;
- this.state = null;
- this._optimize();
- }
- }
- reset() {
- this.state = null;
- this.match = null;
- this.lastProcessed = 0;
- }
- }
- class OperatorList {
- static CHUNK_SIZE = 1e3;
- static CHUNK_SIZE_ABOUT = this.CHUNK_SIZE - 5;
- constructor(e = 0, t) {
- this._streamSink = t;
- this.fnArray = [];
- this.argsArray = [];
- !t || e & r.RenderingIntentFlag.OPLIST
- ? (this.optimizer = new NullOptimizer(this))
- : (this.optimizer = new QueueOptimizer(this));
- this.dependencies = new Set();
- this._totalLength = 0;
- this.weight = 0;
- this._resolved = t ? null : Promise.resolve();
- }
- set isOffscreenCanvasSupported(e) {
- this.optimizer.isOffscreenCanvasSupported = e;
- }
- get length() {
- return this.argsArray.length;
- }
- get ready() {
- return this._resolved || this._streamSink.ready;
- }
- get totalLength() {
- return this._totalLength + this.length;
- }
- addOp(e, t) {
- this.optimizer.push(e, t);
- this.weight++;
- this._streamSink &&
- (this.weight >= OperatorList.CHUNK_SIZE ||
- (this.weight >= OperatorList.CHUNK_SIZE_ABOUT &&
- (e === r.OPS.restore || e === r.OPS.endText))) &&
- this.flush();
- }
- addImageOps(e, t, a) {
- void 0 !== a && this.addOp(r.OPS.beginMarkedContentProps, ['OC', a]);
- this.addOp(e, t);
- void 0 !== a && this.addOp(r.OPS.endMarkedContent, []);
- }
- addDependency(e) {
- if (!this.dependencies.has(e)) {
- this.dependencies.add(e);
- this.addOp(r.OPS.dependency, [e]);
- }
- }
- addDependencies(e) {
- for (const t of e) this.addDependency(t);
- }
- addOpList(e) {
- if (e instanceof OperatorList) {
- for (const t of e.dependencies) this.dependencies.add(t);
- for (let t = 0, a = e.length; t < a; t++) this.addOp(e.fnArray[t], e.argsArray[t]);
- } else (0, r.warn)('addOpList - ignoring invalid "opList" parameter.');
- }
- getIR() {
- return { fnArray: this.fnArray, argsArray: this.argsArray, length: this.length };
- }
- get _transfers() {
- const e = [],
- { fnArray: t, argsArray: a, length: i } = this;
- for (let n = 0; n < i; n++)
- switch (t[n]) {
- case r.OPS.paintInlineImageXObject:
- case r.OPS.paintInlineImageXObjectGroup:
- case r.OPS.paintImageMaskXObject:
- const t = a[n][0];
- !t.cached &&
- t.data &&
- t.data.buffer instanceof ArrayBuffer &&
- e.push(t.data.buffer);
- }
- return e;
- }
- flush(e = !1, t = null) {
- this.optimizer.flush();
- const a = this.length;
- this._totalLength += a;
- this._streamSink.enqueue(
- {
- fnArray: this.fnArray,
- argsArray: this.argsArray,
- lastChunk: e,
- separateAnnots: t,
- length: a,
- },
- 1,
- this._transfers,
- );
- this.dependencies.clear();
- this.fnArray.length = 0;
- this.argsArray.length = 0;
- this.weight = 0;
- this.optimizer.reset();
- }
- }
- t.OperatorList = OperatorList;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.PDFImage = void 0;
- var r = a(2),
- i = a(28),
- n = a(5),
- s = a(12),
- o = a(18),
- c = a(61),
- l = a(26),
- h = a(30),
- u = a(4);
- function decodeAndClamp(e, t, a, r) {
- (e = t + e * a) < 0 ? (e = 0) : e > r && (e = r);
- return e;
- }
- function resizeImageMask(e, t, a, r, i, n) {
- const s = i * n;
- let o;
- o = t <= 8 ? new Uint8Array(s) : t <= 16 ? new Uint16Array(s) : new Uint32Array(s);
- const c = a / i,
- l = r / n;
- let h,
- u,
- d,
- f,
- g = 0;
- const p = new Uint16Array(i),
- m = a;
- for (h = 0; h < i; h++) p[h] = Math.floor(h * c);
- for (h = 0; h < n; h++) {
- d = Math.floor(h * l) * m;
- for (u = 0; u < i; u++) {
- f = d + p[u];
- o[g++] = e[f];
- }
- }
- return o;
- }
- class PDFImage {
- constructor({
- xref: e,
- res: t,
- image: a,
- isInline: i = !1,
- smask: o = null,
- mask: c = null,
- isMask: l = !1,
- pdfFunctionFactory: d,
- localColorSpaceCache: f,
- }) {
- this.image = a;
- const g = a.dict,
- p = g.get('F', 'Filter');
- let m;
- if (p instanceof u.Name) m = p.name;
- else if (Array.isArray(p)) {
- const t = e.fetchIfRef(p[0]);
- t instanceof u.Name && (m = t.name);
- }
- switch (m) {
- case 'JPXDecode':
- const e = new h.JpxImage();
- e.parseImageProperties(a.stream);
- a.stream.reset();
- a.width = e.width;
- a.height = e.height;
- a.bitsPerComponent = e.bitsPerComponent;
- a.numComps = e.componentsCount;
- break;
- case 'JBIG2Decode':
- a.bitsPerComponent = 1;
- a.numComps = 1;
- }
- let b = g.get('W', 'Width'),
- y = g.get('H', 'Height');
- if (
- Number.isInteger(a.width) &&
- a.width > 0 &&
- Number.isInteger(a.height) &&
- a.height > 0 &&
- (a.width !== b || a.height !== y)
- ) {
- (0, r.warn)(
- 'PDFImage - using the Width/Height of the image data, rather than the image dictionary.',
- );
- b = a.width;
- y = a.height;
- }
- if (b < 1 || y < 1)
- throw new r.FormatError(`Invalid image width: ${b} or height: ${y}`);
- this.width = b;
- this.height = y;
- this.interpolate = g.get('I', 'Interpolate');
- this.imageMask = g.get('IM', 'ImageMask') || !1;
- this.matte = g.get('Matte') || !1;
- let w = a.bitsPerComponent;
- if (!w) {
- w = g.get('BPC', 'BitsPerComponent');
- if (!w) {
- if (!this.imageMask)
- throw new r.FormatError(
- `Bits per component missing in image: ${this.imageMask}`,
- );
- w = 1;
- }
- }
- this.bpc = w;
- if (!this.imageMask) {
- let n = g.getRaw('CS') || g.getRaw('ColorSpace');
- if (!n) {
- (0, r.info)('JPX images (which do not require color spaces)');
- switch (a.numComps) {
- case 1:
- n = u.Name.get('DeviceGray');
- break;
- case 3:
- n = u.Name.get('DeviceRGB');
- break;
- case 4:
- n = u.Name.get('DeviceCMYK');
- break;
- default:
- throw new Error(
- `JPX images with ${a.numComps} color components not supported.`,
- );
- }
- }
- this.colorSpace = s.ColorSpace.parse({
- cs: n,
- xref: e,
- resources: i ? t : null,
- pdfFunctionFactory: d,
- localColorSpaceCache: f,
- });
- this.numComps = this.colorSpace.numComps;
- }
- this.decode = g.getArray('D', 'Decode');
- this.needsDecode = !1;
- if (
- this.decode &&
- ((this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, w)) ||
- (l && !s.ColorSpace.isDefaultDecode(this.decode, 1)))
- ) {
- this.needsDecode = !0;
- const e = (1 << w) - 1;
- this.decodeCoefficients = [];
- this.decodeAddends = [];
- const t = this.colorSpace && 'Indexed' === this.colorSpace.name;
- for (let a = 0, r = 0; a < this.decode.length; a += 2, ++r) {
- const i = this.decode[a],
- n = this.decode[a + 1];
- this.decodeCoefficients[r] = t ? (n - i) / e : n - i;
- this.decodeAddends[r] = t ? i : e * i;
- }
- }
- if (o)
- this.smask = new PDFImage({
- xref: e,
- res: t,
- image: o,
- isInline: i,
- pdfFunctionFactory: d,
- localColorSpaceCache: f,
- });
- else if (c)
- if (c instanceof n.BaseStream) {
- c.dict.get('IM', 'ImageMask')
- ? (this.mask = new PDFImage({
- xref: e,
- res: t,
- image: c,
- isInline: i,
- isMask: !0,
- pdfFunctionFactory: d,
- localColorSpaceCache: f,
- }))
- : (0, r.warn)('Ignoring /Mask in image without /ImageMask.');
- } else this.mask = c;
- }
- static async buildImage({
- xref: e,
- res: t,
- image: a,
- isInline: i = !1,
- pdfFunctionFactory: s,
- localColorSpaceCache: o,
- }) {
- const c = a;
- let l = null,
- h = null;
- const u = a.dict.get('SMask'),
- d = a.dict.get('Mask');
- u
- ? u instanceof n.BaseStream
- ? (l = u)
- : (0, r.warn)('Unsupported /SMask format.')
- : d &&
- (d instanceof n.BaseStream || Array.isArray(d)
- ? (h = d)
- : (0, r.warn)('Unsupported /Mask format.'));
- return new PDFImage({
- xref: e,
- res: t,
- image: c,
- isInline: i,
- smask: l,
- mask: h,
- pdfFunctionFactory: s,
- localColorSpaceCache: o,
- });
- }
- static createRawMask({
- imgArray: e,
- width: t,
- height: a,
- imageIsFromDecodeStream: r,
- inverseDecode: i,
- interpolate: n,
- }) {
- const s = ((t + 7) >> 3) * a,
- o = e.byteLength;
- let c, l;
- if (!r || (i && !(s === o)))
- if (i) {
- c = new Uint8Array(s);
- c.set(e);
- c.fill(255, o);
- } else c = new Uint8Array(e);
- else c = e;
- if (i) for (l = 0; l < o; l++) c[l] ^= 255;
- return { data: c, width: t, height: a, interpolate: n };
- }
- static async createMask({
- imgArray: e,
- width: t,
- height: a,
- imageIsFromDecodeStream: n,
- inverseDecode: s,
- interpolate: o,
- isOffscreenCanvasSupported: l = !1,
- }) {
- const h = 1 === t && 1 === a && s === (0 === e.length || !!(128 & e[0]));
- if (h) return { isSingleOpaquePixel: h };
- if (l) {
- if (c.ImageResizer.needsToBeResized(t, a)) {
- const n = new Uint8ClampedArray(t * a * 4);
- (0, i.convertBlackAndWhiteToRGBA)({
- src: e,
- dest: n,
- width: t,
- height: a,
- nonBlackColor: 0,
- inverseDecode: s,
- });
- return c.ImageResizer.createImage({
- kind: r.ImageKind.RGBA_32BPP,
- data: n,
- width: t,
- height: a,
- interpolate: o,
- });
- }
- const n = new OffscreenCanvas(t, a),
- l = n.getContext('2d'),
- h = l.createImageData(t, a);
- (0, i.convertBlackAndWhiteToRGBA)({
- src: e,
- dest: h.data,
- width: t,
- height: a,
- nonBlackColor: 0,
- inverseDecode: s,
- });
- l.putImageData(h, 0, 0);
- return {
- data: null,
- width: t,
- height: a,
- interpolate: o,
- bitmap: n.transferToImageBitmap(),
- };
- }
- return this.createRawMask({
- imgArray: e,
- width: t,
- height: a,
- inverseDecode: s,
- imageIsFromDecodeStream: n,
- interpolate: o,
- });
- }
- get drawWidth() {
- return Math.max(
- this.width,
- (this.smask && this.smask.width) || 0,
- (this.mask && this.mask.width) || 0,
- );
- }
- get drawHeight() {
- return Math.max(
- this.height,
- (this.smask && this.smask.height) || 0,
- (this.mask && this.mask.height) || 0,
- );
- }
- decodeBuffer(e) {
- const t = this.bpc,
- a = this.numComps,
- r = this.decodeAddends,
- i = this.decodeCoefficients,
- n = (1 << t) - 1;
- let s, o;
- if (1 === t) {
- for (s = 0, o = e.length; s < o; s++) e[s] = +!e[s];
- return;
- }
- let c = 0;
- for (s = 0, o = this.width * this.height; s < o; s++)
- for (let t = 0; t < a; t++) {
- e[c] = decodeAndClamp(e[c], r[t], i[t], n);
- c++;
- }
- }
- getComponents(e) {
- const t = this.bpc;
- if (8 === t) return e;
- const a = this.width,
- r = this.height,
- i = this.numComps,
- n = a * r * i;
- let s,
- o = 0;
- s = t <= 8 ? new Uint8Array(n) : t <= 16 ? new Uint16Array(n) : new Uint32Array(n);
- const c = a * i,
- l = (1 << t) - 1;
- let h,
- u,
- d = 0;
- if (1 === t) {
- let t, a, i;
- for (let n = 0; n < r; n++) {
- a = d + (-8 & c);
- i = d + c;
- for (; d < a; ) {
- u = e[o++];
- s[d] = (u >> 7) & 1;
- s[d + 1] = (u >> 6) & 1;
- s[d + 2] = (u >> 5) & 1;
- s[d + 3] = (u >> 4) & 1;
- s[d + 4] = (u >> 3) & 1;
- s[d + 5] = (u >> 2) & 1;
- s[d + 6] = (u >> 1) & 1;
- s[d + 7] = 1 & u;
- d += 8;
- }
- if (d < i) {
- u = e[o++];
- t = 128;
- for (; d < i; ) {
- s[d++] = +!!(u & t);
- t >>= 1;
- }
- }
- }
- } else {
- let a = 0;
- u = 0;
- for (d = 0, h = n; d < h; ++d) {
- if (d % c == 0) {
- u = 0;
- a = 0;
- }
- for (; a < t; ) {
- u = (u << 8) | e[o++];
- a += 8;
- }
- const r = a - t;
- let i = u >> r;
- i < 0 ? (i = 0) : i > l && (i = l);
- s[d] = i;
- u &= (1 << r) - 1;
- a = r;
- }
- }
- return s;
- }
- fillOpacity(e, t, a, i, n) {
- const s = this.smask,
- o = this.mask;
- let c, l, h, u, d, f;
- if (s) {
- l = s.width;
- h = s.height;
- c = new Uint8ClampedArray(l * h);
- s.fillGrayBuffer(c);
- (l === t && h === a) || (c = resizeImageMask(c, s.bpc, l, h, t, a));
- } else if (o)
- if (o instanceof PDFImage) {
- l = o.width;
- h = o.height;
- c = new Uint8ClampedArray(l * h);
- o.numComps = 1;
- o.fillGrayBuffer(c);
- for (u = 0, d = l * h; u < d; ++u) c[u] = 255 - c[u];
- (l === t && h === a) || (c = resizeImageMask(c, o.bpc, l, h, t, a));
- } else {
- if (!Array.isArray(o)) throw new r.FormatError('Unknown mask format.');
- {
- c = new Uint8ClampedArray(t * a);
- const e = this.numComps;
- for (u = 0, d = t * a; u < d; ++u) {
- let t = 0;
- const a = u * e;
- for (f = 0; f < e; ++f) {
- const e = n[a + f],
- r = 2 * f;
- if (e < o[r] || e > o[r + 1]) {
- t = 255;
- break;
- }
- }
- c[u] = t;
- }
- }
- }
- if (c) for (u = 0, f = 3, d = t * i; u < d; ++u, f += 4) e[f] = c[u];
- else for (u = 0, f = 3, d = t * i; u < d; ++u, f += 4) e[f] = 255;
- }
- undoPreblend(e, t, a) {
- const r = this.smask && this.smask.matte;
- if (!r) return;
- const i = this.colorSpace.getRgb(r, 0),
- n = i[0],
- s = i[1],
- o = i[2],
- c = t * a * 4;
- for (let t = 0; t < c; t += 4) {
- const a = e[t + 3];
- if (0 === a) {
- e[t] = 255;
- e[t + 1] = 255;
- e[t + 2] = 255;
- continue;
- }
- const r = 255 / a;
- e[t] = (e[t] - n) * r + n;
- e[t + 1] = (e[t + 1] - s) * r + s;
- e[t + 2] = (e[t + 2] - o) * r + o;
- }
- }
- async createImageData(e = !1, t = !1) {
- const a = this.drawWidth,
- i = this.drawHeight,
- n = { width: a, height: i, interpolate: this.interpolate, kind: 0, data: null },
- s = this.numComps,
- o = this.width,
- h = this.height,
- u = this.bpc,
- d = (o * s * u + 7) >> 3,
- f = t && c.ImageResizer.needsToBeResized(a, i);
- if (!e) {
- let e;
- 'DeviceGray' === this.colorSpace.name && 1 === u
- ? (e = r.ImageKind.GRAYSCALE_1BPP)
- : 'DeviceRGB' !== this.colorSpace.name ||
- 8 !== u ||
- this.needsDecode ||
- (e = r.ImageKind.RGB_24BPP);
- if (e && !this.smask && !this.mask && a === o && i === h) {
- const s = this.getImageBytes(h * d, {});
- if (t)
- return f
- ? c.ImageResizer.createImage(
- { data: s, kind: e, width: a, height: i, interpolate: this.interpolate },
- this.needsDecode,
- )
- : this.createBitmap(e, o, h, s);
- n.kind = e;
- n.data = s;
- if (this.needsDecode) {
- (0, r.assert)(
- e === r.ImageKind.GRAYSCALE_1BPP,
- 'PDFImage.createImageData: The image must be grayscale.',
- );
- const t = n.data;
- for (let e = 0, a = t.length; e < a; e++) t[e] ^= 255;
- }
- return n;
- }
- if (
- this.image instanceof l.JpegStream &&
- !this.smask &&
- !this.mask &&
- !this.needsDecode
- ) {
- let e = h * d;
- if (t && !f) {
- let t = !1;
- switch (this.colorSpace.name) {
- case 'DeviceGray':
- e *= 4;
- t = !0;
- break;
- case 'DeviceRGB':
- e = (e / 3) * 4;
- t = !0;
- break;
- case 'DeviceCMYK':
- t = !0;
- }
- if (t) {
- const t = this.getImageBytes(e, {
- drawWidth: a,
- drawHeight: i,
- forceRGBA: !0,
- });
- return this.createBitmap(r.ImageKind.RGBA_32BPP, a, i, t);
- }
- } else
- switch (this.colorSpace.name) {
- case 'DeviceGray':
- e *= 3;
- case 'DeviceRGB':
- case 'DeviceCMYK':
- n.kind = r.ImageKind.RGB_24BPP;
- n.data = this.getImageBytes(e, {
- drawWidth: a,
- drawHeight: i,
- forceRGB: !0,
- });
- return f ? c.ImageResizer.createImage(n) : n;
- }
- }
- }
- const g = this.getImageBytes(h * d, { internal: !0 }),
- p = 0 | (((g.length / d) * i) / h),
- m = this.getComponents(g);
- let b, y, w, S, x, C;
- if (t && !f) {
- w = new OffscreenCanvas(a, i);
- S = w.getContext('2d');
- x = S.createImageData(a, i);
- C = x.data;
- }
- n.kind = r.ImageKind.RGBA_32BPP;
- if (e || this.smask || this.mask) {
- (t && !f) || (C = new Uint8ClampedArray(a * i * 4));
- b = 1;
- y = !0;
- this.fillOpacity(C, a, i, p, m);
- } else {
- if (!t || f) {
- n.kind = r.ImageKind.RGB_24BPP;
- C = new Uint8ClampedArray(a * i * 3);
- b = 0;
- } else {
- new Uint32Array(C.buffer).fill(r.FeatureTest.isLittleEndian ? 4278190080 : 255);
- b = 1;
- }
- y = !1;
- }
- this.needsDecode && this.decodeBuffer(m);
- this.colorSpace.fillRgb(C, o, h, a, i, p, u, m, b);
- y && this.undoPreblend(C, a, p);
- if (t && !f) {
- S.putImageData(x, 0, 0);
- return {
- data: null,
- width: a,
- height: i,
- bitmap: w.transferToImageBitmap(),
- interpolate: this.interpolate,
- };
- }
- n.data = C;
- return f ? c.ImageResizer.createImage(n) : n;
- }
- fillGrayBuffer(e) {
- const t = this.numComps;
- if (1 !== t) throw new r.FormatError(`Reading gray scale from a color image: ${t}`);
- const a = this.width,
- i = this.height,
- n = this.bpc,
- s = (a * t * n + 7) >> 3,
- o = this.getImageBytes(i * s, { internal: !0 }),
- c = this.getComponents(o);
- let l, h;
- if (1 === n) {
- h = a * i;
- if (this.needsDecode) for (l = 0; l < h; ++l) e[l] = (c[l] - 1) & 255;
- else for (l = 0; l < h; ++l) e[l] = 255 & -c[l];
- return;
- }
- this.needsDecode && this.decodeBuffer(c);
- h = a * i;
- const u = 255 / ((1 << n) - 1);
- for (l = 0; l < h; ++l) e[l] = u * c[l];
- }
- createBitmap(e, t, a, n) {
- const s = new OffscreenCanvas(t, a),
- o = s.getContext('2d');
- let c;
- if (e === r.ImageKind.RGBA_32BPP) c = new ImageData(n, t, a);
- else {
- c = o.createImageData(t, a);
- (0, i.convertToRGBA)({
- kind: e,
- src: n,
- dest: new Uint32Array(c.data.buffer),
- width: t,
- height: a,
- inverseDecode: this.needsDecode,
- });
- }
- o.putImageData(c, 0, 0);
- return {
- data: null,
- width: t,
- height: a,
- bitmap: s.transferToImageBitmap(),
- interpolate: this.interpolate,
- };
- }
- getImageBytes(
- e,
- {
- drawWidth: t,
- drawHeight: a,
- forceRGBA: i = !1,
- forceRGB: n = !1,
- internal: s = !1,
- },
- ) {
- this.image.reset();
- this.image.drawWidth = t || this.width;
- this.image.drawHeight = a || this.height;
- this.image.forceRGBA = !!i;
- this.image.forceRGB = !!n;
- const c = this.image.getBytes(e);
- if (s || this.image instanceof o.DecodeStream) return c;
- (0, r.assert)(
- c instanceof Uint8Array,
- 'PDFImage.getImageBytes: Unsupported "imageBytes" type.',
- );
- return new Uint8Array(c);
- }
- }
- t.PDFImage = PDFImage;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.incrementalUpdate = function incrementalUpdate({
- originalData: e,
- xrefInfo: t,
- newRefs: a,
- xref: o = null,
- hasXfa: l = !1,
- xfaDatasetsRef: h = null,
- hasXfaDatasetsEntry: u = !1,
- needAppearances: d,
- acroFormRef: f = null,
- acroForm: g = null,
- xfaData: p = null,
- }) {
- !(function updateAcroform({
- xref: e,
- acroForm: t,
- acroFormRef: a,
- hasXfa: n,
- hasXfaDatasetsEntry: s,
- xfaDatasetsRef: o,
- needAppearances: c,
- newRefs: l,
- }) {
- !n || s || o || (0, r.warn)('XFA - Cannot save it');
- if (!(c || (n && o))) return;
- const h = new i.Dict(e);
- for (const e of t.getKeys()) h.set(e, t.getRaw(e));
- if (n && !s) {
- const e = t.get('XFA').slice();
- e.splice(2, 0, 'datasets');
- e.splice(3, 0, o);
- h.set('XFA', e);
- }
- c && h.set('NeedAppearances', !0);
- const u = e.encrypt;
- let d = null;
- u && (d = u.createCipherTransform(a.num, a.gen));
- const f = [];
- writeObject(a, h, f, d);
- l.push({ ref: a, data: f.join('') });
- })({
- xref: o,
- acroForm: g,
- acroFormRef: f,
- hasXfa: l,
- hasXfaDatasetsEntry: u,
- xfaDatasetsRef: h,
- needAppearances: d,
- newRefs: a,
- });
- l &&
- (function updateXFA({ xfaData: e, xfaDatasetsRef: t, newRefs: a, xref: i }) {
- if (null === e) {
- e = (function writeXFADataForAcroform(e, t) {
- const a = new s.SimpleXMLParser({ hasAttributes: !0 }).parseFromString(e);
- for (const { xfa: e } of t) {
- if (!e) continue;
- const { path: t, value: i } = e;
- if (!t) continue;
- const o = (0, n.parseXFAPath)(t);
- let c = a.documentElement.searchNode(o, 0);
- !c && o.length > 1 && (c = a.documentElement.searchNode([o.at(-1)], 0));
- c
- ? Array.isArray(i)
- ? (c.childNodes = i.map((e) => new s.SimpleDOMNode('value', e)))
- : (c.childNodes = [new s.SimpleDOMNode('#text', i)])
- : (0, r.warn)(`Node not found for path: ${t}`);
- }
- const i = [];
- a.documentElement.dump(i);
- return i.join('');
- })(i.fetchIfRef(t).getString(), a);
- }
- const o = i.encrypt;
- if (o) {
- e = o.createCipherTransform(t.num, t.gen).encryptString(e);
- }
- const c =
- `${t.num} ${t.gen} obj\n<< /Type /EmbeddedFile /Length ${e.length}>>\nstream\n` +
- e +
- '\nendstream\nendobj\n';
- a.push({ ref: t, data: c });
- })({ xfaData: p, xfaDatasetsRef: h, newRefs: a, xref: o });
- const m = new i.Dict(null),
- b = t.newRef;
- let y, w;
- const S = e.at(-1);
- if (10 === S || 13 === S) {
- y = [];
- w = e.length;
- } else {
- y = ['\n'];
- w = e.length + 1;
- }
- m.set('Size', b.num + 1);
- m.set('Prev', t.startXRef);
- m.set('Type', i.Name.get('XRef'));
- null !== t.rootRef && m.set('Root', t.rootRef);
- null !== t.infoRef && m.set('Info', t.infoRef);
- null !== t.encryptRef && m.set('Encrypt', t.encryptRef);
- a.push({ ref: b, data: '' });
- a = a.sort((e, t) => e.ref.num - t.ref.num);
- const x = [[0, 1, 65535]],
- C = [0, 1];
- let k = 0;
- for (const { ref: e, data: t } of a) {
- k = Math.max(k, w);
- x.push([1, w, Math.min(e.gen, 65535)]);
- w += t.length;
- C.push(e.num, 1);
- y.push(t);
- }
- m.set('Index', C);
- if (Array.isArray(t.fileIds) && t.fileIds.length > 0) {
- const e = (function computeMD5(e, t) {
- const a = Math.floor(Date.now() / 1e3),
- i = t.filename || '',
- n = [a.toString(), i, e.toString()];
- let s = n.reduce((e, t) => e + t.length, 0);
- for (const e of Object.values(t.info)) {
- n.push(e);
- s += e.length;
- }
- const o = new Uint8Array(s);
- let l = 0;
- for (const e of n) {
- writeString(e, l, o);
- l += e.length;
- }
- return (0, r.bytesToString)((0, c.calculateMD5)(o));
- })(w, t);
- m.set('ID', [t.fileIds[0], e]);
- }
- const v = [1, Math.ceil(Math.log2(k) / 8), 2],
- F = (v[0] + v[1] + v[2]) * x.length;
- m.set('W', v);
- m.set('Length', F);
- y.push(`${b.num} ${b.gen} obj\n`);
- writeDict(m, y, null);
- y.push(' stream\n');
- const O = y.reduce((e, t) => e + t.length, 0),
- T = `\nendstream\nendobj\nstartxref\n${w}\n%%EOF\n`,
- M = new Uint8Array(e.length + O + F + T.length);
- M.set(e);
- let E = e.length;
- for (const e of y) {
- writeString(e, E, M);
- E += e.length;
- }
- for (const [e, t, a] of x) {
- E = writeInt(e, v[0], E, M);
- E = writeInt(t, v[1], E, M);
- E = writeInt(a, v[2], E, M);
- }
- writeString(T, E, M);
- return M;
- };
- t.writeDict = writeDict;
- t.writeObject = writeObject;
- var r = a(2),
- i = a(4),
- n = a(3),
- s = a(66),
- o = a(5),
- c = a(67);
- function writeObject(e, t, a, r) {
- a.push(`${e.num} ${e.gen} obj\n`);
- t instanceof i.Dict
- ? writeDict(t, a, r)
- : t instanceof o.BaseStream && writeStream(t, a, r);
- a.push('\nendobj\n');
- }
- function writeDict(e, t, a) {
- t.push('<<');
- for (const r of e.getKeys()) {
- t.push(` /${(0, n.escapePDFName)(r)} `);
- writeValue(e.getRaw(r), t, a);
- }
- t.push('>>');
- }
- function writeStream(e, t, a) {
- let r = e.getString();
- null !== a && (r = a.encryptString(r));
- e.dict.set('Length', r.length);
- writeDict(e.dict, t, a);
- t.push(' stream\n', r, '\nendstream');
- }
- function writeValue(e, t, a) {
- if (e instanceof i.Name) t.push(`/${(0, n.escapePDFName)(e.name)}`);
- else if (e instanceof i.Ref) t.push(`${e.num} ${e.gen} R`);
- else if (Array.isArray(e))
- !(function writeArray(e, t, a) {
- t.push('[');
- let r = !0;
- for (const i of e) {
- r ? (r = !1) : t.push(' ');
- writeValue(i, t, a);
- }
- t.push(']');
- })(e, t, a);
- else if ('string' == typeof e) {
- null !== a && (e = a.encryptString(e));
- t.push(`(${(0, n.escapeString)(e)})`);
- } else
- 'number' == typeof e
- ? t.push((0, n.numberToString)(e))
- : 'boolean' == typeof e
- ? t.push(e.toString())
- : e instanceof i.Dict
- ? writeDict(e, t, a)
- : e instanceof o.BaseStream
- ? writeStream(e, t, a)
- : null === e
- ? t.push('null')
- : (0, r.warn)(`Unhandled value in writer: ${typeof e}, please file a bug.`);
- }
- function writeInt(e, t, a, r) {
- for (let i = t + a - 1; i > a - 1; i--) {
- r[i] = 255 & e;
- e >>= 8;
- }
- return a + t;
- }
- function writeString(e, t, a) {
- for (let r = 0, i = e.length; r < i; r++) a[t + r] = 255 & e.charCodeAt(r);
- }
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.XMLParserErrorCode = t.XMLParserBase = t.SimpleXMLParser = t.SimpleDOMNode = void 0;
- var r = a(3);
- const i = {
- NoError: 0,
- EndOfDocument: -1,
- UnterminatedCdat: -2,
- UnterminatedXmlDeclaration: -3,
- UnterminatedDoctypeDeclaration: -4,
- UnterminatedComment: -5,
- MalformedElement: -6,
- OutOfMemory: -7,
- UnterminatedAttributeValue: -8,
- UnterminatedElement: -9,
- ElementNeverBegun: -10,
- };
- t.XMLParserErrorCode = i;
- function isWhitespace(e, t) {
- const a = e[t];
- return ' ' === a || '\n' === a || '\r' === a || '\t' === a;
- }
- class XMLParserBase {
- _resolveEntities(e) {
- return e.replaceAll(/&([^;]+);/g, (e, t) => {
- if ('#x' === t.substring(0, 2))
- return String.fromCodePoint(parseInt(t.substring(2), 16));
- if ('#' === t.substring(0, 1))
- return String.fromCodePoint(parseInt(t.substring(1), 10));
- switch (t) {
- case 'lt':
- return '<';
- case 'gt':
- return '>';
- case 'amp':
- return '&';
- case 'quot':
- return '"';
- case 'apos':
- return "'";
- }
- return this.onResolveEntity(t);
- });
- }
- _parseContent(e, t) {
- const a = [];
- let r = t;
- function skipWs() {
- for (; r < e.length && isWhitespace(e, r); ) ++r;
- }
- for (; r < e.length && !isWhitespace(e, r) && '>' !== e[r] && '/' !== e[r]; ) ++r;
- const i = e.substring(t, r);
- skipWs();
- for (; r < e.length && '>' !== e[r] && '/' !== e[r] && '?' !== e[r]; ) {
- skipWs();
- let t = '',
- i = '';
- for (; r < e.length && !isWhitespace(e, r) && '=' !== e[r]; ) {
- t += e[r];
- ++r;
- }
- skipWs();
- if ('=' !== e[r]) return null;
- ++r;
- skipWs();
- const n = e[r];
- if ('"' !== n && "'" !== n) return null;
- const s = e.indexOf(n, ++r);
- if (s < 0) return null;
- i = e.substring(r, s);
- a.push({ name: t, value: this._resolveEntities(i) });
- r = s + 1;
- skipWs();
- }
- return { name: i, attributes: a, parsed: r - t };
- }
- _parseProcessingInstruction(e, t) {
- let a = t;
- for (
- ;
- a < e.length && !isWhitespace(e, a) && '>' !== e[a] && '?' !== e[a] && '/' !== e[a];
-
- )
- ++a;
- const r = e.substring(t, a);
- !(function skipWs() {
- for (; a < e.length && isWhitespace(e, a); ) ++a;
- })();
- const i = a;
- for (; a < e.length && ('?' !== e[a] || '>' !== e[a + 1]); ) ++a;
- return { name: r, value: e.substring(i, a), parsed: a - t };
- }
- parseXml(e) {
- let t = 0;
- for (; t < e.length; ) {
- let a = t;
- if ('<' === e[t]) {
- ++a;
- let t;
- switch (e[a]) {
- case '/':
- ++a;
- t = e.indexOf('>', a);
- if (t < 0) {
- this.onError(i.UnterminatedElement);
- return;
- }
- this.onEndElement(e.substring(a, t));
- a = t + 1;
- break;
- case '?':
- ++a;
- const r = this._parseProcessingInstruction(e, a);
- if ('?>' !== e.substring(a + r.parsed, a + r.parsed + 2)) {
- this.onError(i.UnterminatedXmlDeclaration);
- return;
- }
- this.onPi(r.name, r.value);
- a += r.parsed + 2;
- break;
- case '!':
- if ('--' === e.substring(a + 1, a + 3)) {
- t = e.indexOf('--\x3e', a + 3);
- if (t < 0) {
- this.onError(i.UnterminatedComment);
- return;
- }
- this.onComment(e.substring(a + 3, t));
- a = t + 3;
- } else if ('[CDATA[' === e.substring(a + 1, a + 8)) {
- t = e.indexOf(']]>', a + 8);
- if (t < 0) {
- this.onError(i.UnterminatedCdat);
- return;
- }
- this.onCdata(e.substring(a + 8, t));
- a = t + 3;
- } else {
- if ('DOCTYPE' !== e.substring(a + 1, a + 8)) {
- this.onError(i.MalformedElement);
- return;
- }
- {
- const r = e.indexOf('[', a + 8);
- let n = !1;
- t = e.indexOf('>', a + 8);
- if (t < 0) {
- this.onError(i.UnterminatedDoctypeDeclaration);
- return;
- }
- if (r > 0 && t > r) {
- t = e.indexOf(']>', a + 8);
- if (t < 0) {
- this.onError(i.UnterminatedDoctypeDeclaration);
- return;
- }
- n = !0;
- }
- const s = e.substring(a + 8, t + (n ? 1 : 0));
- this.onDoctype(s);
- a = t + (n ? 2 : 1);
- }
- }
- break;
- default:
- const n = this._parseContent(e, a);
- if (null === n) {
- this.onError(i.MalformedElement);
- return;
- }
- let s = !1;
- if ('/>' === e.substring(a + n.parsed, a + n.parsed + 2)) s = !0;
- else if ('>' !== e.substring(a + n.parsed, a + n.parsed + 1)) {
- this.onError(i.UnterminatedElement);
- return;
- }
- this.onBeginElement(n.name, n.attributes, s);
- a += n.parsed + (s ? 2 : 1);
- }
- } else {
- for (; a < e.length && '<' !== e[a]; ) a++;
- const r = e.substring(t, a);
- this.onText(this._resolveEntities(r));
- }
- t = a;
- }
- }
- onResolveEntity(e) {
- return `&${e};`;
- }
- onPi(e, t) {}
- onComment(e) {}
- onCdata(e) {}
- onDoctype(e) {}
- onText(e) {}
- onBeginElement(e, t, a) {}
- onEndElement(e) {}
- onError(e) {}
- }
- t.XMLParserBase = XMLParserBase;
- class SimpleDOMNode {
- constructor(e, t) {
- this.nodeName = e;
- this.nodeValue = t;
- Object.defineProperty(this, 'parentNode', { value: null, writable: !0 });
- }
- get firstChild() {
- return this.childNodes && this.childNodes[0];
- }
- get nextSibling() {
- const e = this.parentNode.childNodes;
- if (!e) return;
- const t = e.indexOf(this);
- return -1 !== t ? e[t + 1] : void 0;
- }
- get textContent() {
- return this.childNodes
- ? this.childNodes
- .map(function (e) {
- return e.textContent;
- })
- .join('')
- : this.nodeValue || '';
- }
- get children() {
- return this.childNodes || [];
- }
- hasChildNodes() {
- return this.childNodes && this.childNodes.length > 0;
- }
- searchNode(e, t) {
- if (t >= e.length) return this;
- const a = e[t],
- r = [];
- let i = this;
- for (;;) {
- if (a.name === i.nodeName) {
- if (0 !== a.pos) {
- if (0 === r.length) return null;
- {
- const [n] = r.pop();
- let s = 0;
- for (const r of n.childNodes)
- if (a.name === r.nodeName) {
- if (s === a.pos) return r.searchNode(e, t + 1);
- s++;
- }
- return i.searchNode(e, t + 1);
- }
- }
- {
- const a = i.searchNode(e, t + 1);
- if (null !== a) return a;
- }
- }
- if (i.childNodes && 0 !== i.childNodes.length) {
- r.push([i, 0]);
- i = i.childNodes[0];
- } else {
- if (0 === r.length) return null;
- for (; 0 !== r.length; ) {
- const [e, t] = r.pop(),
- a = t + 1;
- if (a < e.childNodes.length) {
- r.push([e, a]);
- i = e.childNodes[a];
- break;
- }
- }
- if (0 === r.length) return null;
- }
- }
- }
- dump(e) {
- if ('#text' !== this.nodeName) {
- e.push(`<${this.nodeName}`);
- if (this.attributes)
- for (const t of this.attributes)
- e.push(` ${t.name}="${(0, r.encodeToXmlString)(t.value)}"`);
- if (this.hasChildNodes()) {
- e.push('>');
- for (const t of this.childNodes) t.dump(e);
- e.push(`${this.nodeName}>`);
- } else
- this.nodeValue
- ? e.push(`>${(0, r.encodeToXmlString)(this.nodeValue)}${this.nodeName}>`)
- : e.push('/>');
- } else e.push((0, r.encodeToXmlString)(this.nodeValue));
- }
- }
- t.SimpleDOMNode = SimpleDOMNode;
- t.SimpleXMLParser = class SimpleXMLParser extends XMLParserBase {
- constructor({ hasAttributes: e = !1, lowerCaseName: t = !1 }) {
- super();
- this._currentFragment = null;
- this._stack = null;
- this._errorCode = i.NoError;
- this._hasAttributes = e;
- this._lowerCaseName = t;
- }
- parseFromString(e) {
- this._currentFragment = [];
- this._stack = [];
- this._errorCode = i.NoError;
- this.parseXml(e);
- if (this._errorCode !== i.NoError) return;
- const [t] = this._currentFragment;
- return t ? { documentElement: t } : void 0;
- }
- onText(e) {
- if (
- (function isWhitespaceString(e) {
- for (let t = 0, a = e.length; t < a; t++) if (!isWhitespace(e, t)) return !1;
- return !0;
- })(e)
- )
- return;
- const t = new SimpleDOMNode('#text', e);
- this._currentFragment.push(t);
- }
- onCdata(e) {
- const t = new SimpleDOMNode('#text', e);
- this._currentFragment.push(t);
- }
- onBeginElement(e, t, a) {
- this._lowerCaseName && (e = e.toLowerCase());
- const r = new SimpleDOMNode(e);
- r.childNodes = [];
- this._hasAttributes && (r.attributes = t);
- this._currentFragment.push(r);
- if (!a) {
- this._stack.push(this._currentFragment);
- this._currentFragment = r.childNodes;
- }
- }
- onEndElement(e) {
- this._currentFragment = this._stack.pop() || [];
- const t = this._currentFragment.at(-1);
- if (!t) return null;
- for (const e of t.childNodes) e.parentNode = t;
- return t;
- }
- onError(e) {
- this._errorCode = e;
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.calculateSHA256 =
- t.calculateMD5 =
- t.PDF20 =
- t.PDF17 =
- t.CipherTransformFactory =
- t.ARCFourCipher =
- t.AES256Cipher =
- t.AES128Cipher =
- void 0;
- t.calculateSHA384 = calculateSHA384;
- t.calculateSHA512 = void 0;
- var r = a(2),
- i = a(4),
- n = a(68);
- class ARCFourCipher {
- constructor(e) {
- this.a = 0;
- this.b = 0;
- const t = new Uint8Array(256),
- a = e.length;
- for (let e = 0; e < 256; ++e) t[e] = e;
- for (let r = 0, i = 0; r < 256; ++r) {
- const n = t[r];
- i = (i + n + e[r % a]) & 255;
- t[r] = t[i];
- t[i] = n;
- }
- this.s = t;
- }
- encryptBlock(e) {
- let t = this.a,
- a = this.b;
- const r = this.s,
- i = e.length,
- n = new Uint8Array(i);
- for (let s = 0; s < i; ++s) {
- t = (t + 1) & 255;
- const i = r[t];
- a = (a + i) & 255;
- const o = r[a];
- r[t] = o;
- r[a] = i;
- n[s] = e[s] ^ r[(i + o) & 255];
- }
- this.a = t;
- this.b = a;
- return n;
- }
- decryptBlock(e) {
- return this.encryptBlock(e);
- }
- encrypt(e) {
- return this.encryptBlock(e);
- }
- }
- t.ARCFourCipher = ARCFourCipher;
- const s = (function calculateMD5Closure() {
- const e = new Uint8Array([
- 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 5, 9, 14, 20, 5, 9, 14,
- 20, 5, 9, 14, 20, 5, 9, 14, 20, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11,
- 16, 23, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21,
- ]),
- t = new Int32Array([
- -680876936, -389564586, 606105819, -1044525330, -176418897, 1200080426, -1473231341,
- -45705983, 1770035416, -1958414417, -42063, -1990404162, 1804603682, -40341101,
- -1502002290, 1236535329, -165796510, -1069501632, 643717713, -373897302, -701558691,
- 38016083, -660478335, -405537848, 568446438, -1019803690, -187363961, 1163531501,
- -1444681467, -51403784, 1735328473, -1926607734, -378558, -2022574463, 1839030562,
- -35309556, -1530992060, 1272893353, -155497632, -1094730640, 681279174, -358537222,
- -722521979, 76029189, -640364487, -421815835, 530742520, -995338651, -198630844,
- 1126891415, -1416354905, -57434055, 1700485571, -1894986606, -1051523, -2054922799,
- 1873313359, -30611744, -1560198380, 1309151649, -145523070, -1120210379, 718787259,
- -343485551,
- ]);
- return function hash(a, r, i) {
- let n = 1732584193,
- s = -271733879,
- o = -1732584194,
- c = 271733878;
- const l = (i + 72) & -64,
- h = new Uint8Array(l);
- let u, d;
- for (u = 0; u < i; ++u) h[u] = a[r++];
- h[u++] = 128;
- const f = l - 8;
- for (; u < f; ) h[u++] = 0;
- h[u++] = (i << 3) & 255;
- h[u++] = (i >> 5) & 255;
- h[u++] = (i >> 13) & 255;
- h[u++] = (i >> 21) & 255;
- h[u++] = (i >>> 29) & 255;
- h[u++] = 0;
- h[u++] = 0;
- h[u++] = 0;
- const g = new Int32Array(16);
- for (u = 0; u < l; ) {
- for (d = 0; d < 16; ++d, u += 4)
- g[d] = h[u] | (h[u + 1] << 8) | (h[u + 2] << 16) | (h[u + 3] << 24);
- let a,
- r,
- i = n,
- l = s,
- f = o,
- p = c;
- for (d = 0; d < 64; ++d) {
- if (d < 16) {
- a = (l & f) | (~l & p);
- r = d;
- } else if (d < 32) {
- a = (p & l) | (~p & f);
- r = (5 * d + 1) & 15;
- } else if (d < 48) {
- a = l ^ f ^ p;
- r = (3 * d + 5) & 15;
- } else {
- a = f ^ (l | ~p);
- r = (7 * d) & 15;
- }
- const n = p,
- s = (i + a + t[d] + g[r]) | 0,
- o = e[d];
- p = f;
- f = l;
- l = (l + ((s << o) | (s >>> (32 - o)))) | 0;
- i = n;
- }
- n = (n + i) | 0;
- s = (s + l) | 0;
- o = (o + f) | 0;
- c = (c + p) | 0;
- }
- return new Uint8Array([
- 255 & n,
- (n >> 8) & 255,
- (n >> 16) & 255,
- (n >>> 24) & 255,
- 255 & s,
- (s >> 8) & 255,
- (s >> 16) & 255,
- (s >>> 24) & 255,
- 255 & o,
- (o >> 8) & 255,
- (o >> 16) & 255,
- (o >>> 24) & 255,
- 255 & c,
- (c >> 8) & 255,
- (c >> 16) & 255,
- (c >>> 24) & 255,
- ]);
- };
- })();
- t.calculateMD5 = s;
- class Word64 {
- constructor(e, t) {
- this.high = 0 | e;
- this.low = 0 | t;
- }
- and(e) {
- this.high &= e.high;
- this.low &= e.low;
- }
- xor(e) {
- this.high ^= e.high;
- this.low ^= e.low;
- }
- or(e) {
- this.high |= e.high;
- this.low |= e.low;
- }
- shiftRight(e) {
- if (e >= 32) {
- this.low = (this.high >>> (e - 32)) | 0;
- this.high = 0;
- } else {
- this.low = (this.low >>> e) | (this.high << (32 - e));
- this.high = (this.high >>> e) | 0;
- }
- }
- shiftLeft(e) {
- if (e >= 32) {
- this.high = this.low << (e - 32);
- this.low = 0;
- } else {
- this.high = (this.high << e) | (this.low >>> (32 - e));
- this.low <<= e;
- }
- }
- rotateRight(e) {
- let t, a;
- if (32 & e) {
- a = this.low;
- t = this.high;
- } else {
- t = this.low;
- a = this.high;
- }
- e &= 31;
- this.low = (t >>> e) | (a << (32 - e));
- this.high = (a >>> e) | (t << (32 - e));
- }
- not() {
- this.high = ~this.high;
- this.low = ~this.low;
- }
- add(e) {
- const t = (this.low >>> 0) + (e.low >>> 0);
- let a = (this.high >>> 0) + (e.high >>> 0);
- t > 4294967295 && (a += 1);
- this.low = 0 | t;
- this.high = 0 | a;
- }
- copyTo(e, t) {
- e[t] = (this.high >>> 24) & 255;
- e[t + 1] = (this.high >> 16) & 255;
- e[t + 2] = (this.high >> 8) & 255;
- e[t + 3] = 255 & this.high;
- e[t + 4] = (this.low >>> 24) & 255;
- e[t + 5] = (this.low >> 16) & 255;
- e[t + 6] = (this.low >> 8) & 255;
- e[t + 7] = 255 & this.low;
- }
- assign(e) {
- this.high = e.high;
- this.low = e.low;
- }
- }
- const o = (function calculateSHA256Closure() {
- function rotr(e, t) {
- return (e >>> t) | (e << (32 - t));
- }
- function ch(e, t, a) {
- return (e & t) ^ (~e & a);
- }
- function maj(e, t, a) {
- return (e & t) ^ (e & a) ^ (t & a);
- }
- function sigma(e) {
- return rotr(e, 2) ^ rotr(e, 13) ^ rotr(e, 22);
- }
- function sigmaPrime(e) {
- return rotr(e, 6) ^ rotr(e, 11) ^ rotr(e, 25);
- }
- function littleSigma(e) {
- return rotr(e, 7) ^ rotr(e, 18) ^ (e >>> 3);
- }
- const e = [
- 1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748,
- 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206,
- 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983,
- 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671,
- 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372,
- 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411,
- 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734,
- 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779,
- 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479,
- 3329325298,
- ];
- return function hash(t, a, r) {
- let i = 1779033703,
- n = 3144134277,
- s = 1013904242,
- o = 2773480762,
- c = 1359893119,
- l = 2600822924,
- h = 528734635,
- u = 1541459225;
- const d = 64 * Math.ceil((r + 9) / 64),
- f = new Uint8Array(d);
- let g, p;
- for (g = 0; g < r; ++g) f[g] = t[a++];
- f[g++] = 128;
- const m = d - 8;
- for (; g < m; ) f[g++] = 0;
- f[g++] = 0;
- f[g++] = 0;
- f[g++] = 0;
- f[g++] = (r >>> 29) & 255;
- f[g++] = (r >> 21) & 255;
- f[g++] = (r >> 13) & 255;
- f[g++] = (r >> 5) & 255;
- f[g++] = (r << 3) & 255;
- const b = new Uint32Array(64);
- for (g = 0; g < d; ) {
- for (p = 0; p < 16; ++p) {
- b[p] = (f[g] << 24) | (f[g + 1] << 16) | (f[g + 2] << 8) | f[g + 3];
- g += 4;
- }
- for (p = 16; p < 64; ++p)
- b[p] =
- ((rotr((y = b[p - 2]), 17) ^ rotr(y, 19) ^ (y >>> 10)) +
- b[p - 7] +
- littleSigma(b[p - 15]) +
- b[p - 16]) |
- 0;
- let t,
- a,
- r = i,
- d = n,
- m = s,
- w = o,
- S = c,
- x = l,
- C = h,
- k = u;
- for (p = 0; p < 64; ++p) {
- t = k + sigmaPrime(S) + ch(S, x, C) + e[p] + b[p];
- a = sigma(r) + maj(r, d, m);
- k = C;
- C = x;
- x = S;
- S = (w + t) | 0;
- w = m;
- m = d;
- d = r;
- r = (t + a) | 0;
- }
- i = (i + r) | 0;
- n = (n + d) | 0;
- s = (s + m) | 0;
- o = (o + w) | 0;
- c = (c + S) | 0;
- l = (l + x) | 0;
- h = (h + C) | 0;
- u = (u + k) | 0;
- }
- var y;
- return new Uint8Array([
- (i >> 24) & 255,
- (i >> 16) & 255,
- (i >> 8) & 255,
- 255 & i,
- (n >> 24) & 255,
- (n >> 16) & 255,
- (n >> 8) & 255,
- 255 & n,
- (s >> 24) & 255,
- (s >> 16) & 255,
- (s >> 8) & 255,
- 255 & s,
- (o >> 24) & 255,
- (o >> 16) & 255,
- (o >> 8) & 255,
- 255 & o,
- (c >> 24) & 255,
- (c >> 16) & 255,
- (c >> 8) & 255,
- 255 & c,
- (l >> 24) & 255,
- (l >> 16) & 255,
- (l >> 8) & 255,
- 255 & l,
- (h >> 24) & 255,
- (h >> 16) & 255,
- (h >> 8) & 255,
- 255 & h,
- (u >> 24) & 255,
- (u >> 16) & 255,
- (u >> 8) & 255,
- 255 & u,
- ]);
- };
- })();
- t.calculateSHA256 = o;
- const c = (function calculateSHA512Closure() {
- function ch(e, t, a, r, i) {
- e.assign(t);
- e.and(a);
- i.assign(t);
- i.not();
- i.and(r);
- e.xor(i);
- }
- function maj(e, t, a, r, i) {
- e.assign(t);
- e.and(a);
- i.assign(t);
- i.and(r);
- e.xor(i);
- i.assign(a);
- i.and(r);
- e.xor(i);
- }
- function sigma(e, t, a) {
- e.assign(t);
- e.rotateRight(28);
- a.assign(t);
- a.rotateRight(34);
- e.xor(a);
- a.assign(t);
- a.rotateRight(39);
- e.xor(a);
- }
- function sigmaPrime(e, t, a) {
- e.assign(t);
- e.rotateRight(14);
- a.assign(t);
- a.rotateRight(18);
- e.xor(a);
- a.assign(t);
- a.rotateRight(41);
- e.xor(a);
- }
- function littleSigma(e, t, a) {
- e.assign(t);
- e.rotateRight(1);
- a.assign(t);
- a.rotateRight(8);
- e.xor(a);
- a.assign(t);
- a.shiftRight(7);
- e.xor(a);
- }
- function littleSigmaPrime(e, t, a) {
- e.assign(t);
- e.rotateRight(19);
- a.assign(t);
- a.rotateRight(61);
- e.xor(a);
- a.assign(t);
- a.shiftRight(6);
- e.xor(a);
- }
- const e = [
- new Word64(1116352408, 3609767458),
- new Word64(1899447441, 602891725),
- new Word64(3049323471, 3964484399),
- new Word64(3921009573, 2173295548),
- new Word64(961987163, 4081628472),
- new Word64(1508970993, 3053834265),
- new Word64(2453635748, 2937671579),
- new Word64(2870763221, 3664609560),
- new Word64(3624381080, 2734883394),
- new Word64(310598401, 1164996542),
- new Word64(607225278, 1323610764),
- new Word64(1426881987, 3590304994),
- new Word64(1925078388, 4068182383),
- new Word64(2162078206, 991336113),
- new Word64(2614888103, 633803317),
- new Word64(3248222580, 3479774868),
- new Word64(3835390401, 2666613458),
- new Word64(4022224774, 944711139),
- new Word64(264347078, 2341262773),
- new Word64(604807628, 2007800933),
- new Word64(770255983, 1495990901),
- new Word64(1249150122, 1856431235),
- new Word64(1555081692, 3175218132),
- new Word64(1996064986, 2198950837),
- new Word64(2554220882, 3999719339),
- new Word64(2821834349, 766784016),
- new Word64(2952996808, 2566594879),
- new Word64(3210313671, 3203337956),
- new Word64(3336571891, 1034457026),
- new Word64(3584528711, 2466948901),
- new Word64(113926993, 3758326383),
- new Word64(338241895, 168717936),
- new Word64(666307205, 1188179964),
- new Word64(773529912, 1546045734),
- new Word64(1294757372, 1522805485),
- new Word64(1396182291, 2643833823),
- new Word64(1695183700, 2343527390),
- new Word64(1986661051, 1014477480),
- new Word64(2177026350, 1206759142),
- new Word64(2456956037, 344077627),
- new Word64(2730485921, 1290863460),
- new Word64(2820302411, 3158454273),
- new Word64(3259730800, 3505952657),
- new Word64(3345764771, 106217008),
- new Word64(3516065817, 3606008344),
- new Word64(3600352804, 1432725776),
- new Word64(4094571909, 1467031594),
- new Word64(275423344, 851169720),
- new Word64(430227734, 3100823752),
- new Word64(506948616, 1363258195),
- new Word64(659060556, 3750685593),
- new Word64(883997877, 3785050280),
- new Word64(958139571, 3318307427),
- new Word64(1322822218, 3812723403),
- new Word64(1537002063, 2003034995),
- new Word64(1747873779, 3602036899),
- new Word64(1955562222, 1575990012),
- new Word64(2024104815, 1125592928),
- new Word64(2227730452, 2716904306),
- new Word64(2361852424, 442776044),
- new Word64(2428436474, 593698344),
- new Word64(2756734187, 3733110249),
- new Word64(3204031479, 2999351573),
- new Word64(3329325298, 3815920427),
- new Word64(3391569614, 3928383900),
- new Word64(3515267271, 566280711),
- new Word64(3940187606, 3454069534),
- new Word64(4118630271, 4000239992),
- new Word64(116418474, 1914138554),
- new Word64(174292421, 2731055270),
- new Word64(289380356, 3203993006),
- new Word64(460393269, 320620315),
- new Word64(685471733, 587496836),
- new Word64(852142971, 1086792851),
- new Word64(1017036298, 365543100),
- new Word64(1126000580, 2618297676),
- new Word64(1288033470, 3409855158),
- new Word64(1501505948, 4234509866),
- new Word64(1607167915, 987167468),
- new Word64(1816402316, 1246189591),
- ];
- return function hash(t, a, r, i = !1) {
- let n, s, o, c, l, h, u, d;
- if (i) {
- n = new Word64(3418070365, 3238371032);
- s = new Word64(1654270250, 914150663);
- o = new Word64(2438529370, 812702999);
- c = new Word64(355462360, 4144912697);
- l = new Word64(1731405415, 4290775857);
- h = new Word64(2394180231, 1750603025);
- u = new Word64(3675008525, 1694076839);
- d = new Word64(1203062813, 3204075428);
- } else {
- n = new Word64(1779033703, 4089235720);
- s = new Word64(3144134277, 2227873595);
- o = new Word64(1013904242, 4271175723);
- c = new Word64(2773480762, 1595750129);
- l = new Word64(1359893119, 2917565137);
- h = new Word64(2600822924, 725511199);
- u = new Word64(528734635, 4215389547);
- d = new Word64(1541459225, 327033209);
- }
- const f = 128 * Math.ceil((r + 17) / 128),
- g = new Uint8Array(f);
- let p, m;
- for (p = 0; p < r; ++p) g[p] = t[a++];
- g[p++] = 128;
- const b = f - 16;
- for (; p < b; ) g[p++] = 0;
- g[p++] = 0;
- g[p++] = 0;
- g[p++] = 0;
- g[p++] = 0;
- g[p++] = 0;
- g[p++] = 0;
- g[p++] = 0;
- g[p++] = 0;
- g[p++] = 0;
- g[p++] = 0;
- g[p++] = 0;
- g[p++] = (r >>> 29) & 255;
- g[p++] = (r >> 21) & 255;
- g[p++] = (r >> 13) & 255;
- g[p++] = (r >> 5) & 255;
- g[p++] = (r << 3) & 255;
- const y = new Array(80);
- for (p = 0; p < 80; p++) y[p] = new Word64(0, 0);
- let w = new Word64(0, 0),
- S = new Word64(0, 0),
- x = new Word64(0, 0),
- C = new Word64(0, 0),
- k = new Word64(0, 0),
- v = new Word64(0, 0),
- F = new Word64(0, 0),
- O = new Word64(0, 0);
- const T = new Word64(0, 0),
- M = new Word64(0, 0),
- E = new Word64(0, 0),
- D = new Word64(0, 0);
- let N, R;
- for (p = 0; p < f; ) {
- for (m = 0; m < 16; ++m) {
- y[m].high = (g[p] << 24) | (g[p + 1] << 16) | (g[p + 2] << 8) | g[p + 3];
- y[m].low = (g[p + 4] << 24) | (g[p + 5] << 16) | (g[p + 6] << 8) | g[p + 7];
- p += 8;
- }
- for (m = 16; m < 80; ++m) {
- N = y[m];
- littleSigmaPrime(N, y[m - 2], D);
- N.add(y[m - 7]);
- littleSigma(E, y[m - 15], D);
- N.add(E);
- N.add(y[m - 16]);
- }
- w.assign(n);
- S.assign(s);
- x.assign(o);
- C.assign(c);
- k.assign(l);
- v.assign(h);
- F.assign(u);
- O.assign(d);
- for (m = 0; m < 80; ++m) {
- T.assign(O);
- sigmaPrime(E, k, D);
- T.add(E);
- ch(E, k, v, F, D);
- T.add(E);
- T.add(e[m]);
- T.add(y[m]);
- sigma(M, w, D);
- maj(E, w, S, x, D);
- M.add(E);
- N = O;
- O = F;
- F = v;
- v = k;
- C.add(T);
- k = C;
- C = x;
- x = S;
- S = w;
- N.assign(T);
- N.add(M);
- w = N;
- }
- n.add(w);
- s.add(S);
- o.add(x);
- c.add(C);
- l.add(k);
- h.add(v);
- u.add(F);
- d.add(O);
- }
- if (i) {
- R = new Uint8Array(48);
- n.copyTo(R, 0);
- s.copyTo(R, 8);
- o.copyTo(R, 16);
- c.copyTo(R, 24);
- l.copyTo(R, 32);
- h.copyTo(R, 40);
- } else {
- R = new Uint8Array(64);
- n.copyTo(R, 0);
- s.copyTo(R, 8);
- o.copyTo(R, 16);
- c.copyTo(R, 24);
- l.copyTo(R, 32);
- h.copyTo(R, 40);
- u.copyTo(R, 48);
- d.copyTo(R, 56);
- }
- return R;
- };
- })();
- t.calculateSHA512 = c;
- function calculateSHA384(e, t, a) {
- return c(e, t, a, !0);
- }
- class NullCipher {
- decryptBlock(e) {
- return e;
- }
- encrypt(e) {
- return e;
- }
- }
- class AESBaseCipher {
- constructor() {
- this.constructor === AESBaseCipher &&
- (0, r.unreachable)('Cannot initialize AESBaseCipher.');
- this._s = new Uint8Array([
- 99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130,
- 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147,
- 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150,
- 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82,
- 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190,
- 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60,
- 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210,
- 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79,
- 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6,
- 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169,
- 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221,
- 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134,
- 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40,
- 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22,
- ]);
- this._inv_s = new Uint8Array([
- 82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227,
- 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50,
- 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36,
- 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22,
- 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21,
- 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5,
- 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138,
- 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115,
- 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241,
- 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198,
- 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199,
- 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229,
- 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187,
- 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33,
- 12, 125,
- ]);
- this._mix = new Uint32Array([
- 0, 235474187, 470948374, 303765277, 941896748, 908933415, 607530554, 708780849,
- 1883793496, 2118214995, 1817866830, 1649639237, 1215061108, 1181045119, 1417561698,
- 1517767529, 3767586992, 4003061179, 4236429990, 4069246893, 3635733660, 3602770327,
- 3299278474, 3400528769, 2430122216, 2664543715, 2362090238, 2193862645, 2835123396,
- 2801107407, 3035535058, 3135740889, 3678124923, 3576870512, 3341394285, 3374361702,
- 3810496343, 3977675356, 4279080257, 4043610186, 2876494627, 2776292904, 3076639029,
- 3110650942, 2472011535, 2640243204, 2403728665, 2169303058, 1001089995, 899835584,
- 666464733, 699432150, 59727847, 226906860, 530400753, 294930682, 1273168787,
- 1172967064, 1475418501, 1509430414, 1942435775, 2110667444, 1876241833, 1641816226,
- 2910219766, 2743034109, 2976151520, 3211623147, 2505202138, 2606453969, 2302690252,
- 2269728455, 3711829422, 3543599269, 3240894392, 3475313331, 3843699074, 3943906441,
- 4178062228, 4144047775, 1306967366, 1139781709, 1374988112, 1610459739, 1975683434,
- 2076935265, 1775276924, 1742315127, 1034867998, 866637845, 566021896, 800440835,
- 92987698, 193195065, 429456164, 395441711, 1984812685, 2017778566, 1784663195,
- 1683407248, 1315562145, 1080094634, 1383856311, 1551037884, 101039829, 135050206,
- 437757123, 337553864, 1042385657, 807962610, 573804783, 742039012, 2531067453,
- 2564033334, 2328828971, 2227573024, 2935566865, 2700099354, 3001755655, 3168937228,
- 3868552805, 3902563182, 4203181171, 4102977912, 3736164937, 3501741890, 3265478751,
- 3433712980, 1106041591, 1340463100, 1576976609, 1408749034, 2043211483, 2009195472,
- 1708848333, 1809054150, 832877231, 1068351396, 766945465, 599762354, 159417987,
- 126454664, 361929877, 463180190, 2709260871, 2943682380, 3178106961, 3009879386,
- 2572697195, 2538681184, 2236228733, 2336434550, 3509871135, 3745345300, 3441850377,
- 3274667266, 3910161971, 3877198648, 4110568485, 4211818798, 2597806476, 2497604743,
- 2261089178, 2295101073, 2733856160, 2902087851, 3202437046, 2968011453, 3936291284,
- 3835036895, 4136440770, 4169408201, 3535486456, 3702665459, 3467192302, 3231722213,
- 2051518780, 1951317047, 1716890410, 1750902305, 1113818384, 1282050075, 1584504582,
- 1350078989, 168810852, 67556463, 371049330, 404016761, 841739592, 1008918595,
- 775550814, 540080725, 3969562369, 3801332234, 4035489047, 4269907996, 3569255213,
- 3669462566, 3366754619, 3332740144, 2631065433, 2463879762, 2160117071, 2395588676,
- 2767645557, 2868897406, 3102011747, 3069049960, 202008497, 33778362, 270040487,
- 504459436, 875451293, 975658646, 675039627, 641025152, 2084704233, 1917518562,
- 1615861247, 1851332852, 1147550661, 1248802510, 1484005843, 1451044056, 933301370,
- 967311729, 733156972, 632953703, 260388950, 25965917, 328671808, 496906059,
- 1206477858, 1239443753, 1543208500, 1441952575, 2144161806, 1908694277, 1675577880,
- 1842759443, 3610369226, 3644379585, 3408119516, 3307916247, 4011190502, 3776767469,
- 4077384432, 4245618683, 2809771154, 2842737049, 3144396420, 3043140495, 2673705150,
- 2438237621, 2203032232, 2370213795,
- ]);
- this._mixCol = new Uint8Array(256);
- for (let e = 0; e < 256; e++) this._mixCol[e] = e < 128 ? e << 1 : (e << 1) ^ 27;
- this.buffer = new Uint8Array(16);
- this.bufferPosition = 0;
- }
- _expandKey(e) {
- (0, r.unreachable)('Cannot call `_expandKey` on the base class');
- }
- _decrypt(e, t) {
- let a, r, i;
- const n = new Uint8Array(16);
- n.set(e);
- for (let e = 0, a = this._keySize; e < 16; ++e, ++a) n[e] ^= t[a];
- for (let e = this._cyclesOfRepetition - 1; e >= 1; --e) {
- a = n[13];
- n[13] = n[9];
- n[9] = n[5];
- n[5] = n[1];
- n[1] = a;
- a = n[14];
- r = n[10];
- n[14] = n[6];
- n[10] = n[2];
- n[6] = a;
- n[2] = r;
- a = n[15];
- r = n[11];
- i = n[7];
- n[15] = n[3];
- n[11] = a;
- n[7] = r;
- n[3] = i;
- for (let e = 0; e < 16; ++e) n[e] = this._inv_s[n[e]];
- for (let a = 0, r = 16 * e; a < 16; ++a, ++r) n[a] ^= t[r];
- for (let e = 0; e < 16; e += 4) {
- const t = this._mix[n[e]],
- r = this._mix[n[e + 1]],
- i = this._mix[n[e + 2]],
- s = this._mix[n[e + 3]];
- a = t ^ (r >>> 8) ^ (r << 24) ^ (i >>> 16) ^ (i << 16) ^ (s >>> 24) ^ (s << 8);
- n[e] = (a >>> 24) & 255;
- n[e + 1] = (a >> 16) & 255;
- n[e + 2] = (a >> 8) & 255;
- n[e + 3] = 255 & a;
- }
- }
- a = n[13];
- n[13] = n[9];
- n[9] = n[5];
- n[5] = n[1];
- n[1] = a;
- a = n[14];
- r = n[10];
- n[14] = n[6];
- n[10] = n[2];
- n[6] = a;
- n[2] = r;
- a = n[15];
- r = n[11];
- i = n[7];
- n[15] = n[3];
- n[11] = a;
- n[7] = r;
- n[3] = i;
- for (let e = 0; e < 16; ++e) {
- n[e] = this._inv_s[n[e]];
- n[e] ^= t[e];
- }
- return n;
- }
- _encrypt(e, t) {
- const a = this._s;
- let r, i, n;
- const s = new Uint8Array(16);
- s.set(e);
- for (let e = 0; e < 16; ++e) s[e] ^= t[e];
- for (let e = 1; e < this._cyclesOfRepetition; e++) {
- for (let e = 0; e < 16; ++e) s[e] = a[s[e]];
- n = s[1];
- s[1] = s[5];
- s[5] = s[9];
- s[9] = s[13];
- s[13] = n;
- n = s[2];
- i = s[6];
- s[2] = s[10];
- s[6] = s[14];
- s[10] = n;
- s[14] = i;
- n = s[3];
- i = s[7];
- r = s[11];
- s[3] = s[15];
- s[7] = n;
- s[11] = i;
- s[15] = r;
- for (let e = 0; e < 16; e += 4) {
- const t = s[e + 0],
- a = s[e + 1],
- i = s[e + 2],
- n = s[e + 3];
- r = t ^ a ^ i ^ n;
- s[e + 0] ^= r ^ this._mixCol[t ^ a];
- s[e + 1] ^= r ^ this._mixCol[a ^ i];
- s[e + 2] ^= r ^ this._mixCol[i ^ n];
- s[e + 3] ^= r ^ this._mixCol[n ^ t];
- }
- for (let a = 0, r = 16 * e; a < 16; ++a, ++r) s[a] ^= t[r];
- }
- for (let e = 0; e < 16; ++e) s[e] = a[s[e]];
- n = s[1];
- s[1] = s[5];
- s[5] = s[9];
- s[9] = s[13];
- s[13] = n;
- n = s[2];
- i = s[6];
- s[2] = s[10];
- s[6] = s[14];
- s[10] = n;
- s[14] = i;
- n = s[3];
- i = s[7];
- r = s[11];
- s[3] = s[15];
- s[7] = n;
- s[11] = i;
- s[15] = r;
- for (let e = 0, a = this._keySize; e < 16; ++e, ++a) s[e] ^= t[a];
- return s;
- }
- _decryptBlock2(e, t) {
- const a = e.length;
- let r = this.buffer,
- i = this.bufferPosition;
- const n = [];
- let s = this.iv;
- for (let t = 0; t < a; ++t) {
- r[i] = e[t];
- ++i;
- if (i < 16) continue;
- const a = this._decrypt(r, this._key);
- for (let e = 0; e < 16; ++e) a[e] ^= s[e];
- s = r;
- n.push(a);
- r = new Uint8Array(16);
- i = 0;
- }
- this.buffer = r;
- this.bufferLength = i;
- this.iv = s;
- if (0 === n.length) return new Uint8Array(0);
- let o = 16 * n.length;
- if (t) {
- const e = n.at(-1);
- let t = e[15];
- if (t <= 16) {
- for (let a = 15, r = 16 - t; a >= r; --a)
- if (e[a] !== t) {
- t = 0;
- break;
- }
- o -= t;
- n[n.length - 1] = e.subarray(0, 16 - t);
- }
- }
- const c = new Uint8Array(o);
- for (let e = 0, t = 0, a = n.length; e < a; ++e, t += 16) c.set(n[e], t);
- return c;
- }
- decryptBlock(e, t, a = null) {
- const r = e.length,
- i = this.buffer;
- let n = this.bufferPosition;
- if (a) this.iv = a;
- else {
- for (let t = 0; n < 16 && t < r; ++t, ++n) i[n] = e[t];
- if (n < 16) {
- this.bufferLength = n;
- return new Uint8Array(0);
- }
- this.iv = i;
- e = e.subarray(16);
- }
- this.buffer = new Uint8Array(16);
- this.bufferLength = 0;
- this.decryptBlock = this._decryptBlock2;
- return this.decryptBlock(e, t);
- }
- encrypt(e, t) {
- const a = e.length;
- let r = this.buffer,
- i = this.bufferPosition;
- const n = [];
- t || (t = new Uint8Array(16));
- for (let s = 0; s < a; ++s) {
- r[i] = e[s];
- ++i;
- if (i < 16) continue;
- for (let e = 0; e < 16; ++e) r[e] ^= t[e];
- const a = this._encrypt(r, this._key);
- t = a;
- n.push(a);
- r = new Uint8Array(16);
- i = 0;
- }
- this.buffer = r;
- this.bufferLength = i;
- this.iv = t;
- if (0 === n.length) return new Uint8Array(0);
- const s = 16 * n.length,
- o = new Uint8Array(s);
- for (let e = 0, t = 0, a = n.length; e < a; ++e, t += 16) o.set(n[e], t);
- return o;
- }
- }
- class AES128Cipher extends AESBaseCipher {
- constructor(e) {
- super();
- this._cyclesOfRepetition = 10;
- this._keySize = 160;
- this._rcon = new Uint8Array([
- 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99,
- 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97,
- 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8,
- 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106,
- 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74,
- 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141, 1, 2, 4, 8, 16, 32, 64, 128, 27,
- 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250,
- 239, 197, 145, 57, 114, 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131,
- 29, 58, 116, 232, 203, 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77,
- 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114,
- 228, 211, 189, 97, 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203,
- 141, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99,
- 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145, 57, 114, 228, 211, 189, 97,
- 194, 159, 37, 74, 148, 51, 102, 204, 131, 29, 58, 116, 232, 203, 141,
- ]);
- this._key = this._expandKey(e);
- }
- _expandKey(e) {
- const t = this._s,
- a = this._rcon,
- r = new Uint8Array(176);
- r.set(e);
- for (let e = 16, i = 1; e < 176; ++i) {
- let n = r[e - 3],
- s = r[e - 2],
- o = r[e - 1],
- c = r[e - 4];
- n = t[n];
- s = t[s];
- o = t[o];
- c = t[c];
- n ^= a[i];
- for (let t = 0; t < 4; ++t) {
- r[e] = n ^= r[e - 16];
- e++;
- r[e] = s ^= r[e - 16];
- e++;
- r[e] = o ^= r[e - 16];
- e++;
- r[e] = c ^= r[e - 16];
- e++;
- }
- }
- return r;
- }
- }
- t.AES128Cipher = AES128Cipher;
- class AES256Cipher extends AESBaseCipher {
- constructor(e) {
- super();
- this._cyclesOfRepetition = 14;
- this._keySize = 224;
- this._key = this._expandKey(e);
- }
- _expandKey(e) {
- const t = this._s,
- a = new Uint8Array(240);
- a.set(e);
- let r,
- i,
- n,
- s,
- o = 1;
- for (let e = 32, c = 1; e < 240; ++c) {
- if (e % 32 == 16) {
- r = t[r];
- i = t[i];
- n = t[n];
- s = t[s];
- } else if (e % 32 == 0) {
- r = a[e - 3];
- i = a[e - 2];
- n = a[e - 1];
- s = a[e - 4];
- r = t[r];
- i = t[i];
- n = t[n];
- s = t[s];
- r ^= o;
- (o <<= 1) >= 256 && (o = 255 & (27 ^ o));
- }
- for (let t = 0; t < 4; ++t) {
- a[e] = r ^= a[e - 32];
- e++;
- a[e] = i ^= a[e - 32];
- e++;
- a[e] = n ^= a[e - 32];
- e++;
- a[e] = s ^= a[e - 32];
- e++;
- }
- }
- return a;
- }
- }
- t.AES256Cipher = AES256Cipher;
- class PDF17 {
- checkOwnerPassword(e, t, a, i) {
- const n = new Uint8Array(e.length + 56);
- n.set(e, 0);
- n.set(t, e.length);
- n.set(a, e.length + t.length);
- const s = o(n, 0, n.length);
- return (0, r.isArrayEqual)(s, i);
- }
- checkUserPassword(e, t, a) {
- const i = new Uint8Array(e.length + 8);
- i.set(e, 0);
- i.set(t, e.length);
- const n = o(i, 0, i.length);
- return (0, r.isArrayEqual)(n, a);
- }
- getOwnerKey(e, t, a, r) {
- const i = new Uint8Array(e.length + 56);
- i.set(e, 0);
- i.set(t, e.length);
- i.set(a, e.length + t.length);
- const n = o(i, 0, i.length);
- return new AES256Cipher(n).decryptBlock(r, !1, new Uint8Array(16));
- }
- getUserKey(e, t, a) {
- const r = new Uint8Array(e.length + 8);
- r.set(e, 0);
- r.set(t, e.length);
- const i = o(r, 0, r.length);
- return new AES256Cipher(i).decryptBlock(a, !1, new Uint8Array(16));
- }
- }
- t.PDF17 = PDF17;
- class PDF20 {
- _hash(e, t, a) {
- let r = o(t, 0, t.length).subarray(0, 32),
- i = [0],
- n = 0;
- for (; n < 64 || i.at(-1) > n - 32; ) {
- const t = e.length + r.length + a.length,
- s = new Uint8Array(t);
- let l = 0;
- s.set(e, l);
- l += e.length;
- s.set(r, l);
- l += r.length;
- s.set(a, l);
- const h = new Uint8Array(64 * t);
- for (let e = 0, a = 0; e < 64; e++, a += t) h.set(s, a);
- i = new AES128Cipher(r.subarray(0, 16)).encrypt(h, r.subarray(16, 32));
- const u = i.slice(0, 16).reduce((e, t) => e + t, 0) % 3;
- 0 === u
- ? (r = o(i, 0, i.length))
- : 1 === u
- ? (r = calculateSHA384(i, 0, i.length))
- : 2 === u && (r = c(i, 0, i.length));
- n++;
- }
- return r.subarray(0, 32);
- }
- checkOwnerPassword(e, t, a, i) {
- const n = new Uint8Array(e.length + 56);
- n.set(e, 0);
- n.set(t, e.length);
- n.set(a, e.length + t.length);
- const s = this._hash(e, n, a);
- return (0, r.isArrayEqual)(s, i);
- }
- checkUserPassword(e, t, a) {
- const i = new Uint8Array(e.length + 8);
- i.set(e, 0);
- i.set(t, e.length);
- const n = this._hash(e, i, []);
- return (0, r.isArrayEqual)(n, a);
- }
- getOwnerKey(e, t, a, r) {
- const i = new Uint8Array(e.length + 56);
- i.set(e, 0);
- i.set(t, e.length);
- i.set(a, e.length + t.length);
- const n = this._hash(e, i, a);
- return new AES256Cipher(n).decryptBlock(r, !1, new Uint8Array(16));
- }
- getUserKey(e, t, a) {
- const r = new Uint8Array(e.length + 8);
- r.set(e, 0);
- r.set(t, e.length);
- const i = this._hash(e, r, []);
- return new AES256Cipher(i).decryptBlock(a, !1, new Uint8Array(16));
- }
- }
- t.PDF20 = PDF20;
- class CipherTransform {
- constructor(e, t) {
- this.StringCipherConstructor = e;
- this.StreamCipherConstructor = t;
- }
- createStream(e, t) {
- const a = new this.StreamCipherConstructor();
- return new n.DecryptStream(e, t, function cipherTransformDecryptStream(e, t) {
- return a.decryptBlock(e, t);
- });
- }
- decryptString(e) {
- const t = new this.StringCipherConstructor();
- let a = (0, r.stringToBytes)(e);
- a = t.decryptBlock(a, !0);
- return (0, r.bytesToString)(a);
- }
- encryptString(e) {
- const t = new this.StringCipherConstructor();
- if (t instanceof AESBaseCipher) {
- const a = 16 - (e.length % 16);
- e += String.fromCharCode(a).repeat(a);
- const i = new Uint8Array(16);
- if ('undefined' != typeof crypto) crypto.getRandomValues(i);
- else for (let e = 0; e < 16; e++) i[e] = Math.floor(256 * Math.random());
- let n = (0, r.stringToBytes)(e);
- n = t.encrypt(n, i);
- const s = new Uint8Array(16 + n.length);
- s.set(i);
- s.set(n, 16);
- return (0, r.bytesToString)(s);
- }
- let a = (0, r.stringToBytes)(e);
- a = t.encrypt(a);
- return (0, r.bytesToString)(a);
- }
- }
- const l = (function CipherTransformFactoryClosure() {
- const e = new Uint8Array([
- 40, 191, 78, 94, 78, 117, 138, 65, 100, 0, 78, 86, 255, 250, 1, 8, 46, 46, 0, 182,
- 208, 104, 62, 128, 47, 12, 169, 254, 100, 83, 105, 122,
- ]);
- function prepareKeyData(t, a, r, i, n, o, c, l) {
- const h = 40 + r.length + t.length,
- u = new Uint8Array(h);
- let d,
- f,
- g = 0;
- if (a) {
- f = Math.min(32, a.length);
- for (; g < f; ++g) u[g] = a[g];
- }
- d = 0;
- for (; g < 32; ) u[g++] = e[d++];
- for (d = 0, f = r.length; d < f; ++d) u[g++] = r[d];
- u[g++] = 255 & n;
- u[g++] = (n >> 8) & 255;
- u[g++] = (n >> 16) & 255;
- u[g++] = (n >>> 24) & 255;
- for (d = 0, f = t.length; d < f; ++d) u[g++] = t[d];
- if (o >= 4 && !l) {
- u[g++] = 255;
- u[g++] = 255;
- u[g++] = 255;
- u[g++] = 255;
- }
- let p = s(u, 0, g);
- const m = c >> 3;
- if (o >= 3) for (d = 0; d < 50; ++d) p = s(p, 0, m);
- const b = p.subarray(0, m);
- let y, w;
- if (o >= 3) {
- for (g = 0; g < 32; ++g) u[g] = e[g];
- for (d = 0, f = t.length; d < f; ++d) u[g++] = t[d];
- y = new ARCFourCipher(b);
- w = y.encryptBlock(s(u, 0, g));
- f = b.length;
- const a = new Uint8Array(f);
- for (d = 1; d <= 19; ++d) {
- for (let e = 0; e < f; ++e) a[e] = b[e] ^ d;
- y = new ARCFourCipher(a);
- w = y.encryptBlock(w);
- }
- for (d = 0, f = w.length; d < f; ++d) if (i[d] !== w[d]) return null;
- } else {
- y = new ARCFourCipher(b);
- w = y.encryptBlock(e);
- for (d = 0, f = w.length; d < f; ++d) if (i[d] !== w[d]) return null;
- }
- return b;
- }
- const t = i.Name.get('Identity');
- function buildObjectKey(e, t, a, r = !1) {
- const i = new Uint8Array(a.length + 9),
- n = a.length;
- let o;
- for (o = 0; o < n; ++o) i[o] = a[o];
- i[o++] = 255 & e;
- i[o++] = (e >> 8) & 255;
- i[o++] = (e >> 16) & 255;
- i[o++] = 255 & t;
- i[o++] = (t >> 8) & 255;
- if (r) {
- i[o++] = 115;
- i[o++] = 65;
- i[o++] = 108;
- i[o++] = 84;
- }
- return s(i, 0, o).subarray(0, Math.min(a.length + 5, 16));
- }
- function buildCipherConstructor(e, t, a, n, s) {
- if (!(t instanceof i.Name)) throw new r.FormatError('Invalid crypt filter name.');
- const o = e.get(t.name);
- let c;
- null != o && (c = o.get('CFM'));
- if (!c || 'None' === c.name)
- return function cipherTransformFactoryBuildCipherConstructorNone() {
- return new NullCipher();
- };
- if ('V2' === c.name)
- return function cipherTransformFactoryBuildCipherConstructorV2() {
- return new ARCFourCipher(buildObjectKey(a, n, s, !1));
- };
- if ('AESV2' === c.name)
- return function cipherTransformFactoryBuildCipherConstructorAESV2() {
- return new AES128Cipher(buildObjectKey(a, n, s, !0));
- };
- if ('AESV3' === c.name)
- return function cipherTransformFactoryBuildCipherConstructorAESV3() {
- return new AES256Cipher(s);
- };
- throw new r.FormatError('Unknown crypto method');
- }
- return class CipherTransformFactory {
- constructor(a, n, o) {
- const c = a.get('Filter');
- if (!(0, i.isName)(c, 'Standard'))
- throw new r.FormatError('unknown encryption method');
- this.filterName = c.name;
- this.dict = a;
- const l = a.get('V');
- if (!Number.isInteger(l) || (1 !== l && 2 !== l && 4 !== l && 5 !== l))
- throw new r.FormatError('unsupported encryption algorithm');
- this.algorithm = l;
- let h = a.get('Length');
- if (!h)
- if (l <= 3) h = 40;
- else {
- const e = a.get('CF'),
- t = a.get('StmF');
- if (e instanceof i.Dict && t instanceof i.Name) {
- e.suppressEncryption = !0;
- const a = e.get(t.name);
- h = (a && a.get('Length')) || 128;
- h < 40 && (h <<= 3);
- }
- }
- if (!Number.isInteger(h) || h < 40 || h % 8 != 0)
- throw new r.FormatError('invalid key length');
- const u = (0, r.stringToBytes)(a.get('O')),
- d = (0, r.stringToBytes)(a.get('U')),
- f = u.subarray(0, 32),
- g = d.subarray(0, 32),
- p = a.get('P'),
- m = a.get('R'),
- b = (4 === l || 5 === l) && !1 !== a.get('EncryptMetadata');
- this.encryptMetadata = b;
- const y = (0, r.stringToBytes)(n);
- let w, S;
- if (o) {
- if (6 === m)
- try {
- o = (0, r.utf8StringToString)(o);
- } catch (e) {
- (0, r.warn)(
- 'CipherTransformFactory: Unable to convert UTF8 encoded password.',
- );
- }
- w = (0, r.stringToBytes)(o);
- }
- if (5 !== l) S = prepareKeyData(y, w, f, g, p, m, h, b);
- else {
- const e = u.subarray(32, 40),
- t = u.subarray(40, 48),
- i = d.subarray(0, 48),
- n = d.subarray(32, 40),
- s = d.subarray(40, 48),
- o = (0, r.stringToBytes)(a.get('OE')),
- c = (0, r.stringToBytes)(a.get('UE'));
- (0, r.stringToBytes)(a.get('Perms'));
- S = (function createEncryptionKey20(e, t, a, r, i, n, s, o, c, l, h, u) {
- if (t) {
- const e = Math.min(127, t.length);
- t = t.subarray(0, e);
- } else t = [];
- let d;
- d = 6 === e ? new PDF20() : new PDF17();
- return d.checkUserPassword(t, o, s)
- ? d.getUserKey(t, c, h)
- : t.length && d.checkOwnerPassword(t, r, n, a)
- ? d.getOwnerKey(t, i, n, l)
- : null;
- })(m, w, f, e, t, i, g, n, s, o, c);
- }
- if (!S && !o)
- throw new r.PasswordException(
- 'No password given',
- r.PasswordResponses.NEED_PASSWORD,
- );
- if (!S && o) {
- const t = (function decodeUserPassword(t, a, r, i) {
- const n = new Uint8Array(32);
- let o = 0;
- const c = Math.min(32, t.length);
- for (; o < c; ++o) n[o] = t[o];
- let l = 0;
- for (; o < 32; ) n[o++] = e[l++];
- let h = s(n, 0, o);
- const u = i >> 3;
- if (r >= 3) for (l = 0; l < 50; ++l) h = s(h, 0, h.length);
- let d, f;
- if (r >= 3) {
- f = a;
- const e = new Uint8Array(u);
- for (l = 19; l >= 0; l--) {
- for (let t = 0; t < u; ++t) e[t] = h[t] ^ l;
- d = new ARCFourCipher(e);
- f = d.encryptBlock(f);
- }
- } else {
- d = new ARCFourCipher(h.subarray(0, u));
- f = d.encryptBlock(a);
- }
- return f;
- })(w, f, m, h);
- S = prepareKeyData(y, t, f, g, p, m, h, b);
- }
- if (!S)
- throw new r.PasswordException(
- 'Incorrect Password',
- r.PasswordResponses.INCORRECT_PASSWORD,
- );
- this.encryptionKey = S;
- if (l >= 4) {
- const e = a.get('CF');
- e instanceof i.Dict && (e.suppressEncryption = !0);
- this.cf = e;
- this.stmf = a.get('StmF') || t;
- this.strf = a.get('StrF') || t;
- this.eff = a.get('EFF') || this.stmf;
- }
- }
- createCipherTransform(e, t) {
- if (4 === this.algorithm || 5 === this.algorithm)
- return new CipherTransform(
- buildCipherConstructor(this.cf, this.strf, e, t, this.encryptionKey),
- buildCipherConstructor(this.cf, this.stmf, e, t, this.encryptionKey),
- );
- const a = buildObjectKey(e, t, this.encryptionKey, !1),
- r = function buildCipherCipherConstructor() {
- return new ARCFourCipher(a);
- };
- return new CipherTransform(r, r);
- }
- };
- })();
- t.CipherTransformFactory = l;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.DecryptStream = void 0;
- var r = a(18);
- class DecryptStream extends r.DecodeStream {
- constructor(e, t, a) {
- super(t);
- this.str = e;
- this.dict = e.dict;
- this.decrypt = a;
- this.nextChunk = null;
- this.initialized = !1;
- }
- readBlock() {
- let e;
- if (this.initialized) e = this.nextChunk;
- else {
- e = this.str.getBytes(512);
- this.initialized = !0;
- }
- if (!e || 0 === e.length) {
- this.eof = !0;
- return;
- }
- this.nextChunk = this.str.getBytes(512);
- const t = this.nextChunk && this.nextChunk.length > 0;
- e = (0, this.decrypt)(e, !t);
- const a = this.bufferLength,
- r = a + e.length;
- this.ensureBuffer(r).set(e, a);
- this.bufferLength = r;
- }
- }
- t.DecryptStream = DecryptStream;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.Catalog = void 0;
- var r = a(3),
- i = a(2),
- n = a(4),
- s = a(70),
- o = a(5),
- c = a(71),
- l = a(12),
- h = a(72),
- u = a(59),
- d = a(73),
- f = a(74);
- function fetchDestination(e) {
- e instanceof n.Dict && (e = e.get('D'));
- return Array.isArray(e) ? e : null;
- }
- class Catalog {
- constructor(e, t) {
- this.pdfManager = e;
- this.xref = t;
- this._catDict = t.getCatalogObj();
- if (!(this._catDict instanceof n.Dict))
- throw new i.FormatError('Catalog object is not a dictionary.');
- this.toplevelPagesDict;
- this._actualNumPages = null;
- this.fontCache = new n.RefSetCache();
- this.builtInCMapCache = new Map();
- this.standardFontDataCache = new Map();
- this.globalImageCache = new u.GlobalImageCache();
- this.pageKidsCountCache = new n.RefSetCache();
- this.pageIndexCache = new n.RefSetCache();
- this.nonBlendModesSet = new n.RefSet();
- }
- get version() {
- const e = this._catDict.get('Version');
- if (e instanceof n.Name) {
- if (r.PDF_VERSION_REGEXP.test(e.name))
- return (0, i.shadow)(this, 'version', e.name);
- (0, i.warn)(`Invalid PDF catalog version: ${e.name}`);
- }
- return (0, i.shadow)(this, 'version', null);
- }
- get lang() {
- const e = this._catDict.get('Lang');
- return (0, i.shadow)(
- this,
- 'lang',
- 'string' == typeof e ? (0, i.stringToPDFString)(e) : null,
- );
- }
- get needsRendering() {
- const e = this._catDict.get('NeedsRendering');
- return (0, i.shadow)(this, 'needsRendering', 'boolean' == typeof e && e);
- }
- get collection() {
- let e = null;
- try {
- const t = this._catDict.get('Collection');
- t instanceof n.Dict && t.size > 0 && (e = t);
- } catch (e) {
- if (e instanceof r.MissingDataException) throw e;
- (0, i.info)('Cannot fetch Collection entry; assuming no collection is present.');
- }
- return (0, i.shadow)(this, 'collection', e);
- }
- get acroForm() {
- let e = null;
- try {
- const t = this._catDict.get('AcroForm');
- t instanceof n.Dict && t.size > 0 && (e = t);
- } catch (e) {
- if (e instanceof r.MissingDataException) throw e;
- (0, i.info)('Cannot fetch AcroForm entry; assuming no forms are present.');
- }
- return (0, i.shadow)(this, 'acroForm', e);
- }
- get acroFormRef() {
- const e = this._catDict.getRaw('AcroForm');
- return (0, i.shadow)(this, 'acroFormRef', e instanceof n.Ref ? e : null);
- }
- get metadata() {
- const e = this._catDict.getRaw('Metadata');
- if (!(e instanceof n.Ref)) return (0, i.shadow)(this, 'metadata', null);
- let t = null;
- try {
- const a = !(this.xref.encrypt && this.xref.encrypt.encryptMetadata),
- r = this.xref.fetch(e, a);
- if (r instanceof o.BaseStream && r.dict instanceof n.Dict) {
- const e = r.dict.get('Type'),
- a = r.dict.get('Subtype');
- if ((0, n.isName)(e, 'Metadata') && (0, n.isName)(a, 'XML')) {
- const e = (0, i.stringToUTF8String)(r.getString());
- e && (t = new d.MetadataParser(e).serializable);
- }
- }
- } catch (e) {
- if (e instanceof r.MissingDataException) throw e;
- (0, i.info)(`Skipping invalid Metadata: "${e}".`);
- }
- return (0, i.shadow)(this, 'metadata', t);
- }
- get markInfo() {
- let e = null;
- try {
- e = this._readMarkInfo();
- } catch (e) {
- if (e instanceof r.MissingDataException) throw e;
- (0, i.warn)('Unable to read mark info.');
- }
- return (0, i.shadow)(this, 'markInfo', e);
- }
- _readMarkInfo() {
- const e = this._catDict.get('MarkInfo');
- if (!(e instanceof n.Dict)) return null;
- const t = { Marked: !1, UserProperties: !1, Suspects: !1 };
- for (const a in t) {
- const r = e.get(a);
- 'boolean' == typeof r && (t[a] = r);
- }
- return t;
- }
- get structTreeRoot() {
- let e = null;
- try {
- e = this._readStructTreeRoot();
- } catch (e) {
- if (e instanceof r.MissingDataException) throw e;
- (0, i.warn)('Unable read to structTreeRoot info.');
- }
- return (0, i.shadow)(this, 'structTreeRoot', e);
- }
- _readStructTreeRoot() {
- const e = this._catDict.get('StructTreeRoot');
- if (!(e instanceof n.Dict)) return null;
- const t = new f.StructTreeRoot(e);
- t.init();
- return t;
- }
- get toplevelPagesDict() {
- const e = this._catDict.get('Pages');
- if (!(e instanceof n.Dict))
- throw new i.FormatError('Invalid top-level pages dictionary.');
- return (0, i.shadow)(this, 'toplevelPagesDict', e);
- }
- get documentOutline() {
- let e = null;
- try {
- e = this._readDocumentOutline();
- } catch (e) {
- if (e instanceof r.MissingDataException) throw e;
- (0, i.warn)('Unable to read document outline.');
- }
- return (0, i.shadow)(this, 'documentOutline', e);
- }
- _readDocumentOutline() {
- let e = this._catDict.get('Outlines');
- if (!(e instanceof n.Dict)) return null;
- e = e.getRaw('First');
- if (!(e instanceof n.Ref)) return null;
- const t = { items: [] },
- a = [{ obj: e, parent: t }],
- r = new n.RefSet();
- r.put(e);
- const s = this.xref,
- o = new Uint8ClampedArray(3);
- for (; a.length > 0; ) {
- const t = a.shift(),
- c = s.fetchIfRef(t.obj);
- if (null === c) continue;
- if (!c.has('Title')) throw new i.FormatError('Invalid outline item encountered.');
- const h = { url: null, dest: null, action: null };
- Catalog.parseDestDictionary({
- destDict: c,
- resultObj: h,
- docBaseUrl: this.pdfManager.docBaseUrl,
- docAttachments: this.attachments,
- });
- const u = c.get('Title'),
- d = c.get('F') || 0,
- f = c.getArray('C'),
- g = c.get('Count');
- let p = o;
- !Array.isArray(f) ||
- 3 !== f.length ||
- (0 === f[0] && 0 === f[1] && 0 === f[2]) ||
- (p = l.ColorSpace.singletons.rgb.getRgb(f, 0));
- const m = {
- action: h.action,
- attachment: h.attachment,
- dest: h.dest,
- url: h.url,
- unsafeUrl: h.unsafeUrl,
- newWindow: h.newWindow,
- setOCGState: h.setOCGState,
- title: (0, i.stringToPDFString)(u),
- color: p,
- count: Number.isInteger(g) ? g : void 0,
- bold: !!(2 & d),
- italic: !!(1 & d),
- items: [],
- };
- t.parent.items.push(m);
- e = c.getRaw('First');
- if (e instanceof n.Ref && !r.has(e)) {
- a.push({ obj: e, parent: m });
- r.put(e);
- }
- e = c.getRaw('Next');
- if (e instanceof n.Ref && !r.has(e)) {
- a.push({ obj: e, parent: t.parent });
- r.put(e);
- }
- }
- return t.items.length > 0 ? t.items : null;
- }
- get permissions() {
- let e = null;
- try {
- e = this._readPermissions();
- } catch (e) {
- if (e instanceof r.MissingDataException) throw e;
- (0, i.warn)('Unable to read permissions.');
- }
- return (0, i.shadow)(this, 'permissions', e);
- }
- _readPermissions() {
- const e = this.xref.trailer.get('Encrypt');
- if (!(e instanceof n.Dict)) return null;
- let t = e.get('P');
- if ('number' != typeof t) return null;
- t += 2 ** 32;
- const a = [];
- for (const e in i.PermissionFlag) {
- const r = i.PermissionFlag[e];
- t & r && a.push(r);
- }
- return a;
- }
- get optionalContentConfig() {
- let e = null;
- try {
- const t = this._catDict.get('OCProperties');
- if (!t) return (0, i.shadow)(this, 'optionalContentConfig', null);
- const a = t.get('D');
- if (!a) return (0, i.shadow)(this, 'optionalContentConfig', null);
- const r = t.get('OCGs');
- if (!Array.isArray(r)) return (0, i.shadow)(this, 'optionalContentConfig', null);
- const s = [],
- o = [];
- for (const e of r) {
- if (!(e instanceof n.Ref)) continue;
- o.push(e);
- const t = this.xref.fetchIfRef(e);
- s.push({
- id: e.toString(),
- name:
- 'string' == typeof t.get('Name')
- ? (0, i.stringToPDFString)(t.get('Name'))
- : null,
- intent:
- 'string' == typeof t.get('Intent')
- ? (0, i.stringToPDFString)(t.get('Intent'))
- : null,
- });
- }
- e = this._readOptionalContentConfig(a, o);
- e.groups = s;
- } catch (e) {
- if (e instanceof r.MissingDataException) throw e;
- (0, i.warn)(`Unable to read optional content config: ${e}`);
- }
- return (0, i.shadow)(this, 'optionalContentConfig', e);
- }
- _readOptionalContentConfig(e, t) {
- function parseOnOff(e) {
- const a = [];
- if (Array.isArray(e))
- for (const r of e) r instanceof n.Ref && t.includes(r) && a.push(r.toString());
- return a;
- }
- function parseOrder(e, a = 0) {
- if (!Array.isArray(e)) return null;
- const i = [];
- for (const s of e) {
- if (s instanceof n.Ref && t.includes(s)) {
- r.put(s);
- i.push(s.toString());
- continue;
- }
- const e = parseNestedOrder(s, a);
- e && i.push(e);
- }
- if (a > 0) return i;
- const s = [];
- for (const e of t) r.has(e) || s.push(e.toString());
- s.length && i.push({ name: null, order: s });
- return i;
- }
- function parseNestedOrder(e, t) {
- if (++t > s) {
- (0, i.warn)('parseNestedOrder - reached MAX_NESTED_LEVELS.');
- return null;
- }
- const r = a.fetchIfRef(e);
- if (!Array.isArray(r)) return null;
- const n = a.fetchIfRef(r[0]);
- if ('string' != typeof n) return null;
- const o = parseOrder(r.slice(1), t);
- return o && o.length ? { name: (0, i.stringToPDFString)(n), order: o } : null;
- }
- const a = this.xref,
- r = new n.RefSet(),
- s = 10;
- return {
- name:
- 'string' == typeof e.get('Name') ? (0, i.stringToPDFString)(e.get('Name')) : null,
- creator:
- 'string' == typeof e.get('Creator')
- ? (0, i.stringToPDFString)(e.get('Creator'))
- : null,
- baseState: e.get('BaseState') instanceof n.Name ? e.get('BaseState').name : null,
- on: parseOnOff(e.get('ON')),
- off: parseOnOff(e.get('OFF')),
- order: parseOrder(e.get('Order')),
- groups: null,
- };
- }
- setActualNumPages(e = null) {
- this._actualNumPages = e;
- }
- get hasActualNumPages() {
- return null !== this._actualNumPages;
- }
- get _pagesCount() {
- const e = this.toplevelPagesDict.get('Count');
- if (!Number.isInteger(e))
- throw new i.FormatError(
- 'Page count in top-level pages dictionary is not an integer.',
- );
- return (0, i.shadow)(this, '_pagesCount', e);
- }
- get numPages() {
- return this.hasActualNumPages ? this._actualNumPages : this._pagesCount;
- }
- get destinations() {
- const e = this._readDests(),
- t = Object.create(null);
- if (e instanceof s.NameTree)
- for (const [a, r] of e.getAll()) {
- const e = fetchDestination(r);
- e && (t[(0, i.stringToPDFString)(a)] = e);
- }
- else
- e instanceof n.Dict &&
- e.forEach(function (e, a) {
- const r = fetchDestination(a);
- r && (t[e] = r);
- });
- return (0, i.shadow)(this, 'destinations', t);
- }
- getDestination(e) {
- const t = this._readDests();
- if (t instanceof s.NameTree) {
- const a = fetchDestination(t.get(e));
- if (a) return a;
- const r = this.destinations[e];
- if (r) {
- (0, i.warn)(`Found "${e}" at an incorrect position in the NameTree.`);
- return r;
- }
- } else if (t instanceof n.Dict) {
- const a = fetchDestination(t.get(e));
- if (a) return a;
- }
- return null;
- }
- _readDests() {
- const e = this._catDict.get('Names');
- return e && e.has('Dests')
- ? new s.NameTree(e.getRaw('Dests'), this.xref)
- : this._catDict.has('Dests')
- ? this._catDict.get('Dests')
- : void 0;
- }
- get pageLabels() {
- let e = null;
- try {
- e = this._readPageLabels();
- } catch (e) {
- if (e instanceof r.MissingDataException) throw e;
- (0, i.warn)('Unable to read page labels.');
- }
- return (0, i.shadow)(this, 'pageLabels', e);
- }
- _readPageLabels() {
- const e = this._catDict.getRaw('PageLabels');
- if (!e) return null;
- const t = new Array(this.numPages);
- let a = null,
- o = '';
- const c = new s.NumberTree(e, this.xref).getAll();
- let l = '',
- h = 1;
- for (let e = 0, s = this.numPages; e < s; e++) {
- const s = c.get(e);
- if (void 0 !== s) {
- if (!(s instanceof n.Dict))
- throw new i.FormatError('PageLabel is not a dictionary.');
- if (s.has('Type') && !(0, n.isName)(s.get('Type'), 'PageLabel'))
- throw new i.FormatError('Invalid type in PageLabel dictionary.');
- if (s.has('S')) {
- const e = s.get('S');
- if (!(e instanceof n.Name))
- throw new i.FormatError('Invalid style in PageLabel dictionary.');
- a = e.name;
- } else a = null;
- if (s.has('P')) {
- const e = s.get('P');
- if ('string' != typeof e)
- throw new i.FormatError('Invalid prefix in PageLabel dictionary.');
- o = (0, i.stringToPDFString)(e);
- } else o = '';
- if (s.has('St')) {
- const e = s.get('St');
- if (!(Number.isInteger(e) && e >= 1))
- throw new i.FormatError('Invalid start in PageLabel dictionary.');
- h = e;
- } else h = 1;
- }
- switch (a) {
- case 'D':
- l = h;
- break;
- case 'R':
- case 'r':
- l = (0, r.toRomanNumerals)(h, 'r' === a);
- break;
- case 'A':
- case 'a':
- const e = 26,
- t = 'a' === a ? 97 : 65,
- n = h - 1;
- l = String.fromCharCode(t + (n % e)).repeat(Math.floor(n / e) + 1);
- break;
- default:
- if (a) throw new i.FormatError(`Invalid style "${a}" in PageLabel dictionary.`);
- l = '';
- }
- t[e] = o + l;
- h++;
- }
- return t;
- }
- get pageLayout() {
- const e = this._catDict.get('PageLayout');
- let t = '';
- if (e instanceof n.Name)
- switch (e.name) {
- case 'SinglePage':
- case 'OneColumn':
- case 'TwoColumnLeft':
- case 'TwoColumnRight':
- case 'TwoPageLeft':
- case 'TwoPageRight':
- t = e.name;
- }
- return (0, i.shadow)(this, 'pageLayout', t);
- }
- get pageMode() {
- const e = this._catDict.get('PageMode');
- let t = 'UseNone';
- if (e instanceof n.Name)
- switch (e.name) {
- case 'UseNone':
- case 'UseOutlines':
- case 'UseThumbs':
- case 'FullScreen':
- case 'UseOC':
- case 'UseAttachments':
- t = e.name;
- }
- return (0, i.shadow)(this, 'pageMode', t);
- }
- get viewerPreferences() {
- const e = this._catDict.get('ViewerPreferences');
- if (!(e instanceof n.Dict)) return (0, i.shadow)(this, 'viewerPreferences', null);
- let t = null;
- for (const a of e.getKeys()) {
- const r = e.get(a);
- let s;
- switch (a) {
- case 'HideToolbar':
- case 'HideMenubar':
- case 'HideWindowUI':
- case 'FitWindow':
- case 'CenterWindow':
- case 'DisplayDocTitle':
- case 'PickTrayByPDFSize':
- 'boolean' == typeof r && (s = r);
- break;
- case 'NonFullScreenPageMode':
- if (r instanceof n.Name)
- switch (r.name) {
- case 'UseNone':
- case 'UseOutlines':
- case 'UseThumbs':
- case 'UseOC':
- s = r.name;
- break;
- default:
- s = 'UseNone';
- }
- break;
- case 'Direction':
- if (r instanceof n.Name)
- switch (r.name) {
- case 'L2R':
- case 'R2L':
- s = r.name;
- break;
- default:
- s = 'L2R';
- }
- break;
- case 'ViewArea':
- case 'ViewClip':
- case 'PrintArea':
- case 'PrintClip':
- if (r instanceof n.Name)
- switch (r.name) {
- case 'MediaBox':
- case 'CropBox':
- case 'BleedBox':
- case 'TrimBox':
- case 'ArtBox':
- s = r.name;
- break;
- default:
- s = 'CropBox';
- }
- break;
- case 'PrintScaling':
- if (r instanceof n.Name)
- switch (r.name) {
- case 'None':
- case 'AppDefault':
- s = r.name;
- break;
- default:
- s = 'AppDefault';
- }
- break;
- case 'Duplex':
- if (r instanceof n.Name)
- switch (r.name) {
- case 'Simplex':
- case 'DuplexFlipShortEdge':
- case 'DuplexFlipLongEdge':
- s = r.name;
- break;
- default:
- s = 'None';
- }
- break;
- case 'PrintPageRange':
- if (Array.isArray(r) && r.length % 2 == 0) {
- r.every(
- (e, t, a) =>
- Number.isInteger(e) &&
- e > 0 &&
- (0 === t || e >= a[t - 1]) &&
- e <= this.numPages,
- ) && (s = r);
- }
- break;
- case 'NumCopies':
- Number.isInteger(r) && r > 0 && (s = r);
- break;
- default:
- (0, i.warn)(`Ignoring non-standard key in ViewerPreferences: ${a}.`);
- continue;
- }
- if (void 0 !== s) {
- t || (t = Object.create(null));
- t[a] = s;
- } else (0, i.warn)(`Bad value, for key "${a}", in ViewerPreferences: ${r}.`);
- }
- return (0, i.shadow)(this, 'viewerPreferences', t);
- }
- get openAction() {
- const e = this._catDict.get('OpenAction'),
- t = Object.create(null);
- if (e instanceof n.Dict) {
- const a = new n.Dict(this.xref);
- a.set('A', e);
- const r = { url: null, dest: null, action: null };
- Catalog.parseDestDictionary({ destDict: a, resultObj: r });
- Array.isArray(r.dest) ? (t.dest = r.dest) : r.action && (t.action = r.action);
- } else Array.isArray(e) && (t.dest = e);
- return (0, i.shadow)(this, 'openAction', (0, i.objectSize)(t) > 0 ? t : null);
- }
- get attachments() {
- const e = this._catDict.get('Names');
- let t = null;
- if (e instanceof n.Dict && e.has('EmbeddedFiles')) {
- const a = new s.NameTree(e.getRaw('EmbeddedFiles'), this.xref);
- for (const [e, r] of a.getAll()) {
- const a = new h.FileSpec(r, this.xref);
- t || (t = Object.create(null));
- t[(0, i.stringToPDFString)(e)] = a.serializable;
- }
- }
- return (0, i.shadow)(this, 'attachments', t);
- }
- get xfaImages() {
- const e = this._catDict.get('Names');
- let t = null;
- if (e instanceof n.Dict && e.has('XFAImages')) {
- const a = new s.NameTree(e.getRaw('XFAImages'), this.xref);
- for (const [e, r] of a.getAll()) {
- t || (t = new n.Dict(this.xref));
- t.set((0, i.stringToPDFString)(e), r);
- }
- }
- return (0, i.shadow)(this, 'xfaImages', t);
- }
- _collectJavaScript() {
- const e = this._catDict.get('Names');
- let t = null;
- function appendIfJavaScriptDict(e, a) {
- if (!(a instanceof n.Dict)) return;
- if (!(0, n.isName)(a.get('S'), 'JavaScript')) return;
- let r = a.get('JS');
- if (r instanceof o.BaseStream) r = r.getString();
- else if ('string' != typeof r) return;
- r = (0, i.stringToPDFString)(r).replaceAll('\0', '');
- (t ||= new Map()).set(e, r);
- }
- if (e instanceof n.Dict && e.has('JavaScript')) {
- const t = new s.NameTree(e.getRaw('JavaScript'), this.xref);
- for (const [e, a] of t.getAll())
- appendIfJavaScriptDict((0, i.stringToPDFString)(e), a);
- }
- const a = this._catDict.get('OpenAction');
- a && appendIfJavaScriptDict('OpenAction', a);
- return t;
- }
- get javaScript() {
- const e = this._collectJavaScript();
- return (0, i.shadow)(this, 'javaScript', e ? [...e.values()] : null);
- }
- get jsActions() {
- const e = this._collectJavaScript();
- let t = (0, r.collectActions)(this.xref, this._catDict, i.DocumentActionEventType);
- if (e) {
- t || (t = Object.create(null));
- for (const [a, r] of e) a in t ? t[a].push(r) : (t[a] = [r]);
- }
- return (0, i.shadow)(this, 'jsActions', t);
- }
- async fontFallback(e, t) {
- const a = await Promise.all(this.fontCache);
- for (const r of a)
- if (r.loadedName === e) {
- r.fallback(t);
- return;
- }
- }
- async cleanup(e = !1) {
- (0, c.clearGlobalCaches)();
- this.globalImageCache.clear(e);
- this.pageKidsCountCache.clear();
- this.pageIndexCache.clear();
- this.nonBlendModesSet.clear();
- const t = await Promise.all(this.fontCache);
- for (const { dict: e } of t) delete e.cacheKey;
- this.fontCache.clear();
- this.builtInCMapCache.clear();
- this.standardFontDataCache.clear();
- }
- async getPageDict(e) {
- const t = [this.toplevelPagesDict],
- a = new n.RefSet(),
- r = this._catDict.getRaw('Pages');
- r instanceof n.Ref && a.put(r);
- const s = this.xref,
- o = this.pageKidsCountCache,
- c = this.pageIndexCache;
- let l = 0;
- for (; t.length; ) {
- const r = t.pop();
- if (r instanceof n.Ref) {
- const h = o.get(r);
- if (h >= 0 && l + h <= e) {
- l += h;
- continue;
- }
- if (a.has(r)) throw new i.FormatError('Pages tree contains circular reference.');
- a.put(r);
- const u = await s.fetchAsync(r);
- if (u instanceof n.Dict) {
- let t = u.getRaw('Type');
- t instanceof n.Ref && (t = await s.fetchAsync(t));
- if ((0, n.isName)(t, 'Page') || !u.has('Kids')) {
- o.has(r) || o.put(r, 1);
- c.has(r) || c.put(r, l);
- if (l === e) return [u, r];
- l++;
- continue;
- }
- }
- t.push(u);
- continue;
- }
- if (!(r instanceof n.Dict))
- throw new i.FormatError(
- 'Page dictionary kid reference points to wrong type of object.',
- );
- const { objId: h } = r;
- let u = r.getRaw('Count');
- u instanceof n.Ref && (u = await s.fetchAsync(u));
- if (Number.isInteger(u) && u >= 0) {
- h && !o.has(h) && o.put(h, u);
- if (l + u <= e) {
- l += u;
- continue;
- }
- }
- let d = r.getRaw('Kids');
- d instanceof n.Ref && (d = await s.fetchAsync(d));
- if (!Array.isArray(d)) {
- let t = r.getRaw('Type');
- t instanceof n.Ref && (t = await s.fetchAsync(t));
- if ((0, n.isName)(t, 'Page') || !r.has('Kids')) {
- if (l === e) return [r, null];
- l++;
- continue;
- }
- throw new i.FormatError('Page dictionary kids object is not an array.');
- }
- for (let e = d.length - 1; e >= 0; e--) t.push(d[e]);
- }
- throw new Error(`Page index ${e} not found.`);
- }
- async getAllPageDicts(e = !1) {
- const { ignoreErrors: t } = this.pdfManager.evaluatorOptions,
- a = [{ currentNode: this.toplevelPagesDict, posInKids: 0 }],
- s = new n.RefSet(),
- o = this._catDict.getRaw('Pages');
- o instanceof n.Ref && s.put(o);
- const c = new Map(),
- l = this.xref,
- h = this.pageIndexCache;
- let u = 0;
- function addPageDict(e, t) {
- t && !h.has(t) && h.put(t, u);
- c.set(u++, [e, t]);
- }
- function addPageError(a) {
- if (a instanceof r.XRefEntryException && !e) throw a;
- if (e && t && 0 === u) {
- (0, i.warn)(`getAllPageDicts - Skipping invalid first page: "${a}".`);
- a = n.Dict.empty;
- }
- c.set(u++, [a, null]);
- }
- for (; a.length > 0; ) {
- const e = a.at(-1),
- { currentNode: t, posInKids: r } = e;
- let o = t.getRaw('Kids');
- if (o instanceof n.Ref)
- try {
- o = await l.fetchAsync(o);
- } catch (e) {
- addPageError(e);
- break;
- }
- if (!Array.isArray(o)) {
- addPageError(new i.FormatError('Page dictionary kids object is not an array.'));
- break;
- }
- if (r >= o.length) {
- a.pop();
- continue;
- }
- const c = o[r];
- let h;
- if (c instanceof n.Ref) {
- if (s.has(c)) {
- addPageError(new i.FormatError('Pages tree contains circular reference.'));
- break;
- }
- s.put(c);
- try {
- h = await l.fetchAsync(c);
- } catch (e) {
- addPageError(e);
- break;
- }
- } else h = c;
- if (!(h instanceof n.Dict)) {
- addPageError(
- new i.FormatError(
- 'Page dictionary kid reference points to wrong type of object.',
- ),
- );
- break;
- }
- let u = h.getRaw('Type');
- if (u instanceof n.Ref)
- try {
- u = await l.fetchAsync(u);
- } catch (e) {
- addPageError(e);
- break;
- }
- (0, n.isName)(u, 'Page') || !h.has('Kids')
- ? addPageDict(h, c instanceof n.Ref ? c : null)
- : a.push({ currentNode: h, posInKids: 0 });
- e.posInKids++;
- }
- return c;
- }
- getPageIndex(e) {
- const t = this.pageIndexCache.get(e);
- if (void 0 !== t) return Promise.resolve(t);
- const a = this.xref;
- let r = 0;
- const next = (t) =>
- (function pagesBeforeRef(t) {
- let r,
- s = 0;
- return a
- .fetchAsync(t)
- .then(function (a) {
- if (
- (0, n.isRefsEqual)(t, e) &&
- !(0, n.isDict)(a, 'Page') &&
- !(a instanceof n.Dict && !a.has('Type') && a.has('Contents'))
- )
- throw new i.FormatError(
- 'The reference does not point to a /Page dictionary.',
- );
- if (!a) return null;
- if (!(a instanceof n.Dict))
- throw new i.FormatError('Node must be a dictionary.');
- r = a.getRaw('Parent');
- return a.getAsync('Parent');
- })
- .then(function (e) {
- if (!e) return null;
- if (!(e instanceof n.Dict))
- throw new i.FormatError('Parent must be a dictionary.');
- return e.getAsync('Kids');
- })
- .then(function (e) {
- if (!e) return null;
- const o = [];
- let c = !1;
- for (const r of e) {
- if (!(r instanceof n.Ref))
- throw new i.FormatError('Kid must be a reference.');
- if ((0, n.isRefsEqual)(r, t)) {
- c = !0;
- break;
- }
- o.push(
- a.fetchAsync(r).then(function (e) {
- if (!(e instanceof n.Dict))
- throw new i.FormatError('Kid node must be a dictionary.');
- e.has('Count') ? (s += e.get('Count')) : s++;
- }),
- );
- }
- if (!c) throw new i.FormatError("Kid reference not found in parent's kids.");
- return Promise.all(o).then(function () {
- return [s, r];
- });
- });
- })(t).then((t) => {
- if (!t) {
- this.pageIndexCache.put(e, r);
- return r;
- }
- const [a, i] = t;
- r += a;
- return next(i);
- });
- return next(e);
- }
- get baseUrl() {
- const e = this._catDict.get('URI');
- if (e instanceof n.Dict) {
- const t = e.get('Base');
- if ('string' == typeof t) {
- const e = (0, i.createValidAbsoluteUrl)(t, null, { tryConvertEncoding: !0 });
- if (e) return (0, i.shadow)(this, 'baseUrl', e.href);
- }
- }
- return (0, i.shadow)(this, 'baseUrl', null);
- }
- static parseDestDictionary(e) {
- const t = e.destDict;
- if (!(t instanceof n.Dict)) {
- (0, i.warn)('parseDestDictionary: `destDict` must be a dictionary.');
- return;
- }
- const a = e.resultObj;
- if ('object' != typeof a) {
- (0, i.warn)('parseDestDictionary: `resultObj` must be an object.');
- return;
- }
- const s = e.docBaseUrl || null,
- c = e.docAttachments || null;
- let l,
- h,
- u = t.get('A');
- if (!(u instanceof n.Dict))
- if (t.has('Dest')) u = t.get('Dest');
- else {
- u = t.get('AA');
- u instanceof n.Dict &&
- (u.has('D') ? (u = u.get('D')) : u.has('U') && (u = u.get('U')));
- }
- if (u instanceof n.Dict) {
- const e = u.get('S');
- if (!(e instanceof n.Name)) {
- (0, i.warn)('parseDestDictionary: Invalid type in Action dictionary.');
- return;
- }
- const t = e.name;
- switch (t) {
- case 'ResetForm':
- const e = u.get('Flags'),
- s = 0 == (1 & ('number' == typeof e ? e : 0)),
- d = [],
- f = [];
- for (const e of u.get('Fields') || [])
- e instanceof n.Ref
- ? f.push(e.toString())
- : 'string' == typeof e && d.push((0, i.stringToPDFString)(e));
- a.resetForm = { fields: d, refs: f, include: s };
- break;
- case 'URI':
- l = u.get('URI');
- l instanceof n.Name && (l = '/' + l.name);
- break;
- case 'GoTo':
- h = u.get('D');
- break;
- case 'Launch':
- case 'GoToR':
- const g = u.get('F');
- g instanceof n.Dict
- ? (l = g.get('F') || null)
- : 'string' == typeof g && (l = g);
- let p = u.get('D');
- if (p) {
- p instanceof n.Name && (p = p.name);
- if ('string' == typeof l) {
- const e = l.split('#')[0];
- 'string' == typeof p
- ? (l = e + '#' + p)
- : Array.isArray(p) && (l = e + '#' + JSON.stringify(p));
- }
- }
- const m = u.get('NewWindow');
- 'boolean' == typeof m && (a.newWindow = m);
- break;
- case 'GoToE':
- const b = u.get('T');
- let y;
- if (c && b instanceof n.Dict) {
- const e = b.get('R'),
- t = b.get('N');
- (0, n.isName)(e, 'C') &&
- 'string' == typeof t &&
- (y = c[(0, i.stringToPDFString)(t)]);
- }
- y
- ? (a.attachment = y)
- : (0, i.warn)('parseDestDictionary - unimplemented "GoToE" action.');
- break;
- case 'Named':
- const w = u.get('N');
- w instanceof n.Name && (a.action = w.name);
- break;
- case 'SetOCGState':
- const S = u.get('State'),
- x = u.get('PreserveRB');
- if (!Array.isArray(S) || 0 === S.length) break;
- const C = [];
- for (const e of S)
- if (e instanceof n.Name)
- switch (e.name) {
- case 'ON':
- case 'OFF':
- case 'Toggle':
- C.push(e.name);
- }
- else e instanceof n.Ref && C.push(e.toString());
- if (C.length !== S.length) break;
- a.setOCGState = { state: C, preserveRB: 'boolean' != typeof x || x };
- break;
- case 'JavaScript':
- const k = u.get('JS');
- let v;
- k instanceof o.BaseStream
- ? (v = k.getString())
- : 'string' == typeof k && (v = k);
- const F = v && (0, r.recoverJsURL)((0, i.stringToPDFString)(v));
- if (F) {
- l = F.url;
- a.newWindow = F.newWindow;
- break;
- }
- default:
- if ('JavaScript' === t || 'SubmitForm' === t) break;
- (0, i.warn)(`parseDestDictionary - unsupported action: "${t}".`);
- }
- } else t.has('Dest') && (h = t.get('Dest'));
- if ('string' == typeof l) {
- const e = (0, i.createValidAbsoluteUrl)(l, s, {
- addDefaultProtocol: !0,
- tryConvertEncoding: !0,
- });
- e && (a.url = e.href);
- a.unsafeUrl = l;
- }
- if (h) {
- h instanceof n.Name && (h = h.name);
- 'string' == typeof h
- ? (a.dest = (0, i.stringToPDFString)(h))
- : Array.isArray(h) && (a.dest = h);
- }
- }
- }
- t.Catalog = Catalog;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.NumberTree = t.NameTree = void 0;
- var r = a(4),
- i = a(2);
- class NameOrNumberTree {
- constructor(e, t, a) {
- this.constructor === NameOrNumberTree &&
- (0, i.unreachable)('Cannot initialize NameOrNumberTree.');
- this.root = e;
- this.xref = t;
- this._type = a;
- }
- getAll() {
- const e = new Map();
- if (!this.root) return e;
- const t = this.xref,
- a = new r.RefSet();
- a.put(this.root);
- const n = [this.root];
- for (; n.length > 0; ) {
- const s = t.fetchIfRef(n.shift());
- if (!(s instanceof r.Dict)) continue;
- if (s.has('Kids')) {
- const e = s.get('Kids');
- if (!Array.isArray(e)) continue;
- for (const t of e) {
- if (a.has(t))
- throw new i.FormatError(`Duplicate entry in "${this._type}" tree.`);
- n.push(t);
- a.put(t);
- }
- continue;
- }
- const o = s.get(this._type);
- if (Array.isArray(o))
- for (let a = 0, r = o.length; a < r; a += 2)
- e.set(t.fetchIfRef(o[a]), t.fetchIfRef(o[a + 1]));
- }
- return e;
- }
- get(e) {
- if (!this.root) return null;
- const t = this.xref;
- let a = t.fetchIfRef(this.root),
- r = 0;
- for (; a.has('Kids'); ) {
- if (++r > 10) {
- (0, i.warn)(`Search depth limit reached for "${this._type}" tree.`);
- return null;
- }
- const n = a.get('Kids');
- if (!Array.isArray(n)) return null;
- let s = 0,
- o = n.length - 1;
- for (; s <= o; ) {
- const r = (s + o) >> 1,
- i = t.fetchIfRef(n[r]),
- c = i.get('Limits');
- if (e < t.fetchIfRef(c[0])) o = r - 1;
- else {
- if (!(e > t.fetchIfRef(c[1]))) {
- a = i;
- break;
- }
- s = r + 1;
- }
- }
- if (s > o) return null;
- }
- const n = a.get(this._type);
- if (Array.isArray(n)) {
- let a = 0,
- r = n.length - 2;
- for (; a <= r; ) {
- const i = (a + r) >> 1,
- s = i + (1 & i),
- o = t.fetchIfRef(n[s]);
- if (e < o) r = s - 2;
- else {
- if (!(e > o)) return t.fetchIfRef(n[s + 1]);
- a = s + 2;
- }
- }
- }
- return null;
- }
- }
- t.NameTree = class NameTree extends NameOrNumberTree {
- constructor(e, t) {
- super(e, t, 'Names');
- }
- };
- t.NumberTree = class NumberTree extends NameOrNumberTree {
- constructor(e, t) {
- super(e, t, 'Nums');
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.clearGlobalCaches = function clearGlobalCaches() {
- (0, r.clearPrimitiveCaches)();
- (0, i.clearUnicodeCaches)();
- };
- var r = a(4),
- i = a(40);
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.FileSpec = void 0;
- var r = a(2),
- i = a(5),
- n = a(4);
- function pickPlatformItem(e) {
- return e.has('UF')
- ? e.get('UF')
- : e.has('F')
- ? e.get('F')
- : e.has('Unix')
- ? e.get('Unix')
- : e.has('Mac')
- ? e.get('Mac')
- : e.has('DOS')
- ? e.get('DOS')
- : null;
- }
- t.FileSpec = class FileSpec {
- constructor(e, t) {
- if (e instanceof n.Dict) {
- this.xref = t;
- this.root = e;
- e.has('FS') && (this.fs = e.get('FS'));
- this.description = e.has('Desc') ? (0, r.stringToPDFString)(e.get('Desc')) : '';
- e.has('RF') && (0, r.warn)('Related file specifications are not supported');
- this.contentAvailable = !0;
- if (!e.has('EF')) {
- this.contentAvailable = !1;
- (0, r.warn)('Non-embedded file specifications are not supported');
- }
- }
- }
- get filename() {
- if (!this._filename && this.root) {
- const e = pickPlatformItem(this.root) || 'unnamed';
- this._filename = (0, r.stringToPDFString)(e)
- .replaceAll('\\\\', '\\')
- .replaceAll('\\/', '/')
- .replaceAll('\\', '/');
- }
- return this._filename;
- }
- get content() {
- if (!this.contentAvailable) return null;
- !this.contentRef &&
- this.root &&
- (this.contentRef = pickPlatformItem(this.root.get('EF')));
- let e = null;
- if (this.contentRef) {
- const t = this.xref.fetchIfRef(this.contentRef);
- t instanceof i.BaseStream
- ? (e = t.getBytes())
- : (0, r.warn)(
- 'Embedded file specification points to non-existing/invalid content',
- );
- } else (0, r.warn)('Embedded file specification does not have a content');
- return e;
- }
- get serializable() {
- return { filename: this.filename, content: this.content };
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.MetadataParser = void 0;
- var r = a(66);
- t.MetadataParser = class MetadataParser {
- constructor(e) {
- e = this._repair(e);
- const t = new r.SimpleXMLParser({ lowerCaseName: !0 }).parseFromString(e);
- this._metadataMap = new Map();
- this._data = e;
- t && this._parse(t);
- }
- _repair(e) {
- return e.replace(/^[^<]+/, '').replaceAll(/>\\376\\377([^<]+)/g, function (e, t) {
- const a = t
- .replaceAll(/\\([0-3])([0-7])([0-7])/g, function (e, t, a, r) {
- return String.fromCharCode(64 * t + 8 * a + 1 * r);
- })
- .replaceAll(/&(amp|apos|gt|lt|quot);/g, function (e, t) {
- switch (t) {
- case 'amp':
- return '&';
- case 'apos':
- return "'";
- case 'gt':
- return '>';
- case 'lt':
- return '<';
- case 'quot':
- return '"';
- }
- throw new Error(`_repair: ${t} isn't defined.`);
- }),
- r = ['>'];
- for (let e = 0, t = a.length; e < t; e += 2) {
- const t = 256 * a.charCodeAt(e) + a.charCodeAt(e + 1);
- t >= 32 && t < 127 && 60 !== t && 62 !== t && 38 !== t
- ? r.push(String.fromCharCode(t))
- : r.push('' + (65536 + t).toString(16).substring(1) + ';');
- }
- return r.join('');
- });
- }
- _getSequence(e) {
- const t = e.nodeName;
- return 'rdf:bag' !== t && 'rdf:seq' !== t && 'rdf:alt' !== t
- ? null
- : e.childNodes.filter((e) => 'rdf:li' === e.nodeName);
- }
- _parseArray(e) {
- if (!e.hasChildNodes()) return;
- const [t] = e.childNodes,
- a = this._getSequence(t) || [];
- this._metadataMap.set(
- e.nodeName,
- a.map((e) => e.textContent.trim()),
- );
- }
- _parse(e) {
- let t = e.documentElement;
- if ('rdf:rdf' !== t.nodeName) {
- t = t.firstChild;
- for (; t && 'rdf:rdf' !== t.nodeName; ) t = t.nextSibling;
- }
- if (t && 'rdf:rdf' === t.nodeName && t.hasChildNodes())
- for (const e of t.childNodes)
- if ('rdf:description' === e.nodeName)
- for (const t of e.childNodes) {
- const e = t.nodeName;
- switch (e) {
- case '#text':
- continue;
- case 'dc:creator':
- case 'dc:subject':
- this._parseArray(t);
- continue;
- }
- this._metadataMap.set(e, t.textContent.trim());
- }
- }
- get serializable() {
- return { parsedData: this._metadataMap, rawData: this._data };
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.StructTreeRoot = t.StructTreePage = void 0;
- var r = a(4),
- i = a(2),
- n = a(70);
- const s = 'PAGE_CONTENT',
- o = 'STREAM_CONTENT',
- c = 'OBJECT',
- l = 'ELEMENT';
- t.StructTreeRoot = class StructTreeRoot {
- constructor(e) {
- this.dict = e;
- this.roleMap = new Map();
- }
- init() {
- this.readRoleMap();
- }
- readRoleMap() {
- const e = this.dict.get('RoleMap');
- e instanceof r.Dict &&
- e.forEach((e, t) => {
- t instanceof r.Name && this.roleMap.set(e, t.name);
- });
- }
- };
- class StructElementNode {
- constructor(e, t) {
- this.tree = e;
- this.dict = t;
- this.kids = [];
- this.parseKids();
- }
- get role() {
- const e = this.dict.get('S'),
- t = e instanceof r.Name ? e.name : '',
- { root: a } = this.tree;
- return a.roleMap.has(t) ? a.roleMap.get(t) : t;
- }
- parseKids() {
- let e = null;
- const t = this.dict.getRaw('Pg');
- t instanceof r.Ref && (e = t.toString());
- const a = this.dict.get('K');
- if (Array.isArray(a))
- for (const t of a) {
- const a = this.parseKid(e, t);
- a && this.kids.push(a);
- }
- else {
- const t = this.parseKid(e, a);
- t && this.kids.push(t);
- }
- }
- parseKid(e, t) {
- if (Number.isInteger(t))
- return this.tree.pageDict.objId !== e
- ? null
- : new StructElement({ type: s, mcid: t, pageObjId: e });
- let a = null;
- t instanceof r.Ref ? (a = this.dict.xref.fetch(t)) : t instanceof r.Dict && (a = t);
- if (!a) return null;
- const i = a.getRaw('Pg');
- i instanceof r.Ref && (e = i.toString());
- const n = a.get('Type') instanceof r.Name ? a.get('Type').name : null;
- return 'MCR' === n
- ? this.tree.pageDict.objId !== e
- ? null
- : new StructElement({
- type: o,
- refObjId:
- a.getRaw('Stm') instanceof r.Ref ? a.getRaw('Stm').toString() : null,
- pageObjId: e,
- mcid: a.get('MCID'),
- })
- : 'OBJR' === n
- ? this.tree.pageDict.objId !== e
- ? null
- : new StructElement({
- type: c,
- refObjId:
- a.getRaw('Obj') instanceof r.Ref ? a.getRaw('Obj').toString() : null,
- pageObjId: e,
- })
- : new StructElement({ type: l, dict: a });
- }
- }
- class StructElement {
- constructor({
- type: e,
- dict: t = null,
- mcid: a = null,
- pageObjId: r = null,
- refObjId: i = null,
- }) {
- this.type = e;
- this.dict = t;
- this.mcid = a;
- this.pageObjId = r;
- this.refObjId = i;
- this.parentNode = null;
- }
- }
- t.StructTreePage = class StructTreePage {
- constructor(e, t) {
- this.root = e;
- this.rootDict = e ? e.dict : null;
- this.pageDict = t;
- this.nodes = [];
- }
- parse() {
- if (!this.root || !this.rootDict) return;
- const e = this.rootDict.get('ParentTree');
- if (!e) return;
- const t = this.pageDict.get('StructParents');
- if (!Number.isInteger(t)) return;
- const a = new n.NumberTree(e, this.rootDict.xref).get(t);
- if (!Array.isArray(a)) return;
- const i = new Map();
- for (const e of a) e instanceof r.Ref && this.addNode(this.rootDict.xref.fetch(e), i);
- }
- addNode(e, t, a = 0) {
- if (a > 40) {
- (0, i.warn)('StructTree MAX_DEPTH reached.');
- return null;
- }
- if (t.has(e)) return t.get(e);
- const n = new StructElementNode(this, e);
- t.set(e, n);
- const s = e.get('P');
- if (!s || (0, r.isName)(s.get('Type'), 'StructTreeRoot')) {
- this.addTopLevelNode(e, n) || t.delete(e);
- return n;
- }
- const o = this.addNode(s, t, a + 1);
- if (!o) return n;
- let c = !1;
- for (const t of o.kids)
- if (t.type === l && t.dict === e) {
- t.parentNode = n;
- c = !0;
- }
- c || t.delete(e);
- return n;
- }
- addTopLevelNode(e, t) {
- const a = this.rootDict.get('K');
- if (!a) return !1;
- if (a instanceof r.Dict) {
- if (a.objId !== e.objId) return !1;
- this.nodes[0] = t;
- return !0;
- }
- if (!Array.isArray(a)) return !0;
- let i = !1;
- for (let r = 0; r < a.length; r++) {
- const n = a[r];
- if (n && n.toString() === e.objId) {
- this.nodes[r] = t;
- i = !0;
- }
- }
- return i;
- }
- get serializable() {
- function nodeToSerializable(e, t, a = 0) {
- if (a > 40) {
- (0, i.warn)('StructTree too deep to be fully serialized.');
- return;
- }
- const r = Object.create(null);
- r.role = e.role;
- r.children = [];
- t.children.push(r);
- const n = e.dict.get('Alt');
- 'string' == typeof n && (r.alt = (0, i.stringToPDFString)(n));
- const h = e.dict.get('Lang');
- 'string' == typeof h && (r.lang = (0, i.stringToPDFString)(h));
- for (const t of e.kids) {
- const e = t.type === l ? t.parentNode : null;
- e
- ? nodeToSerializable(e, r, a + 1)
- : t.type === s || t.type === o
- ? r.children.push({ type: 'content', id: `page${t.pageObjId}_mcid${t.mcid}` })
- : t.type === c && r.children.push({ type: 'object', id: t.refObjId });
- }
- }
- const e = Object.create(null);
- e.children = [];
- e.role = 'Root';
- for (const t of this.nodes) t && nodeToSerializable(t, e);
- return e;
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.ObjectLoader = void 0;
- var r = a(4),
- i = a(5),
- n = a(3),
- s = a(2);
- function addChildren(e, t) {
- if (e instanceof r.Dict) e = e.getRawValues();
- else if (e instanceof i.BaseStream) e = e.dict.getRawValues();
- else if (!Array.isArray(e)) return;
- for (const n of e)
- ((a = n) instanceof r.Ref ||
- a instanceof r.Dict ||
- a instanceof i.BaseStream ||
- Array.isArray(a)) &&
- t.push(n);
- var a;
- }
- t.ObjectLoader = class ObjectLoader {
- constructor(e, t, a) {
- this.dict = e;
- this.keys = t;
- this.xref = a;
- this.refSet = null;
- }
- async load() {
- if (this.xref.stream.isDataLoaded) return;
- const { keys: e, dict: t } = this;
- this.refSet = new r.RefSet();
- const a = [];
- for (const r of e) {
- const e = t.getRaw(r);
- void 0 !== e && a.push(e);
- }
- return this._walk(a);
- }
- async _walk(e) {
- const t = [],
- a = [];
- for (; e.length; ) {
- let o = e.pop();
- if (o instanceof r.Ref) {
- if (this.refSet.has(o)) continue;
- try {
- this.refSet.put(o);
- o = this.xref.fetch(o);
- } catch (e) {
- if (!(e instanceof n.MissingDataException)) {
- (0, s.warn)(`ObjectLoader._walk - requesting all data: "${e}".`);
- this.refSet = null;
- const { manager: t } = this.xref.stream;
- return t.requestAllChunks();
- }
- t.push(o);
- a.push({ begin: e.begin, end: e.end });
- }
- }
- if (o instanceof i.BaseStream) {
- const e = o.getBaseStreams();
- if (e) {
- let r = !1;
- for (const t of e)
- if (!t.isDataLoaded) {
- r = !0;
- a.push({ begin: t.start, end: t.end });
- }
- r && t.push(o);
- }
- }
- addChildren(o, e);
- }
- if (a.length) {
- await this.xref.stream.manager.requestRanges(a);
- for (const e of t) e instanceof r.Ref && this.refSet.remove(e);
- return this._walk(t);
- }
- this.refSet = null;
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.XFAFactory = void 0;
- var r = a(77),
- i = a(81),
- n = a(87),
- s = a(85),
- o = a(78),
- c = a(2),
- l = a(88),
- h = a(98);
- class XFAFactory {
- constructor(e) {
- try {
- this.root = new l.XFAParser().parse(XFAFactory._createDocument(e));
- const t = new i.Binder(this.root);
- this.form = t.bind();
- this.dataHandler = new n.DataHandler(this.root, t.getData());
- this.form[r.$globalData].template = this.form;
- } catch (e) {
- (0, c.warn)(`XFA - an error occurred during parsing and binding: ${e}`);
- }
- }
- isValid() {
- return this.root && this.form;
- }
- _createPagesHelper() {
- const e = this.form[r.$toPages]();
- return new Promise((t, a) => {
- const nextIteration = () => {
- try {
- const a = e.next();
- a.done ? t(a.value) : setTimeout(nextIteration, 0);
- } catch (e) {
- a(e);
- }
- };
- setTimeout(nextIteration, 0);
- });
- }
- async _createPages() {
- try {
- this.pages = await this._createPagesHelper();
- this.dims = this.pages.children.map((e) => {
- const { width: t, height: a } = e.attributes.style;
- return [0, 0, parseInt(t), parseInt(a)];
- });
- } catch (e) {
- (0, c.warn)(`XFA - an error occurred during layout: ${e}`);
- }
- }
- getBoundingBox(e) {
- return this.dims[e];
- }
- async getNumPages() {
- this.pages || (await this._createPages());
- return this.dims.length;
- }
- setImages(e) {
- this.form[r.$globalData].images = e;
- }
- setFonts(e) {
- this.form[r.$globalData].fontFinder = new s.FontFinder(e);
- const t = [];
- for (let e of this.form[r.$globalData].usedTypefaces) {
- e = (0, o.stripQuotes)(e);
- this.form[r.$globalData].fontFinder.find(e) || t.push(e);
- }
- return t.length > 0 ? t : null;
- }
- appendFonts(e, t) {
- this.form[r.$globalData].fontFinder.add(e, t);
- }
- async getPages() {
- this.pages || (await this._createPages());
- const e = this.pages;
- this.pages = null;
- return e;
- }
- serializeData(e) {
- return this.dataHandler.serialize(e);
- }
- static _createDocument(e) {
- return e['/xdp:xdp'] ? Object.values(e).join('') : e['xdp:xdp'];
- }
- static getRichTextAsHtml(e) {
- if (!e || 'string' != typeof e) return null;
- try {
- let t = new l.XFAParser(h.XhtmlNamespace, !0).parse(e);
- if (!['body', 'xhtml'].includes(t[r.$nodeName])) {
- const e = h.XhtmlNamespace.body({});
- e[r.$appendChild](t);
- t = e;
- }
- const a = t[r.$toHTML]();
- if (!a.success) return null;
- const { html: i } = a,
- { attributes: n } = i;
- if (n) {
- n.class && (n.class = n.class.filter((e) => !e.startsWith('xfa')));
- n.dir = 'auto';
- }
- return { html: i, str: t[r.$text]() };
- } catch (e) {
- (0, c.warn)(`XFA - an error occurred during parsing of rich text: ${e}`);
- }
- return null;
- }
- }
- t.XFAFactory = XFAFactory;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.XmlObject =
- t.XFAObjectArray =
- t.XFAObject =
- t.XFAAttribute =
- t.StringObject =
- t.OptionObject =
- t.Option10 =
- t.Option01 =
- t.IntegerObject =
- t.ContentObject =
- t.$uid =
- t.$toStyle =
- t.$toString =
- t.$toPages =
- t.$toHTML =
- t.$text =
- t.$tabIndex =
- t.$setValue =
- t.$setSetAttributes =
- t.$setId =
- t.$searchNode =
- t.$root =
- t.$resolvePrototypes =
- t.$removeChild =
- t.$pushPara =
- t.$pushGlyphs =
- t.$popPara =
- t.$onText =
- t.$onChildCheck =
- t.$onChild =
- t.$nsAttributes =
- t.$nodeName =
- t.$namespaceId =
- t.$isUsable =
- t.$isTransparent =
- t.$isThereMoreWidth =
- t.$isSplittable =
- t.$isNsAgnostic =
- t.$isDescendent =
- t.$isDataValue =
- t.$isCDATAXml =
- t.$isBindable =
- t.$insertAt =
- t.$indexOf =
- t.$ids =
- t.$hasSettableValue =
- t.$globalData =
- t.$getTemplateRoot =
- t.$getSubformParent =
- t.$getRealChildrenByNameIt =
- t.$getParent =
- t.$getNextPage =
- t.$getExtra =
- t.$getDataValue =
- t.$getContainedChildren =
- t.$getChildrenByNameIt =
- t.$getChildrenByName =
- t.$getChildrenByClass =
- t.$getChildren =
- t.$getAvailableSpace =
- t.$getAttributes =
- t.$getAttributeIt =
- t.$flushHTML =
- t.$finalize =
- t.$extra =
- t.$dump =
- t.$data =
- t.$content =
- t.$consumed =
- t.$clone =
- t.$cleanup =
- t.$cleanPage =
- t.$clean =
- t.$childrenToHTML =
- t.$appendChild =
- t.$addHTML =
- t.$acceptWhitespace =
- void 0;
- var r = a(78),
- i = a(2),
- n = a(3),
- s = a(79),
- o = a(80);
- const c = Symbol();
- t.$acceptWhitespace = c;
- const l = Symbol();
- t.$addHTML = l;
- const h = Symbol();
- t.$appendChild = h;
- const u = Symbol();
- t.$childrenToHTML = u;
- const d = Symbol();
- t.$clean = d;
- const f = Symbol();
- t.$cleanPage = f;
- const g = Symbol();
- t.$cleanup = g;
- const p = Symbol();
- t.$clone = p;
- const m = Symbol();
- t.$consumed = m;
- const b = Symbol('content');
- t.$content = b;
- const y = Symbol('data');
- t.$data = y;
- const w = Symbol();
- t.$dump = w;
- const S = Symbol('extra');
- t.$extra = S;
- const x = Symbol();
- t.$finalize = x;
- const C = Symbol();
- t.$flushHTML = C;
- const k = Symbol();
- t.$getAttributeIt = k;
- const v = Symbol();
- t.$getAttributes = v;
- const F = Symbol();
- t.$getAvailableSpace = F;
- const O = Symbol();
- t.$getChildrenByClass = O;
- const T = Symbol();
- t.$getChildrenByName = T;
- const M = Symbol();
- t.$getChildrenByNameIt = M;
- const E = Symbol();
- t.$getDataValue = E;
- const D = Symbol();
- t.$getExtra = D;
- const N = Symbol();
- t.$getRealChildrenByNameIt = N;
- const R = Symbol();
- t.$getChildren = R;
- const L = Symbol();
- t.$getContainedChildren = L;
- const _ = Symbol();
- t.$getNextPage = _;
- const $ = Symbol();
- t.$getSubformParent = $;
- const j = Symbol();
- t.$getParent = j;
- const U = Symbol();
- t.$getTemplateRoot = U;
- const X = Symbol();
- t.$globalData = X;
- const H = Symbol();
- t.$hasSettableValue = H;
- const q = Symbol();
- t.$ids = q;
- const z = Symbol();
- t.$indexOf = z;
- const W = Symbol();
- t.$insertAt = W;
- const G = Symbol();
- t.$isCDATAXml = G;
- const V = Symbol();
- t.$isBindable = V;
- const K = Symbol();
- t.$isDataValue = K;
- const J = Symbol();
- t.$isDescendent = J;
- const Y = Symbol();
- t.$isNsAgnostic = Y;
- const Z = Symbol();
- t.$isSplittable = Z;
- const Q = Symbol();
- t.$isThereMoreWidth = Q;
- const ee = Symbol();
- t.$isTransparent = ee;
- const te = Symbol();
- t.$isUsable = te;
- const ae = Symbol(),
- re = Symbol('namespaceId');
- t.$namespaceId = re;
- const ie = Symbol('nodeName');
- t.$nodeName = ie;
- const ne = Symbol();
- t.$nsAttributes = ne;
- const se = Symbol();
- t.$onChild = se;
- const oe = Symbol();
- t.$onChildCheck = oe;
- const ce = Symbol();
- t.$onText = ce;
- const le = Symbol();
- t.$pushGlyphs = le;
- const he = Symbol();
- t.$popPara = he;
- const ue = Symbol();
- t.$pushPara = ue;
- const de = Symbol();
- t.$removeChild = de;
- const fe = Symbol('root');
- t.$root = fe;
- const ge = Symbol();
- t.$resolvePrototypes = ge;
- const pe = Symbol();
- t.$searchNode = pe;
- const me = Symbol();
- t.$setId = me;
- const be = Symbol();
- t.$setSetAttributes = be;
- const ye = Symbol();
- t.$setValue = ye;
- const we = Symbol();
- t.$tabIndex = we;
- const Se = Symbol();
- t.$text = Se;
- const xe = Symbol();
- t.$toPages = xe;
- const Ae = Symbol();
- t.$toHTML = Ae;
- const Ce = Symbol();
- t.$toString = Ce;
- const ke = Symbol();
- t.$toStyle = ke;
- const ve = Symbol('uid');
- t.$uid = ve;
- const Fe = Symbol(),
- Oe = Symbol(),
- Ie = Symbol(),
- Te = Symbol('_children'),
- Me = Symbol(),
- Pe = Symbol(),
- Ee = Symbol(),
- De = Symbol(),
- Be = Symbol(),
- Ne = Symbol(),
- Re = Symbol(),
- Le = Symbol(),
- _e = Symbol(),
- $e = Symbol('parent'),
- je = Symbol(),
- Ue = Symbol(),
- Xe = Symbol();
- let He = 0;
- const qe = s.NamespaceIds.datasets.id;
- class XFAObject {
- constructor(e, t, a = !1) {
- this[re] = e;
- this[ie] = t;
- this[Re] = a;
- this[$e] = null;
- this[Te] = [];
- this[ve] = `${t}${He++}`;
- this[X] = null;
- }
- [se](e) {
- if (!this[Re] || !this[oe](e)) return !1;
- const t = e[ie],
- a = this[t];
- if (!(a instanceof XFAObjectArray)) {
- null !== a && this[de](a);
- this[t] = e;
- this[h](e);
- return !0;
- }
- if (a.push(e)) {
- this[h](e);
- return !0;
- }
- let r = '';
- this.id
- ? (r = ` (id: ${this.id})`)
- : this.name && (r = ` (name: ${this.name} ${this.h.value})`);
- (0, i.warn)(`XFA - node "${this[ie]}"${r} has already enough "${t}"!`);
- return !1;
- }
- [oe](e) {
- return this.hasOwnProperty(e[ie]) && e[re] === this[re];
- }
- [Y]() {
- return !1;
- }
- [c]() {
- return !1;
- }
- [G]() {
- return !1;
- }
- [V]() {
- return !1;
- }
- [he]() {
- this.para && this[U]()[S].paraStack.pop();
- }
- [ue]() {
- this[U]()[S].paraStack.push(this.para);
- }
- [me](e) {
- this.id && this[re] === s.NamespaceIds.template.id && e.set(this.id, this);
- }
- [U]() {
- return this[X].template;
- }
- [Z]() {
- return !1;
- }
- [Q]() {
- return !1;
- }
- [h](e) {
- e[$e] = this;
- this[Te].push(e);
- !e[X] && this[X] && (e[X] = this[X]);
- }
- [de](e) {
- const t = this[Te].indexOf(e);
- this[Te].splice(t, 1);
- }
- [H]() {
- return this.hasOwnProperty('value');
- }
- [ye](e) {}
- [ce](e) {}
- [x]() {}
- [d](e) {
- delete this[Re];
- if (this[g]) {
- e.clean(this[g]);
- delete this[g];
- }
- }
- [z](e) {
- return this[Te].indexOf(e);
- }
- [W](e, t) {
- t[$e] = this;
- this[Te].splice(e, 0, t);
- !t[X] && this[X] && (t[X] = this[X]);
- }
- [ee]() {
- return !this.name;
- }
- [ae]() {
- return '';
- }
- [Se]() {
- return 0 === this[Te].length ? this[b] : this[Te].map((e) => e[Se]()).join('');
- }
- get [Ie]() {
- const e = Object.getPrototypeOf(this);
- if (!e._attributes) {
- const t = (e._attributes = new Set());
- for (const e of Object.getOwnPropertyNames(this)) {
- if (
- null === this[e] ||
- this[e] instanceof XFAObject ||
- this[e] instanceof XFAObjectArray
- )
- break;
- t.add(e);
- }
- }
- return (0, i.shadow)(this, Ie, e._attributes);
- }
- [J](e) {
- let t = this;
- for (; t; ) {
- if (t === e) return !0;
- t = t[j]();
- }
- return !1;
- }
- [j]() {
- return this[$e];
- }
- [$]() {
- return this[j]();
- }
- [R](e = null) {
- return e ? this[e] : this[Te];
- }
- [w]() {
- const e = Object.create(null);
- this[b] && (e.$content = this[b]);
- for (const t of Object.getOwnPropertyNames(this)) {
- const a = this[t];
- null !== a &&
- (a instanceof XFAObject
- ? (e[t] = a[w]())
- : a instanceof XFAObjectArray
- ? a.isEmpty() || (e[t] = a.dump())
- : (e[t] = a));
- }
- return e;
- }
- [ke]() {
- return null;
- }
- [Ae]() {
- return r.HTMLResult.EMPTY;
- }
- *[L]() {
- for (const e of this[R]()) yield e;
- }
- *[De](e, t) {
- for (const a of this[L]())
- if (!e || t === e.has(a[ie])) {
- const e = this[F](),
- t = a[Ae](e);
- t.success || (this[S].failingNode = a);
- yield t;
- }
- }
- [C]() {
- return null;
- }
- [l](e, t) {
- this[S].children.push(e);
- }
- [F]() {}
- [u]({ filter: e = null, include: t = !0 }) {
- if (this[S].generator) {
- const e = this[F](),
- t = this[S].failingNode[Ae](e);
- if (!t.success) return t;
- t.html && this[l](t.html, t.bbox);
- delete this[S].failingNode;
- } else this[S].generator = this[De](e, t);
- for (;;) {
- const e = this[S].generator.next();
- if (e.done) break;
- const t = e.value;
- if (!t.success) return t;
- t.html && this[l](t.html, t.bbox);
- }
- this[S].generator = null;
- return r.HTMLResult.EMPTY;
- }
- [be](e) {
- this[Ue] = new Set(Object.keys(e));
- }
- [Ne](e) {
- const t = this[Ie],
- a = this[Ue];
- return [...e].filter((e) => t.has(e) && !a.has(e));
- }
- [ge](e, t = new Set()) {
- for (const a of this[Te]) a[je](e, t);
- }
- [je](e, t) {
- const a = this[Be](e, t);
- a ? this[Fe](a, e, t) : this[ge](e, t);
- }
- [Be](e, t) {
- const { use: a, usehref: r } = this;
- if (!a && !r) return null;
- let n = null,
- s = null,
- c = null,
- l = a;
- if (r) {
- l = r;
- r.startsWith('#som(') && r.endsWith(')')
- ? (s = r.slice(5, -1))
- : r.startsWith('.#som(') && r.endsWith(')')
- ? (s = r.slice(6, -1))
- : r.startsWith('#')
- ? (c = r.slice(1))
- : r.startsWith('.#') && (c = r.slice(2));
- } else a.startsWith('#') ? (c = a.slice(1)) : (s = a);
- this.use = this.usehref = '';
- if (c) n = e.get(c);
- else {
- n = (0, o.searchNode)(e.get(fe), this, s, !0, !1);
- n && (n = n[0]);
- }
- if (!n) {
- (0, i.warn)(`XFA - Invalid prototype reference: ${l}.`);
- return null;
- }
- if (n[ie] !== this[ie]) {
- (0, i.warn)(`XFA - Incompatible prototype: ${n[ie]} !== ${this[ie]}.`);
- return null;
- }
- if (t.has(n)) {
- (0, i.warn)('XFA - Cycle detected in prototypes use.');
- return null;
- }
- t.add(n);
- const h = n[Be](e, t);
- h && n[Fe](h, e, t);
- n[ge](e, t);
- t.delete(n);
- return n;
- }
- [Fe](e, t, a) {
- if (a.has(e)) {
- (0, i.warn)('XFA - Cycle detected in prototypes use.');
- return;
- }
- !this[b] && e[b] && (this[b] = e[b]);
- new Set(a).add(e);
- for (const t of this[Ne](e[Ue])) {
- this[t] = e[t];
- this[Ue] && this[Ue].add(t);
- }
- for (const r of Object.getOwnPropertyNames(this)) {
- if (this[Ie].has(r)) continue;
- const i = this[r],
- n = e[r];
- if (i instanceof XFAObjectArray) {
- for (const e of i[Te]) e[je](t, a);
- for (let r = i[Te].length, s = n[Te].length; r < s; r++) {
- const n = e[Te][r][p]();
- if (!i.push(n)) break;
- n[$e] = this;
- this[Te].push(n);
- n[je](t, a);
- }
- } else if (null === i) {
- if (null !== n) {
- const e = n[p]();
- e[$e] = this;
- this[r] = e;
- this[Te].push(e);
- e[je](t, a);
- }
- } else {
- i[ge](t, a);
- n && i[Fe](n, t, a);
- }
- }
- }
- static [Me](e) {
- return Array.isArray(e)
- ? e.map((e) => XFAObject[Me](e))
- : 'object' == typeof e && null !== e
- ? Object.assign({}, e)
- : e;
- }
- [p]() {
- const e = Object.create(Object.getPrototypeOf(this));
- for (const t of Object.getOwnPropertySymbols(this))
- try {
- e[t] = this[t];
- } catch (a) {
- (0, i.shadow)(e, t, this[t]);
- }
- e[ve] = `${e[ie]}${He++}`;
- e[Te] = [];
- for (const t of Object.getOwnPropertyNames(this)) {
- if (this[Ie].has(t)) {
- e[t] = XFAObject[Me](this[t]);
- continue;
- }
- const a = this[t];
- e[t] = a instanceof XFAObjectArray ? new XFAObjectArray(a[Le]) : null;
- }
- for (const t of this[Te]) {
- const a = t[ie],
- r = t[p]();
- e[Te].push(r);
- r[$e] = e;
- null === e[a] ? (e[a] = r) : e[a][Te].push(r);
- }
- return e;
- }
- [R](e = null) {
- return e ? this[Te].filter((t) => t[ie] === e) : this[Te];
- }
- [O](e) {
- return this[e];
- }
- [T](e, t, a = !0) {
- return Array.from(this[M](e, t, a));
- }
- *[M](e, t, a = !0) {
- if ('parent' !== e) {
- for (const a of this[Te]) {
- a[ie] === e && (yield a);
- a.name === e && (yield a);
- (t || a[ee]()) && (yield* a[M](e, t, !1));
- }
- a && this[Ie].has(e) && (yield new XFAAttribute(this, e, this[e]));
- } else yield this[$e];
- }
- }
- t.XFAObject = XFAObject;
- class XFAObjectArray {
- constructor(e = 1 / 0) {
- this[Le] = e;
- this[Te] = [];
- }
- push(e) {
- if (this[Te].length <= this[Le]) {
- this[Te].push(e);
- return !0;
- }
- (0, i.warn)(`XFA - node "${e[ie]}" accepts no more than ${this[Le]} children`);
- return !1;
- }
- isEmpty() {
- return 0 === this[Te].length;
- }
- dump() {
- return 1 === this[Te].length ? this[Te][0][w]() : this[Te].map((e) => e[w]());
- }
- [p]() {
- const e = new XFAObjectArray(this[Le]);
- e[Te] = this[Te].map((e) => e[p]());
- return e;
- }
- get children() {
- return this[Te];
- }
- clear() {
- this[Te].length = 0;
- }
- }
- t.XFAObjectArray = XFAObjectArray;
- class XFAAttribute {
- constructor(e, t, a) {
- this[$e] = e;
- this[ie] = t;
- this[b] = a;
- this[m] = !1;
- this[ve] = 'attribute' + He++;
- }
- [j]() {
- return this[$e];
- }
- [K]() {
- return !0;
- }
- [E]() {
- return this[b].trim();
- }
- [ye](e) {
- e = e.value || '';
- this[b] = e.toString();
- }
- [Se]() {
- return this[b];
- }
- [J](e) {
- return this[$e] === e || this[$e][J](e);
- }
- }
- t.XFAAttribute = XFAAttribute;
- class XmlObject extends XFAObject {
- constructor(e, t, a = {}) {
- super(e, t);
- this[b] = '';
- this[Pe] = null;
- if ('#text' !== t) {
- const e = new Map();
- this[Oe] = e;
- for (const [t, r] of Object.entries(a)) e.set(t, new XFAAttribute(this, t, r));
- if (a.hasOwnProperty(ne)) {
- const e = a[ne].xfa.dataNode;
- void 0 !== e &&
- ('dataGroup' === e ? (this[Pe] = !1) : 'dataValue' === e && (this[Pe] = !0));
- }
- }
- this[m] = !1;
- }
- [Ce](e) {
- const t = this[ie];
- if ('#text' === t) {
- e.push((0, n.encodeToXmlString)(this[b]));
- return;
- }
- const a = (0, i.utf8StringToString)(t),
- r = this[re] === qe ? 'xfa:' : '';
- e.push(`<${r}${a}`);
- for (const [t, a] of this[Oe].entries()) {
- const r = (0, i.utf8StringToString)(t);
- e.push(` ${r}="${(0, n.encodeToXmlString)(a[b])}"`);
- }
- null !== this[Pe] &&
- (this[Pe]
- ? e.push(' xfa:dataNode="dataValue"')
- : e.push(' xfa:dataNode="dataGroup"'));
- if (this[b] || 0 !== this[Te].length) {
- e.push('>');
- if (this[b])
- 'string' == typeof this[b]
- ? e.push((0, n.encodeToXmlString)(this[b]))
- : this[b][Ce](e);
- else for (const t of this[Te]) t[Ce](e);
- e.push(`${r}${a}>`);
- } else e.push('/>');
- }
- [se](e) {
- if (this[b]) {
- const e = new XmlObject(this[re], '#text');
- this[h](e);
- e[b] = this[b];
- this[b] = '';
- }
- this[h](e);
- return !0;
- }
- [ce](e) {
- this[b] += e;
- }
- [x]() {
- if (this[b] && this[Te].length > 0) {
- const e = new XmlObject(this[re], '#text');
- this[h](e);
- e[b] = this[b];
- delete this[b];
- }
- }
- [Ae]() {
- return '#text' === this[ie]
- ? r.HTMLResult.success({ name: '#text', value: this[b] })
- : r.HTMLResult.EMPTY;
- }
- [R](e = null) {
- return e ? this[Te].filter((t) => t[ie] === e) : this[Te];
- }
- [v]() {
- return this[Oe];
- }
- [O](e) {
- const t = this[Oe].get(e);
- return void 0 !== t ? t : this[R](e);
- }
- *[M](e, t) {
- const a = this[Oe].get(e);
- a && (yield a);
- for (const a of this[Te]) {
- a[ie] === e && (yield a);
- t && (yield* a[M](e, t));
- }
- }
- *[k](e, t) {
- const a = this[Oe].get(e);
- !a || (t && a[m]) || (yield a);
- for (const a of this[Te]) yield* a[k](e, t);
- }
- *[N](e, t, a) {
- for (const r of this[Te]) {
- r[ie] !== e || (a && r[m]) || (yield r);
- t && (yield* r[N](e, t, a));
- }
- }
- [K]() {
- return null === this[Pe]
- ? 0 === this[Te].length || this[Te][0][re] === s.NamespaceIds.xhtml.id
- : this[Pe];
- }
- [E]() {
- return null === this[Pe]
- ? 0 === this[Te].length
- ? this[b].trim()
- : this[Te][0][re] === s.NamespaceIds.xhtml.id
- ? this[Te][0][Se]().trim()
- : null
- : this[b].trim();
- }
- [ye](e) {
- e = e.value || '';
- this[b] = e.toString();
- }
- [w](e = !1) {
- const t = Object.create(null);
- e && (t.$ns = this[re]);
- this[b] && (t.$content = this[b]);
- t.$name = this[ie];
- t.children = [];
- for (const a of this[Te]) t.children.push(a[w](e));
- t.attributes = Object.create(null);
- for (const [e, a] of this[Oe]) t.attributes[e] = a[b];
- return t;
- }
- }
- t.XmlObject = XmlObject;
- class ContentObject extends XFAObject {
- constructor(e, t) {
- super(e, t);
- this[b] = '';
- }
- [ce](e) {
- this[b] += e;
- }
- [x]() {}
- }
- t.ContentObject = ContentObject;
- t.OptionObject = class OptionObject extends ContentObject {
- constructor(e, t, a) {
- super(e, t);
- this[_e] = a;
- }
- [x]() {
- this[b] = (0, r.getKeyword)({
- data: this[b],
- defaultValue: this[_e][0],
- validate: (e) => this[_e].includes(e),
- });
- }
- [d](e) {
- super[d](e);
- delete this[_e];
- }
- };
- t.StringObject = class StringObject extends ContentObject {
- [x]() {
- this[b] = this[b].trim();
- }
- };
- class IntegerObject extends ContentObject {
- constructor(e, t, a, r) {
- super(e, t);
- this[Ee] = a;
- this[Xe] = r;
- }
- [x]() {
- this[b] = (0, r.getInteger)({
- data: this[b],
- defaultValue: this[Ee],
- validate: this[Xe],
- });
- }
- [d](e) {
- super[d](e);
- delete this[Ee];
- delete this[Xe];
- }
- }
- t.IntegerObject = IntegerObject;
- t.Option01 = class Option01 extends IntegerObject {
- constructor(e, t) {
- super(e, t, 0, (e) => 1 === e);
- }
- };
- t.Option10 = class Option10 extends IntegerObject {
- constructor(e, t) {
- super(e, t, 1, (e) => 0 === e);
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.HTMLResult = void 0;
- t.getBBox = function getBBox(e) {
- const t = -1;
- if (!e) return { x: t, y: t, width: t, height: t };
- const a = e
- .trim()
- .split(/\s*,\s*/)
- .map((e) => getMeasurement(e, '-1'));
- if (a.length < 4 || a[2] < 0 || a[3] < 0) return { x: t, y: t, width: t, height: t };
- const [r, i, n, s] = a;
- return { x: r, y: i, width: n, height: s };
- };
- t.getColor = function getColor(e, t = [0, 0, 0]) {
- let [a, r, i] = t;
- if (!e) return { r: a, g: r, b: i };
- const n = e
- .trim()
- .split(/\s*,\s*/)
- .map((e) => Math.min(Math.max(0, parseInt(e.trim(), 10)), 255))
- .map((e) => (isNaN(e) ? 0 : e));
- if (n.length < 3) return { r: a, g: r, b: i };
- [a, r, i] = n;
- return { r: a, g: r, b: i };
- };
- t.getFloat = function getFloat({ data: e, defaultValue: t, validate: a }) {
- if (!e) return t;
- e = e.trim();
- const r = parseFloat(e);
- if (!isNaN(r) && a(r)) return r;
- return t;
- };
- t.getInteger = function getInteger({ data: e, defaultValue: t, validate: a }) {
- if (!e) return t;
- e = e.trim();
- const r = parseInt(e, 10);
- if (!isNaN(r) && a(r)) return r;
- return t;
- };
- t.getKeyword = getKeyword;
- t.getMeasurement = getMeasurement;
- t.getRatio = function getRatio(e) {
- if (!e) return { num: 1, den: 1 };
- const t = e
- .trim()
- .split(/\s*:\s*/)
- .map((e) => parseFloat(e))
- .filter((e) => !isNaN(e));
- 1 === t.length && t.push(1);
- if (0 === t.length) return { num: 1, den: 1 };
- const [a, r] = t;
- return { num: a, den: r };
- };
- t.getRelevant = function getRelevant(e) {
- if (!e) return [];
- return e
- .trim()
- .split(/\s+/)
- .map((e) => ({ excluded: '-' === e[0], viewname: e.substring(1) }));
- };
- t.getStringOption = function getStringOption(e, t) {
- return getKeyword({ data: e, defaultValue: t[0], validate: (e) => t.includes(e) });
- };
- t.stripQuotes = function stripQuotes(e) {
- if (e.startsWith("'") || e.startsWith('"')) return e.slice(1, -1);
- return e;
- };
- var r = a(2);
- const i = {
- pt: (e) => e,
- cm: (e) => (e / 2.54) * 72,
- mm: (e) => (e / 25.4) * 72,
- in: (e) => 72 * e,
- px: (e) => e,
- },
- n = /([+-]?\d+\.?\d*)(.*)/;
- function getKeyword({ data: e, defaultValue: t, validate: a }) {
- return e && a((e = e.trim())) ? e : t;
- }
- function getMeasurement(e, t = '0') {
- t ||= '0';
- if (!e) return getMeasurement(t);
- const a = e.trim().match(n);
- if (!a) return getMeasurement(t);
- const [, r, s] = a,
- o = parseFloat(r);
- if (isNaN(o)) return getMeasurement(t);
- if (0 === o) return 0;
- const c = i[s];
- return c ? c(o) : o;
- }
- class HTMLResult {
- static get FAILURE() {
- return (0, r.shadow)(this, 'FAILURE', new HTMLResult(!1, null, null, null));
- }
- static get EMPTY() {
- return (0, r.shadow)(this, 'EMPTY', new HTMLResult(!0, null, null, null));
- }
- constructor(e, t, a, r) {
- this.success = e;
- this.html = t;
- this.bbox = a;
- this.breakNode = r;
- }
- isBreak() {
- return !!this.breakNode;
- }
- static breakNode(e) {
- return new HTMLResult(!1, null, null, e);
- }
- static success(e, t = null) {
- return new HTMLResult(!0, e, t, null);
- }
- }
- t.HTMLResult = HTMLResult;
- },
- (e, t) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.NamespaceIds = t.$buildXFAObject = void 0;
- const a = Symbol();
- t.$buildXFAObject = a;
- t.NamespaceIds = {
- config: { id: 0, check: (e) => e.startsWith('http://www.xfa.org/schema/xci/') },
- connectionSet: {
- id: 1,
- check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-connection-set/'),
- },
- datasets: { id: 2, check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-data/') },
- form: { id: 3, check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-form/') },
- localeSet: {
- id: 4,
- check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-locale-set/'),
- },
- pdf: { id: 5, check: (e) => 'http://ns.adobe.com/xdp/pdf/' === e },
- signature: { id: 6, check: (e) => 'http://www.w3.org/2000/09/xmldsig#' === e },
- sourceSet: {
- id: 7,
- check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-source-set/'),
- },
- stylesheet: { id: 8, check: (e) => 'http://www.w3.org/1999/XSL/Transform' === e },
- template: {
- id: 9,
- check: (e) => e.startsWith('http://www.xfa.org/schema/xfa-template/'),
- },
- xdc: { id: 10, check: (e) => e.startsWith('http://www.xfa.org/schema/xdc/') },
- xdp: { id: 11, check: (e) => 'http://ns.adobe.com/xdp/' === e },
- xfdf: { id: 12, check: (e) => 'http://ns.adobe.com/xfdf/' === e },
- xhtml: { id: 13, check: (e) => 'http://www.w3.org/1999/xhtml' === e },
- xmpmeta: { id: 14, check: (e) => 'http://ns.adobe.com/xmpmeta/' === e },
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.createDataNode = function createDataNode(e, t, a) {
- const i = parseExpression(a);
- if (!i) return null;
- if (i.some((e) => e.operator === c.dotDot)) return null;
- const s = l.get(i[0].name);
- let o = 0;
- if (s) {
- e = s(e, t);
- o = 1;
- } else e = t || e;
- for (let t = i.length; o < t; o++) {
- const { name: t, operator: a, index: s } = i[o];
- if (!isFinite(s)) {
- i[o].index = 0;
- return createNodes(e, i.slice(o));
- }
- let l;
- switch (a) {
- case c.dot:
- l = e[r.$getChildrenByName](t, !1);
- break;
- case c.dotDot:
- l = e[r.$getChildrenByName](t, !0);
- break;
- case c.dotHash:
- l = e[r.$getChildrenByClass](t);
- l = l instanceof r.XFAObjectArray ? l.children : [l];
- }
- if (0 === l.length) return createNodes(e, i.slice(o));
- if (!(s < l.length)) {
- i[o].index = s - l.length;
- return createNodes(e, i.slice(o));
- }
- {
- const t = l[s];
- if (!(t instanceof r.XFAObject)) {
- (0, n.warn)('XFA - Cannot create a node.');
- return null;
- }
- e = t;
- }
- }
- return null;
- };
- t.searchNode = function searchNode(e, t, a, i = !0, n = !0) {
- const s = parseExpression(a, i);
- if (!s) return null;
- const o = l.get(s[0].name);
- let u,
- d = 0;
- if (o) {
- u = !0;
- e = [o(e, t)];
- d = 1;
- } else {
- u = null === t;
- e = [t || e];
- }
- for (let a = s.length; d < a; d++) {
- const { name: a, cacheName: i, operator: o, index: l } = s[d],
- f = [];
- for (const t of e) {
- if (!(t instanceof r.XFAObject)) continue;
- let e, s;
- if (n) {
- s = h.get(t);
- if (!s) {
- s = new Map();
- h.set(t, s);
- }
- e = s.get(i);
- }
- if (!e) {
- switch (o) {
- case c.dot:
- e = t[r.$getChildrenByName](a, !1);
- break;
- case c.dotDot:
- e = t[r.$getChildrenByName](a, !0);
- break;
- case c.dotHash:
- e = t[r.$getChildrenByClass](a);
- e = e instanceof r.XFAObjectArray ? e.children : [e];
- }
- n && s.set(i, e);
- }
- e.length > 0 && f.push(e);
- }
- if (0 !== f.length || u || 0 !== d)
- e = isFinite(l) ? f.filter((e) => l < e.length).map((e) => e[l]) : f.flat();
- else {
- const a = t[r.$getParent]();
- if (!(t = a)) return null;
- d = -1;
- e = [t];
- }
- }
- if (0 === e.length) return null;
- return e;
- };
- var r = a(77),
- i = a(79),
- n = a(2);
- const s = /^[^.[]+/,
- o = /^[^\]]+/,
- c = { dot: 0, dotDot: 1, dotHash: 2, dotBracket: 3, dotParen: 4 },
- l = new Map([
- ['$data', (e, t) => (e.datasets ? e.datasets.data : e)],
- ['$record', (e, t) => (e.datasets ? e.datasets.data : e)[r.$getChildren]()[0]],
- ['$template', (e, t) => e.template],
- ['$connectionSet', (e, t) => e.connectionSet],
- ['$form', (e, t) => e.form],
- ['$layout', (e, t) => e.layout],
- ['$host', (e, t) => e.host],
- ['$dataWindow', (e, t) => e.dataWindow],
- ['$event', (e, t) => e.event],
- ['!', (e, t) => e.datasets],
- ['$xfa', (e, t) => e],
- ['xfa', (e, t) => e],
- ['$', (e, t) => t],
- ]),
- h = new WeakMap(),
- u = i.NamespaceIds.datasets.id;
- function parseExpression(e, t, a = !0) {
- let r = e.match(s);
- if (!r) return null;
- let [i] = r;
- const l = [
- { name: i, cacheName: '.' + i, index: 0, js: null, formCalc: null, operator: c.dot },
- ];
- let h = i.length;
- for (; h < e.length; ) {
- const d = h;
- if ('[' === e.charAt(h++)) {
- r = e.slice(h).match(o);
- if (!r) {
- (0, n.warn)('XFA - Invalid index in SOM expression');
- return null;
- }
- l.at(-1).index = '*' === (u = (u = r[0]).trim()) ? 1 / 0 : parseInt(u, 10) || 0;
- h += r[0].length + 1;
- continue;
- }
- let f;
- switch (e.charAt(h)) {
- case '.':
- if (!t) return null;
- h++;
- f = c.dotDot;
- break;
- case '#':
- h++;
- f = c.dotHash;
- break;
- case '[':
- if (a) {
- (0, n.warn)(
- 'XFA - SOM expression contains a FormCalc subexpression which is not supported for now.',
- );
- return null;
- }
- f = c.dotBracket;
- break;
- case '(':
- if (a) {
- (0, n.warn)(
- 'XFA - SOM expression contains a JavaScript subexpression which is not supported for now.',
- );
- return null;
- }
- f = c.dotParen;
- break;
- default:
- f = c.dot;
- }
- r = e.slice(h).match(s);
- if (!r) break;
- [i] = r;
- h += i.length;
- l.push({
- name: i,
- cacheName: e.slice(d, h),
- operator: f,
- index: 0,
- js: null,
- formCalc: null,
- });
- }
- var u;
- return l;
- }
- function createNodes(e, t) {
- let a = null;
- for (const { name: i, index: n } of t) {
- for (let t = 0, s = isFinite(n) ? n : 0; t <= s; t++) {
- const t = e[r.$namespaceId] === u ? -1 : e[r.$namespaceId];
- a = new r.XmlObject(t, i);
- e[r.$appendChild](a);
- }
- e = a;
- }
- return a;
- }
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.Binder = void 0;
- var r = a(77),
- i = a(82),
- n = a(80),
- s = a(79),
- o = a(2);
- const c = s.NamespaceIds.datasets.id;
- function createText(e) {
- const t = new i.Text({});
- t[r.$content] = e;
- return t;
- }
- t.Binder = class Binder {
- constructor(e) {
- this.root = e;
- this.datasets = e.datasets;
- e.datasets && e.datasets.data
- ? (this.data = e.datasets.data)
- : (this.data = new r.XmlObject(s.NamespaceIds.datasets.id, 'data'));
- this.emptyMerge = 0 === this.data[r.$getChildren]().length;
- this.root.form = this.form = e.template[r.$clone]();
- }
- _isConsumeData() {
- return !this.emptyMerge && this._mergeMode;
- }
- _isMatchTemplate() {
- return !this._isConsumeData();
- }
- bind() {
- this._bindElement(this.form, this.data);
- return this.form;
- }
- getData() {
- return this.data;
- }
- _bindValue(e, t, a) {
- e[r.$data] = t;
- if (e[r.$hasSettableValue]())
- if (t[r.$isDataValue]()) {
- const a = t[r.$getDataValue]();
- e[r.$setValue](createText(a));
- } else if (
- e instanceof i.Field &&
- e.ui &&
- e.ui.choiceList &&
- 'multiSelect' === e.ui.choiceList.open
- ) {
- const a = t[r.$getChildren]()
- .map((e) => e[r.$content].trim())
- .join('\n');
- e[r.$setValue](createText(a));
- } else this._isConsumeData() && (0, o.warn)("XFA - Nodes haven't the same type.");
- else
- !t[r.$isDataValue]() || this._isMatchTemplate()
- ? this._bindElement(e, t)
- : (0, o.warn)("XFA - Nodes haven't the same type.");
- }
- _findDataByNameToConsume(e, t, a, i) {
- if (!e) return null;
- let n, o;
- for (let i = 0; i < 3; i++) {
- n = a[r.$getRealChildrenByNameIt](e, !1, !0);
- for (;;) {
- o = n.next().value;
- if (!o) break;
- if (t === o[r.$isDataValue]()) return o;
- }
- if (a[r.$namespaceId] === s.NamespaceIds.datasets.id && 'data' === a[r.$nodeName])
- break;
- a = a[r.$getParent]();
- }
- if (!i) return null;
- n = this.data[r.$getRealChildrenByNameIt](e, !0, !1);
- o = n.next().value;
- if (o) return o;
- n = this.data[r.$getAttributeIt](e, !0);
- o = n.next().value;
- return o && o[r.$isDataValue]() ? o : null;
- }
- _setProperties(e, t) {
- if (e.hasOwnProperty('setProperty'))
- for (const { ref: a, target: s, connection: c } of e.setProperty.children) {
- if (c) continue;
- if (!a) continue;
- const l = (0, n.searchNode)(this.root, t, a, !1, !1);
- if (!l) {
- (0, o.warn)(`XFA - Invalid reference: ${a}.`);
- continue;
- }
- const [h] = l;
- if (!h[r.$isDescendent](this.data)) {
- (0, o.warn)('XFA - Invalid node: must be a data node.');
- continue;
- }
- const u = (0, n.searchNode)(this.root, e, s, !1, !1);
- if (!u) {
- (0, o.warn)(`XFA - Invalid target: ${s}.`);
- continue;
- }
- const [d] = u;
- if (!d[r.$isDescendent](e)) {
- (0, o.warn)('XFA - Invalid target: must be a property or subproperty.');
- continue;
- }
- const f = d[r.$getParent]();
- if (d instanceof i.SetProperty || f instanceof i.SetProperty) {
- (0, o.warn)(
- 'XFA - Invalid target: cannot be a setProperty or one of its properties.',
- );
- continue;
- }
- if (d instanceof i.BindItems || f instanceof i.BindItems) {
- (0, o.warn)(
- 'XFA - Invalid target: cannot be a bindItems or one of its properties.',
- );
- continue;
- }
- const g = h[r.$text](),
- p = d[r.$nodeName];
- if (d instanceof r.XFAAttribute) {
- const e = Object.create(null);
- e[p] = g;
- const t = Reflect.construct(Object.getPrototypeOf(f).constructor, [e]);
- f[p] = t[p];
- } else if (d.hasOwnProperty(r.$content)) {
- d[r.$data] = h;
- d[r.$content] = g;
- d[r.$finalize]();
- } else (0, o.warn)('XFA - Invalid node to use in setProperty');
- }
- }
- _bindItems(e, t) {
- if (
- !e.hasOwnProperty('items') ||
- !e.hasOwnProperty('bindItems') ||
- e.bindItems.isEmpty()
- )
- return;
- for (const t of e.items.children) e[r.$removeChild](t);
- e.items.clear();
- const a = new i.Items({}),
- s = new i.Items({});
- e[r.$appendChild](a);
- e.items.push(a);
- e[r.$appendChild](s);
- e.items.push(s);
- for (const { ref: i, labelRef: c, valueRef: l, connection: h } of e.bindItems
- .children) {
- if (h) continue;
- if (!i) continue;
- const e = (0, n.searchNode)(this.root, t, i, !1, !1);
- if (e)
- for (const t of e) {
- if (!t[r.$isDescendent](this.datasets)) {
- (0, o.warn)(`XFA - Invalid ref (${i}): must be a datasets child.`);
- continue;
- }
- const e = (0, n.searchNode)(this.root, t, c, !0, !1);
- if (!e) {
- (0, o.warn)(`XFA - Invalid label: ${c}.`);
- continue;
- }
- const [h] = e;
- if (!h[r.$isDescendent](this.datasets)) {
- (0, o.warn)('XFA - Invalid label: must be a datasets child.');
- continue;
- }
- const u = (0, n.searchNode)(this.root, t, l, !0, !1);
- if (!u) {
- (0, o.warn)(`XFA - Invalid value: ${l}.`);
- continue;
- }
- const [d] = u;
- if (!d[r.$isDescendent](this.datasets)) {
- (0, o.warn)('XFA - Invalid value: must be a datasets child.');
- continue;
- }
- const f = createText(h[r.$text]()),
- g = createText(d[r.$text]());
- a[r.$appendChild](f);
- a.text.push(f);
- s[r.$appendChild](g);
- s.text.push(g);
- }
- else (0, o.warn)(`XFA - Invalid reference: ${i}.`);
- }
- }
- _bindOccurrences(e, t, a) {
- let i;
- if (t.length > 1) {
- i = e[r.$clone]();
- i[r.$removeChild](i.occur);
- i.occur = null;
- }
- this._bindValue(e, t[0], a);
- this._setProperties(e, t[0]);
- this._bindItems(e, t[0]);
- if (1 === t.length) return;
- const n = e[r.$getParent](),
- s = e[r.$nodeName],
- o = n[r.$indexOf](e);
- for (let e = 1, c = t.length; e < c; e++) {
- const c = t[e],
- l = i[r.$clone]();
- n[s].push(l);
- n[r.$insertAt](o + e, l);
- this._bindValue(l, c, a);
- this._setProperties(l, c);
- this._bindItems(l, c);
- }
- }
- _createOccurrences(e) {
- if (!this.emptyMerge) return;
- const { occur: t } = e;
- if (!t || t.initial <= 1) return;
- const a = e[r.$getParent](),
- i = e[r.$nodeName];
- if (!(a[i] instanceof r.XFAObjectArray)) return;
- let n;
- n = e.name
- ? a[i].children.filter((t) => t.name === e.name).length
- : a[i].children.length;
- const s = a[r.$indexOf](e) + 1,
- o = t.initial - n;
- if (o) {
- const t = e[r.$clone]();
- t[r.$removeChild](t.occur);
- t.occur = null;
- a[i].push(t);
- a[r.$insertAt](s, t);
- for (let e = 1; e < o; e++) {
- const n = t[r.$clone]();
- a[i].push(n);
- a[r.$insertAt](s + e, n);
- }
- }
- }
- _getOccurInfo(e) {
- const { name: t, occur: a } = e;
- if (!a || !t) return [1, 1];
- const r = -1 === a.max ? 1 / 0 : a.max;
- return [a.min, r];
- }
- _setAndBind(e, t) {
- this._setProperties(e, t);
- this._bindItems(e, t);
- this._bindElement(e, t);
- }
- _bindElement(e, t) {
- const a = [];
- this._createOccurrences(e);
- for (const i of e[r.$getChildren]()) {
- if (i[r.$data]) continue;
- if (void 0 === this._mergeMode && 'subform' === i[r.$nodeName]) {
- this._mergeMode = 'consumeData' === i.mergeMode;
- const e = t[r.$getChildren]();
- if (e.length > 0) this._bindOccurrences(i, [e[0]], null);
- else if (this.emptyMerge) {
- const e = t[r.$namespaceId] === c ? -1 : t[r.$namespaceId],
- a = (i[r.$data] = new r.XmlObject(e, i.name || 'root'));
- t[r.$appendChild](a);
- this._bindElement(i, a);
- }
- continue;
- }
- if (!i[r.$isBindable]()) continue;
- let e = !1,
- s = null,
- l = null,
- h = null;
- if (i.bind) {
- switch (i.bind.match) {
- case 'none':
- this._setAndBind(i, t);
- continue;
- case 'global':
- e = !0;
- break;
- case 'dataRef':
- if (!i.bind.ref) {
- (0, o.warn)(`XFA - ref is empty in node ${i[r.$nodeName]}.`);
- this._setAndBind(i, t);
- continue;
- }
- l = i.bind.ref;
- }
- i.bind.picture && (s = i.bind.picture[r.$content]);
- }
- const [u, d] = this._getOccurInfo(i);
- if (l) {
- h = (0, n.searchNode)(this.root, t, l, !0, !1);
- if (null === h) {
- h = (0, n.createDataNode)(this.data, t, l);
- if (!h) continue;
- this._isConsumeData() && (h[r.$consumed] = !0);
- this._setAndBind(i, h);
- continue;
- }
- this._isConsumeData() && (h = h.filter((e) => !e[r.$consumed]));
- h.length > d ? (h = h.slice(0, d)) : 0 === h.length && (h = null);
- h &&
- this._isConsumeData() &&
- h.forEach((e) => {
- e[r.$consumed] = !0;
- });
- } else {
- if (!i.name) {
- this._setAndBind(i, t);
- continue;
- }
- if (this._isConsumeData()) {
- const a = [];
- for (; a.length < d; ) {
- const n = this._findDataByNameToConsume(
- i.name,
- i[r.$hasSettableValue](),
- t,
- e,
- );
- if (!n) break;
- n[r.$consumed] = !0;
- a.push(n);
- }
- h = a.length > 0 ? a : null;
- } else {
- h = t[r.$getRealChildrenByNameIt](i.name, !1, this.emptyMerge).next().value;
- if (!h) {
- if (0 === u) {
- a.push(i);
- continue;
- }
- const e = t[r.$namespaceId] === c ? -1 : t[r.$namespaceId];
- h = i[r.$data] = new r.XmlObject(e, i.name);
- this.emptyMerge && (h[r.$consumed] = !0);
- t[r.$appendChild](h);
- this._setAndBind(i, h);
- continue;
- }
- this.emptyMerge && (h[r.$consumed] = !0);
- h = [h];
- }
- }
- h ? this._bindOccurrences(i, h, s) : u > 0 ? this._setAndBind(i, t) : a.push(i);
- }
- a.forEach((e) => e[r.$getParent]()[r.$removeChild](e));
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.Value =
- t.Text =
- t.TemplateNamespace =
- t.Template =
- t.SetProperty =
- t.Items =
- t.Field =
- t.BindItems =
- void 0;
- var r = a(77),
- i = a(79),
- n = a(83),
- s = a(84),
- o = a(78),
- c = a(2),
- l = a(85),
- h = a(3),
- u = a(80);
- const d = i.NamespaceIds.template.id,
- f = 'http://www.w3.org/2000/svg',
- g = /^H(\d+)$/,
- p = new Set([
- 'image/gif',
- 'image/jpeg',
- 'image/jpg',
- 'image/pjpeg',
- 'image/png',
- 'image/apng',
- 'image/x-png',
- 'image/bmp',
- 'image/x-ms-bmp',
- 'image/tiff',
- 'image/tif',
- 'application/octet-stream',
- ]),
- m = [
- [[66, 77], 'image/bmp'],
- [[255, 216, 255], 'image/jpeg'],
- [[73, 73, 42, 0], 'image/tiff'],
- [[77, 77, 0, 42], 'image/tiff'],
- [[71, 73, 70, 56, 57, 97], 'image/gif'],
- [[137, 80, 78, 71, 13, 10, 26, 10], 'image/png'],
- ];
- function getBorderDims(e) {
- if (!e || !e.border) return { w: 0, h: 0 };
- const t = e.border[r.$getExtra]();
- return t
- ? {
- w: t.widths[0] + t.widths[2] + t.insets[0] + t.insets[2],
- h: t.widths[1] + t.widths[3] + t.insets[1] + t.insets[3],
- }
- : { w: 0, h: 0 };
- }
- function hasMargin(e) {
- return (
- e.margin &&
- (e.margin.topInset ||
- e.margin.rightInset ||
- e.margin.bottomInset ||
- e.margin.leftInset)
- );
- }
- function _setValue(e, t) {
- if (!e.value) {
- const t = new Value({});
- e[r.$appendChild](t);
- e.value = t;
- }
- e.value[r.$setValue](t);
- }
- function* getContainedChildren(e) {
- for (const t of e[r.$getChildren]())
- t instanceof SubformSet ? yield* t[r.$getContainedChildren]() : yield t;
- }
- function isRequired(e) {
- return e.validate && 'error' === e.validate.nullTest;
- }
- function setTabIndex(e) {
- for (; e; ) {
- if (!e.traversal) {
- e[r.$tabIndex] = e[r.$getParent]()[r.$tabIndex];
- return;
- }
- if (e[r.$tabIndex]) return;
- let t = null;
- for (const a of e.traversal[r.$getChildren]())
- if ('next' === a.operation) {
- t = a;
- break;
- }
- if (!t || !t.ref) {
- e[r.$tabIndex] = e[r.$getParent]()[r.$tabIndex];
- return;
- }
- const a = e[r.$getTemplateRoot]();
- e[r.$tabIndex] = ++a[r.$tabIndex];
- const i = a[r.$searchNode](t.ref, e);
- if (!i) return;
- e = i[0];
- }
- }
- function applyAssist(e, t) {
- const a = e.assist;
- if (a) {
- const e = a[r.$toHTML]();
- e && (t.title = e);
- const i = a.role.match(g);
- if (i) {
- const e = 'heading',
- a = i[1];
- t.role = e;
- t['aria-level'] = a;
- }
- }
- if ('table' === e.layout) t.role = 'table';
- else if ('row' === e.layout) t.role = 'row';
- else {
- const a = e[r.$getParent]();
- 'row' === a.layout &&
- (a.assist && 'TH' === a.assist.role
- ? (t.role = 'columnheader')
- : (t.role = 'cell'));
- }
- }
- function ariaLabel(e) {
- if (!e.assist) return null;
- const t = e.assist;
- return t.speak && '' !== t.speak[r.$content]
- ? t.speak[r.$content]
- : t.toolTip
- ? t.toolTip[r.$content]
- : null;
- }
- function valueToHtml(e) {
- return o.HTMLResult.success({
- name: 'div',
- attributes: { class: ['xfaRich'], style: Object.create(null) },
- children: [{ name: 'span', attributes: { style: Object.create(null) }, value: e }],
- });
- }
- function setFirstUnsplittable(e) {
- const t = e[r.$getTemplateRoot]();
- if (null === t[r.$extra].firstUnsplittable) {
- t[r.$extra].firstUnsplittable = e;
- t[r.$extra].noLayoutFailure = !0;
- }
- }
- function unsetFirstUnsplittable(e) {
- const t = e[r.$getTemplateRoot]();
- t[r.$extra].firstUnsplittable === e && (t[r.$extra].noLayoutFailure = !1);
- }
- function handleBreak(e) {
- if (e[r.$extra]) return !1;
- e[r.$extra] = Object.create(null);
- if ('auto' === e.targetType) return !1;
- const t = e[r.$getTemplateRoot]();
- let a = null;
- if (e.target) {
- a = t[r.$searchNode](e.target, e[r.$getParent]());
- if (!a) return !1;
- a = a[0];
- }
- const { currentPageArea: i, currentContentArea: n } = t[r.$extra];
- if ('pageArea' === e.targetType) {
- a instanceof PageArea || (a = null);
- if (e.startNew) {
- e[r.$extra].target = a || i;
- return !0;
- }
- if (a && a !== i) {
- e[r.$extra].target = a;
- return !0;
- }
- return !1;
- }
- a instanceof ContentArea || (a = null);
- const s = a && a[r.$getParent]();
- let o,
- c = s;
- if (e.startNew)
- if (a) {
- const e = s.contentArea.children,
- t = e.indexOf(n),
- r = e.indexOf(a);
- -1 !== t && t < r && (c = null);
- o = r - 1;
- } else o = i.contentArea.children.indexOf(n);
- else {
- if (!a || a === n) return !1;
- o = s.contentArea.children.indexOf(a) - 1;
- c = s === i ? null : s;
- }
- e[r.$extra].target = c;
- e[r.$extra].index = o;
- return !0;
- }
- function handleOverflow(e, t, a) {
- const i = e[r.$getTemplateRoot](),
- n = i[r.$extra].noLayoutFailure,
- s = t[r.$getSubformParent];
- t[r.$getSubformParent] = () => e;
- i[r.$extra].noLayoutFailure = !0;
- const o = t[r.$toHTML](a);
- e[r.$addHTML](o.html, o.bbox);
- i[r.$extra].noLayoutFailure = n;
- t[r.$getSubformParent] = s;
- }
- class AppearanceFilter extends r.StringObject {
- constructor(e) {
- super(d, 'appearanceFilter');
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, ['optional', 'required']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Arc extends r.XFAObject {
- constructor(e) {
- super(d, 'arc', !0);
- this.circular = (0, o.getInteger)({
- data: e.circular,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.hand = (0, o.getStringOption)(e.hand, ['even', 'left', 'right']);
- this.id = e.id || '';
- this.startAngle = (0, o.getFloat)({
- data: e.startAngle,
- defaultValue: 0,
- validate: (e) => !0,
- });
- this.sweepAngle = (0, o.getFloat)({
- data: e.sweepAngle,
- defaultValue: 360,
- validate: (e) => !0,
- });
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.edge = null;
- this.fill = null;
- }
- [r.$toHTML]() {
- const e = this.edge || new Edge({}),
- t = e[r.$toStyle](),
- a = Object.create(null);
- this.fill && 'visible' === this.fill.presence
- ? Object.assign(a, this.fill[r.$toStyle]())
- : (a.fill = 'transparent');
- a.strokeWidth = (0, s.measureToString)('visible' === e.presence ? e.thickness : 0);
- a.stroke = t.color;
- let i;
- const n = { xmlns: f, style: { width: '100%', height: '100%', overflow: 'visible' } };
- if (360 === this.sweepAngle)
- i = {
- name: 'ellipse',
- attributes: { xmlns: f, cx: '50%', cy: '50%', rx: '50%', ry: '50%', style: a },
- };
- else {
- const e = (this.startAngle * Math.PI) / 180,
- t = (this.sweepAngle * Math.PI) / 180,
- r = this.sweepAngle > 180 ? 1 : 0,
- [s, o, c, l] = [
- 50 * (1 + Math.cos(e)),
- 50 * (1 - Math.sin(e)),
- 50 * (1 + Math.cos(e + t)),
- 50 * (1 - Math.sin(e + t)),
- ];
- i = {
- name: 'path',
- attributes: {
- xmlns: f,
- d: `M ${s} ${o} A 50 50 0 ${r} 0 ${c} ${l}`,
- vectorEffect: 'non-scaling-stroke',
- style: a,
- },
- };
- Object.assign(n, { viewBox: '0 0 100 100', preserveAspectRatio: 'none' });
- }
- const c = { name: 'svg', children: [i], attributes: n };
- if (hasMargin(this[r.$getParent]()[r.$getParent]()))
- return o.HTMLResult.success({
- name: 'div',
- attributes: { style: { display: 'inline', width: '100%', height: '100%' } },
- children: [c],
- });
- c.attributes.style.position = 'absolute';
- return o.HTMLResult.success(c);
- }
- }
- class Area extends r.XFAObject {
- constructor(e) {
- super(d, 'area', !0);
- this.colSpan = (0, o.getInteger)({
- data: e.colSpan,
- defaultValue: 1,
- validate: (e) => e >= 1 || -1 === e,
- });
- this.id = e.id || '';
- this.name = e.name || '';
- this.relevant = (0, o.getRelevant)(e.relevant);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.x = (0, o.getMeasurement)(e.x, '0pt');
- this.y = (0, o.getMeasurement)(e.y, '0pt');
- this.desc = null;
- this.extras = null;
- this.area = new r.XFAObjectArray();
- this.draw = new r.XFAObjectArray();
- this.exObject = new r.XFAObjectArray();
- this.exclGroup = new r.XFAObjectArray();
- this.field = new r.XFAObjectArray();
- this.subform = new r.XFAObjectArray();
- this.subformSet = new r.XFAObjectArray();
- }
- *[r.$getContainedChildren]() {
- yield* getContainedChildren(this);
- }
- [r.$isTransparent]() {
- return !0;
- }
- [r.$isBindable]() {
- return !0;
- }
- [r.$addHTML](e, t) {
- const [a, i, n, s] = t;
- this[r.$extra].width = Math.max(this[r.$extra].width, a + n);
- this[r.$extra].height = Math.max(this[r.$extra].height, i + s);
- this[r.$extra].children.push(e);
- }
- [r.$getAvailableSpace]() {
- return this[r.$extra].availableSpace;
- }
- [r.$toHTML](e) {
- const t = (0, s.toStyle)(this, 'position'),
- a = { style: t, id: this[r.$uid], class: ['xfaArea'] };
- (0, s.isPrintOnly)(this) && a.class.push('xfaPrintOnly');
- this.name && (a.xfaName = this.name);
- const i = [];
- this[r.$extra] = { children: i, width: 0, height: 0, availableSpace: e };
- const n = this[r.$childrenToHTML]({
- filter: new Set(['area', 'draw', 'field', 'exclGroup', 'subform', 'subformSet']),
- include: !0,
- });
- if (!n.success) {
- if (n.isBreak()) return n;
- delete this[r.$extra];
- return o.HTMLResult.FAILURE;
- }
- t.width = (0, s.measureToString)(this[r.$extra].width);
- t.height = (0, s.measureToString)(this[r.$extra].height);
- const c = { name: 'div', attributes: a, children: i },
- l = [this.x, this.y, this[r.$extra].width, this[r.$extra].height];
- delete this[r.$extra];
- return o.HTMLResult.success(c, l);
- }
- }
- class Assist extends r.XFAObject {
- constructor(e) {
- super(d, 'assist', !0);
- this.id = e.id || '';
- this.role = e.role || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.speak = null;
- this.toolTip = null;
- }
- [r.$toHTML]() {
- return this.toolTip && this.toolTip[r.$content] ? this.toolTip[r.$content] : null;
- }
- }
- class Barcode extends r.XFAObject {
- constructor(e) {
- super(d, 'barcode', !0);
- this.charEncoding = (0, o.getKeyword)({
- data: e.charEncoding ? e.charEncoding.toLowerCase() : '',
- defaultValue: '',
- validate: (e) =>
- [
- 'utf-8',
- 'big-five',
- 'fontspecific',
- 'gbk',
- 'gb-18030',
- 'gb-2312',
- 'ksc-5601',
- 'none',
- 'shift-jis',
- 'ucs-2',
- 'utf-16',
- ].includes(e) || e.match(/iso-8859-\d{2}/),
- });
- this.checksum = (0, o.getStringOption)(e.checksum, [
- 'none',
- '1mod10',
- '1mod10_1mod11',
- '2mod10',
- 'auto',
- ]);
- this.dataColumnCount = (0, o.getInteger)({
- data: e.dataColumnCount,
- defaultValue: -1,
- validate: (e) => e >= 0,
- });
- this.dataLength = (0, o.getInteger)({
- data: e.dataLength,
- defaultValue: -1,
- validate: (e) => e >= 0,
- });
- this.dataPrep = (0, o.getStringOption)(e.dataPrep, ['none', 'flateCompress']);
- this.dataRowCount = (0, o.getInteger)({
- data: e.dataRowCount,
- defaultValue: -1,
- validate: (e) => e >= 0,
- });
- this.endChar = e.endChar || '';
- this.errorCorrectionLevel = (0, o.getInteger)({
- data: e.errorCorrectionLevel,
- defaultValue: -1,
- validate: (e) => e >= 0 && e <= 8,
- });
- this.id = e.id || '';
- this.moduleHeight = (0, o.getMeasurement)(e.moduleHeight, '5mm');
- this.moduleWidth = (0, o.getMeasurement)(e.moduleWidth, '0.25mm');
- this.printCheckDigit = (0, o.getInteger)({
- data: e.printCheckDigit,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.rowColumnRatio = (0, o.getRatio)(e.rowColumnRatio);
- this.startChar = e.startChar || '';
- this.textLocation = (0, o.getStringOption)(e.textLocation, [
- 'below',
- 'above',
- 'aboveEmbedded',
- 'belowEmbedded',
- 'none',
- ]);
- this.truncate = (0, o.getInteger)({
- data: e.truncate,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.type = (0, o.getStringOption)(e.type ? e.type.toLowerCase() : '', [
- 'aztec',
- 'codabar',
- 'code2of5industrial',
- 'code2of5interleaved',
- 'code2of5matrix',
- 'code2of5standard',
- 'code3of9',
- 'code3of9extended',
- 'code11',
- 'code49',
- 'code93',
- 'code128',
- 'code128a',
- 'code128b',
- 'code128c',
- 'code128sscc',
- 'datamatrix',
- 'ean8',
- 'ean8add2',
- 'ean8add5',
- 'ean13',
- 'ean13add2',
- 'ean13add5',
- 'ean13pwcd',
- 'fim',
- 'logmars',
- 'maxicode',
- 'msi',
- 'pdf417',
- 'pdf417macro',
- 'plessey',
- 'postauscust2',
- 'postauscust3',
- 'postausreplypaid',
- 'postausstandard',
- 'postukrm4scc',
- 'postusdpbc',
- 'postusimb',
- 'postusstandard',
- 'postus5zip',
- 'qrcode',
- 'rfid',
- 'rss14',
- 'rss14expanded',
- 'rss14limited',
- 'rss14stacked',
- 'rss14stackedomni',
- 'rss14truncated',
- 'telepen',
- 'ucc128',
- 'ucc128random',
- 'ucc128sscc',
- 'upca',
- 'upcaadd2',
- 'upcaadd5',
- 'upcapwcd',
- 'upce',
- 'upceadd2',
- 'upceadd5',
- 'upcean2',
- 'upcean5',
- 'upsmaxicode',
- ]);
- this.upsMode = (0, o.getStringOption)(e.upsMode, [
- 'usCarrier',
- 'internationalCarrier',
- 'secureSymbol',
- 'standardSymbol',
- ]);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.wideNarrowRatio = (0, o.getRatio)(e.wideNarrowRatio);
- this.encrypt = null;
- this.extras = null;
- }
- }
- class Bind extends r.XFAObject {
- constructor(e) {
- super(d, 'bind', !0);
- this.match = (0, o.getStringOption)(e.match, ['once', 'dataRef', 'global', 'none']);
- this.ref = e.ref || '';
- this.picture = null;
- }
- }
- class BindItems extends r.XFAObject {
- constructor(e) {
- super(d, 'bindItems');
- this.connection = e.connection || '';
- this.labelRef = e.labelRef || '';
- this.ref = e.ref || '';
- this.valueRef = e.valueRef || '';
- }
- }
- t.BindItems = BindItems;
- class Bookend extends r.XFAObject {
- constructor(e) {
- super(d, 'bookend');
- this.id = e.id || '';
- this.leader = e.leader || '';
- this.trailer = e.trailer || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class BooleanElement extends r.Option01 {
- constructor(e) {
- super(d, 'boolean');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- [r.$toHTML](e) {
- return valueToHtml(1 === this[r.$content] ? '1' : '0');
- }
- }
- class Border extends r.XFAObject {
- constructor(e) {
- super(d, 'border', !0);
- this.break = (0, o.getStringOption)(e.break, ['close', 'open']);
- this.hand = (0, o.getStringOption)(e.hand, ['even', 'left', 'right']);
- this.id = e.id || '';
- this.presence = (0, o.getStringOption)(e.presence, [
- 'visible',
- 'hidden',
- 'inactive',
- 'invisible',
- ]);
- this.relevant = (0, o.getRelevant)(e.relevant);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.corner = new r.XFAObjectArray(4);
- this.edge = new r.XFAObjectArray(4);
- this.extras = null;
- this.fill = null;
- this.margin = null;
- }
- [r.$getExtra]() {
- if (!this[r.$extra]) {
- const e = this.edge.children.slice();
- if (e.length < 4) {
- const t = e.at(-1) || new Edge({});
- for (let a = e.length; a < 4; a++) e.push(t);
- }
- const t = e.map((e) => e.thickness),
- a = [0, 0, 0, 0];
- if (this.margin) {
- a[0] = this.margin.topInset;
- a[1] = this.margin.rightInset;
- a[2] = this.margin.bottomInset;
- a[3] = this.margin.leftInset;
- }
- this[r.$extra] = { widths: t, insets: a, edges: e };
- }
- return this[r.$extra];
- }
- [r.$toStyle]() {
- const { edges: e } = this[r.$getExtra](),
- t = e.map((e) => {
- const t = e[r.$toStyle]();
- t.color = t.color || '#000000';
- return t;
- }),
- a = Object.create(null);
- this.margin && Object.assign(a, this.margin[r.$toStyle]());
- this.fill &&
- 'visible' === this.fill.presence &&
- Object.assign(a, this.fill[r.$toStyle]());
- if (this.corner.children.some((e) => 0 !== e.radius)) {
- const e = this.corner.children.map((e) => e[r.$toStyle]());
- if (2 === e.length || 3 === e.length) {
- const t = e.at(-1);
- for (let a = e.length; a < 4; a++) e.push(t);
- }
- a.borderRadius = e.map((e) => e.radius).join(' ');
- }
- switch (this.presence) {
- case 'invisible':
- case 'hidden':
- a.borderStyle = '';
- break;
- case 'inactive':
- a.borderStyle = 'none';
- break;
- default:
- a.borderStyle = t.map((e) => e.style).join(' ');
- }
- a.borderWidth = t.map((e) => e.width).join(' ');
- a.borderColor = t.map((e) => e.color).join(' ');
- return a;
- }
- }
- class Break extends r.XFAObject {
- constructor(e) {
- super(d, 'break', !0);
- this.after = (0, o.getStringOption)(e.after, [
- 'auto',
- 'contentArea',
- 'pageArea',
- 'pageEven',
- 'pageOdd',
- ]);
- this.afterTarget = e.afterTarget || '';
- this.before = (0, o.getStringOption)(e.before, [
- 'auto',
- 'contentArea',
- 'pageArea',
- 'pageEven',
- 'pageOdd',
- ]);
- this.beforeTarget = e.beforeTarget || '';
- this.bookendLeader = e.bookendLeader || '';
- this.bookendTrailer = e.bookendTrailer || '';
- this.id = e.id || '';
- this.overflowLeader = e.overflowLeader || '';
- this.overflowTarget = e.overflowTarget || '';
- this.overflowTrailer = e.overflowTrailer || '';
- this.startNew = (0, o.getInteger)({
- data: e.startNew,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- }
- }
- class BreakAfter extends r.XFAObject {
- constructor(e) {
- super(d, 'breakAfter', !0);
- this.id = e.id || '';
- this.leader = e.leader || '';
- this.startNew = (0, o.getInteger)({
- data: e.startNew,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.target = e.target || '';
- this.targetType = (0, o.getStringOption)(e.targetType, [
- 'auto',
- 'contentArea',
- 'pageArea',
- ]);
- this.trailer = e.trailer || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.script = null;
- }
- }
- class BreakBefore extends r.XFAObject {
- constructor(e) {
- super(d, 'breakBefore', !0);
- this.id = e.id || '';
- this.leader = e.leader || '';
- this.startNew = (0, o.getInteger)({
- data: e.startNew,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.target = e.target || '';
- this.targetType = (0, o.getStringOption)(e.targetType, [
- 'auto',
- 'contentArea',
- 'pageArea',
- ]);
- this.trailer = e.trailer || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.script = null;
- }
- [r.$toHTML](e) {
- this[r.$extra] = {};
- return o.HTMLResult.FAILURE;
- }
- }
- class Button extends r.XFAObject {
- constructor(e) {
- super(d, 'button', !0);
- this.highlight = (0, o.getStringOption)(e.highlight, [
- 'inverted',
- 'none',
- 'outline',
- 'push',
- ]);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- }
- [r.$toHTML](e) {
- const t = this[r.$getParent]()[r.$getParent](),
- a = {
- name: 'button',
- attributes: { id: this[r.$uid], class: ['xfaButton'], style: {} },
- children: [],
- };
- for (const e of t.event.children) {
- if ('click' !== e.activity || !e.script) continue;
- const t = (0, h.recoverJsURL)(e.script[r.$content]);
- if (!t) continue;
- const i = (0, s.fixURL)(t.url);
- i &&
- a.children.push({
- name: 'a',
- attributes: {
- id: 'link' + this[r.$uid],
- href: i,
- newWindow: t.newWindow,
- class: ['xfaLink'],
- style: {},
- },
- children: [],
- });
- }
- return o.HTMLResult.success(a);
- }
- }
- class Calculate extends r.XFAObject {
- constructor(e) {
- super(d, 'calculate', !0);
- this.id = e.id || '';
- this.override = (0, o.getStringOption)(e.override, [
- 'disabled',
- 'error',
- 'ignore',
- 'warning',
- ]);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- this.message = null;
- this.script = null;
- }
- }
- class Caption extends r.XFAObject {
- constructor(e) {
- super(d, 'caption', !0);
- this.id = e.id || '';
- this.placement = (0, o.getStringOption)(e.placement, [
- 'left',
- 'bottom',
- 'inline',
- 'right',
- 'top',
- ]);
- this.presence = (0, o.getStringOption)(e.presence, [
- 'visible',
- 'hidden',
- 'inactive',
- 'invisible',
- ]);
- this.reserve = Math.ceil((0, o.getMeasurement)(e.reserve));
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- this.font = null;
- this.margin = null;
- this.para = null;
- this.value = null;
- }
- [r.$setValue](e) {
- _setValue(this, e);
- }
- [r.$getExtra](e) {
- if (!this[r.$extra]) {
- let { width: t, height: a } = e;
- switch (this.placement) {
- case 'left':
- case 'right':
- case 'inline':
- t = this.reserve <= 0 ? t : this.reserve;
- break;
- case 'top':
- case 'bottom':
- a = this.reserve <= 0 ? a : this.reserve;
- }
- this[r.$extra] = (0, s.layoutNode)(this, { width: t, height: a });
- }
- return this[r.$extra];
- }
- [r.$toHTML](e) {
- if (!this.value) return o.HTMLResult.EMPTY;
- this[r.$pushPara]();
- const t = this.value[r.$toHTML](e).html;
- if (!t) {
- this[r.$popPara]();
- return o.HTMLResult.EMPTY;
- }
- const a = this.reserve;
- if (this.reserve <= 0) {
- const { w: t, h: a } = this[r.$getExtra](e);
- switch (this.placement) {
- case 'left':
- case 'right':
- case 'inline':
- this.reserve = t;
- break;
- case 'top':
- case 'bottom':
- this.reserve = a;
- }
- }
- const i = [];
- 'string' == typeof t ? i.push({ name: '#text', value: t }) : i.push(t);
- const n = (0, s.toStyle)(this, 'font', 'margin', 'visibility');
- switch (this.placement) {
- case 'left':
- case 'right':
- this.reserve > 0 && (n.width = (0, s.measureToString)(this.reserve));
- break;
- case 'top':
- case 'bottom':
- this.reserve > 0 && (n.height = (0, s.measureToString)(this.reserve));
- }
- (0, s.setPara)(this, null, t);
- this[r.$popPara]();
- this.reserve = a;
- return o.HTMLResult.success({
- name: 'div',
- attributes: { style: n, class: ['xfaCaption'] },
- children: i,
- });
- }
- }
- class Certificate extends r.StringObject {
- constructor(e) {
- super(d, 'certificate');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Certificates extends r.XFAObject {
- constructor(e) {
- super(d, 'certificates', !0);
- this.credentialServerPolicy = (0, o.getStringOption)(e.credentialServerPolicy, [
- 'optional',
- 'required',
- ]);
- this.id = e.id || '';
- this.url = e.url || '';
- this.urlPolicy = e.urlPolicy || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.encryption = null;
- this.issuers = null;
- this.keyUsage = null;
- this.oids = null;
- this.signing = null;
- this.subjectDNs = null;
- }
- }
- class CheckButton extends r.XFAObject {
- constructor(e) {
- super(d, 'checkButton', !0);
- this.id = e.id || '';
- this.mark = (0, o.getStringOption)(e.mark, [
- 'default',
- 'check',
- 'circle',
- 'cross',
- 'diamond',
- 'square',
- 'star',
- ]);
- this.shape = (0, o.getStringOption)(e.shape, ['square', 'round']);
- this.size = (0, o.getMeasurement)(e.size, '10pt');
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.border = null;
- this.extras = null;
- this.margin = null;
- }
- [r.$toHTML](e) {
- const t = (0, s.toStyle)('margin'),
- a = (0, s.measureToString)(this.size);
- t.width = t.height = a;
- let i, n, c;
- const l = this[r.$getParent]()[r.$getParent](),
- h = (l.items.children.length && l.items.children[0][r.$toHTML]().html) || [],
- u = {
- on: (void 0 !== h[0] ? h[0] : 'on').toString(),
- off: (void 0 !== h[1] ? h[1] : 'off').toString(),
- },
- d = ((l.value && l.value[r.$text]()) || 'off') === u.on || void 0,
- f = l[r.$getSubformParent](),
- g = l[r.$uid];
- let p;
- if (f instanceof ExclGroup) {
- c = f[r.$uid];
- i = 'radio';
- n = 'xfaRadio';
- p = (f[r.$data] && f[r.$data][r.$uid]) || f[r.$uid];
- } else {
- i = 'checkbox';
- n = 'xfaCheckbox';
- p = (l[r.$data] && l[r.$data][r.$uid]) || l[r.$uid];
- }
- const m = {
- name: 'input',
- attributes: {
- class: [n],
- style: t,
- fieldId: g,
- dataId: p,
- type: i,
- checked: d,
- xfaOn: u.on,
- xfaOff: u.off,
- 'aria-label': ariaLabel(l),
- 'aria-required': !1,
- },
- };
- c && (m.attributes.name = c);
- if (isRequired(l)) {
- m.attributes['aria-required'] = !0;
- m.attributes.required = !0;
- }
- return o.HTMLResult.success({
- name: 'label',
- attributes: { class: ['xfaLabel'] },
- children: [m],
- });
- }
- }
- class ChoiceList extends r.XFAObject {
- constructor(e) {
- super(d, 'choiceList', !0);
- this.commitOn = (0, o.getStringOption)(e.commitOn, ['select', 'exit']);
- this.id = e.id || '';
- this.open = (0, o.getStringOption)(e.open, [
- 'userControl',
- 'always',
- 'multiSelect',
- 'onEntry',
- ]);
- this.textEntry = (0, o.getInteger)({
- data: e.textEntry,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.border = null;
- this.extras = null;
- this.margin = null;
- }
- [r.$toHTML](e) {
- const t = (0, s.toStyle)(this, 'border', 'margin'),
- a = this[r.$getParent]()[r.$getParent](),
- i = { fontSize: `calc(${(a.font && a.font.size) || 10}px * var(--scale-factor))` },
- n = [];
- if (a.items.children.length > 0) {
- const e = a.items;
- let t = 0,
- s = 0;
- if (2 === e.children.length) {
- t = e.children[0].save;
- s = 1 - t;
- }
- const o = e.children[t][r.$toHTML]().html,
- c = e.children[s][r.$toHTML]().html;
- let l = !1;
- const h = (a.value && a.value[r.$text]()) || '';
- for (let e = 0, t = o.length; e < t; e++) {
- const t = {
- name: 'option',
- attributes: { value: c[e] || o[e], style: i },
- value: o[e],
- };
- c[e] === h && (t.attributes.selected = l = !0);
- n.push(t);
- }
- l ||
- n.splice(0, 0, {
- name: 'option',
- attributes: { hidden: !0, selected: !0 },
- value: ' ',
- });
- }
- const c = {
- class: ['xfaSelect'],
- fieldId: a[r.$uid],
- dataId: (a[r.$data] && a[r.$data][r.$uid]) || a[r.$uid],
- style: t,
- 'aria-label': ariaLabel(a),
- 'aria-required': !1,
- };
- if (isRequired(a)) {
- c['aria-required'] = !0;
- c.required = !0;
- }
- 'multiSelect' === this.open && (c.multiple = !0);
- return o.HTMLResult.success({
- name: 'label',
- attributes: { class: ['xfaLabel'] },
- children: [{ name: 'select', children: n, attributes: c }],
- });
- }
- }
- class Color extends r.XFAObject {
- constructor(e) {
- super(d, 'color', !0);
- this.cSpace = (0, o.getStringOption)(e.cSpace, ['SRGB']);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.value = e.value ? (0, o.getColor)(e.value) : '';
- this.extras = null;
- }
- [r.$hasSettableValue]() {
- return !1;
- }
- [r.$toStyle]() {
- return this.value
- ? c.Util.makeHexColor(this.value.r, this.value.g, this.value.b)
- : null;
- }
- }
- class Comb extends r.XFAObject {
- constructor(e) {
- super(d, 'comb');
- this.id = e.id || '';
- this.numberOfCells = (0, o.getInteger)({
- data: e.numberOfCells,
- defaultValue: 0,
- validate: (e) => e >= 0,
- });
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Connect extends r.XFAObject {
- constructor(e) {
- super(d, 'connect', !0);
- this.connection = e.connection || '';
- this.id = e.id || '';
- this.ref = e.ref || '';
- this.usage = (0, o.getStringOption)(e.usage, [
- 'exportAndImport',
- 'exportOnly',
- 'importOnly',
- ]);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.picture = null;
- }
- }
- class ContentArea extends r.XFAObject {
- constructor(e) {
- super(d, 'contentArea', !0);
- this.h = (0, o.getMeasurement)(e.h);
- this.id = e.id || '';
- this.name = e.name || '';
- this.relevant = (0, o.getRelevant)(e.relevant);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.w = (0, o.getMeasurement)(e.w);
- this.x = (0, o.getMeasurement)(e.x, '0pt');
- this.y = (0, o.getMeasurement)(e.y, '0pt');
- this.desc = null;
- this.extras = null;
- }
- [r.$toHTML](e) {
- const t = {
- left: (0, s.measureToString)(this.x),
- top: (0, s.measureToString)(this.y),
- width: (0, s.measureToString)(this.w),
- height: (0, s.measureToString)(this.h),
- },
- a = ['xfaContentarea'];
- (0, s.isPrintOnly)(this) && a.push('xfaPrintOnly');
- return o.HTMLResult.success({
- name: 'div',
- children: [],
- attributes: { style: t, class: a, id: this[r.$uid] },
- });
- }
- }
- class Corner extends r.XFAObject {
- constructor(e) {
- super(d, 'corner', !0);
- this.id = e.id || '';
- this.inverted = (0, o.getInteger)({
- data: e.inverted,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.join = (0, o.getStringOption)(e.join, ['square', 'round']);
- this.presence = (0, o.getStringOption)(e.presence, [
- 'visible',
- 'hidden',
- 'inactive',
- 'invisible',
- ]);
- this.radius = (0, o.getMeasurement)(e.radius);
- this.stroke = (0, o.getStringOption)(e.stroke, [
- 'solid',
- 'dashDot',
- 'dashDotDot',
- 'dashed',
- 'dotted',
- 'embossed',
- 'etched',
- 'lowered',
- 'raised',
- ]);
- this.thickness = (0, o.getMeasurement)(e.thickness, '0.5pt');
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.color = null;
- this.extras = null;
- }
- [r.$toStyle]() {
- const e = (0, s.toStyle)(this, 'visibility');
- e.radius = (0, s.measureToString)('square' === this.join ? 0 : this.radius);
- return e;
- }
- }
- class DateElement extends r.ContentObject {
- constructor(e) {
- super(d, 'date');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- [r.$finalize]() {
- const e = this[r.$content].trim();
- this[r.$content] = e ? new Date(e) : null;
- }
- [r.$toHTML](e) {
- return valueToHtml(this[r.$content] ? this[r.$content].toString() : '');
- }
- }
- class DateTime extends r.ContentObject {
- constructor(e) {
- super(d, 'dateTime');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- [r.$finalize]() {
- const e = this[r.$content].trim();
- this[r.$content] = e ? new Date(e) : null;
- }
- [r.$toHTML](e) {
- return valueToHtml(this[r.$content] ? this[r.$content].toString() : '');
- }
- }
- class DateTimeEdit extends r.XFAObject {
- constructor(e) {
- super(d, 'dateTimeEdit', !0);
- this.hScrollPolicy = (0, o.getStringOption)(e.hScrollPolicy, ['auto', 'off', 'on']);
- this.id = e.id || '';
- this.picker = (0, o.getStringOption)(e.picker, ['host', 'none']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.border = null;
- this.comb = null;
- this.extras = null;
- this.margin = null;
- }
- [r.$toHTML](e) {
- const t = (0, s.toStyle)(this, 'border', 'font', 'margin'),
- a = this[r.$getParent]()[r.$getParent](),
- i = {
- name: 'input',
- attributes: {
- type: 'text',
- fieldId: a[r.$uid],
- dataId: (a[r.$data] && a[r.$data][r.$uid]) || a[r.$uid],
- class: ['xfaTextfield'],
- style: t,
- 'aria-label': ariaLabel(a),
- 'aria-required': !1,
- },
- };
- if (isRequired(a)) {
- i.attributes['aria-required'] = !0;
- i.attributes.required = !0;
- }
- return o.HTMLResult.success({
- name: 'label',
- attributes: { class: ['xfaLabel'] },
- children: [i],
- });
- }
- }
- class Decimal extends r.ContentObject {
- constructor(e) {
- super(d, 'decimal');
- this.fracDigits = (0, o.getInteger)({
- data: e.fracDigits,
- defaultValue: 2,
- validate: (e) => !0,
- });
- this.id = e.id || '';
- this.leadDigits = (0, o.getInteger)({
- data: e.leadDigits,
- defaultValue: -1,
- validate: (e) => !0,
- });
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- [r.$finalize]() {
- const e = parseFloat(this[r.$content].trim());
- this[r.$content] = isNaN(e) ? null : e;
- }
- [r.$toHTML](e) {
- return valueToHtml(null !== this[r.$content] ? this[r.$content].toString() : '');
- }
- }
- class DefaultUi extends r.XFAObject {
- constructor(e) {
- super(d, 'defaultUi', !0);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- }
- }
- class Desc extends r.XFAObject {
- constructor(e) {
- super(d, 'desc', !0);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.boolean = new r.XFAObjectArray();
- this.date = new r.XFAObjectArray();
- this.dateTime = new r.XFAObjectArray();
- this.decimal = new r.XFAObjectArray();
- this.exData = new r.XFAObjectArray();
- this.float = new r.XFAObjectArray();
- this.image = new r.XFAObjectArray();
- this.integer = new r.XFAObjectArray();
- this.text = new r.XFAObjectArray();
- this.time = new r.XFAObjectArray();
- }
- }
- class DigestMethod extends r.OptionObject {
- constructor(e) {
- super(d, 'digestMethod', ['', 'SHA1', 'SHA256', 'SHA512', 'RIPEMD160']);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class DigestMethods extends r.XFAObject {
- constructor(e) {
- super(d, 'digestMethods', !0);
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, ['optional', 'required']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.digestMethod = new r.XFAObjectArray();
- }
- }
- class Draw extends r.XFAObject {
- constructor(e) {
- super(d, 'draw', !0);
- this.anchorType = (0, o.getStringOption)(e.anchorType, [
- 'topLeft',
- 'bottomCenter',
- 'bottomLeft',
- 'bottomRight',
- 'middleCenter',
- 'middleLeft',
- 'middleRight',
- 'topCenter',
- 'topRight',
- ]);
- this.colSpan = (0, o.getInteger)({
- data: e.colSpan,
- defaultValue: 1,
- validate: (e) => e >= 1 || -1 === e,
- });
- this.h = e.h ? (0, o.getMeasurement)(e.h) : '';
- this.hAlign = (0, o.getStringOption)(e.hAlign, [
- 'left',
- 'center',
- 'justify',
- 'justifyAll',
- 'radix',
- 'right',
- ]);
- this.id = e.id || '';
- this.locale = e.locale || '';
- this.maxH = (0, o.getMeasurement)(e.maxH, '0pt');
- this.maxW = (0, o.getMeasurement)(e.maxW, '0pt');
- this.minH = (0, o.getMeasurement)(e.minH, '0pt');
- this.minW = (0, o.getMeasurement)(e.minW, '0pt');
- this.name = e.name || '';
- this.presence = (0, o.getStringOption)(e.presence, [
- 'visible',
- 'hidden',
- 'inactive',
- 'invisible',
- ]);
- this.relevant = (0, o.getRelevant)(e.relevant);
- this.rotate = (0, o.getInteger)({
- data: e.rotate,
- defaultValue: 0,
- validate: (e) => e % 90 == 0,
- });
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.w = e.w ? (0, o.getMeasurement)(e.w) : '';
- this.x = (0, o.getMeasurement)(e.x, '0pt');
- this.y = (0, o.getMeasurement)(e.y, '0pt');
- this.assist = null;
- this.border = null;
- this.caption = null;
- this.desc = null;
- this.extras = null;
- this.font = null;
- this.keep = null;
- this.margin = null;
- this.para = null;
- this.traversal = null;
- this.ui = null;
- this.value = null;
- this.setProperty = new r.XFAObjectArray();
- }
- [r.$setValue](e) {
- _setValue(this, e);
- }
- [r.$toHTML](e) {
- setTabIndex(this);
- if ('hidden' === this.presence || 'inactive' === this.presence)
- return o.HTMLResult.EMPTY;
- (0, s.fixDimensions)(this);
- this[r.$pushPara]();
- const t = this.w,
- a = this.h,
- { w: i, h: c, isBroken: l } = (0, s.layoutNode)(this, e);
- if (i && '' === this.w) {
- if (l && this[r.$getSubformParent]()[r.$isThereMoreWidth]()) {
- this[r.$popPara]();
- return o.HTMLResult.FAILURE;
- }
- this.w = i;
- }
- c && '' === this.h && (this.h = c);
- setFirstUnsplittable(this);
- if (!(0, n.checkDimensions)(this, e)) {
- this.w = t;
- this.h = a;
- this[r.$popPara]();
- return o.HTMLResult.FAILURE;
- }
- unsetFirstUnsplittable(this);
- const h = (0, s.toStyle)(
- this,
- 'font',
- 'hAlign',
- 'dimensions',
- 'position',
- 'presence',
- 'rotate',
- 'anchorType',
- 'border',
- 'margin',
- );
- (0, s.setMinMaxDimensions)(this, h);
- if (h.margin) {
- h.padding = h.margin;
- delete h.margin;
- }
- const u = ['xfaDraw'];
- this.font && u.push('xfaFont');
- (0, s.isPrintOnly)(this) && u.push('xfaPrintOnly');
- const d = { style: h, id: this[r.$uid], class: u };
- this.name && (d.xfaName = this.name);
- const f = { name: 'div', attributes: d, children: [] };
- applyAssist(this, d);
- const g = (0, s.computeBbox)(this, f, e),
- p = this.value ? this.value[r.$toHTML](e).html : null;
- if (null === p) {
- this.w = t;
- this.h = a;
- this[r.$popPara]();
- return o.HTMLResult.success((0, s.createWrapper)(this, f), g);
- }
- f.children.push(p);
- (0, s.setPara)(this, h, p);
- this.w = t;
- this.h = a;
- this[r.$popPara]();
- return o.HTMLResult.success((0, s.createWrapper)(this, f), g);
- }
- }
- class Edge extends r.XFAObject {
- constructor(e) {
- super(d, 'edge', !0);
- this.cap = (0, o.getStringOption)(e.cap, ['square', 'butt', 'round']);
- this.id = e.id || '';
- this.presence = (0, o.getStringOption)(e.presence, [
- 'visible',
- 'hidden',
- 'inactive',
- 'invisible',
- ]);
- this.stroke = (0, o.getStringOption)(e.stroke, [
- 'solid',
- 'dashDot',
- 'dashDotDot',
- 'dashed',
- 'dotted',
- 'embossed',
- 'etched',
- 'lowered',
- 'raised',
- ]);
- this.thickness = (0, o.getMeasurement)(e.thickness, '0.5pt');
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.color = null;
- this.extras = null;
- }
- [r.$toStyle]() {
- const e = (0, s.toStyle)(this, 'visibility');
- Object.assign(e, {
- linecap: this.cap,
- width: (0, s.measureToString)(this.thickness),
- color: this.color ? this.color[r.$toStyle]() : '#000000',
- style: '',
- });
- if ('visible' !== this.presence) e.style = 'none';
- else
- switch (this.stroke) {
- case 'solid':
- e.style = 'solid';
- break;
- case 'dashDot':
- case 'dashDotDot':
- case 'dashed':
- e.style = 'dashed';
- break;
- case 'dotted':
- e.style = 'dotted';
- break;
- case 'embossed':
- e.style = 'ridge';
- break;
- case 'etched':
- e.style = 'groove';
- break;
- case 'lowered':
- e.style = 'inset';
- break;
- case 'raised':
- e.style = 'outset';
- }
- return e;
- }
- }
- class Encoding extends r.OptionObject {
- constructor(e) {
- super(d, 'encoding', [
- 'adbe.x509.rsa_sha1',
- 'adbe.pkcs7.detached',
- 'adbe.pkcs7.sha1',
- ]);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Encodings extends r.XFAObject {
- constructor(e) {
- super(d, 'encodings', !0);
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, ['optional', 'required']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.encoding = new r.XFAObjectArray();
- }
- }
- class Encrypt extends r.XFAObject {
- constructor(e) {
- super(d, 'encrypt', !0);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.certificate = null;
- }
- }
- class EncryptData extends r.XFAObject {
- constructor(e) {
- super(d, 'encryptData', !0);
- this.id = e.id || '';
- this.operation = (0, o.getStringOption)(e.operation, ['encrypt', 'decrypt']);
- this.target = e.target || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.filter = null;
- this.manifest = null;
- }
- }
- class Encryption extends r.XFAObject {
- constructor(e) {
- super(d, 'encryption', !0);
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, ['optional', 'required']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.certificate = new r.XFAObjectArray();
- }
- }
- class EncryptionMethod extends r.OptionObject {
- constructor(e) {
- super(d, 'encryptionMethod', [
- '',
- 'AES256-CBC',
- 'TRIPLEDES-CBC',
- 'AES128-CBC',
- 'AES192-CBC',
- ]);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class EncryptionMethods extends r.XFAObject {
- constructor(e) {
- super(d, 'encryptionMethods', !0);
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, ['optional', 'required']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.encryptionMethod = new r.XFAObjectArray();
- }
- }
- class Event extends r.XFAObject {
- constructor(e) {
- super(d, 'event', !0);
- this.activity = (0, o.getStringOption)(e.activity, [
- 'click',
- 'change',
- 'docClose',
- 'docReady',
- 'enter',
- 'exit',
- 'full',
- 'indexChange',
- 'initialize',
- 'mouseDown',
- 'mouseEnter',
- 'mouseExit',
- 'mouseUp',
- 'postExecute',
- 'postOpen',
- 'postPrint',
- 'postSave',
- 'postSign',
- 'postSubmit',
- 'preExecute',
- 'preOpen',
- 'prePrint',
- 'preSave',
- 'preSign',
- 'preSubmit',
- 'ready',
- 'validationState',
- ]);
- this.id = e.id || '';
- this.listen = (0, o.getStringOption)(e.listen, ['refOnly', 'refAndDescendents']);
- this.name = e.name || '';
- this.ref = e.ref || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- this.encryptData = null;
- this.execute = null;
- this.script = null;
- this.signData = null;
- this.submit = null;
- }
- }
- class ExData extends r.ContentObject {
- constructor(e) {
- super(d, 'exData');
- this.contentType = e.contentType || '';
- this.href = e.href || '';
- this.id = e.id || '';
- this.maxLength = (0, o.getInteger)({
- data: e.maxLength,
- defaultValue: -1,
- validate: (e) => e >= -1,
- });
- this.name = e.name || '';
- this.rid = e.rid || '';
- this.transferEncoding = (0, o.getStringOption)(e.transferEncoding, [
- 'none',
- 'base64',
- 'package',
- ]);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- [r.$isCDATAXml]() {
- return 'text/html' === this.contentType;
- }
- [r.$onChild](e) {
- if (
- 'text/html' === this.contentType &&
- e[r.$namespaceId] === i.NamespaceIds.xhtml.id
- ) {
- this[r.$content] = e;
- return !0;
- }
- if ('text/xml' === this.contentType) {
- this[r.$content] = e;
- return !0;
- }
- return !1;
- }
- [r.$toHTML](e) {
- return 'text/html' === this.contentType && this[r.$content]
- ? this[r.$content][r.$toHTML](e)
- : o.HTMLResult.EMPTY;
- }
- }
- class ExObject extends r.XFAObject {
- constructor(e) {
- super(d, 'exObject', !0);
- this.archive = e.archive || '';
- this.classId = e.classId || '';
- this.codeBase = e.codeBase || '';
- this.codeType = e.codeType || '';
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- this.boolean = new r.XFAObjectArray();
- this.date = new r.XFAObjectArray();
- this.dateTime = new r.XFAObjectArray();
- this.decimal = new r.XFAObjectArray();
- this.exData = new r.XFAObjectArray();
- this.exObject = new r.XFAObjectArray();
- this.float = new r.XFAObjectArray();
- this.image = new r.XFAObjectArray();
- this.integer = new r.XFAObjectArray();
- this.text = new r.XFAObjectArray();
- this.time = new r.XFAObjectArray();
- }
- }
- class ExclGroup extends r.XFAObject {
- constructor(e) {
- super(d, 'exclGroup', !0);
- this.access = (0, o.getStringOption)(e.access, [
- 'open',
- 'nonInteractive',
- 'protected',
- 'readOnly',
- ]);
- this.accessKey = e.accessKey || '';
- this.anchorType = (0, o.getStringOption)(e.anchorType, [
- 'topLeft',
- 'bottomCenter',
- 'bottomLeft',
- 'bottomRight',
- 'middleCenter',
- 'middleLeft',
- 'middleRight',
- 'topCenter',
- 'topRight',
- ]);
- this.colSpan = (0, o.getInteger)({
- data: e.colSpan,
- defaultValue: 1,
- validate: (e) => e >= 1 || -1 === e,
- });
- this.h = e.h ? (0, o.getMeasurement)(e.h) : '';
- this.hAlign = (0, o.getStringOption)(e.hAlign, [
- 'left',
- 'center',
- 'justify',
- 'justifyAll',
- 'radix',
- 'right',
- ]);
- this.id = e.id || '';
- this.layout = (0, o.getStringOption)(e.layout, [
- 'position',
- 'lr-tb',
- 'rl-row',
- 'rl-tb',
- 'row',
- 'table',
- 'tb',
- ]);
- this.maxH = (0, o.getMeasurement)(e.maxH, '0pt');
- this.maxW = (0, o.getMeasurement)(e.maxW, '0pt');
- this.minH = (0, o.getMeasurement)(e.minH, '0pt');
- this.minW = (0, o.getMeasurement)(e.minW, '0pt');
- this.name = e.name || '';
- this.presence = (0, o.getStringOption)(e.presence, [
- 'visible',
- 'hidden',
- 'inactive',
- 'invisible',
- ]);
- this.relevant = (0, o.getRelevant)(e.relevant);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.w = e.w ? (0, o.getMeasurement)(e.w) : '';
- this.x = (0, o.getMeasurement)(e.x, '0pt');
- this.y = (0, o.getMeasurement)(e.y, '0pt');
- this.assist = null;
- this.bind = null;
- this.border = null;
- this.calculate = null;
- this.caption = null;
- this.desc = null;
- this.extras = null;
- this.margin = null;
- this.para = null;
- this.traversal = null;
- this.validate = null;
- this.connect = new r.XFAObjectArray();
- this.event = new r.XFAObjectArray();
- this.field = new r.XFAObjectArray();
- this.setProperty = new r.XFAObjectArray();
- }
- [r.$isBindable]() {
- return !0;
- }
- [r.$hasSettableValue]() {
- return !0;
- }
- [r.$setValue](e) {
- for (const t of this.field.children) {
- if (!t.value) {
- const e = new Value({});
- t[r.$appendChild](e);
- t.value = e;
- }
- t.value[r.$setValue](e);
- }
- }
- [r.$isThereMoreWidth]() {
- return (
- (this.layout.endsWith('-tb') &&
- 0 === this[r.$extra].attempt &&
- this[r.$extra].numberInLine > 0) ||
- this[r.$getParent]()[r.$isThereMoreWidth]()
- );
- }
- [r.$isSplittable]() {
- const e = this[r.$getSubformParent]();
- if (!e[r.$isSplittable]()) return !1;
- if (void 0 !== this[r.$extra]._isSplittable) return this[r.$extra]._isSplittable;
- if ('position' === this.layout || this.layout.includes('row')) {
- this[r.$extra]._isSplittable = !1;
- return !1;
- }
- if (e.layout && e.layout.endsWith('-tb') && 0 !== e[r.$extra].numberInLine) return !1;
- this[r.$extra]._isSplittable = !0;
- return !0;
- }
- [r.$flushHTML]() {
- return (0, n.flushHTML)(this);
- }
- [r.$addHTML](e, t) {
- (0, n.addHTML)(this, e, t);
- }
- [r.$getAvailableSpace]() {
- return (0, n.getAvailableSpace)(this);
- }
- [r.$toHTML](e) {
- setTabIndex(this);
- if (
- 'hidden' === this.presence ||
- 'inactive' === this.presence ||
- 0 === this.h ||
- 0 === this.w
- )
- return o.HTMLResult.EMPTY;
- (0, s.fixDimensions)(this);
- const t = [],
- a = { id: this[r.$uid], class: [] };
- (0, s.setAccess)(this, a.class);
- this[r.$extra] || (this[r.$extra] = Object.create(null));
- Object.assign(this[r.$extra], {
- children: t,
- attributes: a,
- attempt: 0,
- line: null,
- numberInLine: 0,
- availableSpace: {
- width: Math.min(this.w || 1 / 0, e.width),
- height: Math.min(this.h || 1 / 0, e.height),
- },
- width: 0,
- height: 0,
- prevHeight: 0,
- currentWidth: 0,
- });
- const i = this[r.$isSplittable]();
- i || setFirstUnsplittable(this);
- if (!(0, n.checkDimensions)(this, e)) return o.HTMLResult.FAILURE;
- const c = new Set(['field']);
- if (this.layout.includes('row')) {
- const e = this[r.$getSubformParent]().columnWidths;
- if (Array.isArray(e) && e.length > 0) {
- this[r.$extra].columnWidths = e;
- this[r.$extra].currentColumn = 0;
- }
- }
- const l = (0, s.toStyle)(
- this,
- 'anchorType',
- 'dimensions',
- 'position',
- 'presence',
- 'border',
- 'margin',
- 'hAlign',
- ),
- h = ['xfaExclgroup'],
- u = (0, s.layoutClass)(this);
- u && h.push(u);
- (0, s.isPrintOnly)(this) && h.push('xfaPrintOnly');
- a.style = l;
- a.class = h;
- this.name && (a.xfaName = this.name);
- this[r.$pushPara]();
- const d = 'lr-tb' === this.layout || 'rl-tb' === this.layout,
- f = d ? 2 : 1;
- for (; this[r.$extra].attempt < f; this[r.$extra].attempt++) {
- d && 1 === this[r.$extra].attempt && (this[r.$extra].numberInLine = 0);
- const e = this[r.$childrenToHTML]({ filter: c, include: !0 });
- if (e.success) break;
- if (e.isBreak()) {
- this[r.$popPara]();
- return e;
- }
- if (
- d &&
- 0 === this[r.$extra].attempt &&
- 0 === this[r.$extra].numberInLine &&
- !this[r.$getTemplateRoot]()[r.$extra].noLayoutFailure
- ) {
- this[r.$extra].attempt = f;
- break;
- }
- }
- this[r.$popPara]();
- i || unsetFirstUnsplittable(this);
- if (this[r.$extra].attempt === f) {
- i || delete this[r.$extra];
- return o.HTMLResult.FAILURE;
- }
- let g = 0,
- p = 0;
- if (this.margin) {
- g = this.margin.leftInset + this.margin.rightInset;
- p = this.margin.topInset + this.margin.bottomInset;
- }
- const m = Math.max(this[r.$extra].width + g, this.w || 0),
- b = Math.max(this[r.$extra].height + p, this.h || 0),
- y = [this.x, this.y, m, b];
- '' === this.w && (l.width = (0, s.measureToString)(m));
- '' === this.h && (l.height = (0, s.measureToString)(b));
- const w = { name: 'div', attributes: a, children: t };
- applyAssist(this, a);
- delete this[r.$extra];
- return o.HTMLResult.success((0, s.createWrapper)(this, w), y);
- }
- }
- class Execute extends r.XFAObject {
- constructor(e) {
- super(d, 'execute');
- this.connection = e.connection || '';
- this.executeType = (0, o.getStringOption)(e.executeType, ['import', 'remerge']);
- this.id = e.id || '';
- this.runAt = (0, o.getStringOption)(e.runAt, ['client', 'both', 'server']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Extras extends r.XFAObject {
- constructor(e) {
- super(d, 'extras', !0);
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.boolean = new r.XFAObjectArray();
- this.date = new r.XFAObjectArray();
- this.dateTime = new r.XFAObjectArray();
- this.decimal = new r.XFAObjectArray();
- this.exData = new r.XFAObjectArray();
- this.extras = new r.XFAObjectArray();
- this.float = new r.XFAObjectArray();
- this.image = new r.XFAObjectArray();
- this.integer = new r.XFAObjectArray();
- this.text = new r.XFAObjectArray();
- this.time = new r.XFAObjectArray();
- }
- }
- class Field extends r.XFAObject {
- constructor(e) {
- super(d, 'field', !0);
- this.access = (0, o.getStringOption)(e.access, [
- 'open',
- 'nonInteractive',
- 'protected',
- 'readOnly',
- ]);
- this.accessKey = e.accessKey || '';
- this.anchorType = (0, o.getStringOption)(e.anchorType, [
- 'topLeft',
- 'bottomCenter',
- 'bottomLeft',
- 'bottomRight',
- 'middleCenter',
- 'middleLeft',
- 'middleRight',
- 'topCenter',
- 'topRight',
- ]);
- this.colSpan = (0, o.getInteger)({
- data: e.colSpan,
- defaultValue: 1,
- validate: (e) => e >= 1 || -1 === e,
- });
- this.h = e.h ? (0, o.getMeasurement)(e.h) : '';
- this.hAlign = (0, o.getStringOption)(e.hAlign, [
- 'left',
- 'center',
- 'justify',
- 'justifyAll',
- 'radix',
- 'right',
- ]);
- this.id = e.id || '';
- this.locale = e.locale || '';
- this.maxH = (0, o.getMeasurement)(e.maxH, '0pt');
- this.maxW = (0, o.getMeasurement)(e.maxW, '0pt');
- this.minH = (0, o.getMeasurement)(e.minH, '0pt');
- this.minW = (0, o.getMeasurement)(e.minW, '0pt');
- this.name = e.name || '';
- this.presence = (0, o.getStringOption)(e.presence, [
- 'visible',
- 'hidden',
- 'inactive',
- 'invisible',
- ]);
- this.relevant = (0, o.getRelevant)(e.relevant);
- this.rotate = (0, o.getInteger)({
- data: e.rotate,
- defaultValue: 0,
- validate: (e) => e % 90 == 0,
- });
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.w = e.w ? (0, o.getMeasurement)(e.w) : '';
- this.x = (0, o.getMeasurement)(e.x, '0pt');
- this.y = (0, o.getMeasurement)(e.y, '0pt');
- this.assist = null;
- this.bind = null;
- this.border = null;
- this.calculate = null;
- this.caption = null;
- this.desc = null;
- this.extras = null;
- this.font = null;
- this.format = null;
- this.items = new r.XFAObjectArray(2);
- this.keep = null;
- this.margin = null;
- this.para = null;
- this.traversal = null;
- this.ui = null;
- this.validate = null;
- this.value = null;
- this.bindItems = new r.XFAObjectArray();
- this.connect = new r.XFAObjectArray();
- this.event = new r.XFAObjectArray();
- this.setProperty = new r.XFAObjectArray();
- }
- [r.$isBindable]() {
- return !0;
- }
- [r.$setValue](e) {
- _setValue(this, e);
- }
- [r.$toHTML](e) {
- setTabIndex(this);
- if (!this.ui) {
- this.ui = new Ui({});
- this.ui[r.$globalData] = this[r.$globalData];
- this[r.$appendChild](this.ui);
- let e;
- switch (this.items.children.length) {
- case 0:
- e = new TextEdit({});
- this.ui.textEdit = e;
- break;
- case 1:
- e = new CheckButton({});
- this.ui.checkButton = e;
- break;
- case 2:
- e = new ChoiceList({});
- this.ui.choiceList = e;
- }
- this.ui[r.$appendChild](e);
- }
- if (
- !this.ui ||
- 'hidden' === this.presence ||
- 'inactive' === this.presence ||
- 0 === this.h ||
- 0 === this.w
- )
- return o.HTMLResult.EMPTY;
- this.caption && delete this.caption[r.$extra];
- this[r.$pushPara]();
- const t = this.caption ? this.caption[r.$toHTML](e).html : null,
- a = this.w,
- i = this.h;
- let c = 0,
- h = 0;
- if (this.margin) {
- c = this.margin.leftInset + this.margin.rightInset;
- h = this.margin.topInset + this.margin.bottomInset;
- }
- let u = null;
- if ('' === this.w || '' === this.h) {
- let t = null,
- a = null,
- i = 0,
- n = 0;
- if (this.ui.checkButton) i = n = this.ui.checkButton.size;
- else {
- const { w: t, h: a } = (0, s.layoutNode)(this, e);
- if (null !== t) {
- i = t;
- n = a;
- } else n = (0, l.getMetrics)(this.font, !0).lineNoGap;
- }
- u = getBorderDims(this.ui[r.$getExtra]());
- i += u.w;
- n += u.h;
- if (this.caption) {
- const { w: s, h: c, isBroken: l } = this.caption[r.$getExtra](e);
- if (l && this[r.$getSubformParent]()[r.$isThereMoreWidth]()) {
- this[r.$popPara]();
- return o.HTMLResult.FAILURE;
- }
- t = s;
- a = c;
- switch (this.caption.placement) {
- case 'left':
- case 'right':
- case 'inline':
- t += i;
- break;
- case 'top':
- case 'bottom':
- a += n;
- }
- } else {
- t = i;
- a = n;
- }
- if (t && '' === this.w) {
- t += c;
- this.w = Math.min(
- this.maxW <= 0 ? 1 / 0 : this.maxW,
- this.minW + 1 < t ? t : this.minW,
- );
- }
- if (a && '' === this.h) {
- a += h;
- this.h = Math.min(
- this.maxH <= 0 ? 1 / 0 : this.maxH,
- this.minH + 1 < a ? a : this.minH,
- );
- }
- }
- this[r.$popPara]();
- (0, s.fixDimensions)(this);
- setFirstUnsplittable(this);
- if (!(0, n.checkDimensions)(this, e)) {
- this.w = a;
- this.h = i;
- this[r.$popPara]();
- return o.HTMLResult.FAILURE;
- }
- unsetFirstUnsplittable(this);
- const d = (0, s.toStyle)(
- this,
- 'font',
- 'dimensions',
- 'position',
- 'rotate',
- 'anchorType',
- 'presence',
- 'margin',
- 'hAlign',
- );
- (0, s.setMinMaxDimensions)(this, d);
- const f = ['xfaField'];
- this.font && f.push('xfaFont');
- (0, s.isPrintOnly)(this) && f.push('xfaPrintOnly');
- const g = { style: d, id: this[r.$uid], class: f };
- if (d.margin) {
- d.padding = d.margin;
- delete d.margin;
- }
- (0, s.setAccess)(this, f);
- this.name && (g.xfaName = this.name);
- const p = [],
- m = { name: 'div', attributes: g, children: p };
- applyAssist(this, g);
- const b = this.border ? this.border[r.$toStyle]() : null,
- y = (0, s.computeBbox)(this, m, e),
- w = this.ui[r.$toHTML]().html;
- if (!w) {
- Object.assign(d, b);
- return o.HTMLResult.success((0, s.createWrapper)(this, m), y);
- }
- this[r.$tabIndex] &&
- (w.children && w.children[0]
- ? (w.children[0].attributes.tabindex = this[r.$tabIndex])
- : (w.attributes.tabindex = this[r.$tabIndex]));
- w.attributes.style || (w.attributes.style = Object.create(null));
- let S = null;
- if (this.ui.button) {
- 1 === w.children.length && ([S] = w.children.splice(0, 1));
- Object.assign(w.attributes.style, b);
- } else Object.assign(d, b);
- p.push(w);
- if (this.value)
- if (this.ui.imageEdit) w.children.push(this.value[r.$toHTML]().html);
- else if (!this.ui.button) {
- let e = '';
- if (this.value.exData) e = this.value.exData[r.$text]();
- else if (this.value.text) e = this.value.text[r.$getExtra]();
- else {
- const t = this.value[r.$toHTML]().html;
- null !== t && (e = t.children[0].value);
- }
- this.ui.textEdit &&
- this.value.text &&
- this.value.text.maxChars &&
- (w.children[0].attributes.maxLength = this.value.text.maxChars);
- if (e) {
- if (this.ui.numericEdit) {
- e = parseFloat(e);
- e = isNaN(e) ? '' : e.toString();
- }
- 'textarea' === w.children[0].name
- ? (w.children[0].attributes.textContent = e)
- : (w.children[0].attributes.value = e);
- }
- }
- if (!this.ui.imageEdit && w.children && w.children[0] && this.h) {
- u = u || getBorderDims(this.ui[r.$getExtra]());
- let t = 0;
- if (this.caption && ['top', 'bottom'].includes(this.caption.placement)) {
- t = this.caption.reserve;
- t <= 0 && (t = this.caption[r.$getExtra](e).h);
- const a = this.h - t - h - u.h;
- w.children[0].attributes.style.height = (0, s.measureToString)(a);
- } else w.children[0].attributes.style.height = '100%';
- }
- S && w.children.push(S);
- if (!t) {
- w.attributes.class && w.attributes.class.push('xfaLeft');
- this.w = a;
- this.h = i;
- return o.HTMLResult.success((0, s.createWrapper)(this, m), y);
- }
- if (this.ui.button) {
- d.padding && delete d.padding;
- 'div' === t.name && (t.name = 'span');
- w.children.push(t);
- return o.HTMLResult.success(m, y);
- }
- this.ui.checkButton && (t.attributes.class[0] = 'xfaCaptionForCheckButton');
- w.attributes.class || (w.attributes.class = []);
- w.children.splice(0, 0, t);
- switch (this.caption.placement) {
- case 'left':
- case 'inline':
- w.attributes.class.push('xfaLeft');
- break;
- case 'right':
- w.attributes.class.push('xfaRight');
- break;
- case 'top':
- w.attributes.class.push('xfaTop');
- break;
- case 'bottom':
- w.attributes.class.push('xfaBottom');
- }
- this.w = a;
- this.h = i;
- return o.HTMLResult.success((0, s.createWrapper)(this, m), y);
- }
- }
- t.Field = Field;
- class Fill extends r.XFAObject {
- constructor(e) {
- super(d, 'fill', !0);
- this.id = e.id || '';
- this.presence = (0, o.getStringOption)(e.presence, [
- 'visible',
- 'hidden',
- 'inactive',
- 'invisible',
- ]);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.color = null;
- this.extras = null;
- this.linear = null;
- this.pattern = null;
- this.radial = null;
- this.solid = null;
- this.stipple = null;
- }
- [r.$toStyle]() {
- const e = this[r.$getParent](),
- t = e[r.$getParent]()[r.$getParent](),
- a = Object.create(null);
- let i = 'color',
- n = i;
- if (e instanceof Border) {
- i = 'background-color';
- n = 'background';
- t instanceof Ui && (a.backgroundColor = 'white');
- }
- if (e instanceof Rectangle || e instanceof Arc) {
- i = n = 'fill';
- a.fill = 'white';
- }
- for (const e of Object.getOwnPropertyNames(this)) {
- if ('extras' === e || 'color' === e) continue;
- const t = this[e];
- if (!(t instanceof r.XFAObject)) continue;
- const s = t[r.$toStyle](this.color);
- s && (a[s.startsWith('#') ? i : n] = s);
- return a;
- }
- if (this.color && this.color.value) {
- const e = this.color[r.$toStyle]();
- a[e.startsWith('#') ? i : n] = e;
- }
- return a;
- }
- }
- class Filter extends r.XFAObject {
- constructor(e) {
- super(d, 'filter', !0);
- this.addRevocationInfo = (0, o.getStringOption)(e.addRevocationInfo, [
- '',
- 'required',
- 'optional',
- 'none',
- ]);
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.version = (0, o.getInteger)({
- data: this.version,
- defaultValue: 5,
- validate: (e) => e >= 1 && e <= 5,
- });
- this.appearanceFilter = null;
- this.certificates = null;
- this.digestMethods = null;
- this.encodings = null;
- this.encryptionMethods = null;
- this.handler = null;
- this.lockDocument = null;
- this.mdp = null;
- this.reasons = null;
- this.timeStamp = null;
- }
- }
- class Float extends r.ContentObject {
- constructor(e) {
- super(d, 'float');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- [r.$finalize]() {
- const e = parseFloat(this[r.$content].trim());
- this[r.$content] = isNaN(e) ? null : e;
- }
- [r.$toHTML](e) {
- return valueToHtml(null !== this[r.$content] ? this[r.$content].toString() : '');
- }
- }
- class Font extends r.XFAObject {
- constructor(e) {
- super(d, 'font', !0);
- this.baselineShift = (0, o.getMeasurement)(e.baselineShift);
- this.fontHorizontalScale = (0, o.getFloat)({
- data: e.fontHorizontalScale,
- defaultValue: 100,
- validate: (e) => e >= 0,
- });
- this.fontVerticalScale = (0, o.getFloat)({
- data: e.fontVerticalScale,
- defaultValue: 100,
- validate: (e) => e >= 0,
- });
- this.id = e.id || '';
- this.kerningMode = (0, o.getStringOption)(e.kerningMode, ['none', 'pair']);
- this.letterSpacing = (0, o.getMeasurement)(e.letterSpacing, '0');
- this.lineThrough = (0, o.getInteger)({
- data: e.lineThrough,
- defaultValue: 0,
- validate: (e) => 1 === e || 2 === e,
- });
- this.lineThroughPeriod = (0, o.getStringOption)(e.lineThroughPeriod, ['all', 'word']);
- this.overline = (0, o.getInteger)({
- data: e.overline,
- defaultValue: 0,
- validate: (e) => 1 === e || 2 === e,
- });
- this.overlinePeriod = (0, o.getStringOption)(e.overlinePeriod, ['all', 'word']);
- this.posture = (0, o.getStringOption)(e.posture, ['normal', 'italic']);
- this.size = (0, o.getMeasurement)(e.size, '10pt');
- this.typeface = e.typeface || 'Courier';
- this.underline = (0, o.getInteger)({
- data: e.underline,
- defaultValue: 0,
- validate: (e) => 1 === e || 2 === e,
- });
- this.underlinePeriod = (0, o.getStringOption)(e.underlinePeriod, ['all', 'word']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.weight = (0, o.getStringOption)(e.weight, ['normal', 'bold']);
- this.extras = null;
- this.fill = null;
- }
- [r.$clean](e) {
- super[r.$clean](e);
- this[r.$globalData].usedTypefaces.add(this.typeface);
- }
- [r.$toStyle]() {
- const e = (0, s.toStyle)(this, 'fill'),
- t = e.color;
- if (t)
- if ('#000000' === t) delete e.color;
- else if (!t.startsWith('#')) {
- e.background = t;
- e.backgroundClip = 'text';
- e.color = 'transparent';
- }
- this.baselineShift && (e.verticalAlign = (0, s.measureToString)(this.baselineShift));
- e.fontKerning = 'none' === this.kerningMode ? 'none' : 'normal';
- e.letterSpacing = (0, s.measureToString)(this.letterSpacing);
- if (0 !== this.lineThrough) {
- e.textDecoration = 'line-through';
- 2 === this.lineThrough && (e.textDecorationStyle = 'double');
- }
- if (0 !== this.overline) {
- e.textDecoration = 'overline';
- 2 === this.overline && (e.textDecorationStyle = 'double');
- }
- e.fontStyle = this.posture;
- e.fontSize = (0, s.measureToString)(0.99 * this.size);
- (0, s.setFontFamily)(this, this, this[r.$globalData].fontFinder, e);
- if (0 !== this.underline) {
- e.textDecoration = 'underline';
- 2 === this.underline && (e.textDecorationStyle = 'double');
- }
- e.fontWeight = this.weight;
- return e;
- }
- }
- class Format extends r.XFAObject {
- constructor(e) {
- super(d, 'format', !0);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- this.picture = null;
- }
- }
- class Handler extends r.StringObject {
- constructor(e) {
- super(d, 'handler');
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, ['optional', 'required']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Hyphenation extends r.XFAObject {
- constructor(e) {
- super(d, 'hyphenation');
- this.excludeAllCaps = (0, o.getInteger)({
- data: e.excludeAllCaps,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.excludeInitialCap = (0, o.getInteger)({
- data: e.excludeInitialCap,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.hyphenate = (0, o.getInteger)({
- data: e.hyphenate,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.id = e.id || '';
- this.pushCharacterCount = (0, o.getInteger)({
- data: e.pushCharacterCount,
- defaultValue: 3,
- validate: (e) => e >= 0,
- });
- this.remainCharacterCount = (0, o.getInteger)({
- data: e.remainCharacterCount,
- defaultValue: 3,
- validate: (e) => e >= 0,
- });
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.wordCharacterCount = (0, o.getInteger)({
- data: e.wordCharacterCount,
- defaultValue: 7,
- validate: (e) => e >= 0,
- });
- }
- }
- class Image extends r.StringObject {
- constructor(e) {
- super(d, 'image');
- this.aspect = (0, o.getStringOption)(e.aspect, [
- 'fit',
- 'actual',
- 'height',
- 'none',
- 'width',
- ]);
- this.contentType = e.contentType || '';
- this.href = e.href || '';
- this.id = e.id || '';
- this.name = e.name || '';
- this.transferEncoding = (0, o.getStringOption)(e.transferEncoding, [
- 'base64',
- 'none',
- 'package',
- ]);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- [r.$toHTML]() {
- if (this.contentType && !p.has(this.contentType.toLowerCase()))
- return o.HTMLResult.EMPTY;
- let e = this[r.$globalData].images && this[r.$globalData].images.get(this.href);
- if (!e && (this.href || !this[r.$content])) return o.HTMLResult.EMPTY;
- e ||
- 'base64' !== this.transferEncoding ||
- (e = (0, c.stringToBytes)(atob(this[r.$content])));
- if (!e) return o.HTMLResult.EMPTY;
- if (!this.contentType) {
- for (const [t, a] of m)
- if (e.length > t.length && t.every((t, a) => t === e[a])) {
- this.contentType = a;
- break;
- }
- if (!this.contentType) return o.HTMLResult.EMPTY;
- }
- const t = new Blob([e], { type: this.contentType });
- let a;
- switch (this.aspect) {
- case 'fit':
- case 'actual':
- break;
- case 'height':
- a = { height: '100%', objectFit: 'fill' };
- break;
- case 'none':
- a = { width: '100%', height: '100%', objectFit: 'fill' };
- break;
- case 'width':
- a = { width: '100%', objectFit: 'fill' };
- }
- const i = this[r.$getParent]();
- return o.HTMLResult.success({
- name: 'img',
- attributes: {
- class: ['xfaImage'],
- style: a,
- src: URL.createObjectURL(t),
- alt: i ? ariaLabel(i[r.$getParent]()) : null,
- },
- });
- }
- }
- class ImageEdit extends r.XFAObject {
- constructor(e) {
- super(d, 'imageEdit', !0);
- this.data = (0, o.getStringOption)(e.data, ['link', 'embed']);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.border = null;
- this.extras = null;
- this.margin = null;
- }
- [r.$toHTML](e) {
- return 'embed' === this.data
- ? o.HTMLResult.success({ name: 'div', children: [], attributes: {} })
- : o.HTMLResult.EMPTY;
- }
- }
- class Integer extends r.ContentObject {
- constructor(e) {
- super(d, 'integer');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- [r.$finalize]() {
- const e = parseInt(this[r.$content].trim(), 10);
- this[r.$content] = isNaN(e) ? null : e;
- }
- [r.$toHTML](e) {
- return valueToHtml(null !== this[r.$content] ? this[r.$content].toString() : '');
- }
- }
- class Issuers extends r.XFAObject {
- constructor(e) {
- super(d, 'issuers', !0);
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, ['optional', 'required']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.certificate = new r.XFAObjectArray();
- }
- }
- class Items extends r.XFAObject {
- constructor(e) {
- super(d, 'items', !0);
- this.id = e.id || '';
- this.name = e.name || '';
- this.presence = (0, o.getStringOption)(e.presence, [
- 'visible',
- 'hidden',
- 'inactive',
- 'invisible',
- ]);
- this.ref = e.ref || '';
- this.save = (0, o.getInteger)({
- data: e.save,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.boolean = new r.XFAObjectArray();
- this.date = new r.XFAObjectArray();
- this.dateTime = new r.XFAObjectArray();
- this.decimal = new r.XFAObjectArray();
- this.exData = new r.XFAObjectArray();
- this.float = new r.XFAObjectArray();
- this.image = new r.XFAObjectArray();
- this.integer = new r.XFAObjectArray();
- this.text = new r.XFAObjectArray();
- this.time = new r.XFAObjectArray();
- }
- [r.$toHTML]() {
- const e = [];
- for (const t of this[r.$getChildren]()) e.push(t[r.$text]());
- return o.HTMLResult.success(e);
- }
- }
- t.Items = Items;
- class Keep extends r.XFAObject {
- constructor(e) {
- super(d, 'keep', !0);
- this.id = e.id || '';
- const t = ['none', 'contentArea', 'pageArea'];
- this.intact = (0, o.getStringOption)(e.intact, t);
- this.next = (0, o.getStringOption)(e.next, t);
- this.previous = (0, o.getStringOption)(e.previous, t);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- }
- }
- class KeyUsage extends r.XFAObject {
- constructor(e) {
- super(d, 'keyUsage');
- const t = ['', 'yes', 'no'];
- this.crlSign = (0, o.getStringOption)(e.crlSign, t);
- this.dataEncipherment = (0, o.getStringOption)(e.dataEncipherment, t);
- this.decipherOnly = (0, o.getStringOption)(e.decipherOnly, t);
- this.digitalSignature = (0, o.getStringOption)(e.digitalSignature, t);
- this.encipherOnly = (0, o.getStringOption)(e.encipherOnly, t);
- this.id = e.id || '';
- this.keyAgreement = (0, o.getStringOption)(e.keyAgreement, t);
- this.keyCertSign = (0, o.getStringOption)(e.keyCertSign, t);
- this.keyEncipherment = (0, o.getStringOption)(e.keyEncipherment, t);
- this.nonRepudiation = (0, o.getStringOption)(e.nonRepudiation, t);
- this.type = (0, o.getStringOption)(e.type, ['optional', 'required']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Line extends r.XFAObject {
- constructor(e) {
- super(d, 'line', !0);
- this.hand = (0, o.getStringOption)(e.hand, ['even', 'left', 'right']);
- this.id = e.id || '';
- this.slope = (0, o.getStringOption)(e.slope, ['\\', '/']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.edge = null;
- }
- [r.$toHTML]() {
- const e = this[r.$getParent]()[r.$getParent](),
- t = this.edge || new Edge({}),
- a = t[r.$toStyle](),
- i = Object.create(null),
- n = 'visible' === t.presence ? t.thickness : 0;
- i.strokeWidth = (0, s.measureToString)(n);
- i.stroke = a.color;
- let c,
- l,
- h,
- u,
- d = '100%',
- g = '100%';
- if (e.w <= n) {
- [c, l, h, u] = ['50%', 0, '50%', '100%'];
- d = i.strokeWidth;
- } else if (e.h <= n) {
- [c, l, h, u] = [0, '50%', '100%', '50%'];
- g = i.strokeWidth;
- } else
- '\\' === this.slope
- ? ([c, l, h, u] = [0, 0, '100%', '100%'])
- : ([c, l, h, u] = [0, '100%', '100%', 0]);
- const p = {
- name: 'svg',
- children: [
- { name: 'line', attributes: { xmlns: f, x1: c, y1: l, x2: h, y2: u, style: i } },
- ],
- attributes: { xmlns: f, width: d, height: g, style: { overflow: 'visible' } },
- };
- if (hasMargin(e))
- return o.HTMLResult.success({
- name: 'div',
- attributes: { style: { display: 'inline', width: '100%', height: '100%' } },
- children: [p],
- });
- p.attributes.style.position = 'absolute';
- return o.HTMLResult.success(p);
- }
- }
- class Linear extends r.XFAObject {
- constructor(e) {
- super(d, 'linear', !0);
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, [
- 'toRight',
- 'toBottom',
- 'toLeft',
- 'toTop',
- ]);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.color = null;
- this.extras = null;
- }
- [r.$toStyle](e) {
- e = e ? e[r.$toStyle]() : '#FFFFFF';
- return `linear-gradient(${this.type
- .replace(/([RBLT])/, ' $1')
- .toLowerCase()}, ${e}, ${this.color ? this.color[r.$toStyle]() : '#000000'})`;
- }
- }
- class LockDocument extends r.ContentObject {
- constructor(e) {
- super(d, 'lockDocument');
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, ['optional', 'required']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- [r.$finalize]() {
- this[r.$content] = (0, o.getStringOption)(this[r.$content], ['auto', '0', '1']);
- }
- }
- class Manifest extends r.XFAObject {
- constructor(e) {
- super(d, 'manifest', !0);
- this.action = (0, o.getStringOption)(e.action, ['include', 'all', 'exclude']);
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- this.ref = new r.XFAObjectArray();
- }
- }
- class Margin extends r.XFAObject {
- constructor(e) {
- super(d, 'margin', !0);
- this.bottomInset = (0, o.getMeasurement)(e.bottomInset, '0');
- this.id = e.id || '';
- this.leftInset = (0, o.getMeasurement)(e.leftInset, '0');
- this.rightInset = (0, o.getMeasurement)(e.rightInset, '0');
- this.topInset = (0, o.getMeasurement)(e.topInset, '0');
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- }
- [r.$toStyle]() {
- return {
- margin:
- (0, s.measureToString)(this.topInset) +
- ' ' +
- (0, s.measureToString)(this.rightInset) +
- ' ' +
- (0, s.measureToString)(this.bottomInset) +
- ' ' +
- (0, s.measureToString)(this.leftInset),
- };
- }
- }
- class Mdp extends r.XFAObject {
- constructor(e) {
- super(d, 'mdp');
- this.id = e.id || '';
- this.permissions = (0, o.getInteger)({
- data: e.permissions,
- defaultValue: 2,
- validate: (e) => 1 === e || 3 === e,
- });
- this.signatureType = (0, o.getStringOption)(e.signatureType, ['filler', 'author']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Medium extends r.XFAObject {
- constructor(e) {
- super(d, 'medium');
- this.id = e.id || '';
- this.imagingBBox = (0, o.getBBox)(e.imagingBBox);
- this.long = (0, o.getMeasurement)(e.long);
- this.orientation = (0, o.getStringOption)(e.orientation, ['portrait', 'landscape']);
- this.short = (0, o.getMeasurement)(e.short);
- this.stock = e.stock || '';
- this.trayIn = (0, o.getStringOption)(e.trayIn, ['auto', 'delegate', 'pageFront']);
- this.trayOut = (0, o.getStringOption)(e.trayOut, ['auto', 'delegate']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Message extends r.XFAObject {
- constructor(e) {
- super(d, 'message', !0);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.text = new r.XFAObjectArray();
- }
- }
- class NumericEdit extends r.XFAObject {
- constructor(e) {
- super(d, 'numericEdit', !0);
- this.hScrollPolicy = (0, o.getStringOption)(e.hScrollPolicy, ['auto', 'off', 'on']);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.border = null;
- this.comb = null;
- this.extras = null;
- this.margin = null;
- }
- [r.$toHTML](e) {
- const t = (0, s.toStyle)(this, 'border', 'font', 'margin'),
- a = this[r.$getParent]()[r.$getParent](),
- i = {
- name: 'input',
- attributes: {
- type: 'text',
- fieldId: a[r.$uid],
- dataId: (a[r.$data] && a[r.$data][r.$uid]) || a[r.$uid],
- class: ['xfaTextfield'],
- style: t,
- 'aria-label': ariaLabel(a),
- 'aria-required': !1,
- },
- };
- if (isRequired(a)) {
- i.attributes['aria-required'] = !0;
- i.attributes.required = !0;
- }
- return o.HTMLResult.success({
- name: 'label',
- attributes: { class: ['xfaLabel'] },
- children: [i],
- });
- }
- }
- class Occur extends r.XFAObject {
- constructor(e) {
- super(d, 'occur', !0);
- this.id = e.id || '';
- this.initial =
- '' !== e.initial
- ? (0, o.getInteger)({ data: e.initial, defaultValue: '', validate: (e) => !0 })
- : '';
- this.max =
- '' !== e.max
- ? (0, o.getInteger)({ data: e.max, defaultValue: 1, validate: (e) => !0 })
- : '';
- this.min =
- '' !== e.min
- ? (0, o.getInteger)({ data: e.min, defaultValue: 1, validate: (e) => !0 })
- : '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- }
- [r.$clean]() {
- const e = this[r.$getParent](),
- t = this.min;
- '' === this.min && (this.min = e instanceof PageArea || e instanceof PageSet ? 0 : 1);
- '' === this.max &&
- (this.max =
- '' === t ? (e instanceof PageArea || e instanceof PageSet ? -1 : 1) : this.min);
- -1 !== this.max && this.max < this.min && (this.max = this.min);
- '' === this.initial && (this.initial = e instanceof Template ? 1 : this.min);
- }
- }
- class Oid extends r.StringObject {
- constructor(e) {
- super(d, 'oid');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Oids extends r.XFAObject {
- constructor(e) {
- super(d, 'oids', !0);
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, ['optional', 'required']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.oid = new r.XFAObjectArray();
- }
- }
- class Overflow extends r.XFAObject {
- constructor(e) {
- super(d, 'overflow');
- this.id = e.id || '';
- this.leader = e.leader || '';
- this.target = e.target || '';
- this.trailer = e.trailer || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- [r.$getExtra]() {
- if (!this[r.$extra]) {
- const e = this[r.$getParent](),
- t = this[r.$getTemplateRoot](),
- a = t[r.$searchNode](this.target, e),
- i = t[r.$searchNode](this.leader, e),
- n = t[r.$searchNode](this.trailer, e);
- this[r.$extra] = {
- target: (a && a[0]) || null,
- leader: (i && i[0]) || null,
- trailer: (n && n[0]) || null,
- addLeader: !1,
- addTrailer: !1,
- };
- }
- return this[r.$extra];
- }
- }
- class PageArea extends r.XFAObject {
- constructor(e) {
- super(d, 'pageArea', !0);
- this.blankOrNotBlank = (0, o.getStringOption)(e.blankOrNotBlank, [
- 'any',
- 'blank',
- 'notBlank',
- ]);
- this.id = e.id || '';
- this.initialNumber = (0, o.getInteger)({
- data: e.initialNumber,
- defaultValue: 1,
- validate: (e) => !0,
- });
- this.name = e.name || '';
- this.numbered = (0, o.getInteger)({
- data: e.numbered,
- defaultValue: 1,
- validate: (e) => !0,
- });
- this.oddOrEven = (0, o.getStringOption)(e.oddOrEven, ['any', 'even', 'odd']);
- this.pagePosition = (0, o.getStringOption)(e.pagePosition, [
- 'any',
- 'first',
- 'last',
- 'only',
- 'rest',
- ]);
- this.relevant = (0, o.getRelevant)(e.relevant);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.desc = null;
- this.extras = null;
- this.medium = null;
- this.occur = null;
- this.area = new r.XFAObjectArray();
- this.contentArea = new r.XFAObjectArray();
- this.draw = new r.XFAObjectArray();
- this.exclGroup = new r.XFAObjectArray();
- this.field = new r.XFAObjectArray();
- this.subform = new r.XFAObjectArray();
- }
- [r.$isUsable]() {
- if (!this[r.$extra]) {
- this[r.$extra] = { numberOfUse: 0 };
- return !0;
- }
- return (
- !this.occur || -1 === this.occur.max || this[r.$extra].numberOfUse < this.occur.max
- );
- }
- [r.$cleanPage]() {
- delete this[r.$extra];
- }
- [r.$getNextPage]() {
- this[r.$extra] || (this[r.$extra] = { numberOfUse: 0 });
- const e = this[r.$getParent]();
- if ('orderedOccurrence' === e.relation && this[r.$isUsable]()) {
- this[r.$extra].numberOfUse += 1;
- return this;
- }
- return e[r.$getNextPage]();
- }
- [r.$getAvailableSpace]() {
- return this[r.$extra].space || { width: 0, height: 0 };
- }
- [r.$toHTML]() {
- this[r.$extra] || (this[r.$extra] = { numberOfUse: 1 });
- const e = [];
- this[r.$extra].children = e;
- const t = Object.create(null);
- if (this.medium && this.medium.short && this.medium.long) {
- t.width = (0, s.measureToString)(this.medium.short);
- t.height = (0, s.measureToString)(this.medium.long);
- this[r.$extra].space = { width: this.medium.short, height: this.medium.long };
- if ('landscape' === this.medium.orientation) {
- const e = t.width;
- t.width = t.height;
- t.height = e;
- this[r.$extra].space = { width: this.medium.long, height: this.medium.short };
- }
- } else (0, c.warn)('XFA - No medium specified in pageArea: please file a bug.');
- this[r.$childrenToHTML]({
- filter: new Set(['area', 'draw', 'field', 'subform']),
- include: !0,
- });
- this[r.$childrenToHTML]({ filter: new Set(['contentArea']), include: !0 });
- return o.HTMLResult.success({
- name: 'div',
- children: e,
- attributes: { class: ['xfaPage'], id: this[r.$uid], style: t, xfaName: this.name },
- });
- }
- }
- class PageSet extends r.XFAObject {
- constructor(e) {
- super(d, 'pageSet', !0);
- this.duplexImposition = (0, o.getStringOption)(e.duplexImposition, [
- 'longEdge',
- 'shortEdge',
- ]);
- this.id = e.id || '';
- this.name = e.name || '';
- this.relation = (0, o.getStringOption)(e.relation, [
- 'orderedOccurrence',
- 'duplexPaginated',
- 'simplexPaginated',
- ]);
- this.relevant = (0, o.getRelevant)(e.relevant);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- this.occur = null;
- this.pageArea = new r.XFAObjectArray();
- this.pageSet = new r.XFAObjectArray();
- }
- [r.$cleanPage]() {
- for (const e of this.pageArea.children) e[r.$cleanPage]();
- for (const e of this.pageSet.children) e[r.$cleanPage]();
- }
- [r.$isUsable]() {
- return (
- !this.occur || -1 === this.occur.max || this[r.$extra].numberOfUse < this.occur.max
- );
- }
- [r.$getNextPage]() {
- this[r.$extra] ||
- (this[r.$extra] = { numberOfUse: 1, pageIndex: -1, pageSetIndex: -1 });
- if ('orderedOccurrence' === this.relation) {
- if (this[r.$extra].pageIndex + 1 < this.pageArea.children.length) {
- this[r.$extra].pageIndex += 1;
- return this.pageArea.children[this[r.$extra].pageIndex][r.$getNextPage]();
- }
- if (this[r.$extra].pageSetIndex + 1 < this.pageSet.children.length) {
- this[r.$extra].pageSetIndex += 1;
- return this.pageSet.children[this[r.$extra].pageSetIndex][r.$getNextPage]();
- }
- if (this[r.$isUsable]()) {
- this[r.$extra].numberOfUse += 1;
- this[r.$extra].pageIndex = -1;
- this[r.$extra].pageSetIndex = -1;
- return this[r.$getNextPage]();
- }
- const e = this[r.$getParent]();
- if (e instanceof PageSet) return e[r.$getNextPage]();
- this[r.$cleanPage]();
- return this[r.$getNextPage]();
- }
- const e = this[r.$getTemplateRoot]()[r.$extra].pageNumber,
- t = e % 2 == 0 ? 'even' : 'odd',
- a = 0 === e ? 'first' : 'rest';
- let i = this.pageArea.children.find((e) => e.oddOrEven === t && e.pagePosition === a);
- if (i) return i;
- i = this.pageArea.children.find((e) => 'any' === e.oddOrEven && e.pagePosition === a);
- if (i) return i;
- i = this.pageArea.children.find(
- (e) => 'any' === e.oddOrEven && 'any' === e.pagePosition,
- );
- return i || this.pageArea.children[0];
- }
- }
- class Para extends r.XFAObject {
- constructor(e) {
- super(d, 'para', !0);
- this.hAlign = (0, o.getStringOption)(e.hAlign, [
- 'left',
- 'center',
- 'justify',
- 'justifyAll',
- 'radix',
- 'right',
- ]);
- this.id = e.id || '';
- this.lineHeight = e.lineHeight ? (0, o.getMeasurement)(e.lineHeight, '0pt') : '';
- this.marginLeft = e.marginLeft ? (0, o.getMeasurement)(e.marginLeft, '0pt') : '';
- this.marginRight = e.marginRight ? (0, o.getMeasurement)(e.marginRight, '0pt') : '';
- this.orphans = (0, o.getInteger)({
- data: e.orphans,
- defaultValue: 0,
- validate: (e) => e >= 0,
- });
- this.preserve = e.preserve || '';
- this.radixOffset = e.radixOffset ? (0, o.getMeasurement)(e.radixOffset, '0pt') : '';
- this.spaceAbove = e.spaceAbove ? (0, o.getMeasurement)(e.spaceAbove, '0pt') : '';
- this.spaceBelow = e.spaceBelow ? (0, o.getMeasurement)(e.spaceBelow, '0pt') : '';
- this.tabDefault = e.tabDefault ? (0, o.getMeasurement)(this.tabDefault) : '';
- this.tabStops = (e.tabStops || '')
- .trim()
- .split(/\s+/)
- .map((e, t) => (t % 2 == 1 ? (0, o.getMeasurement)(e) : e));
- this.textIndent = e.textIndent ? (0, o.getMeasurement)(e.textIndent, '0pt') : '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.vAlign = (0, o.getStringOption)(e.vAlign, ['top', 'bottom', 'middle']);
- this.widows = (0, o.getInteger)({
- data: e.widows,
- defaultValue: 0,
- validate: (e) => e >= 0,
- });
- this.hyphenation = null;
- }
- [r.$toStyle]() {
- const e = (0, s.toStyle)(this, 'hAlign');
- '' !== this.marginLeft && (e.paddingLeft = (0, s.measureToString)(this.marginLeft));
- '' !== this.marginRight && (e.paddingight = (0, s.measureToString)(this.marginRight));
- '' !== this.spaceAbove && (e.paddingTop = (0, s.measureToString)(this.spaceAbove));
- '' !== this.spaceBelow && (e.paddingBottom = (0, s.measureToString)(this.spaceBelow));
- if ('' !== this.textIndent) {
- e.textIndent = (0, s.measureToString)(this.textIndent);
- (0, s.fixTextIndent)(e);
- }
- this.lineHeight > 0 && (e.lineHeight = (0, s.measureToString)(this.lineHeight));
- '' !== this.tabDefault && (e.tabSize = (0, s.measureToString)(this.tabDefault));
- this.tabStops.length;
- this.hyphenatation && Object.assign(e, this.hyphenatation[r.$toStyle]());
- return e;
- }
- }
- class PasswordEdit extends r.XFAObject {
- constructor(e) {
- super(d, 'passwordEdit', !0);
- this.hScrollPolicy = (0, o.getStringOption)(e.hScrollPolicy, ['auto', 'off', 'on']);
- this.id = e.id || '';
- this.passwordChar = e.passwordChar || '*';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.border = null;
- this.extras = null;
- this.margin = null;
- }
- }
- class Pattern extends r.XFAObject {
- constructor(e) {
- super(d, 'pattern', !0);
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, [
- 'crossHatch',
- 'crossDiagonal',
- 'diagonalLeft',
- 'diagonalRight',
- 'horizontal',
- 'vertical',
- ]);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.color = null;
- this.extras = null;
- }
- [r.$toStyle](e) {
- e = e ? e[r.$toStyle]() : '#FFFFFF';
- const t = this.color ? this.color[r.$toStyle]() : '#000000',
- a = 'repeating-linear-gradient',
- i = `${e},${e} 5px,${t} 5px,${t} 10px`;
- switch (this.type) {
- case 'crossHatch':
- return `${a}(to top,${i}) ${a}(to right,${i})`;
- case 'crossDiagonal':
- return `${a}(45deg,${i}) ${a}(-45deg,${i})`;
- case 'diagonalLeft':
- return `${a}(45deg,${i})`;
- case 'diagonalRight':
- return `${a}(-45deg,${i})`;
- case 'horizontal':
- return `${a}(to top,${i})`;
- case 'vertical':
- return `${a}(to right,${i})`;
- }
- return '';
- }
- }
- class Picture extends r.StringObject {
- constructor(e) {
- super(d, 'picture');
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Proto extends r.XFAObject {
- constructor(e) {
- super(d, 'proto', !0);
- this.appearanceFilter = new r.XFAObjectArray();
- this.arc = new r.XFAObjectArray();
- this.area = new r.XFAObjectArray();
- this.assist = new r.XFAObjectArray();
- this.barcode = new r.XFAObjectArray();
- this.bindItems = new r.XFAObjectArray();
- this.bookend = new r.XFAObjectArray();
- this.boolean = new r.XFAObjectArray();
- this.border = new r.XFAObjectArray();
- this.break = new r.XFAObjectArray();
- this.breakAfter = new r.XFAObjectArray();
- this.breakBefore = new r.XFAObjectArray();
- this.button = new r.XFAObjectArray();
- this.calculate = new r.XFAObjectArray();
- this.caption = new r.XFAObjectArray();
- this.certificate = new r.XFAObjectArray();
- this.certificates = new r.XFAObjectArray();
- this.checkButton = new r.XFAObjectArray();
- this.choiceList = new r.XFAObjectArray();
- this.color = new r.XFAObjectArray();
- this.comb = new r.XFAObjectArray();
- this.connect = new r.XFAObjectArray();
- this.contentArea = new r.XFAObjectArray();
- this.corner = new r.XFAObjectArray();
- this.date = new r.XFAObjectArray();
- this.dateTime = new r.XFAObjectArray();
- this.dateTimeEdit = new r.XFAObjectArray();
- this.decimal = new r.XFAObjectArray();
- this.defaultUi = new r.XFAObjectArray();
- this.desc = new r.XFAObjectArray();
- this.digestMethod = new r.XFAObjectArray();
- this.digestMethods = new r.XFAObjectArray();
- this.draw = new r.XFAObjectArray();
- this.edge = new r.XFAObjectArray();
- this.encoding = new r.XFAObjectArray();
- this.encodings = new r.XFAObjectArray();
- this.encrypt = new r.XFAObjectArray();
- this.encryptData = new r.XFAObjectArray();
- this.encryption = new r.XFAObjectArray();
- this.encryptionMethod = new r.XFAObjectArray();
- this.encryptionMethods = new r.XFAObjectArray();
- this.event = new r.XFAObjectArray();
- this.exData = new r.XFAObjectArray();
- this.exObject = new r.XFAObjectArray();
- this.exclGroup = new r.XFAObjectArray();
- this.execute = new r.XFAObjectArray();
- this.extras = new r.XFAObjectArray();
- this.field = new r.XFAObjectArray();
- this.fill = new r.XFAObjectArray();
- this.filter = new r.XFAObjectArray();
- this.float = new r.XFAObjectArray();
- this.font = new r.XFAObjectArray();
- this.format = new r.XFAObjectArray();
- this.handler = new r.XFAObjectArray();
- this.hyphenation = new r.XFAObjectArray();
- this.image = new r.XFAObjectArray();
- this.imageEdit = new r.XFAObjectArray();
- this.integer = new r.XFAObjectArray();
- this.issuers = new r.XFAObjectArray();
- this.items = new r.XFAObjectArray();
- this.keep = new r.XFAObjectArray();
- this.keyUsage = new r.XFAObjectArray();
- this.line = new r.XFAObjectArray();
- this.linear = new r.XFAObjectArray();
- this.lockDocument = new r.XFAObjectArray();
- this.manifest = new r.XFAObjectArray();
- this.margin = new r.XFAObjectArray();
- this.mdp = new r.XFAObjectArray();
- this.medium = new r.XFAObjectArray();
- this.message = new r.XFAObjectArray();
- this.numericEdit = new r.XFAObjectArray();
- this.occur = new r.XFAObjectArray();
- this.oid = new r.XFAObjectArray();
- this.oids = new r.XFAObjectArray();
- this.overflow = new r.XFAObjectArray();
- this.pageArea = new r.XFAObjectArray();
- this.pageSet = new r.XFAObjectArray();
- this.para = new r.XFAObjectArray();
- this.passwordEdit = new r.XFAObjectArray();
- this.pattern = new r.XFAObjectArray();
- this.picture = new r.XFAObjectArray();
- this.radial = new r.XFAObjectArray();
- this.reason = new r.XFAObjectArray();
- this.reasons = new r.XFAObjectArray();
- this.rectangle = new r.XFAObjectArray();
- this.ref = new r.XFAObjectArray();
- this.script = new r.XFAObjectArray();
- this.setProperty = new r.XFAObjectArray();
- this.signData = new r.XFAObjectArray();
- this.signature = new r.XFAObjectArray();
- this.signing = new r.XFAObjectArray();
- this.solid = new r.XFAObjectArray();
- this.speak = new r.XFAObjectArray();
- this.stipple = new r.XFAObjectArray();
- this.subform = new r.XFAObjectArray();
- this.subformSet = new r.XFAObjectArray();
- this.subjectDN = new r.XFAObjectArray();
- this.subjectDNs = new r.XFAObjectArray();
- this.submit = new r.XFAObjectArray();
- this.text = new r.XFAObjectArray();
- this.textEdit = new r.XFAObjectArray();
- this.time = new r.XFAObjectArray();
- this.timeStamp = new r.XFAObjectArray();
- this.toolTip = new r.XFAObjectArray();
- this.traversal = new r.XFAObjectArray();
- this.traverse = new r.XFAObjectArray();
- this.ui = new r.XFAObjectArray();
- this.validate = new r.XFAObjectArray();
- this.value = new r.XFAObjectArray();
- this.variables = new r.XFAObjectArray();
- }
- }
- class Radial extends r.XFAObject {
- constructor(e) {
- super(d, 'radial', !0);
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, ['toEdge', 'toCenter']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.color = null;
- this.extras = null;
- }
- [r.$toStyle](e) {
- e = e ? e[r.$toStyle]() : '#FFFFFF';
- const t = this.color ? this.color[r.$toStyle]() : '#000000';
- return `radial-gradient(circle at center, ${
- 'toEdge' === this.type ? `${e},${t}` : `${t},${e}`
- })`;
- }
- }
- class Reason extends r.StringObject {
- constructor(e) {
- super(d, 'reason');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Reasons extends r.XFAObject {
- constructor(e) {
- super(d, 'reasons', !0);
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, ['optional', 'required']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.reason = new r.XFAObjectArray();
- }
- }
- class Rectangle extends r.XFAObject {
- constructor(e) {
- super(d, 'rectangle', !0);
- this.hand = (0, o.getStringOption)(e.hand, ['even', 'left', 'right']);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.corner = new r.XFAObjectArray(4);
- this.edge = new r.XFAObjectArray(4);
- this.fill = null;
- }
- [r.$toHTML]() {
- const e = this.edge.children.length ? this.edge.children[0] : new Edge({}),
- t = e[r.$toStyle](),
- a = Object.create(null);
- this.fill && 'visible' === this.fill.presence
- ? Object.assign(a, this.fill[r.$toStyle]())
- : (a.fill = 'transparent');
- a.strokeWidth = (0, s.measureToString)('visible' === e.presence ? e.thickness : 0);
- a.stroke = t.color;
- const i = (this.corner.children.length ? this.corner.children[0] : new Corner({}))[
- r.$toStyle
- ](),
- n = {
- name: 'svg',
- children: [
- {
- name: 'rect',
- attributes: {
- xmlns: f,
- width: '100%',
- height: '100%',
- x: 0,
- y: 0,
- rx: i.radius,
- ry: i.radius,
- style: a,
- },
- },
- ],
- attributes: {
- xmlns: f,
- style: { overflow: 'visible' },
- width: '100%',
- height: '100%',
- },
- };
- if (hasMargin(this[r.$getParent]()[r.$getParent]()))
- return o.HTMLResult.success({
- name: 'div',
- attributes: { style: { display: 'inline', width: '100%', height: '100%' } },
- children: [n],
- });
- n.attributes.style.position = 'absolute';
- return o.HTMLResult.success(n);
- }
- }
- class RefElement extends r.StringObject {
- constructor(e) {
- super(d, 'ref');
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Script extends r.StringObject {
- constructor(e) {
- super(d, 'script');
- this.binding = e.binding || '';
- this.contentType = e.contentType || '';
- this.id = e.id || '';
- this.name = e.name || '';
- this.runAt = (0, o.getStringOption)(e.runAt, ['client', 'both', 'server']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class SetProperty extends r.XFAObject {
- constructor(e) {
- super(d, 'setProperty');
- this.connection = e.connection || '';
- this.ref = e.ref || '';
- this.target = e.target || '';
- }
- }
- t.SetProperty = SetProperty;
- class SignData extends r.XFAObject {
- constructor(e) {
- super(d, 'signData', !0);
- this.id = e.id || '';
- this.operation = (0, o.getStringOption)(e.operation, ['sign', 'clear', 'verify']);
- this.ref = e.ref || '';
- this.target = e.target || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.filter = null;
- this.manifest = null;
- }
- }
- class Signature extends r.XFAObject {
- constructor(e) {
- super(d, 'signature', !0);
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, ['PDF1.3', 'PDF1.6']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.border = null;
- this.extras = null;
- this.filter = null;
- this.manifest = null;
- this.margin = null;
- }
- }
- class Signing extends r.XFAObject {
- constructor(e) {
- super(d, 'signing', !0);
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, ['optional', 'required']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.certificate = new r.XFAObjectArray();
- }
- }
- class Solid extends r.XFAObject {
- constructor(e) {
- super(d, 'solid', !0);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- }
- [r.$toStyle](e) {
- return e ? e[r.$toStyle]() : '#FFFFFF';
- }
- }
- class Speak extends r.StringObject {
- constructor(e) {
- super(d, 'speak');
- this.disable = (0, o.getInteger)({
- data: e.disable,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.id = e.id || '';
- this.priority = (0, o.getStringOption)(e.priority, [
- 'custom',
- 'caption',
- 'name',
- 'toolTip',
- ]);
- this.rid = e.rid || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Stipple extends r.XFAObject {
- constructor(e) {
- super(d, 'stipple', !0);
- this.id = e.id || '';
- this.rate = (0, o.getInteger)({
- data: e.rate,
- defaultValue: 50,
- validate: (e) => e >= 0 && e <= 100,
- });
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.color = null;
- this.extras = null;
- }
- [r.$toStyle](e) {
- const t = this.rate / 100;
- return c.Util.makeHexColor(
- Math.round(e.value.r * (1 - t) + this.value.r * t),
- Math.round(e.value.g * (1 - t) + this.value.g * t),
- Math.round(e.value.b * (1 - t) + this.value.b * t),
- );
- }
- }
- class Subform extends r.XFAObject {
- constructor(e) {
- super(d, 'subform', !0);
- this.access = (0, o.getStringOption)(e.access, [
- 'open',
- 'nonInteractive',
- 'protected',
- 'readOnly',
- ]);
- this.allowMacro = (0, o.getInteger)({
- data: e.allowMacro,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.anchorType = (0, o.getStringOption)(e.anchorType, [
- 'topLeft',
- 'bottomCenter',
- 'bottomLeft',
- 'bottomRight',
- 'middleCenter',
- 'middleLeft',
- 'middleRight',
- 'topCenter',
- 'topRight',
- ]);
- this.colSpan = (0, o.getInteger)({
- data: e.colSpan,
- defaultValue: 1,
- validate: (e) => e >= 1 || -1 === e,
- });
- this.columnWidths = (e.columnWidths || '')
- .trim()
- .split(/\s+/)
- .map((e) => ('-1' === e ? -1 : (0, o.getMeasurement)(e)));
- this.h = e.h ? (0, o.getMeasurement)(e.h) : '';
- this.hAlign = (0, o.getStringOption)(e.hAlign, [
- 'left',
- 'center',
- 'justify',
- 'justifyAll',
- 'radix',
- 'right',
- ]);
- this.id = e.id || '';
- this.layout = (0, o.getStringOption)(e.layout, [
- 'position',
- 'lr-tb',
- 'rl-row',
- 'rl-tb',
- 'row',
- 'table',
- 'tb',
- ]);
- this.locale = e.locale || '';
- this.maxH = (0, o.getMeasurement)(e.maxH, '0pt');
- this.maxW = (0, o.getMeasurement)(e.maxW, '0pt');
- this.mergeMode = (0, o.getStringOption)(e.mergeMode, [
- 'consumeData',
- 'matchTemplate',
- ]);
- this.minH = (0, o.getMeasurement)(e.minH, '0pt');
- this.minW = (0, o.getMeasurement)(e.minW, '0pt');
- this.name = e.name || '';
- this.presence = (0, o.getStringOption)(e.presence, [
- 'visible',
- 'hidden',
- 'inactive',
- 'invisible',
- ]);
- this.relevant = (0, o.getRelevant)(e.relevant);
- this.restoreState = (0, o.getStringOption)(e.restoreState, ['manual', 'auto']);
- this.scope = (0, o.getStringOption)(e.scope, ['name', 'none']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.w = e.w ? (0, o.getMeasurement)(e.w) : '';
- this.x = (0, o.getMeasurement)(e.x, '0pt');
- this.y = (0, o.getMeasurement)(e.y, '0pt');
- this.assist = null;
- this.bind = null;
- this.bookend = null;
- this.border = null;
- this.break = null;
- this.calculate = null;
- this.desc = null;
- this.extras = null;
- this.keep = null;
- this.margin = null;
- this.occur = null;
- this.overflow = null;
- this.pageSet = null;
- this.para = null;
- this.traversal = null;
- this.validate = null;
- this.variables = null;
- this.area = new r.XFAObjectArray();
- this.breakAfter = new r.XFAObjectArray();
- this.breakBefore = new r.XFAObjectArray();
- this.connect = new r.XFAObjectArray();
- this.draw = new r.XFAObjectArray();
- this.event = new r.XFAObjectArray();
- this.exObject = new r.XFAObjectArray();
- this.exclGroup = new r.XFAObjectArray();
- this.field = new r.XFAObjectArray();
- this.proto = new r.XFAObjectArray();
- this.setProperty = new r.XFAObjectArray();
- this.subform = new r.XFAObjectArray();
- this.subformSet = new r.XFAObjectArray();
- }
- [r.$getSubformParent]() {
- const e = this[r.$getParent]();
- return e instanceof SubformSet ? e[r.$getSubformParent]() : e;
- }
- [r.$isBindable]() {
- return !0;
- }
- [r.$isThereMoreWidth]() {
- return (
- (this.layout.endsWith('-tb') &&
- 0 === this[r.$extra].attempt &&
- this[r.$extra].numberInLine > 0) ||
- this[r.$getParent]()[r.$isThereMoreWidth]()
- );
- }
- *[r.$getContainedChildren]() {
- yield* getContainedChildren(this);
- }
- [r.$flushHTML]() {
- return (0, n.flushHTML)(this);
- }
- [r.$addHTML](e, t) {
- (0, n.addHTML)(this, e, t);
- }
- [r.$getAvailableSpace]() {
- return (0, n.getAvailableSpace)(this);
- }
- [r.$isSplittable]() {
- const e = this[r.$getSubformParent]();
- if (!e[r.$isSplittable]()) return !1;
- if (void 0 !== this[r.$extra]._isSplittable) return this[r.$extra]._isSplittable;
- if ('position' === this.layout || this.layout.includes('row')) {
- this[r.$extra]._isSplittable = !1;
- return !1;
- }
- if (this.keep && 'none' !== this.keep.intact) {
- this[r.$extra]._isSplittable = !1;
- return !1;
- }
- if (e.layout && e.layout.endsWith('-tb') && 0 !== e[r.$extra].numberInLine) return !1;
- this[r.$extra]._isSplittable = !0;
- return !0;
- }
- [r.$toHTML](e) {
- setTabIndex(this);
- if (this.break) {
- if ('auto' !== this.break.after || '' !== this.break.afterTarget) {
- const e = new BreakAfter({
- targetType: this.break.after,
- target: this.break.afterTarget,
- startNew: this.break.startNew.toString(),
- });
- e[r.$globalData] = this[r.$globalData];
- this[r.$appendChild](e);
- this.breakAfter.push(e);
- }
- if ('auto' !== this.break.before || '' !== this.break.beforeTarget) {
- const e = new BreakBefore({
- targetType: this.break.before,
- target: this.break.beforeTarget,
- startNew: this.break.startNew.toString(),
- });
- e[r.$globalData] = this[r.$globalData];
- this[r.$appendChild](e);
- this.breakBefore.push(e);
- }
- if ('' !== this.break.overflowTarget) {
- const e = new Overflow({
- target: this.break.overflowTarget,
- leader: this.break.overflowLeader,
- trailer: this.break.overflowTrailer,
- });
- e[r.$globalData] = this[r.$globalData];
- this[r.$appendChild](e);
- this.overflow.push(e);
- }
- this[r.$removeChild](this.break);
- this.break = null;
- }
- if ('hidden' === this.presence || 'inactive' === this.presence)
- return o.HTMLResult.EMPTY;
- (this.breakBefore.children.length > 1 || this.breakAfter.children.length > 1) &&
- (0, c.warn)(
- 'XFA - Several breakBefore or breakAfter in subforms: please file a bug.',
- );
- if (this.breakBefore.children.length >= 1) {
- const e = this.breakBefore.children[0];
- if (handleBreak(e)) return o.HTMLResult.breakNode(e);
- }
- if (this[r.$extra] && this[r.$extra].afterBreakAfter) return o.HTMLResult.EMPTY;
- (0, s.fixDimensions)(this);
- const t = [],
- a = { id: this[r.$uid], class: [] };
- (0, s.setAccess)(this, a.class);
- this[r.$extra] || (this[r.$extra] = Object.create(null));
- Object.assign(this[r.$extra], {
- children: t,
- line: null,
- attributes: a,
- attempt: 0,
- numberInLine: 0,
- availableSpace: {
- width: Math.min(this.w || 1 / 0, e.width),
- height: Math.min(this.h || 1 / 0, e.height),
- },
- width: 0,
- height: 0,
- prevHeight: 0,
- currentWidth: 0,
- });
- const i = this[r.$getTemplateRoot](),
- l = i[r.$extra].noLayoutFailure,
- h = this[r.$isSplittable]();
- h || setFirstUnsplittable(this);
- if (!(0, n.checkDimensions)(this, e)) return o.HTMLResult.FAILURE;
- const u = new Set(['area', 'draw', 'exclGroup', 'field', 'subform', 'subformSet']);
- if (this.layout.includes('row')) {
- const e = this[r.$getSubformParent]().columnWidths;
- if (Array.isArray(e) && e.length > 0) {
- this[r.$extra].columnWidths = e;
- this[r.$extra].currentColumn = 0;
- }
- }
- const d = (0, s.toStyle)(
- this,
- 'anchorType',
- 'dimensions',
- 'position',
- 'presence',
- 'border',
- 'margin',
- 'hAlign',
- ),
- f = ['xfaSubform'],
- g = (0, s.layoutClass)(this);
- g && f.push(g);
- a.style = d;
- a.class = f;
- this.name && (a.xfaName = this.name);
- if (this.overflow) {
- const t = this.overflow[r.$getExtra]();
- if (t.addLeader) {
- t.addLeader = !1;
- handleOverflow(this, t.leader, e);
- }
- }
- this[r.$pushPara]();
- const p = 'lr-tb' === this.layout || 'rl-tb' === this.layout,
- m = p ? 2 : 1;
- for (; this[r.$extra].attempt < m; this[r.$extra].attempt++) {
- p && 1 === this[r.$extra].attempt && (this[r.$extra].numberInLine = 0);
- const e = this[r.$childrenToHTML]({ filter: u, include: !0 });
- if (e.success) break;
- if (e.isBreak()) {
- this[r.$popPara]();
- return e;
- }
- if (
- p &&
- 0 === this[r.$extra].attempt &&
- 0 === this[r.$extra].numberInLine &&
- !i[r.$extra].noLayoutFailure
- ) {
- this[r.$extra].attempt = m;
- break;
- }
- }
- this[r.$popPara]();
- h || unsetFirstUnsplittable(this);
- i[r.$extra].noLayoutFailure = l;
- if (this[r.$extra].attempt === m) {
- this.overflow &&
- (this[r.$getTemplateRoot]()[r.$extra].overflowNode = this.overflow);
- h || delete this[r.$extra];
- return o.HTMLResult.FAILURE;
- }
- if (this.overflow) {
- const t = this.overflow[r.$getExtra]();
- if (t.addTrailer) {
- t.addTrailer = !1;
- handleOverflow(this, t.trailer, e);
- }
- }
- let b = 0,
- y = 0;
- if (this.margin) {
- b = this.margin.leftInset + this.margin.rightInset;
- y = this.margin.topInset + this.margin.bottomInset;
- }
- const w = Math.max(this[r.$extra].width + b, this.w || 0),
- S = Math.max(this[r.$extra].height + y, this.h || 0),
- x = [this.x, this.y, w, S];
- '' === this.w && (d.width = (0, s.measureToString)(w));
- '' === this.h && (d.height = (0, s.measureToString)(S));
- if (('0px' === d.width || '0px' === d.height) && 0 === t.length)
- return o.HTMLResult.EMPTY;
- const C = { name: 'div', attributes: a, children: t };
- applyAssist(this, a);
- const k = o.HTMLResult.success((0, s.createWrapper)(this, C), x);
- if (this.breakAfter.children.length >= 1) {
- const e = this.breakAfter.children[0];
- if (handleBreak(e)) {
- this[r.$extra].afterBreakAfter = k;
- return o.HTMLResult.breakNode(e);
- }
- }
- delete this[r.$extra];
- return k;
- }
- }
- class SubformSet extends r.XFAObject {
- constructor(e) {
- super(d, 'subformSet', !0);
- this.id = e.id || '';
- this.name = e.name || '';
- this.relation = (0, o.getStringOption)(e.relation, [
- 'ordered',
- 'choice',
- 'unordered',
- ]);
- this.relevant = (0, o.getRelevant)(e.relevant);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.bookend = null;
- this.break = null;
- this.desc = null;
- this.extras = null;
- this.occur = null;
- this.overflow = null;
- this.breakAfter = new r.XFAObjectArray();
- this.breakBefore = new r.XFAObjectArray();
- this.subform = new r.XFAObjectArray();
- this.subformSet = new r.XFAObjectArray();
- }
- *[r.$getContainedChildren]() {
- yield* getContainedChildren(this);
- }
- [r.$getSubformParent]() {
- let e = this[r.$getParent]();
- for (; !(e instanceof Subform); ) e = e[r.$getParent]();
- return e;
- }
- [r.$isBindable]() {
- return !0;
- }
- }
- class SubjectDN extends r.ContentObject {
- constructor(e) {
- super(d, 'subjectDN');
- this.delimiter = e.delimiter || ',';
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- [r.$finalize]() {
- this[r.$content] = new Map(
- this[r.$content].split(this.delimiter).map((e) => {
- (e = e.split('=', 2))[0] = e[0].trim();
- return e;
- }),
- );
- }
- }
- class SubjectDNs extends r.XFAObject {
- constructor(e) {
- super(d, 'subjectDNs', !0);
- this.id = e.id || '';
- this.type = (0, o.getStringOption)(e.type, ['optional', 'required']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.subjectDN = new r.XFAObjectArray();
- }
- }
- class Submit extends r.XFAObject {
- constructor(e) {
- super(d, 'submit', !0);
- this.embedPDF = (0, o.getInteger)({
- data: e.embedPDF,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.format = (0, o.getStringOption)(e.format, [
- 'xdp',
- 'formdata',
- 'pdf',
- 'urlencoded',
- 'xfd',
- 'xml',
- ]);
- this.id = e.id || '';
- this.target = e.target || '';
- this.textEncoding = (0, o.getKeyword)({
- data: e.textEncoding ? e.textEncoding.toLowerCase() : '',
- defaultValue: '',
- validate: (e) =>
- [
- 'utf-8',
- 'big-five',
- 'fontspecific',
- 'gbk',
- 'gb-18030',
- 'gb-2312',
- 'ksc-5601',
- 'none',
- 'shift-jis',
- 'ucs-2',
- 'utf-16',
- ].includes(e) || e.match(/iso-8859-\d{2}/),
- });
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.xdpContent = e.xdpContent || '';
- this.encrypt = null;
- this.encryptData = new r.XFAObjectArray();
- this.signData = new r.XFAObjectArray();
- }
- }
- class Template extends r.XFAObject {
- constructor(e) {
- super(d, 'template', !0);
- this.baseProfile = (0, o.getStringOption)(e.baseProfile, [
- 'full',
- 'interactiveForms',
- ]);
- this.extras = null;
- this.subform = new r.XFAObjectArray();
- }
- [r.$finalize]() {
- 0 === this.subform.children.length &&
- (0, c.warn)('XFA - No subforms in template node.');
- this.subform.children.length >= 2 &&
- (0, c.warn)('XFA - Several subforms in template node: please file a bug.');
- this[r.$tabIndex] = 5e3;
- }
- [r.$isSplittable]() {
- return !0;
- }
- [r.$searchNode](e, t) {
- return e.startsWith('#')
- ? [this[r.$ids].get(e.slice(1))]
- : (0, u.searchNode)(this, t, e, !0, !0);
- }
- *[r.$toPages]() {
- if (!this.subform.children.length)
- return o.HTMLResult.success({ name: 'div', children: [] });
- this[r.$extra] = {
- overflowNode: null,
- firstUnsplittable: null,
- currentContentArea: null,
- currentPageArea: null,
- noLayoutFailure: !1,
- pageNumber: 1,
- pagePosition: 'first',
- oddOrEven: 'odd',
- blankOrNotBlank: 'nonBlank',
- paraStack: [],
- };
- const e = this.subform.children[0];
- e.pageSet[r.$cleanPage]();
- const t = e.pageSet.pageArea.children,
- a = { name: 'div', children: [] };
- let i = null,
- n = null,
- s = null;
- if (e.breakBefore.children.length >= 1) {
- n = e.breakBefore.children[0];
- s = n.target;
- } else if (
- e.subform.children.length >= 1 &&
- e.subform.children[0].breakBefore.children.length >= 1
- ) {
- n = e.subform.children[0].breakBefore.children[0];
- s = n.target;
- } else if (e.break && e.break.beforeTarget) {
- n = e.break;
- s = n.beforeTarget;
- } else if (
- e.subform.children.length >= 1 &&
- e.subform.children[0].break &&
- e.subform.children[0].break.beforeTarget
- ) {
- n = e.subform.children[0].break;
- s = n.beforeTarget;
- }
- if (n) {
- const e = this[r.$searchNode](s, n[r.$getParent]());
- if (e instanceof PageArea) {
- i = e;
- n[r.$extra] = {};
- }
- }
- i || (i = t[0]);
- i[r.$extra] = { numberOfUse: 1 };
- const l = i[r.$getParent]();
- l[r.$extra] = {
- numberOfUse: 1,
- pageIndex: l.pageArea.children.indexOf(i),
- pageSetIndex: 0,
- };
- let h,
- u = null,
- d = null,
- f = !0,
- g = 0,
- p = 0;
- for (;;) {
- if (f) g = 0;
- else {
- a.children.pop();
- if (3 == ++g) {
- (0, c.warn)('XFA - Something goes wrong: please file a bug.');
- return a;
- }
- }
- h = null;
- this[r.$extra].currentPageArea = i;
- const t = i[r.$toHTML]().html;
- a.children.push(t);
- if (u) {
- this[r.$extra].noLayoutFailure = !0;
- t.children.push(u[r.$toHTML](i[r.$extra].space).html);
- u = null;
- }
- if (d) {
- this[r.$extra].noLayoutFailure = !0;
- t.children.push(d[r.$toHTML](i[r.$extra].space).html);
- d = null;
- }
- const n = i.contentArea.children,
- s = t.children.filter((e) => e.attributes.class.includes('xfaContentarea'));
- f = !1;
- this[r.$extra].firstUnsplittable = null;
- this[r.$extra].noLayoutFailure = !1;
- const flush = (t) => {
- const a = e[r.$flushHTML]();
- if (a) {
- f ||= !!a.children && 0 !== a.children.length;
- s[t].children.push(a);
- }
- };
- for (let t = p, i = n.length; t < i; t++) {
- const i = (this[r.$extra].currentContentArea = n[t]),
- o = { width: i.w, height: i.h };
- p = 0;
- if (u) {
- s[t].children.push(u[r.$toHTML](o).html);
- u = null;
- }
- if (d) {
- s[t].children.push(d[r.$toHTML](o).html);
- d = null;
- }
- const c = e[r.$toHTML](o);
- if (c.success) {
- if (c.html) {
- f ||= !!c.html.children && 0 !== c.html.children.length;
- s[t].children.push(c.html);
- } else !f && a.children.length > 1 && a.children.pop();
- return a;
- }
- if (c.isBreak()) {
- const e = c.breakNode;
- flush(t);
- if ('auto' === e.targetType) continue;
- if (e.leader) {
- u = this[r.$searchNode](e.leader, e[r.$getParent]());
- u = u ? u[0] : null;
- }
- if (e.trailer) {
- d = this[r.$searchNode](e.trailer, e[r.$getParent]());
- d = d ? d[0] : null;
- }
- if ('pageArea' === e.targetType) {
- h = e[r.$extra].target;
- t = 1 / 0;
- } else if (e[r.$extra].target) {
- h = e[r.$extra].target;
- p = e[r.$extra].index + 1;
- t = 1 / 0;
- } else t = e[r.$extra].index;
- } else if (this[r.$extra].overflowNode) {
- const e = this[r.$extra].overflowNode;
- this[r.$extra].overflowNode = null;
- const a = e[r.$getExtra](),
- i = a.target;
- a.addLeader = null !== a.leader;
- a.addTrailer = null !== a.trailer;
- flush(t);
- const s = t;
- t = 1 / 0;
- if (i instanceof PageArea) h = i;
- else if (i instanceof ContentArea) {
- const e = n.indexOf(i);
- if (-1 !== e) e > s ? (t = e - 1) : (p = e);
- else {
- h = i[r.$getParent]();
- p = h.contentArea.children.indexOf(i);
- }
- }
- } else flush(t);
- }
- this[r.$extra].pageNumber += 1;
- h && (h[r.$isUsable]() ? (h[r.$extra].numberOfUse += 1) : (h = null));
- i = h || i[r.$getNextPage]();
- yield null;
- }
- }
- }
- t.Template = Template;
- class Text extends r.ContentObject {
- constructor(e) {
- super(d, 'text');
- this.id = e.id || '';
- this.maxChars = (0, o.getInteger)({
- data: e.maxChars,
- defaultValue: 0,
- validate: (e) => e >= 0,
- });
- this.name = e.name || '';
- this.rid = e.rid || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- [r.$acceptWhitespace]() {
- return !0;
- }
- [r.$onChild](e) {
- if (e[r.$namespaceId] === i.NamespaceIds.xhtml.id) {
- this[r.$content] = e;
- return !0;
- }
- (0, c.warn)(`XFA - Invalid content in Text: ${e[r.$nodeName]}.`);
- return !1;
- }
- [r.$onText](e) {
- this[r.$content] instanceof r.XFAObject || super[r.$onText](e);
- }
- [r.$finalize]() {
- 'string' == typeof this[r.$content] &&
- (this[r.$content] = this[r.$content].replaceAll('\r\n', '\n'));
- }
- [r.$getExtra]() {
- return 'string' == typeof this[r.$content]
- ? this[r.$content]
- .split(/[\u2029\u2028\n]/)
- .reduce((e, t) => {
- t && e.push(t);
- return e;
- }, [])
- .join('\n')
- : this[r.$content][r.$text]();
- }
- [r.$toHTML](e) {
- if ('string' == typeof this[r.$content]) {
- const e = valueToHtml(this[r.$content]).html;
- if (this[r.$content].includes('\u2029')) {
- e.name = 'div';
- e.children = [];
- this[r.$content]
- .split('\u2029')
- .map((e) =>
- e.split(/[\u2028\n]/).reduce((e, t) => {
- e.push({ name: 'span', value: t }, { name: 'br' });
- return e;
- }, []),
- )
- .forEach((t) => {
- e.children.push({ name: 'p', children: t });
- });
- } else if (/[\u2028\n]/.test(this[r.$content])) {
- e.name = 'div';
- e.children = [];
- this[r.$content].split(/[\u2028\n]/).forEach((t) => {
- e.children.push({ name: 'span', value: t }, { name: 'br' });
- });
- }
- return o.HTMLResult.success(e);
- }
- return this[r.$content][r.$toHTML](e);
- }
- }
- t.Text = Text;
- class TextEdit extends r.XFAObject {
- constructor(e) {
- super(d, 'textEdit', !0);
- this.allowRichText = (0, o.getInteger)({
- data: e.allowRichText,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.hScrollPolicy = (0, o.getStringOption)(e.hScrollPolicy, ['auto', 'off', 'on']);
- this.id = e.id || '';
- this.multiLine = (0, o.getInteger)({
- data: e.multiLine,
- defaultValue: '',
- validate: (e) => 0 === e || 1 === e,
- });
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.vScrollPolicy = (0, o.getStringOption)(e.vScrollPolicy, ['auto', 'off', 'on']);
- this.border = null;
- this.comb = null;
- this.extras = null;
- this.margin = null;
- }
- [r.$toHTML](e) {
- const t = (0, s.toStyle)(this, 'border', 'font', 'margin');
- let a;
- const i = this[r.$getParent]()[r.$getParent]();
- '' === this.multiLine && (this.multiLine = i instanceof Draw ? 1 : 0);
- a =
- 1 === this.multiLine
- ? {
- name: 'textarea',
- attributes: {
- dataId: (i[r.$data] && i[r.$data][r.$uid]) || i[r.$uid],
- fieldId: i[r.$uid],
- class: ['xfaTextfield'],
- style: t,
- 'aria-label': ariaLabel(i),
- 'aria-required': !1,
- },
- }
- : {
- name: 'input',
- attributes: {
- type: 'text',
- dataId: (i[r.$data] && i[r.$data][r.$uid]) || i[r.$uid],
- fieldId: i[r.$uid],
- class: ['xfaTextfield'],
- style: t,
- 'aria-label': ariaLabel(i),
- 'aria-required': !1,
- },
- };
- if (isRequired(i)) {
- a.attributes['aria-required'] = !0;
- a.attributes.required = !0;
- }
- return o.HTMLResult.success({
- name: 'label',
- attributes: { class: ['xfaLabel'] },
- children: [a],
- });
- }
- }
- class Time extends r.StringObject {
- constructor(e) {
- super(d, 'time');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- [r.$finalize]() {
- const e = this[r.$content].trim();
- this[r.$content] = e ? new Date(e) : null;
- }
- [r.$toHTML](e) {
- return valueToHtml(this[r.$content] ? this[r.$content].toString() : '');
- }
- }
- class TimeStamp extends r.XFAObject {
- constructor(e) {
- super(d, 'timeStamp');
- this.id = e.id || '';
- this.server = e.server || '';
- this.type = (0, o.getStringOption)(e.type, ['optional', 'required']);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class ToolTip extends r.StringObject {
- constructor(e) {
- super(d, 'toolTip');
- this.id = e.id || '';
- this.rid = e.rid || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Traversal extends r.XFAObject {
- constructor(e) {
- super(d, 'traversal', !0);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- this.traverse = new r.XFAObjectArray();
- }
- }
- class Traverse extends r.XFAObject {
- constructor(e) {
- super(d, 'traverse', !0);
- this.id = e.id || '';
- this.operation = (0, o.getStringOption)(e.operation, [
- 'next',
- 'back',
- 'down',
- 'first',
- 'left',
- 'right',
- 'up',
- ]);
- this.ref = e.ref || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- this.script = null;
- }
- get name() {
- return this.operation;
- }
- [r.$isTransparent]() {
- return !1;
- }
- }
- class Ui extends r.XFAObject {
- constructor(e) {
- super(d, 'ui', !0);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- this.picture = null;
- this.barcode = null;
- this.button = null;
- this.checkButton = null;
- this.choiceList = null;
- this.dateTimeEdit = null;
- this.defaultUi = null;
- this.imageEdit = null;
- this.numericEdit = null;
- this.passwordEdit = null;
- this.signature = null;
- this.textEdit = null;
- }
- [r.$getExtra]() {
- if (void 0 === this[r.$extra]) {
- for (const e of Object.getOwnPropertyNames(this)) {
- if ('extras' === e || 'picture' === e) continue;
- const t = this[e];
- if (t instanceof r.XFAObject) {
- this[r.$extra] = t;
- return t;
- }
- }
- this[r.$extra] = null;
- }
- return this[r.$extra];
- }
- [r.$toHTML](e) {
- const t = this[r.$getExtra]();
- return t ? t[r.$toHTML](e) : o.HTMLResult.EMPTY;
- }
- }
- class Validate extends r.XFAObject {
- constructor(e) {
- super(d, 'validate', !0);
- this.formatTest = (0, o.getStringOption)(e.formatTest, [
- 'warning',
- 'disabled',
- 'error',
- ]);
- this.id = e.id || '';
- this.nullTest = (0, o.getStringOption)(e.nullTest, ['disabled', 'error', 'warning']);
- this.scriptTest = (0, o.getStringOption)(e.scriptTest, [
- 'error',
- 'disabled',
- 'warning',
- ]);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.extras = null;
- this.message = null;
- this.picture = null;
- this.script = null;
- }
- }
- class Value extends r.XFAObject {
- constructor(e) {
- super(d, 'value', !0);
- this.id = e.id || '';
- this.override = (0, o.getInteger)({
- data: e.override,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.relevant = (0, o.getRelevant)(e.relevant);
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.arc = null;
- this.boolean = null;
- this.date = null;
- this.dateTime = null;
- this.decimal = null;
- this.exData = null;
- this.float = null;
- this.image = null;
- this.integer = null;
- this.line = null;
- this.rectangle = null;
- this.text = null;
- this.time = null;
- }
- [r.$setValue](e) {
- const t = this[r.$getParent]();
- if (t instanceof Field && t.ui && t.ui.imageEdit) {
- if (!this.image) {
- this.image = new Image({});
- this[r.$appendChild](this.image);
- }
- this.image[r.$content] = e[r.$content];
- return;
- }
- const a = e[r.$nodeName];
- if (null === this[a]) {
- for (const e of Object.getOwnPropertyNames(this)) {
- const t = this[e];
- if (t instanceof r.XFAObject) {
- this[e] = null;
- this[r.$removeChild](t);
- }
- }
- this[e[r.$nodeName]] = e;
- this[r.$appendChild](e);
- } else this[a][r.$content] = e[r.$content];
- }
- [r.$text]() {
- if (this.exData)
- return 'string' == typeof this.exData[r.$content]
- ? this.exData[r.$content].trim()
- : this.exData[r.$content][r.$text]().trim();
- for (const e of Object.getOwnPropertyNames(this)) {
- if ('image' === e) continue;
- const t = this[e];
- if (t instanceof r.XFAObject) return (t[r.$content] || '').toString().trim();
- }
- return null;
- }
- [r.$toHTML](e) {
- for (const t of Object.getOwnPropertyNames(this)) {
- const a = this[t];
- if (a instanceof r.XFAObject) return a[r.$toHTML](e);
- }
- return o.HTMLResult.EMPTY;
- }
- }
- t.Value = Value;
- class Variables extends r.XFAObject {
- constructor(e) {
- super(d, 'variables', !0);
- this.id = e.id || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- this.boolean = new r.XFAObjectArray();
- this.date = new r.XFAObjectArray();
- this.dateTime = new r.XFAObjectArray();
- this.decimal = new r.XFAObjectArray();
- this.exData = new r.XFAObjectArray();
- this.float = new r.XFAObjectArray();
- this.image = new r.XFAObjectArray();
- this.integer = new r.XFAObjectArray();
- this.manifest = new r.XFAObjectArray();
- this.script = new r.XFAObjectArray();
- this.text = new r.XFAObjectArray();
- this.time = new r.XFAObjectArray();
- }
- [r.$isTransparent]() {
- return !0;
- }
- }
- class TemplateNamespace {
- static [i.$buildXFAObject](e, t) {
- if (TemplateNamespace.hasOwnProperty(e)) {
- const a = TemplateNamespace[e](t);
- a[r.$setSetAttributes](t);
- return a;
- }
- }
- static appearanceFilter(e) {
- return new AppearanceFilter(e);
- }
- static arc(e) {
- return new Arc(e);
- }
- static area(e) {
- return new Area(e);
- }
- static assist(e) {
- return new Assist(e);
- }
- static barcode(e) {
- return new Barcode(e);
- }
- static bind(e) {
- return new Bind(e);
- }
- static bindItems(e) {
- return new BindItems(e);
- }
- static bookend(e) {
- return new Bookend(e);
- }
- static boolean(e) {
- return new BooleanElement(e);
- }
- static border(e) {
- return new Border(e);
- }
- static break(e) {
- return new Break(e);
- }
- static breakAfter(e) {
- return new BreakAfter(e);
- }
- static breakBefore(e) {
- return new BreakBefore(e);
- }
- static button(e) {
- return new Button(e);
- }
- static calculate(e) {
- return new Calculate(e);
- }
- static caption(e) {
- return new Caption(e);
- }
- static certificate(e) {
- return new Certificate(e);
- }
- static certificates(e) {
- return new Certificates(e);
- }
- static checkButton(e) {
- return new CheckButton(e);
- }
- static choiceList(e) {
- return new ChoiceList(e);
- }
- static color(e) {
- return new Color(e);
- }
- static comb(e) {
- return new Comb(e);
- }
- static connect(e) {
- return new Connect(e);
- }
- static contentArea(e) {
- return new ContentArea(e);
- }
- static corner(e) {
- return new Corner(e);
- }
- static date(e) {
- return new DateElement(e);
- }
- static dateTime(e) {
- return new DateTime(e);
- }
- static dateTimeEdit(e) {
- return new DateTimeEdit(e);
- }
- static decimal(e) {
- return new Decimal(e);
- }
- static defaultUi(e) {
- return new DefaultUi(e);
- }
- static desc(e) {
- return new Desc(e);
- }
- static digestMethod(e) {
- return new DigestMethod(e);
- }
- static digestMethods(e) {
- return new DigestMethods(e);
- }
- static draw(e) {
- return new Draw(e);
- }
- static edge(e) {
- return new Edge(e);
- }
- static encoding(e) {
- return new Encoding(e);
- }
- static encodings(e) {
- return new Encodings(e);
- }
- static encrypt(e) {
- return new Encrypt(e);
- }
- static encryptData(e) {
- return new EncryptData(e);
- }
- static encryption(e) {
- return new Encryption(e);
- }
- static encryptionMethod(e) {
- return new EncryptionMethod(e);
- }
- static encryptionMethods(e) {
- return new EncryptionMethods(e);
- }
- static event(e) {
- return new Event(e);
- }
- static exData(e) {
- return new ExData(e);
- }
- static exObject(e) {
- return new ExObject(e);
- }
- static exclGroup(e) {
- return new ExclGroup(e);
- }
- static execute(e) {
- return new Execute(e);
- }
- static extras(e) {
- return new Extras(e);
- }
- static field(e) {
- return new Field(e);
- }
- static fill(e) {
- return new Fill(e);
- }
- static filter(e) {
- return new Filter(e);
- }
- static float(e) {
- return new Float(e);
- }
- static font(e) {
- return new Font(e);
- }
- static format(e) {
- return new Format(e);
- }
- static handler(e) {
- return new Handler(e);
- }
- static hyphenation(e) {
- return new Hyphenation(e);
- }
- static image(e) {
- return new Image(e);
- }
- static imageEdit(e) {
- return new ImageEdit(e);
- }
- static integer(e) {
- return new Integer(e);
- }
- static issuers(e) {
- return new Issuers(e);
- }
- static items(e) {
- return new Items(e);
- }
- static keep(e) {
- return new Keep(e);
- }
- static keyUsage(e) {
- return new KeyUsage(e);
- }
- static line(e) {
- return new Line(e);
- }
- static linear(e) {
- return new Linear(e);
- }
- static lockDocument(e) {
- return new LockDocument(e);
- }
- static manifest(e) {
- return new Manifest(e);
- }
- static margin(e) {
- return new Margin(e);
- }
- static mdp(e) {
- return new Mdp(e);
- }
- static medium(e) {
- return new Medium(e);
- }
- static message(e) {
- return new Message(e);
- }
- static numericEdit(e) {
- return new NumericEdit(e);
- }
- static occur(e) {
- return new Occur(e);
- }
- static oid(e) {
- return new Oid(e);
- }
- static oids(e) {
- return new Oids(e);
- }
- static overflow(e) {
- return new Overflow(e);
- }
- static pageArea(e) {
- return new PageArea(e);
- }
- static pageSet(e) {
- return new PageSet(e);
- }
- static para(e) {
- return new Para(e);
- }
- static passwordEdit(e) {
- return new PasswordEdit(e);
- }
- static pattern(e) {
- return new Pattern(e);
- }
- static picture(e) {
- return new Picture(e);
- }
- static proto(e) {
- return new Proto(e);
- }
- static radial(e) {
- return new Radial(e);
- }
- static reason(e) {
- return new Reason(e);
- }
- static reasons(e) {
- return new Reasons(e);
- }
- static rectangle(e) {
- return new Rectangle(e);
- }
- static ref(e) {
- return new RefElement(e);
- }
- static script(e) {
- return new Script(e);
- }
- static setProperty(e) {
- return new SetProperty(e);
- }
- static signData(e) {
- return new SignData(e);
- }
- static signature(e) {
- return new Signature(e);
- }
- static signing(e) {
- return new Signing(e);
- }
- static solid(e) {
- return new Solid(e);
- }
- static speak(e) {
- return new Speak(e);
- }
- static stipple(e) {
- return new Stipple(e);
- }
- static subform(e) {
- return new Subform(e);
- }
- static subformSet(e) {
- return new SubformSet(e);
- }
- static subjectDN(e) {
- return new SubjectDN(e);
- }
- static subjectDNs(e) {
- return new SubjectDNs(e);
- }
- static submit(e) {
- return new Submit(e);
- }
- static template(e) {
- return new Template(e);
- }
- static text(e) {
- return new Text(e);
- }
- static textEdit(e) {
- return new TextEdit(e);
- }
- static time(e) {
- return new Time(e);
- }
- static timeStamp(e) {
- return new TimeStamp(e);
- }
- static toolTip(e) {
- return new ToolTip(e);
- }
- static traversal(e) {
- return new Traversal(e);
- }
- static traverse(e) {
- return new Traverse(e);
- }
- static ui(e) {
- return new Ui(e);
- }
- static validate(e) {
- return new Validate(e);
- }
- static value(e) {
- return new Value(e);
- }
- static variables(e) {
- return new Variables(e);
- }
- }
- t.TemplateNamespace = TemplateNamespace;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.addHTML = function addHTML(e, t, a) {
- const n = e[r.$extra],
- s = n.availableSpace,
- [o, c, l, h] = a;
- switch (e.layout) {
- case 'position':
- n.width = Math.max(n.width, o + l);
- n.height = Math.max(n.height, c + h);
- n.children.push(t);
- break;
- case 'lr-tb':
- case 'rl-tb':
- if (!n.line || 1 === n.attempt) {
- n.line = createLine(e, []);
- n.children.push(n.line);
- n.numberInLine = 0;
- }
- n.numberInLine += 1;
- n.line.children.push(t);
- if (0 === n.attempt) {
- n.currentWidth += l;
- n.height = Math.max(n.height, n.prevHeight + h);
- } else {
- n.currentWidth = l;
- n.prevHeight = n.height;
- n.height += h;
- n.attempt = 0;
- }
- n.width = Math.max(n.width, n.currentWidth);
- break;
- case 'rl-row':
- case 'row': {
- n.children.push(t);
- n.width += l;
- n.height = Math.max(n.height, h);
- const e = (0, i.measureToString)(n.height);
- for (const t of n.children) t.attributes.style.height = e;
- break;
- }
- case 'table':
- case 'tb':
- n.width = Math.min(s.width, Math.max(n.width, l));
- n.height += h;
- n.children.push(t);
- }
- };
- t.checkDimensions = function checkDimensions(e, t) {
- if (null === e[r.$getTemplateRoot]()[r.$extra].firstUnsplittable) return !0;
- if (0 === e.w || 0 === e.h) return !0;
- const a = e[r.$getSubformParent](),
- i = (a[r.$extra] && a[r.$extra].attempt) || 0,
- [, n, s, o] = (function getTransformedBBox(e) {
- let t,
- a,
- r = '' === e.w ? NaN : e.w,
- i = '' === e.h ? NaN : e.h,
- [n, s] = [0, 0];
- switch (e.anchorType || '') {
- case 'bottomCenter':
- [n, s] = [r / 2, i];
- break;
- case 'bottomLeft':
- [n, s] = [0, i];
- break;
- case 'bottomRight':
- [n, s] = [r, i];
- break;
- case 'middleCenter':
- [n, s] = [r / 2, i / 2];
- break;
- case 'middleLeft':
- [n, s] = [0, i / 2];
- break;
- case 'middleRight':
- [n, s] = [r, i / 2];
- break;
- case 'topCenter':
- [n, s] = [r / 2, 0];
- break;
- case 'topRight':
- [n, s] = [r, 0];
- }
- switch (e.rotate || 0) {
- case 0:
- [t, a] = [-n, -s];
- break;
- case 90:
- [t, a] = [-s, n];
- [r, i] = [i, -r];
- break;
- case 180:
- [t, a] = [n, s];
- [r, i] = [-r, -i];
- break;
- case 270:
- [t, a] = [s, -n];
- [r, i] = [-i, r];
- }
- return [
- e.x + t + Math.min(0, r),
- e.y + a + Math.min(0, i),
- Math.abs(r),
- Math.abs(i),
- ];
- })(e);
- switch (a.layout) {
- case 'lr-tb':
- case 'rl-tb':
- return 0 === i
- ? e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure
- ? '' !== e.w
- ? Math.round(s - t.width) <= 2
- : t.width > 2
- : !('' !== e.h && Math.round(o - t.height) > 2) &&
- ('' !== e.w
- ? Math.round(s - t.width) <= 2 ||
- (0 === a[r.$extra].numberInLine && t.height > 2)
- : t.width > 2)
- : !!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure ||
- (!('' !== e.h && Math.round(o - t.height) > 2) &&
- ('' === e.w || Math.round(s - t.width) <= 2 || !a[r.$isThereMoreWidth]()) &&
- t.height > 2);
- case 'table':
- case 'tb':
- return (
- !!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure ||
- ('' === e.h || e[r.$isSplittable]()
- ? ('' === e.w || Math.round(s - t.width) <= 2 || !a[r.$isThereMoreWidth]()) &&
- t.height > 2
- : Math.round(o - t.height) <= 2)
- );
- case 'position':
- if (e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure) return !0;
- if ('' === e.h || Math.round(o + n - t.height) <= 2) return !0;
- return o + n > e[r.$getTemplateRoot]()[r.$extra].currentContentArea.h;
- case 'rl-row':
- case 'row':
- return (
- !!e[r.$getTemplateRoot]()[r.$extra].noLayoutFailure ||
- '' === e.h ||
- Math.round(o - t.height) <= 2
- );
- default:
- return !0;
- }
- };
- t.flushHTML = function flushHTML(e) {
- if (!e[r.$extra]) return null;
- const t = {
- name: 'div',
- attributes: e[r.$extra].attributes,
- children: e[r.$extra].children,
- };
- if (e[r.$extra].failingNode) {
- const a = e[r.$extra].failingNode[r.$flushHTML]();
- a &&
- (e.layout.endsWith('-tb')
- ? t.children.push(createLine(e, [a]))
- : t.children.push(a));
- }
- if (0 === t.children.length) return null;
- return t;
- };
- t.getAvailableSpace = function getAvailableSpace(e) {
- const t = e[r.$extra].availableSpace,
- a = e.margin ? e.margin.topInset + e.margin.bottomInset : 0,
- i = e.margin ? e.margin.leftInset + e.margin.rightInset : 0;
- switch (e.layout) {
- case 'lr-tb':
- case 'rl-tb':
- return 0 === e[r.$extra].attempt
- ? {
- width: t.width - i - e[r.$extra].currentWidth,
- height: t.height - a - e[r.$extra].prevHeight,
- }
- : { width: t.width - i, height: t.height - a - e[r.$extra].height };
- case 'rl-row':
- case 'row':
- return {
- width: e[r.$extra].columnWidths
- .slice(e[r.$extra].currentColumn)
- .reduce((e, t) => e + t),
- height: t.height - i,
- };
- case 'table':
- case 'tb':
- return { width: t.width - i, height: t.height - a - e[r.$extra].height };
- default:
- return t;
- }
- };
- var r = a(77),
- i = a(84);
- function createLine(e, t) {
- return {
- name: 'div',
- attributes: { class: ['lr-tb' === e.layout ? 'xfaLr' : 'xfaRl'] },
- children: t,
- };
- }
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.computeBbox = function computeBbox(e, t, a) {
- let i;
- if ('' !== e.w && '' !== e.h) i = [e.x, e.y, e.w, e.h];
- else {
- if (!a) return null;
- let n = e.w;
- if ('' === n) {
- if (0 === e.maxW) {
- const t = e[r.$getSubformParent]();
- n = 'position' === t.layout && '' !== t.w ? 0 : e.minW;
- } else n = Math.min(e.maxW, a.width);
- t.attributes.style.width = measureToString(n);
- }
- let s = e.h;
- if ('' === s) {
- if (0 === e.maxH) {
- const t = e[r.$getSubformParent]();
- s = 'position' === t.layout && '' !== t.h ? 0 : e.minH;
- } else s = Math.min(e.maxH, a.height);
- t.attributes.style.height = measureToString(s);
- }
- i = [e.x, e.y, n, s];
- }
- return i;
- };
- t.createWrapper = function createWrapper(e, t) {
- const { attributes: a } = t,
- { style: i } = a,
- n = {
- name: 'div',
- attributes: { class: ['xfaWrapper'], style: Object.create(null) },
- children: [],
- };
- a.class.push('xfaWrapped');
- if (e.border) {
- const { widths: a, insets: s } = e.border[r.$extra];
- let o,
- c,
- l = s[0],
- h = s[3];
- const u = s[0] + s[2],
- d = s[1] + s[3];
- switch (e.border.hand) {
- case 'even':
- l -= a[0] / 2;
- h -= a[3] / 2;
- o = `calc(100% + ${(a[1] + a[3]) / 2 - d}px)`;
- c = `calc(100% + ${(a[0] + a[2]) / 2 - u}px)`;
- break;
- case 'left':
- l -= a[0];
- h -= a[3];
- o = `calc(100% + ${a[1] + a[3] - d}px)`;
- c = `calc(100% + ${a[0] + a[2] - u}px)`;
- break;
- case 'right':
- o = d ? `calc(100% - ${d}px)` : '100%';
- c = u ? `calc(100% - ${u}px)` : '100%';
- }
- const f = ['xfaBorder'];
- isPrintOnly(e.border) && f.push('xfaPrintOnly');
- const g = {
- name: 'div',
- attributes: {
- class: f,
- style: { top: `${l}px`, left: `${h}px`, width: o, height: c },
- },
- children: [],
- };
- for (const e of [
- 'border',
- 'borderWidth',
- 'borderColor',
- 'borderRadius',
- 'borderStyle',
- ])
- if (void 0 !== i[e]) {
- g.attributes.style[e] = i[e];
- delete i[e];
- }
- n.children.push(g, t);
- } else n.children.push(t);
- for (const e of [
- 'background',
- 'backgroundClip',
- 'top',
- 'left',
- 'width',
- 'height',
- 'minWidth',
- 'minHeight',
- 'maxWidth',
- 'maxHeight',
- 'transform',
- 'transformOrigin',
- 'visibility',
- ])
- if (void 0 !== i[e]) {
- n.attributes.style[e] = i[e];
- delete i[e];
- }
- 'absolute' === i.position
- ? (n.attributes.style.position = 'absolute')
- : (n.attributes.style.position = 'relative');
- delete i.position;
- if (i.alignSelf) {
- n.attributes.style.alignSelf = i.alignSelf;
- delete i.alignSelf;
- }
- return n;
- };
- t.fixDimensions = function fixDimensions(e) {
- const t = e[r.$getSubformParent]();
- if (t.layout && t.layout.includes('row')) {
- const a = t[r.$extra],
- i = e.colSpan;
- let n;
- n =
- -1 === i
- ? a.columnWidths.slice(a.currentColumn).reduce((e, t) => e + t, 0)
- : a.columnWidths
- .slice(a.currentColumn, a.currentColumn + i)
- .reduce((e, t) => e + t, 0);
- isNaN(n) || (e.w = n);
- }
- t.layout && 'position' !== t.layout && (e.x = e.y = 0);
- 'table' === e.layout &&
- '' === e.w &&
- Array.isArray(e.columnWidths) &&
- (e.w = e.columnWidths.reduce((e, t) => e + t, 0));
- };
- t.fixTextIndent = function fixTextIndent(e) {
- const t = (0, n.getMeasurement)(e.textIndent, '0px');
- if (t >= 0) return;
- const a =
- 'padding' +
- ('left' == ('right' === e.textAlign ? 'right' : 'left') ? 'Left' : 'Right'),
- r = (0, n.getMeasurement)(e[a], '0px');
- e[a] = r - t + 'px';
- };
- t.fixURL = function fixURL(e) {
- const t = (0, i.createValidAbsoluteUrl)(e, null, {
- addDefaultProtocol: !0,
- tryConvertEncoding: !0,
- });
- return t ? t.href : null;
- };
- t.isPrintOnly = isPrintOnly;
- t.layoutClass = function layoutClass(e) {
- switch (e.layout) {
- case 'position':
- default:
- return 'xfaPosition';
- case 'lr-tb':
- return 'xfaLrTb';
- case 'rl-row':
- return 'xfaRlRow';
- case 'rl-tb':
- return 'xfaRlTb';
- case 'row':
- return 'xfaRow';
- case 'table':
- return 'xfaTable';
- case 'tb':
- return 'xfaTb';
- }
- };
- t.layoutNode = function layoutNode(e, t) {
- let a = null,
- i = null,
- n = !1;
- if ((!e.w || !e.h) && e.value) {
- let s = 0,
- o = 0;
- if (e.margin) {
- s = e.margin.leftInset + e.margin.rightInset;
- o = e.margin.topInset + e.margin.bottomInset;
- }
- let c = null,
- l = null;
- if (e.para) {
- l = Object.create(null);
- c = '' === e.para.lineHeight ? null : e.para.lineHeight;
- l.top = '' === e.para.spaceAbove ? 0 : e.para.spaceAbove;
- l.bottom = '' === e.para.spaceBelow ? 0 : e.para.spaceBelow;
- l.left = '' === e.para.marginLeft ? 0 : e.para.marginLeft;
- l.right = '' === e.para.marginRight ? 0 : e.para.marginRight;
- }
- let h = e.font;
- if (!h) {
- const t = e[r.$getTemplateRoot]();
- let a = e[r.$getParent]();
- for (; a && a !== t; ) {
- if (a.font) {
- h = a.font;
- break;
- }
- a = a[r.$getParent]();
- }
- }
- const u = (e.w || t.width) - s,
- d = e[r.$globalData].fontFinder;
- if (
- e.value.exData &&
- e.value.exData[r.$content] &&
- 'text/html' === e.value.exData.contentType
- ) {
- const t = layoutText(e.value.exData[r.$content], h, l, c, d, u);
- i = t.width;
- a = t.height;
- n = t.isBroken;
- } else {
- const t = e.value[r.$text]();
- if (t) {
- const e = layoutText(t, h, l, c, d, u);
- i = e.width;
- a = e.height;
- n = e.isBroken;
- }
- }
- null === i || e.w || (i += s);
- null === a || e.h || (a += o);
- }
- return { w: i, h: a, isBroken: n };
- };
- t.measureToString = measureToString;
- t.setAccess = function setAccess(e, t) {
- switch (e.access) {
- case 'nonInteractive':
- t.push('xfaNonInteractive');
- break;
- case 'readOnly':
- t.push('xfaReadOnly');
- break;
- case 'protected':
- t.push('xfaDisabled');
- }
- };
- t.setFontFamily = function setFontFamily(e, t, a, r) {
- if (!a) {
- delete r.fontFamily;
- return;
- }
- const i = (0, n.stripQuotes)(e.typeface);
- r.fontFamily = `"${i}"`;
- const o = a.find(i);
- if (o) {
- const { fontFamily: a } = o.regular.cssFontInfo;
- a !== i && (r.fontFamily = `"${a}"`);
- const n = getCurrentPara(t);
- if (n && '' !== n.lineHeight) return;
- if (r.lineHeight) return;
- const c = (0, s.selectFont)(e, o);
- c && (r.lineHeight = Math.max(1.2, c.lineHeight));
- }
- };
- t.setMinMaxDimensions = function setMinMaxDimensions(e, t) {
- if ('position' === e[r.$getSubformParent]().layout) {
- e.minW > 0 && (t.minWidth = measureToString(e.minW));
- e.maxW > 0 && (t.maxWidth = measureToString(e.maxW));
- e.minH > 0 && (t.minHeight = measureToString(e.minH));
- e.maxH > 0 && (t.maxHeight = measureToString(e.maxH));
- }
- };
- t.setPara = function setPara(e, t, a) {
- if (a.attributes.class && a.attributes.class.includes('xfaRich')) {
- if (t) {
- '' === e.h && (t.height = 'auto');
- '' === e.w && (t.width = 'auto');
- }
- const i = getCurrentPara(e);
- if (i) {
- const e = a.attributes.style;
- e.display = 'flex';
- e.flexDirection = 'column';
- switch (i.vAlign) {
- case 'top':
- e.justifyContent = 'start';
- break;
- case 'bottom':
- e.justifyContent = 'end';
- break;
- case 'middle':
- e.justifyContent = 'center';
- }
- const t = i[r.$toStyle]();
- for (const [a, r] of Object.entries(t)) a in e || (e[a] = r);
- }
- }
- };
- t.toStyle = function toStyle(e, ...t) {
- const a = Object.create(null);
- for (const n of t) {
- const t = e[n];
- if (null !== t)
- if (c.hasOwnProperty(n)) c[n](e, a);
- else if (t instanceof r.XFAObject) {
- const e = t[r.$toStyle]();
- e
- ? Object.assign(a, e)
- : (0, i.warn)(`(DEBUG) - XFA - style for ${n} not implemented yet`);
- }
- }
- return a;
- };
- var r = a(77),
- i = a(2),
- n = a(78),
- s = a(85),
- o = a(86);
- function measureToString(e) {
- return 'string' == typeof e
- ? '0px'
- : Number.isInteger(e)
- ? `${e}px`
- : `${e.toFixed(2)}px`;
- }
- const c = {
- anchorType(e, t) {
- const a = e[r.$getSubformParent]();
- if (a && (!a.layout || 'position' === a.layout)) {
- 'transform' in t || (t.transform = '');
- switch (e.anchorType) {
- case 'bottomCenter':
- t.transform += 'translate(-50%, -100%)';
- break;
- case 'bottomLeft':
- t.transform += 'translate(0,-100%)';
- break;
- case 'bottomRight':
- t.transform += 'translate(-100%,-100%)';
- break;
- case 'middleCenter':
- t.transform += 'translate(-50%,-50%)';
- break;
- case 'middleLeft':
- t.transform += 'translate(0,-50%)';
- break;
- case 'middleRight':
- t.transform += 'translate(-100%,-50%)';
- break;
- case 'topCenter':
- t.transform += 'translate(-50%,0)';
- break;
- case 'topRight':
- t.transform += 'translate(-100%,0)';
- }
- }
- },
- dimensions(e, t) {
- const a = e[r.$getSubformParent]();
- let i = e.w;
- const n = e.h;
- if (a.layout && a.layout.includes('row')) {
- const t = a[r.$extra],
- n = e.colSpan;
- let s;
- if (-1 === n) {
- s = t.columnWidths.slice(t.currentColumn).reduce((e, t) => e + t, 0);
- t.currentColumn = 0;
- } else {
- s = t.columnWidths
- .slice(t.currentColumn, t.currentColumn + n)
- .reduce((e, t) => e + t, 0);
- t.currentColumn = (t.currentColumn + e.colSpan) % t.columnWidths.length;
- }
- isNaN(s) || (i = e.w = s);
- }
- t.width = '' !== i ? measureToString(i) : 'auto';
- t.height = '' !== n ? measureToString(n) : 'auto';
- },
- position(e, t) {
- const a = e[r.$getSubformParent]();
- if (!a || !a.layout || 'position' === a.layout) {
- t.position = 'absolute';
- t.left = measureToString(e.x);
- t.top = measureToString(e.y);
- }
- },
- rotate(e, t) {
- if (e.rotate) {
- 'transform' in t || (t.transform = '');
- t.transform += `rotate(-${e.rotate}deg)`;
- t.transformOrigin = 'top left';
- }
- },
- presence(e, t) {
- switch (e.presence) {
- case 'invisible':
- t.visibility = 'hidden';
- break;
- case 'hidden':
- case 'inactive':
- t.display = 'none';
- }
- },
- hAlign(e, t) {
- if ('para' === e[r.$nodeName])
- switch (e.hAlign) {
- case 'justifyAll':
- t.textAlign = 'justify-all';
- break;
- case 'radix':
- t.textAlign = 'left';
- break;
- default:
- t.textAlign = e.hAlign;
- }
- else
- switch (e.hAlign) {
- case 'left':
- t.alignSelf = 'start';
- break;
- case 'center':
- t.alignSelf = 'center';
- break;
- case 'right':
- t.alignSelf = 'end';
- }
- },
- margin(e, t) {
- e.margin && (t.margin = e.margin[r.$toStyle]().margin);
- },
- };
- function layoutText(e, t, a, i, n, s) {
- const c = new o.TextMeasure(t, a, i, n);
- 'string' == typeof e ? c.addString(e) : e[r.$pushGlyphs](c);
- return c.compute(s);
- }
- function isPrintOnly(e) {
- return (
- e.relevant.length > 0 && !e.relevant[0].excluded && 'print' === e.relevant[0].viewname
- );
- }
- function getCurrentPara(e) {
- const t = e[r.$getTemplateRoot]()[r.$extra].paraStack;
- return t.length ? t.at(-1) : null;
- }
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.FontFinder = void 0;
- t.getMetrics = function getMetrics(e, t = !1) {
- let a = null;
- if (e) {
- const t = (0, i.stripQuotes)(e.typeface),
- n = e[r.$globalData].fontFinder.find(t);
- a = selectFont(e, n);
- }
- if (!a) return { lineHeight: 12, lineGap: 2, lineNoGap: 10 };
- const n = e.size || 10,
- s = a.lineHeight ? Math.max(t ? 0 : 1.2, a.lineHeight) : 1.2,
- o = void 0 === a.lineGap ? 0.2 : a.lineGap;
- return { lineHeight: s * n, lineGap: o * n, lineNoGap: Math.max(1, s - o) * n };
- };
- t.selectFont = selectFont;
- var r = a(77),
- i = a(78),
- n = a(2);
- t.FontFinder = class FontFinder {
- constructor(e) {
- this.fonts = new Map();
- this.cache = new Map();
- this.warned = new Set();
- this.defaultFont = null;
- this.add(e);
- }
- add(e, t = null) {
- for (const t of e) this.addPdfFont(t);
- for (const e of this.fonts.values())
- e.regular || (e.regular = e.italic || e.bold || e.bolditalic);
- if (!t || 0 === t.size) return;
- const a = this.fonts.get('PdfJS-Fallback-PdfJS-XFA');
- for (const e of t) this.fonts.set(e, a);
- }
- addPdfFont(e) {
- const t = e.cssFontInfo,
- a = t.fontFamily;
- let r = this.fonts.get(a);
- if (!r) {
- r = Object.create(null);
- this.fonts.set(a, r);
- this.defaultFont || (this.defaultFont = r);
- }
- let i = '';
- const n = parseFloat(t.fontWeight);
- 0 !== parseFloat(t.italicAngle)
- ? (i = n >= 700 ? 'bolditalic' : 'italic')
- : n >= 700 && (i = 'bold');
- if (!i) {
- (e.name.includes('Bold') || (e.psName && e.psName.includes('Bold'))) &&
- (i = 'bold');
- (e.name.includes('Italic') ||
- e.name.endsWith('It') ||
- (e.psName && (e.psName.includes('Italic') || e.psName.endsWith('It')))) &&
- (i += 'italic');
- }
- i || (i = 'regular');
- r[i] = e;
- }
- getDefault() {
- return this.defaultFont;
- }
- find(e, t = !0) {
- let a = this.fonts.get(e) || this.cache.get(e);
- if (a) return a;
- const r = /,|-|_| |bolditalic|bold|italic|regular|it/gi;
- let i = e.replaceAll(r, '');
- a = this.fonts.get(i);
- if (a) {
- this.cache.set(e, a);
- return a;
- }
- i = i.toLowerCase();
- const s = [];
- for (const [e, t] of this.fonts.entries())
- e.replaceAll(r, '').toLowerCase().startsWith(i) && s.push(t);
- if (0 === s.length)
- for (const [, e] of this.fonts.entries())
- e.regular.name &&
- e.regular.name.replaceAll(r, '').toLowerCase().startsWith(i) &&
- s.push(e);
- if (0 === s.length) {
- i = i.replaceAll(/psmt|mt/gi, '');
- for (const [e, t] of this.fonts.entries())
- e.replaceAll(r, '').toLowerCase().startsWith(i) && s.push(t);
- }
- if (0 === s.length)
- for (const e of this.fonts.values())
- e.regular.name &&
- e.regular.name.replaceAll(r, '').toLowerCase().startsWith(i) &&
- s.push(e);
- if (s.length >= 1) {
- 1 !== s.length &&
- t &&
- (0, n.warn)(`XFA - Too many choices to guess the correct font: ${e}`);
- this.cache.set(e, s[0]);
- return s[0];
- }
- if (t && !this.warned.has(e)) {
- this.warned.add(e);
- (0, n.warn)(`XFA - Cannot find the font: ${e}`);
- }
- return null;
- }
- };
- function selectFont(e, t) {
- return 'italic' === e.posture
- ? 'bold' === e.weight
- ? t.bolditalic
- : t.italic
- : 'bold' === e.weight
- ? t.bold
- : t.regular;
- }
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.TextMeasure = void 0;
- var r = a(85);
- class FontInfo {
- constructor(e, t, a, i) {
- this.lineHeight = a;
- this.paraMargin = t || { top: 0, bottom: 0, left: 0, right: 0 };
- if (!e) {
- [this.pdfFont, this.xfaFont] = this.defaultFont(i);
- return;
- }
- this.xfaFont = {
- typeface: e.typeface,
- posture: e.posture,
- weight: e.weight,
- size: e.size,
- letterSpacing: e.letterSpacing,
- };
- const n = i.find(e.typeface);
- if (n) {
- this.pdfFont = (0, r.selectFont)(e, n);
- this.pdfFont || ([this.pdfFont, this.xfaFont] = this.defaultFont(i));
- } else [this.pdfFont, this.xfaFont] = this.defaultFont(i);
- }
- defaultFont(e) {
- const t =
- e.find('Helvetica', !1) ||
- e.find('Myriad Pro', !1) ||
- e.find('Arial', !1) ||
- e.getDefault();
- if (t && t.regular) {
- const e = t.regular;
- return [
- e,
- {
- typeface: e.cssFontInfo.fontFamily,
- posture: 'normal',
- weight: 'normal',
- size: 10,
- letterSpacing: 0,
- },
- ];
- }
- return [
- null,
- {
- typeface: 'Courier',
- posture: 'normal',
- weight: 'normal',
- size: 10,
- letterSpacing: 0,
- },
- ];
- }
- }
- class FontSelector {
- constructor(e, t, a, r) {
- this.fontFinder = r;
- this.stack = [new FontInfo(e, t, a, r)];
- }
- pushData(e, t, a) {
- const r = this.stack.at(-1);
- for (const t of ['typeface', 'posture', 'weight', 'size', 'letterSpacing'])
- e[t] || (e[t] = r.xfaFont[t]);
- for (const e of ['top', 'bottom', 'left', 'right'])
- isNaN(t[e]) && (t[e] = r.paraMargin[e]);
- const i = new FontInfo(e, t, a || r.lineHeight, this.fontFinder);
- i.pdfFont || (i.pdfFont = r.pdfFont);
- this.stack.push(i);
- }
- popFont() {
- this.stack.pop();
- }
- topFont() {
- return this.stack.at(-1);
- }
- }
- t.TextMeasure = class TextMeasure {
- constructor(e, t, a, r) {
- this.glyphs = [];
- this.fontSelector = new FontSelector(e, t, a, r);
- this.extraHeight = 0;
- }
- pushData(e, t, a) {
- this.fontSelector.pushData(e, t, a);
- }
- popFont(e) {
- return this.fontSelector.popFont();
- }
- addPara() {
- const e = this.fontSelector.topFont();
- this.extraHeight += e.paraMargin.top + e.paraMargin.bottom;
- }
- addString(e) {
- if (!e) return;
- const t = this.fontSelector.topFont(),
- a = t.xfaFont.size;
- if (t.pdfFont) {
- const r = t.xfaFont.letterSpacing,
- i = t.pdfFont,
- n = i.lineHeight || 1.2,
- s = t.lineHeight || Math.max(1.2, n) * a,
- o = n - (void 0 === i.lineGap ? 0.2 : i.lineGap),
- c = Math.max(1, o) * a,
- l = a / 1e3,
- h = i.defaultWidth || i.charsToGlyphs(' ')[0].width;
- for (const t of e.split(/[\u2029\n]/)) {
- const e = i.encodeString(t).join(''),
- a = i.charsToGlyphs(e);
- for (const e of a) {
- const t = e.width || h;
- this.glyphs.push([t * l + r, s, c, e.unicode, !1]);
- }
- this.glyphs.push([0, 0, 0, '\n', !0]);
- }
- this.glyphs.pop();
- } else {
- for (const t of e.split(/[\u2029\n]/)) {
- for (const e of t.split('')) this.glyphs.push([a, 1.2 * a, a, e, !1]);
- this.glyphs.push([0, 0, 0, '\n', !0]);
- }
- this.glyphs.pop();
- }
- }
- compute(e) {
- let t = -1,
- a = 0,
- r = 0,
- i = 0,
- n = 0,
- s = 0,
- o = !1,
- c = !0;
- for (let l = 0, h = this.glyphs.length; l < h; l++) {
- const [h, u, d, f, g] = this.glyphs[l],
- p = ' ' === f,
- m = c ? d : u;
- if (g) {
- r = Math.max(r, n);
- n = 0;
- i += s;
- s = m;
- t = -1;
- a = 0;
- c = !1;
- } else if (p)
- if (n + h > e) {
- r = Math.max(r, n);
- n = 0;
- i += s;
- s = m;
- t = -1;
- a = 0;
- o = !0;
- c = !1;
- } else {
- s = Math.max(m, s);
- a = n;
- n += h;
- t = l;
- }
- else if (n + h > e) {
- i += s;
- s = m;
- if (-1 !== t) {
- l = t;
- r = Math.max(r, a);
- n = 0;
- t = -1;
- a = 0;
- } else {
- r = Math.max(r, n);
- n = h;
- }
- o = !0;
- c = !1;
- } else {
- n += h;
- s = Math.max(m, s);
- }
- }
- r = Math.max(r, n);
- i += s + this.extraHeight;
- return { width: 1.02 * r, height: i, isBroken: o };
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.DataHandler = void 0;
- var r = a(77);
- t.DataHandler = class DataHandler {
- constructor(e, t) {
- this.data = t;
- this.dataset = e.datasets || null;
- }
- serialize(e) {
- const t = [[-1, this.data[r.$getChildren]()]];
- for (; t.length > 0; ) {
- const a = t.at(-1),
- [i, n] = a;
- if (i + 1 === n.length) {
- t.pop();
- continue;
- }
- const s = n[++a[0]],
- o = e.get(s[r.$uid]);
- if (o) s[r.$setValue](o);
- else {
- const t = s[r.$getAttributes]();
- for (const a of t.values()) {
- const t = e.get(a[r.$uid]);
- if (t) {
- a[r.$setValue](t);
- break;
- }
- }
- }
- const c = s[r.$getChildren]();
- c.length > 0 && t.push([-1, c]);
- }
- const a = [''];
- if (this.dataset)
- for (const e of this.dataset[r.$getChildren]())
- 'data' !== e[r.$nodeName] && e[r.$toString](a);
- this.data[r.$toString](a);
- a.push(' ');
- return a.join('');
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.XFAParser = void 0;
- var r = a(77),
- i = a(66),
- n = a(89),
- s = a(2);
- class XFAParser extends i.XMLParserBase {
- constructor(e = null, t = !1) {
- super();
- this._builder = new n.Builder(e);
- this._stack = [];
- this._globalData = { usedTypefaces: new Set() };
- this._ids = new Map();
- this._current = this._builder.buildRoot(this._ids);
- this._errorCode = i.XMLParserErrorCode.NoError;
- this._whiteRegex = /^\s+$/;
- this._nbsps = /\xa0+/g;
- this._richText = t;
- }
- parse(e) {
- this.parseXml(e);
- if (this._errorCode === i.XMLParserErrorCode.NoError) {
- this._current[r.$finalize]();
- return this._current.element;
- }
- }
- onText(e) {
- e = e.replace(this._nbsps, (e) => e.slice(1) + ' ');
- this._richText || this._current[r.$acceptWhitespace]()
- ? this._current[r.$onText](e, this._richText)
- : this._whiteRegex.test(e) || this._current[r.$onText](e.trim());
- }
- onCdata(e) {
- this._current[r.$onText](e);
- }
- _mkAttributes(e, t) {
- let a = null,
- i = null;
- const n = Object.create({});
- for (const { name: o, value: c } of e)
- if ('xmlns' === o)
- a ? (0, s.warn)(`XFA - multiple namespace definition in <${t}>`) : (a = c);
- else if (o.startsWith('xmlns:')) {
- const e = o.substring(6);
- i || (i = []);
- i.push({ prefix: e, value: c });
- } else {
- const e = o.indexOf(':');
- if (-1 === e) n[o] = c;
- else {
- let t = n[r.$nsAttributes];
- t || (t = n[r.$nsAttributes] = Object.create(null));
- const [a, i] = [o.slice(0, e), o.slice(e + 1)];
- (t[a] ||= Object.create(null))[i] = c;
- }
- }
- return [a, i, n];
- }
- _getNameAndPrefix(e, t) {
- const a = e.indexOf(':');
- return -1 === a ? [e, null] : [e.substring(a + 1), t ? '' : e.substring(0, a)];
- }
- onBeginElement(e, t, a) {
- const [i, n, s] = this._mkAttributes(t, e),
- [o, c] = this._getNameAndPrefix(e, this._builder.isNsAgnostic()),
- l = this._builder.build({
- nsPrefix: c,
- name: o,
- attributes: s,
- namespace: i,
- prefixes: n,
- });
- l[r.$globalData] = this._globalData;
- if (a) {
- l[r.$finalize]();
- this._current[r.$onChild](l) && l[r.$setId](this._ids);
- l[r.$clean](this._builder);
- } else {
- this._stack.push(this._current);
- this._current = l;
- }
- }
- onEndElement(e) {
- const t = this._current;
- if (t[r.$isCDATAXml]() && 'string' == typeof t[r.$content]) {
- const e = new XFAParser();
- e._globalData = this._globalData;
- const a = e.parse(t[r.$content]);
- t[r.$content] = null;
- t[r.$onChild](a);
- }
- t[r.$finalize]();
- this._current = this._stack.pop();
- this._current[r.$onChild](t) && t[r.$setId](this._ids);
- t[r.$clean](this._builder);
- }
- onError(e) {
- this._errorCode = e;
- }
- }
- t.XFAParser = XFAParser;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.Builder = void 0;
- var r = a(79),
- i = a(77),
- n = a(90),
- s = a(82),
- o = a(99),
- c = a(2);
- class Root extends i.XFAObject {
- constructor(e) {
- super(-1, 'root', Object.create(null));
- this.element = null;
- this[i.$ids] = e;
- }
- [i.$onChild](e) {
- this.element = e;
- return !0;
- }
- [i.$finalize]() {
- super[i.$finalize]();
- if (this.element.template instanceof s.Template) {
- this[i.$ids].set(i.$root, this.element);
- this.element.template[i.$resolvePrototypes](this[i.$ids]);
- this.element.template[i.$ids] = this[i.$ids];
- }
- }
- }
- class Empty extends i.XFAObject {
- constructor() {
- super(-1, '', Object.create(null));
- }
- [i.$onChild](e) {
- return !1;
- }
- }
- t.Builder = class Builder {
- constructor(e = null) {
- this._namespaceStack = [];
- this._nsAgnosticLevel = 0;
- this._namespacePrefixes = new Map();
- this._namespaces = new Map();
- this._nextNsId = Math.max(...Object.values(r.NamespaceIds).map(({ id: e }) => e));
- this._currentNamespace = e || new o.UnknownNamespace(++this._nextNsId);
- }
- buildRoot(e) {
- return new Root(e);
- }
- build({ nsPrefix: e, name: t, attributes: a, namespace: s, prefixes: o }) {
- const c = null !== s;
- if (c) {
- this._namespaceStack.push(this._currentNamespace);
- this._currentNamespace = this._searchNamespace(s);
- }
- o && this._addNamespacePrefix(o);
- if (a.hasOwnProperty(i.$nsAttributes)) {
- const e = n.NamespaceSetUp.datasets,
- t = a[i.$nsAttributes];
- let r = null;
- for (const [a, i] of Object.entries(t)) {
- if (this._getNamespaceToUse(a) === e) {
- r = { xfa: i };
- break;
- }
- }
- r ? (a[i.$nsAttributes] = r) : delete a[i.$nsAttributes];
- }
- const l = this._getNamespaceToUse(e),
- h = (l && l[r.$buildXFAObject](t, a)) || new Empty();
- h[i.$isNsAgnostic]() && this._nsAgnosticLevel++;
- (c || o || h[i.$isNsAgnostic]()) &&
- (h[i.$cleanup] = {
- hasNamespace: c,
- prefixes: o,
- nsAgnostic: h[i.$isNsAgnostic](),
- });
- return h;
- }
- isNsAgnostic() {
- return this._nsAgnosticLevel > 0;
- }
- _searchNamespace(e) {
- let t = this._namespaces.get(e);
- if (t) return t;
- for (const [a, { check: i }] of Object.entries(r.NamespaceIds))
- if (i(e)) {
- t = n.NamespaceSetUp[a];
- if (t) {
- this._namespaces.set(e, t);
- return t;
- }
- break;
- }
- t = new o.UnknownNamespace(++this._nextNsId);
- this._namespaces.set(e, t);
- return t;
- }
- _addNamespacePrefix(e) {
- for (const { prefix: t, value: a } of e) {
- const e = this._searchNamespace(a);
- let r = this._namespacePrefixes.get(t);
- if (!r) {
- r = [];
- this._namespacePrefixes.set(t, r);
- }
- r.push(e);
- }
- }
- _getNamespaceToUse(e) {
- if (!e) return this._currentNamespace;
- const t = this._namespacePrefixes.get(e);
- if (t && t.length > 0) return t.at(-1);
- (0, c.warn)(`Unknown namespace prefix: ${e}.`);
- return null;
- }
- clean(e) {
- const { hasNamespace: t, prefixes: a, nsAgnostic: r } = e;
- t && (this._currentNamespace = this._namespaceStack.pop());
- a &&
- a.forEach(({ prefix: e }) => {
- this._namespacePrefixes.get(e).pop();
- });
- r && this._nsAgnosticLevel--;
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.NamespaceSetUp = void 0;
- var r = a(91),
- i = a(92),
- n = a(93),
- s = a(94),
- o = a(95),
- c = a(96),
- l = a(82),
- h = a(97),
- u = a(98);
- const d = {
- config: r.ConfigNamespace,
- connection: i.ConnectionSetNamespace,
- datasets: n.DatasetsNamespace,
- localeSet: s.LocaleSetNamespace,
- signature: o.SignatureNamespace,
- stylesheet: c.StylesheetNamespace,
- template: l.TemplateNamespace,
- xdp: h.XdpNamespace,
- xhtml: u.XhtmlNamespace,
- };
- t.NamespaceSetUp = d;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.ConfigNamespace = void 0;
- var r = a(79),
- i = a(77),
- n = a(78),
- s = a(2);
- const o = r.NamespaceIds.config.id;
- class Acrobat extends i.XFAObject {
- constructor(e) {
- super(o, 'acrobat', !0);
- this.acrobat7 = null;
- this.autoSave = null;
- this.common = null;
- this.validate = null;
- this.validateApprovalSignatures = null;
- this.submitUrl = new i.XFAObjectArray();
- }
- }
- class Acrobat7 extends i.XFAObject {
- constructor(e) {
- super(o, 'acrobat7', !0);
- this.dynamicRender = null;
- }
- }
- class ADBE_JSConsole extends i.OptionObject {
- constructor(e) {
- super(o, 'ADBE_JSConsole', ['delegate', 'Enable', 'Disable']);
- }
- }
- class ADBE_JSDebugger extends i.OptionObject {
- constructor(e) {
- super(o, 'ADBE_JSDebugger', ['delegate', 'Enable', 'Disable']);
- }
- }
- class AddSilentPrint extends i.Option01 {
- constructor(e) {
- super(o, 'addSilentPrint');
- }
- }
- class AddViewerPreferences extends i.Option01 {
- constructor(e) {
- super(o, 'addViewerPreferences');
- }
- }
- class AdjustData extends i.Option10 {
- constructor(e) {
- super(o, 'adjustData');
- }
- }
- class AdobeExtensionLevel extends i.IntegerObject {
- constructor(e) {
- super(o, 'adobeExtensionLevel', 0, (e) => e >= 1 && e <= 8);
- }
- }
- class Agent extends i.XFAObject {
- constructor(e) {
- super(o, 'agent', !0);
- this.name = e.name ? e.name.trim() : '';
- this.common = new i.XFAObjectArray();
- }
- }
- class AlwaysEmbed extends i.ContentObject {
- constructor(e) {
- super(o, 'alwaysEmbed');
- }
- }
- class Amd extends i.StringObject {
- constructor(e) {
- super(o, 'amd');
- }
- }
- class Area extends i.XFAObject {
- constructor(e) {
- super(o, 'area');
- this.level = (0, n.getInteger)({
- data: e.level,
- defaultValue: 0,
- validate: (e) => e >= 1 && e <= 3,
- });
- this.name = (0, n.getStringOption)(e.name, [
- '',
- 'barcode',
- 'coreinit',
- 'deviceDriver',
- 'font',
- 'general',
- 'layout',
- 'merge',
- 'script',
- 'signature',
- 'sourceSet',
- 'templateCache',
- ]);
- }
- }
- class Attributes extends i.OptionObject {
- constructor(e) {
- super(o, 'attributes', ['preserve', 'delegate', 'ignore']);
- }
- }
- class AutoSave extends i.OptionObject {
- constructor(e) {
- super(o, 'autoSave', ['disabled', 'enabled']);
- }
- }
- class Base extends i.StringObject {
- constructor(e) {
- super(o, 'base');
- }
- }
- class BatchOutput extends i.XFAObject {
- constructor(e) {
- super(o, 'batchOutput');
- this.format = (0, n.getStringOption)(e.format, [
- 'none',
- 'concat',
- 'zip',
- 'zipCompress',
- ]);
- }
- }
- class BehaviorOverride extends i.ContentObject {
- constructor(e) {
- super(o, 'behaviorOverride');
- }
- [i.$finalize]() {
- this[i.$content] = new Map(
- this[i.$content]
- .trim()
- .split(/\s+/)
- .filter((e) => e.includes(':'))
- .map((e) => e.split(':', 2)),
- );
- }
- }
- class Cache extends i.XFAObject {
- constructor(e) {
- super(o, 'cache', !0);
- this.templateCache = null;
- }
- }
- class Change extends i.Option01 {
- constructor(e) {
- super(o, 'change');
- }
- }
- class Common extends i.XFAObject {
- constructor(e) {
- super(o, 'common', !0);
- this.data = null;
- this.locale = null;
- this.localeSet = null;
- this.messaging = null;
- this.suppressBanner = null;
- this.template = null;
- this.validationMessaging = null;
- this.versionControl = null;
- this.log = new i.XFAObjectArray();
- }
- }
- class Compress extends i.XFAObject {
- constructor(e) {
- super(o, 'compress');
- this.scope = (0, n.getStringOption)(e.scope, ['imageOnly', 'document']);
- }
- }
- class CompressLogicalStructure extends i.Option01 {
- constructor(e) {
- super(o, 'compressLogicalStructure');
- }
- }
- class CompressObjectStream extends i.Option10 {
- constructor(e) {
- super(o, 'compressObjectStream');
- }
- }
- class Compression extends i.XFAObject {
- constructor(e) {
- super(o, 'compression', !0);
- this.compressLogicalStructure = null;
- this.compressObjectStream = null;
- this.level = null;
- this.type = null;
- }
- }
- class Config extends i.XFAObject {
- constructor(e) {
- super(o, 'config', !0);
- this.acrobat = null;
- this.present = null;
- this.trace = null;
- this.agent = new i.XFAObjectArray();
- }
- }
- class Conformance extends i.OptionObject {
- constructor(e) {
- super(o, 'conformance', ['A', 'B']);
- }
- }
- class ContentCopy extends i.Option01 {
- constructor(e) {
- super(o, 'contentCopy');
- }
- }
- class Copies extends i.IntegerObject {
- constructor(e) {
- super(o, 'copies', 1, (e) => e >= 1);
- }
- }
- class Creator extends i.StringObject {
- constructor(e) {
- super(o, 'creator');
- }
- }
- class CurrentPage extends i.IntegerObject {
- constructor(e) {
- super(o, 'currentPage', 0, (e) => e >= 0);
- }
- }
- class Data extends i.XFAObject {
- constructor(e) {
- super(o, 'data', !0);
- this.adjustData = null;
- this.attributes = null;
- this.incrementalLoad = null;
- this.outputXSL = null;
- this.range = null;
- this.record = null;
- this.startNode = null;
- this.uri = null;
- this.window = null;
- this.xsl = null;
- this.excludeNS = new i.XFAObjectArray();
- this.transform = new i.XFAObjectArray();
- }
- }
- class Debug extends i.XFAObject {
- constructor(e) {
- super(o, 'debug', !0);
- this.uri = null;
- }
- }
- class DefaultTypeface extends i.ContentObject {
- constructor(e) {
- super(o, 'defaultTypeface');
- this.writingScript = (0, n.getStringOption)(e.writingScript, [
- '*',
- 'Arabic',
- 'Cyrillic',
- 'EastEuropeanRoman',
- 'Greek',
- 'Hebrew',
- 'Japanese',
- 'Korean',
- 'Roman',
- 'SimplifiedChinese',
- 'Thai',
- 'TraditionalChinese',
- 'Vietnamese',
- ]);
- }
- }
- class Destination extends i.OptionObject {
- constructor(e) {
- super(o, 'destination', ['pdf', 'pcl', 'ps', 'webClient', 'zpl']);
- }
- }
- class DocumentAssembly extends i.Option01 {
- constructor(e) {
- super(o, 'documentAssembly');
- }
- }
- class Driver extends i.XFAObject {
- constructor(e) {
- super(o, 'driver', !0);
- this.name = e.name ? e.name.trim() : '';
- this.fontInfo = null;
- this.xdc = null;
- }
- }
- class DuplexOption extends i.OptionObject {
- constructor(e) {
- super(o, 'duplexOption', ['simplex', 'duplexFlipLongEdge', 'duplexFlipShortEdge']);
- }
- }
- class DynamicRender extends i.OptionObject {
- constructor(e) {
- super(o, 'dynamicRender', ['forbidden', 'required']);
- }
- }
- class Embed extends i.Option01 {
- constructor(e) {
- super(o, 'embed');
- }
- }
- class Encrypt extends i.Option01 {
- constructor(e) {
- super(o, 'encrypt');
- }
- }
- class Encryption extends i.XFAObject {
- constructor(e) {
- super(o, 'encryption', !0);
- this.encrypt = null;
- this.encryptionLevel = null;
- this.permissions = null;
- }
- }
- class EncryptionLevel extends i.OptionObject {
- constructor(e) {
- super(o, 'encryptionLevel', ['40bit', '128bit']);
- }
- }
- class Enforce extends i.StringObject {
- constructor(e) {
- super(o, 'enforce');
- }
- }
- class Equate extends i.XFAObject {
- constructor(e) {
- super(o, 'equate');
- this.force = (0, n.getInteger)({
- data: e.force,
- defaultValue: 1,
- validate: (e) => 0 === e,
- });
- this.from = e.from || '';
- this.to = e.to || '';
- }
- }
- class EquateRange extends i.XFAObject {
- constructor(e) {
- super(o, 'equateRange');
- this.from = e.from || '';
- this.to = e.to || '';
- this._unicodeRange = e.unicodeRange || '';
- }
- get unicodeRange() {
- const e = [],
- t = /U\+([0-9a-fA-F]+)/,
- a = this._unicodeRange;
- for (let r of a
- .split(',')
- .map((e) => e.trim())
- .filter((e) => !!e)) {
- r = r.split('-', 2).map((e) => {
- const a = e.match(t);
- return a ? parseInt(a[1], 16) : 0;
- });
- 1 === r.length && r.push(r[0]);
- e.push(r);
- }
- return (0, s.shadow)(this, 'unicodeRange', e);
- }
- }
- class Exclude extends i.ContentObject {
- constructor(e) {
- super(o, 'exclude');
- }
- [i.$finalize]() {
- this[i.$content] = this[i.$content]
- .trim()
- .split(/\s+/)
- .filter(
- (e) =>
- e &&
- [
- 'calculate',
- 'close',
- 'enter',
- 'exit',
- 'initialize',
- 'ready',
- 'validate',
- ].includes(e),
- );
- }
- }
- class ExcludeNS extends i.StringObject {
- constructor(e) {
- super(o, 'excludeNS');
- }
- }
- class FlipLabel extends i.OptionObject {
- constructor(e) {
- super(o, 'flipLabel', ['usePrinterSetting', 'on', 'off']);
- }
- }
- class FontInfo extends i.XFAObject {
- constructor(e) {
- super(o, 'fontInfo', !0);
- this.embed = null;
- this.map = null;
- this.subsetBelow = null;
- this.alwaysEmbed = new i.XFAObjectArray();
- this.defaultTypeface = new i.XFAObjectArray();
- this.neverEmbed = new i.XFAObjectArray();
- }
- }
- class FormFieldFilling extends i.Option01 {
- constructor(e) {
- super(o, 'formFieldFilling');
- }
- }
- class GroupParent extends i.StringObject {
- constructor(e) {
- super(o, 'groupParent');
- }
- }
- class IfEmpty extends i.OptionObject {
- constructor(e) {
- super(o, 'ifEmpty', ['dataValue', 'dataGroup', 'ignore', 'remove']);
- }
- }
- class IncludeXDPContent extends i.StringObject {
- constructor(e) {
- super(o, 'includeXDPContent');
- }
- }
- class IncrementalLoad extends i.OptionObject {
- constructor(e) {
- super(o, 'incrementalLoad', ['none', 'forwardOnly']);
- }
- }
- class IncrementalMerge extends i.Option01 {
- constructor(e) {
- super(o, 'incrementalMerge');
- }
- }
- class Interactive extends i.Option01 {
- constructor(e) {
- super(o, 'interactive');
- }
- }
- class Jog extends i.OptionObject {
- constructor(e) {
- super(o, 'jog', ['usePrinterSetting', 'none', 'pageSet']);
- }
- }
- class LabelPrinter extends i.XFAObject {
- constructor(e) {
- super(o, 'labelPrinter', !0);
- this.name = (0, n.getStringOption)(e.name, ['zpl', 'dpl', 'ipl', 'tcpl']);
- this.batchOutput = null;
- this.flipLabel = null;
- this.fontInfo = null;
- this.xdc = null;
- }
- }
- class Layout extends i.OptionObject {
- constructor(e) {
- super(o, 'layout', ['paginate', 'panel']);
- }
- }
- class Level extends i.IntegerObject {
- constructor(e) {
- super(o, 'level', 0, (e) => e > 0);
- }
- }
- class Linearized extends i.Option01 {
- constructor(e) {
- super(o, 'linearized');
- }
- }
- class Locale extends i.StringObject {
- constructor(e) {
- super(o, 'locale');
- }
- }
- class LocaleSet extends i.StringObject {
- constructor(e) {
- super(o, 'localeSet');
- }
- }
- class Log extends i.XFAObject {
- constructor(e) {
- super(o, 'log', !0);
- this.mode = null;
- this.threshold = null;
- this.to = null;
- this.uri = null;
- }
- }
- class MapElement extends i.XFAObject {
- constructor(e) {
- super(o, 'map', !0);
- this.equate = new i.XFAObjectArray();
- this.equateRange = new i.XFAObjectArray();
- }
- }
- class MediumInfo extends i.XFAObject {
- constructor(e) {
- super(o, 'mediumInfo', !0);
- this.map = null;
- }
- }
- class Message extends i.XFAObject {
- constructor(e) {
- super(o, 'message', !0);
- this.msgId = null;
- this.severity = null;
- }
- }
- class Messaging extends i.XFAObject {
- constructor(e) {
- super(o, 'messaging', !0);
- this.message = new i.XFAObjectArray();
- }
- }
- class Mode extends i.OptionObject {
- constructor(e) {
- super(o, 'mode', ['append', 'overwrite']);
- }
- }
- class ModifyAnnots extends i.Option01 {
- constructor(e) {
- super(o, 'modifyAnnots');
- }
- }
- class MsgId extends i.IntegerObject {
- constructor(e) {
- super(o, 'msgId', 1, (e) => e >= 1);
- }
- }
- class NameAttr extends i.StringObject {
- constructor(e) {
- super(o, 'nameAttr');
- }
- }
- class NeverEmbed extends i.ContentObject {
- constructor(e) {
- super(o, 'neverEmbed');
- }
- }
- class NumberOfCopies extends i.IntegerObject {
- constructor(e) {
- super(o, 'numberOfCopies', null, (e) => e >= 2 && e <= 5);
- }
- }
- class OpenAction extends i.XFAObject {
- constructor(e) {
- super(o, 'openAction', !0);
- this.destination = null;
- }
- }
- class Output extends i.XFAObject {
- constructor(e) {
- super(o, 'output', !0);
- this.to = null;
- this.type = null;
- this.uri = null;
- }
- }
- class OutputBin extends i.StringObject {
- constructor(e) {
- super(o, 'outputBin');
- }
- }
- class OutputXSL extends i.XFAObject {
- constructor(e) {
- super(o, 'outputXSL', !0);
- this.uri = null;
- }
- }
- class Overprint extends i.OptionObject {
- constructor(e) {
- super(o, 'overprint', ['none', 'both', 'draw', 'field']);
- }
- }
- class Packets extends i.StringObject {
- constructor(e) {
- super(o, 'packets');
- }
- [i.$finalize]() {
- '*' !== this[i.$content] &&
- (this[i.$content] = this[i.$content]
- .trim()
- .split(/\s+/)
- .filter((e) => ['config', 'datasets', 'template', 'xfdf', 'xslt'].includes(e)));
- }
- }
- class PageOffset extends i.XFAObject {
- constructor(e) {
- super(o, 'pageOffset');
- this.x = (0, n.getInteger)({
- data: e.x,
- defaultValue: 'useXDCSetting',
- validate: (e) => !0,
- });
- this.y = (0, n.getInteger)({
- data: e.y,
- defaultValue: 'useXDCSetting',
- validate: (e) => !0,
- });
- }
- }
- class PageRange extends i.StringObject {
- constructor(e) {
- super(o, 'pageRange');
- }
- [i.$finalize]() {
- const e = this[i.$content]
- .trim()
- .split(/\s+/)
- .map((e) => parseInt(e, 10)),
- t = [];
- for (let a = 0, r = e.length; a < r; a += 2) t.push(e.slice(a, a + 2));
- this[i.$content] = t;
- }
- }
- class Pagination extends i.OptionObject {
- constructor(e) {
- super(o, 'pagination', ['simplex', 'duplexShortEdge', 'duplexLongEdge']);
- }
- }
- class PaginationOverride extends i.OptionObject {
- constructor(e) {
- super(o, 'paginationOverride', [
- 'none',
- 'forceDuplex',
- 'forceDuplexLongEdge',
- 'forceDuplexShortEdge',
- 'forceSimplex',
- ]);
- }
- }
- class Part extends i.IntegerObject {
- constructor(e) {
- super(o, 'part', 1, (e) => !1);
- }
- }
- class Pcl extends i.XFAObject {
- constructor(e) {
- super(o, 'pcl', !0);
- this.name = e.name || '';
- this.batchOutput = null;
- this.fontInfo = null;
- this.jog = null;
- this.mediumInfo = null;
- this.outputBin = null;
- this.pageOffset = null;
- this.staple = null;
- this.xdc = null;
- }
- }
- class Pdf extends i.XFAObject {
- constructor(e) {
- super(o, 'pdf', !0);
- this.name = e.name || '';
- this.adobeExtensionLevel = null;
- this.batchOutput = null;
- this.compression = null;
- this.creator = null;
- this.encryption = null;
- this.fontInfo = null;
- this.interactive = null;
- this.linearized = null;
- this.openAction = null;
- this.pdfa = null;
- this.producer = null;
- this.renderPolicy = null;
- this.scriptModel = null;
- this.silentPrint = null;
- this.submitFormat = null;
- this.tagged = null;
- this.version = null;
- this.viewerPreferences = null;
- this.xdc = null;
- }
- }
- class Pdfa extends i.XFAObject {
- constructor(e) {
- super(o, 'pdfa', !0);
- this.amd = null;
- this.conformance = null;
- this.includeXDPContent = null;
- this.part = null;
- }
- }
- class Permissions extends i.XFAObject {
- constructor(e) {
- super(o, 'permissions', !0);
- this.accessibleContent = null;
- this.change = null;
- this.contentCopy = null;
- this.documentAssembly = null;
- this.formFieldFilling = null;
- this.modifyAnnots = null;
- this.plaintextMetadata = null;
- this.print = null;
- this.printHighQuality = null;
- }
- }
- class PickTrayByPDFSize extends i.Option01 {
- constructor(e) {
- super(o, 'pickTrayByPDFSize');
- }
- }
- class Picture extends i.StringObject {
- constructor(e) {
- super(o, 'picture');
- }
- }
- class PlaintextMetadata extends i.Option01 {
- constructor(e) {
- super(o, 'plaintextMetadata');
- }
- }
- class Presence extends i.OptionObject {
- constructor(e) {
- super(o, 'presence', [
- 'preserve',
- 'dissolve',
- 'dissolveStructure',
- 'ignore',
- 'remove',
- ]);
- }
- }
- class Present extends i.XFAObject {
- constructor(e) {
- super(o, 'present', !0);
- this.behaviorOverride = null;
- this.cache = null;
- this.common = null;
- this.copies = null;
- this.destination = null;
- this.incrementalMerge = null;
- this.layout = null;
- this.output = null;
- this.overprint = null;
- this.pagination = null;
- this.paginationOverride = null;
- this.script = null;
- this.validate = null;
- this.xdp = null;
- this.driver = new i.XFAObjectArray();
- this.labelPrinter = new i.XFAObjectArray();
- this.pcl = new i.XFAObjectArray();
- this.pdf = new i.XFAObjectArray();
- this.ps = new i.XFAObjectArray();
- this.submitUrl = new i.XFAObjectArray();
- this.webClient = new i.XFAObjectArray();
- this.zpl = new i.XFAObjectArray();
- }
- }
- class Print extends i.Option01 {
- constructor(e) {
- super(o, 'print');
- }
- }
- class PrintHighQuality extends i.Option01 {
- constructor(e) {
- super(o, 'printHighQuality');
- }
- }
- class PrintScaling extends i.OptionObject {
- constructor(e) {
- super(o, 'printScaling', ['appdefault', 'noScaling']);
- }
- }
- class PrinterName extends i.StringObject {
- constructor(e) {
- super(o, 'printerName');
- }
- }
- class Producer extends i.StringObject {
- constructor(e) {
- super(o, 'producer');
- }
- }
- class Ps extends i.XFAObject {
- constructor(e) {
- super(o, 'ps', !0);
- this.name = e.name || '';
- this.batchOutput = null;
- this.fontInfo = null;
- this.jog = null;
- this.mediumInfo = null;
- this.outputBin = null;
- this.staple = null;
- this.xdc = null;
- }
- }
- class Range extends i.ContentObject {
- constructor(e) {
- super(o, 'range');
- }
- [i.$finalize]() {
- this[i.$content] = this[i.$content]
- .trim()
- .split(/\s*,\s*/, 2)
- .map((e) => e.split('-').map((e) => parseInt(e.trim(), 10)))
- .filter((e) => e.every((e) => !isNaN(e)))
- .map((e) => {
- 1 === e.length && e.push(e[0]);
- return e;
- });
- }
- }
- class Record extends i.ContentObject {
- constructor(e) {
- super(o, 'record');
- }
- [i.$finalize]() {
- this[i.$content] = this[i.$content].trim();
- const e = parseInt(this[i.$content], 10);
- !isNaN(e) && e >= 0 && (this[i.$content] = e);
- }
- }
- class Relevant extends i.ContentObject {
- constructor(e) {
- super(o, 'relevant');
- }
- [i.$finalize]() {
- this[i.$content] = this[i.$content].trim().split(/\s+/);
- }
- }
- class Rename extends i.ContentObject {
- constructor(e) {
- super(o, 'rename');
- }
- [i.$finalize]() {
- this[i.$content] = this[i.$content].trim();
- (this[i.$content].toLowerCase().startsWith('xml') ||
- new RegExp('[\\p{L}_][\\p{L}\\d._\\p{M}-]*', 'u').test(this[i.$content])) &&
- (0, s.warn)('XFA - Rename: invalid XFA name');
- }
- }
- class RenderPolicy extends i.OptionObject {
- constructor(e) {
- super(o, 'renderPolicy', ['server', 'client']);
- }
- }
- class RunScripts extends i.OptionObject {
- constructor(e) {
- super(o, 'runScripts', ['both', 'client', 'none', 'server']);
- }
- }
- class Script extends i.XFAObject {
- constructor(e) {
- super(o, 'script', !0);
- this.currentPage = null;
- this.exclude = null;
- this.runScripts = null;
- }
- }
- class ScriptModel extends i.OptionObject {
- constructor(e) {
- super(o, 'scriptModel', ['XFA', 'none']);
- }
- }
- class Severity extends i.OptionObject {
- constructor(e) {
- super(o, 'severity', ['ignore', 'error', 'information', 'trace', 'warning']);
- }
- }
- class SilentPrint extends i.XFAObject {
- constructor(e) {
- super(o, 'silentPrint', !0);
- this.addSilentPrint = null;
- this.printerName = null;
- }
- }
- class Staple extends i.XFAObject {
- constructor(e) {
- super(o, 'staple');
- this.mode = (0, n.getStringOption)(e.mode, ['usePrinterSetting', 'on', 'off']);
- }
- }
- class StartNode extends i.StringObject {
- constructor(e) {
- super(o, 'startNode');
- }
- }
- class StartPage extends i.IntegerObject {
- constructor(e) {
- super(o, 'startPage', 0, (e) => !0);
- }
- }
- class SubmitFormat extends i.OptionObject {
- constructor(e) {
- super(o, 'submitFormat', ['html', 'delegate', 'fdf', 'xml', 'pdf']);
- }
- }
- class SubmitUrl extends i.StringObject {
- constructor(e) {
- super(o, 'submitUrl');
- }
- }
- class SubsetBelow extends i.IntegerObject {
- constructor(e) {
- super(o, 'subsetBelow', 100, (e) => e >= 0 && e <= 100);
- }
- }
- class SuppressBanner extends i.Option01 {
- constructor(e) {
- super(o, 'suppressBanner');
- }
- }
- class Tagged extends i.Option01 {
- constructor(e) {
- super(o, 'tagged');
- }
- }
- class Template extends i.XFAObject {
- constructor(e) {
- super(o, 'template', !0);
- this.base = null;
- this.relevant = null;
- this.startPage = null;
- this.uri = null;
- this.xsl = null;
- }
- }
- class Threshold extends i.OptionObject {
- constructor(e) {
- super(o, 'threshold', ['trace', 'error', 'information', 'warning']);
- }
- }
- class To extends i.OptionObject {
- constructor(e) {
- super(o, 'to', ['null', 'memory', 'stderr', 'stdout', 'system', 'uri']);
- }
- }
- class TemplateCache extends i.XFAObject {
- constructor(e) {
- super(o, 'templateCache');
- this.maxEntries = (0, n.getInteger)({
- data: e.maxEntries,
- defaultValue: 5,
- validate: (e) => e >= 0,
- });
- }
- }
- class Trace extends i.XFAObject {
- constructor(e) {
- super(o, 'trace', !0);
- this.area = new i.XFAObjectArray();
- }
- }
- class Transform extends i.XFAObject {
- constructor(e) {
- super(o, 'transform', !0);
- this.groupParent = null;
- this.ifEmpty = null;
- this.nameAttr = null;
- this.picture = null;
- this.presence = null;
- this.rename = null;
- this.whitespace = null;
- }
- }
- class Type extends i.OptionObject {
- constructor(e) {
- super(o, 'type', [
- 'none',
- 'ascii85',
- 'asciiHex',
- 'ccittfax',
- 'flate',
- 'lzw',
- 'runLength',
- 'native',
- 'xdp',
- 'mergedXDP',
- ]);
- }
- }
- class Uri extends i.StringObject {
- constructor(e) {
- super(o, 'uri');
- }
- }
- class Validate extends i.OptionObject {
- constructor(e) {
- super(o, 'validate', ['preSubmit', 'prePrint', 'preExecute', 'preSave']);
- }
- }
- class ValidateApprovalSignatures extends i.ContentObject {
- constructor(e) {
- super(o, 'validateApprovalSignatures');
- }
- [i.$finalize]() {
- this[i.$content] = this[i.$content]
- .trim()
- .split(/\s+/)
- .filter((e) => ['docReady', 'postSign'].includes(e));
- }
- }
- class ValidationMessaging extends i.OptionObject {
- constructor(e) {
- super(o, 'validationMessaging', [
- 'allMessagesIndividually',
- 'allMessagesTogether',
- 'firstMessageOnly',
- 'noMessages',
- ]);
- }
- }
- class Version extends i.OptionObject {
- constructor(e) {
- super(o, 'version', ['1.7', '1.6', '1.5', '1.4', '1.3', '1.2']);
- }
- }
- class VersionControl extends i.XFAObject {
- constructor(e) {
- super(o, 'VersionControl');
- this.outputBelow = (0, n.getStringOption)(e.outputBelow, ['warn', 'error', 'update']);
- this.sourceAbove = (0, n.getStringOption)(e.sourceAbove, ['warn', 'error']);
- this.sourceBelow = (0, n.getStringOption)(e.sourceBelow, ['update', 'maintain']);
- }
- }
- class ViewerPreferences extends i.XFAObject {
- constructor(e) {
- super(o, 'viewerPreferences', !0);
- this.ADBE_JSConsole = null;
- this.ADBE_JSDebugger = null;
- this.addViewerPreferences = null;
- this.duplexOption = null;
- this.enforce = null;
- this.numberOfCopies = null;
- this.pageRange = null;
- this.pickTrayByPDFSize = null;
- this.printScaling = null;
- }
- }
- class WebClient extends i.XFAObject {
- constructor(e) {
- super(o, 'webClient', !0);
- this.name = e.name ? e.name.trim() : '';
- this.fontInfo = null;
- this.xdc = null;
- }
- }
- class Whitespace extends i.OptionObject {
- constructor(e) {
- super(o, 'whitespace', ['preserve', 'ltrim', 'normalize', 'rtrim', 'trim']);
- }
- }
- class Window extends i.ContentObject {
- constructor(e) {
- super(o, 'window');
- }
- [i.$finalize]() {
- const e = this[i.$content]
- .trim()
- .split(/\s*,\s*/, 2)
- .map((e) => parseInt(e, 10));
- if (e.some((e) => isNaN(e))) this[i.$content] = [0, 0];
- else {
- 1 === e.length && e.push(e[0]);
- this[i.$content] = e;
- }
- }
- }
- class Xdc extends i.XFAObject {
- constructor(e) {
- super(o, 'xdc', !0);
- this.uri = new i.XFAObjectArray();
- this.xsl = new i.XFAObjectArray();
- }
- }
- class Xdp extends i.XFAObject {
- constructor(e) {
- super(o, 'xdp', !0);
- this.packets = null;
- }
- }
- class Xsl extends i.XFAObject {
- constructor(e) {
- super(o, 'xsl', !0);
- this.debug = null;
- this.uri = null;
- }
- }
- class Zpl extends i.XFAObject {
- constructor(e) {
- super(o, 'zpl', !0);
- this.name = e.name ? e.name.trim() : '';
- this.batchOutput = null;
- this.flipLabel = null;
- this.fontInfo = null;
- this.xdc = null;
- }
- }
- class ConfigNamespace {
- static [r.$buildXFAObject](e, t) {
- if (ConfigNamespace.hasOwnProperty(e)) return ConfigNamespace[e](t);
- }
- static acrobat(e) {
- return new Acrobat(e);
- }
- static acrobat7(e) {
- return new Acrobat7(e);
- }
- static ADBE_JSConsole(e) {
- return new ADBE_JSConsole(e);
- }
- static ADBE_JSDebugger(e) {
- return new ADBE_JSDebugger(e);
- }
- static addSilentPrint(e) {
- return new AddSilentPrint(e);
- }
- static addViewerPreferences(e) {
- return new AddViewerPreferences(e);
- }
- static adjustData(e) {
- return new AdjustData(e);
- }
- static adobeExtensionLevel(e) {
- return new AdobeExtensionLevel(e);
- }
- static agent(e) {
- return new Agent(e);
- }
- static alwaysEmbed(e) {
- return new AlwaysEmbed(e);
- }
- static amd(e) {
- return new Amd(e);
- }
- static area(e) {
- return new Area(e);
- }
- static attributes(e) {
- return new Attributes(e);
- }
- static autoSave(e) {
- return new AutoSave(e);
- }
- static base(e) {
- return new Base(e);
- }
- static batchOutput(e) {
- return new BatchOutput(e);
- }
- static behaviorOverride(e) {
- return new BehaviorOverride(e);
- }
- static cache(e) {
- return new Cache(e);
- }
- static change(e) {
- return new Change(e);
- }
- static common(e) {
- return new Common(e);
- }
- static compress(e) {
- return new Compress(e);
- }
- static compressLogicalStructure(e) {
- return new CompressLogicalStructure(e);
- }
- static compressObjectStream(e) {
- return new CompressObjectStream(e);
- }
- static compression(e) {
- return new Compression(e);
- }
- static config(e) {
- return new Config(e);
- }
- static conformance(e) {
- return new Conformance(e);
- }
- static contentCopy(e) {
- return new ContentCopy(e);
- }
- static copies(e) {
- return new Copies(e);
- }
- static creator(e) {
- return new Creator(e);
- }
- static currentPage(e) {
- return new CurrentPage(e);
- }
- static data(e) {
- return new Data(e);
- }
- static debug(e) {
- return new Debug(e);
- }
- static defaultTypeface(e) {
- return new DefaultTypeface(e);
- }
- static destination(e) {
- return new Destination(e);
- }
- static documentAssembly(e) {
- return new DocumentAssembly(e);
- }
- static driver(e) {
- return new Driver(e);
- }
- static duplexOption(e) {
- return new DuplexOption(e);
- }
- static dynamicRender(e) {
- return new DynamicRender(e);
- }
- static embed(e) {
- return new Embed(e);
- }
- static encrypt(e) {
- return new Encrypt(e);
- }
- static encryption(e) {
- return new Encryption(e);
- }
- static encryptionLevel(e) {
- return new EncryptionLevel(e);
- }
- static enforce(e) {
- return new Enforce(e);
- }
- static equate(e) {
- return new Equate(e);
- }
- static equateRange(e) {
- return new EquateRange(e);
- }
- static exclude(e) {
- return new Exclude(e);
- }
- static excludeNS(e) {
- return new ExcludeNS(e);
- }
- static flipLabel(e) {
- return new FlipLabel(e);
- }
- static fontInfo(e) {
- return new FontInfo(e);
- }
- static formFieldFilling(e) {
- return new FormFieldFilling(e);
- }
- static groupParent(e) {
- return new GroupParent(e);
- }
- static ifEmpty(e) {
- return new IfEmpty(e);
- }
- static includeXDPContent(e) {
- return new IncludeXDPContent(e);
- }
- static incrementalLoad(e) {
- return new IncrementalLoad(e);
- }
- static incrementalMerge(e) {
- return new IncrementalMerge(e);
- }
- static interactive(e) {
- return new Interactive(e);
- }
- static jog(e) {
- return new Jog(e);
- }
- static labelPrinter(e) {
- return new LabelPrinter(e);
- }
- static layout(e) {
- return new Layout(e);
- }
- static level(e) {
- return new Level(e);
- }
- static linearized(e) {
- return new Linearized(e);
- }
- static locale(e) {
- return new Locale(e);
- }
- static localeSet(e) {
- return new LocaleSet(e);
- }
- static log(e) {
- return new Log(e);
- }
- static map(e) {
- return new MapElement(e);
- }
- static mediumInfo(e) {
- return new MediumInfo(e);
- }
- static message(e) {
- return new Message(e);
- }
- static messaging(e) {
- return new Messaging(e);
- }
- static mode(e) {
- return new Mode(e);
- }
- static modifyAnnots(e) {
- return new ModifyAnnots(e);
- }
- static msgId(e) {
- return new MsgId(e);
- }
- static nameAttr(e) {
- return new NameAttr(e);
- }
- static neverEmbed(e) {
- return new NeverEmbed(e);
- }
- static numberOfCopies(e) {
- return new NumberOfCopies(e);
- }
- static openAction(e) {
- return new OpenAction(e);
- }
- static output(e) {
- return new Output(e);
- }
- static outputBin(e) {
- return new OutputBin(e);
- }
- static outputXSL(e) {
- return new OutputXSL(e);
- }
- static overprint(e) {
- return new Overprint(e);
- }
- static packets(e) {
- return new Packets(e);
- }
- static pageOffset(e) {
- return new PageOffset(e);
- }
- static pageRange(e) {
- return new PageRange(e);
- }
- static pagination(e) {
- return new Pagination(e);
- }
- static paginationOverride(e) {
- return new PaginationOverride(e);
- }
- static part(e) {
- return new Part(e);
- }
- static pcl(e) {
- return new Pcl(e);
- }
- static pdf(e) {
- return new Pdf(e);
- }
- static pdfa(e) {
- return new Pdfa(e);
- }
- static permissions(e) {
- return new Permissions(e);
- }
- static pickTrayByPDFSize(e) {
- return new PickTrayByPDFSize(e);
- }
- static picture(e) {
- return new Picture(e);
- }
- static plaintextMetadata(e) {
- return new PlaintextMetadata(e);
- }
- static presence(e) {
- return new Presence(e);
- }
- static present(e) {
- return new Present(e);
- }
- static print(e) {
- return new Print(e);
- }
- static printHighQuality(e) {
- return new PrintHighQuality(e);
- }
- static printScaling(e) {
- return new PrintScaling(e);
- }
- static printerName(e) {
- return new PrinterName(e);
- }
- static producer(e) {
- return new Producer(e);
- }
- static ps(e) {
- return new Ps(e);
- }
- static range(e) {
- return new Range(e);
- }
- static record(e) {
- return new Record(e);
- }
- static relevant(e) {
- return new Relevant(e);
- }
- static rename(e) {
- return new Rename(e);
- }
- static renderPolicy(e) {
- return new RenderPolicy(e);
- }
- static runScripts(e) {
- return new RunScripts(e);
- }
- static script(e) {
- return new Script(e);
- }
- static scriptModel(e) {
- return new ScriptModel(e);
- }
- static severity(e) {
- return new Severity(e);
- }
- static silentPrint(e) {
- return new SilentPrint(e);
- }
- static staple(e) {
- return new Staple(e);
- }
- static startNode(e) {
- return new StartNode(e);
- }
- static startPage(e) {
- return new StartPage(e);
- }
- static submitFormat(e) {
- return new SubmitFormat(e);
- }
- static submitUrl(e) {
- return new SubmitUrl(e);
- }
- static subsetBelow(e) {
- return new SubsetBelow(e);
- }
- static suppressBanner(e) {
- return new SuppressBanner(e);
- }
- static tagged(e) {
- return new Tagged(e);
- }
- static template(e) {
- return new Template(e);
- }
- static templateCache(e) {
- return new TemplateCache(e);
- }
- static threshold(e) {
- return new Threshold(e);
- }
- static to(e) {
- return new To(e);
- }
- static trace(e) {
- return new Trace(e);
- }
- static transform(e) {
- return new Transform(e);
- }
- static type(e) {
- return new Type(e);
- }
- static uri(e) {
- return new Uri(e);
- }
- static validate(e) {
- return new Validate(e);
- }
- static validateApprovalSignatures(e) {
- return new ValidateApprovalSignatures(e);
- }
- static validationMessaging(e) {
- return new ValidationMessaging(e);
- }
- static version(e) {
- return new Version(e);
- }
- static versionControl(e) {
- return new VersionControl(e);
- }
- static viewerPreferences(e) {
- return new ViewerPreferences(e);
- }
- static webClient(e) {
- return new WebClient(e);
- }
- static whitespace(e) {
- return new Whitespace(e);
- }
- static window(e) {
- return new Window(e);
- }
- static xdc(e) {
- return new Xdc(e);
- }
- static xdp(e) {
- return new Xdp(e);
- }
- static xsl(e) {
- return new Xsl(e);
- }
- static zpl(e) {
- return new Zpl(e);
- }
- }
- t.ConfigNamespace = ConfigNamespace;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.ConnectionSetNamespace = void 0;
- var r = a(79),
- i = a(77);
- const n = r.NamespaceIds.connectionSet.id;
- class ConnectionSet extends i.XFAObject {
- constructor(e) {
- super(n, 'connectionSet', !0);
- this.wsdlConnection = new i.XFAObjectArray();
- this.xmlConnection = new i.XFAObjectArray();
- this.xsdConnection = new i.XFAObjectArray();
- }
- }
- class EffectiveInputPolicy extends i.XFAObject {
- constructor(e) {
- super(n, 'effectiveInputPolicy');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class EffectiveOutputPolicy extends i.XFAObject {
- constructor(e) {
- super(n, 'effectiveOutputPolicy');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Operation extends i.StringObject {
- constructor(e) {
- super(n, 'operation');
- this.id = e.id || '';
- this.input = e.input || '';
- this.name = e.name || '';
- this.output = e.output || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class RootElement extends i.StringObject {
- constructor(e) {
- super(n, 'rootElement');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class SoapAction extends i.StringObject {
- constructor(e) {
- super(n, 'soapAction');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class SoapAddress extends i.StringObject {
- constructor(e) {
- super(n, 'soapAddress');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class Uri extends i.StringObject {
- constructor(e) {
- super(n, 'uri');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class WsdlAddress extends i.StringObject {
- constructor(e) {
- super(n, 'wsdlAddress');
- this.id = e.id || '';
- this.name = e.name || '';
- this.use = e.use || '';
- this.usehref = e.usehref || '';
- }
- }
- class WsdlConnection extends i.XFAObject {
- constructor(e) {
- super(n, 'wsdlConnection', !0);
- this.dataDescription = e.dataDescription || '';
- this.name = e.name || '';
- this.effectiveInputPolicy = null;
- this.effectiveOutputPolicy = null;
- this.operation = null;
- this.soapAction = null;
- this.soapAddress = null;
- this.wsdlAddress = null;
- }
- }
- class XmlConnection extends i.XFAObject {
- constructor(e) {
- super(n, 'xmlConnection', !0);
- this.dataDescription = e.dataDescription || '';
- this.name = e.name || '';
- this.uri = null;
- }
- }
- class XsdConnection extends i.XFAObject {
- constructor(e) {
- super(n, 'xsdConnection', !0);
- this.dataDescription = e.dataDescription || '';
- this.name = e.name || '';
- this.rootElement = null;
- this.uri = null;
- }
- }
- class ConnectionSetNamespace {
- static [r.$buildXFAObject](e, t) {
- if (ConnectionSetNamespace.hasOwnProperty(e)) return ConnectionSetNamespace[e](t);
- }
- static connectionSet(e) {
- return new ConnectionSet(e);
- }
- static effectiveInputPolicy(e) {
- return new EffectiveInputPolicy(e);
- }
- static effectiveOutputPolicy(e) {
- return new EffectiveOutputPolicy(e);
- }
- static operation(e) {
- return new Operation(e);
- }
- static rootElement(e) {
- return new RootElement(e);
- }
- static soapAction(e) {
- return new SoapAction(e);
- }
- static soapAddress(e) {
- return new SoapAddress(e);
- }
- static uri(e) {
- return new Uri(e);
- }
- static wsdlAddress(e) {
- return new WsdlAddress(e);
- }
- static wsdlConnection(e) {
- return new WsdlConnection(e);
- }
- static xmlConnection(e) {
- return new XmlConnection(e);
- }
- static xsdConnection(e) {
- return new XsdConnection(e);
- }
- }
- t.ConnectionSetNamespace = ConnectionSetNamespace;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.DatasetsNamespace = void 0;
- var r = a(77),
- i = a(79);
- const n = i.NamespaceIds.datasets.id;
- class Data extends r.XmlObject {
- constructor(e) {
- super(n, 'data', e);
- }
- [r.$isNsAgnostic]() {
- return !0;
- }
- }
- class Datasets extends r.XFAObject {
- constructor(e) {
- super(n, 'datasets', !0);
- this.data = null;
- this.Signature = null;
- }
- [r.$onChild](e) {
- const t = e[r.$nodeName];
- (('data' === t && e[r.$namespaceId] === n) ||
- ('Signature' === t && e[r.$namespaceId] === i.NamespaceIds.signature.id)) &&
- (this[t] = e);
- this[r.$appendChild](e);
- }
- }
- class DatasetsNamespace {
- static [i.$buildXFAObject](e, t) {
- if (DatasetsNamespace.hasOwnProperty(e)) return DatasetsNamespace[e](t);
- }
- static datasets(e) {
- return new Datasets(e);
- }
- static data(e) {
- return new Data(e);
- }
- }
- t.DatasetsNamespace = DatasetsNamespace;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.LocaleSetNamespace = void 0;
- var r = a(79),
- i = a(77),
- n = a(78);
- const s = r.NamespaceIds.localeSet.id;
- class CalendarSymbols extends i.XFAObject {
- constructor(e) {
- super(s, 'calendarSymbols', !0);
- this.name = 'gregorian';
- this.dayNames = new i.XFAObjectArray(2);
- this.eraNames = null;
- this.meridiemNames = null;
- this.monthNames = new i.XFAObjectArray(2);
- }
- }
- class CurrencySymbol extends i.StringObject {
- constructor(e) {
- super(s, 'currencySymbol');
- this.name = (0, n.getStringOption)(e.name, ['symbol', 'isoname', 'decimal']);
- }
- }
- class CurrencySymbols extends i.XFAObject {
- constructor(e) {
- super(s, 'currencySymbols', !0);
- this.currencySymbol = new i.XFAObjectArray(3);
- }
- }
- class DatePattern extends i.StringObject {
- constructor(e) {
- super(s, 'datePattern');
- this.name = (0, n.getStringOption)(e.name, ['full', 'long', 'med', 'short']);
- }
- }
- class DatePatterns extends i.XFAObject {
- constructor(e) {
- super(s, 'datePatterns', !0);
- this.datePattern = new i.XFAObjectArray(4);
- }
- }
- class DateTimeSymbols extends i.ContentObject {
- constructor(e) {
- super(s, 'dateTimeSymbols');
- }
- }
- class Day extends i.StringObject {
- constructor(e) {
- super(s, 'day');
- }
- }
- class DayNames extends i.XFAObject {
- constructor(e) {
- super(s, 'dayNames', !0);
- this.abbr = (0, n.getInteger)({
- data: e.abbr,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.day = new i.XFAObjectArray(7);
- }
- }
- class Era extends i.StringObject {
- constructor(e) {
- super(s, 'era');
- }
- }
- class EraNames extends i.XFAObject {
- constructor(e) {
- super(s, 'eraNames', !0);
- this.era = new i.XFAObjectArray(2);
- }
- }
- class Locale extends i.XFAObject {
- constructor(e) {
- super(s, 'locale', !0);
- this.desc = e.desc || '';
- this.name = 'isoname';
- this.calendarSymbols = null;
- this.currencySymbols = null;
- this.datePatterns = null;
- this.dateTimeSymbols = null;
- this.numberPatterns = null;
- this.numberSymbols = null;
- this.timePatterns = null;
- this.typeFaces = null;
- }
- }
- class LocaleSet extends i.XFAObject {
- constructor(e) {
- super(s, 'localeSet', !0);
- this.locale = new i.XFAObjectArray();
- }
- }
- class Meridiem extends i.StringObject {
- constructor(e) {
- super(s, 'meridiem');
- }
- }
- class MeridiemNames extends i.XFAObject {
- constructor(e) {
- super(s, 'meridiemNames', !0);
- this.meridiem = new i.XFAObjectArray(2);
- }
- }
- class Month extends i.StringObject {
- constructor(e) {
- super(s, 'month');
- }
- }
- class MonthNames extends i.XFAObject {
- constructor(e) {
- super(s, 'monthNames', !0);
- this.abbr = (0, n.getInteger)({
- data: e.abbr,
- defaultValue: 0,
- validate: (e) => 1 === e,
- });
- this.month = new i.XFAObjectArray(12);
- }
- }
- class NumberPattern extends i.StringObject {
- constructor(e) {
- super(s, 'numberPattern');
- this.name = (0, n.getStringOption)(e.name, ['full', 'long', 'med', 'short']);
- }
- }
- class NumberPatterns extends i.XFAObject {
- constructor(e) {
- super(s, 'numberPatterns', !0);
- this.numberPattern = new i.XFAObjectArray(4);
- }
- }
- class NumberSymbol extends i.StringObject {
- constructor(e) {
- super(s, 'numberSymbol');
- this.name = (0, n.getStringOption)(e.name, [
- 'decimal',
- 'grouping',
- 'percent',
- 'minus',
- 'zero',
- ]);
- }
- }
- class NumberSymbols extends i.XFAObject {
- constructor(e) {
- super(s, 'numberSymbols', !0);
- this.numberSymbol = new i.XFAObjectArray(5);
- }
- }
- class TimePattern extends i.StringObject {
- constructor(e) {
- super(s, 'timePattern');
- this.name = (0, n.getStringOption)(e.name, ['full', 'long', 'med', 'short']);
- }
- }
- class TimePatterns extends i.XFAObject {
- constructor(e) {
- super(s, 'timePatterns', !0);
- this.timePattern = new i.XFAObjectArray(4);
- }
- }
- class TypeFace extends i.XFAObject {
- constructor(e) {
- super(s, 'typeFace', !0);
- this.name = '' | e.name;
- }
- }
- class TypeFaces extends i.XFAObject {
- constructor(e) {
- super(s, 'typeFaces', !0);
- this.typeFace = new i.XFAObjectArray();
- }
- }
- class LocaleSetNamespace {
- static [r.$buildXFAObject](e, t) {
- if (LocaleSetNamespace.hasOwnProperty(e)) return LocaleSetNamespace[e](t);
- }
- static calendarSymbols(e) {
- return new CalendarSymbols(e);
- }
- static currencySymbol(e) {
- return new CurrencySymbol(e);
- }
- static currencySymbols(e) {
- return new CurrencySymbols(e);
- }
- static datePattern(e) {
- return new DatePattern(e);
- }
- static datePatterns(e) {
- return new DatePatterns(e);
- }
- static dateTimeSymbols(e) {
- return new DateTimeSymbols(e);
- }
- static day(e) {
- return new Day(e);
- }
- static dayNames(e) {
- return new DayNames(e);
- }
- static era(e) {
- return new Era(e);
- }
- static eraNames(e) {
- return new EraNames(e);
- }
- static locale(e) {
- return new Locale(e);
- }
- static localeSet(e) {
- return new LocaleSet(e);
- }
- static meridiem(e) {
- return new Meridiem(e);
- }
- static meridiemNames(e) {
- return new MeridiemNames(e);
- }
- static month(e) {
- return new Month(e);
- }
- static monthNames(e) {
- return new MonthNames(e);
- }
- static numberPattern(e) {
- return new NumberPattern(e);
- }
- static numberPatterns(e) {
- return new NumberPatterns(e);
- }
- static numberSymbol(e) {
- return new NumberSymbol(e);
- }
- static numberSymbols(e) {
- return new NumberSymbols(e);
- }
- static timePattern(e) {
- return new TimePattern(e);
- }
- static timePatterns(e) {
- return new TimePatterns(e);
- }
- static typeFace(e) {
- return new TypeFace(e);
- }
- static typeFaces(e) {
- return new TypeFaces(e);
- }
- }
- t.LocaleSetNamespace = LocaleSetNamespace;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.SignatureNamespace = void 0;
- var r = a(79),
- i = a(77);
- const n = r.NamespaceIds.signature.id;
- class Signature extends i.XFAObject {
- constructor(e) {
- super(n, 'signature', !0);
- }
- }
- class SignatureNamespace {
- static [r.$buildXFAObject](e, t) {
- if (SignatureNamespace.hasOwnProperty(e)) return SignatureNamespace[e](t);
- }
- static signature(e) {
- return new Signature(e);
- }
- }
- t.SignatureNamespace = SignatureNamespace;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.StylesheetNamespace = void 0;
- var r = a(79),
- i = a(77);
- const n = r.NamespaceIds.stylesheet.id;
- class Stylesheet extends i.XFAObject {
- constructor(e) {
- super(n, 'stylesheet', !0);
- }
- }
- class StylesheetNamespace {
- static [r.$buildXFAObject](e, t) {
- if (StylesheetNamespace.hasOwnProperty(e)) return StylesheetNamespace[e](t);
- }
- static stylesheet(e) {
- return new Stylesheet(e);
- }
- }
- t.StylesheetNamespace = StylesheetNamespace;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.XdpNamespace = void 0;
- var r = a(79),
- i = a(77);
- const n = r.NamespaceIds.xdp.id;
- class Xdp extends i.XFAObject {
- constructor(e) {
- super(n, 'xdp', !0);
- this.uuid = e.uuid || '';
- this.timeStamp = e.timeStamp || '';
- this.config = null;
- this.connectionSet = null;
- this.datasets = null;
- this.localeSet = null;
- this.stylesheet = new i.XFAObjectArray();
- this.template = null;
- }
- [i.$onChildCheck](e) {
- const t = r.NamespaceIds[e[i.$nodeName]];
- return t && e[i.$namespaceId] === t.id;
- }
- }
- class XdpNamespace {
- static [r.$buildXFAObject](e, t) {
- if (XdpNamespace.hasOwnProperty(e)) return XdpNamespace[e](t);
- }
- static xdp(e) {
- return new Xdp(e);
- }
- }
- t.XdpNamespace = XdpNamespace;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.XhtmlNamespace = void 0;
- var r = a(77),
- i = a(79),
- n = a(84),
- s = a(78);
- const o = i.NamespaceIds.xhtml.id,
- c = Symbol(),
- l = new Set([
- 'color',
- 'font',
- 'font-family',
- 'font-size',
- 'font-stretch',
- 'font-style',
- 'font-weight',
- 'margin',
- 'margin-bottom',
- 'margin-left',
- 'margin-right',
- 'margin-top',
- 'letter-spacing',
- 'line-height',
- 'orphans',
- 'page-break-after',
- 'page-break-before',
- 'page-break-inside',
- 'tab-interval',
- 'tab-stop',
- 'text-align',
- 'text-decoration',
- 'text-indent',
- 'vertical-align',
- 'widows',
- 'kerning-mode',
- 'xfa-font-horizontal-scale',
- 'xfa-font-vertical-scale',
- 'xfa-spacerun',
- 'xfa-tab-stops',
- ]),
- h = new Map([
- ['page-break-after', 'breakAfter'],
- ['page-break-before', 'breakBefore'],
- ['page-break-inside', 'breakInside'],
- ['kerning-mode', (e) => ('none' === e ? 'none' : 'normal')],
- [
- 'xfa-font-horizontal-scale',
- (e) => `scaleX(${Math.max(0, Math.min(parseInt(e) / 100)).toFixed(2)})`,
- ],
- [
- 'xfa-font-vertical-scale',
- (e) => `scaleY(${Math.max(0, Math.min(parseInt(e) / 100)).toFixed(2)})`,
- ],
- ['xfa-spacerun', ''],
- ['xfa-tab-stops', ''],
- [
- 'font-size',
- (e, t) => {
- e = t.fontSize = (0, s.getMeasurement)(e);
- return (0, n.measureToString)(0.99 * e);
- },
- ],
- ['letter-spacing', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))],
- ['line-height', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))],
- ['margin', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))],
- ['margin-bottom', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))],
- ['margin-left', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))],
- ['margin-right', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))],
- ['margin-top', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))],
- ['text-indent', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))],
- ['font-family', (e) => e],
- ['vertical-align', (e) => (0, n.measureToString)((0, s.getMeasurement)(e))],
- ]),
- u = /\s+/g,
- d = /[\r\n]+/g,
- f = /\r\n?/g;
- function mapStyle(e, t, a) {
- const i = Object.create(null);
- if (!e) return i;
- const o = Object.create(null);
- for (const [t, a] of e.split(';').map((e) => e.split(':', 2))) {
- const e = h.get(t);
- if ('' === e) continue;
- let r = a;
- e && (r = 'string' == typeof e ? e : e(a, o));
- t.endsWith('scale')
- ? i.transform
- ? (i.transform = `${i[t]} ${r}`)
- : (i.transform = r)
- : (i[t.replaceAll(/-([a-zA-Z])/g, (e, t) => t.toUpperCase())] = r);
- }
- i.fontFamily &&
- (0, n.setFontFamily)(
- {
- typeface: i.fontFamily,
- weight: i.fontWeight || 'normal',
- posture: i.fontStyle || 'normal',
- size: o.fontSize || 0,
- },
- t,
- t[r.$globalData].fontFinder,
- i,
- );
- if (a && i.verticalAlign && '0px' !== i.verticalAlign && i.fontSize) {
- const e = 0.583,
- t = 0.333,
- a = (0, s.getMeasurement)(i.fontSize);
- i.fontSize = (0, n.measureToString)(a * e);
- i.verticalAlign = (0, n.measureToString)(
- Math.sign((0, s.getMeasurement)(i.verticalAlign)) * a * t,
- );
- }
- a && i.fontSize && (i.fontSize = `calc(${i.fontSize} * var(--scale-factor))`);
- (0, n.fixTextIndent)(i);
- return i;
- }
- const g = new Set(['body', 'html']);
- class XhtmlObject extends r.XmlObject {
- constructor(e, t) {
- super(o, t);
- this[c] = !1;
- this.style = e.style || '';
- }
- [r.$clean](e) {
- super[r.$clean](e);
- this.style = (function checkStyle(e) {
- return e.style
- ? e.style
- .trim()
- .split(/\s*;\s*/)
- .filter((e) => !!e)
- .map((e) => e.split(/\s*:\s*/, 2))
- .filter(([t, a]) => {
- 'font-family' === t && e[r.$globalData].usedTypefaces.add(a);
- return l.has(t);
- })
- .map((e) => e.join(':'))
- .join(';')
- : '';
- })(this);
- }
- [r.$acceptWhitespace]() {
- return !g.has(this[r.$nodeName]);
- }
- [r.$onText](e, t = !1) {
- if (t) this[c] = !0;
- else {
- e = e.replaceAll(d, '');
- this.style.includes('xfa-spacerun:yes') || (e = e.replaceAll(u, ' '));
- }
- e && (this[r.$content] += e);
- }
- [r.$pushGlyphs](e, t = !0) {
- const a = Object.create(null),
- i = { top: NaN, bottom: NaN, left: NaN, right: NaN };
- let n = null;
- for (const [e, t] of this.style.split(';').map((e) => e.split(':', 2)))
- switch (e) {
- case 'font-family':
- a.typeface = (0, s.stripQuotes)(t);
- break;
- case 'font-size':
- a.size = (0, s.getMeasurement)(t);
- break;
- case 'font-weight':
- a.weight = t;
- break;
- case 'font-style':
- a.posture = t;
- break;
- case 'letter-spacing':
- a.letterSpacing = (0, s.getMeasurement)(t);
- break;
- case 'margin':
- const e = t.split(/ \t/).map((e) => (0, s.getMeasurement)(e));
- switch (e.length) {
- case 1:
- i.top = i.bottom = i.left = i.right = e[0];
- break;
- case 2:
- i.top = i.bottom = e[0];
- i.left = i.right = e[1];
- break;
- case 3:
- i.top = e[0];
- i.bottom = e[2];
- i.left = i.right = e[1];
- break;
- case 4:
- i.top = e[0];
- i.left = e[1];
- i.bottom = e[2];
- i.right = e[3];
- }
- break;
- case 'margin-top':
- i.top = (0, s.getMeasurement)(t);
- break;
- case 'margin-bottom':
- i.bottom = (0, s.getMeasurement)(t);
- break;
- case 'margin-left':
- i.left = (0, s.getMeasurement)(t);
- break;
- case 'margin-right':
- i.right = (0, s.getMeasurement)(t);
- break;
- case 'line-height':
- n = (0, s.getMeasurement)(t);
- }
- e.pushData(a, i, n);
- if (this[r.$content]) e.addString(this[r.$content]);
- else
- for (const t of this[r.$getChildren]())
- '#text' !== t[r.$nodeName] ? t[r.$pushGlyphs](e) : e.addString(t[r.$content]);
- t && e.popFont();
- }
- [r.$toHTML](e) {
- const t = [];
- this[r.$extra] = { children: t };
- this[r.$childrenToHTML]({});
- if (0 === t.length && !this[r.$content]) return s.HTMLResult.EMPTY;
- let a;
- a = this[c]
- ? this[r.$content]
- ? this[r.$content].replaceAll(f, '\n')
- : void 0
- : this[r.$content] || void 0;
- return s.HTMLResult.success({
- name: this[r.$nodeName],
- attributes: { href: this.href, style: mapStyle(this.style, this, this[c]) },
- children: t,
- value: a,
- });
- }
- }
- class A extends XhtmlObject {
- constructor(e) {
- super(e, 'a');
- this.href = (0, n.fixURL)(e.href) || '';
- }
- }
- class B extends XhtmlObject {
- constructor(e) {
- super(e, 'b');
- }
- [r.$pushGlyphs](e) {
- e.pushFont({ weight: 'bold' });
- super[r.$pushGlyphs](e);
- e.popFont();
- }
- }
- class Body extends XhtmlObject {
- constructor(e) {
- super(e, 'body');
- }
- [r.$toHTML](e) {
- const t = super[r.$toHTML](e),
- { html: a } = t;
- if (!a) return s.HTMLResult.EMPTY;
- a.name = 'div';
- a.attributes.class = ['xfaRich'];
- return t;
- }
- }
- class Br extends XhtmlObject {
- constructor(e) {
- super(e, 'br');
- }
- [r.$text]() {
- return '\n';
- }
- [r.$pushGlyphs](e) {
- e.addString('\n');
- }
- [r.$toHTML](e) {
- return s.HTMLResult.success({ name: 'br' });
- }
- }
- class Html extends XhtmlObject {
- constructor(e) {
- super(e, 'html');
- }
- [r.$toHTML](e) {
- const t = [];
- this[r.$extra] = { children: t };
- this[r.$childrenToHTML]({});
- if (0 === t.length)
- return s.HTMLResult.success({
- name: 'div',
- attributes: { class: ['xfaRich'], style: {} },
- value: this[r.$content] || '',
- });
- if (1 === t.length) {
- const e = t[0];
- if (e.attributes && e.attributes.class.includes('xfaRich'))
- return s.HTMLResult.success(e);
- }
- return s.HTMLResult.success({
- name: 'div',
- attributes: { class: ['xfaRich'], style: {} },
- children: t,
- });
- }
- }
- class I extends XhtmlObject {
- constructor(e) {
- super(e, 'i');
- }
- [r.$pushGlyphs](e) {
- e.pushFont({ posture: 'italic' });
- super[r.$pushGlyphs](e);
- e.popFont();
- }
- }
- class Li extends XhtmlObject {
- constructor(e) {
- super(e, 'li');
- }
- }
- class Ol extends XhtmlObject {
- constructor(e) {
- super(e, 'ol');
- }
- }
- class P extends XhtmlObject {
- constructor(e) {
- super(e, 'p');
- }
- [r.$pushGlyphs](e) {
- super[r.$pushGlyphs](e, !1);
- e.addString('\n');
- e.addPara();
- e.popFont();
- }
- [r.$text]() {
- return this[r.$getParent]()[r.$getChildren]().at(-1) === this
- ? super[r.$text]()
- : super[r.$text]() + '\n';
- }
- }
- class Span extends XhtmlObject {
- constructor(e) {
- super(e, 'span');
- }
- }
- class Sub extends XhtmlObject {
- constructor(e) {
- super(e, 'sub');
- }
- }
- class Sup extends XhtmlObject {
- constructor(e) {
- super(e, 'sup');
- }
- }
- class Ul extends XhtmlObject {
- constructor(e) {
- super(e, 'ul');
- }
- }
- class XhtmlNamespace {
- static [i.$buildXFAObject](e, t) {
- if (XhtmlNamespace.hasOwnProperty(e)) return XhtmlNamespace[e](t);
- }
- static a(e) {
- return new A(e);
- }
- static b(e) {
- return new B(e);
- }
- static body(e) {
- return new Body(e);
- }
- static br(e) {
- return new Br(e);
- }
- static html(e) {
- return new Html(e);
- }
- static i(e) {
- return new I(e);
- }
- static li(e) {
- return new Li(e);
- }
- static ol(e) {
- return new Ol(e);
- }
- static p(e) {
- return new P(e);
- }
- static span(e) {
- return new Span(e);
- }
- static sub(e) {
- return new Sub(e);
- }
- static sup(e) {
- return new Sup(e);
- }
- static ul(e) {
- return new Ul(e);
- }
- }
- t.XhtmlNamespace = XhtmlNamespace;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.UnknownNamespace = void 0;
- var r = a(79),
- i = a(77);
- class UnknownNamespace {
- constructor(e) {
- this.namespaceId = e;
- }
- [r.$buildXFAObject](e, t) {
- return new i.XmlObject(this.namespaceId, e, t);
- }
- }
- t.UnknownNamespace = UnknownNamespace;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.DatasetReader = void 0;
- var r = a(2),
- i = a(3),
- n = a(66);
- function decodeString(e) {
- try {
- return (0, r.stringToUTF8String)(e);
- } catch (t) {
- (0, r.warn)(`UTF-8 decoding failed: "${t}".`);
- return e;
- }
- }
- class DatasetXMLParser extends n.SimpleXMLParser {
- constructor(e) {
- super(e);
- this.node = null;
- }
- onEndElement(e) {
- const t = super.onEndElement(e);
- if (t && 'xfa:datasets' === e) {
- this.node = t;
- throw new Error('Aborting DatasetXMLParser.');
- }
- }
- }
- t.DatasetReader = class DatasetReader {
- constructor(e) {
- if (e.datasets)
- this.node = new n.SimpleXMLParser({ hasAttributes: !0 }).parseFromString(
- e.datasets,
- ).documentElement;
- else {
- const t = new DatasetXMLParser({ hasAttributes: !0 });
- try {
- t.parseFromString(e['xdp:xdp']);
- } catch (e) {}
- this.node = t.node;
- }
- }
- getValue(e) {
- if (!this.node || !e) return '';
- const t = this.node.searchNode((0, i.parseXFAPath)(e), 0);
- if (!t) return '';
- const a = t.firstChild;
- return a && 'value' === a.nodeName
- ? t.children.map((e) => decodeString(e.textContent))
- : decodeString(t.textContent);
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.XRef = void 0;
- var r = a(2),
- i = a(4),
- n = a(16),
- s = a(3),
- o = a(5),
- c = a(67);
- t.XRef = class XRef {
- constructor(e, t) {
- this.stream = e;
- this.pdfManager = t;
- this.entries = [];
- this._xrefStms = new Set();
- this._cacheMap = new Map();
- this._pendingRefs = new i.RefSet();
- this._newPersistentRefNum = null;
- this._newTemporaryRefNum = null;
- }
- getNewPersistentRef(e) {
- null === this._newPersistentRefNum &&
- (this._newPersistentRefNum = this.entries.length || 1);
- const t = this._newPersistentRefNum++;
- this._cacheMap.set(t, e);
- return i.Ref.get(t, 0);
- }
- getNewTemporaryRef() {
- null === this._newTemporaryRefNum &&
- (this._newTemporaryRefNum = this.entries.length || 1);
- return i.Ref.get(this._newTemporaryRefNum++, 0);
- }
- resetNewTemporaryRef() {
- this._newTemporaryRefNum = null;
- }
- setStartXRef(e) {
- this.startXRefQueue = [e];
- }
- parse(e = !1) {
- let t, a, n;
- if (e) {
- (0, r.warn)('Indexing all PDF objects');
- t = this.indexObjects();
- } else t = this.readXRef();
- t.assignXref(this);
- this.trailer = t;
- try {
- a = t.get('Encrypt');
- } catch (e) {
- if (e instanceof s.MissingDataException) throw e;
- (0, r.warn)(`XRef.parse - Invalid "Encrypt" reference: "${e}".`);
- }
- if (a instanceof i.Dict) {
- const e = t.get('ID'),
- r = e && e.length ? e[0] : '';
- a.suppressEncryption = !0;
- this.encrypt = new c.CipherTransformFactory(a, r, this.pdfManager.password);
- }
- try {
- n = t.get('Root');
- } catch (e) {
- if (e instanceof s.MissingDataException) throw e;
- (0, r.warn)(`XRef.parse - Invalid "Root" reference: "${e}".`);
- }
- if (n instanceof i.Dict)
- try {
- if (n.get('Pages') instanceof i.Dict) {
- this.root = n;
- return;
- }
- } catch (e) {
- if (e instanceof s.MissingDataException) throw e;
- (0, r.warn)(`XRef.parse - Invalid "Pages" reference: "${e}".`);
- }
- if (!e) throw new s.XRefParseException();
- throw new r.InvalidPDFException('Invalid Root reference.');
- }
- processXRefTable(e) {
- 'tableState' in this ||
- (this.tableState = {
- entryNum: 0,
- streamPos: e.lexer.stream.pos,
- parserBuf1: e.buf1,
- parserBuf2: e.buf2,
- });
- const t = this.readXRefTable(e);
- if (!(0, i.isCmd)(t, 'trailer'))
- throw new r.FormatError('Invalid XRef table: could not find trailer dictionary');
- let a = e.getObj();
- a instanceof i.Dict || !a.dict || (a = a.dict);
- if (!(a instanceof i.Dict))
- throw new r.FormatError('Invalid XRef table: could not parse trailer dictionary');
- delete this.tableState;
- return a;
- }
- readXRefTable(e) {
- const t = e.lexer.stream,
- a = this.tableState;
- t.pos = a.streamPos;
- e.buf1 = a.parserBuf1;
- e.buf2 = a.parserBuf2;
- let n;
- for (;;) {
- if (!('firstEntryNum' in a) || !('entryCount' in a)) {
- if ((0, i.isCmd)((n = e.getObj()), 'trailer')) break;
- a.firstEntryNum = n;
- a.entryCount = e.getObj();
- }
- let s = a.firstEntryNum;
- const o = a.entryCount;
- if (!Number.isInteger(s) || !Number.isInteger(o))
- throw new r.FormatError('Invalid XRef table: wrong types in subsection header');
- for (let n = a.entryNum; n < o; n++) {
- a.streamPos = t.pos;
- a.entryNum = n;
- a.parserBuf1 = e.buf1;
- a.parserBuf2 = e.buf2;
- const c = {};
- c.offset = e.getObj();
- c.gen = e.getObj();
- const l = e.getObj();
- if (l instanceof i.Cmd)
- switch (l.cmd) {
- case 'f':
- c.free = !0;
- break;
- case 'n':
- c.uncompressed = !0;
- }
- if (
- !Number.isInteger(c.offset) ||
- !Number.isInteger(c.gen) ||
- (!c.free && !c.uncompressed)
- )
- throw new r.FormatError(`Invalid entry in XRef subsection: ${s}, ${o}`);
- 0 === n && c.free && 1 === s && (s = 0);
- this.entries[n + s] || (this.entries[n + s] = c);
- }
- a.entryNum = 0;
- a.streamPos = t.pos;
- a.parserBuf1 = e.buf1;
- a.parserBuf2 = e.buf2;
- delete a.firstEntryNum;
- delete a.entryCount;
- }
- if (this.entries[0] && !this.entries[0].free)
- throw new r.FormatError('Invalid XRef table: unexpected first object');
- return n;
- }
- processXRefStream(e) {
- if (!('streamState' in this)) {
- const t = e.dict,
- a = t.get('W');
- let r = t.get('Index');
- r || (r = [0, t.get('Size')]);
- this.streamState = { entryRanges: r, byteWidths: a, entryNum: 0, streamPos: e.pos };
- }
- this.readXRefStream(e);
- delete this.streamState;
- return e.dict;
- }
- readXRefStream(e) {
- const t = this.streamState;
- e.pos = t.streamPos;
- const [a, i, n] = t.byteWidths,
- s = t.entryRanges;
- for (; s.length > 0; ) {
- const [o, c] = s;
- if (!Number.isInteger(o) || !Number.isInteger(c))
- throw new r.FormatError(`Invalid XRef range fields: ${o}, ${c}`);
- if (!Number.isInteger(a) || !Number.isInteger(i) || !Number.isInteger(n))
- throw new r.FormatError(`Invalid XRef entry fields length: ${o}, ${c}`);
- for (let s = t.entryNum; s < c; ++s) {
- t.entryNum = s;
- t.streamPos = e.pos;
- let c = 0,
- l = 0,
- h = 0;
- for (let t = 0; t < a; ++t) {
- const t = e.getByte();
- if (-1 === t) throw new r.FormatError("Invalid XRef byteWidths 'type'.");
- c = (c << 8) | t;
- }
- 0 === a && (c = 1);
- for (let t = 0; t < i; ++t) {
- const t = e.getByte();
- if (-1 === t) throw new r.FormatError("Invalid XRef byteWidths 'offset'.");
- l = (l << 8) | t;
- }
- for (let t = 0; t < n; ++t) {
- const t = e.getByte();
- if (-1 === t) throw new r.FormatError("Invalid XRef byteWidths 'generation'.");
- h = (h << 8) | t;
- }
- const u = {};
- u.offset = l;
- u.gen = h;
- switch (c) {
- case 0:
- u.free = !0;
- break;
- case 1:
- u.uncompressed = !0;
- break;
- case 2:
- break;
- default:
- throw new r.FormatError(`Invalid XRef entry type: ${c}`);
- }
- this.entries[o + s] || (this.entries[o + s] = u);
- }
- t.entryNum = 0;
- t.streamPos = e.pos;
- s.splice(0, 2);
- }
- }
- indexObjects() {
- function readToken(e, t) {
- let a = '',
- r = e[t];
- for (; 10 !== r && 13 !== r && 60 !== r && !(++t >= e.length); ) {
- a += String.fromCharCode(r);
- r = e[t];
- }
- return a;
- }
- function skipUntil(e, t, a) {
- const r = a.length,
- i = e.length;
- let n = 0;
- for (; t < i; ) {
- let i = 0;
- for (; i < r && e[t + i] === a[i]; ) ++i;
- if (i >= r) break;
- t++;
- n++;
- }
- return n;
- }
- const e = /\b(endobj|\d+\s+\d+\s+obj|xref|trailer)\b/g,
- t = /\b(startxref|\d+\s+\d+\s+obj)\b/g,
- a = /^(\d+)\s+(\d+)\s+obj\b/,
- o = new Uint8Array([116, 114, 97, 105, 108, 101, 114]),
- c = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]),
- l = new Uint8Array([47, 88, 82, 101, 102]);
- this.entries.length = 0;
- this._cacheMap.clear();
- const h = this.stream;
- h.pos = 0;
- const u = h.getBytes(),
- d = (0, r.bytesToString)(u),
- f = u.length;
- let g = h.start;
- const p = [],
- m = [];
- for (; g < f; ) {
- let i = u[g];
- if (9 === i || 10 === i || 13 === i || 32 === i) {
- ++g;
- continue;
- }
- if (37 === i) {
- do {
- ++g;
- if (g >= f) break;
- i = u[g];
- } while (10 !== i && 13 !== i);
- continue;
- }
- const b = readToken(u, g);
- let y;
- if (b.startsWith('xref') && (4 === b.length || /\s/.test(b[4]))) {
- g += skipUntil(u, g, o);
- p.push(g);
- g += skipUntil(u, g, c);
- } else if ((y = a.exec(b))) {
- const t = 0 | y[1],
- a = 0 | y[2],
- i = g + b.length;
- let o,
- c = !1;
- if (this.entries[t]) {
- if (this.entries[t].gen === a)
- try {
- new n.Parser({ lexer: new n.Lexer(h.makeSubStream(i)) }).getObj();
- c = !0;
- } catch (e) {
- e instanceof s.ParserEOFException
- ? (0, r.warn)(`indexObjects -- checking object (${b}): "${e}".`)
- : (c = !0);
- }
- } else c = !0;
- c && (this.entries[t] = { offset: g - h.start, gen: a, uncompressed: !0 });
- e.lastIndex = i;
- const p = e.exec(d);
- if (p) {
- o = e.lastIndex + 1 - g;
- if ('endobj' !== p[1]) {
- (0, r.warn)(
- `indexObjects: Found "${p[1]}" inside of another "obj", caused by missing "endobj" -- trying to recover.`,
- );
- o -= p[1].length + 1;
- }
- } else o = f - g;
- const w = u.subarray(g, g + o),
- S = skipUntil(w, 0, l);
- if (S < o && w[S + 5] < 64) {
- m.push(g - h.start);
- this._xrefStms.add(g - h.start);
- }
- g += o;
- } else if (b.startsWith('trailer') && (7 === b.length || /\s/.test(b[7]))) {
- p.push(g);
- const e = g + b.length;
- let a;
- t.lastIndex = e;
- const i = t.exec(d);
- if (i) {
- a = t.lastIndex + 1 - g;
- if ('startxref' !== i[1]) {
- (0, r.warn)(
- `indexObjects: Found "${i[1]}" after "trailer", caused by missing "startxref" -- trying to recover.`,
- );
- a -= i[1].length + 1;
- }
- } else a = f - g;
- g += a;
- } else g += b.length + 1;
- }
- for (const e of m) {
- this.startXRefQueue.push(e);
- this.readXRef(!0);
- }
- const b = [];
- let y,
- w,
- S = !1;
- for (const e of p) {
- h.pos = e;
- const t = new n.Parser({
- lexer: new n.Lexer(h),
- xref: this,
- allowStreams: !0,
- recoveryMode: !0,
- }),
- a = t.getObj();
- if (!(0, i.isCmd)(a, 'trailer')) continue;
- const r = t.getObj();
- if (r instanceof i.Dict) {
- b.push(r);
- r.has('Encrypt') && (S = !0);
- }
- }
- for (const e of [...b, 'genFallback', ...b]) {
- if ('genFallback' === e) {
- if (!w) break;
- this._generationFallback = !0;
- continue;
- }
- let t = !1;
- try {
- const a = e.get('Root');
- if (!(a instanceof i.Dict)) continue;
- const r = a.get('Pages');
- if (!(r instanceof i.Dict)) continue;
- const n = r.get('Count');
- Number.isInteger(n) && (t = !0);
- } catch (e) {
- w = e;
- continue;
- }
- if (t && (!S || e.has('Encrypt')) && e.has('ID')) return e;
- y = e;
- }
- if (y) return y;
- if (this.topDict) return this.topDict;
- throw new r.InvalidPDFException('Invalid PDF structure.');
- }
- readXRef(e = !1) {
- const t = this.stream,
- a = new Set();
- for (; this.startXRefQueue.length; ) {
- try {
- const e = this.startXRefQueue[0];
- if (a.has(e)) {
- (0, r.warn)('readXRef - skipping XRef table since it was already parsed.');
- this.startXRefQueue.shift();
- continue;
- }
- a.add(e);
- t.pos = e + t.start;
- const s = new n.Parser({ lexer: new n.Lexer(t), xref: this, allowStreams: !0 });
- let c,
- l = s.getObj();
- if ((0, i.isCmd)(l, 'xref')) {
- c = this.processXRefTable(s);
- this.topDict || (this.topDict = c);
- l = c.get('XRefStm');
- if (Number.isInteger(l) && !this._xrefStms.has(l)) {
- this._xrefStms.add(l);
- this.startXRefQueue.push(l);
- }
- } else {
- if (!Number.isInteger(l)) throw new r.FormatError('Invalid XRef stream header');
- if (
- !(
- Number.isInteger(s.getObj()) &&
- (0, i.isCmd)(s.getObj(), 'obj') &&
- (l = s.getObj()) instanceof o.BaseStream
- )
- )
- throw new r.FormatError('Invalid XRef stream');
- c = this.processXRefStream(l);
- this.topDict || (this.topDict = c);
- if (!c) throw new r.FormatError('Failed to read XRef stream');
- }
- l = c.get('Prev');
- Number.isInteger(l)
- ? this.startXRefQueue.push(l)
- : l instanceof i.Ref && this.startXRefQueue.push(l.num);
- } catch (e) {
- if (e instanceof s.MissingDataException) throw e;
- (0, r.info)('(while reading XRef): ' + e);
- }
- this.startXRefQueue.shift();
- }
- if (this.topDict) return this.topDict;
- if (!e) throw new s.XRefParseException();
- }
- get lastXRefStreamPos() {
- return this._xrefStms.size > 0 ? Math.max(...this._xrefStms) : null;
- }
- getEntry(e) {
- const t = this.entries[e];
- return t && !t.free && t.offset ? t : null;
- }
- fetchIfRef(e, t = !1) {
- return e instanceof i.Ref ? this.fetch(e, t) : e;
- }
- fetch(e, t = !1) {
- if (!(e instanceof i.Ref)) throw new Error('ref object is not a reference');
- const a = e.num,
- n = this._cacheMap.get(a);
- if (void 0 !== n) {
- n instanceof i.Dict && !n.objId && (n.objId = e.toString());
- return n;
- }
- let s = this.getEntry(a);
- if (null === s) {
- this._cacheMap.set(a, s);
- return s;
- }
- if (this._pendingRefs.has(e)) {
- this._pendingRefs.remove(e);
- (0, r.warn)(`Ignoring circular reference: ${e}.`);
- return i.CIRCULAR_REF;
- }
- this._pendingRefs.put(e);
- try {
- s = s.uncompressed
- ? this.fetchUncompressed(e, s, t)
- : this.fetchCompressed(e, s, t);
- this._pendingRefs.remove(e);
- } catch (t) {
- this._pendingRefs.remove(e);
- throw t;
- }
- s instanceof i.Dict
- ? (s.objId = e.toString())
- : s instanceof o.BaseStream && (s.dict.objId = e.toString());
- return s;
- }
- fetchUncompressed(e, t, a = !1) {
- const c = e.gen;
- let l = e.num;
- if (t.gen !== c) {
- const n = `Inconsistent generation in XRef: ${e}`;
- if (this._generationFallback && t.gen < c) {
- (0, r.warn)(n);
- return this.fetchUncompressed(i.Ref.get(l, t.gen), t, a);
- }
- throw new s.XRefEntryException(n);
- }
- const h = this.stream.makeSubStream(t.offset + this.stream.start),
- u = new n.Parser({ lexer: new n.Lexer(h), xref: this, allowStreams: !0 }),
- d = u.getObj(),
- f = u.getObj(),
- g = u.getObj();
- if (d !== l || f !== c || !(g instanceof i.Cmd))
- throw new s.XRefEntryException(`Bad (uncompressed) XRef entry: ${e}`);
- if ('obj' !== g.cmd) {
- if (g.cmd.startsWith('obj')) {
- l = parseInt(g.cmd.substring(3), 10);
- if (!Number.isNaN(l)) return l;
- }
- throw new s.XRefEntryException(`Bad (uncompressed) XRef entry: ${e}`);
- }
- (t =
- this.encrypt && !a
- ? u.getObj(this.encrypt.createCipherTransform(l, c))
- : u.getObj()) instanceof o.BaseStream || this._cacheMap.set(l, t);
- return t;
- }
- fetchCompressed(e, t, a = !1) {
- const c = t.offset,
- l = this.fetch(i.Ref.get(c, 0));
- if (!(l instanceof o.BaseStream)) throw new r.FormatError('bad ObjStm stream');
- const h = l.dict.get('First'),
- u = l.dict.get('N');
- if (!Number.isInteger(h) || !Number.isInteger(u))
- throw new r.FormatError('invalid first and n parameters for ObjStm stream');
- let d = new n.Parser({ lexer: new n.Lexer(l), xref: this, allowStreams: !0 });
- const f = new Array(u),
- g = new Array(u);
- for (let e = 0; e < u; ++e) {
- const t = d.getObj();
- if (!Number.isInteger(t))
- throw new r.FormatError(`invalid object number in the ObjStm stream: ${t}`);
- const a = d.getObj();
- if (!Number.isInteger(a))
- throw new r.FormatError(`invalid object offset in the ObjStm stream: ${a}`);
- f[e] = t;
- g[e] = a;
- }
- const p = (l.start || 0) + h,
- m = new Array(u);
- for (let e = 0; e < u; ++e) {
- const t = e < u - 1 ? g[e + 1] - g[e] : void 0;
- if (t < 0) throw new r.FormatError('Invalid offset in the ObjStm stream.');
- d = new n.Parser({
- lexer: new n.Lexer(l.makeSubStream(p + g[e], t, l.dict)),
- xref: this,
- allowStreams: !0,
- });
- const a = d.getObj();
- m[e] = a;
- if (a instanceof o.BaseStream) continue;
- const i = f[e],
- s = this.entries[i];
- s && s.offset === c && s.gen === e && this._cacheMap.set(i, a);
- }
- if (void 0 === (t = m[t.gen]))
- throw new s.XRefEntryException(`Bad (compressed) XRef entry: ${e}`);
- return t;
- }
- async fetchIfRefAsync(e, t) {
- return e instanceof i.Ref ? this.fetchAsync(e, t) : e;
- }
- async fetchAsync(e, t) {
- try {
- return this.fetch(e, t);
- } catch (a) {
- if (!(a instanceof s.MissingDataException)) throw a;
- await this.pdfManager.requestRange(a.begin, a.end);
- return this.fetchAsync(e, t);
- }
- }
- getCatalogObj() {
- return this.root;
- }
- };
- },
- (e, t) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.isNodeJS = void 0;
- const a = !(
- 'object' != typeof process ||
- process + '' != '[object process]' ||
- process.versions.nw ||
- (process.versions.electron && process.type && 'browser' !== process.type)
- );
- t.isNodeJS = a;
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.MessageHandler = void 0;
- var r = a(2);
- const i = 1,
- n = 2,
- s = 1,
- o = 2,
- c = 3,
- l = 4,
- h = 5,
- u = 6,
- d = 7,
- f = 8;
- function wrapReason(e) {
- e instanceof Error ||
- ('object' == typeof e && null !== e) ||
- (0, r.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.');
- switch (e.name) {
- case 'AbortException':
- return new r.AbortException(e.message);
- case 'MissingPDFException':
- return new r.MissingPDFException(e.message);
- case 'PasswordException':
- return new r.PasswordException(e.message, e.code);
- case 'UnexpectedResponseException':
- return new r.UnexpectedResponseException(e.message, e.status);
- case 'UnknownErrorException':
- return new r.UnknownErrorException(e.message, e.details);
- default:
- return new r.UnknownErrorException(e.message, e.toString());
- }
- }
- t.MessageHandler = class MessageHandler {
- constructor(e, t, a) {
- this.sourceName = e;
- this.targetName = t;
- this.comObj = a;
- this.callbackId = 1;
- this.streamId = 1;
- this.streamSinks = Object.create(null);
- this.streamControllers = Object.create(null);
- this.callbackCapabilities = Object.create(null);
- this.actionHandler = Object.create(null);
- this._onComObjOnMessage = (e) => {
- const t = e.data;
- if (t.targetName !== this.sourceName) return;
- if (t.stream) {
- this.#t(t);
- return;
- }
- if (t.callback) {
- const e = t.callbackId,
- a = this.callbackCapabilities[e];
- if (!a) throw new Error(`Cannot resolve callback ${e}`);
- delete this.callbackCapabilities[e];
- if (t.callback === i) a.resolve(t.data);
- else {
- if (t.callback !== n) throw new Error('Unexpected callback case');
- a.reject(wrapReason(t.reason));
- }
- return;
- }
- const r = this.actionHandler[t.action];
- if (!r) throw new Error(`Unknown action from worker: ${t.action}`);
- if (t.callbackId) {
- const e = this.sourceName,
- s = t.sourceName;
- new Promise(function (e) {
- e(r(t.data));
- }).then(
- function (r) {
- a.postMessage({
- sourceName: e,
- targetName: s,
- callback: i,
- callbackId: t.callbackId,
- data: r,
- });
- },
- function (r) {
- a.postMessage({
- sourceName: e,
- targetName: s,
- callback: n,
- callbackId: t.callbackId,
- reason: wrapReason(r),
- });
- },
- );
- } else t.streamId ? this.#a(t) : r(t.data);
- };
- a.addEventListener('message', this._onComObjOnMessage);
- }
- on(e, t) {
- const a = this.actionHandler;
- if (a[e]) throw new Error(`There is already an actionName called "${e}"`);
- a[e] = t;
- }
- send(e, t, a) {
- this.comObj.postMessage(
- { sourceName: this.sourceName, targetName: this.targetName, action: e, data: t },
- a,
- );
- }
- sendWithPromise(e, t, a) {
- const i = this.callbackId++,
- n = new r.PromiseCapability();
- this.callbackCapabilities[i] = n;
- try {
- this.comObj.postMessage(
- {
- sourceName: this.sourceName,
- targetName: this.targetName,
- action: e,
- callbackId: i,
- data: t,
- },
- a,
- );
- } catch (e) {
- n.reject(e);
- }
- return n.promise;
- }
- sendWithStream(e, t, a, i) {
- const n = this.streamId++,
- o = this.sourceName,
- c = this.targetName,
- l = this.comObj;
- return new ReadableStream(
- {
- start: (a) => {
- const s = new r.PromiseCapability();
- this.streamControllers[n] = {
- controller: a,
- startCall: s,
- pullCall: null,
- cancelCall: null,
- isClosed: !1,
- };
- l.postMessage(
- {
- sourceName: o,
- targetName: c,
- action: e,
- streamId: n,
- data: t,
- desiredSize: a.desiredSize,
- },
- i,
- );
- return s.promise;
- },
- pull: (e) => {
- const t = new r.PromiseCapability();
- this.streamControllers[n].pullCall = t;
- l.postMessage({
- sourceName: o,
- targetName: c,
- stream: u,
- streamId: n,
- desiredSize: e.desiredSize,
- });
- return t.promise;
- },
- cancel: (e) => {
- (0, r.assert)(e instanceof Error, 'cancel must have a valid reason');
- const t = new r.PromiseCapability();
- this.streamControllers[n].cancelCall = t;
- this.streamControllers[n].isClosed = !0;
- l.postMessage({
- sourceName: o,
- targetName: c,
- stream: s,
- streamId: n,
- reason: wrapReason(e),
- });
- return t.promise;
- },
- },
- a,
- );
- }
- #a(e) {
- const t = e.streamId,
- a = this.sourceName,
- i = e.sourceName,
- n = this.comObj,
- s = this,
- o = this.actionHandler[e.action],
- u = {
- enqueue(e, s = 1, o) {
- if (this.isCancelled) return;
- const c = this.desiredSize;
- this.desiredSize -= s;
- if (c > 0 && this.desiredSize <= 0) {
- this.sinkCapability = new r.PromiseCapability();
- this.ready = this.sinkCapability.promise;
- }
- n.postMessage(
- { sourceName: a, targetName: i, stream: l, streamId: t, chunk: e },
- o,
- );
- },
- close() {
- if (!this.isCancelled) {
- this.isCancelled = !0;
- n.postMessage({ sourceName: a, targetName: i, stream: c, streamId: t });
- delete s.streamSinks[t];
- }
- },
- error(e) {
- (0, r.assert)(e instanceof Error, 'error must have a valid reason');
- if (!this.isCancelled) {
- this.isCancelled = !0;
- n.postMessage({
- sourceName: a,
- targetName: i,
- stream: h,
- streamId: t,
- reason: wrapReason(e),
- });
- }
- },
- sinkCapability: new r.PromiseCapability(),
- onPull: null,
- onCancel: null,
- isCancelled: !1,
- desiredSize: e.desiredSize,
- ready: null,
- };
- u.sinkCapability.resolve();
- u.ready = u.sinkCapability.promise;
- this.streamSinks[t] = u;
- new Promise(function (t) {
- t(o(e.data, u));
- }).then(
- function () {
- n.postMessage({
- sourceName: a,
- targetName: i,
- stream: f,
- streamId: t,
- success: !0,
- });
- },
- function (e) {
- n.postMessage({
- sourceName: a,
- targetName: i,
- stream: f,
- streamId: t,
- reason: wrapReason(e),
- });
- },
- );
- }
- #t(e) {
- const t = e.streamId,
- a = this.sourceName,
- i = e.sourceName,
- n = this.comObj,
- g = this.streamControllers[t],
- p = this.streamSinks[t];
- switch (e.stream) {
- case f:
- e.success ? g.startCall.resolve() : g.startCall.reject(wrapReason(e.reason));
- break;
- case d:
- e.success ? g.pullCall.resolve() : g.pullCall.reject(wrapReason(e.reason));
- break;
- case u:
- if (!p) {
- n.postMessage({
- sourceName: a,
- targetName: i,
- stream: d,
- streamId: t,
- success: !0,
- });
- break;
- }
- p.desiredSize <= 0 && e.desiredSize > 0 && p.sinkCapability.resolve();
- p.desiredSize = e.desiredSize;
- new Promise(function (e) {
- e(p.onPull?.());
- }).then(
- function () {
- n.postMessage({
- sourceName: a,
- targetName: i,
- stream: d,
- streamId: t,
- success: !0,
- });
- },
- function (e) {
- n.postMessage({
- sourceName: a,
- targetName: i,
- stream: d,
- streamId: t,
- reason: wrapReason(e),
- });
- },
- );
- break;
- case l:
- (0, r.assert)(g, 'enqueue should have stream controller');
- if (g.isClosed) break;
- g.controller.enqueue(e.chunk);
- break;
- case c:
- (0, r.assert)(g, 'close should have stream controller');
- if (g.isClosed) break;
- g.isClosed = !0;
- g.controller.close();
- this.#r(g, t);
- break;
- case h:
- (0, r.assert)(g, 'error should have stream controller');
- g.controller.error(wrapReason(e.reason));
- this.#r(g, t);
- break;
- case o:
- e.success ? g.cancelCall.resolve() : g.cancelCall.reject(wrapReason(e.reason));
- this.#r(g, t);
- break;
- case s:
- if (!p) break;
- new Promise(function (t) {
- t(p.onCancel?.(wrapReason(e.reason)));
- }).then(
- function () {
- n.postMessage({
- sourceName: a,
- targetName: i,
- stream: o,
- streamId: t,
- success: !0,
- });
- },
- function (e) {
- n.postMessage({
- sourceName: a,
- targetName: i,
- stream: o,
- streamId: t,
- reason: wrapReason(e),
- });
- },
- );
- p.sinkCapability.reject(wrapReason(e.reason));
- p.isCancelled = !0;
- delete this.streamSinks[t];
- break;
- default:
- throw new Error('Unexpected stream case');
- }
- }
- async #r(e, t) {
- await Promise.allSettled([
- e.startCall?.promise,
- e.pullCall?.promise,
- e.cancelCall?.promise,
- ]);
- delete this.streamControllers[t];
- }
- destroy() {
- this.comObj.removeEventListener('message', this._onComObjOnMessage);
- }
- };
- },
- (e, t, a) => {
- Object.defineProperty(t, '__esModule', { value: !0 });
- t.PDFWorkerStream = void 0;
- var r = a(2);
- t.PDFWorkerStream = class PDFWorkerStream {
- constructor(e) {
- this._msgHandler = e;
- this._contentLength = null;
- this._fullRequestReader = null;
- this._rangeRequestReaders = [];
- }
- getFullReader() {
- (0, r.assert)(
- !this._fullRequestReader,
- 'PDFWorkerStream.getFullReader can only be called once.',
- );
- this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);
- return this._fullRequestReader;
- }
- getRangeReader(e, t) {
- const a = new PDFWorkerStreamRangeReader(e, t, this._msgHandler);
- this._rangeRequestReaders.push(a);
- return a;
- }
- cancelAllRequests(e) {
- this._fullRequestReader && this._fullRequestReader.cancel(e);
- for (const t of this._rangeRequestReaders.slice(0)) t.cancel(e);
- }
- };
- class PDFWorkerStreamReader {
- constructor(e) {
- this._msgHandler = e;
- this.onProgress = null;
- this._contentLength = null;
- this._isRangeSupported = !1;
- this._isStreamingSupported = !1;
- const t = this._msgHandler.sendWithStream('GetReader');
- this._reader = t.getReader();
- this._headersReady = this._msgHandler
- .sendWithPromise('ReaderHeadersReady')
- .then((e) => {
- this._isStreamingSupported = e.isStreamingSupported;
- this._isRangeSupported = e.isRangeSupported;
- this._contentLength = e.contentLength;
- });
- }
- get headersReady() {
- return this._headersReady;
- }
- get contentLength() {
- return this._contentLength;
- }
- get isStreamingSupported() {
- return this._isStreamingSupported;
- }
- get isRangeSupported() {
- return this._isRangeSupported;
- }
- async read() {
- const { value: e, done: t } = await this._reader.read();
- return t ? { value: void 0, done: !0 } : { value: e.buffer, done: !1 };
- }
- cancel(e) {
- this._reader.cancel(e);
- }
- }
- class PDFWorkerStreamRangeReader {
- constructor(e, t, a) {
- this._msgHandler = a;
- this.onProgress = null;
- const r = this._msgHandler.sendWithStream('GetRangeReader', { begin: e, end: t });
- this._reader = r.getReader();
- }
- get isStreamingSupported() {
- return !1;
- }
- async read() {
- const { value: e, done: t } = await this._reader.read();
- return t ? { value: void 0, done: !0 } : { value: e.buffer, done: !1 };
- }
- cancel(e) {
- this._reader.cancel(e);
- }
- }
- },
- ],
- t = {};
- function __w_pdfjs_require__(a) {
- var r = t[a];
- if (void 0 !== r) return r.exports;
- var i = (t[a] = { exports: {} });
- e[a](i, i.exports, __w_pdfjs_require__);
- return i.exports;
- }
- __w_pdfjs_require__.d = (e, t) => {
- for (var a in t)
- __w_pdfjs_require__.o(t, a) &&
- !__w_pdfjs_require__.o(e, a) &&
- Object.defineProperty(e, a, { enumerable: !0, get: t[a] });
- };
- __w_pdfjs_require__.o = (e, t) => Object.prototype.hasOwnProperty.call(e, t);
- __w_pdfjs_require__.r = (e) => {
- 'undefined' != typeof Symbol &&
- Symbol.toStringTag &&
- Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' });
- Object.defineProperty(e, '__esModule', { value: !0 });
- };
- var a = {};
- (() => {
- var e = a;
- Object.defineProperty(e, '__esModule', { value: !0 });
- Object.defineProperty(e, 'WorkerMessageHandler', {
- enumerable: !0,
- get: function () {
- return t.WorkerMessageHandler;
- },
- });
- var t = __w_pdfjs_require__(1);
- })();
- return a;
- })(),
-);
+!function webpackUniversalModuleDefinition(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf.worker",[],t):"object"==typeof exports?exports["pdfjs-dist/build/pdf.worker"]=t():e["pdfjs-dist/build/pdf.worker"]=e.pdfjsWorker=t()}(globalThis,(()=>(()=>{"use strict";var e=[,(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.WorkerTask=t.WorkerMessageHandler=void 0;var r=a(2),i=a(3),n=a(4),s=a(6),o=a(71),c=a(65),l=a(102),h=a(103),u=a(104);class WorkerTask{constructor(e){this.name=e;this.terminated=!1;this._capability=new r.PromiseCapability}get finished(){return this._capability.promise}finish(){this._capability.resolve()}terminate(){this.terminated=!0}ensureNotTerminated(){if(this.terminated)throw new Error("Worker task was terminated")}}t.WorkerTask=WorkerTask;class WorkerMessageHandler{static setup(e,t){let a=!1;e.on("test",(function(t){if(!a){a=!0;e.send("test",t instanceof Uint8Array)}}));e.on("configure",(function(e){(0,r.setVerbosityLevel)(e.verbosity)}));e.on("GetDocRequest",(function(e){return WorkerMessageHandler.createDocumentHandler(e,t)}))}static createDocumentHandler(e,t){let a,d=!1,f=null;const g=new Set,p=(0,r.getVerbosityLevel)(),{docId:m,apiVersion:b}=e,y="3.6.172";if(b!==y)throw new Error(`The API version "${b}" does not match the Worker version "${y}".`);const w=[];for(const e in[])w.push(e);if(w.length)throw new Error("The `Array.prototype` contains unexpected enumerable properties: "+w.join(", ")+"; thus breaking e.g. `for...in` iteration of `Array`s.");if(l.isNodeJS&&"undefined"==typeof Path2D||"undefined"==typeof ReadableStream){const e="The browser/environment lacks native support for critical functionality used by the PDF.js library (e.g. `Path2D` and/or `ReadableStream`); ";if(l.isNodeJS)throw new Error(e+"please use a `legacy`-build instead.");throw new Error(e+"please update to a supported browser.")}const S=m+"_worker";let x=new h.MessageHandler(S,m,t);function ensureNotTerminated(){if(d)throw new Error("Worker was terminated")}function startWorkerTask(e){g.add(e)}function finishWorkerTask(e){e.finish();g.delete(e)}async function loadDocument(e){await a.ensureDoc("checkHeader");await a.ensureDoc("parseStartXRef");await a.ensureDoc("parse",[e]);await a.ensureDoc("checkFirstPage",[e]);await a.ensureDoc("checkLastPage",[e]);const t=await a.ensureDoc("isPureXfa");if(t){const e=new WorkerTask("loadXfaFonts");startWorkerTask(e);await Promise.all([a.loadXfaFonts(x,e).catch((e=>{})).then((()=>finishWorkerTask(e))),a.loadXfaImages()])}const[r,i]=await Promise.all([a.ensureDoc("numPages"),a.ensureDoc("fingerprints")]);return{numPages:r,fingerprints:i,htmlForXfa:t?await a.ensureDoc("htmlForXfa"):null}}function getPdfManager({data:e,password:t,disableAutoFetch:a,rangeChunkSize:n,length:o,docBaseUrl:c,enableXfa:l,evaluatorOptions:h}){const d={source:null,disableAutoFetch:a,docBaseUrl:c,docId:m,enableXfa:l,evaluatorOptions:h,handler:x,length:o,password:t,rangeChunkSize:n},g=new r.PromiseCapability;let p;if(e){try{d.source=e;p=new s.LocalPdfManager(d);g.resolve(p)}catch(e){g.reject(e)}return g.promise}let b,y=[];try{b=new u.PDFWorkerStream(x)}catch(e){g.reject(e);return g.promise}const w=b.getFullReader();w.headersReady.then((function(){if(w.isRangeSupported){d.source=b;d.length=w.contentLength;d.disableAutoFetch||=w.isStreamingSupported;p=new s.NetworkPdfManager(d);for(const e of y)p.sendProgressiveData(e);y=[];g.resolve(p);f=null}})).catch((function(e){g.reject(e);f=null}));let S=0;new Promise((function(e,t){const readChunk=function({value:e,done:a}){try{ensureNotTerminated();if(a){p||function(){const e=(0,i.arrayBuffersToBytes)(y);o&&e.length!==o&&(0,r.warn)("reported HTTP length is different from actual");try{d.source=e;p=new s.LocalPdfManager(d);g.resolve(p)}catch(e){g.reject(e)}y=[]}();f=null;return}S+=e.byteLength;w.isStreamingSupported||x.send("DocProgress",{loaded:S,total:Math.max(S,w.contentLength||0)});p?p.sendProgressiveData(e):y.push(e);w.read().then(readChunk,t)}catch(e){t(e)}};w.read().then(readChunk,t)})).catch((function(e){g.reject(e);f=null}));f=function(e){b.cancelAllRequests(e)};return g.promise}x.on("GetPage",(function(e){return a.getPage(e.pageIndex).then((function(e){return Promise.all([a.ensure(e,"rotate"),a.ensure(e,"ref"),a.ensure(e,"userUnit"),a.ensure(e,"view")]).then((function([e,t,a,r]){return{rotate:e,ref:t,userUnit:a,view:r}}))}))}));x.on("GetPageIndex",(function(e){const t=n.Ref.get(e.num,e.gen);return a.ensureCatalog("getPageIndex",[t])}));x.on("GetDestinations",(function(e){return a.ensureCatalog("destinations")}));x.on("GetDestination",(function(e){return a.ensureCatalog("getDestination",[e.id])}));x.on("GetPageLabels",(function(e){return a.ensureCatalog("pageLabels")}));x.on("GetPageLayout",(function(e){return a.ensureCatalog("pageLayout")}));x.on("GetPageMode",(function(e){return a.ensureCatalog("pageMode")}));x.on("GetViewerPreferences",(function(e){return a.ensureCatalog("viewerPreferences")}));x.on("GetOpenAction",(function(e){return a.ensureCatalog("openAction")}));x.on("GetAttachments",(function(e){return a.ensureCatalog("attachments")}));x.on("GetJavaScript",(function(e){return a.ensureCatalog("javaScript")}));x.on("GetDocJSActions",(function(e){return a.ensureCatalog("jsActions")}));x.on("GetPageJSActions",(function({pageIndex:e}){return a.getPage(e).then((function(e){return a.ensure(e,"jsActions")}))}));x.on("GetOutline",(function(e){return a.ensureCatalog("documentOutline")}));x.on("GetOptionalContentConfig",(function(e){return a.ensureCatalog("optionalContentConfig")}));x.on("GetPermissions",(function(e){return a.ensureCatalog("permissions")}));x.on("GetMetadata",(function(e){return Promise.all([a.ensureDoc("documentInfo"),a.ensureCatalog("metadata")])}));x.on("GetMarkInfo",(function(e){return a.ensureCatalog("markInfo")}));x.on("GetData",(function(e){return a.requestLoadedStream().then((function(e){return e.bytes}))}));x.on("GetAnnotations",(function({pageIndex:e,intent:t}){return a.getPage(e).then((function(a){const r=new WorkerTask(`GetAnnotations: page ${e}`);startWorkerTask(r);return a.getAnnotationsData(x,r,t).then((e=>{finishWorkerTask(r);return e}),(e=>{finishWorkerTask(r);throw e}))}))}));x.on("GetFieldObjects",(function(e){return a.ensureDoc("fieldObjects")}));x.on("HasJSActions",(function(e){return a.ensureDoc("hasJSActions")}));x.on("GetCalculationOrderIds",(function(e){return a.ensureDoc("calculationOrderIds")}));x.on("SaveDocument",(function({isPureXfa:e,numPages:t,annotationStorage:s,filename:o}){const l=[a.requestLoadedStream(),a.ensureCatalog("acroForm"),a.ensureCatalog("acroFormRef"),a.ensureDoc("xref"),a.ensureDoc("startXRef")],h=e?null:(0,i.getNewAnnotationsMap)(s);if(h)for(const[e,t]of h)l.push(a.getPage(e).then((a=>{const r=new WorkerTask(`Save (editor): page ${e}`);return a.saveNewAnnotations(x,r,t).finally((function(){finishWorkerTask(r)}))})));if(e)l.push(a.serializeXfaData(s));else for(let e=0;ee.needAppearances)),g=a instanceof n.Dict&&a.get("XFA")||null;let p=null,m=!1;if(Array.isArray(g)){for(let e=0,t=g.length;e{"string"==typeof a&&(e[t]=(0,r.stringToPDFString)(a))}));b={rootRef:s.trailer.getRaw("Root")||null,encryptRef:s.trailer.getRaw("Encrypt")||null,newRef:s.getNewTemporaryRef(),infoRef:s.trailer.getRaw("Info")||null,info:e,fileIds:s.trailer.get("ID")||null,startXRef:s.lastXRefStreamPos??l,filename:o}}try{return(0,c.incrementalUpdate)({originalData:t.bytes,xrefInfo:b,newRefs:u,xref:s,hasXfa:!!g,xfaDatasetsRef:p,hasXfaDatasetsEntry:m,needAppearances:f,acroFormRef:i,acroForm:a,xfaData:d})}finally{s.resetNewTemporaryRef()}}))}));x.on("GetOperatorList",(function(e,t){const i=e.pageIndex;a.getPage(i).then((function(a){const n=new WorkerTask(`GetOperatorList: page ${i}`);startWorkerTask(n);const s=p>=r.VerbosityLevel.INFOS?Date.now():0;a.getOperatorList({handler:x,sink:t,task:n,intent:e.intent,cacheKey:e.cacheKey,annotationStorage:e.annotationStorage}).then((function(e){finishWorkerTask(n);s&&(0,r.info)(`page=${i+1} - getOperatorList: time=${Date.now()-s}ms, len=${e.length}`);t.close()}),(function(e){finishWorkerTask(n);n.terminated||t.error(e)}))}))}));x.on("GetTextContent",(function(e,t){const{pageIndex:i,includeMarkedContent:n,disableNormalization:s}=e;a.getPage(i).then((function(e){const a=new WorkerTask("GetTextContent: page "+i);startWorkerTask(a);const o=p>=r.VerbosityLevel.INFOS?Date.now():0;e.extractTextContent({handler:x,task:a,sink:t,includeMarkedContent:n,disableNormalization:s}).then((function(){finishWorkerTask(a);o&&(0,r.info)(`page=${i+1} - getTextContent: time=`+(Date.now()-o)+"ms");t.close()}),(function(e){finishWorkerTask(a);a.terminated||t.error(e)}))}))}));x.on("GetStructTree",(function(e){return a.getPage(e.pageIndex).then((function(e){return a.ensure(e,"getStructTree")}))}));x.on("FontFallback",(function(e){return a.fontFallback(e.id,x)}));x.on("Cleanup",(function(e){return a.cleanup(!0)}));x.on("Terminate",(function(e){d=!0;const t=[];if(a){a.terminate(new r.AbortException("Worker was terminated."));const e=a.cleanup();t.push(e);a=null}else(0,o.clearGlobalCaches)();f&&f(new r.AbortException("Worker was terminated."));for(const e of g){t.push(e.finished);e.terminate()}return Promise.all(t).then((function(){x.destroy();x=null}))}));x.on("Ready",(function(t){!function setupDoc(e){function onSuccess(e){ensureNotTerminated();x.send("GetDoc",{pdfInfo:e})}function onFailure(e){ensureNotTerminated();if(e instanceof r.PasswordException){const t=new WorkerTask(`PasswordException: response ${e.code}`);startWorkerTask(t);x.sendWithPromise("PasswordRequest",e).then((function({password:e}){finishWorkerTask(t);a.updatePassword(e);pdfManagerReady()})).catch((function(){finishWorkerTask(t);x.send("DocException",e)}))}else e instanceof r.InvalidPDFException||e instanceof r.MissingPDFException||e instanceof r.UnexpectedResponseException||e instanceof r.UnknownErrorException?x.send("DocException",e):x.send("DocException",new r.UnknownErrorException(e.message,e.toString()))}function pdfManagerReady(){ensureNotTerminated();loadDocument(!1).then(onSuccess,(function(e){ensureNotTerminated();e instanceof i.XRefParseException?a.requestLoadedStream().then((function(){ensureNotTerminated();loadDocument(!0).then(onSuccess,onFailure)})):onFailure(e)}))}ensureNotTerminated();getPdfManager(e).then((function(e){if(d){e.terminate(new r.AbortException("Worker was terminated."));throw new Error("Worker was terminated")}a=e;a.requestLoadedStream(!0).then((e=>{x.send("DataLoaded",{length:e.bytes.byteLength})}))})).then(pdfManagerReady,onFailure)}(e);e=null}));return S}static initializeFromPort(e){const t=new h.MessageHandler("worker","main",e);WorkerMessageHandler.setup(t,e);t.send("ready",null)}}t.WorkerMessageHandler=WorkerMessageHandler;"undefined"==typeof window&&!l.isNodeJS&&"undefined"!=typeof self&&function isMessagePort(e){return"function"==typeof e.postMessage&&"onmessage"in e}(self)&&WorkerMessageHandler.initializeFromPort(self)},(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.VerbosityLevel=t.Util=t.UnknownErrorException=t.UnexpectedResponseException=t.TextRenderingMode=t.RenderingIntentFlag=t.PromiseCapability=t.PermissionFlag=t.PasswordResponses=t.PasswordException=t.PageActionEventType=t.OPS=t.MissingPDFException=t.MAX_IMAGE_SIZE_TO_CACHE=t.LINE_FACTOR=t.LINE_DESCENT_FACTOR=t.InvalidPDFException=t.ImageKind=t.IDENTITY_MATRIX=t.FormatError=t.FeatureTest=t.FONT_IDENTITY_MATRIX=t.DocumentActionEventType=t.CMapCompressionType=t.BaseException=t.BASELINE_FACTOR=t.AnnotationType=t.AnnotationStateModelType=t.AnnotationReviewState=t.AnnotationReplyType=t.AnnotationMode=t.AnnotationMarkedState=t.AnnotationFlag=t.AnnotationFieldFlag=t.AnnotationEditorType=t.AnnotationEditorPrefix=t.AnnotationEditorParamsType=t.AnnotationBorderStyleType=t.AnnotationActionEventType=t.AbortException=void 0;t.assert=function assert(e,t){e||unreachable(t)};t.bytesToString=function bytesToString(e){"object"==typeof e&&void 0!==e?.length||unreachable("Invalid argument for bytesToString");const t=e.length,a=8192;if(t=2&&(e=`http://${e}`)}if(a.tryConvertEncoding)try{e=stringToUTF8String(e)}catch(e){}}const r=t?new URL(e,t):new URL(e);if(function _isValidProtocol(e){switch(e?.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(r))return r}catch(e){}return null};t.getModificationDate=function getModificationDate(e=new Date){return[e.getUTCFullYear().toString(),(e.getUTCMonth()+1).toString().padStart(2,"0"),e.getUTCDate().toString().padStart(2,"0"),e.getUTCHours().toString().padStart(2,"0"),e.getUTCMinutes().toString().padStart(2,"0"),e.getUTCSeconds().toString().padStart(2,"0")].join("")};t.getVerbosityLevel=function getVerbosityLevel(){return r};t.info=function info(e){r>=a.INFOS&&console.log(`Info: ${e}`)};t.isArrayBuffer=function isArrayBuffer(e){return"object"==typeof e&&void 0!==e?.byteLength};t.isArrayEqual=function isArrayEqual(e,t){if(e.length!==t.length)return!1;for(let a=0,r=e.length;at?t.normalize("NFKC"):c.get(a)))};t.objectFromMap=function objectFromMap(e){const t=Object.create(null);for(const[a,r]of e)t[a]=r;return t};t.objectSize=function objectSize(e){return Object.keys(e).length};t.setVerbosityLevel=function setVerbosityLevel(e){Number.isInteger(e)&&(r=e)};t.shadow=shadow;t.string32=function string32(e){return String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,255&e)};t.stringToBytes=stringToBytes;t.stringToPDFString=function stringToPDFString(e){if(e[0]>="ï"){let t;"þ"===e[0]&&"ÿ"===e[1]?t="utf-16be":"ÿ"===e[0]&&"þ"===e[1]?t="utf-16le":"ï"===e[0]&&"»"===e[1]&&"¿"===e[2]&&(t="utf-8");if(t)try{const a=new TextDecoder(t,{fatal:!0}),r=stringToBytes(e);return a.decode(r)}catch(e){warn(`stringToPDFString: "${e}".`)}}const t=[];for(let a=0,r=e.length;a=a.WARNINGS&&console.log(`Warning: ${e}`)}function unreachable(e){throw new Error(e)}function shadow(e,t,a,r=!1){Object.defineProperty(e,t,{value:a,enumerable:!r,configurable:!0,writable:!1});return a}const i=function BaseExceptionClosure(){function BaseException(e,t){this.constructor===BaseException&&unreachable("Cannot initialize BaseException.");this.message=e;this.name=t}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();t.BaseException=i;t.PasswordException=class PasswordException extends i{constructor(e,t){super(e,"PasswordException");this.code=t}};t.UnknownErrorException=class UnknownErrorException extends i{constructor(e,t){super(e,"UnknownErrorException");this.details=t}};t.InvalidPDFException=class InvalidPDFException extends i{constructor(e){super(e,"InvalidPDFException")}};t.MissingPDFException=class MissingPDFException extends i{constructor(e){super(e,"MissingPDFException")}};t.UnexpectedResponseException=class UnexpectedResponseException extends i{constructor(e,t){super(e,"UnexpectedResponseException");this.status=t}};t.FormatError=class FormatError extends i{constructor(e){super(e,"FormatError")}};t.AbortException=class AbortException extends i{constructor(e){super(e,"AbortException")}};function stringToBytes(e){"string"!=typeof e&&unreachable("Invalid argument for stringToBytes");const t=e.length,a=new Uint8Array(t);for(let r=0;re.toString(16).padStart(2,"0")));class Util{static makeHexColor(e,t,a){return`#${n[e]}${n[t]}${n[a]}`}static scaleMinMax(e,t){let a;if(e[0]){if(e[0]<0){a=t[0];t[0]=t[1];t[1]=a}t[0]*=e[0];t[1]*=e[0];if(e[3]<0){a=t[2];t[2]=t[3];t[3]=a}t[2]*=e[3];t[3]*=e[3]}else{a=t[0];t[0]=t[2];t[2]=a;a=t[1];t[1]=t[3];t[3]=a;if(e[1]<0){a=t[2];t[2]=t[3];t[3]=a}t[2]*=e[1];t[3]*=e[1];if(e[2]<0){a=t[0];t[0]=t[1];t[1]=a}t[0]*=e[2];t[1]*=e[2]}t[0]+=e[4];t[1]+=e[4];t[2]+=e[5];t[3]+=e[5]}static transform(e,t){return[e[0]*t[0]+e[2]*t[1],e[1]*t[0]+e[3]*t[1],e[0]*t[2]+e[2]*t[3],e[1]*t[2]+e[3]*t[3],e[0]*t[4]+e[2]*t[5]+e[4],e[1]*t[4]+e[3]*t[5]+e[5]]}static applyTransform(e,t){return[e[0]*t[0]+e[1]*t[2]+t[4],e[0]*t[1]+e[1]*t[3]+t[5]]}static applyInverseTransform(e,t){const a=t[0]*t[3]-t[1]*t[2];return[(e[0]*t[3]-e[1]*t[2]+t[2]*t[5]-t[4]*t[3])/a,(-e[0]*t[1]+e[1]*t[0]+t[4]*t[1]-t[5]*t[0])/a]}static getAxialAlignedBoundingBox(e,t){const a=Util.applyTransform(e,t),r=Util.applyTransform(e.slice(2,4),t),i=Util.applyTransform([e[0],e[3]],t),n=Util.applyTransform([e[2],e[1]],t);return[Math.min(a[0],r[0],i[0],n[0]),Math.min(a[1],r[1],i[1],n[1]),Math.max(a[0],r[0],i[0],n[0]),Math.max(a[1],r[1],i[1],n[1])]}static inverseTransform(e){const t=e[0]*e[3]-e[1]*e[2];return[e[3]/t,-e[1]/t,-e[2]/t,e[0]/t,(e[2]*e[5]-e[4]*e[3])/t,(e[4]*e[1]-e[5]*e[0])/t]}static singularValueDecompose2dScale(e){const t=[e[0],e[2],e[1],e[3]],a=e[0]*t[0]+e[1]*t[2],r=e[0]*t[1]+e[1]*t[3],i=e[2]*t[0]+e[3]*t[2],n=e[2]*t[1]+e[3]*t[3],s=(a+n)/2,o=Math.sqrt((a+n)**2-4*(a*n-i*r))/2,c=s+o||1,l=s-o||1;return[Math.sqrt(c),Math.sqrt(l)]}static normalizeRect(e){const t=e.slice(0);if(e[0]>e[2]){t[0]=e[2];t[2]=e[0]}if(e[1]>e[3]){t[1]=e[3];t[3]=e[1]}return t}static intersect(e,t){const a=Math.max(Math.min(e[0],e[2]),Math.min(t[0],t[2])),r=Math.min(Math.max(e[0],e[2]),Math.max(t[0],t[2]));if(a>r)return null;const i=Math.max(Math.min(e[1],e[3]),Math.min(t[1],t[3])),n=Math.min(Math.max(e[1],e[3]),Math.max(t[1],t[3]));return i>n?null:[a,i,r,n]}static bezierBoundingBox(e,t,a,r,i,n,s,o){const c=[],l=[[],[]];let h,u,d,f,g,p,m,b;for(let l=0;l<2;++l){if(0===l){u=6*e-12*a+6*i;h=-3*e+9*a-9*i+3*s;d=3*a-3*e}else{u=6*t-12*r+6*n;h=-3*t+9*r-9*n+3*o;d=3*r-3*t}if(Math.abs(h)<1e-12){if(Math.abs(u)<1e-12)continue;f=-d/u;0{this.resolve=t=>{this.#e=!0;e(t)};this.reject=e=>{this.#e=!0;t(e)}}))}get settled(){return this.#e}};let o=null,c=null},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.XRefParseException=t.XRefEntryException=t.ParserEOFException=t.PDF_VERSION_REGEXP=t.MissingDataException=void 0;t.arrayBuffersToBytes=function arrayBuffersToBytes(e){const t=e.length;if(0===t)return new Uint8Array(0);if(1===t)return new Uint8Array(e[0]);let a=0;for(let r=0;r=0;t--){const r=s[t];if(r instanceof i.Dict)for(const t of r.getKeys()){const s=a[t];if(!s)continue;const o=[];_collectJS(r.getRaw(t),e,o,new i.RefSet);o.length>0&&(n[s]=o)}}if(t.has("A")){const a=[];_collectJS(t.get("A"),e,a,new i.RefSet);a.length>0&&(n.Action=a)}return(0,r.objectSize)(n)>0?n:null};t.encodeToXmlString=function encodeToXmlString(e){const t=[];let a=0;for(let r=0,i=e.length;r55295&&(i<57344||i>65533)&&r++;a=r+1}}if(0===t.length)return e;a126||35===i||40===i||41===i||60===i||62===i||91===i||93===i||123===i||125===i||47===i||37===i){a"\n"===e?"\\n":"\r"===e?"\\r":`\\${e}`))};t.getInheritableProperty=getInheritableProperty;t.getLookupTableFactory=function getLookupTableFactory(e){let t;return function(){if(e){t=Object.create(null);e(t);e=null}return t}};t.getNewAnnotationsMap=function getNewAnnotationsMap(e){if(!e)return null;const t=new Map;for(const[a,i]of e){if(!a.startsWith(r.AnnotationEditorPrefix))continue;let e=t.get(i.pageIndex);if(!e){e=[];t.set(i.pageIndex,e)}e.push(i)}return t.size>0?t:null};t.getRotationMatrix=function getRotationMatrix(e,t,a){switch(e){case 90:return[0,1,-1,0,t,0];case 180:return[-1,0,0,-1,t,a];case 270:return[0,-1,1,0,0,a];default:throw new Error("Invalid rotation")}};t.isAscii=function isAscii(e){return/^[\x00-\x7F]*$/.test(e)};t.isWhiteSpace=function isWhiteSpace(e){return 32===e||9===e||13===e||10===e};t.log2=function log2(e){if(e<=0)return 0;return Math.ceil(Math.log2(e))};t.numberToString=function numberToString(e){if(Number.isInteger(e))return e.toString();const t=Math.round(100*e);if(t%100==0)return(t/100).toString();if(t%10==0)return e.toFixed(1);return e.toFixed(2)};t.parseXFAPath=function parseXFAPath(e){const t=/(.+)\[(\d+)\]$/;return e.split(".").map((e=>{const a=e.match(t);return a?{name:a[1],pos:parseInt(a[2],10)}:{name:e,pos:0}}))};t.readInt8=function readInt8(e,t){return e[t]<<24>>24};t.readUint16=function readUint16(e,t){return e[t]<<8|e[t+1]};t.readUint32=function readUint32(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0};t.recoverJsURL=function recoverJsURL(e){const t=new RegExp("^\\s*("+["app.launchURL","window.open","xfa.host.gotoURL"].join("|").replaceAll(".","\\.")+")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))","i").exec(e);if(t&&t[2]){const e=t[2];let a=!1;"true"===t[3]&&"app.launchURL"===t[1]&&(a=!0);return{url:e,newWindow:a}}return null};t.stringToUTF16HexString=function stringToUTF16HexString(e){const t=[];for(let a=0,r=e.length;a>8&255).toString(16).padStart(2,"0"),(255&r).toString(16).padStart(2,"0"))}return t.join("")};t.stringToUTF16String=function stringToUTF16String(e,t=!1){const a=[];t&&a.push("þÿ");for(let t=0,r=e.length;t>8&255),String.fromCharCode(255&r))}return a.join("")};t.toRomanNumerals=function toRomanNumerals(e,t=!1){(0,r.assert)(Number.isInteger(e)&&e>0,"The number should be a positive integer.");const a=[];let i;for(;e>=1e3;){e-=1e3;a.push("M")}i=e/100|0;e%=100;a.push(s[i]);i=e/10|0;e%=10;a.push(s[10+i]);a.push(s[20+e]);const n=a.join("");return t?n.toLowerCase():n};t.validateCSSFont=function validateCSSFont(e){const t=new Set(["100","200","300","400","500","600","700","800","900","1000","normal","bold","bolder","lighter"]),{fontFamily:a,fontWeight:i,italicAngle:n}=e,s=/^("|').*("|')$/.exec(a);if(s&&s[1]===s[2]){if(new RegExp(`[^\\\\]${s[1]}`).test(a.slice(1,-1))){(0,r.warn)(`XFA - FontFamily contains unescaped ${s[1]}: ${a}.`);return!1}}else for(const e of a.split(/[ \t]+/))if(/^(\d|(-(\d|-)))/.test(e)||!/^[\w-\\]+$/.test(e)){(0,r.warn)(`XFA - FontFamily contains invalid : ${a}.`);return!1}const o=i?i.toString():"";e.fontWeight=t.has(o)?o:"400";const c=parseFloat(n);e.italicAngle=isNaN(c)||c<-90||c>90?"14":n.toString();return!0};var r=a(2),i=a(4),n=a(5);t.PDF_VERSION_REGEXP=/^[1-9]\.\d$/;class MissingDataException extends r.BaseException{constructor(e,t){super(`Missing data [${e}, ${t})`,"MissingDataException");this.begin=e;this.end=t}}t.MissingDataException=MissingDataException;class ParserEOFException extends r.BaseException{constructor(e){super(e,"ParserEOFException")}}t.ParserEOFException=ParserEOFException;class XRefEntryException extends r.BaseException{constructor(e){super(e,"XRefEntryException")}}t.XRefEntryException=XRefEntryException;class XRefParseException extends r.BaseException{constructor(e){super(e,"XRefParseException")}}t.XRefParseException=XRefParseException;function getInheritableProperty({dict:e,key:t,getArray:a=!1,stopWhenFound:r=!0}){let n;const s=new i.RefSet;for(;e instanceof i.Dict&&(!e.objId||!s.has(e.objId));){e.objId&&s.put(e.objId);const i=a?e.getArray(t):e.get(t);if(void 0!==i){if(r)return i;(n||=[]).push(i)}e=e.get("Parent")}return n}const s=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"];function _collectJS(e,t,a,s){if(!e)return;let o=null;if(e instanceof i.Ref){if(s.has(e))return;o=e;s.put(o);e=t.fetch(e)}if(Array.isArray(e))for(const r of e)_collectJS(r,t,a,s);else if(e instanceof i.Dict){if((0,i.isName)(e.get("S"),"JavaScript")){const t=e.get("JS");let i;t instanceof n.BaseStream?i=t.getString():"string"==typeof t&&(i=t);i&&=(0,r.stringToPDFString)(i).replaceAll("\0","");i&&a.push(i)}_collectJS(e.getRaw("Next"),t,a,s)}o&&s.remove(o)}const o={60:"<",62:">",38:"&",34:""",39:"'"}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.RefSetCache=t.RefSet=t.Ref=t.Name=t.EOF=t.Dict=t.Cmd=t.CIRCULAR_REF=void 0;t.clearPrimitiveCaches=function clearPrimitiveCaches(){s=Object.create(null);o=Object.create(null);c=Object.create(null)};t.isCmd=function isCmd(e,t){return e instanceof Cmd&&(void 0===t||e.cmd===t)};t.isDict=function isDict(e,t){return e instanceof Dict&&(void 0===t||isName(e.get("Type"),t))};t.isName=isName;t.isRefsEqual=function isRefsEqual(e,t){return e.num===t.num&&e.gen===t.gen};var r=a(2);const i=Symbol("CIRCULAR_REF");t.CIRCULAR_REF=i;const n=Symbol("EOF");t.EOF=n;let s=Object.create(null),o=Object.create(null),c=Object.create(null);class Name{constructor(e){this.name=e}static get(e){return o[e]||=new Name(e)}}t.Name=Name;class Cmd{constructor(e){this.cmd=e}static get(e){return s[e]||=new Cmd(e)}}t.Cmd=Cmd;const l=function nonSerializableClosure(){return l};class Dict{constructor(e=null){this._map=Object.create(null);this.xref=e;this.objId=null;this.suppressEncryption=!1;this.__nonSerializable__=l}assignXref(e){this.xref=e}get size(){return Object.keys(this._map).length}get(e,t,a){let r=this._map[e];if(void 0===r&&void 0!==t){r=this._map[t];void 0===r&&void 0!==a&&(r=this._map[a])}return r instanceof Ref&&this.xref?this.xref.fetch(r,this.suppressEncryption):r}async getAsync(e,t,a){let r=this._map[e];if(void 0===r&&void 0!==t){r=this._map[t];void 0===r&&void 0!==a&&(r=this._map[a])}return r instanceof Ref&&this.xref?this.xref.fetchAsync(r,this.suppressEncryption):r}getArray(e,t,a){let r=this._map[e];if(void 0===r&&void 0!==t){r=this._map[t];void 0===r&&void 0!==a&&(r=this._map[a])}r instanceof Ref&&this.xref&&(r=this.xref.fetch(r,this.suppressEncryption));if(Array.isArray(r)){r=r.slice();for(let e=0,t=r.length;e{(0,r.unreachable)("Should not call `set` on the empty dictionary.")};return(0,r.shadow)(this,"empty",e)}static merge({xref:e,dictArray:t,mergeSubDicts:a=!1}){const r=new Dict(e),i=new Map;for(const e of t)if(e instanceof Dict)for(const[t,r]of Object.entries(e._map)){let e=i.get(t);if(void 0===e){e=[];i.set(t,e)}else if(!(a&&r instanceof Dict))continue;e.push(r)}for(const[t,a]of i){if(1===a.length||!(a[0]instanceof Dict)){r._map[t]=a[0];continue}const i=new Dict(e);for(const e of a)for(const[t,a]of Object.entries(e._map))void 0===i._map[t]&&(i._map[t]=a);i.size>0&&(r._map[t]=i)}i.clear();return r.size>0?r:Dict.empty}}t.Dict=Dict;class Ref{constructor(e,t){this.num=e;this.gen=t}toString(){return 0===this.gen?`${this.num}R`:`${this.num}R${this.gen}`}static get(e,t){const a=0===t?`${e}R`:`${e}R${t}`;return c[a]||=new Ref(e,t)}}t.Ref=Ref;class RefSet{constructor(e=null){this._set=new Set(e&&e._set)}has(e){return this._set.has(e.toString())}put(e){this._set.add(e.toString())}remove(e){this._set.delete(e.toString())}[Symbol.iterator](){return this._set.values()}clear(){this._set.clear()}}t.RefSet=RefSet;class RefSetCache{constructor(){this._map=new Map}get size(){return this._map.size}get(e){return this._map.get(e.toString())}has(e){return this._map.has(e.toString())}put(e,t){this._map.set(e.toString(),t)}putAlias(e,t){this._map.set(e.toString(),this.get(t))}[Symbol.iterator](){return this._map.values()}clear(){this._map.clear()}}t.RefSetCache=RefSetCache;function isName(e,t){return e instanceof Name&&(void 0===t||e.name===t)}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.BaseStream=void 0;var r=a(2);class BaseStream{constructor(){this.constructor===BaseStream&&(0,r.unreachable)("Cannot initialize BaseStream.")}get length(){(0,r.unreachable)("Abstract getter `length` accessed")}get isEmpty(){(0,r.unreachable)("Abstract getter `isEmpty` accessed")}get isDataLoaded(){return(0,r.shadow)(this,"isDataLoaded",!0)}getByte(){(0,r.unreachable)("Abstract method `getByte` called")}getBytes(e){(0,r.unreachable)("Abstract method `getBytes` called")}peekByte(){const e=this.getByte();-1!==e&&this.pos--;return e}peekBytes(e){const t=this.getBytes(e);this.pos-=t.length;return t}getUint16(){const e=this.getByte(),t=this.getByte();return-1===e||-1===t?-1:(e<<8)+t}getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()}getByteRange(e,t){(0,r.unreachable)("Abstract method `getByteRange` called")}getString(e){return(0,r.bytesToString)(this.getBytes(e))}skip(e){this.pos+=e||1}reset(){(0,r.unreachable)("Abstract method `reset` called")}moveStart(){(0,r.unreachable)("Abstract method `moveStart` called")}makeSubStream(e,t,a=null){(0,r.unreachable)("Abstract method `makeSubStream` called")}getBaseStreams(){return null}}t.BaseStream=BaseStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.NetworkPdfManager=t.LocalPdfManager=void 0;var r=a(2),i=a(7),n=a(3),s=a(9),o=a(8);class BasePdfManager{constructor(e){this.constructor===BasePdfManager&&(0,r.unreachable)("Cannot initialize BasePdfManager.");this._docBaseUrl=function parseDocBaseUrl(e){if(e){const t=(0,r.createValidAbsoluteUrl)(e);if(t)return t.href;(0,r.warn)(`Invalid absolute docBaseUrl: "${e}".`)}return null}(e.docBaseUrl);this._docId=e.docId;this._password=e.password;this.enableXfa=e.enableXfa;e.evaluatorOptions.isOffscreenCanvasSupported&&=r.FeatureTest.isOffscreenCanvasSupported;this.evaluatorOptions=e.evaluatorOptions}get docId(){return this._docId}get password(){return this._password}get docBaseUrl(){const e=this.pdfDocument.catalog;return(0,r.shadow)(this,"docBaseUrl",e.baseUrl||this._docBaseUrl)}ensureDoc(e,t){return this.ensure(this.pdfDocument,e,t)}ensureXRef(e,t){return this.ensure(this.pdfDocument.xref,e,t)}ensureCatalog(e,t){return this.ensure(this.pdfDocument.catalog,e,t)}getPage(e){return this.pdfDocument.getPage(e)}fontFallback(e,t){return this.pdfDocument.fontFallback(e,t)}loadXfaFonts(e,t){return this.pdfDocument.loadXfaFonts(e,t)}loadXfaImages(){return this.pdfDocument.loadXfaImages()}serializeXfaData(e){return this.pdfDocument.serializeXfaData(e)}cleanup(e=!1){return this.pdfDocument.cleanup(e)}async ensure(e,t,a){(0,r.unreachable)("Abstract method `ensure` called")}requestRange(e,t){(0,r.unreachable)("Abstract method `requestRange` called")}requestLoadedStream(e=!1){(0,r.unreachable)("Abstract method `requestLoadedStream` called")}sendProgressiveData(e){(0,r.unreachable)("Abstract method `sendProgressiveData` called")}updatePassword(e){this._password=e}terminate(e){(0,r.unreachable)("Abstract method `terminate` called")}}t.LocalPdfManager=class LocalPdfManager extends BasePdfManager{constructor(e){super(e);const t=new o.Stream(e.source);this.pdfDocument=new s.PDFDocument(this,t);this._loadedStreamPromise=Promise.resolve(t)}async ensure(e,t,a){const r=e[t];return"function"==typeof r?r.apply(e,a):r}requestRange(e,t){return Promise.resolve()}requestLoadedStream(e=!1){return this._loadedStreamPromise}terminate(e){}};t.NetworkPdfManager=class NetworkPdfManager extends BasePdfManager{constructor(e){super(e);this.streamManager=new i.ChunkedStreamManager(e.source,{msgHandler:e.handler,length:e.length,disableAutoFetch:e.disableAutoFetch,rangeChunkSize:e.rangeChunkSize});this.pdfDocument=new s.PDFDocument(this,this.streamManager.getStream())}async ensure(e,t,a){try{const r=e[t];return"function"==typeof r?r.apply(e,a):r}catch(r){if(!(r instanceof n.MissingDataException))throw r;await this.requestRange(r.begin,r.end);return this.ensure(e,t,a)}}requestRange(e,t){return this.streamManager.requestRange(e,t)}requestLoadedStream(e=!1){return this.streamManager.requestAllChunks(e)}sendProgressiveData(e){this.streamManager.onReceiveData({chunk:e})}terminate(e){this.streamManager.abort(e)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ChunkedStreamManager=t.ChunkedStream=void 0;var r=a(3),i=a(2),n=a(8);class ChunkedStream extends n.Stream{constructor(e,t,a){super(new Uint8Array(e),0,e,null);this.chunkSize=t;this._loadedChunks=new Set;this.numChunks=Math.ceil(e/t);this.manager=a;this.progressiveDataLength=0;this.lastSuccessfulEnsureByteChunk=-1}getMissingChunks(){const e=[];for(let t=0,a=this.numChunks;t=this.end?this.numChunks:Math.floor(t/this.chunkSize);for(let e=a;ethis.numChunks)&&t!==this.lastSuccessfulEnsureByteChunk){if(!this._loadedChunks.has(t))throw new r.MissingDataException(e,e+1);this.lastSuccessfulEnsureByteChunk=t}}ensureRange(e,t){if(e>=t)return;if(t<=this.progressiveDataLength)return;const a=Math.floor(e/this.chunkSize);if(a>this.numChunks)return;const i=Math.min(Math.floor((t-1)/this.chunkSize)+1,this.numChunks);for(let n=a;n=this.end)return-1;e>=this.progressiveDataLength&&this.ensureByte(e);return this.bytes[this.pos++]}getBytes(e){const t=this.bytes,a=this.pos,r=this.end;if(!e){r>this.progressiveDataLength&&this.ensureRange(a,r);return t.subarray(a,r)}let i=a+e;i>r&&(i=r);i>this.progressiveDataLength&&this.ensureRange(a,i);this.pos=i;return t.subarray(a,i)}getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);t>this.progressiveDataLength&&this.ensureRange(e,t);return this.bytes.subarray(e,t)}makeSubStream(e,t,a=null){t?e+t>this.progressiveDataLength&&this.ensureRange(e,e+t):e>=this.progressiveDataLength&&this.ensureByte(e);function ChunkedStreamSubstream(){}ChunkedStreamSubstream.prototype=Object.create(this);ChunkedStreamSubstream.prototype.getMissingChunks=function(){const e=this.chunkSize,t=Math.floor(this.start/e),a=Math.floor((this.end-1)/e)+1,r=[];for(let e=t;e{const readChunk=({value:s,done:o})=>{try{if(o){const t=(0,r.arrayBuffersToBytes)(i);i=null;e(t);return}n+=s.byteLength;a.isStreamingSupported&&this.onProgress({loaded:n});i.push(s);a.read().then(readChunk,t)}catch(e){t(e)}};a.read().then(readChunk,t)})).then((t=>{this.aborted||this.onReceiveData({chunk:t,begin:e})}))}requestAllChunks(e=!1){if(!e){const e=this.stream.getMissingChunks();this._requestChunks(e)}return this._loadedStreamCapability.promise}_requestChunks(e){const t=this.currRequestId++,a=new Set;this._chunksNeededByRequest.set(t,a);for(const t of e)this.stream.hasChunk(t)||a.add(t);if(0===a.size)return Promise.resolve();const r=new i.PromiseCapability;this._promisesByRequest.set(t,r);const n=[];for(const e of a){let a=this._requestsByChunk.get(e);if(!a){a=[];this._requestsByChunk.set(e,a);n.push(e)}a.push(t)}if(n.length>0){const e=this.groupChunks(n);for(const t of e){const e=t.beginChunk*this.chunkSize,a=Math.min(t.endChunk*this.chunkSize,this.length);this.sendRequest(e,a).catch(r.reject)}}return r.promise.catch((e=>{if(!this.aborted)throw e}))}getStream(){return this.stream}requestRange(e,t){t=Math.min(t,this.length);const a=this.getBeginChunk(e),r=this.getEndChunk(t),i=[];for(let e=a;e=0&&r+1!==n){t.push({beginChunk:a,endChunk:r+1});a=n}i+1===e.length&&t.push({beginChunk:a,endChunk:n+1});r=n}return t}onProgress(e){this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize+e.loaded,total:this.length})}onReceiveData(e){const t=e.chunk,a=void 0===e.begin,r=a?this.progressiveDataLength:e.begin,i=r+t.byteLength,n=Math.floor(r/this.chunkSize),s=i0||o.push(a)}}}if(!this.disableAutoFetch&&0===this._requestsByChunk.size){let e;if(1===this.stream.numChunksLoaded){const t=this.stream.numChunks-1;this.stream.hasChunk(t)||(e=t)}else e=this.stream.nextEmptyChunk(s);Number.isInteger(e)&&this._requestChunks([e])}for(const e of o){const t=this._promisesByRequest.get(e);this._promisesByRequest.delete(e);t.resolve()}this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length})}onError(e){this._loadedStreamCapability.reject(e)}getBeginChunk(e){return Math.floor(e/this.chunkSize)}getEndChunk(e){return Math.floor((e-1)/this.chunkSize)+1}abort(e){this.aborted=!0;this.pdfNetworkStream&&this.pdfNetworkStream.cancelAllRequests(e);for(const t of this._promisesByRequest.values())t.reject(e)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.StringStream=t.Stream=t.NullStream=void 0;var r=a(5),i=a(2);class Stream extends r.BaseStream{constructor(e,t,a,r){super();this.bytes=e instanceof Uint8Array?e:new Uint8Array(e);this.start=t||0;this.pos=this.start;this.end=t+a||this.bytes.length;this.dict=r}get length(){return this.end-this.start}get isEmpty(){return 0===this.length}getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]}getBytes(e){const t=this.bytes,a=this.pos,r=this.end;if(!e)return t.subarray(a,r);let i=a+e;i>r&&(i=r);this.pos=i;return t.subarray(a,i)}getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);return this.bytes.subarray(e,t)}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(e,t,a=null){return new Stream(this.bytes.buffer,e,t,a)}}t.Stream=Stream;t.StringStream=class StringStream extends Stream{constructor(e){super((0,i.stringToBytes)(e))}};t.NullStream=class NullStream extends Stream{constructor(){super(new Uint8Array(0))}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Page=t.PDFDocument=void 0;var r=a(10),i=a(2),n=a(3),s=a(4),o=a(51),c=a(5),l=a(67),h=a(69),u=a(71),d=a(100),f=a(16),g=a(8),p=a(75),m=a(63),b=a(13),y=a(18),w=a(74),S=a(65),x=a(76),C=a(101);const k=[0,0,612,792];class Page{constructor({pdfManager:e,xref:t,pageIndex:a,pageDict:r,ref:i,globalIdFactory:n,fontCache:s,builtInCMapCache:o,standardFontDataCache:c,globalImageCache:l,nonBlendModesSet:h,xfaFactory:u}){this.pdfManager=e;this.pageIndex=a;this.pageDict=r;this.xref=t;this.ref=i;this.fontCache=s;this.builtInCMapCache=o;this.standardFontDataCache=c;this.globalImageCache=l;this.nonBlendModesSet=h;this.evaluatorOptions=e.evaluatorOptions;this.resourcesPromise=null;this.xfaFactory=u;const d={obj:0};this._localIdFactory=class extends n{static createObjId(){return`p${a}_${++d.obj}`}static getPageObjId(){return`page${i.toString()}`}}}_getInheritableProperty(e,t=!1){const a=(0,n.getInheritableProperty)({dict:this.pageDict,key:e,getArray:t,stopWhenFound:!1});return Array.isArray(a)?1!==a.length&&a[0]instanceof s.Dict?s.Dict.merge({xref:this.xref,dictArray:a}):a[0]:a}get content(){return this.pageDict.getArray("Contents")}get resources(){const e=this._getInheritableProperty("Resources");return(0,i.shadow)(this,"resources",e instanceof s.Dict?e:s.Dict.empty)}_getBoundingBox(e){if(this.xfaData)return this.xfaData.bbox;let t=this._getInheritableProperty(e,!0);if(Array.isArray(t)&&4===t.length){t=i.Util.normalizeRect(t);if(t[2]-t[0]>0&&t[3]-t[1]>0)return t;(0,i.warn)(`Empty, or invalid, /${e} entry.`)}return null}get mediaBox(){return(0,i.shadow)(this,"mediaBox",this._getBoundingBox("MediaBox")||k)}get cropBox(){return(0,i.shadow)(this,"cropBox",this._getBoundingBox("CropBox")||this.mediaBox)}get userUnit(){let e=this.pageDict.get("UserUnit");("number"!=typeof e||e<=0)&&(e=1);return(0,i.shadow)(this,"userUnit",e)}get view(){const{cropBox:e,mediaBox:t}=this;if(e!==t&&!(0,i.isArrayEqual)(e,t)){const a=i.Util.intersect(e,t);if(a&&a[2]-a[0]>0&&a[3]-a[1]>0)return(0,i.shadow)(this,"view",a);(0,i.warn)("Empty /CropBox and /MediaBox intersection.")}return(0,i.shadow)(this,"view",t)}get rotate(){let e=this._getInheritableProperty("Rotate")||0;e%90!=0?e=0:e>=360?e%=360:e<0&&(e=(e%360+360)%360);return(0,i.shadow)(this,"rotate",e)}_onSubStreamError(e,t){if(!this.evaluatorOptions.ignoreErrors)throw e;(0,i.warn)(`getContentStream - ignoring sub-stream (${t}): "${e}".`)}getContentStream(){return this.pdfManager.ensure(this,"content").then((e=>e instanceof c.BaseStream?e:Array.isArray(e)?new y.StreamsSequenceStream(e,this._onSubStreamError.bind(this)):new g.NullStream))}get xfaData(){return(0,i.shadow)(this,"xfaData",this.xfaFactory?{bbox:this.xfaFactory.getBoundingBox(this.pageIndex)}:null)}async saveNewAnnotations(e,t,a){if(this.xfaFactory)throw new Error("XFA: Cannot save new annotations.");const i=new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}),n=this.pageDict,s=this.annotations.slice(),o=await r.AnnotationFactory.saveNewAnnotations(i,t,a);for(const{ref:e}of o.annotations)s.push(e);const c=n.get("Annots");n.set("Annots",s);const l=[];let h=null;this.xref.encrypt&&(h=this.xref.encrypt.createCipherTransform(this.ref.num,this.ref.gen));(0,S.writeObject)(this.ref,n,l,h);c&&n.set("Annots",c);const u=o.dependencies;u.push({ref:this.ref,data:l.join("")},...o.annotations);return u}save(e,t,a){const r=new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});return this._parsedAnnotations.then((function(e){const n=[];for(const s of e)s.mustBePrinted(a)&&n.push(s.save(r,t,a).catch((function(e){(0,i.warn)(`save - ignoring annotation data during "${t.name}" task: "${e}".`);return null})));return Promise.all(n).then((function(e){return e.filter((e=>!!e))}))}))}loadResources(e){this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources"));return this.resourcesPromise.then((()=>new p.ObjectLoader(this.resources,e,this.xref).load()))}getOperatorList({handler:e,sink:t,task:a,intent:s,cacheKey:o,annotationStorage:c=null}){const l=this.getContentStream(),h=this.loadResources(["ColorSpace","ExtGState","Font","Pattern","Properties","Shading","XObject"]),u=new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}),d=this.xfaFactory?null:(0,n.getNewAnnotationsMap)(c);let f=Promise.resolve(null);if(d){const e=d.get(this.pageIndex);e&&(f=r.AnnotationFactory.printNewAnnotations(u,a,e))}const g=Promise.all([l,h]).then((([r])=>{const i=new m.OperatorList(s,t);e.send("StartRenderPage",{transparency:u.hasBlendModes(this.resources,this.nonBlendModesSet),pageIndex:this.pageIndex,cacheKey:o});return u.getOperatorList({stream:r,task:a,resources:this.resources,operatorList:i}).then((function(){return i}))}));return Promise.all([g,this._parsedAnnotations,f]).then((function([e,t,r]){r&&(t=t.concat(r));if(0===t.length||s&i.RenderingIntentFlag.ANNOTATIONS_DISABLE){e.flush(!0);return{length:e.totalLength}}const n=!!(s&i.RenderingIntentFlag.ANNOTATIONS_FORMS),o=!!(s&i.RenderingIntentFlag.ANY),l=!!(s&i.RenderingIntentFlag.DISPLAY),h=!!(s&i.RenderingIntentFlag.PRINT),d=[];for(const e of t)(o||l&&e.mustBeViewed(c)||h&&e.mustBePrinted(c))&&d.push(e.getOperatorList(u,a,s,n,c).catch((function(e){(0,i.warn)(`getOperatorList - ignoring annotation data during "${a.name}" task: "${e}".`);return{opList:null,separateForm:!1,separateCanvas:!1}})));return Promise.all(d).then((function(t){let a=!1,r=!1;for(const{opList:i,separateForm:n,separateCanvas:s}of t){e.addOpList(i);a||=n;r||=s}e.flush(!0,{form:a,canvas:r});return{length:e.totalLength}}))}))}extractTextContent({handler:e,task:t,includeMarkedContent:a,disableNormalization:r,sink:i}){const n=this.getContentStream(),s=this.loadResources(["ExtGState","Font","Properties","XObject"]);return Promise.all([n,s]).then((([n])=>new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}).getTextContent({stream:n,task:t,resources:this.resources,includeMarkedContent:a,disableNormalization:r,sink:i,viewBox:this.view})))}async getStructTree(){const e=await this.pdfManager.ensureCatalog("structTreeRoot");if(!e)return null;return(await this.pdfManager.ensure(this,"_parseStructTree",[e])).serializable}_parseStructTree(e){const t=new w.StructTreePage(e,this.pageDict);t.parse();return t}async getAnnotationsData(e,t,a){const r=await this._parsedAnnotations;if(0===r.length)return[];const n=[],s=[];let o;const c=!!(a&i.RenderingIntentFlag.ANY),l=!!(a&i.RenderingIntentFlag.DISPLAY),h=!!(a&i.RenderingIntentFlag.PRINT);for(const a of r){const r=c||l&&a.viewable;(r||h&&a.printable)&&n.push(a.data);if(a.hasTextContent&&r){o||=new b.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,standardFontDataCache:this.standardFontDataCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});s.push(a.extractTextContent(o,t,this.view).catch((function(e){(0,i.warn)(`getAnnotationsData - ignoring textContent during "${t.name}" task: "${e}".`)})))}}await Promise.all(s);return n}get annotations(){const e=this._getInheritableProperty("Annots");return(0,i.shadow)(this,"annotations",Array.isArray(e)?e:[])}get _parsedAnnotations(){const e=this.pdfManager.ensure(this,"annotations").then((()=>{const e=[];for(const t of this.annotations)e.push(r.AnnotationFactory.create(this.xref,t,this.pdfManager,this._localIdFactory,!1).catch((function(e){(0,i.warn)(`_parsedAnnotations: "${e}".`);return null})));return Promise.all(e).then((function(e){if(0===e.length)return e;const t=[];let a;for(const i of e)i&&(i instanceof r.PopupAnnotation?(a||=[]).push(i):t.push(i));a&&t.push(...a);return t}))}));return(0,i.shadow)(this,"_parsedAnnotations",e)}get jsActions(){const e=(0,n.collectActions)(this.xref,this.pageDict,i.PageActionEventType);return(0,i.shadow)(this,"jsActions",e)}}t.Page=Page;const v=new Uint8Array([37,80,68,70,45]),F=new Uint8Array([115,116,97,114,116,120,114,101,102]),O=new Uint8Array([101,110,100,111,98,106]);function find(e,t,a=1024,r=!1){const i=t.length,n=e.peekBytes(a),s=n.length-i;if(s<=0)return!1;if(r){const a=i-1;let r=n.length-1;for(;r>=a;){let s=0;for(;s=i){e.pos+=r-a;return!0}r--}}else{let a=0;for(;a<=s;){let r=0;for(;r=i){e.pos+=a;return!0}a++}}return!1}t.PDFDocument=class PDFDocument{constructor(e,t){if(t.length<=0)throw new i.InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes.");this.pdfManager=e;this.stream=t;this.xref=new C.XRef(t,e);this._pagePromises=new Map;this._version=null;const a={font:0};this._globalIdFactory=class{static getDocId(){return`g_${e.docId}`}static createFontId(){return"f"+ ++a.font}static createObjId(){(0,i.unreachable)("Abstract method `createObjId` called.")}static getPageObjId(){(0,i.unreachable)("Abstract method `getPageObjId` called.")}}}parse(e){this.xref.parse(e);this.catalog=new h.Catalog(this.pdfManager,this.xref)}get linearization(){let e=null;try{e=f.Linearization.create(this.stream)}catch(e){if(e instanceof n.MissingDataException)throw e;(0,i.info)(e)}return(0,i.shadow)(this,"linearization",e)}get startXRef(){const e=this.stream;let t=0;if(this.linearization){e.reset();find(e,O)&&(t=e.pos+6-e.start)}else{const a=1024,r=F.length;let i=!1,s=e.end;for(;!i&&s>0;){s-=a-r;s<0&&(s=0);e.pos=s;i=find(e,F,a,!0)}if(i){e.skip(9);let a;do{a=e.getByte()}while((0,n.isWhiteSpace)(a));let r="";for(;a>=32&&a<=57;){r+=String.fromCharCode(a);a=e.getByte()}t=parseInt(r,10);isNaN(t)&&(t=0)}}return(0,i.shadow)(this,"startXRef",t)}checkHeader(){const e=this.stream;e.reset();if(!find(e,v))return;e.moveStart();e.skip(v.length);let t,a="";for(;(t=e.getByte())>32&&a.length<7;)a+=String.fromCharCode(t);n.PDF_VERSION_REGEXP.test(a)?this._version=a:(0,i.warn)(`Invalid PDF header version: ${a}`)}parseStartXRef(){this.xref.setStartXRef(this.startXRef)}get numPages(){let e=0;e=this.catalog.hasActualNumPages?this.catalog.numPages:this.xfaFactory?this.xfaFactory.getNumPages():this.linearization?this.linearization.numPages:this.catalog.numPages;return(0,i.shadow)(this,"numPages",e)}_hasOnlyDocumentSignatures(e,t=0){return!!Array.isArray(e)&&e.every((e=>{if(!((e=this.xref.fetchIfRef(e))instanceof s.Dict))return!1;if(e.has("Kids")){if(++t>10){(0,i.warn)("_hasOnlyDocumentSignatures: maximum recursion depth reached");return!1}return this._hasOnlyDocumentSignatures(e.get("Kids"),t)}const a=(0,s.isName)(e.get("FT"),"Sig"),r=e.get("Rect"),n=Array.isArray(r)&&r.every((e=>0===e));return a&&n}))}get _xfaStreams(){const e=this.catalog.acroForm;if(!e)return null;const t=e.get("XFA"),a={"xdp:xdp":"",template:"",datasets:"",config:"",connectionSet:"",localeSet:"",stylesheet:"","/xdp:xdp":""};if(t instanceof c.BaseStream&&!t.isEmpty){a["xdp:xdp"]=t;return a}if(!Array.isArray(t)||0===t.length)return null;for(let e=0,r=t.length;e{y.set(e,t)}));const w=[];for(const[e,a]of y){const o=a.get("FontDescriptor");if(!(o instanceof s.Dict))continue;let c=o.get("FontFamily");c=c.replaceAll(/[ ]+(\d)/g,"$1");const l={fontFamily:c,fontWeight:o.get("FontWeight"),italicAngle:-o.get("ItalicAngle")};(0,n.validateCSSFont)(l)&&w.push(u.handleSetFont(r,[s.Name.get(e),1],null,d,t,g,null,l).catch((function(e){(0,i.warn)(`loadXfaFonts: "${e}".`);return null})))}await Promise.all(w);const S=this.xfaFactory.setFonts(f);if(!S)return;h.ignoreErrors=!0;w.length=0;f.length=0;const x=new Set;for(const e of S)(0,o.getXfaFontName)(`${e}-Regular`)||x.add(e);x.size&&S.push("PdfJS-Fallback");for(const e of S)if(!x.has(e))for(const a of[{name:"Regular",fontWeight:400,italicAngle:0},{name:"Bold",fontWeight:700,italicAngle:0},{name:"Italic",fontWeight:400,italicAngle:12},{name:"BoldItalic",fontWeight:700,italicAngle:12}]){const n=`${e}-${a.name}`,c=(0,o.getXfaFontDict)(n);w.push(u.handleSetFont(r,[s.Name.get(n),1],null,d,t,g,c,{fontFamily:e,fontWeight:a.fontWeight,italicAngle:a.italicAngle}).catch((function(e){(0,i.warn)(`loadXfaFonts: "${e}".`);return null})))}await Promise.all(w);this.xfaFactory.appendFonts(f,x)}async serializeXfaData(e){return this.xfaFactory?this.xfaFactory.serializeData(e):null}get version(){return this.catalog.version||this._version}get formInfo(){const e={hasFields:!1,hasAcroForm:!1,hasXfa:!1,hasSignatures:!1},t=this.catalog.acroForm;if(!t)return(0,i.shadow)(this,"formInfo",e);try{const a=t.get("Fields"),r=Array.isArray(a)&&a.length>0;e.hasFields=r;const i=t.get("XFA");e.hasXfa=Array.isArray(i)&&i.length>0||i instanceof c.BaseStream&&!i.isEmpty;const n=!!(1&t.get("SigFlags")),s=n&&this._hasOnlyDocumentSignatures(a);e.hasAcroForm=r&&!s;e.hasSignatures=n}catch(e){if(e instanceof n.MissingDataException)throw e;(0,i.warn)(`Cannot fetch form information: "${e}".`)}return(0,i.shadow)(this,"formInfo",e)}get documentInfo(){const e={PDFFormatVersion:this.version,Language:this.catalog.lang,EncryptFilterName:this.xref.encrypt?this.xref.encrypt.filterName:null,IsLinearized:!!this.linearization,IsAcroFormPresent:this.formInfo.hasAcroForm,IsXFAPresent:this.formInfo.hasXfa,IsCollectionPresent:!!this.catalog.collection,IsSignaturesPresent:this.formInfo.hasSignatures};let t;try{t=this.xref.trailer.get("Info")}catch(e){if(e instanceof n.MissingDataException)throw e;(0,i.info)("The document information dictionary is invalid.")}if(!(t instanceof s.Dict))return(0,i.shadow)(this,"documentInfo",e);for(const a of t.getKeys()){const r=t.get(a);switch(a){case"Title":case"Author":case"Subject":case"Keywords":case"Creator":case"Producer":case"CreationDate":case"ModDate":if("string"==typeof r){e[a]=(0,i.stringToPDFString)(r);continue}break;case"Trapped":if(r instanceof s.Name){e[a]=r;continue}break;default:let t;switch(typeof r){case"string":t=(0,i.stringToPDFString)(r);break;case"number":case"boolean":t=r;break;default:r instanceof s.Name&&(t=r)}if(void 0===t){(0,i.warn)(`Bad value, for custom key "${a}", in Info: ${r}.`);continue}e.Custom||(e.Custom=Object.create(null));e.Custom[a]=t;continue}(0,i.warn)(`Bad value, for key "${a}", in Info: ${r}.`)}return(0,i.shadow)(this,"documentInfo",e)}get fingerprints(){function validate(e){return"string"==typeof e&&e.length>0&&"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"!==e}function hexString(e){const t=[];for(const a of e){const e=a.toString(16);t.push(e.padStart(2,"0"))}return t.join("")}const e=this.xref.trailer.get("ID");let t,a;if(Array.isArray(e)&&validate(e[0])){t=(0,i.stringToBytes)(e[0]);e[1]!==e[0]&&validate(e[1])&&(a=(0,i.stringToBytes)(e[1]))}else t=(0,l.calculateMD5)(this.stream.getByteRange(0,1024),0,1024);return(0,i.shadow)(this,"fingerprints",[hexString(t),a?hexString(a):null])}async _getLinearizationPage(e){const{catalog:t,linearization:a,xref:r}=this,n=s.Ref.get(a.objectNumberFirst,0);try{const e=await r.fetchAsync(n);if(e instanceof s.Dict){let a=e.getRaw("Type");a instanceof s.Ref&&(a=await r.fetchAsync(a));if((0,s.isName)(a,"Page")||!e.has("Type")&&!e.has("Kids")){t.pageKidsCountCache.has(n)||t.pageKidsCountCache.put(n,1);t.pageIndexCache.has(n)||t.pageIndexCache.put(n,0);return[e,n]}}throw new i.FormatError("The Linearization dictionary doesn't point to a valid Page dictionary.")}catch(a){(0,i.warn)(`_getLinearizationPage: "${a.message}".`);return t.getPageDict(e)}}getPage(e){const t=this._pagePromises.get(e);if(t)return t;const{catalog:a,linearization:r,xfaFactory:i}=this;let n;n=i?Promise.resolve([s.Dict.empty,null]):r&&r.pageFirst===e?this._getLinearizationPage(e):a.getPageDict(e);n=n.then((([t,r])=>new Page({pdfManager:this.pdfManager,xref:this.xref,pageIndex:e,pageDict:t,ref:r,globalIdFactory:this._globalIdFactory,fontCache:a.fontCache,builtInCMapCache:a.builtInCMapCache,standardFontDataCache:a.standardFontDataCache,globalImageCache:a.globalImageCache,nonBlendModesSet:a.nonBlendModesSet,xfaFactory:i})));this._pagePromises.set(e,n);return n}async checkFirstPage(e=!1){if(!e)try{await this.getPage(0)}catch(e){if(e instanceof n.XRefEntryException){this._pagePromises.delete(0);await this.cleanup();throw new n.XRefParseException}}}async checkLastPage(e=!1){const{catalog:t,pdfManager:a}=this;t.setActualNumPages();let r;try{await Promise.all([a.ensureDoc("xfaFactory"),a.ensureDoc("linearization"),a.ensureCatalog("numPages")]);if(this.xfaFactory)return;r=this.linearization?this.linearization.numPages:t.numPages;if(!Number.isInteger(r))throw new i.FormatError("Page count is not an integer.");if(r<=1)return;await this.getPage(r-1)}catch(s){this._pagePromises.delete(r-1);await this.cleanup();if(s instanceof n.XRefEntryException&&!e)throw new n.XRefParseException;(0,i.warn)(`checkLastPage - invalid /Pages tree /Count: ${r}.`);let o;try{o=await t.getAllPageDicts(e)}catch(a){if(a instanceof n.XRefEntryException&&!e)throw new n.XRefParseException;t.setActualNumPages(1);return}for(const[e,[r,i]]of o){let n;if(r instanceof Error){n=Promise.reject(r);n.catch((()=>{}))}else n=Promise.resolve(new Page({pdfManager:a,xref:this.xref,pageIndex:e,pageDict:r,ref:i,globalIdFactory:this._globalIdFactory,fontCache:t.fontCache,builtInCMapCache:t.builtInCMapCache,standardFontDataCache:t.standardFontDataCache,globalImageCache:t.globalImageCache,nonBlendModesSet:t.nonBlendModesSet,xfaFactory:null}));this._pagePromises.set(e,n)}t.setActualNumPages(o.size)}}fontFallback(e,t){return this.catalog.fontFallback(e,t)}async cleanup(e=!1){return this.catalog?this.catalog.cleanup(e):(0,u.clearGlobalCaches)()}_collectFieldObjects(e,t,a){const n=this.xref.fetchIfRef(t);if(n.has("T")){const t=(0,i.stringToPDFString)(n.get("T"));e=""===e?t:`${e}.${t}`}a.has(e)||a.set(e,[]);a.get(e).push(r.AnnotationFactory.create(this.xref,t,this.pdfManager,this._localIdFactory,!0).then((e=>e&&e.getFieldObject())).catch((function(e){(0,i.warn)(`_collectFieldObjects: "${e}".`);return null})));if(n.has("Kids")){const t=n.get("Kids");for(const r of t)this._collectFieldObjects(e,r,a)}}get fieldObjects(){if(!this.formInfo.hasFields)return(0,i.shadow)(this,"fieldObjects",Promise.resolve(null));const e=Object.create(null),t=new Map;for(const e of this.catalog.acroForm.get("Fields"))this._collectFieldObjects("",e,t);const a=[];for(const[r,i]of t)a.push(Promise.all(i).then((t=>{(t=t.filter((e=>!!e))).length>0&&(e[r]=t)})));return(0,i.shadow)(this,"fieldObjects",Promise.all(a).then((()=>e)))}get hasJSActions(){const e=this.pdfManager.ensureDoc("_parseHasJSActions");return(0,i.shadow)(this,"hasJSActions",e)}async _parseHasJSActions(){const[e,t]=await Promise.all([this.pdfManager.ensureCatalog("jsActions"),this.pdfManager.ensureDoc("fieldObjects")]);return!!e||!!t&&Object.values(t).some((e=>e.some((e=>null!==e.actions))))}get calculationOrderIds(){const e=this.catalog.acroForm;if(!e||!e.has("CO"))return(0,i.shadow)(this,"calculationOrderIds",null);const t=e.get("CO");if(!Array.isArray(t)||0===t.length)return(0,i.shadow)(this,"calculationOrderIds",null);const a=[];for(const e of t)e instanceof s.Ref&&a.push(e.toString());return 0===a.length?(0,i.shadow)(this,"calculationOrderIds",null):(0,i.shadow)(this,"calculationOrderIds",a)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.PopupAnnotation=t.MarkupAnnotation=t.AnnotationFactory=t.AnnotationBorderStyle=t.Annotation=void 0;t.getQuadPoints=getQuadPoints;var r=a(2),i=a(3),n=a(11),s=a(4),o=a(65),c=a(5),l=a(60),h=a(69),u=a(12),d=a(72),f=a(75),g=a(63),p=a(8),m=a(76);t.AnnotationFactory=class AnnotationFactory{static create(e,t,a,r,i){return Promise.all([a.ensureCatalog("acroForm"),a.ensureCatalog("baseUrl"),a.ensureCatalog("attachments"),a.ensureDoc("xfaDatasets"),i?this._getPageIndex(e,t,a):-1]).then((([n,s,o,c,l])=>a.ensure(this,"_create",[e,t,a,r,n,o,c,i,l])))}static _create(e,t,a,n,o,c=null,l,h,u=-1){const d=e.fetchIfRef(t);if(!(d instanceof s.Dict))return;const f=t instanceof s.Ref?t.toString():`annot_${n.createObjId()}`;let g=d.get("Subtype");g=g instanceof s.Name?g.name:null;const p=o instanceof s.Dict?o:s.Dict.empty,m={xref:e,ref:t,dict:d,subtype:g,id:f,pdfManager:a,acroForm:p,attachments:c,xfaDatasets:l,collectFields:h,needAppearances:!h&&!0===p.get("NeedAppearances"),pageIndex:u,isOffscreenCanvasSupported:a.evaluatorOptions.isOffscreenCanvasSupported};switch(g){case"Link":return new LinkAnnotation(m);case"Text":return new TextAnnotation(m);case"Widget":let e=(0,i.getInheritableProperty)({dict:d,key:"FT"});e=e instanceof s.Name?e.name:null;switch(e){case"Tx":return new TextWidgetAnnotation(m);case"Btn":return new ButtonWidgetAnnotation(m);case"Ch":return new ChoiceWidgetAnnotation(m);case"Sig":return new SignatureWidgetAnnotation(m)}(0,r.warn)(`Unimplemented widget field type "${e}", falling back to base field type.`);return new WidgetAnnotation(m);case"Popup":return new PopupAnnotation(m);case"FreeText":return new FreeTextAnnotation(m);case"Line":return new LineAnnotation(m);case"Square":return new SquareAnnotation(m);case"Circle":return new CircleAnnotation(m);case"PolyLine":return new PolylineAnnotation(m);case"Polygon":return new PolygonAnnotation(m);case"Caret":return new CaretAnnotation(m);case"Ink":return new InkAnnotation(m);case"Highlight":return new HighlightAnnotation(m);case"Underline":return new UnderlineAnnotation(m);case"Squiggly":return new SquigglyAnnotation(m);case"StrikeOut":return new StrikeOutAnnotation(m);case"Stamp":return new StampAnnotation(m);case"FileAttachment":return new FileAttachmentAnnotation(m);default:h||(g?(0,r.warn)(`Unimplemented annotation type "${g}", falling back to base annotation.`):(0,r.warn)("Annotation is missing the required /Subtype."));return new Annotation(m)}}static async _getPageIndex(e,t,a){try{const r=await e.fetchIfRefAsync(t);if(!(r instanceof s.Dict))return-1;const i=r.getRaw("P");if(!(i instanceof s.Ref))return-1;return await a.ensureCatalog("getPageIndex",[i])}catch(e){(0,r.warn)(`_getPageIndex: "${e}".`);return-1}}static async saveNewAnnotations(e,t,a){const i=e.xref;let n;const c=[],l=[];for(const h of a)switch(h.annotationType){case r.AnnotationEditorType.FREETEXT:if(!n){const e=new s.Dict(i);e.set("BaseFont",s.Name.get("Helvetica"));e.set("Type",s.Name.get("Font"));e.set("Subtype",s.Name.get("Type1"));e.set("Encoding",s.Name.get("WinAnsiEncoding"));const t=[];n=i.getNewTemporaryRef();(0,o.writeObject)(n,e,t,null);c.push({ref:n,data:t.join("")})}l.push(FreeTextAnnotation.createNewAnnotation(i,h,c,{evaluator:e,task:t,baseFontRef:n}));break;case r.AnnotationEditorType.INK:l.push(InkAnnotation.createNewAnnotation(i,h,c))}return{annotations:await Promise.all(l),dependencies:c}}static async printNewAnnotations(e,t,a){if(!a)return null;const i=e.xref,{isOffscreenCanvasSupported:n}=e.options,s=[];for(const o of a)switch(o.annotationType){case r.AnnotationEditorType.FREETEXT:s.push(FreeTextAnnotation.createNewPrintAnnotation(i,o,{evaluator:e,task:t,isOffscreenCanvasSupported:n}));break;case r.AnnotationEditorType.INK:s.push(InkAnnotation.createNewPrintAnnotation(i,o,{isOffscreenCanvasSupported:n}))}return Promise.all(s)}};function getRgbColor(e,t=new Uint8ClampedArray(3)){if(!Array.isArray(e))return t;const a=t||new Uint8ClampedArray(3);switch(e.length){case 0:return null;case 1:u.ColorSpace.singletons.gray.getRgbItem(e,0,a,0);return a;case 3:u.ColorSpace.singletons.rgb.getRgbItem(e,0,a,0);return a;case 4:u.ColorSpace.singletons.cmyk.getRgbItem(e,0,a,0);return a;default:return t}}function getPdfColorArray(e){return Array.from(e,(e=>e/255))}function getQuadPoints(e,t){const a=e.getArray("QuadPoints");if(!Array.isArray(a)||0===a.length||a.length%8>0)return null;const r=[];for(let e=0,i=a.length/8;et[2]||st[3]))return null;r.push([{x:i,y:o},{x:n,y:o},{x:i,y:s},{x:n,y:s}])}return r}function getTransformMatrix(e,t,a){const[i,n,s,o]=r.Util.getAxialAlignedBoundingBox(t,a);if(i===s||n===o)return[1,0,0,1,e[0],e[1]];const c=(e[2]-e[0])/(s-i),l=(e[3]-e[1])/(o-n);return[c,0,0,l,e[0]-i*c,e[1]-n*l]}class Annotation{constructor(e){const{dict:t,xref:a}=e;this.setTitle(t.get("T"));this.setContents(t.get("Contents"));this.setModificationDate(t.get("M"));this.setFlags(t.get("F"));this.setRectangle(t.getArray("Rect"));this.setColor(t.getArray("C"));this.setBorderStyle(t);this.setAppearance(t);this.setOptionalContent(t);const n=t.get("MK");this.setBorderAndBackgroundColors(n);this.setRotation(n);this._streams=[];this.appearance&&this._streams.push(this.appearance);const o=!!(this.flags&r.AnnotationFlag.LOCKED),c=!!(this.flags&r.AnnotationFlag.LOCKEDCONTENTS);this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,backgroundColor:this.backgroundColor,borderColor:this.borderColor,rotation:this.rotation,contentsObj:this._contents,hasAppearance:!!this.appearance,id:e.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:e.subtype,hasOwnCanvas:!1,noRotate:!!(this.flags&r.AnnotationFlag.NOROTATE),noHTML:o&&c};if(e.collectFields){const n=t.get("Kids");if(Array.isArray(n)){const e=[];for(const t of n)t instanceof s.Ref&&e.push(t.toString());0!==e.length&&(this.data.kidIds=e)}this.data.actions=(0,i.collectActions)(a,t,r.AnnotationActionEventType);this.data.fieldName=this._constructFieldName(t);this.data.pageIndex=e.pageIndex}this._isOffscreenCanvasSupported=e.isOffscreenCanvasSupported;this._fallbackFontDict=null;this._needAppearances=!1}_hasFlag(e,t){return!!(e&t)}_isViewable(e){return!this._hasFlag(e,r.AnnotationFlag.INVISIBLE)&&!this._hasFlag(e,r.AnnotationFlag.NOVIEW)}_isPrintable(e){return this._hasFlag(e,r.AnnotationFlag.PRINT)&&!this._hasFlag(e,r.AnnotationFlag.INVISIBLE)}mustBeViewed(e){const t=e&&e.get(this.data.id);return t&&void 0!==t.hidden?!t.hidden:this.viewable&&!this._hasFlag(this.flags,r.AnnotationFlag.HIDDEN)}mustBePrinted(e){const t=e&&e.get(this.data.id);return t&&void 0!==t.print?t.print:this.printable}get viewable(){return null!==this.data.quadPoints&&(0===this.flags||this._isViewable(this.flags))}get printable(){return null!==this.data.quadPoints&&(0!==this.flags&&this._isPrintable(this.flags))}_parseStringHelper(e){const t="string"==typeof e?(0,r.stringToPDFString)(e):"";return{str:t,dir:t&&"rtl"===(0,l.bidi)(t).dir?"rtl":"ltr"}}setDefaultAppearance(e){const t=(0,i.getInheritableProperty)({dict:e.dict,key:"DA"})||e.acroForm.get("DA");this._defaultAppearance="string"==typeof t?t:"";this.data.defaultAppearanceData=(0,n.parseDefaultAppearance)(this._defaultAppearance)}setTitle(e){this._title=this._parseStringHelper(e)}setContents(e){this._contents=this._parseStringHelper(e)}setModificationDate(e){this.modificationDate="string"==typeof e?e:null}setFlags(e){this.flags=Number.isInteger(e)&&e>0?e:0}hasFlag(e){return this._hasFlag(this.flags,e)}setRectangle(e){Array.isArray(e)&&4===e.length?this.rectangle=r.Util.normalizeRect(e):this.rectangle=[0,0,0,0]}setColor(e){this.color=getRgbColor(e)}setLineEndings(e){this.lineEndings=["None","None"];if(Array.isArray(e)&&2===e.length)for(let t=0;t<2;t++){const a=e[t];if(a instanceof s.Name)switch(a.name){case"None":continue;case"Square":case"Circle":case"Diamond":case"OpenArrow":case"ClosedArrow":case"Butt":case"ROpenArrow":case"RClosedArrow":case"Slash":this.lineEndings[t]=a.name;continue}(0,r.warn)(`Ignoring invalid lineEnding: ${a}`)}}setRotation(e){this.rotation=0;if(e instanceof s.Dict){let t=e.get("R")||0;if(Number.isInteger(t)&&0!==t){t%=360;t<0&&(t+=360);t%90==0&&(this.rotation=t)}}}setBorderAndBackgroundColors(e){if(e instanceof s.Dict){this.borderColor=getRgbColor(e.getArray("BC"),null);this.backgroundColor=getRgbColor(e.getArray("BG"),null)}else this.borderColor=this.backgroundColor=null}setBorderStyle(e){this.borderStyle=new AnnotationBorderStyle;if(e instanceof s.Dict)if(e.has("BS")){const t=e.get("BS"),a=t.get("Type");if(!a||(0,s.isName)(a,"Border")){this.borderStyle.setWidth(t.get("W"),this.rectangle);this.borderStyle.setStyle(t.get("S"));this.borderStyle.setDashArray(t.getArray("D"))}}else if(e.has("Border")){const t=e.getArray("Border");if(Array.isArray(t)&&t.length>=3){this.borderStyle.setHorizontalCornerRadius(t[0]);this.borderStyle.setVerticalCornerRadius(t[1]);this.borderStyle.setWidth(t[2],this.rectangle);4===t.length&&this.borderStyle.setDashArray(t[3],!0)}}else this.borderStyle.setWidth(0)}setAppearance(e){this.appearance=null;const t=e.get("AP");if(!(t instanceof s.Dict))return;const a=t.get("N");if(a instanceof c.BaseStream){this.appearance=a;return}if(!(a instanceof s.Dict))return;const r=e.get("AS");if(!(r instanceof s.Name&&a.has(r.name)))return;const i=a.get(r.name);i instanceof c.BaseStream&&(this.appearance=i)}setOptionalContent(e){this.oc=null;const t=e.get("OC");t instanceof s.Name?(0,r.warn)("setOptionalContent: Support for /Name-entry is not implemented."):t instanceof s.Dict&&(this.oc=t)}loadResources(e,t){return t.dict.getAsync("Resources").then((t=>{if(!t)return;return new f.ObjectLoader(t,e,t.xref).load().then((function(){return t}))}))}async getOperatorList(e,t,a,i,n){const o=this.data;let c=this.appearance;const l=!!(this.data.hasOwnCanvas&&a&r.RenderingIntentFlag.DISPLAY);if(!c){if(!l)return{opList:new g.OperatorList,separateForm:!1,separateCanvas:!1};c=new p.StringStream("");c.dict=new s.Dict}const h=c.dict,u=await this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"],c),d=h.getArray("BBox")||[0,0,1,1],f=h.getArray("Matrix")||[1,0,0,1,0,0],m=getTransformMatrix(o.rect,d,f),b=new g.OperatorList;let y;this.oc&&(y=await e.parseMarkedContentProps(this.oc,null));void 0!==y&&b.addOp(r.OPS.beginMarkedContentProps,["OC",y]);b.addOp(r.OPS.beginAnnotation,[o.id,o.rect,m,f,l]);await e.getOperatorList({stream:c,task:t,resources:u,operatorList:b,fallbackFontDict:this._fallbackFontDict});b.addOp(r.OPS.endAnnotation,[]);void 0!==y&&b.addOp(r.OPS.endMarkedContent,[]);this.reset();return{opList:b,separateForm:!1,separateCanvas:l}}async save(e,t,a){return null}get hasTextContent(){return!1}async extractTextContent(e,t,a){if(!this.appearance)return;const r=await this.loadResources(["ExtGState","Font","Properties","XObject"],this.appearance),i=[],n=[],s={desiredSize:Math.Infinity,ready:!0,enqueue(e,t){for(const t of e.items){n.push(t.str);if(t.hasEOL){i.push(n.join(""));n.length=0}}}};await e.getTextContent({stream:this.appearance,task:t,resources:r,includeMarkedContent:!0,sink:s,viewBox:a});this.reset();n.length&&i.push(n.join(""));i.length>0&&(this.data.textContent=i)}getFieldObject(){return this.data.kidIds?{id:this.data.id,actions:this.data.actions,name:this.data.fieldName,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,type:"",kidIds:this.data.kidIds,page:this.data.pageIndex,rotation:this.rotation}:null}reset(){for(const e of this._streams)e.reset()}_constructFieldName(e){if(!e.has("T")&&!e.has("Parent")){(0,r.warn)("Unknown field name, falling back to empty field name.");return""}if(!e.has("Parent"))return(0,r.stringToPDFString)(e.get("T"));const t=[];e.has("T")&&t.unshift((0,r.stringToPDFString)(e.get("T")));let a=e;const i=new s.RefSet;e.objId&&i.put(e.objId);for(;a.has("Parent");){a=a.get("Parent");if(!(a instanceof s.Dict)||a.objId&&i.has(a.objId))break;a.objId&&i.put(a.objId);if(a.has("T")){const e=(0,r.stringToPDFString)(a.get("T"));e.startsWith("#")||t.unshift(e)}}return t.join(".")}}t.Annotation=Annotation;class AnnotationBorderStyle{constructor(){this.width=1;this.style=r.AnnotationBorderStyleType.SOLID;this.dashArray=[3];this.horizontalCornerRadius=0;this.verticalCornerRadius=0}setWidth(e,t=[0,0,0,0]){if(e instanceof s.Name)this.width=0;else if("number"==typeof e){if(e>0){const a=(t[2]-t[0])/2,i=(t[3]-t[1])/2;if(a>0&&i>0&&(e>a||e>i)){(0,r.warn)(`AnnotationBorderStyle.setWidth - ignoring width: ${e}`);e=1}}this.width=e}}setStyle(e){if(e instanceof s.Name)switch(e.name){case"S":this.style=r.AnnotationBorderStyleType.SOLID;break;case"D":this.style=r.AnnotationBorderStyleType.DASHED;break;case"B":this.style=r.AnnotationBorderStyleType.BEVELED;break;case"I":this.style=r.AnnotationBorderStyleType.INSET;break;case"U":this.style=r.AnnotationBorderStyleType.UNDERLINE}}setDashArray(e,t=!1){if(Array.isArray(e)&&e.length>0){let a=!0,r=!0;for(const t of e){if(!(+t>=0)){a=!1;break}t>0&&(r=!1)}if(a&&!r){this.dashArray=e;t&&this.setStyle(s.Name.get("D"))}else this.width=0}else e&&(this.width=0)}setHorizontalCornerRadius(e){Number.isInteger(e)&&(this.horizontalCornerRadius=e)}setVerticalCornerRadius(e){Number.isInteger(e)&&(this.verticalCornerRadius=e)}}t.AnnotationBorderStyle=AnnotationBorderStyle;class MarkupAnnotation extends Annotation{constructor(e){super(e);const{dict:t}=e;if(t.has("IRT")){const e=t.getRaw("IRT");this.data.inReplyTo=e instanceof s.Ref?e.toString():null;const a=t.get("RT");this.data.replyType=a instanceof s.Name?a.name:r.AnnotationReplyType.REPLY}if(this.data.replyType===r.AnnotationReplyType.GROUP){const e=t.get("IRT");this.setTitle(e.get("T"));this.data.titleObj=this._title;this.setContents(e.get("Contents"));this.data.contentsObj=this._contents;if(e.has("CreationDate")){this.setCreationDate(e.get("CreationDate"));this.data.creationDate=this.creationDate}else this.data.creationDate=null;if(e.has("M")){this.setModificationDate(e.get("M"));this.data.modificationDate=this.modificationDate}else this.data.modificationDate=null;this.data.hasPopup=e.has("Popup");if(e.has("C")){this.setColor(e.getArray("C"));this.data.color=this.color}else this.data.color=null}else{this.data.titleObj=this._title;this.setCreationDate(t.get("CreationDate"));this.data.creationDate=this.creationDate;this.data.hasPopup=t.has("Popup");t.has("C")||(this.data.color=null)}t.has("RC")&&(this.data.richText=m.XFAFactory.getRichTextAsHtml(t.get("RC")))}setCreationDate(e){this.creationDate="string"==typeof e?e:null}_setDefaultAppearance({xref:e,extra:t,strokeColor:a,fillColor:r,blendMode:i,strokeAlpha:n,fillAlpha:o,pointsCallback:c}){let l=Number.MAX_VALUE,h=Number.MAX_VALUE,u=Number.MIN_VALUE,d=Number.MIN_VALUE;const f=["q"];t&&f.push(t);a&&f.push(`${a[0]} ${a[1]} ${a[2]} RG`);r&&f.push(`${r[0]} ${r[1]} ${r[2]} rg`);let g=this.data.quadPoints;g||(g=[[{x:this.rectangle[0],y:this.rectangle[3]},{x:this.rectangle[2],y:this.rectangle[3]},{x:this.rectangle[0],y:this.rectangle[1]},{x:this.rectangle[2],y:this.rectangle[1]}]]);for(const e of g){const[t,a,r,i]=c(f,e);l=Math.min(l,t);u=Math.max(u,a);h=Math.min(h,r);d=Math.max(d,i)}f.push("Q");const m=new s.Dict(e),b=new s.Dict(e);b.set("Subtype",s.Name.get("Form"));const y=new p.StringStream(f.join(" "));y.dict=b;m.set("Fm0",y);const w=new s.Dict(e);i&&w.set("BM",s.Name.get(i));"number"==typeof n&&w.set("CA",n);"number"==typeof o&&w.set("ca",o);const S=new s.Dict(e);S.set("GS0",w);const x=new s.Dict(e);x.set("ExtGState",S);x.set("XObject",m);const C=new s.Dict(e);C.set("Resources",x);const k=this.data.rect=[l,h,u,d];C.set("BBox",k);this.appearance=new p.StringStream("/GS0 gs /Fm0 Do");this.appearance.dict=C;this._streams.push(this.appearance,y)}static async createNewAnnotation(e,t,a,r){const i=e.getNewTemporaryRef(),n=await this.createNewAppearanceStream(t,e,r),s=[];let c;if(n){const r=e.getNewTemporaryRef();c=this.createNewDict(t,e,{apRef:r});const i=e.encrypt?e.encrypt.createCipherTransform(r.num,r.gen):null;(0,o.writeObject)(r,n,s,i);a.push({ref:r,data:s.join("")})}else c=this.createNewDict(t,e,{});s.length=0;const l=e.encrypt?e.encrypt.createCipherTransform(i.num,i.gen):null;(0,o.writeObject)(i,c,s,l);return{ref:i,data:s.join("")}}static async createNewPrintAnnotation(e,t,a){const r=await this.createNewAppearanceStream(t,e,a),i=this.createNewDict(t,e,{ap:r});return new this.prototype.constructor({dict:i,xref:e,isOffscreenCanvasSupported:a.isOffscreenCanvasSupported})}}t.MarkupAnnotation=MarkupAnnotation;class WidgetAnnotation extends Annotation{constructor(e){super(e);const{dict:t,xref:a}=e,n=this.data;this.ref=e.ref;this._needAppearances=e.needAppearances;n.annotationType=r.AnnotationType.WIDGET;void 0===n.fieldName&&(n.fieldName=this._constructFieldName(t));void 0===n.actions&&(n.actions=(0,i.collectActions)(a,t,r.AnnotationActionEventType));let o=(0,i.getInheritableProperty)({dict:t,key:"V",getArray:!0});n.fieldValue=this._decodeFormValue(o);const c=(0,i.getInheritableProperty)({dict:t,key:"DV",getArray:!0});n.defaultFieldValue=this._decodeFormValue(c);if(void 0===o&&e.xfaDatasets){const t=this._title.str;if(t){this._hasValueFromXFA=!0;n.fieldValue=o=e.xfaDatasets.getValue(t)}}void 0===o&&null!==n.defaultFieldValue&&(n.fieldValue=n.defaultFieldValue);n.alternativeText=(0,r.stringToPDFString)(t.get("TU")||"");this.setDefaultAppearance(e);n.hasAppearance||=this._needAppearances&&void 0!==n.fieldValue&&null!==n.fieldValue;const l=(0,i.getInheritableProperty)({dict:t,key:"FT"});n.fieldType=l instanceof s.Name?l.name:null;const h=(0,i.getInheritableProperty)({dict:t,key:"DR"}),u=e.acroForm.get("DR"),d=this.appearance&&this.appearance.dict.get("Resources");this._fieldResources={localResources:h,acroFormResources:u,appearanceResources:d,mergedResources:s.Dict.merge({xref:a,dictArray:[h,d,u],mergeSubDicts:!0})};n.fieldFlags=(0,i.getInheritableProperty)({dict:t,key:"Ff"});(!Number.isInteger(n.fieldFlags)||n.fieldFlags<0)&&(n.fieldFlags=0);n.readOnly=this.hasFieldFlag(r.AnnotationFieldFlag.READONLY);n.required=this.hasFieldFlag(r.AnnotationFieldFlag.REQUIRED);n.hidden=this._hasFlag(n.annotationFlags,r.AnnotationFlag.HIDDEN)}_decodeFormValue(e){return Array.isArray(e)?e.filter((e=>"string"==typeof e)).map((e=>(0,r.stringToPDFString)(e))):e instanceof s.Name?(0,r.stringToPDFString)(e.name):"string"==typeof e?(0,r.stringToPDFString)(e):null}hasFieldFlag(e){return!!(this.data.fieldFlags&e)}getRotationMatrix(e){const t=e?e.get(this.data.id):void 0;let a=t&&t.rotation;void 0===a&&(a=this.rotation);if(0===a)return r.IDENTITY_MATRIX;const n=this.data.rect[2]-this.data.rect[0],s=this.data.rect[3]-this.data.rect[1];return(0,i.getRotationMatrix)(a,n,s)}getBorderAndBackgroundAppearances(e){const t=e?e.get(this.data.id):void 0;let a=t&&t.rotation;void 0===a&&(a=this.rotation);if(!this.backgroundColor&&!this.borderColor)return"";const r=this.data.rect[2]-this.data.rect[0],i=this.data.rect[3]-this.data.rect[1],s=0===a||180===a?`0 0 ${r} ${i} re`:`0 0 ${i} ${r} re`;let o="";this.backgroundColor&&(o=`${(0,n.getPdfColor)(this.backgroundColor,!0)} ${s} f `);if(this.borderColor){o+=`${this.borderStyle.width||1} w ${(0,n.getPdfColor)(this.borderColor,!1)} ${s} S `}return o}async getOperatorList(e,t,a,i,n){if(i&&!(this instanceof SignatureWidgetAnnotation)&&!this.data.noHTML&&!this.data.hasOwnCanvas)return{opList:new g.OperatorList,separateForm:!0,separateCanvas:!1};if(!this._hasText)return super.getOperatorList(e,t,a,i,n);const s=await this._getAppearance(e,t,a,n);if(this.appearance&&null===s)return super.getOperatorList(e,t,a,i,n);const o=new g.OperatorList;if(!this._defaultAppearance||null===s)return{opList:o,separateForm:!1,separateCanvas:!1};const c=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],l=getTransformMatrix(this.data.rect,c,[1,0,0,1,0,0]);let h;this.oc&&(h=await e.parseMarkedContentProps(this.oc,null));void 0!==h&&o.addOp(r.OPS.beginMarkedContentProps,["OC",h]);o.addOp(r.OPS.beginAnnotation,[this.data.id,this.data.rect,l,this.getRotationMatrix(n),!1]);const u=new p.StringStream(s);await e.getOperatorList({stream:u,task:t,resources:this._fieldResources.mergedResources,operatorList:o});o.addOp(r.OPS.endAnnotation,[]);void 0!==h&&o.addOp(r.OPS.endMarkedContent,[]);return{opList:o,separateForm:!1,separateCanvas:!1}}_getMKDict(e){const t=new s.Dict(null);e&&t.set("R",e);this.borderColor&&t.set("BC",getPdfColorArray(this.borderColor));this.backgroundColor&&t.set("BG",getPdfColorArray(this.backgroundColor));return t.size>0?t:null}amendSavedDict(e,t){}async save(e,t,a){const n=a?a.get(this.data.id):void 0;let c=n&&n.value,l=n&&n.rotation;if(c===this.data.fieldValue||void 0===c){if(!this._hasValueFromXFA&&void 0===l)return null;c||=this.data.fieldValue}if(void 0===l&&!this._hasValueFromXFA&&Array.isArray(c)&&Array.isArray(this.data.fieldValue)&&c.length===this.data.fieldValue.length&&c.every(((e,t)=>e===this.data.fieldValue[t])))return null;void 0===l&&(l=this.rotation);let h=null;if(!this._needAppearances){h=await this._getAppearance(e,t,r.RenderingIntentFlag.SAVE,a);if(null===h)return null}let u=!1;if(h&&h.needAppearances){u=!0;h=null}const{xref:d}=e,f=d.fetchIfRef(this.ref);if(!(f instanceof s.Dict))return null;const g=new s.Dict(d);for(const e of f.getKeys())"AP"!==e&&g.set(e,f.getRaw(e));const m={path:this.data.fieldName,value:c},encoder=e=>(0,i.isAscii)(e)?e:(0,i.stringToUTF16String)(e,!0);g.set("V",Array.isArray(c)?c.map(encoder):encoder(c));this.amendSavedDict(a,g);const b=this._getMKDict(l);b&&g.set("MK",b);const y=d.encrypt,w=y?y.createCipherTransform(this.ref.num,this.ref.gen):null,S=[],x=[{ref:this.ref,data:"",xfa:m,needAppearances:u}];if(null!==h){const e=d.getNewTemporaryRef(),t=new s.Dict(d);g.set("AP",t);t.set("N",e);let i=null;y&&(i=y.createCipherTransform(e.num,e.gen));const n=this._getSaveFieldResources(d),c=new p.StringStream(h),l=c.dict=new s.Dict(d);l.set("Subtype",s.Name.get("Form"));l.set("Resources",n);l.set("BBox",[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]]);const u=this.getRotationMatrix(a);u!==r.IDENTITY_MATRIX&&l.set("Matrix",u);(0,o.writeObject)(e,c,S,i);x.push({ref:e,data:S.join(""),xfa:null,needAppearances:!1});S.length=0}g.set("M",`D:${(0,r.getModificationDate)()}`);(0,o.writeObject)(this.ref,g,S,w);x[0].data=S.join("");return x}async _getAppearance(e,t,a,s){if(this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD))return null;const o=s?s.get(this.data.id):void 0;let c,l;if(o){c=o.formattedValue||o.value;l=o.rotation}if(void 0===l&&void 0===c&&!this._needAppearances&&(!this._hasValueFromXFA||this.appearance))return null;const h=this.getBorderAndBackgroundAppearances(s);if(void 0===c){c=this.data.fieldValue;if(!c)return`/Tx BMC q ${h}Q EMC`}Array.isArray(c)&&1===c.length&&(c=c[0]);(0,r.assert)("string"==typeof c,"Expected `value` to be a string.");c=c.trim();if(this.data.combo){const e=this.data.options.find((({exportValue:e})=>c===e));c=e&&e.displayValue||c}if(""===c)return`/Tx BMC q ${h}Q EMC`;void 0===l&&(l=this.rotation);let u,d=-1;if(this.data.multiLine){u=c.split(/\r\n?|\n/).map((e=>e.normalize("NFC")));d=u.length}else u=[c.replace(/\r\n?|\n/,"").normalize("NFC")];let f=this.data.rect[3]-this.data.rect[1],g=this.data.rect[2]-this.data.rect[0];90!==l&&270!==l||([g,f]=[f,g]);this._defaultAppearance||(this.data.defaultAppearanceData=(0,n.parseDefaultAppearance)(this._defaultAppearance="/Helvetica 0 Tf 0 g"));let p,m,b,y=await WidgetAnnotation._getFontData(e,t,this.data.defaultAppearanceData,this._fieldResources.mergedResources);const w=[];let S=!1;for(const e of u){const t=y.encodeString(e);t.length>1&&(S=!0);w.push(t.join(""))}if(S&&a&r.RenderingIntentFlag.SAVE)return{needAppearances:!0};if(S&&this._isOffscreenCanvasSupported){const a=this.data.comb?"monospace":"sans-serif",r=new n.FakeUnicodeFont(e.xref,a),s=r.createFontResources(u.join("")),o=s.getRaw("Font");if(this._fieldResources.mergedResources.has("Font")){const e=this._fieldResources.mergedResources.get("Font");for(const t of o.getKeys())e.set(t,o.getRaw(t))}else this._fieldResources.mergedResources.set("Font",o);const l=r.fontName.name;y=await WidgetAnnotation._getFontData(e,t,{fontName:l,fontSize:0},s);for(let e=0,t=w.length;e2)return`/Tx BMC q ${h}BT `+p+` 1 0 0 1 ${(0,i.numberToString)(2)} ${(0,i.numberToString)(v)} Tm (${(0,i.escapeString)(w[0])}) Tj ET Q EMC`;return`/Tx BMC q ${h}BT `+p+` 1 0 0 1 0 0 Tm ${this._renderText(w[0],y,m,g,k,{shift:0},2,v)} ET Q EMC`}static async _getFontData(e,t,a,r){const i=new g.OperatorList,n={font:null,clone(){return this}},{fontName:o,fontSize:c}=a;await e.handleSetFont(r,[o&&s.Name.get(o),c],null,i,t,n,null);return n.font}_getTextWidth(e,t){return t.charsToGlyphs(e).reduce(((e,t)=>e+t.width),0)/1e3}_computeFontSize(e,t,a,i,s){let{fontSize:o}=this.data.defaultAppearanceData,c=(o||12)*r.LINE_FACTOR,l=Math.round(e/c);if(!o){const roundWithTwoDigits=e=>Math.floor(100*e)/100;if(-1===s){const n=this._getTextWidth(a,i);o=roundWithTwoDigits(Math.min(e/r.LINE_FACTOR,n>t?t/n:1/0));l=1}else{const n=a.split(/\r\n?|\n/),h=[];for(const e of n){const t=i.encodeString(e).join(""),a=i.charsToGlyphs(t),r=i.getCharPositions(t);h.push({line:t,glyphs:a,positions:r})}const isTooBig=a=>{let r=0;for(const n of h){r+=this._splitLine(null,i,a,t,n).length*a;if(r>e)return!0}return!1};l=Math.max(l,s);for(;;){c=e/l;o=roundWithTwoDigits(c/r.LINE_FACTOR);if(!isTooBig(o))break;l++}}const{fontName:h,fontColor:u}=this.data.defaultAppearanceData;this._defaultAppearance=(0,n.createDefaultAppearance)({fontSize:o,fontName:h,fontColor:u})}return[this._defaultAppearance,o,e/l]}_renderText(e,t,a,r,n,s,o,c){let l;if(1===n){l=(r-this._getTextWidth(e,t)*a)/2}else if(2===n){l=r-this._getTextWidth(e,t)*a-o}else l=o;const h=(0,i.numberToString)(l-s.shift);s.shift=l;return`${h} ${c=(0,i.numberToString)(c)} Td (${(0,i.escapeString)(e)}) Tj`}_getSaveFieldResources(e){const{localResources:t,appearanceResources:a,acroFormResources:r}=this._fieldResources,i=this.data.defaultAppearanceData&&this.data.defaultAppearanceData.fontName;if(!i)return t||s.Dict.empty;for(const e of[t,a])if(e instanceof s.Dict){const t=e.get("Font");if(t instanceof s.Dict&&t.has(i))return e}if(r instanceof s.Dict){const a=r.get("Font");if(a instanceof s.Dict&&a.has(i)){const r=new s.Dict(e);r.set(i,a.getRaw(i));const n=new s.Dict(e);n.set("Font",r);return s.Dict.merge({xref:e,dictArray:[n,t],mergeSubDicts:!0})}}return t||s.Dict.empty}getFieldObject(){return null}}class TextWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);this.data.hasOwnCanvas=this.data.readOnly&&!this.data.noHTML;this._hasText=!0;const t=e.dict;"string"!=typeof this.data.fieldValue&&(this.data.fieldValue="");let a=(0,i.getInheritableProperty)({dict:t,key:"Q"});(!Number.isInteger(a)||a<0||a>2)&&(a=null);this.data.textAlignment=a;let n=(0,i.getInheritableProperty)({dict:t,key:"MaxLen"});(!Number.isInteger(n)||n<0)&&(n=0);this.data.maxLen=n;this.data.multiLine=this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE);this.data.comb=this.hasFieldFlag(r.AnnotationFieldFlag.COMB)&&!this.hasFieldFlag(r.AnnotationFieldFlag.MULTILINE)&&!this.hasFieldFlag(r.AnnotationFieldFlag.PASSWORD)&&!this.hasFieldFlag(r.AnnotationFieldFlag.FILESELECT)&&0!==this.data.maxLen;this.data.doNotScroll=this.hasFieldFlag(r.AnnotationFieldFlag.DONOTSCROLL)}_getCombAppearance(e,t,a,r,n,s,o,c,l,h,u){const d=n/this.data.maxLen,f=this.getBorderAndBackgroundAppearances(u),g=[],p=t.getCharPositions(a);for(const[e,t]of p)g.push(`(${(0,i.escapeString)(a.substring(e,t))}) Tj`);const m=g.join(` ${(0,i.numberToString)(d)} 0 Td `);return`/Tx BMC q ${f}BT `+e+` 1 0 0 1 ${(0,i.numberToString)(o)} ${(0,i.numberToString)(c+l)} Tm ${m} ET Q EMC`}_getMultilineAppearance(e,t,a,r,n,s,o,c,l,h,u,d){const f=[],g=n-2*c,p={shift:0};for(let e=0,i=t.length;er){c.push(e.substring(d,a));d=a;f=p;l=-1;u=-1}else{f+=p;l=a;h=i;u=t}else if(f+p>r)if(-1!==l){c.push(e.substring(d,h));d=h;t=u+1;l=-1;f=0}else{c.push(e.substring(d,a));d=a;f=p}else f+=p}d"Off"!==e));n.length=0;n.push("Off",e)}n.includes(this.data.fieldValue)||(this.data.fieldValue="Off");this.data.exportValue=n[1];const o=a.get(this.data.exportValue);this.checkedAppearance=o instanceof c.BaseStream?o:null;const l=a.get("Off");this.uncheckedAppearance=l instanceof c.BaseStream?l:null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(e,"check");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict}_processRadioButton(e){this.data.fieldValue=this.data.buttonValue=null;const t=e.dict.get("Parent");if(t instanceof s.Dict){this.parent=e.dict.getRaw("Parent");const a=t.get("V");a instanceof s.Name&&(this.data.fieldValue=this._decodeFormValue(a))}const a=e.dict.get("AP");if(!(a instanceof s.Dict))return;const r=a.get("N");if(!(r instanceof s.Dict))return;for(const e of r.getKeys())if("Off"!==e){this.data.buttonValue=this._decodeFormValue(e);break}const i=r.get(this.data.buttonValue);this.checkedAppearance=i instanceof c.BaseStream?i:null;const n=r.get("Off");this.uncheckedAppearance=n instanceof c.BaseStream?n:null;this.checkedAppearance?this._streams.push(this.checkedAppearance):this._getDefaultCheckedAppearance(e,"disc");this.uncheckedAppearance&&this._streams.push(this.uncheckedAppearance);this._fallbackFontDict=this.fallbackFontDict}_processPushButton(e){if(e.dict.has("A")||e.dict.has("AA")||this.data.alternativeText){this.data.isTooltipOnly=!e.dict.has("A")&&!e.dict.has("AA");h.Catalog.parseDestDictionary({destDict:e.dict,resultObj:this.data,docBaseUrl:e.pdfManager.docBaseUrl,docAttachments:e.attachments})}else(0,r.warn)("Push buttons without action dictionaries are not supported")}getFieldObject(){let e,t="button";if(this.data.checkBox){t="checkbox";e=this.data.exportValue}else if(this.data.radioButton){t="radiobutton";e=this.data.buttonValue}return{id:this.data.id,value:this.data.fieldValue||"Off",defaultValue:this.data.defaultFieldValue,exportValues:e,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,hidden:this.data.hidden,actions:this.data.actions,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:t}}get fallbackFontDict(){const e=new s.Dict;e.set("BaseFont",s.Name.get("ZapfDingbats"));e.set("Type",s.Name.get("FallbackType"));e.set("Subtype",s.Name.get("FallbackType"));e.set("Encoding",s.Name.get("ZapfDingbatsEncoding"));return(0,r.shadow)(this,"fallbackFontDict",e)}}class ChoiceWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.indices=t.getArray("I");this.hasIndices=Array.isArray(this.indices)&&this.indices.length>0;this.data.options=[];const n=(0,i.getInheritableProperty)({dict:t,key:"Opt"});if(Array.isArray(n))for(let e=0,t=n.length;e=0&&t0?this.data.fieldValue[0]:null;return{id:this.data.id,value:t,defaultValue:this.data.defaultFieldValue,editable:!this.data.readOnly,name:this.data.fieldName,rect:this.data.rect,numItems:this.data.fieldValue.length,multipleSelection:this.data.multiSelect,hidden:this.data.hidden,actions:this.data.actions,items:this.data.options,page:this.data.pageIndex,strokeColor:this.data.borderColor,fillColor:this.data.backgroundColor,rotation:this.rotation,type:e}}amendSavedDict(e,t){if(!this.hasIndices)return;const a=e?e.get(this.data.id):void 0;let r=a&&a.value;Array.isArray(r)||(r=[r]);const i=[],{options:n}=this.data;for(let e=0,t=0,a=n.length;ea){a=r;t=e}}[g,p]=this._computeFontSize(e,h-4,t,f,-1)}const m=p*r.LINE_FACTOR,b=(m-p)/2,y=Math.floor(l/m);let w;if(1===d.length){const e=d[0];w=e-e%y}else w=d.length?d[0]:0;const S=Math.min(w+y+1,u),x=["/Tx BMC q",`1 1 ${h} ${l} re W n`];if(d.length){x.push("0.600006 0.756866 0.854904 rg");for(const e of d)w<=e&&e1)return null;e=t.join("");M.push(e);let a=0;const r=y.charsToGlyphs(e);for(const e of r)a+=e.width*O;T=Math.max(T,a)}let E=1;T>k&&(E=k/T);let D=1;const N=r.LINE_FACTOR*u,R=r.LINE_DESCENT_FACTOR*u,L=N*F.length;L>v&&(D=v/L);const _=u*Math.min(E,D),$=["q",`0 0 ${(0,i.numberToString)(k)} ${(0,i.numberToString)(v)} re W n`,"BT",`1 0 0 1 0 ${(0,i.numberToString)(v+R)} Tm 0 Tc ${(0,n.getPdfColor)(h,!0)}`,`/Helv ${(0,i.numberToString)(_)} Tf`],j=(0,i.numberToString)(N);for(const e of M)$.push(`0 -${j} Td (${(0,i.escapeString)(e)}) Tj`);$.push("ET","Q");const U=$.join("\n"),X=new s.Dict(t);X.set("FormType",1);X.set("Subtype",s.Name.get("Form"));X.set("Type",s.Name.get("XObject"));X.set("BBox",[0,0,k,v]);X.set("Resources",m);if(f){const e=(0,i.getRotationMatrix)(f,k,v);X.set("Matrix",e)}const H=new p.StringStream(U);H.dict=X;return H}}class LineAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=r.AnnotationType.LINE;this.data.hasOwnCanvas=this.data.noRotate;const i=t.getArray("L");this.data.lineCoordinates=r.Util.normalizeRect(i);this.setLineEndings(t.getArray("LE"));this.data.lineEndings=this.lineEndings;if(!this.appearance){const e=this.color?getPdfColorArray(this.color):[0,0,0],n=t.get("CA"),s=getRgbColor(t.getArray("IC"),null),o=s?getPdfColorArray(s):null,c=o?n:null,l=this.borderStyle.width||1,h=2*l,u=[this.data.lineCoordinates[0]-h,this.data.lineCoordinates[1]-h,this.data.lineCoordinates[2]+h,this.data.lineCoordinates[3]+h];r.Util.intersect(this.rectangle,u)||(this.rectangle=u);this._setDefaultAppearance({xref:a,extra:`${l} w`,strokeColor:e,fillColor:o,strokeAlpha:n,fillAlpha:c,pointsCallback:(e,t)=>{e.push(`${i[0]} ${i[1]} m`,`${i[2]} ${i[3]} l`,"S");return[t[0].x-l,t[1].x+l,t[3].y-l,t[1].y+l]}})}}}class SquareAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=r.AnnotationType.SQUARE;this.data.hasOwnCanvas=this.data.noRotate;if(!this.appearance){const e=this.color?getPdfColorArray(this.color):[0,0,0],r=t.get("CA"),i=getRgbColor(t.getArray("IC"),null),n=i?getPdfColorArray(i):null,s=n?r:null;if(0===this.borderStyle.width&&!n)return;this._setDefaultAppearance({xref:a,extra:`${this.borderStyle.width} w`,strokeColor:e,fillColor:n,strokeAlpha:r,fillAlpha:s,pointsCallback:(e,t)=>{const a=t[2].x+this.borderStyle.width/2,r=t[2].y+this.borderStyle.width/2,i=t[3].x-t[2].x-this.borderStyle.width,s=t[1].y-t[3].y-this.borderStyle.width;e.push(`${a} ${r} ${i} ${s} re`);n?e.push("B"):e.push("S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}}class CircleAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=r.AnnotationType.CIRCLE;if(!this.appearance){const e=this.color?getPdfColorArray(this.color):[0,0,0],r=t.get("CA"),i=getRgbColor(t.getArray("IC"),null),n=i?getPdfColorArray(i):null,s=n?r:null;if(0===this.borderStyle.width&&!n)return;const o=4/3*Math.tan(Math.PI/8);this._setDefaultAppearance({xref:a,extra:`${this.borderStyle.width} w`,strokeColor:e,fillColor:n,strokeAlpha:r,fillAlpha:s,pointsCallback:(e,t)=>{const a=t[0].x+this.borderStyle.width/2,r=t[0].y-this.borderStyle.width/2,i=t[3].x-this.borderStyle.width/2,s=t[3].y+this.borderStyle.width/2,c=a+(i-a)/2,l=r+(s-r)/2,h=(i-a)/2*o,u=(s-r)/2*o;e.push(`${c} ${s} m`,`${c+h} ${s} ${i} ${l+u} ${i} ${l} c`,`${i} ${l-u} ${c+h} ${r} ${c} ${r} c`,`${c-h} ${r} ${a} ${l-u} ${a} ${l} c`,`${a} ${l+u} ${c-h} ${s} ${c} ${s} c`,"h");n?e.push("B"):e.push("S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}}class PolylineAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=r.AnnotationType.POLYLINE;this.data.hasOwnCanvas=this.data.noRotate;this.data.vertices=[];if(!(this instanceof PolygonAnnotation)){this.setLineEndings(t.getArray("LE"));this.data.lineEndings=this.lineEndings}const i=t.getArray("Vertices");if(Array.isArray(i)){for(let e=0,t=i.length;e{const a=this.data.vertices;for(let t=0,r=a.length;t{for(const t of this.data.inkLists){for(let a=0,r=t.length;ae.points)));l.set("F",4);l.set("Border",[0,0,0]);l.set("Rotate",c);const h=new s.Dict(t);l.set("AP",h);a?h.set("N",a):h.set("N",i);return l}static async createNewAppearanceStream(e,t,a){const{color:r,rect:o,rotation:c,paths:l,thickness:h,opacity:u}=e,[d,f,g,m]=o;let b=g-d,y=m-f;c%180!=0&&([b,y]=[y,b]);const w=[`${h} w 1 J 1 j`,`${(0,n.getPdfColor)(r,!1)}`];1!==u&&w.push("/R0 gs");const S=[];for(const{bezier:e}of l){S.length=0;S.push(`${(0,i.numberToString)(e[0])} ${(0,i.numberToString)(e[1])} m`);for(let t=2,a=e.length;t{e.push(`${t[0].x} ${t[0].y} m`,`${t[1].x} ${t[1].y} l`,`${t[3].x} ${t[3].y} l`,`${t[2].x} ${t[2].y} l`,"f");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}else this.data.hasPopup=!1}}class UnderlineAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=r.AnnotationType.UNDERLINE;if(this.data.quadPoints=getQuadPoints(t,null)){if(!this.appearance){const e=this.color?getPdfColorArray(this.color):[0,0,0],r=t.get("CA");this._setDefaultAppearance({xref:a,extra:"[] 0 d 1 w",strokeColor:e,strokeAlpha:r,pointsCallback:(e,t)=>{e.push(`${t[2].x} ${t[2].y} m`,`${t[3].x} ${t[3].y} l`,"S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}else this.data.hasPopup=!1}}class SquigglyAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e;this.data.annotationType=r.AnnotationType.SQUIGGLY;if(this.data.quadPoints=getQuadPoints(t,null)){if(!this.appearance){const e=this.color?getPdfColorArray(this.color):[0,0,0],r=t.get("CA");this._setDefaultAppearance({xref:a,extra:"[] 0 d 1 w",strokeColor:e,strokeAlpha:r,pointsCallback:(e,t)=>{const a=(t[0].y-t[2].y)/6;let r=a,i=t[2].x;const n=t[2].y,s=t[3].x;e.push(`${i} ${n+r} m`);do{i+=2;r=0===r?a:0;e.push(`${i} ${n+r} l`)}while(i{e.push((t[0].x+t[2].x)/2+" "+(t[0].y+t[2].y)/2+" m",(t[1].x+t[3].x)/2+" "+(t[1].y+t[3].y)/2+" l","S");return[t[0].x,t[1].x,t[3].y,t[1].y]}})}}else this.data.hasPopup=!1}}class StampAnnotation extends MarkupAnnotation{constructor(e){super(e);this.data.annotationType=r.AnnotationType.STAMP;this.data.hasOwnCanvas=this.data.noRotate}}class FileAttachmentAnnotation extends MarkupAnnotation{constructor(e){super(e);const{dict:t,xref:a}=e,i=new d.FileSpec(t.get("FS"),a);this.data.annotationType=r.AnnotationType.FILEATTACHMENT;this.data.hasOwnCanvas=this.data.noRotate;this.data.file=i.serializable;const n=t.get("Name");this.data.name=n instanceof s.Name?(0,r.stringToPDFString)(n.name):"PushPin"}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FakeUnicodeFont=void 0;t.createDefaultAppearance=function createDefaultAppearance({fontSize:e,fontName:t,fontColor:a}){return`/${(0,i.escapePDFName)(t)} ${e} Tf ${getPdfColor(a,!0)}`};t.getPdfColor=getPdfColor;t.parseDefaultAppearance=function parseDefaultAppearance(e){return new DefaultAppearanceEvaluator(e).parse()};var r=a(4),i=a(3),n=a(2),s=a(12),o=a(13),c=a(8);class DefaultAppearanceEvaluator extends o.EvaluatorPreprocessor{constructor(e){super(new c.StringStream(e))}parse(){const e={fn:0,args:[]},t={fontSize:0,fontName:"",fontColor:new Uint8ClampedArray(3)};try{for(;;){e.args.length=0;if(!this.read(e))break;if(0!==this.savedStatesDepth)continue;const{fn:a,args:i}=e;switch(0|a){case n.OPS.setFont:const[e,a]=i;e instanceof r.Name&&(t.fontName=e.name);"number"==typeof a&&a>0&&(t.fontSize=a);break;case n.OPS.setFillRGBColor:s.ColorSpace.singletons.rgb.getRgbItem(i,0,t.fontColor,0);break;case n.OPS.setFillGray:s.ColorSpace.singletons.gray.getRgbItem(i,0,t.fontColor,0);break;case n.OPS.setFillColorSpace:s.ColorSpace.singletons.cmyk.getRgbItem(i,0,t.fontColor,0)}}}catch(e){(0,n.warn)(`parseDefaultAppearance - ignoring errors: "${e}".`)}return t}}function getPdfColor(e,t){if(e[0]===e[1]&&e[1]===e[2]){const a=e[0]/255;return`${(0,i.numberToString)(a)} ${t?"g":"G"}`}return Array.from(e,(e=>(0,i.numberToString)(e/255))).join(" ")+" "+(t?"rg":"RG")}class FakeUnicodeFont{constructor(e,t){this.xref=e;this.widths=null;this.firstChar=1/0;this.lastChar=-1/0;this.fontFamily=t;const a=new OffscreenCanvas(1,1);this.ctxMeasure=a.getContext("2d");FakeUnicodeFont._fontNameId||(FakeUnicodeFont._fontNameId=1);this.fontName=r.Name.get(`InvalidPDFjsFont_${t}_${FakeUnicodeFont._fontNameId++}`)}get toUnicodeRef(){if(!FakeUnicodeFont._toUnicodeRef){const e="/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> \nendcodespacerange\n1 beginbfrange\n<0000> <0000>\nendbfrange\nendcmap CMapName currentdict /CMap defineresource pop end end",t=FakeUnicodeFont.toUnicodeStream=new c.StringStream(e),a=new r.Dict(this.xref);t.dict=a;a.set("Length",e.length);FakeUnicodeFont._toUnicodeRef=this.xref.getNewPersistentRef(t)}return FakeUnicodeFont._toUnicodeRef}get fontDescriptorRef(){if(!FakeUnicodeFont._fontDescriptorRef){const e=new r.Dict(this.xref);e.set("Type",r.Name.get("FontDescriptor"));e.set("FontName",this.fontName);e.set("FontFamily","MyriadPro Regular");e.set("FontBBox",[0,0,0,0]);e.set("FontStretch",r.Name.get("Normal"));e.set("FontWeight",400);e.set("ItalicAngle",0);FakeUnicodeFont._fontDescriptorRef=this.xref.getNewPersistentRef(e)}return FakeUnicodeFont._fontDescriptorRef}get descendantFontRef(){const e=new r.Dict(this.xref);e.set("BaseFont",this.fontName);e.set("Type",r.Name.get("Font"));e.set("Subtype",r.Name.get("CIDFontType0"));e.set("CIDToGIDMap",r.Name.get("Identity"));e.set("FirstChar",this.firstChar);e.set("LastChar",this.lastChar);e.set("FontDescriptor",this.fontDescriptorRef);e.set("DW",1e3);const t=[],a=[...this.widths.entries()].sort();let i=null,n=null;for(const[e,r]of a)if(i)if(e===i+n.length)n.push(r);else{t.push(i,n);i=e;n=[r]}else{i=e;n=[r]}i&&t.push(i,n);e.set("W",t);const s=new r.Dict(this.xref);s.set("Ordering","Identity");s.set("Registry","Adobe");s.set("Supplement",0);e.set("CIDSystemInfo",s);return this.xref.getNewPersistentRef(e)}get baseFontRef(){const e=new r.Dict(this.xref);e.set("BaseFont",this.fontName);e.set("Type",r.Name.get("Font"));e.set("Subtype",r.Name.get("Type0"));e.set("Encoding",r.Name.get("Identity-H"));e.set("DescendantFonts",[this.descendantFontRef]);e.set("ToUnicode",this.toUnicodeRef);return this.xref.getNewPersistentRef(e)}get resources(){const e=new r.Dict(this.xref),t=new r.Dict(this.xref);t.set(this.fontName.name,this.baseFontRef);e.set("Font",t);return e}_createContext(){this.widths=new Map;this.ctxMeasure.font=`1000px ${this.fontFamily}`;return this.ctxMeasure}createFontResources(e){const t=this._createContext();for(const a of e.split(/\r\n?|\n/))for(const e of a.split("")){const a=e.charCodeAt(0);if(this.widths.has(a))continue;const r=t.measureText(e),i=Math.ceil(r.width);this.widths.set(a,i);this.firstChar=Math.min(a,this.firstChar);this.lastChar=Math.max(a,this.lastChar)}return this.resources}createAppearance(e,t,a,s,o,l){const h=this._createContext(),u=[];let d=-1/0;for(const t of e.split(/\r\n?|\n/)){u.push(t);const e=h.measureText(t).width;d=Math.max(d,e);for(const e of t.split("")){const t=e.charCodeAt(0);let a=this.widths.get(t);if(void 0===a){const r=h.measureText(e);a=Math.ceil(r.width);this.widths.set(t,a);this.firstChar=Math.min(t,this.firstChar);this.lastChar=Math.max(t,this.lastChar)}}}d*=s/1e3;const[f,g,p,m]=t;let b=p-f,y=m-g;a%180!=0&&([b,y]=[y,b]);let w=1;d>b&&(w=b/d);let S=1;const x=n.LINE_FACTOR*s,C=n.LINE_DESCENT_FACTOR*s,k=x*u.length;k>y&&(S=y/k);const v=s*Math.min(w,S),F=["q",`0 0 ${(0,i.numberToString)(b)} ${(0,i.numberToString)(y)} re W n`,"BT",`1 0 0 1 0 ${(0,i.numberToString)(y+C)} Tm 0 Tc ${getPdfColor(o,!0)}`,`/${this.fontName.name} ${(0,i.numberToString)(v)} Tf`],{resources:O}=this;if(1!==(l="number"==typeof l&&l>=0&&l<=1?l:1)){F.push("/R0 gs");const e=new r.Dict(this.xref),t=new r.Dict(this.xref);t.set("ca",l);t.set("CA",l);t.set("Type",r.Name.get("ExtGState"));e.set("R0",t);O.set("ExtGState",e)}const T=(0,i.numberToString)(x);for(const e of u)F.push(`0 -${T} Td <${(0,i.stringToUTF16HexString)(e)}> Tj`);F.push("ET","Q");const M=F.join("\n"),E=new r.Dict(this.xref);E.set("Subtype",r.Name.get("Form"));E.set("Type",r.Name.get("XObject"));E.set("BBox",[0,0,b,y]);E.set("Length",M.length);E.set("Resources",O);if(a){const e=(0,i.getRotationMatrix)(a,b,y);E.set("Matrix",e)}const D=new c.StringStream(M);D.dict=E;return D}}t.FakeUnicodeFont=FakeUnicodeFont},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.ColorSpace=void 0;var r=a(2),i=a(4),n=a(5),s=a(3);class ColorSpace{constructor(e,t){this.constructor===ColorSpace&&(0,r.unreachable)("Cannot initialize ColorSpace.");this.name=e;this.numComps=t}getRgb(e,t){const a=new Uint8ClampedArray(3);this.getRgbItem(e,t,a,0);return a}getRgbItem(e,t,a,i){(0,r.unreachable)("Should not call ColorSpace.getRgbItem")}getRgbBuffer(e,t,a,i,n,s,o){(0,r.unreachable)("Should not call ColorSpace.getRgbBuffer")}getOutputLength(e,t){(0,r.unreachable)("Should not call ColorSpace.getOutputLength")}isPassthrough(e){return!1}isDefaultDecode(e,t){return ColorSpace.isDefaultDecode(e,this.numComps)}fillRgb(e,t,a,r,i,n,s,o,c){const l=t*a;let h=null;const u=1<u&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){const t=s<=8?new Uint8Array(u):new Uint16Array(u);for(let e=0;e=.99554525?1:adjustToRange(0,1,1.055*e**(1/2.4)-.055)}function adjustToRange(e,t,a){return Math.max(e,Math.min(t,a))}function decodeL(e){return e<0?-decodeL(-e):e>8?((e+16)/116)**3:e*c}function convertToRgb(r,c,l,h,u,d){const f=adjustToRange(0,1,c[l]*d),g=adjustToRange(0,1,c[l+1]*d),p=adjustToRange(0,1,c[l+2]*d),m=1===f?1:f**r.GR,b=1===g?1:g**r.GG,y=1===p?1:p**r.GB,w=r.MXA*m+r.MXB*b+r.MXC*y,S=r.MYA*m+r.MYB*b+r.MYC*y,x=r.MZA*m+r.MZB*b+r.MZC*y,C=s;C[0]=w;C[1]=S;C[2]=x;const k=o;!function normalizeWhitePointToFlat(a,r,i){if(1===a[0]&&1===a[2]){i[0]=r[0];i[1]=r[1];i[2]=r[2];return}const s=i;matrixProduct(e,r,s);const o=n;!function convertToFlat(e,t,a){a[0]=1*t[0]/e[0];a[1]=1*t[1]/e[1];a[2]=1*t[2]/e[2]}(a,s,o);matrixProduct(t,o,i)}(r.whitePoint,C,k);const v=s;!function compensateBlackPoint(e,t,a){if(0===e[0]&&0===e[1]&&0===e[2]){a[0]=t[0];a[1]=t[1];a[2]=t[2];return}const r=decodeL(0),i=(1-r)/(1-decodeL(e[0])),n=1-i,s=(1-r)/(1-decodeL(e[1])),o=1-s,c=(1-r)/(1-decodeL(e[2])),l=1-c;a[0]=t[0]*i+n;a[1]=t[1]*s+o;a[2]=t[2]*c+l}(r.blackPoint,k,v);const F=o;!function normalizeWhitePointToD65(a,r,i){const s=i;matrixProduct(e,r,s);const o=n;!function convertToD65(e,t,a){a[0]=.95047*t[0]/e[0];a[1]=1*t[1]/e[1];a[2]=1.08883*t[2]/e[2]}(a,s,o);matrixProduct(t,o,i)}(i,v,F);const O=s;matrixProduct(a,F,O);h[u]=255*sRGBTransferFunction(O[0]);h[u+1]=255*sRGBTransferFunction(O[1]);h[u+2]=255*sRGBTransferFunction(O[2])}return class CalRGBCS extends ColorSpace{constructor(e,t,a,i){super("CalRGB",3);if(!e)throw new r.FormatError("WhitePoint missing - required for color space CalRGB");t||=new Float32Array(3);a||=new Float32Array([1,1,1]);i||=new Float32Array([1,0,0,0,1,0,0,0,1]);const n=e[0],s=e[1],o=e[2];this.whitePoint=e;const c=t[0],l=t[1],h=t[2];this.blackPoint=t;this.GR=a[0];this.GG=a[1];this.GB=a[2];this.MXA=i[0];this.MYA=i[1];this.MZA=i[2];this.MXB=i[3];this.MYB=i[4];this.MZB=i[5];this.MXC=i[6];this.MYC=i[7];this.MZC=i[8];if(n<0||o<0||1!==s)throw new r.FormatError(`Invalid WhitePoint components for ${this.name}, no fallback available`);if(c<0||l<0||h<0){(0,r.info)(`Invalid BlackPoint for ${this.name} [${c}, ${l}, ${h}], falling back to default.`);this.blackPoint=new Float32Array(3)}if(this.GR<0||this.GG<0||this.GB<0){(0,r.info)(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for ${this.name}, falling back to default.`);this.GR=this.GG=this.GB=1}}getRgbItem(e,t,a,r){convertToRgb(this,e,t,a,r,1)}getRgbBuffer(e,t,a,r,i,n,s){const o=1/((1<=6/29?e**3:108/841*(e-4/29);return t}function decode(e,t,a,r){return a+e*(r-a)/t}function convertToRgb(e,t,a,r,i,n){let s=t[a],o=t[a+1],c=t[a+2];if(!1!==r){s=decode(s,r,0,100);o=decode(o,r,e.amin,e.amax);c=decode(c,r,e.bmin,e.bmax)}o>e.amax?o=e.amax:oe.bmax?c=e.bmax:cthis.amax||this.bmin>this.bmax){(0,r.info)("Invalid Range, falling back to defaults");this.amin=-100;this.amax=100;this.bmin=-100;this.bmax=100}}getRgbItem(e,t,a,r){convertToRgb(this,e,t,!1,a,r)}getRgbBuffer(e,t,a,r,i,n,s){const o=(1<{Object.defineProperty(t,"__esModule",{value:!0});t.PartialEvaluator=t.EvaluatorPreprocessor=void 0;var r=a(2),i=a(14),n=a(4),s=a(34),o=a(37),c=a(41),l=a(50),h=a(51),u=a(42),d=a(57),f=a(16),g=a(59),p=a(8),m=a(5),b=a(60),y=a(12),w=a(18),S=a(38),x=a(39),C=a(3),k=a(45),v=a(40),F=a(61),O=a(62),T=a(63),M=a(64);const E=Object.freeze({maxImageSize:-1,disableFontFace:!1,ignoreErrors:!1,isEvalSupported:!0,isOffscreenCanvasSupported:!1,canvasMaxAreaInBytes:-1,fontExtraProperties:!1,useSystemFonts:!0,cMapUrl:null,standardFontDataUrl:null}),D=1,N=2,R=Promise.resolve();function normalizeBlendMode(e,t=!1){if(Array.isArray(e)){for(const t of e){const e=normalizeBlendMode(t,!0);if(e)return e}(0,r.warn)(`Unsupported blend mode Array: ${e}`);return"source-over"}if(!(e instanceof n.Name))return t?null:"source-over";switch(e.name){case"Normal":case"Compatible":return"source-over";case"Multiply":return"multiply";case"Screen":return"screen";case"Overlay":return"overlay";case"Darken":return"darken";case"Lighten":return"lighten";case"ColorDodge":return"color-dodge";case"ColorBurn":return"color-burn";case"HardLight":return"hard-light";case"SoftLight":return"soft-light";case"Difference":return"difference";case"Exclusion":return"exclusion";case"Hue":return"hue";case"Saturation":return"saturation";case"Color":return"color";case"Luminosity":return"luminosity"}if(t)return null;(0,r.warn)(`Unsupported blend mode: ${e.name}`);return"source-over"}function incrementCachedImageMaskCount(e){e.fn===r.OPS.paintImageMaskXObject&&e.args[0]&&e.args[0].count>0&&e.args[0].count++}class TimeSlotManager{static TIME_SLOT_DURATION_MS=20;static CHECK_TIME_EVERY=100;constructor(){this.reset()}check(){if(++this.checkedd){const e="Image exceeded maximum allowed size and was removed.";if(this.options.ignoreErrors){(0,r.warn)(e);return}throw new Error(e)}let f;c.has("OC")&&(f=await this.parseMarkedContentProps(c.get("OC"),e));let g,p;if(c.get("IM","ImageMask")||!1){const e=c.get("I","Interpolate"),a=h+7>>3,o=t.getBytes(a*u),d=c.getArray("D","Decode");if(this.parsingType3Font){g=M.PDFImage.createRawMask({imgArray:o,width:h,height:u,imageIsFromDecodeStream:t instanceof w.DecodeStream,inverseDecode:!!d&&d[0]>0,interpolate:e});g.cached=!!n;p=[g];i.addImageOps(r.OPS.paintImageMaskXObject,p,f);if(n){const e={fn:r.OPS.paintImageMaskXObject,args:p,optionalContent:f};s.set(n,l,e);l&&this._regionalImageCache.set(null,l,e)}return}g=await M.PDFImage.createMask({imgArray:o,width:h,height:u,imageIsFromDecodeStream:t instanceof w.DecodeStream,inverseDecode:!!d&&d[0]>0,interpolate:e,isOffscreenCanvasSupported:this.options.isOffscreenCanvasSupported});if(g.isSingleOpaquePixel){i.addImageOps(r.OPS.paintSolidColorImageMask,[],f);if(n){const e={fn:r.OPS.paintSolidColorImageMask,args:[],optionalContent:f};s.set(n,l,e);l&&this._regionalImageCache.set(null,l,e)}return}const m=`mask_${this.idFactory.createObjId()}`;i.addDependency(m);this._sendImgData(m,g);p=[{data:m,width:g.width,height:g.height,interpolate:g.interpolate,count:1}];i.addImageOps(r.OPS.paintImageMaskXObject,p,f);if(n){const e={fn:r.OPS.paintImageMaskXObject,args:p,optionalContent:f};s.set(n,l,e);l&&this._regionalImageCache.set(null,l,e)}return}const m=c.get("SM","SMask")||!1,b=c.get("Mask")||!1;if(a&&!m&&!b&&h+u<200){const n=new M.PDFImage({xref:this.xref,res:e,image:t,isInline:a,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o});g=await n.createImageData(!0,!1);i.isOffscreenCanvasSupported=this.options.isOffscreenCanvasSupported;i.addImageOps(r.OPS.paintInlineImageXObject,[g],f);return}let y=`img_${this.idFactory.createObjId()}`,S=!1;if(this.parsingType3Font)y=`${this.idFactory.getDocId()}_type3_${y}`;else if(l){S=this.globalImageCache.shouldCache(l,this.pageIndex);S&&(y=`${this.idFactory.getDocId()}_${y}`)}i.addDependency(y);p=[y,h,u];M.PDFImage.buildImage({xref:this.xref,res:e,image:t,isInline:a,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o}).then((async e=>{g=await e.createImageData(!1,this.options.isOffscreenCanvasSupported);if(n&&l&&S){let e=0;e=g.bitmap?g.width*g.height*4:g.data.length;this.globalImageCache.addByteSize(l,e)}return this._sendImgData(y,g,S)})).catch((e=>{(0,r.warn)(`Unable to decode image "${y}": "${e}".`);return this._sendImgData(y,null,S)}));i.addImageOps(r.OPS.paintImageXObject,p,f);if(n){const e={fn:r.OPS.paintImageXObject,args:p,optionalContent:f};s.set(n,l,e);if(l){this._regionalImageCache.set(null,l,e);if(S){(0,r.assert)(!a,"Cannot cache an inline image globally.");this.globalImageCache.setData(l,{objId:y,fn:r.OPS.paintImageXObject,args:p,optionalContent:f,byteSize:0})}}}}handleSMask(e,t,a,r,i,n){const s=e.get("G"),o={subtype:e.get("S").name,backdrop:e.get("BC")},c=e.get("TR");if((0,d.isPDFFunction)(c)){const e=this._pdfFunctionFactory.create(c),t=new Uint8Array(256),a=new Float32Array(1);for(let r=0;r<256;r++){a[0]=r/255;e(a,0,a,0);t[r]=255*a[0]|0}o.transferMap=t}return this.buildFormXObject(t,s,o,a,r,i.state.clone(),n)}handleTransferFunction(e){let t;if(Array.isArray(e))t=e;else{if(!(0,d.isPDFFunction)(e))return null;t=[e]}const a=[];let r=0,i=0;for(const e of t){const t=this.xref.fetchIfRef(e);r++;if((0,n.isName)(t,"Identity")){a.push(null);continue}if(!(0,d.isPDFFunction)(t))return null;const s=this._pdfFunctionFactory.create(t),o=new Uint8Array(256),c=new Float32Array(1);for(let e=0;e<256;e++){c[0]=e/255;s(c,0,c,0);o[e]=255*c[0]|0}a.push(o);i++}return 1!==r&&4!==r||0===i?null:a}handleTilingType(e,t,a,i,s,o,c,h){const u=new T.OperatorList,d=n.Dict.merge({xref:this.xref,dictArray:[s.get("Resources"),a]});return this.getOperatorList({stream:i,task:c,resources:d,operatorList:u}).then((function(){const a=u.getIR(),r=(0,l.getTilingPatternIR)(a,s,t);o.addDependencies(u.dependencies);o.addOp(e,r);s.objId&&h.set(null,s.objId,{operatorListIR:a,dict:s})})).catch((e=>{if(!(e instanceof r.AbortException)){if(!this.options.ignoreErrors)throw e;(0,r.warn)(`handleTilingType - ignoring pattern: "${e}".`)}}))}handleSetFont(e,t,a,r,i,o,c=null,l=null){const h=t&&t[0]instanceof n.Name?t[0].name:null;return this.loadFont(h,a,e,c,l).then((t=>t.font.isType3Font?t.loadType3Data(this,e,i).then((function(){r.addDependencies(t.type3Dependencies);return t})).catch((e=>new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont(`Type3 font load error: ${e}`),dict:t.font,evaluatorOptions:this.options}))):t)).then((e=>{o.font=e.font;e.send(this.handler);return e.loadedName}))}handleText(e,t){const a=t.font,i=a.charsToGlyphs(e);if(a.data){(!!(t.textRenderingMode&r.TextRenderingMode.ADD_TO_PATH_FLAG)||"Pattern"===t.fillColorSpace.name||a.disableFontFace||this.options.disableFontFace)&&PartialEvaluator.buildFontPaths(a,i,this.handler,this.options)}return i}ensureStateFont(e){if(e.font)return;const t=new r.FormatError("Missing setFont (Tf) operator before text rendering operator.");if(!this.options.ignoreErrors)throw t;(0,r.warn)(`ensureStateFont: "${t}".`)}async setGState({resources:e,gState:t,operatorList:a,cacheKey:i,task:s,stateManager:o,localGStateCache:c,localColorSpaceCache:l}){const h=t.objId;let u=!0;const d=[];let f=Promise.resolve();for(const i of t.getKeys()){const c=t.get(i);switch(i){case"Type":break;case"LW":case"LC":case"LJ":case"ML":case"D":case"RI":case"FL":case"CA":case"ca":d.push([i,c]);break;case"Font":u=!1;f=f.then((()=>this.handleSetFont(e,null,c[0],a,s,o.state).then((function(e){a.addDependency(e);d.push([i,[e,c[1]]])}))));break;case"BM":d.push([i,normalizeBlendMode(c)]);break;case"SMask":if((0,n.isName)(c,"None")){d.push([i,!1]);break}if(c instanceof n.Dict){u=!1;f=f.then((()=>this.handleSMask(c,e,a,s,o,l)));d.push([i,!0])}else(0,r.warn)("Unsupported SMask type");break;case"TR":const t=this.handleTransferFunction(c);d.push([i,t]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":(0,r.info)("graphic state operator "+i);break;default:(0,r.info)("Unknown graphic state operator "+i)}}return f.then((function(){d.length>0&&a.addOp(r.OPS.setGState,[d]);u&&c.set(i,h,d)}))}loadFont(e,t,a,i=null,o=null){const errorFont=async()=>new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont(`Font "${e}" is not available.`),dict:t,evaluatorOptions:this.options}),c=this.xref;let l;if(t)t instanceof n.Ref&&(l=t);else{const t=a.get("Font");t&&(l=t.getRaw(e))}if(!l){const a=`Font "${e||t&&t.toString()}" is not available`;if(!this.options.ignoreErrors&&!this.parsingType3Font){(0,r.warn)(`${a}.`);return errorFont()}(0,r.warn)(`${a} -- attempting to fallback to a default font.`);l=i||PartialEvaluator.fallbackFontDict}if(this.parsingType3Font&&this.type3FontRefs.has(l))return errorFont();if(this.fontCache.has(l))return this.fontCache.get(l);if(!((t=c.fetchIfRef(l))instanceof n.Dict))return errorFont();if(t.cacheKey&&this.fontCache.has(t.cacheKey))return this.fontCache.get(t.cacheKey);const h=new r.PromiseCapability;let u;try{u=this.preEvaluateFont(t);u.cssFontInfo=o}catch(e){(0,r.warn)(`loadFont - preEvaluateFont failed: "${e}".`);return errorFont()}const{descriptor:d,hash:f}=u,g=l instanceof n.Ref;let p;g&&(p=`f${l.toString()}`);if(f&&d instanceof n.Dict){const e=d.fontAliases||=Object.create(null);if(e[f]){const t=e[f].aliasRef;if(g&&t&&this.fontCache.has(t)){this.fontCache.putAlias(l,t);return this.fontCache.get(l)}}else e[f]={fontID:this.idFactory.createFontId()};g&&(e[f].aliasRef=l);p=e[f].fontID}if(g)this.fontCache.put(l,h.promise);else{p||(p=this.idFactory.createFontId());t.cacheKey=`cacheKey_${p}`;this.fontCache.put(t.cacheKey,h.promise)}(0,r.assert)(p&&p.startsWith("f"),'The "fontID" must be (correctly) defined.');t.loadedName=`${this.idFactory.getDocId()}_${p}`;this.translateFont(u).then((e=>{h.resolve(new TranslatedFont({loadedName:t.loadedName,font:e,dict:t,evaluatorOptions:this.options}))})).catch((e=>{(0,r.warn)(`loadFont - translateFont failed: "${e}".`);h.resolve(new TranslatedFont({loadedName:t.loadedName,font:new s.ErrorFont(e instanceof Error?e.message:e),dict:t,evaluatorOptions:this.options}))}));return h.promise}buildPath(e,t,a,i=!1){const n=e.length-1;a||(a=[]);if(n<0||e.fnArray[n]!==r.OPS.constructPath){if(i){(0,r.warn)(`Encountered path operator "${t}" inside of a text object.`);e.addOp(r.OPS.save,null)}let n;switch(t){case r.OPS.rectangle:const e=a[0]+a[2],t=a[1]+a[3];n=[Math.min(a[0],e),Math.max(a[0],e),Math.min(a[1],t),Math.max(a[1],t)];break;case r.OPS.moveTo:case r.OPS.lineTo:n=[a[0],a[0],a[1],a[1]];break;default:n=[1/0,-1/0,1/0,-1/0]}e.addOp(r.OPS.constructPath,[[t],a,n]);i&&e.addOp(r.OPS.restore,null)}else{const i=e.argsArray[n];i[0].push(t);i[1].push(...a);const s=i[2];switch(t){case r.OPS.rectangle:const e=a[0]+a[2],t=a[1]+a[3];s[0]=Math.min(s[0],a[0],e);s[1]=Math.max(s[1],a[0],e);s[2]=Math.min(s[2],a[1],t);s[3]=Math.max(s[3],a[1],t);break;case r.OPS.moveTo:case r.OPS.lineTo:s[0]=Math.min(s[0],a[0]);s[1]=Math.max(s[1],a[0]);s[2]=Math.min(s[2],a[1]);s[3]=Math.max(s[3],a[1])}}}parseColorSpace({cs:e,resources:t,localColorSpaceCache:a}){return y.ColorSpace.parseAsync({cs:e,xref:this.xref,resources:t,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:a}).catch((e=>{if(e instanceof r.AbortException)return null;if(this.options.ignoreErrors){(0,r.warn)(`parseColorSpace - ignoring ColorSpace: "${e}".`);return null}throw e}))}parseShading({shading:e,resources:t,localColorSpaceCache:a,localShadingPatternCache:r}){let i=r.get(e);if(!i){const n=l.Pattern.parseShading(e,this.xref,t,this._pdfFunctionFactory,a).getIR();i=`pattern_${this.idFactory.createObjId()}`;this.parsingType3Font&&(i=`${this.idFactory.getDocId()}_type3_${i}`);r.set(e,i);this.parsingType3Font?this.handler.send("commonobj",[i,"Pattern",n]):this.handler.send("obj",[i,this.pageIndex,"Pattern",n])}return i}handleColorN(e,t,a,i,s,o,c,h,u,d){const f=a.pop();if(f instanceof n.Name){const g=s.getRaw(f.name),p=g instanceof n.Ref&&u.getByRef(g);if(p)try{const r=i.base?i.base.getRgb(a,0):null,n=(0,l.getTilingPatternIR)(p.operatorListIR,p.dict,r);e.addOp(t,n);return}catch(e){}const b=this.xref.fetchIfRef(g);if(b){const n=b instanceof m.BaseStream?b.dict:b,s=n.get("PatternType");if(s===D){const r=i.base?i.base.getRgb(a,0):null;return this.handleTilingType(t,r,o,b,n,e,c,u)}if(s===N){const a=n.get("Shading"),r=n.getArray("Matrix"),i=this.parseShading({shading:a,resources:o,localColorSpaceCache:h,localShadingPatternCache:d});e.addOp(t,["Shading",i,r]);return}throw new r.FormatError(`Unknown PatternType: ${s}`)}}throw new r.FormatError(`Unknown PatternName: ${f}`)}_parseVisibilityExpression(e,t,a){if(++t>10){(0,r.warn)("Visibility expression is too deeply nested");return}const i=e.length,s=this.xref.fetchIfRef(e[0]);if(!(i<2)&&s instanceof n.Name){switch(s.name){case"And":case"Or":case"Not":a.push(s.name);break;default:(0,r.warn)(`Invalid operator ${s.name} in visibility expression`);return}for(let r=1;r0)return{type:"OCMD",expression:t}}const t=a.get("OCGs");if(Array.isArray(t)||t instanceof n.Dict){const e=[];if(Array.isArray(t))for(const a of t)e.push(a.toString());else e.push(t.objId);return{type:i,ids:e,policy:a.get("P")instanceof n.Name?a.get("P").name:null,expression:null}}if(t instanceof n.Ref)return{type:i,id:t.toString()}}return null}getOperatorList({stream:e,task:t,resources:a,operatorList:i,initialState:s=null,fallbackFontDict:o=null}){a||=n.Dict.empty;s||=new EvalState;if(!i)throw new Error('getOperatorList: missing "operatorList" parameter');const c=this,l=this.xref;let h=!1;const u=new g.LocalImageCache,d=new g.LocalColorSpaceCache,f=new g.LocalGStateCache,p=new g.LocalTilingPatternCache,b=new Map,w=a.get("XObject")||n.Dict.empty,S=a.get("Pattern")||n.Dict.empty,x=new StateManager(s),C=new EvaluatorPreprocessor(e,l,x),k=new TimeSlotManager;function closePendingRestoreOPS(e){for(let e=0,t=C.savedStatesDepth;e0&&i.addOp(r.OPS.setGState,[t]);e=null;continue}}next(new Promise((function(e,s){if(!E)throw new r.FormatError("GState must be referred to by name.");const o=a.get("ExtGState");if(!(o instanceof n.Dict))throw new r.FormatError("ExtGState should be a dictionary.");const l=o.get(M);if(!(l instanceof n.Dict))throw new r.FormatError("GState should be a dictionary.");c.setGState({resources:a,gState:l,operatorList:i,cacheKey:M,task:t,stateManager:x,localGStateCache:f,localColorSpaceCache:d}).then(e,s)})).catch((function(e){if(!(e instanceof r.AbortException)){if(!c.options.ignoreErrors)throw e;(0,r.warn)(`getOperatorList - ignoring ExtGState: "${e}".`)}})));return;case r.OPS.moveTo:case r.OPS.lineTo:case r.OPS.curveTo:case r.OPS.curveTo2:case r.OPS.curveTo3:case r.OPS.closePath:case r.OPS.rectangle:c.buildPath(i,s,e,h);continue;case r.OPS.markPoint:case r.OPS.markPointProps:case r.OPS.beginCompat:case r.OPS.endCompat:continue;case r.OPS.beginMarkedContentProps:if(!(e[0]instanceof n.Name)){(0,r.warn)(`Expected name for beginMarkedContentProps arg0=${e[0]}`);continue}if("OC"===e[0].name){next(c.parseMarkedContentProps(e[1],a).then((e=>{i.addOp(r.OPS.beginMarkedContentProps,["OC",e])})).catch((e=>{if(!(e instanceof r.AbortException)){if(!c.options.ignoreErrors)throw e;(0,r.warn)(`getOperatorList - ignoring beginMarkedContentProps: "${e}".`)}})));return}e=[e[0].name,e[1]instanceof n.Dict?e[1].get("MCID"):null];break;case r.OPS.beginMarkedContent:case r.OPS.endMarkedContent:default:if(null!==e){for(F=0,O=e.length;F{if(!(e instanceof r.AbortException)){if(!this.options.ignoreErrors)throw e;(0,r.warn)(`getOperatorList - ignoring errors during "${t.name}" task: "${e}".`);closePendingRestoreOPS()}}))}getTextContent({stream:e,task:t,resources:a,stateManager:i=null,includeMarkedContent:s=!1,sink:o,seenStyles:c=new Set,viewBox:l,markedContentData:h=null,disableNormalization:u=!1}){a||=n.Dict.empty;i||=new StateManager(new TextState);s&&(h||={level:0});const d={items:[],styles:Object.create(null)},f={initialized:!1,str:[],totalWidth:0,totalHeight:0,width:0,height:0,vertical:!1,prevTransform:null,textAdvanceScale:0,spaceInFlowMin:0,spaceInFlowMax:0,trackingSpaceMin:1/0,negativeSpaceMax:-1/0,notASpace:-1/0,transform:null,fontName:null,hasEOL:!1},p=[" "," "];let y=0;function saveLastChar(e){const t=(y+1)%2,a=" "!==p[y]&&" "===p[t];p[y]=e;y=t;return a}function shouldAddWhitepsace(){return" "!==p[y]&&" "===p[(y+1)%2]}function resetLastChars(){p[0]=p[1]=" ";y=0}const w=this,S=this.xref,x=[];let C=null;const k=new g.LocalImageCache,v=new g.LocalGStateCache,F=new EvaluatorPreprocessor(e,S,i);let O;function pushWhitespace({width:e=0,height:t=0,transform:a=f.prevTransform,fontName:r=f.fontName}){d.items.push({str:" ",dir:"ltr",width:e,height:t,transform:a,fontName:r,hasEOL:!1})}function getCurrentTextTransform(){const e=O.font,t=[O.fontSize*O.textHScale,0,0,O.fontSize,0,O.textRise];if(e.isType3Font&&(O.fontSize<=1||e.isCharBBox)&&!(0,r.isArrayEqual)(O.fontMatrix,r.FONT_IDENTITY_MATRIX)){const a=e.bbox[3]-e.bbox[1];a>0&&(t[3]*=a*O.fontMatrix[3])}return r.Util.transform(O.ctm,r.Util.transform(O.textMatrix,t))}function ensureTextContentItem(){if(f.initialized)return f;const{font:e,loadedName:t}=O;if(!c.has(t)){c.add(t);d.styles[t]={fontFamily:e.fallbackName,ascent:e.ascent,descent:e.descent,vertical:e.vertical}}f.fontName=t;const a=f.transform=getCurrentTextTransform();if(e.vertical){f.width=f.totalWidth=Math.hypot(a[0],a[1]);f.height=f.totalHeight=0;f.vertical=!0}else{f.width=f.totalWidth=0;f.height=f.totalHeight=Math.hypot(a[2],a[3]);f.vertical=!1}const r=Math.hypot(O.textLineMatrix[0],O.textLineMatrix[1]),i=Math.hypot(O.ctm[0],O.ctm[1]);f.textAdvanceScale=i*r;const{fontSize:n}=O;f.trackingSpaceMin=.102*n;f.notASpace=.03*n;f.negativeSpaceMax=-.2*n;f.spaceInFlowMin=.102*n;f.spaceInFlowMax=.6*n;f.hasEOL=!1;f.initialized=!0;return f}function updateAdvanceScale(){if(!f.initialized)return;const e=Math.hypot(O.textLineMatrix[0],O.textLineMatrix[1]),t=Math.hypot(O.ctm[0],O.ctm[1])*e;if(t!==f.textAdvanceScale){if(f.vertical){f.totalHeight+=f.height*f.textAdvanceScale;f.height=0}else{f.totalWidth+=f.width*f.textAdvanceScale;f.width=0}f.textAdvanceScale=t}}function handleSetFont(e,i){return w.loadFont(e,i,a).then((function(e){return e.font.isType3Font?e.loadType3Data(w,a,t).catch((function(){})).then((function(){return e})):e})).then((function(e){O.loadedName=e.loadedName;O.font=e.font;O.fontMatrix=e.font.fontMatrix||r.FONT_IDENTITY_MATRIX}))}function applyInverseRotation(e,t,a){const r=Math.hypot(a[0],a[1]);return[(a[0]*e+a[1]*t)/r,(a[2]*e+a[3]*t)/r]}function compareWithLastPosition(e){const t=getCurrentTextTransform();let a=t[4],r=t[5];if(O.font&&O.font.vertical){if(al[2]||r+el[3])return!1}else if(a+el[2]||rl[3])return!1;if(!O.font||!f.prevTransform)return!0;let i=f.prevTransform[4],n=f.prevTransform[5];if(i===a&&n===r)return!0;let s=-1;t[0]&&0===t[1]&&0===t[2]?s=t[0]>0?0:180:t[1]&&0===t[0]&&0===t[3]&&(s=t[1]>0?90:270);switch(s){case 0:break;case 90:[a,r]=[r,a];[i,n]=[n,i];break;case 180:[a,r,i,n]=[-a,-r,-i,-n];break;case 270:[a,r]=[-r,-a];[i,n]=[-n,-i];break;default:[a,r]=applyInverseRotation(a,r,t);[i,n]=applyInverseRotation(i,n,f.prevTransform)}if(O.font.vertical){const e=(n-r)/f.textAdvanceScale,t=a-i,s=Math.sign(f.height);if(e.5*f.width){appendEOL();return!0}resetLastChars();flushTextContentItem();return!0}if(Math.abs(t)>f.width){appendEOL();return!0}e<=s*f.notASpace&&resetLastChars();if(e<=s*f.trackingSpaceMin)if(shouldAddWhitepsace()){resetLastChars();flushTextContentItem();pushWhitespace({height:Math.abs(e)})}else f.height+=e;else if(!addFakeSpaces(e,f.prevTransform,s))if(0===f.str.length){resetLastChars();pushWhitespace({height:Math.abs(e)})}else f.height+=e;Math.abs(t)>.25*f.width&&flushTextContentItem();return!0}const o=(a-i)/f.textAdvanceScale,c=r-n,h=Math.sign(f.width);if(o.5*f.height){appendEOL();return!0}resetLastChars();flushTextContentItem();return!0}if(Math.abs(c)>f.height){appendEOL();return!0}o<=h*f.notASpace&&resetLastChars();if(o<=h*f.trackingSpaceMin)if(shouldAddWhitepsace()){resetLastChars();flushTextContentItem();pushWhitespace({width:Math.abs(o)})}else f.width+=o;else if(!addFakeSpaces(o,f.prevTransform,h))if(0===f.str.length){resetLastChars();pushWhitespace({width:Math.abs(o)})}else f.width+=o;Math.abs(c)>.25*f.height&&flushTextContentItem();return!0}function buildTextContentItem({chars:e,extraSpacing:t}){const a=O.font;if(!e){const e=O.charSpacing+t;e&&(a.vertical?O.translateTextMatrix(0,-e):O.translateTextMatrix(e*O.textHScale,0));return}const r=a.charsToGlyphs(e),i=O.fontMatrix[0]*O.fontSize;for(let e=0,n=r.length;e0){const e=x.join("");x.length=0;buildTextContentItem({chars:e,extraSpacing:0})}break;case r.OPS.showText:if(!i.state.font){w.ensureStateFont(i.state);continue}buildTextContentItem({chars:b[0],extraSpacing:0});break;case r.OPS.nextLineShowText:if(!i.state.font){w.ensureStateFont(i.state);continue}O.carriageReturn();buildTextContentItem({chars:b[0],extraSpacing:0});break;case r.OPS.nextLineSetSpacingShowText:if(!i.state.font){w.ensureStateFont(i.state);continue}O.wordSpacing=b[0];O.charSpacing=b[1];O.carriageReturn();buildTextContentItem({chars:b[2],extraSpacing:0});break;case r.OPS.paintXObject:flushTextContentItem();C||(C=a.get("XObject")||n.Dict.empty);var E=b[0]instanceof n.Name,D=b[0].name;if(E&&k.getByName(D))break;next(new Promise((function(e,d){if(!E)throw new r.FormatError("XObject must be referred to by name.");let f=C.getRaw(D);if(f instanceof n.Ref){if(k.getByRef(f)){e();return}if(w.globalImageCache.getData(f,w.pageIndex)){e();return}f=S.fetch(f)}if(!(f instanceof m.BaseStream))throw new r.FormatError("XObject should be a stream");const g=f.dict.get("Subtype");if(!(g instanceof n.Name))throw new r.FormatError("XObject should have a Name subtype");if("Form"!==g.name){k.set(D,f.dict.objId,!0);e();return}const p=i.state.clone(),b=new StateManager(p),y=f.dict.getArray("Matrix");Array.isArray(y)&&6===y.length&&b.transform(y);enqueueChunk();const x={enqueueInvoked:!1,enqueue(e,t){this.enqueueInvoked=!0;o.enqueue(e,t)},get desiredSize(){return o.desiredSize},get ready(){return o.ready}};w.getTextContent({stream:f,task:t,resources:f.dict.get("Resources")||a,stateManager:b,includeMarkedContent:s,sink:x,seenStyles:c,viewBox:l,markedContentData:h,disableNormalization:u}).then((function(){x.enqueueInvoked||k.set(D,f.dict.objId,!0);e()}),d)})).catch((function(e){if(!(e instanceof r.AbortException)){if(!w.options.ignoreErrors)throw e;(0,r.warn)(`getTextContent - ignoring XObject: "${e}".`)}})));return;case r.OPS.setGState:E=b[0]instanceof n.Name;D=b[0].name;if(E&&v.getByName(D))break;next(new Promise((function(e,t){if(!E)throw new r.FormatError("GState must be referred to by name.");const i=a.get("ExtGState");if(!(i instanceof n.Dict))throw new r.FormatError("ExtGState should be a dictionary.");const s=i.get(D);if(!(s instanceof n.Dict))throw new r.FormatError("GState should be a dictionary.");const o=s.get("Font");if(o){flushTextContentItem();O.fontName=null;O.fontSize=o[1];handleSetFont(null,o[0]).then(e,t)}else{v.set(D,s.objId,!0);e()}})).catch((function(e){if(!(e instanceof r.AbortException)){if(!w.options.ignoreErrors)throw e;(0,r.warn)(`getTextContent - ignoring ExtGState: "${e}".`)}})));return;case r.OPS.beginMarkedContent:flushTextContentItem();if(s){h.level++;d.items.push({type:"beginMarkedContent",tag:b[0]instanceof n.Name?b[0].name:null})}break;case r.OPS.beginMarkedContentProps:flushTextContentItem();if(s){h.level++;let e=null;b[1]instanceof n.Dict&&(e=b[1].get("MCID"));d.items.push({type:"beginMarkedContentProps",id:Number.isInteger(e)?`${w.idFactory.getPageObjId()}_mcid${e}`:null,tag:b[0]instanceof n.Name?b[0].name:null})}break;case r.OPS.endMarkedContent:flushTextContentItem();if(s){if(0===h.level)break;h.level--;d.items.push({type:"endMarkedContent"})}}if(d.items.length>=o.desiredSize){p=!0;break}}if(p)next(R);else{flushTextContentItem();enqueueChunk();e()}})).catch((e=>{if(!(e instanceof r.AbortException)){if(!this.options.ignoreErrors)throw e;(0,r.warn)(`getTextContent - ignoring errors during "${t.name}" task: "${e}".`);flushTextContentItem();enqueueChunk()}}))}extractDataStructures(e,t,a){const i=this.xref;let s;const c=this.readToUnicode(a.toUnicode||e.get("ToUnicode")||t.get("ToUnicode"));if(a.composite){const t=e.get("CIDSystemInfo");t instanceof n.Dict&&(a.cidSystemInfo={registry:(0,r.stringToPDFString)(t.get("Registry")),ordering:(0,r.stringToPDFString)(t.get("Ordering")),supplement:t.get("Supplement")});try{const t=e.get("CIDToGIDMap");t instanceof m.BaseStream&&(s=t.getBytes())}catch(e){if(!this.options.ignoreErrors)throw e;(0,r.warn)(`extractDataStructures - ignoring CIDToGIDMap data: "${e}".`)}}const l=[];let h,u=null;if(e.has("Encoding")){h=e.get("Encoding");if(h instanceof n.Dict){u=h.get("BaseEncoding");u=u instanceof n.Name?u.name:null;if(h.has("Differences")){const e=h.get("Differences");let t=0;for(const a of e){const e=i.fetchIfRef(a);if("number"==typeof e)t=e;else{if(!(e instanceof n.Name))throw new r.FormatError(`Invalid entry in 'Differences' array: ${e}`);l[t++]=e.name}}}}else if(h instanceof n.Name)u=h.name;else{const e="Encoding is not a Name nor a Dict";if(!this.options.ignoreErrors)throw new r.FormatError(e);(0,r.warn)(e)}"MacRomanEncoding"!==u&&"MacExpertEncoding"!==u&&"WinAnsiEncoding"!==u&&(u=null)}if(u)a.defaultEncoding=(0,o.getEncoding)(u);else{const e=!!(a.flags&S.FontFlags.Symbolic),t=!!(a.flags&S.FontFlags.Nonsymbolic);h=o.StandardEncoding;"TrueType"!==a.type||t||(h=o.WinAnsiEncoding);if(e){h=o.MacRomanEncoding;a.file&&!a.isInternalFont||(/Symbol/i.test(a.name)?h=o.SymbolSetEncoding:/Dingbats|Wingdings/i.test(a.name)&&(h=o.ZapfDingbatsEncoding))}a.defaultEncoding=h}a.differences=l;a.baseEncodingName=u;a.hasEncoding=!!u||l.length>0;a.dict=e;return c.then((e=>{a.toUnicode=e;return this.buildToUnicode(a)})).then((e=>{a.toUnicode=e;s&&(a.cidToGidMap=this.readCidToGidMap(s,e));return a}))}_simpleFontToUnicode(e,t=!1){(0,r.assert)(!e.composite,"Must be a simple font.");const a=[],i=e.defaultEncoding.slice(),n=e.baseEncodingName,s=e.differences;for(const e in s){const t=s[e];".notdef"!==t&&(i[e]=t)}const c=(0,x.getGlyphsUnicode)();for(const r in i){let s=i[r];if(""===s)continue;let l=c[s];if(void 0!==l){a[r]=String.fromCharCode(l);continue}let h=0;switch(s[0]){case"G":3===s.length&&(h=parseInt(s.substring(1),16));break;case"g":5===s.length&&(h=parseInt(s.substring(1),16));break;case"C":case"c":if(s.length>=3&&s.length<=4){const a=s.substring(1);if(t){h=parseInt(a,16);break}h=+a;if(Number.isNaN(h)&&Number.isInteger(parseInt(a,16)))return this._simpleFontToUnicode(e,!0)}break;case"u":l=(0,v.getUnicodeForGlyph)(s,c);-1!==l&&(h=l);break;default:switch(s){case"f_h":case"f_t":case"T_h":a[r]=s.replaceAll("_","");continue}}if(h>0&&h<=1114111&&Number.isInteger(h)){if(n&&h===+r){const e=(0,o.getEncoding)(n);if(e&&(s=e[r])){a[r]=String.fromCharCode(c[s]);continue}}a[r]=String.fromCodePoint(h)}}return a}async buildToUnicode(e){e.hasIncludedToUnicodeMap=!!e.toUnicode&&e.toUnicode.length>0;if(e.hasIncludedToUnicodeMap){!e.composite&&e.hasEncoding&&(e.fallbackToUnicode=this._simpleFontToUnicode(e));return e.toUnicode}if(!e.composite)return new u.ToUnicodeMap(this._simpleFontToUnicode(e));if(e.composite&&(e.cMap.builtInCMap&&!(e.cMap instanceof i.IdentityCMap)||"Adobe"===e.cidSystemInfo.registry&&("GB1"===e.cidSystemInfo.ordering||"CNS1"===e.cidSystemInfo.ordering||"Japan1"===e.cidSystemInfo.ordering||"Korea1"===e.cidSystemInfo.ordering))){const{registry:t,ordering:a}=e.cidSystemInfo,s=n.Name.get(`${t}-${a}-UCS2`),o=await i.CMapFactory.create({encoding:s,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}),c=[],l=[];e.cMap.forEach((function(e,t){if(t>65535)throw new r.FormatError("Max size of CID is 65,535");const a=o.lookup(t);if(a){l.length=0;for(let e=0,t=a.length;e{if(e instanceof r.AbortException)return null;if(this.options.ignoreErrors){(0,r.warn)(`readToUnicode - ignoring ToUnicode data: "${e}".`);return null}throw e})):Promise.resolve(null):Promise.resolve(null)}readCidToGidMap(e,t){const a=[];for(let r=0,i=e.length;r>1;(0!==i||t.has(n))&&(a[n]=i)}return a}extractWidths(e,t,a){const r=this.xref;let i=[],s=0;const o=[];let c,l,h,u,d,f,g,p;if(a.composite){s=e.has("DW")?e.get("DW"):1e3;p=e.get("W");if(p)for(l=0,h=p.length;l{if(g){const e=[];let a=u;for(const t of g)e[a++]=this.xref.fetchIfRef(t);t.widths=e}else t.widths=this.buildCharCodeToWidth(i.widths,t);return new s.Font(e,y,t)}))}(e=new n.Dict(null)).set("FontName",n.Name.get(l));e.set("FontBBox",t.getArray("FontBBox")||[0,0,0,0])}let y,w,x,C,k,v=e.get("FontName"),F=t.get("BaseFont");"string"==typeof v&&(v=n.Name.get(v));"string"==typeof F&&(F=n.Name.get(F));if(!m){const e=v&&v.name,t=F&&F.name;if(e!==t){(0,r.info)(`The FontDescriptor's FontName is "${e}" but should be the same as the Font's BaseFont "${t}".`);e&&t&&t.startsWith(e)&&(v=F)}}v||=F;if(!(v instanceof n.Name))throw new r.FormatError("invalid font name");try{y=e.get("FontFile","FontFile2","FontFile3")}catch(e){if(!this.options.ignoreErrors)throw e;(0,r.warn)(`translateFont - fetching "${v.name}" font file: "${e}".`);y=new p.NullStream}let O=!1,T=null;if(y){if(y.dict){const e=y.dict.get("Subtype");e instanceof n.Name&&(w=e.name);x=y.dict.get("Length1");C=y.dict.get("Length2");k=y.dict.get("Length3")}}else if(g){const e=(0,h.getXfaFontName)(v.name);if(e){g.fontFamily=`${g.fontFamily}-PdfJS-XFA`;g.metrics=e.metrics||null;T=e.factors||null;y=await this.fetchStandardFontData(e.name);O=!!y;a=t=(0,h.getXfaFontDict)(v.name);o=!0}}else if(!m){const e=(0,c.getStandardFontName)(v.name);if(e){y=await this.fetchStandardFontData(e);O=!!y}}b={type:l,name:v.name,subtype:w,file:y,length1:x,length2:C,length3:k,isInternalFont:O,loadedName:a.loadedName,composite:o,fixedPitch:!1,fontMatrix:t.getArray("FontMatrix")||r.FONT_IDENTITY_MATRIX,firstChar:u,lastChar:d,toUnicode:f,bbox:e.getArray("FontBBox")||t.getArray("FontBBox"),ascent:e.get("Ascent"),descent:e.get("Descent"),xHeight:e.get("XHeight")||0,capHeight:e.get("CapHeight")||0,flags:e.get("Flags"),italicAngle:e.get("ItalicAngle")||0,isType3Font:m,cssFontInfo:g,scaleFactors:T};if(o){const e=a.get("Encoding");e instanceof n.Name&&(b.cidEncoding=e.name);const t=await i.CMapFactory.create({encoding:e,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null});b.cMap=t;b.vertical=b.cMap.vertical}return this.extractDataStructures(t,a,b).then((a=>{this.extractWidths(t,e,a);return new s.Font(v.name,y,a)}))}static buildFontPaths(e,t,a,i){function buildPath(t){const n=`${e.loadedName}_path_${t}`;try{if(e.renderer.hasBuiltPath(t))return;a.send("commonobj",[n,"FontPath",e.renderer.getPathJs(t)])}catch(e){if(i.ignoreErrors){(0,r.warn)(`buildFontPaths - ignoring ${n} glyph: "${e}".`);return}throw e}}for(const e of t){buildPath(e.fontChar);const t=e.accent;t&&t.fontChar&&buildPath(t.fontChar)}}static get fallbackFontDict(){const e=new n.Dict;e.set("BaseFont",n.Name.get("PDFJS-FallbackFont"));e.set("Type",n.Name.get("FallbackType"));e.set("Subtype",n.Name.get("FallbackType"));e.set("Encoding",n.Name.get("WinAnsiEncoding"));return(0,r.shadow)(this,"fallbackFontDict",e)}}t.PartialEvaluator=PartialEvaluator;class TranslatedFont{constructor({loadedName:e,font:t,dict:a,evaluatorOptions:r}){this.loadedName=e;this.font=t;this.dict=a;this._evaluatorOptions=r||E;this.type3Loaded=null;this.type3Dependencies=t.isType3Font?new Set:null;this.sent=!1}send(e){if(!this.sent){this.sent=!0;e.send("commonobj",[this.loadedName,"Font",this.font.exportData(this._evaluatorOptions.fontExtraProperties)])}}fallback(e){if(this.font.data){this.font.disableFontFace=!0;PartialEvaluator.buildFontPaths(this.font,this.font.glyphCacheValues,e,this._evaluatorOptions)}}loadType3Data(e,t,a){if(this.type3Loaded)return this.type3Loaded;if(!this.font.isType3Font)throw new Error("Must be a Type3 font.");const i=e.clone({ignoreErrors:!1});i.parsingType3Font=!0;const s=new n.RefSet(e.type3FontRefs);this.dict.objId&&!s.has(this.dict.objId)&&s.put(this.dict.objId);i.type3FontRefs=s;const o=this.font,c=this.type3Dependencies;let l=Promise.resolve();const h=this.dict.get("CharProcs"),u=this.dict.get("Resources")||t,d=Object.create(null),f=r.Util.normalizeRect(o.bbox||[0,0,0,0]),g=f[2]-f[0],p=f[3]-f[1],m=Math.hypot(g,p);for(const e of h.getKeys())l=l.then((()=>{const t=h.get(e),n=new T.OperatorList;return i.getOperatorList({stream:t,task:a,resources:u,operatorList:n}).then((()=>{n.fnArray[0]===r.OPS.setCharWidthAndBounds&&this._removeType3ColorOperators(n,m);d[e]=n.getIR();for(const e of n.dependencies)c.add(e)})).catch((function(t){(0,r.warn)(`Type3 font resource "${e}" is not available.`);const a=new T.OperatorList;d[e]=a.getIR()}))}));this.type3Loaded=l.then((()=>{o.charProcOperatorList=d;if(this._bbox){o.isCharBBox=!0;o.bbox=this._bbox}}));return this.type3Loaded}_removeType3ColorOperators(e,t=NaN){const a=r.Util.normalizeRect(e.argsArray[0].slice(2)),i=a[2]-a[0],n=a[3]-a[1],s=Math.hypot(i,n);if(0===i||0===n){e.fnArray.splice(0,1);e.argsArray.splice(0,1)}else if(0===t||Math.round(s/t)>=10){this._bbox||(this._bbox=[1/0,1/0,-1/0,-1/0]);this._bbox[0]=Math.min(this._bbox[0],a[0]);this._bbox[1]=Math.min(this._bbox[1],a[1]);this._bbox[2]=Math.max(this._bbox[2],a[2]);this._bbox[3]=Math.max(this._bbox[3],a[3])}let o=0,c=e.length;for(;o=r.OPS.moveTo&&s<=r.OPS.endPath;if(n.variableArgs)c>o&&(0,r.info)(`Command ${i}: expected [0, ${o}] args, but received ${c} args.`);else{if(c!==o){const e=this.nonProcessedArgs;for(;c>o;){e.push(t.shift());c--}for(;cEvaluatorPreprocessor.MAX_INVALID_PATH_OPS)throw new r.FormatError(`Invalid ${e}`);(0,r.warn)(`Skipping ${e}`);null!==t&&(t.length=0);continue}}this.preprocessCommand(s,t);e.fn=s;e.args=t;return!0}if(a===n.EOF)return!1;if(null!==a){null===t&&(t=[]);t.push(a);if(t.length>33)throw new r.FormatError("Too many arguments")}}}preprocessCommand(e,t){switch(0|e){case r.OPS.save:this.stateManager.save();break;case r.OPS.restore:this.stateManager.restore();break;case r.OPS.transform:this.stateManager.transform(t)}}}t.EvaluatorPreprocessor=EvaluatorPreprocessor},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.IdentityCMap=t.CMapFactory=t.CMap=void 0;var r=a(2),i=a(4),n=a(5),s=a(15),o=a(16),c=a(3),l=a(8);const h=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"],u=2**24-1;class CMap{constructor(e=!1){this.codespaceRanges=[[],[],[],[]];this.numCodespaceRanges=0;this._map=[];this.name="";this.vertical=!1;this.useCMap=null;this.builtInCMap=e}addCodespaceRange(e,t,a){this.codespaceRanges[e-1].push(t,a);this.numCodespaceRanges++}mapCidRange(e,t,a){if(t-e>u)throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");for(;e<=t;)this._map[e++]=a++}mapBfRange(e,t,a){if(t-e>u)throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");const r=a.length-1;for(;e<=t;){this._map[e++]=a;const t=a.charCodeAt(r)+1;t>255?a=a.substring(0,r-1)+String.fromCharCode(a.charCodeAt(r-1)+1)+"\0":a=a.substring(0,r)+String.fromCharCode(t)}}mapBfRangeToArray(e,t,a){if(t-e>u)throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");const r=a.length;let i=0;for(;e<=t&&i>>0;const s=i[n];for(let e=0,t=s.length;e=t&&r<=i){a.charcode=r;a.length=n+1;return}}}a.charcode=0;a.length=1}getCharCodeLength(e){const t=this.codespaceRanges;for(let a=0,r=t.length;a=i&&e<=n)return a+1}}return 1}get length(){return this._map.length}get isIdentityCMap(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(let e=0;e<65536;e++)if(this._map[e]!==e)return!1;return!0}}t.CMap=CMap;class IdentityCMap extends CMap{constructor(e,t){super();this.vertical=e;this.addCodespaceRange(t,0,65535)}mapCidRange(e,t,a){(0,r.unreachable)("should not call mapCidRange")}mapBfRange(e,t,a){(0,r.unreachable)("should not call mapBfRange")}mapBfRangeToArray(e,t,a){(0,r.unreachable)("should not call mapBfRangeToArray")}mapOne(e,t){(0,r.unreachable)("should not call mapCidOne")}lookup(e){return Number.isInteger(e)&&e<=65535?e:void 0}contains(e){return Number.isInteger(e)&&e<=65535}forEach(e){for(let t=0;t<=65535;t++)e(t,t)}charCodeOf(e){return Number.isInteger(e)&&e<=65535?e:-1}getMap(){const e=new Array(65536);for(let t=0;t<=65535;t++)e[t]=t;return e}get length(){return 65536}get isIdentityCMap(){(0,r.unreachable)("should not access .isIdentityCMap")}}t.IdentityCMap=IdentityCMap;function strToInt(e){let t=0;for(let a=0;a>>0}function expectString(e){if("string"!=typeof e)throw new r.FormatError("Malformed CMap: expected string.")}function expectInt(e){if(!Number.isInteger(e))throw new r.FormatError("Malformed CMap: expected int.")}function parseBfChar(e,t){for(;;){let a=t.getObj();if(a===i.EOF)break;if((0,i.isCmd)(a,"endbfchar"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const n=a;e.mapOne(r,n)}}function parseBfRange(e,t){for(;;){let a=t.getObj();if(a===i.EOF)break;if((0,i.isCmd)(a,"endbfrange"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const n=strToInt(a);a=t.getObj();if(Number.isInteger(a)||"string"==typeof a){const t=Number.isInteger(a)?String.fromCharCode(a):a;e.mapBfRange(r,n,t)}else{if(!(0,i.isCmd)(a,"["))break;{a=t.getObj();const s=[];for(;!(0,i.isCmd)(a,"]")&&a!==i.EOF;){s.push(a);a=t.getObj()}e.mapBfRangeToArray(r,n,s)}}}throw new r.FormatError("Invalid bf range.")}function parseCidChar(e,t){for(;;){let a=t.getObj();if(a===i.EOF)break;if((0,i.isCmd)(a,"endcidchar"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectInt(a);const n=a;e.mapOne(r,n)}}function parseCidRange(e,t){for(;;){let a=t.getObj();if(a===i.EOF)break;if((0,i.isCmd)(a,"endcidrange"))return;expectString(a);const r=strToInt(a);a=t.getObj();expectString(a);const n=strToInt(a);a=t.getObj();expectInt(a);const s=a;e.mapCidRange(r,n,s)}}function parseCodespaceRange(e,t){for(;;){let a=t.getObj();if(a===i.EOF)break;if((0,i.isCmd)(a,"endcodespacerange"))return;if("string"!=typeof a)break;const r=strToInt(a);a=t.getObj();if("string"!=typeof a)break;const n=strToInt(a);e.addCodespaceRange(a.length,r,n)}throw new r.FormatError("Invalid codespace range.")}function parseWMode(e,t){const a=t.getObj();Number.isInteger(a)&&(e.vertical=!!a)}function parseCMapName(e,t){const a=t.getObj();a instanceof i.Name&&(e.name=a.name)}async function parseCMap(e,t,a,n){let s,o;e:for(;;)try{const a=t.getObj();if(a===i.EOF)break;if(a instanceof i.Name){"WMode"===a.name?parseWMode(e,t):"CMapName"===a.name&&parseCMapName(e,t);s=a}else if(a instanceof i.Cmd)switch(a.cmd){case"endcmap":break e;case"usecmap":s instanceof i.Name&&(o=s.name);break;case"begincodespacerange":parseCodespaceRange(e,t);break;case"beginbfchar":parseBfChar(e,t);break;case"begincidchar":parseCidChar(e,t);break;case"beginbfrange":parseBfRange(e,t);break;case"begincidrange":parseCidRange(e,t)}}catch(e){if(e instanceof c.MissingDataException)throw e;(0,r.warn)("Invalid cMap data: "+e);continue}!n&&o&&(n=o);return n?extendCMap(e,a,n):e}async function extendCMap(e,t,a){e.useCMap=await createBuiltInCMap(a,t);if(0===e.numCodespaceRanges){const t=e.useCMap.codespaceRanges;for(let a=0;aextendCMap(n,t,e)));if(i===r.CMapCompressionType.NONE){const e=new o.Lexer(new l.Stream(a));return parseCMap(n,e,t,null)}throw new Error(`Invalid CMap "compressionType" value: ${i}`)}t.CMapFactory=class CMapFactory{static async create({encoding:e,fetchBuiltInCMap:t,useCMap:a}){if(e instanceof i.Name)return createBuiltInCMap(e.name,t);if(e instanceof n.BaseStream){const r=await parseCMap(new CMap,new o.Lexer(e),t,a);return r.isIdentityCMap?createBuiltInCMap(r.name,t):r}throw new Error("Encoding required.")}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.BinaryCMapReader=void 0;var r=a(2);function hexToInt(e,t){let a=0;for(let r=0;r<=t;r++)a=a<<8|e[r];return a>>>0}function hexToStr(e,t){return 1===t?String.fromCharCode(e[0],e[1]):3===t?String.fromCharCode(e[0],e[1],e[2],e[3]):String.fromCharCode(...e.subarray(0,t+1))}function addHex(e,t,a){let r=0;for(let i=a;i>=0;i--){r+=e[i]+t[i];e[i]=255&r;r>>=8}}function incHex(e,t){let a=1;for(let r=t;r>=0&&a>0;r--){a+=e[r];e[r]=255&a;a>>=8}}const i=16;class BinaryCMapStream{constructor(e){this.buffer=e;this.pos=0;this.end=e.length;this.tmpBuf=new Uint8Array(19)}readByte(){return this.pos>=this.end?-1:this.buffer[this.pos++]}readNumber(){let e,t=0;do{const a=this.readByte();if(a<0)throw new r.FormatError("unexpected EOF in bcmap");e=!(128&a);t=t<<7|127&a}while(!e);return t}readSigned(){const e=this.readNumber();return 1&e?~(e>>>1):e>>>1}readHex(e,t){e.set(this.buffer.subarray(this.pos,this.pos+t+1));this.pos+=t+1}readHexNumber(e,t){let a;const i=this.tmpBuf;let n=0;do{const e=this.readByte();if(e<0)throw new r.FormatError("unexpected EOF in bcmap");a=!(128&e);i[n++]=127&e}while(!a);let s=t,o=0,c=0;for(;s>=0;){for(;c<8&&i.length>0;){o|=i[--n]<>=8;c-=8}}readHexSigned(e,t){this.readHexNumber(e,t);const a=1&e[t]?255:0;let r=0;for(let i=0;i<=t;i++){r=(1&r)<<8|e[i];e[i]=r>>1^a}}readString(){const e=this.readNumber(),t=new Array(e);for(let a=0;a=0;){const e=f>>5;if(7===e){switch(31&f){case 0:r.readString();break;case 1:s=r.readString()}continue}const a=!!(16&f),n=15&f;if(n+1>i)throw new Error("BinaryCMapReader.process: Invalid dataSize.");const g=1,p=r.readNumber();switch(e){case 0:r.readHex(o,n);r.readHexNumber(c,n);addHex(c,o,n);t.addCodespaceRange(n+1,hexToInt(o,n),hexToInt(c,n));for(let e=1;e{Object.defineProperty(t,"__esModule",{value:!0});t.Parser=t.Linearization=t.Lexer=void 0;var r=a(2),i=a(4),n=a(3),s=a(17),o=a(19),c=a(20),l=a(22),h=a(23),u=a(26),d=a(29),f=a(31),g=a(8),p=a(32),m=a(33);class Parser{constructor({lexer:e,xref:t,allowStreams:a=!1,recoveryMode:r=!1}){this.lexer=e;this.xref=t;this.allowStreams=a;this.recoveryMode=r;this.imageCache=Object.create(null);this._imageId=0;this.refill()}refill(){this.buf1=this.lexer.getObj();this.buf2=this.lexer.getObj()}shift(){if(this.buf2 instanceof i.Cmd&&"ID"===this.buf2.cmd){this.buf1=this.buf2;this.buf2=null}else{this.buf1=this.buf2;this.buf2=this.lexer.getObj()}}tryShift(){try{this.shift();return!0}catch(e){if(e instanceof n.MissingDataException)throw e;return!1}}getObj(e=null){const t=this.buf1;this.shift();if(t instanceof i.Cmd)switch(t.cmd){case"BI":return this.makeInlineImage(e);case"[":const a=[];for(;!(0,i.isCmd)(this.buf1,"]")&&this.buf1!==i.EOF;)a.push(this.getObj(e));if(this.buf1===i.EOF){if(this.recoveryMode)return a;throw new n.ParserEOFException("End of file inside array.")}this.shift();return a;case"<<":const s=new i.Dict(this.xref);for(;!(0,i.isCmd)(this.buf1,">>")&&this.buf1!==i.EOF;){if(!(this.buf1 instanceof i.Name)){(0,r.info)("Malformed dictionary: key must be a name object");this.shift();continue}const t=this.buf1.name;this.shift();if(this.buf1===i.EOF)break;s.set(t,this.getObj(e))}if(this.buf1===i.EOF){if(this.recoveryMode)return s;throw new n.ParserEOFException("End of file inside dictionary.")}if((0,i.isCmd)(this.buf2,"stream"))return this.allowStreams?this.makeStream(s,e):s;this.shift();return s;default:return t}if(Number.isInteger(t)){if(Number.isInteger(this.buf1)&&(0,i.isCmd)(this.buf2,"R")){const e=i.Ref.get(t,this.buf1);this.shift();this.shift();return e}return t}return"string"==typeof t&&e?e.decryptString(t):t}findDefaultInlineStreamEnd(e){const t=this.lexer,a=e.pos;let s,o,c=0;for(;-1!==(s=e.getByte());)if(0===c)c=69===s?1:0;else if(1===c)c=73===s?2:0;else if(32===s||10===s||13===s){o=e.pos;const a=e.peekBytes(10);for(let e=0,t=a.length;e127))){c=0;break}}if(2!==c)continue;if(t.knownCommands){const e=t.peekObj();e instanceof i.Cmd&&!t.knownCommands[e.cmd]&&(c=0)}else(0,r.warn)("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.");if(2===c)break}else c=0;if(-1===s){(0,r.warn)("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker");if(o){(0,r.warn)('... trying to recover by using the last "EI" occurrence.');e.skip(-(e.pos-o))}}let l=4;e.skip(-l);s=e.peekByte();e.skip(l);(0,n.isWhiteSpace)(s)||l--;return e.pos-l-a}findDCTDecodeInlineStreamEnd(e){const t=e.pos;let a,i,n=!1;for(;-1!==(a=e.getByte());)if(255===a){switch(e.getByte()){case 0:break;case 255:e.skip(-1);break;case 217:n=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:i=e.getUint16();i>2?e.skip(i-2):e.skip(-2)}if(n)break}const s=e.pos-t;if(-1===a){(0,r.warn)("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.");e.skip(-s);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return s}findASCII85DecodeInlineStreamEnd(e){const t=e.pos;let a;for(;-1!==(a=e.getByte());)if(126===a){const t=e.pos;a=e.peekByte();for(;(0,n.isWhiteSpace)(a);){e.skip();a=e.peekByte()}if(62===a){e.skip();break}if(e.pos>t){const t=e.peekBytes(2);if(69===t[0]&&73===t[1])break}}const i=e.pos-t;if(-1===a){(0,r.warn)("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-i);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return i}findASCIIHexDecodeInlineStreamEnd(e){const t=e.pos;let a;for(;-1!==(a=e.getByte())&&62!==a;);const i=e.pos-t;if(-1===a){(0,r.warn)("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-i);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return i}inlineStreamSkipEI(e){let t,a=0;for(;-1!==(t=e.getByte());)if(0===a)a=69===t?1:0;else if(1===a)a=73===t?2:0;else if(2===a)break}makeInlineImage(e){const t=this.lexer,a=t.stream,n=Object.create(null);let s;for(;!(0,i.isCmd)(this.buf1,"ID")&&this.buf1!==i.EOF;){if(!(this.buf1 instanceof i.Name))throw new r.FormatError("Dictionary key must be a name object");const t=this.buf1.name;this.shift();if(this.buf1===i.EOF)break;n[t]=this.getObj(e)}-1!==t.beginInlineImagePos&&(s=a.pos-t.beginInlineImagePos);const o=this.xref.fetchIfRef(n.F||n.Filter);let c;if(o instanceof i.Name)c=o.name;else if(Array.isArray(o)){const e=this.xref.fetchIfRef(o[0]);e instanceof i.Name&&(c=e.name)}const l=a.pos;let h,u;switch(c){case"DCT":case"DCTDecode":h=this.findDCTDecodeInlineStreamEnd(a);break;case"A85":case"ASCII85Decode":h=this.findASCII85DecodeInlineStreamEnd(a);break;case"AHx":case"ASCIIHexDecode":h=this.findASCIIHexDecodeInlineStreamEnd(a);break;default:h=this.findDefaultInlineStreamEnd(a)}if(h<1e3&&s>0){const e=a.pos;a.pos=t.beginInlineImagePos;u=function getInlineImageCacheKey(e){const t=[],a=e.length;let r=0;for(;r=r){a.pos+=s;return a.pos-e}s++}a.pos+=n}return-1}makeStream(e,t){const a=this.lexer;let s=a.stream;a.skipToNextLine();const o=s.pos-1;let c=e.get("Length");if(!Number.isInteger(c)){(0,r.info)(`Bad length "${c&&c.toString()}" in stream.`);c=0}s.pos=o+c;a.nextChar();if(this.tryShift()&&(0,i.isCmd)(this.buf2,"endstream"))this.shift();else{const e=new Uint8Array([101,110,100,115,116,114,101,97,109]);let t=this._findStreamLength(o,e);if(t<0){const a=1;for(let i=1;i<=a;i++){const a=e.length-i,c=e.slice(0,a),l=this._findStreamLength(o,c);if(l>=0){const e=s.peekBytes(a+1)[a];if(!(0,n.isWhiteSpace)(e))break;(0,r.info)(`Found "${(0,r.bytesToString)(c)}" when searching for endstream command.`);t=l;break}}if(t<0)throw new r.FormatError("Missing endstream command.")}c=t;a.nextChar();this.shift();this.shift()}this.shift();s=s.makeSubStream(o,c,e);t&&(s=t.createStream(s,c));s=this.filter(s,e,c);s.dict=e;return s}filter(e,t,a){let n=t.get("F","Filter"),s=t.get("DP","DecodeParms");if(n instanceof i.Name){Array.isArray(s)&&(0,r.warn)("/DecodeParms should not be an Array, when /Filter is a Name.");return this.makeFilter(e,n.name,a,s)}let o=a;if(Array.isArray(n)){const t=n,a=s;for(let c=0,l=t.length;c=48&&e<=57?15&e:e>=65&&e<=70||e>=97&&e<=102?9+(15&e):-1}class Lexer{constructor(e,t=null){this.stream=e;this.nextChar();this.strBuf=[];this.knownCommands=t;this._hexStringNumWarn=0;this.beginInlineImagePos=-1}nextChar(){return this.currentChar=this.stream.getByte()}peekChar(){return this.stream.peekByte()}getNumber(){let e=this.currentChar,t=!1,a=0,i=0;if(45===e){i=-1;e=this.nextChar();45===e&&(e=this.nextChar())}else if(43===e){i=1;e=this.nextChar()}if(10===e||13===e)do{e=this.nextChar()}while(10===e||13===e);if(46===e){a=10;e=this.nextChar()}if(e<48||e>57){const t=`Invalid number: ${String.fromCharCode(e)} (charCode ${e})`;if((0,n.isWhiteSpace)(e)||-1===e){(0,r.info)(`Lexer.getNumber - "${t}".`);return 0}throw new r.FormatError(t)}i||=1;let s=e-48,o=0,c=1;for(;(e=this.nextChar())>=0;)if(e>=48&&e<=57){const r=e-48;if(t)o=10*o+r;else{0!==a&&(a*=10);s=10*s+r}}else if(46===e){if(0!==a)break;a=1}else if(45===e)(0,r.warn)("Badly formatted number: minus sign in the middle");else{if(69!==e&&101!==e)break;e=this.peekChar();if(43===e||45===e){c=45===e?-1:1;this.nextChar()}else if(e<48||e>57)break;t=!0}0!==a&&(s/=a);t&&(s*=10**(c*o));return i*s}getString(){let e=1,t=!1;const a=this.strBuf;a.length=0;let i=this.nextChar();for(;;){let n=!1;switch(0|i){case-1:(0,r.warn)("Unterminated string");t=!0;break;case 40:++e;a.push("(");break;case 41:if(0==--e){this.nextChar();t=!0}else a.push(")");break;case 92:i=this.nextChar();switch(i){case-1:(0,r.warn)("Unterminated string");t=!0;break;case 110:a.push("\n");break;case 114:a.push("\r");break;case 116:a.push("\t");break;case 98:a.push("\b");break;case 102:a.push("\f");break;case 92:case 40:case 41:a.push(String.fromCharCode(i));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:let e=15&i;i=this.nextChar();n=!0;if(i>=48&&i<=55){e=(e<<3)+(15&i);i=this.nextChar();if(i>=48&&i<=55){n=!1;e=(e<<3)+(15&i)}}a.push(String.fromCharCode(e));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:a.push(String.fromCharCode(i))}break;default:a.push(String.fromCharCode(i))}if(t)break;n||(i=this.nextChar())}return a.join("")}getName(){let e,t;const a=this.strBuf;a.length=0;for(;(e=this.nextChar())>=0&&!b[e];)if(35===e){e=this.nextChar();if(b[e]){(0,r.warn)("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.");a.push("#");break}const i=toHexDigit(e);if(-1!==i){t=e;e=this.nextChar();const n=toHexDigit(e);if(-1===n){(0,r.warn)(`Lexer_getName: Illegal digit (${String.fromCharCode(e)}) in hexadecimal number.`);a.push("#",String.fromCharCode(t));if(b[e])break;a.push(String.fromCharCode(e));continue}a.push(String.fromCharCode(i<<4|n))}else a.push("#",String.fromCharCode(e))}else a.push(String.fromCharCode(e));a.length>127&&(0,r.warn)(`Name token is longer than allowed by the spec: ${a.length}`);return i.Name.get(a.join(""))}_hexStringWarn(e){5!=this._hexStringNumWarn++?this._hexStringNumWarn>5||(0,r.warn)(`getHexString - ignoring invalid character: ${e}`):(0,r.warn)("getHexString - ignoring additional invalid characters.")}getHexString(){const e=this.strBuf;e.length=0;let t,a,i=this.currentChar,n=!0;this._hexStringNumWarn=0;for(;;){if(i<0){(0,r.warn)("Unterminated hex string");break}if(62===i){this.nextChar();break}if(1!==b[i]){if(n){t=toHexDigit(i);if(-1===t){this._hexStringWarn(i);i=this.nextChar();continue}}else{a=toHexDigit(i);if(-1===a){this._hexStringWarn(i);i=this.nextChar();continue}e.push(String.fromCharCode(t<<4|a))}n=!n;i=this.nextChar()}else i=this.nextChar()}return e.join("")}getObj(){let e=!1,t=this.currentChar;for(;;){if(t<0)return i.EOF;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(1!==b[t])break;t=this.nextChar()}switch(0|t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:this.nextChar();return i.Cmd.get("[");case 93:this.nextChar();return i.Cmd.get("]");case 60:t=this.nextChar();if(60===t){this.nextChar();return i.Cmd.get("<<")}return this.getHexString();case 62:t=this.nextChar();if(62===t){this.nextChar();return i.Cmd.get(">>")}return i.Cmd.get(">");case 123:this.nextChar();return i.Cmd.get("{");case 125:this.nextChar();return i.Cmd.get("}");case 41:this.nextChar();throw new r.FormatError(`Illegal character: ${t}`)}let a=String.fromCharCode(t);if(t<32||t>127){const e=this.peekChar();if(e>=32&&e<=127){this.nextChar();return i.Cmd.get(a)}}const n=this.knownCommands;let s=n&&void 0!==n[a];for(;(t=this.nextChar())>=0&&!b[t];){const e=a+String.fromCharCode(t);if(s&&void 0===n[e])break;if(128===a.length)throw new r.FormatError(`Command token too long: ${a.length}`);a=e;s=n&&void 0!==n[a]}if("true"===a)return!0;if("false"===a)return!1;if("null"===a)return null;"BI"===a&&(this.beginInlineImagePos=this.stream.pos);return i.Cmd.get(a)}peekObj(){const e=this.stream.pos,t=this.currentChar,a=this.beginInlineImagePos;let i;try{i=this.getObj()}catch(e){if(e instanceof n.MissingDataException)throw e;(0,r.warn)(`peekObj: ${e}`)}this.stream.pos=e;this.currentChar=t;this.beginInlineImagePos=a;return i}skipToNextLine(){let e=this.currentChar;for(;e>=0;){if(13===e){e=this.nextChar();10===e&&this.nextChar();break}if(10===e){this.nextChar();break}e=this.nextChar()}}}t.Lexer=Lexer;t.Linearization=class Linearization{static create(e){function getInt(e,t,a=!1){const r=e.get(t);if(Number.isInteger(r)&&(a?r>=0:r>0))return r;throw new Error(`The "${t}" parameter in the linearization dictionary is invalid.`)}const t=new Parser({lexer:new Lexer(e),xref:null}),a=t.getObj(),r=t.getObj(),n=t.getObj(),s=t.getObj();let o,c;if(!(Number.isInteger(a)&&Number.isInteger(r)&&(0,i.isCmd)(n,"obj")&&s instanceof i.Dict&&"number"==typeof(o=s.get("Linearized"))&&o>0))return null;if((c=getInt(s,"L"))!==e.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:c,hints:function getHints(e){const t=e.get("H");let a;if(Array.isArray(t)&&(2===(a=t.length)||4===a)){for(let e=0;e0))throw new Error(`Hint (${e}) in the linearization dictionary is invalid.`)}return t}throw new Error("Hint array in the linearization dictionary is invalid.")}(s),objectNumberFirst:getInt(s,"O"),endFirst:getInt(s,"E"),numPages:getInt(s,"N"),mainXRefEntriesOffset:getInt(s,"T"),pageFirst:s.has("P")?getInt(s,"P",!0):0}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.Ascii85Stream=void 0;var r=a(18),i=a(3);class Ascii85Stream extends r.DecodeStream{constructor(e,t){t&&(t*=.8);super(t);this.str=e;this.dict=e.dict;this.input=new Uint8Array(5)}readBlock(){const e=this.str;let t=e.getByte();for(;(0,i.isWhiteSpace)(t);)t=e.getByte();if(-1===t||126===t){this.eof=!0;return}const a=this.bufferLength;let r,n;if(122===t){r=this.ensureBuffer(a+4);for(n=0;n<4;++n)r[a+n]=0;this.bufferLength+=4}else{const s=this.input;s[0]=t;for(n=1;n<5;++n){t=e.getByte();for(;(0,i.isWhiteSpace)(t);)t=e.getByte();s[n]=t;if(-1===t||126===t)break}r=this.ensureBuffer(a+n-1);this.bufferLength+=n-1;if(n<5){for(;n<5;++n)s[n]=117;this.eof=!0}let o=0;for(n=0;n<5;++n)o=85*o+(s[n]-33);for(n=3;n>=0;--n){r[a+n]=255&o;o>>=8}}}}t.Ascii85Stream=Ascii85Stream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.StreamsSequenceStream=t.DecodeStream=void 0;var r=a(5),i=a(8);const n=new Uint8Array(0);class DecodeStream extends r.BaseStream{constructor(e){super();this._rawMinBufferLength=e||0;this.pos=0;this.bufferLength=0;this.eof=!1;this.buffer=n;this.minBufferLength=512;if(e)for(;this.minBufferLengthr&&(a=r)}else{for(;!this.eof;)this.readBlock();a=this.bufferLength}this.pos=a;return this.buffer.subarray(t,a)}reset(){this.pos=0}makeSubStream(e,t,a=null){if(void 0===t)for(;!this.eof;)this.readBlock();else{const a=e+t;for(;this.bufferLength<=a&&!this.eof;)this.readBlock()}return new i.Stream(this.buffer,e,t,a)}getBaseStreams(){return this.str?this.str.getBaseStreams():null}}t.DecodeStream=DecodeStream;t.StreamsSequenceStream=class StreamsSequenceStream extends DecodeStream{constructor(e,t=null){let a=0;for(const t of e)a+=t instanceof DecodeStream?t._rawMinBufferLength:t.length;super(a);this.streams=e;this._onError=t}readBlock(){const e=this.streams;if(0===e.length){this.eof=!0;return}const t=e.shift();let a;try{a=t.getBytes()}catch(e){if(this._onError){this._onError(e,t.dict&&t.dict.objId);return}throw e}const r=this.bufferLength,i=r+a.length;this.ensureBuffer(i).set(a,r);this.bufferLength=i}getBaseStreams(){const e=[];for(const t of this.streams){const a=t.getBaseStreams();a&&e.push(...a)}return e.length>0?e:null}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.AsciiHexStream=void 0;var r=a(18);class AsciiHexStream extends r.DecodeStream{constructor(e,t){t&&(t*=.5);super(t);this.str=e;this.dict=e.dict;this.firstDigit=-1}readBlock(){const e=this.str.getBytes(8e3);if(!e.length){this.eof=!0;return}const t=e.length+1>>1,a=this.ensureBuffer(this.bufferLength+t);let r=this.bufferLength,i=this.firstDigit;for(const t of e){let e;if(t>=48&&t<=57)e=15&t;else{if(!(t>=65&&t<=70||t>=97&&t<=102)){if(62===t){this.eof=!0;break}continue}e=9+(15&t)}if(i<0)i=e;else{a[r++]=i<<4|e;i=-1}}if(i>=0&&this.eof){a[r++]=i<<4;i=-1}this.firstDigit=i;this.bufferLength=r}}t.AsciiHexStream=AsciiHexStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CCITTFaxStream=void 0;var r=a(21),i=a(18),n=a(4);class CCITTFaxStream extends i.DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;a instanceof n.Dict||(a=n.Dict.empty);const i={next:()=>e.getByte()};this.ccittFaxDecoder=new r.CCITTFaxDecoder(i,{K:a.get("K"),EndOfLine:a.get("EndOfLine"),EncodedByteAlign:a.get("EncodedByteAlign"),Columns:a.get("Columns"),Rows:a.get("Rows"),EndOfBlock:a.get("EndOfBlock"),BlackIs1:a.get("BlackIs1")})}readBlock(){for(;!this.eof;){const e=this.ccittFaxDecoder.readNextChar();if(-1===e){this.eof=!0;return}this.ensureBuffer(this.bufferLength+1);this.buffer[this.bufferLength++]=e}}}t.CCITTFaxStream=CCITTFaxStream},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CCITTFaxDecoder=void 0;var r=a(2);const i=-1,n=[[-1,-1],[-1,-1],[7,8],[7,7],[6,6],[6,6],[6,5],[6,5],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]],s=[[-1,-1],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],o=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],c=[[-1,-1],[-1,-1],[12,-2],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],l=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],h=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];t.CCITTFaxDecoder=class CCITTFaxDecoder{constructor(e,t={}){if(!e||"function"!=typeof e.next)throw new Error('CCITTFaxDecoder - invalid "source" parameter.');this.source=e;this.eof=!1;this.encoding=t.K||0;this.eoline=t.EndOfLine||!1;this.byteAlign=t.EncodedByteAlign||!1;this.columns=t.Columns||1728;this.rows=t.Rows||0;let a,r=t.EndOfBlock;null==r&&(r=!0);this.eoblock=r;this.black=t.BlackIs1||!1;this.codingLine=new Uint32Array(this.columns+1);this.refLine=new Uint32Array(this.columns+2);this.codingLine[0]=this.columns;this.codingPos=0;this.row=0;this.nextLine2D=this.encoding<0;this.inputBits=0;this.inputBuf=0;this.outputBits=0;this.rowsDone=!1;for(;0===(a=this._lookBits(12));)this._eatBits(1);1===a&&this._eatBits(12);if(this.encoding>0){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}}readNextChar(){if(this.eof)return-1;const e=this.refLine,t=this.codingLine,a=this.columns;let n,s,o,c,l;if(0===this.outputBits){this.rowsDone&&(this.eof=!0);if(this.eof)return-1;this.err=!1;let o,l,h;if(this.nextLine2D){for(c=0;t[c]=64);do{l+=h=this._getWhiteCode()}while(h>=64)}else{do{o+=h=this._getWhiteCode()}while(h>=64);do{l+=h=this._getBlackCode()}while(h>=64)}this._addPixels(t[this.codingPos]+o,s);t[this.codingPos] 0?--n:++n;for(;e[n]<=t[this.codingPos]&&e[n] 0?--n:++n;for(;e[n]<=t[this.codingPos]&&e[n] 0?--n:++n;for(;e[n]<=t[this.codingPos]&&e[n] =64);else do{o+=h=this._getWhiteCode()}while(h>=64);this._addPixels(t[this.codingPos]+o,s);s^=1}}let u=!1;this.byteAlign&&(this.inputBits&=-8);if(this.eoblock||this.row!==this.rows-1){o=this._lookBits(12);if(this.eoline)for(;o!==i&&1!==o;){this._eatBits(1);o=this._lookBits(12)}else for(;0===o;){this._eatBits(1);o=this._lookBits(12)}if(1===o){this._eatBits(12);u=!0}else o===i&&(this.eof=!0)}else this.rowsDone=!0;if(!this.eof&&this.encoding>0&&!this.rowsDone){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}if(this.eoblock&&u&&this.byteAlign){o=this._lookBits(12);if(1===o){this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}if(this.encoding>=0)for(c=0;c<4;++c){o=this._lookBits(12);1!==o&&(0,r.info)("bad rtc code: "+o);this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}}this.eof=!0}}else if(this.err&&this.eoline){for(;;){o=this._lookBits(13);if(o===i){this.eof=!0;return-1}if(o>>1==1)break;this._eatBits(1)}this._eatBits(12);if(this.encoding>0){this._eatBits(1);this.nextLine2D=!(1&o)}}t[0]>0?this.outputBits=t[this.codingPos=0]:this.outputBits=t[this.codingPos=1];this.row++}if(this.outputBits>=8){l=1&this.codingPos?0:255;this.outputBits-=8;if(0===this.outputBits&&t[this.codingPos] o){l<<=o;1&this.codingPos||(l|=255>>8-o);this.outputBits-=o;o=0}else{l<<=this.outputBits;1&this.codingPos||(l|=255>>8-this.outputBits);o-=this.outputBits;this.outputBits=0;if(t[this.codingPos] 0){l<<=o;o=0}}}while(o)}this.black&&(l^=255);return l}_addPixels(e,t){const a=this.codingLine;let i=this.codingPos;if(e>a[i]){if(e>this.columns){(0,r.info)("row is wrong length");this.err=!0;e=this.columns}1&i^t&&++i;a[i]=e}this.codingPos=i}_addPixelsNeg(e,t){const a=this.codingLine;let i=this.codingPos;if(e>a[i]){if(e>this.columns){(0,r.info)("row is wrong length");this.err=!0;e=this.columns}1&i^t&&++i;a[i]=e}else if(e 0&&e =n){const t=a[e-n];if(t[0]===r){this._eatBits(r);return[!0,t[1],!0]}}}return[!1,0,!1]}_getTwoDimCode(){let e,t=0;if(this.eoblock){t=this._lookBits(7);e=n[t];if(e&&e[0]>0){this._eatBits(e[0]);return e[1]}}else{const e=this._findTableCode(1,7,n);if(e[0]&&e[2])return e[1]}(0,r.info)("Bad two dim code");return i}_getWhiteCode(){let e,t=0;if(this.eoblock){t=this._lookBits(12);if(t===i)return 1;e=t>>5==0?s[t]:o[t>>3];if(e[0]>0){this._eatBits(e[0]);return e[1]}}else{let e=this._findTableCode(1,9,o);if(e[0])return e[1];e=this._findTableCode(11,12,s);if(e[0])return e[1]}(0,r.info)("bad white code");this._eatBits(1);return 1}_getBlackCode(){let e,t;if(this.eoblock){e=this._lookBits(13);if(e===i)return 1;t=e>>7==0?c[e]:e>>9==0&&e>>7!=0?l[(e>>1)-64]:h[e>>7];if(t[0]>0){this._eatBits(t[0]);return t[1]}}else{let e=this._findTableCode(2,6,h);if(e[0])return e[1];e=this._findTableCode(7,12,l,64);if(e[0])return e[1];e=this._findTableCode(10,13,c);if(e[0])return e[1]}(0,r.info)("bad black code");this._eatBits(1);return 1}_lookBits(e){let t;for(;this.inputBits>16-e;this.inputBuf=this.inputBuf<<8|t;this.inputBits+=8}return this.inputBuf>>this.inputBits-e&65535>>16-e}_eatBits(e){(this.inputBits-=e)<0&&(this.inputBits=0)}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.FlateStream=void 0;var r=a(18),i=a(2);const n=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),o=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),c=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],l=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];class FlateStream extends r.DecodeStream{constructor(e,t){super(t);this.str=e;this.dict=e.dict;const a=e.getByte(),r=e.getByte();if(-1===a||-1===r)throw new i.FormatError(`Invalid header in flate stream: ${a}, ${r}`);if(8!=(15&a))throw new i.FormatError(`Unknown compression method in flate stream: ${a}, ${r}`);if(((a<<8)+r)%31!=0)throw new i.FormatError(`Bad FCHECK in flate stream: ${a}, ${r}`);if(32&r)throw new i.FormatError(`FDICT bit set in flate stream: ${a}, ${r}`);this.codeSize=0;this.codeBuf=0}getBits(e){const t=this.str;let a,r=this.codeSize,n=this.codeBuf;for(;r>e;this.codeSize=r-=e;return a}getCode(e){const t=this.str,a=e[0],r=e[1];let n,s=this.codeSize,o=this.codeBuf;for(;s>16,h=65535&c;if(l<1||s>l;this.codeSize=s-l;return h}generateHuffmanTable(e){const t=e.length;let a,r=0;for(a=0;ar&&(r=e[a]);const i=1<>=1}for(a=e;a>=1;if(0===u){let t;if(-1===(t=a.getByte()))throw new i.FormatError("Bad block header in flate stream");let r=t;if(-1===(t=a.getByte()))throw new i.FormatError("Bad block header in flate stream");r|=t<<8;if(-1===(t=a.getByte()))throw new i.FormatError("Bad block header in flate stream");let n=t;if(-1===(t=a.getByte()))throw new i.FormatError("Bad block header in flate stream");n|=t<<8;if(n!==(65535&~r)&&(0!==r||0!==n))throw new i.FormatError("Bad uncompressed block length in flate stream");this.codeBuf=0;this.codeSize=0;const s=this.bufferLength,o=s+r;e=this.ensureBuffer(o);this.bufferLength=o;if(0===r)-1===a.peekByte()&&(this.eof=!0);else{const t=a.getBytes(r);e.set(t,s);t.length0;)u[o++]=g}r=this.generateHuffmanTable(u.subarray(0,e));h=this.generateHuffmanTable(u.subarray(e,l))}}e=this.buffer;let d=e?e.length:0,f=this.bufferLength;for(;;){let a=this.getCode(r);if(a<256){if(f+1>=d){e=this.ensureBuffer(f+1);d=e.length}e[f++]=a;continue}if(256===a){this.bufferLength=f;return}a-=257;a=s[a];let i=a>>16;i>0&&(i=this.getBits(i));t=(65535&a)+i;a=this.getCode(h);a=o[a];i=a>>16;i>0&&(i=this.getBits(i));const n=(65535&a)+i;if(f+t>=d){e=this.ensureBuffer(f+t);d=e.length}for(let a=0;a{Object.defineProperty(t,"__esModule",{value:!0});t.Jbig2Stream=void 0;var r=a(5),i=a(18),n=a(4),s=a(24),o=a(2);class Jbig2Stream extends i.DecodeStream{constructor(e,t,a){super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t;this.params=a}get bytes(){return(0,o.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}readBlock(){if(this.eof)return;const e=new s.Jbig2Image,t=[];if(this.params instanceof n.Dict){const e=this.params.get("JBIG2Globals");if(e instanceof r.BaseStream){const a=e.getBytes();t.push({data:a,start:0,end:a.length})}}t.push({data:this.bytes,start:0,end:this.bytes.length});const a=e.parseChunks(t),i=a.length;for(let e=0;e{Object.defineProperty(t,"__esModule",{value:!0});t.Jbig2Image=void 0;var r=a(2),i=a(3),n=a(25),s=a(21);class Jbig2Error extends r.BaseException{constructor(e){super(`JBIG2 error: ${e}`,"Jbig2Error")}}class ContextCache{getContexts(e){return e in this?this[e]:this[e]=new Int8Array(65536)}}class DecodingContext{constructor(e,t,a){this.data=e;this.start=t;this.end=a}get decoder(){const e=new n.ArithmeticDecoder(this.data,this.start,this.end);return(0,r.shadow)(this,"decoder",e)}get contextCache(){const e=new ContextCache;return(0,r.shadow)(this,"contextCache",e)}}const o=2**31-1,c=-(2**31);function decodeInteger(e,t,a){const r=e.getContexts(t);let i=1;function readBits(e){let t=0;for(let n=0;n>>0}const n=readBits(1),s=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);let l;0===n?l=s:s>0&&(l=-s);return l>=c&&l<=o?l:null}function decodeIAID(e,t,a){const r=e.getContexts("IAID");let i=1;for(let e=0;e=O&&_=T){q=q<<1&y;for(b=0;b=0&&j=0){U=N[$][j];U&&(q|=U<=e?l<<=1:l=l<<1|k[o][c]}for(p=0;p=x||c<0||c>=S?l<<=1:l=l<<1|r[o][c]}const u=v.readBit(F,l);t[s]=u}}return k}function decodeTextRegion(e,t,a,r,i,n,s,o,c,l,h,u,d,f,g,p,m,b,y){if(e&&t)throw new Jbig2Error("refinement with Huffman is not supported");const w=[];let S,x;for(S=0;S1&&(i=e?y.readBits(b):decodeInteger(k,"IAIT",C));const n=s*v+i,F=e?f.symbolIDTable.decode(y):decodeIAID(k,C,c),O=t&&(e?y.readBit():decodeInteger(k,"IARI",C));let T=o[F],M=T[0].length,E=T.length;if(O){const e=decodeInteger(k,"IARDW",C),t=decodeInteger(k,"IARDH",C);M+=e;E+=t;T=decodeRefinement(M,E,g,T,(e>>1)+decodeInteger(k,"IARDX",C),(t>>1)+decodeInteger(k,"IARDY",C),!1,p,m)}const D=n-(1&u?0:E-1),N=r-(2&u?M-1:0);let R,L,_;if(l){for(R=0;R>5&7;const h=[31&o];let u=t+6;if(7===o){c=536870911&(0,i.readUint32)(e,u-1);u+=3;let t=c+7>>3;h[0]=e[u++];for(;--t>0;)h.push(e[u++])}else if(5===o||6===o)throw new Jbig2Error("invalid referred-to flags");a.retainBits=h;let d=4;a.number<=256?d=1:a.number<=65536&&(d=2);const f=[];let p,m;for(p=0;p>>24&255;n[3]=t.height>>16&255;n[4]=t.height>>8&255;n[5]=255&t.height;for(p=u,m=e.length;p>2&3;e.huffmanDWSelector=t>>4&3;e.bitmapSizeSelector=t>>6&1;e.aggregationInstancesSelector=t>>7&1;e.bitmapCodingContextUsed=!!(256&t);e.bitmapCodingContextRetained=!!(512&t);e.template=t>>10&3;e.refinementTemplate=t>>12&1;h+=2;if(!e.huffman){l=0===e.template?4:1;o=[];for(c=0;c>2&3;u.stripSize=1<>4&3;u.transposed=!!(64&d);u.combinationOperator=d>>7&3;u.defaultPixelValue=d>>9&1;u.dsOffset=d<<17>>27;u.refinementTemplate=d>>15&1;if(u.huffman){const e=(0,i.readUint16)(r,h);h+=2;u.huffmanFS=3&e;u.huffmanDS=e>>2&3;u.huffmanDT=e>>4&3;u.huffmanRefinementDW=e>>6&3;u.huffmanRefinementDH=e>>8&3;u.huffmanRefinementDX=e>>10&3;u.huffmanRefinementDY=e>>12&3;u.huffmanRefinementSizeSelector=!!(16384&e)}if(u.refinement&&!u.refinementTemplate){o=[];for(c=0;c<2;c++){o.push({x:(0,i.readInt8)(r,h),y:(0,i.readInt8)(r,h+1)});h+=2}u.refinementAt=o}u.numberOfSymbolInstances=(0,i.readUint32)(r,h);h+=4;s=[u,a.referredTo,r,h,n];break;case 16:const f={},p=r[h++];f.mmr=!!(1&p);f.template=p>>1&3;f.patternWidth=r[h++];f.patternHeight=r[h++];f.maxPatternIndex=(0,i.readUint32)(r,h);h+=4;s=[f,a.number,r,h,n];break;case 22:case 23:const m={};m.info=readRegionSegmentInformation(r,h);h+=g;const b=r[h++];m.mmr=!!(1&b);m.template=b>>1&3;m.enableSkip=!!(8&b);m.combinationOperator=b>>4&7;m.defaultPixelValue=b>>7&1;m.gridWidth=(0,i.readUint32)(r,h);h+=4;m.gridHeight=(0,i.readUint32)(r,h);h+=4;m.gridOffsetX=4294967295&(0,i.readUint32)(r,h);h+=4;m.gridOffsetY=4294967295&(0,i.readUint32)(r,h);h+=4;m.gridVectorX=(0,i.readUint16)(r,h);h+=2;m.gridVectorY=(0,i.readUint16)(r,h);h+=2;s=[m,a.referredTo,r,h,n];break;case 38:case 39:const y={};y.info=readRegionSegmentInformation(r,h);h+=g;const w=r[h++];y.mmr=!!(1&w);y.template=w>>1&3;y.prediction=!!(8&w);if(!y.mmr){l=0===y.template?4:1;o=[];for(c=0;c>2&1;S.combinationOperator=x>>3&3;S.requiresBuffer=!!(32&x);S.combinationOperatorOverride=!!(64&x);s=[S];break;case 49:case 50:case 51:case 62:break;case 53:s=[a.number,r,h,n];break;default:throw new Jbig2Error(`segment type ${a.typeName}(${a.type}) is not implemented`)}const u="on"+a.typeName;u in t&&t[u].apply(t,s)}function processSegments(e,t){for(let a=0,r=e.length;a>3,a=new Uint8ClampedArray(t*e.height);e.defaultPixelValue&&a.fill(255);this.buffer=a}drawBitmap(e,t){const a=this.currentPageInfo,r=e.width,i=e.height,n=a.width+7>>3,s=a.combinationOperatorOverride?e.combinationOperator:a.combinationOperator,o=this.buffer,c=128>>(7&e.x);let l,h,u,d,f=e.y*n+(e.x>>3);switch(s){case 0:for(l=0;l>=1;if(!u){u=128;d++}}f+=n}break;case 2:for(l=0;l>=1;if(!u){u=128;d++}}f+=n}break;default:throw new Jbig2Error(`operator ${s} is not supported`)}}onImmediateGenericRegion(e,t,a,r){const i=e.info,n=new DecodingContext(t,a,r),s=decodeBitmap(e.mmr,i.width,i.height,e.template,e.prediction,null,e.at,n);this.drawBitmap(i,s)}onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion(...arguments)}onSymbolDictionary(e,t,a,r,n,s){let o,c;if(e.huffman){o=function getSymbolDictionaryHuffmanTables(e,t,a){let r,i,n,s,o=0;switch(e.huffmanDHSelector){case 0:case 1:r=getStandardTable(e.huffmanDHSelector+4);break;case 3:r=getCustomHuffmanTable(o,t,a);o++;break;default:throw new Jbig2Error("invalid Huffman DH selector")}switch(e.huffmanDWSelector){case 0:case 1:i=getStandardTable(e.huffmanDWSelector+2);break;case 3:i=getCustomHuffmanTable(o,t,a);o++;break;default:throw new Jbig2Error("invalid Huffman DW selector")}if(e.bitmapSizeSelector){n=getCustomHuffmanTable(o,t,a);o++}else n=getStandardTable(1);s=e.aggregationInstancesSelector?getCustomHuffmanTable(o,t,a):getStandardTable(1);return{tableDeltaHeight:r,tableDeltaWidth:i,tableBitmapSize:n,tableAggregateInstances:s}}(e,a,this.customTables);c=new Reader(r,n,s)}let l=this.symbols;l||(this.symbols=l={});const h=[];for(const e of a){const t=l[e];t&&h.push(...t)}const u=new DecodingContext(r,n,s);l[t]=function decodeSymbolDictionary(e,t,a,r,n,s,o,c,l,h,u,d){if(e&&t)throw new Jbig2Error("symbol refinement with Huffman is not supported");const f=[];let g=0,p=(0,i.log2)(a.length+r);const m=u.decoder,b=u.contextCache;let y,w;if(e){y=getStandardTable(1);w=[];p=Math.max(p,1)}for(;f.length1)y=decodeTextRegion(e,t,r,g,0,i,1,a.concat(f),p,0,0,1,0,s,l,h,u,0,d);else{const e=decodeIAID(b,m,p),t=decodeInteger(b,"IARDX",m),i=decodeInteger(b,"IARDY",m);y=decodeRefinement(r,g,l,e=32){let a,r,s;switch(t){case 32:if(0===e)throw new Jbig2Error("no previous value in symbol ID table");r=i.readBits(2)+3;a=n[e-1].prefixLength;break;case 33:r=i.readBits(3)+3;a=0;break;case 34:r=i.readBits(7)+11;a=0;break;default:throw new Jbig2Error("invalid code length in symbol ID table")}for(s=0;s=0;b--){M=e?decodeMMRBitmap(T,l,h,!0):decodeBitmap(!1,l,h,a,!1,null,F,p);O[b]=M}for(E=0;E=0;y--){N^=O[y][E][D];R|=N<>8;$=d+E*f-D*g>>8;if(_>=0&&_+C<=r&&$>=0&&$+k<=n)for(b=0;b=n)){U=m[t];j=L[b];for(y=0;y=0&&e>1&7),l=1+(r>>4&7),h=[];let u,d,f=n;do{u=o.readBits(c);d=o.readBits(l);h.push(new HuffmanLine([f,u,d,0]));f+=1<>t&1;if(t<=0)this.children[a]=new HuffmanTreeNode(e);else{let r=this.children[a];r||(this.children[a]=r=new HuffmanTreeNode(null));r.buildTree(e,t-1)}}decodeNode(e){if(this.isLeaf){if(this.isOOB)return null;const t=e.readBits(this.rangeLength);return this.rangeLow+(this.isLowerRange?-t:t)}const t=this.children[e.readBit()];if(!t)throw new Jbig2Error("invalid Huffman data");return t.decodeNode(e)}}class HuffmanTable{constructor(e,t){t||this.assignPrefixCodes(e);this.rootNode=new HuffmanTreeNode(null);for(let t=0,a=e.length;t0&&this.rootNode.buildTree(a,a.prefixLength-1)}}decode(e){return this.rootNode.decodeNode(e)}assignPrefixCodes(e){const t=e.length;let a=0;for(let r=0;r=this.end)throw new Jbig2Error("end of data while reading bit");this.currentByte=this.data[this.position++];this.shift=7}const e=this.currentByte>>this.shift&1;this.shift--;return e}readBits(e){let t,a=0;for(t=e-1;t>=0;t--)a|=this.readBit()<=this.end?-1:this.data[this.position++]}}function getCustomHuffmanTable(e,t,a){let r=0;for(let i=0,n=t.length;i>a&1;a--}}if(r&&!l){const e=5;for(let t=0;t{Object.defineProperty(t,"__esModule",{value:!0});t.ArithmeticDecoder=void 0;const a=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];t.ArithmeticDecoder=class ArithmeticDecoder{constructor(e,t,a){this.data=e;this.bp=t;this.dataEnd=a;this.chigh=e[t];this.clow=0;this.byteIn();this.chigh=this.chigh<<7&65535|this.clow>>9&127;this.clow=this.clow<<7&65535;this.ct-=7;this.a=32768}byteIn(){const e=this.data;let t=this.bp;if(255===e[t])if(e[t+1]>143){this.clow+=65280;this.ct=8}else{t++;this.clow+=e[t]<<9;this.ct=7;this.bp=t}else{t++;this.clow+=t65535){this.chigh+=this.clow>>16;this.clow&=65535}}readBit(e,t){let r=e[t]>>1,i=1&e[t];const n=a[r],s=n.qe;let o,c=this.a-s;if(this.chigh>15&1;this.clow=this.clow<<1&65535;this.ct--}while(0==(32768&c));this.a=c;e[t]=r<<1|i;return o}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.JpegStream=void 0;var r=a(18),i=a(4),n=a(27),s=a(2);class JpegStream extends r.DecodeStream{constructor(e,t,a){let r;for(;-1!==(r=e.getByte());)if(255===r){e.skip(-1);break}super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t;this.params=a}get bytes(){return(0,s.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}readBlock(){if(this.eof)return;const e={decodeTransform:void 0,colorTransform:void 0},t=this.dict.getArray("D","Decode");if((this.forceRGBA||this.forceRGB)&&Array.isArray(t)){const a=this.dict.get("BPC","BitsPerComponent")||8,r=t.length,i=new Int32Array(r);let n=!1;const s=(1<{Object.defineProperty(t,"__esModule",{value:!0});t.JpegImage=void 0;var r=a(2),i=a(28),n=a(3);class JpegError extends r.BaseException{constructor(e){super(`JPEG error: ${e}`,"JpegError")}}class DNLMarkerError extends r.BaseException{constructor(e,t){super(e,"DNLMarkerError");this.scanLines=t}}class EOIMarkerError extends r.BaseException{constructor(e){super(e,"EOIMarkerError")}}const s=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),o=4017,c=799,l=3406,h=2276,u=1567,d=3784,f=5793,g=2896;function buildHuffmanTable(e,t){let a,r,i=0,n=16;for(;n>0&&!e[n-1];)n--;const s=[{children:[],index:0}];let o,c=s[0];for(a=0;a0;)c=s.pop();c.index++;s.push(c);for(;s.length<=a;){s.push(o={children:[],index:0});c.children[c.index]=o.children;c=o}i++}if(a+10){b--;return m>>b&1}m=e[t++];if(255===m){const r=e[t++];if(r){if(220===r&&d){t+=2;const r=(0,n.readUint16)(e,t);t+=2;if(r>0&&r!==a.scanLines)throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",r)}else if(217===r){if(d){const e=x*(8===a.precision?8:0);if(e>0&&Math.round(a.scanLines/e)>=5)throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter",e)}throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data")}throw new JpegError(`unexpected marker ${(m<<8|r).toString(16)}`)}}b=7;return m>>>7}function decodeHuffman(e){let t=e;for(;;){t=t[readBit()];switch(typeof t){case"number":return t;case"object":continue}throw new JpegError("invalid huffman sequence")}}function receive(e){let t=0;for(;e>0;){t=t<<1|readBit();e--}return t}function receiveAndExtend(e){if(1===e)return 1===readBit()?1:-1;const t=receive(e);return t>=1<0){y--;return}let a=c;const r=l;for(;a<=r;){const r=decodeHuffman(e.huffmanTableAC),i=15&r,n=r>>4;if(0===i){if(n<15){y=receive(n)+(1<>4;if(0===i)if(o<15){y=receive(o)+(1<>4;if(0===r){if(n<15)break;i+=16;continue}i+=n;const o=s[i];e.blockData[t+o]=receiveAndExtend(r);i++}};let E,D,N,R,L=0;D=1===C?i[0].blocksPerLine*i[0].blocksPerColumn:f*a.mcusPerColumn;for(;L<=D;){const a=o?Math.min(D-L,o):D;if(a>0){for(v=0;v0?"unexpected":"excessive";(0,r.warn)(`decodeScan - ${e} MCU data, current marker is: ${E.invalid}`);t=E.offset}if(!(E.marker>=65488&&E.marker<=65495))break;t+=2}return t-p}function quantizeAndInverse(e,t,a){const r=e.quantizationTable,i=e.blockData;let n,s,p,m,b,y,w,S,x,C,k,v,F,O,T,M,E;if(!r)throw new JpegError("missing required Quantization Table.");for(let e=0;e<64;e+=8){x=i[t+e];C=i[t+e+1];k=i[t+e+2];v=i[t+e+3];F=i[t+e+4];O=i[t+e+5];T=i[t+e+6];M=i[t+e+7];x*=r[e];if(0!=(C|k|v|F|O|T|M)){C*=r[e+1];k*=r[e+2];v*=r[e+3];F*=r[e+4];O*=r[e+5];T*=r[e+6];M*=r[e+7];n=f*x+128>>8;s=f*F+128>>8;p=k;m=T;b=g*(C-M)+128>>8;S=g*(C+M)+128>>8;y=v<<4;w=O<<4;n=n+s+1>>1;s=n-s;E=p*d+m*u+128>>8;p=p*u-m*d+128>>8;m=E;b=b+w+1>>1;w=b-w;S=S+y+1>>1;y=S-y;n=n+m+1>>1;m=n-m;s=s+p+1>>1;p=s-p;E=b*h+S*l+2048>>12;b=b*l-S*h+2048>>12;S=E;E=y*c+w*o+2048>>12;y=y*o-w*c+2048>>12;w=E;a[e]=n+S;a[e+7]=n-S;a[e+1]=s+w;a[e+6]=s-w;a[e+2]=p+y;a[e+5]=p-y;a[e+3]=m+b;a[e+4]=m-b}else{E=f*x+512>>10;a[e]=E;a[e+1]=E;a[e+2]=E;a[e+3]=E;a[e+4]=E;a[e+5]=E;a[e+6]=E;a[e+7]=E}}for(let e=0;e<8;++e){x=a[e];C=a[e+8];k=a[e+16];v=a[e+24];F=a[e+32];O=a[e+40];T=a[e+48];M=a[e+56];if(0!=(C|k|v|F|O|T|M)){n=f*x+2048>>12;s=f*F+2048>>12;p=k;m=T;b=g*(C-M)+2048>>12;S=g*(C+M)+2048>>12;y=v;w=O;n=4112+(n+s+1>>1);s=n-s;E=p*d+m*u+2048>>12;p=p*u-m*d+2048>>12;m=E;b=b+w+1>>1;w=b-w;S=S+y+1>>1;y=S-y;n=n+m+1>>1;m=n-m;s=s+p+1>>1;p=s-p;E=b*h+S*l+2048>>12;b=b*l-S*h+2048>>12;S=E;E=y*c+w*o+2048>>12;y=y*o-w*c+2048>>12;w=E;x=n+S;M=n-S;C=s+w;T=s-w;k=p+y;O=p-y;v=m+b;F=m-b;x<16?x=0:x>=4080?x=255:x>>=4;C<16?C=0:C>=4080?C=255:C>>=4;k<16?k=0:k>=4080?k=255:k>>=4;v<16?v=0:v>=4080?v=255:v>>=4;F<16?F=0:F>=4080?F=255:F>>=4;O<16?O=0:O>=4080?O=255:O>>=4;T<16?T=0:T>=4080?T=255:T>>=4;M<16?M=0:M>=4080?M=255:M>>=4;i[t+e]=x;i[t+e+8]=C;i[t+e+16]=k;i[t+e+24]=v;i[t+e+32]=F;i[t+e+40]=O;i[t+e+48]=T;i[t+e+56]=M}else{E=f*x+8192>>14;E=E<-2040?0:E>=2024?255:E+2056>>4;i[t+e]=E;i[t+e+8]=E;i[t+e+16]=E;i[t+e+24]=E;i[t+e+32]=E;i[t+e+40]=E;i[t+e+48]=E;i[t+e+56]=E}}}function buildComponentData(e,t){const a=t.blocksPerLine,r=t.blocksPerColumn,i=new Int16Array(64);for(let e=0;e=r)return null;const s=(0,n.readUint16)(e,t);if(s>=65472&&s<=65534)return{invalid:null,marker:s,offset:t};let o=(0,n.readUint16)(e,i);for(;!(o>=65472&&o<=65534);){if(++i>=r)return null;o=(0,n.readUint16)(e,i)}return{invalid:s.toString(16),marker:o,offset:i}}t.JpegImage=class JpegImage{constructor({decodeTransform:e=null,colorTransform:t=-1}={}){this._decodeTransform=e;this._colorTransform=t}parse(e,{dnlScanLines:t=null}={}){function readDataBlock(){const t=(0,n.readUint16)(e,o);o+=2;let a=o+t-2;const i=findNextFileMarker(e,a,o);if(i&&i.invalid){(0,r.warn)("readDataBlock - incorrect length, current marker is: "+i.invalid);a=i.offset}const s=e.subarray(o,a);o+=s.length;return s}function prepareComponents(e){const t=Math.ceil(e.samplesPerLine/8/e.maxH),a=Math.ceil(e.scanLines/8/e.maxV);for(const r of e.components){const i=Math.ceil(Math.ceil(e.samplesPerLine/8)*r.h/e.maxH),n=Math.ceil(Math.ceil(e.scanLines/8)*r.v/e.maxV),s=t*r.h,o=64*(a*r.v)*(s+1);r.blockData=new Int16Array(o);r.blocksPerLine=i;r.blocksPerColumn=n}e.mcusPerLine=t;e.mcusPerColumn=a}let a,i,o=0,c=null,l=null,h=0;const u=[],d=[],f=[];let g=(0,n.readUint16)(e,o);o+=2;if(65496!==g)throw new JpegError("SOI not found");g=(0,n.readUint16)(e,o);o+=2;e:for(;65497!==g;){let p,m,b;switch(g){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:const y=readDataBlock();65504===g&&74===y[0]&&70===y[1]&&73===y[2]&&70===y[3]&&0===y[4]&&(c={version:{major:y[5],minor:y[6]},densityUnits:y[7],xDensity:y[8]<<8|y[9],yDensity:y[10]<<8|y[11],thumbWidth:y[12],thumbHeight:y[13],thumbData:y.subarray(14,14+3*y[12]*y[13])});65518===g&&65===y[0]&&100===y[1]&&111===y[2]&&98===y[3]&&101===y[4]&&(l={version:y[5]<<8|y[6],flags0:y[7]<<8|y[8],flags1:y[9]<<8|y[10],transformCode:y[11]});break;case 65499:const w=(0,n.readUint16)(e,o);o+=2;const S=w+o-2;let x;for(;o>4==0)for(m=0;m<64;m++){x=s[m];a[x]=e[o++]}else{if(t>>4!=1)throw new JpegError("DQT - invalid table spec");for(m=0;m<64;m++){x=s[m];a[x]=(0,n.readUint16)(e,o);o+=2}}u[15&t]=a}break;case 65472:case 65473:case 65474:if(a)throw new JpegError("Only single frame JPEGs supported");o+=2;a={};a.extended=65473===g;a.progressive=65474===g;a.precision=e[o++];const C=(0,n.readUint16)(e,o);o+=2;a.scanLines=t||C;a.samplesPerLine=(0,n.readUint16)(e,o);o+=2;a.components=[];a.componentIds={};const k=e[o++];let v=0,F=0;for(p=0;p>4,i=15&e[o+1];v>4==0?f:d)[15&t]=buildHuffmanTable(a,i)}break;case 65501:o+=2;i=(0,n.readUint16)(e,o);o+=2;break;case 65498:const T=1==++h&&!t;o+=2;const M=e[o++],E=[];for(p=0;p>4];i.huffmanTableAC=d[15&n];E.push(i)}const D=e[o++],N=e[o++],R=e[o++];try{const t=decodeScan(e,o,a,E,i,D,N,R>>4,15&R,T);o+=t}catch(t){if(t instanceof DNLMarkerError){(0,r.warn)(`${t.message} -- attempting to re-parse the JPEG image.`);return this.parse(e,{dnlScanLines:t.scanLines})}if(t instanceof EOIMarkerError){(0,r.warn)(`${t.message} -- ignoring the rest of the image data.`);break e}throw t}break;case 65500:o+=4;break;case 65535:255!==e[o]&&o--;break;default:const L=findNextFileMarker(e,o-2,o-3);if(L&&L.invalid){(0,r.warn)("JpegImage.parse - unexpected data, current marker is: "+L.invalid);o=L.offset;break}if(!L||o>=e.length-1){(0,r.warn)("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break e}throw new JpegError("JpegImage.parse - unknown marker: "+g.toString(16))}g=(0,n.readUint16)(e,o);o+=2}this.width=a.samplesPerLine;this.height=a.scanLines;this.jfif=c;this.adobe=l;this.components=[];for(const e of a.components){const t=u[e.quantizationId];t&&(e.quantizationTable=t);this.components.push({index:e.index,output:buildComponentData(0,e),scaleX:e.h/a.maxH,scaleY:e.v/a.maxV,blocksPerLine:e.blocksPerLine,blocksPerColumn:e.blocksPerColumn})}this.numComponents=this.components.length}_getLinearizedBlockData(e,t,a=!1){const r=this.width/e,i=this.height/t;let n,s,o,c,l,h,u,d,f,g,p,m=0;const b=this.components.length,y=e*t*b,w=new Uint8ClampedArray(y),S=new Uint32Array(e),x=4294967288;let C;for(u=0;u>8)+k[f+1];return w}get _isColorConversionNeeded(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform}_convertYccToRgb(e){let t,a,r;for(let i=0,n=e.length;i4)throw new JpegError("Unsupported color mode");const s=this._getLinearizedBlockData(e,t,n);if(1===this.numComponents&&(a||r)){const e=s.length*(a?4:3),t=new Uint8ClampedArray(e);let r=0;if(a)(0,i.grayToRGBA)(s,new Uint32Array(t.buffer));else for(const e of s){t[r++]=e;t[r++]=e;t[r++]=e}return t}if(3===this.numComponents&&this._isColorConversionNeeded){if(a){const e=new Uint8ClampedArray(s.length/3*4);return this._convertYccToRgba(s,e)}return this._convertYccToRgb(s)}if(4===this.numComponents){if(this._isColorConversionNeeded)return a?this._convertYcckToRgba(s):r?this._convertYcckToRgb(s):this._convertYcckToCmyk(s);if(a)return this._convertCmykToRgba(s);if(r)return this._convertCmykToRgb(s)}return s}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.convertBlackAndWhiteToRGBA=convertBlackAndWhiteToRGBA;t.convertToRGBA=function convertToRGBA(e){switch(e.kind){case r.ImageKind.GRAYSCALE_1BPP:return convertBlackAndWhiteToRGBA(e);case r.ImageKind.RGB_24BPP:return function convertRGBToRGBA({src:e,srcPos:t=0,dest:a,destPos:i=0,width:n,height:s}){let o=0;const c=e.length>>2,l=new Uint32Array(e.buffer,t,c);if(r.FeatureTest.isLittleEndian){for(;o>>24|t<<8|4278190080;a[i+2]=t>>>16|r<<16|4278190080;a[i+3]=r>>>8|4278190080}for(let t=4*o,r=e.length;t>>8|255;a[i+2]=t<<16|r>>>16|255;a[i+3]=r<<8|255}for(let t=4*o,r=e.length;t>3,d=7&i,f=e.length;a=new Uint32Array(a.buffer);let g=0;for(let r=0;r{Object.defineProperty(t,"__esModule",{value:!0});t.JpxStream=void 0;var r=a(18),i=a(30),n=a(2);class JpxStream extends r.DecodeStream{constructor(e,t,a){super(t);this.stream=e;this.dict=e.dict;this.maybeLength=t;this.params=a}get bytes(){return(0,n.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))}ensureBuffer(e){}readBlock(){if(this.eof)return;const e=new i.JpxImage;e.parse(this.bytes);const t=e.width,a=e.height,r=e.componentsCount,n=e.tiles.length;if(1===n)this.buffer=e.tiles[0].items;else{const i=new Uint8ClampedArray(t*a*r);for(let a=0;a{Object.defineProperty(t,"__esModule",{value:!0});t.JpxImage=void 0;var r=a(2),i=a(3),n=a(25);class JpxError extends r.BaseException{constructor(e){super(`JPX error: ${e}`,"JpxError")}}const s={LL:0,LH:1,HL:1,HH:2};t.JpxImage=class JpxImage{constructor(){this.failOnCorruptedImage=!1}parse(e){if(65359===(0,i.readUint16)(e,0)){this.parseCodestream(e,0,e.length);return}const t=e.length;let a=0;for(;a>24&255,o>>16&255,o>>8&255,255&o);(0,r.warn)(`Unsupported header type ${o} (${n}).`)}l&&(a+=c)}}parseImageProperties(e){let t=e.getByte();for(;t>=0;){const a=t;t=e.getByte();if(65361===(a<<8|t)){e.skip(4);const t=e.getInt32()>>>0,a=e.getInt32()>>>0,r=e.getInt32()>>>0,i=e.getInt32()>>>0;e.skip(16);const n=e.getUint16();this.width=t-r;this.height=a-i;this.componentsCount=n;this.bitsPerComponent=8;return}}throw new JpxError("No size marker found in JPX stream")}parseCodestream(e,t,a){const n={};let s=!1;try{let o=t;for(;o+1>5;l=[];for(;a>3;t.mu=0}else{t.epsilon=e[a]>>3;t.mu=(7&e[a])<<8|e[a+1];a+=2}l.push(t)}b.SPqcds=l;if(n.mainHeader)n.QCD=b;else{n.currentTile.QCD=b;n.currentTile.QCC=[]}break;case 65373:f=(0,i.readUint16)(e,o);const y={};a=o+2;let w;if(n.SIZ.Csiz<257)w=e[a++];else{w=(0,i.readUint16)(e,a);a+=2}c=e[a++];switch(31&c){case 0:h=8;u=!0;break;case 1:h=16;u=!1;break;case 2:h=16;u=!0;break;default:throw new Error("Invalid SQcd value "+c)}y.noQuantization=8===h;y.scalarExpounded=u;y.guardBits=c>>5;l=[];for(;a>3;t.mu=0}else{t.epsilon=e[a]>>3;t.mu=(7&e[a])<<8|e[a+1];a+=2}l.push(t)}y.SPqcds=l;n.mainHeader?n.QCC[w]=y:n.currentTile.QCC[w]=y;break;case 65362:f=(0,i.readUint16)(e,o);const S={};a=o+2;const x=e[a++];S.entropyCoderWithCustomPrecincts=!!(1&x);S.sopMarkerUsed=!!(2&x);S.ephMarkerUsed=!!(4&x);S.progressionOrder=e[a++];S.layersCount=(0,i.readUint16)(e,a);a+=2;S.multipleComponentTransform=e[a++];S.decompositionLevelsCount=e[a++];S.xcb=2+(15&e[a++]);S.ycb=2+(15&e[a++]);const C=e[a++];S.selectiveArithmeticCodingBypass=!!(1&C);S.resetContextProbabilities=!!(2&C);S.terminationOnEachCodingPass=!!(4&C);S.verticallyStripe=!!(8&C);S.predictableTermination=!!(16&C);S.segmentationSymbolUsed=!!(32&C);S.reversibleTransformation=e[a++];if(S.entropyCoderWithCustomPrecincts){const t=[];for(;a>4})}S.precinctsSizes=t}const k=[];S.selectiveArithmeticCodingBypass&&k.push("selectiveArithmeticCodingBypass");S.terminationOnEachCodingPass&&k.push("terminationOnEachCodingPass");S.verticallyStripe&&k.push("verticallyStripe");S.predictableTermination&&k.push("predictableTermination");if(k.length>0){s=!0;(0,r.warn)(`JPX: Unsupported COD options (${k.join(", ")}).`)}if(n.mainHeader)n.COD=S;else{n.currentTile.COD=S;n.currentTile.COC=[]}break;case 65424:f=(0,i.readUint16)(e,o);d={};d.index=(0,i.readUint16)(e,o+2);d.length=(0,i.readUint32)(e,o+4);d.dataEnd=d.length+o-2;d.partIndex=e[o+8];d.partsCount=e[o+9];n.mainHeader=!1;if(0===d.partIndex){d.COD=n.COD;d.COC=n.COC.slice(0);d.QCD=n.QCD;d.QCC=n.QCC.slice(0)}n.currentTile=d;break;case 65427:d=n.currentTile;if(0===d.partIndex){initializeTile(n,d.index);buildPackets(n)}f=d.dataEnd-o;parseTilePackets(n,e,o,f);break;case 65363:(0,r.warn)("JPX: Codestream code 0xFF53 (COC) is not implemented.");case 65365:case 65367:case 65368:case 65380:f=(0,i.readUint16)(e,o);break;default:throw new Error("Unknown codestream code: "+t.toString(16))}o+=f}}catch(e){if(s||this.failOnCorruptedImage)throw new JpxError(e.message);(0,r.warn)(`JPX: Trying to recover from: "${e.message}".`)}this.tiles=function transformComponents(e){const t=e.SIZ,a=e.components,r=t.Csiz,i=[];for(let t=0,n=e.tiles.length;t>2);c[b++]=e+m>>h;c[b++]=e>>h;c[b++]=e+p>>h}else for(d=0;d>h;c[b++]=g-.34413*p-.71414*m>>h;c[b++]=g+1.772*p>>h}if(e)for(d=0,b=3;d>h}else for(let e=0;e>h;b+=r}}i.push(l)}return i}(n);this.width=n.SIZ.Xsiz-n.SIZ.XOsiz;this.height=n.SIZ.Ysiz-n.SIZ.YOsiz;this.componentsCount=n.SIZ.Csiz}};function calculateComponentDimensions(e,t){e.x0=Math.ceil(t.XOsiz/e.XRsiz);e.x1=Math.ceil(t.Xsiz/e.XRsiz);e.y0=Math.ceil(t.YOsiz/e.YRsiz);e.y1=Math.ceil(t.Ysiz/e.YRsiz);e.width=e.x1-e.x0;e.height=e.y1-e.y0}function calculateTileGrids(e,t){const a=e.SIZ,r=[];let i;const n=Math.ceil((a.Xsiz-a.XTOsiz)/a.XTsiz),s=Math.ceil((a.Ysiz-a.YTOsiz)/a.YTsiz);for(let e=0;e0?Math.min(r.xcb,i.PPx-1):Math.min(r.xcb,i.PPx);i.ycb_=a>0?Math.min(r.ycb,i.PPy-1):Math.min(r.ycb,i.PPy);return i}function buildPrecincts(e,t,a){const r=1<t.trx0?Math.ceil(t.trx1/r)-Math.floor(t.trx0/r):0,l=t.try1>t.try0?Math.ceil(t.try1/i)-Math.floor(t.try0/i):0,h=c*l;t.precinctParameters={precinctWidth:r,precinctHeight:i,numprecinctswide:c,numprecinctshigh:l,numprecincts:h,precinctWidthInSubband:s,precinctHeightInSubband:o}}function buildCodeblocks(e,t,a){const r=a.xcb_,i=a.ycb_,n=1<>r,c=t.tby0>>i,l=t.tbx1+n-1>>r,h=t.tby1+s-1>>i,u=t.resolution.precinctParameters,d=[],f=[];let g,p,m,b;for(p=c;pe.cbxMax&&(e.cbxMax=g);pe.cbyMax&&(e.cbyMax=p)}else f[b]=e={cbxMin:g,cbyMin:p,cbxMax:g,cbyMax:p};m.precinct=e}t.codeblockParameters={codeblockWidth:r,codeblockHeight:i,numcodeblockwide:l-o+1,numcodeblockhigh:h-c+1};t.codeblocks=d;t.precincts=f}function createPacket(e,t,a){const r=[],i=e.subbands;for(let e=0,a=i.length;ee.codingStyleParameters.decompositionLevelsCount)continue;const t=e.resolutions[c],a=t.precinctParameters.numprecincts;for(;h e.codingStyleParameters.decompositionLevelsCount)continue;const t=e.resolutions[o],a=t.precinctParameters.numprecincts;for(;h e.codingStyleParameters.decompositionLevelsCount)continue;const t=e.resolutions[o],a=t.precinctParameters.numprecincts;if(!(l>=a)){for(;s=0;--e){const a=t.resolutions[e],r=g*a.precinctParameters.precinctWidth,i=g*a.precinctParameters.precinctHeight;h=Math.min(h,r);u=Math.min(u,i);d=Math.max(d,a.precinctParameters.numprecinctswide);f=Math.max(f,a.precinctParameters.numprecinctshigh);l[e]={width:r,height:i};g<<=1}a=Math.min(a,h);r=Math.min(r,u);i=Math.max(i,d);n=Math.max(n,f);s[o]={resolutions:l,minWidth:h,minHeight:u,maxNumWide:d,maxNumHigh:f}}return{components:s,minWidth:a,minHeight:r,maxNumWide:i,maxNumHigh:n}}function buildPackets(e){const t=e.SIZ,a=e.currentTile.index,r=e.tiles[a],i=t.Csiz;for(let e=0;e>>o&(1<0;){const e=n.shift();o=e.codeblock;void 0===o.data&&(o.data=[]);o.data.push({data:t,start:a+s,end:a+s+e.dataLength,codingpasses:e.codingpasses});s+=e.dataLength}}return s}function copyCoefficients(e,t,a,r,i,s,o,c,l){const h=r.tbx0,u=r.tby0,d=r.tbx1-r.tbx0,f=r.codeblocks,g="H"===r.type.charAt(0)?1:0,p="H"===r.type.charAt(1)?t:0;for(let a=0,m=f.length;a=s?j:j*(1<0?1-e:0)}const p=t.subbands[r],m=s[p.type];copyCoefficients(n,a,0,p,g?1:2**(f+m-o)*(1+i/2048),h+o-1,g,u,d)}m.push({width:a,height:i,items:n})}const y=p.calculate(m,r.tcx0,r.tcy0);return{left:r.tcx0,top:r.tcy0,width:y.width,height:y.height,items:y.items}}function initializeTile(e,t){const a=e.SIZ.Csiz,r=e.tiles[t];for(let t=0;t>=1;t>>=1;r++}r--;a=this.levels[r];a.items[a.index]=i;this.currentLevel=r;delete this.value}incrementValue(){const e=this.levels[this.currentLevel];e.items[e.index]++}nextLevel(){let e=this.currentLevel,t=this.levels[e];const a=t.items[t.index];e--;if(e<0){this.value=a;return!1}this.currentLevel=e;t=this.levels[e];t.items[t.index]=a;return!0}}class InclusionTree{constructor(e,t,a){const r=(0,i.log2)(Math.max(e,t))+1;this.levels=[];for(let i=0;ia){this.currentLevel=r;this.propagateValues();return!1}e>>=1;t>>=1;r++}this.currentLevel=r-1;return!0}incrementValue(e){const t=this.levels[this.currentLevel];t.items[t.index]=e+1;this.propagateValues()}propagateValues(){let e=this.currentLevel,t=this.levels[e];const a=t.items[t.index];for(;--e>=0;){t=this.levels[e];t.items[t.index]=a}}nextLevel(){let e=this.currentLevel,t=this.levels[e];const a=t.items[t.index];t.items[t.index]=255;e--;if(e<0)return!1;this.currentLevel=e;t=this.levels[e];t.items[t.index]=a;return!0}}class BitModel{static UNIFORM_CONTEXT=17;static RUNLENGTH_CONTEXT=18;static LLAndLHContextsLabel=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]);static HLContextLabel=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]);static HHContextLabel=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);constructor(e,t,a,r,i){this.width=e;this.height=t;let n;n="HH"===a?BitModel.HHContextLabel:"HL"===a?BitModel.HLContextLabel:BitModel.LLAndLHContextsLabel;this.contextLabelTable=n;const s=e*t;this.neighborsSignificance=new Uint8Array(s);this.coefficentsSign=new Uint8Array(s);let o;o=i>14?new Uint32Array(s):i>6?new Uint16Array(s):new Uint8Array(s);this.coefficentsMagnitude=o;this.processingFlags=new Uint8Array(s);const c=new Uint8Array(s);if(0!==r)for(let e=0;e0,o=t+10){c=a-i;s&&(r[c-1]+=16);o&&(r[c+1]+=16);r[c]+=4}if(e+1=a)break;s[d]&=-2;if(r[d]||!n[d])continue;const g=c[n[d]];if(e.readBit(o,g)){const e=this.decodeSignBit(t,u,d);i[d]=e;r[d]=1;this.setNeighborsSignificance(t,u,d);s[d]|=2}l[d]++;s[d]|=1}}}decodeSignBit(e,t,a){const r=this.width,i=this.height,n=this.coefficentsMagnitude,s=this.coefficentsSign;let o,c,l,h,u,d;h=t>0&&0!==n[a-1];if(t+10&&0!==n[a-r];if(e+1=0){u=9+o;d=this.decoder.readBit(this.contexts,u)}else{u=9-o;d=1^this.decoder.readBit(this.contexts,u)}return d}runMagnitudeRefinementPass(){const e=this.decoder,t=this.width,a=this.height,r=this.coefficentsMagnitude,i=this.neighborsSignificance,n=this.contexts,s=this.bitsDecoded,o=this.processingFlags,c=t*a,l=4*t;for(let a,h=0;h>1;let i,n,s,o;const c=-1.586134342059924,l=-.052980118572961,h=.882911075530934,u=.443506852043971,d=1.230174104914001;i=(t|=0)-3;for(n=r+4;n--;i+=2)e[i]*=.8128930661159609;i=t-2;s=u*e[i-1];for(n=r+3;n--;i+=2){o=u*e[i+1];e[i]=d*e[i]-s-o;if(!n--)break;i+=2;s=u*e[i+1];e[i]=d*e[i]-s-o}i=t-1;s=h*e[i-1];for(n=r+2;n--;i+=2){o=h*e[i+1];e[i]-=s+o;if(!n--)break;i+=2;s=h*e[i+1];e[i]-=s+o}i=t;s=l*e[i-1];for(n=r+1;n--;i+=2){o=l*e[i+1];e[i]-=s+o;if(!n--)break;i+=2;s=l*e[i+1];e[i]-=s+o}if(0!==r){i=t+1;s=c*e[i-1];for(n=r;n--;i+=2){o=c*e[i+1];e[i]-=s+o;if(!n--)break;i+=2;s=c*e[i+1];e[i]-=s+o}}}}class ReversibleTransform extends Transform{filter(e,t,a){const r=a>>1;let i,n;for(i=t|=0,n=r+1;n--;i+=2)e[i]-=e[i-1]+e[i+1]+2>>2;for(i=t+1,n=r;n--;i+=2)e[i]+=e[i-1]+e[i+1]>>1}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.LZWStream=void 0;var r=a(18);class LZWStream extends r.DecodeStream{constructor(e,t,a){super(t);this.str=e;this.dict=e.dict;this.cachedData=0;this.bitsCached=0;const r=4096,i={earlyChange:a,codeLength:9,nextCode:258,dictionaryValues:new Uint8Array(r),dictionaryLengths:new Uint16Array(r),dictionaryPrevCodes:new Uint16Array(r),currentSequence:new Uint8Array(r),currentSequenceLength:0};for(let e=0;e<256;++e){i.dictionaryValues[e]=e;i.dictionaryLengths[e]=1}this.lzwState=i}readBits(e){let t=this.bitsCached,a=this.cachedData;for(;t>>t&(1<0;if(e<256){d[0]=e;f=1}else{if(!(e>=258)){if(256===e){h=9;s=258;f=0;continue}this.eof=!0;delete this.lzwState;break}if(e=0;t--){d[t]=o[a];a=l[a]}}else d[f++]=d[0]}if(i){l[s]=u;c[s]=c[u]+1;o[s]=d[0];s++;h=s+n&s+n-1?h:0|Math.min(Math.log(s+n)/.6931471805599453+1,12)}u=e;g+=f;if(r{Object.defineProperty(t,"__esModule",{value:!0});t.PredictorStream=void 0;var r=a(18),i=a(4),n=a(2);class PredictorStream extends r.DecodeStream{constructor(e,t,a){super(t);if(!(a instanceof i.Dict))return e;const r=this.predictor=a.get("Predictor")||1;if(r<=1)return e;if(2!==r&&(r<10||r>15))throw new n.FormatError(`Unsupported predictor: ${r}`);this.readBlock=2===r?this.readBlockTiff:this.readBlockPng;this.str=e;this.dict=e.dict;const s=this.colors=a.get("Colors")||1,o=this.bits=a.get("BPC","BitsPerComponent")||8,c=this.columns=a.get("Columns")||1;this.pixBytes=s*o+7>>3;this.rowBytes=c*s*o+7>>3;return this}readBlockTiff(){const e=this.rowBytes,t=this.bufferLength,a=this.ensureBuffer(t+e),r=this.bits,i=this.colors,n=this.str.getBytes(e);this.eof=!n.length;if(this.eof)return;let s,o=0,c=0,l=0,h=0,u=t;if(1===r&&1===i)for(s=0;s>1;e^=e>>2;e^=e>>4;o=(1&e)<<7;a[u++]=e}else if(8===r){for(s=0;s>8&255;a[u++]=255&e}}else{const e=new Uint8Array(i+1),u=(1<>l-r)&u;l-=r;c=c<=8){a[f++]=c>>h-8&255;h-=8}}h>0&&(a[f++]=(c<<8-h)+(o&(1<<8-h)-1))}this.bufferLength+=e}readBlockPng(){const e=this.rowBytes,t=this.pixBytes,a=this.str.getByte(),r=this.str.getBytes(e);this.eof=!r.length;if(this.eof)return;const i=this.bufferLength,s=this.ensureBuffer(i+e);let o=s.subarray(i-e,i);0===o.length&&(o=new Uint8Array(e));let c,l,h,u=i;switch(a){case 0:for(c=0;c>1)+r[c];for(;c>1)+r[c]&255;u++}break;case 4:for(c=0;c{Object.defineProperty(t,"__esModule",{value:!0});t.RunLengthStream=void 0;var r=a(18);class RunLengthStream extends r.DecodeStream{constructor(e,t){super(t);this.str=e;this.dict=e.dict}readBlock(){const e=this.str.getBytes(2);if(!e||e.length<2||128===e[0]){this.eof=!0;return}let t,a=this.bufferLength,r=e[0];if(r<128){t=this.ensureBuffer(a+r+1);t[a++]=e[1];if(r>0){const e=this.str.getBytes(r);t.set(e,a);a+=r}}else{r=257-r;const i=e[1];t=this.ensureBuffer(a+r+1);for(let e=0;e{Object.defineProperty(t,"__esModule",{value:!0});t.Font=t.ErrorFont=void 0;var r=a(2),i=a(35),n=a(38),s=a(40),o=a(39),c=a(37),l=a(41),h=a(42),u=a(43),d=a(44),f=a(45),g=a(46),p=a(14),m=a(47),b=a(3),y=a(8),w=a(48);const S=[[57344,63743],[1048576,1114109]],x=1e3,C=["ascent","bbox","black","bold","charProcOperatorList","composite","cssFontInfo","data","defaultVMetrics","defaultWidth","descent","fallbackName","fontMatrix","isInvalidPDFjsFont","isType3Font","italic","loadedName","mimetype","missingFile","name","remeasure","subtype","type","vertical"],k=["cMap","defaultEncoding","differences","isMonospace","isSerifFont","isSymbolicFont","seacMap","toFontChar","toUnicode","vmetrics","widths"];function adjustWidths(e){if(!e.fontMatrix)return;if(e.fontMatrix[0]===r.FONT_IDENTITY_MATRIX[0])return;const t=.001/e.fontMatrix[0],a=e.widths;for(const e in a)a[e]*=t;e.defaultWidth*=t}function amendFallbackToUnicode(e){if(!e.fallbackToUnicode)return;if(e.toUnicode instanceof h.IdentityToUnicodeMap)return;const t=[];for(const a in e.fallbackToUnicode)e.toUnicode.has(a)||(t[a]=e.fallbackToUnicode[a]);t.length>0&&e.toUnicode.amend(t)}class Glyph{constructor(e,t,a,r,i,n,s,o,c){this.originalCharCode=e;this.fontChar=t;this.unicode=a;this.accent=r;this.width=i;this.vmetric=n;this.operatorListId=s;this.isSpace=o;this.isInFont=c}get category(){return(0,r.shadow)(this,"category",(0,s.getCharUnicodeCategory)(this.unicode),!0)}}function int16(e,t){return(e<<8)+t}function writeSignedInt16(e,t,a){e[t+1]=a;e[t]=a>>>8}function signedInt16(e,t){const a=(e<<8)+t;return 32768&a?a-65536:a}function string16(e){return String.fromCharCode(e>>8&255,255&e)}function safeString16(e){e>32767?e=32767:e<-32768&&(e=-32768);return String.fromCharCode(e>>8&255,255&e)}function isTrueTypeCollectionFile(e){const t=e.peekBytes(4);return"ttcf"===(0,r.bytesToString)(t)}function getFontFileType(e,{type:t,subtype:a,composite:i}){let n,s;if(function isTrueTypeFile(e){const t=e.peekBytes(4);return 65536===(0,b.readUint32)(t,0)||"true"===(0,r.bytesToString)(t)}(e)||isTrueTypeCollectionFile(e))n=i?"CIDFontType2":"TrueType";else if(function isOpenTypeFile(e){const t=e.peekBytes(4);return"OTTO"===(0,r.bytesToString)(t)}(e))n=i?"CIDFontType2":"OpenType";else if(function isType1File(e){const t=e.peekBytes(2);return 37===t[0]&&33===t[1]||128===t[0]&&1===t[1]}(e))n=i?"CIDFontType0":"MMType1"===t?"MMType1":"Type1";else if(function isCFFFile(e){const t=e.peekBytes(4);return t[0]>=1&&t[3]>=1&&t[3]<=4}(e))if(i){n="CIDFontType0";s="CIDFontType0C"}else{n="MMType1"===t?"MMType1":"Type1";s="Type1C"}else{(0,r.warn)("getFontFileType: Unable to detect correct font file Type/Subtype.");n=t;s=a}return[n,s]}function applyStandardFontGlyphMap(e,t){for(const a in t)e[+a]=t[a]}function buildToFontChar(e,t,a){const r=[];let i;for(let a=0,n=e.length;au){l++;if(l>=S.length){(0,r.warn)("Ran out of space in font private use area.");break}h=S[l][0];u=S[l][1]}const p=h++;0===g&&(g=a);let m=i.get(f);"string"==typeof m&&(m=m.codePointAt(0));if(m&&!(d=m,S[0][0]<=d&&d<=S[0][1]||S[1][0]<=d&&d<=S[1][1])&&!c.has(g)){s.set(m,g);c.add(g)}n[p]=g;o[f]=p}var d;return{toFontChar:o,charCodeToGlyphId:n,toUnicodeExtraMap:s,nextAvailableFontCharCode:h}}function createCmapTable(e,t,a){const i=function getRanges(e,t,a){const r=[];for(const t in e)e[t]>=a||r.push({fontCharCode:0|t,glyphId:e[t]});if(t)for(const[e,i]of t)i>=a||r.push({fontCharCode:e,glyphId:i});0===r.length&&r.push({fontCharCode:0,glyphId:0});r.sort((function fontGetRangesSort(e,t){return e.fontCharCode-t.fontCharCode}));const i=[],n=r.length;for(let e=0;e65535?2:1;let s,o,c,l,h="\0\0"+string16(n)+"\0\0"+(0,r.string32)(4+8*n);for(s=i.length-1;s>=0&&!(i[s][0]<=65535);--s);const u=s+1;i[s][0]<65535&&65535===i[s][1]&&(i[s][1]=65534);const d=i[s][1]<65535?1:0,f=u+d,g=m.OpenTypeFileBuilder.getSearchParams(f,2);let p,b,y,w,S="",x="",C="",k="",v="",F=0;for(s=0,o=u;s0){x+="ÿÿ";S+="ÿÿ";C+="\0";k+="\0\0"}const O="\0\0"+string16(2*f)+string16(g.range)+string16(g.entry)+string16(g.rangeShift)+x+"\0\0"+S+C+k+v;let T="",M="";if(n>1){h+="\0\0\n"+(0,r.string32)(4+8*n+4+O.length);T="";for(s=0,o=i.length;se||!l)&&(l=e);h 123 are reserved for internal usage");c|=1<65535&&(h=65535)}else{l=0;h=255}const d=e.bbox||[0,0,0,0],f=a.unitsPerEm||1/(e.fontMatrix||r.FONT_IDENTITY_MATRIX)[0],g=e.ascentScaled?1:f/x,p=a.ascent||Math.round(g*(e.ascent||d[3]));let m=a.descent||Math.round(g*(e.descent||d[1]));m>0&&e.descent>0&&d[1]<0&&(m=-m);const b=a.yMax||p,y=-a.yMin||-m;return"\0$ô\0\0\0Š»\0\0\0ŒŠ»\0\0ß\x001\0\0\0\0"+String.fromCharCode(e.fixedPitch?9:0)+"\0\0\0\0\0\0"+(0,r.string32)(i)+(0,r.string32)(n)+(0,r.string32)(o)+(0,r.string32)(c)+"*21*"+string16(e.italicAngle?1:0)+string16(l||e.firstChar)+string16(h||e.lastChar)+string16(p)+string16(m)+"\0d"+string16(b)+string16(y)+"\0\0\0\0\0\0\0\0"+string16(e.xHeight)+string16(e.capHeight)+string16(0)+string16(l||e.firstChar)+"\0"}function createPostTable(e){const t=Math.floor(65536*e.italicAngle);return"\0\0\0"+(0,r.string32)(t)+"\0\0\0\0"+(0,r.string32)(e.fixedPitch?1:0)+"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}function createPostscriptName(e){return e.replaceAll(/[^\x21-\x7E]|[[\](){}<>/%]/g,"").slice(0,63)}function createNameTable(e,t){t||(t=[[],[]]);const a=[t[0][0]||"Original licence",t[0][1]||e,t[0][2]||"Unknown",t[0][3]||"uniqueID",t[0][4]||e,t[0][5]||"Version 0.11",t[0][6]||createPostscriptName(e),t[0][7]||"Unknown",t[0][8]||"Unknown",t[0][9]||"Unknown"],r=[];let i,n,s,o,c;for(i=0,n=a.length;i0;if((g||p)&&"CIDFontType2"===a&&this.cidEncoding.startsWith("Identity-")){const a=e.cidToGidMap,r=[];applyStandardFontGlyphMap(r,(0,l.getGlyphMapForStandardFonts)());/Arial-?Black/i.test(t)?applyStandardFontGlyphMap(r,(0,l.getSupplementalGlyphMapForArialBlack)()):/Calibri/i.test(t)&&applyStandardFontGlyphMap(r,(0,l.getSupplementalGlyphMapForCalibri)());if(a){for(const e in r){const t=r[e];void 0!==a[t]&&(r[+e]=a[t])}a.length!==this.toUnicode.length&&e.hasIncludedToUnicodeMap&&this.toUnicode instanceof h.IdentityToUnicodeMap&&this.toUnicode.forEach((function(e,t){const i=r[e];void 0===a[i]&&(r[+e]=t)}))}this.toUnicode instanceof h.IdentityToUnicodeMap||this.toUnicode.forEach((function(e,t){r[+e]=t}));this.toFontChar=r;this.toUnicode=new h.ToUnicodeMap(r)}else if(/Symbol/i.test(i))this.toFontChar=buildToFontChar(c.SymbolSetEncoding,(0,o.getGlyphsUnicode)(),this.differences);else if(/Dingbats/i.test(i)){/Wingdings/i.test(t)&&(0,r.warn)("Non-embedded Wingdings font, falling back to ZapfDingbats.");this.toFontChar=buildToFontChar(c.ZapfDingbatsEncoding,(0,o.getDingbatsGlyphsUnicode)(),this.differences)}else if(g){const e=buildToFontChar(this.defaultEncoding,(0,o.getGlyphsUnicode)(),this.differences);"CIDFontType2"!==a||this.cidEncoding.startsWith("Identity-")||this.toUnicode instanceof h.IdentityToUnicodeMap||this.toUnicode.forEach((function(t,a){e[+t]=a}));this.toFontChar=e}else{const e=(0,o.getGlyphsUnicode)(),a=[];this.toUnicode.forEach(((t,r)=>{if(!this.composite){const a=this.differences[t]||this.defaultEncoding[t],i=(0,s.getUnicodeForGlyph)(a,e);-1!==i&&(r=i)}a[+t]=r}));this.composite&&this.toUnicode instanceof h.IdentityToUnicodeMap&&/Tahoma|Verdana/i.test(t)&&applyStandardFontGlyphMap(a,(0,l.getGlyphMapForStandardFonts)());this.toFontChar=a}amendFallbackToUnicode(e);this.loadedName=i.split("-")[0]}checkAndRepair(e,t,a){const s=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(e,t){const a=Object.create(null);a["OS/2"]=null;a.cmap=null;a.head=null;a.hhea=null;a.hmtx=null;a.maxp=null;a.name=null;a.post=null;for(let r=0;r>>0,r=e.getInt32()>>>0,i=e.getInt32()>>>0,n=e.pos;e.pos=e.start||0;e.skip(r);const s=e.getBytes(i);e.pos=n;if("head"===t){s[8]=s[9]=s[10]=s[11]=0;s[17]|=32}return{tag:t,checksum:a,length:i,offset:r,data:s}}function readOpenTypeHeader(e){return{version:e.getString(4),numTables:e.getUint16(),searchRange:e.getUint16(),entrySelector:e.getUint16(),rangeShift:e.getUint16()}}function sanitizeGlyph(e,t,a,r,i,n){const s={length:0,sizeOfInstructions:0};if(a-t<=12)return s;const o=e.subarray(t,a);let c=signedInt16(o[0],o[1]);if(c<0){c=-1;writeSignedInt16(o,0,c);r.set(o,i);s.length=o.length;return s}let l,h=10,u=0;for(l=0;lo.length)return s;if(!n&&f>0){r.set(o.subarray(0,d),i);r.set([0,0],i+d);r.set(o.subarray(g,m),i+d+2);m-=f;o.length-m>3&&(m=m+3&-4);s.length=m;return s}if(o.length-m>3){m=m+3&-4;r.set(o.subarray(0,m),i);s.length=m;return s}r.set(o,i);s.length=o.length;return s}function readNameTable(e){const a=(t.start||0)+e.offset;t.pos=a;const r=[[],[]],i=[],n=e.length,s=a+n;if(0!==t.getUint16()||n<6)return[r,i];const o=t.getUint16(),c=t.getUint16();let l,h;for(l=0;ls)continue;t.pos=n;const o=e.name;if(e.encoding){let a="";for(let r=0,i=e.length;r0&&(h+=e-1)}}else{if(b||w){(0,r.warn)("TT: nested FDEFs not allowed");m=!0}b=!0;d=h;s=f.pop();t.functionsDefined[s]={data:c,i:h}}else if(!b&&!w){s=f.at(-1);if(isNaN(s))(0,r.info)("TT: CALL empty stack (or invalid entry).");else{t.functionsUsed[s]=!0;if(s in t.functionsStackDeltas){const e=f.length+t.functionsStackDeltas[s];if(e<0){(0,r.warn)("TT: CALL invalid functions stack delta.");t.hintsValid=!1;return}f.length=e}else if(s in t.functionsDefined&&!p.includes(s)){g.push({data:c,i:h,stackTop:f.length-1});p.push(s);o=t.functionsDefined[s];if(!o){(0,r.warn)("TT: CALL non-existent function");t.hintsValid=!1;return}c=o.data;h=o.i}}}if(!b&&!w){let t=0;e<=142?t=l[e]:e>=192&&e<=223?t=-1:e>=224&&(t=-2);if(e>=113&&e<=117){i=f.pop();isNaN(i)||(t=2*-i)}for(;t<0&&f.length>0;){f.pop();t++}for(;t>0;){f.push(NaN);t--}}}t.tooComplexToFollowFunctions=m;const S=[c];h>c.length&&S.push(new Uint8Array(h-c.length));if(d>u){(0,r.warn)("TT: complementing a missing function tail");S.push(new Uint8Array([34,45]))}!function foldTTTable(e,t){if(t.length>1){let a,r,i=0;for(a=0,r=t.length;a>>0,s=[];for(let t=0;t>>0);const o={ttcTag:t,majorVersion:a,minorVersion:i,numFonts:n,offsetTable:s};switch(a){case 1:return o;case 2:o.dsigTag=e.getInt32()>>>0;o.dsigLength=e.getInt32()>>>0;o.dsigOffset=e.getInt32()>>>0;return o}throw new r.FormatError(`Invalid TrueType Collection majorVersion: ${a}.`)}(e),n=t.split("+");let s;for(let o=0;o0||!(a.cMap instanceof p.IdentityCMap));if("OTTO"===d.version&&!t||!f.head||!f.hhea||!f.maxp||!f.post){w=new y.Stream(f["CFF "].data);b=new u.CFFFont(w,a);adjustWidths(a);return this.convert(e,b,a)}delete f.glyf;delete f.loca;delete f.fpgm;delete f.prep;delete f["cvt "];this.isOpenType=!0}if(!f.maxp)throw new r.FormatError('Required "maxp" table is not found');t.pos=(t.start||0)+f.maxp.offset;const x=t.getInt32(),C=t.getUint16();if(a.scaleFactors&&a.scaleFactors.length===C&&S){const{scaleFactors:e}=a,t=int16(f.head.data[50],f.head.data[51]),r=new g.GlyfTable({glyfTable:f.glyf.data,isGlyphLocationsLong:t,locaTable:f.loca.data,numGlyphs:C});r.scale(e);const{glyf:i,loca:n,isLocationLong:s}=r.write();f.glyf.data=i;f.loca.data=n;if(s!==!!t){f.head.data[50]=0;f.head.data[51]=s?1:0}const o=f.hmtx.data;for(let t=0;t>8&255;o[a+1]=255&r;writeSignedInt16(o,a+2,Math.round(e[t]*signedInt16(o[a+2],o[a+3])))}}let k=C+1,v=!0;if(k>65535){v=!1;k=C;(0,r.warn)("Not enough space in glyfs to duplicate first glyph.")}let F=0,O=0;if(x>=65536&&f.maxp.length>=22){t.pos+=8;if(t.getUint16()>2){f.maxp.data[14]=0;f.maxp.data[15]=2}t.pos+=4;F=t.getUint16();t.pos+=4;O=t.getUint16()}f.maxp.data[4]=k>>8;f.maxp.data[5]=255&k;const T=function sanitizeTTPrograms(e,t,a,i){const n={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};e&&sanitizeTTProgram(e,n);t&&sanitizeTTProgram(t,n);e&&function checkInvalidFunctions(e,t){if(!e.tooComplexToFollowFunctions)if(e.functionsDefined.length>t){(0,r.warn)("TT: more functions defined than expected");e.hintsValid=!1}else for(let a=0,i=e.functionsUsed.length;at){(0,r.warn)("TT: invalid function id: "+a);e.hintsValid=!1;return}if(e.functionsUsed[a]&&!e.functionsDefined[a]){(0,r.warn)("TT: undefined function: "+a);e.hintsValid=!1;return}}}(n,i);if(a&&1&a.length){const e=new Uint8Array(a.length+1);e.set(a.data);a.data=e}return n.hintsValid}(f.fpgm,f.prep,f["cvt "],F);if(!T){delete f.fpgm;delete f.prep;delete f["cvt "]}!function sanitizeMetrics(e,t,a,i,n,s){if(!t){a&&(a.data=null);return}e.pos=(e.start||0)+t.offset;e.pos+=4;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;const o=e.getUint16();e.pos+=8;e.pos+=2;let c=e.getUint16();if(0!==o){if(!(2&int16(i.data[44],i.data[45]))){t.data[22]=0;t.data[23]=0}}if(c>n){(0,r.info)(`The numOfMetrics (${c}) should not be greater than the numGlyphs (${n}).`);c=n;t.data[34]=(65280&c)>>8;t.data[35]=255&c}const l=n-c-(a.length-4*c>>1);if(l>0){const e=new Uint8Array(a.length+2*l);e.set(a.data);if(s){e[a.length]=a.data[2];e[a.length+1]=a.data[3]}a.data=e}}(t,f.hhea,f.hmtx,f.head,k,v);if(!f.head)throw new r.FormatError('Required "head" table is not found');!function sanitizeHead(e,t,a){const i=e.data,n=function int32(e,t,a,r){return(e<<24)+(t<<16)+(a<<8)+r}(i[0],i[1],i[2],i[3]);if(n>>16!=1){(0,r.info)("Attempting to fix invalid version in head table: "+n);i[0]=0;i[1]=1;i[2]=0;i[3]=0}const s=int16(i[50],i[51]);if(s<0||s>1){(0,r.info)("Attempting to fix invalid indexToLocFormat in head table: "+s);const e=t+1;if(a===e<<1){i[50]=0;i[51]=0}else{if(a!==e<<2)throw new r.FormatError("Could not fix indexToLocFormat: "+s);i[50]=0;i[51]=1}}}(f.head,C,S?f.loca.length:0);let M=Object.create(null);if(S){const e=int16(f.head.data[50],f.head.data[51]),t=function sanitizeGlyphLocations(e,t,a,r,i,n,s){let o,c,l;if(r){o=4;c=function fontItemDecodeLong(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};l=function fontItemEncodeLong(e,t,a){e[t]=a>>>24&255;e[t+1]=a>>16&255;e[t+2]=a>>8&255;e[t+3]=255&a}}else{o=2;c=function fontItemDecode(e,t){return e[t]<<9|e[t+1]<<1};l=function fontItemEncode(e,t,a){e[t]=a>>9&255;e[t+1]=a>>1&255}}const h=n?a+1:a,u=o*(1+h),d=new Uint8Array(u);d.set(e.data.subarray(0,u));e.data=d;const f=t.data,g=f.length,p=new Uint8Array(g);let m,b;const y=[];for(m=0,b=0;mg&&(e=g);y.push({index:m,offset:e,endOffset:0})}y.sort(((e,t)=>e.offset-t.offset));for(m=0;m e.index-t.index));for(m=0;m s&&(s=e.sizeOfInstructions);S+=t;l(d,b,S)}if(0===S){const e=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(m=0,b=o;ma+S)t.data=p.subarray(0,a+S);else{t.data=new Uint8Array(a+S);t.data.set(p.subarray(0,S))}t.data.set(p.subarray(0,a),S);l(e.data,d.length-o,S+a)}else t.data=p.subarray(0,S);return{missingGlyphs:w,maxSizeOfInstructions:s}}(f.loca,f.glyf,C,e,T,v,O);M=t.missingGlyphs;if(x>=65536&&f.maxp.length>=22){f.maxp.data[26]=t.maxSizeOfInstructions>>8;f.maxp.data[27]=255&t.maxSizeOfInstructions}}if(!f.hhea)throw new r.FormatError('Required "hhea" table is not found');if(0===f.hhea.data[10]&&0===f.hhea.data[11]){f.hhea.data[10]=255;f.hhea.data[11]=255}const E={unitsPerEm:int16(f.head.data[18],f.head.data[19]),yMax:int16(f.head.data[42],f.head.data[43]),yMin:signedInt16(f.head.data[38],f.head.data[39]),ascent:signedInt16(f.hhea.data[4],f.hhea.data[5]),descent:signedInt16(f.hhea.data[6],f.hhea.data[7]),lineGap:signedInt16(f.hhea.data[8],f.hhea.data[9])};this.ascent=E.ascent/E.unitsPerEm;this.descent=E.descent/E.unitsPerEm;this.lineGap=E.lineGap/E.unitsPerEm;if(this.cssFontInfo&&this.cssFontInfo.lineHeight){this.lineHeight=this.cssFontInfo.metrics.lineHeight;this.lineGap=this.cssFontInfo.metrics.lineGap}else this.lineHeight=this.ascent-this.descent+this.lineGap;f.post&&function readPostScriptTable(e,a,i){const s=(t.start||0)+e.offset;t.pos=s;const o=s+e.length,c=t.getInt32();t.skip(28);let l,h,u=!0;switch(c){case 65536:l=n.MacStandardGlyphOrdering;break;case 131072:const e=t.getUint16();if(e!==i){u=!1;break}const s=[];for(h=0;h=32768){u=!1;break}s.push(e)}if(!u)break;const d=[],f=[];for(;t.pos65535)throw new r.FormatError("Max size of CID is 65,535");let n=-1;t?n=i:void 0!==e[i]&&(n=e[i]);n>=0&&n>>0;let h=!1;if(!c||c.platformId!==r||c.encodingId!==n){if(0!==r||0!==n&&1!==n&&3!==n)if(1===r&&0===n)h=!0;else if(3!==r||1!==n||!i&&c){if(a&&3===r&&0===n){h=!0;let a=!0;if(e>3;e.push(r);a=Math.max(r,a)}const r=[];for(let e=0;e<=a;e++)r.push({firstCode:t.getUint16(),entryCount:t.getUint16(),idDelta:signedInt16(t.getByte(),t.getByte()),idRangePos:t.pos+t.getUint16()});for(let a=0;a<256;a++)if(0===e[a]){t.pos=r[0].idRangePos+2*a;g=t.getUint16();d.push({charCode:a,glyphId:g})}else{const i=r[e[a]];for(f=0;f>1;t.skip(6);const a=[];let r;for(r=0;r>1)-(e-r);n.offsetIndex=i;o=Math.max(o,i+n.end-n.start+1)}else n.offsetIndex=-1}const c=[];for(f=0;f>>0;for(f=0;f>>0,a=t.getInt32()>>>0;let r=t.getInt32()>>>0;for(let t=e;t<=a;t++)d.push({charCode:t,glyphId:r++})}}}d.sort((function(e,t){return e.charCode-t.charCode}));for(let e=1;e=61440&&t<=61695&&(t&=255);D[t]=e.glyphId}if(a.glyphNames&&(u.length||this.differences.length))for(let e=0;e<256;++e){if(!d&&void 0!==D[e])continue;const t=this.differences[e]||u[e];if(!t)continue;const r=a.glyphNames.indexOf(t);r>0&&hasGlyph(r)&&(D[e]=r)}}0===D.length&&(D[0]=0);let N=k-1;v||(N=0);if(!a.cssFontInfo){const e=adjustMapping(D,hasGlyph,N,this.toUnicode);this.toFontChar=e.toFontChar;f.cmap={tag:"cmap",data:createCmapTable(e.charCodeToGlyphId,e.toUnicodeExtraMap,k)};f["OS/2"]&&function validateOS2Table(e,t){t.pos=(t.start||0)+e.offset;const a=t.getUint16();t.skip(60);const r=t.getUint16();if(a<4&&768&r)return!1;if(t.getUint16()>t.getUint16())return!1;t.skip(6);if(0===t.getUint16())return!1;e.data[8]=e.data[9]=0;return!0}(f["OS/2"],t)||(f["OS/2"]={tag:"OS/2",data:createOS2Table(a,e.charCodeToGlyphId,E)})}if(!S)try{w=new y.Stream(f["CFF "].data);b=new i.CFFParser(w,a,n.SEAC_ANALYSIS_ENABLED).parse();b.duplicateFirstGlyph();const e=new i.CFFCompiler(b);f["CFF "].data=e.compile()}catch(e){(0,r.warn)("Failed to compile font "+a.loadedName)}if(f.name){const[t,r]=readNameTable(f.name);f.name.data=createNameTable(e,t);this.psName=t[0][6]||null;a.composite||function adjustTrueTypeToUnicode(e,t,a){if(e.isInternalFont)return;if(e.hasIncludedToUnicodeMap)return;if(e.hasEncoding)return;if(e.toUnicode instanceof h.IdentityToUnicodeMap)return;if(!t)return;if(0===a.length)return;if(e.defaultEncoding===c.WinAnsiEncoding)return;for(const e of a)if(!isWinNameRecord(e))return;const r=c.WinAnsiEncoding,i=[],n=(0,o.getGlyphsUnicode)();for(const e in r){const t=r[e];if(""===t)continue;const a=n[t];void 0!==a&&(i[e]=String.fromCharCode(a))}i.length>0&&e.toUnicode.amend(i)}(a,this.isSymbolicFont,r)}else f.name={tag:"name",data:createNameTable(this.name)};const R=new m.OpenTypeFileBuilder(d.version);for(const e in f)R.addTable(e,f[e].data);return R.toArray()}convert(e,t,a){a.fixedPitch=!1;a.builtInEncoding&&function adjustType1ToUnicode(e,t){if(e.isInternalFont)return;if(e.hasIncludedToUnicodeMap)return;if(t===e.defaultEncoding)return;if(e.toUnicode instanceof h.IdentityToUnicodeMap)return;const a=[],r=(0,o.getGlyphsUnicode)();for(const i in t){if(e.hasEncoding&&(e.baseEncodingName||void 0!==e.differences[i]))continue;const n=t[i],o=(0,s.getUnicodeForGlyph)(n,r);-1!==o&&(a[i]=String.fromCharCode(o))}a.length>0&&e.toUnicode.amend(a)}(a,a.builtInEncoding);let i=1;t instanceof u.CFFFont&&(i=t.numGlyphs-1);const l=t.getGlyphMapping(a);let d=null,f=l,g=null;if(!a.cssFontInfo){d=adjustMapping(l,t.hasGlyphId.bind(t),i,this.toUnicode);this.toFontChar=d.toFontChar;f=d.charCodeToGlyphId;g=d.toUnicodeExtraMap}const p=t.numGlyphs;function getCharCodes(e,t){let a=null;for(const r in e)t===e[r]&&(a||=[]).push(0|r);return a}function createCharCode(e,t){for(const a in e)if(t===e[a])return 0|a;d.charCodeToGlyphId[d.nextAvailableFontCharCode]=t;return d.nextAvailableFontCharCode++}const b=t.seacs;if(d&&n.SEAC_ANALYSIS_ENABLED&&b&&b.length){const e=a.fontMatrix||r.FONT_IDENTITY_MATRIX,i=t.getCharset(),n=Object.create(null);for(let t in b){t|=0;const a=b[t],r=c.StandardEncoding[a[2]],s=c.StandardEncoding[a[3]],o=i.indexOf(r),h=i.indexOf(s);if(o<0||h<0)continue;const u={x:a[0]*e[0]+a[1]*e[2]+e[4],y:a[0]*e[1]+a[1]*e[3]+e[5]},f=getCharCodes(l,t);if(f)for(const e of f){const t=d.charCodeToGlyphId,a=createCharCode(t,o),r=createCharCode(t,h);n[e]={baseFontCharCode:a,accentFontCharCode:r,accentOffset:u}}}a.seacMap=n}const y=1/(a.fontMatrix||r.FONT_IDENTITY_MATRIX)[0],w=new m.OpenTypeFileBuilder("OTTO");w.addTable("CFF ",t.data);w.addTable("OS/2",createOS2Table(a,f));w.addTable("cmap",createCmapTable(f,g,p));w.addTable("head","\0\0\0\0\0\0\0\0\0\0_<õ\0\0"+safeString16(y)+"\0\0\0\0ž\v~'\0\0\0\0ž\v~'\0\0"+safeString16(a.descent)+"ÿ"+safeString16(a.ascent)+string16(a.italicAngle?2:0)+"\0\0\0\0\0\0\0");w.addTable("hhea","\0\0\0"+safeString16(a.ascent)+safeString16(a.descent)+"\0\0ÿÿ\0\0\0\0\0\0"+safeString16(a.capHeight)+safeString16(Math.tan(a.italicAngle)*a.xHeight)+"\0\0\0\0\0\0\0\0\0\0\0\0"+string16(p));w.addTable("hmtx",function fontFieldsHmtx(){const e=t.charstrings,a=t.cff?t.cff.widths:null;let r="\0\0\0\0";for(let t=1,i=p;tt.length%2==1,r=this.toUnicode instanceof h.IdentityToUnicodeMap?e=>this.toUnicode.charCodeOf(e):e=>this.toUnicode.charCodeOf(String.fromCodePoint(e));for(let i=0,n=e.length;i55295&&(n<57344||n>65533)&&i++;if(this.toUnicode){const e=r(n);if(-1!==e){if(hasCurrentBufErrors()){t.push(a.join(""));a.length=0}for(let t=(this.cMap?this.cMap.getCharCodeLength(e):1)-1;t>=0;t--)a.push(String.fromCharCode(e>>8*t&255));continue}}if(!hasCurrentBufErrors()){t.push(a.join(""));a.length=0}a.push(String.fromCodePoint(n))}t.push(a.join(""));return t}};t.ErrorFont=class ErrorFont{constructor(e){this.error=e;this.loadedName="g_font_error";this.missingFile=!0}charsToGlyphs(){return[]}encodeString(e){return[e]}exportData(e=!1){return{error:this.error}}}},(e,t,a)=>{Object.defineProperty(t,"__esModule",{value:!0});t.CFFTopDict=t.CFFStrings=t.CFFStandardStrings=t.CFFPrivateDict=t.CFFParser=t.CFFIndex=t.CFFHeader=t.CFFFDSelect=t.CFFCompiler=t.CFFCharset=t.CFF=void 0;var r=a(2),i=a(36),n=a(37);const s=[".notdef","space","exclam","quotedbl","numbersign","dollar","percent","ampersand","quoteright","parenleft","parenright","asterisk","plus","comma","hyphen","period","slash","zero","one","two","three","four","five","six","seven","eight","nine","colon","semicolon","less","equal","greater","question","at","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","bracketleft","backslash","bracketright","asciicircum","underscore","quoteleft","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","braceleft","bar","braceright","asciitilde","exclamdown","cent","sterling","fraction","yen","florin","section","currency","quotesingle","quotedblleft","guillemotleft","guilsinglleft","guilsinglright","fi","fl","endash","dagger","daggerdbl","periodcentered","paragraph","bullet","quotesinglbase","quotedblbase","quotedblright","guillemotright","ellipsis","perthousand","questiondown","grave","acute","circumflex","tilde","macron","breve","dotaccent","dieresis","ring","cedilla","hungarumlaut","ogonek","caron","emdash","AE","ordfeminine","Lslash","Oslash","OE","ordmasculine","ae","dotlessi","lslash","oslash","oe","germandbls","onesuperior","logicalnot","mu","trademark","Eth","onehalf","plusminus","Thorn","onequarter","divide","brokenbar","degree","thorn","threequarters","twosuperior","registered","minus","eth","multiply","threesuperior","copyright","Aacute","Acircumflex","Adieresis","Agrave","Aring","Atilde","Ccedilla","Eacute","Ecircumflex","Edieresis","Egrave","Iacute","Icircumflex","Idieresis","Igrave","Ntilde","Oacute","Ocircumflex","Odieresis","Ograve","Otilde","Scaron","Uacute","Ucircumflex","Udieresis","Ugrave","Yacute","Ydieresis","Zcaron","aacute","acircumflex","adieresis","agrave","aring","atilde","ccedilla","eacute","ecircumflex","edieresis","egrave","iacute","icircumflex","idieresis","igrave","ntilde","oacute","ocircumflex","odieresis","ograve","otilde","scaron","uacute","ucircumflex","udieresis","ugrave","yacute","ydieresis","zcaron","exclamsmall","Hungarumlautsmall","dollaroldstyle","dollarsuperior","ampersandsmall","Acutesmall","parenleftsuperior","parenrightsuperior","twodotenleader","onedotenleader","zerooldstyle","oneoldstyle","twooldstyle","threeoldstyle","fouroldstyle","fiveoldstyle","sixoldstyle","sevenoldstyle","eightoldstyle","nineoldstyle","commasuperior","threequartersemdash","periodsuperior","questionsmall","asuperior","bsuperior","centsuperior","dsuperior","esuperior","isuperior","lsuperior","msuperior","nsuperior","osuperior","rsuperior","ssuperior","tsuperior","ff","ffi","ffl","parenleftinferior","parenrightinferior","Circumflexsmall","hyphensuperior","Gravesmall","Asmall","Bsmall","Csmall","Dsmall","Esmall","Fsmall","Gsmall","Hsmall","Ismall","Jsmall","Ksmall","Lsmall","Msmall","Nsmall","Osmall","Psmall","Qsmall","Rsmall","Ssmall","Tsmall","Usmall","Vsmall","Wsmall","Xsmall","Ysmall","Zsmall","colonmonetary","onefitted","rupiah","Tildesmall","exclamdownsmall","centoldstyle","Lslashsmall","Scaronsmall","Zcaronsmall","Dieresissmall","Brevesmall","Caronsmall","Dotaccentsmall","Macronsmall","figuredash","hypheninferior","Ogoneksmall","Ringsmall","Cedillasmall","questiondownsmall","oneeighth","threeeighths","fiveeighths","seveneighths","onethird","twothirds","zerosuperior","foursuperior","fivesuperior","sixsuperior","sevensuperior","eightsuperior","ninesuperior","zeroinferior","oneinferior","twoinferior","threeinferior","fourinferior","fiveinferior","sixinferior","seveninferior","eightinferior","nineinferior","centinferior","dollarinferior","periodinferior","commainferior","Agravesmall","Aacutesmall","Acircumflexsmall","Atildesmall","Adieresissmall","Aringsmall","AEsmall","Ccedillasmall","Egravesmall","Eacutesmall","Ecircumflexsmall","Edieresissmall","Igravesmall","Iacutesmall","Icircumflexsmall","Idieresissmall","Ethsmall","Ntildesmall","Ogravesmall","Oacutesmall","Ocircumflexsmall","Otildesmall","Odieresissmall","OEsmall","Oslashsmall","Ugravesmall","Uacutesmall","Ucircumflexsmall","Udieresissmall","Yacutesmall","Thornsmall","Ydieresissmall","001.000","001.001","001.002","001.003","Black","Bold","Book","Light","Medium","Regular","Roman","Semibold"];t.CFFStandardStrings=s;const o=391,c=[null,{id:"hstem",min:2,stackClearing:!0,stem:!0},null,{id:"vstem",min:2,stackClearing:!0,stem:!0},{id:"vmoveto",min:1,stackClearing:!0},{id:"rlineto",min:2,resetStack:!0},{id:"hlineto",min:1,resetStack:!0},{id:"vlineto",min:1,resetStack:!0},{id:"rrcurveto",min:6,resetStack:!0},null,{id:"callsubr",min:1,undefStack:!0},{id:"return",min:0,undefStack:!0},null,null,{id:"endchar",min:0,stackClearing:!0},null,null,null,{id:"hstemhm",min:2,stackClearing:!0,stem:!0},{id:"hintmask",min:0,stackClearing:!0},{id:"cntrmask",min:0,stackClearing:!0},{id:"rmoveto",min:2,stackClearing:!0},{id:"hmoveto",min:1,stackClearing:!0},{id:"vstemhm",min:2,stackClearing:!0,stem:!0},{id:"rcurveline",min:8,resetStack:!0},{id:"rlinecurve",min:8,resetStack:!0},{id:"vvcurveto",min:4,resetStack:!0},{id:"hhcurveto",min:4,resetStack:!0},null,{id:"callgsubr",min:1,undefStack:!0},{id:"vhcurveto",min:4,resetStack:!0},{id:"hvcurveto",min:4,resetStack:!0}],l=[null,null,null,{id:"and",min:2,stackDelta:-1},{id:"or",min:2,stackDelta:-1},{id:"not",min:1,stackDelta:0},null,null,null,{id:"abs",min:1,stackDelta:0},{id:"add",min:2,stackDelta:-1,stackFn(e,t){e[t-2]=e[t-2]+e[t-1]}},{id:"sub",min:2,stackDelta:-1,stackFn(e,t){e[t-2]=e[t-2]-e[t-1]}},{id:"div",min:2,stackDelta:-1,stackFn(e,t){e[t-2]=e[t-2]/e[t-1]}},null,{id:"neg",min:1,stackDelta:0,stackFn(e,t){e[t-1]=-e[t-1]}},{id:"eq",min:2,stackDelta:-1},null,null,{id:"drop",min:1,stackDelta:-1},null,{id:"put",min:2,stackDelta:-2},{id:"get",min:1,stackDelta:0},{id:"ifelse",min:4,stackDelta:-3},{id:"random",min:0,stackDelta:1},{id:"mul",min:2,stackDelta:-1,stackFn(e,t){e[t-2]=e[t-2]*e[t-1]}},null,{id:"sqrt",min:1,stackDelta:0},{id:"dup",min:1,stackDelta:1},{id:"exch",min:2,stackDelta:0},{id:"index",min:2,stackDelta:0},{id:"roll",min:3,stackDelta:-2},null,null,null,{id:"hflex",min:7,resetStack:!0},{id:"flex",min:13,resetStack:!0},{id:"hflex1",min:9,resetStack:!0},{id:"flex1",min:11,resetStack:!0}];t.CFFParser=class CFFParser{constructor(e,t,a){this.bytes=e.getBytes();this.properties=t;this.seacAnalysisEnabled=!!a}parse(){const e=this.properties,t=new CFF;this.cff=t;const a=this.parseHeader(),r=this.parseIndex(a.endPos),i=this.parseIndex(r.endPos),n=this.parseIndex(i.endPos),s=this.parseIndex(n.endPos),o=this.parseDict(i.obj.get(0)),c=this.createDict(CFFTopDict,o,t.strings);t.header=a.obj;t.names=this.parseNameIndex(r.obj);t.strings=this.parseStringIndex(n.obj);t.topDict=c;t.globalSubrIndex=s.obj;this.parsePrivateDict(t.topDict);t.isCIDFont=c.hasName("ROS");const l=c.getByName("CharStrings"),h=this.parseIndex(l).obj,u=c.getByName("FontMatrix");u&&(e.fontMatrix=u);const d=c.getByName("FontBBox");if(d){e.ascent=Math.max(d[3],d[1]);e.descent=Math.min(d[1],d[3]);e.ascentScaled=!0}let f,g;if(t.isCIDFont){const e=this.parseIndex(c.getByName("FDArray")).obj;for(let a=0,r=e.count;a=t)throw new r.FormatError("Invalid CFF header");if(0!==a){(0,r.info)("cff data is shifted");e=e.subarray(a);this.bytes=e}const i=e[0],n=e[1],s=e[2],o=e[3];return{obj:new CFFHeader(i,n,s,o),endPos:s}}parseDict(e){let t=0;function parseOperand(){let a=e[t++];if(30===a)return function parseFloatOperand(){let a="";const r=15,i=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"],n=e.length;for(;t>4,o=15&n;if(s===r)break;a+=i[s];if(o===r)break;a+=i[o]}return parseFloat(a)}();if(28===a){a=e[t++];a=(a<<24|e[t++]<<16)>>16;return a}if(29===a){a=e[t++];a=a<<8|e[t++];a=a<<8|e[t++];a=a<<8|e[t++];return a}if(a>=32&&a<=246)return a-139;if(a>=247&&a<=250)return 256*(a-247)+e[t++]+108;if(a>=251&&a<=254)return-256*(a-251)-e[t++]-108;(0,r.warn)('CFFParser_parseDict: "'+a+'" is a reserved command.');return NaN}let a=[];const i=[];t=0;const n=e.length;for(;t10)return!1;let n=e.stackSize;const s=e.stack;let o=t.length;for(let h=0;h>16;h+=2;n++}else if(14===u){if(n>=4){n-=4;if(this.seacAnalysisEnabled){e.seac=s.slice(n,n+4);return!1}}d=c[u]}else if(u>=32&&u<=246){s[n]=u-139;n++}else if(u>=247&&u<=254){s[n]=u<251?(u-247<<8)+t[h]+108:-(u-251<<8)-t[h]-108;h++;n++}else if(255===u){s[n]=(t[h]<<24|t[h+1]<<16|t[h+2]<<8|t[h+3])/65536;h+=4;n++}else if(19===u||20===u){e.hints+=n>>1;h+=e.hints+7>>3;n%=2;d=c[u]}else{if(10===u||29===u){let t;t=10===u?a:i;if(!t){d=c[u];(0,r.warn)("Missing subrsIndex for "+d.id);return!1}let o=32768;t.count<1240?o=107:t.count<33900&&(o=1131);const l=s[--n]+o;if(l<0||l>=t.count||isNaN(l)){d=c[u];(0,r.warn)("Out of bounds subrIndex for "+d.id);return!1}e.stackSize=n;e.callDepth++;if(!this.parseCharString(e,t.get(l),a,i))return!1;e.callDepth--;n=e.stackSize;continue}if(11===u){e.stackSize=n;return!0}if(0===u&&h===t.length){t[h-1]=14;d=c[14]}else{if(9===u){t.copyWithin(h-1,h,-1);h-=1;o-=1;continue}d=c[u]}}if(d){if(d.stem){e.hints+=n>>1;if(3===u||23===u)e.hasVStems=!0;else if(e.hasVStems&&(1===u||18===u)){(0,r.warn)("CFF stem hints are in wrong order");t[h-1]=1===u?3:23}}if("min"in d&&!e.undefStack&&n=2&&d.stem?n%=2:n>1&&(0,r.warn)("Found too many parameters for stack-clearing command");n>0&&(e.width=s[n-1])}if("stackDelta"in d){"stackFn"in d&&d.stackFn(s,n);n+=d.stackDelta}else if(d.stackClearing)n=0;else if(d.resetStack){n=0;e.undefStack=!1}else if(d.undefStack){n=0;e.undefStack=!0;e.firstStackClearing=!1}}}o=n.length){(0,r.warn)("Invalid fd index for glyph index.");d=!1}if(d){g=n[e].privateDict;f=g.subrsIndex}}else t&&(f=t);d&&(d=this.parseCharString(u,l,f,a));if(null!==u.width){const e=g.getByName("nominalWidthX");c[h]=e+u.width}else{const e=g.getByName("defaultWidthX");c[h]=e}null!==u.seac&&(o[h]=u.seac);d||e.set(h,new Uint8Array([14]))}return{charStrings:e,seacs:o,widths:c}}emptyPrivateDictionary(e){const t=this.createDict(CFFPrivateDict,[],e.strings);e.setByKey(18,[0,0]);e.privateDict=t}parsePrivateDict(e){if(!e.hasName("Private")){this.emptyPrivateDictionary(e);return}const t=e.getByName("Private");if(!Array.isArray(t)||2!==t.length){e.removeByName("Private");return}const a=t[0],r=t[1];if(0===a||r>=this.bytes.length){this.emptyPrivateDictionary(e);return}const i=r+a,n=this.bytes.subarray(r,i),s=this.parseDict(n),o=this.createDict(CFFPrivateDict,s,e.strings);e.privateDict=o;0===o.getByName("ExpansionFactor")&&o.setByName("ExpansionFactor",.06);if(!o.getByName("Subrs"))return;const c=o.getByName("Subrs"),l=r+c;if(0===c||l>=this.bytes.length){this.emptyPrivateDictionary(e);return}const h=this.parseIndex(l);o.subrsIndex=h.obj}parseCharsets(e,t,a,n){if(0===e)return new CFFCharset(!0,d.ISO_ADOBE,i.ISOAdobeCharset);if(1===e)return new CFFCharset(!0,d.EXPERT,i.ExpertCharset);if(2===e)return new CFFCharset(!0,d.EXPERT_SUBSET,i.ExpertSubsetCharset);const s=this.bytes,o=e,c=s[e++],l=[n?0:".notdef"];let h,u,f;t-=1;switch(c){case 0:for(f=0;f=65535){(0,r.warn)("Not enough space in charstrings to duplicate first glyph.");return}const e=this.charStrings.get(0);this.charStrings.add(e);this.isCIDFont&&this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0])}hasGlyphId(e){if(e<0||e>=this.charStrings.count)return!1;return this.charStrings.get(e).length>0}}t.CFF=CFF;class CFFHeader{constructor(e,t,a,r){this.major=e;this.minor=t;this.hdrSize=a;this.offSize=r}}t.CFFHeader=CFFHeader;class CFFStrings{constructor(){this.strings=[]}get(e){return e>=0&&e<=390?s[e]:e-o<=this.strings.length?this.strings[e-o]:s[0]}getSID(e){let t=s.indexOf(e);if(-1!==t)return t;t=this.strings.indexOf(e);return-1!==t?t+o:-1}add(e){this.strings.push(e)}get count(){return this.strings.length}}t.CFFStrings=CFFStrings;class CFFIndex{constructor(){this.objects=[];this.length=0}add(e){this.length+=e.length;this.objects.push(e)}set(e,t){this.length+=t.length-this.objects[e].length;this.objects[e]=t}get(e){return this.objects[e]}get count(){return this.objects.length}}t.CFFIndex=CFFIndex;class CFFDict{constructor(e,t){this.keyToNameMap=e.keyToNameMap;this.nameToKeyMap=e.nameToKeyMap;this.defaults=e.defaults;this.types=e.types;this.opcodes=e.opcodes;this.order=e.order;this.strings=t;this.values=Object.create(null)}setByKey(e,t){if(!(e in this.keyToNameMap))return!1;if(0===t.length)return!0;for(const a of t)if(isNaN(a)){(0,r.warn)(`Invalid CFFDict value: "${t}" for key "${e}".`);return!0}const a=this.types[e];"num"!==a&&"sid"!==a&&"offset"!==a||(t=t[0]);this.values[e]=t;return!0}setByName(e,t){if(!(e in this.nameToKeyMap))throw new r.FormatError(`Invalid dictionary name "${e}"`);this.values[this.nameToKeyMap[e]]=t}hasName(e){return this.nameToKeyMap[e]in this.values}getByName(e){if(!(e in this.nameToKeyMap))throw new r.FormatError(`Invalid dictionary name ${e}"`);const t=this.nameToKeyMap[e];return t in this.values?this.values[t]:this.defaults[t]}removeByName(e){delete this.values[this.nameToKeyMap[e]]}static createTables(e){const t={keyToNameMap:{},nameToKeyMap:{},defaults:{},types:{},opcodes:{},order:[]};for(const a of e){const e=Array.isArray(a[0])?(a[0][0]<<8)+a[0][1]:a[0];t.keyToNameMap[e]=a[1];t.nameToKeyMap[a[1]]=e;t.types[e]=a[2];t.defaults[e]=a[3];t.opcodes[e]=Array.isArray(a[0])?a[0]:[a[0]];t.order.push(e)}return t}}const h=[[[12,30],"ROS",["sid","sid","num"],null],[[12,20],"SyntheticBase","num",null],[0,"version","sid",null],[1,"Notice","sid",null],[[12,0],"Copyright","sid",null],[2,"FullName","sid",null],[3,"FamilyName","sid",null],[4,"Weight","sid",null],[[12,1],"isFixedPitch","num",0],[[12,2],"ItalicAngle","num",0],[[12,3],"UnderlinePosition","num",-100],[[12,4],"UnderlineThickness","num",50],[[12,5],"PaintType","num",0],[[12,6],"CharstringType","num",2],[[12,7],"FontMatrix",["num","num","num","num","num","num"],[.001,0,0,.001,0,0]],[13,"UniqueID","num",null],[5,"FontBBox",["num","num","num","num"],[0,0,0,0]],[[12,8],"StrokeWidth","num",0],[14,"XUID","array",null],[15,"charset","offset",0],[16,"Encoding","offset",0],[17,"CharStrings","offset",0],[18,"Private",["offset","offset"],null],[[12,21],"PostScript","sid",null],[[12,22],"BaseFontName","sid",null],[[12,23],"BaseFontBlend","delta",null],[[12,31],"CIDFontVersion","num",0],[[12,32],"CIDFontRevision","num",0],[[12,33],"CIDFontType","num",0],[[12,34],"CIDCount","num",8720],[[12,35],"UIDBase","num",null],[[12,37],"FDSelect","offset",null],[[12,36],"FDArray","offset",null],[[12,38],"FontName","sid",null]];class CFFTopDict extends CFFDict{static get tables(){return(0,r.shadow)(this,"tables",this.createTables(h))}constructor(e){super(CFFTopDict.tables,e);this.privateDict=null}}t.CFFTopDict=CFFTopDict;const u=[[6,"BlueValues","delta",null],[7,"OtherBlues","delta",null],[8,"FamilyBlues","delta",null],[9,"FamilyOtherBlues","delta",null],[[12,9],"BlueScale","num",.039625],[[12,10],"BlueShift","num",7],[[12,11],"BlueFuzz","num",1],[10,"StdHW","num",null],[11,"StdVW","num",null],[[12,12],"StemSnapH","delta",null],[[12,13],"StemSnapV","delta",null],[[12,14],"ForceBold","num",0],[[12,17],"LanguageGroup","num",0],[[12,18],"ExpansionFactor","num",.06],[[12,19],"initialRandomSeed","num",0],[20,"defaultWidthX","num",0],[21,"nominalWidthX","num",0],[19,"Subrs","offset",null]];class CFFPrivateDict extends CFFDict{static get tables(){return(0,r.shadow)(this,"tables",this.createTables(u))}constructor(e){super(CFFPrivateDict.tables,e);this.subrsIndex=null}}t.CFFPrivateDict=CFFPrivateDict;const d={ISO_ADOBE:0,EXPERT:1,EXPERT_SUBSET:2};class CFFCharset{constructor(e,t,a,r){this.predefined=e;this.format=t;this.charset=a;this.raw=r}}t.CFFCharset=CFFCharset;class CFFEncoding{constructor(e,t,a,r){this.predefined=e;this.format=t;this.encoding=a;this.raw=r}}class CFFFDSelect{constructor(e,t){this.format=e;this.fdSelect=t}getFDIndex(e){return e<0||e>=this.fdSelect.length?-1:this.fdSelect[e]}}t.CFFFDSelect=CFFFDSelect;class CFFOffsetTracker{constructor(){this.offsets=Object.create(null)}isTracking(e){return e in this.offsets}track(e,t){if(e in this.offsets)throw new r.FormatError(`Already tracking location of ${e}`);this.offsets[e]=t}offset(e){for(const t in this.offsets)this.offsets[t]+=e}setEntryLocation(e,t,a){if(!(e in this.offsets))throw new r.FormatError(`Not tracking location of ${e}`);const i=a.data,n=this.offsets[e];for(let e=0,a=t.length;e