id-scanner-lib 1.2.2 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +375 -363
  3. package/dist/id-scanner-core.esm.js +427 -221
  4. package/dist/id-scanner-core.esm.js.map +1 -1
  5. package/dist/id-scanner-core.js +427 -221
  6. package/dist/id-scanner-core.js.map +1 -1
  7. package/dist/id-scanner-core.min.js +1 -9
  8. package/dist/id-scanner-core.min.js.map +1 -1
  9. package/dist/id-scanner-ocr.esm.js +451 -276
  10. package/dist/id-scanner-ocr.esm.js.map +1 -1
  11. package/dist/id-scanner-ocr.js +451 -276
  12. package/dist/id-scanner-ocr.js.map +1 -1
  13. package/dist/id-scanner-ocr.min.js +1 -9
  14. package/dist/id-scanner-ocr.min.js.map +1 -1
  15. package/dist/id-scanner-qr.esm.js +483 -233
  16. package/dist/id-scanner-qr.esm.js.map +1 -1
  17. package/dist/id-scanner-qr.js +482 -232
  18. package/dist/id-scanner-qr.js.map +1 -1
  19. package/dist/id-scanner-qr.min.js +1 -9
  20. package/dist/id-scanner-qr.min.js.map +1 -1
  21. package/dist/id-scanner.js +2138 -358
  22. package/dist/id-scanner.js.map +1 -1
  23. package/dist/id-scanner.min.js +1 -9
  24. package/dist/id-scanner.min.js.map +1 -1
  25. package/package.json +27 -7
  26. package/src/demo/demo.ts +178 -62
  27. package/src/id-recognition/anti-fake-detector.ts +317 -0
  28. package/src/id-recognition/id-detector.ts +184 -155
  29. package/src/id-recognition/ocr-processor.ts +193 -146
  30. package/src/id-recognition/ocr-worker.ts +82 -72
  31. package/src/index-umd.ts +347 -110
  32. package/src/index.ts +866 -91
  33. package/src/ocr-module.ts +108 -60
  34. package/src/qr-module.ts +104 -54
  35. package/src/scanner/barcode-scanner.ts +145 -58
  36. package/src/scanner/qr-scanner.ts +86 -47
  37. package/src/utils/image-processing.ts +479 -294
  38. package/dist/core.d.ts +0 -77
  39. package/dist/demo/demo.d.ts +0 -14
  40. package/dist/id-recognition/data-extractor.d.ts +0 -105
  41. package/dist/id-recognition/id-detector.d.ts +0 -100
  42. package/dist/id-recognition/ocr-processor.d.ts +0 -64
  43. package/dist/id-scanner.esm.js +0 -94656
  44. package/dist/id-scanner.esm.js.map +0 -1
  45. package/dist/index-umd.d.ts +0 -96
  46. package/dist/index.d.ts +0 -78
  47. package/dist/ocr-module.d.ts +0 -67
  48. package/dist/qr-module.d.ts +0 -68
  49. package/dist/scanner/barcode-scanner.d.ts +0 -90
  50. package/dist/scanner/qr-scanner.d.ts +0 -80
  51. package/dist/types/core.d.ts +0 -77
  52. package/dist/types/demo/demo.d.ts +0 -14
  53. package/dist/types/id-recognition/data-extractor.d.ts +0 -105
  54. package/dist/types/id-recognition/id-detector.d.ts +0 -100
  55. package/dist/types/id-recognition/ocr-processor.d.ts +0 -64
  56. package/dist/types/index-umd.d.ts +0 -96
  57. package/dist/types/index.d.ts +0 -78
  58. package/dist/types/ocr-module.d.ts +0 -67
  59. package/dist/types/qr-module.d.ts +0 -68
  60. package/dist/types/scanner/barcode-scanner.d.ts +0 -90
  61. package/dist/types/scanner/qr-scanner.d.ts +0 -80
  62. package/dist/types/utils/camera.d.ts +0 -81
  63. package/dist/types/utils/image-processing.d.ts +0 -75
  64. package/dist/types/utils/types.d.ts +0 -65
  65. package/dist/utils/camera.d.ts +0 -81
  66. package/dist/utils/image-processing.d.ts +0 -75
  67. package/dist/utils/types.d.ts +0 -65
@@ -1 +1 @@
1
- {"version":3,"file":"id-scanner-ocr.js","sources":["../src/utils/camera.ts","../src/utils/image-processing.ts","../src/utils/performance.ts","../src/id-recognition/id-detector.ts","../src/utils/worker.ts","../src/id-recognition/ocr-worker.ts","../src/id-recognition/ocr-processor.ts","../src/id-recognition/data-extractor.ts","../src/ocr-module.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["createCustomWorker","createWorker"],"mappings":"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"}
1
+ {"version":3,"file":"id-scanner-ocr.js","sources":["../src/utils/camera.ts","../src/utils/image-processing.ts","../src/utils/performance.ts","../src/id-recognition/id-detector.ts","../src/utils/worker.ts","../src/id-recognition/ocr-worker.ts","../src/id-recognition/ocr-processor.ts","../src/id-recognition/data-extractor.ts","../src/ocr-module.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["createCustomWorker","createWorker"],"mappings":"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"}
@@ -1,9 +1 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("tesseract.js")):"function"==typeof define&&define.amd?define(["exports","tesseract.js"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).IDScannerOCR={},t.Tesseract)}(this,(function(t,e){"use strict";class i{constructor(t={}){this.options=t,this.stream=null,this.videoElement=null,this.options={width:640,height:480,facingMode:"environment",...t}}async start(t){return this.initialize(t)}stop(){this.release()}async initialize(t){this.videoElement=t;try{const t={video:{width:{ideal:this.options.width},height:{ideal:this.options.height},facingMode:this.options.facingMode}};this.stream=await navigator.mediaDevices.getUserMedia(t),this.videoElement&&(this.videoElement.srcObject=this.stream,await new Promise((t=>{this.videoElement&&(this.videoElement.onloadedmetadata=()=>{this.videoElement&&this.videoElement.play().then((()=>t()))})})))}catch(t){throw console.error("无法访问摄像头:",t),new Error("无法访问摄像头。请确保已授予摄像头访问权限,并且摄像头未被其他应用程序占用。")}}captureFrame(){if(!this.videoElement)return null;const t=document.createElement("canvas");t.width=this.videoElement.videoWidth,t.height=this.videoElement.videoHeight;const e=t.getContext("2d");return e?(e.drawImage(this.videoElement,0,0,t.width,t.height),e.getImageData(0,0,t.width,t.height)):null}release(){this.stream&&(this.stream.getTracks().forEach((t=>t.stop())),this.stream=null),this.videoElement&&(this.videoElement.srcObject=null,this.videoElement=null)}}class s{static imageDataToCanvas(t){const e=document.createElement("canvas");e.width=t.width,e.height=t.height;const i=e.getContext("2d");return i&&i.putImageData(t,0,0),e}static canvasToImageData(t){const e=t.getContext("2d");return e?e.getImageData(0,0,t.width,t.height):null}static adjustBrightnessContrast(t,e=0,i=0){const s=this.imageDataToCanvas(t),a=s.getContext("2d");if(a){const t=a.getImageData(0,0,s.width,s.height),r=t.data,n=259*(i+255)/(255*(259-i));for(let t=0;t<r.length;t+=4)r[t]=this.truncate(n*(r[t]-128)+128+e),r[t+1]=this.truncate(n*(r[t+1]-128)+128+e),r[t+2]=this.truncate(n*(r[t+2]-128)+128+e);return a.putImageData(t,0,0),t}return t}static truncate(t){return Math.min(255,Math.max(0,t))}static toGrayscale(t){const e=this.imageDataToCanvas(t),i=e.getContext("2d");if(i){const t=i.getImageData(0,0,e.width,e.height),s=t.data;for(let t=0;t<s.length;t+=4){const e=(s[t]+s[t+1]+s[t+2])/3;s[t]=e,s[t+1]=e,s[t+2]=e}return i.putImageData(t,0,0),t}return t}static resize(t,e,i){const s=document.createElement("canvas");s.width=e,s.height=i;const a=s.getContext("2d");if(a){const s=this.imageDataToCanvas(t);return a.drawImage(s,0,0,t.width,t.height,0,0,e,i),a.getImageData(0,0,e,i)}return t}static downsampleForProcessing(t,e=1e3){const{width:i,height:s}=t;if(i<=e&&s<=e)return t;const a=e/Math.max(i,s),r=Math.round(i*a),n=Math.round(s*a);return this.resize(t,r,n)}static imageDataToBase64(t){return this.imageDataToCanvas(t).toDataURL("image/jpeg",.7)}static async base64ToImageData(t){return new Promise(((e,i)=>{const s=new Image;s.onload=()=>{const t=document.createElement("canvas");t.width=s.width,t.height=s.height;const a=t.getContext("2d");if(!a)return void i(new Error("无法创建Canvas上下文"));a.drawImage(s,0,0);const r=a.getImageData(0,0,t.width,t.height);e(r)},s.onerror=()=>{i(new Error("图像加载失败"))},s.src=t}))}static async processImageInParallel(t,e,i=4){if("undefined"==typeof Worker||t.width*t.height<1e5)return e(t);const s=document.createElement("canvas");s.width=t.width,s.height=t.height;const a=s.getContext("2d");if(!a)throw new Error("无法创建Canvas上下文");const r=t.width>t.height,n=Math.floor((r?t.width:t.height)/i),o=[];for(let s=0;s<i;s++){const a=document.createElement("canvas"),c=a.getContext("2d");if(!c)continue;let h;if(r){const e=s*n,r=s===i-1?t.width-e:n;a.width=r,a.height=t.height;const o=this.imageDataToCanvas(t);c.drawImage(o,e,0,r,t.height,0,0,r,t.height),h=c.getImageData(0,0,r,t.height)}else{const e=s*n,r=s===i-1?t.height-e:n;a.width=t.width,a.height=r;const o=this.imageDataToCanvas(t);c.drawImage(o,0,e,t.width,r,0,0,t.width,r),h=c.getImageData(0,0,t.width,r)}const d=`\n self.onmessage = function(e) {\n const imageData = e.data.imageData;\n const processingFunction = ${e.toString()};\n const result = processingFunction(imageData);\n self.postMessage({ result, index: e.data.index }, [result.data.buffer]);\n }\n `,l=new Blob([d],{type:"application/javascript"}),m=URL.createObjectURL(l),g=new Worker(m),u=new Promise((t=>{g.onmessage=function(e){t(e.data),g.terminate(),URL.revokeObjectURL(m)},g.postMessage({imageData:h,index:s},[h.data.buffer])}));o.push(u)}const c=await Promise.all(o);c.sort(((t,e)=>t.index-e.index));for(let t=0;t<c.length;t++){const{result:e}=c[t],i=this.imageDataToCanvas(e);if(r){const e=t*n;a.drawImage(i,e,0)}else{const e=t*n;a.drawImage(i,0,e)}}return a.getImageData(0,0,t.width,t.height)}}class a{constructor(t=100){this.maxSize=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;const e=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,e),e}set(t,e){if(this.cache.has(t)&&this.cache.delete(t),this.cache.size>=this.maxSize){const t=this.cache.keys().next().value;void 0!==t&&this.cache.delete(t)}this.cache.set(t,e)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}has(t){return this.cache.has(t)}}function r(t,e=8){const i=document.createElement("canvas");i.width=e,i.height=e;const s=i.getContext("2d");if(!s)return"";const a=document.createElement("canvas");a.width=t.width,a.height=t.height;const r=a.getContext("2d");if(!r)return"";r.putImageData(t,0,0),s.drawImage(a,0,0,t.width,t.height,0,0,e,e);const n=s.getImageData(0,0,e,e),o=[];for(let t=0;t<n.data.length;t+=4){const e=n.data[t],i=n.data[t+1],s=n.data[t+2],a=Math.round(.299*e+.587*i+.114*s);o.push(a)}const c=o.reduce(((t,e)=>t+e),0)/o.length;let h="";for(const t of o)h+=t>=c?"1":"0";return h}class n{constructor(t){this.detecting=!1,this.detectTimer=null,this.frameCount=0,this.lastDetectionTime=0,this.camera=new i,"function"==typeof t?(this.onDetected=t,this.options={detectionInterval:200,maxImageDimension:800,enableCache:!0,cacheSize:20,logger:console.log}):t?(this.options={detectionInterval:200,maxImageDimension:800,enableCache:!0,cacheSize:20,logger:console.log,...t},this.onDetected=t.onDetection,this.onError=t.onError):this.options={detectionInterval:200,maxImageDimension:800,enableCache:!0,cacheSize:20,logger:console.log},this.detectionInterval=this.options.detectionInterval,this.maxImageDimension=this.options.maxImageDimension,this.resultCache=new a(this.options.cacheSize),this.throttledDetect=function(t,e){let i=0,s=null;return function(...a){const r=Date.now(),n=e-(r-i);n<=0?(s&&(clearTimeout(s),s=null),i=r,t.apply(this,a)):s||(s=window.setTimeout((()=>{i=Date.now(),s=null,t.apply(this,a)}),n))}}(this.performDetection.bind(this),this.detectionInterval)}async start(t){await this.camera.initialize(t),this.detecting=!0,this.frameCount=0,this.lastDetectionTime=0,this.detect()}stop(){this.detecting=!1,null!==this.detectTimer&&(cancelAnimationFrame(this.detectTimer),this.detectTimer=null)}detect(){this.detecting&&(this.detectTimer=requestAnimationFrame((()=>{try{this.frameCount++;const t=performance.now();(this.frameCount%3==0||t-this.lastDetectionTime>=this.detectionInterval)&&(this.throttledDetect(),this.lastDetectionTime=t),this.detect()}catch(t){this.onError?this.onError(t):console.error("身份证检测错误:",t),setTimeout((()=>{this.detecting&&this.detect()}),1e3)}})))}async performDetection(){if(!this.detecting||!this.camera)return;const t=this.camera.captureFrame();if(!t)return;if(this.options.enableCache){const e=r(t,16),i=this.resultCache.get(e);if(i){this.options.logger?.("使用缓存的检测结果");const e={...i,imageData:t};return void(this.onDetected&&this.onDetected(e))}}const e=s.downsampleForProcessing(t,this.maxImageDimension);try{const i=await this.detectIDCard(e);if(i.success&&(i.imageData=t,this.options.enableCache)){const e=r(t,16);this.resultCache.set(e,i)}this.onDetected&&this.onDetected(i)}catch(t){this.onError?this.onError(t):console.error("身份证检测错误:",t)}}async detectIDCard(t){s.toGrayscale(t);const e={success:Math.random()>.3,message:"身份证检测完成"};if(e.success){const i=t.width,a=t.height,r=Math.round(.7*i),n=Math.round(.618*r),o=Math.round((i-r)/2),c=Math.round((a-n)/2);e.corners=[{x:o,y:c},{x:o+r,y:c},{x:o+r,y:c+n},{x:o,y:c+n}],e.boundingBox={x:o,y:c,width:r,height:n};const h=document.createElement("canvas");h.width=r,h.height=n;const d=h.getContext("2d");if(d){const i=s.imageDataToCanvas(t);d.drawImage(i,o,c,r,n,0,0,r,n),e.croppedImage=d.getImageData(0,0,r,n)}e.confidence=.7+.3*Math.random()}return e}clearCache(){this.resultCache.clear(),this.options.logger?.("检测结果缓存已清除")}dispose(){this.stop(),this.camera.release(),this.resultCache.clear()}}async function o(t){const e=performance.now(),{createWorker:i}=await import("tesseract.js"),s=await i(t.tessWorkerOptions||{logger:t=>console.log(t)});try{await s.load(),await s.loadLanguage("chi_sim"),await s.initialize("chi_sim"),await s.setParameters({tessedit_char_whitelist:"0123456789X-年月日一二三四五六七八九十零壹贰叁肆伍陆柒捌玖拾ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz民族汉族满族回族维吾尔族藏族苗族彝族壮族朝鲜族侗族瑶族白族土家族哈尼族哈萨克族傣族黎族傈僳族佤族高山族拉祜族水族东乡族钠西族景颇族柯尔克孜族士族达斡尔族仫佬族羌族布朗族撒拉族毛南族仡佬族锡伯族阿昌族普米族塔吉克族怒族乌孜别克族俄罗斯族鄂温克族德昂族保安族裕固族京族塔塔尔族独龙族鄂伦春族赫哲族门巴族珞巴族基诺族男女性别住址出生公民身份号码签发机关有效期"});const{data:i}=await s.recognize(t.imageBase64),a=function(t){const e={},i=t.split("\n").filter((t=>t.trim())),s=/(\d{17}[\dX])/,a=t.match(s);a&&(e.idNumber=a[1]);for(const t of i)if(t.includes("姓名")||t.length<10&&t.length>1&&!/\d/.test(t)){e.name=t.replace("姓名","").trim();break}const r=/(男|女).*(族)/,n=t.match(r);if(n){e.gender=n[1];const t=n[0];e.nationality=t.substring(t.indexOf(n[1])+1).trim()}const o=/(\d{4})年(\d{1,2})月(\d{1,2})日/,c=t.match(o);c&&(e.birthDate=`${c[1]}-${c[2]}-${c[3]}`);const h=/住址([\s\S]*?)公民身份号码/,d=t.match(h);d&&(e.address=d[1].replace(/\n/g,"").trim());const l=/签发机关([\s\S]*?)有效期/,m=t.match(l);m&&(e.issuingAuthority=m[1].replace(/\n/g,"").trim());const g=/有效期限([\s\S]*?)(-|至)/,u=t.match(g);u&&(e.validPeriod=u[0].replace("有效期限","").trim());return e}(i.text);await s.terminate();return{idCardInfo:a,processingTime:performance.now()-e}}catch(t){throw await s.terminate(),t}}class c{constructor(t={}){this.worker=null,this.ocrWorker=null,this.initialized=!1,this.options={useWorker:"undefined"!=typeof Worker,enableCache:!0,cacheSize:50,maxImageDimension:1e3,logger:console.log,...t},this.resultCache=new a(this.options.cacheSize)}async initialize(){this.initialized||(this.options.useWorker?(this.ocrWorker=function(t){const e=`\n self.onmessage = async function(e) {\n try {\n const result = await (${t.toString()})(e.data);\n self.postMessage({ success: true, result });\n } catch (error) {\n self.postMessage({ \n success: false, \n error: { message: error.message, stack: error.stack }\n });\n }\n }\n `,i=new Blob([e],{type:"application/javascript"}),s=URL.createObjectURL(i),a=new Worker(s),r=new Map;let n=0;return a.onmessage=t=>{0===r.size&&URL.revokeObjectURL(s);const{id:e,success:i,result:a,error:n}=t.data,o=r.get(e);if(o)if(r.delete(e),i)o.resolve(a);else{const t=new Error(n.message);t.stack=n.stack,o.reject(t)}},{postMessage:t=>new Promise(((e,i)=>{const s=n++;r.set(s,{resolve:e,reject:i}),a.postMessage({id:s,data:t})})),terminate:()=>{a.terminate(),r.clear(),URL.revokeObjectURL(s)}}}(o),this.initialized=!0,this.options.logger?.("OCR Worker 初始化完成")):(this.worker=e.createWorker({logger:this.options.logger}),await this.worker.load(),await this.worker.loadLanguage("chi_sim"),await this.worker.initialize("chi_sim"),await this.worker.setParameters({tessedit_char_whitelist:"0123456789X-年月日一二三四五六七八九十零壹贰叁肆伍陆柒捌玖拾ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz民族汉族满族回族维吾尔族藏族苗族彝族壮族朝鲜族侗族瑶族白族土家族哈尼族哈萨克族傣族黎族傈僳族佤族高山族拉祜族水族东乡族钠西族景颇族柯尔克孜族士族达斡尔族仫佬族羌族布朗族撒拉族毛南族仡佬族锡伯族阿昌族普米族塔吉克族怒族乌孜别克族俄罗斯族鄂温克族德昂族保安族裕固族京族塔塔尔族独龙族鄂伦春族赫哲族门巴族珞巴族基诺族男女性别住址出生公民身份号码签发机关有效期"}),this.initialized=!0,this.options.logger?.("OCR引擎初始化完成")))}async processIDCard(t){if(this.initialized||await this.initialize(),this.options.enableCache){const e=r(t),i=this.resultCache.get(e);if(i)return this.options.logger?.("使用缓存的OCR结果"),i}const e=s.downsampleForProcessing(t,this.options.maxImageDimension),i=s.adjustBrightnessContrast(e,15,25);try{let e;if(this.options.useWorker&&this.ocrWorker){const t=s.imageDataToBase64(i),a=await this.ocrWorker.postMessage({imageBase64:t,tessWorkerOptions:{logger:this.options.logger}});e=a.idCardInfo,this.options.logger?.(`OCR处理完成,用时: ${a.processingTime.toFixed(2)}ms`)}else{const t=performance.now(),a=s.imageDataToCanvas(i),{data:r}=await this.worker.recognize(a);e=this.parseIDCardText(r.text);const n=performance.now()-t;this.options.logger?.(`OCR处理完成,用时: ${n.toFixed(2)}ms`)}if(this.options.enableCache){const i=r(t);this.resultCache.set(i,e)}return e}catch(t){return this.options.logger?.(`OCR识别错误: ${t}`),{}}}parseIDCardText(t){const e={},i=t.split("\n").filter((t=>t.trim())),s=t.match(/(\d{17}[\dX])/);s&&(e.idNumber=s[1]);for(const t of i)if(t.includes("姓名")||t.length<10&&t.length>1&&!/\d/.test(t)){e.name=t.replace("姓名","").trim();break}const a=t.match(/(男|女).*(族)/);if(a){e.gender=a[1];const t=a[0];e.nationality=t.substring(t.indexOf(a[1])+1).trim()}const r=t.match(/(\d{4})年(\d{1,2})月(\d{1,2})日/);r&&(e.birthDate=`${r[1]}-${r[2]}-${r[3]}`);const n=t.match(/住址([\s\S]*?)公民身份号码/);n&&(e.address=n[1].replace(/\n/g,"").trim());const o=t.match(/签发机关([\s\S]*?)有效期/);o&&(e.issuingAuthority=o[1].replace(/\n/g,"").trim());const c=t.match(/有效期限([\s\S]*?)(-|至)/);return c&&(e.validPeriod=c[0].replace("有效期限","").trim()),e}clearCache(){this.resultCache.clear(),this.options.logger?.("OCR结果缓存已清除")}async terminate(){this.worker&&(await this.worker.terminate(),this.worker=null),this.ocrWorker&&(this.ocrWorker.terminate(),this.ocrWorker=null),this.initialized=!1,this.options.logger?.("OCR引擎已终止")}dispose(){return this.terminate()}}class h{static validateIDNumber(t){if(!t||18!==t.length)return!1;if(!/^\d{17}[\dX]$/.test(t))return!1;const e=parseInt(t.substr(6,4)),i=parseInt(t.substr(10,2)),s=parseInt(t.substr(12,2)),a=new Date(e,i-1,s);return a.getFullYear()===e&&a.getMonth()+1===i&&a.getDate()===s}static extractBirthDateFromID(t){if(!this.validateIDNumber(t))return null;return`${t.substr(6,4)}-${t.substr(10,2)}-${t.substr(12,2)}`}static extractGenderFromID(t){if(!this.validateIDNumber(t))return null;return parseInt(t.charAt(16))%2==1?"男":"女"}static extractRegionFromID(t){return this.validateIDNumber(t)?t.substr(0,6):null}static enhanceIDCardInfo(t,e){const i={...t};if(i.idNumber&&this.validateIDNumber(i.idNumber)&&(i.birthDate||(i.birthDate=this.extractBirthDateFromID(i.idNumber)||void 0),i.gender||(i.gender=this.extractGenderFromID(i.idNumber)||void 0)),e&&this.validateIDNumber(e)){i.idNumber=e;const t=this.extractBirthDateFromID(e);t&&(i.birthDate=t);const s=this.extractGenderFromID(e);s&&(i.gender=s)}return i}extractAndValidate(t){const e={...t};return e.idNumber&&(e.idNumber=this.normalizeIDNumber(e.idNumber),this.validateIDNumber(e.idNumber)&&(e.birthDate||(e.birthDate=this.extractBirthDateFromID(e.idNumber)),e.gender||(e.gender=this.extractGenderFromID(e.idNumber)))),e.birthDate&&(e.birthDate=this.normalizeDate(e.birthDate)),e.address&&(e.address=this.normalizeAddress(e.address)),e}normalizeIDNumber(t){return t.replace(/[\s\-]/g,"").toUpperCase()}validateIDNumber(t){return/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(t)}extractBirthDateFromID(t){return 18===t.length?`${t.substring(6,10)}-${t.substring(10,12)}-${t.substring(12,14)}`:15===t.length?`19${t.substring(6,8)}-${t.substring(8,10)}-${t.substring(10,12)}`:""}extractGenderFromID(t){let e;return e=18===t.length?parseInt(t.charAt(16)):parseInt(t.charAt(14)),e%2==1?"男":"女"}normalizeDate(t){return t.replace(/(\d{4})(\d{2})(\d{2})/,"$1-$2-$3")}normalizeAddress(t){return t.trim()}}
2
- /**
3
- * @file OCR模块入口文件
4
- * @description 包含身份证OCR识别相关功能
5
- * @module IDScannerOCR
6
- * @version 1.0.0
7
- * @license MIT
8
- */t.DataExtractor=h,t.IDCardDetector=n,t.OCRModule=class{constructor(t={}){this.options=t,this.isRunning=!1,this.videoElement=null,this.camera=new i(t.cameraOptions),this.idDetector=new n({onDetection:this.handleIDDetection.bind(this),onError:this.handleError.bind(this)}),this.ocrProcessor=new c,this.dataExtractor=new h}async initialize(){try{await this.ocrProcessor.initialize(),console.log("OCR engine initialized")}catch(t){throw this.handleError(t),t}}async startIDCardScanner(t){if(!this.ocrProcessor)throw new Error("OCR engine not initialized. Call initialize() first.");this.videoElement=t,this.isRunning=!0,await this.camera.start(t),this.idDetector.start(t)}stop(){this.isRunning=!1,this.idDetector.stop(),this.camera.stop()}async handleIDDetection(t){if(this.isRunning)try{if(!t.imageData)return void this.handleError(new Error("无效的图像数据"));const e=await this.ocrProcessor.processIDCard(t.imageData),i=this.dataExtractor.extractAndValidate(e);this.options.onIDCardScanned&&this.options.onIDCardScanned(i)}catch(t){this.handleError(t)}}handleError(t){this.options.onError?this.options.onError(t):console.error("OCRModule error:",t)}async terminate(){this.stop(),await this.ocrProcessor.terminate()}},t.OCRProcessor=c}));
9
- //# sourceMappingURL=id-scanner-ocr.min.js.map
1
+ var global,factory;global=this,factory=function(t,r){"use strict";class n{constructor(t={}){this.options=t,this.stream=null,this.videoElement=null,this.options={width:640,height:480,facingMode:"environment",...t}}async start(t){return this.initialize(t)}stop(){this.release()}async initialize(t){this.videoElement=t;try{const t={video:{width:{ideal:this.options.width},height:{ideal:this.options.height},facingMode:this.options.facingMode}};this.stream=await navigator.mediaDevices.getUserMedia(t),this.videoElement&&(this.videoElement.srcObject=this.stream,await new Promise((t=>{this.videoElement&&(this.videoElement.onloadedmetadata=()=>{this.videoElement&&this.videoElement.play().then((()=>t()))})})))}catch(t){throw Error("无法访问摄像头。请确保已授予摄像头访问权限,并且摄像头未被其他应用程序占用。")}}captureFrame(){if(!this.videoElement)return null;const t=document.createElement("canvas");t.width=this.videoElement.videoWidth,t.height=this.videoElement.videoHeight;const r=t.getContext("2d");return r?(r.drawImage(this.videoElement,0,0,t.width,t.height),r.getImageData(0,0,t.width,t.height)):null}release(){this.stream&&(this.stream.getTracks().forEach((t=>t.stop())),this.stream=null),this.videoElement&&(this.videoElement.srcObject=null,this.videoElement=null)}}function e(t,r){return new Promise((function(n,e){let o;return i(t).then((function(t){try{return o=t,n(new Blob([r.slice(0,2),o,r.slice(2)],{type:"image/jpeg"}))}catch(t){return e(t)}}),e)}))}const i=t=>new Promise(((r,n)=>{const e=new FileReader;e.addEventListener("load",(({target:{result:t}})=>{const e=new DataView(t);let i=0;if(65496!==e.getUint16(i))return n("not a valid JPEG");for(i+=2;;){const o=e.getUint16(i);if(65498===o)break;const s=e.getUint16(i+2);if(65505===o&&1165519206===e.getUint32(i+4)){const o=i+10;let a;switch(e.getUint16(o)){case 18761:a=!0;break;case 19789:a=!1;break;default:return n("TIFF header contains invalid endian")}if(42!==e.getUint16(o+2,a))return n("TIFF header contains invalid version");const c=e.getUint32(o+4,a),f=o+c+2+12*e.getUint16(o+c,a);for(let t=o+c+2;t<f;t+=12)if(274==e.getUint16(t,a)){if(3!==e.getUint16(t+2,a))return n("Orientation data type is invalid");if(1!==e.getUint32(t+4,a))return n("Orientation data count is invalid");e.setUint16(t+8,1,a);break}return r(t.slice(i,i+2+s))}i+=2+s}return r(new Blob)})),e.readAsArrayBuffer(t)}));var o={},s={get exports(){return o},set exports(t){o=t}};!function(){var t,r,n={};s.exports=n,n.parse=function(t,r){for(var e=n.bin.readUshort,i=n.bin.readUint,o=0,s={},a=new Uint8Array(t),c=a.length-4;101010256!=i(a,c);)c--;o=c,o+=4;var f=e(a,o+=4);e(a,o+=2);var u=i(a,o+=2),l=i(a,o+=4);o+=4,o=l;for(var h=0;h<f;h++){i(a,o),o+=4,o+=4,o+=4,i(a,o+=4),u=i(a,o+=4);var A=i(a,o+=4),d=e(a,o+=4),w=e(a,o+2),v=e(a,o+4);o+=6;var y=i(a,o+=8);o+=4,o+=d+w+v,n.o(a,y,s,u,A,r)}return s},n.o=function(t,r,e,i,o,s){var a=n.bin.readUshort,c=n.bin.readUint;c(t,r),a(t,r+=4),a(t,r+=2);var f=a(t,r+=2);c(t,r+=2),c(t,r+=4),r+=4;var u=a(t,r+=8),l=a(t,r+=2);r+=2;var h=n.bin.readUTF8(t,r,u);if(r+=u,r+=l,s)e[h]={size:o,csize:i};else{var A=new Uint8Array(t.buffer,r);if(0==f)e[h]=new Uint8Array(A.buffer.slice(r,r+i));else{if(8!=f)throw"unknown compression method: "+f;var d=new Uint8Array(o);n.inflateRaw(A,d),e[h]=d}}},n.inflateRaw=function(t,r){return n.F.inflate(t,r)},n.inflate=function(t,r){return n.inflateRaw(new Uint8Array(t.buffer,t.byteOffset+2,t.length-6),r)},n.deflate=function(t,r){null==r&&(r={level:6});var e=0,i=new Uint8Array(50+Math.floor(1.1*t.length));i[e]=120,i[e+1]=156,e+=2,e=n.F.deflateRaw(t,i,e,r.level);var o=n.adler(t,0,t.length);return i[e+0]=o>>>24&255,i[e+1]=o>>>16&255,i[e+2]=o>>>8&255,i[e+3]=o>>>0&255,new Uint8Array(i.buffer,0,e+4)},n.deflateRaw=function(t,r){null==r&&(r={level:6});var e=new Uint8Array(50+Math.floor(1.1*t.length)),i=n.F.deflateRaw(t,e,i,r.level);return new Uint8Array(e.buffer,0,i)},n.encode=function(t,r){null==r&&(r=!1);var e=0,i=n.bin.writeUint,o=n.bin.writeUshort,s={};for(var a in t){var c=!n.B(a)&&!r,f=t[a],u=n.crc.crc(f,0,f.length);s[a]={cpr:c,usize:f.length,crc:u,file:c?n.deflateRaw(f):f}}for(var a in s)e+=s[a].file.length+30+46+2*n.bin.sizeUTF8(a);e+=22;var l=new Uint8Array(e),h=0,A=[];for(var a in s){var d=s[a];A.push(h),h=n.P(l,h,a,d,0)}var w=0,v=h;for(var a in s)d=s[a],A.push(h),h=n.P(l,h,a,d,1,A[w++]);var y=h-v;return i(l,h,101010256),h+=4,o(l,h+=4,w),o(l,h+=2,w),i(l,h+=2,y),i(l,h+=4,v),h+=4,h+=2,l.buffer},n.B=function(t){var r=t.split(".").pop().toLowerCase();return-1!="png,jpg,jpeg,zip".indexOf(r)},n.P=function(t,r,e,i,o,s){var a=n.bin.writeUint,c=n.bin.writeUshort,f=i.file;return a(t,r,0==o?67324752:33639248),r+=4,1==o&&(r+=2),c(t,r,20),c(t,r+=2,0),c(t,r+=2,i.cpr?8:0),a(t,r+=2,0),a(t,r+=4,i.crc),a(t,r+=4,f.length),a(t,r+=4,i.usize),c(t,r+=4,n.bin.sizeUTF8(e)),c(t,r+=2,0),r+=2,1==o&&(r+=2,r+=2,a(t,r+=6,s),r+=4),r+=n.bin.writeUTF8(t,r,e),0==o&&(t.set(f,r),r+=f.length),r},n.crc={table:function(){for(var t=new Uint32Array(256),r=0;r<256;r++){for(var n=r,e=0;e<8;e++)1&n?n=3988292384^n>>>1:n>>>=1;t[r]=n}return t}(),update:function(t,r,e,i){for(var o=0;o<i;o++)t=n.crc.table[255&(t^r[e+o])]^t>>>8;return t},crc:function(t,r,e){return 4294967295^n.crc.update(4294967295,t,r,e)}},n.adler=function(t,r,n){for(var e=1,i=0,o=r,s=r+n;o<s;){for(var a=Math.min(o+5552,s);o<a;)i+=e+=t[o++];e%=65521,i%=65521}return i<<16|e},n.bin={readUshort:function(t,r){return t[r]|t[r+1]<<8},writeUshort:function(t,r,n){t[r]=255&n,t[r+1]=n>>8&255},readUint:function(t,r){return 16777216*t[r+3]+(t[r+2]<<16|t[r+1]<<8|t[r])},writeUint:function(t,r,n){t[r]=255&n,t[r+1]=n>>8&255,t[r+2]=n>>16&255,t[r+3]=n>>24&255},readASCII:function(t,r,n){for(var e="",i=0;i<n;i++)e+=String.fromCharCode(t[r+i]);return e},writeASCII:function(t,r,n){for(var e=0;e<n.length;e++)t[r+e]=n.charCodeAt(e)},pad:function(t){return t.length<2?"0"+t:t},readUTF8:function(t,r,e){for(var i,o="",s=0;s<e;s++)o+="%"+n.bin.pad(t[r+s].toString(16));try{i=decodeURIComponent(o)}catch(i){return n.bin.readASCII(t,r,e)}return i},writeUTF8:function(t,r,n){for(var e=n.length,i=0,o=0;o<e;o++){var s=n.charCodeAt(o);if(4294967168&s)if(4294965248&s)if(4294901760&s){if(4292870144&s)throw"e";t[r+i]=240|s>>18,t[r+i+1]=128|s>>12&63,t[r+i+2]=128|s>>6&63,t[r+i+3]=128|63&s,i+=4}else t[r+i]=224|s>>12,t[r+i+1]=128|s>>6&63,t[r+i+2]=128|63&s,i+=3;else t[r+i]=192|s>>6,t[r+i+1]=128|63&s,i+=2;else t[r+i]=s,i++}return i},sizeUTF8:function(t){for(var r=t.length,n=0,e=0;e<r;e++){var i=t.charCodeAt(e);if(4294967168&i)if(4294965248&i)if(4294901760&i){if(4292870144&i)throw"e";n+=4}else n+=3;else n+=2;else n++}return n}},n.F={},n.F.deflateRaw=function(t,r,e,i){var o=[[0,0,0,0,0],[4,4,8,4,0],[4,5,16,8,0],[4,6,16,16,0],[4,10,16,32,0],[8,16,32,32,0],[8,16,128,128,0],[8,32,128,256,0],[32,128,258,1024,1],[32,258,258,4096,1]][i],s=n.F.U,a=n.F.O,c=n.F._,f=0,u=e<<3,l=0,h=t.length;if(0==i){for(;f<h;)c(r,u,f+(M=Math.min(65535,h-f))==h?1:0),u=n.F.G(t,f,M,r,u+8),f+=M;return u>>>3}var A=s.lits,d=s.strt,w=s.prev,v=0,y=0,m=0,p=0,g=0,E=0;for(h>2&&(d[E=n.F.tt(t,0)]=0),f=0;f<h;f++){if(g=E,f+1<h-2){E=n.F.tt(t,f+1);var b=f+1&32767;w[b]=d[E],d[E]=b}if(l<=f){(v>14e3||y>26697)&&h-f>100&&(l<f&&(A[v]=f-l,v+=2,l=f),u=n.F.rt(f==h-1||l==h?1:0,A,v,p,t,m,f-m,r,u),v=y=p=0,m=f);var U=0;f<h-2&&(U=n.F.nt(t,f,w,g,Math.min(o[2],h-f),o[3]));var M=U>>>16,I=65535&U;if(0!=U){I=65535&U;var B=a(M=U>>>16,s.of0);s.lhst[257+B]++;var C=a(I,s.df0);s.dhst[C]++,p+=s.exb[B]+s.dxb[C],A[v]=M<<23|f-l,A[v+1]=I<<16|B<<8|C,v+=2,l=f+M}else s.lhst[t[f]]++;y++}}for(m==f&&0!=t.length||(l<f&&(A[v]=f-l,v+=2,l=f),u=n.F.rt(1,A,v,p,t,m,f-m,r,u),v=0,y=0,v=y=p=0,m=f);7&u;)u++;return u>>>3},n.F.nt=function(t,r,e,i,o,s){var a=32767&r,c=e[a],f=a-c+32768&32767;if(c==a||i!=n.F.tt(t,r-f))return 0;for(var u=0,l=0,h=Math.min(32767,r);f<=h&&0!=--s&&c!=a;){if(0==u||t[r+u]==t[r+u-f]){var A=n.F.et(t,r,f);if(A>u){if(l=f,(u=A)>=o)break;f+2<A&&(A=f+2);for(var d=0,w=0;w<A-2;w++){var v=r-f+w+32768&32767,y=v-e[v]+32768&32767;y>d&&(d=y,c=v)}}}f+=(a=c)-(c=e[a])+32768&32767}return u<<16|l},n.F.et=function(t,r,n){if(t[r]!=t[r-n]||t[r+1]!=t[r+1-n]||t[r+2]!=t[r+2-n])return 0;var e=r,i=Math.min(t.length,r+258);for(r+=3;r<i&&t[r]==t[r-n];)r++;return r-e},n.F.tt=function(t,r){return(t[r]<<8|t[r+1])+(t[r+2]<<4)&65535},n.saved=0,n.F.rt=function(t,r,e,i,o,s,a,c,f){var u,l,h,A,d,w,v,y,m,p=n.F.U,g=n.F.it,E=n.F._;p.lhst[256]++,l=(u=n.F.getTrees())[0],h=u[1],A=u[2],d=u[3],w=u[4],v=u[5],y=u[6],m=u[7];var b=32+(f+3&7?8-(f+3&7):0)+(a<<3),U=i+n.F.contSize(p.fltree,p.lhst)+n.F.contSize(p.fdtree,p.dhst),M=i+n.F.contSize(p.ltree,p.lhst)+n.F.contSize(p.dtree,p.dhst);M+=14+3*v+n.F.contSize(p.itree,p.ihst)+(2*p.ihst[16]+3*p.ihst[17]+7*p.ihst[18]);for(var I=0;I<286;I++)p.lhst[I]=0;for(I=0;I<30;I++)p.dhst[I]=0;for(I=0;I<19;I++)p.ihst[I]=0;var B=b<U&&b<M?0:U<M?1:2;if(g(c,f,t),g(c,f+1,B),f+=3,0==B){for(;7&f;)f++;f=n.F.G(o,s,a,c,f)}else{var C,D;if(1==B&&(C=p.fltree,D=p.fdtree),2==B){n.F.makeCodes(p.ltree,l),n.F.revCodes(p.ltree,l),n.F.makeCodes(p.dtree,h),n.F.revCodes(p.dtree,h),n.F.makeCodes(p.itree,A),n.F.revCodes(p.itree,A),C=p.ltree,D=p.dtree,E(c,f,d-257),E(c,f+=5,w-1),E(c,f+=5,v-4),f+=4;for(var Q=0;Q<v;Q++)E(c,f+3*Q,p.itree[1+(p.ordr[Q]<<1)]);f+=3*v,f=n.F.ot(y,p.itree,c,f),f=n.F.ot(m,p.itree,c,f)}for(var k=s,R=0;R<e;R+=2){for(var S=r[R],T=S>>>23,x=k+(8388607&S);k<x;)f=n.F.st(o[k++],C,c,f);if(0!=T){var F=r[R+1],P=F>>16,O=F>>8&255,j=255&F;E(c,f=n.F.st(257+O,C,c,f),T-p.of0[O]),f+=p.exb[O],g(c,f=n.F.st(j,D,c,f),P-p.df0[j]),f+=p.dxb[j],k+=T}}f=n.F.st(256,C,c,f)}return f},n.F.G=function(t,r,n,e,i){var o=i>>>3;return e[o]=n,e[o+1]=n>>>8,e[o+2]=255-e[o],e[o+3]=255-e[o+1],o+=4,e.set(new Uint8Array(t.buffer,r,n),o),i+(n+4<<3)},n.F.getTrees=function(){for(var t=n.F.U,r=n.F.ct(t.lhst,t.ltree,15),e=n.F.ct(t.dhst,t.dtree,15),i=[],o=n.F.ft(t.ltree,i),s=[],a=n.F.ft(t.dtree,s),c=0;c<i.length;c+=2)t.ihst[i[c]]++;for(c=0;c<s.length;c+=2)t.ihst[s[c]]++;for(var f=n.F.ct(t.ihst,t.itree,7),u=19;u>4&&0==t.itree[1+(t.ordr[u-1]<<1)];)u--;return[r,e,f,o,a,u,i,s]},n.F.getSecond=function(t){for(var r=[],n=0;n<t.length;n+=2)r.push(t[n+1]);return r},n.F.nonZero=function(t){for(var r="",n=0;n<t.length;n+=2)0!=t[n+1]&&(r+=(n>>1)+",");return r},n.F.contSize=function(t,r){for(var n=0,e=0;e<r.length;e++)n+=r[e]*t[1+(e<<1)];return n},n.F.ot=function(t,r,e,i){for(var o=0;o<t.length;o+=2){var s=t[o],a=t[o+1];i=n.F.st(s,r,e,i);var c=16==s?2:17==s?3:7;s>15&&(n.F._(e,i,a,c),i+=c)}return i},n.F.ft=function(t,r){for(var n=t.length;2!=n&&0==t[n-1];)n-=2;for(var e=0;e<n;e+=2){var i=t[e+1],o=e+3<n?t[e+3]:-1,s=e+5<n?t[e+5]:-1,a=0==e?-1:t[e-1];if(0==i&&o==i&&s==i){for(var c=e+5;c+2<n&&t[c+2]==i;)c+=2;(f=Math.min(c+1-e>>>1,138))<11?r.push(17,f-3):r.push(18,f-11),e+=2*f-2}else if(i==a&&o==i&&s==i){for(c=e+5;c+2<n&&t[c+2]==i;)c+=2;var f=Math.min(c+1-e>>>1,6);r.push(16,f-3),e+=2*f-2}else r.push(i,0)}return n>>>1},n.F.ct=function(t,r,e){var i=[],o=t.length,s=r.length,a=0;for(a=0;a<s;a+=2)r[a]=0,r[a+1]=0;for(a=0;a<o;a++)0!=t[a]&&i.push({lit:a,f:t[a]});var c=i.length,f=i.slice(0);if(0==c)return 0;if(1==c){var u=i[0].lit;return f=0==u?1:0,r[1+(u<<1)]=1,r[1+(f<<1)]=1,1}i.sort((function(t,r){return t.f-r.f}));var l=i[0],h=i[1],A=0,d=1,w=2;for(i[0]={lit:-1,f:l.f+h.f,l:l,r:h,d:0};d!=c-1;)l=A!=d&&(w==c||i[A].f<i[w].f)?i[A++]:i[w++],h=A!=d&&(w==c||i[A].f<i[w].f)?i[A++]:i[w++],i[d++]={lit:-1,f:l.f+h.f,l:l,r:h};var v=n.F.setDepth(i[d-1],0);for(v>e&&(n.F.restrictDepth(f,e,v),v=e),a=0;a<c;a++)r[1+(f[a].lit<<1)]=f[a].d;return v},n.F.setDepth=function(t,r){return-1!=t.lit?(t.d=r,r):Math.max(n.F.setDepth(t.l,r+1),n.F.setDepth(t.r,r+1))},n.F.restrictDepth=function(t,r,n){var e=0,i=1<<n-r,o=0;for(t.sort((function(t,r){return r.d==t.d?t.f-r.f:r.d-t.d})),e=0;e<t.length&&t[e].d>r;e++){var s=t[e].d;t[e].d=r,o+=i-(1<<n-s)}for(o>>>=n-r;o>0;)(s=t[e].d)<r?(t[e].d++,o-=1<<r-s-1):e++;for(;e>=0;e--)t[e].d==r&&o<0&&(t[e].d--,o++)},n.F.O=function(t,r){var n=0;return r[16|n]<=t&&(n|=16),r[8|n]<=t&&(n|=8),r[4|n]<=t&&(n|=4),r[2|n]<=t&&(n|=2),r[1|n]<=t&&(n|=1),n},n.F.st=function(t,r,e,i){return n.F.it(e,i,r[t<<1]),i+r[1+(t<<1)]},n.F.inflate=function(t,r){var e=Uint8Array;if(3==t[0]&&0==t[1])return r||new e(0);var i=n.F,o=i.ut,s=i.lt,a=i.ht,c=i.makeCodes,f=i.codes2map,u=i.At,l=i.U,h=null==r;h&&(r=new e(t.length>>>2<<3));for(var A,d,w=0,v=0,y=0,m=0,p=0,g=0,E=0,b=0,U=0;0==w;)if(w=o(t,U,1),v=o(t,U+1,2),U+=3,0!=v){if(h&&(r=n.F.dt(r,b+(1<<17))),1==v&&(A=l.flmap,d=l.fdmap,g=511,E=31),2==v){y=s(t,U,5)+257,m=s(t,U+5,5)+1,p=s(t,U+10,4)+4,U+=14;for(var M=0;M<38;M+=2)l.itree[M]=0,l.itree[M+1]=0;var I=1;for(M=0;M<p;M++){var B=s(t,U+3*M,3);l.itree[1+(l.ordr[M]<<1)]=B,B>I&&(I=B)}U+=3*p,c(l.itree,I),f(l.itree,I,l.imap),A=l.lmap,d=l.dmap,U=a(l.imap,(1<<I)-1,y+m,t,U,l.ttree);var C=i.wt(l.ttree,0,y,l.ltree);g=(1<<C)-1;var D=i.wt(l.ttree,y,m,l.dtree);E=(1<<D)-1,c(l.ltree,C),f(l.ltree,C,A),c(l.dtree,D),f(l.dtree,D,d)}for(;;){var Q=A[u(t,U)&g];U+=15&Q;var k=Q>>>4;if(k>>>8==0)r[b++]=k;else{if(256==k)break;var R=b+k-254;if(k>264){var S=l.ldef[k-257];R=b+(S>>>3)+s(t,U,7&S),U+=7&S}var T=d[u(t,U)&E];U+=15&T;var x=T>>>4,F=l.ddef[x],P=(F>>>4)+o(t,U,15&F);for(U+=15&F,h&&(r=n.F.dt(r,b+(1<<17)));b<R;)r[b]=r[b++-P],r[b]=r[b++-P],r[b]=r[b++-P],r[b]=r[b++-P];b=R}}}else{7&U&&(U+=8-(7&U));var O=4+(U>>>3),j=t[O-4]|t[O-3]<<8;h&&(r=n.F.dt(r,b+j)),r.set(new e(t.buffer,t.byteOffset+O,j),b),U=O+j<<3,b+=j}return r.length==b?r:r.slice(0,b)},n.F.dt=function(t,r){var n=t.length;if(r<=n)return t;var e=new Uint8Array(Math.max(n<<1,r));return e.set(t,0),e},n.F.ht=function(t,r,e,i,o,s){for(var a=n.F.lt,c=n.F.At,f=0;f<e;){var u=t[c(i,o)&r];o+=15&u;var l=u>>>4;if(l<=15)s[f]=l,f++;else{var h=0,A=0;16==l?(A=3+a(i,o,2),o+=2,h=s[f-1]):17==l?(A=3+a(i,o,3),o+=3):18==l&&(A=11+a(i,o,7),o+=7);for(var d=f+A;f<d;)s[f]=h,f++}}return o},n.F.wt=function(t,r,n,e){for(var i=0,o=0,s=e.length>>>1;o<n;){var a=t[o+r];e[o<<1]=0,e[1+(o<<1)]=a,a>i&&(i=a),o++}for(;o<s;)e[o<<1]=0,e[1+(o<<1)]=0,o++;return i},n.F.makeCodes=function(t,r){for(var e,i,o,s,a=n.F.U,c=t.length,f=a.bl_count,u=0;u<=r;u++)f[u]=0;for(u=1;u<c;u+=2)f[t[u]]++;var l=a.next_code;for(e=0,f[0]=0,i=1;i<=r;i++)e=e+f[i-1]<<1,l[i]=e;for(o=0;o<c;o+=2)0!=(s=t[o+1])&&(t[o]=l[s],l[s]++)},n.F.codes2map=function(t,r,e){for(var i=t.length,o=n.F.U.rev15,s=0;s<i;s+=2)if(0!=t[s+1])for(var a=s>>1,c=t[s+1],f=a<<4|c,u=r-c,l=t[s]<<u,h=l+(1<<u);l!=h;)e[o[l]>>>15-r]=f,l++},n.F.revCodes=function(t,r){for(var e=n.F.U.rev15,i=15-r,o=0;o<t.length;o+=2){var s=t[o]<<r-t[o+1];t[o]=e[s]>>>i}},n.F._=function(t,r,n){n<<=7&r;var e=r>>>3;t[e]|=n,t[e+1]|=n>>>8},n.F.it=function(t,r,n){n<<=7&r;var e=r>>>3;t[e]|=n,t[e+1]|=n>>>8,t[e+2]|=n>>>16},n.F.lt=function(t,r,n){return(t[r>>>3]|t[1+(r>>>3)]<<8)>>>(7&r)&(1<<n)-1},n.F.ut=function(t,r,n){return(t[r>>>3]|t[1+(r>>>3)]<<8|t[2+(r>>>3)]<<16)>>>(7&r)&(1<<n)-1},n.F.At=function(t,r){return(t[r>>>3]|t[1+(r>>>3)]<<8|t[2+(r>>>3)]<<16)>>>(7&r)},n.F.vt=function(t,r){return(t[r>>>3]|t[1+(r>>>3)]<<8|t[2+(r>>>3)]<<16|t[3+(r>>>3)]<<24)>>>(7&r)},n.F.U=(t=Uint16Array,r=Uint32Array,{next_code:new t(16),bl_count:new t(16),ordr:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],of0:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],exb:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],ldef:new t(32),df0:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],dxb:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],ddef:new r(32),flmap:new t(512),fltree:[],fdmap:new t(32),fdtree:[],lmap:new t(32768),ltree:[],ttree:[],dmap:new t(32768),dtree:[],imap:new t(512),itree:[],rev15:new t(32768),lhst:new r(286),dhst:new r(30),ihst:new r(19),lits:new r(15e3),strt:new t(65536),prev:new t(32768)}),function(){for(var t=n.F.U,r=0;r<32768;r++){var e=r;e=(4278255360&(e=(4042322160&(e=(3435973836&(e=(2863311530&e)>>>1|(1431655765&e)<<1))>>>2|(858993459&e)<<2))>>>4|(252645135&e)<<4))>>>8|(16711935&e)<<8,t.rev15[r]=(e>>>16|e<<16)>>>17}function i(t,r,n){for(;0!=r--;)t.push(0,n)}for(r=0;r<32;r++)t.ldef[r]=t.of0[r]<<3|t.exb[r],t.ddef[r]=t.df0[r]<<4|t.dxb[r];i(t.fltree,144,8),i(t.fltree,112,9),i(t.fltree,24,7),i(t.fltree,8,8),n.F.makeCodes(t.fltree,9),n.F.codes2map(t.fltree,9,t.flmap),n.F.revCodes(t.fltree,9),i(t.fdtree,32,5),n.F.makeCodes(t.fdtree,5),n.F.codes2map(t.fdtree,5,t.fdmap),n.F.revCodes(t.fdtree,5),i(t.itree,19,0),i(t.ltree,286,0),i(t.dtree,30,0),i(t.ttree,320,0)}()}();var a=function(t,r){return r.forEach((function(r){r&&"string"!=typeof r&&!Array.isArray(r)&&Object.keys(r).forEach((function(n){if("default"!==n&&!(n in t)){var e=Object.getOwnPropertyDescriptor(r,n);Object.defineProperty(t,n,e.get?e:{enumerable:!0,get:function(){return r[n]}})}}))})),Object.freeze(t)}({__proto__:null,default:o},[o]);const c=function(){var t={nextZero(t,r){for(;0!=t[r];)r++;return r},readUshort:(t,r)=>t[r]<<8|t[r+1],writeUshort(t,r,n){t[r]=n>>8&255,t[r+1]=255&n},readUint:(t,r)=>16777216*t[r]+(t[r+1]<<16|t[r+2]<<8|t[r+3]),writeUint(t,r,n){t[r]=n>>24&255,t[r+1]=n>>16&255,t[r+2]=n>>8&255,t[r+3]=255&n},readASCII(t,r,n){let e="";for(let i=0;i<n;i++)e+=String.fromCharCode(t[r+i]);return e},writeASCII(t,r,n){for(let e=0;e<n.length;e++)t[r+e]=n.charCodeAt(e)},readBytes(t,r,n){const e=[];for(let i=0;i<n;i++)e.push(t[r+i]);return e},pad:t=>t.length<2?"0"+t:t,readUTF8(r,n,e){let i,o="";for(let i=0;i<e;i++)o+="%"+t.pad(r[n+i].toString(16));try{i=decodeURIComponent(o)}catch(i){return t.readASCII(r,n,e)}return i}};function r(r,n,e,i){const s=n*e,a=o(i),c=Math.ceil(n*a/8),f=new Uint8Array(4*s),u=new Uint32Array(f.buffer),{ctype:l}=i,{depth:h}=i,A=t.readUshort;if(6==l){const t=s<<2;if(8==h)for(var d=0;d<t;d+=4)f[d]=r[d],f[d+1]=r[d+1],f[d+2]=r[d+2],f[d+3]=r[d+3];if(16==h)for(d=0;d<t;d++)f[d]=r[d<<1]}else if(2==l){const t=i.tabs.tRNS;if(null==t){if(8==h)for(d=0;d<s;d++){var w=3*d;u[d]=255<<24|r[w+2]<<16|r[w+1]<<8|r[w]}if(16==h)for(d=0;d<s;d++)w=6*d,u[d]=255<<24|r[w+4]<<16|r[w+2]<<8|r[w]}else{var v=t[0];const n=t[1],e=t[2];if(8==h)for(d=0;d<s;d++){var y=d<<2;w=3*d,u[d]=255<<24|r[w+2]<<16|r[w+1]<<8|r[w],r[w]==v&&r[w+1]==n&&r[w+2]==e&&(f[y+3]=0)}if(16==h)for(d=0;d<s;d++)y=d<<2,w=6*d,u[d]=255<<24|r[w+4]<<16|r[w+2]<<8|r[w],A(r,w)==v&&A(r,w+2)==n&&A(r,w+4)==e&&(f[y+3]=0)}}else if(3==l){const t=i.tabs.PLTE,o=i.tabs.tRNS,a=o?o.length:0;if(1==h)for(var m=0;m<e;m++){var p=m*c,g=m*n;for(d=0;d<n;d++){y=g+d<<2;var E=3*(b=r[p+(d>>3)]>>7-(7&d)&1);f[y]=t[E],f[y+1]=t[E+1],f[y+2]=t[E+2],f[y+3]=b<a?o[b]:255}}if(2==h)for(m=0;m<e;m++)for(p=m*c,g=m*n,d=0;d<n;d++)y=g+d<<2,E=3*(b=r[p+(d>>2)]>>6-((3&d)<<1)&3),f[y]=t[E],f[y+1]=t[E+1],f[y+2]=t[E+2],f[y+3]=b<a?o[b]:255;if(4==h)for(m=0;m<e;m++)for(p=m*c,g=m*n,d=0;d<n;d++)y=g+d<<2,E=3*(b=r[p+(d>>1)]>>4-((1&d)<<2)&15),f[y]=t[E],f[y+1]=t[E+1],f[y+2]=t[E+2],f[y+3]=b<a?o[b]:255;if(8==h)for(d=0;d<s;d++){var b;y=d<<2,E=3*(b=r[d]),f[y]=t[E],f[y+1]=t[E+1],f[y+2]=t[E+2],f[y+3]=b<a?o[b]:255}}else if(4==l){if(8==h)for(d=0;d<s;d++){y=d<<2;var U=r[M=d<<1];f[y]=U,f[y+1]=U,f[y+2]=U,f[y+3]=r[M+1]}if(16==h)for(d=0;d<s;d++){var M;y=d<<2,U=r[M=d<<2],f[y]=U,f[y+1]=U,f[y+2]=U,f[y+3]=r[M+2]}}else if(0==l)for(v=i.tabs.tRNS?i.tabs.tRNS:-1,m=0;m<e;m++){const t=m*c,e=m*n;if(1==h)for(var I=0;I<n;I++){var B=(U=255*(r[t+(I>>>3)]>>>7-(7&I)&1))==255*v?0:255;u[e+I]=B<<24|U<<16|U<<8|U}else if(2==h)for(I=0;I<n;I++)B=(U=85*(r[t+(I>>>2)]>>>6-((3&I)<<1)&3))==85*v?0:255,u[e+I]=B<<24|U<<16|U<<8|U;else if(4==h)for(I=0;I<n;I++)B=(U=17*(r[t+(I>>>1)]>>>4-((1&I)<<2)&15))==17*v?0:255,u[e+I]=B<<24|U<<16|U<<8|U;else if(8==h)for(I=0;I<n;I++)B=(U=r[t+I])==v?0:255,u[e+I]=B<<24|U<<16|U<<8|U;else if(16==h)for(I=0;I<n;I++)U=r[t+(I<<1)],B=A(r,t+(I<<1))==v?0:255,u[e+I]=B<<24|U<<16|U<<8|U}return f}function n(t,r,n,a){const c=o(t),f=new Uint8Array((Math.ceil(n*c/8)+1+t.interlace)*a);return r=t.tabs.CgBI?i(r,f):e(r,f),0==t.interlace?r=s(r,t,0,n,a):1==t.interlace&&(r=function(t,r){const n=r.width,e=r.height,i=o(r),a=i>>3,c=Math.ceil(n*i/8),f=new Uint8Array(e*c);let u=0;const l=[0,0,4,0,2,0,1],h=[0,4,0,2,0,1,0],A=[8,8,8,4,4,2,2],d=[8,8,4,4,2,2,1];let w=0;for(;w<7;){const o=A[w],y=d[w];let m=0,p=0,g=l[w];for(;g<e;)g+=o,p++;let E=h[w];for(;E<n;)E+=y,m++;const b=Math.ceil(m*i/8);s(t,r,u,m,p);let U=0,M=l[w];for(;M<e;){let r=h[w],e=u+U*b<<3;for(;r<n;){var v;if(1==i&&(v=(v=t[e>>3])>>7-(7&e)&1,f[M*c+(r>>3)]|=v<<7-(7&r)),2==i&&(v=(v=t[e>>3])>>6-(7&e)&3,f[M*c+(r>>2)]|=v<<6-((3&r)<<1)),4==i&&(v=(v=t[e>>3])>>4-(7&e)&15,f[M*c+(r>>1)]|=v<<4-((1&r)<<2)),i>=8){const n=M*c+r*a;for(let r=0;r<a;r++)f[n+r]=t[(e>>3)+r]}e+=i,r+=y}U++,M+=o}m*p!=0&&(u+=p*(1+b)),w+=1}return f}(r,t)),r}function e(t,r){return i(new Uint8Array(t.buffer,2,t.length-6),r)}var i=function(){const t={H:{}};return t.H.N=function(r,n){const e=Uint8Array;let i,o,s=0,a=0,c=0,f=0,u=0,l=0,h=0,A=0,d=0;if(3==r[0]&&0==r[1])return n||new e(0);const w=t.H,v=w.b,y=w.e,m=w.R,p=w.n,g=w.A,E=w.Z,b=w.m,U=null==n;for(U&&(n=new e(r.length>>>2<<5));0==s;)if(s=v(r,d,1),a=v(r,d+1,2),d+=3,0!=a){if(U&&(n=t.H.W(n,A+(1<<17))),1==a&&(i=b.J,o=b.h,l=511,h=31),2==a){c=y(r,d,5)+257,f=y(r,d+5,5)+1,u=y(r,d+10,4)+4,d+=14;let t=1;for(var M=0;M<38;M+=2)b.Q[M]=0,b.Q[M+1]=0;for(M=0;M<u;M++){const n=y(r,d+3*M,3);b.Q[1+(b.X[M]<<1)]=n,n>t&&(t=n)}d+=3*u,p(b.Q,t),g(b.Q,t,b.u),i=b.w,o=b.d,d=m(b.u,(1<<t)-1,c+f,r,d,b.v);const n=w.V(b.v,0,c,b.C);l=(1<<n)-1;const e=w.V(b.v,c,f,b.D);h=(1<<e)-1,p(b.C,n),g(b.C,n,i),p(b.D,e),g(b.D,e,o)}for(;;){const t=i[E(r,d)&l];d+=15&t;const e=t>>>4;if(e>>>8==0)n[A++]=e;else{if(256==e)break;{let t=A+e-254;if(e>264){const n=b.q[e-257];t=A+(n>>>3)+y(r,d,7&n),d+=7&n}const i=o[E(r,d)&h];d+=15&i;const s=i>>>4,a=b.c[s],c=(a>>>4)+v(r,d,15&a);for(d+=15&a;A<t;)n[A]=n[A++-c],n[A]=n[A++-c],n[A]=n[A++-c],n[A]=n[A++-c];A=t}}}}else{7&d&&(d+=8-(7&d));const i=4+(d>>>3),o=r[i-4]|r[i-3]<<8;U&&(n=t.H.W(n,A+o)),n.set(new e(r.buffer,r.byteOffset+i,o),A),d=i+o<<3,A+=o}return n.length==A?n:n.slice(0,A)},t.H.W=function(t,r){const n=t.length;if(r<=n)return t;const e=new Uint8Array(n<<1);return e.set(t,0),e},t.H.R=function(r,n,e,i,o,s){const a=t.H.e,c=t.H.Z;let f=0;for(;f<e;){const t=r[c(i,o)&n];o+=15&t;const e=t>>>4;if(e<=15)s[f]=e,f++;else{let t=0,r=0;16==e?(r=3+a(i,o,2),o+=2,t=s[f-1]):17==e?(r=3+a(i,o,3),o+=3):18==e&&(r=11+a(i,o,7),o+=7);const n=f+r;for(;f<n;)s[f]=t,f++}}return o},t.H.V=function(t,r,n,e){let i=0,o=0;const s=e.length>>>1;for(;o<n;){const n=t[o+r];e[o<<1]=0,e[1+(o<<1)]=n,n>i&&(i=n),o++}for(;o<s;)e[o<<1]=0,e[1+(o<<1)]=0,o++;return i},t.H.n=function(r,n){const e=t.H.m,i=r.length;let o,s,a,c;const f=e.j;for(var u=0;u<=n;u++)f[u]=0;for(u=1;u<i;u+=2)f[r[u]]++;const l=e.K;for(o=0,f[0]=0,s=1;s<=n;s++)o=o+f[s-1]<<1,l[s]=o;for(a=0;a<i;a+=2)c=r[a+1],0!=c&&(r[a]=l[c],l[c]++)},t.H.A=function(r,n,e){const i=r.length,o=t.H.m.r;for(let t=0;t<i;t+=2)if(0!=r[t+1]){const i=t>>1,s=r[t+1],a=i<<4|s,c=n-s;let f=r[t]<<c;const u=f+(1<<c);for(;f!=u;)e[o[f]>>>15-n]=a,f++}},t.H.l=function(r,n){const e=t.H.m.r,i=15-n;for(let t=0;t<r.length;t+=2){const o=r[t]<<n-r[t+1];r[t]=e[o]>>>i}},t.H.M=function(t,r,n){n<<=7&r;const e=r>>>3;t[e]|=n,t[e+1]|=n>>>8},t.H.I=function(t,r,n){n<<=7&r;const e=r>>>3;t[e]|=n,t[e+1]|=n>>>8,t[e+2]|=n>>>16},t.H.e=function(t,r,n){return(t[r>>>3]|t[1+(r>>>3)]<<8)>>>(7&r)&(1<<n)-1},t.H.b=function(t,r,n){return(t[r>>>3]|t[1+(r>>>3)]<<8|t[2+(r>>>3)]<<16)>>>(7&r)&(1<<n)-1},t.H.Z=function(t,r){return(t[r>>>3]|t[1+(r>>>3)]<<8|t[2+(r>>>3)]<<16)>>>(7&r)},t.H.i=function(t,r){return(t[r>>>3]|t[1+(r>>>3)]<<8|t[2+(r>>>3)]<<16|t[3+(r>>>3)]<<24)>>>(7&r)},t.H.m=function(){const t=Uint16Array,r=Uint32Array;return{K:new t(16),j:new t(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new t(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new r(32),J:new t(512),yt:[],h:new t(32),$:[],w:new t(32768),C:[],v:[],d:new t(32768),D:[],u:new t(512),Q:[],r:new t(32768),s:new r(286),Y:new r(30),a:new r(19),t:new r(15e3),k:new t(65536),g:new t(32768)}}(),function(){const r=t.H.m;for(var n=0;n<32768;n++){let t=n;t=(2863311530&t)>>>1|(1431655765&t)<<1,t=(3435973836&t)>>>2|(858993459&t)<<2,t=(4042322160&t)>>>4|(252645135&t)<<4,t=(4278255360&t)>>>8|(16711935&t)<<8,r.r[n]=(t>>>16|t<<16)>>>17}function e(t,r,n){for(;0!=r--;)t.push(0,n)}for(n=0;n<32;n++)r.q[n]=r.S[n]<<3|r.T[n],r.c[n]=r.p[n]<<4|r.z[n];e(r.yt,144,8),e(r.yt,112,9),e(r.yt,24,7),e(r.yt,8,8),t.H.n(r.yt,9),t.H.A(r.yt,9,r.J),t.H.l(r.yt,9),e(r.$,32,5),t.H.n(r.$,5),t.H.A(r.$,5,r.h),t.H.l(r.$,5),e(r.Q,19,0),e(r.C,286,0),e(r.D,30,0),e(r.v,320,0)}(),t.H.N}();function o(t){return[1,null,3,1,2,null,4][t.ctype]*t.depth}function s(t,r,n,e,i){let s=o(r);const c=Math.ceil(e*s/8);let f,u;s=Math.ceil(s/8);let l=t[n],h=0;if(l>1&&(t[n]=[0,0,1][l-2]),3==l)for(h=s;h<c;h++)t[h+1]=t[h+1]+(t[h+1-s]>>>1)&255;for(let r=0;r<i;r++)if(f=n+r*c,u=f+r+1,l=t[u-1],h=0,0==l)for(;h<c;h++)t[f+h]=t[u+h];else if(1==l){for(;h<s;h++)t[f+h]=t[u+h];for(;h<c;h++)t[f+h]=t[u+h]+t[f+h-s]}else if(2==l)for(;h<c;h++)t[f+h]=t[u+h]+t[f+h-c];else if(3==l){for(;h<s;h++)t[f+h]=t[u+h]+(t[f+h-c]>>>1);for(;h<c;h++)t[f+h]=t[u+h]+(t[f+h-c]+t[f+h-s]>>>1)}else{for(;h<s;h++)t[f+h]=t[u+h]+a(0,t[f+h-c],0);for(;h<c;h++)t[f+h]=t[u+h]+a(t[f+h-s],t[f+h-c],t[f+h-s-c])}return t}function a(t,r,n){const e=t+r-n,i=e-t,o=e-r,s=e-n;return i*i<=o*o&&i*i<=s*s?t:o*o<=s*s?r:n}function c(r,n,e){e.width=t.readUint(r,n),n+=4,e.height=t.readUint(r,n),n+=4,e.depth=r[n],n++,e.ctype=r[n],n++,e.compress=r[n],n++,e.filter=r[n],n++,e.interlace=r[n],n++}function f(t,r,n,e,i,o,s,a,c){const f=Math.min(r,i),u=Math.min(n,o);let l=0,h=0;for(let n=0;n<u;n++)for(let o=0;o<f;o++)if(s>=0&&a>=0?(l=n*r+o<<2,h=(a+n)*i+s+o<<2):(l=(-a+n)*r-s+o<<2,h=n*i+o<<2),0==c)e[h]=t[l],e[h+1]=t[l+1],e[h+2]=t[l+2],e[h+3]=t[l+3];else if(1==c){var A=t[l+3]*(1/255),d=t[l]*A,w=t[l+1]*A,v=t[l+2]*A,y=e[h+3]*(1/255),m=e[h]*y,p=e[h+1]*y,g=e[h+2]*y;const r=1-A,n=A+y*r,i=0==n?0:1/n;e[h+3]=255*n,e[h+0]=(d+m*r)*i,e[h+1]=(w+p*r)*i,e[h+2]=(v+g*r)*i}else if(2==c)A=t[l+3],d=t[l],w=t[l+1],v=t[l+2],y=e[h+3],m=e[h],p=e[h+1],g=e[h+2],A==y&&d==m&&w==p&&v==g?(e[h]=0,e[h+1]=0,e[h+2]=0,e[h+3]=0):(e[h]=d,e[h+1]=w,e[h+2]=v,e[h+3]=A);else if(3==c){if(A=t[l+3],d=t[l],w=t[l+1],v=t[l+2],y=e[h+3],m=e[h],p=e[h+1],g=e[h+2],A==y&&d==m&&w==p&&v==g)continue;if(A<220&&y>20)return!1}return!0}return{decode:function(r){const o=new Uint8Array(r);let s=8;const a=t,f=a.readUshort,u=a.readUint,l={tabs:{},frames:[]},h=new Uint8Array(o.length);let A,d=0,w=0;const v=[137,80,78,71,13,10,26,10];for(var y=0;y<8;y++)if(o[y]!=v[y])throw"The input is not a PNG file!";for(;s<o.length;){const t=a.readUint(o,s);s+=4;const r=a.readASCII(o,s,4);if(s+=4,"IHDR"==r)c(o,s,l);else if("iCCP"==r){for(var m=s;0!=o[m];)m++;a.readASCII(o,s,m-s);const n=o.slice(m+2,s+t);let c=null;try{c=e(n)}catch(t){c=i(n)}l.tabs[r]=c}else if("CgBI"==r)l.tabs[r]=o.slice(s,s+4);else if("IDAT"==r){for(y=0;y<t;y++)h[d+y]=o[s+y];d+=t}else if("acTL"==r)l.tabs[r]={num_frames:u(o,s),num_plays:u(o,s+4)},A=new Uint8Array(o.length);else if("fcTL"==r){0!=w&&((M=l.frames[l.frames.length-1]).data=n(l,A.slice(0,w),M.rect.width,M.rect.height),w=0);const t={x:u(o,s+12),y:u(o,s+16),width:u(o,s+4),height:u(o,s+8)};let r=f(o,s+22);r=f(o,s+20)/(0==r?100:r);const e={rect:t,delay:Math.round(1e3*r),dispose:o[s+24],blend:o[s+25]};l.frames.push(e)}else if("fdAT"==r){for(y=0;y<t-4;y++)A[w+y]=o[s+y+4];w+=t-4}else if("pHYs"==r)l.tabs[r]=[a.readUint(o,s),a.readUint(o,s+4),o[s+8]];else if("cHRM"==r)for(l.tabs[r]=[],y=0;y<8;y++)l.tabs[r].push(a.readUint(o,s+4*y));else if("tEXt"==r||"zTXt"==r){null==l.tabs[r]&&(l.tabs[r]={});var p=a.nextZero(o,s),g=a.readASCII(o,s,p-s),E=s+t-p-1;if("tEXt"==r)U=a.readASCII(o,p+1,E);else{var b=e(o.slice(p+2,p+2+E));U=a.readUTF8(b,0,b.length)}l.tabs[r][g]=U}else if("iTXt"==r){null==l.tabs[r]&&(l.tabs[r]={}),p=0,m=s,p=a.nextZero(o,m),g=a.readASCII(o,m,p-m);const n=o[m=p+1];var U;m+=2,p=a.nextZero(o,m),a.readASCII(o,m,p-m),m=p+1,p=a.nextZero(o,m),a.readUTF8(o,m,p-m),E=t-((m=p+1)-s),0==n?U=a.readUTF8(o,m,E):(b=e(o.slice(m,m+E)),U=a.readUTF8(b,0,b.length)),l.tabs[r][g]=U}else if("PLTE"==r)l.tabs[r]=a.readBytes(o,s,t);else if("hIST"==r){const t=l.tabs.PLTE.length/3;for(l.tabs[r]=[],y=0;y<t;y++)l.tabs[r].push(f(o,s+2*y))}else if("tRNS"==r)3==l.ctype?l.tabs[r]=a.readBytes(o,s,t):0==l.ctype?l.tabs[r]=f(o,s):2==l.ctype&&(l.tabs[r]=[f(o,s),f(o,s+2),f(o,s+4)]);else if("gAMA"==r)l.tabs[r]=a.readUint(o,s)/1e5;else if("sRGB"==r)l.tabs[r]=o[s];else if("bKGD"==r)0==l.ctype||4==l.ctype?l.tabs[r]=[f(o,s)]:2==l.ctype||6==l.ctype?l.tabs[r]=[f(o,s),f(o,s+2),f(o,s+4)]:3==l.ctype&&(l.tabs[r]=o[s]);else if("IEND"==r)break;s+=t,a.readUint(o,s),s+=4}var M;return 0!=w&&((M=l.frames[l.frames.length-1]).data=n(l,A.slice(0,w),M.rect.width,M.rect.height)),l.data=n(l,h,l.width,l.height),delete l.compress,delete l.interlace,delete l.filter,l},toRGBA8:function(t){const n=t.width,e=t.height;if(null==t.tabs.acTL)return[r(t.data,n,e,t).buffer];const i=[];null==t.frames[0].data&&(t.frames[0].data=t.data);const o=n*e*4,s=new Uint8Array(o),a=new Uint8Array(o),c=new Uint8Array(o);for(let l=0;l<t.frames.length;l++){const h=t.frames[l],A=h.rect.x,d=h.rect.y,w=h.rect.width,v=h.rect.height,y=r(h.data,w,v,t);if(0!=l)for(var u=0;u<o;u++)c[u]=s[u];if(0==h.blend?f(y,w,v,s,n,e,A,d,0):1==h.blend&&f(y,w,v,s,n,e,A,d,1),i.push(s.buffer.slice(0)),0==h.dispose);else if(1==h.dispose)f(a,w,v,s,n,e,A,d,0);else if(2==h.dispose)for(u=0;u<o;u++)s[u]=c[u]}return i},gt:a,Et:f,bt:t}}();!function(){const{Et:t}=c,{bt:r}=c,n=c.gt;var e={table:function(){const t=new Uint32Array(256);for(let r=0;r<256;r++){let n=r;for(let t=0;t<8;t++)1&n?n=3988292384^n>>>1:n>>>=1;t[r]=n}return t}(),update(t,r,n,i){for(let o=0;o<i;o++)t=e.table[255&(t^r[n+o])]^t>>>8;return t},crc:(t,r,n)=>4294967295^e.update(4294967295,t,r,n)};function i(t,r,n,e){r[n]+=t[0]*e>>4,r[n+1]+=t[1]*e>>4,r[n+2]+=t[2]*e>>4,r[n+3]+=t[3]*e>>4}function o(t){return Math.max(0,Math.min(255,t))}function s(t,r){const n=t[0]-r[0],e=t[1]-r[1],i=t[2]-r[2],o=t[3]-r[3];return n*n+e*e+i*i+o*o}function f(t,r,n,e,a,c,f){null==f&&(f=1);const u=e.length,l=[];for(var h=0;h<u;h++){const t=e[h];l.push([t>>>0&255,t>>>8&255,t>>>16&255,t>>>24&255])}for(h=0;h<u;h++){let t=4294967295;for(var A=0,d=0;d<u;d++){var w=s(l[h],l[d]);d!=h&&w<t&&(t=w,A=d)}}const v=new Uint32Array(a.buffer),y=new Int16Array(r*n*4),m=[0,8,2,10,12,4,14,6,3,11,1,9,15,7,13,5];for(h=0;h<m.length;h++)m[h]=255*((m[h]+.5)/16-.5);for(let a=0;a<n;a++)for(let g=0;g<r;g++){var p;h=4*(a*r+g),2!=f?p=[o(t[h]+y[h]),o(t[h+1]+y[h+1]),o(t[h+2]+y[h+2]),o(t[h+3]+y[h+3])]:(w=m[4*(3&a)+(3&g)],p=[o(t[h]+w),o(t[h+1]+w),o(t[h+2]+w),o(t[h+3]+w)]),A=0;let E=16777215;for(d=0;d<u;d++){const t=s(p,l[d]);t<E&&(E=t,A=d)}const b=l[A],U=[p[0]-b[0],p[1]-b[1],p[2]-b[2],p[3]-b[3]];1==f&&(g!=r-1&&i(U,y,h+4,7),a!=n-1&&(0!=g&&i(U,y,h+4*r-4,3),i(U,y,h+4*r,5),g!=r-1&&i(U,y,h+4*r+4,1))),c[h>>2]=A,v[h>>2]=e[A]}}function u(t,n,i,o,s){null==s&&(s={});const{crc:a}=e,c=r.writeUint,f=r.writeUshort,u=r.writeASCII;let l=8;const h=t.frames.length>1;let A,d=!1,w=33+(h?20:0);if(null!=s.sRGB&&(w+=13),null!=s.pHYs&&(w+=21),null!=s.iCCP&&(A=pako.deflate(s.iCCP),w+=21+A.length+4),3==t.ctype){for(var v=t.plte.length,y=0;y<v;y++)t.plte[y]>>>24!=255&&(d=!0);w+=8+3*v+4+(d?8+1*v+4:0)}for(var m=0;m<t.frames.length;m++)h&&(w+=38),w+=(b=t.frames[m]).cimg.length+12,0!=m&&(w+=4);w+=12;const p=new Uint8Array(w),g=[137,80,78,71,13,10,26,10];for(y=0;y<8;y++)p[y]=g[y];if(c(p,l,13),l+=4,u(p,l,"IHDR"),l+=4,c(p,l,n),l+=4,c(p,l,i),l+=4,p[l]=t.depth,l++,p[l]=t.ctype,l++,p[l]=0,l++,p[l]=0,l++,p[l]=0,l++,c(p,l,a(p,l-17,17)),l+=4,null!=s.sRGB&&(c(p,l,1),l+=4,u(p,l,"sRGB"),l+=4,p[l]=s.sRGB,l++,c(p,l,a(p,l-5,5)),l+=4),null!=s.iCCP){const t=13+A.length;c(p,l,t),l+=4,u(p,l,"iCCP"),l+=4,u(p,l,"ICC profile"),l+=11,l+=2,p.set(A,l),l+=A.length,c(p,l,a(p,l-(t+4),t+4)),l+=4}if(null!=s.pHYs&&(c(p,l,9),l+=4,u(p,l,"pHYs"),l+=4,c(p,l,s.pHYs[0]),l+=4,c(p,l,s.pHYs[1]),l+=4,p[l]=s.pHYs[2],l++,c(p,l,a(p,l-13,13)),l+=4),h&&(c(p,l,8),l+=4,u(p,l,"acTL"),l+=4,c(p,l,t.frames.length),l+=4,c(p,l,null!=s.loop?s.loop:0),l+=4,c(p,l,a(p,l-12,12)),l+=4),3==t.ctype){for(c(p,l,3*(v=t.plte.length)),l+=4,u(p,l,"PLTE"),l+=4,y=0;y<v;y++){const r=3*y,n=t.plte[y],e=255&n,i=n>>>8&255,o=n>>>16&255;p[l+r+0]=e,p[l+r+1]=i,p[l+r+2]=o}if(l+=3*v,c(p,l,a(p,l-3*v-4,3*v+4)),l+=4,d){for(c(p,l,v),l+=4,u(p,l,"tRNS"),l+=4,y=0;y<v;y++)p[l+y]=t.plte[y]>>>24&255;l+=v,c(p,l,a(p,l-v-4,v+4)),l+=4}}let E=0;for(m=0;m<t.frames.length;m++){var b=t.frames[m];h&&(c(p,l,26),l+=4,u(p,l,"fcTL"),l+=4,c(p,l,E++),l+=4,c(p,l,b.rect.width),l+=4,c(p,l,b.rect.height),l+=4,c(p,l,b.rect.x),l+=4,c(p,l,b.rect.y),l+=4,f(p,l,o[m]),l+=2,f(p,l,1e3),l+=2,p[l]=b.dispose,l++,p[l]=b.blend,l++,c(p,l,a(p,l-30,30)),l+=4);const r=b.cimg;c(p,l,(v=r.length)+(0==m?0:4)),l+=4;const n=l;u(p,l,0==m?"IDAT":"fdAT"),l+=4,0!=m&&(c(p,l,E++),l+=4),p.set(r,l),l+=v,c(p,l,a(p,n,l-n)),l+=4}return c(p,l,0),l+=4,u(p,l,"IEND"),l+=4,c(p,l,a(p,l-4,4)),l+=4,p.buffer}function l(t,r,n){for(let e=0;e<t.frames.length;e++){const i=t.frames[e],o=i.rect.height,s=new Uint8Array(o*i.bpl+o);i.cimg=w(i.img,o,i.bpp,i.bpl,s,r,n)}}function h(r,n,e,i,o){const s=o[0],a=o[1],c=o[2],u=o[3],l=o[4],h=o[5];let w=6,v=8,m=255;for(var p=0;p<r.length;p++){const t=new Uint8Array(r[p]);for(var g=t.length,E=0;E<g;E+=4)m&=t[E+3]}const b=255!=m,U=function(r,n,e,i,o,s){const a=[];for(var c=0;c<r.length;c++){const l=new Uint8Array(r[c]),A=new Uint32Array(l.buffer);var f;let w=0,v=0,y=n,m=e,p=i?1:0;if(0!=c){const g=s||i||1==c||0!=a[c-2].dispose?1:2;let E=0,b=1e9;for(let t=0;t<g;t++){var u=new Uint8Array(r[c-1-t]);const i=new Uint32Array(r[c-1-t]);let s=n,a=e,f=-1,l=-1;for(let t=0;t<e;t++)for(let r=0;r<n;r++)A[h=t*n+r]!=i[h]&&(r<s&&(s=r),r>f&&(f=r),t<a&&(a=t),t>l&&(l=t));-1==f&&(s=a=f=l=0),o&&(!(1&~s)&&s--,!(1&~a)&&a--);const d=(f-s+1)*(l-a+1);d<b&&(b=d,E=t,w=s,v=a,y=f-s+1,m=l-a+1)}u=new Uint8Array(r[c-1-E]),1==E&&(a[c-1].dispose=2),f=new Uint8Array(y*m*4),t(u,n,e,f,y,m,-w,-v,0),p=t(l,n,e,f,y,m,-w,-v,3)?1:0,1==p?d(l,n,e,f,{x:w,y:v,width:y,height:m}):t(l,n,e,f,y,m,-w,-v,0)}else f=l.slice(0);a.push({rect:{x:w,y:v,width:y,height:m},img:f,blend:p,dispose:0})}if(i)for(c=0;c<a.length;c++){if(1==(w=a[c]).blend)continue;const t=w.rect,i=a[c-1].rect,s=Math.min(t.x,i.x),f=Math.min(t.y,i.y),u={x:s,y:f,width:Math.max(t.x+t.width,i.x+i.width)-s,height:Math.max(t.y+t.height,i.y+i.height)-f};a[c-1].dispose=1,c-1!=0&&A(r,n,e,a,c-1,u,o),A(r,n,e,a,c,u,o)}let l=0;if(1!=r.length)for(var h=0;h<a.length;h++){var w;l+=(w=a[h]).rect.width*w.rect.height}return a}(r,n,e,s,a,c),M={},I=[],B=[];if(0!=i){const t=[];for(E=0;E<U.length;E++)t.push(U[E].img.buffer);const r=function(t){let r=0;for(var n=0;n<t.length;n++)r+=t[n].byteLength;const e=new Uint8Array(r);let i=0;for(n=0;n<t.length;n++){const r=new Uint8Array(t[n]),o=r.length;for(let t=0;t<o;t+=4){let n=r[t],o=r[t+1],s=r[t+2];const a=r[t+3];0==a&&(n=o=s=0),e[i+t]=n,e[i+t+1]=o,e[i+t+2]=s,e[i+t+3]=a}i+=o}return e.buffer}(t),n=y(r,i);for(E=0;E<n.plte.length;E++)I.push(n.plte[E].est.rgba);let e=0;for(E=0;E<U.length;E++){const t=(D=U[E]).img.length;var C=new Uint8Array(n.inds.buffer,e>>2,t>>2);B.push(C);const r=new Uint8Array(n.abuf,e,t);h&&f(D.img,D.rect.width,D.rect.height,I,r,C),D.img.set(r),e+=t}}else for(p=0;p<U.length;p++){var D=U[p];const t=new Uint32Array(D.img.buffer);var Q=D.rect.width;for(g=t.length,C=new Uint8Array(g),B.push(C),E=0;E<g;E++){const r=t[E];if(0!=E&&r==t[E-1])C[E]=C[E-1];else if(E>Q&&r==t[E-Q])C[E]=C[E-Q];else{let t=M[r];if(null==t&&(M[r]=t=I.length,I.push(r),I.length>=300))break;C[E]=t}}}const k=I.length;for(k<=256&&0==l&&(v=k<=2?1:k<=4?2:k<=16?4:8,v=Math.max(v,u)),p=0;p<U.length;p++){(D=U[p]).rect.x,Q=D.rect.width;const t=D.rect.height;let r=D.img,n=4*Q,e=4;if(k<=256&&0==l){n=Math.ceil(v*Q/8);var R=new Uint8Array(n*t);const i=B[p];for(let r=0;r<t;r++){E=r*n;const t=r*Q;if(8==v)for(var S=0;S<Q;S++)R[E+S]=i[t+S];else if(4==v)for(S=0;S<Q;S++)R[E+(S>>1)]|=i[t+S]<<4-4*(1&S);else if(2==v)for(S=0;S<Q;S++)R[E+(S>>2)]|=i[t+S]<<6-2*(3&S);else if(1==v)for(S=0;S<Q;S++)R[E+(S>>3)]|=i[t+S]<<7-1*(7&S)}r=R,w=3,e=1}else if(0==b&&1==U.length){R=new Uint8Array(Q*t*3);const i=Q*t;for(E=0;E<i;E++){const t=3*E,n=4*E;R[t]=r[n],R[t+1]=r[n+1],R[t+2]=r[n+2]}r=R,w=2,e=3,n=3*Q}D.img=r,D.bpl=n,D.bpp=e}return{ctype:w,depth:v,plte:I,frames:U}}function A(r,n,e,i,o,s,a){const c=Uint8Array,f=Uint32Array,u=new c(r[o-1]),l=new f(r[o-1]),h=o+1<r.length?new c(r[o+1]):null,A=new c(r[o]),w=new f(A.buffer);let v=n,y=e,m=-1,p=-1;for(let t=0;t<s.height;t++)for(let r=0;r<s.width;r++){const e=s.x+r,a=s.y+t,c=a*n+e,f=w[c];0==f||0==i[o-1].dispose&&l[c]==f&&(null==h||0!=h[4*c+3])||(e<v&&(v=e),e>m&&(m=e),a<y&&(y=a),a>p&&(p=a))}-1==m&&(v=y=m=p=0),a&&(!(1&~v)&&v--,!(1&~y)&&y--),s={x:v,y:y,width:m-v+1,height:p-y+1};const g=i[o];g.rect=s,g.blend=1,g.img=new Uint8Array(s.width*s.height*4),0==i[o-1].dispose?(t(u,n,e,g.img,s.width,s.height,-s.x,-s.y,0),d(A,n,e,g.img,s)):t(A,n,e,g.img,s.width,s.height,-s.x,-s.y,0)}function d(r,n,e,i,o){t(r,n,e,i,o.width,o.height,-o.x,-o.y,2)}function w(t,r,n,e,i,o,s){const c=[];let f,u=[0,1,2,3,4];-1!=o?u=[o]:(r*e>5e5||1==n)&&(u=[0]),s&&(f={level:0});const l=a;for(var h=0;h<u.length;h++){for(let o=0;o<r;o++)v(i,t,o,e,n,u[h]);c.push(l.deflate(i,f))}let A,d=1e9;for(h=0;h<c.length;h++)c[h].length<d&&(A=h,d=c[h].length);return c[A]}function v(t,r,e,i,o,s){const a=e*i;let c=a+e;if(t[c]=s,c++,0==s)if(i<500)for(var f=0;f<i;f++)t[c+f]=r[a+f];else t.set(new Uint8Array(r.buffer,a,i),c);else if(1==s){for(f=0;f<o;f++)t[c+f]=r[a+f];for(f=o;f<i;f++)t[c+f]=r[a+f]-r[a+f-o]+256&255}else if(0==e){for(f=0;f<o;f++)t[c+f]=r[a+f];if(2==s)for(f=o;f<i;f++)t[c+f]=r[a+f];if(3==s)for(f=o;f<i;f++)t[c+f]=r[a+f]-(r[a+f-o]>>1)+256&255;if(4==s)for(f=o;f<i;f++)t[c+f]=r[a+f]-n(r[a+f-o],0,0)+256&255}else{if(2==s)for(f=0;f<i;f++)t[c+f]=r[a+f]+256-r[a+f-i]&255;if(3==s){for(f=0;f<o;f++)t[c+f]=r[a+f]+256-(r[a+f-i]>>1)&255;for(f=o;f<i;f++)t[c+f]=r[a+f]+256-(r[a+f-i]+r[a+f-o]>>1)&255}if(4==s){for(f=0;f<o;f++)t[c+f]=r[a+f]+256-n(0,r[a+f-i],0)&255;for(f=o;f<i;f++)t[c+f]=r[a+f]+256-n(r[a+f-o],r[a+f-i],r[a+f-o-i])&255}}}function y(t,r){const n=new Uint8Array(t),e=n.slice(0),i=new Uint32Array(e.buffer),o=m(e,r),s=o[0],a=o[1],c=n.length,f=new Uint8Array(c>>2);let u;if(n.length<2e7)for(var l=0;l<c;l+=4)u=p(s,h=n[l]*(1/255),A=n[l+1]*(1/255),d=n[l+2]*(1/255),w=n[l+3]*(1/255)),f[l>>2]=u.ind,i[l>>2]=u.est.rgba;else for(l=0;l<c;l+=4){var h=n[l]*(1/255),A=n[l+1]*(1/255),d=n[l+2]*(1/255),w=n[l+3]*(1/255);for(u=s;u.left;)u=g(u.est,h,A,d,w)<=0?u.left:u.right;f[l>>2]=u.ind,i[l>>2]=u.est.rgba}return{abuf:e.buffer,inds:f,plte:a}}function m(t,r,n){null==n&&(n=1e-4);const e=new Uint32Array(t.buffer),i={i0:0,i1:t.length,bst:null,est:null,tdst:0,left:null,right:null};i.bst=U(t,i.i0,i.i1),i.est=M(i.bst);const o=[i];for(;o.length<r;){let r=0,i=0;for(var s=0;s<o.length;s++)o[s].est.L>r&&(r=o[s].est.L,i=s);if(r<n)break;const a=o[i],c=E(t,e,a.i0,a.i1,a.est.e,a.est.eMq255);if(a.i0>=c||a.i1<=c){a.est.L=0;continue}const f={i0:a.i0,i1:c,bst:null,est:null,tdst:0,left:null,right:null};f.bst=U(t,f.i0,f.i1),f.est=M(f.bst);const u={i0:c,i1:a.i1,bst:null,est:null,tdst:0,left:null,right:null};for(u.bst={R:[],m:[],N:a.bst.N-f.bst.N},s=0;s<16;s++)u.bst.R[s]=a.bst.R[s]-f.bst.R[s];for(s=0;s<4;s++)u.bst.m[s]=a.bst.m[s]-f.bst.m[s];u.est=M(u.bst),a.left=f,a.right=u,o[i]=f,o.push(u)}for(o.sort(((t,r)=>r.bst.N-t.bst.N)),s=0;s<o.length;s++)o[s].ind=s;return[i,o]}function p(t,r,n,e,i){if(null==t.left)return t.tdst=function(t,r,n,e,i){const o=r-t[0],s=n-t[1],a=e-t[2],c=i-t[3];return o*o+s*s+a*a+c*c}(t.est.q,r,n,e,i),t;const o=g(t.est,r,n,e,i);let s=t.left,a=t.right;o>0&&(s=t.right,a=t.left);const c=p(s,r,n,e,i);if(c.tdst<=o*o)return c;const f=p(a,r,n,e,i);return f.tdst<c.tdst?f:c}function g(t,r,n,e,i){const{e:o}=t;return o[0]*r+o[1]*n+o[2]*e+o[3]*i-t.eMq}function E(t,r,n,e,i,o){for(e-=4;n<e;){for(;b(t,n,i)<=o;)n+=4;for(;b(t,e,i)>o;)e-=4;if(n>=e)break;const s=r[n>>2];r[n>>2]=r[e>>2],r[e>>2]=s,n+=4,e-=4}for(;b(t,n,i)>o;)n-=4;return n+4}function b(t,r,n){return t[r]*n[0]+t[r+1]*n[1]+t[r+2]*n[2]+t[r+3]*n[3]}function U(t,r,n){const e=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],i=[0,0,0,0],o=n-r>>2;for(let o=r;o<n;o+=4){const r=t[o]*(1/255),n=t[o+1]*(1/255),s=t[o+2]*(1/255),a=t[o+3]*(1/255);i[0]+=r,i[1]+=n,i[2]+=s,i[3]+=a,e[0]+=r*r,e[1]+=r*n,e[2]+=r*s,e[3]+=r*a,e[5]+=n*n,e[6]+=n*s,e[7]+=n*a,e[10]+=s*s,e[11]+=s*a,e[15]+=a*a}return e[4]=e[1],e[8]=e[2],e[9]=e[6],e[12]=e[3],e[13]=e[7],e[14]=e[11],{R:e,m:i,N:o}}function M(t){const{R:r}=t,{m:n}=t,{N:e}=t,i=n[0],o=n[1],s=n[2],a=n[3],c=0==e?0:1/e,f=[r[0]-i*i*c,r[1]-i*o*c,r[2]-i*s*c,r[3]-i*a*c,r[4]-o*i*c,r[5]-o*o*c,r[6]-o*s*c,r[7]-o*a*c,r[8]-s*i*c,r[9]-s*o*c,r[10]-s*s*c,r[11]-s*a*c,r[12]-a*i*c,r[13]-a*o*c,r[14]-a*s*c,r[15]-a*a*c],u=f,l=I;let h=[Math.random(),Math.random(),Math.random(),Math.random()],A=0,d=0;if(0!=e)for(let t=0;t<16&&(h=l.multVec(u,h),d=Math.sqrt(l.dot(h,h)),h=l.sml(1/d,h),!(0!=t&&Math.abs(d-A)<1e-9));t++)A=d;const w=[i*c,o*c,s*c,a*c];return{Cov:f,q:w,e:h,L:A,eMq255:l.dot(l.sml(255,w),h),eMq:l.dot(h,w),rgba:(Math.round(255*w[3])<<24|Math.round(255*w[2])<<16|Math.round(255*w[1])<<8|Math.round(255*w[0]))>>>0}}var I={multVec:(t,r)=>[t[0]*r[0]+t[1]*r[1]+t[2]*r[2]+t[3]*r[3],t[4]*r[0]+t[5]*r[1]+t[6]*r[2]+t[7]*r[3],t[8]*r[0]+t[9]*r[1]+t[10]*r[2]+t[11]*r[3],t[12]*r[0]+t[13]*r[1]+t[14]*r[2]+t[15]*r[3]],dot:(t,r)=>t[0]*r[0]+t[1]*r[1]+t[2]*r[2]+t[3]*r[3],sml:(t,r)=>[t*r[0],t*r[1],t*r[2],t*r[3]]};c.encode=function(t,r,n,e,i,o,s){null==e&&(e=0),null==s&&(s=!1);const a=h(t,r,n,e,[!1,!1,!1,0,s,!1]);return l(a,-1),u(a,r,n,i,o)},c.encodeLL=function(t,r,n,e,i,o,s,a){const c={ctype:0+(1==e?0:2)+(0==i?0:4),depth:o,frames:[]},f=(e+i)*o,h=f*r;for(let e=0;e<t.length;e++)c.frames.push({rect:{x:0,y:0,width:r,height:n},img:new Uint8Array(t[e]),blend:0,dispose:1,bpp:Math.ceil(f/8),bpl:Math.ceil(h/8)});return l(c,0,!0),u(c,r,n,s,a)},c.encode.compress=h,c.encode.dither=f,c.quantize=y,c.quantize.getKDtree=m,c.quantize.getNearest=p}();const f={toArrayBuffer(t,r){const n=t.width,e=t.height,i=n<<2,o=t.getContext("2d").getImageData(0,0,n,e),s=new Uint32Array(o.data.buffer),a=(32*n+31)/32<<2,c=a*e,u=122+c,l=new ArrayBuffer(u),h=new DataView(l),A=1<<20;let d,w,v,y,m=A,p=0,g=0,E=0;function b(t){h.setUint16(g,t,!0),g+=2}function U(t){h.setUint32(g,t,!0),g+=4}function M(t){g+=t}b(19778),U(u),M(4),U(122),U(108),U(n),U(-e>>>0),b(1),b(32),U(3),U(c),U(2835),U(2835),M(8),U(16711680),U(65280),U(255),U(4278190080),U(1466527264),function t(){for(;p<e&&m>0;){for(y=122+p*a,d=0;d<i;)m--,w=s[E++],v=w>>>24,h.setUint32(y+d,w<<8|v),d+=4;p++}E<s.length?(m=A,setTimeout(t,f.Ut)):r(l)}()},toBlob(t,r){this.toArrayBuffer(t,(t=>{r(new Blob([t],{type:"image/bmp"}))}))},Ut:9};var u={CHROME:"CHROME",FIREFOX:"FIREFOX",DESKTOP_SAFARI:"DESKTOP_SAFARI",IE:"IE",IOS:"IOS",ETC:"ETC"},l={[u.CHROME]:16384,[u.FIREFOX]:11180,[u.DESKTOP_SAFARI]:16384,[u.IE]:8192,[u.IOS]:4096,[u.ETC]:8192};const h="undefined"!=typeof window,A="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,d=h&&window.cordova&&window.cordova.require&&window.cordova.require("cordova/modulemapper"),w=(h||A)&&(d&&d.getOriginalSymbol(window,"File")||"undefined"!=typeof File&&File),v=(h||A)&&(d&&d.getOriginalSymbol(window,"FileReader")||"undefined"!=typeof FileReader&&FileReader);function y(t,r,n=Date.now()){return new Promise((e=>{const i=t.split(","),o=i[0].match(/:(.*?);/)[1],s=globalThis.atob(i[1]);let a=s.length;const c=new Uint8Array(a);for(;a--;)c[a]=s.charCodeAt(a);const f=new Blob([c],{type:o});f.name=r,f.lastModified=n,e(f)}))}function m(t){return new Promise(((r,n)=>{const e=new v;e.onload=()=>r(e.result),e.onerror=t=>n(t),e.readAsDataURL(t)}))}function p(t){return new Promise(((r,n)=>{const e=new Image;e.onload=()=>r(e),e.onerror=t=>n(t),e.src=t}))}function g(){if(void 0!==g.cachedResult)return g.cachedResult;let t=u.ETC;const{userAgent:r}=navigator;return/Chrom(e|ium)/i.test(r)?t=u.CHROME:/iP(ad|od|hone)/i.test(r)&&/WebKit/i.test(r)?t=u.IOS:/Safari/i.test(r)?t=u.DESKTOP_SAFARI:/Firefox/i.test(r)?t=u.FIREFOX:(/MSIE/i.test(r)||1==!!document.documentMode)&&(t=u.IE),g.cachedResult=t,g.cachedResult}function E(t,r){const n=g(),e=l[n];let i=t,o=r,s=i*o;const a=i>o?o/i:i/o;for(;s>e*e;){const t=(e+i)/2,r=(e+o)/2;t<r?(o=r,i=r*a):(o=t*a,i=t),s=i*o}return{width:i,height:o}}function b(t,r){let n,e;try{if(n=new OffscreenCanvas(t,r),e=n.getContext("2d"),null===e)throw Error("getContext of OffscreenCanvas returns null")}catch(t){n=document.createElement("canvas"),e=n.getContext("2d")}return n.width=t,n.height=r,[n,e]}function U(t,r){const{width:n,height:e}=E(t.width,t.height),[i,o]=b(n,e);return r&&/jpe?g/.test(r)&&(o.fillStyle="white",o.fillRect(0,0,i.width,i.height)),o.drawImage(t,0,0,i.width,i.height),i}function M(){return void 0!==M.cachedResult||(M.cachedResult=["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"undefined"!=typeof document&&"ontouchend"in document),M.cachedResult}function I(t,r={}){return new Promise((function(n,e){let i,o;var s=function(){try{return o=U(i,r.fileType||t.type),n([i,o])}catch(t){return e(t)}},a=function(r){try{var n=function(t){try{throw t}catch(t){return e(t)}};try{let r;return m(t).then((function(t){try{return r=t,p(r).then((function(t){try{return i=t,function(){try{return s()}catch(t){return e(t)}}()}catch(t){return n(t)}}),n)}catch(t){return n(t)}}),n)}catch(t){n(t)}}catch(t){return e(t)}};try{if(M()||[u.DESKTOP_SAFARI,u.MOBILE_SAFARI].includes(g()))throw Error("Skip createImageBitmap on IOS and Safari");return createImageBitmap(t).then((function(t){try{return i=t,s()}catch(t){return a()}}),a)}catch(t){a()}}))}function B(t,r,n,e,i=1){return new Promise((function(o,s){let a;if("image/png"===r){let l,h,A;return l=t.getContext("2d"),({data:h}=l.getImageData(0,0,t.width,t.height)),A=c.encode([h.buffer],t.width,t.height,4096*i),a=new Blob([A],{type:r}),a.name=n,a.lastModified=e,u()}{if("image/bmp"===r)return new Promise((r=>f.toBlob(t,r))).then(function(t){try{return a=t,a.name=n,a.lastModified=e,d()}catch(t){return s(t)}}.bind(this),s);{if("function"==typeof OffscreenCanvas&&t instanceof OffscreenCanvas)return t.convertToBlob({type:r,quality:i}).then(function(t){try{return a=t,a.name=n,a.lastModified=e,w()}catch(t){return s(t)}}.bind(this),s);{let v;return v=t.toDataURL(r,i),y(v,n,e).then(function(t){try{return a=t,w()}catch(t){return s(t)}}.bind(this),s)}function w(){return d()}}function d(){return u()}}function u(){return o(a)}}))}function C(t){t.width=0,t.height=0}function D(){return new Promise((function(t,r){let n,e,i,o;return void 0!==D.cachedResult?t(D.cachedResult):y("data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAAAAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/xABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAAAAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q==","test.jpg",Date.now()).then((function(s){try{return n=s,I(n).then((function(s){try{return e=s[1],B(e,n.type,n.name,n.lastModified).then((function(n){try{return i=n,C(e),I(i).then((function(n){try{return o=n[0],D.cachedResult=1===o.width&&2===o.height,t(D.cachedResult)}catch(t){return r(t)}}),r)}catch(t){return r(t)}}),r)}catch(t){return r(t)}}),r)}catch(t){return r(t)}}),r)}))}function Q(t){return new Promise(((r,n)=>{const e=new v;e.onload=t=>{const n=new DataView(t.target.result);if(65496!=n.getUint16(0,!1))return r(-2);const e=n.byteLength;let i=2;for(;i<e;){if(n.getUint16(i+2,!1)<=8)return r(-1);const t=n.getUint16(i,!1);if(i+=2,65505==t){if(1165519206!=n.getUint32(i+=2,!1))return r(-1);const t=18761==n.getUint16(i+=6,!1);i+=n.getUint32(i+4,t);const e=n.getUint16(i,t);i+=2;for(let o=0;o<e;o++)if(274==n.getUint16(i+12*o,t))return r(n.getUint16(i+12*o+8,t))}else{if(65280&~t)break;i+=n.getUint16(i,!1)}}return r(-1)},e.onerror=t=>n(t),e.readAsArrayBuffer(t)}))}function k(t,r){const{width:n}=t,{height:e}=t,{maxWidthOrHeight:i}=r;let o,s=t;return isFinite(i)&&(n>i||e>i)&&([s,o]=b(n,e),n>e?(s.width=i,s.height=e/n*i):(s.width=n/e*i,s.height=i),o.drawImage(t,0,0,s.width,s.height),C(t)),s}function R(t,r){const{width:n}=t,{height:e}=t,[i,o]=b(n,e);switch(r>4&&r<9?(i.width=e,i.height=n):(i.width=n,i.height=e),r){case 2:o.transform(-1,0,0,1,n,0);break;case 3:o.transform(-1,0,0,-1,n,e);break;case 4:o.transform(1,0,0,-1,0,e);break;case 5:o.transform(0,1,1,0,0,0);break;case 6:o.transform(0,1,-1,0,e,0);break;case 7:o.transform(0,-1,-1,0,e,n);break;case 8:o.transform(0,-1,1,0,0,n)}return o.drawImage(t,0,0,n,e),C(t),i}function S(t,r,n=0){return new Promise((function(e,i){let o,s,a,c,f,u,l,h,A,d,w,v,y,m,p,g,E,U,M,S;function T(t=5){if(r.signal&&r.signal.aborted)throw r.signal.reason;o+=t,r.onProgress(Math.min(o,100))}function x(t){if(r.signal&&r.signal.aborted)throw r.signal.reason;o=Math.min(Math.max(t,o),100),r.onProgress(o)}return o=n,s=r.maxIteration||10,a=1024*r.maxSizeMB*1024,T(),I(t,r).then(function(n){try{return[,c]=n,T(),f=k(c,r),T(),new Promise((function(n,e){var i;if(!(i=r.exifOrientation))return Q(t).then(function(t){try{return i=t,o()}catch(t){return e(t)}}.bind(this),e);function o(){return n(i)}return o()})).then(function(n){try{return u=n,T(),D().then(function(n){try{return l=n?f:R(f,u),T(),h=r.initialQuality||1,A=r.fileType||t.type,B(l,A,t.name,t.lastModified,h).then(function(n){try{{if(d=n,T(),w=d.size>a,v=d.size>t.size,!w&&!v)return x(100),e(d);var o;function u(){if(s--&&(p>a||p>y)){let r,n;return r=S?.95*M.width:M.width,n=S?.95*M.height:M.height,[E,U]=b(r,n),U.drawImage(M,0,0,r,n),h*="image/png"===A?.85:.95,B(E,A,t.name,t.lastModified,h).then((function(t){try{return g=t,C(M),M=E,p=g.size,x(Math.min(99,Math.floor((m-p)/(m-a)*100))),u}catch(t){return i(t)}}),i)}return[1]}return y=t.size,m=d.size,p=m,M=l,S=!r.alwaysKeepResolution&&w,(o=function(t){for(;t;){if(t.then)return void t.then(o,i);try{if(t.pop){if(t.length)return t.pop()?(C(M),C(E),C(f),C(l),C(c),x(100),e(g)):t;t=u}else t=t.call(this)}catch(t){return i(t)}}}.bind(this))(u)}}catch(I){return i(I)}}.bind(this),i)}catch(t){return i(t)}}.bind(this),i)}catch(t){return i(t)}}.bind(this),i)}catch(t){return i(t)}}.bind(this),i)}))}let T;function x(t,r){return new Promise(((n,e)=>{T||(T=function(){const t=[];return t.push("\nlet scriptImported = false\nself.addEventListener('message', async (e) => {\n const { file, id, imageCompressionLibUrl, options } = e.data\n options.onProgress = (progress) => self.postMessage({ progress, id })\n try {\n if (!scriptImported) {\n // console.log('[worker] importScripts', imageCompressionLibUrl)\n self.importScripts(imageCompressionLibUrl)\n scriptImported = true\n }\n // console.log('[worker] self', self)\n const compressedFile = await imageCompression(file, options)\n self.postMessage({ file: compressedFile, id })\n } catch (e) {\n // console.error('[worker] error', e)\n self.postMessage({ error: e.message + '\\n' + e.stack, id })\n }\n})\n"),URL.createObjectURL(new Blob(t))}());const i=new Worker(T);i.addEventListener("message",(function(t){if(r.signal&&r.signal.aborted)i.terminate();else if(void 0===t.data.progress){if(t.data.error)return e(Error(t.data.error)),void i.terminate();n(t.data.file),i.terminate()}else r.onProgress(t.data.progress)})),i.addEventListener("error",e),r.signal&&r.signal.addEventListener("abort",(()=>{e(r.signal.reason),i.terminate()})),i.postMessage({file:t,imageCompressionLibUrl:r.libURL,options:{...r,onProgress:void 0,signal:void 0}})}))}function F(t,r){return new Promise((function(n,i){let o,s,a,c,f,u;if(o={...r},a=0,({onProgress:c}=o),o.maxSizeMB=o.maxSizeMB||1/0,f="boolean"!=typeof o.useWebWorker||o.useWebWorker,delete o.useWebWorker,o.onProgress=t=>{a=t,"function"==typeof c&&c(a)},!(t instanceof Blob||t instanceof w))return i(Error("The file given is not an instance of Blob or File"));if(!/^image/.test(t.type))return i(Error("The file given is not an image"));if(u="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope,!f||"function"!=typeof Worker||u)return S(t,o).then(function(t){try{return s=t,A()}catch(t){return i(t)}}.bind(this),i);var l=function(){try{return A()}catch(t){return i(t)}}.bind(this),h=function(r){try{return S(t,o).then((function(t){try{return s=t,l()}catch(t){return i(t)}}),i)}catch(t){return i(t)}};try{return o.libURL=o.libURL||"https://cdn.jsdelivr.net/npm/browser-image-compression@2.0.2/dist/browser-image-compression.js",x(t,o).then((function(t){try{return s=t,l()}catch(t){return h()}}),h)}catch(t){h()}function A(){try{s.name=t.name,s.lastModified=t.lastModified}catch(t){}try{o.preserveExif&&"image/jpeg"===t.type&&(!o.fileType||o.fileType&&o.fileType===t.type)&&(s=e(t,s))}catch(t){}return n(s)}}))}F.getDataUrlFromFile=m,F.getFilefromDataUrl=y,F.loadImage=p,F.drawImageInCanvas=U,F.drawFileInCanvas=I,F.canvasToFile=B,F.getExifOrientation=Q,F.handleMaxWidthOrHeight=k,F.followExifOrientation=R,F.cleanupCanvasMemory=C,F.isAutoOrientationInBrowser=D,F.approximateBelowMaximumCanvasSizeOfBrowser=E,F.copyExifWithoutOrientation=e,F.getBrowserName=g,F.version="2.0.2";class P{static imageDataToCanvas(t){const r=document.createElement("canvas");r.width=t.width,r.height=t.height;const n=r.getContext("2d");return n&&n.putImageData(t,0,0),r}static canvasToImageData(t){const r=t.getContext("2d");return r?r.getImageData(0,0,t.width,t.height):null}static adjustBrightnessContrast(t,r=0,n=0){r=Math.max(-100,Math.min(100,r));const e=259*((n=Math.max(-100,Math.min(100,n)))+255)/(255*(259-n)),i=r/100*255,o=t.data,s=o.length;for(let t=0;t<s;t+=4)for(let r=0;r<3;r++){const n=e*(o[t+r]+i-128)+128;o[t+r]=Math.max(0,Math.min(255,n))}return t}static toGrayscale(t){const r=t.data,n=r.length;for(let t=0;t<n;t+=4){const n=.3*r[t]+.59*r[t+1]+.11*r[t+2];r[t]=r[t+1]=r[t+2]=n}return t}static sharpen(t,r=2){if(!t||!t.data)return t;const n=t.width,e=t.height,i=t.data,o=new Uint8ClampedArray(i.length),s=[0,-r,0,-r,1+4*r,-r,0,-r,0];for(let t=1;t<e-1;t++)for(let r=1;r<n-1;r++){const e=4*(t*n+r);for(let a=0;a<3;a++){let c=0;for(let e=-1;e<=1;e++)for(let o=-1;o<=1;o++){const f=3*(e+1)+(o+1);c+=i[4*((t+e)*n+(r+o))+a]*s[f]}o[e+a]=Math.max(0,Math.min(255,c))}o[e+3]=i[e+3]}for(let t=0;t<e;t++)for(let r=0;r<n;r++)if(0===t||t===e-1||0===r||r===n-1){const e=4*(t*n+r);o[e]=i[e],o[e+1]=i[e+1],o[e+2]=i[e+2],o[e+3]=i[e+3]}return new ImageData(o,n,e)}static threshold(t,r=128){const n=this.toGrayscale(new ImageData(new Uint8ClampedArray(t.data),t.width,t.height)),e=n.data,i=e.length;for(let t=0;t<i;t+=4){const n=e[t]<r?0:255;e[t]=e[t+1]=e[t+2]=n}return n}static toBinaryImage(t){const r=this.toGrayscale(new ImageData(new Uint8ClampedArray(t.data),t.width,t.height)),n=this.getOtsuThreshold(r);return this.threshold(r,n)}static getOtsuThreshold(t){const r=t.data,n=Array(256).fill(0);for(let t=0;t<r.length;t+=4)n[r[t]]++;const e=t.width*t.height;let i=0;for(let t=0;t<256;t++)i+=t*n[t];let o=0,s=0,a=0,c=0,f=0;for(let t=0;t<256;t++){if(s+=n[t],0===s)continue;if(a=e-s,0===a)break;o+=t*n[t];const r=o/s,u=(i-o)/a,l=s*a*(r-u)*(r-u);l>c&&(c=l,f=t)}return f}static batchProcess(t,r){let n=new ImageData(new Uint8ClampedArray(t.data),t.width,t.height);if(void 0===r.brightness&&void 0===r.contrast||(n=this.adjustBrightnessContrast(n,r.brightness||0,r.contrast||0)),r.grayscale&&(n=this.toGrayscale(n)),r.sharpen&&(n=this.sharpen(n)),r.invert){const t=n.data;for(let r=0;r<t.length;r+=4)t[r]=255-t[r],t[r+1]=255-t[r+1],t[r+2]=255-t[r+2]}return n}static async compressImage(t,r){const n={maxSizeMB:1,maxWidthOrHeight:1920,useWebWorker:!0,quality:.8,fileType:t.type||"image/jpeg",...r};try{return await F(t,n)}catch(r){return t}}static async createImageDataFromFile(t){return new Promise(((r,n)=>{try{const e=new Image,i=URL.createObjectURL(t);e.onload=()=>{try{const t=document.createElement("canvas"),o=t.getContext("2d");if(!o)return void n(Error("无法创建2D上下文"));t.width=e.width,t.height=e.height,o.drawImage(e,0,0);const s=o.getImageData(0,0,t.width,t.height);URL.revokeObjectURL(i),r(s)}catch(t){n(t)}},e.onerror=()=>{URL.revokeObjectURL(i),n(Error("图片加载失败"))},e.src=i}catch(t){n(t)}}))}static async imageDataToFile(t,r="image.jpg",n="image/jpeg",e=.8){return new Promise(((i,o)=>{try{const s=document.createElement("canvas");s.width=t.width,s.height=t.height;const a=s.getContext("2d");if(!a)return void o(Error("无法创建2D上下文"));a.putImageData(t,0,0),s.toBlob((t=>{if(!t)return void o(Error("无法创建图片Blob"));const e=new File([t],r,{type:n});i(e)}),n,e)}catch(t){o(t)}}))}static resizeImage(t,r,n,e=!0){const{width:i,height:o}=t;if(i<=r&&o<=n)return t;let s=r,a=n;if(e){const t=Math.min(r/i,n/o);s=Math.floor(i*t),a=Math.floor(o*t)}const c=document.createElement("canvas");c.width=s,c.height=a;const f=c.getContext("2d");if(!f)throw Error("无法创建2D上下文");const u=document.createElement("canvas");u.width=i,u.height=o;const l=u.getContext("2d");if(!l)throw Error("无法创建临时2D上下文");return l.putImageData(t,0,0),f.imageSmoothingEnabled=!0,f.imageSmoothingQuality="high",f.drawImage(u,0,0,i,o,0,0,s,a),f.getImageData(0,0,s,a)}}class O{constructor(t=100){this.maxSize=t,this.cache=new Map}get(t){if(!this.cache.has(t))return;const r=this.cache.get(t);return this.cache.delete(t),this.cache.set(t,r),r}set(t,r){if(this.cache.has(t)&&this.cache.delete(t),this.cache.size>=this.maxSize){const t=this.cache.keys().next().value;void 0!==t&&this.cache.delete(t)}this.cache.set(t,r)}delete(t){return this.cache.delete(t)}clear(){this.cache.clear()}get size(){return this.cache.size}has(t){return this.cache.has(t)}}function j(t,r=8){const n=document.createElement("canvas");n.width=r,n.height=r;const e=n.getContext("2d");if(!e)return"";const i=document.createElement("canvas");i.width=t.width,i.height=t.height;const o=i.getContext("2d");if(!o)return"";o.putImageData(t,0,0),e.drawImage(i,0,0,t.width,t.height,0,0,r,r);const s=e.getImageData(0,0,r,r),a=[];for(let t=0;t<s.data.length;t+=4){const r=s.data[t],n=s.data[t+1],e=s.data[t+2],i=Math.round(.299*r+.587*n+.114*e);a.push(i)}const c=a.reduce(((t,r)=>t+r),0)/a.length;let f="";for(const t of a)f+=t>=c?"1":"0";return f}class z{constructor(t){this.detecting=!1,this.detectTimer=null,this.frameCount=0,this.lastDetectionTime=0,this.camera=new n,"function"==typeof t?(this.onDetected=t,this.options={detectionInterval:200,maxImageDimension:800,enableCache:!0,cacheSize:20,logger:console.log}):t?(this.options={detectionInterval:200,maxImageDimension:800,enableCache:!0,cacheSize:20,logger:console.log,...t},this.onDetected=t.onDetection,this.onError=t.onError):this.options={detectionInterval:200,maxImageDimension:800,enableCache:!0,cacheSize:20,logger:console.log},this.detectionInterval=this.options.detectionInterval,this.maxImageDimension=this.options.maxImageDimension,this.resultCache=new O(this.options.cacheSize),this.throttledDetect=function(t,r){let n=0,e=null;return function(...i){const o=Date.now(),s=r-(o-n);s<=0?(e&&(clearTimeout(e),e=null),n=o,t.apply(this,i)):e||(e=window.setTimeout((()=>{n=Date.now(),e=null,t.apply(this,i)}),s))}}(this.performDetection.bind(this),this.detectionInterval)}async start(t){await this.camera.initialize(t),this.detecting=!0,this.frameCount=0,this.lastDetectionTime=0,this.detect()}stop(){this.detecting=!1,null!==this.detectTimer&&(cancelAnimationFrame(this.detectTimer),this.detectTimer=null)}detect(){this.detecting&&(this.detectTimer=requestAnimationFrame((()=>{try{this.frameCount++;const t=performance.now();(this.frameCount%3==0||t-this.lastDetectionTime>=this.detectionInterval)&&(this.throttledDetect(),this.lastDetectionTime=t),this.detect()}catch(t){this.onError&&this.onError(t),setTimeout((()=>{this.detecting&&this.detect()}),1e3)}})))}async performDetection(){if(!this.detecting||!this.camera)return;const t=this.camera.captureFrame();if(!t)return;if(this.options.enableCache){const r=j(t,16),n=this.resultCache.get(r);if(n){this.options.logger?.("使用缓存的检测结果");const r={...n,imageData:t};return void(this.onDetected&&this.onDetected(r))}}const r=P.resizeImage(t,this.maxImageDimension,this.maxImageDimension);try{const n=await this.detectIDCard(r);if(n.success&&(n.imageData=t,this.options.enableCache)){const r=j(t,16);this.resultCache.set(r,n)}this.onDetected&&this.onDetected(n)}catch(t){this.onError&&this.onError(t)}}async detectIDCard(t){P.toGrayscale(t);const r={success:Math.random()>.3,message:"身份证检测完成"};if(r.success){const n=t.width,e=t.height,i=Math.round(.7*n),o=Math.round(.618*i),s=Math.round((n-i)/2),a=Math.round((e-o)/2);r.corners=[{x:s,y:a},{x:s+i,y:a},{x:s+i,y:a+o},{x:s,y:a+o}],r.boundingBox={x:s,y:a,width:i,height:o};const c=document.createElement("canvas");c.width=i,c.height=o;const f=c.getContext("2d");if(f){const n=P.imageDataToCanvas(t);f.drawImage(n,s,a,i,o,0,0,i,o),r.croppedImage=f.getImageData(0,0,i,o)}r.confidence=.7+.3*Math.random()}return r}clearCache(){this.resultCache.clear(),this.options.logger?.("检测结果缓存已清除")}dispose(){this.stop(),this.camera.release(),this.resultCache.clear()}}async function $(t){const r=performance.now(),{createWorker:n}=await import("tesseract.js"),e=await n(t.tessWorkerOptions||{logger:t=>{}});try{await e.load(),await e.loadLanguage("chi_sim"),await e.initialize("chi_sim"),await e.setParameters({tessedit_char_whitelist:"0123456789X-年月日一二三四五六七八九十零壹贰叁肆伍陆柒捌玖拾ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz民族汉族满族回族维吾尔族藏族苗族彝族壮族朝鲜族侗族瑶族白族土家族哈尼族哈萨克族傣族黎族傈僳族佤族高山族拉祜族水族东乡族钠西族景颇族柯尔克孜族士族达斡尔族仫佬族羌族布朗族撒拉族毛南族仡佬族锡伯族阿昌族普米族塔吉克族怒族乌孜别克族俄罗斯族鄂温克族德昂族保安族裕固族京族塔塔尔族独龙族鄂伦春族赫哲族门巴族珞巴族基诺族男女性别住址出生公民身份号码签发机关有效期"});const{data:n}=await e.recognize(t.imageBase64),i=function(t){const r={},n=t.split("\n").filter((t=>t.trim())),e=t.match(/(\d{17}[\dX])/);e&&(r.idNumber=e[1]);for(const t of n)if(t.includes("姓名")||t.length<10&&t.length>1&&!/\d/.test(t)){r.name=t.replace("姓名","").trim();break}const i=t.match(/(男|女).*(族)/);if(i){r.gender=i[1];const t=i[0];r.nationality=t.substring(t.indexOf(i[1])+1).trim()}const o=t.match(/(\d{4})年(\d{1,2})月(\d{1,2})日/);o&&(r.birthDate=`${o[1]}-${o[2]}-${o[3]}`);const s=t.match(/住址([\s\S]*?)公民身份号码/);s&&(r.address=s[1].replace(/\n/g,"").trim());const a=t.match(/签发机关([\s\S]*?)有效期/);a&&(r.issuingAuthority=a[1].replace(/\n/g,"").trim());const c=t.match(/有效期限([\s\S]*?)(-|至)/);return c&&(r.validPeriod=c[0].replace("有效期限","").trim()),r}(n.text);return await e.terminate(),{idCardInfo:i,processingTime:performance.now()-r}}catch(t){throw await e.terminate(),t}}class _{constructor(t={}){this.worker=null,this.ocrWorker=null,this.initialized=!1,this.options={useWorker:"undefined"!=typeof Worker,enableCache:!0,cacheSize:50,maxImageDimension:1e3,logger:console.log,...t},this.resultCache=new O(this.options.cacheSize)}async initialize(){this.initialized||(this.options.useWorker?(this.ocrWorker=function(t){const r=`\n self.onmessage = async function(e) {\n try {\n const result = await (${t.toString()})(e.data);\n self.postMessage({ success: true, result });\n } catch (error) {\n self.postMessage({ \n success: false, \n error: { message: error.message, stack: error.stack }\n });\n }\n }\n `,n=new Blob([r],{type:"application/javascript"}),e=URL.createObjectURL(n),i=new Worker(e),o=new Map;let s=0;return i.onmessage=t=>{0===o.size&&URL.revokeObjectURL(e);const{id:r,success:n,result:i,error:s}=t.data,a=o.get(r);if(a)if(o.delete(r),n)a.resolve(i);else{const t=Error(s.message);t.stack=s.stack,a.reject(t)}},{postMessage:t=>new Promise(((r,n)=>{const e=s++;o.set(e,{resolve:r,reject:n}),i.postMessage({id:e,data:t})})),terminate:()=>{i.terminate(),o.clear(),URL.revokeObjectURL(e)}}}($),this.initialized=!0,this.options.logger?.("OCR Worker 初始化完成")):(this.worker=r.createWorker({logger:this.options.logger}),await this.worker.load(),await this.worker.loadLanguage("chi_sim"),await this.worker.initialize("chi_sim"),await this.worker.setParameters({tessedit_char_whitelist:"0123456789X-年月日一二三四五六七八九十零壹贰叁肆伍陆柒捌玖拾ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz民族汉族满族回族维吾尔族藏族苗族彝族壮族朝鲜族侗族瑶族白族土家族哈尼族哈萨克族傣族黎族傈僳族佤族高山族拉祜族水族东乡族钠西族景颇族柯尔克孜族士族达斡尔族仫佬族羌族布朗族撒拉族毛南族仡佬族锡伯族阿昌族普米族塔吉克族怒族乌孜别克族俄罗斯族鄂温克族德昂族保安族裕固族京族塔塔尔族独龙族鄂伦春族赫哲族门巴族珞巴族基诺族男女性别住址出生公民身份号码签发机关有效期"}),this.initialized=!0,this.options.logger?.("OCR引擎初始化完成")))}async processIDCard(t){if(this.initialized||await this.initialize(),this.options.enableCache){const r=j(t),n=this.resultCache.get(r);if(n)return this.options.logger?.("使用缓存的OCR结果"),n}const r=P.resizeImage(t,this.options.maxImageDimension||1e3,this.options.maxImageDimension||1e3,!0),n=P.batchProcess(r,{brightness:this.options.brightness||15,contrast:this.options.contrast||25,sharpen:!0}),e=document.createElement("canvas");e.width=n.width,e.height=n.height;const i=e.getContext("2d");if(!i)throw Error("无法创建canvas上下文");i.putImageData(n,0,0);const o=e.toDataURL("image/jpeg",.7);try{let r;if(this.options.useWorker&&this.ocrWorker){const t=await this.ocrWorker.postMessage({imageBase64:o,tessWorkerOptions:{logger:this.options.logger}});r=t.idCardInfo,this.options.logger?.(`OCR处理完成,用时: ${t.processingTime.toFixed(2)}ms`)}else{const t=performance.now(),e=P.imageDataToCanvas(n),{data:i}=await this.worker.recognize(e);r=this.parseIDCardText(i.text);const o=performance.now()-t;this.options.logger?.(`OCR处理完成,用时: ${o.toFixed(2)}ms`)}if(this.options.enableCache){const n=j(t);this.resultCache.set(n,r)}return r}catch(t){return this.options.logger?.("OCR识别错误: "+t),{}}}parseIDCardText(t){const r={},n=t.split("\n").filter((t=>t.trim())),e=t.match(/(\d{17}[\dX])/);e&&(r.idNumber=e[1]);for(const t of n)if(t.includes("姓名")||t.length<10&&t.length>1&&!/\d/.test(t)){r.name=t.replace("姓名","").trim();break}const i=t.match(/(男|女).*(族)/);if(i){r.gender=i[1];const t=i[0];r.nationality=t.substring(t.indexOf(i[1])+1).trim()}const o=t.match(/(\d{4})年(\d{1,2})月(\d{1,2})日/);o&&(r.birthDate=`${o[1]}-${o[2]}-${o[3]}`);const s=t.match(/住址([\s\S]*?)公民身份号码/);s&&(r.address=s[1].replace(/\n/g,"").trim());const a=t.match(/签发机关([\s\S]*?)有效期/);a&&(r.issuingAuthority=a[1].replace(/\n/g,"").trim());const c=t.match(/有效期限([\s\S]*?)(-|至)/);return c&&(r.validPeriod=c[0].replace("有效期限","").trim()),r}clearCache(){this.resultCache.clear(),this.options.logger?.("OCR结果缓存已清除")}async terminate(){this.worker&&(await this.worker.terminate(),this.worker=null),this.ocrWorker&&(this.ocrWorker.terminate(),this.ocrWorker=null),this.initialized=!1,this.options.logger?.("OCR引擎已终止")}dispose(){return this.terminate()}}class L{static validateIDNumber(t){if(!t||18!==t.length)return!1;if(!/^\d{17}[\dX]$/.test(t))return!1;const r=parseInt(t.substr(6,4)),n=parseInt(t.substr(10,2)),e=parseInt(t.substr(12,2)),i=new Date(r,n-1,e);return i.getFullYear()===r&&i.getMonth()+1===n&&i.getDate()===e}static extractBirthDateFromID(t){return this.validateIDNumber(t)?`${t.substr(6,4)}-${t.substr(10,2)}-${t.substr(12,2)}`:null}static extractGenderFromID(t){return this.validateIDNumber(t)?parseInt(t.charAt(16))%2==1?"男":"女":null}static extractRegionFromID(t){return this.validateIDNumber(t)?t.substr(0,6):null}static enhanceIDCardInfo(t,r){const n={...t};if(n.idNumber&&this.validateIDNumber(n.idNumber)&&(n.birthDate||(n.birthDate=this.extractBirthDateFromID(n.idNumber)||void 0),n.gender||(n.gender=this.extractGenderFromID(n.idNumber)||void 0)),r&&this.validateIDNumber(r)){n.idNumber=r;const t=this.extractBirthDateFromID(r);t&&(n.birthDate=t);const e=this.extractGenderFromID(r);e&&(n.gender=e)}return n}extractAndValidate(t){const r={...t};return r.idNumber&&(r.idNumber=this.normalizeIDNumber(r.idNumber),this.validateIDNumber(r.idNumber)&&(r.birthDate||(r.birthDate=this.extractBirthDateFromID(r.idNumber)),r.gender||(r.gender=this.extractGenderFromID(r.idNumber)))),r.birthDate&&(r.birthDate=this.normalizeDate(r.birthDate)),r.address&&(r.address=this.normalizeAddress(r.address)),r}normalizeIDNumber(t){return t.replace(/[\s\-]/g,"").toUpperCase()}validateIDNumber(t){return/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(t)}extractBirthDateFromID(t){return 18===t.length?`${t.substring(6,10)}-${t.substring(10,12)}-${t.substring(12,14)}`:15===t.length?`19${t.substring(6,8)}-${t.substring(8,10)}-${t.substring(10,12)}`:""}extractGenderFromID(t){let r;return r=18===t.length?parseInt(t.charAt(16)):parseInt(t.charAt(14)),r%2==1?"男":"女"}normalizeDate(t){return t.replace(/(\d{4})(\d{2})(\d{2})/,"$1-$2-$3")}normalizeAddress(t){return t.trim()}}t.DataExtractor=L,t.IDCardDetector=z,t.OCRModule=class{constructor(t={}){this.options=t,this.isRunning=!1,this.videoElement=null,this.camera=new n(t.cameraOptions),this.idDetector=new z({onDetection:this.handleIDDetection.bind(this),onError:this.handleError.bind(this)}),this.ocrProcessor=new _,this.dataExtractor=new L}async initialize(){try{await this.ocrProcessor.initialize()}catch(t){throw this.handleError(t),t}}async startIDCardScanner(t){if(!this.ocrProcessor)throw Error("OCR engine not initialized. Call initialize() first.");this.videoElement=t,this.isRunning=!0,await this.camera.start(t),this.idDetector.start(t)}stop(){this.isRunning=!1,this.idDetector.stop(),this.camera.stop()}async handleIDDetection(t){if(this.isRunning)try{if(!t.imageData)return void this.handleError(Error("无效的图像数据"));const r=await this.ocrProcessor.processIDCard(t.imageData),n=this.dataExtractor.extractAndValidate(r);this.options.onIDCardScanned&&this.options.onIDCardScanned(n)}catch(t){this.handleError(t)}}handleError(t){this.options.onError&&this.options.onError(t)}async terminate(){this.stop(),await this.ocrProcessor.terminate()}async processIDCard(t){try{if(!this.ocrProcessor)throw Error("OCR engine not initialized. Call initialize() first.");if(!t||!t.data||t.width<=0||t.height<=0)throw Error("无效的图像数据");const r=P.adjustBrightnessContrast(t,5,10),n=await this.ocrProcessor.processIDCard(r),e=this.dataExtractor.extractAndValidate(n);return this.options.onIDCardScanned&&this.options.onIDCardScanned(e),e}catch(t){throw this.handleError(t),t}}},t.OCRProcessor=_},"object"==typeof exports&&"undefined"!=typeof module?factory(exports,require("tesseract.js")):"function"==typeof define&&define.amd?define(["exports","tesseract.js"],factory):factory((global="undefined"!=typeof globalThis?globalThis:global||self).IDScannerOCR={},global.Tesseract);
@@ -1 +1 @@
1
- {"version":3,"file":"id-scanner-ocr.min.js","sources":["../src/utils/camera.ts","../src/utils/image-processing.ts","../src/utils/performance.ts","../src/id-recognition/id-detector.ts","../src/id-recognition/ocr-worker.ts","../src/id-recognition/ocr-processor.ts","../src/utils/worker.ts","../src/id-recognition/data-extractor.ts","../src/ocr-module.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["Camera","constructor","options","this","stream","videoElement","width","height","facingMode","start","initialize","stop","release","constraints","video","ideal","navigator","mediaDevices","getUserMedia","srcObject","Promise","resolve","onloadedmetadata","play","then","error","console","Error","captureFrame","canvas","document","createElement","videoWidth","videoHeight","context","getContext","drawImage","getImageData","getTracks","forEach","track","ImageProcessor","imageDataToCanvas","imageData","ctx","putImageData","canvasToImageData","adjustBrightnessContrast","brightness","contrast","imgData","data","factor","i","length","truncate","value","Math","min","max","toGrayscale","avg","resize","newWidth","newHeight","tempCanvas","downsampleForProcessing","maxDimension","scale","round","imageDataToBase64","toDataURL","base64ToImageData","base64","reject","img","Image","onload","onerror","src","processImageInParallel","processingFunction","chunks","Worker","resultCanvas","resultCtx","isWide","chunkSize","floor","promises","chunkCanvas","chunkCtx","chunkImageData","startX","startY","workerCode","toString","blob","Blob","type","workerUrl","URL","createObjectURL","worker","promise","onmessage","e","terminate","revokeObjectURL","postMessage","index","buffer","push","results","all","sort","a","b","result","LRUCache","maxSize","cache","Map","get","key","has","delete","set","size","oldestKey","keys","next","undefined","clear","calculateImageFingerprint","tempCtx","smallImgData","grayValues","r","g","gray","reduce","sum","val","fingerprint","IDCardDetector","detecting","detectTimer","frameCount","lastDetectionTime","camera","onDetected","detectionInterval","maxImageDimension","enableCache","cacheSize","logger","log","onDetection","onError","resultCache","throttledDetect","fn","delay","lastCall","timeoutId","args","now","Date","remaining","clearTimeout","apply","window","setTimeout","throttle","performDetection","bind","detect","cancelAnimationFrame","requestAnimationFrame","performance","frame","cachedResult","updatedResult","downsampledFrame","detectIDCard","success","detectionResult","random","message","rectWidth","rectHeight","rectX","rectY","corners","x","y","boundingBox","croppedImage","confidence","clearCache","dispose","async","processOCRInWorker","input","startTime","createWorker","import","tessWorkerOptions","m","load","loadLanguage","setParameters","tessedit_char_whitelist","recognize","imageBase64","idCardInfo","text","info","lines","split","filter","line","trim","idNumberRegex","idNumberMatch","match","idNumber","includes","test","name","replace","genderNationalityRegex","genderMatch","gender","nationalityText","nationality","substring","indexOf","birthDateRegex","birthDateMatch","birthDate","addressRegex","addressMatch","address","authorityRegex","authorityMatch","issuingAuthority","validPeriodRegex","validPeriodMatch","validPeriod","parseIDCardText","processingTime","OCRProcessor","ocrWorker","initialized","useWorker","workerFunction","promiseMap","messageCounter","id","promiseHandlers","workerError","stack","createCustomWorker","processIDCard","downsampledImage","enhancedImage","base64Image","toFixed","DataExtractor","validateIDNumber","year","parseInt","substr","month","day","date","getFullYear","getMonth","getDate","extractBirthDateFromID","extractGenderFromID","charAt","extractRegionFromID","enhanceIDCardInfo","ocrInfo","extractAndValidate","enhancedInfo","normalizeIDNumber","normalizeDate","normalizeAddress","toUpperCase","sexCode","isRunning","cameraOptions","idDetector","handleIDDetection","handleError","ocrProcessor","dataExtractor","startIDCardScanner","extractedInfo","onIDCardScanned"],"mappings":"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"}
1
+ {"version":3,"file":"id-scanner-ocr.min.js","sources":["../src/utils/camera.ts","../src/utils/image-processing.ts","../src/utils/performance.ts","../src/id-recognition/id-detector.ts","../src/id-recognition/ocr-worker.ts","../src/id-recognition/ocr-processor.ts","../src/utils/worker.ts","../src/id-recognition/data-extractor.ts","../src/ocr-module.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["Camera","constructor","options","this","stream","videoElement","width","height","facingMode","start","initialize","stop","release","constraints","video","ideal","navigator","mediaDevices","getUserMedia","srcObject","Promise","resolve","onloadedmetadata","play","then","error","console","Error","captureFrame","canvas","document","createElement","videoWidth","videoHeight","context","getContext","drawImage","getImageData","getTracks","forEach","track","ImageProcessor","imageDataToCanvas","imageData","ctx","putImageData","canvasToImageData","adjustBrightnessContrast","brightness","contrast","imgData","data","factor","i","length","truncate","value","Math","min","max","toGrayscale","avg","resize","newWidth","newHeight","tempCanvas","downsampleForProcessing","maxDimension","scale","round","imageDataToBase64","toDataURL","base64ToImageData","base64","reject","img","Image","onload","onerror","src","processImageInParallel","processingFunction","chunks","Worker","resultCanvas","resultCtx","isWide","chunkSize","floor","promises","chunkCanvas","chunkCtx","chunkImageData","startX","startY","workerCode","toString","blob","Blob","type","workerUrl","URL","createObjectURL","worker","promise","onmessage","e","terminate","revokeObjectURL","postMessage","index","buffer","push","results","all","sort","a","b","result","LRUCache","maxSize","cache","Map","get","key","has","delete","set","size","oldestKey","keys","next","undefined","clear","calculateImageFingerprint","tempCtx","smallImgData","grayValues","r","g","gray","reduce","sum","val","fingerprint","IDCardDetector","detecting","detectTimer","frameCount","lastDetectionTime","camera","onDetected","detectionInterval","maxImageDimension","enableCache","cacheSize","logger","log","onDetection","onError","resultCache","throttledDetect","fn","delay","lastCall","timeoutId","args","now","Date","remaining","clearTimeout","apply","window","setTimeout","throttle","performDetection","bind","detect","cancelAnimationFrame","requestAnimationFrame","performance","frame","cachedResult","updatedResult","downsampledFrame","detectIDCard","success","detectionResult","random","message","rectWidth","rectHeight","rectX","rectY","corners","x","y","boundingBox","croppedImage","confidence","clearCache","dispose","async","processOCRInWorker","input","startTime","createWorker","import","tessWorkerOptions","m","load","loadLanguage","setParameters","tessedit_char_whitelist","recognize","imageBase64","idCardInfo","text","info","lines","split","filter","line","trim","idNumberRegex","idNumberMatch","match","idNumber","includes","test","name","replace","genderNationalityRegex","genderMatch","gender","nationalityText","nationality","substring","indexOf","birthDateRegex","birthDateMatch","birthDate","addressRegex","addressMatch","address","authorityRegex","authorityMatch","issuingAuthority","validPeriodRegex","validPeriodMatch","validPeriod","parseIDCardText","processingTime","OCRProcessor","ocrWorker","initialized","useWorker","workerFunction","promiseMap","messageCounter","id","promiseHandlers","workerError","stack","createCustomWorker","processIDCard","downsampledImage","enhancedImage","base64Image","toFixed","DataExtractor","validateIDNumber","year","parseInt","substr","month","day","date","getFullYear","getMonth","getDate","extractBirthDateFromID","extractGenderFromID","charAt","extractRegionFromID","enhanceIDCardInfo","ocrInfo","extractAndValidate","enhancedInfo","normalizeIDNumber","normalizeDate","normalizeAddress","toUpperCase","sexCode","isRunning","cameraOptions","idDetector","handleIDDetection","handleError","ocrProcessor","dataExtractor","startIDCardScanner","extractedInfo","onIDCardScanned","processedImage"],"mappings":"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"}