Socket
Socket
Sign inDemoInstall

dynamsoft-label-recognizer

Package Overview
Dependencies
15
Maintainers
4
Versions
32
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.2.30-iv-202301151737 to 2.2.30-iv-202301162358

2

dist/dlr-2.2.30.browser.worker.js

@@ -11,2 +11,2 @@ /*!

*/
!function(){"use strict";const e="undefined"==typeof self,t=e?{}:self,r=e=>e&&"object"==typeof e&&"function"==typeof e.then;class n extends Promise{constructor(e){let t,n;super(((e,r)=>{t=e,n=r})),this._s="pending",this.resolve=e=>{this.isPending&&(r(e)?this.task=e:(this._s="fulfilled",t(e)))},this.reject=e=>{this.isPending&&(this._s="rejected",n(e))},this.task=e}get status(){return this._s}get isPending(){return"pending"===this._s}get isFulfilled(){return"fulfilled"===this._s}get isRejected(){return"rejected"===this._s}get task(){return this._task}set task(e){let t;this._task=e,r(e)?t=e:"function"==typeof e&&(t=new Promise(e)),t&&(async()=>{try{const r=await t;e===this._task&&this.resolve(r)}catch(t){e===this._task&&this.reject(t)}})()}get isEmpty(){return null==this._task}}let a,o,i,s,c;if("undefined"!=typeof navigator&&(a=navigator,o=a.userAgent,i=a.platform,s=a.mediaDevices),!e){const e={Edge:{search:"Edg",verSearch:"Edg"},OPR:null,Chrome:null,Safari:{str:a.vendor,search:"Apple",verSearch:["Version","iPhone OS","CPU OS"]},Firefox:null,Explorer:{search:"MSIE",verSearch:"MSIE"}},t={HarmonyOS:null,Android:null,iPhone:null,iPad:null,Windows:{str:i,search:"Win"},Mac:{str:i},Linux:{str:i}};let r="unknownBrowser",n=0,s="unknownOS";for(let t in e){const a=e[t]||{};let i=a.str||o,s=a.search||t,c=a.verStr||o,d=a.verSearch||t;if(d instanceof Array||(d=[d]),-1!=i.indexOf(s)){r=t;for(let e of d){let t=c.indexOf(e);if(-1!=t){n=parseFloat(c.substring(t+e.length+1));break}}break}}for(let e in t){const r=t[e]||{};let n=r.str||o,a=r.search||e;if(-1!=n.indexOf(a)){s=e;break}}"Linux"==s&&-1!=o.indexOf("Windows NT")&&(s="HarmonyOS"),c={browser:r,version:n,OS:s}}e&&(c={browser:"ssr",version:0,OS:"ssr"}),"undefined"!=typeof WebAssembly&&o&&(!/Safari/.test(o)||/Chrome/.test(o)||/\(.+\s11_2_([2-6]).*\)/.test(o)),s&&s.getUserMedia;const d="Chrome"===c.browser&&c.version>66||"Safari"===c.browser&&c.version>13||"OPR"===c.browser&&c.version>43||"Edge"===c.browser&&c.version>15;var l=function(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}();function u(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(a){if("TypeError"!==a.name)throw a;for(var r=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),n=0;n<e.length;n+=1)r.append(e[n]);return r.getBlob(t.type)}}function f(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function h(e,t,r){"function"==typeof t&&e.then(t),"function"==typeof r&&e.catch(r)}function m(e){return"string"!=typeof e&&(console.warn(`${e} used as a key, but it is not a string.`),e=String(e)),e}function g(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}const y="local-forage-detect-blob-support";let p;const b={},v=Object.prototype.toString,w="readonly",M="readwrite";function S(e){return"boolean"==typeof p?Promise.resolve(p):function(e){return new Promise((function(t){var r=e.transaction(y,M),n=u([""]);r.objectStore(y).put(n,"key"),r.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},r.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),r=navigator.userAgent.match(/Edge\//);t(r||!e||parseInt(e[1],10)>=43)}})).catch((function(){return!1}))}(e).then((function(e){return p=e,p}))}function A(e){var t=b[e.name],r={};r.promise=new Promise((function(e,t){r.resolve=e,r.reject=t})),t.deferredOperations.push(r),t.dbReady?t.dbReady=t.dbReady.then((function(){return r.promise})):t.dbReady=r.promise}function C(e){var t=b[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function _(e,t){var r=b[e.name].deferredOperations.pop();if(r)return r.reject(t),r.promise}function L(e,t){return new Promise((function(r,n){if(b[e.name]=b[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!t)return r(e.db);A(e),e.db.close()}var a=[e.name];t&&a.push(e.version);var o=l.open.apply(l,a);t&&(o.onupgradeneeded=function(t){var r=o.result;try{r.createObjectStore(e.storeName),t.oldVersion<=1&&r.createObjectStore(y)}catch(r){if("ConstraintError"!==r.name)throw r;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),o.onerror=function(e){e.preventDefault(),n(o.error)},o.onsuccess=function(){var t=o.result;t.onversionchange=function(e){e.target.close()},r(t),C(e)}}))}function k(e){return L(e,!1)}function R(e){return L(e,!0)}function x(e,t){if(!e.db)return!0;var r=!e.db.objectStoreNames.contains(e.storeName),n=e.version<e.db.version,a=e.version>e.db.version;if(n&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),a||r){if(r){var o=e.db.version+1;o>e.version&&(e.version=o)}return!0}return!1}function N(e){var t=function(e){for(var t=e.length,r=new ArrayBuffer(t),n=new Uint8Array(r),a=0;a<t;a++)n[a]=e.charCodeAt(a);return r}(atob(e.data));return u([t],{type:e.type})}function T(e){var t=this,r=t._initReady().then((function(){var e=b[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return h(r,e,e),r}function I(e,t,r,n){void 0===n&&(n=1);try{var a=e.db.transaction(e.storeName,t);r(null,a)}catch(a){if(n>0&&(!e.db||"InvalidStateError"===a.name||"NotFoundError"===a.name))return Promise.resolve().then((()=>{if(!e.db||"NotFoundError"===a.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),R(e)})).then((()=>function(e){A(e);for(var t=b[e.name],r=t.forages,n=0;n<r.length;n++){const e=r[n];e._dbInfo.db&&(e._dbInfo.db.close(),e._dbInfo.db=null)}return e.db=null,k(e).then((t=>(e.db=t,x(e)?R(e):t))).then((n=>{e.db=t.db=n;for(var a=0;a<r.length;a++)r[a]._dbInfo.db=n})).catch((t=>{throw _(e,t),t}))}(e).then((function(){I(e,t,r,n-1)})))).catch(r);r(a)}}var P={_driver:"asyncStorage",_initStorage:function(e){var t=this,r={db:null};if(e)for(var n in e)r[n]=e[n];var a=b[r.name];a||(a={forages:[],db:null,dbReady:null,deferredOperations:[]},b[r.name]=a),a.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=T);var o=[];function i(){return Promise.resolve()}for(var s=0;s<a.forages.length;s++){var c=a.forages[s];c!==t&&o.push(c._initReady().catch(i))}var d=a.forages.slice(0);return Promise.all(o).then((function(){return r.db=a.db,k(r)})).then((function(e){return r.db=e,x(r,t._defaultConfig.version)?R(r):e})).then((function(e){r.db=a.db=e,t._dbInfo=r;for(var n=0;n<d.length;n++){var o=d[n];o!==t&&(o._dbInfo.db=r.db,o._dbInfo.version=r.version)}}))},_support:function(){try{if(!l||!l.open)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}(),getItem:function(e,t){var r=this;e=m(e);var n=new Promise((function(t,n){r.ready().then((function(){I(r._dbInfo,w,(function(a,o){if(a)return n(a);try{var i=o.objectStore(r._dbInfo.storeName).get(e);i.onsuccess=function(){var e=i.result;void 0===e&&(e=null),function(e){return e&&e.__local_forage_encoded_blob}(e)&&(e=N(e)),t(e)},i.onerror=function(){n(i.error)}}catch(e){n(e)}}))})).catch(n)}));return f(n,t),n},setItem:function(e,t,r){var n=this;e=m(e);var a=new Promise((function(r,a){var o;n.ready().then((function(){return o=n._dbInfo,"[object Blob]"===v.call(t)?S(o.db).then((function(e){return e?t:(r=t,new Promise((function(e,t){var n=new FileReader;n.onerror=t,n.onloadend=function(t){var n=btoa(t.target.result||"");e({__local_forage_encoded_blob:!0,data:n,type:r.type})},n.readAsBinaryString(r)})));var r})):t})).then((function(t){I(n._dbInfo,M,(function(o,i){if(o)return a(o);try{var s=i.objectStore(n._dbInfo.storeName);null===t&&(t=void 0);var c=s.put(t,e);i.oncomplete=function(){void 0===t&&(t=null),r(t)},i.onabort=i.onerror=function(){var e=c.error?c.error:c.transaction.error;a(e)}}catch(e){a(e)}}))})).catch(a)}));return f(a,r),a},removeItem:function(e,t){var r=this;e=m(e);var n=new Promise((function(t,n){r.ready().then((function(){I(r._dbInfo,M,(function(a,o){if(a)return n(a);try{var i=o.objectStore(r._dbInfo.storeName).delete(e);o.oncomplete=function(){t()},o.onerror=function(){n(i.error)},o.onabort=function(){var e=i.error?i.error:i.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return f(n,t),n},clear:function(e){var t=this,r=new Promise((function(e,r){t.ready().then((function(){I(t._dbInfo,M,(function(n,a){if(n)return r(n);try{var o=a.objectStore(t._dbInfo.storeName).clear();a.oncomplete=function(){e()},a.onabort=a.onerror=function(){var e=o.error?o.error:o.transaction.error;r(e)}}catch(e){r(e)}}))})).catch(r)}));return f(r,e),r},length:function(e){var t=this,r=new Promise((function(e,r){t.ready().then((function(){I(t._dbInfo,w,(function(n,a){if(n)return r(n);try{var o=a.objectStore(t._dbInfo.storeName).count();o.onsuccess=function(){e(o.result)},o.onerror=function(){r(o.error)}}catch(e){r(e)}}))})).catch(r)}));return f(r,e),r},keys:function(e){var t=this,r=new Promise((function(e,r){t.ready().then((function(){I(t._dbInfo,w,(function(n,a){if(n)return r(n);try{var o=a.objectStore(t._dbInfo.storeName).openKeyCursor(),i=[];o.onsuccess=function(){var t=o.result;t?(i.push(t.key),t.continue()):e(i)},o.onerror=function(){r(o.error)}}catch(e){r(e)}}))})).catch(r)}));return f(r,e),r},dropInstance:function(e,t){t=g.apply(this,arguments);var r=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||r.name,e.storeName=e.storeName||r.storeName);var n,a=this;if(e.name){const t=e.name===r.name&&a._dbInfo.db?Promise.resolve(a._dbInfo.db):k(e).then((t=>{const r=b[e.name],n=r.forages;r.db=t;for(var a=0;a<n.length;a++)n[a]._dbInfo.db=t;return t}));n=e.storeName?t.then((t=>{if(!t.objectStoreNames.contains(e.storeName))return;const r=t.version+1;A(e);const n=b[e.name],a=n.forages;t.close();for(let e=0;e<a.length;e++){const t=a[e];t._dbInfo.db=null,t._dbInfo.version=r}const o=new Promise(((t,n)=>{const a=l.open(e.name,r);a.onerror=e=>{a.result.close(),n(e)},a.onupgradeneeded=()=>{a.result.deleteObjectStore(e.storeName)},a.onsuccess=()=>{const e=a.result;e.close(),t(e)}}));return o.then((e=>{n.db=e;for(let t=0;t<a.length;t++){const r=a[t];r._dbInfo.db=e,C(r._dbInfo)}})).catch((t=>{throw(_(e,t)||Promise.resolve()).catch((()=>{})),t}))})):t.then((t=>{A(e);const r=b[e.name],n=r.forages;t.close();for(var a=0;a<n.length;a++){n[a]._dbInfo.db=null}const o=new Promise(((t,r)=>{var n=l.deleteDatabase(e.name);n.onerror=()=>{const e=n.result;e&&e.close(),r(n.error)},n.onblocked=()=>{console.warn('dropInstance blocked for database "'+e.name+'" until all open connections are closed')},n.onsuccess=()=>{const e=n.result;e&&e.close(),t(e)}}));return o.then((e=>{r.db=e;for(var t=0;t<n.length;t++){C(n[t]._dbInfo)}})).catch((t=>{throw(_(e,t)||Promise.resolve()).catch((()=>{})),t}))}))}else n=Promise.reject("Invalid arguments");return f(n,t),n}};const B=new Map;function Z(e,t){let r=e.name+"/";return e.storeName!==t.storeName&&(r+=e.storeName+"/"),r}var D={_driver:"tempStorageWrapper",_initStorage:async function(e){const t={};if(e)for(let r in e)t[r]=e[r];const r=t.keyPrefix=Z(e,this._defaultConfig);this._dbInfo=t,B.has(r)||B.set(r,new Map)},getItem:function(e,t){e=m(e);const r=this.ready().then((()=>B.get(this._dbInfo.keyPrefix).get(e)));return f(r,t),r},setItem:function(e,t,r){e=m(e);const n=this.ready().then((()=>(void 0===t&&(t=null),B.get(this._dbInfo.keyPrefix).set(e,t),t)));return f(n,r),n},removeItem:function(e,t){e=m(e);const r=this.ready().then((()=>{B.get(this._dbInfo.keyPrefix).delete(e)}));return f(r,t),r},clear:function(e){const t=this.ready().then((()=>{const e=this._dbInfo.keyPrefix;B.has(e)&&B.delete(e)}));return f(t,e),t},length:function(e){const t=this.ready().then((()=>B.get(this._dbInfo.keyPrefix).size));return f(t,e),t},keys:function(e){const t=this.ready().then((()=>[...B.get(this._dbInfo.keyPrefix).keys()]));return f(t,e),t},dropInstance:function(e,t){if(t=g.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){const t=this.config();e.name=e.name||t.name,e.storeName=e.storeName||t.storeName}let r;return r=e.name?new Promise((t=>{e.storeName?t(Z(e,this._defaultConfig)):t(`${e.name}/`)})).then((e=>{B.delete(e)})):Promise.reject("Invalid arguments"),f(r,t),r}};const O=(e,t)=>{const r=e.length;let n=0;for(;n<r;){if((a=e[n])===(o=t)||"number"==typeof a&&"number"==typeof o&&isNaN(a)&&isNaN(o))return!0;n++}var a,o;return!1},E=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},F={},z={},U={INDEXEDDB:P,TEMPSTORAGE:D},j=[U.INDEXEDDB._driver,U.TEMPSTORAGE._driver],H=["dropInstance"],G=["clear","getItem","keys","length","removeItem","setItem"].concat(H),J={description:"",driver:j.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function W(e,t){e[t]=function(){const r=arguments;return e.ready().then((function(){return e[t].apply(e,r)}))}}function V(){for(let e=1;e<arguments.length;e++){const t=arguments[e];if(t)for(let e in t)t.hasOwnProperty(e)&&(E(t[e])?arguments[0][e]=t[e].slice():arguments[0][e]=t[e])}return arguments[0]}class ${constructor(e){for(let e in U)if(U.hasOwnProperty(e)){const t=U[e],r=t._driver;this[e]=r,F[r]||this.defineDriver(t)}this._defaultConfig=V({},J),this._config=V({},this._defaultConfig,e),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((()=>{}))}config(e){if("object"==typeof e){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(let t in e){if("storeName"===t&&(e[t]=e[t].replace(/\W/g,"_")),"version"===t&&"number"!=typeof e[t])return new Error("Database version must be a number.");this._config[t]=e[t]}return!("driver"in e)||!e.driver||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config}defineDriver(e,t,r){const n=new Promise((function(t,r){try{const n=e._driver,a=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void r(a);const o=G.concat("_initStorage");for(let t=0,n=o.length;t<n;t++){const n=o[t];if((!O(H,n)||e[n])&&"function"!=typeof e[n])return void r(a)}const i=function(){const t=function(e){return function(){const t=new Error(`Method ${e} is not implemented by the current driver`),r=Promise.reject(t);return f(r,arguments[arguments.length-1]),r}};for(let r=0,n=H.length;r<n;r++){const n=H[r];e[n]||(e[n]=t(n))}};i();const s=function(r){F[n]&&console.info(`Redefining LocalForage driver: ${n}`),F[n]=e,z[n]=r,t()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(s,r):s(!!e._support):s(!0)}catch(e){r(e)}}));return h(n,t,r),n}driver(){return this._driver||null}getDriver(e,t,r){const n=F[e]?Promise.resolve(F[e]):Promise.reject(new Error("Driver not found."));return h(n,t,r),n}ready(e){const t=this,r=t._driverSet.then((()=>(null===t._ready&&(t._ready=t._initDriver()),t._ready)));return h(r,e,e),r}setDriver(e,t,r){const n=this;E(e)||(e=[e]);const a=this._getSupportedDrivers(e);function o(){n._config.driver=n.driver()}function i(e){return n._extend(e),o(),n._ready=n._initStorage(n._config),n._ready}const s=null!==this._driverSet?this._driverSet.catch((()=>Promise.resolve())):Promise.resolve();return this._driverSet=s.then((()=>{const e=a[0];return n._dbInfo=null,n._ready=null,n.getDriver(e).then((e=>{n._driver=e._driver,o(),n._wrapLibraryMethodsWithReady(),n._initDriver=function(e){return function(){let t=0;return function r(){for(;t<e.length;){let a=e[t];return t++,n._dbInfo=null,n._ready=null,n.getDriver(a).then(i).catch(r)}o();const a=new Error("No available storage method found.");return n._driverSet=Promise.reject(a),n._driverSet}()}}(a)}))})).catch((()=>{o();const e=new Error("No available storage method found.");return n._driverSet=Promise.reject(e),n._driverSet})),h(this._driverSet,t,r),this._driverSet}supports(e){return!!z[e]}_extend(e){V(this,e)}_getSupportedDrivers(e){const t=[];for(let r=0,n=e.length;r<n;r++){const n=e[r];this.supports(n)&&t.push(n)}return t}_wrapLibraryMethodsWithReady(){for(let e=0,t=G.length;e<t;e++)W(this,G[e])}createInstance(e){return new $(e)}}var K=new $;Date.prototype.kUtilFormat=function(e){const t={"M+":this.getUTCMonth()+1,"d+":this.getUTCDate(),"H+":this.getUTCHours(),"h+":this.getUTCHours()%12||12,"m+":this.getUTCMinutes(),"s+":this.getUTCSeconds(),"q+":Math.floor((this.getUTCMonth()+3)/3),"S+":this.getUTCMilliseconds()};/(y+)/.test(e)&&(e=e.replace(RegExp.$1,(this.getUTCFullYear()+"").substr(4-RegExp.$1.length)));for(let r in t)new RegExp("("+r+")").test(e)&&(e=e.replace(RegExp.$1,1==RegExp.$1.length?t[r]:("000"+t[r]).substr(("000"+t[r]).length-RegExp.$1.length)));return e};let X,Y,q,Q,ee,te,re,ne=e=>{let r,a,o,i,s,c,l,u,f,h=t.btoa,m=t.atob,g=e.bd,y=e.dm;const p=["https://mlts.dynamsoft.com/","https://slts.dynamsoft.com/"];let b,v,w,M,S,A,C,_,L,k,R,x,N,T,I=p,P=!1,B=Promise.resolve(),Z=e.log&&((...t)=>{try{e.log.apply(null,t)}catch(e){setTimeout((()=>{throw e}),0)}})||(()=>{}),D=g&&Z||(()=>{}),O=e=>e.join(""),E={a:[80,88,27,82,145,164,199,211],b:[187,87,89,128,150,44,190,213],c:[89,51,74,53,99,72,82,118],d:[99,181,118,158,215,103,76,117],e:[99,51,86,105,100,71,120,108],f:[97,87,49,119,98,51,74,48,83,50,86,53],g:[81,85,86,84,76,85,100,68,84,81,32,32],h:[90,87,53,106,99,110,108,119,100,65,32,32],i:[90,71,86,106,99,110,108,119,100,65,32,32],j:[97,88,89,32],k:[29,83,122,137,5,180,157,114],l:[100,71,70,110,84,71,86,117,90,51,82,111]},F=()=>t[O(E.c)][O(E.e)][O(E.f)]("raw",new Uint8Array(E.a.concat(E.b,E.d,E.k)),O(E.g),!0,[O(E.h),O(E.i)]),z=e=>m(m(e.replace(/\n/g,"+").replace(/\s/g,"=")).substring(1)),U=e=>h(String.fromCharCode(97+25*Math.random())+h(e)).replace(/\+/g,"\n").replace(/=/g," "),j=()=>{if(t.crypto){let e=new Uint8Array(36);t.crypto.getRandomValues(e);let r="";for(let t=0;t<36;++t){let n=e[t]%36;r+=n<10?n:String.fromCharCode(n+87)}return r}return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))};const H="Failed to connect to the Dynamsoft License Server: ",G={dlsErrorAndCacheExpire:H+"The cached license has expired. Please get connected to the network as soon as possible or contact the site administrator for more information.",publicTrialNetworkTimeout:H+"network timed out. Check your Internet connection or [contact Dynamsoft](https://www.dynamsoft.com/company/contact/) for more information.",networkTimeout:H+"network timed out. Check your Internet connection or contact the site administrator for more information.",publicTrialFailConnect:H+"network connection error. Check your Internet connection or [contact Dynamsoft](https://www.dynamsoft.com/company/contact/) for more information.",failConnect:H+"network connection error. Check your Internet connection or contact the site administrator for more information.",checkLocalTime:"Your system date and time appear to have been changed, causing the license to fail. Please correct the system data and time and try again.",idbTimeout:"Failed to open indexedDB: Timeout."};let J,W,V,$=async()=>{if(J)return J;J=new n,await(async()=>{A||(A=K)})(),await Promise.race([(async()=>{let e=await A.createInstance({name:"dynamjssdkhello"});await e.setItem("dynamjssdkhello","available")})(),new Promise(((e,t)=>{setTimeout((()=>t(new Error(G.idbTimeout))),5e3)}))]),_=await A.createInstance({name:"dynamdlsinfo"}),L=h(h("v2")+String.fromCharCode(y.charCodeAt(y.length/2)+1)+h(y));try{let e=await _.getItem(L);e&&([l,M]=JSON.parse(await z(e)))}catch(e){}try{null==l&&(l=j(),_.setItem(L,await U(JSON.stringify([l,null]))))}catch(e){}J.resolve()},X=async()=>{k=h(String.fromCharCode(i.charCodeAt(0)+10)+h(r)+h(i)+o+h(""+c)),C=await A.createInstance({name:"dynamdlsuns"+h(h("v2"))+h(String.fromCharCode(i.charCodeAt(0)+10)+h(r)+h(i)+o+h(""+c))});try{s=await _.getItem(k)}catch(e){}O=e=>m(String.fromCharCode.apply(null,e).replace(/\n/g,"+").replace(/\s/g,"="))},Y=async e=>{if(W)return W;W=new n;try{let t={pd:r,vm:o,v:a,dt:c||"browser",ed:"javascript",cu:l,ad:y,os:u,fn:f};w&&(t.rmk=w),i&&(t=-1!=i.indexOf("-")?{...t,hs:i}:{...t,og:i});let n={};if(M){let e=await _.getItem(L);e&&([l,M]=JSON.parse(await z(e))),n["lts-time"]=M}v&&(t.sp=v);let d=await Promise.race([(async()=>{let r,a=(new Date).kUtilFormat("yyyy-MM-ddTHH:mm:ss.SSSZ");M&&(_.setItem(L,await U(JSON.stringify([l,a]))),M=a);let o,i="auth/?ext="+encodeURIComponent(h(JSON.stringify(t))),c=!1,d=!1,u=async e=>{if(e&&!e.ok)try{let t=await e.text();if(t){let e=JSON.parse(t);e.errorCode&&(o=e,e.errorCode>100&&e.errorCode<200&&(s=null,c=!0,d=!0))}}catch(e){}};try{r=await Promise.race([fetch(I[0]+i,{headers:n,cache:e?"reload":"default",mode:"cors"}),new Promise(((e,t)=>setTimeout(t,1e4)))]),await u(r)}catch(e){}if(!(s||r&&r.ok||c))try{r=await Promise.race([fetch(I[1]+i,{headers:n,mode:"cors"}),new Promise(((e,t)=>setTimeout(t,3e4)))]),await u(r)}catch(e){}if(!(s||r&&r.ok||c))try{r=await Promise.race([fetch(I[0]+i,{headers:n,mode:"cors"}),new Promise(((e,t)=>setTimeout(t,3e4)))]),await u(r)}catch(e){}o&&151==o.errorCode&&(_.removeItem(L),_.removeItem(k),l=j(),t.cu=l,M=void 0,i="auth/?ext="+encodeURIComponent(h(JSON.stringify(t))),r=await Promise.race([fetch(I[0]+i,{headers:n,mode:"cors"}),new Promise(((e,t)=>setTimeout(t,3e4)))]),await u(r));(()=>{if(!r||!r.ok){let e;d&&_.setItem(k,""),o?111==o.errorCode?e=o.message:(e=o.message.trim(),e.endsWith(".")||(e+="."),e=b?`An error occurred during authorization: ${e} [Contact Dynamsoft](https://www.dynamsoft.com/company/contact/) for more information.`:`An error occurred during authorization: ${e} Contact the site administrator for more information.`):e=b?G.publicTrialFailConnect:G.failConnect;let t=Error(e);throw o&&o.errorCode&&(t.ltsErrorCode=o.errorCode),t}})();let f=await r.text();try{M||(_.setItem(L,await U(JSON.stringify([l,a]))),M=a),_.setItem(k,f)}catch(e){}return f})(),new Promise(((e,t)=>{let r;r=b?G.publicTrialNetworkTimeout:G.networkTimeout,setTimeout((()=>t(new Error(r))),s?3e3:15e3)}))]);s=d}catch(e){g&&console.error(e),S=e}W.resolve(),W=null},q=async()=>{V||(V=(async()=>{if(D(l),!s){if(!P)throw Z(S.message),S;return}let e={dm:y};g&&(e.bd=!0),e.brtk=!0,e.ls=I[0],i&&(-1!=i.indexOf("-")?e.hs=i:e.og=i),e.cu=l,f&&(e.fn=f),r&&(e.pd=r),a&&(e.v=a),c&&(e.dt=c),u&&(e.os=u),w&&(e.rmk=w),D(s);try{let r=JSON.parse(await(async e=>{if(t[O(E.c)]&&t[O(E.c)][O(E.e)]&&t[O(E.c)][O(E.e)][O(E.f)]){let r=m(e),n=new Uint8Array(r.length);for(let e=0;e<r.length;++e)n[e]=r.charCodeAt(e);let a=n.subarray(0,12),o=n.subarray(a.length);T||(T=await F());let i=await t[O(E.c)][O(E.e)][O(E.i)]({name:O(E.g),[O(E.j)]:a,[O(E.l)]:128},T,o);return String.fromCharCode.apply(null,new Uint8Array(i))}})(s));r.ba&&(e.ba=r.ba),r.usu&&(e.usu=r.usu),r.trial&&(e.trial=r.trial),r.its&&(e.its=r.its),1==e.trial&&r.msg?e.msg=r.msg:S?e.msg=S.message||S:r.msg&&(e.msg=r.msg),e.ar=r.in,e.bafc=!!S}catch(e){}D(e);try{await R(e)}catch(e){D("error updl")}await Q(),P||(P=!0),V=null})()),await V},Q=async()=>{let e=(new Date).kUtilFormat("yyyy-MM-ddTHH:mm:ss.SSSZ"),t=await N();if(D(t),t&&t<e)throw S?new Error(G.dlsErrorAndCacheExpire):new Error(G.checkLocalTime)};const ee=new n;let te=null,re=async(e,t)=>(B=B.then((async()=>{try{let r=await C.keys();if(t||(ee.isFulfilled?e&&(r=r.filter((t=>t<e))):e&&r.includes(e)?r=[e]:(r=[],D("Unexpected null key"))),!r.length)return;for(let e=0;e<r.length/1e3;++e){let t=r.slice(1e3*e,1e3*(e+1)),n=[];for(let e=0;e<t.length;++e)n.push(await C.getItem(t[e]));M=(new Date).kUtilFormat("yyyy-MM-ddTHH:mm:ss.SSSZ");{let e=await _.getItem(L);e&&([l]=JSON.parse(await z(e))),_.setItem(L,await U(JSON.stringify([l,M])))}try{let e,r=I[0]+"verify/v2";M&&(r+="?ltstime="+encodeURIComponent(M));try{e=fetch(r,{method:"POST",body:n.join(";"),keepalive:!0})}catch(e){throw e}finally{!ee.isFulfilled&&d&&ee.resolve()}let a=await e;if(ee.isFulfilled||ee.resolve(),!a.ok)throw new Error("verify failed. Status Code: "+a.status);for(let e=0;e<t.length;++e)await C.removeItem(t[e])}catch(e){throw ee.isFulfilled||ee.resolve(),e}}}catch(e){}})),await B);return{i:async e=>{r=e.pd,a=e.v,o=a.split(".")[0],e.dt&&(c=e.dt),i=e.l||"",u="string"!=typeof e.os?JSON.stringify(e.os):e.os,f=e.fn,"string"==typeof f&&(f=f.substring(0,50)),e.ls&&e.ls.length&&(I=e.ls,1==I.length&&I.push(I[0])),b=p===I&&(!i||"200001"===i||i.startsWith("200001-")),v=e.sp,w=e.rmk,R=e.updl,x=e.mnet,N=e.mxet,await $(),await X(),await Y(),await q(),(!S||S.ltsErrorCode>=102&&S.ltsErrorCode<=120)&&re(null,!0)},c:async()=>{let e=new Date,t=e.kUtilFormat("yyyy-MM-ddTHH:mm:ss.SSSZ"),r=await x(),n=await N();if(n&&n<t)await Y(!0),await q();else if(r&&r<t){e.setMinutes(e.getMinutes()-6);let t=e;e=null;let r=t.kUtilFormat("yyyy-MM-ddTHH:mm:ss.SSSZ");M<r&&Y().then((()=>q()))}},s:async(e,r,n,a)=>{try{let e;e=r.startsWith("{")&&r.endsWith("}")?await(async e=>{if(t[O(E.c)]&&t[O(E.c)][O(E.e)]&&t[O(E.c)][O(E.e)][O(E.f)]){let r=new Uint8Array(e.length);for(let t=0;t<e.length;++t)r[t]=e.charCodeAt(t);let n=t.crypto.getRandomValues(new Uint8Array(12));T||(T=await F());let a=await t[O(E.c)][O(E.e)][O(E.h)]({name:O(E.g),[O(E.j)]:n,[O(E.l)]:128},T,r),o=new Uint8Array(a),i=new Uint8Array(n.length+o.length);return i.set(n),i.set(o,n.length),h(String.fromCharCode.apply(null,i))}})(r):r,e?(D("bs "+n),await C.setItem(n,e),D("ss "+n)):D("ept ecpt")}catch(e){}a&&(D("bd "+n),await re(n),D("sd "+n)),te&&clearTimeout(te),te=setTimeout((async()=>{await re()}),36e4)},p:ee,u:async()=>(await $(),l)}},ae=t,oe="LabelRecognizerWasm",ie=0,se=0;let ce=new n,de=!1,le=async e=>{await ce,ee=e.trial,te=e.msg,Module[oe].init(JSON.stringify(e))},ue=()=>{let e=Module[oe].getMinExpireTime;return e?e():null},fe=()=>{let e=Module[oe].getMaxExpireTime;return e?e():null},he={},me=new Map,ge=0;const ye=async(e,t)=>{he[e]||(t?"@engineResourcePath"===t&&(t=Y):t="",t+=e+"/",he[e]=(async()=>{try{let r,n,a;ae.postMessage({type:"event",body:{type:"resourcesLoadStarted",resourcesPath:t+e+".data"}});const o=new TextDecoder;{const n=await new Promise(((r,n)=>{const a=new XMLHttpRequest;a.responseType="arraybuffer",a.onload=()=>{r({ok:!0,arrayBuffer:()=>a.response})},a.onerror=a.timeout=a.onabort=()=>{r({ok:!1,status:a.status})};let o=Date.now();a.onprogress=r=>{if(r.lengthComputable){const n=Date.now();o+500<n&&(ae.postMessage({type:"event",body:{type:"resourcesLoadProgress",loaded:r.loaded,total:r.total,resourcesPath:t+e+".data"}}),o=n)}},a.open("GET",t+e+".data",!0),a.send()}));if(!n.ok)throw new Error(`Network error. Status: ${n.status}.`);r=await n.arrayBuffer()}{if(!o.decode(new Uint8Array(r,0,8)).startsWith("DLR_MDL"))throw new Error("Model data type incorrect.");let e=0;const t=new Uint8Array(r,8,8);for(let r=7;r>=0;--r)e=256*e+t[r];const i=o.decode(new Uint8Array(r,16,e));n=JSON.parse(i),a=16+e}let i=e=>{const t=n[e];if(!t)throw new Error("File name not found.");return new Uint8Array(r,a+t[0],t[1])},s=JSON.parse(o.decode(i(e+".config.json")));const c=s.mainModel,d=s.assistModels,l=s.modelFilter;{const t=i(c+".prototxt"),r=i(c+".txt"),n=i(c+".caffemodel");Module[oe].appendCaffeModelBuffer(e,t,r,n)}if(d)for(let t of d){const r=e+t,n=c+t,a=i(n+".prototxt"),o=i(n+".txt"),s=i(n+".caffemodel");Module[oe].appendCaffeModelBuffer(r,a,o,s)}return l&&Module[oe].appendModelFilterFileBuffer(e,i(l+".txt")),he[e]=!0,ae.postMessage({type:"event",body:{type:"resourcesLoaded",resourcesPath:t+e+".data"}}),!0}catch(t){throw delete he[e],t}})()),await he[e]},pe="(P[A-Z<][A-Z<]{3}([A-Z<]{0,35}[A-Z]{1,3}[(<<)][A-Z]{1,3}[A-Z<]{0,35}<{0,35}){(39)}){(44)}|\n(P[A-Z<][A-Z<]{3}[A-Z<]{39}){(44)}|\n([A-Z0-9<]{9}[0-9][A-Z<]{3}[0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]{2}[(01-12)][(01-31)][0-9][A-Z0-9<]{14}[0-9<][0-9]){(44)}",be="(V[A-Z<][A-Z<]{3}[A-Z<]{31}){(36)}|\n([A-Z0-9<]{9}[0-9][A-Z<]{3}[0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]{2}[(01-12)][(01-31)][0-9][A-Z0-9<]{8}){(36)}|\n(V[A-Z<][A-Z<]{3}[A-Z<]{39}){(44)}|\n([A-Z0-9<]{9}[0-9][A-Z<]{3}[0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]{2}[(01-12)][(01-31)][0-9][A-Z0-9<]{14}[A-Z0-9<]{2}){(44)}",ve="([ACI][A-Z<][A-Z<]{3}[A-Z0-9<]{9}[0-9][A-Z0-9<]{15}){(30)}|\n([0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]{2}[(01-12)][(01-31)][0-9][A-Z<]{3}[A-Z0-9<]{11}[0-9]){(30)}|\n([A-Z<]{30}){(30)}|\n([ACI][A-Z<][A-Z<]{3}[A-Z<]{31}){(36)}|([A-Z0-9<]{9}[0-9][A-Z<]{3}[0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]{2}[(01-12)][(01-31)][0-9][A-Z0-9<]{8}){(36)}|\n(I[A-Z<]FRA[A-Z<]{25}[A-Z0-9<]{6}){(36)}|([A-Z0-9<]{12}[0-9][A-Z<]{14}[0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]){(36)}",we="([ACI][A-Z<][A-Z<]{3}[A-Z0-9<]{9}[0-9][A-Z0-9<]{15}){(30)}|\n([0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]{2}[(01-12)][(01-31)][0-9][A-Z<]{3}[A-Z0-9<]{11}[0-9]){(30)}|\n([A-Z<]{30}){(30)}|\n([ACIV][A-Z<][A-Z<]{3}[A-Z<]{31}){(36)}|\n([A-Z0-9<]{9}[0-9][A-Z<]{3}[0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]{2}[(01-12)][(01-31)][0-9][A-Z0-9<]{8}){(36)}|\n(I[A-Z<]FRA[A-Z<]{25}[A-Z0-9<]{6}){(36)}|\n([A-Z0-9<]{12}[0-9][A-Z<]{14}[0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]){(36)}([PV][A-Z<][A-Z<]{3}[A-Z<]{39}){(44)}|\n([A-Z0-9<]{9}[0-9][A-Z<]{3}[0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]{2}[(01-12)][(01-31)][0-9][A-Z0-9<]{14}[A-Z0-9<]{2}){(44)}",Me="([0-9A-Z]{17,19}){(17,19)}",Se=e=>{e.CharacterModelArray[0].Name="VIN";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="VIN",t.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},t.BinarizationModes[0].Mode="BM_LOCAL_BLOCK",t.BinarizationModes[0].EnableFillBinaryVacancy=0,t.LineStringRegExPattern=Me,t.LineStringLengthRange=[17,19],t.LetterHeightRange=[5,1e3,1];const r=e.TextAreaArray[0];r.CharacterModelName="VIN",r.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},r.BinarizationModes[0].Mode="BM_LOCAL_BLOCK",r.BinarizationModes[0].EnableFillBinaryVacancy=0,r.LineStringRegExPattern=Me,r.LineStringLengthRange=[17,19],r.LetterHeightRange=[5,1e3,1]};let Ae=async function(e){const r=e.data?e.data:e,n=r.id,a=r.instanceID,o=r.body;switch(Q&&"recognizeByBuffer"==r.type&&await re.c(),r.type){case"loadWasm":try{X=r.bd,Y=r.engineResourcePath,q=r.v;let e=r.dm,n=r.l;Q=r.brtk;let a,o=r.bptk;(async()=>{if(de)throw"can't load wasm twice";de=!0,Ce("wasm loading...");let e=Date.now();await new Promise((async e=>{t.KModule=t.Module={locateFile:function(e){return"libDynamsoftLabelRecognizer.wasm"==e?Y+"dlr-"+q+".wasm":Y+e},print:e=>{Ce(e)},printErr:e=>{Ce(e)},onRuntimeInitialized:e},importScripts(Y+"dlr-"+q+".wasm.js")})),Ce("wasm initialized, cost "+(Date.now()-e)+" ms"),Module=KModule,ce.resolve()})();let i=async()=>{try{re=ne({log:Ce,bd:X,dm:e}),t.scsd=re.s,r.pd="dlr",r.updl=le,r.mnet=ue,r.mxet=fe,await re.i(r)}catch(e){if(!o)throw e;Q=!1,await s(),a=e.ltsErrorCode,te=e.message||e}},s=async()=>{let t={pk:n,dm:e};X&&(t.bd=!0),await le(t)};Q?await i():await s(),ae.postMessage({type:"load",success:!0,version:Module[oe].getVersion(),trial:ee,ltsErrorCode:a,message:te})}catch(e){let t=e&&e.message;ae.postMessage({type:"load",success:!1,ltsErrorCode:e&&e.ltsErrorCode,message:t,trial:ee,stack:X&&e?e.stack:null})}break;case"createInstance":{const e=ge++;try{let t=new Module[oe](r.bScanner,e);t.currentCaffeModelName="NumberLetter",me.set(e,t)}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0,instanceID:e}});break}case"destroy":try{if(!me.get(a))break;me.get(a).delete(),me.delete(a)}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"recognizeByBuffer":{let e,t,r,c,d=Date.now(),l=o.imageData.bytes;try{const n=me.get(a);await ye(n.currentCaffeModelName,Y),e=X?Date.now():0,i=o.imageData.bytes,(s=o.imageData.stride*o.imageData.height)>ie&&(se&&Module._free(se),se=Module._malloc(s),ie=s),Module.HEAPU8.set(i.subarray(0,s),se),o.imageData.bytes={ptr:se},t=X?Date.now():0,c=JSON.parse(n.recognizeByBuffer(JSON.stringify(o.imageData),o.config&&o.config.modelName||"",!(!o.config||!o.config.bScanner))),r=Date.now()}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0,decodeReturn:c,buffer:l,duration:Date.now()-d}}),_e(["timeWorkerGetMsg: "+d,"timeBeforeSendBufferToWasm: "+e+" "+(e-d),"timeBeforeDecode: "+t+" "+(t-e),"timeFinishDecode: "+r+" "+(r-t)].join("\n"));break}case"updateReferenceRegionFromBarcodeResults":{let e;try{e=JSON.parse(me.get(a).updateReferenceRegionFromBarcodeResults(JSON.stringify(o.dbrTextResults),""))}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0,updateReturn:e}});break}case"clearMapDecodeRecord":try{me.get(a).clearMapDecodeRecord()}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"resetRuntimeSettings":try{const e=me.get(a);e.currentCaffeModelName="NumberLetter",e.resetRuntimeSettings()}catch(t){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"appendSettingsFromString":{let e;try{e=JSON.parse(me.get(a).appendSettingsFromString(o.settings))}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0,updateReturn:e}});break}case"clearAppendedSettings":try{me.get(a).clearAppendedSettings()}catch(t){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"updateRuntimeSettingsFromString":{let e;try{const t=me.get(a);let r=o.settings;if("string"==typeof r)if(r=r.trim(),r.startsWith("{"))r=JSON.parse(r);else{if(r.length>50)throw new Error("Error: preset longer than 50 letters.");const e=r.toLowerCase().split("-");if(e.length>2)throw new Error(`Error: '${r}' is not supported.`);if(t.resetRuntimeSettings(),r=JSON.parse(t.outputSettingsToString()),e.includes("numberletter"))(e=>{e.CharacterModelArray[0].Name="NumberLetter";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="NumberLetter",t.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},t.LetterHeightRange[0]=5,t.LineStringLengthRange=[3,999];const r=e.TextAreaArray[0];r.CharacterModelName="NumberLetter",r.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},r.LetterHeightRange[0]=5,r.LineStringLengthRange=[3,999]})(r);else if(e.includes("number"))(e=>{e.CharacterModelArray[0].Name="Number";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="Number",t.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},t.LetterHeightRange[0]=5;const r=e.TextAreaArray[0];r.CharacterModelName="Number",r.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},r.LetterHeightRange[0]=5,r.LineStringLengthRange=[3,999]})(r);else if(e.includes("letter"))(e=>{e.CharacterModelArray[0].Name="Letter";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="Letter",t.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},t.LetterHeightRange[0]=5,t.LineStringLengthRange=[3,999];const r=e.TextAreaArray[0];r.CharacterModelName="Letter",r.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},r.LetterHeightRange[0]=5,r.LineStringLengthRange=[3,999]})(r);else if(e.includes("numberuppercase"))(e=>{e.CharacterModelArray[0].Name="NumberUppercase";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="NumberUppercase",t.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},t.LetterHeightRange[0]=5,t.LineStringLengthRange=[3,999];const r=e.TextAreaArray[0];r.CharacterModelName="NumberUppercase",r.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},r.LetterHeightRange[0]=5,r.LineStringLengthRange=[3,999]})(r);else if(e.includes("passportmrz"))(e=>{e.CharacterModelArray[0].Name="MRZ";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="MRZ",t.LetterHeightRange[0]=5,t.LineStringLengthRange=[44,44],t.LineStringRegExPattern=pe.replace(/[\n\s]/g,""),t.MaxLineCharacterSpacing=130,t.TextureDetectionModes[0].Sensitivity=8,t.BinarizationModes[0].ThresholdCompensation=15,e.LineSpecificationArray=[{Name:"L0",LineNumber:"",BinarizationModes:[{BlockSizeX:30,BlockSizeY:30,Mode:"BM_LOCAL_BLOCK"}]}];const r=e.TextAreaArray[0];r.CharacterModelName="MRZ",r.LetterHeightRange[0]=5,r.LineStringLengthRange=[44,44],r.LineStringRegExPattern=pe.replace(/[\n\s]/g,""),r.MaxLineCharacterSpacing=130,r.TextureDetectionModes[0].Sensitivity=8,r.LineSpecificationNameArray=["L0"],r.BinarizationModes[0].ThresholdCompensation=15})(r);else if(e.includes("visamrz"))(e=>{e.CharacterModelArray[0].Name="MRZ";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="MRZ",t.LetterHeightRange[0]=5,t.LineStringLengthRange=[36,44],t.LineStringRegExPattern=be.replace(/[\n\s]/g,""),t.MaxLineCharacterSpacing=130,t.TextureDetectionModes[0].Sensitivity=8,t.BinarizationModes[0].ThresholdCompensation=15,e.LineSpecificationArray=[{Name:"L0",LineNumber:"",BinarizationModes:[{BlockSizeX:30,BlockSizeY:30,Mode:"BM_LOCAL_BLOCK"}]}];const r=e.TextAreaArray[0];r.CharacterModelName="MRZ",r.LetterHeightRange[0]=5,r.LineStringLengthRange=[36,44],r.LineStringRegExPattern=be.replace(/[\n\s]/g,""),r.MaxLineCharacterSpacing=130,r.TextureDetectionModes[0].Sensitivity=8,r.LineSpecificationNameArray=["L0"],r.BinarizationModes[0].ThresholdCompensation=15})(r);else if(e.includes("idcardmrz"))(e=>{e.CharacterModelArray[0].Name="MRZ";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="MRZ",t.LetterHeightRange[0]=5,t.LineStringLengthRange=[30,36],t.LineStringRegExPattern=ve.replace(/[\n\s]/g,""),t.MaxLineCharacterSpacing=130,t.TextureDetectionModes[0].Sensitivity=8,t.BinarizationModes[0].ThresholdCompensation=15,e.LineSpecificationArray=[{Name:"L0",LineNumber:"",BinarizationModes:[{BlockSizeX:30,BlockSizeY:30,Mode:"BM_LOCAL_BLOCK"}]}];const r=e.TextAreaArray[0];r.CharacterModelName="MRZ",r.LetterHeightRange[0]=5,r.LineStringLengthRange=[30,36],r.LineStringRegExPattern=ve.replace(/[\n\s]/g,""),r.MaxLineCharacterSpacing=130,r.TextureDetectionModes[0].Sensitivity=8,r.LineSpecificationNameArray=["L0"],r.BinarizationModes[0].ThresholdCompensation=15})(r);else if(e.includes("mrz"))(e=>{e.CharacterModelArray[0].Name="MRZ";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="MRZ",t.LetterHeightRange[0]=5,t.LineStringLengthRange=[30,44],t.LineStringRegExPattern=we.replace(/[\n\s]/g,""),t.MaxLineCharacterSpacing=130,t.TextureDetectionModes[0].Sensitivity=8,t.BinarizationModes[0].ThresholdCompensation=15,e.LineSpecificationArray=[{Name:"L0",LineNumber:"",BinarizationModes:[{BlockSizeX:30,BlockSizeY:30,Mode:"BM_LOCAL_BLOCK"}]}];const r=e.TextAreaArray[0];r.CharacterModelName="MRZ",r.LetterHeightRange[0]=5,r.LineStringLengthRange=[30,44],r.LineStringRegExPattern=we.replace(/[\n\s]/g,""),r.MaxLineCharacterSpacing=130,r.TextureDetectionModes[0].Sensitivity=8,r.LineSpecificationNameArray=["L0"],r.BinarizationModes[0].ThresholdCompensation=15})(r);else if(e.includes("vin"))Se(r);else if(e.includes("vin_na"))Se(r);else if(!e.includes("cppdefault"))throw new Error(`Error: '${r}' is not supported.`);e.includes("video")&&(e=>{const t=e.LabelRecognizerParameterArray[0];"VIN"===e.CharacterModelArray[0].Name&&(t.LineStringLengthRange=[17,19],e.TextAreaArray[0].LineStringLengthRange=[17,19]);let r=10*t.LetterHeightRange[0];const n=Math.max(500,t.LetterHeightRange[0]);r>=n&&(r=n),t.LetterHeightRange[0]=r,e.TextAreaArray[0].LetterHeightRange[0]=r})(r)}const n=r.CharacterModelArray[0].Name;t.currentCaffeModelName=n,e=JSON.parse(t.updateRuntimeSettingsFromString(JSON.stringify(r))),await ye(n,Y)}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0,updateReturn:e}});break}case"outputSettingsToString":{let e;try{e=me.get(a).outputSettingsToString()}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0,results:e}});break}case"appendCaffeModelBuffer":try{await ye(o.name,o.folderUrl)}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"eraseCaffeModelByName":try{Module[oe].eraseCaffeModelByName(o.name),delete he[o.name]}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"eraseAllCaffeModels":try{Module[oe].eraseAllCaffeModels(),he={}}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"updateScanSettings":try{let e=me.get(a),t=o.settings;e.duplicateForgetTime=t.duplicateForgetTime,e.rememberFrameCount=t.rememberFrameCount,e.trustFrameCount=t.trustFrameCount}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"getScanSettings":{let e={};try{let t=me.get(a);e.duplicateForgetTime=t.duplicateForgetTime,e.rememberFrameCount=t.rememberFrameCount,e.trustFrameCount=t.trustFrameCount}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0,results:e}});break}default:console.warn("Unmatched task: ",e)}var i,s};ae.onmessage=Ae;let Ce=e=>{ae.postMessage({type:"log",message:e})},_e=e=>{X&&Ce(e)},Le=(e,t)=>{ae.postMessage({type:"task",id:t,body:{success:!1,message:e.message,stack:e.stack}}),setTimeout((()=>{throw e}),0)}}();
!function(){"use strict";const e="undefined"==typeof self,t=e?{}:self,r=e=>e&&"object"==typeof e&&"function"==typeof e.then;class n extends Promise{constructor(e){let t,n;super(((e,r)=>{t=e,n=r})),this._s="pending",this.resolve=e=>{this.isPending&&(r(e)?this.task=e:(this._s="fulfilled",t(e)))},this.reject=e=>{this.isPending&&(this._s="rejected",n(e))},this.task=e}get status(){return this._s}get isPending(){return"pending"===this._s}get isFulfilled(){return"fulfilled"===this._s}get isRejected(){return"rejected"===this._s}get task(){return this._task}set task(e){let t;this._task=e,r(e)?t=e:"function"==typeof e&&(t=new Promise(e)),t&&(async()=>{try{const r=await t;e===this._task&&this.resolve(r)}catch(t){e===this._task&&this.reject(t)}})()}get isEmpty(){return null==this._task}}let a,o,i,s,c;if("undefined"!=typeof navigator&&(a=navigator,o=a.userAgent,i=a.platform,s=a.mediaDevices),!e){const e={Edge:{search:"Edg",verSearch:"Edg"},OPR:null,Chrome:null,Safari:{str:a.vendor,search:"Apple",verSearch:["Version","iPhone OS","CPU OS"]},Firefox:null,Explorer:{search:"MSIE",verSearch:"MSIE"}},t={HarmonyOS:null,Android:null,iPhone:null,iPad:null,Windows:{str:i,search:"Win"},Mac:{str:i},Linux:{str:i}};let r="unknownBrowser",n=0,s="unknownOS";for(let t in e){const a=e[t]||{};let i=a.str||o,s=a.search||t,c=a.verStr||o,d=a.verSearch||t;if(d instanceof Array||(d=[d]),-1!=i.indexOf(s)){r=t;for(let e of d){let t=c.indexOf(e);if(-1!=t){n=parseFloat(c.substring(t+e.length+1));break}}break}}for(let e in t){const r=t[e]||{};let n=r.str||o,a=r.search||e;if(-1!=n.indexOf(a)){s=e;break}}"Linux"==s&&-1!=o.indexOf("Windows NT")&&(s="HarmonyOS"),c={browser:r,version:n,OS:s}}e&&(c={browser:"ssr",version:0,OS:"ssr"}),"undefined"!=typeof WebAssembly&&o&&(!/Safari/.test(o)||/Chrome/.test(o)||/\(.+\s11_2_([2-6]).*\)/.test(o)),s&&s.getUserMedia;const d="Chrome"===c.browser&&c.version>66||"Safari"===c.browser&&c.version>13||"OPR"===c.browser&&c.version>43||"Edge"===c.browser&&c.version>15;var l=function(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}();function u(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(a){if("TypeError"!==a.name)throw a;for(var r=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),n=0;n<e.length;n+=1)r.append(e[n]);return r.getBlob(t.type)}}function f(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function h(e,t,r){"function"==typeof t&&e.then(t),"function"==typeof r&&e.catch(r)}function m(e){return"string"!=typeof e&&(console.warn(`${e} used as a key, but it is not a string.`),e=String(e)),e}function g(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}const y="local-forage-detect-blob-support";let p;const b={},v=Object.prototype.toString,w="readonly",M="readwrite";function S(e){return"boolean"==typeof p?Promise.resolve(p):function(e){return new Promise((function(t){var r=e.transaction(y,M),n=u([""]);r.objectStore(y).put(n,"key"),r.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},r.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),r=navigator.userAgent.match(/Edge\//);t(r||!e||parseInt(e[1],10)>=43)}})).catch((function(){return!1}))}(e).then((function(e){return p=e,p}))}function A(e){var t=b[e.name],r={};r.promise=new Promise((function(e,t){r.resolve=e,r.reject=t})),t.deferredOperations.push(r),t.dbReady?t.dbReady=t.dbReady.then((function(){return r.promise})):t.dbReady=r.promise}function C(e){var t=b[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function _(e,t){var r=b[e.name].deferredOperations.pop();if(r)return r.reject(t),r.promise}function L(e,t){return new Promise((function(r,n){if(b[e.name]=b[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!t)return r(e.db);A(e),e.db.close()}var a=[e.name];t&&a.push(e.version);var o=l.open.apply(l,a);t&&(o.onupgradeneeded=function(t){var r=o.result;try{r.createObjectStore(e.storeName),t.oldVersion<=1&&r.createObjectStore(y)}catch(r){if("ConstraintError"!==r.name)throw r;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),o.onerror=function(e){e.preventDefault(),n(o.error)},o.onsuccess=function(){var t=o.result;t.onversionchange=function(e){e.target.close()},r(t),C(e)}}))}function k(e){return L(e,!1)}function R(e){return L(e,!0)}function x(e,t){if(!e.db)return!0;var r=!e.db.objectStoreNames.contains(e.storeName),n=e.version<e.db.version,a=e.version>e.db.version;if(n&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),a||r){if(r){var o=e.db.version+1;o>e.version&&(e.version=o)}return!0}return!1}function N(e){var t=function(e){for(var t=e.length,r=new ArrayBuffer(t),n=new Uint8Array(r),a=0;a<t;a++)n[a]=e.charCodeAt(a);return r}(atob(e.data));return u([t],{type:e.type})}function T(e){var t=this,r=t._initReady().then((function(){var e=b[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return h(r,e,e),r}function I(e,t,r,n){void 0===n&&(n=1);try{var a=e.db.transaction(e.storeName,t);r(null,a)}catch(a){if(n>0&&(!e.db||"InvalidStateError"===a.name||"NotFoundError"===a.name))return Promise.resolve().then((()=>{if(!e.db||"NotFoundError"===a.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),R(e)})).then((()=>function(e){A(e);for(var t=b[e.name],r=t.forages,n=0;n<r.length;n++){const e=r[n];e._dbInfo.db&&(e._dbInfo.db.close(),e._dbInfo.db=null)}return e.db=null,k(e).then((t=>(e.db=t,x(e)?R(e):t))).then((n=>{e.db=t.db=n;for(var a=0;a<r.length;a++)r[a]._dbInfo.db=n})).catch((t=>{throw _(e,t),t}))}(e).then((function(){I(e,t,r,n-1)})))).catch(r);r(a)}}var P={_driver:"asyncStorage",_initStorage:function(e){var t=this,r={db:null};if(e)for(var n in e)r[n]=e[n];var a=b[r.name];a||(a={forages:[],db:null,dbReady:null,deferredOperations:[]},b[r.name]=a),a.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=T);var o=[];function i(){return Promise.resolve()}for(var s=0;s<a.forages.length;s++){var c=a.forages[s];c!==t&&o.push(c._initReady().catch(i))}var d=a.forages.slice(0);return Promise.all(o).then((function(){return r.db=a.db,k(r)})).then((function(e){return r.db=e,x(r,t._defaultConfig.version)?R(r):e})).then((function(e){r.db=a.db=e,t._dbInfo=r;for(var n=0;n<d.length;n++){var o=d[n];o!==t&&(o._dbInfo.db=r.db,o._dbInfo.version=r.version)}}))},_support:function(){try{if(!l||!l.open)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}(),getItem:function(e,t){var r=this;e=m(e);var n=new Promise((function(t,n){r.ready().then((function(){I(r._dbInfo,w,(function(a,o){if(a)return n(a);try{var i=o.objectStore(r._dbInfo.storeName).get(e);i.onsuccess=function(){var e=i.result;void 0===e&&(e=null),function(e){return e&&e.__local_forage_encoded_blob}(e)&&(e=N(e)),t(e)},i.onerror=function(){n(i.error)}}catch(e){n(e)}}))})).catch(n)}));return f(n,t),n},setItem:function(e,t,r){var n=this;e=m(e);var a=new Promise((function(r,a){var o;n.ready().then((function(){return o=n._dbInfo,"[object Blob]"===v.call(t)?S(o.db).then((function(e){return e?t:(r=t,new Promise((function(e,t){var n=new FileReader;n.onerror=t,n.onloadend=function(t){var n=btoa(t.target.result||"");e({__local_forage_encoded_blob:!0,data:n,type:r.type})},n.readAsBinaryString(r)})));var r})):t})).then((function(t){I(n._dbInfo,M,(function(o,i){if(o)return a(o);try{var s=i.objectStore(n._dbInfo.storeName);null===t&&(t=void 0);var c=s.put(t,e);i.oncomplete=function(){void 0===t&&(t=null),r(t)},i.onabort=i.onerror=function(){var e=c.error?c.error:c.transaction.error;a(e)}}catch(e){a(e)}}))})).catch(a)}));return f(a,r),a},removeItem:function(e,t){var r=this;e=m(e);var n=new Promise((function(t,n){r.ready().then((function(){I(r._dbInfo,M,(function(a,o){if(a)return n(a);try{var i=o.objectStore(r._dbInfo.storeName).delete(e);o.oncomplete=function(){t()},o.onerror=function(){n(i.error)},o.onabort=function(){var e=i.error?i.error:i.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return f(n,t),n},clear:function(e){var t=this,r=new Promise((function(e,r){t.ready().then((function(){I(t._dbInfo,M,(function(n,a){if(n)return r(n);try{var o=a.objectStore(t._dbInfo.storeName).clear();a.oncomplete=function(){e()},a.onabort=a.onerror=function(){var e=o.error?o.error:o.transaction.error;r(e)}}catch(e){r(e)}}))})).catch(r)}));return f(r,e),r},length:function(e){var t=this,r=new Promise((function(e,r){t.ready().then((function(){I(t._dbInfo,w,(function(n,a){if(n)return r(n);try{var o=a.objectStore(t._dbInfo.storeName).count();o.onsuccess=function(){e(o.result)},o.onerror=function(){r(o.error)}}catch(e){r(e)}}))})).catch(r)}));return f(r,e),r},keys:function(e){var t=this,r=new Promise((function(e,r){t.ready().then((function(){I(t._dbInfo,w,(function(n,a){if(n)return r(n);try{var o=a.objectStore(t._dbInfo.storeName).openKeyCursor(),i=[];o.onsuccess=function(){var t=o.result;t?(i.push(t.key),t.continue()):e(i)},o.onerror=function(){r(o.error)}}catch(e){r(e)}}))})).catch(r)}));return f(r,e),r},dropInstance:function(e,t){t=g.apply(this,arguments);var r=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||r.name,e.storeName=e.storeName||r.storeName);var n,a=this;if(e.name){const t=e.name===r.name&&a._dbInfo.db?Promise.resolve(a._dbInfo.db):k(e).then((t=>{const r=b[e.name],n=r.forages;r.db=t;for(var a=0;a<n.length;a++)n[a]._dbInfo.db=t;return t}));n=e.storeName?t.then((t=>{if(!t.objectStoreNames.contains(e.storeName))return;const r=t.version+1;A(e);const n=b[e.name],a=n.forages;t.close();for(let e=0;e<a.length;e++){const t=a[e];t._dbInfo.db=null,t._dbInfo.version=r}const o=new Promise(((t,n)=>{const a=l.open(e.name,r);a.onerror=e=>{a.result.close(),n(e)},a.onupgradeneeded=()=>{a.result.deleteObjectStore(e.storeName)},a.onsuccess=()=>{const e=a.result;e.close(),t(e)}}));return o.then((e=>{n.db=e;for(let t=0;t<a.length;t++){const r=a[t];r._dbInfo.db=e,C(r._dbInfo)}})).catch((t=>{throw(_(e,t)||Promise.resolve()).catch((()=>{})),t}))})):t.then((t=>{A(e);const r=b[e.name],n=r.forages;t.close();for(var a=0;a<n.length;a++){n[a]._dbInfo.db=null}const o=new Promise(((t,r)=>{var n=l.deleteDatabase(e.name);n.onerror=()=>{const e=n.result;e&&e.close(),r(n.error)},n.onblocked=()=>{console.warn('dropInstance blocked for database "'+e.name+'" until all open connections are closed')},n.onsuccess=()=>{const e=n.result;e&&e.close(),t(e)}}));return o.then((e=>{r.db=e;for(var t=0;t<n.length;t++){C(n[t]._dbInfo)}})).catch((t=>{throw(_(e,t)||Promise.resolve()).catch((()=>{})),t}))}))}else n=Promise.reject("Invalid arguments");return f(n,t),n}};const B=new Map;function Z(e,t){let r=e.name+"/";return e.storeName!==t.storeName&&(r+=e.storeName+"/"),r}var D={_driver:"tempStorageWrapper",_initStorage:async function(e){const t={};if(e)for(let r in e)t[r]=e[r];const r=t.keyPrefix=Z(e,this._defaultConfig);this._dbInfo=t,B.has(r)||B.set(r,new Map)},getItem:function(e,t){e=m(e);const r=this.ready().then((()=>B.get(this._dbInfo.keyPrefix).get(e)));return f(r,t),r},setItem:function(e,t,r){e=m(e);const n=this.ready().then((()=>(void 0===t&&(t=null),B.get(this._dbInfo.keyPrefix).set(e,t),t)));return f(n,r),n},removeItem:function(e,t){e=m(e);const r=this.ready().then((()=>{B.get(this._dbInfo.keyPrefix).delete(e)}));return f(r,t),r},clear:function(e){const t=this.ready().then((()=>{const e=this._dbInfo.keyPrefix;B.has(e)&&B.delete(e)}));return f(t,e),t},length:function(e){const t=this.ready().then((()=>B.get(this._dbInfo.keyPrefix).size));return f(t,e),t},keys:function(e){const t=this.ready().then((()=>[...B.get(this._dbInfo.keyPrefix).keys()]));return f(t,e),t},dropInstance:function(e,t){if(t=g.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){const t=this.config();e.name=e.name||t.name,e.storeName=e.storeName||t.storeName}let r;return r=e.name?new Promise((t=>{e.storeName?t(Z(e,this._defaultConfig)):t(`${e.name}/`)})).then((e=>{B.delete(e)})):Promise.reject("Invalid arguments"),f(r,t),r}};const O=(e,t)=>{const r=e.length;let n=0;for(;n<r;){if((a=e[n])===(o=t)||"number"==typeof a&&"number"==typeof o&&isNaN(a)&&isNaN(o))return!0;n++}var a,o;return!1},E=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},F={},z={},U={INDEXEDDB:P,TEMPSTORAGE:D},j=[U.INDEXEDDB._driver,U.TEMPSTORAGE._driver],H=["dropInstance"],G=["clear","getItem","keys","length","removeItem","setItem"].concat(H),J={description:"",driver:j.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function W(e,t){e[t]=function(){const r=arguments;return e.ready().then((function(){return e[t].apply(e,r)}))}}function V(){for(let e=1;e<arguments.length;e++){const t=arguments[e];if(t)for(let e in t)t.hasOwnProperty(e)&&(E(t[e])?arguments[0][e]=t[e].slice():arguments[0][e]=t[e])}return arguments[0]}class ${constructor(e){for(let e in U)if(U.hasOwnProperty(e)){const t=U[e],r=t._driver;this[e]=r,F[r]||this.defineDriver(t)}this._defaultConfig=V({},J),this._config=V({},this._defaultConfig,e),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((()=>{}))}config(e){if("object"==typeof e){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(let t in e){if("storeName"===t&&(e[t]=e[t].replace(/\W/g,"_")),"version"===t&&"number"!=typeof e[t])return new Error("Database version must be a number.");this._config[t]=e[t]}return!("driver"in e)||!e.driver||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config}defineDriver(e,t,r){const n=new Promise((function(t,r){try{const n=e._driver,a=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void r(a);const o=G.concat("_initStorage");for(let t=0,n=o.length;t<n;t++){const n=o[t];if((!O(H,n)||e[n])&&"function"!=typeof e[n])return void r(a)}const i=function(){const t=function(e){return function(){const t=new Error(`Method ${e} is not implemented by the current driver`),r=Promise.reject(t);return f(r,arguments[arguments.length-1]),r}};for(let r=0,n=H.length;r<n;r++){const n=H[r];e[n]||(e[n]=t(n))}};i();const s=function(r){F[n]&&console.info(`Redefining LocalForage driver: ${n}`),F[n]=e,z[n]=r,t()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(s,r):s(!!e._support):s(!0)}catch(e){r(e)}}));return h(n,t,r),n}driver(){return this._driver||null}getDriver(e,t,r){const n=F[e]?Promise.resolve(F[e]):Promise.reject(new Error("Driver not found."));return h(n,t,r),n}ready(e){const t=this,r=t._driverSet.then((()=>(null===t._ready&&(t._ready=t._initDriver()),t._ready)));return h(r,e,e),r}setDriver(e,t,r){const n=this;E(e)||(e=[e]);const a=this._getSupportedDrivers(e);function o(){n._config.driver=n.driver()}function i(e){return n._extend(e),o(),n._ready=n._initStorage(n._config),n._ready}const s=null!==this._driverSet?this._driverSet.catch((()=>Promise.resolve())):Promise.resolve();return this._driverSet=s.then((()=>{const e=a[0];return n._dbInfo=null,n._ready=null,n.getDriver(e).then((e=>{n._driver=e._driver,o(),n._wrapLibraryMethodsWithReady(),n._initDriver=function(e){return function(){let t=0;return function r(){for(;t<e.length;){let a=e[t];return t++,n._dbInfo=null,n._ready=null,n.getDriver(a).then(i).catch(r)}o();const a=new Error("No available storage method found.");return n._driverSet=Promise.reject(a),n._driverSet}()}}(a)}))})).catch((()=>{o();const e=new Error("No available storage method found.");return n._driverSet=Promise.reject(e),n._driverSet})),h(this._driverSet,t,r),this._driverSet}supports(e){return!!z[e]}_extend(e){V(this,e)}_getSupportedDrivers(e){const t=[];for(let r=0,n=e.length;r<n;r++){const n=e[r];this.supports(n)&&t.push(n)}return t}_wrapLibraryMethodsWithReady(){for(let e=0,t=G.length;e<t;e++)W(this,G[e])}createInstance(e){return new $(e)}}var K=new $;Date.prototype.kUtilFormat=function(e){const t={"M+":this.getUTCMonth()+1,"d+":this.getUTCDate(),"H+":this.getUTCHours(),"h+":this.getUTCHours()%12||12,"m+":this.getUTCMinutes(),"s+":this.getUTCSeconds(),"q+":Math.floor((this.getUTCMonth()+3)/3),"S+":this.getUTCMilliseconds()};/(y+)/.test(e)&&(e=e.replace(RegExp.$1,(this.getUTCFullYear()+"").substr(4-RegExp.$1.length)));for(let r in t)new RegExp("("+r+")").test(e)&&(e=e.replace(RegExp.$1,1==RegExp.$1.length?t[r]:("000"+t[r]).substr(("000"+t[r]).length-RegExp.$1.length)));return e};let X,Y,q,Q,ee,te,re,ne=e=>{let r,a,o,i,s,c,l,u,f,h=t.btoa,m=t.atob,g=e.bd,y=e.dm;const p=["https://mlts.dynamsoft.com/","https://slts.dynamsoft.com/"];let b,v,w,M,S,A,C,_,L,k,R,x,N,T,I=p,P=!1,B=Promise.resolve(),Z=e.log&&((...t)=>{try{e.log.apply(null,t)}catch(e){setTimeout((()=>{throw e}),0)}})||(()=>{}),D=g&&Z||(()=>{}),O=e=>e.join(""),E={a:[80,88,27,82,145,164,199,211],b:[187,87,89,128,150,44,190,213],c:[89,51,74,53,99,72,82,118],d:[99,181,118,158,215,103,76,117],e:[99,51,86,105,100,71,120,108],f:[97,87,49,119,98,51,74,48,83,50,86,53],g:[81,85,86,84,76,85,100,68,84,81,32,32],h:[90,87,53,106,99,110,108,119,100,65,32,32],i:[90,71,86,106,99,110,108,119,100,65,32,32],j:[97,88,89,32],k:[29,83,122,137,5,180,157,114],l:[100,71,70,110,84,71,86,117,90,51,82,111]},F=()=>t[O(E.c)][O(E.e)][O(E.f)]("raw",new Uint8Array(E.a.concat(E.b,E.d,E.k)),O(E.g),!0,[O(E.h),O(E.i)]),z=e=>m(m(e.replace(/\n/g,"+").replace(/\s/g,"=")).substring(1)),U=e=>h(String.fromCharCode(97+25*Math.random())+h(e)).replace(/\+/g,"\n").replace(/=/g," "),j=()=>{if(t.crypto){let e=new Uint8Array(36);t.crypto.getRandomValues(e);let r="";for(let t=0;t<36;++t){let n=e[t]%36;r+=n<10?n:String.fromCharCode(n+87)}return r}return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)}))};const H="Failed to connect to the Dynamsoft License Server: ",G={dlsErrorAndCacheExpire:H+"The cached license has expired. Please get connected to the network as soon as possible or contact the site administrator for more information.",publicTrialNetworkTimeout:H+"network timed out. Check your Internet connection or [contact Dynamsoft](https://www.dynamsoft.com/company/contact/) for more information.",networkTimeout:H+"network timed out. Check your Internet connection or contact the site administrator for more information.",publicTrialFailConnect:H+"network connection error. Check your Internet connection or [contact Dynamsoft](https://www.dynamsoft.com/company/contact/) for more information.",failConnect:H+"network connection error. Check your Internet connection or contact the site administrator for more information.",checkLocalTime:"Your system date and time appear to have been changed, causing the license to fail. Please correct the system data and time and try again.",idbTimeout:"Failed to open indexedDB: Timeout."};let J,W,V,$=async()=>{if(J)return J;J=new n,await(async()=>{A||(A=K)})(),await Promise.race([(async()=>{let e=await A.createInstance({name:"dynamjssdkhello"});await e.setItem("dynamjssdkhello","available")})(),new Promise(((e,t)=>{setTimeout((()=>t(new Error(G.idbTimeout))),5e3)}))]),_=await A.createInstance({name:"dynamdlsinfo"}),L=h(h("v2")+String.fromCharCode(y.charCodeAt(y.length/2)+1)+h(y));try{let e=await _.getItem(L);e&&([l,M]=JSON.parse(await z(e)))}catch(e){}try{null==l&&(l=j(),_.setItem(L,await U(JSON.stringify([l,null]))))}catch(e){}J.resolve()},X=async()=>{k=h(String.fromCharCode(i.charCodeAt(0)+10)+h(r)+h(i)+o+h(""+c)),C=await A.createInstance({name:"dynamdlsuns"+h(h("v2"))+h(String.fromCharCode(i.charCodeAt(0)+10)+h(r)+h(i)+o+h(""+c))});try{s=await _.getItem(k)}catch(e){}O=e=>m(String.fromCharCode.apply(null,e).replace(/\n/g,"+").replace(/\s/g,"="))},Y=async e=>{if(W)return W;W=new n;try{let t={pd:r,vm:o,v:a,dt:c||"browser",ed:"javascript",cu:l,ad:y,os:u,fn:f};w&&(t.rmk=w),i&&(t=-1!=i.indexOf("-")?{...t,hs:i}:{...t,og:i});let n={};if(M){let e=await _.getItem(L);e&&([l,M]=JSON.parse(await z(e))),n["lts-time"]=M}v&&(t.sp=v);let d=await Promise.race([(async()=>{let r,a=(new Date).kUtilFormat("yyyy-MM-ddTHH:mm:ss.SSSZ");M&&(_.setItem(L,await U(JSON.stringify([l,a]))),M=a);let o,i="auth/?ext="+encodeURIComponent(h(JSON.stringify(t))),c=!1,d=!1,u=async e=>{if(e&&!e.ok)try{let t=await e.text();if(t){let e=JSON.parse(t);e.errorCode&&(o=e,e.errorCode>100&&e.errorCode<200&&(s=null,c=!0,d=!0))}}catch(e){}};try{r=await Promise.race([fetch(I[0]+i,{headers:n,cache:e?"reload":"default",mode:"cors"}),new Promise(((e,t)=>setTimeout(t,1e4)))]),await u(r)}catch(e){}if(!(s||r&&r.ok||c))try{r=await Promise.race([fetch(I[1]+i,{headers:n,mode:"cors"}),new Promise(((e,t)=>setTimeout(t,3e4)))]),await u(r)}catch(e){}if(!(s||r&&r.ok||c))try{r=await Promise.race([fetch(I[0]+i,{headers:n,mode:"cors"}),new Promise(((e,t)=>setTimeout(t,3e4)))]),await u(r)}catch(e){}o&&151==o.errorCode&&(_.removeItem(L),_.removeItem(k),l=j(),t.cu=l,M=void 0,i="auth/?ext="+encodeURIComponent(h(JSON.stringify(t))),r=await Promise.race([fetch(I[0]+i,{headers:n,mode:"cors"}),new Promise(((e,t)=>setTimeout(t,3e4)))]),await u(r));(()=>{if(!r||!r.ok){let e;d&&_.setItem(k,""),o?111==o.errorCode?e=o.message:(e=o.message.trim(),e.endsWith(".")||(e+="."),e=b?`An error occurred during authorization: ${e} [Contact Dynamsoft](https://www.dynamsoft.com/company/contact/) for more information.`:`An error occurred during authorization: ${e} Contact the site administrator for more information.`):e=b?G.publicTrialFailConnect:G.failConnect;let t=Error(e);throw o&&o.errorCode&&(t.ltsErrorCode=o.errorCode),t}})();let f=await r.text();try{M||(_.setItem(L,await U(JSON.stringify([l,a]))),M=a),_.setItem(k,f)}catch(e){}return f})(),new Promise(((e,t)=>{let r;r=b?G.publicTrialNetworkTimeout:G.networkTimeout,setTimeout((()=>t(new Error(r))),s?3e3:15e3)}))]);s=d}catch(e){g&&console.error(e),S=e}W.resolve(),W=null},q=async()=>{V||(V=(async()=>{if(D(l),!s){if(!P)throw Z(S.message),S;return}let e={dm:y};g&&(e.bd=!0),e.brtk=!0,e.ls=I[0],i&&(-1!=i.indexOf("-")?e.hs=i:e.og=i),e.cu=l,f&&(e.fn=f),r&&(e.pd=r),a&&(e.v=a),c&&(e.dt=c),u&&(e.os=u),w&&(e.rmk=w),D(s);try{let r=JSON.parse(await(async e=>{if(t[O(E.c)]&&t[O(E.c)][O(E.e)]&&t[O(E.c)][O(E.e)][O(E.f)]){let r=m(e),n=new Uint8Array(r.length);for(let e=0;e<r.length;++e)n[e]=r.charCodeAt(e);let a=n.subarray(0,12),o=n.subarray(a.length);T||(T=await F());let i=await t[O(E.c)][O(E.e)][O(E.i)]({name:O(E.g),[O(E.j)]:a,[O(E.l)]:128},T,o);return String.fromCharCode.apply(null,new Uint8Array(i))}})(s));r.ba&&(e.ba=r.ba),r.usu&&(e.usu=r.usu),r.trial&&(e.trial=r.trial),r.its&&(e.its=r.its),1==e.trial&&r.msg?e.msg=r.msg:S?e.msg=S.message||S:r.msg&&(e.msg=r.msg),e.ar=r.in,e.bafc=!!S}catch(e){}D(e);try{await R(e)}catch(e){D("error updl")}await Q(),P||(P=!0),V=null})()),await V},Q=async()=>{let e=(new Date).kUtilFormat("yyyy-MM-ddTHH:mm:ss.SSSZ"),t=await N();if(D(t),t&&t<e)throw S?new Error(G.dlsErrorAndCacheExpire):new Error(G.checkLocalTime)};const ee=new n;let te=null,re=async(e,t)=>(B=B.then((async()=>{try{let r=await C.keys();if(t||(ee.isFulfilled?e&&(r=r.filter((t=>t<e))):e&&r.includes(e)?r=[e]:(r=[],D("Unexpected null key"))),!r.length)return;for(let e=0;e<r.length/1e3;++e){let t=r.slice(1e3*e,1e3*(e+1)),n=[];for(let e=0;e<t.length;++e)n.push(await C.getItem(t[e]));M=(new Date).kUtilFormat("yyyy-MM-ddTHH:mm:ss.SSSZ");{let e=await _.getItem(L);e&&([l]=JSON.parse(await z(e))),_.setItem(L,await U(JSON.stringify([l,M])))}try{let e,r=I[0]+"verify/v2";M&&(r+="?ltstime="+encodeURIComponent(M));try{e=fetch(r,{method:"POST",body:n.join(";"),keepalive:!0})}catch(e){throw e}finally{!ee.isFulfilled&&d&&ee.resolve()}let a=await e;if(ee.isFulfilled||ee.resolve(),!a.ok)throw new Error("verify failed. Status Code: "+a.status);for(let e=0;e<t.length;++e)await C.removeItem(t[e])}catch(e){throw ee.isFulfilled||ee.resolve(),e}}}catch(e){}})),await B);return{i:async e=>{r=e.pd,a=e.v,o=a.split(".")[0],e.dt&&(c=e.dt),i=e.l||"",u="string"!=typeof e.os?JSON.stringify(e.os):e.os,f=e.fn,"string"==typeof f&&(f=f.substring(0,50)),e.ls&&e.ls.length&&(I=e.ls,1==I.length&&I.push(I[0])),b=p===I&&(!i||"200001"===i||i.startsWith("200001-")),v=e.sp,w=e.rmk,R=e.updl,x=e.mnet,N=e.mxet,await $(),await X(),await Y(),await q(),(!S||S.ltsErrorCode>=102&&S.ltsErrorCode<=120)&&re(null,!0)},c:async()=>{let e=new Date,t=e.kUtilFormat("yyyy-MM-ddTHH:mm:ss.SSSZ"),r=await x(),n=await N();if(n&&n<t)await Y(!0),await q();else if(r&&r<t){e.setMinutes(e.getMinutes()-6);let t=e;e=null;let r=t.kUtilFormat("yyyy-MM-ddTHH:mm:ss.SSSZ");M<r&&Y().then((()=>q()))}},s:async(e,r,n,a)=>{try{let e;e=r.startsWith("{")&&r.endsWith("}")?await(async e=>{if(t[O(E.c)]&&t[O(E.c)][O(E.e)]&&t[O(E.c)][O(E.e)][O(E.f)]){let r=new Uint8Array(e.length);for(let t=0;t<e.length;++t)r[t]=e.charCodeAt(t);let n=t.crypto.getRandomValues(new Uint8Array(12));T||(T=await F());let a=await t[O(E.c)][O(E.e)][O(E.h)]({name:O(E.g),[O(E.j)]:n,[O(E.l)]:128},T,r),o=new Uint8Array(a),i=new Uint8Array(n.length+o.length);return i.set(n),i.set(o,n.length),h(String.fromCharCode.apply(null,i))}})(r):r,e?(D("bs "+n),await C.setItem(n,e),D("ss "+n)):D("ept ecpt")}catch(e){}a&&(D("bd "+n),await re(n),D("sd "+n)),te&&clearTimeout(te),te=setTimeout((async()=>{await re()}),36e4)},p:ee,u:async()=>(await $(),l)}},ae=t,oe="LabelRecognizerWasm",ie=0,se=0;let ce=new n,de=!1,le=async e=>{await ce,ee=e.trial,te=e.msg,Module[oe].init(JSON.stringify(e))},ue=()=>{let e=Module[oe].getMinExpireTime;return e?e():null},fe=()=>{let e=Module[oe].getMaxExpireTime;return e?e():null},he={},me=new Map,ge=0;const ye=async(e,t)=>{he[e]||(t?"@engineResourcePath"===t&&(t=Y):t="",t+=e+"/",he[e]=(async()=>{try{let r,n,a;ae.postMessage({type:"event",body:{type:"resourcesLoadStarted",resourcesPath:t+e+".data"}});const o=new TextDecoder;{const n=await new Promise(((r,n)=>{const a=new XMLHttpRequest;a.responseType="arraybuffer",a.onload=()=>{r({ok:!0,arrayBuffer:()=>a.response})},a.onerror=a.timeout=a.onabort=()=>{r({ok:!1,status:a.status})};let o=Date.now();a.onprogress=r=>{if(r.lengthComputable){const n=Date.now();o+500<n&&(ae.postMessage({type:"event",body:{type:"resourcesLoadProgress",loaded:r.loaded,total:r.total,resourcesPath:t+e+".data"}}),o=n)}},a.open("GET",t+e+".data",!0),a.send()}));if(!n.ok)throw new Error(`Network error. Status: ${n.status}.`);r=await n.arrayBuffer()}{if(!o.decode(new Uint8Array(r,0,8)).startsWith("DLR_MDL"))throw new Error("Model data type incorrect.");let e=0;const t=new Uint8Array(r,8,8);for(let r=7;r>=0;--r)e=256*e+t[r];const i=o.decode(new Uint8Array(r,16,e));n=JSON.parse(i),a=16+e}let i=e=>{const t=n[e];if(!t)throw new Error("File name not found.");return new Uint8Array(r,a+t[0],t[1])},s=JSON.parse(o.decode(i(e+".config.json")));const c=s.mainModel,d=s.assistModels,l=s.modelFilter;{const t=i(c+".prototxt"),r=i(c+".txt"),n=i(c+".caffemodel");Module[oe].appendCaffeModelBuffer(e,t,r,n)}if(d)for(let t of d){const r=e+t,n=c+t,a=i(n+".prototxt"),o=i(n+".txt"),s=i(n+".caffemodel");Module[oe].appendCaffeModelBuffer(r,a,o,s)}return l&&Module[oe].appendModelFilterFileBuffer(e,i(l+".txt")),he[e]=!0,ae.postMessage({type:"event",body:{type:"resourcesLoaded",resourcesPath:t+e+".data"}}),!0}catch(t){throw delete he[e],t}})()),await he[e]},pe="(P[A-Z<][A-Z]{3}([A-Z<]{0,35}[A-Z]{1,3}[(<<)][A-Z]{1,3}[A-Z<]{0,35}<{0,35}){(39)}){(44)}|\n(P[A-Z<][A-Z]{4,42}<{0,38}){(44)}|\n([A-Z0-9<]{9}[0-9][A-Z]{3}[0-9]{2}[(01-12)][(01-31)][0-9][MF][0-9]{2}[(01-12)][(01-31)][0-9][A-Z0-9<]{14}[0-9<][0-9]){(44)}|\n([A-Z0-9<]{9}[0-9][A-Z]{3}[0-9]{2}<{4}[0-9][MF][0-9]{2}[(01-12)][(01-31)][0-9][A-Z0-9<]{14}[0-9<][0-9]){(44)}",be="(V[A-Z<][A-Z<]{3}[A-Z<]{31}){(36)}|\n([A-Z0-9<]{9}[0-9][A-Z<]{3}[0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]{2}[(01-12)][(01-31)][0-9][A-Z0-9<]{8}){(36)}|\n(V[A-Z<][A-Z<]{3}[A-Z<]{39}){(44)}|\n([A-Z0-9<]{9}[0-9][A-Z<]{3}[0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]{2}[(01-12)][(01-31)][0-9][A-Z0-9<]{14}[A-Z0-9<]{2}){(44)}",ve="([ACI][A-Z<][A-Z<]{3}[A-Z0-9<]{9}[0-9][A-Z0-9<]{15}){(30)}|\n([0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]{2}[(01-12)][(01-31)][0-9][A-Z<]{3}[A-Z0-9<]{11}[0-9]){(30)}|\n([A-Z<]{30}){(30)}|\n([ACI][A-Z<][A-Z<]{3}[A-Z<]{31}){(36)}|([A-Z0-9<]{9}[0-9][A-Z<]{3}[0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]{2}[(01-12)][(01-31)][0-9][A-Z0-9<]{8}){(36)}|\n(I[A-Z<]FRA[A-Z<]{25}[A-Z0-9<]{6}){(36)}|([A-Z0-9<]{12}[0-9][A-Z<]{14}[0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]){(36)}",we="([ACI][A-Z<][A-Z<]{3}[A-Z0-9<]{9}[0-9][A-Z0-9<]{15}){(30)}|\n([0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]{2}[(01-12)][(01-31)][0-9][A-Z<]{3}[A-Z0-9<]{11}[0-9]){(30)}|\n([A-Z<]{30}){(30)}|\n([ACIV][A-Z<][A-Z<]{3}[A-Z<]{31}){(36)}|\n([A-Z0-9<]{9}[0-9][A-Z<]{3}[0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]{2}[(01-12)][(01-31)][0-9][A-Z0-9<]{8}){(36)}|\n(I[A-Z<]FRA[A-Z<]{25}[A-Z0-9<]{6}){(36)}|\n([A-Z0-9<]{12}[0-9][A-Z<]{14}[0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]){(36)}([PV][A-Z<][A-Z<]{3}[A-Z<]{39}){(44)}|\n([A-Z0-9<]{9}[0-9][A-Z<]{3}[0-9]{2}[(01-12)][(01-31)][0-9][MF<][0-9]{2}[(01-12)][(01-31)][0-9][A-Z0-9<]{14}[A-Z0-9<]{2}){(44)}",Me="([0-9A-Z]{17,19}){(17,19)}",Se=e=>{e.CharacterModelArray[0].Name="VIN";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="VIN",t.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},t.BinarizationModes[0].Mode="BM_LOCAL_BLOCK",t.BinarizationModes[0].EnableFillBinaryVacancy=0,t.LineStringRegExPattern=Me,t.LineStringLengthRange=[17,19],t.LetterHeightRange=[5,1e3,1];const r=e.TextAreaArray[0];r.CharacterModelName="VIN",r.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},r.BinarizationModes[0].Mode="BM_LOCAL_BLOCK",r.BinarizationModes[0].EnableFillBinaryVacancy=0,r.LineStringRegExPattern=Me,r.LineStringLengthRange=[17,19],r.LetterHeightRange=[5,1e3,1]};let Ae=async function(e){const r=e.data?e.data:e,n=r.id,a=r.instanceID,o=r.body;switch(Q&&"recognizeByBuffer"==r.type&&await re.c(),r.type){case"loadWasm":try{X=r.bd,Y=r.engineResourcePath,q=r.v;let e=r.dm,n=r.l;Q=r.brtk;let a,o=r.bptk;(async()=>{if(de)throw"can't load wasm twice";de=!0,Ce("wasm loading...");let e=Date.now();await new Promise((async e=>{t.KModule=t.Module={locateFile:function(e){return"libDynamsoftLabelRecognizer.wasm"==e?Y+"dlr-"+q+".wasm":Y+e},print:e=>{Ce(e)},printErr:e=>{Ce(e)},onRuntimeInitialized:e},importScripts(Y+"dlr-"+q+".wasm.js")})),Ce("wasm initialized, cost "+(Date.now()-e)+" ms"),Module=KModule,ce.resolve()})();let i=async()=>{try{re=ne({log:Ce,bd:X,dm:e}),t.scsd=re.s,r.pd="dlr",r.updl=le,r.mnet=ue,r.mxet=fe,await re.i(r)}catch(e){if(!o)throw e;Q=!1,await s(),a=e.ltsErrorCode,te=e.message||e}},s=async()=>{let t={pk:n,dm:e};X&&(t.bd=!0),await le(t)};Q?await i():await s(),ae.postMessage({type:"load",success:!0,version:Module[oe].getVersion(),trial:ee,ltsErrorCode:a,message:te})}catch(e){let t=e&&e.message;ae.postMessage({type:"load",success:!1,ltsErrorCode:e&&e.ltsErrorCode,message:t,trial:ee,stack:X&&e?e.stack:null})}break;case"createInstance":{const e=ge++;try{let t=new Module[oe](r.bScanner,e);t.currentCaffeModelName="NumberLetter",me.set(e,t)}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0,instanceID:e}});break}case"destroy":try{if(!me.get(a))break;me.get(a).delete(),me.delete(a)}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"recognizeByBuffer":{let e,t,r,c,d=Date.now(),l=o.imageData.bytes;try{const n=me.get(a);await ye(n.currentCaffeModelName,Y),e=X?Date.now():0,i=o.imageData.bytes,(s=o.imageData.stride*o.imageData.height)>ie&&(se&&Module._free(se),se=Module._malloc(s),ie=s),Module.HEAPU8.set(i.subarray(0,s),se),o.imageData.bytes={ptr:se},t=X?Date.now():0,c=JSON.parse(n.recognizeByBuffer(JSON.stringify(o.imageData),o.config&&o.config.modelName||"",!(!o.config||!o.config.bScanner))),r=Date.now()}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0,decodeReturn:c,buffer:l,duration:Date.now()-d}}),_e(["timeWorkerGetMsg: "+d,"timeBeforeSendBufferToWasm: "+e+" "+(e-d),"timeBeforeDecode: "+t+" "+(t-e),"timeFinishDecode: "+r+" "+(r-t)].join("\n"));break}case"updateReferenceRegionFromBarcodeResults":{let e;try{e=JSON.parse(me.get(a).updateReferenceRegionFromBarcodeResults(JSON.stringify(o.dbrTextResults),""))}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0,updateReturn:e}});break}case"clearMapDecodeRecord":try{me.get(a).clearMapDecodeRecord()}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"resetRuntimeSettings":try{const e=me.get(a);e.currentCaffeModelName="NumberLetter",e.resetRuntimeSettings()}catch(t){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"appendSettingsFromString":{let e;try{e=JSON.parse(me.get(a).appendSettingsFromString(o.settings))}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0,updateReturn:e}});break}case"clearAppendedSettings":try{me.get(a).clearAppendedSettings()}catch(t){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"updateRuntimeSettingsFromString":{let e;try{const t=me.get(a);let r=o.settings;if("string"==typeof r)if(r=r.trim(),r.startsWith("{"))r=JSON.parse(r);else{if(r.length>50)throw new Error("Error: preset longer than 50 letters.");const e=r.toLowerCase().split("-");if(e.length>2)throw new Error(`Error: '${r}' is not supported.`);if(t.resetRuntimeSettings(),r=JSON.parse(t.outputSettingsToString()),e.includes("numberletter"))(e=>{e.CharacterModelArray[0].Name="NumberLetter";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="NumberLetter",t.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},t.LetterHeightRange[0]=5,t.LineStringLengthRange=[3,999];const r=e.TextAreaArray[0];r.CharacterModelName="NumberLetter",r.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},r.LetterHeightRange[0]=5,r.LineStringLengthRange=[3,999]})(r);else if(e.includes("number"))(e=>{e.CharacterModelArray[0].Name="Number";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="Number",t.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},t.LetterHeightRange[0]=5;const r=e.TextAreaArray[0];r.CharacterModelName="Number",r.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},r.LetterHeightRange[0]=5,r.LineStringLengthRange=[3,999]})(r);else if(e.includes("letter"))(e=>{e.CharacterModelArray[0].Name="Letter";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="Letter",t.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},t.LetterHeightRange[0]=5,t.LineStringLengthRange=[3,999];const r=e.TextAreaArray[0];r.CharacterModelName="Letter",r.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},r.LetterHeightRange[0]=5,r.LineStringLengthRange=[3,999]})(r);else if(e.includes("numberuppercase"))(e=>{e.CharacterModelArray[0].Name="NumberUppercase";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="NumberUppercase",t.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},t.LetterHeightRange[0]=5,t.LineStringLengthRange=[3,999];const r=e.TextAreaArray[0];r.CharacterModelName="NumberUppercase",r.GrayscaleTransformationModes[0]={Mode:"GTM_AUTO"},r.LetterHeightRange[0]=5,r.LineStringLengthRange=[3,999]})(r);else if(e.includes("passportmrz"))(e=>{e.CharacterModelArray[0].Name="MRZ";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="MRZ",t.LetterHeightRange[0]=5,t.LineStringLengthRange=[44,44],t.LineStringRegExPattern=pe.replace(/[\n\s]/g,""),t.MaxLineCharacterSpacing=130,t.TextureDetectionModes[0].Sensitivity=8,t.BinarizationModes[0].ThresholdCompensation=15,e.LineSpecificationArray=[{Name:"L0",LineNumber:"",BinarizationModes:[{BlockSizeX:30,BlockSizeY:30,Mode:"BM_LOCAL_BLOCK"}]}];const r=e.TextAreaArray[0];r.CharacterModelName="MRZ",r.LetterHeightRange[0]=5,r.LineStringLengthRange=[44,44],r.LineStringRegExPattern=pe.replace(/[\n\s]/g,""),r.MaxLineCharacterSpacing=130,r.TextureDetectionModes[0].Sensitivity=8,r.LineSpecificationNameArray=["L0"],r.BinarizationModes[0].ThresholdCompensation=15})(r);else if(e.includes("visamrz"))(e=>{e.CharacterModelArray[0].Name="MRZ";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="MRZ",t.LetterHeightRange[0]=5,t.LineStringLengthRange=[36,44],t.LineStringRegExPattern=be.replace(/[\n\s]/g,""),t.MaxLineCharacterSpacing=130,t.TextureDetectionModes[0].Sensitivity=8,t.BinarizationModes[0].ThresholdCompensation=15,e.LineSpecificationArray=[{Name:"L0",LineNumber:"",BinarizationModes:[{BlockSizeX:30,BlockSizeY:30,Mode:"BM_LOCAL_BLOCK"}]}];const r=e.TextAreaArray[0];r.CharacterModelName="MRZ",r.LetterHeightRange[0]=5,r.LineStringLengthRange=[36,44],r.LineStringRegExPattern=be.replace(/[\n\s]/g,""),r.MaxLineCharacterSpacing=130,r.TextureDetectionModes[0].Sensitivity=8,r.LineSpecificationNameArray=["L0"],r.BinarizationModes[0].ThresholdCompensation=15})(r);else if(e.includes("idcardmrz"))(e=>{e.CharacterModelArray[0].Name="MRZ";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="MRZ",t.LetterHeightRange[0]=5,t.LineStringLengthRange=[30,36],t.LineStringRegExPattern=ve.replace(/[\n\s]/g,""),t.MaxLineCharacterSpacing=130,t.TextureDetectionModes[0].Sensitivity=8,t.BinarizationModes[0].ThresholdCompensation=15,e.LineSpecificationArray=[{Name:"L0",LineNumber:"",BinarizationModes:[{BlockSizeX:30,BlockSizeY:30,Mode:"BM_LOCAL_BLOCK"}]}];const r=e.TextAreaArray[0];r.CharacterModelName="MRZ",r.LetterHeightRange[0]=5,r.LineStringLengthRange=[30,36],r.LineStringRegExPattern=ve.replace(/[\n\s]/g,""),r.MaxLineCharacterSpacing=130,r.TextureDetectionModes[0].Sensitivity=8,r.LineSpecificationNameArray=["L0"],r.BinarizationModes[0].ThresholdCompensation=15})(r);else if(e.includes("mrz"))(e=>{e.CharacterModelArray[0].Name="MRZ";const t=e.LabelRecognizerParameterArray[0];t.CharacterModelName="MRZ",t.LetterHeightRange[0]=5,t.LineStringLengthRange=[30,44],t.LineStringRegExPattern=we.replace(/[\n\s]/g,""),t.MaxLineCharacterSpacing=130,t.TextureDetectionModes[0].Sensitivity=8,t.BinarizationModes[0].ThresholdCompensation=15,e.LineSpecificationArray=[{Name:"L0",LineNumber:"",BinarizationModes:[{BlockSizeX:30,BlockSizeY:30,Mode:"BM_LOCAL_BLOCK"}]}];const r=e.TextAreaArray[0];r.CharacterModelName="MRZ",r.LetterHeightRange[0]=5,r.LineStringLengthRange=[30,44],r.LineStringRegExPattern=we.replace(/[\n\s]/g,""),r.MaxLineCharacterSpacing=130,r.TextureDetectionModes[0].Sensitivity=8,r.LineSpecificationNameArray=["L0"],r.BinarizationModes[0].ThresholdCompensation=15})(r);else if(e.includes("vin"))Se(r);else if(e.includes("vin_na"))Se(r);else if(!e.includes("cppdefault"))throw new Error(`Error: '${r}' is not supported.`);e.includes("video")&&(e=>{const t=e.LabelRecognizerParameterArray[0];"VIN"===e.CharacterModelArray[0].Name&&(t.LineStringLengthRange=[17,19],e.TextAreaArray[0].LineStringLengthRange=[17,19]);let r=10*t.LetterHeightRange[0];const n=Math.max(500,t.LetterHeightRange[0]);r>=n&&(r=n),t.LetterHeightRange[0]=r,e.TextAreaArray[0].LetterHeightRange[0]=r})(r)}const n=r.CharacterModelArray[0].Name;t.currentCaffeModelName=n,e=JSON.parse(t.updateRuntimeSettingsFromString(JSON.stringify(r))),await ye(n,Y)}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0,updateReturn:e}});break}case"outputSettingsToString":{let e;try{e=me.get(a).outputSettingsToString()}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0,results:e}});break}case"appendCaffeModelBuffer":try{await ye(o.name,o.folderUrl)}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"eraseCaffeModelByName":try{Module[oe].eraseCaffeModelByName(o.name),delete he[o.name]}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"eraseAllCaffeModels":try{Module[oe].eraseAllCaffeModels(),he={}}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"updateScanSettings":try{let e=me.get(a),t=o.settings;e.duplicateForgetTime=t.duplicateForgetTime,e.rememberFrameCount=t.rememberFrameCount,e.trustFrameCount=t.trustFrameCount}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0}});break;case"getScanSettings":{let e={};try{let t=me.get(a);e.duplicateForgetTime=t.duplicateForgetTime,e.rememberFrameCount=t.rememberFrameCount,e.trustFrameCount=t.trustFrameCount}catch(e){Le(e,n);break}ae.postMessage({type:"task",id:n,body:{success:!0,results:e}});break}default:console.warn("Unmatched task: ",e)}var i,s};ae.onmessage=Ae;let Ce=e=>{ae.postMessage({type:"log",message:e})},_e=e=>{X&&Ce(e)},Le=(e,t)=>{ae.postMessage({type:"task",id:t,body:{success:!1,message:e.message,stack:e.stack}}),setTimeout((()=>{throw e}),0)}}();
{
"name": "dynamsoft-label-recognizer",
"version": "2.2.30-iv-202301151737",
"version": "2.2.30-iv-202301162358",
"description": "Dynamsoft Label Recognizer (DLR) is an SDK designed to recognize meaningful zonal text or symbols in an image (Label). Common scenarios include price tags in supermarkets, inventory labels in warehouses, VIN codes on car windshields, driver licenses, passports, visas, ID cards, etc.",

@@ -5,0 +5,0 @@ "files": [

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc