dmd-to-pdf 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,61 @@
1
+ # Changelog
2
+
3
+ All notable changes to DMD will be documented in this file.
4
+
5
+ ## [0.1.4] - 2026-03-13
6
+
7
+ ### Added
8
+ - Runtime license validation system
9
+ - License API with domain validation for client licenses
10
+ - `DMD.setLicense()` for activating Pro features
11
+ - `DMD.getLicenseState()` for checking license status
12
+ - `DMD.isPro()` helper function
13
+ - 24-hour license validation caching
14
+ - CDN distribution at cdn.dmdlang.dev
15
+
16
+ ### Changed
17
+ - Switched from build-time to runtime Pro feature detection
18
+ - Single unified bundle for all users
19
+
20
+ ## [0.1.3] - 2026-03-10
21
+
22
+ ### Added
23
+ - Font CDN with 114 Google Fonts available
24
+ - Font preview in documentation
25
+ - Global styles support
26
+
27
+ ### Fixed
28
+ - Column content parsing for block elements
29
+
30
+ ## [0.1.2] - 2026-03-05
31
+
32
+ ### Added
33
+ - Custom font loading with `DMD.loadFonts()`
34
+ - Image preloading with `DMD.loadImages()`
35
+ - Watermark support
36
+ - Headers and footers
37
+
38
+ ### Changed
39
+ - Improved table rendering
40
+ - Better error messages
41
+
42
+ ## [0.1.1] - 2026-02-28
43
+
44
+ ### Added
45
+ - Basic table support
46
+ - List nesting
47
+ - Config block for document metadata
48
+ - Styles block for custom styling
49
+
50
+ ### Fixed
51
+ - Paragraph spacing issues
52
+ - Bold/italic rendering in nested contexts
53
+
54
+ ## [0.1.0] - 2026-02-20
55
+
56
+ ### Added
57
+ - Initial release
58
+ - Basic markdown parsing (headings, paragraphs, bold, italic)
59
+ - PDF generation via pdfmake
60
+ - Browser and Node.js support
61
+ - UMD bundle
package/DMD_API.md ADDED
@@ -0,0 +1,117 @@
1
+ # DMD Internal API Documentation
2
+
3
+ The DMD (Document Markdown) library exposes a simple and intuitive API for converting specialized markdown syntax into PDF documents. It relies internally on `pdfmake` and handles fonts, images, and configuration caching cleanly.
4
+
5
+ ## API Methods (Available on the `DMD` object)
6
+
7
+ ### `DMD.createPdf(source, format = 'blob')`
8
+ Parses and generates a PDF document from the given DMD source string.
9
+ - **Arguments**:
10
+ - `source` (String): The full DMD formatted markdown document string.
11
+ - `format` (String, Optional): The format to output. Values can be `'blob'` (default for browser), `'base64'`, `'dataUrl'`, or `'stream'` (Node.js only).
12
+ - **Returns**: A `Promise` resolving to the output format (`Blob` in browsers, `Buffer` in Node, or base64 String).
13
+
14
+ ### `DMD.extractConfig(source)`
15
+ A fast, lightweight extraction function to pull metadata and configs from the top of the DMD file without parsing the whole AST or generating the document.
16
+ - **Arguments**:
17
+ - `source` (String): The full DMD formatted markdown document string.
18
+ - **Returns**: An `Object` shaped like: `{ body, config, styles, watermark }`.
19
+
20
+ ### `DMD.loadImages(imageMap)`
21
+ Preloads images into the internal memory cache to be used across multiple `.createPdf()` executions, greatly improving performance for repeated image generation and avoiding duplicate URL requests.
22
+ - **Arguments**:
23
+ - `imageMap` (Object): A dictionary matching alias keys to image URLs or relative file paths (e.g. `{ logo: "https://example.com/logo.png" }`).
24
+ - **Returns**: A `Promise` resolving when all images are successfully fetched and base64 cached.
25
+
26
+ ### `DMD.clearImages()`
27
+ Clears the internal, preloaded image cache.
28
+
29
+ ### `DMD.loadFonts(fontMap)` (Pro Edition Only)
30
+ Preloads custom fonts definitions so that they can be invoked cleanly from a document's `:::styles` block.
31
+ - **Arguments**:
32
+ - `fontMap` (Object): A dictionary defining fonts and styles to local URLs, e.g.
33
+ `{ 'MyFont': { normal: 'url/font.ttf', bold: 'url/font-bold.ttf', italics: '...', bolditalics: '...' } }`.
34
+ - **Returns**: A `Promise` resolving when all fonts are prepared for insertion into the `pdfmake` VFS context.
35
+
36
+ ### `DMD.clearFonts()`
37
+ Clears all dynamically loaded custom fonts, excluding defaults like Roboto.
38
+
39
+ ### `DMD.configureLogger(options)`
40
+ Customizes logging for debugging purposes.
41
+ - **Arguments**:
42
+ - `options` (Object): Shaped `{ level: number|string, handler: function }`.
43
+
44
+ ### `DMD.getLogs()`
45
+ Retrieves all logged messages for debugging.
46
+ - **Returns**: An `Array` of log entries.
47
+
48
+ ---
49
+
50
+ ## Licensing API
51
+
52
+ DMD uses a runtime license validation system. Pro features require a valid license key obtained from [dmdlang.dev/pricing](https://dmdlang.dev/pricing).
53
+
54
+ ### `DMD.setLicense(key)`
55
+ Sets and validates a license key against the licensing API.
56
+ - **Arguments**:
57
+ - `key` (String): The license key (format: `DMD-XXXX-XXXX-XXXX-XXXX`).
58
+ - **Returns**: A `Promise` resolving to an object:
59
+ ```js
60
+ {
61
+ valid: boolean, // Whether the license is valid
62
+ tier: string, // 'free' or 'pro'
63
+ type: string|null, // 'server' or 'client'
64
+ error: string|null // Error message if invalid
65
+ }
66
+ ```
67
+ - **Example**:
68
+ ```js
69
+ const result = await DMD.setLicense('DMD-XXXX-XXXX-XXXX-XXXX');
70
+ if (result.valid) {
71
+ console.log('Pro features enabled!');
72
+ }
73
+ ```
74
+
75
+ ### `DMD.getLicenseState()`
76
+ Returns the current license state without making an API call.
77
+ - **Returns**: An `Object` with the current license information:
78
+ ```js
79
+ {
80
+ key: string|null, // The license key
81
+ valid: boolean, // Whether it's valid
82
+ tier: string, // 'free' or 'pro'
83
+ type: string|null, // 'server' or 'client'
84
+ checked: boolean, // Whether validation has occurred
85
+ checkedAt: number|null, // Timestamp of last check
86
+ error: string|null // Any error message
87
+ }
88
+ ```
89
+
90
+ ### `DMD.isPro()`
91
+ Quick check if Pro features are currently enabled.
92
+ - **Returns**: `boolean` - `true` if a valid Pro license is active.
93
+
94
+ ### `DMD.PRO_FEATURES`
95
+ A constant array listing all Pro-only features:
96
+ ```js
97
+ [
98
+ 'custom-fonts',
99
+ 'watermarks',
100
+ 'background-layers',
101
+ 'toc-bookmarks',
102
+ 'qr-codes',
103
+ 'block-styling'
104
+ ]
105
+ ```
106
+
107
+ **Note:** Block styling includes `::style-name` blocks, table styling via `::table:style`, list bullet/marker styling, column styling, and blockquote styling. Free edition supports inline styling with `[text]{::style}` syntax.
108
+
109
+ ### License Types
110
+
111
+ - **Server License** (`type: 'server'`): For Node.js/server-side use. No domain restriction. Validates against the API but allows graceful degradation if the API is unreachable.
112
+
113
+ - **Client License** (`type: 'client'`): For browser use. Requires domain validation - the license is tied to specific domains (supports wildcards like `*.example.com`).
114
+
115
+ ### Caching Behavior
116
+
117
+ License validation results are cached for 24 hours to minimize API calls. The cache key includes the domain for client licenses to ensure proper domain validation on each unique domain.
package/LICENSE ADDED
@@ -0,0 +1,158 @@
1
+ DMD (Document Markdown) Software License Agreement
2
+ Copyright (c) 2026-present JSA DESENVOLVIMENTO DE SOFTWARES LTDA. All rights reserved.
3
+
4
+ This Software License Agreement ("Agreement") is a legal agreement between you
5
+ ("Licensee") and JSA DESENVOLVIMENTO DE SOFTWARES LTDA ("Licensor") for the DMD software, including
6
+ all source code, compiled code, documentation, and associated files ("Software").
7
+
8
+ By installing, copying, or using the Software, you agree to be bound by the
9
+ terms of this Agreement. If you do not agree, do not install or use the Software.
10
+
11
+ ================================================================================
12
+ 1. DEFINITIONS
13
+ ================================================================================
14
+
15
+ "Free Features" means the basic functionality of the Software that operates
16
+ without a valid License Key, as documented at https://dmdlang.dev.
17
+
18
+ "Pro Features" means the advanced functionality of the Software that requires
19
+ a valid License Key to operate, as documented at https://dmdlang.dev.
20
+
21
+ "License Key" means a unique alphanumeric code provided by Licensor upon
22
+ purchase that enables Pro Features.
23
+
24
+ "Commercial Use" means any use of the Software intended for or directed toward
25
+ commercial advantage or monetary compensation.
26
+
27
+ ================================================================================
28
+ 2. GRANT OF LICENSE
29
+ ================================================================================
30
+
31
+ 2.1 FREE FEATURES LICENSE
32
+
33
+ Subject to the terms of this Agreement, Licensor grants Licensee a limited,
34
+ non-exclusive, non-transferable, revocable license to:
35
+
36
+ (a) Use the Free Features for personal, educational, or commercial purposes
37
+ (b) Integrate the Software into Licensee's applications
38
+ (c) Distribute applications that incorporate the Software's Free Features
39
+
40
+ 2.2 PRO FEATURES LICENSE
41
+
42
+ Use of Pro Features requires a valid License Key. Upon purchasing a License Key,
43
+ Licensor grants Licensee a limited, non-exclusive, non-transferable license to:
44
+
45
+ (a) Use the Pro Features according to the license type purchased:
46
+ - "Client License": For browser/client-side use on specified domains
47
+ - "Server License": For server-side use without domain restrictions
48
+ (b) Integrate the Pro Features into Licensee's applications
49
+ (c) Distribute applications that incorporate the Pro Features, provided the
50
+ License Key is not exposed to end users
51
+
52
+ ================================================================================
53
+ 3. RESTRICTIONS
54
+ ================================================================================
55
+
56
+ Licensee SHALL NOT:
57
+
58
+ (a) Reverse engineer, decompile, disassemble, or attempt to derive the source
59
+ code of the Software
60
+ (b) Modify, adapt, translate, or create derivative works based on the Software
61
+ (c) Remove, alter, or obscure any proprietary notices, labels, or marks on
62
+ the Software
63
+ (d) Redistribute, sublicense, rent, lease, or lend the Software as a
64
+ standalone product
65
+ (e) Share, publish, or expose License Keys to unauthorized parties
66
+ (f) Circumvent, disable, or interfere with any license validation, security
67
+ features, or access controls in the Software
68
+ (g) Use the Software to create a competing product or service
69
+ (h) Use Pro Features without a valid License Key
70
+ (i) Transfer a License Key to another party without written consent from
71
+ Licensor
72
+
73
+ ================================================================================
74
+ 4. INTELLECTUAL PROPERTY
75
+ ================================================================================
76
+
77
+ The Software is protected by copyright and other intellectual property laws.
78
+ Licensor retains all right, title, and interest in and to the Software,
79
+ including all copyrights, patents, trade secrets, trademarks, and other
80
+ intellectual property rights. This Agreement does not grant Licensee any
81
+ rights to Licensor's trademarks or service marks.
82
+
83
+ ================================================================================
84
+ 5. LICENSE KEY TERMS
85
+ ================================================================================
86
+
87
+ 5.1 License Keys are personal to the Licensee and may not be shared or transferred.
88
+
89
+ 5.2 License Keys may be revoked if Licensee violates this Agreement.
90
+
91
+ 5.3 License Keys may have expiration dates. Continued use of Pro Features after
92
+ expiration requires renewal.
93
+
94
+ 5.4 Licensor reserves the right to validate License Keys through online
95
+ verification systems.
96
+
97
+ ================================================================================
98
+ 6. DISCLAIMER OF WARRANTIES
99
+ ================================================================================
100
+
101
+ THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
102
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
103
+ FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. LICENSOR DOES NOT
104
+ WARRANT THAT THE SOFTWARE WILL BE ERROR-FREE OR UNINTERRUPTED.
105
+
106
+ ================================================================================
107
+ 7. LIMITATION OF LIABILITY
108
+ ================================================================================
109
+
110
+ IN NO EVENT SHALL LICENSOR BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
111
+ CONSEQUENTIAL, OR PUNITIVE DAMAGES, INCLUDING BUT NOT LIMITED TO LOSS OF
112
+ PROFITS, DATA, OR USE, ARISING OUT OF OR RELATED TO THIS AGREEMENT OR THE
113
+ SOFTWARE, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
114
+
115
+ LICENSOR'S TOTAL LIABILITY UNDER THIS AGREEMENT SHALL NOT EXCEED THE AMOUNT
116
+ PAID BY LICENSEE FOR THE LICENSE KEY, IF ANY.
117
+
118
+ ================================================================================
119
+ 8. TERMINATION
120
+ ================================================================================
121
+
122
+ 8.1 This Agreement is effective until terminated.
123
+
124
+ 8.2 Licensor may terminate this Agreement immediately if Licensee breaches any
125
+ term of this Agreement.
126
+
127
+ 8.3 Upon termination, Licensee must cease all use of the Software and destroy
128
+ all copies in Licensee's possession.
129
+
130
+ 8.4 Sections 3, 4, 6, 7, and 9 shall survive termination.
131
+
132
+ ================================================================================
133
+ 9. GENERAL
134
+ ================================================================================
135
+
136
+ 9.1 This Agreement constitutes the entire agreement between the parties
137
+ concerning the Software.
138
+
139
+ 9.2 This Agreement shall be governed by the laws of Brazil, without regard to
140
+ its conflict of laws principles.
141
+
142
+ 9.3 If any provision of this Agreement is held to be unenforceable, the
143
+ remaining provisions shall continue in full force and effect.
144
+
145
+ 9.4 Licensor's failure to enforce any right or provision shall not constitute
146
+ a waiver of such right or provision.
147
+
148
+ 9.5 Licensor reserves the right to modify this Agreement at any time. Continued
149
+ use of the Software after modifications constitutes acceptance of the
150
+ modified terms.
151
+
152
+ ================================================================================
153
+ CONTACT
154
+ ================================================================================
155
+
156
+ For licensing inquiries: jizreel_alencar@hotmail.com
157
+ Website: https://dmdlang.dev
158
+
package/README.md ADDED
@@ -0,0 +1,167 @@
1
+ # DMD - Document Markdown
2
+
3
+ A specialized markdown language for generating professional PDF documents. DMD extends markdown with powerful features for document layout, styling, and formatting.
4
+
5
+ [![npm version](https://img.shields.io/npm/v/dmd-to-pdf.svg)](https://www.npmjs.com/package/dmd-to-pdf)
6
+ [![License](https://img.shields.io/badge/license-Proprietary-blue.svg)](LICENSE)
7
+
8
+ ## Installation
9
+
10
+ ```bash
11
+ npm install dmd-to-pdf pdfmake
12
+ ```
13
+
14
+ **CDN (Browser):**
15
+ ```html
16
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.3.0-beta.6/pdfmake.min.js"></script>
17
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.3.0-beta.6/vfs_fonts.min.js"></script>
18
+ <script src="https://cdn.dmdlang.dev/dmd.umd.js"></script>
19
+ ```
20
+
21
+ ## Quick Start
22
+
23
+ ```javascript
24
+ const DMD = require('dmd-to-pdf');
25
+
26
+ const document = `
27
+ :::config
28
+ title: My Document
29
+ author: John Doe
30
+ :::
31
+
32
+ # Hello World
33
+
34
+ This is a **DMD** document with *rich formatting*.
35
+
36
+ ## Features
37
+
38
+ - Simple markdown syntax
39
+ - Professional PDF output
40
+ - Tables, lists, and more
41
+ `;
42
+
43
+ // Generate PDF
44
+ const pdfBlob = await DMD.createPdf(document);
45
+ ```
46
+
47
+ ## Free vs Pro Features
48
+
49
+ | Feature | Free | Pro |
50
+ |---------|:----:|:---:|
51
+ | Basic markdown (headings, text, lists) | ✓ | ✓ |
52
+ | Document config (title, margins, page size) | ✓ | ✓ |
53
+ | Basic tables | ✓ | ✓ |
54
+ | Multi-column layouts | ✓ | ✓ |
55
+ | Images & SVG | ✓ | ✓ |
56
+ | Links | ✓ | ✓ |
57
+ | Headers & footers | ✓ | ✓ |
58
+ | Inline styling `[text]{::style}` | ✓ | ✓ |
59
+ | **Custom fonts** (non-Roboto) | - | ✓ |
60
+ | **Watermarks** | - | ✓ |
61
+ | **Background layers** | - | ✓ |
62
+ | **Table of contents & bookmarks** | - | ✓ |
63
+ | **QR codes** | - | ✓ |
64
+ | **Block styling** `::style-name` | - | ✓ |
65
+ | **Table/list/column styling** | - | ✓ |
66
+
67
+ ### Enabling Pro Features
68
+
69
+ ```javascript
70
+ // Set your license key to enable Pro features
71
+ const result = await DMD.setLicense('DMD-XXXX-XXXX-XXXX-XXXX');
72
+
73
+ if (result.valid) {
74
+ console.log('Pro features enabled!');
75
+ }
76
+ ```
77
+
78
+ Get a license at [dmdlang.dev/pricing](https://dmdlang.dev/pricing)
79
+
80
+ ## API Reference
81
+
82
+ ### `DMD.createPdf(source, format?)`
83
+ Generate a PDF from DMD source.
84
+ - `source` - DMD formatted string
85
+ - `format` - Output format: `'blob'` (default), `'base64'`, `'dataUrl'`, `'buffer'` (Node.js)
86
+
87
+ ### `DMD.extractConfig(source)`
88
+ Extract metadata and config without generating PDF.
89
+
90
+ ### `DMD.loadImages(imageMap)`
91
+ Preload images for better performance.
92
+ ```javascript
93
+ await DMD.loadImages({
94
+ logo: 'https://example.com/logo.png',
95
+ banner: '/images/banner.jpg'
96
+ });
97
+ ```
98
+
99
+ ### `DMD.loadFonts(fontMap)`
100
+ Load custom fonts. **(Pro)**
101
+ ```javascript
102
+ await DMD.loadFonts({
103
+ 'MyFont': {
104
+ normal: 'https://example.com/font.ttf',
105
+ bold: 'https://example.com/font-bold.ttf'
106
+ }
107
+ });
108
+ ```
109
+
110
+ ### `DMD.setLicense(key)`
111
+ Set and validate a license key.
112
+
113
+ ### `DMD.isPro()`
114
+ Check if Pro features are enabled.
115
+
116
+ See full API documentation at [DMD_API.md](DMD_API.md)
117
+
118
+ ## DMD Syntax
119
+
120
+ ```markdown
121
+ :::config
122
+ title: Document Title
123
+ author: Author Name
124
+ pageSize: A4
125
+ margins: 40
126
+ :::
127
+
128
+ :::styles
129
+ heading1:
130
+ fontSize: 24
131
+ bold: true
132
+ color: #333333
133
+ :::
134
+
135
+ # Main Heading
136
+
137
+ Regular paragraph with **bold** and *italic* text.
138
+
139
+ ## Lists
140
+
141
+ - Item one
142
+ - Item two
143
+ - Nested item
144
+
145
+ ## Tables
146
+
147
+ | Name | Age | City |
148
+ |-------|-----|----------|
149
+ | Alice | 30 | New York |
150
+ | Bob | 25 | London |
151
+ ```
152
+
153
+ ## Documentation
154
+
155
+ - **Website**: [dmdlang.dev](https://dmdlang.dev)
156
+ - **Playground**: [dmdlang.dev/playground](https://dmdlang.dev/playground)
157
+ - **API Reference**: [DMD_API.md](DMD_API.md)
158
+ - **LLM Context**: [dmdlang.dev/llms.txt](https://dmdlang.dev/llms.txt)
159
+
160
+ ## License
161
+
162
+ This software is proprietary. See [LICENSE](LICENSE) for details.
163
+
164
+ - **Free Features**: Available for personal and commercial use
165
+ - **Pro Features**: Require a valid license key
166
+
167
+ Copyright (c) 2026-present JSA DESENVOLVIMENTO DE SOFTWARES LTDA. All rights reserved.
@@ -0,0 +1 @@
1
+ !function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("fs"),require("path"),require("pdfmake")):"function"==typeof define&&define.amd?define(["fs","path","pdfmake"],n):(t="undefined"!=typeof globalThis?globalThis:t||self).DMD=n(t.fs,t.path,t.pdfmake)}(this,function(t,n,e){"use strict";function r(t,n){t-=351;const e=o();let s=e[t];if(void 0===r.iQOOHq){r.YKMXQx=function(t){let n="",e="";for(let e,r,o=0,s=0;r=t.charAt(s++);~r&&(e=o%4?64*e+r:r,o++%4)?n+=String.fromCharCode(255&e>>(-2*o&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let t=0,r=n.length;t<r;t++)e+="%"+("00"+n.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(e)},r.FFpPFu={},r.iQOOHq=!0}const i=t+e[0],u=r.FFpPFu[i];return u?s=u:(s=r.YKMXQx(s),r.FFpPFu[i]=s),s}function o(){const t=["Aw5KzxHpzG","A2v5","EhfYug8","DMfSDwu","ngzPAwzuvW","sw1SCLK","wLrNvKS","zw5KC1DPDgG","mta4mJK4ohnMBe5hBW","mZaWuKLqy0zv","C3rHCNrZv2L0Aa","mJfLtNvtzuy","mtC5nJeZnNL1s3b4tG","BgvUz3rO","mJe5nZe5n0rSBvLqsW","DhjPBq","BwfW","nJyYmJj3CKfdDgO","zMfSC2u","mtvhDKX0qKC","mtfItwT6BMu","C2XPy2u","mJi2mdu0qxriyKLo","mJe1mhrzCLzsra","mtC5ndy1swfrteLs","C3vIC3rYAw5N","mJCWntqWnJzzyLnTCvO","C3bSAxq"];return(o=function(){return t})()}function s(t){const n=r,e=function(t,n){return t<n},o=function(t,n){return t(n)},s={},u=t[n(373)]("\n");let c=null,a=null;for(let t=0;e(t,u[n(359)]);t++){const e=u[t];if(!e[n(361)]()||e[n(361)]()[n(356)]("#"))continue;const r=e.match(/^(\s*)/);if((r?r[1][n(359)]:0)>=2&&c){!a&&(a={},s[c]=a);const t=o(i,e[n(361)]());t&&(a[t[n(375)]]=t[n(377)]);continue}const f=o(i,e[n(361)]());f&&(null===f[n(377)]?(c=f[n(375)],a=null):(s[f[n(375)]]=f[n(377)],c=f[n(375)],a=null))}return s}function i(t){const n=r,e={uEFLQ:function(t,n){return t+n},ZTgVK:function(t,n){return t(n)}},o=t[n(374)](":");if(-1===o)return null;const s=t[n(371)](0,o).trim(),i=t.substring(e.uEFLQ(o,1))[n(361)]();return s?i?{key:s,value:e[n(352)](u,i)}:{key:s,value:null}:null}function u(t){const n=r,e={DbGNb:"true",xqrPo:n(364),ImlrY:function(t,n){return t===n},oMCUU:"null",YTNwE:function(t,n){return t(n)},Gikkz:function(t,n){return t!==n}};if(t[n(356)]('"')&&t[n(353)]('"')||t[n(356)]("'")&&t.endsWith("'"))return t[n(367)](1,-1);if(t===e.DbGNb)return!0;if(t===e[n(376)])return!1;if(e[n(351)](t,e.oMCUU)||"~"===t)return null;if(t[n(356)]("[")&&t[n(353)]("]"))return function(t){const n=r;return t.trim()?t[n(373)](",")[n(362)](t=>u(t.trim())):[]}(t[n(367)](1,-1));if(t[n(356)]("{")&&t.endsWith("}"))return e.YTNwE(c,t.slice(1,-1));const o=Number(t);return!isNaN(o)&&e.Gikkz(t,"")?o:t}function c(t){const n=r,e=function(t,n){return t(n)},o=function(t,n){return t!==n},s={};if(!t.trim())return s;const u=t.split(",");for(const t of u){const r=e(i,t.trim());r&&o(r[n(377)],null)&&(s[r[n(375)]]=r[n(377)])}return s}function a(){const t=["nZaZmdrlALDzr2y","ndm0mJa3owHQweXuzG","ogDgsfbcDq","otK3ntGXDuvIDw9j","mtm2mdeXmfvUufPJBG","mtCYmJbtDMjpEha","ndy5otzUD2TzCMK","ota2mZD4qNrdr3C"];return(a=function(){return t})()}function f(t,n){t-=221;const e=a();let r=e[t];if(void 0===f.ovKcwk){f.iSdZBQ=function(t){let n="",e="";for(let e,r,o=0,s=0;r=t.charAt(s++);~r&&(e=o%4?64*e+r:r,o++%4)?n+=String.fromCharCode(255&e>>(-2*o&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let t=0,r=n.length;t<r;t++)e+="%"+("00"+n.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(e)},f.kXtoin={},f.ovKcwk=!0}const o=t+e[0],s=f.kXtoin[o];return s?r=s:(r=f.iSdZBQ(r),f.kXtoin[o]=r),r}!function(t){const n=r,e=t();for(;;)try{if(818956===parseInt(n(366))/1*(parseInt(n(368))/2)+-parseInt(n(360))/3*(parseInt(n(378))/4)+parseInt(n(365))/5*(parseInt(n(354))/6)+-parseInt(n(357))/7*(-parseInt(n(358))/8)+-parseInt(n(363))/9*(-parseInt(n(369))/10)+-parseInt(n(370))/11*(parseInt(n(355))/12)+-parseInt(n(372))/13)break;e.push(e.shift())}catch(t){e.push(e.shift())}}(o),function(t){const n=f,e=t();for(;;)try{if(195179===parseInt(n(227))/1+parseInt(n(228))/2+-parseInt(n(223))/3+parseInt(n(226))/4+-parseInt(n(225))/5+-parseInt(n(224))/6+parseInt(n(221))/7*(parseInt(n(222))/8))break;e.push(e.shift())}catch(t){e.push(e.shift())}}(a);const l={configBlock:/^(:::(\w[\w-]*)\n)([\s\S]*?)(\n:::[ \t]*(?:\n|$))/,contentBlockOpen:/^::(\w[\w-]*)(?::(\w[\w-]*))?\s*\n/,contentBlockClose:/^::[ \t]*(?:\n|$)/,heading:/^(#{1,3}) +([^\n]+?)(?:\n|$)/,pageBreak:/^===[ \t]*(?:\n|$)/,hr:/^---[ \t]*(?:\n|$)/,fences:/^```([^\n]*)\n([\s\S]*?)```[ \t]*(?:\n|$)/,blockquote:/^(?:> ?[^\n]*(?:\n|$))+/,listUnordered:/^( *)([-]) [^\n]+(?:\n(?!\1[-] |\n)[^\n]+)*/,listOrderedNumeric:/^( *)(\d{1,9})\. [^\n]+(?:\n(?!\1\d{1,9}\. |\n)[^\n]+)*/,listOrderedAlpha:/^( *)([a-z])\. [^\n]+(?:\n(?!\1[a-z]\. |\n)[^\n]+)*/,emptyParagraph:/^(\++)[ \t]*(?:\n|$)/,newline:/^(?:[ \t]*\n)+/,paragraph:/^([^\n]+(?:\n(?!:::|\:\:|#{1,3} |===|---[ \t]*(?=\n|$)|\++[ \t]*(?=\n|$)|```|> |[-] |\d{1,9}\. |[a-z]\. )[^\n]+)*)/},g={escape:/^\\([\\`*_{}\[\]()#+\-.!|~^:>])/,strong:/^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\*([^\s*][\s\S]*?[^\s*]|[^\s*])\*/,underline:/^__([^\n_]+?)__/,strikethrough:/^--([^\n-]+?)--/,subscript:/^~([^\n~]+?)~/,superscript:/^\^([^\n^]+?)\^/,codeSpan:/^`([^`\n]+?)`/,lineBreak:/^\\n/,bracket:/^\[([^\]]*)\]\{([^}]+)\}/,text:/^[^\\\n*_`~^\[\-]+|^[-](?!-)|^[_](?!_)/},d=/\r\n|\r/g,h=v;function v(t,n){t-=336;const e=b();let r=e[t];if(void 0===v.ajAFtb){v.pCYLAT=function(t){let n="",e="";for(let e,r,o=0,s=0;r=t.charAt(s++);~r&&(e=o%4?64*e+r:r,o++%4)?n+=String.fromCharCode(255&e>>(-2*o&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let t=0,r=n.length;t<r;t++)e+="%"+("00"+n.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(e)},v.aJNBTo={},v.ajAFtb=!0}const o=t+e[0],s=v.aJNBTo[o];return s?r=s:(r=v.pCYLAT(r),v.aJNBTo[o]=r),r}!function(t){const n=v,e=t();for(;;)try{if(547490===-parseInt(n(352))/1*(-parseInt(n(340))/2)+parseInt(n(347))/3*(-parseInt(n(346))/4)+-parseInt(n(357))/5*(-parseInt(n(349))/6)+-parseInt(n(354))/7+-parseInt(n(360))/8*(-parseInt(n(348))/9)+-parseInt(n(339))/10*(parseInt(n(336))/11)+-parseInt(n(355))/12*(-parseInt(n(356))/13))break;e.push(e.shift())}catch(t){e.push(e.shift())}}(b);const y=h(350),w="paragraph",m="hr",p=h(344),z=h(341),C=h(338),B="list";function b(){const t=["nte2oty4zgLhBKfL","C3vIC2nYAxb0","mta1mti3Bu9prgzl","C3rYB25N","yMXVy2TXDw90zq","otCWrenxvgDV","mKHLrwDssa","y29KzujSB2nR","C3bHy2u","zxnJyxbL","CgfNzujYzwfR","CxjdB2rL","mJeYmdiYohjwvejXtW","m3D3CxHbAG","mZzyyLP6Egm","nMLQuwLpqG","AgvHzgLUzW","y29UDgvUDejSB2nR","otuXodC1D1HYsMPQ","Dw5KzxjSAw5L","mZmXmtaZnxb5u1nxsa","mZe0nZzhEgPSD1a","mZKXm3buzwPesq","mJm4odq5nvbjzuX2wq","DgfIBgu","C3rYAwTLDgHYB3vNAa"];return(b=function(){return t})()}const D=h(358),x=h(351),A=h(342),L="emptyParagraph",M="text",q=h(337),I="em",j=h(353),S=h(359),k=h(361),Y="superscript",N="codeSpan",W="link",K="image",H=h(345),Z="toc",G="styledText",P=h(343),U="lineBreak";var O=Object.freeze({__proto__:null,BLOCKQUOTE:C,CODE_BLOCK:z,CODE_SPAN:N,COLUMN:"column",CONTENT_BLOCK:x,EM:I,EMPTY_PARAGRAPH:L,ESCAPE:P,HEADING:y,HR:m,IMAGE:K,LINE_BREAK:U,LINK:W,LIST:B,LIST_ITEM:"listItem",PAGE_BREAK:p,PARAGRAPH:w,QR_CODE:H,SPACE:A,STRIKETHROUGH:S,STRONG:q,STYLED_TEXT:G,SUBSCRIPT:k,SUPERSCRIPT:Y,TABLE:D,TEXT:M,TOC:Z,UNDERLINE:j});function X(t){const n=E,e={yBsJC:function(t,n){return t(n)},ECFUg:function(t,n){return t(n)},PYtIl:function(t,n){return t!==n},AAayH:function(t,n){return t+n},fomcl:function(t,n){return t(n)},qHcjV:function(t,n){return t===n},bLTgA:function(t,n){return t>n}};t=t.replace(d,"\n");const r=[];for(;t;){let o;if(o=l.pageBreak[n(396)](t))t=t.substring(o[0].length),r[n(413)]({type:p,raw:o[0]});else if(o=l.hr.exec(t))t=t.substring(o[0].length),r.push({type:m,raw:o[0]});else if(o=l[n(414)].exec(t))t=t.substring(o[0].length),r[n(413)]({type:O[n(395)],raw:o[0],depth:o[1][n(399)],text:o[2][n(409)](),tokens:[]});else if(o=l[n(418)].exec(t))t=t.substring(o[0][n(399)]),r[n(413)]({type:O[n(389)],raw:o[0],lang:o[1].trim()||null,text:o[2]});else{if(o=l[n(372)].exec(t)){const s=o[1],i=o[2]||null,u=t.substring(o[0][n(399)]),c=e.ECFUg(V,u);if(e[n(358)](c,-1)){const a=u.substring(0,c),f=u.substring(c).match(l[n(367)]),g=f?f[0].length:3,d=e[n(373)](o[0][n(399)],c)+g;t=t.substring(d);const h=F(s),v={type:h,raw:t.substring(0,d),name:s,style:i,innerContent:a.trim(),tokens:[]};h===O[n(370)]?v[n(402)]=_(a):h===O[n(360)]?v[n(408)]=e.ECFUg(Q,a)[n(363)](t=>({text:t,tokens:e.yBsJC(X,t)})):v[n(390)]=X(a[n(409)]()),r[n(413)](v);continue}}if(o=l.blockquote.exec(t)){t=t.substring(o[0][n(399)]);const s=o[0][n(398)](/^> ?/gm,"");r[n(413)]({type:O[n(381)],raw:o[0],text:s,tokens:e.fomcl(X,s)});continue}{const o=e[n(365)](J,t);if(o){t=t[n(400)](o[n(356)].length),r[n(413)](o);continue}}if(o=l.emptyParagraph[n(396)](t)){t=t.substring(o[0][n(399)]);const s=o[1][n(399)];for(let t=0;t<s;t++)r.push({type:O[n(371)],raw:e[n(404)](t,0)?o[0]:"+"});continue}if(o=l[n(403)].exec(t)){t=t.substring(o[0].length);(o[0].match(/\n/g)||[]).length>=3?r.push({type:L,raw:o[0]}):e[n(359)](o[0].length,1)&&r[n(413)]({type:O[n(415)],raw:o[0]});continue}if(o=l[n(368)].exec(t))t=t.substring(o[0].length),r.push({type:w,raw:o[0],text:o[1],tokens:[]});else if(t){const e=t[n(380)]("\n")[0];t=t.substring(e.length+1),r[n(413)]({type:O[n(417)],raw:e+"\n",text:e,tokens:[]})}}}return r}function J(t){const n=E,e={SdhVl:function(t,n){return t(n)},xpGwF:n(375),Uzkut:function(t,n){return t===n},XBJdV:function(t,n,e){return t(n,e)},ywfqo:function(t,n){return t>n},nHAtf:function(t,n){return t+n},OQxuL:function(t,n,e){return t(n,e)}},r=/^([ \t]*)- (.+)/.exec(t),o=/^([ \t]*)(\d{1,9})\. (.+)/[n(396)](t),s=/^([ \t]*)([a-z])\. (.+)/[n(396)](t);let i=null,u=null,c=null;if(r?(i=r,u="ul",c=/^([ \t]*)- /):o?(i=o,u="ol-num",c=/^([ \t]*)\d{1,9}\. /):s&&(i=s,u=e[n(387)],c=/^([ \t]*)[a-z]\. /),!i)return null;const a=i[1].length,f=t[n(380)]("\n"),l=[];let g="",d=null;for(let t=0;t<f.length;t++){const r=f[t],o=r[n(401)](/^([ \t]*)([-]|\d{1,9}\.|[a-z]\.) (.*)$/);if(o){const t=o[1].length,s=o[2],i=o[3];if(e.Uzkut(t,a)&&e.XBJdV(T,s,u)){d&&l.push(d),d={text:i,indent:t,raw:r,children:[]},g+=r+"\n";continue}if(e.ywfqo(t,a)&&d){d.children[n(413)](r),g+=r+"\n";continue}break}if(!r.trim()){const n=f[e.nHAtf(t,1)];if(n&&c.test(n)){g+=r+"\n";continue}break}if(!d||!r.startsWith(" ")&&!r[n(386)]("\t"))break;d.text+="\n"+r.trim(),g+=e.nHAtf(r,"\n")}if(d&&l.push(d),e[n(388)](l.length,0))return null;const h="ul"!==u,v=l.map(t=>{const r=n,o={type:O[r(397)],raw:t[r(356)],text:t[r(412)],tokens:[]};if(t[r(379)].length>0){const n=t[r(379)][r(374)]("\n"),s=e.SdhVl(J,n);s&&(o[r(357)]=s)}return o}),y={type:B,raw:g,ordered:h,listType:u,items:v};if(h&&e.Uzkut(u,n(411))){const r=t[n(401)](/^[ \t]*(\d+)\./);y.start=r?e[n(376)](parseInt,r[1],10):1}else if(h&&e[n(388)](u,n(375))){const e=t.match(/^[ \t]*([a-z])\./);y[n(385)]=e?e[1]:"a"}return y}function T(t,n){const e=E,r={UmTDu:function(t,n){return t===n},EFACm:"ol-num",IRKtl:"ol-alpha"};return r.UmTDu(n,"ul")?"-"===t:n===r[e(394)]?/^\d{1,9}\.$/[e(416)](t):n===r[e(384)]&&/^[a-z]\.$/.test(t)}function E(t,n){t-=356;const e=R();let r=e[t];if(void 0===E.hCNABo){E.dquiwJ=function(t){let n="",e="";for(let e,r,o=0,s=0;r=t.charAt(s++);~r&&(e=o%4?64*e+r:r,o++%4)?n+=String.fromCharCode(255&e>>(-2*o&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let t=0,r=n.length;t<r;t++)e+="%"+("00"+n.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(e)},E.eGfXEH={},E.hCNABo=!0}const o=t+e[0],s=E.eGfXEH[o];return s?r=s:(r=E.dquiwJ(r),E.eGfXEH[o]=r),r}function R(){const t=["CuHJALy","mZyZB2rhAvz3","zMLSDgvY","nJHAsgrJuem","y29SDw1UCW","DhjPBq","q09ovevovf9cte9dsW","B2WTBNvT","Dgv4Da","ChvZAa","AgvHzgLUzW","u1bbq0u","DgvZDa","uefsquDsqvbi","zMvUy2vZ","CMf3","BMvZDgvKtgLZDa","ufL0swW","yKXuz0e","q09mvu1o","zMfSsxy","mtbtA0TXAhC","BwfW","odu4mtqYmM9htKzLva","zM9Ty2W","otmYnJfzD216tKG","y29UDgvUDejSB2nRq2XVC2u","CgfYywDYyxbO","mZi1ndCWnKfHt2TszW","vefcteu","ru1qvfLFuefsquDsqvbi","y29UDgvUDejSB2nRt3bLBG","qufHEuG","AM9PBG","B2WTywXWAge","t1f4DuW","mJi0mtKZmgLpyu5yrq","ndy2nZbIufDQwui","y2HPBgrYzw4","C3bSAxq","qKXpq0Trvu9urq","neT4v0PbBq","nZC2Eevxy0PX","svjlDgW","C3rHCNq","C3rHCNrZv2L0Aa","EhbhD0y","vxPRDxq","q09erv9cte9dsW","Dg9Rzw5Z","DMnSsfO","mte5mdyXndvqELDus2y","odiYmJuYrwfiBgH1","ruzbq20","sevbreLorW","zxHLyW","teLtvf9jvevn","CMvWBgfJzq","BgvUz3rO","C3vIC3rYAw5N","Bwf0y2G","CM93CW","BMv3BgLUzq"];return(R=function(){return t})()}function V(t){const n=E,e={falIv:function(t,n){return t+n}},r=t.split("\n");let o=0;for(let t=0;t<r[n(399)];t++){const s=r[t][n(409)]();if(/^::\w/.test(s)&&o++,/^::[\s]*$/[n(416)](s)){if(0===o){let o=0;for(let s=0;s<t;s++)o+=e[n(361)](r[s][n(399)],1);return o}o--}}return-1}function F(t){const n=E,e={dGIoP:"column",vclHZ:"header",sXjOh:"footer"};switch(t){case"table":return O[n(370)];case e.dGIoP:return O[n(360)];case e[n(391)]:case e.sXjOh:case"background":return x;default:return O[n(410)]}}function _(t){const n=E;return t.trim()[n(380)]("\n")[n(406)](t=>t.trim()).map(t=>{const e=n;return t[e(380)]("|").map(t=>{const n=e,r=t[n(409)](),o=r.match(/^\{::(\S+)\}\s*(.*)/);return o?{text:o[2][n(409)](),style:o[1]}:{text:r,style:null}})})}function Q(t){const n=E,e=t.trim(),r=e.split("\n");if(r.some(t=>"|"===t[n(409)]())){const t=[];let e=[];for(const o of r)"|"===o.trim()?(t[n(413)](e.join("\n")[n(409)]()),e=[]):e.push(o);return e[n(399)]>0&&t.push(e[n(374)]("\n").trim()),t}return 1===r.length?e[n(380)]("|").map(t=>t.trim()):[e]}function $(t,n){t-=154;const e=et();let r=e[t];if(void 0===$.GszeSR){$.MiOZzw=function(t){let n="",e="";for(let e,r,o=0,s=0;r=t.charAt(s++);~r&&(e=o%4?64*e+r:r,o++%4)?n+=String.fromCharCode(255&e>>(-2*o&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let t=0,r=n.length;t<r;t++)e+="%"+("00"+n.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(e)},$.EEwWPK={},$.GszeSR=!0}const o=t+e[0],s=$.EEwWPK[o];return s?r=s:(r=$.MiOZzw(r),$.EEwWPK[o]=r),r}function tt(t){const n=$,e=function(t,n,e,r){return t(n,e,r)},r=function(t,n){return t-n},o=[];for(;t;){let s;if(s=g.escape[n(171)](t))t=t[n(169)](s[0][n(157)]),o[n(160)]({type:O[n(176)],raw:s[0],text:s[1]});else if(s=g.lineBreak.exec(t))t=t.substring(s[0].length),o.push({type:U,raw:s[0]});else{if(s=g.bracket[n(171)](t)){t=t.substring(s[0][n(157)]);const r=s[1],i=s[2][n(159)]();o.push(e(nt,s[0],r,i));continue}if(s=g.codeSpan.exec(t))t=t[n(169)](s[0].length),o[n(160)]({type:N,raw:s[0],text:s[1]});else if(s=g.strong[n(171)](t))t=t.substring(s[0][n(157)]),o.push({type:q,raw:s[0],text:s[1],tokens:tt(s[1])});else if(s=g.underline.exec(t))t=t.substring(s[0][n(157)]),o.push({type:O[n(168)],raw:s[0],text:s[1],tokens:tt(s[1])});else if(s=g[n(175)].exec(t))t=t[n(169)](s[0].length),o[n(160)]({type:O[n(166)],raw:s[0],text:s[1],tokens:tt(s[1])});else if(s=g.em.exec(t))t=t.substring(s[0][n(157)]),o.push({type:I,raw:s[0],text:s[1],tokens:tt(s[1])});else if(s=g.subscript[n(171)](t))t=t[n(169)](s[0][n(157)]),o.push({type:O[n(155)],raw:s[0],text:s[1]});else if(s=g.superscript[n(171)](t))t=t[n(169)](s[0].length),o.push({type:Y,raw:s[0],text:s[1]});else{if(s=g.text[n(171)](t)){t=t.substring(s[0][n(157)]);const e=o[r(o.length,1)];e&&e[n(173)]===O[n(170)]?(e[n(154)]+=s[0],e.text+=s[0]):o.push({type:O[n(170)],raw:s[0],text:s[0]});continue}if(t){const e=t[0];t=t[n(169)](1);const r=o[o[n(157)]-1];r&&r[n(173)]===O[n(170)]?(r[n(154)]+=e,r.text+=e):o[n(160)]({type:M,raw:e,text:e})}}}}return o}function nt(t,n,e){const r=$,o=e[r(163)](/^url:\s*(.+?)(?:,\s*::(\S+))?$/);if(o)return{type:W,raw:t,text:n,href:o[1][r(159)](),style:o[2]||null};const s=e.match(/^img:\s*(.+?)(?:,\s*::(\S+))?$/);if(s)return{type:K,raw:t,text:n,src:s[1][r(159)](),style:s[2]||null};const i=e[r(163)](/^qr:\s*(.+?)(?:,\s*::(\S+))?$/);if(i)return{type:O[r(167)],raw:t,text:n,data:i[1][r(159)](),style:i[2]||null};if(e.match(/^toc(?:,\s*::(\S+))?$/)){const r=e.match(/^toc(?:,\s*::(\S+))?$/);return{type:Z,raw:t,text:n,style:r[1]||null}}const u=e.match(/^::(\S+)$/);return u?{type:O[r(179)],raw:t,text:n,style:u[1],tokens:(c=tt,a=n,c(a))}:{type:M,raw:t,text:t};var c,a}function et(){const t=["u1rztevex1rfwfq","CMf3","u1vcu0nssvbu","ota0mtfNAhnJEMq","BgvUz3rO","mtj6vg5zuM4","DhjPBq","ChvZAa","mty2nty1nvnkz0LvrG","mtiZodq0n3DwrLPhAW","Bwf0y2G","mtGXmZeWCMrTCxjh","oti3Be5sAMPl","u1rssuTfveHst1vhsa","uvjFq09erq","vu5ervjmsu5f","C3vIC3rYAw5N","vevyva","zxHLyW","mtCWodi5nMzzzMPbtq","DhLWzq","nJK0ntG0svHlzevP","C3rYAwTLDgHYB3vNAa","rvndqvbf","nKXeDhHKva","ntK5odi4og9xB1HgBq"];return(et=function(){return t})()}!function(t){const n=E,e=t();for(;;)try{if(915022===parseInt(n(378))/1*(parseInt(n(407))/2)+-parseInt(n(369))/3+-parseInt(n(382))/4*(parseInt(n(377))/5)+-parseInt(n(364))/6+-parseInt(n(366))/7*(parseInt(n(383))/8)+parseInt(n(392))/9*(parseInt(n(362))/10)+parseInt(n(405))/11*(parseInt(n(393))/12))break;e.push(e.shift())}catch(t){e.push(e.shift())}}(R),function(t){const n=$,e=t();for(;;)try{if(506421===-parseInt(n(156))/1*(-parseInt(n(177))/2)+parseInt(n(174))/3+-parseInt(n(172))/4+-parseInt(n(161))/5+parseInt(n(158))/6*(-parseInt(n(162))/7)+-parseInt(n(178))/8+parseInt(n(165))/9*(parseInt(n(164))/10))break;e.push(e.shift())}catch(t){e.push(e.shift())}}(et);const rt=at;function ot(){const t=["DhLWzq","y3vZDg9TlwzVBNrZ","mtG4ntm5mNHWCxzkyG","yMfZAwmTC3r5BgvZ","yMfJA2DYB3vUzc1SyxLLCNm","DMfSAwq","otGXne5xzuL3Dq","iIbMzwf0DxjLihjLCxvPCMvZigeGuhjVigXPy2vUC2uUia","zxjYB3i","CgfYywDYyxbOCW","mZy4ofLLAvz1wa","Aezuweu","r0vu","mtjsqvvtvwe","zNjLzq","qwXSB3DPBMCGChjVigzLyxr1CMvZicHZzxj2zxiPlG","C3rHDhvZ","nte3ndCWvNnAyNvn","Aw5JBhvKzxm","qw94A3m","mtjkChHbtfa","CgfNzs1ICMvHA3m","y2HLy2TLzef0","Ag9ZDg5HBwu","otq2nZiWuNfIDwnl","Dg9JlwjVB2TTyxjRCW","uNDvALG","BM93","s2nXDu0","mJyZnZe0ANnUDNPo","vMHbwxK","yxbWBgLJyxrPB24VANnVBG","zg9JDw1LBNq","C2vYDMvY","mZa2mZi1mKPbDezOEa","AePcve8","D2f0zxjTyxjRCW","Ahr0Chm6lY9SAwnLBNnLlMrTzgXHBMCUzgv2","oduYmZm4Evbdquf5","vLfVzNe","yvrRsgm","C2v0","BwvZC2fNzq","yMfZAwmTDgfIBgvZ"];return(ot=function(){return t})()}!function(t){const n=at,e=t();for(;;)try{if(672292===-parseInt(n(242))/1+-parseInt(n(233))/2*(parseInt(n(224))/3)+parseInt(n(238))/4+-parseInt(n(228))/5*(-parseInt(n(261))/6)+-parseInt(n(254))/7*(-parseInt(n(258))/8)+parseInt(n(250))/9+parseInt(n(265))/10)break;e.push(e.shift())}catch(t){e.push(e.shift())}}(ot);const st=rt(241),it="undefined"!=typeof window&&void 0!==window[rt(236)];let ut={key:null,valid:!1,tier:"free",type:null,checked:!1,checkedAt:null,error:null};const ct=new Map;function at(t,n){t-=222;const e=ot();let r=e[t];if(void 0===at.hLmmuW){at.XWcJkb=function(t){let n="",e="";for(let e,r,o=0,s=0;r=t.charAt(s++);~r&&(e=o%4?64*e+r:r,o++%4)?n+=String.fromCharCode(255&e>>(-2*o&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let t=0,r=n.length;t<r;t++)e+="%"+("00"+n.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(e)},at.KzjuDl={},at.hLmmuW=!0}const o=t+e[0],s=at.KzjuDl[o];return s?r=s:(r=at.XWcJkb(r),at.KzjuDl[o]=r),r}function ft(){const t=rt;if(!it)return null;try{return window.location[t(227)]}catch{return null}}async function lt(t){const n=rt,e={yYJDI:"free",ROkho:function(t){return t()},hFTXE:function(t,n,e){return t(n,e)},RwUjX:"pro",aTkHc:function(t,n){return t&&n}};if(!t)return ut={key:null,valid:!1,tier:e.yYJDI,type:null,checked:!0,checkedAt:Date.now(),error:null},{valid:!1,tier:n(262)};const r=e.ROkho(ft),o=it&&r?t+":"+r:t,s=ct.get(o);if(s&&Date.now()-s[n(226)]<864e5)return ut={...s,key:t},{valid:s.valid,tier:s.tier,type:s[n(248)],error:s[n(256)]};try{const s=await e[n(259)](gt,t,r);return ut={key:t,valid:s.valid,tier:s[n(253)]?s.tier||e.RwUjX:e.yYJDI,type:s.type||null,checked:!0,checkedAt:Date[n(231)](),error:s.valid?null:s[n(256)]},ct[n(245)](o,{...ut}),{valid:ut.valid,tier:ut.tier,type:ut.type,error:ut.error}}catch(r){const o=e[n(244)](!it,t)&&t.length>=16;return ut={key:t,valid:o,tier:o?e[n(230)]:e.yYJDI,type:o?n(237):null,checked:!0,checkedAt:Date[n(231)](),error:"Validation failed: "+r[n(246)]+". "+(o?n(263):"")},{valid:ut[n(253)],tier:ut.tier,type:ut[n(248)],error:ut[n(256)]}}}async function gt(t,n){const e=rt,r={fBryP:e(260),KcquM:e(235)};let o=st+"/v/"+encodeURIComponent(t);n&&(o+="?d="+encodeURIComponent(n));const s=await fetch(o,{method:r.fBryP,headers:{Accept:r[e(232)]}});if(!s.ok)throw new Error("HTTP "+s[e(264)]);return await s.json()}function dt(){return{...ut}}function ht(){const t=rt,n={Aoxks:function(t,n){return t!==n},otGhB:t(262)};return ut.valid&&n[t(223)](ut.tier,n.otGhB)}function vt(t){const n=rt,e={hJBTO:function(t){return t()},VQofq:n(225)};if(e[n(239)](ht))return!0;return["basic-text","headings",n(257),"lists",n(247),e[n(243)],n(251)][n(222)](t)}const yt=[rt(249),rt(240),rt(252),rt(229),"qr-codes","block-styling"];function wt(t){const n=rt,e={ZXqLe:function(t){return t()},VhAYy:function(t,n){return t+n}};if(!e.ZXqLe(ht))throw new Error(e[n(234)]('[DMD] The "'+t+n(255),"Get yours at https://dmdlang.dev/pricing"))}function mt(){const t={lAiya:rt(262)};ut={key:null,valid:!1,tier:t.lAiya,type:null,checked:!1,checkedAt:null,error:null},ct.clear()}var pt={setLicense:lt,getLicenseState:dt,isPro:ht,hasFeature:vt,requirePro:wt,clearLicense:mt,PRO_FEATURES:yt},zt=Object.freeze({__proto__:null,PRO_FEATURES:yt,clearLicense:mt,default:pt,getLicenseState:dt,hasFeature:vt,isPro:ht,requirePro:wt,setLicense:lt});const Ct=bt;function Bt(t,n={}){const e=bt,r=function(t,n,e){return t(n,e)},o=[];for(const s of t){const t=r(Dt,s,n);null!=t&&o[e(550)](t)}return o}function bt(t,n){t-=458;const e=Mt();let r=e[t];if(void 0===bt.hGwqsl){bt.WDZpXW=function(t){let n="",e="";for(let e,r,o=0,s=0;r=t.charAt(s++);~r&&(e=o%4?64*e+r:r,o++%4)?n+=String.fromCharCode(255&e>>(-2*o&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let t=0,r=n.length;t<r;t++)e+="%"+("00"+n.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(e)},bt.xAomie={},bt.hGwqsl=!0}const o=t+e[0],s=bt.xAomie[o];return s?r=s:(r=bt.WDZpXW(r),bt.xAomie[o]=r),r}function Dt(t,n){const e=bt,r={AeeVk:function(t,n,e){return t(n,e)},sAAdg:function(t){return t()},BRoka:function(t){return t()},SFkrh:function(t){return t()},EPKqd:function(t,n,e){return t(n,e)}};switch(t[e(580)]){case y:return s=n,xt((i=Yt,u=(o=t)[bt(555)],i(u,{},s)),{style:"h"+o.depth,tocItem:!0,tocMargin:[0,0,0,0]});case O[e(515)]:return r.AeeVk(At,t,n);case m:return r[e(532)](Lt);case p:return r.BRoka(ht)?r[e(583)](qt):null;case O[e(492)]:return function(t){const n=bt;return{text:t.text,style:n(499),preserveLeadingSpaces:!0,background:n(470),margin:[0,5,0,5]}}(t);case C:return function(t,n){const e=bt,r={uWVsc:function(t,n){return t===n},goIBe:function(t){return t()},tuAoH:e(467),hZOEj:"#f9f9f9",DCJdo:function(t,n,e){return t(n,e)}},o={...n,_inBlockquote:!0},s=(r[e(472)](ht)&&n._currentBlockStyle?n[n[e(570)]]:null)||n[e(543)]||{},i=s[e(523)]??3,u=s.quoteBorderColor??r.tuAoH,c=s[e(562)]??r[e(563)],a=s.quotePadding,f=s.quotePaddingLeft??a??12,l=s.quotePaddingRight??a??8,g=s[e(564)]??a??8,d=s[e(473)]??a??8,h=s[e(541)]??[0,5,0,5];return{table:{widths:["*"],body:[[{stack:r.DCJdo(Bt,t[e(555)],o),style:e(543)}]]},layout:{hLineWidth:()=>0,vLineWidth:t=>r.uWVsc(t,0)?i:0,vLineColor:()=>u,fillColor:()=>c,paddingLeft:()=>f,paddingRight:()=>l,paddingTop:()=>g,paddingBottom:()=>d},margin:h}}(t,n);case O[e(471)]:return It(t,n);case O[e(509)]:return function(t,n){const e=Ct,r={XvYGf:function(t,n,e,r){return t(n,e,r)},YmVki:function(t,n){return t===n},DNkbF:function(t){return t()},piqEQ:function(t,n){return t!==n},NMXjm:e(540),aFPGd:function(t,n){return t!==n},ViaOp:function(t,n){return t>n},fApxc:function(t,n){return t===n},FMqca:e(575),mmYxS:function(t,n,e,r,o){return t(n,e,r,o)},BlFYb:"headerBorderBottomWidth",aDkrf:e(481),MkreT:function(t,n,e,r,o){return t(n,e,r,o)},BSHtB:function(t,n){return t-n},gfpjy:function(t,n){return t!==n},XJego:"borderLeftWidth",bigtG:function(t,n){return t===n},VEQad:"borderRightWidth",xxYfp:function(t,n){return t*n},RMyxe:"borderColor",zRRCN:"#cccccc",WgfDt:e(554),hqLMV:e(537),IrIAz:function(t,n){return t<n},HQywG:function(t,n){return t>n}},{rows:o,style:s}=t;if(!o||r.fApxc(o[e(547)],0))return null;const i=ht()&&s&&n[s]?n[s]:{},u={...jt,...i},c=u[e(476)]||0,a=o[e(547)],f=o[e(475)]((t,e)=>{const o=e<c;return t.map((s,i)=>{const f=bt,l=r.XvYGf(Yt,s._tokens||[{type:O[f(578)],text:s.text,raw:s.text}],{},n);if(r[f(460)](l,"")&&!s.style)return{};const g=xt(l);o?(u.headerBold&&(g.bold=!0),u.headerFontSize&&(g.fontSize=u.headerFontSize),u.headerColor&&(g.color=u.headerColor),u[f(494)]&&(g.alignment=u.headerAlignment)):u[f(528)]&&(g[f(586)]=u[f(528)]);let d=!1;if(r.DNkbF(ht)&&s.style&&n[s.style]){const t=n[s.style];if(Object.assign(g,t),void 0!==t[f(575)]){g._dmdBorderWidth=t.borderWidth,d=!0;const n=t.borderWidth>0;g[f(549)]=[n,n,n,n]}r[f(459)](t.borderColor,void 0)&&(g._dmdBorderColor=t.borderColor,d=!0,g[f(483)]=[t[f(483)],t[f(483)],t.borderColor,t[f(483)]])}if(!o&&r[f(460)](St(u,r.NMXjm,f(575))??1,0)&&!d){const n=r[f(460)](i,0),o=r[f(460)](i,t.length-1),s=r.YmVki(e,c),u=e===a-1;g[f(549)]=[n,s,o,u]}return g})}),l=Math.max(...f.map(t=>t.length));for(const t of f)for(;r.IrIAz(t.length,l);)t.push({});const g={table:{body:f,widths:u.widths?u[e(493)][e(475)](t=>"expand"===t?"*":"fit"===t?e(524):t):Array(l).fill("*")}};return r[e(464)](c,0)&&(g.table[e(476)]=c),g.layout={hLineWidth(t,n){const o=e;let s=0;if(t>0)for(const e of n[o(582)][o(585)][t-1])r.aFPGd(e._dmdBorderWidth,void 0)&&(s=Math.max(s,e._dmdBorderWidth));if(t<n.table[o(585)].length)for(const e of n[o(582)].body[t])void 0!==e[o(482)]&&(s=Math.max(s,e[o(482)]));if(r[o(466)](s,0))return s;const i=n.table.body[o(547)];return 0===t?St(u,o(496),"borderWidth")??1:r[o(514)](t,i)?r.XvYGf(St,u,o(565),r[o(485)])??1:t===c?r[o(573)](St,u,r[o(491)],r.aDkrf,r[o(485)])??1:r.MkreT(St,u,"bodyBorderBottomWidth","bodyBorderWidth","borderWidth")??1},vLineWidth(t,n){const o=e;let s=0;for(const e of n.table.body)t>0&&e[r[o(484)](t,1)]&&r.gfpjy(e[t-1][o(482)],void 0)&&(s=Math.max(s,e[r[o(484)](t,1)]._dmdBorderWidth)),t<e[o(547)]&&e[t]&&r.gfpjy(e[t]._dmdBorderWidth,void 0)&&(s=Math.max(s,e[t]._dmdBorderWidth));if(s>0)return s;const i=n.table[o(493)].length;if(0===t)return St(u,r.XJego,"borderWidth")??1;if(r.bigtG(t,i))return r.XvYGf(St,u,r[o(508)],r.FMqca)??1;const c=St(u,r.NMXjm,r[o(485)])??1;return Math[o(510)](r[o(539)](c,.5),c>0?.5:0)},hLineColor(t,n){const o=e,s=n.table.body[o(547)];return r.fApxc(t,0)||r.bigtG(t,s)?St(u,r.RMyxe)??r[o(526)]:r.bigtG(t,c)?St(u,"headerBorderBottomColor",o(501),o(483))??o(467):r[o(573)](St,u,o(480),"bodyBorderColor",o(483))??r.zRRCN},vLineColor(){const t=e;return St(u,t(483))??t(467)},fillColor(t){const n=e;if(t<c)return u[n(520)]||null;const o=r.BSHtB(t,c);return u[n(463)]?o%2==1?u.bodyAlternateFillColor:u[n(542)]||null:u.bodyFillColor||null},paddingLeft:()=>St(u,"paddingLeft",r[e(495)])??4,paddingRight:()=>St(u,"paddingRight","padding")??4,paddingTop(){const t=e;return r[t(461)](St,u,"paddingTop",t(554))??2},paddingBottom(){const t=e;return St(u,r[t(505)],t(554))??2}},g}(t,n);case O[e(486)]:return function(t,n){const e=Ct,r={uNlJF:function(t,n,e){return t(n,e)},HHGjf:function(t,n){return t===n},NGbSC:function(t,n,e,r){return t(n,e,r)},hChDJ:function(t,n){return t(n)}},o={columns:t.columns[e(475)](t=>{const o=e;let s;if(t.tokens&&t.tokens[o(547)]>0){const e=r[o(522)](Bt,t.tokens,n);s=r.HHGjf(e[o(547)],1)?e[0]:{stack:e}}else{const e=t.text||"",i=r.NGbSC(Yt,t[o(531)]||[{type:O[o(578)],text:e,raw:e}],{},n);s=r[o(561)](xt,i)}return s[o(577)]="*",s})};return ht()&&t[e(468)]&&n[t.style]&&Object[e(518)](o,n[t.style]),o}(t,n);case O[e(567)]:return r[e(572)](kt,t,n);case O[e(584)]:return{text:""};case O[e(581)]:return null;default:return t.text?{text:t[e(525)]}:null}var o,s,i,u}function xt(t,n={}){const e=bt,r={Rdysf:function(t,n){return t>n}};if("string"==typeof t||!Array.isArray(t))return{text:t,...n};let o=!1;for(const n of t)if(n&&(n.image||n.qr||n.toc||n.svg)){o=!0;break}if(!o)return{text:t,...n};const s=[];let i=[];for(const o of t)o&&(o[e(544)]||o.qr||o[e(478)]||o[e(502)])?(r[e(513)](i[e(547)],0)&&(s.push({text:i,...n}),i=[]),s.push(o)):i[e(550)](o);return r[e(513)](i.length,0)&&s.push({text:i,...n}),1===s.length?s[0]:{stack:s}}function At(t,n){const e=bt,r={VCsxc:function(t,n,e,r){return t(n,e,r)},bNxUM:"object"},o=xt(r[e(497)](Yt,t.tokens,{},n));return o&&typeof o===r.bNxUM&&!Array[e(535)](o)&&!n?._inBlockquote&&!o.margin&&(o[e(546)]=n?.[e(517)]?.[e(546)]||[0,0,0,4]),o}function Lt(){const t=bt;return{canvas:[{type:{ybfVt:"line"}[t(487)],x1:0,y1:0,x2:515,y2:0,lineWidth:1,lineColor:t(467)}],margin:[0,10,0,10]}}function Mt(){const t=["sff5D0C","w1fsienVzgvD","vMLHt3a","i2nJy2nJyW","C3r5Bgu","ndmWmg5MD0XOwG","i2y1zJvMnq","teLtva","z29jqMu","CxvVDgvqywrKAw5NqM90Dg9T","ywz0zxi","BwfW","AgvHzgvYuM93CW","vgLsqvK","Dg9J","yNvSBgv0vhLWzq","yM9KEujVCMrLCKjVDhrVBunVBg9Y","AgvHzgvYqM9YzgvYv2LKDgG","x2rTzejVCMrLCLDPzhrO","yM9YzgvYq29SB3i","qLniDei","rK1Xy2e","q09mvu1o","EwjMvNq","y292zxi","C3rYAw5N","Dw5KzxjSAw5L","qMXgwwi","q09erv9cte9dsW","D2LKDgHZ","AgvHzgvYqwXPz25Tzw50","v2DMrhq","yM9YzgvYvg9Wv2LKDgG","vKnZEgm","twrksM8","y29Kzq","AxrLBxm","AgvHzgvYqM9YzgvYq29SB3i","C3zN","y2vUDgvY","teLosW","Ahfmtvy","zM9VDgvY","uKv1C2u","vKvrywq","vefcteu","Bwf4","ode4mJi2wunzvwvn","mJaXmZi4AgDLALnt","uMr5C2y","zKfWEgm","uefsquDsqvbi","B3b4sw4","zgvMyxvSDa","yxnZAwDU","rLLVCwy","AgvHzgvYrMLSBenVBg9Y","BwfYA2vYq29SB3i","Du5SsKy","CxvVDgvcB3jKzxjxAwr0Aa","yxv0BW","Dgv4Da","ELjsq04","mtrYCgjeDuy","yM9KEufSAwDUBwvUDa","AgvHzgvY","AgvPz2H0","x3rVA2vUCW","C0fbzgC","zxzLCNK","CMDnrKm","AxnbCNjHEq","mxPszuHfCa","CgfKzgLUz0jVDhrVBq","u1vqrvjtq1jjufq","EhHzzNa","yM9KEujVCMrLCLDPzhrO","CxvVDgvnyxjNAw4","yM9KEuzPBgXdB2XVCG","yMXVy2TXDw90zq","Aw1Hz2u","u1vcu0nssvbu","BwfYz2LU","BgvUz3rO","C3rHCNq","yM9YzgvY","ChvZAa","zML0","Bhzrr3u","AhjLzG","CgfKzgLUzW","Dg9Rzw5Z","q09erv9tuefo","zgf0yq","nhb6r0fwBa","mJC3mZK1B1LZtKHu","BfvUqNO","AenOreO","CxvVDgvgAwXSq29SB3i","AfPprwO","CxvVDgvqywrKAw5Nvg9W","yM9YzgvYqM90Dg9Tv2LKDgG","nZjyrNrNz1C","q09ovevovf9cte9dsW","i2yYzJjMmG","mJuYnJe3nLbxu2HJtW","x2n1CNjLBNrcBg9JA1n0EwXL","mtaWnty0mLPRuuv6Bq","rvblCwq","Bw1zEfm","teLorv9cuKvbsW","yM9YzgvYv2LKDgG","C3jJ","D2LKDgG","vevyva","u1rssuTfveHst1vhsa","DhLWzq","u1bbq0u","DgfIBgu","u0zRCMG","ru1qvfLFuefsquDsqvbi","yM9KEq","ywXPz25Tzw50","mZiWne5UzM1fvG","CgLXrve","ww1wA2K","whzzr2y","mJeXnJiXm2XJrgvzDa","yM9KEufSDgvYBMf0zuzPBgXdB2XVCG"];return(Mt=function(){return t})()}function qt(){return{text:"",pageBreak:bt(474)}}function It(t,n){const e=bt,r={lUnBz:function(t,n,e){return t(n,e)},TiRAY:function(t){return t()},rqZUd:"lower-alpha",lvQGu:function(t,n){return t===n},QxAbK:e(489),vzSfG:function(t,n){return t-n}},o=r[e(477)](ht)?n._currentBlockStyle:null,s=o&&n[o]||{},i=t[e(500)][e(475)](t=>{const o=e,s=xt(Yt(t.tokens,{},n));return t.nestedList?[s,r[o(560)](It,t.nestedList,n)]:s});if(t.ordered){const n={ol:i};return"ol-alpha"===t.listType&&(n.type=r.rqZUd),void 0!==t.start&&1!==t[e(548)]&&"a"!==t[e(548)]&&(n.start=r[e(552)](typeof t[e(548)],r.QxAbK)?r.vzSfG(t.start.charCodeAt(0),96):t[e(548)]),s[e(521)]&&(n[e(521)]=s[e(521)]),n}const u={ul:i};return s[e(479)]&&(u.type=s[e(479)]),s[e(521)]&&(u.markerColor=s[e(521)]),u}!function(t){const n=bt,e=t();for(;;)try{if(227507===-parseInt(n(536))/1*(parseInt(n(512))/2)+-parseInt(n(511))/3+-parseInt(n(558))/4*(parseInt(n(559))/5)+parseInt(n(571))/6*(-parseInt(n(527))/7)+-parseInt(n(569))/8+parseInt(n(458))/9*(parseInt(n(469))/10)+-parseInt(n(462))/11*(-parseInt(n(566))/12))break;e.push(e.shift())}catch(t){e.push(e.shift())}}(Mt);const jt={headerRows:1,borderWidth:1,borderColor:Ct(467),headerFillColor:Ct(568),headerBold:!0,headerBorderBottomWidth:2,headerBorderBottomColor:"#999999",bodyFillColor:"#fafafa",padding:6,paddingLeft:8,paddingRight:8};function St(t,...n){const e=function(t,n){return t!==n};for(const r of n)if(e(t[r],void 0))return t[r]}function kt(t,n){const e=Ct,r={REuse:e(506),CIXst:function(t,n){return t===n},CKEAJ:"background",opxIn:function(t,n){return t||n},HavRn:function(t){return t()},RljYy:function(t,n,e){return t(n,e)}},{name:o,style:s}=t;if(o===e(529)||o===r[e(507)]||r.CIXst(o,r.CKEAJ))return{_pageLayer:o,content:Bt(t.tokens,n),style:r[e(516)](s,null)};if(!r.HavRn(ht))return{stack:Bt(t.tokens,n)};const i=s||o,u=n[i]?{...n,_currentBlockStyle:i}:n,c={stack:r.RljYy(Bt,t[e(555)],u)};return n[o]&&Object.assign(c,n[o]),s&&n[s]&&Object.assign(c,n[s]),c}function Yt(t,n={},e={}){const r=Ct,o={rgMFC:function(t,n){return t>n},ZMASl:function(t,n){return t!==n}};if(!t||0===t.length)return"";const s=o[r(534)](Object.keys(n).length,0);if(1===t[r(547)]&&t[0][r(580)]===O[r(578)]&&!s)return t[0][r(525)];const i=[];for(const s of t){const t=Nt(s,n,e);o.ZMASl(t,null)&&void 0!==t&&(Array[r(535)](t)?i[r(550)](...t):i[r(550)](t))}return!s&&i[r(533)](t=>"string"==typeof t)?i.join(""):i}function Nt(t,n={},e={}){const r=Ct,o={FYoqf:function(t,n,e,r){return t(n,e,r)},Wyfvg:r(490),jPXXd:"#f0f0f0",SVgjG:"#0563C1",MdJJo:function(t,n){return t!==n},mskYZ:function(t,n){return t!==n},CurXL:r(503),IyoNo:function(t){return t()}},s=Object.keys(n).length>0;switch(t[r(580)]){case O[r(578)]:case P:return s?{text:t.text,...n}:t[r(525)];case O[r(574)]:return s?{text:"\n",...n}:"\n";case q:return Yt(t.tokens,{...n,bold:!0},e);case I:return o.FYoqf(Yt,t.tokens,{...n,italics:!0},e);case j:return Yt(t.tokens,{...n,decoration:o.Wyfvg},e);case O[r(579)]:return o[r(519)](Yt,t[r(555)],{...n,decoration:"lineThrough"},e);case O[r(545)]:return{text:t.text,sub:!0,...n};case O[r(538)]:return{text:t[r(525)],sup:!0,...n};case O[r(556)]:return{text:t[r(525)],background:o.jPXXd,fontSize:10,...n};case O[r(504)]:return{text:t.text,link:t[r(553)],color:o.SVgjG,decoration:"underline",...n};case K:const i={image:t[r(576)],...n};if(t[r(468)]){if(i[r(468)]=t.style,e[t[r(468)]]){const n=e[t[r(468)]];void 0!==n.width&&(i.width=n[r(577)]),o[r(498)](n.height,void 0)&&(i[r(530)]=n[r(530)]),void 0!==n[r(586)]&&(i.alignment=n.alignment),o.mskYZ(n[r(551)],void 0)&&(i.fit=n[r(551)]),void 0!==n.cover&&(i[r(488)]=n.cover)}}else i[r(577)]=460,i.alignment=o.CurXL;return i;case H:return ht()?{qr:t[r(557)],...n}:{text:r(465)};case Z:return o.IyoNo(ht)?{toc:{title:{text:t.text,style:"tocTitle"}}}:{text:t[r(525)]};case G:return Yt(t.tokens,{...n,style:t.style},e);default:return s?{text:t.text||"",...n}:t[r(525)]||""}}!function(t){const n=Kt,e=t();for(;;)try{if(597332===-parseInt(n(146))/1*(parseInt(n(166))/2)+-parseInt(n(151))/3*(parseInt(n(152))/4)+-parseInt(n(165))/5+parseInt(n(153))/6*(parseInt(n(155))/7)+parseInt(n(154))/8+-parseInt(n(158))/9*(parseInt(n(156))/10)+-parseInt(n(172))/11*(-parseInt(n(148))/12))break;e.push(e.shift())}catch(t){e.push(e.shift())}}(Gt);const Wt={DEBUG:0,INFO:1,WARN:2,ERROR:3,NONE:4};function Kt(t,n){t-=146;const e=Gt();let r=e[t];if(void 0===Kt.jKmTGY){Kt.mOsnRS=function(t){let n="",e="";for(let e,r,o=0,s=0;r=t.charAt(s++);~r&&(e=o%4?64*e+r:r,o++%4)?n+=String.fromCharCode(255&e>>(-2*o&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let t=0,r=n.length;t<r;t++)e+="%"+("00"+n.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(e)},Kt.HgVYXr={},Kt.jKmTGY=!0}const o=t+e[0],s=Kt.HgVYXr[o];return s?r=s:(r=Kt.mOsnRS(r),Kt.HgVYXr[o]=r),r}const Ht={level:Wt.WARN,handler:(t,...n)=>{const e=Kt,r={pveir:function(t,n){return t===n},MrISX:"ERROR",pKyvj:function(t,n){return t===n}},o="[DMD] ["+t+"]";r[e(161)](t,r.MrISX)?console.error(o,...n):"WARN"===t?console[e(150)](o,...n):r.pKyvj(t,"INFO")?console.info(o,...n):console[e(162)](o,...n)}};const Zt={debug:(...t)=>{const n=Kt;({NfWPc:function(t,n){return t<=n}})[n(159)](Ht[n(147)],Wt[n(167)])&&Ht[n(164)](n(167),...t)},info:(...t)=>{const n=Kt,e={NjvqS:n(171)};Ht[n(147)]<=Wt[n(171)]&&Ht.handler(e[n(160)],...t)},warn:(...t)=>{const n=Kt,e={jytfp:n(169)};Ht[n(147)]<=Wt[n(169)]&&Ht[n(164)](e.jytfp,...t)},error:(...t)=>{const n=Kt,e={ZlLFA:function(t,n){return t<=n},EScQU:"ERROR"};e[n(157)](Ht[n(147)],Wt.ERROR)&&Ht.handler(e[n(168)],...t)}};function Gt(){const t=["Bgv2zwW","nJbrtuDSA0K","zNvUy3rPB24","D2fYBG","nZK0mxPWsNrowa","odeYshDcAfH2","mtjlA2rZAxC","odu2mdu2mg93AgvhCW","mJa4ndaXouz5C3f6DG","mJmZmhbTwLvnsa","wMXmrKe","ndiZwxr1yLj4","tMzxugm","tMP2Cvm","ChzLAxi","Bg9N","C3rYAw5N","AgfUzgXLCG","ntu4nty0nw5WyxLjEG","ndKXnJrozuTTuwO","revcvuC","rvnJuvu","v0fstG","Dg9vChbLCKnHC2u","su5gtW","mJaXnJK5m2fsDvzxBa","mtnYDKvsEfK"];return(Gt=function(){return t})()}function Pt(){const t=["BgvUz3rO","mZmZodq5mgjZrKPbsa","ANnVBG","Aw5JBhvKzxm","AxrHBgLJCW","igzVBNrZ","w0zVBNrZxsbgB250ici","ndaZndvWs01Tr0K","lujVBgrjDgfSAwmUDhrM","odi5mZC2rMfcqMTW","BM9YBwfS","yM9Sza","mZu0ntmXwK5mr0TS","iIbUB3qGyxzHAwXHyMXLlcb3AwXSigzHBgWGyMfJAYb0BYbsB2jVDg8","mJHws3PNALO","luL0ywXPyY50Dgy","w0zVBNrZxsbfCNjVCIbSB2fKAw5Nig1HBMLMzxn0oG","ngLAuwP2tG","l21HBMLMzxn0lMPZB24","tMH4zvK","w0zVBNrZxsbmB2fKzwqGBwfUAwzLC3qGD2L0Aca","nZm0mtbjvxbwAvq","tMfOBNe","mtjwDMvLsvO","zgvIDwC","yM9SzgL0ywXPy3m","nde5otuYwuHdqxbu","mJi5ntm1mw9xALvjrW","D2fYBG","Ahr0Chm6lY9WDwiTyZa2ngu4mwm5mwmWngq2owiXmZLHmZe5nwnMzgnJzMeUCJiUzgv2","lujVBgqUDhrM","w0zVBNrZxsbnyw5PzMvZDcbUB3qGyxzHAwXHyMXLlcbJyw5UB3qGBg9HzcaI","BwvZC2fNzq"];return(Pt=function(){return t})()}const Ut=Tt;!function(t){const n=Tt,e=t();for(;;)try{if(220297===parseInt(n(258))/1+-parseInt(n(255))/2+-parseInt(n(234))/3*(parseInt(n(263))/4)+-parseInt(n(253))/5*(-parseInt(n(236))/6)+-parseInt(n(260))/7*(-parseInt(n(239))/8)+-parseInt(n(240))/9+parseInt(n(247))/10)break;e.push(e.shift())}catch(t){e.push(e.shift())}}(Pt);const Ot=Ut(242);let Xt=null;async function Jt(){const t=Ut,n="[Fonts] Failed to load font manifest";if(Xt)return Xt;try{const e=await fetch(Ot+t(264));return e.ok?(Xt=await e[t(248)](),Zt.debug(t(233)+Object.keys(Xt)[t(246)]+t(251)),Xt):(Zt[t(241)](n),null)}catch(n){return Zt[t(241)](t(262),n[t(245)]),null}}function Tt(t,n){t-=232;const e=Pt();let r=e[t];if(void 0===Tt.hVjtOS){Tt.XMsdqt=function(t){let n="",e="";for(let e,r,o=0,s=0;r=t.charAt(s++);~r&&(e=o%4?64*e+r:r,o++%4)?n+=String.fromCharCode(255&e>>(-2*o&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let t=0,r=n.length;t<r;t++)e+="%"+("00"+n.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(e)},Tt.ismoVs={},Tt.hVjtOS=!0}const o=t+e[0],s=Tt.ismoVs[o];return s?r=s:(r=Tt.XMsdqt(r),Tt.ismoVs[o]=r),r}async function Et(t){const n=Ut,e={swAAl:function(t){return t()},Nahnq:n(256),NhxeY:n(257),KXkIK:n(250)};Zt.debug("[Fonts] Fetching font: "+t);const r=await e.swAAl(Jt);if(!r)return Zt.warn(n(244)+t+'"'),null;const o=r[t];if(!o)return Zt[n(241)](n(252)+t+n(259)),null;const{folder:s,styles:i}=o,u=s.toLowerCase(),c=Ot+"/"+u,a=c+"/"+s+"-Regular.ttf";if(!i[n(249)](e[n(235)]))return Zt[n(241)](n(252)+t+'" has no regular weight'),null;const f={normal:a,bold:i.includes(e[n(232)])?c+"/"+s+n(243):a,italics:i.includes(e.KXkIK)?c+"/"+s+n(261):a,bolditalics:i[n(249)]("bolditalics")?c+"/"+s+n(254):a};return!i.includes(n(238))&&i.includes(e.NhxeY)&&(f[n(238)]=f[n(257)]),Zt[n(237)]('[Fonts] Font "'+t+'" ready with '+i[n(246)]+" styles"),f}const Rt=_t;function Vt(){const t=["Dw5KzwzPBMvK","mteZnJC2menxwwXfqG","yM9Sza","Bg9N","sujLuxa","vgfRsxe","D2fYBG","tg9HzgvKifjVyM90BYbMB250CYbMCM9TienetIaOtM9Kzs5QCYbMywXSyMfJAYK","B2jQzwn0","mtaWnZK5ndLbuNz1De8","Ahr0Chm6lY9WDwiTyZa2ngu4mwm5mwmWngq2owiXmZLHmZe5nwnMzgnJzMeUCJiUzgv2","tg9HzgvKifjVyM90BYbMB250CYbMCM9TienetG","mZy0nZu5Cfjvug5S","mJeYEKD1swPi","yxnZAwDU","CgrMtwfRzq","vw5ZDxbWB3j0zwqGzw52AxjVBM1LBNqGB3iGCgf0AcbMB3jTyxq","mtGWmJi5D1zzrgTl","y2XLyxi","nteYntvNsfHWEgu","teLAC2C","Ahr0Chm6lY8","z2v0","DMfSDwvZ","uM9IB3rVlu1LzgL1Bs50Dgy","uM9IB3rV","C3rHCNrZv2L0Aa","igzYB20G","BwfW","w0rnrcbgB250xsbgywXSyMfJAYb0BYbdre4GzMv0y2G","D1zgtxO","Bxv5zg4","BM9YBwfS","tg9HzgLUzYbMB250ia","w0rnrcbgB250xsb2zNngB250CYbSB2fKzwq6","mKXtAfLyrq","otmXntC1q2nfA1vd","qxv0BY1SB2fKzwqGzM9UDdOG","AM9YAxK","zgvIDwC","q2XLyxjLzcbWCMvSB2fKzwqGzM9UDhm","ywXS","A2v5CW","DMzZ","q291BgqGBM90igf1Dg8TBg9HzcbMB250ici","uM9IB3rVluL0ywXPyY50Dgy","Ahr0CdOVlW","mJDxvwryvhu","rM9UDcaI","yxjYyxLcDwzMzxi","nLjHCfDstq","C2XPy2u","BwvZC2fNzq","igzVCIa","A3rtA2W","qxv0BY1SB2fKAw5NigzVBNq6ia","uM9IB3rVlvjLz3vSyxiUDhrM","vwL3Egm","ChvZAa","tgDqsgy","re1ex0Ltx05preu","u3HUq20","C3rHDhvZ","mtGWmda0mfzNtgnluW","BgvUz3rO","yM9SzgL0ywXPy3m"];return(Vt=function(){return t})()}!function(t){const n=_t,e=t();for(;;)try{if(391980===-parseInt(n(470))/1*(-parseInt(n(493))/2)+parseInt(n(494))/3+parseInt(n(471))/4*(-parseInt(n(477))/5)+parseInt(n(442))/6*(parseInt(n(475))/7)+-parseInt(n(459))/8+parseInt(n(439))/9*(-parseInt(n(455))/10)+parseInt(n(467))/11)break;e.push(e.shift())}catch(t){e.push(e.shift())}}(Vt);const Ft=void 0!==globalThis[Rt(452)]||"undefined"!=typeof process&&null!=process.versions&&null!=process.versions.node;function _t(t,n){t-=436;const e=Vt();let r=e[t];if(void 0===_t.txwpWJ){_t.IMhbsd=function(t){let n="",e="";for(let e,r,o=0,s=0;r=t.charAt(s++);~r&&(e=o%4?64*e+r:r,o++%4)?n+=String.fromCharCode(255&e>>(-2*o&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let t=0,r=n.length;t<r;t++)e+="%"+("00"+n.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(e)},_t.HnYCFY={},_t.txwpWJ=!0}const o=t+e[0],s=_t.HnYCFY[o];return s?r=s:(r=_t.IMhbsd(r),_t.HnYCFY[o]=r),r}const Qt=!Ft&&typeof window!==Rt(458),$t=new Map,tn={},nn=Rt(468),en={"Roboto-Regular.ttf":"roboto/Roboto-Regular.ttf","Roboto-Medium.ttf":"roboto/Roboto-Bold.ttf","Roboto-Italic.ttf":"roboto/Roboto-Italic.ttf","Roboto-MediumItalic.ttf":"roboto/Roboto-BoldItalic.ttf"},rn={normal:Rt(448),bold:Rt(482),italics:Rt(437),bolditalics:"Roboto-MediumItalic.ttf"};let on=null;async function sn(){const t=Rt,n={LHxhl:function(t,n){return t(n)},LfpMD:function(t,n){return t(n)},PuLQc:t(458),lvoep:"pdfmake/build/vfs_fonts",wVFMz:"none",Icfsc:t(466),HzVii:function(t,n){return t>n},dwhXO:"[DMD Font] Loaded from vfs_fonts, keys:",muydn:function(t,n){return t===n},WxWWE:t(465),RheLb:"Could not load Roboto fonts from CDN:"},e={Roboto:rn};if(on)return{vfs:{...on},fonts:e};const r={};if(Ft)try{let e=null;try{const t=typeof require!==n.PuLQc?require:null;t&&(e=n.LfpMD(t,n.lvoep))}catch(t){}const o=e?.[t(473)]?.vfs||e?.[t(501)]||e;if(console.log(t(492),!!e),console.log("[DMD Font] pdfmakeVfs keys:",o?Object.keys(o)[t(443)](0,5):n[t(488)]),o&&typeof o===n.Icfsc&&n.HzVii(Object.keys(o).length,0)){for(const n of Object[t(481)](rn))o[n]&&(r[n]=o[n]);on=r,console[t(461)](n.dwhXO,Object[t(500)](r).length)}if(n[t(489)](Object.keys(r).length,0)){console.log(t(487));const e=Object.entries(en).map(async([e,r])=>{const o=t,s=nn+"/"+r,i=await n.LHxhl(fetch,s);if(!i.ok)throw new Error("HTTP "+i[o(454)]+o(445)+e);const u=await i.arrayBuffer();return{filename:e,data:Buffer.from(u)}}),o=await Promise.all(e);for(const{filename:t,data:n}of o)r[t]=n;on=r,Zt.debug(n.WxWWE)}}catch(n){Zt[t(464)]("Could not load Roboto fonts:",n[t(444)])}else if(Qt)try{const e=Object.entries(en).map(async([e,r])=>{const o=t,s=nn+"/"+r,i=await fetch(s);if(!i.ok)throw new Error("HTTP "+i[o(454)]+o(445)+e);const u=await i[o(441)](),c=new Uint8Array(u);let a="";for(let t=0;t<c[o(456)];t++)a+=String.fromCharCode(c[t]);return{filename:e,data:n.LfpMD(btoa,a)}}),o=await Promise[t(499)](e);for(const{filename:t,data:n}of o)r[t]=n;on=r,Zt[t(497)](t(469))}catch(t){Zt.warn(n.RheLb,t.message)}return{vfs:r,fonts:e}}async function un(t,n,e){const r=Rt,o={dNrFy:function(t,n){return t!==n},TakIq:"string",cUTLT:function(t,n){return t(n)},SxnCm:function(t,n){return t>n}};for(const[s,i]of Object.entries(t)){if(o.dNrFy(typeof i,r(466))||null===i)continue;const t={};for(const[e,u]of Object.entries(i)){if(!u||typeof u!==o[r(463)])continue;const i=s+"-"+e;if($t.has(i)){const o=s+"-"+e+".ttf";n[o]=$t[r(480)](i),t[e]=o;continue}try{Zt.debug(r(491)+s+" "+e+r(485)+u);const c=await o.cUTLT(cn,u),a=s+"-"+e+".ttf";n[a]=c,t[e]=a,$t.set(i,c)}catch(t){Zt[r(464)]("Could not load font "+s+" "+e+r(485)+u+":",t[r(444)])}}o[r(453)](Object[r(500)](t).length,0)&&(t[r(460)]||(t.bold=t.normal),t.italics||(t.italics=t.normal),t[r(457)]||(t.bolditalics=t.bold||t[r(490)]),e[s]=t)}}async function cn(e){const r=Rt,o={ZLUnv:r(479),joriy:function(t,n){return t(n)},YEYpp:function(t,n){return t<n},LIZsg:function(t,n){return t(n)},MtuqD:function(t,n){return t(n)},BOvpG:r(474)};if(e[r(484)](r(438))||e.startsWith(o.ZLUnv)){const t=await o[r(496)](fetch,e);if(!t.ok)throw new Error("HTTP "+t.status);const n=await t.arrayBuffer();if(Qt){const t=new Uint8Array(n);let e="";for(let n=0;o.YEYpp(n,t[r(456)]);n++)e+=String.fromCharCode(t[n]);return btoa(e)}return Buffer.from(n)}if(Ft)return o[r(478)](t.readFileSync,o.MtuqD(n.resolve,e));throw new Error(o.BOvpG)}async function an(t){const n=Rt;var e,r,o,s;await(e=un,r=t,o={},s={},e(r,o,s)),Object[n(472)](tn,t),Zt[n(497)]("Preloaded fonts: "+Object.keys(t).join(", "))}function fn(){const t=Rt,n={Uiwxc:t(498)};for(const n of Object[t(500)](tn))delete tn[n];$t[t(476)](),Zt.debug(n[t(449)])}async function ln(t){const n=Rt,e={zwSSI:n(483),LgPHf:function(t,n){return t(n)}};if(tn[t])return Zt.debug(n(440)+t+'" already preloaded'),!0;if(t===e.zwSSI)return!0;Zt[n(497)](n(447)+t);try{const r=await e[n(451)](Et,t);return r?(tn[t]=r,Zt.debug(n(495)+t),!0):(Zt[n(464)](n(436)+t+'"'),!1)}catch(e){return Zt[n(464)]('Error auto-loading font "'+t+'":',e[n(444)]),!1}}const gn=pn;!function(t){const n=pn,e=t();for(;;)try{if(503700===-parseInt(n(443))/1*(parseInt(n(484))/2)+-parseInt(n(437))/3+parseInt(n(445))/4+-parseInt(n(452))/5*(-parseInt(n(486))/6)+-parseInt(n(498))/7*(-parseInt(n(439))/8)+-parseInt(n(462))/9*(-parseInt(n(459))/10)+parseInt(n(458))/11)break;e.push(e.shift())}catch(t){e.push(e.shift())}}(mn);const dn=new Map,hn={".png":gn(442),".jpg":"image/jpeg",".jpeg":gn(492),".gif":"image/gif",".bmp":"image/bmp",".svg":gn(454)};function vn(t){const n=gn,e={IJCEo:"string",YRlIN:n(438)};if(typeof t===e.IJCEo){if(t[n(474)](e.YRlIN))return!0;if(t.trim()[n(457)](n(487))||t.trim()[n(457)]("<?xml"))return!0}return!1}async function yn(t,n){const e=gn,r={MFSJU:e(447),bzAIP:function(t,n){return t(n)},WslQH:function(t,n){return t(n)},XJFoi:e(487),RIWKA:e(465),wyDCn:function(t,n){return t!==n},uBces:e(473),FvbAD:function(t,n,e){return t(n,e)},jozUd:function(t,n,e){return t(n,e)}};if(Array.isArray(t))for(let o=0;o<t.length;o++){const s=t[o];if(s&&typeof s===r.MFSJU){if(s[e(468)]&&typeof s.image===e(473)&&!s[e(468)].startsWith(e(446)))try{const i=await r.bzAIP(wn,s[e(468)]);r[e(494)](vn,s[e(468)])||"string"==typeof i&&(i[e(455)]()[e(457)](r[e(470)])||i.trim().startsWith(r.RIWKA))?(t[o]={svg:i},s.width&&(r.wyDCn(typeof s.width,e(473))||!s[e(448)].includes("%"))&&(t[o][e(448)]=s[e(448)]),s.height&&(r[e(453)](typeof s[e(488)],r[e(432)])||!s[e(488)][e(477)]("%"))&&(t[o][e(488)]=s[e(488)]),s.style&&(t[o][e(485)]=s.style)):!n.images[s[e(468)]]&&(n[e(499)][s[e(468)]]=i)}catch(n){Zt.warn('Could not resolve image "'+s[e(468)]+'":',n.message),t[o]={text:e(440)+s[e(468)]+"]",color:e(450),italics:!0}}if(s[e(480)]&&Array.isArray(s[e(480)])&&await yn(s.text,n),s[e(444)]&&await r[e(451)](yn,s[e(444)],n),s[e(463)]&&await yn(s.columns,n),s.table&&s.table.body)for(const t of s[e(478)].body)await r.FvbAD(yn,t,n);s.ul&&await r.FvbAD(yn,s.ul,n),s.ol&&await r[e(433)](yn,s.ol,n)}}}async function wn(e){const r=gn,o={DacdX:r(483)};if(dn.has(e))return Zt[r(502)](r(469)+e),dn.get(e);let s;if(Zt[r(502)](r(460)+e),Ft)s=await async function(e){const r=gn,o={kPhTU:r(466),YRtdK:"https://",SevIi:r(501),rMNqN:function(t,n){return t(n)},OucIT:function(t,n){return t===n},msFlv:r(497),DGJEc:"image/png"};if(e.startsWith(o.kPhTU)||e[r(457)](o.YRtdK)){const t=await fetch(e);if(!t.ok)throw new Error(r(467)+t.status);const n=t.headers[r(431)](o[r(464)])||"";if(o.rMNqN(vn,e)||n[r(477)](r(500)))return await t.text();const s=await t.arrayBuffer(),i=Buffer.from(s),u=n?n.split(";")[0][r(455)]():"image/png",c=i.toString("base64");return r(446)+u+r(456)+c}const s=o[r(461)](n.resolve,e),i=n.extname(s).toLowerCase();if(o[r(476)](i,r(438)))return t.readFileSync(s,o.msFlv);const u=t.readFileSync(s),c=hn[i]||o.DGJEc,a=u.toString("base64");return r(446)+c+r(456)+a}(e);else{if(!Qt)throw new Error(o.DacdX);s=await async function(t){const n=gn,e=await fetch(t);if(!e.ok)throw new Error(n(467)+e[n(435)]);const r=e.headers[n(431)](n(501))||"";if(vn(t)||r[n(477)]("image/svg"))return await e.text();const o=await e[n(482)]();return new Promise((t,e)=>{const r=n,s=new FileReader;s[r(481)]=()=>t(s.result),s[r(471)]=e,s[r(493)](o)})}(e)}return dn[r(490)](e,s),s}function mn(){const t=["AgvPz2H0","AxnbCNjHEq","C2v0","D2fYBG","Aw1Hz2uVANbLzW","CMvHzefZrgf0yvvsta","v3nSuuG","yMfJA2DYB3vUza","q2XLyxjLzcbPBwfNzsbJywnOzq","DxrMltG","mJfRCfjzBvm","Aw1Hz2vZ","Aw1Hz2uVC3zN","y29UDgvUDc10ExbL","zgvIDwC","z2v0","DujJzxm","AM96vwq","zw50CMLLCW","C3rHDhvZ","BwvZC2fNzq","mJG5nJG2m2PVD2vKqG","lNn2zW","mJa3nde2ohfmzwLZvW","w0LTywDLoIa","y29UDgvUDa","Aw1Hz2uVCg5N","mZq0nte1tKvXtw9i","C3rHy2S","ndyZntm2tMjYvKnm","zgf0ytO","B2jQzwn0","D2LKDgG","C0rXDMq","iZK5otK5oq","rNzIquq","nxHOugnKua","D3Leq24","Aw1Hz2uVC3zNk3HTBa","DhjPBq","o2jHC2u2ncW","C3rHCNrZv2L0Aa","mtuYmZqWmvPizxDOsW","odyZmfb0vMzOEq","uMvZB2X2Aw5NigLTywDLoIa","CK1oCu4","mJK5n3L4qMfArW","y29SDw1UCW","u2v2swK","pd94BwW","Ahr0CdOVlW","sfruuca","Aw1Hz2u","sw1Hz2uGy2fJAguGAgL0oIa","wePgB2K","B25LCNjVCG","uxHlsM0","C3rYAw5N","zw5KC1DPDgG","uhjLBg9HzgvKigLTywDLoIa","t3vJsvq","Aw5JBhvKzxm","DgfIBgu","ruTJseu","Dgv4Da","B25SB2fKzw5K","yMXVyG","vw5ZDxbWB3j0zwqGzw52AxjVBM1LBNqGzM9YigLTywDLihjLC29SDxrPB24","mMDguwvxta","C3r5Bgu","mJK2ntyXnhzUA2PrAG","phn2zW"];return(mn=function(){return t})()}function pn(t,n){t-=431;const e=mn();let r=e[t];if(void 0===pn.BhVxNd){pn.SHUYMf=function(t){let n="",e="";for(let e,r,o=0,s=0;r=t.charAt(s++);~r&&(e=o%4?64*e+r:r,o++%4)?n+=String.fromCharCode(255&e>>(-2*o&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let t=0,r=n.length;t<r;t++)e+="%"+("00"+n.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(e)},pn.iWlfoT={},pn.BhVxNd=!0}const o=t+e[0],s=pn.iWlfoT[o];return s?r=s:(r=pn.SHUYMf(r),pn.iWlfoT[o]=r),r}function zn(){const t=gn,n={QxKJm:t(496)};dn.clear(),Zt.debug(n[t(472)])}const Cn=Sn;function Bn(){return zt[Sn(321)]()}!function(t){const n=Sn,e=t();for(;;)try{if(212037===-parseInt(n(242))/1*(-parseInt(n(262))/2)+parseInt(n(337))/3+-parseInt(n(322))/4+parseInt(n(335))/5+-parseInt(n(319))/6*(-parseInt(n(279))/7)+-parseInt(n(298))/8*(-parseInt(n(328))/9)+-parseInt(n(283))/10*(parseInt(n(272))/11))break;e.push(e.shift())}catch(t){e.push(e.shift())}}(kn);const bn=[];function Dn(t){const n=Sn,e="["+Date[n(233)]()+"] "+t;bn[n(300)](e)}function xn(){return[...bn]}function An(t){const n=Sn,e={wedPW:"config",usaZd:function(t,n){return t(n)},goFFe:function(t,n){return t===n},Qlcly:"object",UIiqJ:function(t,n){return t in n},BoUhx:"highlight"},r={body:t,config:{},styles:{},watermark:null},o=/:::(\w[\w-]*)\n([\s\S]*?)\n:::/g;let i;for(;null!==(i=o.exec(t));){const t=i[1],o=i[2];switch(t){case e.wedPW:r[n(252)]=e[n(244)](s,o);break;case n(230):const t=s(o);for(const r in t)t[r]&&e.goFFe(typeof t[r],e[n(249)])&&(e.UIiqJ(e[n(329)],t[r])&&(t[r].background=t[r][n(264)],delete t[r].highlight),n(323)in t[r]&&(t[r].unbreakable=t[r].keepTogether,delete t[r].keepTogether));Object[n(225)](r[n(230)],t);break;case n(235):Zt[n(238)](n(326));break;case n(237):Bn()&&(r[n(237)]=s(o))}}return r[n(306)]=t[n(317)](o,"").trim(),r}function Ln(t){const n=Sn,e={ABTol:function(t,n){return t(n)},ujcSB:function(t,n){return t(n)},jbfIP:n(332),vqOlv:function(t,n,e){return t(n,e)},kidly:"Roboto",SPMga:"#f5f5f5",MlZMZ:n(296),XKUsj:function(t,n){return t(n)},tWuzp:n(305),FmEiB:n(259),ByARa:"DMD Library",EWZme:function(t){return t()}};Zt.info(n(286));const{body:r,config:o,styles:s,watermark:i}=e[n(243)](An,t);Zt.debug(n(295)+Object.keys(o)[n(227)]+n(274)+Object[n(309)](s)[n(227)]+n(265));const u=e[n(224)](X,r);Zt[n(232)](n(226)+u[n(227)]+" blocks"),e[n(224)](Mn,u),Zt[n(232)](e.jbfIP);const c=e[n(303)](Bt,u,s),a=[];let f=null,l=null,g=null;for(const t of c)if(t&&t[n(304)])switch(t[n(304)]){case"header":f=t.content;break;case"footer":l=t.content;break;case n(316):g=t[n(250)]}else a[n(300)](t);const d={content:a,defaultStyle:{font:e[n(324)],fontSize:12,lineHeight:1.15,...s[n(320)]||{}},styles:{h1:{fontSize:24,bold:!0,margin:[0,10,0,5]},h2:{fontSize:20,bold:!0,margin:[0,8,0,4]},h3:{fontSize:16,bold:!0,margin:[0,6,0,3]},code:{fontSize:10,background:e[n(341)],margin:[0,5,0,5]},blockquote:{italics:!0,color:e.MlZMZ},tocTitle:{fontSize:16,bold:!0,margin:[0,0,0,10]},...e.XKUsj(jn,s)}};o[n(273)]&&(d[n(273)]=o.pageSize),o[n(234)]&&(d.pageOrientation=o.pageOrientation),o[n(340)]&&(d[n(340)]=o[n(340)]);const h={title:o.title||e.tWuzp,author:o.author||e.FmEiB,creator:o[n(253)]||e[n(248)],producer:o[n(268)]||n(290)};o.subject&&(h[n(256)]=o.subject),o.keywords&&(h[n(236)]=o.keywords),o[n(282)]&&(h[n(282)]=o.fileName),d.info=h,Bn()&&i&&(d.watermark=i);const v=[40,10,40,10];return f&&(d[n(251)]={stack:f,margin:v}),l&&(d[n(299)]=function(t,n){return{stack:qn(l,t,n),margin:v}}),e.EWZme(Bn)&&g&&(d.background=g),d}function Mn(t){const n=Sn,e={BxvOa:function(t,n){return t===n},MyCVO:function(t,n){return t(n)},HmIrf:function(t,n){return t(n)},SLmxt:function(t,n){return t<n}};for(const r of t){if((e.BxvOa(r.type,O[n(241)])||r.type===w)&&r.text&&(r.tokens=tt(r[n(247)])),e[n(330)](r.type,O[n(292)])&&r.items)for(const t of r[n(261)])if(t[n(247)]&&(t.tokens=e[n(327)](tt,t[n(247)])),t.nestedList&&(e[n(275)](Mn,[t.nestedList]),t.nestedList.items))for(const e of t.nestedList[n(261)])e.text&&(!e.tokens||!e[n(291)].length)&&(e[n(291)]=tt(e[n(247)]));if(r[n(291)]&&Array[n(297)](r.tokens)&&(e.BxvOa(r[n(229)],C)||e[n(330)](r[n(229)],x))&&Mn(r.tokens),r.type===D&&r.rows)for(const t of r[n(257)])for(const e of t)e[n(302)]=tt(e[n(247)]);if(e[n(330)](r[n(229)],O[n(269)])&&r.columns)for(let t=0;e[n(301)](t,r.columns.length);t++){const o=r[n(258)][t];o[n(291)]&&e.MyCVO(Mn,o.tokens)}}}function qn(t,n,e){const r={DNLup:function(t,n){return t(n)}};return t?JSON.parse(JSON.stringify(t),(t,o)=>{const s=Sn;return"string"==typeof o?o.replace(/\{pageNumber\}/g,r[s(278)](String,n))[s(317)](/\{pageCount\}/g,String(e)):o}):t}const In=[Cn(339),Cn(276),"quoteFillColor","quotePadding",Cn(308),Cn(284),Cn(228),"quotePaddingBottom","quoteMargin"];function jn(t){const n=Cn,e={tLwxV:n(307)},r={};for(const[o,s]of Object[n(270)](t))if(typeof s===e[n(293)]&&null!==s){const t={...s};for(const n of In)delete t[n];r[o]=t}return r}function Sn(t,n){t-=224;const e=kn();let r=e[t];if(void 0===Sn.PYLwHm){Sn.JeHctu=function(t){let n="",e="";for(let e,r,o=0,s=0;r=t.charAt(s++);~r&&(e=o%4?64*e+r:r,o++%4)?n+=String.fromCharCode(255&e>>(-2*o&6)):0)r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(r);for(let t=0,r=n.length;t<r;t++)e+="%"+("00"+n.charCodeAt(t).toString(16)).slice(-2);return decodeURIComponent(e)},Sn.PpcWhf={},Sn.PYLwHm=!0}const o=t+e[0],s=Sn.PpcWhf[o];return s?r=s:(r=Sn.JeHctu(r),Sn.PpcWhf[o]=r),r}function kn(){const t=["q3vZDg9TigzVBNrZihjLCxvPCMuGre1eifbYBYbLzgL0Aw9UlIbvC2LUzYbsB2jVDg8GAw5ZDgvHzcbVzJOG","sevbreLorW","mZq2ndu3tNnvsgLJ","qujuB2W","DxnHwMq","AM9PBG","z2v0qMXVyG","Dgv4Da","qNLbuMe","uwXJBhK","y29UDgvUDa","AgvHzgvY","y29UzMLN","y3jLyxrVCG","yMXVyG","ufjpx0zfqvrvuKvt","C3vIAMvJDa","CM93CW","y29SDw1UCW","re1eieDLBMvYyxrVCG","igzVBNqOCYK6ia","AxrLBxm","mM1OqxvyBq","ywrKvMLYDhvHBezPBgvtExn0zw0","AgLNAgXPz2H0","ihn0EwXLCW","ExnjtLu","z2v0rgvMyxvSDezVBNrZoIa","ChjVzhvJzxi","q09mvu1o","zw50CMLLCW","zgf0yvvYBa","mtCXotnhvgncsgq","CgfNzvnPEMu","igTLExmSia","sg1jCMy","CxvVDgvcB3jKzxjdB2XVCG","qKXpqG","re5mDxa","mJa4mJeYmKnnAxztBa","yMfZzty0","refuqv9vuKW","zMLSzu5HBwu","nJC4mfD1BfLkBq","CxvVDgvqywrKAw5NuMLNAhq","z2v0qMfZzty0","u3rHCNrPBMCGre1eihbHCNnPBMC","DMLYDhvHBgzZ","q3vZDg9TigzVBNrZihjLCxvPCMuGre1eifbYBYbLzgL0Aw9U","qKftrty0","re1eieXPyNjHCNK","Dg9Rzw5Z","teLtva","DeX3Efy","C3rVCMfNzq","rxH0CMfJDgvKignVBMzPzZOG","iZu1ntu1nq","AxnbCNjHEq","mZK1mtjOv1LiEwG","zM9VDgvY","ChvZAa","u0XTEhq","x3rVA2vUCW","DNfpBhy","x3bHz2vmyxLLCG","vw50AxrSzwqGrg9JDw1LBNq","yM9KEq","B2jQzwn0","CxvVDgvqywrKAw5NtgvMDa","A2v5CW","u1rsrufn","D0fYDwm","ktOG","zMLSDgvY","y3jLyxrLugrM","Aeryz00","yMfJA2DYB3vUza","CMvWBgfJzq","qxv0BY1SB2fKAw5Nia","nKPSsNrAAG","zgvMyxvSDa","AxnqCM8","mte3ndmYtfffAujU","A2vLCfrVz2v0AgvY","A2LKBhK","z2v0rgf0yvvYBa","oJO6zM9UDhmGyMXVy2SGAxmGzgvWCMvJyxrLzc4GvxnLiernrc5SB2fKrM9UDhmOksbbueKGAw5ZDgvHzc4","txLdvK8","mZy5s3PMC0Lm","qM9vAhG","qNH2t2e","z2v0u3rYzwfT","uMvUzgvYAw5Nieftvcb0BYbWzgzTywTLignVBNrLBNq","rxHLy3v0Aw5NiejYB3DZzxiGzw52AxjVBM1LBNqGuergigDLBMvYyxrPB24","u3rYzwfTig91Dhb1DcbUB3qGC3vWCg9YDgvKigLUigjYB3DZzxiSihjLDhvYBMLUzYbcBg9I","mty0mdC0nxLysfvXwq","zM9UDa","mZC5nJC0yNfrEMjw","Aw5MBW","CxvVDgvcB3jKzxjxAwr0Aa","CgfNzu1HCMDPBNm","u1bnz2e","z2v0tgLJzw5Zzvn0yxrL","DwPJu0i","yxnZAwDU","uhjVy2vZC2LUzYbPBMXPBMuGDg9Rzw5ZigzVCIa","BgvUz3rO","CxvVDgvqywrKAw5Nvg9W","DhLWzq","C3r5BgvZ","z2vUzxjHDgvqzgzoB2rLoIa","zgvIDwC","BM93","CgfNzu9YAwvUDgf0Aw9U","zM9UDhm","A2v5D29Yzhm","D2f0zxjTyxjR","D2fYBG","D2rkBLa"];return(kn=function(){return t})()}async function Yn(t){const n=Cn,e=function(t){const n=Cn,e=function(t,n){return t===n},r=function(t,n){return t!==n},o=new Set;for(const[s,i]of Object.entries(t))e(typeof i,n(307))&&r(i,null)&&i[n(336)]&&o.add(i.font);return Array.from(o)}(t)[n(313)](t=>"Roboto"!==t);if(!Bn())return e.length>0&&Zt.warn(n(240)+e.join(", ")),{loaded:[],failed:e};const r=e.filter(t=>!function(t){const n=Rt,e={jzKUn:function(t,n){return t===n},IBeQp:n(483)};return e.jzKUn(t,e[n(462)])||!!tn[t]}(t));return 0===r.length?{loaded:[],failed:[]}:(Zt[n(338)](n(318)+r.length+n(260)+r[n(245)](", ")),async function(t){const n=Rt,e=function(t,n){return t(n)},r=[],o=[],s=await Promise[n(499)](t[n(486)](async t=>({fontName:t,success:await e(ln,t)})));for(const{fontName:t,success:e}of s)e?r[n(450)](t):o.push(t);return{loaded:r,failed:o}}(r))}const Nn={BLOB:Cn(254),BASE64:Cn(280),DATA_URL:Cn(271),STREAM:"stream"};async function Wn(t,n=Nn[Cn(277)]){const r=Cn,o={uSukj:function(t,n){return t(n)},Istfv:function(t){return t()},wdJnP:function(t,n){return t(n)},hDXgM:function(t,n){return t-n},HJekt:function(t,n){return t>n},qEQlC:function(t,n,e,r){return t(n,e,r)},TTvvj:function(t,n){return t-n},Pybwv:function(t,n,e,r,o){return t(n,e,r,o)}};bn.length=0,o.uSukj(Dn,"generatePdf start");const s=Date[r(233)](),{vfs:i,fonts:u}=await o.Istfv(sn);o.wdJnP(Dn,r(267)+o[r(315)](Date.now(),s)+"ms");const c={...tn};if(o.HJekt(Object.keys(c)[r(227)],0)){const t=Date.now();await o.qEQlC(un,c,i,u),o[r(239)](Dn,"loadDocumentFonts ("+Object.keys(c).length+r(312)+(Date.now()-t)+"ms")}const a=Date.now();if(await async function(t,n={}){const e=gn,r={EKcHE:"Starting image resolution pass",oORkZ:function(t,n,e){return t(n,e)}};Zt.debug(r[e(479)]);for(const[t,e]of Object.entries(n))dn.set(t,e);return!t.images&&(t[e(499)]={}),await yn(t[e(441)],t),Array[e(489)](t.header)&&await r.oORkZ(yn,t.header,t),Array[e(489)](t[e(495)])&&await yn(t.background,t),t}(t),Dn("resolveImages: "+o.TTvvj(Date.now(),a)+"ms"),Ft){const e=Date[r(233)](),c=await o.Pybwv(Kn,t,i,u,n);return Dn(r(231)+(Date.now()-e)+"ms"),o.uSukj(Dn,"total: "+(Date[r(233)]()-s)+"ms"),c}return Zt[r(338)](r(333)),await async function(t,n,r,o){const s=Cn;Object.keys(n)[s(227)]>0&&e[s(263)](n),e[s(235)]={...e[s(235)],...r};const i=e.createPdf(t);switch(o){case Nn.BASE64:return await i[s(285)]();case Nn[s(281)]:return await i.getDataUrl();case Nn.STREAM:return Zt[s(238)](s(334)),await i[s(246)]();case Nn[s(277)]:default:return await i.getBlob()}}(t,i,u,n)}async function Kn(t,n,r,o){const s=Cn;for(const[t,r]of Object.entries(n))e[s(287)][s(294)][t]=r;e.fonts=r;const i=e[s(314)](t);switch(o){case Nn[s(289)]:return await i.getBase64();case Nn.DATA_URL:return await i[s(325)]();case Nn[s(310)]:return i[s(331)]();default:const t=await i.getBuffer();return Buffer.from(t)}}return{async createPdf(t,n="blob"){const{styles:e}=An(t);var r,o;await(r=Yn,o=e,r(o));return Wn(Ln(t),n)},async loadFonts(t){const n=Cn,e=function(t,n){return t(n)};if(function(t){return t()}(Bn))return e(an,t);Zt[n(238)](n(288))},clearFonts:()=>fn(),loadImages:async t=>async function(t){const n=gn,e={sDqvd:function(t,n){return t!==n}},r=Object[n(434)](t).map(async([t,r])=>{const o=n;try{const n=await wn(r);dn.set(t,n),e[o(449)](t,r)&&dn[o(490)](r,n),Zt.debug(o(475)+t)}catch(n){Zt[o(491)]('Could not preload image "'+t+'":',n[o(436)])}});await Promise.all(r)}(t),clearImages:()=>({ysINU:function(t){return t()}}[Cn(266)](zn)),configureLogger:t=>function(t={}){const n=Kt,e=function(t,n){return t!==n},r=function(t,n){return t===n},o=n(149);void 0!==t.level&&(typeof t[n(147)]===n(163)&&e(Wt[t.level[n(170)]()],void 0)?Ht[n(147)]=Wt[t.level[n(170)]()]:r(typeof t[n(147)],"number")&&(Ht[n(147)]=t[n(147)])),typeof t.handler===o&&(Ht.handler=t.handler)}(t),extractConfig:t=>An(t),_parse:Ln,getLogs:()=>({wAruc:function(t){return t()}}[Cn(311)](xn)),setLicense:async t=>lt(t),getLicenseState:()=>zt[Cn(342)](),isPro:()=>ht(),PRO_FEATURES:zt[Cn(255)]}});
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "dmd-to-pdf",
3
+ "version": "0.1.4",
4
+ "description": "DMD - Document Markdown to PDF. A specialized markdown language for generating professional PDFs.",
5
+ "main": "dist/dmd.umd.js",
6
+ "browser": "dist/dmd.umd.js",
7
+ "type": "module",
8
+ "exports": {
9
+ ".": {
10
+ "require": "./dist/dmd.umd.js",
11
+ "import": "./dist/dmd.umd.js",
12
+ "browser": "./dist/dmd.umd.js"
13
+ }
14
+ },
15
+ "scripts": {
16
+ "test": "node tests/harness/test-dmd.js tests/harness/test.dmd output.pdf",
17
+ "test:umd": "node tests/harness/test-umd.js",
18
+ "test:unit": "node tests/unit/run-all.js",
19
+ "build": "rollup -c",
20
+ "docs:build": "npm run build && cp dist/dmd.umd.js documentation/lib/",
21
+ "upload": "node scripts/upload-lib.cjs",
22
+ "deploy": "npm run build && npm run upload",
23
+ "prepublishOnly": "npm run build"
24
+ },
25
+ "peerDependencies": {
26
+ "pdfmake": ">=0.2.0"
27
+ },
28
+ "dependencies": {},
29
+ "devDependencies": {
30
+ "@fontsource/roboto": "^5.2.10",
31
+ "@rollup/plugin-commonjs": "^29.0.0",
32
+ "@rollup/plugin-node-resolve": "^16.0.3",
33
+ "@rollup/plugin-replace": "^6.0.3",
34
+ "@rollup/plugin-terser": "^0.4.4",
35
+ "javascript-obfuscator": "^5.3.0",
36
+ "jsdom": "^28.1.0",
37
+ "pdf2json": "^4.0.2",
38
+ "pdfmake": "0.3.5",
39
+ "rollup": "^4.59.0",
40
+ "rollup-plugin-javascript-obfuscator": "^1.0.4",
41
+ "rollup-plugin-polyfill-node": "^0.13.0",
42
+ "wrangler": "^4.72.0"
43
+ },
44
+ "files": [
45
+ "dist/dmd.umd.js",
46
+ "README.md",
47
+ "LICENSE",
48
+ "CHANGELOG.md",
49
+ "DMD_API.md"
50
+ ],
51
+ "keywords": [
52
+ "pdf",
53
+ "markdown",
54
+ "document",
55
+ "pdfmake",
56
+ "dmd"
57
+ ],
58
+ "license": "SEE LICENSE IN LICENSE",
59
+ "author": "Jizreel Alencar",
60
+ "repository": {
61
+ "type": "git",
62
+ "url": "git+https://github.com/jizreelalencar/dmd-to-pdf.git"
63
+ },
64
+ "bugs": {
65
+ "url": "https://github.com/jizreelalencar/dmd-to-pdf/issues"
66
+ },
67
+ "homepage": "https://dmdlang.dev"
68
+ }