diff --git a/index.html b/index.html index 15bb5bbdf8..a35ec1b3cf 100644 --- a/index.html +++ b/index.html @@ -11,6 +11,9 @@ name="viewport" content="width=device-width, initial-scale=1.0" /> + Pot diff --git a/package.json b/package.json index 4b93caeaaa..d9093410d3 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,11 @@ "framer-motion": "^10.16.2", "i18next": "^23.4.6", "jotai": "^2.4.1", + "js-clipper": "^1.0.1", "nanoid": "^4.0.2", "next-themes": "^0.2.1", + "onnxruntime-web": "^1.15.1", + "opencv.js": "^1.2.1", "react": "^18.2.0", "react-beautiful-dnd": "^13.1.1", "react-dom": "^18.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 642c09b86f..e0b040cb1e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,12 +23,21 @@ dependencies: jotai: specifier: ^2.4.1 version: 2.4.1(@types/react@18.2.21)(react@18.2.0) + js-clipper: + specifier: ^1.0.1 + version: 1.0.1 nanoid: specifier: ^4.0.2 version: 4.0.2 next-themes: specifier: ^0.2.1 version: 0.2.1(next@13.4.19)(react-dom@18.2.0)(react@18.2.0) + onnxruntime-web: + specifier: ^1.15.1 + version: 1.15.1 + opencv.js: + specifier: ^1.2.1 + version: 1.2.1 react: specifier: ^18.2.0 version: 18.2.0 @@ -2939,6 +2948,49 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 + /@protobufjs/aspromise@1.1.2: + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + dev: false + + /@protobufjs/base64@1.1.2: + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + dev: false + + /@protobufjs/codegen@2.0.4: + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + dev: false + + /@protobufjs/eventemitter@1.1.0: + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + dev: false + + /@protobufjs/fetch@1.1.0: + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + dev: false + + /@protobufjs/float@1.0.2: + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + dev: false + + /@protobufjs/inquire@1.1.0: + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + dev: false + + /@protobufjs/path@1.1.2: + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + dev: false + + /@protobufjs/pool@1.1.0: + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + dev: false + + /@protobufjs/utf8@1.1.0: + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + dev: false + /@react-aria/accordion@3.0.0-alpha.20(react@18.2.0): resolution: {integrity: sha512-dQIrZrUwfVIezny/7SknsxIeZ5R4VXMizuCC6XCTDgeu7Mx8O3/+quJwE58KAHT9mhvWx7Wk+QGNBOTNbwSXQQ==} peerDependencies: @@ -3927,6 +3979,10 @@ packages: resolution: {integrity: sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==} dev: false + /@types/long@4.0.2: + resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} + dev: false + /@types/mdast@3.0.12: resolution: {integrity: sha512-DT+iNIRNX884cx0/Q1ja7NyUPpZuv0KPyL5rGNxm1WC1OtHstl7n4Jb7nk+xacNShQMbczJjt8uFzznpp6kYBg==} dependencies: @@ -3937,6 +3993,10 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: false + /@types/node@20.5.7: + resolution: {integrity: sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==} + dev: false + /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} dev: false @@ -4089,7 +4149,7 @@ packages: hasBin: true dependencies: caniuse-lite: 1.0.30001525 - electron-to-chromium: 1.4.506 + electron-to-chromium: 1.4.508 node-releases: 2.0.13 update-browserslist-db: 1.0.11(browserslist@4.21.10) @@ -4283,8 +4343,8 @@ packages: /dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - /electron-to-chromium@1.4.506: - resolution: {integrity: sha512-xxGct4GPAKSRlrLBtJxJFYy74W11zX6PO9GyHgl/U+2s3Dp0ZEwAklDfNHXOWcvH7zWMpsmgbR0ggEuaYAVvHA==} + /electron-to-chromium@1.4.508: + resolution: {integrity: sha512-FFa8QKjQK/A5QuFr2167myhMesGrhlOBD+3cYNxO9/S4XzHEXesyTD/1/xF644gC8buFPz3ca6G1LOQD0tZrrg==} /esbuild@0.18.20: resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} @@ -4367,6 +4427,10 @@ packages: hasBin: true dev: false + /flatbuffers@1.12.0: + resolution: {integrity: sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ==} + dev: false + /formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} @@ -4475,6 +4539,10 @@ packages: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} dev: false + /guid-typescript@1.0.9: + resolution: {integrity: sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==} + dev: false + /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -4606,6 +4674,10 @@ packages: react: 18.2.0 dev: false + /js-clipper@1.0.1: + resolution: {integrity: sha512-0XYAS0ZoCki5K0fWwj8j8ug4mgxHXReW3ayPbVqr4zXPJuIs2pyvemL1sALadsEiAywZwW5Ify1XfU4bNJvokg==} + dev: false + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -4660,6 +4732,10 @@ packages: resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==} dev: false + /long@4.0.0: + resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} + dev: false + /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -5050,11 +5126,36 @@ packages: dependencies: wrappy: 1.0.2 + /onnx-proto@4.0.4: + resolution: {integrity: sha512-aldMOB3HRoo6q/phyB6QRQxSt895HNNw82BNyZ2CMh4bjeKv7g/c+VpAFtJuEMVfYLMbRx61hbuqnKceLeDcDA==} + dependencies: + protobufjs: 6.11.4 + dev: false + + /onnxruntime-common@1.15.1: + resolution: {integrity: sha512-Y89eJ8QmaRsPZPWLaX7mfqhj63ny47rSkQe80hIo+lvBQdrdXYR9VO362xvZulk9DFkCnXmGidprvgJ07bKsIQ==} + dev: false + + /onnxruntime-web@1.15.1: + resolution: {integrity: sha512-Ky4AXFLFyiGRu5KQJdDcbhdNcO0f2ND/8IPmTEwcKKIHpCwH6/Q9UoMpcoFz78lxGvnmmy+FFgA/Bs1HjdM6LA==} + dependencies: + flatbuffers: 1.12.0 + guid-typescript: 1.0.9 + long: 4.0.0 + onnx-proto: 4.0.4 + onnxruntime-common: 1.15.1 + platform: 1.3.6 + dev: false + /opencollective-postinstall@2.0.3: resolution: {integrity: sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==} hasBin: true dev: false + /opencv.js@1.2.1: + resolution: {integrity: sha512-+ji5Pk3eyz+RRSeZr2kLZNJpjsKoGyPJOjFWng7+Cuq9ylHakBqJMxDGlBW1+qdju3k8DadWOiHJ6JaF28UpKA==} + dev: false + /path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -5082,6 +5183,10 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} + /platform@1.3.6: + resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} + dev: false + /postcss-import@15.1.0(postcss@8.4.29): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} @@ -5172,6 +5277,26 @@ packages: resolution: {integrity: sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==} dev: false + /protobufjs@6.11.4: + resolution: {integrity: sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==} + hasBin: true + requiresBuild: true + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/long': 4.0.2 + '@types/node': 20.5.7 + long: 4.0.0 + dev: false + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} diff --git a/public/auto.png b/public/auto.png deleted file mode 100644 index 7015d08b16..0000000000 Binary files a/public/auto.png and /dev/null differ diff --git a/public/baidu_field.svg b/public/baidu_field.svg deleted file mode 100644 index 1c27a6ab3f..0000000000 --- a/public/baidu_field.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/bing_dict.svg b/public/bing_dict.svg deleted file mode 100644 index 4cc77601e3..0000000000 --- a/public/bing_dict.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/empty.svg b/public/empty.svg deleted file mode 100644 index bac1d28e02..0000000000 --- a/public/empty.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/alibaba.svg b/public/logo/alibaba.svg similarity index 100% rename from public/alibaba.svg rename to public/logo/alibaba.svg diff --git a/public/baidu.svg b/public/logo/baidu.svg similarity index 100% rename from public/baidu.svg rename to public/logo/baidu.svg diff --git a/public/bing.svg b/public/logo/bing.svg similarity index 100% rename from public/bing.svg rename to public/logo/bing.svg diff --git a/public/caiyun.svg b/public/logo/caiyun.svg similarity index 100% rename from public/caiyun.svg rename to public/logo/caiyun.svg diff --git a/public/cambridge_dict.svg b/public/logo/cambridge_dict.svg similarity index 100% rename from public/cambridge_dict.svg rename to public/logo/cambridge_dict.svg diff --git a/public/deepl.svg b/public/logo/deepl.svg similarity index 100% rename from public/deepl.svg rename to public/logo/deepl.svg diff --git a/public/google.svg b/public/logo/google.svg similarity index 100% rename from public/google.svg rename to public/logo/google.svg diff --git a/public/lingva.svg b/public/logo/lingva.svg similarity index 100% rename from public/lingva.svg rename to public/logo/lingva.svg diff --git a/public/moji_dict.svg b/public/logo/moji_dict.svg similarity index 100% rename from public/moji_dict.svg rename to public/logo/moji_dict.svg diff --git a/public/openai.svg b/public/logo/openai.svg similarity index 100% rename from public/openai.svg rename to public/logo/openai.svg diff --git a/public/palm.svg b/public/logo/palm.svg similarity index 100% rename from public/palm.svg rename to public/logo/palm.svg diff --git a/public/tatoeba.svg b/public/logo/tatoeba.svg similarity index 100% rename from public/tatoeba.svg rename to public/logo/tatoeba.svg diff --git a/public/tencent.svg b/public/logo/tencent.svg similarity index 100% rename from public/tencent.svg rename to public/logo/tencent.svg diff --git a/public/transmart.svg b/public/logo/transmart.svg similarity index 100% rename from public/transmart.svg rename to public/logo/transmart.svg diff --git a/public/volcengine.svg b/public/logo/volcengine.svg similarity index 100% rename from public/volcengine.svg rename to public/logo/volcengine.svg diff --git a/public/xiaoniu.svg b/public/logo/xiaoniu.svg similarity index 100% rename from public/xiaoniu.svg rename to public/logo/xiaoniu.svg diff --git a/public/yandex.svg b/public/logo/yandex.svg similarity index 100% rename from public/yandex.svg rename to public/logo/yandex.svg diff --git a/public/youdao.svg b/public/logo/youdao.svg similarity index 100% rename from public/youdao.svg rename to public/logo/youdao.svg diff --git a/public/openai_code.svg b/public/openai_code.svg deleted file mode 100644 index 3b5e670be8..0000000000 --- a/public/openai_code.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/openai_polish.svg b/public/openai_polish.svg deleted file mode 100644 index 3b5e670be8..0000000000 --- a/public/openai_polish.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/openai_summary.svg b/public/openai_summary.svg deleted file mode 100644 index 3b5e670be8..0000000000 --- a/public/openai_summary.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/tesseract.min.js.map b/public/tesseract.min.js.map new file mode 100644 index 0000000000..9f1f07895d --- /dev/null +++ b/public/tesseract.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"tesseract.min.js","mappings":"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","sources":["webpack://Tesseract/webpack/universalModuleDefinition","webpack://Tesseract/./node_modules/is-electron/index.js","webpack://Tesseract/./node_modules/regenerator-runtime/runtime.js","webpack://Tesseract/./src/Tesseract.js","webpack://Tesseract/./src/constants/OEM.js","webpack://Tesseract/./src/constants/PSM.js","webpack://Tesseract/./src/constants/config.js","webpack://Tesseract/./src/constants/defaultOptions.js","webpack://Tesseract/./src/constants/languages.js","webpack://Tesseract/./src/createJob.js","webpack://Tesseract/./src/createScheduler.js","webpack://Tesseract/./src/createWorker.js","webpack://Tesseract/./src/index.js","webpack://Tesseract/./src/utils/circularize.js","webpack://Tesseract/./src/utils/getEnvironment.js","webpack://Tesseract/./src/utils/getId.js","webpack://Tesseract/./src/utils/log.js","webpack://Tesseract/./src/utils/resolvePaths.js","webpack://Tesseract/./src/worker/browser/defaultOptions.js","webpack://Tesseract/./src/worker/browser/index.js","webpack://Tesseract/./src/worker/browser/loadImage.js","webpack://Tesseract/./src/worker/browser/onMessage.js","webpack://Tesseract/./src/worker/browser/send.js","webpack://Tesseract/./src/worker/browser/spawnWorker.js","webpack://Tesseract/./src/worker/browser/terminateWorker.js","webpack://Tesseract/webpack/bootstrap","webpack://Tesseract/webpack/runtime/node module decorator","webpack://Tesseract/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Tesseract\"] = factory();\n\telse\n\t\troot[\"Tesseract\"] = factory();\n})(self, () => {\nreturn ","// https://github.com/electron/electron/issues/2288\nfunction isElectron() {\n // Renderer process\n if (typeof window !== 'undefined' && typeof window.process === 'object' && window.process.type === 'renderer') {\n return true;\n }\n\n // Main process\n if (typeof process !== 'undefined' && typeof process.versions === 'object' && !!process.versions.electron) {\n return true;\n }\n\n // Detect the user agent when the `nodeIntegration` option is set to false\n if (typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isElectron;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","const createWorker = require('./createWorker');\n\nconst recognize = async (image, langs, options) => {\n const worker = await createWorker(options);\n await worker.loadLanguage(langs);\n await worker.initialize(langs);\n return worker.recognize(image)\n .finally(async () => {\n await worker.terminate();\n });\n};\n\nconst detect = async (image, options) => {\n const worker = await createWorker(options);\n await worker.loadLanguage('osd');\n await worker.initialize('osd');\n return worker.detect(image)\n .finally(async () => {\n await worker.terminate();\n });\n};\n\nmodule.exports = {\n recognize,\n detect,\n};\n","/*\n * OEM = OCR Engine Mode, and there are 4 possible modes.\n *\n * By default tesseract.js uses LSTM_ONLY mode.\n *\n */\nmodule.exports = {\n TESSERACT_ONLY: 0,\n LSTM_ONLY: 1,\n TESSERACT_LSTM_COMBINED: 2,\n DEFAULT: 3,\n};\n","/*\n * PSM = Page Segmentation Mode\n */\nmodule.exports = {\n OSD_ONLY: '0',\n AUTO_OSD: '1',\n AUTO_ONLY: '2',\n AUTO: '3',\n SINGLE_COLUMN: '4',\n SINGLE_BLOCK_VERT_TEXT: '5',\n SINGLE_BLOCK: '6',\n SINGLE_LINE: '7',\n SINGLE_WORD: '8',\n CIRCLE_WORD: '9',\n SINGLE_CHAR: '10',\n SPARSE_TEXT: '11',\n SPARSE_TEXT_OSD: '12',\n RAW_LINE: '13',\n};\n","const OEM = require('./OEM');\n\nmodule.exports = {\n defaultOEM: OEM.DEFAULT,\n};\n","module.exports = {\n /*\n * default path for downloading *.traineddata\n */\n langPath: 'https://tessdata.projectnaptha.com/4.0.0',\n /*\n * Use BlobURL for worker script by default\n * TODO: remove this option\n *\n */\n workerBlobURL: true,\n logger: () => {},\n};\n","/*\n * languages with existing tesseract traineddata\n * https://tesseract-ocr.github.io/tessdoc/Data-Files#data-files-for-version-400-november-29-2016\n */\n\n/**\n * @typedef {object} Languages\n * @property {string} AFR Afrikaans\n * @property {string} AMH Amharic\n * @property {string} ARA Arabic\n * @property {string} ASM Assamese\n * @property {string} AZE Azerbaijani\n * @property {string} AZE_CYRL Azerbaijani - Cyrillic\n * @property {string} BEL Belarusian\n * @property {string} BEN Bengali\n * @property {string} BOD Tibetan\n * @property {string} BOS Bosnian\n * @property {string} BUL Bulgarian\n * @property {string} CAT Catalan; Valencian\n * @property {string} CEB Cebuano\n * @property {string} CES Czech\n * @property {string} CHI_SIM Chinese - Simplified\n * @property {string} CHI_TRA Chinese - Traditional\n * @property {string} CHR Cherokee\n * @property {string} CYM Welsh\n * @property {string} DAN Danish\n * @property {string} DEU German\n * @property {string} DZO Dzongkha\n * @property {string} ELL Greek, Modern (1453-)\n * @property {string} ENG English\n * @property {string} ENM English, Middle (1100-1500)\n * @property {string} EPO Esperanto\n * @property {string} EST Estonian\n * @property {string} EUS Basque\n * @property {string} FAS Persian\n * @property {string} FIN Finnish\n * @property {string} FRA French\n * @property {string} FRK German Fraktur\n * @property {string} FRM French, Middle (ca. 1400-1600)\n * @property {string} GLE Irish\n * @property {string} GLG Galician\n * @property {string} GRC Greek, Ancient (-1453)\n * @property {string} GUJ Gujarati\n * @property {string} HAT Haitian; Haitian Creole\n * @property {string} HEB Hebrew\n * @property {string} HIN Hindi\n * @property {string} HRV Croatian\n * @property {string} HUN Hungarian\n * @property {string} IKU Inuktitut\n * @property {string} IND Indonesian\n * @property {string} ISL Icelandic\n * @property {string} ITA Italian\n * @property {string} ITA_OLD Italian - Old\n * @property {string} JAV Javanese\n * @property {string} JPN Japanese\n * @property {string} KAN Kannada\n * @property {string} KAT Georgian\n * @property {string} KAT_OLD Georgian - Old\n * @property {string} KAZ Kazakh\n * @property {string} KHM Central Khmer\n * @property {string} KIR Kirghiz; Kyrgyz\n * @property {string} KOR Korean\n * @property {string} KUR Kurdish\n * @property {string} LAO Lao\n * @property {string} LAT Latin\n * @property {string} LAV Latvian\n * @property {string} LIT Lithuanian\n * @property {string} MAL Malayalam\n * @property {string} MAR Marathi\n * @property {string} MKD Macedonian\n * @property {string} MLT Maltese\n * @property {string} MSA Malay\n * @property {string} MYA Burmese\n * @property {string} NEP Nepali\n * @property {string} NLD Dutch; Flemish\n * @property {string} NOR Norwegian\n * @property {string} ORI Oriya\n * @property {string} PAN Panjabi; Punjabi\n * @property {string} POL Polish\n * @property {string} POR Portuguese\n * @property {string} PUS Pushto; Pashto\n * @property {string} RON Romanian; Moldavian; Moldovan\n * @property {string} RUS Russian\n * @property {string} SAN Sanskrit\n * @property {string} SIN Sinhala; Sinhalese\n * @property {string} SLK Slovak\n * @property {string} SLV Slovenian\n * @property {string} SPA Spanish; Castilian\n * @property {string} SPA_OLD Spanish; Castilian - Old\n * @property {string} SQI Albanian\n * @property {string} SRP Serbian\n * @property {string} SRP_LATN Serbian - Latin\n * @property {string} SWA Swahili\n * @property {string} SWE Swedish\n * @property {string} SYR Syriac\n * @property {string} TAM Tamil\n * @property {string} TEL Telugu\n * @property {string} TGK Tajik\n * @property {string} TGL Tagalog\n * @property {string} THA Thai\n * @property {string} TIR Tigrinya\n * @property {string} TUR Turkish\n * @property {string} UIG Uighur; Uyghur\n * @property {string} UKR Ukrainian\n * @property {string} URD Urdu\n * @property {string} UZB Uzbek\n * @property {string} UZB_CYRL Uzbek - Cyrillic\n * @property {string} VIE Vietnamese\n * @property {string} YID Yiddish\n */\n\n/**\n * @type {Languages}\n */\nmodule.exports = {\n AFR: 'afr',\n AMH: 'amh',\n ARA: 'ara',\n ASM: 'asm',\n AZE: 'aze',\n AZE_CYRL: 'aze_cyrl',\n BEL: 'bel',\n BEN: 'ben',\n BOD: 'bod',\n BOS: 'bos',\n BUL: 'bul',\n CAT: 'cat',\n CEB: 'ceb',\n CES: 'ces',\n CHI_SIM: 'chi_sim',\n CHI_TRA: 'chi_tra',\n CHR: 'chr',\n CYM: 'cym',\n DAN: 'dan',\n DEU: 'deu',\n DZO: 'dzo',\n ELL: 'ell',\n ENG: 'eng',\n ENM: 'enm',\n EPO: 'epo',\n EST: 'est',\n EUS: 'eus',\n FAS: 'fas',\n FIN: 'fin',\n FRA: 'fra',\n FRK: 'frk',\n FRM: 'frm',\n GLE: 'gle',\n GLG: 'glg',\n GRC: 'grc',\n GUJ: 'guj',\n HAT: 'hat',\n HEB: 'heb',\n HIN: 'hin',\n HRV: 'hrv',\n HUN: 'hun',\n IKU: 'iku',\n IND: 'ind',\n ISL: 'isl',\n ITA: 'ita',\n ITA_OLD: 'ita_old',\n JAV: 'jav',\n JPN: 'jpn',\n KAN: 'kan',\n KAT: 'kat',\n KAT_OLD: 'kat_old',\n KAZ: 'kaz',\n KHM: 'khm',\n KIR: 'kir',\n KOR: 'kor',\n KUR: 'kur',\n LAO: 'lao',\n LAT: 'lat',\n LAV: 'lav',\n LIT: 'lit',\n MAL: 'mal',\n MAR: 'mar',\n MKD: 'mkd',\n MLT: 'mlt',\n MSA: 'msa',\n MYA: 'mya',\n NEP: 'nep',\n NLD: 'nld',\n NOR: 'nor',\n ORI: 'ori',\n PAN: 'pan',\n POL: 'pol',\n POR: 'por',\n PUS: 'pus',\n RON: 'ron',\n RUS: 'rus',\n SAN: 'san',\n SIN: 'sin',\n SLK: 'slk',\n SLV: 'slv',\n SPA: 'spa',\n SPA_OLD: 'spa_old',\n SQI: 'sqi',\n SRP: 'srp',\n SRP_LATN: 'srp_latn',\n SWA: 'swa',\n SWE: 'swe',\n SYR: 'syr',\n TAM: 'tam',\n TEL: 'tel',\n TGK: 'tgk',\n TGL: 'tgl',\n THA: 'tha',\n TIR: 'tir',\n TUR: 'tur',\n UIG: 'uig',\n UKR: 'ukr',\n URD: 'urd',\n UZB: 'uzb',\n UZB_CYRL: 'uzb_cyrl',\n VIE: 'vie',\n YID: 'yid',\n};\n","const getId = require('./utils/getId');\n\nlet jobCounter = 0;\n\nmodule.exports = ({\n id: _id,\n action,\n payload = {},\n}) => {\n let id = _id;\n if (typeof id === 'undefined') {\n id = getId('Job', jobCounter);\n jobCounter += 1;\n }\n\n return {\n id,\n action,\n payload,\n };\n};\n","const createJob = require('./createJob');\nconst { log } = require('./utils/log');\nconst getId = require('./utils/getId');\n\nlet schedulerCounter = 0;\n\nmodule.exports = () => {\n const id = getId('Scheduler', schedulerCounter);\n const workers = {};\n const runningWorkers = {};\n let jobQueue = [];\n\n schedulerCounter += 1;\n\n const getQueueLen = () => jobQueue.length;\n const getNumWorkers = () => Object.keys(workers).length;\n\n const dequeue = () => {\n if (jobQueue.length !== 0) {\n const wIds = Object.keys(workers);\n for (let i = 0; i < wIds.length; i += 1) {\n if (typeof runningWorkers[wIds[i]] === 'undefined') {\n jobQueue[0](workers[wIds[i]]);\n break;\n }\n }\n }\n };\n\n const queue = (action, payload) => (\n new Promise((resolve, reject) => {\n const job = createJob({ action, payload });\n jobQueue.push(async (w) => {\n jobQueue.shift();\n runningWorkers[w.id] = job;\n try {\n resolve(await w[action].apply(this, [...payload, job.id]));\n } catch (err) {\n reject(err);\n } finally {\n delete runningWorkers[w.id];\n dequeue();\n }\n });\n log(`[${id}]: Add ${job.id} to JobQueue`);\n log(`[${id}]: JobQueue length=${jobQueue.length}`);\n dequeue();\n })\n );\n\n const addWorker = (w) => {\n workers[w.id] = w;\n log(`[${id}]: Add ${w.id}`);\n log(`[${id}]: Number of workers=${getNumWorkers()}`);\n dequeue();\n return w.id;\n };\n\n const addJob = async (action, ...payload) => {\n if (getNumWorkers() === 0) {\n throw Error(`[${id}]: You need to have at least one worker before adding jobs`);\n }\n return queue(action, payload);\n };\n\n const terminate = async () => {\n Object.keys(workers).forEach(async (wid) => {\n await workers[wid].terminate();\n });\n jobQueue = [];\n };\n\n return {\n addWorker,\n addJob,\n terminate,\n getQueueLen,\n getNumWorkers,\n };\n};\n","const resolvePaths = require('./utils/resolvePaths');\nconst circularize = require('./utils/circularize');\nconst createJob = require('./createJob');\nconst { log } = require('./utils/log');\nconst getId = require('./utils/getId');\nconst { defaultOEM } = require('./constants/config');\nconst {\n defaultOptions,\n spawnWorker,\n terminateWorker,\n onMessage,\n loadImage,\n send,\n} = require('./worker/node');\n\nlet workerCounter = 0;\n\nmodule.exports = async (_options = {}) => {\n const id = getId('Worker', workerCounter);\n const {\n logger,\n errorHandler,\n ...options\n } = resolvePaths({\n ...defaultOptions,\n ..._options,\n });\n const resolves = {};\n const rejects = {};\n\n let workerResReject;\n let workerResResolve;\n const workerRes = new Promise((resolve, reject) => {\n workerResResolve = resolve;\n workerResReject = reject;\n });\n const workerError = (event) => { workerResReject(event.message); };\n\n let worker = spawnWorker(options);\n worker.onerror = workerError;\n\n workerCounter += 1;\n\n const setResolve = (action, res) => {\n resolves[action] = res;\n };\n\n const setReject = (action, rej) => {\n rejects[action] = rej;\n };\n\n const startJob = ({ id: jobId, action, payload }) => (\n new Promise((resolve, reject) => {\n log(`[${id}]: Start ${jobId}, action=${action}`);\n setResolve(action, resolve);\n setReject(action, reject);\n send(worker, {\n workerId: id,\n jobId,\n action,\n payload,\n });\n })\n );\n\n const load = () => (\n console.warn('`load` is depreciated and should be removed from code (workers now come pre-loaded)')\n );\n\n const loadInternal = (jobId) => (\n startJob(createJob({\n id: jobId, action: 'load', payload: { options },\n }))\n );\n\n const writeText = (path, text, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'FS',\n payload: { method: 'writeFile', args: [path, text] },\n }))\n );\n\n const readText = (path, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'FS',\n payload: { method: 'readFile', args: [path, { encoding: 'utf8' }] },\n }))\n );\n\n const removeFile = (path, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'FS',\n payload: { method: 'unlink', args: [path] },\n }))\n );\n\n const FS = (method, args, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'FS',\n payload: { method, args },\n }))\n );\n\n const loadLanguage = (langs = 'eng', jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'loadLanguage',\n payload: { langs, options },\n }))\n );\n\n const initialize = (langs = 'eng', oem = defaultOEM, config, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'initialize',\n payload: { langs, oem, config },\n }))\n );\n\n const setParameters = (params = {}, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'setParameters',\n payload: { params },\n }))\n );\n\n const recognize = async (image, opts = {}, output = {\n blocks: true, text: true, hocr: true, tsv: true,\n }, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'recognize',\n payload: { image: await loadImage(image), options: opts, output },\n }))\n );\n\n const getPDF = (title = 'Tesseract OCR Result', textonly = false, jobId) => {\n console.log('`getPDF` function is depreciated. `recognize` option `savePDF` should be used instead.');\n return startJob(createJob({\n id: jobId,\n action: 'getPDF',\n payload: { title, textonly },\n }));\n };\n\n const detect = async (image, jobId) => (\n startJob(createJob({\n id: jobId,\n action: 'detect',\n payload: { image: await loadImage(image) },\n }))\n );\n\n const terminate = async () => {\n if (worker !== null) {\n /*\n await startJob(createJob({\n id: jobId,\n action: 'terminate',\n }));\n */\n terminateWorker(worker);\n worker = null;\n }\n return Promise.resolve();\n };\n\n onMessage(worker, ({\n workerId, jobId, status, action, data,\n }) => {\n if (status === 'resolve') {\n log(`[${workerId}]: Complete ${jobId}`);\n let d = data;\n if (action === 'recognize') {\n d = circularize(data);\n } else if (action === 'getPDF') {\n d = Array.from({ ...data, length: Object.keys(data).length });\n }\n resolves[action]({ jobId, data: d });\n } else if (status === 'reject') {\n rejects[action](data);\n if (action === 'load') workerResReject(data);\n if (errorHandler) {\n errorHandler(data);\n } else {\n throw Error(data);\n }\n } else if (status === 'progress') {\n logger({ ...data, userJobId: jobId });\n }\n });\n\n const resolveObj = {\n id,\n worker,\n setResolve,\n setReject,\n load,\n writeText,\n readText,\n removeFile,\n FS,\n loadLanguage,\n initialize,\n setParameters,\n recognize,\n getPDF,\n detect,\n terminate,\n };\n\n loadInternal().then(() => workerResResolve(resolveObj)).catch(() => {});\n\n return workerRes;\n};\n","/**\n *\n * Entry point for tesseract.js, should be the entry when bundling.\n *\n * @fileoverview entry point for tesseract.js\n * @author Kevin Kwok \n * @author Guillermo Webster \n * @author Jerome Wu \n */\nrequire('regenerator-runtime/runtime');\nconst createScheduler = require('./createScheduler');\nconst createWorker = require('./createWorker');\nconst Tesseract = require('./Tesseract');\nconst languages = require('./constants/languages');\nconst OEM = require('./constants/OEM');\nconst PSM = require('./constants/PSM');\nconst { setLogging } = require('./utils/log');\n\nmodule.exports = {\n languages,\n OEM,\n PSM,\n createScheduler,\n createWorker,\n setLogging,\n ...Tesseract,\n};\n","/**\n * In the recognition result of tesseract, there\n * is a deep JSON object for details, it has around\n *\n * The result of dump.js is a big JSON tree\n * which can be easily serialized (for instance\n * to be sent from a webworker to the main app\n * or through Node's IPC), but we want\n * a (circular) DOM-like interface for walking\n * through the data.\n *\n * @fileoverview DOM-like interface for walking through data\n * @author Kevin Kwok \n * @author Guillermo Webster \n * @author Jerome Wu \n */\n\nmodule.exports = (page) => {\n const blocks = [];\n const paragraphs = [];\n const lines = [];\n const words = [];\n const symbols = [];\n\n if (page.blocks) {\n page.blocks.forEach((block) => {\n block.paragraphs.forEach((paragraph) => {\n paragraph.lines.forEach((line) => {\n line.words.forEach((word) => {\n word.symbols.forEach((sym) => {\n symbols.push({\n ...sym, page, block, paragraph, line, word,\n });\n });\n words.push({\n ...word, page, block, paragraph, line,\n });\n });\n lines.push({\n ...line, page, block, paragraph,\n });\n });\n paragraphs.push({\n ...paragraph, page, block,\n });\n });\n blocks.push({\n ...block, page,\n });\n });\n }\n\n return {\n ...page, blocks, paragraphs, lines, words, symbols,\n };\n};\n","const isElectron = require('is-electron');\n\nmodule.exports = (key) => {\n const env = {};\n\n if (typeof WorkerGlobalScope !== 'undefined') {\n env.type = 'webworker';\n } else if (isElectron()) {\n env.type = 'electron';\n } else if (typeof window === 'object') {\n env.type = 'browser';\n } else if (typeof process === 'object' && typeof require === 'function') {\n env.type = 'node';\n }\n\n if (typeof key === 'undefined') {\n return env;\n }\n\n return env[key];\n};\n","module.exports = (prefix, cnt) => (\n `${prefix}-${cnt}-${Math.random().toString(16).slice(3, 8)}`\n);\n","let logging = false;\n\nexports.logging = logging;\n\nexports.setLogging = (_logging) => {\n logging = _logging;\n};\n\nexports.log = (...args) => (logging ? console.log.apply(this, args) : null);\n","const isBrowser = require('./getEnvironment')('type') === 'browser';\n\nconst resolveURL = isBrowser ? s => (new URL(s, window.location.href)).href : s => s; // eslint-disable-line\n\nmodule.exports = (options) => {\n const opts = { ...options };\n ['corePath', 'workerPath', 'langPath'].forEach((key) => {\n if (options[key]) {\n opts[key] = resolveURL(opts[key]);\n }\n });\n return opts;\n};\n","const resolveURL = (s) => (new URL(s, window.location.href)).href;\nconst { version } = require('../../../package.json');\nconst defaultOptions = require('../../constants/defaultOptions');\n\n/*\n * Default options for browser worker\n */\nmodule.exports = {\n ...defaultOptions,\n workerPath: (typeof process !== 'undefined' && process.env.TESS_ENV === 'development')\n ? resolveURL(`/dist/worker.dev.js?nocache=${Math.random().toString(36).slice(3)}`)\n : `https://cdn.jsdelivr.net/npm/tesseract.js@v${version}/dist/worker.min.js`,\n /*\n * If browser doesn't support WebAssembly,\n * load ASM version instead\n */\n corePath: null,\n};\n","/**\n *\n * Tesseract Worker adapter for browser\n *\n * @fileoverview Tesseract Worker adapter for browser\n * @author Kevin Kwok \n * @author Guillermo Webster \n * @author Jerome Wu \n */\nconst defaultOptions = require('./defaultOptions');\nconst spawnWorker = require('./spawnWorker');\nconst terminateWorker = require('./terminateWorker');\nconst onMessage = require('./onMessage');\nconst send = require('./send');\nconst loadImage = require('./loadImage');\n\nmodule.exports = {\n defaultOptions,\n spawnWorker,\n terminateWorker,\n onMessage,\n send,\n loadImage,\n};\n","/**\n * readFromBlobOrFile\n *\n * @name readFromBlobOrFile\n * @function\n * @access private\n */\nconst readFromBlobOrFile = (blob) => (\n new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.onload = () => {\n resolve(fileReader.result);\n };\n fileReader.onerror = ({ target: { error: { code } } }) => {\n reject(Error(`File could not be read! Code=${code}`));\n };\n fileReader.readAsArrayBuffer(blob);\n })\n);\n\n/**\n * loadImage\n *\n * @name loadImage\n * @function load image from different source\n * @access private\n */\nconst loadImage = async (image) => {\n let data = image;\n if (typeof image === 'undefined') {\n return 'undefined';\n }\n\n if (typeof image === 'string') {\n // Base64 Image\n if (/data:image\\/([a-zA-Z]*);base64,([^\"]*)/.test(image)) {\n data = atob(image.split(',')[1])\n .split('')\n .map((c) => c.charCodeAt(0));\n } else {\n const resp = await fetch(image);\n data = await resp.arrayBuffer();\n }\n } else if (typeof HTMLElement !== 'undefined' && image instanceof HTMLElement) {\n if (image.tagName === 'IMG') {\n data = await loadImage(image.src);\n }\n if (image.tagName === 'VIDEO') {\n data = await loadImage(image.poster);\n }\n if (image.tagName === 'CANVAS') {\n await new Promise((resolve) => {\n image.toBlob(async (blob) => {\n data = await readFromBlobOrFile(blob);\n resolve();\n });\n });\n }\n } else if (typeof OffscreenCanvas !== 'undefined' && image instanceof OffscreenCanvas) {\n const blob = await image.convertToBlob();\n data = await readFromBlobOrFile(blob);\n } else if (image instanceof File || image instanceof Blob) {\n data = await readFromBlobOrFile(image);\n }\n\n return new Uint8Array(data);\n};\n\nmodule.exports = loadImage;\n","module.exports = (worker, handler) => {\n worker.onmessage = ({ data }) => { // eslint-disable-line\n handler(data);\n };\n};\n","/**\n * send\n *\n * @name send\n * @function send packet to worker and create a job\n * @access public\n */\nmodule.exports = async (worker, packet) => {\n worker.postMessage(packet);\n};\n","/**\n * spawnWorker\n *\n * @name spawnWorker\n * @function create a new Worker in browser\n * @access public\n */\nmodule.exports = ({ workerPath, workerBlobURL }) => {\n let worker;\n if (Blob && URL && workerBlobURL) {\n const blob = new Blob([`importScripts(\"${workerPath}\");`], {\n type: 'application/javascript',\n });\n worker = new Worker(URL.createObjectURL(blob));\n } else {\n worker = new Worker(workerPath);\n }\n\n return worker;\n};\n","/**\n * terminateWorker\n *\n * @name terminateWorker\n * @function terminate worker\n * @access public\n */\nmodule.exports = (worker) => {\n worker.terminate();\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(352);\n"],"names":["root","factory","exports","module","define","amd","self","window","_typeof","process","type","versions","electron","navigator","userAgent","indexOf","runtime","undefined","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","enumerable","configurable","writable","err","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","call","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Function","_regeneratorRuntime","return","catch","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","createWorker","require","recognize","_ref","_callee2","image","langs","options","worker","_context2","loadLanguage","initialize","finally","_callee","_context","terminate","_x","_x2","_x3","detect","_ref3","_callee4","_context4","_callee3","_context3","_x4","_x5","TESSERACT_ONLY","LSTM_ONLY","TESSERACT_LSTM_COMBINED","DEFAULT","OSD_ONLY","AUTO_OSD","AUTO_ONLY","AUTO","SINGLE_COLUMN","SINGLE_BLOCK_VERT_TEXT","SINGLE_BLOCK","SINGLE_LINE","SINGLE_WORD","CIRCLE_WORD","SINGLE_CHAR","SPARSE_TEXT","SPARSE_TEXT_OSD","RAW_LINE","OEM","defaultOEM","langPath","workerBlobURL","logger","AFR","AMH","ARA","ASM","AZE","AZE_CYRL","BEL","BEN","BOD","BOS","BUL","CAT","CEB","CES","CHI_SIM","CHI_TRA","CHR","CYM","DAN","DEU","DZO","ELL","ENG","ENM","EPO","EST","EUS","FAS","FIN","FRA","FRK","FRM","GLE","GLG","GRC","GUJ","HAT","HEB","HIN","HRV","HUN","IKU","IND","ISL","ITA","ITA_OLD","JAV","JPN","KAN","KAT","KAT_OLD","KAZ","KHM","KIR","KOR","KUR","LAO","LAT","LAV","LIT","MAL","MAR","MKD","MLT","MSA","MYA","NEP","NLD","NOR","ORI","PAN","POL","POR","PUS","RON","RUS","SAN","SIN","SLK","SLV","SPA","SPA_OLD","SQI","SRP","SRP_LATN","SWA","SWE","SYR","TAM","TEL","TGK","TGL","THA","TIR","TUR","UIG","UKR","URD","UZB","UZB_CYRL","VIE","YID","getId","jobCounter","_id","id","action","_ref$payload","payload","_arrayLikeToArray","arr","len","arr2","Array","createJob","log","schedulerCounter","workers","runningWorkers","jobQueue","getNumWorkers","dequeue","wIds","queue","job","w","shift","t0","_this","concat","isArray","_arrayWithoutHoles","from","_iterableToArray","o","minLen","n","toString","test","_unsupportedIterableToArray","_nonIterableSpread","t1","t2","addJob","_ref2","_len","_key","_args2","_ref4","wid","addWorker","getQueueLen","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread","target","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","input","hint","prim","toPrimitive","res","String","_toPrimitive","_toPropertyKey","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","resolvePaths","circularize","_require3","defaultOptions","spawnWorker","terminateWorker","onMessage","loadImage","send","workerCounter","_options","_resolvePaths","errorHandler","resolves","rejects","workerResReject","workerResResolve","workerRes","workerError","setResolve","setReject","startJob","load","loadInternal","writeText","readText","removeFile","FS","setParameters","getPDF","resolveObj","_args4","_excluded","event","message","onerror","rej","jobId","workerId","console","warn","path","text","encoding","oem","config","params","opts","output","_args","blocks","hocr","tsv","t3","t4","t5","t6","t7","t8","title","textonly","_ref5","_ref6","status","data","d","userJobId","createScheduler","Tesseract","languages","PSM","setLogging","page","paragraphs","lines","words","block","paragraph","line","word","isElectron","env","WorkerGlobalScope","prefix","cnt","Math","random","logging","_logging","resolveURL","s","URL","location","href","version","workerPath","TESS_ENV","corePath","readFromBlobOrFile","blob","fileReader","FileReader","onload","code","readAsArrayBuffer","resp","atob","split","map","c","charCodeAt","fetch","arrayBuffer","HTMLElement","tagName","src","poster","toBlob","OffscreenCanvas","convertToBlob","File","Blob","Uint8Array","handler","onmessage","packet","postMessage","Worker","createObjectURL","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","nmd","paths","children"],"sourceRoot":""} \ No newline at end of file diff --git a/public/worker.min.js.map b/public/worker.min.js.map new file mode 100644 index 0000000000..68cdf5dfeb --- /dev/null +++ b/public/worker.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"worker.min.js","mappings":"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","sources":["webpack://tesseract.js/./node_modules/base64-js/index.js","webpack://tesseract.js/./node_modules/bmp-js/index.js","webpack://tesseract.js/./node_modules/bmp-js/lib/decoder.js","webpack://tesseract.js/./node_modules/bmp-js/lib/encoder.js","webpack://tesseract.js/./node_modules/buffer/index.js","webpack://tesseract.js/./node_modules/ieee754/index.js","webpack://tesseract.js/./node_modules/is-electron/index.js","webpack://tesseract.js/./node_modules/is-url/index.js","webpack://tesseract.js/./node_modules/regenerator-runtime/runtime.js","webpack://tesseract.js/./node_modules/wasm-feature-detect/dist/esm/index.js","webpack://tesseract.js/./node_modules/zlibjs/bin/node-zlib.js","webpack://tesseract.js/./src/constants/PSM.js","webpack://tesseract.js/./src/constants/imageType.js","webpack://tesseract.js/./src/utils/getEnvironment.js","webpack://tesseract.js/./src/utils/log.js","webpack://tesseract.js/./src/worker-script/browser/cache.js","webpack://tesseract.js/./src/worker-script/browser/getCore.js","webpack://tesseract.js/./src/worker-script/browser/gunzip.js","webpack://tesseract.js/./src/worker-script/constants/defaultOutput.js","webpack://tesseract.js/./src/worker-script/constants/defaultParams.js","webpack://tesseract.js/./src/worker-script/index.js","webpack://tesseract.js/./src/worker-script/utils/arrayBufferToBase64.js","webpack://tesseract.js/./src/worker-script/utils/dump.js","webpack://tesseract.js/./src/worker-script/utils/setImage.js","webpack://tesseract.js/./node_modules/idb-keyval/dist/index.js","webpack://tesseract.js/webpack/bootstrap","webpack://tesseract.js/webpack/runtime/define property getters","webpack://tesseract.js/webpack/runtime/global","webpack://tesseract.js/webpack/runtime/hasOwnProperty shorthand","webpack://tesseract.js/webpack/runtime/make namespace object","webpack://tesseract.js/webpack/runtime/node module decorator","webpack://tesseract.js/./src/worker-script/browser/index.js"],"sourcesContent":["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/**\n * @author shaozilee\n *\n * support 1bit 4bit 8bit 24bit decode\n * encode with 24bit\n * \n */\n\nvar encode = require('./lib/encoder'),\n decode = require('./lib/decoder');\n\nmodule.exports = {\n encode: encode,\n decode: decode\n};\n","/**\n * @author shaozilee\n *\n * Bmp format decoder,support 1bit 4bit 8bit 24bit bmp\n *\n */\n\nfunction BmpDecoder(buffer,is_with_alpha) {\n this.pos = 0;\n this.buffer = buffer;\n this.is_with_alpha = !!is_with_alpha;\n this.bottom_up = true;\n this.flag = this.buffer.toString(\"utf-8\", 0, this.pos += 2);\n if (this.flag != \"BM\") throw new Error(\"Invalid BMP File\");\n this.parseHeader();\n this.parseRGBA();\n}\n\nBmpDecoder.prototype.parseHeader = function() {\n this.fileSize = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.reserved = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.offset = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.headerSize = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.width = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.height = this.buffer.readInt32LE(this.pos);\n this.pos += 4;\n this.planes = this.buffer.readUInt16LE(this.pos);\n this.pos += 2;\n this.bitPP = this.buffer.readUInt16LE(this.pos);\n this.pos += 2;\n this.compress = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.rawSize = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.hr = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.vr = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.colors = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.importantColors = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n\n if(this.bitPP === 16 && this.is_with_alpha){\n this.bitPP = 15\n }\n if (this.bitPP < 15) {\n var len = this.colors === 0 ? 1 << this.bitPP : this.colors;\n this.palette = new Array(len);\n for (var i = 0; i < len; i++) {\n var blue = this.buffer.readUInt8(this.pos++);\n var green = this.buffer.readUInt8(this.pos++);\n var red = this.buffer.readUInt8(this.pos++);\n var quad = this.buffer.readUInt8(this.pos++);\n this.palette[i] = {\n red: red,\n green: green,\n blue: blue,\n quad: quad\n };\n }\n }\n if(this.height < 0) {\n this.height *= -1;\n this.bottom_up = false;\n }\n\n}\n\nBmpDecoder.prototype.parseRGBA = function() {\n var bitn = \"bit\" + this.bitPP;\n var len = this.width * this.height * 4;\n this.data = new Buffer(len);\n this[bitn]();\n};\n\nBmpDecoder.prototype.bit1 = function() {\n var xlen = Math.ceil(this.width / 8);\n var mode = xlen%4;\n var y = this.height >= 0 ? this.height - 1 : -this.height\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y\n for (var x = 0; x < xlen; x++) {\n var b = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x*8*4;\n for (var i = 0; i < 8; i++) {\n if(x*8+i>(7-i))&0x1)];\n\n this.data[location+i*4] = 0;\n this.data[location+i*4 + 1] = rgb.blue;\n this.data[location+i*4 + 2] = rgb.green;\n this.data[location+i*4 + 3] = rgb.red;\n\n }else{\n break;\n }\n }\n }\n\n if (mode != 0){\n this.pos+=(4 - mode);\n }\n }\n};\n\nBmpDecoder.prototype.bit4 = function() {\n //RLE-4\n if(this.compress == 2){\n this.data.fill(0xff);\n\n var location = 0;\n var lines = this.bottom_up?this.height-1:0;\n var low_nibble = false;//for all count of pixel\n\n while(location>4);\n }\n\n if ((i & 1) && (i+1 < b)){\n c = this.buffer.readUInt8(this.pos++);\n }\n\n low_nibble = !low_nibble;\n }\n\n if ((((b+1) >> 1) & 1 ) == 1){\n this.pos++\n }\n }\n\n }else{//encoded mode\n for (var i = 0; i < a; i++) {\n if (low_nibble) {\n setPixelData.call(this, (b & 0x0f));\n } else {\n setPixelData.call(this, (b & 0xf0)>>4);\n }\n low_nibble = !low_nibble;\n }\n }\n\n }\n\n\n\n\n function setPixelData(rgbIndex){\n var rgb = this.palette[rgbIndex];\n this.data[location] = 0;\n this.data[location + 1] = rgb.blue;\n this.data[location + 2] = rgb.green;\n this.data[location + 3] = rgb.red;\n location+=4;\n }\n }else{\n\n var xlen = Math.ceil(this.width/2);\n var mode = xlen%4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y\n for (var x = 0; x < xlen; x++) {\n var b = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x*2*4;\n\n var before = b>>4;\n var after = b&0x0F;\n\n var rgb = this.palette[before];\n this.data[location] = 0;\n this.data[location + 1] = rgb.blue;\n this.data[location + 2] = rgb.green;\n this.data[location + 3] = rgb.red;\n\n\n if(x*2+1>=this.width)break;\n\n rgb = this.palette[after];\n\n this.data[location+4] = 0;\n this.data[location+4 + 1] = rgb.blue;\n this.data[location+4 + 2] = rgb.green;\n this.data[location+4 + 3] = rgb.red;\n\n }\n\n if (mode != 0){\n this.pos+=(4 - mode);\n }\n }\n\n }\n\n};\n\nBmpDecoder.prototype.bit8 = function() {\n //RLE-8\n if(this.compress == 1){\n this.data.fill(0xff);\n\n var location = 0;\n var lines = this.bottom_up?this.height-1:0;\n\n while(location= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y\n for (var x = 0; x < this.width; x++) {\n var b = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x * 4;\n if (b < this.palette.length) {\n var rgb = this.palette[b];\n\n this.data[location] = 0;\n this.data[location + 1] = rgb.blue;\n this.data[location + 2] = rgb.green;\n this.data[location + 3] = rgb.red;\n\n } else {\n this.data[location] = 0;\n this.data[location + 1] = 0xFF;\n this.data[location + 2] = 0xFF;\n this.data[location + 3] = 0xFF;\n }\n }\n if (mode != 0) {\n this.pos += (4 - mode);\n }\n }\n }\n};\n\nBmpDecoder.prototype.bit15 = function() {\n var dif_w =this.width % 3;\n var _11111 = parseInt(\"11111\", 2),_1_5 = _11111;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y\n for (var x = 0; x < this.width; x++) {\n\n var B = this.buffer.readUInt16LE(this.pos);\n this.pos+=2;\n var blue = (B & _1_5) / _1_5 * 255 | 0;\n var green = (B >> 5 & _1_5 ) / _1_5 * 255 | 0;\n var red = (B >> 10 & _1_5) / _1_5 * 255 | 0;\n var alpha = (B>>15)?0xFF:0x00;\n\n var location = line * this.width * 4 + x * 4;\n\n this.data[location] = alpha;\n this.data[location + 1] = blue;\n this.data[location + 2] = green;\n this.data[location + 3] = red;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit16 = function() {\n var dif_w =(this.width % 2)*2;\n //default xrgb555\n this.maskRed = 0x7C00;\n this.maskGreen = 0x3E0;\n this.maskBlue =0x1F;\n this.mask0 = 0;\n\n if(this.compress == 3){\n this.maskRed = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n this.maskGreen = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n this.maskBlue = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n this.mask0 = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n }\n\n\n var ns=[0,0,0];\n for (var i=0;i<16;i++){\n if ((this.maskRed>>i)&0x01) ns[0]++;\n if ((this.maskGreen>>i)&0x01) ns[1]++;\n if ((this.maskBlue>>i)&0x01) ns[2]++;\n }\n ns[1]+=ns[0]; ns[2]+=ns[1];\tns[0]=8-ns[0]; ns[1]-=8; ns[2]-=8;\n\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n\n var B = this.buffer.readUInt16LE(this.pos);\n this.pos+=2;\n\n var blue = (B&this.maskBlue)<>ns[1];\n var red = (B&this.maskRed)>>ns[2];\n\n var location = line * this.width * 4 + x * 4;\n\n this.data[location] = 0;\n this.data[location + 1] = blue;\n this.data[location + 2] = green;\n this.data[location + 3] = red;\n }\n //skip extra bytes\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit24 = function() {\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y\n for (var x = 0; x < this.width; x++) {\n //Little Endian rgb\n var blue = this.buffer.readUInt8(this.pos++);\n var green = this.buffer.readUInt8(this.pos++);\n var red = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = 0;\n this.data[location + 1] = blue;\n this.data[location + 2] = green;\n this.data[location + 3] = red;\n }\n //skip extra bytes\n this.pos += (this.width % 4);\n }\n\n};\n\n/**\n * add 32bit decode func\n * @author soubok\n */\nBmpDecoder.prototype.bit32 = function() {\n //BI_BITFIELDS\n if(this.compress == 3){\n this.maskRed = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n this.maskGreen = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n this.maskBlue = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n this.mask0 = this.buffer.readUInt32LE(this.pos);\n this.pos+=4;\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n //Little Endian rgba\n var alpha = this.buffer.readUInt8(this.pos++);\n var blue = this.buffer.readUInt8(this.pos++);\n var green = this.buffer.readUInt8(this.pos++);\n var red = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = alpha;\n this.data[location + 1] = blue;\n this.data[location + 2] = green;\n this.data[location + 3] = red;\n }\n }\n\n }else{\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n for (var x = 0; x < this.width; x++) {\n //Little Endian argb\n var blue = this.buffer.readUInt8(this.pos++);\n var green = this.buffer.readUInt8(this.pos++);\n var red = this.buffer.readUInt8(this.pos++);\n var alpha = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = alpha;\n this.data[location + 1] = blue;\n this.data[location + 2] = green;\n this.data[location + 3] = red;\n }\n }\n\n }\n\n\n\n\n};\n\nBmpDecoder.prototype.getData = function() {\n return this.data;\n};\n\nmodule.exports = function(bmpData) {\n var decoder = new BmpDecoder(bmpData);\n return decoder;\n};\n","/**\n * @author shaozilee\n *\n * BMP format encoder,encode 24bit BMP\n * Not support quality compression\n *\n */\n\nfunction BmpEncoder(imgData){\n\tthis.buffer = imgData.data;\n\tthis.width = imgData.width;\n\tthis.height = imgData.height;\n\tthis.extraBytes = this.width%4;\n\tthis.rgbSize = this.height*(3*this.width+this.extraBytes);\n\tthis.headerInfoSize = 40;\n\n\tthis.data = [];\n\t/******************header***********************/\n\tthis.flag = \"BM\";\n\tthis.reserved = 0;\n\tthis.offset = 54;\n\tthis.fileSize = this.rgbSize+this.offset;\n\tthis.planes = 1;\n\tthis.bitPP = 24;\n\tthis.compress = 0;\n\tthis.hr = 0;\n\tthis.vr = 0;\n\tthis.colors = 0;\n\tthis.importantColors = 0;\n}\n\nBmpEncoder.prototype.encode = function() {\n\tvar tempBuffer = new Buffer(this.offset+this.rgbSize);\n\tthis.pos = 0;\n\ttempBuffer.write(this.flag,this.pos,2);this.pos+=2;\n\ttempBuffer.writeUInt32LE(this.fileSize,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.reserved,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.offset,this.pos);this.pos+=4;\n\n\ttempBuffer.writeUInt32LE(this.headerInfoSize,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.width,this.pos);this.pos+=4;\n\ttempBuffer.writeInt32LE(-this.height,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt16LE(this.planes,this.pos);this.pos+=2;\n\ttempBuffer.writeUInt16LE(this.bitPP,this.pos);this.pos+=2;\n\ttempBuffer.writeUInt32LE(this.compress,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.rgbSize,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.hr,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.vr,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.colors,this.pos);this.pos+=4;\n\ttempBuffer.writeUInt32LE(this.importantColors,this.pos);this.pos+=4;\n\n\tvar i=0;\n\tvar rowBytes = 3*this.width+this.extraBytes;\n\n\tfor (var y = 0; y 0){\n\t\t\tvar fillOffset = this.pos+y*rowBytes+this.width*3;\n\t\t\ttempBuffer.fill(0,fillOffset,fillOffset+this.extraBytes);\n\t\t}\n\t}\n\n\treturn tempBuffer;\n};\n\nmodule.exports = function(imgData, quality) {\n if (typeof quality === 'undefined') quality = 100;\n \tvar encoder = new BmpEncoder(imgData);\n\tvar data = encoder.encode();\n return {\n data: data,\n width: imgData.width,\n height: imgData.height\n };\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","// https://github.com/electron/electron/issues/2288\nfunction isElectron() {\n // Renderer process\n if (typeof window !== 'undefined' && typeof window.process === 'object' && window.process.type === 'renderer') {\n return true;\n }\n\n // Main process\n if (typeof process !== 'undefined' && typeof process.versions === 'object' && !!process.versions.electron) {\n return true;\n }\n\n // Detect the user agent when the `nodeIntegration` option is set to false\n if (typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = isElectron;\n","\n/**\n * Expose `isUrl`.\n */\n\nmodule.exports = isUrl;\n\n/**\n * RegExps.\n * A URL must match #1 and then at least one of #2/#3.\n * Use two levels of REs to avoid REDOS.\n */\n\nvar protocolAndDomainRE = /^(?:\\w+:)?\\/\\/(\\S+)$/;\n\nvar localhostDomainRE = /^localhost[\\:?\\d]*(?:[^\\:?\\d]\\S*)?$/\nvar nonLocalhostDomainRE = /^[^\\s\\.]+\\.\\S{2,}$/;\n\n/**\n * Loosely validate a URL `string`.\n *\n * @param {String} string\n * @return {Boolean}\n */\n\nfunction isUrl(string){\n if (typeof string !== 'string') {\n return false;\n }\n\n var match = string.match(protocolAndDomainRE);\n if (!match) {\n return false;\n }\n\n var everythingAfterProtocol = match[1];\n if (!everythingAfterProtocol) {\n return false;\n }\n\n if (localhostDomainRE.test(everythingAfterProtocol) ||\n nonLocalhostDomainRE.test(everythingAfterProtocol)) {\n return true;\n }\n\n return false;\n}\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export const bigInt=()=>(async e=>{try{return(await WebAssembly.instantiate(e)).instance.exports.b(BigInt(0))===BigInt(0)}catch(e){return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,1,126,1,126,3,2,1,0,7,5,1,1,98,0,0,10,6,1,4,0,32,0,11])),bulkMemory=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,3,1,0,1,10,14,1,12,0,65,0,65,0,65,0,252,10,0,0,11])),exceptions=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,6,64,25,11,11])),multiValue=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,6,1,96,0,2,127,127,3,2,1,0,10,8,1,6,0,65,0,65,0,11])),mutableGlobals=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,2,8,1,1,97,1,98,3,127,1,6,6,1,127,1,65,0,11,7,5,1,1,97,3,1])),referenceTypes=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,7,1,5,0,208,112,26,11])),saturatedFloatToInt=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,12,1,10,0,67,0,0,0,0,252,0,26,11])),signExtensions=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,8,1,6,0,65,0,192,26,11])),simd=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),tailCall=async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,6,1,4,0,18,0,11])),threads=()=>(async e=>{try{return\"undefined\"!=typeof MessageChannel&&(new MessageChannel).port1.postMessage(new SharedArrayBuffer(1)),WebAssembly.validate(e)}catch(e){return!1}})(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,5,4,1,3,1,1,10,11,1,9,0,65,0,254,16,2,0,26,11]));\n","/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */(function() {'use strict';function q(b){throw b;}var t=void 0,v=!0;var B=\"undefined\"!==typeof Uint8Array&&\"undefined\"!==typeof Uint16Array&&\"undefined\"!==typeof Uint32Array&&\"undefined\"!==typeof DataView;function G(b,a){this.index=\"number\"===typeof a?a:0;this.m=0;this.buffer=b instanceof(B?Uint8Array:Array)?b:new (B?Uint8Array:Array)(32768);2*this.buffer.length<=this.index&&q(Error(\"invalid index\"));this.buffer.length<=this.index&&this.f()}G.prototype.f=function(){var b=this.buffer,a,c=b.length,d=new (B?Uint8Array:Array)(c<<1);if(B)d.set(b);else for(a=0;a>>8&255]<<16|I[b>>>16&255]<<8|I[b>>>24&255])>>32-a:I[b]>>8-a);if(8>a+f)g=g<>a-k-1&1,8===++f&&(f=0,d[e++]=I[g],g=0,e===d.length&&(d=this.f()));d[e]=g;this.buffer=d;this.m=f;this.index=e};G.prototype.finish=function(){var b=this.buffer,a=this.index,c;0L;++L){for(var R=L,ba=R,ca=7,R=R>>>1;R;R>>>=1)ba<<=1,ba|=R&1,--ca;aa[L]=(ba<>>0}var I=aa;function ha(b,a,c){var d,e=\"number\"===typeof a?a:a=0,f=\"number\"===typeof c?c:b.length;d=-1;for(e=f&7;e--;++a)d=d>>>8^S[(d^b[a])&255];for(e=f>>3;e--;a+=8)d=d>>>8^S[(d^b[a])&255],d=d>>>8^S[(d^b[a+1])&255],d=d>>>8^S[(d^b[a+2])&255],d=d>>>8^S[(d^b[a+3])&255],d=d>>>8^S[(d^b[a+4])&255],d=d>>>8^S[(d^b[a+5])&255],d=d>>>8^S[(d^b[a+6])&255],d=d>>>8^S[(d^b[a+7])&255];return(d^4294967295)>>>0}\nvar ia=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,\n2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,\n2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,\n2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,\n3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,\n936918E3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117],S=B?new Uint32Array(ia):ia;function ja(){};function ka(b){this.buffer=new (B?Uint16Array:Array)(2*b);this.length=0}ka.prototype.getParent=function(b){return 2*((b-2)/4|0)};ka.prototype.push=function(b,a){var c,d,e=this.buffer,f;c=this.length;e[this.length++]=a;for(e[this.length++]=b;0e[d])f=e[c],e[c]=e[d],e[d]=f,f=e[c+1],e[c+1]=e[d+1],e[d+1]=f,c=d;else break;return this.length};\nka.prototype.pop=function(){var b,a,c=this.buffer,d,e,f;a=c[0];b=c[1];this.length-=2;c[0]=c[this.length];c[1]=c[this.length+1];for(f=0;;){e=2*f+2;if(e>=this.length)break;e+2c[e]&&(e+=2);if(c[e]>c[f])d=c[f],c[f]=c[e],c[e]=d,d=c[f+1],c[f+1]=c[e+1],c[e+1]=d;else break;f=e}return{index:b,value:a,length:this.length}};function T(b){var a=b.length,c=0,d=Number.POSITIVE_INFINITY,e,f,g,k,h,m,r,p,l,n;for(p=0;pc&&(c=b[p]),b[p]>=1;n=g<<16|p;for(l=m;lU;U++)switch(v){case 143>=U:qa.push([U+48,8]);break;case 255>=U:qa.push([U-144+400,9]);break;case 279>=U:qa.push([U-256+0,7]);break;case 287>=U:qa.push([U-280+192,8]);break;default:q(\"invalid literal: \"+U)}\nna.prototype.h=function(){var b,a,c,d,e=this.input;switch(this.k){case 0:c=0;for(d=e.length;c>>8&255;l[n++]=m&255;l[n++]=m>>>8&255;if(B)l.set(f,n),n+=f.length,l=l.subarray(0,n);else{r=0;for(p=f.length;rA)for(;0A?A:138,F>A-3&&F=F?(J[H++]=17,J[H++]=F-3,P[17]++):(J[H++]=18,J[H++]=F-11,P[18]++),A-=F;else if(J[H++]=K[y],P[K[y]]++,A--,3>A)for(;0A?A:6,F>A-3&&FE;E++)ta[E]=la[qb[E]];for(Y=19;4=a:return[265,a-11,1];case 14>=a:return[266,a-13,1];case 16>=a:return[267,a-15,1];case 18>=a:return[268,a-17,1];case 22>=a:return[269,a-19,2];case 26>=a:return[270,a-23,2];case 30>=a:return[271,a-27,2];case 34>=a:return[272,\na-31,2];case 42>=a:return[273,a-35,3];case 50>=a:return[274,a-43,3];case 58>=a:return[275,a-51,3];case 66>=a:return[276,a-59,3];case 82>=a:return[277,a-67,4];case 98>=a:return[278,a-83,4];case 114>=a:return[279,a-99,4];case 130>=a:return[280,a-115,4];case 162>=a:return[281,a-131,5];case 194>=a:return[282,a-163,5];case 226>=a:return[283,a-195,5];case 257>=a:return[284,a-227,5];case 258===a:return[285,a-258,0];default:q(\"invalid length: \"+a)}}var a=[],c,d;for(c=3;258>=c;c++)d=b(c),a[c]=d[2]<<24|d[1]<<\n16|d[0];return a}(),ya=B?new Uint32Array(xa):xa;\nfunction ra(b,a){function c(a,c){var b=a.N,d=[],f=0,e;e=ya[a.length];d[f++]=e&65535;d[f++]=e>>16&255;d[f++]=e>>24;var g;switch(v){case 1===b:g=[0,b-1,0];break;case 2===b:g=[1,b-2,0];break;case 3===b:g=[2,b-3,0];break;case 4===b:g=[3,b-4,0];break;case 6>=b:g=[4,b-5,1];break;case 8>=b:g=[5,b-7,1];break;case 12>=b:g=[6,b-9,2];break;case 16>=b:g=[7,b-13,2];break;case 24>=b:g=[8,b-17,3];break;case 32>=b:g=[9,b-25,3];break;case 48>=b:g=[10,b-33,4];break;case 64>=b:g=[11,b-49,4];break;case 96>=b:g=[12,b-\n65,5];break;case 128>=b:g=[13,b-97,5];break;case 192>=b:g=[14,b-129,6];break;case 256>=b:g=[15,b-193,6];break;case 384>=b:g=[16,b-257,7];break;case 512>=b:g=[17,b-385,7];break;case 768>=b:g=[18,b-513,8];break;case 1024>=b:g=[19,b-769,8];break;case 1536>=b:g=[20,b-1025,9];break;case 2048>=b:g=[21,b-1537,9];break;case 3072>=b:g=[22,b-2049,10];break;case 4096>=b:g=[23,b-3073,10];break;case 6144>=b:g=[24,b-4097,11];break;case 8192>=b:g=[25,b-6145,11];break;case 12288>=b:g=[26,b-8193,12];break;case 16384>=\nb:g=[27,b-12289,12];break;case 24576>=b:g=[28,b-16385,13];break;case 32768>=b:g=[29,b-24577,13];break;default:q(\"invalid distance\")}e=g;d[f++]=e[0];d[f++]=e[1];d[f++]=e[2];var h,k;h=0;for(k=d.length;h=f;)u[f++]=0;for(f=0;29>=f;)w[f++]=0}u[256]=1;d=0;for(e=a.length;d=e){p&&c(p,-1);f=0;for(g=e-d;fg&&a+gf&&(e=d,f=g);if(258===g)break}return new va(f,a-e)}\nfunction sa(b,a){var c=b.length,d=new ka(572),e=new (B?Uint8Array:Array)(c),f,g,k,h,m;if(!B)for(h=0;h2*e[n-1]+f[n]&&(e[n]=2*e[n-1]+f[n]),k[n]=Array(e[n]),h[n]=Array(e[n]);for(l=0;lb[l]?(k[n][s]=u,h[n][s]=a,w+=2):(k[n][s]=b[l],h[n][s]=l,++l);m[n]=0;1===f[n]&&d(n)}return g}\nfunction ua(b){var a=new (B?Uint16Array:Array)(b.length),c=[],d=[],e=0,f,g,k,h;f=0;for(g=b.length;f>>=1}return a};function Ba(b,a){this.input=b;this.b=this.c=0;this.g={};a&&(a.flags&&(this.g=a.flags),\"string\"===typeof a.filename&&(this.filename=a.filename),\"string\"===typeof a.comment&&(this.w=a.comment),a.deflateOptions&&(this.l=a.deflateOptions));this.l||(this.l={})}\nBa.prototype.h=function(){var b,a,c,d,e,f,g,k,h=new (B?Uint8Array:Array)(32768),m=0,r=this.input,p=this.c,l=this.filename,n=this.w;h[m++]=31;h[m++]=139;h[m++]=8;b=0;this.g.fname&&(b|=Ca);this.g.fcomment&&(b|=Da);this.g.fhcrc&&(b|=Ea);h[m++]=b;a=(Date.now?Date.now():+new Date)/1E3|0;h[m++]=a&255;h[m++]=a>>>8&255;h[m++]=a>>>16&255;h[m++]=a>>>24&255;h[m++]=0;h[m++]=Sa;if(this.g.fname!==t){g=0;for(k=l.length;g>>8&255),h[m++]=f&255;h[m++]=0}if(this.g.comment){g=\n0;for(k=n.length;g>>8&255),h[m++]=f&255;h[m++]=0}this.g.fhcrc&&(c=ha(h,0,m)&65535,h[m++]=c&255,h[m++]=c>>>8&255);this.l.outputBuffer=h;this.l.outputIndex=m;e=new na(r,this.l);h=e.h();m=e.b;B&&(m+8>h.buffer.byteLength?(this.a=new Uint8Array(m+8),this.a.set(new Uint8Array(h.buffer)),h=this.a):h=new Uint8Array(h.buffer));d=ha(r,t,t);h[m++]=d&255;h[m++]=d>>>8&255;h[m++]=d>>>16&255;h[m++]=d>>>24&255;k=r.length;h[m++]=k&255;h[m++]=k>>>8&255;h[m++]=k>>>16&255;h[m++]=\nk>>>24&255;this.c=p;B&&m>>=1;switch(b){case 0:var a=this.input,c=this.c,d=this.a,e=this.b,f=a.length,g=t,k=t,h=d.length,m=t;this.e=this.j=0;c+1>=f&&q(Error(\"invalid uncompressed block header: LEN\"));g=a[c++]|a[c++]<<8;c+1>=f&&q(Error(\"invalid uncompressed block header: NLEN\"));k=a[c++]|a[c++]<<8;g===~k&&q(Error(\"invalid uncompressed block header: length verify\"));c+g>a.length&&q(Error(\"input buffer is broken\"));switch(this.q){case Ua:for(;e+g>d.length;){m=\nh-e;g-=m;if(B)d.set(a.subarray(c,c+m),e),e+=m,c+=m;else for(;m--;)d[e++]=a[c++];this.b=e;d=this.f();e=this.b}break;case Ta:for(;e+g>d.length;)d=this.f({B:2});break;default:q(Error(\"invalid inflate mode\"))}if(B)d.set(a.subarray(c,c+g),e),e+=g,c+=g;else for(;g--;)d[e++]=a[c++];this.c=c;this.b=e;this.a=d;break;case 1:this.r(Va,Wa);break;case 2:for(var r=W(this,5)+257,p=W(this,5)+1,l=W(this,4)+4,n=new (B?Uint8Array:Array)(Xa.length),s=t,u=t,w=t,C=t,x=t,D=t,M=t,z=t,N=t,z=0;z=$?8:255>=$?9:279>=$?7:8;var Va=T(hb),jb=new (B?Uint8Array:Array)(30),kb,lb;kb=0;for(lb=jb.length;kb=g&&q(Error(\"input buffer is broken\")),c|=e[f++]<>>a;b.e=d-a;b.c=f;return k}\nfunction Ya(b,a){for(var c=b.j,d=b.e,e=b.input,f=b.c,g=e.length,k=a[0],h=a[1],m,r;d=g);)c|=e[f++]<>>16;r>d&&q(Error(\"invalid code length: \"+r));b.j=c>>r;b.e=d-r;b.c=f;return m&65535}\nV.prototype.r=function(b,a){var c=this.a,d=this.b;this.A=b;for(var e=c.length-258,f,g,k,h;256!==(f=Ya(this,b));)if(256>f)d>=e&&(this.b=d,c=this.f(),d=this.b),c[d++]=f;else{g=f-257;h=ab[g];0=e&&(this.b=d,c=this.f(),d=this.b);for(;h--;)c[d]=c[d++-k]}for(;8<=this.e;)this.e-=8,this.c--;this.b=d};\nV.prototype.Q=function(b,a){var c=this.a,d=this.b;this.A=b;for(var e=c.length,f,g,k,h;256!==(f=Ya(this,b));)if(256>f)d>=e&&(c=this.f(),e=c.length),c[d++]=f;else{g=f-257;h=ab[g];0e&&(c=this.f(),e=c.length);for(;h--;)c[d]=c[d++-k]}for(;8<=this.e;)this.e-=8,this.c--;this.b=d};\nV.prototype.f=function(){var b=new (B?Uint8Array:Array)(this.b-32768),a=this.b-32768,c,d,e=this.a;if(B)b.set(e.subarray(32768,b.length));else{c=0;for(d=b.length;cc;++c)e[c]=e[a+c];this.b=32768;return e};\nV.prototype.S=function(b){var a,c=this.input.length/this.c+1|0,d,e,f,g=this.input,k=this.a;b&&(\"number\"===typeof b.B&&(c=b.B),\"number\"===typeof b.M&&(c+=b.M));2>c?(d=(g.length-this.c)/this.A[2],f=258*(d/2)|0,e=fa&&(this.a.length=a),b=this.a);return this.buffer=b};function mb(b){this.input=b;this.c=0;this.G=[];this.R=!1}\nmb.prototype.i=function(){for(var b=this.input.length;this.c>>0;ha(e,t,t)!==r&&q(Error(\"invalid CRC-32 checksum: 0x\"+ha(e,t,t).toString(16)+\" / 0x\"+\nr.toString(16)));a.Z=c=(p[l++]|p[l++]<<8|p[l++]<<16|p[l++]<<24)>>>0;(e.length&4294967295)!==c&&q(Error(\"invalid input size: \"+(e.length&4294967295)+\" / \"+c));this.G.push(a);this.c=l}this.R=v;var n=this.G,s,u,w=0,C=0,x;s=0;for(u=n.length;s>>0;b=a}for(var e=1,f=0,g=b.length,k,h=0;0>>0};function ob(b,a){var c,d;this.input=b;this.c=0;if(a||!(a={}))a.index&&(this.c=a.index),a.verify&&(this.V=a.verify);c=b[this.c++];d=b[this.c++];switch(c&15){case pb:this.method=pb;break;default:q(Error(\"unsupported compression method\"))}0!==((c<<8)+d)%31&&q(Error(\"invalid fcheck flag:\"+((c<<8)+d)%31));d&32&&q(Error(\"fdict flag is not supported\"));this.J=new V(b,{index:this.c,bufferSize:a.bufferSize,bufferType:a.bufferType,resize:a.resize})}\nob.prototype.i=function(){var b=this.input,a,c;a=this.J.i();this.c=this.J.c;this.V&&(c=(b[this.c++]<<24|b[this.c++]<<16|b[this.c++]<<8|b[this.c++])>>>0,c!==nb(a)&&q(Error(\"invalid adler-32 checksum\")));return a};var pb=8;function rb(b,a){this.input=b;this.a=new (B?Uint8Array:Array)(32768);this.k=sb.t;var c={},d;if((a||!(a={}))&&\"number\"===typeof a.compressionType)this.k=a.compressionType;for(d in a)c[d]=a[d];c.outputBuffer=this.a;this.I=new na(this.input,c)}var sb=pa;\nrb.prototype.h=function(){var b,a,c,d,e,f,g,k=0;g=this.a;b=pb;switch(b){case pb:a=Math.LOG2E*Math.log(32768)-8;break;default:q(Error(\"invalid compression method\"))}c=a<<4|b;g[k++]=c;switch(b){case pb:switch(this.k){case sb.NONE:e=0;break;case sb.L:e=1;break;case sb.t:e=2;break;default:q(Error(\"unsupported compression type\"))}break;default:q(Error(\"invalid compression method\"))}d=e<<6|0;g[k++]=d|31-(256*c+d)%31;f=nb(this.input);this.I.b=k;g=this.I.h();k=g.length;B&&(g=new Uint8Array(g.buffer),g.length<=\nk+4&&(this.a=new Uint8Array(g.length+4),this.a.set(g),g=this.a),g=g.subarray(0,k+4));g[k++]=f>>24&255;g[k++]=f>>16&255;g[k++]=f>>8&255;g[k++]=f&255;return g};exports.deflate=tb;exports.deflateSync=ub;exports.inflate=vb;exports.inflateSync=wb;exports.gzip=xb;exports.gzipSync=yb;exports.gunzip=zb;exports.gunzipSync=Ab;function tb(b,a,c){process.nextTick(function(){var d,e;try{e=ub(b,c)}catch(f){d=f}a(d,e)})}function ub(b,a){var c;c=(new rb(b)).h();a||(a={});return a.H?c:Bb(c)}function vb(b,a,c){process.nextTick(function(){var d,e;try{e=wb(b,c)}catch(f){d=f}a(d,e)})}\nfunction wb(b,a){var c;b.subarray=b.slice;c=(new ob(b)).i();a||(a={});return a.noBuffer?c:Bb(c)}function xb(b,a,c){process.nextTick(function(){var d,e;try{e=yb(b,c)}catch(f){d=f}a(d,e)})}function yb(b,a){var c;b.subarray=b.slice;c=(new Ba(b)).h();a||(a={});return a.H?c:Bb(c)}function zb(b,a,c){process.nextTick(function(){var d,e;try{e=Ab(b,c)}catch(f){d=f}a(d,e)})}function Ab(b,a){var c;b.subarray=b.slice;c=(new mb(b)).i();a||(a={});return a.H?c:Bb(c)}\nfunction Bb(b){var a=new Buffer(b.length),c,d;c=0;for(d=b.length;c {\n const env = {};\n\n if (typeof WorkerGlobalScope !== 'undefined') {\n env.type = 'webworker';\n } else if (isElectron()) {\n env.type = 'electron';\n } else if (typeof window === 'object') {\n env.type = 'browser';\n } else if (typeof process === 'object' && typeof require === 'function') {\n env.type = 'node';\n }\n\n if (typeof key === 'undefined') {\n return env;\n }\n\n return env[key];\n};\n","let logging = false;\n\nexports.logging = logging;\n\nexports.setLogging = (_logging) => {\n logging = _logging;\n};\n\nexports.log = (...args) => (logging ? console.log.apply(this, args) : null);\n","const { set, get, del } = require('idb-keyval');\n\nmodule.exports = {\n readCache: get,\n writeCache: set,\n deleteCache: del,\n checkCache: (path) => (\n get(path).then((v) => typeof v !== 'undefined')\n ),\n};\n","const { simd } = require('wasm-feature-detect');\nconst { dependencies } = require('../../../package.json');\n\nmodule.exports = async (corePath, res) => {\n if (typeof global.TesseractCore === 'undefined') {\n res.progress({ status: 'loading tesseract core', progress: 0 });\n\n // If the user specifies a core path, we use that\n // Otherwise, default to CDN\n const corePathImport = corePath || `https://cdn.jsdelivr.net/npm/tesseract.js-core@v${dependencies['tesseract.js-core'].substring(1)}`;\n\n // If a user specifies a specific JavaScript file, load that file.\n // Otherwise, assume a directory has been provided, and load either\n // tesseract-core.wasm.js or tesseract-core-simd.wasm.js depending\n // on whether this device has SIMD support.\n let corePathImportFile;\n if (corePathImport.slice(-2) === 'js') {\n corePathImportFile = corePathImport;\n } else {\n const simdSupport = await simd();\n if (simdSupport) {\n corePathImportFile = `${corePathImport.replace(/\\/$/, '')}/tesseract-core-simd.wasm.js`;\n } else {\n corePathImportFile = `${corePathImport.replace(/\\/$/, '')}/tesseract-core.wasm.js`;\n }\n }\n\n // Create a module named `global.TesseractCore`\n global.importScripts(corePathImportFile);\n\n // Tesseract.js-core versions through 4.0.3 create a module named `global.TesseractCoreWASM`,\n // so we account for that here to preserve backwards compatibility.\n // This part can be removed when Tesseract.js-core v4.0.3 becomes incompatible for other reasons\n if (typeof global.TesseractCore === 'undefined' && typeof global.TesseractCoreWASM !== 'undefined' && typeof WebAssembly === 'object') {\n global.TesseractCore = global.TesseractCoreWASM;\n } else if (typeof global.TesseractCore === 'undefined') {\n throw Error('Failed to load TesseractCore');\n }\n res.progress({ status: 'loading tesseract core', progress: 1 });\n }\n return global.TesseractCore;\n};\n","module.exports = require('zlibjs').gunzipSync;\n","/*\n * default output formats for tesseract.js\n */\n\nmodule.exports = {\n text: true,\n blocks: true,\n layoutBlocks: false,\n hocr: true,\n tsv: true,\n box: false,\n unlv: false,\n osd: false,\n pdf: false,\n imageColor: false,\n imageGrey: false,\n imageBinary: false,\n debug: false,\n};\n","/*\n * default params for tesseract.js\n */\nconst PSM = require('../../constants/PSM');\n\nmodule.exports = {\n tessedit_pageseg_mode: PSM.SINGLE_BLOCK,\n tessedit_char_whitelist: '',\n tessjs_create_hocr: '1',\n tessjs_create_tsv: '1',\n tessjs_create_box: '0',\n tessjs_create_unlv: '0',\n tessjs_create_osd: '0',\n};\n","/**\n *\n * Worker script for browser and node\n *\n * @fileoverview Worker script for browser and node\n * @author Kevin Kwok \n * @author Guillermo Webster \n * @author Jerome Wu \n */\nrequire('regenerator-runtime/runtime');\nconst isURL = require('is-url');\nconst dump = require('./utils/dump');\nconst env = require('../utils/getEnvironment')('type');\nconst setImage = require('./utils/setImage');\nconst defaultParams = require('./constants/defaultParams');\nconst defaultOutput = require('./constants/defaultOutput');\nconst { log, setLogging } = require('../utils/log');\nconst PSM = require('../constants/PSM');\n\n/*\n * Tesseract Module returned by TesseractCore.\n */\nlet TessModule;\n/*\n * TessearctBaseAPI instance\n */\nlet api = null;\nlet latestJob;\nlet adapter = {};\nlet params = defaultParams;\nlet cachePathWorker;\nlet cacheMethodWorker;\n\nconst load = async ({ workerId, jobId, payload: { options: { corePath, logging } } }, res) => {\n setLogging(logging);\n if (!TessModule) {\n const Core = await adapter.getCore(corePath, res);\n\n res.progress({ workerId, status: 'initializing tesseract', progress: 0 });\n\n Core({\n TesseractProgress(percent) {\n latestJob.progress({\n workerId,\n jobId,\n status: 'recognizing text',\n progress: Math.max(0, (percent - 30) / 70),\n });\n },\n }).then((tessModule) => {\n TessModule = tessModule;\n res.progress({ workerId, status: 'initialized tesseract', progress: 1 });\n res.resolve({ loaded: true });\n });\n } else {\n res.resolve({ loaded: true });\n }\n};\n\nconst FS = async ({ workerId, payload: { method, args } }, res) => {\n log(`[${workerId}]: FS.${method}`);\n res.resolve(TessModule.FS[method](...args));\n};\n\nconst loadLanguage = async ({\n workerId,\n payload: {\n langs,\n options: {\n langPath,\n dataPath,\n cachePath,\n cacheMethod,\n gzip = true,\n },\n },\n},\nres) => {\n // Remember cache options for later, as cache may be deleted if `initialize` fails\n cachePathWorker = cachePath;\n cacheMethodWorker = cacheMethod;\n\n const loadAndGunzipFile = async (_lang) => {\n const lang = typeof _lang === 'string' ? _lang : _lang.code;\n const readCache = ['refresh', 'none'].includes(cacheMethod)\n ? () => Promise.resolve()\n : adapter.readCache;\n let data = null;\n let newData = false;\n\n // Check for existing .traineddata file in cache\n // This automatically fails if cacheMethod is set to 'refresh' or 'none'\n try {\n const _data = await readCache(`${cachePath || '.'}/${lang}.traineddata`);\n if (typeof _data !== 'undefined') {\n log(`[${workerId}]: Load ${lang}.traineddata from cache`);\n res.progress({ workerId, status: 'loading language traineddata (from cache)', progress: 0.5 });\n data = _data;\n } else {\n throw Error('Not found in cache');\n }\n // Attempt to fetch new .traineddata file\n } catch (e) {\n newData = true;\n log(`[${workerId}]: Load ${lang}.traineddata from ${langPath}`);\n if (typeof _lang === 'string') {\n let path = null;\n\n // For Node.js, langPath may be a URL or local file path\n // The is-url package is used to tell the difference\n // For the browser version, langPath is assumed to be a URL\n if (env !== 'node' || isURL(langPath) || langPath.startsWith('moz-extension://') || langPath.startsWith('chrome-extension://') || langPath.startsWith('file://')) { /** When langPath is an URL */\n path = langPath.replace(/\\/$/, '');\n }\n\n // langPath is a URL, fetch from server\n if (path !== null) {\n const fetchUrl = `${path}/${lang}.traineddata${gzip ? '.gz' : ''}`;\n const resp = await (env === 'webworker' ? fetch : adapter.fetch)(fetchUrl);\n if (!resp.ok) {\n throw Error(`Network error while fetching ${fetchUrl}. Response code: ${resp.status}`);\n }\n data = new Uint8Array(await resp.arrayBuffer());\n\n // langPath is a local file, read .traineddata from local filesystem\n // (adapter.readCache is a generic file read function in Node.js version)\n } else {\n data = await adapter.readCache(`${langPath}/${lang}.traineddata${gzip ? '.gz' : ''}`);\n }\n } else {\n data = _lang.data; // eslint-disable-line\n }\n }\n\n // Check for gzip magic numbers (1F and 8B in hex)\n const isGzip = (data[0] === 31 && data[1] === 139) || (data[1] === 31 && data[0] === 139);\n\n if (isGzip) {\n data = adapter.gunzip(data);\n }\n\n if (TessModule) {\n if (dataPath) {\n try {\n TessModule.FS.mkdir(dataPath);\n } catch (err) {\n res.reject(err.toString());\n }\n }\n TessModule.FS.writeFile(`${dataPath || '.'}/${lang}.traineddata`, data);\n }\n\n if (newData && ['write', 'refresh', undefined].includes(cacheMethod)) {\n try {\n await adapter.writeCache(`${cachePath || '.'}/${lang}.traineddata`, data);\n } catch (err) {\n log(`[${workerId}]: Failed to write ${lang}.traineddata to cache due to error:`);\n log(err.toString());\n }\n }\n return Promise.resolve();\n };\n\n res.progress({ workerId, status: 'loading language traineddata', progress: 0 });\n try {\n await Promise.all((typeof langs === 'string' ? langs.split('+') : langs).map(loadAndGunzipFile));\n res.progress({ workerId, status: 'loaded language traineddata', progress: 1 });\n res.resolve(langs);\n } catch (err) {\n res.reject(err.toString());\n }\n};\n\nconst setParameters = async ({ payload: { params: _params } }, res) => {\n // A small number of parameters can only be set at initialization.\n // These can only be set using (1) the `oem` argument of `initialize` (for setting the oem)\n // or (2) the `config` argument of `initialize` (for all other settings).\n // Attempting to set these using this function will have no impact so a warning is printed.\n // This list is generated by searching the Tesseract codebase for parameters\n // defined with `[type]_INIT_MEMBER` rather than `[type]_MEMBER`.\n const initParamNames = ['ambigs_debug_level', 'user_words_suffix', 'user_patterns_suffix', 'user_patterns_suffix',\n 'load_system_dawg', 'load_freq_dawg', 'load_unambig_dawg', 'load_punc_dawg', 'load_number_dawg', 'load_bigram_dawg',\n 'tessedit_ocr_engine_mode', 'tessedit_init_config_only', 'language_model_ngram_on', 'language_model_use_sigmoidal_certainty'];\n\n const initParamStr = Object.keys(_params)\n .filter((k) => initParamNames.includes(k))\n .join(', ');\n\n if (initParamStr.length > 0) console.log(`Attempted to set parameters that can only be set during initialization: ${initParamStr}`);\n\n Object.keys(_params)\n .filter((k) => !k.startsWith('tessjs_'))\n .forEach((key) => {\n api.SetVariable(key, _params[key]);\n });\n params = { ...params, ..._params };\n\n if (typeof res !== 'undefined') {\n res.resolve(params);\n }\n};\n\nconst initialize = async ({\n workerId,\n payload: { langs: _langs, oem, config },\n}, res) => {\n const langs = (typeof _langs === 'string')\n ? _langs\n : _langs.map((l) => ((typeof l === 'string') ? l : l.data)).join('+');\n\n try {\n res.progress({\n workerId, status: 'initializing api', progress: 0,\n });\n if (api !== null) {\n api.End();\n }\n let configFile;\n let configStr;\n // config argument may either be config file text, or object with key/value pairs\n // In the latter case we convert to config file text here\n if (typeof config === 'object') {\n configStr = JSON.stringify(config).replace(/,/g, '\\n').replace(/:/g, ' ').replace(/[\"'{}]/g, '');\n } else {\n configStr = config;\n }\n if (typeof configStr === 'string') {\n configFile = '/config';\n TessModule.FS.writeFile(configFile, configStr);\n }\n\n api = new TessModule.TessBaseAPI();\n const status = api.Init(null, langs, oem);\n if (status === -1) {\n // Cache is deleted if initialization fails to avoid keeping bad data in cache\n // This assumes that initialization failing only occurs due to bad .traineddata,\n // this should be refined if other reasons for init failing are encountered.\n if (['write', 'refresh', undefined].includes(cacheMethodWorker)) {\n const langsArr = langs.split('+');\n const delCachePromise = langsArr.map((lang) => adapter.deleteCache(`${cachePathWorker || '.'}/${lang}.traineddata`));\n await Promise.all(delCachePromise);\n }\n res.reject('initialization failed');\n }\n params = defaultParams;\n await setParameters({ payload: { params } });\n res.progress({\n workerId, status: 'initialized api', progress: 1,\n });\n res.resolve();\n } catch (err) {\n res.reject(err.toString());\n }\n};\n\nconst getPDFInternal = (title, textonly) => {\n const pdfRenderer = new TessModule.TessPDFRenderer('tesseract-ocr', '/', textonly);\n pdfRenderer.BeginDocument(title);\n pdfRenderer.AddImage(api);\n pdfRenderer.EndDocument();\n TessModule._free(pdfRenderer);\n\n return TessModule.FS.readFile('/tesseract-ocr.pdf');\n};\n\nconst getPDF = async ({ payload: { title, textonly } }, res) => {\n res.resolve(getPDFInternal(title, textonly));\n};\n\n// Combines default output with user-specified options and\n// counts (1) total output formats requested and (2) outputs that require OCR\nconst processOutput = (output) => {\n const workingOutput = JSON.parse(JSON.stringify(defaultOutput));\n // Output formats were set using `setParameters` in previous versions\n // These settings are copied over for compatability\n if (params.tessjs_create_box === '1') workingOutput.box = true;\n if (params.tessjs_create_hocr === '1') workingOutput.hocr = true;\n if (params.tessjs_create_osd === '1') workingOutput.osd = true;\n if (params.tessjs_create_tsv === '1') workingOutput.tsv = true;\n if (params.tessjs_create_unlv === '1') workingOutput.unlv = true;\n\n const nonRecOutputs = ['imageColor', 'imageGrey', 'imageBinary', 'layoutBlocks', 'debug'];\n let recOutputCount = 0;\n for (const prop of Object.keys(output)) {\n workingOutput[prop] = output[prop];\n }\n for (const prop of Object.keys(workingOutput)) {\n if (workingOutput[prop]) {\n if (!nonRecOutputs.includes(prop)) {\n recOutputCount += 1;\n }\n }\n }\n const skipRecognition = recOutputCount === 0;\n return { workingOutput, skipRecognition };\n};\n\n// List of options for Tesseract.js (rather than passed through to Tesseract),\n// not including those with prefix \"tessjs_\"\nconst tessjsOptions = ['rectangle', 'pdfTitle', 'pdfTextOnly', 'rotateAuto', 'rotateRadians'];\n\nconst recognize = async ({\n payload: {\n image, options, output,\n },\n}, res) => {\n try {\n const optionsTess = {};\n if (typeof options === 'object' && Object.keys(options).length > 0) {\n // The options provided by users contain a mix of options for Tesseract.js\n // and parameters passed through to Tesseract.\n for (const param of Object.keys(options)) {\n if (!param.startsWith('tessjs_') && !tessjsOptions.includes(param)) {\n optionsTess[param] = options[param];\n }\n }\n }\n if (output.debug) {\n optionsTess.debug_file = '/debugInternal.txt';\n TessModule.FS.writeFile('/debugInternal.txt', '');\n }\n // If any parameters are changed here they are changed back at the end\n if (Object.keys(optionsTess).length > 0) {\n api.SaveParameters();\n for (const prop of Object.keys(optionsTess)) {\n api.SetVariable(prop, optionsTess[prop]);\n }\n }\n\n const { workingOutput, skipRecognition } = processOutput(output);\n\n // When the auto-rotate option is True, setImage is called with no angle,\n // then the angle is calculated by Tesseract and then setImage is re-called.\n // Otherwise, setImage is called once using the user-provided rotateRadiansFinal value.\n let rotateRadiansFinal;\n if (options.rotateAuto) {\n // The angle is only detected if auto page segmentation is used\n // Therefore, if this is not the mode specified by the user, it is enabled temporarily here\n const psmInit = api.GetPageSegMode();\n let psmEdit = false;\n if (![PSM.AUTO, PSM.AUTO_ONLY, PSM.OSD].includes(psmInit)) {\n psmEdit = true;\n api.SetVariable('tessedit_pageseg_mode', String(PSM.AUTO));\n }\n\n setImage(TessModule, api, image);\n api.FindLines();\n\n // The function GetAngle will be replaced with GetGradient in 4.0.4,\n // but for now we want to maintain compatibility.\n // We can switch to only using GetGradient in v5.\n const rotateRadiansCalc = api.GetGradient ? api.GetGradient() : api.GetAngle();\n\n // Restore user-provided PSM setting\n if (psmEdit) {\n api.SetVariable('tessedit_pageseg_mode', String(psmInit));\n }\n\n // Small angles (<0.005 radians/~0.3 degrees) are ignored to save on runtime\n if (Math.abs(rotateRadiansCalc) >= 0.005) {\n rotateRadiansFinal = rotateRadiansCalc;\n setImage(TessModule, api, image, rotateRadiansFinal);\n } else {\n // Image needs to be reset if run with different PSM setting earlier\n if (psmEdit) {\n setImage(TessModule, api, image);\n }\n rotateRadiansFinal = 0;\n }\n } else {\n rotateRadiansFinal = options.rotateRadians || 0;\n setImage(TessModule, api, image, rotateRadiansFinal);\n }\n\n const rec = options.rectangle;\n if (typeof rec === 'object') {\n api.SetRectangle(rec.left, rec.top, rec.width, rec.height);\n }\n\n if (!skipRecognition) {\n api.Recognize(null);\n } else {\n if (output.layoutBlocks) {\n api.AnalyseLayout();\n }\n log('Skipping recognition: all output options requiring recognition are disabled.');\n }\n const { pdfTitle } = options;\n const { pdfTextOnly } = options;\n const result = dump(TessModule, api, workingOutput, { pdfTitle, pdfTextOnly, skipRecognition });\n result.rotateRadians = rotateRadiansFinal;\n\n if (output.debug) TessModule.FS.unlink('/debugInternal.txt');\n\n if (Object.keys(optionsTess).length > 0) {\n api.RestoreParameters();\n }\n\n res.resolve(result);\n } catch (err) {\n res.reject(err.toString());\n }\n};\n\nconst detect = async ({ payload: { image } }, res) => {\n try {\n setImage(TessModule, api, image);\n const results = new TessModule.OSResults();\n\n if (!api.DetectOS(results)) {\n res.resolve({\n tesseract_script_id: null,\n script: null,\n script_confidence: null,\n orientation_degrees: null,\n orientation_confidence: null,\n });\n } else {\n const best = results.best_result;\n const oid = best.orientation_id;\n const sid = best.script_id;\n\n res.resolve({\n tesseract_script_id: sid,\n script: results.unicharset.get_script_from_script_id(sid),\n script_confidence: best.sconfidence,\n orientation_degrees: [0, 270, 180, 90][oid],\n orientation_confidence: best.oconfidence,\n });\n }\n } catch (err) {\n res.reject(err.toString());\n }\n};\n\nconst terminate = async (_, res) => {\n try {\n if (api !== null) {\n api.End();\n }\n res.resolve({ terminated: true });\n } catch (err) {\n res.reject(err.toString());\n }\n};\n\n/**\n * dispatchHandlers\n *\n * @name dispatchHandlers\n * @function worker data handler\n * @access public\n * @param {object} data\n * @param {string} data.jobId - unique job id\n * @param {string} data.action - action of the job, only recognize and detect for now\n * @param {object} data.payload - data for the job\n * @param {function} send - trigger job to work\n */\nexports.dispatchHandlers = (packet, send) => {\n const res = (status, data) => {\n // Return only the necessary info to avoid sending unnecessarily large messages\n const packetRes = {\n jobId: packet.jobId,\n workerId: packet.workerId,\n action: packet.action,\n };\n send({\n ...packetRes,\n status,\n data,\n });\n };\n res.resolve = res.bind(this, 'resolve');\n res.reject = res.bind(this, 'reject');\n res.progress = res.bind(this, 'progress');\n\n latestJob = res;\n\n ({\n load,\n FS,\n loadLanguage,\n initialize,\n setParameters,\n recognize,\n getPDF,\n detect,\n terminate,\n })[packet.action](packet, res)\n .catch((err) => res.reject(err.toString()));\n};\n\n/**\n * setAdapter\n *\n * @name setAdapter\n * @function\n * @access public\n * @param {object} adapter - implementation of the worker, different in browser and node environment\n */\nexports.setAdapter = (_adapter) => {\n adapter = _adapter;\n};\n","// Copied from https://gist.github.com/jonleighton/958841\n// Copyright 2011 Jon Leighton, MIT LICENSE\n\n/* eslint no-bitwise: 0 */\nmodule.exports = (arrayBuffer) => {\n let base64 = '';\n const encodings = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n const bytes = new Uint8Array(arrayBuffer);\n const { byteLength } = bytes;\n const byteRemainder = byteLength % 3;\n const mainLength = byteLength - byteRemainder;\n\n let a; let b; let c; let\n d;\n let chunk;\n\n // Main loop deals with bytes in chunks of 3\n for (let i = 0; i < mainLength; i += 3) {\n // Combine the three bytes into a single integer\n chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2];\n\n // Use bitmasks to extract 6-bit segments from the triplet\n a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18\n b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12\n c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6\n d = chunk & 63; // 63 = 2^6 - 1\n\n // Convert the raw binary segments to the appropriate ASCII encoding\n base64 += encodings[a] + encodings[b] + encodings[c] + encodings[d];\n }\n\n // Deal with the remaining bytes and padding\n if (byteRemainder === 1) {\n chunk = bytes[mainLength];\n\n a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2\n\n // Set the 4 least significant bits to zero\n b = (chunk & 3) << 4; // 3 = 2^2 - 1\n\n base64 += `${encodings[a] + encodings[b]}==`;\n } else if (byteRemainder === 2) {\n chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1];\n\n a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10\n b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4\n\n // Set the 2 least significant bits to zero\n c = (chunk & 15) << 2; // 15 = 2^4 - 1\n\n base64 += `${encodings[a] + encodings[b] + encodings[c]}=`;\n }\n\n return base64;\n};\n","/**\n *\n * Dump data to a big JSON tree\n *\n * @fileoverview dump data to JSON tree\n * @author Kevin Kwok \n * @author Guillermo Webster \n * @author Jerome Wu \n */\nconst arrayBufferToBase64 = require('./arrayBufferToBase64');\nconst imageType = require('../../constants/imageType');\n\n/**\n * deindent\n *\n * The generated HOCR is excessively indented, so\n * we get rid of that indentation\n *\n * @name deindent\n * @function deindent string\n * @access public\n */\nconst deindent = (html) => {\n const lines = html.split('\\n');\n if (lines[0].substring(0, 2) === ' ') {\n for (let i = 0; i < lines.length; i += 1) {\n if (lines[i].substring(0, 2) === ' ') {\n lines[i] = lines[i].slice(2);\n }\n }\n }\n return lines.join('\\n');\n};\n\n/**\n * dump\n *\n * @name dump\n * @function dump recognition result to a JSON object\n * @access public\n */\nmodule.exports = (TessModule, api, output, options) => {\n const ri = api.GetIterator();\n const {\n RIL_BLOCK,\n RIL_PARA,\n RIL_TEXTLINE,\n RIL_WORD,\n RIL_SYMBOL,\n } = TessModule;\n const blocks = [];\n let block;\n let para;\n let textline;\n let word;\n let symbol;\n\n const enumToString = (value, prefix) => (\n Object.keys(TessModule)\n .filter((e) => (e.startsWith(`${prefix}_`) && TessModule[e] === value))\n .map((e) => e.slice(prefix.length + 1))[0]\n );\n\n const getImage = (type) => {\n api.WriteImage(type, '/image.png');\n const pngBuffer = TessModule.FS.readFile('/image.png');\n const pngStr = `data:image/png;base64,${arrayBufferToBase64(pngBuffer.buffer)}`;\n TessModule.FS.unlink('/image.png');\n return pngStr;\n };\n\n const getPDFInternal = (title, textonly) => {\n const pdfRenderer = new TessModule.TessPDFRenderer('tesseract-ocr', '/', textonly);\n pdfRenderer.BeginDocument(title);\n pdfRenderer.AddImage(api);\n pdfRenderer.EndDocument();\n TessModule._free(pdfRenderer);\n\n return TessModule.FS.readFile('/tesseract-ocr.pdf');\n };\n\n // If output.layoutBlocks is true and options.skipRecognition is true,\n // the user wants layout data but text recognition has not been run.\n // In this case, fields that require text recognition are skipped.\n if (output.blocks || output.layoutBlocks) {\n ri.Begin();\n do {\n if (ri.IsAtBeginningOf(RIL_BLOCK)) {\n const poly = ri.BlockPolygon();\n let polygon = null;\n // BlockPolygon() returns null when automatic page segmentation is off\n if (TessModule.getPointer(poly) > 0) {\n const n = poly.get_n();\n const px = poly.get_x();\n const py = poly.get_y();\n polygon = [];\n for (let i = 0; i < n; i += 1) {\n polygon.push([px.getValue(i), py.getValue(i)]);\n }\n /*\n * TODO: find out why _ptaDestroy doesn't work\n */\n // TessModule._ptaDestroy(TessModule.getPointer(poly));\n }\n\n block = {\n paragraphs: [],\n text: !options.skipRecognition ? ri.GetUTF8Text(RIL_BLOCK) : null,\n confidence: !options.skipRecognition ? ri.Confidence(RIL_BLOCK) : null,\n baseline: ri.getBaseline(RIL_BLOCK),\n bbox: ri.getBoundingBox(RIL_BLOCK),\n blocktype: enumToString(ri.BlockType(), 'PT'),\n polygon,\n };\n blocks.push(block);\n }\n if (ri.IsAtBeginningOf(RIL_PARA)) {\n para = {\n lines: [],\n text: !options.skipRecognition ? ri.GetUTF8Text(RIL_PARA) : null,\n confidence: !options.skipRecognition ? ri.Confidence(RIL_PARA) : null,\n baseline: ri.getBaseline(RIL_PARA),\n bbox: ri.getBoundingBox(RIL_PARA),\n is_ltr: !!ri.ParagraphIsLtr(),\n };\n block.paragraphs.push(para);\n }\n if (ri.IsAtBeginningOf(RIL_TEXTLINE)) {\n textline = {\n words: [],\n text: !options.skipRecognition ? ri.GetUTF8Text(RIL_TEXTLINE) : null,\n confidence: !options.skipRecognition ? ri.Confidence(RIL_TEXTLINE) : null,\n baseline: ri.getBaseline(RIL_TEXTLINE),\n bbox: ri.getBoundingBox(RIL_TEXTLINE),\n };\n para.lines.push(textline);\n }\n if (ri.IsAtBeginningOf(RIL_WORD)) {\n const fontInfo = ri.getWordFontAttributes();\n const wordDir = ri.WordDirection();\n word = {\n symbols: [],\n choices: [],\n\n text: !options.skipRecognition ? ri.GetUTF8Text(RIL_WORD) : null,\n confidence: !options.skipRecognition ? ri.Confidence(RIL_WORD) : null,\n baseline: ri.getBaseline(RIL_WORD),\n bbox: ri.getBoundingBox(RIL_WORD),\n\n is_numeric: !!ri.WordIsNumeric(),\n in_dictionary: !!ri.WordIsFromDictionary(),\n direction: enumToString(wordDir, 'DIR'),\n language: ri.WordRecognitionLanguage(),\n\n is_bold: fontInfo.is_bold,\n is_italic: fontInfo.is_italic,\n is_underlined: fontInfo.is_underlined,\n is_monospace: fontInfo.is_monospace,\n is_serif: fontInfo.is_serif,\n is_smallcaps: fontInfo.is_smallcaps,\n font_size: fontInfo.pointsize,\n font_id: fontInfo.font_id,\n font_name: fontInfo.font_name,\n };\n const wc = new TessModule.WordChoiceIterator(ri);\n do {\n word.choices.push({\n text: !options.skipRecognition ? wc.GetUTF8Text() : null,\n confidence: !options.skipRecognition ? wc.Confidence() : null,\n });\n } while (wc.Next());\n TessModule.destroy(wc);\n textline.words.push(word);\n }\n\n // let image = null;\n // var pix = ri.GetBinaryImage(TessModule.RIL_SYMBOL)\n // var image = pix2array(pix);\n // // for some reason it seems that things stop working if you destroy pics\n // TessModule._pixDestroy(TessModule.getPointer(pix));\n if (ri.IsAtBeginningOf(RIL_SYMBOL)) {\n symbol = {\n choices: [],\n image: null,\n text: !options.skipRecognition ? ri.GetUTF8Text(RIL_SYMBOL) : null,\n confidence: !options.skipRecognition ? ri.Confidence(RIL_SYMBOL) : null,\n baseline: ri.getBaseline(RIL_SYMBOL),\n bbox: ri.getBoundingBox(RIL_SYMBOL),\n is_superscript: !!ri.SymbolIsSuperscript(),\n is_subscript: !!ri.SymbolIsSubscript(),\n is_dropcap: !!ri.SymbolIsDropcap(),\n };\n word.symbols.push(symbol);\n const ci = new TessModule.ChoiceIterator(ri);\n do {\n symbol.choices.push({\n text: !options.skipRecognition ? ci.GetUTF8Text() : null,\n confidence: !options.skipRecognition ? ci.Confidence() : null,\n });\n } while (ci.Next());\n // TessModule.destroy(i);\n }\n } while (ri.Next(RIL_SYMBOL));\n TessModule.destroy(ri);\n }\n\n return {\n text: output.text ? api.GetUTF8Text() : null,\n hocr: output.hocr ? deindent(api.GetHOCRText()) : null,\n tsv: output.tsv ? api.GetTSVText() : null,\n box: output.box ? api.GetBoxText() : null,\n unlv: output.unlv ? api.GetUNLVText() : null,\n osd: output.osd ? api.GetOsdText() : null,\n pdf: output.pdf ? getPDFInternal(options.pdfTitle ?? 'Tesseract OCR Result', options.pdfTextOnly ?? false) : null,\n imageColor: output.imageColor ? getImage(imageType.COLOR) : null,\n imageGrey: output.imageGrey ? getImage(imageType.GREY) : null,\n imageBinary: output.imageBinary ? getImage(imageType.BINARY) : null,\n confidence: !options.skipRecognition ? api.MeanTextConf() : null,\n blocks: output.blocks && !options.skipRecognition ? blocks : null,\n layoutBlocks: output.layoutBlocks && options.skipRecognition ? blocks : null,\n psm: enumToString(api.GetPageSegMode(), 'PSM'),\n oem: enumToString(api.oem(), 'OEM'),\n version: api.Version(),\n debug: output.debug ? TessModule.FS.readFile('/debugInternal.txt', { encoding: 'utf8', flags: 'a+' }) : null,\n };\n};\n","const bmp = require('bmp-js');\n\n/**\n * setImage\n *\n * @name setImage\n * @function set image in tesseract for recognition\n * @access public\n */\nmodule.exports = (TessModule, api, image, angle = 0) => {\n // Check for bmp magic numbers (42 and 4D in hex)\n const isBmp = (image[0] === 66 && image[1] === 77) || (image[1] === 66 && image[0] === 77);\n\n const exif = parseInt(image.slice(0, 500).join(' ').match(/1 18 0 3 0 0 0 1 0 (\\d)/)?.[1], 10) || 1;\n\n // /*\n // * Leptonica supports some but not all bmp files\n // * @see https://github.com/DanBloomberg/leptonica/issues/607#issuecomment-1068802516\n // * We therefore use bmp-js to convert all bmp files into a format Leptonica is known to support\n // */\n if (isBmp) {\n // Not sure what this line actually does, but removing breaks the function\n const buf = Buffer.from(Array.from({ ...image, length: Object.keys(image).length }));\n const bmpBuf = bmp.decode(buf);\n TessModule.FS.writeFile('/input', bmp.encode(bmpBuf).data);\n } else {\n TessModule.FS.writeFile('/input', image);\n }\n\n const res = api.SetImageFile(exif, angle);\n if (res === 1) throw Error('Error attempting to read image.');\n};\n","function promisifyRequest(request) {\n return new Promise((resolve, reject) => {\n // @ts-ignore - file size hacks\n request.oncomplete = request.onsuccess = () => resolve(request.result);\n // @ts-ignore - file size hacks\n request.onabort = request.onerror = () => reject(request.error);\n });\n}\nfunction createStore(dbName, storeName) {\n const request = indexedDB.open(dbName);\n request.onupgradeneeded = () => request.result.createObjectStore(storeName);\n const dbp = promisifyRequest(request);\n return (txMode, callback) => dbp.then((db) => callback(db.transaction(storeName, txMode).objectStore(storeName)));\n}\nlet defaultGetStoreFunc;\nfunction defaultGetStore() {\n if (!defaultGetStoreFunc) {\n defaultGetStoreFunc = createStore('keyval-store', 'keyval');\n }\n return defaultGetStoreFunc;\n}\n/**\n * Get a value by its key.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction get(key, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => promisifyRequest(store.get(key)));\n}\n/**\n * Set a value with a key.\n *\n * @param key\n * @param value\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction set(key, value, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.put(value, key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Set multiple values at once. This is faster than calling set() multiple times.\n * It's also atomic – if one of the pairs can't be added, none will be added.\n *\n * @param entries Array of entries, where each entry is an array of `[key, value]`.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction setMany(entries, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n entries.forEach((entry) => store.put(entry[1], entry[0]));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Get multiple values by their keys\n *\n * @param keys\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction getMany(keys, customStore = defaultGetStore()) {\n return customStore('readonly', (store) => Promise.all(keys.map((key) => promisifyRequest(store.get(key)))));\n}\n/**\n * Update a value. This lets you see the old value and update it as an atomic operation.\n *\n * @param key\n * @param updater A callback that takes the old value and returns a new value.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction update(key, updater, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => \n // Need to create the promise manually.\n // If I try to chain promises, the transaction closes in browsers\n // that use a promise polyfill (IE10/11).\n new Promise((resolve, reject) => {\n store.get(key).onsuccess = function () {\n try {\n store.put(updater(this.result), key);\n resolve(promisifyRequest(store.transaction));\n }\n catch (err) {\n reject(err);\n }\n };\n }));\n}\n/**\n * Delete a particular key from the store.\n *\n * @param key\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction del(key, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.delete(key);\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Delete multiple keys at once.\n *\n * @param keys List of keys to delete.\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction delMany(keys, customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n keys.forEach((key) => store.delete(key));\n return promisifyRequest(store.transaction);\n });\n}\n/**\n * Clear all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction clear(customStore = defaultGetStore()) {\n return customStore('readwrite', (store) => {\n store.clear();\n return promisifyRequest(store.transaction);\n });\n}\nfunction eachCursor(store, callback) {\n store.openCursor().onsuccess = function () {\n if (!this.result)\n return;\n callback(this.result);\n this.result.continue();\n };\n return promisifyRequest(store.transaction);\n}\n/**\n * Get all keys in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction keys(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAllKeys) {\n return promisifyRequest(store.getAllKeys());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.key)).then(() => items);\n });\n}\n/**\n * Get all values in the store.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction values(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n if (store.getAll) {\n return promisifyRequest(store.getAll());\n }\n const items = [];\n return eachCursor(store, (cursor) => items.push(cursor.value)).then(() => items);\n });\n}\n/**\n * Get all entries in the store. Each entry is an array of `[key, value]`.\n *\n * @param customStore Method to get a custom store. Use with caution (see the docs).\n */\nfunction entries(customStore = defaultGetStore()) {\n return customStore('readonly', (store) => {\n // Fast path for modern browsers\n // (although, hopefully we'll get a simpler path some day)\n if (store.getAll && store.getAllKeys) {\n return Promise.all([\n promisifyRequest(store.getAllKeys()),\n promisifyRequest(store.getAll()),\n ]).then(([keys, values]) => keys.map((key, i) => [key, values[i]]));\n }\n const items = [];\n return customStore('readonly', (store) => eachCursor(store, (cursor) => items.push([cursor.key, cursor.value])).then(() => items));\n });\n}\n\nexport { clear, createStore, del, delMany, entries, get, getMany, keys, promisifyRequest, set, setMany, update, values };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","/**\n *\n * Browser worker scripts\n *\n * @fileoverview Browser worker implementation\n * @author Kevin Kwok \n * @author Guillermo Webster \n * @author Jerome Wu \n */\n\nconst worker = require('..');\nconst getCore = require('./getCore');\nconst gunzip = require('./gunzip');\nconst cache = require('./cache');\n\n/*\n * register message handler\n */\nglobal.addEventListener('message', ({ data }) => {\n worker.dispatchHandlers(data, (obj) => postMessage(obj));\n});\n\n/*\n * getCore is a sync function to load and return\n * TesseractCore.\n */\nworker.setAdapter({\n getCore,\n gunzip,\n fetch: () => {},\n ...cache,\n});\n"],"names":["exports","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","i","arr","Arr","_byteLength","curByte","len","revLookup","charCodeAt","fromByteArray","uint8","length","extraBytes","parts","maxChunkLength","len2","push","encodeChunk","lookup","join","Uint8Array","Array","code","Error","indexOf","start","end","num","output","encode","require","decode","module","BmpDecoder","buffer","is_with_alpha","this","pos","bottom_up","flag","toString","parseHeader","parseRGBA","prototype","fileSize","readUInt32LE","reserved","offset","headerSize","width","height","readInt32LE","planes","readUInt16LE","bitPP","compress","rawSize","hr","vr","colors","importantColors","palette","blue","readUInt8","green","red","quad","bitn","data","Buffer","bit1","xlen","Math","ceil","mode","y","line","x","b","location","rgb","bit4","setPixelData","rgbIndex","fill","lines","low_nibble","a","c","call","before","after","bit8","bit15","dif_w","_1_5","parseInt","B","alpha","bit16","maskRed","maskGreen","maskBlue","mask0","ns","bit24","bit32","getData","bmpData","BmpEncoder","imgData","rgbSize","headerInfoSize","tempBuffer","write","writeUInt32LE","writeInt32LE","writeUInt16LE","rowBytes","p","fillOffset","quality","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","input","hint","_typeof","prim","Symbol","toPrimitive","undefined","res","TypeError","String","_toPrimitive","_setPrototypeOf","o","setPrototypeOf","bind","__proto__","_assertThisInitialized","self","ReferenceError","_getPrototypeOf","getPrototypeOf","obj","iterator","constructor","base64","ieee754","customInspectSymbol","K_MAX_LENGTH","createBuffer","RangeError","buf","arg","encodingOrOffset","allocUnsafe","from","value","string","encoding","isEncoding","actual","slice","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","isBuffer","checked","numberIsNaN","type","isArray","fromObject","assertSize","size","array","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","m","bidirectionalIndexOf","val","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","j","hexWrite","Number","remaining","strLen","parsed","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","min","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","TYPED_ARRAY_SUPPORT","proto","foo","e","typedArraySupport","console","error","get","poolSize","alloc","allocUnsafeSlow","_isBuffer","compare","concat","list","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUint16LE","readUint16BE","readUint32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","pow","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","E","sym","getMessage","Base","_Base","subClass","superClass","create","_inherits","NodeError","Constructor","protoProps","Derived","hasNativeReflectConstruct","_super","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","result","Super","NewTarget","_possibleConstructorReturn","_this","instance","_classCallCheck","name","stack","message","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","floor","ERR_BUFFER_OUT_OF_BOUNDS","msg","received","isInteger","abs","INVALID_BASE64_RE","Infinity","leadSurrogate","split","base64clean","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","s","NaN","rt","isNaN","log","LN2","window","process","versions","electron","navigator","userAgent","match","protocolAndDomainRE","everythingAfterProtocol","localhostDomainRE","test","nonLocalhostDomainRE","runtime","Op","hasOwn","hasOwnProperty","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","err","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","makeInvokeMethod","tryCatch","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","__await","then","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","Promise","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Function","_regeneratorRuntime","return","catch","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","bigInt","_ref","_callee","_context","WebAssembly","instantiate","t0","t1","t2","_x","bulkMemory","_ref2","_callee2","_context2","validate","exceptions","_ref3","_callee3","_context3","multiValue","_ref4","_callee4","_context4","mutableGlobals","_ref5","_callee5","_context5","referenceTypes","_ref6","_callee6","_context6","saturatedFloatToInt","_ref7","_callee7","_context7","signExtensions","_ref8","_callee8","_context8","simd","_ref9","_callee9","_context9","tailCall","_ref10","_callee10","_context10","threads","_ref11","_callee11","_context11","MessageChannel","port1","postMessage","_x2","q","t","v","Uint16Array","Uint32Array","DataView","G","index","f","k","g","I","L","aa","ba","R","ca","ha","S","ia","ja","ka","T","h","r","l","POSITIVE_INFINITY","na","oa","F","lazy","compressionType","outputBuffer","outputIndex","getParent","U","pa","NONE","X","qa","va","N","w","C","u","ra","M","z","Y","da","Fa","ea","Ga","la","Ha","Z","ma","Ia","D","qb","ta","ua","sa","O","A","fa","H","Ja","Ka","K","J","P","Q","Na","ga","wa","Oa","Pa","Qa","Ra","La","Ma","xa","ya","shift","za","Aa","Ba","flags","filename","comment","deflateOptions","fname","Ca","fcomment","Da","fhcrc","Ea","Date","now","Sa","V","Ta","bufferSize","bufferType","resize","Ua","W","Va","Wa","Xa","Ya","$","ib","Za","$a","ab","bb","cb","db","eb","fb","gb","hb","kb","lb","jb","mb","nb","ob","verify","pb","rb","sb","ub","Bb","wb","noBuffer","yb","Ab","LOG2E","deflate","nextTick","deflateSync","inflate","inflateSync","gzip","gzipSync","gunzip","gunzipSync","OSD_ONLY","AUTO_OSD","AUTO_ONLY","AUTO","SINGLE_COLUMN","SINGLE_BLOCK_VERT_TEXT","SINGLE_BLOCK","SINGLE_LINE","SINGLE_WORD","CIRCLE_WORD","SINGLE_CHAR","SPARSE_TEXT","SPARSE_TEXT_OSD","RAW_LINE","COLOR","GREY","BINARY","isElectron","env","WorkerGlobalScope","logging","setLogging","_logging","_len","_key","_require","del","readCache","writeCache","deleteCache","checkCache","path","dependencies","corePath","corePathImport","corePathImportFile","simdSupport","global","TesseractCore","progress","status","substring","importScripts","TesseractCoreWASM","text","blocks","layoutBlocks","hocr","tsv","box","unlv","osd","pdf","imageColor","imageGrey","imageBinary","debug","PSM","tessedit_pageseg_mode","tessedit_char_whitelist","tessjs_create_hocr","tessjs_create_tsv","tessjs_create_box","tessjs_create_unlv","tessjs_create_osd","TessModule","latestJob","cachePathWorker","cacheMethodWorker","isURL","dump","setImage","defaultParams","defaultOutput","api","adapter","params","load","workerId","jobId","_ref$payload$options","Core","payload","options","getCore","TesseractProgress","percent","tessModule","loaded","FS","_TessModule$FS","_ref3$payload","_x3","_x4","loadLanguage","_ref5$payload","langs","_ref5$payload$options","langPath","dataPath","cachePath","cacheMethod","_ref5$payload$options2","loadAndGunzipFile","_lang","lang","newData","_data","fetchUrl","resp","startsWith","fetch","ok","arrayBuffer","mkdir","writeFile","t3","_x7","all","map","_x5","_x6","setParameters","_params","initParamNames","initParamStr","filter","SetVariable","_objectSpread","_x8","_x9","initialize","_ref10$payload","_langs","oem","config","configStr","langsArr","delCachePromise","End","JSON","stringify","TessBaseAPI","Init","_x10","_x11","getPDFInternal","title","textonly","pdfRenderer","TessPDFRenderer","BeginDocument","AddImage","EndDocument","_free","readFile","getPDF","_ref13","_ref12","_ref12$payload","_x12","_x13","processOutput","workingOutput","parse","nonRecOutputs","recOutputCount","_i","_Object$keys","prop","_i2","_Object$keys2","skipRecognition","tessjsOptions","recognize","_ref15","_ref14","_ref14$payload","image","optionsTess","_i3","_Object$keys3","param","_i4","_Object$keys4","_processOutput","rotateRadiansFinal","psmInit","psmEdit","rotateRadiansCalc","rec","pdfTitle","pdfTextOnly","debug_file","SaveParameters","rotateAuto","GetPageSegMode","OSD","FindLines","GetGradient","GetAngle","rotateRadians","rectangle","SetRectangle","left","top","AnalyseLayout","Recognize","unlink","RestoreParameters","_x14","_x15","detect","_ref17","_ref16","results","best","oid","sid","OSResults","DetectOS","best_result","orientation_id","script_id","tesseract_script_id","script","unicharset","get_script_from_script_id","script_confidence","sconfidence","orientation_degrees","orientation_confidence","oconfidence","_x16","_x17","terminate","_ref18","_","terminated","_x18","_x19","dispatchHandlers","packet","send","packetRes","action","setAdapter","_adapter","chunk","encodings","byteRemainder","mainLength","arrayBufferToBase64","imageType","deindent","html","_options$pdfTitle","_options$pdfTextOnly","block","para","textline","word","symbol","ri","GetIterator","RIL_BLOCK","RIL_PARA","RIL_TEXTLINE","RIL_WORD","RIL_SYMBOL","enumToString","prefix","getImage","WriteImage","pngBuffer","pngStr","Begin","IsAtBeginningOf","poly","BlockPolygon","polygon","getPointer","get_n","px","get_x","py","get_y","getValue","paragraphs","GetUTF8Text","confidence","Confidence","baseline","getBaseline","bbox","getBoundingBox","blocktype","BlockType","is_ltr","ParagraphIsLtr","words","fontInfo","getWordFontAttributes","wordDir","WordDirection","symbols","choices","is_numeric","WordIsNumeric","in_dictionary","WordIsFromDictionary","direction","language","WordRecognitionLanguage","is_bold","is_italic","is_underlined","is_monospace","is_serif","is_smallcaps","font_size","pointsize","font_id","font_name","wc","WordChoiceIterator","Next","destroy","is_superscript","SymbolIsSuperscript","is_subscript","SymbolIsSubscript","is_dropcap","SymbolIsDropcap","ci","ChoiceIterator","GetHOCRText","GetTSVText","GetBoxText","GetUNLVText","GetOsdText","MeanTextConf","psm","version","Version","bmp","_image$slice$join$mat","angle","isBmp","exif","bmpBuf","SetImageFile","promisifyRequest","request","oncomplete","onsuccess","onabort","onerror","createStore","dbName","storeName","indexedDB","open","onupgradeneeded","createObjectStore","dbp","txMode","callback","transaction","objectStore","defaultGetStoreFunc","defaultGetStore","store","put","setMany","entries","getMany","update","updater","delete","delMany","clear","eachCursor","openCursor","continue","getAllKeys","items","cursor","getAll","customStore","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","id","__webpack_modules__","definition","nmd","paths","children","worker","cache","addEventListener"],"sourceRoot":""} \ No newline at end of file diff --git a/src-tauri/src/updater.rs b/src-tauri/src/updater.rs index bec07bf813..6a9e51d034 100644 --- a/src-tauri/src/updater.rs +++ b/src-tauri/src/updater.rs @@ -6,8 +6,8 @@ pub fn check_update(app_handle: tauri::AppHandle) { let enable = match get("check_update") { Some(v) => v.as_bool().unwrap(), None => { - set("check_update", true); - true + set("check_update", false); + false } }; if enable { diff --git a/src/services/recognize/paddle/index.jsx b/src/services/recognize/paddle/index.jsx index 8f1c9dab86..52b31cbb6a 100644 --- a/src/services/recognize/paddle/index.jsx +++ b/src/services/recognize/paddle/index.jsx @@ -1,4 +1,632 @@ -export async function recognize(base64, lang) {} +// modified from eSearch-OCR. +// https://github.com/xushengfeng/eSearch-OCR + +import * as ort from 'onnxruntime-web'; +import clipper from 'js-clipper'; +import cv from 'opencv.js'; + +var dev = false; +var limitSideLen = 960, + imgH = 48, + imgW = 320; +var detShape = [960, 960]; +var det, rec, dic; + +export async function recognize(base64, lang) { + const res = await fetch(`/ocr/${lang}/dict.txt`); + // init + det = await ort.InferenceSession.create('https://pub-f6afb74f13c64cd89561b4714dca1c27.r2.dev/ocr/ppocr_det.onnx'); + rec = await ort.InferenceSession.create( + `https://pub-f6afb74f13c64cd89561b4714dca1c27.r2.dev/ocr/${lang}/ppocr_rec.onnx` + ); + dic = await res.text(); + dic = dic.split(/\r\n|\r|\n/); + // get img + const img = document.createElement('img'); + img.src = 'data:image/png;base64,' + base64; + const canvas = document.createElement('canvas'); + let isLoad = await new Promise(async (resolve, reject) => { + (img.onload = () => { + img.crossOrigin = 'anonymous'; + canvas.height = img.height; + canvas.width = img.width; + canvas.getContext('2d').drawImage(img, 0, 0); + // 防止在WebKit上没有正确加载图像 + if (canvas.width === 0) { + } else { + resolve(true); + } + }), + (img.onerror = () => { + reject(false); + }); + }); + + if (isLoad) { + let mainLine = await run(canvas.getContext('2d').getImageData(0, 0, img.width, img.height)); + let result = ''; + for (let i of mainLine) { + result += i.text + '\n'; + } + return result.trim(); + } +} + +async function run(img) { + let h = img.height, + w = img.width; + let { transposedData, image } = beforeDet(img, detShape[0], detShape[1]); + const detResults = await runDet(transposedData, image, det); + + let box = afterDet(detResults.data, detResults.dims[3], detResults.dims[2], img); + + let mainLine = []; + for (let i of beforeRec(box)) { + let { b, imgH, imgW } = i; + const recResults = await runRec(b, imgH, imgW, rec); + if (dic.at(-1) == '') { + // 多出的换行 + dic[dic.length - 1] = ' '; + } else { + dic.push(' '); + } + let line = afterRec(recResults, dic); + mainLine = line.concat(mainLine); + } + for (let i in mainLine) { + let rx = w / image.width, + ry = h / image.height; + let b = box[mainLine.length - Number(i) - 1].box; + for (let p of b) { + p[0] = p[0] * rx; + p[1] = p[1] * ry; + } + mainLine[i]['box'] = b; + } + mainLine = mainLine.filter((x) => x.mean >= 0.5); + mainLine = afAfRec(mainLine); + return mainLine; +} + +async function runDet(transposedData, image, det) { + let x = transposedData.flat(Infinity); + const detData = Float32Array.from(x); + + const detTensor = new ort.Tensor('float32', detData, [1, 3, image.height, image.width]); + let detFeed = {}; + detFeed[det.inputNames[0]] = detTensor; + + const detResults = await det.run(detFeed); + return detResults[det.outputNames[0]]; +} + +async function runRec(b, imgH, imgW, rec) { + const recData = Float32Array.from(b.flat(Infinity)); + + const recTensor = new ort.Tensor('float32', recData, [b.length, 3, imgH, imgW]); + let recFeed = {}; + recFeed[rec.inputNames[0]] = recTensor; + + const recResults = await rec.run(recFeed); + return recResults[rec.outputNames[0]]; +} + +function data2canvas(data, w, h) { + let x = document.createElement('canvas'); + x.width = w || data.width; + x.height = h || data.height; + x.getContext('2d').putImageData(data, 0, 0); + return x; +} + +function resizeImg(data, w, h) { + let x = data2canvas(data); + let src = document.createElement('canvas'); + src.width = w; + src.height = h; + src.getContext('2d').scale(w / data.width, h / data.height); + src.getContext('2d').drawImage(x, 0, 0); + return src.getContext('2d').getImageData(0, 0, w, h); +} + +function beforeDet(image, shapeH, shapeW) { + let ratio = 1; + let h = image.height, + w = image.width; + if (Math.max(h, w) > limitSideLen) { + if (h > w) { + ratio = limitSideLen / h; + } else { + ratio = limitSideLen / w; + } + } + let resizeH = shapeH || h * ratio; + let resizeW = shapeW || w * ratio; + + resizeH = Math.max(Math.round(resizeH / 32) * 32, 32); + resizeW = Math.max(Math.round(resizeW / 32) * 32, 32); + image = resizeImg(image, resizeW, resizeH); + + const transposedData = toPaddleInput(image, [0.485, 0.456, 0.406], [0.229, 0.224, 0.225]); + + return { transposedData, image }; +} + +function afterDet(data, w, h, srcData) { + var myImageData = new ImageData(w, h); + for (let i in data) { + let n = Number(i) * 4; + const v = data[i] > 0.3 ? 255 : 0; + myImageData.data[n] = myImageData.data[n + 1] = myImageData.data[n + 2] = v; + myImageData.data[n + 3] = 255; + } + let canvas = data2canvas(myImageData); + + let edgeRect = []; + + let src = cv.imread(canvas); + + cv.cvtColor(src, src, cv.COLOR_RGBA2GRAY, 0); + let contours = new cv.MatVector(); + let hierarchy = new cv.Mat(); + + cv.findContours(src, contours, hierarchy, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE); + + for (let i = 0; i < contours.size(); i++) { + let minSize = 3; + let cnt = contours.get(i); + let { points, sside } = getMiniBoxes(cnt); + if (sside < minSize) continue; + // TODO sort fast + + let clipBox = unclip(points); + + const boxMap = new cv.matFromArray(clipBox.length / 2, 1, cv.CV_32SC2, clipBox); + + const resultObj = getMiniBoxes(boxMap); + let box = resultObj.points; + if (resultObj.sside < minSize + 2) { + continue; + } + function clip(n, min, max) { + return Math.max(min, Math.min(n, max)); + } + + let rx = srcData.width / w; + let ry = srcData.height / h; + + for (let i = 0; i < box.length; i++) { + box[i][0] *= rx; + box[i][1] *= ry; + } + + let box1 = orderPointsClockwise(box); + box1.forEach((item) => { + item[0] = clip(Math.round(item[0]), 0, srcData.width); + item[1] = clip(Math.round(item[1]), 0, srcData.height); + }); + let rect_width = int(linalgNorm(box1[0], box1[1])); + let rect_height = int(linalgNorm(box1[0], box1[3])); + if (rect_width <= 3 || rect_height <= 3) continue; + + let c0 = data2canvas(srcData); + + let c = getRotateCropImage(c0, box); + + edgeRect.push({ box, img: c.getContext('2d').getImageData(0, 0, c.width, c.height) }); + } + + src.delete(); + contours.delete(); + hierarchy.delete(); + + src = contours = hierarchy = null; + + return edgeRect; +} + +function polygonPolygonArea(polygon) { + let i = -1, + n = polygon.length, + a, + b = polygon[n - 1], + area = 0; + + while (++i < n) { + a = b; + b = polygon[i]; + area += a[1] * b[0] - a[0] * b[1]; + } + + return area / 2; +} + +function polygonPolygonLength(polygon) { + let i = -1, + n = polygon.length, + b = polygon[n - 1], + xa, + ya, + xb = b[0], + yb = b[1], + perimeter = 0; + + while (++i < n) { + xa = xb; + ya = yb; + b = polygon[i]; + xb = b[0]; + yb = b[1]; + xa -= xb; + ya -= yb; + perimeter += Math.hypot(xa, ya); + } + + return perimeter; +} + +function unclip(box) { + const unclip_ratio = 1.5; + const area = Math.abs(polygonPolygonArea(box)); + const length = polygonPolygonLength(box); + const distance = (area * unclip_ratio) / length; + const tmpArr = []; + box.forEach((item) => { + const obj = { + X: 0, + Y: 0, + }; + obj.X = item[0]; + obj.Y = item[1]; + tmpArr.push(obj); + }); + const offset = new clipper.ClipperOffset(); + offset.AddPath(tmpArr, clipper.JoinType.jtRound, clipper.EndType.etClosedPolygon); + const expanded = []; + offset.Execute(expanded, distance); + let expandedArr = []; + expanded[0] && + expanded[0].forEach((item) => { + expandedArr.push([item.X, item.Y]); + }); + expandedArr = [].concat(...expandedArr); + + return expandedArr; +} + +function boxPoints(center, size, angle) { + const width = size.width; + const height = size.height; + + const theta = (angle * Math.PI) / 180.0; + const cosTheta = Math.cos(theta); + const sinTheta = Math.sin(theta); + + const cx = center.x; + const cy = center.y; + + const dx = width * 0.5; + const dy = height * 0.5; + + const rotatedPoints = []; + + // Top-Left + const x1 = cx - dx * cosTheta + dy * sinTheta; + const y1 = cy - dx * sinTheta - dy * cosTheta; + rotatedPoints.push([x1, y1]); + + // Top-Right + const x2 = cx + dx * cosTheta + dy * sinTheta; + const y2 = cy + dx * sinTheta - dy * cosTheta; + rotatedPoints.push([x2, y2]); + + // Bottom-Right + const x3 = cx + dx * cosTheta - dy * sinTheta; + const y3 = cy + dx * sinTheta + dy * cosTheta; + rotatedPoints.push([x3, y3]); + + // Bottom-Left + const x4 = cx - dx * cosTheta - dy * sinTheta; + const y4 = cy - dx * sinTheta + dy * cosTheta; + rotatedPoints.push([x4, y4]); + + return rotatedPoints; +} + +function getMiniBoxes(contour) { + const boundingBox = cv.minAreaRect(contour); + const points = Array.from(boxPoints(boundingBox.center, boundingBox.size, boundingBox.angle)).sort( + (a, b) => a[0] - b[0] + ); + + let index_1 = 0, + index_2 = 1, + index_3 = 2, + index_4 = 3; + if (points[1][1] > points[0][1]) { + index_1 = 0; + index_4 = 1; + } else { + index_1 = 1; + index_4 = 0; + } + if (points[3][1] > points[2][1]) { + index_2 = 2; + index_3 = 3; + } else { + index_2 = 3; + index_3 = 2; + } + + const box = [points[index_1], points[index_2], points[index_3], points[index_4]]; + const side = Math.min(boundingBox.size.height, boundingBox.size.width); + return { points: box, sside: side }; +} + +function int(num) { + return num > 0 ? Math.floor(num) : Math.ceil(num); +} +function flatten(arr) { + return arr + .toString() + .split(',') + .map((item) => +item); +} +function linalgNorm(p0, p1) { + return Math.sqrt(Math.pow(p0[0] - p1[0], 2) + Math.pow(p0[1] - p1[1], 2)); +} +function orderPointsClockwise(pts) { + const rect = [ + [0, 0], + [0, 0], + [0, 0], + [0, 0], + ]; + const s = pts.map((pt) => pt[0] + pt[1]); + rect[0] = pts[s.indexOf(Math.min(...s))]; + rect[2] = pts[s.indexOf(Math.max(...s))]; + const tmp = pts.filter((pt) => pt !== rect[0] && pt !== rect[2]); + const diff = tmp[1].map((e, i) => e - tmp[0][i]); + rect[1] = tmp[diff.indexOf(Math.min(...diff))]; + rect[3] = tmp[diff.indexOf(Math.max(...diff))]; + return rect; +} + +function getRotateCropImage(img, points) { + const img_crop_width = int(Math.max(linalgNorm(points[0], points[1]), linalgNorm(points[2], points[3]))); + const img_crop_height = int(Math.max(linalgNorm(points[0], points[3]), linalgNorm(points[1], points[2]))); + const pts_std = [ + [0, 0], + [img_crop_width, 0], + [img_crop_width, img_crop_height], + [0, img_crop_height], + ]; + + const srcTri = cv.matFromArray(4, 1, cv.CV_32FC2, flatten(points)); + const dstTri = cv.matFromArray(4, 1, cv.CV_32FC2, flatten(pts_std)); + + // 获取到目标矩阵 + const M = cv.getPerspectiveTransform(srcTri, dstTri); + const src = cv.imread(img); + const dst = new cv.Mat(); + const dsize = new cv.Size(img_crop_width, img_crop_height); + // 透视转换 + cv.warpPerspective(src, dst, M, dsize, cv.INTER_CUBIC, cv.BORDER_REPLICATE, new cv.Scalar()); + + const dst_img_height = dst.matSize[0]; + const dst_img_width = dst.matSize[1]; + let dst_rot; + // 图像旋转 + if (dst_img_height / dst_img_width >= 1.5) { + dst_rot = new cv.Mat(); + const dsize_rot = new cv.Size(dst.rows, dst.cols); + const center = new cv.Point(dst.cols / 2, dst.cols / 2); + const M = cv.getRotationMatrix2D(center, 90, 1); + cv.warpAffine(dst, dst_rot, M, dsize_rot, cv.INTER_CUBIC, cv.BORDER_REPLICATE, new cv.Scalar()); + } + + let c = document.createElement('canvas'); + if (dst_rot) { + c.width = dst_rot.matSize[1]; + c.height = dst_rot.matSize[0]; + } else { + c.width = dst_img_width; + c.height = dst_img_height; + } + cv.imshow(c, dst_rot || dst); + if (dev) document.body.append(c); + + src.delete(); + dst.delete(); + srcTri.delete(); + dstTri.delete(); + return c; +} + +function toPaddleInput(image, mean, std) { + const imagedata = image.data; + const redArray = []; + const greenArray = []; + const blueArray = []; + let x = 0, + y = 0; + for (let i = 0; i < imagedata.length; i += 4) { + if (!blueArray[y]) blueArray[y] = []; + if (!greenArray[y]) greenArray[y] = []; + if (!redArray[y]) redArray[y] = []; + redArray[y][x] = (imagedata[i] / 255 - mean[0]) / std[0]; + greenArray[y][x] = (imagedata[i + 1] / 255 - mean[1]) / std[1]; + blueArray[y][x] = (imagedata[i + 2] / 255 - mean[2]) / std[2]; + x++; + if (x == image.width) { + x = 0; + y++; + } + } + + return [blueArray, greenArray, redArray]; +} + +function beforeRec(box) { + let l = []; + function resizeNormImg(img) { + imgW = Math.floor(imgH * maxWhRatio); + let h = img.height, + w = img.width; + let ratio = w / h; + let resizedW; + if (Math.ceil(imgH * ratio) > imgW) { + resizedW = imgW; + } else { + resizedW = Math.floor(Math.ceil(imgH * ratio)); + } + let d = resizeImg(img, resizedW, imgH); + let cc = data2canvas(d, imgW, imgH); + if (dev) document.body.append(cc); + return cc.getContext('2d').getImageData(0, 0, imgW, imgH); + } + + let boxes = []; + let nowWidth = 0; + for (let i of box) { + if (Math.abs(i.img.width - nowWidth) > 32) { + nowWidth = i.img.width; + boxes.push([i]); + } else { + if (!boxes[boxes.length - 1]) boxes.push([]); + boxes[boxes.length - 1].push(i); + } + } + let maxWhRatio = 0; + for (let box of boxes) { + maxWhRatio = 0; + for (let r of box) { + maxWhRatio = Math.max(r.img.width / r.img.height, maxWhRatio); + } + let b = []; + for (let r of box) { + b.push(toPaddleInput(resizeNormImg(r.img), [0.5, 0.5, 0.5], [0.5, 0.5, 0.5])); + } + l.push({ b, imgH, imgW }); + } + return l; +} + +function afterRec(data, character) { + let predLen = data.dims[2]; + let line = []; + let ml = data.dims[0] - 1; + for (let l = 0; l < data.data.length; l += predLen * data.dims[1]) { + const predsIdx = []; + const predsProb = []; + + for (let i = l; i < l + predLen * data.dims[1]; i += predLen) { + const tmpArr = data.data.slice(i, i + predLen); + const tmpMax = tmpArr.reduce((a, b) => Math.max(a, b), -Infinity); + const tmpIdx = tmpArr.indexOf(tmpMax); + predsProb.push(tmpMax); + predsIdx.push(tmpIdx); + } + line[ml] = decode(predsIdx, predsProb, true); + ml--; + } + function decode(textIndex, textProb, isRemoveDuplicate) { + const ignoredTokens = [0]; + const charList = []; + const confList = []; + for (let idx = 0; idx < textIndex.length; idx++) { + if (textIndex[idx] in ignoredTokens) { + continue; + } + if (isRemoveDuplicate) { + if (idx > 0 && textIndex[idx - 1] === textIndex[idx]) { + continue; + } + } + charList.push(character[textIndex[idx] - 1]); + if (textProb) { + confList.push(textProb[idx]); + } else { + confList.push(1); + } + } + let text = ''; + let mean = 0; + if (charList.length) { + text = charList.join(''); + let sum = 0; + confList.forEach((item) => { + sum += item; + }); + mean = sum / confList.length; + } + return { text, mean }; + } + return line; +} + +function afAfRec(l) { + let line = []; + let ind = new Map(); + for (let i in l) { + ind.set(l[i].box, Number(i)); + } + + function calculateAverageHeight(boxes) { + let totalHeight = 0; + for (const box of boxes) { + const [[, y1], , [, y2]] = box; + const height = y2 - y1; + totalHeight += height; + } + return totalHeight / boxes.length; + } + + function groupBoxesByMidlineDifference(boxes) { + const averageHeight = calculateAverageHeight(boxes); + const result = []; + for (const box of boxes) { + const [[, y1], , [, y2]] = box; + const midline = (y1 + y2) / 2; + const group = result.find((b) => { + const [[, groupY1], , [, groupY2]] = b[0]; + const groupMidline = (groupY1 + groupY2) / 2; + return Math.abs(groupMidline - midline) < averageHeight / 2; + }); + if (group) { + group.push(box); + } else { + result.push([box]); + } + } + + for (const group of result) { + group.sort((a, b) => { + const [ltA] = a; + const [ltB] = b; + return ltA[0] - ltB[0]; + }); + } + + result.sort((a, b) => a[0][0][1] - b[0][0][1]); + + return result; + } + + let boxes = groupBoxesByMidlineDifference([...ind.keys()]); + + for (let i of boxes) { + let t = []; + let m = 0; + for (let j of i) { + let x = l[ind.get(j)]; + t.push(x.text); + m += x.mean; + } + line.push({ mean: m / i.length, text: t.join(' '), box: [i.at(0)[0], i.at(-1)[1], i.at(-1)[2], i.at(0)[3]] }); + } + return line; +} export * from './Config'; export * from './info'; diff --git a/src/services/recognize/paddle/info.ts b/src/services/recognize/paddle/info.ts index bdb1101bdf..a97153f77c 100644 --- a/src/services/recognize/paddle/info.ts +++ b/src/services/recognize/paddle/info.ts @@ -3,19 +3,11 @@ export const info = { }; export enum Language { - auto = 'auto', - zh_cn = 'ZH', - zh_tw = 'ZH', - ja = 'JA', - en = 'EN', - ko = 'KO', - fr = 'FR', - es = 'ES', - ru = 'RU', - de = 'DE', - it = 'IT', - tr = 'TR', - pt = 'PT-PT', - pt_br = 'PT-BR', - id = 'ID', + auto = 'zh_cn', + zh_cn = 'zh_cn', + zh_tw = 'zh_tw', + en = 'en', + ja = 'ja', + ko = 'ko', + ar = 'ar', } diff --git a/src/services/recognize/system/index.jsx b/src/services/recognize/system/index.jsx index 2cecf45494..57a946f8dd 100644 --- a/src/services/recognize/system/index.jsx +++ b/src/services/recognize/system/index.jsx @@ -1,5 +1,7 @@ +import { local_detect } from '../../translate/utils/lang_detect'; import { osType } from '../../../utils/env'; import { invoke } from '@tauri-apps/api'; +import { Language } from './info'; export async function recognize(_, lang) { const linuxLangMap = { @@ -71,13 +73,31 @@ export async function recognize(_, lang) { ar: 'ar-SA', hi: 'hi-IN', }; + let result = ''; switch (osType) { case 'Linux': - return await invoke('system_ocr', { lang: linuxLangMap[lang] }); + result = await invoke('system_ocr', { lang: linuxLangMap[lang] }); + if (lang === Language.auto && (await local_detect(result)) === Language.zh_cn) { + result = result.replaceAll(' ', ''); + } else { + if (lang === Language.zh_cn || lang === Language.zh_tw) { + result = result.replaceAll(' ', ''); + } + } + return result.trim(); case 'Darwin': - return await invoke('system_ocr', { lang: macOSLangMap[lang] }); + result = await invoke('system_ocr', { lang: macOSLangMap[lang] }); + return result.trim(); case 'Windows_NT': - return await invoke('system_ocr', { lang: windowsLangMap[lang] }); + result = await invoke('system_ocr', { lang: windowsLangMap[lang] }); + if (lang === Language.auto && (await local_detect(result)) === Language.zh_cn) { + result = result.replaceAll(' ', ''); + } else { + if (lang === Language.zh_cn || lang === Language.zh_tw) { + result = result.replaceAll(' ', ''); + } + } + return result.trim(); } } diff --git a/src/services/recognize/tesseract/index.jsx b/src/services/recognize/tesseract/index.jsx index 95c813ebab..b73352f2ce 100644 --- a/src/services/recognize/tesseract/index.jsx +++ b/src/services/recognize/tesseract/index.jsx @@ -1,5 +1,5 @@ -import { info } from 'tauri-plugin-log-api'; import Tesseract from 'tesseract.js'; +import { Language } from './info'; export async function recognize(base64, language) { const { @@ -8,11 +8,12 @@ export async function recognize(base64, language) { workerPath: '/worker.min.js', corePath: '/tesseract-core.wasm.js', langPath: 'https://pub-f6afb74f13c64cd89561b4714dca1c27.r2.dev', - logger: (m) => { - info(m); - }, }); - return text.trim(); + if (language === Language.zh_cn || language === Language.zh_tw) { + return text.replaceAll(' ', '').trim(); + } else { + return text.trim(); + } } export * from './Config'; diff --git a/src/services/translate/bing/info.ts b/src/services/translate/bing/info.ts index a7e415c5db..173f719792 100644 --- a/src/services/translate/bing/info.ts +++ b/src/services/translate/bing/info.ts @@ -1,6 +1,6 @@ export const info = { name: 'bing', - icon: 'bing.svg', + icon: 'logo/bing.svg', }; export enum Language { diff --git a/src/services/translate/deepl/info.ts b/src/services/translate/deepl/info.ts index 5364b18033..38ce6ace8b 100644 --- a/src/services/translate/deepl/info.ts +++ b/src/services/translate/deepl/info.ts @@ -1,6 +1,6 @@ export const info = { name: 'deepl', - icon: 'deepl.svg', + icon: 'logo/deepl.svg', }; export enum Language { diff --git a/src/services/translate/google/info.ts b/src/services/translate/google/info.ts index 5b118d3f3f..0c5b96f17c 100644 --- a/src/services/translate/google/info.ts +++ b/src/services/translate/google/info.ts @@ -1,6 +1,6 @@ export const info = { name: 'google', - icon: 'google.svg', + icon: 'logo/google.svg', }; export enum Language { diff --git a/src/services/translate/openai/info.ts b/src/services/translate/openai/info.ts index 6bef56854a..d696323993 100644 --- a/src/services/translate/openai/info.ts +++ b/src/services/translate/openai/info.ts @@ -1,6 +1,6 @@ export const info = { name: 'openai', - icon: 'openai.svg', + icon: 'logo/openai.svg', }; export enum Language { diff --git a/src/services/translate/yandex/info.ts b/src/services/translate/yandex/info.ts index d1879033e0..1692e1e089 100644 --- a/src/services/translate/yandex/info.ts +++ b/src/services/translate/yandex/info.ts @@ -1,6 +1,6 @@ export const info = { name: 'yandex', - icon: 'yandex.svg', + icon: 'logo/yandex.svg', }; export enum Language { diff --git a/src/window/Config/pages/Service/Translate/SelectModal/index.jsx b/src/window/Config/pages/Service/Translate/SelectModal/index.jsx index fbb5c9dc95..6b26c146b4 100644 --- a/src/window/Config/pages/Service/Translate/SelectModal/index.jsx +++ b/src/window/Config/pages/Service/Translate/SelectModal/index.jsx @@ -2,7 +2,7 @@ import { Modal, ModalContent, ModalHeader, ModalBody, ModalFooter, Button } from import { useTranslation } from 'react-i18next'; import React from 'react'; -import * as buildinServices from '../../../../../../services/translate/index'; +import * as buildinServices from '../../../../../../services/translate'; export default function SelectModal(props) { const { isOpen, onOpenChange, setConfigName, onConfigOpen } = props; diff --git a/src/window/Config/pages/Service/Translate/ServiceItem/index.jsx b/src/window/Config/pages/Service/Translate/ServiceItem/index.jsx index e4f8117772..4e3b5356a9 100644 --- a/src/window/Config/pages/Service/Translate/ServiceItem/index.jsx +++ b/src/window/Config/pages/Service/Translate/ServiceItem/index.jsx @@ -5,6 +5,8 @@ import { useTranslation } from 'react-i18next'; import { BiSolidEdit } from 'react-icons/bi'; import React from 'react'; +import * as buildinServices from '../../../../../../services/translate'; + export default function ServiceItem(props) { const { name, deleteService, setConfigName, onConfigOpen, ...drag } = props; const { t } = useTranslation(); @@ -21,7 +23,7 @@ export default function ServiceItem(props) {