@hexpro/qr-code-studio 0.0.0-stage → 0.1.1
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 +53 -0
- package/LICENSE +21 -0
- package/README.md +62 -2
- package/dist/app/bulk.d.ts +21 -0
- package/dist/app/bulk.d.ts.map +1 -0
- package/dist/app/bulk.js +564 -0
- package/dist/app/bulk.js.map +1 -0
- package/dist/app/check.d.ts +23 -0
- package/dist/app/check.d.ts.map +1 -0
- package/dist/app/check.js +306 -0
- package/dist/app/check.js.map +1 -0
- package/dist/app/content.d.ts +19 -0
- package/dist/app/content.d.ts.map +1 -0
- package/dist/app/content.js +634 -0
- package/dist/app/content.js.map +1 -0
- package/dist/app/context.d.ts +25 -0
- package/dist/app/context.d.ts.map +1 -0
- package/dist/app/context.js +11 -0
- package/dist/app/context.js.map +1 -0
- package/dist/app/controls.d.ts +95 -0
- package/dist/app/controls.d.ts.map +1 -0
- package/dist/app/controls.js +278 -0
- package/dist/app/controls.js.map +1 -0
- package/dist/app/design-panels.d.ts +27 -0
- package/dist/app/design-panels.d.ts.map +1 -0
- package/dist/app/design-panels.js +1196 -0
- package/dist/app/design-panels.js.map +1 -0
- package/dist/app/dom.d.ts +74 -0
- package/dist/app/dom.d.ts.map +1 -0
- package/dist/app/dom.js +129 -0
- package/dist/app/dom.js.map +1 -0
- package/dist/app/images.d.ts +22 -0
- package/dist/app/images.d.ts.map +1 -0
- package/dist/app/images.js +50 -0
- package/dist/app/images.js.map +1 -0
- package/dist/app/library-view.d.ts +24 -0
- package/dist/app/library-view.d.ts.map +1 -0
- package/dist/app/library-view.js +260 -0
- package/dist/app/library-view.js.map +1 -0
- package/dist/app/main.d.ts +17 -0
- package/dist/app/main.d.ts.map +1 -0
- package/dist/app/main.js +518 -0
- package/dist/app/main.js.map +1 -0
- package/dist/app/measure.d.ts +26 -0
- package/dist/app/measure.d.ts.map +1 -0
- package/dist/app/measure.js +53 -0
- package/dist/app/measure.js.map +1 -0
- package/dist/app/proof.d.ts +30 -0
- package/dist/app/proof.d.ts.map +1 -0
- package/dist/app/proof.js +378 -0
- package/dist/app/proof.js.map +1 -0
- package/dist/app/save.d.ts +27 -0
- package/dist/app/save.d.ts.map +1 -0
- package/dist/app/save.js +331 -0
- package/dist/app/save.js.map +1 -0
- package/dist/app/scan.d.ts +25 -0
- package/dist/app/scan.d.ts.map +1 -0
- package/dist/app/scan.js +421 -0
- package/dist/app/scan.js.map +1 -0
- package/dist/app/shortcuts.d.ts +12 -0
- package/dist/app/shortcuts.d.ts.map +1 -0
- package/dist/app/shortcuts.js +17 -0
- package/dist/app/shortcuts.js.map +1 -0
- package/dist/app/text.d.ts +22 -0
- package/dist/app/text.d.ts.map +1 -0
- package/dist/app/text.js +50 -0
- package/dist/app/text.js.map +1 -0
- package/dist/batch/csv.d.ts +56 -0
- package/dist/batch/csv.d.ts.map +1 -0
- package/dist/batch/csv.js +327 -0
- package/dist/batch/csv.js.map +1 -0
- package/dist/batch/errors.d.ts +60 -0
- package/dist/batch/errors.d.ts.map +1 -0
- package/dist/batch/errors.js +60 -0
- package/dist/batch/errors.js.map +1 -0
- package/dist/batch/filename.d.ts +65 -0
- package/dist/batch/filename.d.ts.map +1 -0
- package/dist/batch/filename.js +205 -0
- package/dist/batch/filename.js.map +1 -0
- package/dist/batch/index.d.ts +17 -0
- package/dist/batch/index.d.ts.map +1 -0
- package/dist/batch/index.js +11 -0
- package/dist/batch/index.js.map +1 -0
- package/dist/batch/issues.d.ts +45 -0
- package/dist/batch/issues.d.ts.map +1 -0
- package/dist/batch/issues.js +47 -0
- package/dist/batch/issues.js.map +1 -0
- package/dist/batch/manifest.d.ts +43 -0
- package/dist/batch/manifest.d.ts.map +1 -0
- package/dist/batch/manifest.js +82 -0
- package/dist/batch/manifest.js.map +1 -0
- package/dist/batch/plan.d.ts +33 -0
- package/dist/batch/plan.d.ts.map +1 -0
- package/dist/batch/plan.js +254 -0
- package/dist/batch/plan.js.map +1 -0
- package/dist/batch/run.d.ts +68 -0
- package/dist/batch/run.d.ts.map +1 -0
- package/dist/batch/run.js +548 -0
- package/dist/batch/run.js.map +1 -0
- package/dist/batch/template.d.ts +54 -0
- package/dist/batch/template.d.ts.map +1 -0
- package/dist/batch/template.js +119 -0
- package/dist/batch/template.js.map +1 -0
- package/dist/batch/text-decoding.d.ts +49 -0
- package/dist/batch/text-decoding.d.ts.map +1 -0
- package/dist/batch/text-decoding.js +160 -0
- package/dist/batch/text-decoding.js.map +1 -0
- package/dist/batch/types.d.ts +240 -0
- package/dist/batch/types.d.ts.map +1 -0
- package/dist/batch/types.js +35 -0
- package/dist/batch/types.js.map +1 -0
- package/dist/batch/verify.d.ts +45 -0
- package/dist/batch/verify.d.ts.map +1 -0
- package/dist/batch/verify.js +72 -0
- package/dist/batch/verify.js.map +1 -0
- package/dist/batch/zip.d.ts +39 -0
- package/dist/batch/zip.d.ts.map +1 -0
- package/dist/batch/zip.js +201 -0
- package/dist/batch/zip.js.map +1 -0
- package/dist/conformance/finder.d.ts +67 -0
- package/dist/conformance/finder.d.ts.map +1 -0
- package/dist/conformance/finder.js +125 -0
- package/dist/conformance/finder.js.map +1 -0
- package/dist/conformance/frame.d.ts +28 -0
- package/dist/conformance/frame.d.ts.map +1 -0
- package/dist/conformance/frame.js +134 -0
- package/dist/conformance/frame.js.map +1 -0
- package/dist/conformance/index.d.ts +15 -0
- package/dist/conformance/index.d.ts.map +1 -0
- package/dist/conformance/index.js +8 -0
- package/dist/conformance/index.js.map +1 -0
- package/dist/conformance/module-shape.d.ts +35 -0
- package/dist/conformance/module-shape.d.ts.map +1 -0
- package/dist/conformance/module-shape.js +139 -0
- package/dist/conformance/module-shape.js.map +1 -0
- package/dist/conformance/payload-type.d.ts +48 -0
- package/dist/conformance/payload-type.d.ts.map +1 -0
- package/dist/conformance/payload-type.js +113 -0
- package/dist/conformance/payload-type.js.map +1 -0
- package/dist/conformance/preset.d.ts +37 -0
- package/dist/conformance/preset.d.ts.map +1 -0
- package/dist/conformance/preset.js +171 -0
- package/dist/conformance/preset.js.map +1 -0
- package/dist/conformance/region-captures.d.ts +41 -0
- package/dist/conformance/region-captures.d.ts.map +1 -0
- package/dist/conformance/region-captures.js +69 -0
- package/dist/conformance/region-captures.js.map +1 -0
- package/dist/conformance/region-shape.d.ts +43 -0
- package/dist/conformance/region-shape.d.ts.map +1 -0
- package/dist/conformance/region-shape.js +214 -0
- package/dist/conformance/region-shape.js.map +1 -0
- package/dist/conformance/sample.d.ts +13 -0
- package/dist/conformance/sample.d.ts.map +1 -0
- package/dist/conformance/sample.js +75 -0
- package/dist/conformance/sample.js.map +1 -0
- package/dist/conformance/types.d.ts +16 -0
- package/dist/conformance/types.d.ts.map +1 -0
- package/dist/conformance/types.js +10 -0
- package/dist/conformance/types.js.map +1 -0
- package/dist/core/bch.d.ts +36 -0
- package/dist/core/bch.d.ts.map +1 -0
- package/dist/core/bch.js +92 -0
- package/dist/core/bch.js.map +1 -0
- package/dist/core/bit-matrix.d.ts +56 -0
- package/dist/core/bit-matrix.d.ts.map +1 -0
- package/dist/core/bit-matrix.js +150 -0
- package/dist/core/bit-matrix.js.map +1 -0
- package/dist/core/bits.d.ts +53 -0
- package/dist/core/bits.d.ts.map +1 -0
- package/dist/core/bits.js +128 -0
- package/dist/core/bits.js.map +1 -0
- package/dist/core/checksums.d.ts +22 -0
- package/dist/core/checksums.d.ts.map +1 -0
- package/dist/core/checksums.js +64 -0
- package/dist/core/checksums.js.map +1 -0
- package/dist/core/deflate.d.ts +51 -0
- package/dist/core/deflate.d.ts.map +1 -0
- package/dist/core/deflate.js +851 -0
- package/dist/core/deflate.js.map +1 -0
- package/dist/core/errors.d.ts +123 -0
- package/dist/core/errors.d.ts.map +1 -0
- package/dist/core/errors.js +168 -0
- package/dist/core/errors.js.map +1 -0
- package/dist/core/field.d.ts +58 -0
- package/dist/core/field.d.ts.map +1 -0
- package/dist/core/field.js +184 -0
- package/dist/core/field.js.map +1 -0
- package/dist/core/huffman.d.ts +31 -0
- package/dist/core/huffman.d.ts.map +1 -0
- package/dist/core/huffman.js +131 -0
- package/dist/core/huffman.js.map +1 -0
- package/dist/core/image.d.ts +18 -0
- package/dist/core/image.d.ts.map +1 -0
- package/dist/core/image.js +2 -0
- package/dist/core/image.js.map +1 -0
- package/dist/core/index.d.ts +25 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +15 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/issue.d.ts +39 -0
- package/dist/core/issue.d.ts.map +1 -0
- package/dist/core/issue.js +24 -0
- package/dist/core/issue.js.map +1 -0
- package/dist/core/math.d.ts +56 -0
- package/dist/core/math.d.ts.map +1 -0
- package/dist/core/math.js +609 -0
- package/dist/core/math.js.map +1 -0
- package/dist/core/prng.d.ts +27 -0
- package/dist/core/prng.d.ts.map +1 -0
- package/dist/core/prng.js +111 -0
- package/dist/core/prng.js.map +1 -0
- package/dist/core/reed-solomon.d.ts +69 -0
- package/dist/core/reed-solomon.d.ts.map +1 -0
- package/dist/core/reed-solomon.js +308 -0
- package/dist/core/reed-solomon.js.map +1 -0
- package/dist/core/registry.d.ts +45 -0
- package/dist/core/registry.d.ts.map +1 -0
- package/dist/core/registry.js +80 -0
- package/dist/core/registry.js.map +1 -0
- package/dist/core/result.d.ts +33 -0
- package/dist/core/result.d.ts.map +1 -0
- package/dist/core/result.js +52 -0
- package/dist/core/result.js.map +1 -0
- package/dist/core/zip.d.ts +36 -0
- package/dist/core/zip.d.ts.map +1 -0
- package/dist/core/zip.js +234 -0
- package/dist/core/zip.js.map +1 -0
- package/dist/decode/alignment.d.ts +34 -0
- package/dist/decode/alignment.d.ts.map +1 -0
- package/dist/decode/alignment.js +179 -0
- package/dist/decode/alignment.js.map +1 -0
- package/dist/decode/binarise.d.ts +95 -0
- package/dist/decode/binarise.d.ts.map +1 -0
- package/dist/decode/binarise.js +399 -0
- package/dist/decode/binarise.js.map +1 -0
- package/dist/decode/decoder.d.ts +75 -0
- package/dist/decode/decoder.d.ts.map +1 -0
- package/dist/decode/decoder.js +773 -0
- package/dist/decode/decoder.js.map +1 -0
- package/dist/decode/erasures.d.ts +26 -0
- package/dist/decode/erasures.d.ts.map +1 -0
- package/dist/decode/erasures.js +34 -0
- package/dist/decode/erasures.js.map +1 -0
- package/dist/decode/failure.d.ts +15 -0
- package/dist/decode/failure.d.ts.map +1 -0
- package/dist/decode/failure.js +22 -0
- package/dist/decode/failure.js.map +1 -0
- package/dist/decode/finder.d.ts +114 -0
- package/dist/decode/finder.d.ts.map +1 -0
- package/dist/decode/finder.js +441 -0
- package/dist/decode/finder.js.map +1 -0
- package/dist/decode/frame.d.ts +49 -0
- package/dist/decode/frame.d.ts.map +1 -0
- package/dist/decode/frame.js +228 -0
- package/dist/decode/frame.js.map +1 -0
- package/dist/decode/grey.d.ts +87 -0
- package/dist/decode/grey.d.ts.map +1 -0
- package/dist/decode/grey.js +226 -0
- package/dist/decode/grey.js.map +1 -0
- package/dist/decode/index.d.ts +4 -0
- package/dist/decode/index.d.ts.map +1 -0
- package/dist/decode/index.js +3 -0
- package/dist/decode/index.js.map +1 -0
- package/dist/decode/locate-qr.d.ts +80 -0
- package/dist/decode/locate-qr.d.ts.map +1 -0
- package/dist/decode/locate-qr.js +295 -0
- package/dist/decode/locate-qr.js.map +1 -0
- package/dist/decode/locate-single.d.ts +47 -0
- package/dist/decode/locate-single.d.ts.map +1 -0
- package/dist/decode/locate-single.js +169 -0
- package/dist/decode/locate-single.js.map +1 -0
- package/dist/decode/plain.d.ts +70 -0
- package/dist/decode/plain.d.ts.map +1 -0
- package/dist/decode/plain.js +460 -0
- package/dist/decode/plain.js.map +1 -0
- package/dist/decode/sample.d.ts +56 -0
- package/dist/decode/sample.d.ts.map +1 -0
- package/dist/decode/sample.js +154 -0
- package/dist/decode/sample.js.map +1 -0
- package/dist/decode/strict.d.ts +255 -0
- package/dist/decode/strict.d.ts.map +1 -0
- package/dist/decode/strict.js +597 -0
- package/dist/decode/strict.js.map +1 -0
- package/dist/decode/tiled.d.ts +137 -0
- package/dist/decode/tiled.d.ts.map +1 -0
- package/dist/decode/tiled.js +452 -0
- package/dist/decode/tiled.js.map +1 -0
- package/dist/decode/transform.d.ts +48 -0
- package/dist/decode/transform.d.ts.map +1 -0
- package/dist/decode/transform.js +180 -0
- package/dist/decode/transform.js.map +1 -0
- package/dist/decode/types.d.ts +163 -0
- package/dist/decode/types.d.ts.map +1 -0
- package/dist/decode/types.js +10 -0
- package/dist/decode/types.js.map +1 -0
- package/dist/design/base64.d.ts +16 -0
- package/dist/design/base64.d.ts.map +1 -0
- package/dist/design/base64.js +97 -0
- package/dist/design/base64.js.map +1 -0
- package/dist/design/canonical.d.ts +13 -0
- package/dist/design/canonical.d.ts.map +1 -0
- package/dist/design/canonical.js +100 -0
- package/dist/design/canonical.js.map +1 -0
- package/dist/design/caption.d.ts +54 -0
- package/dist/design/caption.d.ts.map +1 -0
- package/dist/design/caption.js +175 -0
- package/dist/design/caption.js.map +1 -0
- package/dist/design/catalogue/draw.d.ts +77 -0
- package/dist/design/catalogue/draw.d.ts.map +1 -0
- package/dist/design/catalogue/draw.js +260 -0
- package/dist/design/catalogue/draw.js.map +1 -0
- package/dist/design/catalogue/fills.d.ts +9 -0
- package/dist/design/catalogue/fills.d.ts.map +1 -0
- package/dist/design/catalogue/fills.js +64 -0
- package/dist/design/catalogue/fills.js.map +1 -0
- package/dist/design/catalogue/frames.d.ts +18 -0
- package/dist/design/catalogue/frames.d.ts.map +1 -0
- package/dist/design/catalogue/frames.js +451 -0
- package/dist/design/catalogue/frames.js.map +1 -0
- package/dist/design/catalogue/icons.d.ts +21 -0
- package/dist/design/catalogue/icons.d.ts.map +1 -0
- package/dist/design/catalogue/icons.js +293 -0
- package/dist/design/catalogue/icons.js.map +1 -0
- package/dist/design/catalogue/module-shapes.d.ts +21 -0
- package/dist/design/catalogue/module-shapes.d.ts.map +1 -0
- package/dist/design/catalogue/module-shapes.js +266 -0
- package/dist/design/catalogue/module-shapes.js.map +1 -0
- package/dist/design/catalogue/presets.d.ts +31 -0
- package/dist/design/catalogue/presets.d.ts.map +1 -0
- package/dist/design/catalogue/presets.js +696 -0
- package/dist/design/catalogue/presets.js.map +1 -0
- package/dist/design/catalogue/region-shapes.d.ts +41 -0
- package/dist/design/catalogue/region-shapes.d.ts.map +1 -0
- package/dist/design/catalogue/region-shapes.js +399 -0
- package/dist/design/catalogue/region-shapes.js.map +1 -0
- package/dist/design/catalogue/schema.d.ts +14 -0
- package/dist/design/catalogue/schema.d.ts.map +1 -0
- package/dist/design/catalogue/schema.js +58 -0
- package/dist/design/catalogue/schema.js.map +1 -0
- package/dist/design/constraints.d.ts +25 -0
- package/dist/design/constraints.d.ts.map +1 -0
- package/dist/design/constraints.js +194 -0
- package/dist/design/constraints.js.map +1 -0
- package/dist/design/document.d.ts +64 -0
- package/dist/design/document.d.ts.map +1 -0
- package/dist/design/document.js +66 -0
- package/dist/design/document.js.map +1 -0
- package/dist/design/finder.d.ts +79 -0
- package/dist/design/finder.d.ts.map +1 -0
- package/dist/design/finder.js +270 -0
- package/dist/design/finder.js.map +1 -0
- package/dist/design/index.d.ts +18 -0
- package/dist/design/index.d.ts.map +1 -0
- package/dist/design/index.js +15 -0
- package/dist/design/index.js.map +1 -0
- package/dist/design/link.d.ts +41 -0
- package/dist/design/link.d.ts.map +1 -0
- package/dist/design/link.js +131 -0
- package/dist/design/link.js.map +1 -0
- package/dist/design/logo.d.ts +57 -0
- package/dist/design/logo.d.ts.map +1 -0
- package/dist/design/logo.js +376 -0
- package/dist/design/logo.js.map +1 -0
- package/dist/design/migrate.d.ts +31 -0
- package/dist/design/migrate.d.ts.map +1 -0
- package/dist/design/migrate.js +87 -0
- package/dist/design/migrate.js.map +1 -0
- package/dist/design/neighbours.d.ts +24 -0
- package/dist/design/neighbours.d.ts.map +1 -0
- package/dist/design/neighbours.js +50 -0
- package/dist/design/neighbours.js.map +1 -0
- package/dist/design/paint.d.ts +47 -0
- package/dist/design/paint.d.ts.map +1 -0
- package/dist/design/paint.js +115 -0
- package/dist/design/paint.js.map +1 -0
- package/dist/design/params.d.ts +30 -0
- package/dist/design/params.d.ts.map +1 -0
- package/dist/design/params.js +85 -0
- package/dist/design/params.js.map +1 -0
- package/dist/design/preset-size.d.ts +14 -0
- package/dist/design/preset-size.d.ts.map +1 -0
- package/dist/design/preset-size.js +14 -0
- package/dist/design/preset-size.js.map +1 -0
- package/dist/design/registries.d.ts +9 -0
- package/dist/design/registries.d.ts.map +1 -0
- package/dist/design/registries.js +24 -0
- package/dist/design/registries.js.map +1 -0
- package/dist/design/scene.d.ts +38 -0
- package/dist/design/scene.d.ts.map +1 -0
- package/dist/design/scene.js +694 -0
- package/dist/design/scene.js.map +1 -0
- package/dist/design/swiss-cross.d.ts +54 -0
- package/dist/design/swiss-cross.d.ts.map +1 -0
- package/dist/design/swiss-cross.js +95 -0
- package/dist/design/swiss-cross.js.map +1 -0
- package/dist/design/types.d.ts +389 -0
- package/dist/design/types.d.ts.map +1 -0
- package/dist/design/types.js +29 -0
- package/dist/design/types.js.map +1 -0
- package/dist/design/validate.d.ts +48 -0
- package/dist/design/validate.d.ts.map +1 -0
- package/dist/design/validate.js +986 -0
- package/dist/design/validate.js.map +1 -0
- package/dist/dom/camera.d.ts +94 -0
- package/dist/dom/camera.d.ts.map +1 -0
- package/dist/dom/camera.js +288 -0
- package/dist/dom/camera.js.map +1 -0
- package/dist/dom/file-library.d.ts +297 -0
- package/dist/dom/file-library.d.ts.map +1 -0
- package/dist/dom/file-library.js +703 -0
- package/dist/dom/file-library.js.map +1 -0
- package/dist/dom/image.d.ts +77 -0
- package/dist/dom/image.d.ts.map +1 -0
- package/dist/dom/image.js +253 -0
- package/dist/dom/image.js.map +1 -0
- package/dist/dom/index.d.ts +19 -0
- package/dist/dom/index.d.ts.map +1 -0
- package/dist/dom/index.js +10 -0
- package/dist/dom/index.js.map +1 -0
- package/dist/dom/library/index.d.ts +4 -0
- package/dist/dom/library/index.d.ts.map +1 -0
- package/dist/dom/library/index.js +2 -0
- package/dist/dom/library/index.js.map +1 -0
- package/dist/dom/library/indexeddb.d.ts +71 -0
- package/dist/dom/library/indexeddb.d.ts.map +1 -0
- package/dist/dom/library/indexeddb.js +365 -0
- package/dist/dom/library/indexeddb.js.map +1 -0
- package/dist/dom/logo.d.ts +36 -0
- package/dist/dom/logo.d.ts.map +1 -0
- package/dist/dom/logo.js +99 -0
- package/dist/dom/logo.js.map +1 -0
- package/dist/dom/orientation.d.ts +32 -0
- package/dist/dom/orientation.d.ts.map +1 -0
- package/dist/dom/orientation.js +152 -0
- package/dist/dom/orientation.js.map +1 -0
- package/dist/dom/output.d.ts +58 -0
- package/dist/dom/output.d.ts.map +1 -0
- package/dist/dom/output.js +93 -0
- package/dist/dom/output.js.map +1 -0
- package/dist/dom/print.d.ts +52 -0
- package/dist/dom/print.d.ts.map +1 -0
- package/dist/dom/print.js +101 -0
- package/dist/dom/print.js.map +1 -0
- package/dist/dom/raster-encoder.d.ts +43 -0
- package/dist/dom/raster-encoder.d.ts.map +1 -0
- package/dist/dom/raster-encoder.js +102 -0
- package/dist/dom/raster-encoder.js.map +1 -0
- package/dist/dom/resample.d.ts +20 -0
- package/dist/dom/resample.d.ts.map +1 -0
- package/dist/dom/resample.js +107 -0
- package/dist/dom/resample.js.map +1 -0
- package/dist/dom/types.d.ts +54 -0
- package/dist/dom/types.d.ts.map +1 -0
- package/dist/dom/types.js +13 -0
- package/dist/dom/types.js.map +1 -0
- package/dist/encode/bitstream.d.ts +14 -0
- package/dist/encode/bitstream.d.ts.map +1 -0
- package/dist/encode/bitstream.js +31 -0
- package/dist/encode/bitstream.js.map +1 -0
- package/dist/encode/encode.d.ts +21 -0
- package/dist/encode/encode.d.ts.map +1 -0
- package/dist/encode/encode.js +65 -0
- package/dist/encode/encode.js.map +1 -0
- package/dist/encode/index.d.ts +5 -0
- package/dist/encode/index.d.ts.map +1 -0
- package/dist/encode/index.js +4 -0
- package/dist/encode/index.js.map +1 -0
- package/dist/encode/plan.d.ts +61 -0
- package/dist/encode/plan.d.ts.map +1 -0
- package/dist/encode/plan.js +177 -0
- package/dist/encode/plan.js.map +1 -0
- package/dist/encode/structured-append.d.ts +35 -0
- package/dist/encode/structured-append.d.ts.map +1 -0
- package/dist/encode/structured-append.js +153 -0
- package/dist/encode/structured-append.js.map +1 -0
- package/dist/fonts/latin.d.ts +118 -0
- package/dist/fonts/latin.d.ts.map +1 -0
- package/dist/fonts/latin.js +137 -0
- package/dist/fonts/latin.js.map +1 -0
- package/dist/geometry/flatten.d.ts +60 -0
- package/dist/geometry/flatten.d.ts.map +1 -0
- package/dist/geometry/flatten.js +177 -0
- package/dist/geometry/flatten.js.map +1 -0
- package/dist/geometry/index.d.ts +10 -0
- package/dist/geometry/index.d.ts.map +1 -0
- package/dist/geometry/index.js +6 -0
- package/dist/geometry/index.js.map +1 -0
- package/dist/geometry/matrix.d.ts +50 -0
- package/dist/geometry/matrix.d.ts.map +1 -0
- package/dist/geometry/matrix.js +113 -0
- package/dist/geometry/matrix.js.map +1 -0
- package/dist/geometry/measure.d.ts +35 -0
- package/dist/geometry/measure.d.ts.map +1 -0
- package/dist/geometry/measure.js +206 -0
- package/dist/geometry/measure.js.map +1 -0
- package/dist/geometry/path.d.ts +137 -0
- package/dist/geometry/path.d.ts.map +1 -0
- package/dist/geometry/path.js +401 -0
- package/dist/geometry/path.js.map +1 -0
- package/dist/geometry/trace.d.ts +29 -0
- package/dist/geometry/trace.d.ts.map +1 -0
- package/dist/geometry/trace.js +166 -0
- package/dist/geometry/trace.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/inspect/explain.d.ts +32 -0
- package/dist/inspect/explain.d.ts.map +1 -0
- package/dist/inspect/explain.js +99 -0
- package/dist/inspect/explain.js.map +1 -0
- package/dist/inspect/gs1.d.ts +38 -0
- package/dist/inspect/gs1.d.ts.map +1 -0
- package/dist/inspect/gs1.js +130 -0
- package/dist/inspect/gs1.js.map +1 -0
- package/dist/inspect/index.d.ts +9 -0
- package/dist/inspect/index.d.ts.map +1 -0
- package/dist/inspect/index.js +6 -0
- package/dist/inspect/index.js.map +1 -0
- package/dist/inspect/inspect.d.ts +29 -0
- package/dist/inspect/inspect.d.ts.map +1 -0
- package/dist/inspect/inspect.js +98 -0
- package/dist/inspect/inspect.js.map +1 -0
- package/dist/inspect/keys.d.ts +54 -0
- package/dist/inspect/keys.d.ts.map +1 -0
- package/dist/inspect/keys.js +63 -0
- package/dist/inspect/keys.js.map +1 -0
- package/dist/inspect/sets.d.ts +27 -0
- package/dist/inspect/sets.d.ts.map +1 -0
- package/dist/inspect/sets.js +67 -0
- package/dist/inspect/sets.js.map +1 -0
- package/dist/inspect/types.d.ts +81 -0
- package/dist/inspect/types.d.ts.map +1 -0
- package/dist/inspect/types.js +16 -0
- package/dist/inspect/types.js.map +1 -0
- package/dist/messages/en/app.d.ts +11 -0
- package/dist/messages/en/app.d.ts.map +1 -0
- package/dist/messages/en/app.js +395 -0
- package/dist/messages/en/app.js.map +1 -0
- package/dist/messages/en/batch.d.ts +18 -0
- package/dist/messages/en/batch.d.ts.map +1 -0
- package/dist/messages/en/batch.js +42 -0
- package/dist/messages/en/batch.js.map +1 -0
- package/dist/messages/en/decode.d.ts +9 -0
- package/dist/messages/en/decode.d.ts.map +1 -0
- package/dist/messages/en/decode.js +21 -0
- package/dist/messages/en/decode.js.map +1 -0
- package/dist/messages/en/design.d.ts +13 -0
- package/dist/messages/en/design.d.ts.map +1 -0
- package/dist/messages/en/design.js +228 -0
- package/dist/messages/en/design.js.map +1 -0
- package/dist/messages/en/dom.d.ts +11 -0
- package/dist/messages/en/dom.d.ts.map +1 -0
- package/dist/messages/en/dom.js +14 -0
- package/dist/messages/en/dom.js.map +1 -0
- package/dist/messages/en/encode.d.ts +13 -0
- package/dist/messages/en/encode.d.ts.map +1 -0
- package/dist/messages/en/encode.js +20 -0
- package/dist/messages/en/encode.js.map +1 -0
- package/dist/messages/en/index.d.ts +48 -0
- package/dist/messages/en/index.d.ts.map +1 -0
- package/dist/messages/en/index.js +73 -0
- package/dist/messages/en/index.js.map +1 -0
- package/dist/messages/en/inspect.d.ts +13 -0
- package/dist/messages/en/inspect.d.ts.map +1 -0
- package/dist/messages/en/inspect.js +84 -0
- package/dist/messages/en/inspect.js.map +1 -0
- package/dist/messages/en/library.d.ts +12 -0
- package/dist/messages/en/library.d.ts.map +1 -0
- package/dist/messages/en/library.js +27 -0
- package/dist/messages/en/library.js.map +1 -0
- package/dist/messages/en/micro.d.ts +9 -0
- package/dist/messages/en/micro.d.ts.map +1 -0
- package/dist/messages/en/micro.js +13 -0
- package/dist/messages/en/micro.js.map +1 -0
- package/dist/messages/en/own-link.d.ts +7 -0
- package/dist/messages/en/own-link.d.ts.map +1 -0
- package/dist/messages/en/own-link.js +29 -0
- package/dist/messages/en/own-link.js.map +1 -0
- package/dist/messages/en/payload.d.ts +13 -0
- package/dist/messages/en/payload.d.ts.map +1 -0
- package/dist/messages/en/payload.js +427 -0
- package/dist/messages/en/payload.js.map +1 -0
- package/dist/messages/en/rmqr.d.ts +9 -0
- package/dist/messages/en/rmqr.d.ts.map +1 -0
- package/dist/messages/en/rmqr.js +12 -0
- package/dist/messages/en/rmqr.js.map +1 -0
- package/dist/messages/en/studio.d.ts +18 -0
- package/dist/messages/en/studio.d.ts.map +1 -0
- package/dist/messages/en/studio.js +117 -0
- package/dist/messages/en/studio.js.map +1 -0
- package/dist/messages/en/symbology.d.ts +13 -0
- package/dist/messages/en/symbology.d.ts.map +1 -0
- package/dist/messages/en/symbology.js +21 -0
- package/dist/messages/en/symbology.js.map +1 -0
- package/dist/messages/en/text.d.ts +23 -0
- package/dist/messages/en/text.d.ts.map +1 -0
- package/dist/messages/en/text.js +47 -0
- package/dist/messages/en/text.js.map +1 -0
- package/dist/messages/en/verify.d.ts +13 -0
- package/dist/messages/en/verify.d.ts.map +1 -0
- package/dist/messages/en/verify.js +117 -0
- package/dist/messages/en/verify.js.map +1 -0
- package/dist/messages/format.d.ts +30 -0
- package/dist/messages/format.d.ts.map +1 -0
- package/dist/messages/format.js +170 -0
- package/dist/messages/format.js.map +1 -0
- package/dist/own-link/index.d.ts +5 -0
- package/dist/own-link/index.d.ts.map +1 -0
- package/dist/own-link/index.js +3 -0
- package/dist/own-link/index.js.map +1 -0
- package/dist/own-link/query.d.ts +10 -0
- package/dist/own-link/query.d.ts.map +1 -0
- package/dist/own-link/query.js +33 -0
- package/dist/own-link/query.js.map +1 -0
- package/dist/own-link/redirects.d.ts +54 -0
- package/dist/own-link/redirects.d.ts.map +1 -0
- package/dist/own-link/redirects.js +271 -0
- package/dist/own-link/redirects.js.map +1 -0
- package/dist/own-link/utm.d.ts +24 -0
- package/dist/own-link/utm.d.ts.map +1 -0
- package/dist/own-link/utm.js +82 -0
- package/dist/own-link/utm.js.map +1 -0
- package/dist/payload/banking.d.ts +39 -0
- package/dist/payload/banking.d.ts.map +1 -0
- package/dist/payload/banking.js +87 -0
- package/dist/payload/banking.js.map +1 -0
- package/dist/payload/base58.d.ts +21 -0
- package/dist/payload/base58.d.ts.map +1 -0
- package/dist/payload/base58.js +75 -0
- package/dist/payload/base58.js.map +1 -0
- package/dist/payload/bech32.d.ts +59 -0
- package/dist/payload/bech32.d.ts.map +1 -0
- package/dist/payload/bech32.js +137 -0
- package/dist/payload/bech32.js.map +1 -0
- package/dist/payload/check-digits.d.ts +49 -0
- package/dist/payload/check-digits.d.ts.map +1 -0
- package/dist/payload/check-digits.js +101 -0
- package/dist/payload/check-digits.js.map +1 -0
- package/dist/payload/content/bitcoin.d.ts +34 -0
- package/dist/payload/content/bitcoin.d.ts.map +1 -0
- package/dist/payload/content/bitcoin.js +137 -0
- package/dist/payload/content/bitcoin.js.map +1 -0
- package/dist/payload/content/email.d.ts +19 -0
- package/dist/payload/content/email.d.ts.map +1 -0
- package/dist/payload/content/email.js +137 -0
- package/dist/payload/content/email.js.map +1 -0
- package/dist/payload/content/epc.d.ts +32 -0
- package/dist/payload/content/epc.d.ts.map +1 -0
- package/dist/payload/content/epc.js +160 -0
- package/dist/payload/content/epc.js.map +1 -0
- package/dist/payload/content/event.d.ts +35 -0
- package/dist/payload/content/event.d.ts.map +1 -0
- package/dist/payload/content/event.js +242 -0
- package/dist/payload/content/event.js.map +1 -0
- package/dist/payload/content/facetime.d.ts +14 -0
- package/dist/payload/content/facetime.d.ts.map +1 -0
- package/dist/payload/content/facetime.js +56 -0
- package/dist/payload/content/facetime.js.map +1 -0
- package/dist/payload/content/geo.d.ts +24 -0
- package/dist/payload/content/geo.d.ts.map +1 -0
- package/dist/payload/content/geo.js +139 -0
- package/dist/payload/content/geo.js.map +1 -0
- package/dist/payload/content/gs1-digital-link.d.ts +34 -0
- package/dist/payload/content/gs1-digital-link.d.ts.map +1 -0
- package/dist/payload/content/gs1-digital-link.js +171 -0
- package/dist/payload/content/gs1-digital-link.js.map +1 -0
- package/dist/payload/content/lightning.d.ts +22 -0
- package/dist/payload/content/lightning.d.ts.map +1 -0
- package/dist/payload/content/lightning.js +90 -0
- package/dist/payload/content/lightning.js.map +1 -0
- package/dist/payload/content/mecard.d.ts +23 -0
- package/dist/payload/content/mecard.d.ts.map +1 -0
- package/dist/payload/content/mecard.js +111 -0
- package/dist/payload/content/mecard.js.map +1 -0
- package/dist/payload/content/phone.d.ts +17 -0
- package/dist/payload/content/phone.d.ts.map +1 -0
- package/dist/payload/content/phone.js +39 -0
- package/dist/payload/content/phone.js.map +1 -0
- package/dist/payload/content/pix.d.ts +36 -0
- package/dist/payload/content/pix.d.ts.map +1 -0
- package/dist/payload/content/pix.js +191 -0
- package/dist/payload/content/pix.js.map +1 -0
- package/dist/payload/content/signal.d.ts +17 -0
- package/dist/payload/content/signal.d.ts.map +1 -0
- package/dist/payload/content/signal.js +43 -0
- package/dist/payload/content/signal.js.map +1 -0
- package/dist/payload/content/sms.d.ts +18 -0
- package/dist/payload/content/sms.d.ts.map +1 -0
- package/dist/payload/content/sms.js +64 -0
- package/dist/payload/content/sms.js.map +1 -0
- package/dist/payload/content/swiss-qr-bill.d.ts +61 -0
- package/dist/payload/content/swiss-qr-bill.d.ts.map +1 -0
- package/dist/payload/content/swiss-qr-bill.js +325 -0
- package/dist/payload/content/swiss-qr-bill.js.map +1 -0
- package/dist/payload/content/telegram.d.ts +18 -0
- package/dist/payload/content/telegram.d.ts.map +1 -0
- package/dist/payload/content/telegram.js +105 -0
- package/dist/payload/content/telegram.js.map +1 -0
- package/dist/payload/content/text.d.ts +9 -0
- package/dist/payload/content/text.d.ts.map +1 -0
- package/dist/payload/content/text.js +18 -0
- package/dist/payload/content/text.js.map +1 -0
- package/dist/payload/content/upi.d.ts +21 -0
- package/dist/payload/content/upi.d.ts.map +1 -0
- package/dist/payload/content/upi.js +89 -0
- package/dist/payload/content/upi.js.map +1 -0
- package/dist/payload/content/url.d.ts +31 -0
- package/dist/payload/content/url.d.ts.map +1 -0
- package/dist/payload/content/url.js +120 -0
- package/dist/payload/content/url.js.map +1 -0
- package/dist/payload/content/vcard.d.ts +42 -0
- package/dist/payload/content/vcard.d.ts.map +1 -0
- package/dist/payload/content/vcard.js +302 -0
- package/dist/payload/content/vcard.js.map +1 -0
- package/dist/payload/content/whatsapp.d.ts +17 -0
- package/dist/payload/content/whatsapp.d.ts.map +1 -0
- package/dist/payload/content/whatsapp.js +72 -0
- package/dist/payload/content/whatsapp.js.map +1 -0
- package/dist/payload/content/wifi.d.ts +48 -0
- package/dist/payload/content/wifi.d.ts.map +1 -0
- package/dist/payload/content/wifi.js +240 -0
- package/dist/payload/content/wifi.js.map +1 -0
- package/dist/payload/content/zatca.d.ts +35 -0
- package/dist/payload/content/zatca.d.ts.map +1 -0
- package/dist/payload/content/zatca.js +156 -0
- package/dist/payload/content/zatca.js.map +1 -0
- package/dist/payload/data/hosts.d.ts +39 -0
- package/dist/payload/data/hosts.d.ts.map +1 -0
- package/dist/payload/data/hosts.js +74 -0
- package/dist/payload/data/hosts.js.map +1 -0
- package/dist/payload/define.d.ts +57 -0
- package/dist/payload/define.d.ts.map +1 -0
- package/dist/payload/define.js +87 -0
- package/dist/payload/define.js.map +1 -0
- package/dist/payload/detect.d.ts +13 -0
- package/dist/payload/detect.d.ts.map +1 -0
- package/dist/payload/detect.js +32 -0
- package/dist/payload/detect.js.map +1 -0
- package/dist/payload/emv.d.ts +41 -0
- package/dist/payload/emv.d.ts.map +1 -0
- package/dist/payload/emv.js +73 -0
- package/dist/payload/emv.js.map +1 -0
- package/dist/payload/escape.d.ts +66 -0
- package/dist/payload/escape.d.ts.map +1 -0
- package/dist/payload/escape.js +225 -0
- package/dist/payload/escape.js.map +1 -0
- package/dist/payload/fields.d.ts +86 -0
- package/dist/payload/fields.d.ts.map +1 -0
- package/dist/payload/fields.js +368 -0
- package/dist/payload/fields.js.map +1 -0
- package/dist/payload/hash.d.ts +11 -0
- package/dist/payload/hash.d.ts.map +1 -0
- package/dist/payload/hash.js +82 -0
- package/dist/payload/hash.js.map +1 -0
- package/dist/payload/index.d.ts +58 -0
- package/dist/payload/index.d.ts.map +1 -0
- package/dist/payload/index.js +32 -0
- package/dist/payload/index.js.map +1 -0
- package/dist/payload/punycode.d.ts +18 -0
- package/dist/payload/punycode.d.ts.map +1 -0
- package/dist/payload/punycode.js +99 -0
- package/dist/payload/punycode.js.map +1 -0
- package/dist/payload/registry.d.ts +20 -0
- package/dist/payload/registry.d.ts.map +1 -0
- package/dist/payload/registry.js +64 -0
- package/dist/payload/registry.js.map +1 -0
- package/dist/payload/safety.d.ts +13 -0
- package/dist/payload/safety.d.ts.map +1 -0
- package/dist/payload/safety.js +30 -0
- package/dist/payload/safety.js.map +1 -0
- package/dist/payload/scripts.d.ts +25 -0
- package/dist/payload/scripts.d.ts.map +1 -0
- package/dist/payload/scripts.js +90 -0
- package/dist/payload/scripts.js.map +1 -0
- package/dist/payload/types.d.ts +138 -0
- package/dist/payload/types.d.ts.map +1 -0
- package/dist/payload/types.js +28 -0
- package/dist/payload/types.js.map +1 -0
- package/dist/payload/uri.d.ts +24 -0
- package/dist/payload/uri.d.ts.map +1 -0
- package/dist/payload/uri.js +69 -0
- package/dist/payload/uri.js.map +1 -0
- package/dist/payload/url-safety.d.ts +31 -0
- package/dist/payload/url-safety.d.ts.map +1 -0
- package/dist/payload/url-safety.js +221 -0
- package/dist/payload/url-safety.js.map +1 -0
- package/dist/payload/vectors/bitcoin.d.ts +13 -0
- package/dist/payload/vectors/bitcoin.d.ts.map +1 -0
- package/dist/payload/vectors/bitcoin.js +83 -0
- package/dist/payload/vectors/bitcoin.js.map +1 -0
- package/dist/payload/vectors/built-in.d.ts +15 -0
- package/dist/payload/vectors/built-in.d.ts.map +1 -0
- package/dist/payload/vectors/built-in.js +59 -0
- package/dist/payload/vectors/built-in.js.map +1 -0
- package/dist/payload/vectors/email.d.ts +8 -0
- package/dist/payload/vectors/email.d.ts.map +1 -0
- package/dist/payload/vectors/email.js +60 -0
- package/dist/payload/vectors/email.js.map +1 -0
- package/dist/payload/vectors/epc.d.ts +9 -0
- package/dist/payload/vectors/epc.d.ts.map +1 -0
- package/dist/payload/vectors/epc.js +38 -0
- package/dist/payload/vectors/epc.js.map +1 -0
- package/dist/payload/vectors/event.d.ts +9 -0
- package/dist/payload/vectors/event.d.ts.map +1 -0
- package/dist/payload/vectors/event.js +57 -0
- package/dist/payload/vectors/event.js.map +1 -0
- package/dist/payload/vectors/facetime.d.ts +9 -0
- package/dist/payload/vectors/facetime.d.ts.map +1 -0
- package/dist/payload/vectors/facetime.js +19 -0
- package/dist/payload/vectors/facetime.js.map +1 -0
- package/dist/payload/vectors/geo.d.ts +8 -0
- package/dist/payload/vectors/geo.d.ts.map +1 -0
- package/dist/payload/vectors/geo.js +22 -0
- package/dist/payload/vectors/geo.js.map +1 -0
- package/dist/payload/vectors/gs1-digital-link.d.ts +9 -0
- package/dist/payload/vectors/gs1-digital-link.d.ts.map +1 -0
- package/dist/payload/vectors/gs1-digital-link.js +21 -0
- package/dist/payload/vectors/gs1-digital-link.js.map +1 -0
- package/dist/payload/vectors/hosts.d.ts +12 -0
- package/dist/payload/vectors/hosts.d.ts.map +1 -0
- package/dist/payload/vectors/hosts.js +50 -0
- package/dist/payload/vectors/hosts.js.map +1 -0
- package/dist/payload/vectors/index.d.ts +10 -0
- package/dist/payload/vectors/index.d.ts.map +1 -0
- package/dist/payload/vectors/index.js +9 -0
- package/dist/payload/vectors/index.js.map +1 -0
- package/dist/payload/vectors/lightning.d.ts +9 -0
- package/dist/payload/vectors/lightning.d.ts.map +1 -0
- package/dist/payload/vectors/lightning.js +23 -0
- package/dist/payload/vectors/lightning.js.map +1 -0
- package/dist/payload/vectors/mecard.d.ts +9 -0
- package/dist/payload/vectors/mecard.d.ts.map +1 -0
- package/dist/payload/vectors/mecard.js +25 -0
- package/dist/payload/vectors/mecard.js.map +1 -0
- package/dist/payload/vectors/phone.d.ts +9 -0
- package/dist/payload/vectors/phone.d.ts.map +1 -0
- package/dist/payload/vectors/phone.js +13 -0
- package/dist/payload/vectors/phone.js.map +1 -0
- package/dist/payload/vectors/pix.d.ts +9 -0
- package/dist/payload/vectors/pix.d.ts.map +1 -0
- package/dist/payload/vectors/pix.js +21 -0
- package/dist/payload/vectors/pix.js.map +1 -0
- package/dist/payload/vectors/signal.d.ts +9 -0
- package/dist/payload/vectors/signal.d.ts.map +1 -0
- package/dist/payload/vectors/signal.js +14 -0
- package/dist/payload/vectors/signal.js.map +1 -0
- package/dist/payload/vectors/sms.d.ts +9 -0
- package/dist/payload/vectors/sms.d.ts.map +1 -0
- package/dist/payload/vectors/sms.js +18 -0
- package/dist/payload/vectors/sms.js.map +1 -0
- package/dist/payload/vectors/swiss-qr-bill.d.ts +9 -0
- package/dist/payload/vectors/swiss-qr-bill.d.ts.map +1 -0
- package/dist/payload/vectors/swiss-qr-bill.js +72 -0
- package/dist/payload/vectors/swiss-qr-bill.js.map +1 -0
- package/dist/payload/vectors/telegram.d.ts +9 -0
- package/dist/payload/vectors/telegram.d.ts.map +1 -0
- package/dist/payload/vectors/telegram.js +19 -0
- package/dist/payload/vectors/telegram.js.map +1 -0
- package/dist/payload/vectors/text.d.ts +9 -0
- package/dist/payload/vectors/text.d.ts.map +1 -0
- package/dist/payload/vectors/text.js +13 -0
- package/dist/payload/vectors/text.js.map +1 -0
- package/dist/payload/vectors/upi.d.ts +9 -0
- package/dist/payload/vectors/upi.d.ts.map +1 -0
- package/dist/payload/vectors/upi.js +14 -0
- package/dist/payload/vectors/upi.js.map +1 -0
- package/dist/payload/vectors/url.d.ts +8 -0
- package/dist/payload/vectors/url.d.ts.map +1 -0
- package/dist/payload/vectors/url.js +30 -0
- package/dist/payload/vectors/url.js.map +1 -0
- package/dist/payload/vectors/vcard.d.ts +9 -0
- package/dist/payload/vectors/vcard.d.ts.map +1 -0
- package/dist/payload/vectors/vcard.js +47 -0
- package/dist/payload/vectors/vcard.js.map +1 -0
- package/dist/payload/vectors/whatsapp.d.ts +9 -0
- package/dist/payload/vectors/whatsapp.d.ts.map +1 -0
- package/dist/payload/vectors/whatsapp.js +19 -0
- package/dist/payload/vectors/whatsapp.js.map +1 -0
- package/dist/payload/vectors/wifi.d.ts +13 -0
- package/dist/payload/vectors/wifi.d.ts.map +1 -0
- package/dist/payload/vectors/wifi.js +40 -0
- package/dist/payload/vectors/wifi.js.map +1 -0
- package/dist/payload/vectors/zatca.d.ts +12 -0
- package/dist/payload/vectors/zatca.d.ts.map +1 -0
- package/dist/payload/vectors/zatca.js +28 -0
- package/dist/payload/vectors/zatca.js.map +1 -0
- package/dist/qr-code-studio.html +190 -0
- package/dist/registries.d.ts +24 -0
- package/dist/registries.d.ts.map +1 -0
- package/dist/registries.js +23 -0
- package/dist/registries.js.map +1 -0
- package/dist/render/base64.d.ts +11 -0
- package/dist/render/base64.d.ts.map +1 -0
- package/dist/render/base64.js +40 -0
- package/dist/render/base64.js.map +1 -0
- package/dist/render/colour.d.ts +28 -0
- package/dist/render/colour.d.ts.map +1 -0
- package/dist/render/colour.js +72 -0
- package/dist/render/colour.js.map +1 -0
- package/dist/render/conic.d.ts +68 -0
- package/dist/render/conic.d.ts.map +1 -0
- package/dist/render/conic.js +205 -0
- package/dist/render/conic.js.map +1 -0
- package/dist/render/coverage.d.ts +154 -0
- package/dist/render/coverage.d.ts.map +1 -0
- package/dist/render/coverage.js +613 -0
- package/dist/render/coverage.js.map +1 -0
- package/dist/render/eps.d.ts +41 -0
- package/dist/render/eps.d.ts.map +1 -0
- package/dist/render/eps.js +377 -0
- package/dist/render/eps.js.map +1 -0
- package/dist/render/impose.d.ts +130 -0
- package/dist/render/impose.d.ts.map +1 -0
- package/dist/render/impose.js +288 -0
- package/dist/render/impose.js.map +1 -0
- package/dist/render/index.d.ts +22 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +13 -0
- package/dist/render/index.js.map +1 -0
- package/dist/render/paint.d.ts +62 -0
- package/dist/render/paint.d.ts.map +1 -0
- package/dist/render/paint.js +169 -0
- package/dist/render/paint.js.map +1 -0
- package/dist/render/pdf-colour.d.ts +34 -0
- package/dist/render/pdf-colour.d.ts.map +1 -0
- package/dist/render/pdf-colour.js +64 -0
- package/dist/render/pdf-colour.js.map +1 -0
- package/dist/render/pdf-content.d.ts +90 -0
- package/dist/render/pdf-content.d.ts.map +1 -0
- package/dist/render/pdf-content.js +367 -0
- package/dist/render/pdf-content.js.map +1 -0
- package/dist/render/pdf-document.d.ts +38 -0
- package/dist/render/pdf-document.d.ts.map +1 -0
- package/dist/render/pdf-document.js +110 -0
- package/dist/render/pdf-document.js.map +1 -0
- package/dist/render/pdf-hash.d.ts +14 -0
- package/dist/render/pdf-hash.d.ts.map +1 -0
- package/dist/render/pdf-hash.js +71 -0
- package/dist/render/pdf-hash.js.map +1 -0
- package/dist/render/pdf-syntax.d.ts +45 -0
- package/dist/render/pdf-syntax.d.ts.map +1 -0
- package/dist/render/pdf-syntax.js +100 -0
- package/dist/render/pdf-syntax.js.map +1 -0
- package/dist/render/pdf.d.ts +59 -0
- package/dist/render/pdf.d.ts.map +1 -0
- package/dist/render/pdf.js +267 -0
- package/dist/render/pdf.js.map +1 -0
- package/dist/render/png-decode.d.ts +33 -0
- package/dist/render/png-decode.d.ts.map +1 -0
- package/dist/render/png-decode.js +345 -0
- package/dist/render/png-decode.js.map +1 -0
- package/dist/render/png.d.ts +37 -0
- package/dist/render/png.d.ts.map +1 -0
- package/dist/render/png.js +350 -0
- package/dist/render/png.js.map +1 -0
- package/dist/render/raster.d.ts +40 -0
- package/dist/render/raster.d.ts.map +1 -0
- package/dist/render/raster.js +245 -0
- package/dist/render/raster.js.map +1 -0
- package/dist/render/scene.d.ts +84 -0
- package/dist/render/scene.d.ts.map +1 -0
- package/dist/render/scene.js +216 -0
- package/dist/render/scene.js.map +1 -0
- package/dist/render/sheets.d.ts +26 -0
- package/dist/render/sheets.d.ts.map +1 -0
- package/dist/render/sheets.js +83 -0
- package/dist/render/sheets.js.map +1 -0
- package/dist/render/svg.d.ts +54 -0
- package/dist/render/svg.d.ts.map +1 -0
- package/dist/render/svg.js +324 -0
- package/dist/render/svg.js.map +1 -0
- package/dist/render/types.d.ts +95 -0
- package/dist/render/types.d.ts.map +1 -0
- package/dist/render/types.js +9 -0
- package/dist/render/types.js.map +1 -0
- package/dist/segment/alphanumeric.d.ts +15 -0
- package/dist/segment/alphanumeric.d.ts.map +1 -0
- package/dist/segment/alphanumeric.js +23 -0
- package/dist/segment/alphanumeric.js.map +1 -0
- package/dist/segment/eci.d.ts +41 -0
- package/dist/segment/eci.d.ts.map +1 -0
- package/dist/segment/eci.js +194 -0
- package/dist/segment/eci.js.map +1 -0
- package/dist/segment/index.d.ts +10 -0
- package/dist/segment/index.d.ts.map +1 -0
- package/dist/segment/index.js +8 -0
- package/dist/segment/index.js.map +1 -0
- package/dist/segment/kanji.d.ts +57 -0
- package/dist/segment/kanji.d.ts.map +1 -0
- package/dist/segment/kanji.js +135 -0
- package/dist/segment/kanji.js.map +1 -0
- package/dist/segment/profile.d.ts +21 -0
- package/dist/segment/profile.d.ts.map +1 -0
- package/dist/segment/profile.js +66 -0
- package/dist/segment/profile.js.map +1 -0
- package/dist/segment/read.d.ts +29 -0
- package/dist/segment/read.d.ts.map +1 -0
- package/dist/segment/read.js +360 -0
- package/dist/segment/read.js.map +1 -0
- package/dist/segment/segment-text.d.ts +88 -0
- package/dist/segment/segment-text.d.ts.map +1 -0
- package/dist/segment/segment-text.js +422 -0
- package/dist/segment/segment-text.js.map +1 -0
- package/dist/segment/types.d.ts +89 -0
- package/dist/segment/types.d.ts.map +1 -0
- package/dist/segment/types.js +13 -0
- package/dist/segment/types.js.map +1 -0
- package/dist/segment/write.d.ts +36 -0
- package/dist/segment/write.d.ts.map +1 -0
- package/dist/segment/write.js +226 -0
- package/dist/segment/write.js.map +1 -0
- package/dist/studio/assets.d.ts +22 -0
- package/dist/studio/assets.d.ts.map +1 -0
- package/dist/studio/assets.js +66 -0
- package/dist/studio/assets.js.map +1 -0
- package/dist/studio/catalogue.d.ts +34 -0
- package/dist/studio/catalogue.d.ts.map +1 -0
- package/dist/studio/catalogue.js +359 -0
- package/dist/studio/catalogue.js.map +1 -0
- package/dist/studio/contrast.d.ts +16 -0
- package/dist/studio/contrast.d.ts.map +1 -0
- package/dist/studio/contrast.js +28 -0
- package/dist/studio/contrast.js.map +1 -0
- package/dist/studio/document.d.ts +61 -0
- package/dist/studio/document.d.ts.map +1 -0
- package/dist/studio/document.js +208 -0
- package/dist/studio/document.js.map +1 -0
- package/dist/studio/export.d.ts +52 -0
- package/dist/studio/export.d.ts.map +1 -0
- package/dist/studio/export.js +269 -0
- package/dist/studio/export.js.map +1 -0
- package/dist/studio/form.d.ts +15 -0
- package/dist/studio/form.d.ts.map +1 -0
- package/dist/studio/form.js +91 -0
- package/dist/studio/form.js.map +1 -0
- package/dist/studio/history.d.ts +66 -0
- package/dist/studio/history.d.ts.map +1 -0
- package/dist/studio/history.js +109 -0
- package/dist/studio/history.js.map +1 -0
- package/dist/studio/index.d.ts +16 -0
- package/dist/studio/index.d.ts.map +1 -0
- package/dist/studio/index.js +12 -0
- package/dist/studio/index.js.map +1 -0
- package/dist/studio/keys.d.ts +86 -0
- package/dist/studio/keys.d.ts.map +1 -0
- package/dist/studio/keys.js +165 -0
- package/dist/studio/keys.js.map +1 -0
- package/dist/studio/kit.d.ts +44 -0
- package/dist/studio/kit.d.ts.map +1 -0
- package/dist/studio/kit.js +114 -0
- package/dist/studio/kit.js.map +1 -0
- package/dist/studio/logo.d.ts +25 -0
- package/dist/studio/logo.d.ts.map +1 -0
- package/dist/studio/logo.js +49 -0
- package/dist/studio/logo.js.map +1 -0
- package/dist/studio/names.d.ts +18 -0
- package/dist/studio/names.d.ts.map +1 -0
- package/dist/studio/names.js +36 -0
- package/dist/studio/names.js.map +1 -0
- package/dist/studio/patch.d.ts +17 -0
- package/dist/studio/patch.d.ts.map +1 -0
- package/dist/studio/patch.js +64 -0
- package/dist/studio/patch.js.map +1 -0
- package/dist/studio/seams.d.ts +44 -0
- package/dist/studio/seams.d.ts.map +1 -0
- package/dist/studio/seams.js +36 -0
- package/dist/studio/seams.js.map +1 -0
- package/dist/studio/share.d.ts +16 -0
- package/dist/studio/share.d.ts.map +1 -0
- package/dist/studio/share.js +57 -0
- package/dist/studio/share.js.map +1 -0
- package/dist/studio/shuffle.d.ts +38 -0
- package/dist/studio/shuffle.d.ts.map +1 -0
- package/dist/studio/shuffle.js +181 -0
- package/dist/studio/shuffle.js.map +1 -0
- package/dist/studio/slices.d.ts +29 -0
- package/dist/studio/slices.d.ts.map +1 -0
- package/dist/studio/slices.js +84 -0
- package/dist/studio/slices.js.map +1 -0
- package/dist/studio/studio.d.ts +29 -0
- package/dist/studio/studio.d.ts.map +1 -0
- package/dist/studio/studio.js +1298 -0
- package/dist/studio/studio.js.map +1 -0
- package/dist/studio/symbol.d.ts +47 -0
- package/dist/studio/symbol.d.ts.map +1 -0
- package/dist/studio/symbol.js +159 -0
- package/dist/studio/symbol.js.map +1 -0
- package/dist/studio/timers.d.ts +18 -0
- package/dist/studio/timers.d.ts.map +1 -0
- package/dist/studio/timers.js +36 -0
- package/dist/studio/timers.js.map +1 -0
- package/dist/studio/types.d.ts +693 -0
- package/dist/studio/types.d.ts.map +1 -0
- package/dist/studio/types.js +26 -0
- package/dist/studio/types.js.map +1 -0
- package/dist/studio/verify.d.ts +47 -0
- package/dist/studio/verify.d.ts.map +1 -0
- package/dist/studio/verify.js +63 -0
- package/dist/studio/verify.js.map +1 -0
- package/dist/symbology/index.d.ts +8 -0
- package/dist/symbology/index.d.ts.map +1 -0
- package/dist/symbology/index.js +6 -0
- package/dist/symbology/index.js.map +1 -0
- package/dist/symbology/micro/blocks.d.ts +34 -0
- package/dist/symbology/micro/blocks.d.ts.map +1 -0
- package/dist/symbology/micro/blocks.js +63 -0
- package/dist/symbology/micro/blocks.js.map +1 -0
- package/dist/symbology/micro/entry.d.ts +70 -0
- package/dist/symbology/micro/entry.d.ts.map +1 -0
- package/dist/symbology/micro/entry.js +181 -0
- package/dist/symbology/micro/entry.js.map +1 -0
- package/dist/symbology/micro/format.d.ts +31 -0
- package/dist/symbology/micro/format.d.ts.map +1 -0
- package/dist/symbology/micro/format.js +48 -0
- package/dist/symbology/micro/format.js.map +1 -0
- package/dist/symbology/micro/index.d.ts +7 -0
- package/dist/symbology/micro/index.d.ts.map +1 -0
- package/dist/symbology/micro/index.js +5 -0
- package/dist/symbology/micro/index.js.map +1 -0
- package/dist/symbology/micro/layout.d.ts +40 -0
- package/dist/symbology/micro/layout.d.ts.map +1 -0
- package/dist/symbology/micro/layout.js +106 -0
- package/dist/symbology/micro/layout.js.map +1 -0
- package/dist/symbology/micro/mask.d.ts +25 -0
- package/dist/symbology/micro/mask.d.ts.map +1 -0
- package/dist/symbology/micro/mask.js +41 -0
- package/dist/symbology/micro/mask.js.map +1 -0
- package/dist/symbology/micro/modules.d.ts +76 -0
- package/dist/symbology/micro/modules.d.ts.map +1 -0
- package/dist/symbology/micro/modules.js +156 -0
- package/dist/symbology/micro/modules.js.map +1 -0
- package/dist/symbology/micro/profile.d.ts +16 -0
- package/dist/symbology/micro/profile.d.ts.map +1 -0
- package/dist/symbology/micro/profile.js +45 -0
- package/dist/symbology/micro/profile.js.map +1 -0
- package/dist/symbology/micro/read-helpers.d.ts +31 -0
- package/dist/symbology/micro/read-helpers.d.ts.map +1 -0
- package/dist/symbology/micro/read-helpers.js +66 -0
- package/dist/symbology/micro/read-helpers.js.map +1 -0
- package/dist/symbology/micro/tables.d.ts +63 -0
- package/dist/symbology/micro/tables.d.ts.map +1 -0
- package/dist/symbology/micro/tables.js +163 -0
- package/dist/symbology/micro/tables.js.map +1 -0
- package/dist/symbology/qr/blocks.d.ts +58 -0
- package/dist/symbology/qr/blocks.d.ts.map +1 -0
- package/dist/symbology/qr/blocks.js +176 -0
- package/dist/symbology/qr/blocks.js.map +1 -0
- package/dist/symbology/qr/build.d.ts +20 -0
- package/dist/symbology/qr/build.d.ts.map +1 -0
- package/dist/symbology/qr/build.js +91 -0
- package/dist/symbology/qr/build.js.map +1 -0
- package/dist/symbology/qr/entry.d.ts +13 -0
- package/dist/symbology/qr/entry.d.ts.map +1 -0
- package/dist/symbology/qr/entry.js +56 -0
- package/dist/symbology/qr/entry.js.map +1 -0
- package/dist/symbology/qr/index.d.ts +13 -0
- package/dist/symbology/qr/index.d.ts.map +1 -0
- package/dist/symbology/qr/index.js +9 -0
- package/dist/symbology/qr/index.js.map +1 -0
- package/dist/symbology/qr/info.d.ts +29 -0
- package/dist/symbology/qr/info.d.ts.map +1 -0
- package/dist/symbology/qr/info.js +53 -0
- package/dist/symbology/qr/info.js.map +1 -0
- package/dist/symbology/qr/layout.d.ts +37 -0
- package/dist/symbology/qr/layout.d.ts.map +1 -0
- package/dist/symbology/qr/layout.js +174 -0
- package/dist/symbology/qr/layout.js.map +1 -0
- package/dist/symbology/qr/mask.d.ts +35 -0
- package/dist/symbology/qr/mask.d.ts.map +1 -0
- package/dist/symbology/qr/mask.js +113 -0
- package/dist/symbology/qr/mask.js.map +1 -0
- package/dist/symbology/qr/read.d.ts +43 -0
- package/dist/symbology/qr/read.d.ts.map +1 -0
- package/dist/symbology/qr/read.js +219 -0
- package/dist/symbology/qr/read.js.map +1 -0
- package/dist/symbology/qr/tables.d.ts +62 -0
- package/dist/symbology/qr/tables.d.ts.map +1 -0
- package/dist/symbology/qr/tables.js +337 -0
- package/dist/symbology/qr/tables.js.map +1 -0
- package/dist/symbology/registry.d.ts +11 -0
- package/dist/symbology/registry.d.ts.map +1 -0
- package/dist/symbology/registry.js +19 -0
- package/dist/symbology/registry.js.map +1 -0
- package/dist/symbology/rmqr/entry.d.ts +56 -0
- package/dist/symbology/rmqr/entry.d.ts.map +1 -0
- package/dist/symbology/rmqr/entry.js +165 -0
- package/dist/symbology/rmqr/entry.js.map +1 -0
- package/dist/symbology/rmqr/format.d.ts +45 -0
- package/dist/symbology/rmqr/format.d.ts.map +1 -0
- package/dist/symbology/rmqr/format.js +72 -0
- package/dist/symbology/rmqr/format.js.map +1 -0
- package/dist/symbology/rmqr/index.d.ts +5 -0
- package/dist/symbology/rmqr/index.d.ts.map +1 -0
- package/dist/symbology/rmqr/index.js +5 -0
- package/dist/symbology/rmqr/index.js.map +1 -0
- package/dist/symbology/rmqr/layout.d.ts +46 -0
- package/dist/symbology/rmqr/layout.d.ts.map +1 -0
- package/dist/symbology/rmqr/layout.js +196 -0
- package/dist/symbology/rmqr/layout.js.map +1 -0
- package/dist/symbology/rmqr/profile.d.ts +15 -0
- package/dist/symbology/rmqr/profile.d.ts.map +1 -0
- package/dist/symbology/rmqr/profile.js +52 -0
- package/dist/symbology/rmqr/profile.js.map +1 -0
- package/dist/symbology/rmqr/tables.d.ts +62 -0
- package/dist/symbology/rmqr/tables.d.ts.map +1 -0
- package/dist/symbology/rmqr/tables.js +194 -0
- package/dist/symbology/rmqr/tables.js.map +1 -0
- package/dist/symbology/roles.d.ts +19 -0
- package/dist/symbology/roles.d.ts.map +1 -0
- package/dist/symbology/roles.js +35 -0
- package/dist/symbology/roles.js.map +1 -0
- package/dist/symbology/types.d.ts +126 -0
- package/dist/symbology/types.d.ts.map +1 -0
- package/dist/symbology/types.js +11 -0
- package/dist/symbology/types.js.map +1 -0
- package/dist/text/base64.d.ts +11 -0
- package/dist/text/base64.d.ts.map +1 -0
- package/dist/text/base64.js +49 -0
- package/dist/text/base64.js.map +1 -0
- package/dist/text/cmap.d.ts +17 -0
- package/dist/text/cmap.d.ts.map +1 -0
- package/dist/text/cmap.js +161 -0
- package/dist/text/cmap.js.map +1 -0
- package/dist/text/compiled.d.ts +52 -0
- package/dist/text/compiled.d.ts.map +1 -0
- package/dist/text/compiled.js +220 -0
- package/dist/text/compiled.js.map +1 -0
- package/dist/text/errors.d.ts +34 -0
- package/dist/text/errors.d.ts.map +1 -0
- package/dist/text/errors.js +26 -0
- package/dist/text/errors.js.map +1 -0
- package/dist/text/font.d.ts +29 -0
- package/dist/text/font.d.ts.map +1 -0
- package/dist/text/font.js +67 -0
- package/dist/text/font.js.map +1 -0
- package/dist/text/glyf.d.ts +62 -0
- package/dist/text/glyf.d.ts.map +1 -0
- package/dist/text/glyf.js +276 -0
- package/dist/text/glyf.js.map +1 -0
- package/dist/text/index.d.ts +13 -0
- package/dist/text/index.d.ts.map +1 -0
- package/dist/text/index.js +9 -0
- package/dist/text/index.js.map +1 -0
- package/dist/text/kerning.d.ts +36 -0
- package/dist/text/kerning.d.ts.map +1 -0
- package/dist/text/kerning.js +382 -0
- package/dist/text/kerning.js.map +1 -0
- package/dist/text/layout.d.ts +35 -0
- package/dist/text/layout.d.ts.map +1 -0
- package/dist/text/layout.js +287 -0
- package/dist/text/layout.js.map +1 -0
- package/dist/text/outline.d.ts +22 -0
- package/dist/text/outline.d.ts.map +1 -0
- package/dist/text/outline.js +79 -0
- package/dist/text/outline.js.map +1 -0
- package/dist/text/reader.d.ts +43 -0
- package/dist/text/reader.d.ts.map +1 -0
- package/dist/text/reader.js +83 -0
- package/dist/text/reader.js.map +1 -0
- package/dist/text/registry.d.ts +21 -0
- package/dist/text/registry.d.ts.map +1 -0
- package/dist/text/registry.js +32 -0
- package/dist/text/registry.js.map +1 -0
- package/dist/text/truetype.d.ts +44 -0
- package/dist/text/truetype.d.ts.map +1 -0
- package/dist/text/truetype.js +127 -0
- package/dist/text/truetype.js.map +1 -0
- package/dist/text/types.d.ts +106 -0
- package/dist/text/types.d.ts.map +1 -0
- package/dist/text/types.js +11 -0
- package/dist/text/types.js.map +1 -0
- package/dist/verify/camera.d.ts +59 -0
- package/dist/verify/camera.d.ts.map +1 -0
- package/dist/verify/camera.js +76 -0
- package/dist/verify/camera.js.map +1 -0
- package/dist/verify/capture.d.ts +40 -0
- package/dist/verify/capture.d.ts.map +1 -0
- package/dist/verify/capture.js +118 -0
- package/dist/verify/capture.js.map +1 -0
- package/dist/verify/coverage.d.ts +61 -0
- package/dist/verify/coverage.d.ts.map +1 -0
- package/dist/verify/coverage.js +90 -0
- package/dist/verify/coverage.js.map +1 -0
- package/dist/verify/degrade.d.ts +143 -0
- package/dist/verify/degrade.d.ts.map +1 -0
- package/dist/verify/degrade.js +503 -0
- package/dist/verify/degrade.js.map +1 -0
- package/dist/verify/fixes.d.ts +28 -0
- package/dist/verify/fixes.d.ts.map +1 -0
- package/dist/verify/fixes.js +277 -0
- package/dist/verify/fixes.js.map +1 -0
- package/dist/verify/homography.d.ts +32 -0
- package/dist/verify/homography.d.ts.map +1 -0
- package/dist/verify/homography.js +79 -0
- package/dist/verify/homography.js.map +1 -0
- package/dist/verify/index.d.ts +17 -0
- package/dist/verify/index.d.ts.map +1 -0
- package/dist/verify/index.js +11 -0
- package/dist/verify/index.js.map +1 -0
- package/dist/verify/inks.d.ts +39 -0
- package/dist/verify/inks.d.ts.map +1 -0
- package/dist/verify/inks.js +101 -0
- package/dist/verify/inks.js.map +1 -0
- package/dist/verify/job.d.ts +89 -0
- package/dist/verify/job.d.ts.map +1 -0
- package/dist/verify/job.js +314 -0
- package/dist/verify/job.js.map +1 -0
- package/dist/verify/keys.d.ts +92 -0
- package/dist/verify/keys.d.ts.map +1 -0
- package/dist/verify/keys.js +95 -0
- package/dist/verify/keys.js.map +1 -0
- package/dist/verify/ladders.d.ts +68 -0
- package/dist/verify/ladders.d.ts.map +1 -0
- package/dist/verify/ladders.js +154 -0
- package/dist/verify/ladders.js.map +1 -0
- package/dist/verify/prepare.d.ts +78 -0
- package/dist/verify/prepare.d.ts.map +1 -0
- package/dist/verify/prepare.js +307 -0
- package/dist/verify/prepare.js.map +1 -0
- package/dist/verify/preset.d.ts +111 -0
- package/dist/verify/preset.d.ts.map +1 -0
- package/dist/verify/preset.js +200 -0
- package/dist/verify/preset.js.map +1 -0
- package/dist/verify/read.d.ts +23 -0
- package/dist/verify/read.d.ts.map +1 -0
- package/dist/verify/read.js +55 -0
- package/dist/verify/read.js.map +1 -0
- package/dist/verify/region.d.ts +37 -0
- package/dist/verify/region.d.ts.map +1 -0
- package/dist/verify/region.js +80 -0
- package/dist/verify/region.js.map +1 -0
- package/dist/verify/static.d.ts +56 -0
- package/dist/verify/static.d.ts.map +1 -0
- package/dist/verify/static.js +277 -0
- package/dist/verify/static.js.map +1 -0
- package/dist/verify/types.d.ts +173 -0
- package/dist/verify/types.d.ts.map +1 -0
- package/dist/verify/types.js +36 -0
- package/dist/verify/types.js.map +1 -0
- package/package.json +191 -5
|
@@ -0,0 +1,597 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The strict profile, strict-v1: what the scan check reads with.
|
|
3
|
+
*
|
|
4
|
+
* The scan check's promise is that a design it passes scans on the phones
|
|
5
|
+
* people use, so this reader has to be at least as hard to satisfy as any of
|
|
6
|
+
* them. Whatever it reads, zxing-cpp and jsQR must read too, which
|
|
7
|
+
* tests/decode/conservative.test.ts holds it to over a seeded corpus of
|
|
8
|
+
* damaged captures, styled-conservative.test.ts over every design preset
|
|
9
|
+
* photographed, tilted and damaged, and tilt.test.ts over large symbols at
|
|
10
|
+
* an angle; the verify layer's own captures of every preset, on all nine of
|
|
11
|
+
* its axes, were the survey that set the newer rules below. Against the
|
|
12
|
+
* scanner, it gives up:
|
|
13
|
+
*
|
|
14
|
+
* - every threshold but one: the hybrid binariser the common readers use
|
|
15
|
+
* (`binariseHybridMean`), at the picture's own scale;
|
|
16
|
+
* - every sample but one: the pixel under each module's centre;
|
|
17
|
+
* - the other polarity: only the design's own, dark-on-light unless told;
|
|
18
|
+
* - mirror images, erasures, and any format information more than one bit
|
|
19
|
+
* out or with its copies disagreeing (the symbology's strict read);
|
|
20
|
+
* - slack in the finders: their runs within 0.35 of a module of 1:1:3:1:1
|
|
21
|
+
* along the axes, and within half a module on both diagonals (see
|
|
22
|
+
* `STRICT_FINDER_TOLERANCE`);
|
|
23
|
+
* - guessing: one finder triple and one grid, the size and (from version 2)
|
|
24
|
+
* the alignment pattern whose grid lays the timing patterns down
|
|
25
|
+
* straightest, or no grid at all; a grid whose timing pattern does not
|
|
26
|
+
* read is not read, and from version 7 its version information has to
|
|
27
|
+
* agree with its size;
|
|
28
|
+
*
|
|
29
|
+
* and then asks these things of a symbol that did read, all about the picture
|
|
30
|
+
* rather than the symbol:
|
|
31
|
+
*
|
|
32
|
+
* - Its modules must be at least 2.25 pixels across
|
|
33
|
+
* (`STRICT_MIN_MODULE_PIXELS`), and drawn out no more than 1.8 times one
|
|
34
|
+
* way over the other, a tilt of about 56 degrees
|
|
35
|
+
* (`STRICT_MAX_FORESHORTENING`).
|
|
36
|
+
* - The thresholded picture must not break up into speckle. Noise that leaves
|
|
37
|
+
* the symbol itself readable turns a flat background into isolated dark
|
|
38
|
+
* pixels, and a reader that finds finder patterns by their run ratios finds
|
|
39
|
+
* them everywhere in it and picks the wrong three: measured against jsQR
|
|
40
|
+
* over the corpus, that is where it fails, from about one pixel in sixteen.
|
|
41
|
+
* More than one in fifty is refused.
|
|
42
|
+
* - The grid a plain reader would lay must read to the same bytes (see
|
|
43
|
+
* `plain.ts`).
|
|
44
|
+
* - For Micro QR and rMQR, the fixed patterns (finders, separators, timing
|
|
45
|
+
* and alignment patterns) must read the same under both of the thresholds
|
|
46
|
+
* the common readers use, the block mean jsQR and ZXing take and zxing-cpp's
|
|
47
|
+
* (`binariseLocalAverage`), wherever the picture around them keeps its
|
|
48
|
+
* contrast. Where they differ on a module whose neighbourhood has gone
|
|
49
|
+
* pale, the picture has lost the pattern, nearly always to glare, and a
|
|
50
|
+
* reader that finds its way by it is lost too. Where they differ on a
|
|
51
|
+
* module whose neighbourhood keeps its contrast, the centre sits on a drawn
|
|
52
|
+
* edge, which styled designs do on purpose. QR leaves this out: the rules
|
|
53
|
+
* below model what zxing-cpp makes of its own threshold, and over verify's
|
|
54
|
+
* captures and the plain corpus they caught everything this did.
|
|
55
|
+
* - The finders' rings must be ones zxing-cpp can trace: no ring of dots,
|
|
56
|
+
* at a slant or under a smear no circle, and on a steep tilt no ring
|
|
57
|
+
* nearly round at its corners (see `finderRingsTraceable`);
|
|
58
|
+
* and their centres ones it can settle on (see `finderCentresClosed`).
|
|
59
|
+
* - From version 7, the grid zxing-cpp lays in tiles, cornered on the
|
|
60
|
+
* finders' rings, must read as well (see `tiled.ts`).
|
|
61
|
+
*
|
|
62
|
+
* The reserve of ceil(0.25 t) unused corrections per block is the last part
|
|
63
|
+
* of the profile and is not here: the verify layer applies it, from
|
|
64
|
+
* `MatrixRead.errorsPerBlock` and `capacityPerBlock`.
|
|
65
|
+
*/
|
|
66
|
+
import { PI, cos, hypot, sin } from '../core/math.js';
|
|
67
|
+
import { ROLE_CODES } from '../symbology/roles.js';
|
|
68
|
+
import { binariseHybridMean } from './binarise.js';
|
|
69
|
+
import { STRICT_FINDER_TOLERANCE, findFinderPatterns } from './finder.js';
|
|
70
|
+
import { apply, moduleWidth } from './transform.js';
|
|
71
|
+
import { ringPoints } from './tiled.js';
|
|
72
|
+
/**
|
|
73
|
+
* The fewest pixels a module the strict profile reads at. Nyquist is two, and
|
|
74
|
+
* between two and two and a quarter zxing-cpp starts to miss symbols jsQR and
|
|
75
|
+
* this reader still read (2 of 71 in the 20,000-capture corpus); above it, it
|
|
76
|
+
* missed none. The scan check draws at more than this, so the floor costs a
|
|
77
|
+
* design nothing.
|
|
78
|
+
*/
|
|
79
|
+
export const STRICT_MIN_MODULE_PIXELS = 2.25;
|
|
80
|
+
/**
|
|
81
|
+
* The most a module may be drawn out one way over the other at the middle of
|
|
82
|
+
* the symbol: 1.8, a tilt of about 56 degrees. Past it the readers find the
|
|
83
|
+
* far corner by tracing the finders' sides a long way across a steep
|
|
84
|
+
* perspective, and zxing-cpp put it tens of pixels out on a symbol tilted 60
|
|
85
|
+
* degrees that the strict reader read: one of the 127 it read there, and none
|
|
86
|
+
* of the 586 at 50 degrees (1.56).
|
|
87
|
+
*/
|
|
88
|
+
export const STRICT_MAX_FORESHORTENING = 1.8;
|
|
89
|
+
/**
|
|
90
|
+
* How much longer a module is drawn one way than the other at (u, v): the
|
|
91
|
+
* ratio of the largest to the smallest stretch of the transform's derivative
|
|
92
|
+
* there, 1 for a square module and 1 / cos t for a tilt of t.
|
|
93
|
+
*/
|
|
94
|
+
export function foreshortening(transform, u, v) {
|
|
95
|
+
const [a11, a21, a31, a12, a22, a32, a13, a23, a33] = transform;
|
|
96
|
+
const d = a13 * u + a23 * v + a33;
|
|
97
|
+
const x = (a11 * u + a21 * v + a31) / d;
|
|
98
|
+
const y = (a12 * u + a22 * v + a32) / d;
|
|
99
|
+
// The columns of the derivative: where a step in u, and one in v, goes.
|
|
100
|
+
const ux = (a11 - x * a13) / d;
|
|
101
|
+
const uy = (a12 - y * a13) / d;
|
|
102
|
+
const vx = (a21 - x * a23) / d;
|
|
103
|
+
const vy = (a22 - y * a23) / d;
|
|
104
|
+
const a = ux * ux + uy * uy;
|
|
105
|
+
const b = vx * vx + vy * vy;
|
|
106
|
+
const c = ux * vx + uy * vy;
|
|
107
|
+
const spread = Math.sqrt((a - b) * (a - b) + 4 * c * c);
|
|
108
|
+
return Math.sqrt((a + b + spread) / (a + b - spread));
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Whether the strict profile samples a grid at all: modules wide enough, and
|
|
112
|
+
* not drawn out past `STRICT_MAX_FORESHORTENING`, at the middle of the symbol.
|
|
113
|
+
*
|
|
114
|
+
* Version 7 and up once had a floor of three pixels a module of their own:
|
|
115
|
+
* below it the tiled grid (see tiled.ts), laid on a midrange threshold, let
|
|
116
|
+
* through symbols zxing-cpp missed. Laid on zxing-cpp's own threshold and
|
|
117
|
+
* from each centre zxing-cpp could take, it catches them: over verify's
|
|
118
|
+
* captures at 2.5 pixels a module it let none through, so the one floor
|
|
119
|
+
* serves every version.
|
|
120
|
+
*/
|
|
121
|
+
export function strictSamples(transform, width, height) {
|
|
122
|
+
const u = width / 2;
|
|
123
|
+
const v = height / 2;
|
|
124
|
+
return (moduleWidth(transform, u, v) >= STRICT_MIN_MODULE_PIXELS &&
|
|
125
|
+
foreshortening(transform, u, v) <= STRICT_MAX_FORESHORTENING);
|
|
126
|
+
}
|
|
127
|
+
/** The most speckle, as a fraction of all pixels, the strict profile accepts. */
|
|
128
|
+
export const STRICT_MAX_SPECKLE = 0.02;
|
|
129
|
+
/**
|
|
130
|
+
* The fraction of pixels that are dark with at most one dark neighbour of
|
|
131
|
+
* four: isolated specks. A symbol's own modules are at least two pixels
|
|
132
|
+
* across at any size the strict reader samples, so none of its pixels is one.
|
|
133
|
+
*/
|
|
134
|
+
export function speckle(image) {
|
|
135
|
+
const { width, height, bits } = image;
|
|
136
|
+
if (width < 3 || height < 3)
|
|
137
|
+
return 0;
|
|
138
|
+
let isolated = 0;
|
|
139
|
+
for (let y = 1; y < height - 1; y += 1) {
|
|
140
|
+
for (let x = 1; x < width - 1; x += 1) {
|
|
141
|
+
const at = y * width + x;
|
|
142
|
+
if (bits[at] === 0)
|
|
143
|
+
continue;
|
|
144
|
+
const neighbours = bits[at - 1] +
|
|
145
|
+
bits[at + 1] +
|
|
146
|
+
bits[at - width] +
|
|
147
|
+
bits[at + width];
|
|
148
|
+
if (neighbours <= 1)
|
|
149
|
+
isolated += 1;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return isolated / (width * height);
|
|
153
|
+
}
|
|
154
|
+
const FIXED_ROLES = new Set([
|
|
155
|
+
ROLE_CODES.finder,
|
|
156
|
+
ROLE_CODES.separator,
|
|
157
|
+
ROLE_CODES.timing,
|
|
158
|
+
ROLE_CODES.alignment,
|
|
159
|
+
ROLE_CODES['sub-finder'],
|
|
160
|
+
ROLE_CODES['corner-finder'],
|
|
161
|
+
]);
|
|
162
|
+
/**
|
|
163
|
+
* Below this share of the symbol's own contrast, the picture around a
|
|
164
|
+
* fixed-pattern module has lost the contrast that tells dark from light.
|
|
165
|
+
*
|
|
166
|
+
* Measured, not chosen: where the two thresholds split on a fixed-pattern
|
|
167
|
+
* module under glare, the 3 by 3 modules around it span 0.28 to 0.53 of the
|
|
168
|
+
* symbol's range; where they split on a styled design (a round finder centre
|
|
169
|
+
* whose corner module's centre sits on the curve, a dot or a rounded corner
|
|
170
|
+
* in the timing pattern), 0.96 to 1.03. Three quarters sits between them with
|
|
171
|
+
* room either side.
|
|
172
|
+
*/
|
|
173
|
+
export const WASHED_OUT = 0.75;
|
|
174
|
+
/** Samples across each module of the 3 by 3 neighbourhood, a side. */
|
|
175
|
+
const NEIGHBOURHOOD_STEPS = 4;
|
|
176
|
+
function pixelAt(transform, u, v) {
|
|
177
|
+
const [a11, a21, a31, a12, a22, a32, a13, a23, a33] = transform;
|
|
178
|
+
const d = a13 * u + a23 * v + a33;
|
|
179
|
+
return {
|
|
180
|
+
x: Math.floor((a11 * u + a21 * v + a31) / d),
|
|
181
|
+
y: Math.floor((a12 * u + a22 * v + a32) / d),
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
function greyAt(grey, transform, u, v) {
|
|
185
|
+
const { x, y } = pixelAt(transform, u, v);
|
|
186
|
+
if (x < 0 || y < 0 || x >= grey.width || y >= grey.height)
|
|
187
|
+
return undefined;
|
|
188
|
+
return grey.data[y * grey.width + x];
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* The symbol's own contrast: the spread between the 5th and 95th percentile
|
|
192
|
+
* grey of its module centres.
|
|
193
|
+
*/
|
|
194
|
+
function symbolRange(grey, transform, layout) {
|
|
195
|
+
const histogram = new Uint32Array(256);
|
|
196
|
+
let total = 0;
|
|
197
|
+
for (let y = 0; y < layout.height; y += 1) {
|
|
198
|
+
for (let x = 0; x < layout.width; x += 1) {
|
|
199
|
+
const level = greyAt(grey, transform, x + 0.5, y + 0.5);
|
|
200
|
+
if (level === undefined)
|
|
201
|
+
continue;
|
|
202
|
+
histogram[level] = histogram[level] + 1;
|
|
203
|
+
total += 1;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const percentile = (fraction) => {
|
|
207
|
+
let seen = 0;
|
|
208
|
+
let level = 0;
|
|
209
|
+
for (; level < 255; level += 1) {
|
|
210
|
+
seen += histogram[level];
|
|
211
|
+
if (seen >= total * fraction)
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
return level;
|
|
215
|
+
};
|
|
216
|
+
return percentile(0.95) - percentile(0.05);
|
|
217
|
+
}
|
|
218
|
+
/** The spread of grey over the 3 by 3 modules centred on module (x, y). */
|
|
219
|
+
function neighbourhoodRange(grey, transform, x, y) {
|
|
220
|
+
let low = 255;
|
|
221
|
+
let high = 0;
|
|
222
|
+
const steps = 3 * NEIGHBOURHOOD_STEPS;
|
|
223
|
+
for (let j = 0; j <= steps; j += 1) {
|
|
224
|
+
for (let i = 0; i <= steps; i += 1) {
|
|
225
|
+
const level = greyAt(grey, transform, x - 1 + i / NEIGHBOURHOOD_STEPS, y - 1 + j / NEIGHBOURHOOD_STEPS);
|
|
226
|
+
if (level === undefined)
|
|
227
|
+
continue;
|
|
228
|
+
if (level < low)
|
|
229
|
+
low = level;
|
|
230
|
+
if (level > high)
|
|
231
|
+
high = level;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return high - low;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Whether the fixed-pattern modules read the same in two thresholded
|
|
238
|
+
* versions of one picture, at the pixel under each centre, wherever the
|
|
239
|
+
* picture there still has its contrast.
|
|
240
|
+
*
|
|
241
|
+
* A module the two split on is forgiven when the 3 by 3 modules around it
|
|
242
|
+
* span at least `WASHED_OUT` of the symbol's range: then the split is a
|
|
243
|
+
* centre that sits on a drawn edge, which a styled design puts there on
|
|
244
|
+
* purpose and every reader resolves by its neighbours. Where the
|
|
245
|
+
* neighbourhood itself has gone pale, the split is the picture losing the
|
|
246
|
+
* pattern, and that refuses.
|
|
247
|
+
*/
|
|
248
|
+
export function fixedPatternsAgree(a, b, grey, transform, layout) {
|
|
249
|
+
let range;
|
|
250
|
+
for (let y = 0; y < layout.height; y += 1) {
|
|
251
|
+
for (let x = 0; x < layout.width; x += 1) {
|
|
252
|
+
if (!FIXED_ROLES.has(layout.roles[y * layout.width + x]))
|
|
253
|
+
continue;
|
|
254
|
+
// The strict grid has every module centre on the picture.
|
|
255
|
+
const { x: px, y: py } = pixelAt(transform, x + 0.5, y + 0.5);
|
|
256
|
+
const at = py * a.width + px;
|
|
257
|
+
if (a.bits[at] === b.bits[at])
|
|
258
|
+
continue;
|
|
259
|
+
range ??= symbolRange(grey, transform, layout);
|
|
260
|
+
if (neighbourhoodRange(grey, transform, x, y) < range * WASHED_OUT)
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
return true;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Past this ratio between the largest and smallest finder, the symbol is seen
|
|
268
|
+
* at a slant, and zxing-cpp stops trusting the finders' centres alone: it
|
|
269
|
+
* traces the straight outer sides of the finders' rings and intersects them
|
|
270
|
+
* to find the far corner. Its switch is at a tenth by its own measure; by
|
|
271
|
+
* this one, taken through the fitted grid, it starts failing round rings at
|
|
272
|
+
* about 1.06 (a tilt of 8 to 10 degrees), so the strict reader asks for
|
|
273
|
+
* traceable sides from half that.
|
|
274
|
+
*/
|
|
275
|
+
export const STRICT_SLANT = 1.03;
|
|
276
|
+
/** A finder whose diagonal reach is less than this times its axial reach has no corners to its ring: a circle. */
|
|
277
|
+
const MIN_CORNER_RATIO = 1.06;
|
|
278
|
+
/** The most a ring's outer side may wander, in modules, over its middle stretch, to count as a straight line. */
|
|
279
|
+
const MAX_SIDE_WANDER = 0.12;
|
|
280
|
+
/** The middle stretch of a side, in modules either side of its centre. */
|
|
281
|
+
const SIDE_STRETCH = 1.2;
|
|
282
|
+
const SIDE_STEP = 0.2;
|
|
283
|
+
const EDGE_STEP = 0.02;
|
|
284
|
+
/** Bilinear grey at a point given in module coordinates, or NaN off the picture. */
|
|
285
|
+
function greyAtModule(grey, transform, u, v) {
|
|
286
|
+
const [a11, a21, a31, a12, a22, a32, a13, a23, a33] = transform;
|
|
287
|
+
const d = a13 * u + a23 * v + a33;
|
|
288
|
+
const x = (a11 * u + a21 * v + a31) / d - 0.5;
|
|
289
|
+
const y = (a12 * u + a22 * v + a32) / d - 0.5;
|
|
290
|
+
const x0 = Math.floor(x);
|
|
291
|
+
const y0 = Math.floor(y);
|
|
292
|
+
if (x0 < 0 || y0 < 0 || x0 + 1 >= grey.width || y0 + 1 >= grey.height)
|
|
293
|
+
return Number.NaN;
|
|
294
|
+
const fx = x - x0;
|
|
295
|
+
const fy = y - y0;
|
|
296
|
+
const at = (px, py) => grey.data[py * grey.width + px];
|
|
297
|
+
return (at(x0, y0) * (1 - fx) * (1 - fy) +
|
|
298
|
+
at(x0 + 1, y0) * fx * (1 - fy) +
|
|
299
|
+
at(x0, y0 + 1) * (1 - fx) * fy +
|
|
300
|
+
at(x0 + 1, y0 + 1) * fx * fy);
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* How far out a finder's ring reaches along a ray from (u, v) in direction
|
|
304
|
+
* (du, dv), in module units, to sub-module precision: the last point between
|
|
305
|
+
* `from` and `to` where the grey crosses from dark to light, halfway between
|
|
306
|
+
* the darkest and lightest on the ray.
|
|
307
|
+
*/
|
|
308
|
+
function ringReach(grey, transform, u, v, du, dv, from, to) {
|
|
309
|
+
const levels = [];
|
|
310
|
+
for (let t = from; t <= to; t += EDGE_STEP) {
|
|
311
|
+
levels.push(greyAtModule(grey, transform, u + du * t, v + dv * t));
|
|
312
|
+
}
|
|
313
|
+
let low = 255;
|
|
314
|
+
let high = 0;
|
|
315
|
+
for (const level of levels) {
|
|
316
|
+
if (Number.isNaN(level))
|
|
317
|
+
return Number.NaN;
|
|
318
|
+
if (level < low)
|
|
319
|
+
low = level;
|
|
320
|
+
if (level > high)
|
|
321
|
+
high = level;
|
|
322
|
+
}
|
|
323
|
+
const middle = (low + high) / 2;
|
|
324
|
+
for (let i = levels.length - 2; i >= 0; i -= 1) {
|
|
325
|
+
const here = levels[i];
|
|
326
|
+
const next = levels[i + 1];
|
|
327
|
+
if (here < middle && next >= middle) {
|
|
328
|
+
return from + (i + (middle - here) / (next - here)) * EDGE_STEP;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
return Number.NaN;
|
|
332
|
+
}
|
|
333
|
+
/** One module's width in pixels at a point of the symbol. */
|
|
334
|
+
function moduleWidthAt(transform, u, v) {
|
|
335
|
+
const here = apply(transform, u, v);
|
|
336
|
+
const across = apply(transform, u + 1, v);
|
|
337
|
+
const down = apply(transform, u, v + 1);
|
|
338
|
+
return ((Math.abs(across.x - here.x) +
|
|
339
|
+
Math.abs(across.y - here.y) +
|
|
340
|
+
Math.abs(down.x - here.x) +
|
|
341
|
+
Math.abs(down.y - here.y)) /
|
|
342
|
+
2);
|
|
343
|
+
}
|
|
344
|
+
/** The ring of the finder centred on module (u, v), or null where it runs off the picture. */
|
|
345
|
+
export function ringShape(grey, transform, u, v) {
|
|
346
|
+
let wander = 0;
|
|
347
|
+
let across = 0;
|
|
348
|
+
for (const [du, dv] of [
|
|
349
|
+
[1, 0],
|
|
350
|
+
[-1, 0],
|
|
351
|
+
[0, 1],
|
|
352
|
+
[0, -1],
|
|
353
|
+
]) {
|
|
354
|
+
const side = [];
|
|
355
|
+
for (let t = -SIDE_STRETCH; t <= SIDE_STRETCH + 1e-9; t += SIDE_STEP) {
|
|
356
|
+
// Offset along the side, perpendicular to the ray.
|
|
357
|
+
side.push(ringReach(grey, transform, u + dv * t, v + du * t, du, dv, 2, 4.4));
|
|
358
|
+
}
|
|
359
|
+
if (side.some((reach) => Number.isNaN(reach)))
|
|
360
|
+
return null;
|
|
361
|
+
wander = Math.max(wander, Math.max(...side) - Math.min(...side));
|
|
362
|
+
across += side[Math.floor(side.length / 2)] / 4;
|
|
363
|
+
}
|
|
364
|
+
let diagonal = 0;
|
|
365
|
+
for (const [du, dv] of [
|
|
366
|
+
[1, 1],
|
|
367
|
+
[1, -1],
|
|
368
|
+
[-1, 1],
|
|
369
|
+
[-1, -1],
|
|
370
|
+
]) {
|
|
371
|
+
const reach = ringReach(grey, transform, u, v, du / Math.SQRT2, dv / Math.SQRT2, 2, 5.6);
|
|
372
|
+
if (Number.isNaN(reach))
|
|
373
|
+
return null;
|
|
374
|
+
diagonal += reach / 4;
|
|
375
|
+
}
|
|
376
|
+
return { wander, corner: diagonal / across };
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Past this difference, in modules, between the widest and narrowest blur of
|
|
380
|
+
* a finder's outer edge across sixteen directions, the camera moved during
|
|
381
|
+
* the exposure. Measured, not chosen: square on and under a defocus the
|
|
382
|
+
* difference is under 0.3 of a module for every preset; a smear of 0.75 of a
|
|
383
|
+
* module puts it at 0.45 and more, and each of the 23 round and dotted
|
|
384
|
+
* finders zxing-cpp missed under a smear that the strict reader read was at
|
|
385
|
+
* 0.52 or more.
|
|
386
|
+
*/
|
|
387
|
+
export const STRICT_MAX_SMEAR = 0.45;
|
|
388
|
+
/** Sixteen directions round a finder's centre, turned a little so none runs along a side. */
|
|
389
|
+
const SMEAR_RAYS = Array.from({ length: 16 }, (_, k) => {
|
|
390
|
+
const angle = (k * PI) / 8 + 0.1;
|
|
391
|
+
return [cos(angle), sin(angle)];
|
|
392
|
+
});
|
|
393
|
+
/** Where the outer edge of a finder's ring is looked for: the dark ring from 2.6 modules out, its separator to 4.4. */
|
|
394
|
+
const SMEAR_FROM = 2.6;
|
|
395
|
+
const SMEAR_TO = 4.4;
|
|
396
|
+
/** The samples of the dark ring's own level, and of the separator's, along each ray. */
|
|
397
|
+
const SMEAR_DARK = 30;
|
|
398
|
+
const SMEAR_LIGHT = 60;
|
|
399
|
+
/** Less contrast than this between the ring and its separator, in grey levels, is no edge to measure. */
|
|
400
|
+
const SMEAR_MIN_CONTRAST = 8;
|
|
401
|
+
/**
|
|
402
|
+
* How wide, in modules, the outer edge of a finder's ring is blurred along a
|
|
403
|
+
* ray from its centre: from a tenth of the way between the ring's level and
|
|
404
|
+
* the separator's to nine tenths. NaN where the ray leaves the picture or
|
|
405
|
+
* finds too little contrast for an edge.
|
|
406
|
+
*/
|
|
407
|
+
function edgeBlur(grey, transform, u, v, du, dv) {
|
|
408
|
+
const levels = [];
|
|
409
|
+
for (let i = 0; SMEAR_FROM + i * EDGE_STEP <= SMEAR_TO + 1e-9; i += 1) {
|
|
410
|
+
const t = SMEAR_FROM + i * EDGE_STEP;
|
|
411
|
+
levels.push(greyAtModule(grey, transform, u + du * t, v + dv * t));
|
|
412
|
+
}
|
|
413
|
+
if (levels.some((level) => Number.isNaN(level)))
|
|
414
|
+
return Number.NaN;
|
|
415
|
+
const low = Math.min(...levels.slice(0, SMEAR_DARK));
|
|
416
|
+
const high = Math.max(...levels.slice(SMEAR_LIGHT));
|
|
417
|
+
if (high - low < SMEAR_MIN_CONTRAST)
|
|
418
|
+
return Number.NaN;
|
|
419
|
+
// The last rise through a level between the two: there is always one, from
|
|
420
|
+
// the ring's darkest sample, below it, to the separator's lightest, above.
|
|
421
|
+
const crossing = (share) => {
|
|
422
|
+
const level = low + share * (high - low);
|
|
423
|
+
let i = levels.length - 1;
|
|
424
|
+
while (!(levels[i - 1] < level && levels[i] >= level))
|
|
425
|
+
i -= 1;
|
|
426
|
+
const before = levels[i - 1];
|
|
427
|
+
const after = levels[i];
|
|
428
|
+
return SMEAR_FROM + (i - 1 + (level - before) / (after - before)) * EDGE_STEP;
|
|
429
|
+
};
|
|
430
|
+
return crossing(0.9) - crossing(0.1);
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* How unevenly a finder's outer edge is blurred: the widest blur over the
|
|
434
|
+
* sixteen directions less the narrowest, in modules. A lens blurs evenly; a
|
|
435
|
+
* moving camera smears one way. Infinite where no two directions measure.
|
|
436
|
+
*/
|
|
437
|
+
export function finderSmear(grey, transform, u, v) {
|
|
438
|
+
const widths = SMEAR_RAYS.map(([du, dv]) => edgeBlur(grey, transform, u, v, du, dv)).filter((width) => !Number.isNaN(width));
|
|
439
|
+
if (widths.length < 2)
|
|
440
|
+
return Number.POSITIVE_INFINITY;
|
|
441
|
+
return Math.max(...widths) - Math.min(...widths);
|
|
442
|
+
}
|
|
443
|
+
/** Whether a finder's dark ring walks closed, inner and outer edge both, in zxing-cpp's threshold (see tiled.ts). */
|
|
444
|
+
function ringClosed(bits, transform, u, v) {
|
|
445
|
+
const centre = apply(transform, u, v);
|
|
446
|
+
const width = Math.round(7 * moduleWidth(transform, u, v));
|
|
447
|
+
return (ringPoints(bits, centre, width, 2, false).length > 0 &&
|
|
448
|
+
ringPoints(bits, centre, width, 3, true).length > 0);
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Whether each of a QR symbol's finders has a centre zxing-cpp can settle on,
|
|
452
|
+
* in its own threshold `bits`: one dark patch whose edge, walked from the
|
|
453
|
+
* centre's pixel, goes all the way round it, with the middle of the walk on
|
|
454
|
+
* a dark pixel.
|
|
455
|
+
*
|
|
456
|
+
* zxing-cpp, having found a finder by its runs, settles its centre by walking
|
|
457
|
+
* the edge of the dark centre and taking the middle of the walk, and drops the
|
|
458
|
+
* finder when the walk does not close round the centre or its middle is
|
|
459
|
+
* light. Glare that leaves a light hole in the centre does that: a two-tone
|
|
460
|
+
* design under glare that jsQR and the strict reader read was one zxing-cpp
|
|
461
|
+
* found no symbol in at all, with its bottom left finder's centre holed in
|
|
462
|
+
* zxing-cpp's threshold and solid in the strict reader's own.
|
|
463
|
+
*
|
|
464
|
+
* Asked first of a midrange threshold, this refused 7 in 1,000 symbols over
|
|
465
|
+
* verify's captures that zxing-cpp read, most of them two-tone designs whose
|
|
466
|
+
* finder centres that threshold holed and zxing-cpp's does not; asked of
|
|
467
|
+
* `binariseLocalAverage`, the two-tone shortfalls went with it.
|
|
468
|
+
*/
|
|
469
|
+
export function finderCentresClosed(bits, transform, size) {
|
|
470
|
+
return [
|
|
471
|
+
[3.5, 3.5],
|
|
472
|
+
[size - 3.5, 3.5],
|
|
473
|
+
[3.5, size - 3.5],
|
|
474
|
+
].every(([u, v]) => {
|
|
475
|
+
const centre = apply(transform, u, v);
|
|
476
|
+
const reach = Math.round((7 * moduleWidth(transform, u, v) * 2) / 3);
|
|
477
|
+
const walk = ringPoints(bits, centre, reach, 1, false);
|
|
478
|
+
if (walk.length === 0)
|
|
479
|
+
return false;
|
|
480
|
+
// The middle of the walk, where zxing-cpp puts the centre, has to be dark.
|
|
481
|
+
let x = 0;
|
|
482
|
+
let y = 0;
|
|
483
|
+
for (const p of walk) {
|
|
484
|
+
x += p.x / walk.length;
|
|
485
|
+
y += p.y / walk.length;
|
|
486
|
+
}
|
|
487
|
+
return bits.bits[Math.floor(y) * bits.width + Math.floor(x)] === 1;
|
|
488
|
+
});
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* Whether a QR symbol's finder rings are ones zxing-cpp can trace.
|
|
492
|
+
*
|
|
493
|
+
* zxing-cpp, once the finders differ in size by a tenth, finds the symbol's
|
|
494
|
+
* far corner by tracing the straight outer sides of the finders' rings and
|
|
495
|
+
* intersecting them. A circular ring has no straight side, and a ring of dots
|
|
496
|
+
* has a scalloped one. Over the styled corpus zxing-cpp read none of the
|
|
497
|
+
* circle-ringed presets tilted 15 degrees and every one of them square on;
|
|
498
|
+
* the dot-ringed one it missed a quarter of the time even square on, and
|
|
499
|
+
* most of the time tilted. jsQR, which never looks at the sides, read them
|
|
500
|
+
* all, and so did the strict reader until it asked this.
|
|
501
|
+
*
|
|
502
|
+
* Measured through the fitted grid, so slant and roll drop out: over the
|
|
503
|
+
* middle 2.4 modules of each side, a straight side wanders 0.03 to 0.06 of a
|
|
504
|
+
* module (squares, rounded and extra-rounded corners, squircles, leaves,
|
|
505
|
+
* octagons, cushions) and a circle or a ring of dots 0.20 to 0.25. A circle
|
|
506
|
+
* reaches no further along its diagonals than its axes; every cornered ring,
|
|
507
|
+
* dots included, at least 1.12 times further.
|
|
508
|
+
*
|
|
509
|
+
* So a ring of dots, cornered and scalloped, is refused outright, and a
|
|
510
|
+
* circle when the symbol is seen at a slant.
|
|
511
|
+
*
|
|
512
|
+
* A camera that moves during the exposure does to a round ring what a slant
|
|
513
|
+
* does: over verify's captures zxing-cpp missed round rings smeared by a
|
|
514
|
+
* module or more one time in four that jsQR and the strict reader read, and
|
|
515
|
+
* square ones next to never. A smear also hides a ring of dots, joining them
|
|
516
|
+
* along it and leaving them apart across it, so that the ring measures
|
|
517
|
+
* straight and zxing-cpp still misses it. Smeared past `STRICT_MAX_SMEAR`,
|
|
518
|
+
* then, every ring has to be straight, cornered and, in zxing-cpp's own
|
|
519
|
+
* threshold `bits`, one closed ring. And tilted steeply, past
|
|
520
|
+
* `STRICT_STEEP_FORESHORTENING`, a ring's corners have to be well short of
|
|
521
|
+
* round (`STEEP_CORNER_RATIO`).
|
|
522
|
+
*/
|
|
523
|
+
export function finderRingsTraceable(grey, bits, transform, size) {
|
|
524
|
+
const centres = [
|
|
525
|
+
[3.5, 3.5],
|
|
526
|
+
[size - 3.5, 3.5],
|
|
527
|
+
[3.5, size - 3.5],
|
|
528
|
+
];
|
|
529
|
+
const widths = centres.map(([u, v]) => moduleWidthAt(transform, u, v));
|
|
530
|
+
const slanted = Math.max(...widths) > Math.min(...widths) * STRICT_SLANT;
|
|
531
|
+
const smeared = centres.some(([u, v]) => finderSmear(grey, transform, u, v) > STRICT_MAX_SMEAR);
|
|
532
|
+
const steep = foreshortening(transform, size / 2, size / 2) > STRICT_STEEP_FORESHORTENING;
|
|
533
|
+
for (const [u, v] of centres) {
|
|
534
|
+
const ring = ringShape(grey, transform, u, v);
|
|
535
|
+
// A ring that cannot be measured is not one a reader can trace either.
|
|
536
|
+
if (ring === null)
|
|
537
|
+
return false;
|
|
538
|
+
const kind = kindOf(ring);
|
|
539
|
+
if (kind === 'dotted')
|
|
540
|
+
return false;
|
|
541
|
+
if ((slanted || smeared) && kind === 'round')
|
|
542
|
+
return false;
|
|
543
|
+
if (steep && ring.corner < STEEP_CORNER_RATIO)
|
|
544
|
+
return false;
|
|
545
|
+
if (smeared && !ringClosed(bits, transform, u, v))
|
|
546
|
+
return false;
|
|
547
|
+
}
|
|
548
|
+
return true;
|
|
549
|
+
}
|
|
550
|
+
/**
|
|
551
|
+
* Past this foreshortening, a tilt of about 37 degrees, zxing-cpp's traced
|
|
552
|
+
* finder sides need corners well short of round (`STEEP_CORNER_RATIO`).
|
|
553
|
+
*/
|
|
554
|
+
export const STRICT_STEEP_FORESHORTENING = 1.25;
|
|
555
|
+
/**
|
|
556
|
+
* The least a ring's diagonal reach may be over its axial reach on a steep
|
|
557
|
+
* tilt. Measured, not chosen: over 7,395 symbols the strict reader read
|
|
558
|
+
* from verify's captures of every preset tilted 25 to 50 degrees, the 16
|
|
559
|
+
* zxing-cpp missed were all extra-rounded rings (1.12) at 40 degrees and
|
|
560
|
+
* more; squircles, octagons and scooped rings (1.17 to 1.20) and everything
|
|
561
|
+
* squarer it read.
|
|
562
|
+
*/
|
|
563
|
+
const STEEP_CORNER_RATIO = 1.15;
|
|
564
|
+
function kindOf(ring) {
|
|
565
|
+
if (ring.corner < MIN_CORNER_RATIO)
|
|
566
|
+
return 'round';
|
|
567
|
+
return ring.wander <= MAX_SIDE_WANDER ? 'cornered' : 'dotted';
|
|
568
|
+
}
|
|
569
|
+
/**
|
|
570
|
+
* What a finder's ring is to a reader that traces its sides, by its shape
|
|
571
|
+
* (see `finderRingsTraceable`): `cornered`, straight-sided with corners, which
|
|
572
|
+
* every reader follows; `round`, without corners, which zxing-cpp loses at a
|
|
573
|
+
* slant or under a smear; `dotted`, cornered but scalloped, which it loses
|
|
574
|
+
* anywhere. Null where the ring cannot be measured on the picture.
|
|
575
|
+
*
|
|
576
|
+
* The design layer can ask this of a ring and centre it draws, through the
|
|
577
|
+
* grid it drew them on, to know before any photograph how the strict profile
|
|
578
|
+
* will take them.
|
|
579
|
+
*/
|
|
580
|
+
export function ringKind(grey, transform, u, v) {
|
|
581
|
+
const ring = ringShape(grey, transform, u, v);
|
|
582
|
+
return ring === null ? null : kindOf(ring);
|
|
583
|
+
}
|
|
584
|
+
/**
|
|
585
|
+
* Whether the strict profile's finder search, thresholding a picture as the
|
|
586
|
+
* strict reader does, finds a finder centred within a module of `centre`.
|
|
587
|
+
*
|
|
588
|
+
* The design layer's conformance test measures a ring and centre with
|
|
589
|
+
* sub-pixel edges at four pixels a module; the strict reader measures whole
|
|
590
|
+
* pixels from the pixels nearest a centre it knows to a fraction of one. This
|
|
591
|
+
* is the strict reader's own measure, for a caller that wants the verdict of
|
|
592
|
+
* the reader that will judge the finder rather than a model of it.
|
|
593
|
+
*/
|
|
594
|
+
export function strictFindsFinder(image, centre, modulePixels) {
|
|
595
|
+
return findFinderPatterns(binariseHybridMean(image), STRICT_FINDER_TOLERANCE).some((pattern) => hypot(pattern.x - centre.x, pattern.y - centre.y) < modulePixels);
|
|
596
|
+
}
|
|
597
|
+
//# sourceMappingURL=strict.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strict.js","sourceRoot":"","sources":["../../src/decode/strict.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AAEH,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAG1E,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,SAAqB,EAAE,CAAS,EAAE,CAAS;IACzE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAChE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAClC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC,wEAAwE;IACxE,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAC5B,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,SAAqB,EAAE,KAAa,EAAE,MAAc;IACjF,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACpB,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;IACrB,OAAO,CACN,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,wBAAwB;QACxD,cAAc,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,yBAAyB,CAC5D,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEvC;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,KAAgB;IACvC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACtC,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACtC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC7B,MAAM,UAAU,GACd,IAAI,CAAC,EAAE,GAAG,CAAC,CAAY;gBACvB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAY;gBACvB,IAAI,CAAC,EAAE,GAAG,KAAK,CAAY;gBAC3B,IAAI,CAAC,EAAE,GAAG,KAAK,CAAY,CAAC;YAC9B,IAAI,UAAU,IAAI,CAAC;gBAAE,QAAQ,IAAI,CAAC,CAAC;QACpC,CAAC;IACF,CAAC;IACD,OAAO,QAAQ,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC;IAChD,UAAU,CAAC,MAAM;IACjB,UAAU,CAAC,SAAS;IACpB,UAAU,CAAC,MAAM;IACjB,UAAU,CAAC,SAAS;IACpB,UAAU,CAAC,YAAY,CAAC;IACxB,UAAU,CAAC,eAAe,CAAC;CAC3B,CAAC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;AAE/B,sEAAsE;AACtE,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,SAAS,OAAO,CAAC,SAAqB,EAAE,CAAS,EAAE,CAAS;IAC3D,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAChE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAClC,OAAO;QACN,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;KAC5C,CAAC;AACH,CAAC;AAED,SAAS,MAAM,CAAC,IAAe,EAAE,SAAqB,EAAE,CAAS,EAAE,CAAS;IAC3E,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAC5E,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAW,CAAC;AAChD,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,IAAe,EAAE,SAAqB,EAAE,MAAoB;IAChF,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;YACxD,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAClC,SAAS,CAAC,KAAK,CAAC,GAAI,SAAS,CAAC,KAAK,CAAY,GAAG,CAAC,CAAC;YACpD,KAAK,IAAI,CAAC,CAAC;QACZ,CAAC;IACF,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAU,EAAE;QAC/C,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAChC,IAAI,IAAI,SAAS,CAAC,KAAK,CAAW,CAAC;YACnC,IAAI,IAAI,IAAI,KAAK,GAAG,QAAQ;gBAAE,MAAM;QACrC,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC,CAAC;IACF,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,2EAA2E;AAC3E,SAAS,kBAAkB,CAAC,IAAe,EAAE,SAAqB,EAAE,CAAS,EAAE,CAAS;IACvF,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,MAAM,KAAK,GAAG,CAAC,GAAG,mBAAmB,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,MAAM,CACnB,IAAI,EACJ,SAAS,EACT,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,mBAAmB,EAC/B,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAC/B,CAAC;YACF,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAS;YAClC,IAAI,KAAK,GAAG,GAAG;gBAAE,GAAG,GAAG,KAAK,CAAC;YAC7B,IAAI,KAAK,GAAG,IAAI;gBAAE,IAAI,GAAG,KAAK,CAAC;QAChC,CAAC;IACF,CAAC;IACD,OAAO,IAAI,GAAG,GAAG,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CACjC,CAAY,EACZ,CAAY,EACZ,IAAe,EACf,SAAqB,EACrB,MAAoB;IAEpB,IAAI,KAAyB,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAW,CAAC;gBAAE,SAAS;YAC7E,0DAA0D;YAC1D,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;YAC9D,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,SAAS;YACxC,KAAK,KAAK,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,UAAU;gBAAE,OAAO,KAAK,CAAC;QAClF,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AACjC,kHAAkH;AAClH,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,iHAAiH;AACjH,MAAM,eAAe,GAAG,IAAI,CAAC;AAC7B,0EAA0E;AAC1E,MAAM,YAAY,GAAG,GAAG,CAAC;AACzB,MAAM,SAAS,GAAG,GAAG,CAAC;AACtB,MAAM,SAAS,GAAG,IAAI,CAAC;AAEvB,oFAAoF;AACpF,SAAS,YAAY,CAAC,IAAe,EAAE,SAAqB,EAAE,CAAS,EAAE,CAAS;IACjF,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAChE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAClC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC9C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IACzF,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,MAAM,EAAE,GAAG,CAAC,EAAU,EAAE,EAAU,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAW,CAAC;IACzF,OAAO,CACN,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAChC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC9B,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;QAC9B,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAC5B,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,SAAS,CACjB,IAAe,EACf,SAAqB,EACrB,CAAS,EACT,CAAS,EACT,EAAU,EACV,EAAU,EACV,IAAY,EACZ,EAAU;IAEV,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,GAAG,GAAG,GAAG,CAAC;IACd,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC;QAC3C,IAAI,KAAK,GAAG,GAAG;YAAE,GAAG,GAAG,KAAK,CAAC;QAC7B,IAAI,KAAK,GAAG,IAAI;YAAE,IAAI,GAAG,KAAK,CAAC;IAChC,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAW,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAW,CAAC;QACrC,IAAI,IAAI,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACrC,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;QACjE,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC;AACnB,CAAC;AAED,6DAA6D;AAC7D,SAAS,aAAa,CAAC,SAAqB,EAAE,CAAS,EAAE,CAAS;IACjE,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,OAAO,CACN,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC,CACD,CAAC;AACH,CAAC;AAQD,8FAA8F;AAC9F,MAAM,UAAU,SAAS,CACxB,IAAe,EACf,SAAqB,EACrB,CAAS,EACT,CAAS;IAET,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI;QACtB,CAAC,CAAC,EAAE,CAAC,CAAC;QACN,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACP,CAAC,CAAC,EAAE,CAAC,CAAC;QACN,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,YAAY,GAAG,IAAI,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACtE,mDAAmD;YACnD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3D,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACjE,MAAM,IAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAY,GAAG,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI;QACtB,CAAC,CAAC,EAAE,CAAC,CAAC;QACN,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACP,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACC,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QACzF,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAErC,6FAA6F;AAC7F,MAAM,UAAU,GAA2C,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IAC9F,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAU,CAAC;AAC1C,CAAC,CAAC,CAAC;AACH,uHAAuH;AACvH,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,MAAM,QAAQ,GAAG,GAAG,CAAC;AACrB,wFAAwF;AACxF,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,yGAAyG;AACzG,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B;;;;;GAKG;AACH,SAAS,QAAQ,CAChB,IAAe,EACf,SAAqB,EACrB,CAAS,EACT,CAAS,EACT,EAAU,EACV,EAAU;IAEV,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,SAAS,IAAI,QAAQ,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,MAAM,CAAC,GAAG,UAAU,GAAG,CAAC,GAAG,SAAS,CAAC;QACrC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACpD,IAAI,IAAI,GAAG,GAAG,GAAG,kBAAkB;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC;IACvD,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAU,EAAE;QAC1C,MAAM,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC1B,OAAO,CAAC,CAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAY,GAAG,KAAK,IAAK,MAAM,CAAC,CAAC,CAAY,IAAI,KAAK,CAAC;YAAE,CAAC,IAAI,CAAC,CAAC;QACtF,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAW,CAAC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAW,CAAC;QAClC,OAAO,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAC/E,CAAC,CAAC;IACF,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAe,EAAE,SAAqB,EAAE,CAAS,EAAE,CAAS;IACvF,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAC1F,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAC/B,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,iBAAiB,CAAC;IACvD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,qHAAqH;AACrH,SAAS,UAAU,CAAC,IAAe,EAAE,SAAqB,EAAE,CAAS,EAAE,CAAS;IAC/E,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,CACN,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;QACpD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CACnD,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAe,EAAE,SAAqB,EAAE,IAAY;IACvF,OAAO;QACN,CAAC,GAAG,EAAE,GAAG,CAAC;QACV,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC;QACjB,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,CAAC;KACjB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,EAAE,CAAW,EAAE,CAAW,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,SAAS,EAAE,CAAW,EAAE,CAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzF,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACpC,2EAA2E;QAC3E,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACtB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACxB,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,oBAAoB,CACnC,IAAe,EACf,IAAe,EACf,SAAqB,EACrB,IAAY;IAEZ,MAAM,OAAO,GAAuB;QACnC,CAAC,GAAG,EAAE,GAAG,CAAC;QACV,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC;QACjB,CAAC,GAAG,EAAE,IAAI,GAAG,GAAG,CAAC;KACjB,CAAC;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,YAAY,CAAC;IACzE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAChG,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,2BAA2B,CAAC;IAC1F,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,uEAAuE;QACvE,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACpC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3D,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,kBAAkB;YAAE,OAAO,KAAK,CAAC;QAC5D,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAEhD;;;;;;;GAOG;AACH,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC,SAAS,MAAM,CAAC,IAAe;IAC9B,IAAI,IAAI,CAAC,MAAM,GAAG,gBAAgB;QAAE,OAAO,OAAO,CAAC;IACnD,OAAO,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ,CACvB,IAAe,EACf,SAAqB,EACrB,CAAS,EACT,CAAS;IAET,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAID;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAgB,EAAE,MAAa,EAAE,YAAoB;IACtF,OAAO,kBAAkB,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,uBAAuB,CAAC,CAAC,IAAI,CACjF,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY,CAC7E,CAAC;AACH,CAAC"}
|