@poe-platform/safe-bash 0.1.710 → 0.1.712
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/README.md +21 -1
- package/dist/safe-bash/commands/fmt/index.d.ts +2 -0
- package/dist/safe-bash/commands/fmt/index.d.ts.map +1 -0
- package/dist/safe-bash/commands/fmt/index.js +2 -0
- package/dist/safe-bash/commands/fmt/index.js.map +1 -0
- package/dist/safe-bash/commands/fmt.d.ts +1 -2
- package/dist/safe-bash/commands/fmt.d.ts.map +1 -1
- package/dist/safe-bash/commands/fmt.js +1 -838
- package/dist/safe-bash/commands/fmt.js.map +1 -1
- package/dist/safe-bash/commands/time-env/printenv.d.ts +1 -1
- package/dist/safe-bash/commands/time-env/printenv.d.ts.map +1 -1
- package/dist/safe-bash/commands/time-env/sleep.d.ts +1 -1
- package/dist/safe-bash/commands/time-env/sleep.d.ts.map +1 -1
- package/dist/safe-bash/core.browser.js +155 -2099
- package/dist/safe-bash/core.browser.js.map +3 -3
- package/dist/safe-bash/playwright/private-target-transport.d.ts.map +1 -1
- package/dist/safe-bash/playwright/private-target-transport.js +18 -2
- package/dist/safe-bash/playwright/private-target-transport.js.map +1 -1
- package/dist/safe-bash/playwright/profile.d.ts +3 -1
- package/dist/safe-bash/playwright/profile.d.ts.map +1 -1
- package/dist/safe-bash/playwright/profile.js +3 -3
- package/dist/safe-bash/playwright/profile.js.map +1 -1
- package/dist/safe-bash-command-exiftool/index.js +1401 -6
- package/dist/safe-bash-command-exiftool/index.js.map +7 -0
- package/dist/safe-bash-command-fmt/arguments.d.ts +8 -0
- package/dist/safe-bash-command-fmt/command.d.ts +20 -0
- package/dist/safe-bash-command-fmt/contracts.d.ts +42 -0
- package/dist/safe-bash-command-fmt/engine.d.ts +20 -0
- package/dist/safe-bash-command-fmt/index.d.ts +5 -0
- package/dist/safe-bash-command-fmt/index.js +2419 -0
- package/dist/safe-bash-command-fmt/index.js.map +7 -0
- package/dist/safe-bash-command-fmt/sdk.d.ts +15 -0
- package/dist/safe-bash-command-wkhtmltopdf/index.js +1458 -7
- package/dist/safe-bash-command-wkhtmltopdf/index.js.map +7 -0
- package/dist/safe-bash-contracts/index.d.ts +8 -0
- package/dist/safe-bash-contracts/index.js +8 -0
- package/dist/safe-playwright-cloudflare/browser-run-code.js +15 -1
- package/package.json +6 -2
- package/dist/safe-bash-command-exiftool/argfiles.js +0 -163
- package/dist/safe-bash-command-exiftool/arguments.js +0 -128
- package/dist/safe-bash-command-exiftool/command.js +0 -324
- package/dist/safe-bash-command-exiftool/csv.js +0 -78
- package/dist/safe-bash-command-exiftool/paths.js +0 -18
- package/dist/safe-bash-command-exiftool/png.js +0 -308
- package/dist/safe-bash-command-exiftool/publication.js +0 -80
- package/dist/safe-bash-command-exiftool/registry.js +0 -14
- package/dist/safe-bash-command-exiftool/resources.js +0 -29
- package/dist/safe-bash-command-exiftool/scalar.js +0 -103
- package/dist/safe-bash-command-exiftool/sdk.js +0 -113
- package/dist/safe-bash-command-exiftool/shifts.js +0 -29
- package/dist/safe-bash-command-wkhtmltopdf/command.js +0 -373
- package/dist/safe-bash-command-wkhtmltopdf/engine.js +0 -99
- package/dist/safe-bash-command-wkhtmltopdf/errors.js +0 -11
- package/dist/safe-bash-command-wkhtmltopdf/limits.js +0 -69
- package/dist/safe-bash-command-wkhtmltopdf/outcome.js +0 -38
- package/dist/safe-bash-command-wkhtmltopdf/parser.js +0 -146
- package/dist/safe-bash-command-wkhtmltopdf/resources.js +0 -284
- package/dist/safe-bash-command-wkhtmltopdf/settings.js +0 -35
- package/dist/safe-bash-command-wkhtmltopdf/switches.js +0 -127
- package/dist/safe-bash-command-wkhtmltopdf/values.js +0 -66
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["contracts.js", "bytes.js", "quoting.js", "arguments.js", "engine.js", "command.js", "sdk.js"],
|
|
4
|
+
"sourcesContent": ["export const fmtBaseline = Object.freeze({\n release: 'GNU coreutils 9.10',\n archiveSha256: '16535a9adf0b10037364e2d612aad3d9f4eca3a344949ced74d12faf4bd51d25',\n developmentSource: 'b25722854370b8206d7f53f8934c36710cdd9974',\n profile: 'gnu-coreutils-9.10-C-bytes',\n});\nexport const defaultFmtLimits = Object.freeze({\n inputBytes: 32 * 1024 * 1024, outputBytes: 32 * 1024 * 1024,\n retainedBytes: 80 * 1024, work: 128 * 1024 * 1024, argumentBytes: 65536,\n});\nexport class FmtError extends Error {\n code;\n usage;\n constructor(code, message, usage = false) {\n super(message);\n this.code = code;\n this.usage = usage;\n this.name = 'FmtError';\n }\n}\nexport function validateFmtLimits(limits) {\n for (const value of Object.values(limits))\n if (!Number.isSafeInteger(value) || value < 0)\n throw new FmtError('LIMIT', 'Limits must be nonnegative safe integers');\n for (const key of ['inputBytes', 'outputBytes', 'retainedBytes', 'work', 'argumentBytes'])\n if (limits[key] === undefined)\n throw new FmtError('LIMIT', `Missing ${key} limit`);\n}\nexport function validateFmtProfile(profile) {\n if (profile !== fmtBaseline.profile && profile !== 'gnu-coreutils-8.30-C-bytes')\n throw new FmtError('PROFILE', 'Unavailable fmt byte/locale profile');\n}\n", "import { FmtError } from './contracts.js';\nconst prototype = Object.getPrototypeOf(Uint8Array.prototype);\nconst tag = Object.getOwnPropertyDescriptor(prototype, Symbol.toStringTag).get;\nconst length = Object.getOwnPropertyDescriptor(prototype, 'byteLength').get;\nconst buffer = Object.getOwnPropertyDescriptor(prototype, 'buffer').get;\nconst byteOffset = Object.getOwnPropertyDescriptor(prototype, 'byteOffset').get;\nconst values = Uint8Array.prototype.values;\n/** Intrinsic inspection admits cross-realm byte views without trusting overrides. */\nexport function byteView(input) {\n try {\n if (tag.call(input) !== 'Uint8Array')\n throw new Error();\n return { length: length.call(input), values: values.call(input) };\n }\n catch {\n throw new FmtError('INPUT', 'Input must be an available Uint8Array byte view');\n }\n}\nexport function ownedBytes(input, maximum) {\n const view = byteView(input);\n if (view.length > maximum)\n throw new FmtError('LIMIT', 'Argument byte limit exceeded');\n const result = new Uint8Array(view.length);\n let offset = 0;\n for (const byte of view.values)\n result[offset++] = byte;\n return result;\n}\n/** Borrow only until the source advances; never dispatch producer methods/species. */\nexport function byteSpan(input, offset, count) {\n return new Uint8Array(buffer.call(input), byteOffset.call(input) + offset, count);\n}\n", "import { FmtError } from './contracts.js';\nconst glibc231PrintableRanges = [\n 0x20, 0x7e, 0xa0, 0x377, 0x37a, 0x37f, 0x384, 0x38a, 0x38c, 0x38c, 0x38e, 0x3a1, 0x3a3, 0x52f, 0x531, 0x556,\n 0x559, 0x55f, 0x561, 0x587, 0x589, 0x58a, 0x58d, 0x58f, 0x591, 0x5c7, 0x5d0, 0x5ea, 0x5f0, 0x5f4, 0x600, 0x61c,\n 0x61e, 0x70d, 0x70f, 0x74a, 0x74d, 0x7b1, 0x7c0, 0x7fa, 0x800, 0x82d, 0x830, 0x83e, 0x840, 0x85b, 0x85e, 0x85e,\n 0x8a0, 0x8b4, 0x8b6, 0x8bd, 0x8d4, 0x983, 0x985, 0x98c, 0x98f, 0x990, 0x993, 0x9a8, 0x9aa, 0x9b0, 0x9b2, 0x9b2,\n 0x9b6, 0x9b9, 0x9bc, 0x9c4, 0x9c7, 0x9c8, 0x9cb, 0x9ce, 0x9d7, 0x9d7, 0x9dc, 0x9dd, 0x9df, 0x9e3, 0x9e6, 0x9fb,\n 0xa01, 0xa03, 0xa05, 0xa0a, 0xa0f, 0xa10, 0xa13, 0xa28, 0xa2a, 0xa30, 0xa32, 0xa33, 0xa35, 0xa36, 0xa38, 0xa39,\n 0xa3c, 0xa3c, 0xa3e, 0xa42, 0xa47, 0xa48, 0xa4b, 0xa4d, 0xa51, 0xa51, 0xa59, 0xa5c, 0xa5e, 0xa5e, 0xa66, 0xa75,\n 0xa81, 0xa83, 0xa85, 0xa8d, 0xa8f, 0xa91, 0xa93, 0xaa8, 0xaaa, 0xab0, 0xab2, 0xab3, 0xab5, 0xab9, 0xabc, 0xac5,\n 0xac7, 0xac9, 0xacb, 0xacd, 0xad0, 0xad0, 0xae0, 0xae3, 0xae6, 0xaf1, 0xaf9, 0xaf9, 0xb01, 0xb03, 0xb05, 0xb0c,\n 0xb0f, 0xb10, 0xb13, 0xb28, 0xb2a, 0xb30, 0xb32, 0xb33, 0xb35, 0xb39, 0xb3c, 0xb44, 0xb47, 0xb48, 0xb4b, 0xb4d,\n 0xb56, 0xb57, 0xb5c, 0xb5d, 0xb5f, 0xb63, 0xb66, 0xb77, 0xb82, 0xb83, 0xb85, 0xb8a, 0xb8e, 0xb90, 0xb92, 0xb95,\n 0xb99, 0xb9a, 0xb9c, 0xb9c, 0xb9e, 0xb9f, 0xba3, 0xba4, 0xba8, 0xbaa, 0xbae, 0xbb9, 0xbbe, 0xbc2, 0xbc6, 0xbc8,\n 0xbca, 0xbcd, 0xbd0, 0xbd0, 0xbd7, 0xbd7, 0xbe6, 0xbfa, 0xc00, 0xc03, 0xc05, 0xc0c, 0xc0e, 0xc10, 0xc12, 0xc28,\n 0xc2a, 0xc39, 0xc3d, 0xc44, 0xc46, 0xc48, 0xc4a, 0xc4d, 0xc55, 0xc56, 0xc58, 0xc5a, 0xc60, 0xc63, 0xc66, 0xc6f,\n 0xc78, 0xc83, 0xc85, 0xc8c, 0xc8e, 0xc90, 0xc92, 0xca8, 0xcaa, 0xcb3, 0xcb5, 0xcb9, 0xcbc, 0xcc4, 0xcc6, 0xcc8,\n 0xcca, 0xccd, 0xcd5, 0xcd6, 0xcde, 0xcde, 0xce0, 0xce3, 0xce6, 0xcef, 0xcf1, 0xcf2, 0xd01, 0xd03, 0xd05, 0xd0c,\n 0xd0e, 0xd10, 0xd12, 0xd3a, 0xd3d, 0xd44, 0xd46, 0xd48, 0xd4a, 0xd4f, 0xd54, 0xd63, 0xd66, 0xd7f, 0xd82, 0xd83,\n 0xd85, 0xd96, 0xd9a, 0xdb1, 0xdb3, 0xdbb, 0xdbd, 0xdbd, 0xdc0, 0xdc6, 0xdca, 0xdca, 0xdcf, 0xdd4, 0xdd6, 0xdd6,\n 0xdd8, 0xddf, 0xde6, 0xdef, 0xdf2, 0xdf4, 0xe01, 0xe3a, 0xe3f, 0xe5b, 0xe81, 0xe82, 0xe84, 0xe84, 0xe87, 0xe88,\n 0xe8a, 0xe8a, 0xe8d, 0xe8d, 0xe94, 0xe97, 0xe99, 0xe9f, 0xea1, 0xea3, 0xea5, 0xea5, 0xea7, 0xea7, 0xeaa, 0xeab,\n 0xead, 0xeb9, 0xebb, 0xebd, 0xec0, 0xec4, 0xec6, 0xec6, 0xec8, 0xecd, 0xed0, 0xed9, 0xedc, 0xedf, 0xf00, 0xf47,\n 0xf49, 0xf6c, 0xf71, 0xf97, 0xf99, 0xfbc, 0xfbe, 0xfcc, 0xfce, 0xfda, 0x1000, 0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd,\n 0x10d0, 0x1248, 0x124a, 0x124d, 0x1250, 0x1256, 0x1258, 0x1258, 0x125a, 0x125d, 0x1260, 0x1288, 0x128a, 0x128d, 0x1290, 0x12b0,\n 0x12b2, 0x12b5, 0x12b8, 0x12be, 0x12c0, 0x12c0, 0x12c2, 0x12c5, 0x12c8, 0x12d6, 0x12d8, 0x1310, 0x1312, 0x1315, 0x1318, 0x135a,\n 0x135d, 0x137c, 0x1380, 0x1399, 0x13a0, 0x13f5, 0x13f8, 0x13fd, 0x1400, 0x169c, 0x16a0, 0x16f8, 0x1700, 0x170c, 0x170e, 0x1714,\n 0x1720, 0x1736, 0x1740, 0x1753, 0x1760, 0x176c, 0x176e, 0x1770, 0x1772, 0x1773, 0x1780, 0x17dd, 0x17e0, 0x17e9, 0x17f0, 0x17f9,\n 0x1800, 0x180e, 0x1810, 0x1819, 0x1820, 0x1877, 0x1880, 0x18aa, 0x18b0, 0x18f5, 0x1900, 0x191e, 0x1920, 0x192b, 0x1930, 0x193b,\n 0x1940, 0x1940, 0x1944, 0x196d, 0x1970, 0x1974, 0x1980, 0x19ab, 0x19b0, 0x19c9, 0x19d0, 0x19da, 0x19de, 0x1a1b, 0x1a1e, 0x1a5e,\n 0x1a60, 0x1a7c, 0x1a7f, 0x1a89, 0x1a90, 0x1a99, 0x1aa0, 0x1aad, 0x1ab0, 0x1abe, 0x1b00, 0x1b4b, 0x1b50, 0x1b7c, 0x1b80, 0x1bf3,\n 0x1bfc, 0x1c37, 0x1c3b, 0x1c49, 0x1c4d, 0x1c88, 0x1cc0, 0x1cc7, 0x1cd0, 0x1cf6, 0x1cf8, 0x1cf9, 0x1d00, 0x1df5, 0x1dfb, 0x1f15,\n 0x1f18, 0x1f1d, 0x1f20, 0x1f45, 0x1f48, 0x1f4d, 0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f7d,\n 0x1f80, 0x1fb4, 0x1fb6, 0x1fc4, 0x1fc6, 0x1fd3, 0x1fd6, 0x1fdb, 0x1fdd, 0x1fef, 0x1ff2, 0x1ff4, 0x1ff6, 0x1ffe, 0x2000, 0x2027,\n 0x202a, 0x2064, 0x2066, 0x2071, 0x2074, 0x208e, 0x2090, 0x209c, 0x20a0, 0x20be, 0x20d0, 0x20f0, 0x2100, 0x218b, 0x2190, 0x23fe,\n 0x2400, 0x2426, 0x2440, 0x244a, 0x2460, 0x2b73, 0x2b76, 0x2b95, 0x2b98, 0x2bb9, 0x2bbd, 0x2bc8, 0x2bca, 0x2bd1, 0x2bec, 0x2bef,\n 0x2c00, 0x2c2e, 0x2c30, 0x2c5e, 0x2c60, 0x2cf3, 0x2cf9, 0x2d25, 0x2d27, 0x2d27, 0x2d2d, 0x2d2d, 0x2d30, 0x2d67, 0x2d6f, 0x2d70,\n 0x2d7f, 0x2d96, 0x2da0, 0x2da6, 0x2da8, 0x2dae, 0x2db0, 0x2db6, 0x2db8, 0x2dbe, 0x2dc0, 0x2dc6, 0x2dc8, 0x2dce, 0x2dd0, 0x2dd6,\n 0x2dd8, 0x2dde, 0x2de0, 0x2e44, 0x2e80, 0x2e99, 0x2e9b, 0x2ef3, 0x2f00, 0x2fd5, 0x2ff0, 0x2ffb, 0x3000, 0x303f, 0x3041, 0x3096,\n 0x3099, 0x30ff, 0x3105, 0x312d, 0x3131, 0x318e, 0x3190, 0x31ba, 0x31c0, 0x31e3, 0x31f0, 0x321e, 0x3220, 0x32fe, 0x3300, 0x4db5,\n 0x4dc0, 0x9fd5, 0xa000, 0xa48c, 0xa490, 0xa4c6, 0xa4d0, 0xa62b, 0xa640, 0xa6f7, 0xa700, 0xa7ae, 0xa7b0, 0xa7b7, 0xa7f7, 0xa82b,\n 0xa830, 0xa839, 0xa840, 0xa877, 0xa880, 0xa8c5, 0xa8ce, 0xa8d9, 0xa8e0, 0xa8fd, 0xa900, 0xa953, 0xa95f, 0xa97c, 0xa980, 0xa9cd,\n 0xa9cf, 0xa9d9, 0xa9de, 0xa9fe, 0xaa00, 0xaa36, 0xaa40, 0xaa4d, 0xaa50, 0xaa59, 0xaa5c, 0xaac2, 0xaadb, 0xaaf6, 0xab01, 0xab06,\n 0xab09, 0xab0e, 0xab11, 0xab16, 0xab20, 0xab26, 0xab28, 0xab2e, 0xab30, 0xab65, 0xab70, 0xabed, 0xabf0, 0xabf9, 0xac00, 0xd7a3,\n 0xd7b0, 0xd7c6, 0xd7cb, 0xd7fb, 0xe000, 0xfa6d, 0xfa70, 0xfad9, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xfb1d, 0xfb36, 0xfb38, 0xfb3c,\n 0xfb3e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfb46, 0xfbc1, 0xfbd3, 0xfd3f, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0, 0xfdfd,\n 0xfe00, 0xfe19, 0xfe20, 0xfe52, 0xfe54, 0xfe66, 0xfe68, 0xfe6b, 0xfe70, 0xfe74, 0xfe76, 0xfefc, 0xfeff, 0xfeff, 0xff01, 0xffbe,\n 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, 0xffda, 0xffdc, 0xffe0, 0xffe6, 0xffe8, 0xffee, 0xfff9, 0xfffd, 0x10000, 0x1000b,\n 0x1000d, 0x10026, 0x10028, 0x1003a, 0x1003c, 0x1003d, 0x1003f, 0x1004d, 0x10050, 0x1005d, 0x10080, 0x100fa, 0x10100, 0x10102, 0x10107, 0x10133,\n 0x10137, 0x1018e, 0x10190, 0x1019b, 0x101a0, 0x101a0, 0x101d0, 0x101fd, 0x10280, 0x1029c, 0x102a0, 0x102d0, 0x102e0, 0x102fb, 0x10300, 0x10323,\n 0x10330, 0x1034a, 0x10350, 0x1037a, 0x10380, 0x1039d, 0x1039f, 0x103c3, 0x103c8, 0x103d5, 0x10400, 0x1049d, 0x104a0, 0x104a9, 0x104b0, 0x104d3,\n 0x104d8, 0x104fb, 0x10500, 0x10527, 0x10530, 0x10563, 0x1056f, 0x1056f, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, 0x10800, 0x10805,\n 0x10808, 0x10808, 0x1080a, 0x10835, 0x10837, 0x10838, 0x1083c, 0x1083c, 0x1083f, 0x10855, 0x10857, 0x1089e, 0x108a7, 0x108af, 0x108e0, 0x108f2,\n 0x108f4, 0x108f5, 0x108fb, 0x1091b, 0x1091f, 0x10939, 0x1093f, 0x1093f, 0x10980, 0x109b7, 0x109bc, 0x109cf, 0x109d2, 0x10a03, 0x10a05, 0x10a06,\n 0x10a0c, 0x10a13, 0x10a15, 0x10a17, 0x10a19, 0x10a33, 0x10a38, 0x10a3a, 0x10a3f, 0x10a47, 0x10a50, 0x10a58, 0x10a60, 0x10a9f, 0x10ac0, 0x10ae6,\n 0x10aeb, 0x10af6, 0x10b00, 0x10b35, 0x10b39, 0x10b55, 0x10b58, 0x10b72, 0x10b78, 0x10b91, 0x10b99, 0x10b9c, 0x10ba9, 0x10baf, 0x10c00, 0x10c48,\n 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x10cfa, 0x10cff, 0x10e60, 0x10e7e, 0x11000, 0x1104d, 0x11052, 0x1106f, 0x1107f, 0x110c1, 0x110d0, 0x110e8,\n 0x110f0, 0x110f9, 0x11100, 0x11134, 0x11136, 0x11143, 0x11150, 0x11176, 0x11180, 0x111cd, 0x111d0, 0x111df, 0x111e1, 0x111f4, 0x11200, 0x11211,\n 0x11213, 0x1123e, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, 0x1128f, 0x1129d, 0x1129f, 0x112a9, 0x112b0, 0x112ea, 0x112f0, 0x112f9,\n 0x11300, 0x11303, 0x11305, 0x1130c, 0x1130f, 0x11310, 0x11313, 0x11328, 0x1132a, 0x11330, 0x11332, 0x11333, 0x11335, 0x11339, 0x1133c, 0x11344,\n 0x11347, 0x11348, 0x1134b, 0x1134d, 0x11350, 0x11350, 0x11357, 0x11357, 0x1135d, 0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, 0x11400, 0x11459,\n 0x1145b, 0x1145b, 0x1145d, 0x1145d, 0x11480, 0x114c7, 0x114d0, 0x114d9, 0x11580, 0x115b5, 0x115b8, 0x115dd, 0x11600, 0x11644, 0x11650, 0x11659,\n 0x11660, 0x1166c, 0x11680, 0x116b7, 0x116c0, 0x116c9, 0x11700, 0x11719, 0x1171d, 0x1172b, 0x11730, 0x1173f, 0x118a0, 0x118f2, 0x118ff, 0x118ff,\n 0x11ac0, 0x11af8, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c45, 0x11c50, 0x11c6c, 0x11c70, 0x11c8f, 0x11c92, 0x11ca7, 0x11ca9, 0x11cb6,\n 0x12000, 0x12399, 0x12400, 0x1246e, 0x12470, 0x12474, 0x12480, 0x12543, 0x13000, 0x1342e, 0x14400, 0x14646, 0x16800, 0x16a38, 0x16a40, 0x16a5e,\n 0x16a60, 0x16a69, 0x16a6e, 0x16a6f, 0x16ad0, 0x16aed, 0x16af0, 0x16af5, 0x16b00, 0x16b45, 0x16b50, 0x16b59, 0x16b5b, 0x16b61, 0x16b63, 0x16b77,\n 0x16b7d, 0x16b8f, 0x16f00, 0x16f44, 0x16f50, 0x16f7e, 0x16f8f, 0x16f9f, 0x16fe0, 0x16fe0, 0x17000, 0x187ec, 0x18800, 0x18af2, 0x1b000, 0x1b001,\n 0x1bc00, 0x1bc6a, 0x1bc70, 0x1bc7c, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9c, 0x1bca3, 0x1d000, 0x1d0f5, 0x1d100, 0x1d126, 0x1d129, 0x1d1e8,\n 0x1d200, 0x1d245, 0x1d300, 0x1d356, 0x1d360, 0x1d371, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5, 0x1d4a6,\n 0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c3, 0x1d4c5, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c,\n 0x1d51e, 0x1d539, 0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d552, 0x1d6a5, 0x1d6a8, 0x1d7cb, 0x1d7ce, 0x1da8b,\n 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1e000, 0x1e006, 0x1e008, 0x1e018, 0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, 0x1e800, 0x1e8c4,\n 0x1e8c7, 0x1e8d6, 0x1e900, 0x1e94a, 0x1e950, 0x1e959, 0x1e95e, 0x1e95f, 0x1ee00, 0x1ee03, 0x1ee05, 0x1ee1f, 0x1ee21, 0x1ee22, 0x1ee24, 0x1ee24,\n 0x1ee27, 0x1ee27, 0x1ee29, 0x1ee32, 0x1ee34, 0x1ee37, 0x1ee39, 0x1ee39, 0x1ee3b, 0x1ee3b, 0x1ee42, 0x1ee42, 0x1ee47, 0x1ee47, 0x1ee49, 0x1ee49,\n 0x1ee4b, 0x1ee4b, 0x1ee4d, 0x1ee4f, 0x1ee51, 0x1ee52, 0x1ee54, 0x1ee54, 0x1ee57, 0x1ee57, 0x1ee59, 0x1ee59, 0x1ee5b, 0x1ee5b, 0x1ee5d, 0x1ee5d,\n 0x1ee5f, 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64, 0x1ee64, 0x1ee67, 0x1ee6a, 0x1ee6c, 0x1ee72, 0x1ee74, 0x1ee77, 0x1ee79, 0x1ee7c, 0x1ee7e, 0x1ee7e,\n 0x1ee80, 0x1ee89, 0x1ee8b, 0x1ee9b, 0x1eea1, 0x1eea3, 0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x1eef0, 0x1eef1, 0x1f000, 0x1f02b, 0x1f030, 0x1f093,\n 0x1f0a0, 0x1f0ae, 0x1f0b1, 0x1f0bf, 0x1f0c1, 0x1f0cf, 0x1f0d1, 0x1f0f5, 0x1f100, 0x1f10c, 0x1f110, 0x1f12e, 0x1f130, 0x1f16b, 0x1f170, 0x1f1ac,\n 0x1f1e6, 0x1f202, 0x1f210, 0x1f23b, 0x1f240, 0x1f248, 0x1f250, 0x1f251, 0x1f300, 0x1f6d2, 0x1f6e0, 0x1f6ec, 0x1f6f0, 0x1f6f6, 0x1f700, 0x1f773,\n 0x1f780, 0x1f7d4, 0x1f800, 0x1f80b, 0x1f810, 0x1f847, 0x1f850, 0x1f859, 0x1f860, 0x1f887, 0x1f890, 0x1f8ad, 0x1f910, 0x1f91e, 0x1f920, 0x1f927,\n 0x1f930, 0x1f930, 0x1f933, 0x1f93e, 0x1f940, 0x1f94b, 0x1f950, 0x1f95e, 0x1f980, 0x1f991, 0x1f9c0, 0x1f9c0, 0x20000, 0x2a6d6, 0x2a700, 0x2b734,\n 0x2b740, 0x2b81d, 0x2b820, 0x2cea1, 0x2f800, 0x2fa1d, 0xe0001, 0xe0001, 0xe0020, 0xe007f, 0xe0100, 0xe01ef, 0xf0000, 0xffffd, 0x100000, 0x10fffd,\n];\nexport function unicodeLocale(context) {\n const locale = (context.env.LC_ALL || context.env.LC_CTYPE || context.env.LANG || \"C\").toLowerCase();\n if (locale === 'c' || locale === 'posix')\n return false;\n // The decoder and printable table below are explicit diagnostic profiles,\n // not a claim that every host locale with a UTF-8 suffix is available.\n if (locale === 'c.utf-8' || locale === 'c.utf8' || locale === 'en_us.utf-8' || locale === 'en_us.utf8')\n return true;\n throw new FmtError('PROFILE', 'Unavailable fmt byte/locale profile');\n}\nexport function quote(bytes, shell, unicode = false) {\n const decoder = new TextDecoder(\"utf-8\", { fatal: true, ignoreBOM: true });\n const units = [];\n for (let offset = 0; offset < bytes.length;) {\n const first = bytes[offset];\n let length = 1;\n let text = String.fromCharCode(first);\n let valid = first < 128;\n if (unicode && first >= 0xc2 && first <= 0xf4) {\n const size = first < 0xe0 ? 2 : first < 0xf0 ? 3 : 4;\n try {\n text = decoder.decode(bytes.subarray(offset, offset + size));\n length = size;\n valid = true;\n }\n catch {\n valid = false;\n }\n }\n units.push({ text, bytes: bytes.subarray(offset, offset + length), valid });\n offset += length;\n }\n const escapes = { \"\\u0007\": \"\\\\a\", \"\\b\": \"\\\\b\", \"\\t\": \"\\\\t\", \"\\n\": \"\\\\n\", \"\\v\": \"\\\\v\", \"\\f\": \"\\\\f\", \"\\r\": \"\\\\r\" };\n const printable = (unit) => {\n if (!unit.valid)\n return false;\n const point = unit.text.codePointAt(0);\n if (point < 128)\n return point >= 32 && point < 127;\n if (!unicode)\n return false;\n let low = 0;\n let high = glibc231PrintableRanges.length / 2;\n while (low < high) {\n const middle = Math.trunc((low + high) / 2);\n if (point < glibc231PrintableRanges[middle * 2])\n high = middle;\n else if (point > glibc231PrintableRanges[middle * 2 + 1])\n low = middle + 1;\n else\n return true;\n }\n return false;\n };\n if (shell && bytes.includes(39) && units.every((unit, index) => printable(unit) && !'!\"$&()*;<=>?[^`|\\\\{}'.includes(unit.text) && (index === 0 || !\"#~\".includes(unit.text))))\n return `\"${units.map(unit => unit.text).join(\"\")}\"`;\n const left = !shell && unicode ? \"\u2018\" : \"'\";\n const right = !shell && unicode ? \"\u2019\" : \"'\";\n let result = left;\n let escaping = shell && bytes.includes(39) && units.length > 0 && !printable(units[units.length - 1]);\n for (const unit of units) {\n if (shell && unit.text === \"'\") {\n result += \"'\\\\''\";\n escaping = false;\n }\n else if (!printable(unit)) {\n if (shell && !escaping)\n result += \"'$'\";\n escaping = true;\n result += escapes[unit.text] ?? Array.from(unit.bytes, byte => `\\\\${byte.toString(8).padStart(3, \"0\")}`).join(\"\");\n }\n else {\n if (shell && escaping)\n result += \"''\";\n escaping = false;\n if (!shell && (unit.text === right || unit.text === \"\\\\\"))\n result += \"\\\\\";\n result += unit.text;\n }\n }\n return result + right;\n}\n", "import { FmtError, defaultFmtLimits, fmtBaseline, validateFmtLimits, validateFmtProfile } from './contracts.js';\nimport { ownedBytes } from './bytes.js';\nimport { quote } from './quoting.js';\nfunction optionError(message) { throw new FmtError('OPTION', message, true); }\nfunction widthValue(text, maximum, unicode, profile, goal = false) {\n let offset = 0;\n while (text.charCodeAt(offset) === 32 || text.charCodeAt(offset) >= 9 && text.charCodeAt(offset) <= 13)\n offset++;\n if (text[offset] === \"+\")\n offset++;\n const start = offset;\n let number = 0;\n while (text.charCodeAt(offset) >= 48 && text.charCodeAt(offset) <= 57) {\n number = Math.min(1073741824, number * 10 + text.charCodeAt(offset++) - 48);\n }\n if (offset === start || offset !== text.length || number > maximum) {\n const range = offset === text.length && offset !== start && number > maximum;\n const overflow = profile === 'gnu-coreutils-8.30-C-bytes' ? number > 1073741823 : goal;\n throw new FmtError(\"WIDTH\", `invalid width: ${quote(Uint8Array.from(text, unit => unit.charCodeAt(0)), false, unicode)}${range ? overflow ? \": Value too large for defined data type\" : \": Numerical result out of range\" : \"\"}`);\n }\n return number;\n}\nexport function parseFmtArguments(input, configuration = {}) {\n const limits = configuration.limits ?? defaultFmtLimits;\n validateFmtLimits(limits);\n const profile = configuration.profile ?? fmtBaseline.profile;\n validateFmtProfile(profile);\n if (input.length > 4096)\n throw new FmtError(\"LIMIT\", \"argument count limit exceeded\");\n let size = 0;\n const bytes = input.map(value => {\n const copy = ownedBytes(value, limits.argumentBytes - size);\n size += copy.length;\n return copy;\n });\n const names = bytes.map(value => new TextDecoder(\"utf-8\", { ignoreBOM: true }).decode(value));\n const args = bytes.map(value => Array.from(value, byte => String.fromCharCode(byte)).join(\"\"));\n const settings = { profile, width: 75, goal: 70, crown: false, tagged: false, split: false, uniform: false, prefix: new Uint8Array(), leading: 0, fullPrefix: 0, files: [] };\n let width;\n let goal;\n let stopped = false;\n const long = { \"crown-margin\": \"c\", prefix: \"p\", \"split-only\": \"s\", \"tagged-paragraph\": \"t\", \"uniform-spacing\": \"u\", width: \"w\", goal: \"g\", help: \"help\", version: \"version\" };\n let index = 0;\n const first = args[0];\n if (first?.startsWith(\"-\") && first.charCodeAt(1) >= 48 && first.charCodeAt(1) <= 57) {\n width = first.slice(1);\n index++;\n }\n for (; index < args.length; index++) {\n const argument = args[index];\n if (stopped || !argument.startsWith(\"-\") || argument === \"-\") {\n settings.files.push({ name: names[index], bytes: bytes[index] });\n if (configuration.posixlyCorrect === true)\n stopped = true;\n continue;\n }\n if (argument === \"--\") {\n stopped = true;\n continue;\n }\n const expanded = [];\n if (argument.startsWith(\"--\")) {\n const equals = argument.indexOf(\"=\");\n const name = argument.slice(2, equals < 0 ? undefined : equals);\n const matches = Object.keys(long).filter(key => key.startsWith(name));\n const selected = Object.hasOwn(long, name) ? name : matches.length === 1 ? matches[0] : undefined;\n if (!selected) {\n if (matches.length > 1)\n optionError(`option '${argument}' is ambiguous; possibilities: ${matches.map(key => `'--${key}'`).join(\" \")}`);\n optionError(`unrecognized option '${argument}'`);\n }\n const key = long[selected];\n let value;\n let position = index;\n if (\"pwg\".includes(key)) {\n value = equals < 0 ? args[++index] : argument.slice(equals + 1);\n position = index;\n if (value === undefined)\n optionError(`option '--${selected}' requires an argument`);\n }\n else if (equals >= 0)\n optionError(`option '--${selected}' doesn't allow an argument`);\n expanded.push({ key, ...(value === undefined ? {} : { value }), position, valueOffset: equals < 0 ? 0 : equals + 1 });\n }\n else {\n for (let offset = 1; offset < argument.length; offset++) {\n const key = argument[offset];\n if (key >= \"0\" && key <= \"9\")\n optionError(`invalid option -- ${key}; -WIDTH is recognized only when it is the first\\noption; use -w N instead`);\n if (!\"cstuwpg\".includes(key))\n optionError(`invalid option -- '${key}'`);\n let value;\n let valueOffset = 0;\n if (\"pwg\".includes(key)) {\n if (offset + 1 < argument.length)\n valueOffset = offset + 1;\n value = argument.slice(offset + 1) || args[++index];\n if (value === undefined)\n optionError(`option requires an argument -- '${key}'`);\n offset = argument.length;\n }\n expanded.push({ key, ...(value === undefined ? {} : { value }), position: index, valueOffset });\n }\n }\n for (const option of expanded) {\n switch (option.key) {\n case \"c\":\n settings.crown = true;\n break;\n case \"t\":\n settings.tagged = true;\n break;\n case \"s\":\n settings.split = true;\n break;\n case \"u\":\n settings.uniform = true;\n break;\n case \"w\":\n width = option.value;\n break;\n case \"g\":\n goal = option.value;\n break;\n case \"help\":\n case \"version\":\n settings.information = option.key;\n return settings;\n case \"p\": {\n const prefixBytes = bytes[option.position].subarray(option.valueOffset);\n let start = 0;\n let end = prefixBytes.indexOf(0);\n if (end < 0)\n end = prefixBytes.length;\n while (start < end && prefixBytes[start] === 32)\n start++;\n settings.leading = start;\n settings.fullPrefix = end - start;\n while (end > start && prefixBytes[end - 1] === 32)\n end--;\n settings.prefix = new Uint8Array(prefixBytes.subarray(start, end));\n break;\n }\n }\n }\n }\n const unicode = configuration.unicodeQuotes ?? false;\n if (width !== undefined)\n settings.width = widthValue(width, 2500, unicode, profile);\n if (goal !== undefined) {\n settings.goal = widthValue(goal, settings.width, unicode, profile, true);\n if (width === undefined)\n settings.width = settings.goal + 10;\n }\n else\n settings.goal = Math.trunc(settings.width * 187 / 200);\n if (!settings.files.length)\n settings.files.push({ name: \"-\", bytes: Uint8Array.of(45) });\n return settings;\n}\n", "import { FmtError, validateFmtLimits, validateFmtProfile } from './contracts.js';\nimport { byteView, ownedBytes } from './bytes.js';\nclass WorkBudget {\n limits;\n signal;\n operations = 0;\n output = 0;\n input = 0;\n closed = false;\n sinceCheckpoint = 0;\n constructor(limits, signal) {\n this.limits = limits;\n this.signal = signal;\n }\n check() {\n if (this.closed)\n throw new FmtError('CLOSED', 'fmt engine is closed');\n if (this.signal.aborted)\n throw new FmtError('CANCELLED', 'fmt engine cancelled');\n }\n *step(count = 1) {\n this.charge(count);\n if (this.sinceCheckpoint >= 1024) {\n this.sinceCheckpoint = 0;\n if ((yield undefined) !== undefined)\n throw new FmtError('INPUT', 'Unexpected input on fmt checkpoint event');\n }\n this.check();\n }\n charge(count) {\n this.check();\n if (count > this.limits.work - this.operations)\n throw new FmtError('LIMIT', 'work limit exceeded');\n this.operations += count;\n this.sinceCheckpoint += count;\n }\n admitInput(size) {\n this.check();\n if (size > 4096 || size > this.limits.inputBytes - this.input)\n throw new FmtError('LIMIT', 'input byte or bounded-call limit exceeded');\n this.input += size;\n }\n admitOutput() {\n if (this.output === this.limits.outputBytes)\n throw new FmtError('LIMIT', 'output limit exceeded');\n this.output++;\n }\n exact(value) {\n if (!Number.isSafeInteger(value))\n throw new FmtError('ARITHMETIC', 'fmt exact arithmetic limit exceeded');\n return value;\n }\n}\nclass Formatter {\n settings;\n budget;\n chunk = new Uint8Array(4096);\n chunkUsed = 0;\n offset = 0;\n eof = false;\n pending = new Uint8Array(1024);\n pendingUsed = 0;\n text = new Uint8Array(5000);\n used = 0;\n words = [];\n costs = [];\n breaks = [];\n lengths = [];\n column = 0;\n nextPrefix = 0;\n prefixIndent = 0;\n firstIndent = 0;\n otherIndent = 0;\n lastLength = 0;\n outColumn = 0;\n tabs = false;\n constructor(settings, budget) {\n this.settings = settings;\n this.budget = budget;\n }\n *read() {\n yield* this.budget.step();\n while (this.offset === this.chunkUsed) {\n if (this.eof)\n return -1;\n const incoming = yield \"input\";\n this.budget.check();\n if (incoming === null) {\n this.eof = true;\n return -1;\n }\n if (incoming === undefined)\n throw new FmtError(\"INPUT\", \"Expected input bytes or null EOF\");\n const view = byteView(incoming);\n // Admission and copy complete in the resumption that receives borrowed\n // input; a checkpoint must never hand control back before ownership.\n this.budget.charge(view.length + 1);\n this.budget.admitInput(view.length);\n let position = 0;\n for (const byte of view.values)\n this.chunk[position++] = byte;\n this.chunkUsed = view.length;\n this.offset = 0;\n yield* this.budget.step(0);\n }\n return this.chunk[this.offset++];\n }\n *emit(byte) {\n yield* this.budget.step();\n this.budget.admitOutput();\n this.pending[this.pendingUsed++] = byte;\n if (this.pendingUsed === this.pending.length) {\n if ((yield this.pending.slice()) !== undefined)\n throw new FmtError('INPUT', 'Unexpected input on fmt output event');\n this.pendingUsed = 0;\n }\n }\n *spaces(count) {\n const target = this.budget.exact(this.outColumn + count);\n const tabEnd = Math.trunc(target / 8) * 8;\n if (this.tabs && this.outColumn + 1 < tabEnd) {\n while (this.outColumn < tabEnd) {\n yield* this.emit(9);\n this.outColumn = (Math.trunc(this.outColumn / 8) + 1) * 8;\n }\n }\n while (this.outColumn < target) {\n yield* this.emit(32);\n this.outColumn++;\n }\n }\n *whitespace(byte) {\n while (byte === 32 || byte === 9) {\n if (byte === 32)\n this.column = this.budget.exact(this.column + 1);\n else {\n this.tabs = true;\n this.column = this.budget.exact((Math.trunc(this.column / 8) + 1) * 8);\n }\n byte = yield* this.read();\n }\n return byte;\n }\n *lineStart() {\n this.column = 0;\n let byte = yield* this.whitespace(yield* this.read());\n const { prefix, leading } = this.settings;\n this.nextPrefix = prefix.length ? this.column : Math.min(leading, this.column);\n if (prefix.length) {\n for (const expected of prefix) {\n if (byte !== expected)\n return byte;\n this.column++;\n byte = yield* this.read();\n }\n byte = yield* this.whitespace(byte);\n }\n return byte;\n }\n compatible(byte) {\n return byte !== -1 && byte !== 10 && this.nextPrefix === this.prefixIndent && this.column >= this.nextPrefix + this.settings.fullPrefix;\n }\n secondary(compatible) {\n if (this.settings.split)\n this.otherIndent = this.firstIndent;\n else if (this.settings.crown)\n this.otherIndent = compatible ? this.column : this.firstIndent;\n else if (this.settings.tagged) {\n if (compatible && this.column !== this.firstIndent)\n this.otherIndent = this.column;\n else if (this.otherIndent === this.firstIndent)\n this.otherIndent = this.firstIndent === 0 ? 3 : 0;\n }\n else\n this.otherIndent = this.firstIndent;\n }\n *optimize() {\n const count = this.words.length;\n this.costs[count] = 0;\n for (let start = count - 1; start >= 0; start--) {\n const word = this.words[start];\n let penalty = 4900;\n const previous = this.words[start - 1];\n if (previous?.period)\n penalty += previous.final ? -2500 : 360000;\n else if (previous?.punctuation)\n penalty -= 1600;\n else if (previous && this.words[start - 2]?.final)\n penalty += Math.trunc(40000 / (previous.length + 2));\n if (word.opening)\n penalty -= 1600;\n else if (word.final)\n penalty += Math.trunc(22500 / (word.length + 2));\n let length = (start === 0 ? this.firstIndent : this.otherIndent) + word.length;\n let best = Infinity;\n for (let end = start + 1;; end++) {\n yield* this.budget.step();\n let cost = this.costs[end];\n if (end !== count) {\n cost += 100 * (this.settings.goal - length) ** 2;\n if (this.breaks[end] !== count)\n cost += 50 * (length - this.lengths[end]) ** 2;\n }\n if (start === 0 && this.lastLength > 0)\n cost += 50 * (length - this.lastLength) ** 2;\n this.budget.exact(cost);\n if (cost < best) {\n best = cost;\n this.breaks[start] = end;\n this.lengths[start] = length;\n }\n if (end === count)\n break;\n length += this.words[end - 1].space + this.words[end].length;\n if (this.settings.profile === 'gnu-coreutils-8.30-C-bytes' ? length >= this.settings.width : length > this.settings.width)\n break;\n }\n this.costs[start] = this.budget.exact(best + penalty);\n }\n }\n *render(finish) {\n for (let start = 0; start < finish; start = this.breaks[start]) {\n this.outColumn = 0;\n yield* this.spaces(this.prefixIndent);\n for (const byte of this.settings.prefix)\n yield* this.emit(byte);\n this.outColumn += this.settings.prefix.length;\n yield* this.spaces((start === 0 ? this.firstIndent : this.otherIndent) - this.outColumn);\n const end = this.breaks[start];\n for (let index = start; index < end; index++) {\n const word = this.words[index];\n for (let position = word.start; position < word.start + word.length; position++)\n yield* this.emit(this.text[position]);\n this.outColumn += word.length;\n if (index + 1 !== end)\n yield* this.spaces(word.space);\n }\n this.lastLength = this.outColumn;\n yield* this.emit(10);\n }\n }\n *makeRoom(current) {\n this.secondary(true);\n if (!this.words.length) {\n for (let position = 0; position < this.used; position++)\n yield* this.emit(this.text[position]);\n this.used = 0;\n current.start = 0;\n return;\n }\n yield* this.optimize();\n let cut = this.words.length;\n let score = Infinity;\n for (let line = this.breaks[0]; line !== this.words.length; line = this.breaks[line]) {\n yield* this.budget.step();\n const candidate = this.costs[line] - this.costs[this.breaks[line]];\n if (candidate < score) {\n cut = line;\n score = candidate;\n }\n score += 9;\n }\n yield* this.render(cut);\n const offset = cut === this.words.length ? current.start : this.words[cut].start;\n yield* this.budget.step(this.used - offset + this.words.length);\n this.text.copyWithin(0, offset, this.used);\n this.used -= offset;\n this.words = this.words.slice(cut);\n for (const word of this.words)\n word.start -= offset;\n current.start -= offset;\n }\n *readLine(byte) {\n do {\n const word = { start: this.used, length: 0, space: 0, opening: false, period: false, punctuation: false, final: false };\n do {\n if (this.used === this.text.length)\n yield* this.makeRoom(word);\n this.text[this.used++] = byte;\n byte = yield* this.read();\n } while (byte !== -1 && byte !== 32 && !(byte >= 9 && byte <= 13));\n word.length = this.used - word.start;\n this.column = this.budget.exact(this.column + word.length);\n const first = this.text[word.start];\n const last = this.text[this.used - 1];\n word.opening = first === 0 || \"(['`\\\"\".includes(String.fromCharCode(first));\n word.punctuation = last >= 33 && last <= 47 || last >= 58 && last <= 64 || last >= 91 && last <= 96 || last >= 123 && last <= 126;\n let terminal = this.used - 1;\n yield* this.budget.step(word.length);\n while (terminal > word.start && (this.text[terminal] === 0 || \")]'\\\"\".includes(String.fromCharCode(this.text[terminal]))))\n terminal--;\n word.period = this.text[terminal] === 0 || \".?!\".includes(String.fromCharCode(this.text[terminal]));\n const before = this.column;\n byte = yield* this.whitespace(byte);\n word.space = this.column - before;\n word.final = byte === -1 || word.period && (byte === 10 || word.space > 1);\n if (byte === 10 || byte === -1 || this.settings.uniform)\n word.space = word.final ? 2 : 1;\n if (this.words.length === 998)\n yield* this.makeRoom(word);\n this.words.push(word);\n } while (byte !== -1 && byte !== 10);\n return yield* this.lineStart();\n }\n dispose() {\n this.chunk = new Uint8Array();\n this.pending = new Uint8Array();\n this.text = new Uint8Array();\n this.chunkUsed = this.pendingUsed = this.used = 0;\n this.words = [];\n this.costs = [];\n this.breaks = [];\n this.lengths = [];\n this.settings = { ...this.settings, prefix: new Uint8Array(), files: [] };\n }\n *run() {\n let byte = yield* this.lineStart();\n while (true) {\n if (byte === 10 || byte === -1 || this.nextPrefix < this.settings.leading || this.column < this.nextPrefix + this.settings.fullPrefix) {\n this.outColumn = 0;\n if (this.column > this.nextPrefix || byte !== 10 && byte !== -1) {\n yield* this.spaces(this.nextPrefix);\n for (const prefixByte of this.settings.prefix) {\n if (this.outColumn === this.column)\n break;\n yield* this.emit(prefixByte);\n this.outColumn++;\n }\n if (byte !== -1 && byte !== 10)\n yield* this.spaces(this.column - this.outColumn);\n if (byte === -1 && this.column >= this.nextPrefix + this.settings.prefix.length)\n yield* this.emit(10);\n }\n while (byte !== -1 && byte !== 10) {\n yield* this.emit(byte);\n byte = yield* this.read();\n }\n if (byte === -1)\n break;\n yield* this.emit(10);\n byte = yield* this.lineStart();\n continue;\n }\n this.lastLength = 0;\n this.prefixIndent = this.nextPrefix;\n this.firstIndent = this.column;\n this.words = [];\n this.used = 0;\n byte = yield* this.readLine(byte);\n this.secondary(this.compatible(byte));\n if (!this.settings.split) {\n const acceptSecond = this.compatible(byte) && (this.settings.crown || this.settings.tagged ? this.settings.crown || this.column !== this.firstIndent : this.column === this.otherIndent);\n if (acceptSecond) {\n do {\n byte = yield* this.readLine(byte);\n } while (this.compatible(byte) && this.column === this.otherIndent);\n }\n }\n const last = this.words[this.words.length - 1];\n last.period = true;\n last.final = true;\n yield* this.optimize();\n yield* this.render(this.words.length);\n }\n if (this.pendingUsed) {\n if ((yield this.pending.slice(0, this.pendingUsed)) !== undefined)\n throw new FmtError('INPUT', 'Unexpected input on fmt output event');\n this.pendingUsed = 0;\n }\n }\n}\nexport function createFmtEngine(options, limits, signal) {\n if (signal.aborted)\n throw new FmtError('CANCELLED', 'fmt engine cancelled');\n validateFmtLimits(limits);\n validateFmtProfile(options.profile);\n for (const [value, maximum] of [[options.width, 2500], [options.goal, options.width], [options.leading, limits.argumentBytes], [options.fullPrefix, limits.argumentBytes]]) {\n if (!Number.isSafeInteger(value) || value < 0 || value > maximum)\n throw new FmtError('WIDTH', 'Invalid fmt width, goal or prefix indentation');\n }\n const prefixSize = byteView(options.prefix).length;\n const retained = 5000 + 4096 + 1024 + prefixSize;\n if (retained > limits.retainedBytes)\n throw new FmtError('LIMIT', 'fmt buffer retention limit exceeded');\n let prefix = ownedBytes(options.prefix, limits.argumentBytes);\n const budget = new WorkBudget(Object.freeze({ ...limits }), signal);\n const formatter = new Formatter({ ...options, prefix, files: [] }, budget);\n let started = false;\n const dispose = () => { budget.closed = true; formatter.dispose(); prefix.fill(0); prefix = new Uint8Array(); };\n return {\n *run() {\n if (started)\n throw new FmtError('CLOSED', 'fmt engine has already started');\n started = true;\n try {\n budget.check();\n yield* formatter.run();\n budget.check();\n }\n finally {\n dispose();\n }\n },\n dispose,\n accounting: () => Object.freeze({ inputBytes: budget.input, decodedBytes: 0, outputBytes: budget.output, work: budget.operations, retainedBytes: budget.closed ? 0 : retained, peakRetainedBytes: retained }),\n };\n}\n", "import { commandRuntimeIdentity, CommandArgumentIdentityError, FsError, getCommandArguments, isFsError, readBytes, writeBytes, shellValueByteLength } from 'safe-bash-contracts';\nimport { isAbsolutePath, validatePath } from '@poe-code/safe-fs/core';\nimport { assertCommandRequirements } from 'safe-bash-contracts/command-requirements';\nimport { createOutputOperation } from 'safe-bash-contracts/output';\nimport { FmtError, defaultFmtLimits, validateFmtLimits } from './contracts.js';\nimport { parseFmtArguments } from './arguments.js';\nimport { createFmtEngine } from './engine.js';\nimport { byteSpan, byteView } from './bytes.js';\nimport { captureFmtArguments } from './sdk.js';\nimport { quote, unicodeLocale } from './quoting.js';\nconst inputRequirements = [\n { id: 'stdin', description: 'Read standard input', capabilities: [] },\n { id: 'file', description: 'Read file operands', capabilities: [], anyOf: [['streamingRead'], ['read']] },\n];\nasync function yieldTurn(signal) {\n signal.throwIfAborted();\n await new Promise(resolve => setTimeout(resolve, 0));\n signal.throwIfAborted();\n}\nasync function output(context, bytes) {\n await writeBytes(context.stdout, typeof bytes === 'string' ? new TextEncoder().encode(bytes) : bytes, context.signal);\n}\nasync function diagnostic(context, error) {\n let message = 'internal error';\n if (error instanceof FmtError || error instanceof FsError || error instanceof CommandArgumentIdentityError)\n message = error.message;\n else {\n try {\n const pending = context.onInternalError?.(error);\n if (pending !== undefined)\n void Promise.resolve(pending).catch(() => undefined);\n }\n catch { /* Diagnostic delivery still proceeds. */ }\n }\n let escaped = '';\n for (const character of message) {\n const point = character.codePointAt(0);\n if (point === 9 || point === 10 || point >= 32 && (point < 127 || point > 159))\n escaped += character;\n else\n for (const byte of new TextEncoder().encode(character))\n escaped += `\\\\${byte.toString(8).padStart(3, '0')}`;\n }\n await writeBytes(context.stderr, new TextEncoder().encode(`fmt: ${escaped}\\n`), context.signal);\n}\nfunction pathOf(context, path) {\n if (!path)\n throw new FsError('ENOENT', { path });\n validatePath(path);\n validatePath(context.cwd);\n if (!isAbsolutePath(context.cwd))\n throw new FsError('EINVAL', { path: context.cwd, message: 'cwd must be absolute' });\n return isAbsolutePath(path) ? path : `${context.cwd.endsWith('/') ? context.cwd.slice(0, -1) : context.cwd}/${path}`;\n}\nclass InputBudget {\n maximum;\n sourceBufferBytes;\n used = 0;\n constructor(maximum, sourceBufferBytes) {\n this.maximum = maximum;\n this.sourceBufferBytes = sourceBufferBytes;\n }\n get maxReadBytes() { return Math.max(0, Math.min(this.sourceBufferBytes, this.maximum - this.used)); }\n async *read(source, signal) {\n for await (const chunk of readBytes(source, signal)) {\n signal.throwIfAborted();\n const size = byteView(chunk).length;\n if (size > this.maximum - this.used)\n throw new FsError('EFBIG', { message: 'byte command input limit exceeded' });\n if (size > this.maxReadBytes)\n throw new FmtError('LIMIT', 'source chunk retention limit exceeded');\n this.used += size;\n if (!size)\n yield byteSpan(chunk, 0, 0);\n for (let offset = 0; offset < size; offset += 4096)\n yield byteSpan(chunk, offset, Math.min(4096, size - offset));\n }\n }\n}\nclass InputScope {\n context;\n budget;\n iterator;\n reader;\n finished = false;\n retirement;\n closing;\n acquisition;\n constructor(context, budget) {\n this.context = context;\n this.budget = budget;\n }\n open(name, bytes) {\n if (this.closing)\n throw new FmtError('CLOSED', 'fmt input is closed');\n const { context } = this;\n context.signal.throwIfAborted();\n // Metadata owns no stream. After it settles, the signal check closes\n // resource admission before any iterator can be acquired.\n this.acquisition = Promise.resolve().then(async () => {\n context.signal.throwIfAborted();\n let file;\n if (name !== \"-\") {\n const encoded = new TextEncoder().encode(name);\n if (encoded.length !== bytes.length || encoded.some((byte, index) => byte !== bytes[index]))\n throw new FsError(\"ENOENT\", { path: name });\n const path = pathOf(context, name);\n const capabilities = await context.fs.capabilitiesFor?.(path, { signal: context.signal }) ?? context.fs.capabilities;\n context.signal.throwIfAborted();\n file = { path, capabilities };\n }\n context.signal.throwIfAborted();\n let source = context.stdin;\n if (file) {\n const { path, capabilities } = file;\n assertCommandRequirements(context, inputRequirements, [\"file\"], capabilities);\n if (context.fs.readStream && capabilities.streamingRead !== false)\n source = context.fs.readStream(path, { signal: context.signal, chunkSize: 4096 });\n else {\n if (capabilities.read === false)\n throw new FsError(\"ENOTSUP\", { path, syscall: \"readFile\" });\n const maximum = this.budget.maxReadBytes;\n source = { async *[Symbol.asyncIterator]() { yield await context.fs.readFile(path, { signal: context.signal, maxBytes: maximum }); } };\n }\n }\n context.signal.throwIfAborted();\n this.iterator = source[Symbol.asyncIterator]();\n this.reader = this.budget.read({ [Symbol.asyncIterator]: () => ({\n next: async () => {\n const item = await this.iterator.next();\n if (item.done)\n this.finished = true;\n return item;\n },\n return: async () => { await this.retire(); return { done: true, value: undefined }; },\n }) }, context.signal)[Symbol.asyncIterator]();\n });\n return this.acquisition;\n }\n async next() {\n const item = await this.reader.next();\n // The engine takes its owned copy before the next source pull. A second\n // fragment copy would inflate the source-buffer retention allowance.\n return item.done ? null : item.value;\n }\n retire() {\n this.retirement ??= Promise.resolve().then(async () => { if (!this.finished)\n await this.iterator?.return?.(); });\n return this.retirement;\n }\n close() {\n this.closing ??= (async () => {\n const results = await Promise.allSettled([this.retire(), this.reader?.return?.()]);\n for (const result of results)\n if (result.status === \"rejected\")\n throw result.reason;\n })();\n return this.closing;\n }\n}\nfunction fileError(error, name, bytes, opening, context, releasedRead = false) {\n if (!(error instanceof FsError))\n return error;\n const messages = { ENOENT: \"No such file or directory\", EACCES: \"Permission denied\", EISDIR: \"Is a directory\", ENOTDIR: \"Not a directory\", ELOOP: \"Too many levels of symbolic links\", EIO: \"Input/output error\", EBADF: \"Bad file descriptor\" };\n const message = messages[error.code];\n if (!message)\n return error;\n if (releasedRead && !opening)\n return new FmtError('INPUT', `${name === '-' ? 'read error' : `error reading ${quote(bytes, true, unicodeLocale(context))}`}: ${message}`);\n return new FmtError(\"INPUT\", `${opening ? `cannot open ${quote(bytes, true, unicodeLocale(context))} for reading` : name === \"-\" ? \"standard input\" : name}: ${message}`);\n}\nexport function fmtCommand(configuration = {}) {\n return { name: \"fmt\", runtimeIdentity: commandRuntimeIdentity, filesystemRequirements: inputRequirements, execute: context => fmt(context, configuration) };\n}\nexport function fmtCommands(configuration = {}) {\n const command = fmtCommand(configuration);\n const replace = configuration.replace ?? false;\n return { name: 'fmt', setup(host) { host.commands.register(command, { replace }); } };\n}\nexport async function fmt(context, configuration = {}) {\n context.signal.throwIfAborted();\n const controller = new AbortController();\n const local = { ...context, signal: AbortSignal.any([context.signal, controller.signal]) };\n const limits = { ...defaultFmtLimits, ...configuration.limits };\n let sdkArguments;\n let argumentFailure;\n let activeEngine;\n let stdout;\n let current;\n let closing;\n const close = () => {\n if (closing)\n return closing;\n let resolve, reject;\n closing = new Promise((complete, fail) => { resolve = complete; reject = fail; });\n controller.abort(new FsError(\"EPIPE\", { message: \"fmt input closed\" }));\n activeEngine?.dispose();\n void Promise.allSettled([current?.close(), stdout?.close()]).then(results => {\n const failures = results.filter(result => result.status === \"rejected\").map(result => result.reason);\n if (failures.length)\n reject(failures.length === 1 ? failures[0] : new AggregateError(failures, \"fmt cleanup failed\"));\n else\n resolve();\n });\n return closing;\n };\n context.registerCleanup?.(close);\n // Capture SDK argv before the first await; never borrow mutable caller bytes.\n try {\n validateFmtLimits(limits);\n sdkArguments = captureFmtArguments(configuration, limits);\n }\n catch (error) {\n argumentFailure = { error };\n }\n let failed = false;\n const run = async () => {\n try {\n if (argumentFailure)\n throw argumentFailure.error;\n const argumentsWithBytes = getCommandArguments(context);\n let extent = 0;\n if (argumentsWithBytes.values.length > 4096)\n throw new FmtError('LIMIT', 'argument count limit exceeded');\n const bytes = sdkArguments ?? argumentsWithBytes.values.map((value, index) => {\n if (typeof value === 'string' && value.length > limits.argumentBytes - extent)\n throw new FmtError('LIMIT', 'argument limit exceeded');\n const size = shellValueByteLength(value);\n if (size > limits.argumentBytes - extent)\n throw new FmtError('LIMIT', 'argument limit exceeded');\n extent += size;\n return argumentsWithBytes.bytes(index);\n });\n const settings = parseFmtArguments(bytes, { limits, ...(configuration.profile !== undefined ? { profile: configuration.profile } : {}), posixlyCorrect: context.env.POSIXLY_CORRECT !== undefined, unicodeQuotes: unicodeLocale(context) });\n if (settings.information) {\n await output(context, settings.information === \"version\" ? \"fmt (virtual-bash)\\n\" : \"Usage: fmt [-WIDTH] [OPTION]... [FILE]...\\nReformat paragraphs; omitted FILE or '-' reads standard input.\\n -c, --crown-margin preserve indentation of first two lines\\n -t, --tagged-paragraph use distinct first and following margins\\n -p, --prefix=STRING format only lines with this prefix\\n -s, --split-only split lines without joining\\n -u, --uniform-spacing one space between words, two after sentences\\n -w, --width=WIDTH maximum width (default 75)\\n -g, --goal=WIDTH preferred width (default 93% of width)\\n --help display this help\\n --version display virtual command identity\\n\");\n return { exitCode: 0 };\n }\n const budget = new InputBudget(limits.inputBytes, limits.retainedBytes - 10120 - settings.prefix.length);\n let work = 0, outputBytes = 0;\n stdout = createOutputOperation({ signal: local.signal }, context.stdout);\n const outputContext = { ...context, stdout: stdout.output };\n let stdinDone = false;\n let emptyChunks = 0;\n let chunks = 0;\n let exitCode = 0;\n for (const { name, bytes: nameBytes } of settings.files) {\n local.signal.throwIfAborted();\n if (name === \"-\" && stdinDone)\n continue;\n current = new InputScope(local, budget);\n try {\n await current.open(name, nameBytes);\n }\n catch (error) {\n local.signal.throwIfAborted();\n await diagnostic(context, fileError(error, name, nameBytes, true, context));\n await current.close();\n exitCode = 1;\n continue;\n }\n activeEngine = createFmtEngine(settings, { ...limits, inputBytes: limits.inputBytes, work: limits.work - work, outputBytes: limits.outputBytes - outputBytes }, local.signal);\n const machine = activeEngine.run();\n let step = machine.next();\n let readFailed = false;\n let readError;\n let received = false;\n while (!step.done) {\n local.signal.throwIfAborted();\n if (step.value === \"input\") {\n let bytes = null;\n if (!readFailed) {\n try {\n bytes = await current.next();\n if (bytes?.length)\n received = true;\n }\n catch (error) {\n local.signal.throwIfAborted();\n if (isFsError(error, \"EFBIG\"))\n throw new FmtError(\"LIMIT\", \"byte command input limit exceeded\");\n readFailed = true;\n readError = !received && name !== \"-\" && error instanceof FsError && [\"ENOENT\", \"EACCES\", \"ENOTDIR\", \"ELOOP\"].includes(error.code) ? fileError(error, name, nameBytes, true, context) : error;\n }\n }\n if (bytes?.length === 0 && ++emptyChunks > 4096)\n throw new FmtError(\"LIMIT\", \"empty input chunk limit exceeded\");\n if (++chunks % 64 === 0)\n await yieldTurn(local.signal);\n step = machine.next(bytes);\n }\n else {\n if (step.value)\n await output(outputContext, step.value);\n else\n await yieldTurn(local.signal);\n step = machine.next();\n }\n }\n try {\n await current.close();\n }\n catch (error) {\n if (!readFailed)\n throw error;\n }\n current = undefined;\n work += activeEngine.accounting().work;\n outputBytes += activeEngine.accounting().outputBytes;\n activeEngine.dispose();\n activeEngine = undefined;\n if (name === \"-\")\n stdinDone = true;\n if (readFailed && (settings.profile !== 'gnu-coreutils-8.30-C-bytes' || !isFsError(readError, \"EISDIR\") && !isFsError(readError, \"EIO\") && !isFsError(readError, \"EBADF\"))) {\n await diagnostic(context, fileError(readError, name, nameBytes, false, context, settings.profile !== 'gnu-coreutils-8.30-C-bytes'));\n exitCode = 1;\n }\n }\n return { exitCode };\n }\n catch (error) {\n failed = true;\n context.signal.throwIfAborted();\n if (error instanceof FmtError && error.usage)\n await writeBytes(context.stderr, Uint8Array.from(`fmt: ${error.message}\\nTry 'fmt --help' for more information.\\n`, character => character.charCodeAt(0)), context.signal);\n else\n await diagnostic(context, error);\n return { exitCode: 1 };\n }\n };\n let outcome;\n try {\n outcome = { result: await run() };\n }\n catch (error) {\n outcome = { error };\n }\n try {\n await close();\n }\n catch (error) {\n if (!failed)\n throw error;\n }\n if (\"error\" in outcome)\n throw outcome.error;\n return outcome.result;\n}\n", "import { shellValueByteLength } from 'safe-bash-contracts/value';\nimport { FmtError } from './contracts.js';\nimport { ownedBytes } from './bytes.js';\nconst formattingKeys = ['width', 'goal', 'crown', 'tagged', 'split', 'uniform', 'prefix', 'files'];\n/** Capture bounded SDK values as argv so native option validation stays shared. */\nexport function captureFmtArguments(options, limits) {\n const typed = formattingKeys.some(key => options[key] !== undefined);\n if (options.arguments !== undefined && typed)\n throw new FmtError('OPTION', 'SDK arguments cannot be combined with formatting options');\n if (options.arguments === undefined && !typed)\n return undefined;\n const args = [];\n let extent = 0;\n const append = (value) => {\n if (args.length >= 4096)\n throw new FmtError('LIMIT', 'argument count limit exceeded');\n let bytes;\n if (typeof value === 'string') {\n if (value.length > limits.argumentBytes - extent || shellValueByteLength(value) > limits.argumentBytes - extent)\n throw new FmtError('LIMIT', 'Argument byte limit exceeded');\n bytes = new TextEncoder().encode(value);\n }\n else\n bytes = ownedBytes(value, limits.argumentBytes - extent);\n extent += bytes.length;\n args.push(bytes);\n };\n if (options.arguments !== undefined) {\n if (options.arguments.length > 4096)\n throw new FmtError('LIMIT', 'argument count limit exceeded');\n for (const argument of options.arguments)\n append(argument);\n }\n else {\n for (const key of ['width', 'goal']) {\n const value = options[key];\n if (value !== undefined) {\n if (!Number.isSafeInteger(value) || value < 0)\n throw new FmtError('WIDTH', 'SDK widths must be nonnegative safe integers');\n append(key === 'width' ? '-w' : '-g');\n append(String(value));\n }\n }\n for (const [key, flag] of [['crown', '-c'], ['tagged', '-t'], ['split', '-s'], ['uniform', '-u']]) {\n const value = options[key];\n if (value !== undefined && typeof value !== 'boolean')\n throw new FmtError('OPTION', `SDK ${key} must be boolean`);\n if (value)\n append(flag);\n }\n if (options.prefix !== undefined) {\n append('-p');\n append(options.prefix);\n }\n append('--');\n if (options.files !== undefined) {\n if (options.files.length > 4096)\n throw new FmtError('LIMIT', 'argument count limit exceeded');\n for (const file of options.files) {\n if (typeof file !== 'string')\n throw new FmtError('OPTION', 'SDK files must be literal VFS paths');\n append(file);\n }\n }\n }\n return args;\n}\n"],
|
|
5
|
+
"mappings": "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AAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EACzG;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAC9G;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACxH;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAS;AAAA,EACzH;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EACvI;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EA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",
|
|
6
|
+
"names": ["length", "key", "length", "shellValueByteLength", "shellValueByteLength", "bytes"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type FmtLimits } from './contracts.js';
|
|
2
|
+
export interface FmtFormattingOptions {
|
|
3
|
+
readonly width?: number;
|
|
4
|
+
readonly goal?: number;
|
|
5
|
+
readonly crown?: boolean;
|
|
6
|
+
readonly tagged?: boolean;
|
|
7
|
+
readonly split?: boolean;
|
|
8
|
+
readonly uniform?: boolean;
|
|
9
|
+
readonly prefix?: string | Uint8Array;
|
|
10
|
+
readonly files?: readonly string[];
|
|
11
|
+
}
|
|
12
|
+
/** Capture bounded SDK values as argv so native option validation stays shared. */
|
|
13
|
+
export declare function captureFmtArguments(options: FmtFormattingOptions & {
|
|
14
|
+
readonly arguments?: readonly Uint8Array[];
|
|
15
|
+
}, limits: FmtLimits): readonly Uint8Array[] | undefined;
|