@credenza3/scanner-lib 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.prettierrc +12 -0
- package/.turbo/turbo-build.log +20 -0
- package/README.md +102 -0
- package/dist/qr-scanner-worker.min-DpjUkzFK.js +101 -0
- package/dist/scanner.es.js +1857 -0
- package/dist/scanner.umd.js +103 -0
- package/dist/types/index.d.ts +52 -0
- package/eslint.config.js +9 -0
- package/package.json +49 -0
- package/tsconfig.node.json +8 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
(function(A,I){typeof exports=="object"&&typeof module<"u"?I(exports):typeof define=="function"&&define.amd?define(["exports"],I):(A=typeof globalThis<"u"?globalThis:A||self,I(A.CredenzaScanner={}))})(this,function(A){"use strict";var Yt=Object.defineProperty;var Jt=(A,I,N)=>I in A?Yt(A,I,{enumerable:!0,configurable:!0,writable:!0,value:N}):A[I]=N;var ve=(A,I,N)=>(Jt(A,typeof I!="symbol"?I+"":I,N),N);function I(){}function N(s){return s()}function xe(){return Object.create(null)}function J(s){s.forEach(N)}function le(s){return typeof s=="function"}function Ee(s,o){return s!=s?o==o:s!==o||s&&typeof s=="object"||typeof s=="function"}function Ke(s){return Object.keys(s).length===0}function de(s,o){s.appendChild(o)}function _e(s,o,a){const l=Ye(s);if(!l.getElementById(o)){const u=ne("style");u.id=o,u.textContent=a,Je(l,u)}}function Ye(s){if(!s)return document;const o=s.getRootNode?s.getRootNode():s.ownerDocument;return o&&o.host?o:s.ownerDocument}function Je(s,o){return de(s.head||s,o),o.sheet}function Ie(s,o,a){s.insertBefore(o,a||null)}function ue(s){s.parentNode&&s.parentNode.removeChild(s)}function ne(s){return document.createElement(s)}function et(s){return document.createTextNode(s)}function tt(){return et(" ")}function rt(s,o,a,l){return s.addEventListener(o,a,l),()=>s.removeEventListener(o,a,l)}function T(s,o,a){a==null?s.removeAttribute(o):s.getAttribute(o)!==a&&s.setAttribute(o,a)}function ot(s){return Array.from(s.childNodes)}let ee;function te(s){ee=s}function nt(){if(!ee)throw new Error("Function called outside component initialization");return ee}function at(s){nt().$$.on_destroy.push(s)}const X=[],Me=[];let V=[];const Se=[],it=Promise.resolve();let he=!1;function st(){he||(he=!0,it.then(Ae))}function fe(s){V.push(s)}const Be=new Set;let H=0;function Ae(){if(H!==0)return;const s=ee;do{try{for(;H<X.length;){const o=X[H];H++,te(o),ct(o.$$)}}catch(o){throw X.length=0,H=0,o}for(te(null),X.length=0,H=0;Me.length;)Me.pop()();for(let o=0;o<V.length;o+=1){const a=V[o];Be.has(a)||(Be.add(a),a())}V.length=0}while(X.length);for(;Se.length;)Se.pop()();he=!1,Be.clear(),te(s)}function ct(s){if(s.fragment!==null){s.update(),J(s.before_update);const o=s.dirty;s.dirty=[-1],s.fragment&&s.fragment.p(s.ctx,o),s.after_update.forEach(fe)}}function lt(s){const o=[],a=[];V.forEach(l=>s.indexOf(l)===-1?o.push(l):a.push(l)),a.forEach(l=>l()),V=o}const ae=new Set;let j;function dt(){j={r:0,c:[],p:j}}function ut(){j.r||J(j.c),j=j.p}function re(s,o){s&&s.i&&(ae.delete(s),s.i(o))}function ke(s,o,a,l){if(s&&s.o){if(ae.has(s))return;ae.add(s),j.c.push(()=>{ae.delete(s),l&&(a&&s.d(1),l())}),s.o(o)}else l&&l()}function ht(s){s&&s.c()}function Le(s,o,a){const{fragment:l,after_update:u}=s.$$;l&&l.m(o,a),fe(()=>{const f=s.$$.on_mount.map(N).filter(le);s.$$.on_destroy?s.$$.on_destroy.push(...f):J(f),s.$$.on_mount=[]}),u.forEach(fe)}function Fe(s,o){const a=s.$$;a.fragment!==null&&(lt(a.after_update),J(a.on_destroy),a.fragment&&a.fragment.d(o),a.on_destroy=a.fragment=null,a.ctx=[])}function ft(s,o){s.$$.dirty[0]===-1&&(X.push(s),st(),s.$$.dirty.fill(0)),s.$$.dirty[o/31|0]|=1<<o%31}function Re(s,o,a,l,u,f,B=null,i=[-1]){const k=ee;te(s);const m=s.$$={fragment:null,ctx:[],props:f,update:I,not_equal:u,bound:xe(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(o.context||(k?k.$$.context:[])),callbacks:xe(),dirty:i,skip_bound:!1,root:o.target||k.$$.root};B&&B(m.root);let w=!1;if(m.ctx=a?a(s,o.props||{},(C,p,...b)=>{const M=b.length?b[0]:p;return m.ctx&&u(m.ctx[C],m.ctx[C]=M)&&(!m.skip_bound&&m.bound[C]&&m.bound[C](M),w&&ft(s,C)),p}):[],m.update(),w=!0,J(m.before_update),m.fragment=l?l(m.ctx):!1,o.target){if(o.hydrate){const C=ot(o.target);m.fragment&&m.fragment.l(C),C.forEach(ue)}else m.fragment&&m.fragment.c();o.intro&&re(s.$$.fragment),Le(s,o.target,o.anchor),Ae()}te(k)}class Oe{constructor(){ve(this,"$$");ve(this,"$$set")}$destroy(){Fe(this,1),this.$destroy=I}$on(o,a){if(!le(a))return I;const l=this.$$.callbacks[o]||(this.$$.callbacks[o]=[]);return l.push(a),()=>{const u=l.indexOf(a);u!==-1&&l.splice(u,1)}}$set(o){this.$$set&&!Ke(o)&&(this.$$.skip_bound=!0,this.$$set(o),this.$$.skip_bound=!1)}}const Bt="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Bt);function kt(s){_e(s,"svelte-1is2ll8",".cscanapp-close.svelte-1is2ll8{position:absolute;z-index:10;right:5px;top:5px;width:32px;height:32px;opacity:0.3;cursor:pointer}.cscanapp-close.svelte-1is2ll8:hover{opacity:1}.cscanapp-close.svelte-1is2ll8:before,.cscanapp-close.svelte-1is2ll8:after{position:absolute;left:15px;content:' ';height:33px;width:2px;background-color:#000}.cscanapp-close.svelte-1is2ll8:before{transform:rotate(45deg)}.cscanapp-close.svelte-1is2ll8:after{transform:rotate(-45deg)}")}function mt(s){let o,a,l;return{c(){o=ne("div"),T(o,"class","cscanapp-close svelte-1is2ll8"),T(o,"role","button"),T(o,"tabindex","0")},m(u,f){Ie(u,o,f),a||(l=rt(o,"click",function(){le(s[0])&&s[0].apply(this,arguments)}),a=!0)},p(u,[f]){s=u},i:I,o:I,d(u){u&&ue(o),a=!1,l()}}}function wt(s,o,a){let{close:l}=o;return s.$$set=u=>{"close"in u&&a(0,l=u.close)},[l]}class pt extends Oe{constructor(o){super(),Re(this,o,wt,mt,Ee,{close:0},kt)}}function gt(s){_e(s,"svelte-rajxqa",".cscanapp.svelte-rajxqa.svelte-rajxqa{position:relative;width:100%;height:100%;border-radius:inherit}.cscanapp.svelte-rajxqa video.svelte-rajxqa{width:100%;height:100%;object-fit:cover;position:absolute;border-radius:inherit;display:block}")}function Ue(s){let o,a;return o=new pt({props:{close:s[0]}}),{c(){ht(o.$$.fragment)},m(l,u){Le(o,l,u),a=!0},p(l,u){const f={};u&1&&(f.close=l[0]),o.$set(f)},i(l){a||(re(o.$$.fragment,l),a=!0)},o(l){ke(o.$$.fragment,l),a=!1},d(l){Fe(o,l)}}}function Ct(s){let o,a,l,u,f,B,i=s[1]&&Ue(s);return{c(){o=ne("div"),i&&i.c(),a=tt(),l=ne("video"),T(l,"id",u=s[2].VIDEO),T(l,"class","svelte-rajxqa"),T(o,"id",f=s[2].ROOT),T(o,"class","cscanapp svelte-rajxqa")},m(k,m){Ie(k,o,m),i&&i.m(o,null),de(o,a),de(o,l),B=!0},p(k,[m]){k[1]?i?(i.p(k,m),m&2&&re(i,1)):(i=Ue(k),i.c(),re(i,1),i.m(o,a)):i&&(dt(),ke(i,1,1,()=>{i=null}),ut()),(!B||m&4&&u!==(u=k[2].VIDEO))&&T(l,"id",u),(!B||m&4&&f!==(f=k[2].ROOT))&&T(o,"id",f)},i(k){B||(re(i),B=!0)},o(k){ke(i),B=!1},d(k){k&&ue(o),i&&i.d()}}}function yt(s,o,a){let{close:l}=o,{isCloseButton:u}=o,{scannerElements:f}=o;return at(l),s.$$set=B=>{"close"in B&&a(0,l=B.close),"isCloseButton"in B&&a(1,u=B.isCloseButton),"scannerElements"in B&&a(2,f=B.scannerElements)},[l,u,f]}class bt extends Oe{constructor(o){super(),Re(this,o,yt,Ct,Ee,{close:0,isCloseButton:1,scannerElements:2},gt)}}var G=(s=>(s.CAPTURE="capture",s.ERROR="error",s.CANCEL="cancel",s))(G||{}),ie=(s=>(s.ROOT="cscanapp",s.VIDEO="cscanappVideo",s))(ie||{}),me={},se={};se.byteLength=xt,se.toByteArray=_t,se.fromByteArray=St;for(var O=[],L=[],Pt=typeof Uint8Array<"u"?Uint8Array:Array,we="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Q=0,vt=we.length;Q<vt;++Q)O[Q]=we[Q],L[we.charCodeAt(Q)]=Q;L[45]=62,L[95]=63;function $e(s){var o=s.length;if(o%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var a=s.indexOf("=");a===-1&&(a=o);var l=a===o?0:4-a%4;return[a,l]}function xt(s){var o=$e(s),a=o[0],l=o[1];return(a+l)*3/4-l}function Et(s,o,a){return(o+a)*3/4-a}function _t(s){var o,a=$e(s),l=a[0],u=a[1],f=new Pt(Et(s,l,u)),B=0,i=u>0?l-4:l,k;for(k=0;k<i;k+=4)o=L[s.charCodeAt(k)]<<18|L[s.charCodeAt(k+1)]<<12|L[s.charCodeAt(k+2)]<<6|L[s.charCodeAt(k+3)],f[B++]=o>>16&255,f[B++]=o>>8&255,f[B++]=o&255;return u===2&&(o=L[s.charCodeAt(k)]<<2|L[s.charCodeAt(k+1)]>>4,f[B++]=o&255),u===1&&(o=L[s.charCodeAt(k)]<<10|L[s.charCodeAt(k+1)]<<4|L[s.charCodeAt(k+2)]>>2,f[B++]=o>>8&255,f[B++]=o&255),f}function It(s){return O[s>>18&63]+O[s>>12&63]+O[s>>6&63]+O[s&63]}function Mt(s,o,a){for(var l,u=[],f=o;f<a;f+=3)l=(s[f]<<16&16711680)+(s[f+1]<<8&65280)+(s[f+2]&255),u.push(It(l));return u.join("")}function St(s){for(var o,a=s.length,l=a%3,u=[],f=16383,B=0,i=a-l;B<i;B+=f)u.push(Mt(s,B,B+f>i?i:B+f));return l===1?(o=s[a-1],u.push(O[o>>2]+O[o<<4&63]+"==")):l===2&&(o=(s[a-2]<<8)+s[a-1],u.push(O[o>>10]+O[o>>4&63]+O[o<<2&63]+"=")),u.join("")}var pe={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */pe.read=function(s,o,a,l,u){var f,B,i=u*8-l-1,k=(1<<i)-1,m=k>>1,w=-7,C=a?u-1:0,p=a?-1:1,b=s[o+C];for(C+=p,f=b&(1<<-w)-1,b>>=-w,w+=i;w>0;f=f*256+s[o+C],C+=p,w-=8);for(B=f&(1<<-w)-1,f>>=-w,w+=l;w>0;B=B*256+s[o+C],C+=p,w-=8);if(f===0)f=1-m;else{if(f===k)return B?NaN:(b?-1:1)*(1/0);B=B+Math.pow(2,l),f=f-m}return(b?-1:1)*B*Math.pow(2,f-l)},pe.write=function(s,o,a,l,u,f){var B,i,k,m=f*8-u-1,w=(1<<m)-1,C=w>>1,p=u===23?Math.pow(2,-24)-Math.pow(2,-77):0,b=l?0:f-1,M=l?1:-1,R=o<0||o===0&&1/o<0?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(i=isNaN(o)?1:0,B=w):(B=Math.floor(Math.log(o)/Math.LN2),o*(k=Math.pow(2,-B))<1&&(B--,k*=2),B+C>=1?o+=p/k:o+=p*Math.pow(2,1-C),o*k>=2&&(B++,k/=2),B+C>=w?(i=0,B=w):B+C>=1?(i=(o*k-1)*Math.pow(2,u),B=B+C):(i=o*Math.pow(2,C-1)*Math.pow(2,u),B=0));u>=8;s[a+b]=i&255,b+=M,i/=256,u-=8);for(B=B<<u|i,m+=u;m>0;s[a+b]=B&255,b+=M,B/=256,m-=8);s[a+b-M]|=R*128};/*!
|
|
2
|
+
* The buffer module from node.js, for the browser.
|
|
3
|
+
*
|
|
4
|
+
* @author Feross Aboukhadijeh <https://feross.org>
|
|
5
|
+
* @license MIT
|
|
6
|
+
*/(function(s){const o=se,a=pe,l=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;s.Buffer=i,s.SlowBuffer=Z,s.INSPECT_MAX_BYTES=50;const u=2147483647;s.kMaxLength=u,i.TYPED_ARRAY_SUPPORT=f(),!i.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function f(){try{const r=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(r,e),r.foo()===42}catch{return!1}}Object.defineProperty(i.prototype,"parent",{enumerable:!0,get:function(){if(i.isBuffer(this))return this.buffer}}),Object.defineProperty(i.prototype,"offset",{enumerable:!0,get:function(){if(i.isBuffer(this))return this.byteOffset}});function B(r){if(r>u)throw new RangeError('The value "'+r+'" is invalid for option "size"');const e=new Uint8Array(r);return Object.setPrototypeOf(e,i.prototype),e}function i(r,e,t){if(typeof r=="number"){if(typeof e=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return C(r)}return k(r,e,t)}i.poolSize=8192;function k(r,e,t){if(typeof r=="string")return p(r,e);if(ArrayBuffer.isView(r))return M(r);if(r==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof r);if($(r,ArrayBuffer)||r&&$(r.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&($(r,SharedArrayBuffer)||r&&$(r.buffer,SharedArrayBuffer)))return R(r,e,t);if(typeof r=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const n=r.valueOf&&r.valueOf();if(n!=null&&n!==r)return i.from(n,e,t);const c=D(r);if(c)return c;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof r[Symbol.toPrimitive]=="function")return i.from(r[Symbol.toPrimitive]("string"),e,t);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof r)}i.from=function(r,e,t){return k(r,e,t)},Object.setPrototypeOf(i.prototype,Uint8Array.prototype),Object.setPrototypeOf(i,Uint8Array);function m(r){if(typeof r!="number")throw new TypeError('"size" argument must be of type number');if(r<0)throw new RangeError('The value "'+r+'" is invalid for option "size"')}function w(r,e,t){return m(r),r<=0?B(r):e!==void 0?typeof t=="string"?B(r).fill(e,t):B(r).fill(e):B(r)}i.alloc=function(r,e,t){return w(r,e,t)};function C(r){return m(r),B(r<0?0:F(r)|0)}i.allocUnsafe=function(r){return C(r)},i.allocUnsafeSlow=function(r){return C(r)};function p(r,e){if((typeof e!="string"||e==="")&&(e="utf8"),!i.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const t=q(r,e)|0;let n=B(t);const c=n.write(r,e);return c!==t&&(n=n.slice(0,c)),n}function b(r){const e=r.length<0?0:F(r.length)|0,t=B(e);for(let n=0;n<e;n+=1)t[n]=r[n]&255;return t}function M(r){if($(r,Uint8Array)){const e=new Uint8Array(r);return R(e.buffer,e.byteOffset,e.byteLength)}return b(r)}function R(r,e,t){if(e<0||r.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(r.byteLength<e+(t||0))throw new RangeError('"length" is outside of buffer bounds');let n;return e===void 0&&t===void 0?n=new Uint8Array(r):t===void 0?n=new Uint8Array(r,e):n=new Uint8Array(r,e,t),Object.setPrototypeOf(n,i.prototype),n}function D(r){if(i.isBuffer(r)){const e=F(r.length)|0,t=B(e);return t.length===0||r.copy(t,0,0,e),t}if(r.length!==void 0)return typeof r.length!="number"||Pe(r.length)?B(0):b(r);if(r.type==="Buffer"&&Array.isArray(r.data))return b(r.data)}function F(r){if(r>=u)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+u.toString(16)+" bytes");return r|0}function Z(r){return+r!=r&&(r=0),i.alloc(+r)}i.isBuffer=function(e){return e!=null&&e._isBuffer===!0&&e!==i.prototype},i.compare=function(e,t){if($(e,Uint8Array)&&(e=i.from(e,e.offset,e.byteLength)),$(t,Uint8Array)&&(t=i.from(t,t.offset,t.byteLength)),!i.isBuffer(e)||!i.isBuffer(t))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;let n=e.length,c=t.length;for(let d=0,h=Math.min(n,c);d<h;++d)if(e[d]!==t[d]){n=e[d],c=t[d];break}return n<c?-1:c<n?1:0},i.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},i.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(e.length===0)return i.alloc(0);let n;if(t===void 0)for(t=0,n=0;n<e.length;++n)t+=e[n].length;const c=i.allocUnsafe(t);let d=0;for(n=0;n<e.length;++n){let h=e[n];if($(h,Uint8Array))d+h.length>c.length?(i.isBuffer(h)||(h=i.from(h)),h.copy(c,d)):Uint8Array.prototype.set.call(c,h,d);else if(i.isBuffer(h))h.copy(c,d);else throw new TypeError('"list" argument must be an Array of Buffers');d+=h.length}return c};function q(r,e){if(i.isBuffer(r))return r.length;if(ArrayBuffer.isView(r)||$(r,ArrayBuffer))return r.byteLength;if(typeof r!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof r);const t=r.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&t===0)return 0;let c=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return t;case"utf8":case"utf-8":return be(r).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return t*2;case"hex":return t>>>1;case"base64":return Ze(r).length;default:if(c)return n?-1:be(r).length;e=(""+e).toLowerCase(),c=!0}}i.byteLength=q;function U(r,e,t){let n=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((t===void 0||t>this.length)&&(t=this.length),t<=0)||(t>>>=0,e>>>=0,t<=e))return"";for(r||(r="utf8");;)switch(r){case"hex":return jt(this,e,t);case"utf8":case"utf-8":return qe(this,e,t);case"ascii":return qt(this,e,t);case"latin1":case"binary":return zt(this,e,t);case"base64":return Nt(this,e,t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Wt(this,e,t);default:if(n)throw new TypeError("Unknown encoding: "+r);r=(r+"").toLowerCase(),n=!0}}i.prototype._isBuffer=!0;function W(r,e,t){const n=r[e];r[e]=r[t],r[t]=n}i.prototype.swap16=function(){const e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;t<e;t+=2)W(this,t,t+1);return this},i.prototype.swap32=function(){const e=this.length;if(e%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let t=0;t<e;t+=4)W(this,t,t+3),W(this,t+1,t+2);return this},i.prototype.swap64=function(){const e=this.length;if(e%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let t=0;t<e;t+=8)W(this,t,t+7),W(this,t+1,t+6),W(this,t+2,t+5),W(this,t+3,t+4);return this},i.prototype.toString=function(){const e=this.length;return e===0?"":arguments.length===0?qe(this,0,e):U.apply(this,arguments)},i.prototype.toLocaleString=i.prototype.toString,i.prototype.equals=function(e){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e?!0:i.compare(this,e)===0},i.prototype.inspect=function(){let e="";const t=s.INSPECT_MAX_BYTES;return e=this.toString("hex",0,t).replace(/(.{2})/g,"$1 ").trim(),this.length>t&&(e+=" ... "),"<Buffer "+e+">"},l&&(i.prototype[l]=i.prototype.inspect),i.prototype.compare=function(e,t,n,c,d){if($(e,Uint8Array)&&(e=i.from(e,e.offset,e.byteLength)),!i.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(t===void 0&&(t=0),n===void 0&&(n=e?e.length:0),c===void 0&&(c=0),d===void 0&&(d=this.length),t<0||n>e.length||c<0||d>this.length)throw new RangeError("out of range index");if(c>=d&&t>=n)return 0;if(c>=d)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,c>>>=0,d>>>=0,this===e)return 0;let h=d-c,y=n-t;const x=Math.min(h,y),v=this.slice(c,d),E=e.slice(t,n);for(let P=0;P<x;++P)if(v[P]!==E[P]){h=v[P],y=E[P];break}return h<y?-1:y<h?1:0};function Ne(r,e,t,n,c){if(r.length===0)return-1;if(typeof t=="string"?(n=t,t=0):t>2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),t=+t,Pe(t)&&(t=c?0:r.length-1),t<0&&(t=r.length+t),t>=r.length){if(c)return-1;t=r.length-1}else if(t<0)if(c)t=0;else return-1;if(typeof e=="string"&&(e=i.from(e,n)),i.isBuffer(e))return e.length===0?-1:De(r,e,t,n,c);if(typeof e=="number")return e=e&255,typeof Uint8Array.prototype.indexOf=="function"?c?Uint8Array.prototype.indexOf.call(r,e,t):Uint8Array.prototype.lastIndexOf.call(r,e,t):De(r,[e],t,n,c);throw new TypeError("val must be string, number or Buffer")}function De(r,e,t,n,c){let d=1,h=r.length,y=e.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(r.length<2||e.length<2)return-1;d=2,h/=2,y/=2,t/=2}function x(E,P){return d===1?E[P]:E.readUInt16BE(P*d)}let v;if(c){let E=-1;for(v=t;v<h;v++)if(x(r,v)===x(e,E===-1?0:v-E)){if(E===-1&&(E=v),v-E+1===y)return E*d}else E!==-1&&(v-=v-E),E=-1}else for(t+y>h&&(t=h-y),v=t;v>=0;v--){let E=!0;for(let P=0;P<y;P++)if(x(r,v+P)!==x(e,P)){E=!1;break}if(E)return v}return-1}i.prototype.includes=function(e,t,n){return this.indexOf(e,t,n)!==-1},i.prototype.indexOf=function(e,t,n){return Ne(this,e,t,n,!0)},i.prototype.lastIndexOf=function(e,t,n){return Ne(this,e,t,n,!1)};function Rt(r,e,t,n){t=Number(t)||0;const c=r.length-t;n?(n=Number(n),n>c&&(n=c)):n=c;const d=e.length;n>d/2&&(n=d/2);let h;for(h=0;h<n;++h){const y=parseInt(e.substr(h*2,2),16);if(Pe(y))return h;r[t+h]=y}return h}function Ot(r,e,t,n){return ce(be(e,r.length-t),r,t,n)}function Ut(r,e,t,n){return ce(Gt(e),r,t,n)}function $t(r,e,t,n){return ce(Ze(e),r,t,n)}function Tt(r,e,t,n){return ce(Qt(e,r.length-t),r,t,n)}i.prototype.write=function(e,t,n,c){if(t===void 0)c="utf8",n=this.length,t=0;else if(n===void 0&&typeof t=="string")c=t,n=this.length,t=0;else if(isFinite(t))t=t>>>0,isFinite(n)?(n=n>>>0,c===void 0&&(c="utf8")):(c=n,n=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const d=this.length-t;if((n===void 0||n>d)&&(n=d),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");c||(c="utf8");let h=!1;for(;;)switch(c){case"hex":return Rt(this,e,t,n);case"utf8":case"utf-8":return Ot(this,e,t,n);case"ascii":case"latin1":case"binary":return Ut(this,e,t,n);case"base64":return $t(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Tt(this,e,t,n);default:if(h)throw new TypeError("Unknown encoding: "+c);c=(""+c).toLowerCase(),h=!0}},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Nt(r,e,t){return e===0&&t===r.length?o.fromByteArray(r):o.fromByteArray(r.slice(e,t))}function qe(r,e,t){t=Math.min(r.length,t);const n=[];let c=e;for(;c<t;){const d=r[c];let h=null,y=d>239?4:d>223?3:d>191?2:1;if(c+y<=t){let x,v,E,P;switch(y){case 1:d<128&&(h=d);break;case 2:x=r[c+1],(x&192)===128&&(P=(d&31)<<6|x&63,P>127&&(h=P));break;case 3:x=r[c+1],v=r[c+2],(x&192)===128&&(v&192)===128&&(P=(d&15)<<12|(x&63)<<6|v&63,P>2047&&(P<55296||P>57343)&&(h=P));break;case 4:x=r[c+1],v=r[c+2],E=r[c+3],(x&192)===128&&(v&192)===128&&(E&192)===128&&(P=(d&15)<<18|(x&63)<<12|(v&63)<<6|E&63,P>65535&&P<1114112&&(h=P))}}h===null?(h=65533,y=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|h&1023),n.push(h),c+=y}return Dt(n)}const ze=4096;function Dt(r){const e=r.length;if(e<=ze)return String.fromCharCode.apply(String,r);let t="",n=0;for(;n<e;)t+=String.fromCharCode.apply(String,r.slice(n,n+=ze));return t}function qt(r,e,t){let n="";t=Math.min(r.length,t);for(let c=e;c<t;++c)n+=String.fromCharCode(r[c]&127);return n}function zt(r,e,t){let n="";t=Math.min(r.length,t);for(let c=e;c<t;++c)n+=String.fromCharCode(r[c]);return n}function jt(r,e,t){const n=r.length;(!e||e<0)&&(e=0),(!t||t<0||t>n)&&(t=n);let c="";for(let d=e;d<t;++d)c+=Zt[r[d]];return c}function Wt(r,e,t){const n=r.slice(e,t);let c="";for(let d=0;d<n.length-1;d+=2)c+=String.fromCharCode(n[d]+n[d+1]*256);return c}i.prototype.slice=function(e,t){const n=this.length;e=~~e,t=t===void 0?n:~~t,e<0?(e+=n,e<0&&(e=0)):e>n&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),t<e&&(t=e);const c=this.subarray(e,t);return Object.setPrototypeOf(c,i.prototype),c};function _(r,e,t){if(r%1!==0||r<0)throw new RangeError("offset is not uint");if(r+e>t)throw new RangeError("Trying to access beyond buffer length")}i.prototype.readUintLE=i.prototype.readUIntLE=function(e,t,n){e=e>>>0,t=t>>>0,n||_(e,t,this.length);let c=this[e],d=1,h=0;for(;++h<t&&(d*=256);)c+=this[e+h]*d;return c},i.prototype.readUintBE=i.prototype.readUIntBE=function(e,t,n){e=e>>>0,t=t>>>0,n||_(e,t,this.length);let c=this[e+--t],d=1;for(;t>0&&(d*=256);)c+=this[e+--t]*d;return c},i.prototype.readUint8=i.prototype.readUInt8=function(e,t){return e=e>>>0,t||_(e,1,this.length),this[e]},i.prototype.readUint16LE=i.prototype.readUInt16LE=function(e,t){return e=e>>>0,t||_(e,2,this.length),this[e]|this[e+1]<<8},i.prototype.readUint16BE=i.prototype.readUInt16BE=function(e,t){return e=e>>>0,t||_(e,2,this.length),this[e]<<8|this[e+1]},i.prototype.readUint32LE=i.prototype.readUInt32LE=function(e,t){return e=e>>>0,t||_(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216},i.prototype.readUint32BE=i.prototype.readUInt32BE=function(e,t){return e=e>>>0,t||_(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])},i.prototype.readBigUInt64LE=z(function(e){e=e>>>0,Y(e,"offset");const t=this[e],n=this[e+7];(t===void 0||n===void 0)&&oe(e,this.length-8);const c=t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24,d=this[++e]+this[++e]*2**8+this[++e]*2**16+n*2**24;return BigInt(c)+(BigInt(d)<<BigInt(32))}),i.prototype.readBigUInt64BE=z(function(e){e=e>>>0,Y(e,"offset");const t=this[e],n=this[e+7];(t===void 0||n===void 0)&&oe(e,this.length-8);const c=t*2**24+this[++e]*2**16+this[++e]*2**8+this[++e],d=this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+n;return(BigInt(c)<<BigInt(32))+BigInt(d)}),i.prototype.readIntLE=function(e,t,n){e=e>>>0,t=t>>>0,n||_(e,t,this.length);let c=this[e],d=1,h=0;for(;++h<t&&(d*=256);)c+=this[e+h]*d;return d*=128,c>=d&&(c-=Math.pow(2,8*t)),c},i.prototype.readIntBE=function(e,t,n){e=e>>>0,t=t>>>0,n||_(e,t,this.length);let c=t,d=1,h=this[e+--c];for(;c>0&&(d*=256);)h+=this[e+--c]*d;return d*=128,h>=d&&(h-=Math.pow(2,8*t)),h},i.prototype.readInt8=function(e,t){return e=e>>>0,t||_(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]},i.prototype.readInt16LE=function(e,t){e=e>>>0,t||_(e,2,this.length);const n=this[e]|this[e+1]<<8;return n&32768?n|4294901760:n},i.prototype.readInt16BE=function(e,t){e=e>>>0,t||_(e,2,this.length);const n=this[e+1]|this[e]<<8;return n&32768?n|4294901760:n},i.prototype.readInt32LE=function(e,t){return e=e>>>0,t||_(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},i.prototype.readInt32BE=function(e,t){return e=e>>>0,t||_(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},i.prototype.readBigInt64LE=z(function(e){e=e>>>0,Y(e,"offset");const t=this[e],n=this[e+7];(t===void 0||n===void 0)&&oe(e,this.length-8);const c=this[e+4]+this[e+5]*2**8+this[e+6]*2**16+(n<<24);return(BigInt(c)<<BigInt(32))+BigInt(t+this[++e]*2**8+this[++e]*2**16+this[++e]*2**24)}),i.prototype.readBigInt64BE=z(function(e){e=e>>>0,Y(e,"offset");const t=this[e],n=this[e+7];(t===void 0||n===void 0)&&oe(e,this.length-8);const c=(t<<24)+this[++e]*2**16+this[++e]*2**8+this[++e];return(BigInt(c)<<BigInt(32))+BigInt(this[++e]*2**24+this[++e]*2**16+this[++e]*2**8+n)}),i.prototype.readFloatLE=function(e,t){return e=e>>>0,t||_(e,4,this.length),a.read(this,e,!0,23,4)},i.prototype.readFloatBE=function(e,t){return e=e>>>0,t||_(e,4,this.length),a.read(this,e,!1,23,4)},i.prototype.readDoubleLE=function(e,t){return e=e>>>0,t||_(e,8,this.length),a.read(this,e,!0,52,8)},i.prototype.readDoubleBE=function(e,t){return e=e>>>0,t||_(e,8,this.length),a.read(this,e,!1,52,8)};function S(r,e,t,n,c,d){if(!i.isBuffer(r))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>c||e<d)throw new RangeError('"value" argument is out of bounds');if(t+n>r.length)throw new RangeError("Index out of range")}i.prototype.writeUintLE=i.prototype.writeUIntLE=function(e,t,n,c){if(e=+e,t=t>>>0,n=n>>>0,!c){const y=Math.pow(2,8*n)-1;S(this,e,t,n,y,0)}let d=1,h=0;for(this[t]=e&255;++h<n&&(d*=256);)this[t+h]=e/d&255;return t+n},i.prototype.writeUintBE=i.prototype.writeUIntBE=function(e,t,n,c){if(e=+e,t=t>>>0,n=n>>>0,!c){const y=Math.pow(2,8*n)-1;S(this,e,t,n,y,0)}let d=n-1,h=1;for(this[t+d]=e&255;--d>=0&&(h*=256);)this[t+d]=e/h&255;return t+n},i.prototype.writeUint8=i.prototype.writeUInt8=function(e,t,n){return e=+e,t=t>>>0,n||S(this,e,t,1,255,0),this[t]=e&255,t+1},i.prototype.writeUint16LE=i.prototype.writeUInt16LE=function(e,t,n){return e=+e,t=t>>>0,n||S(this,e,t,2,65535,0),this[t]=e&255,this[t+1]=e>>>8,t+2},i.prototype.writeUint16BE=i.prototype.writeUInt16BE=function(e,t,n){return e=+e,t=t>>>0,n||S(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=e&255,t+2},i.prototype.writeUint32LE=i.prototype.writeUInt32LE=function(e,t,n){return e=+e,t=t>>>0,n||S(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255,t+4},i.prototype.writeUint32BE=i.prototype.writeUInt32BE=function(e,t,n){return e=+e,t=t>>>0,n||S(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4};function je(r,e,t,n,c){Qe(e,n,c,r,t,7);let d=Number(e&BigInt(4294967295));r[t++]=d,d=d>>8,r[t++]=d,d=d>>8,r[t++]=d,d=d>>8,r[t++]=d;let h=Number(e>>BigInt(32)&BigInt(4294967295));return r[t++]=h,h=h>>8,r[t++]=h,h=h>>8,r[t++]=h,h=h>>8,r[t++]=h,t}function We(r,e,t,n,c){Qe(e,n,c,r,t,7);let d=Number(e&BigInt(4294967295));r[t+7]=d,d=d>>8,r[t+6]=d,d=d>>8,r[t+5]=d,d=d>>8,r[t+4]=d;let h=Number(e>>BigInt(32)&BigInt(4294967295));return r[t+3]=h,h=h>>8,r[t+2]=h,h=h>>8,r[t+1]=h,h=h>>8,r[t]=h,t+8}i.prototype.writeBigUInt64LE=z(function(e,t=0){return je(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),i.prototype.writeBigUInt64BE=z(function(e,t=0){return We(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))}),i.prototype.writeIntLE=function(e,t,n,c){if(e=+e,t=t>>>0,!c){const x=Math.pow(2,8*n-1);S(this,e,t,n,x-1,-x)}let d=0,h=1,y=0;for(this[t]=e&255;++d<n&&(h*=256);)e<0&&y===0&&this[t+d-1]!==0&&(y=1),this[t+d]=(e/h>>0)-y&255;return t+n},i.prototype.writeIntBE=function(e,t,n,c){if(e=+e,t=t>>>0,!c){const x=Math.pow(2,8*n-1);S(this,e,t,n,x-1,-x)}let d=n-1,h=1,y=0;for(this[t+d]=e&255;--d>=0&&(h*=256);)e<0&&y===0&&this[t+d+1]!==0&&(y=1),this[t+d]=(e/h>>0)-y&255;return t+n},i.prototype.writeInt8=function(e,t,n){return e=+e,t=t>>>0,n||S(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=e&255,t+1},i.prototype.writeInt16LE=function(e,t,n){return e=+e,t=t>>>0,n||S(this,e,t,2,32767,-32768),this[t]=e&255,this[t+1]=e>>>8,t+2},i.prototype.writeInt16BE=function(e,t,n){return e=+e,t=t>>>0,n||S(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=e&255,t+2},i.prototype.writeInt32LE=function(e,t,n){return e=+e,t=t>>>0,n||S(this,e,t,4,2147483647,-2147483648),this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},i.prototype.writeInt32BE=function(e,t,n){return e=+e,t=t>>>0,n||S(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255,t+4},i.prototype.writeBigInt64LE=z(function(e,t=0){return je(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),i.prototype.writeBigInt64BE=z(function(e,t=0){return We(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Xe(r,e,t,n,c,d){if(t+n>r.length)throw new RangeError("Index out of range");if(t<0)throw new RangeError("Index out of range")}function Ve(r,e,t,n,c){return e=+e,t=t>>>0,c||Xe(r,e,t,4),a.write(r,e,t,n,23,4),t+4}i.prototype.writeFloatLE=function(e,t,n){return Ve(this,e,t,!0,n)},i.prototype.writeFloatBE=function(e,t,n){return Ve(this,e,t,!1,n)};function He(r,e,t,n,c){return e=+e,t=t>>>0,c||Xe(r,e,t,8),a.write(r,e,t,n,52,8),t+8}i.prototype.writeDoubleLE=function(e,t,n){return He(this,e,t,!0,n)},i.prototype.writeDoubleBE=function(e,t,n){return He(this,e,t,!1,n)},i.prototype.copy=function(e,t,n,c){if(!i.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),!c&&c!==0&&(c=this.length),t>=e.length&&(t=e.length),t||(t=0),c>0&&c<n&&(c=n),c===n||e.length===0||this.length===0)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("Index out of range");if(c<0)throw new RangeError("sourceEnd out of bounds");c>this.length&&(c=this.length),e.length-t<c-n&&(c=e.length-t+n);const d=c-n;return this===e&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(t,n,c):Uint8Array.prototype.set.call(e,this.subarray(n,c),t),d},i.prototype.fill=function(e,t,n,c){if(typeof e=="string"){if(typeof t=="string"?(c=t,t=0,n=this.length):typeof n=="string"&&(c=n,n=this.length),c!==void 0&&typeof c!="string")throw new TypeError("encoding must be a string");if(typeof c=="string"&&!i.isEncoding(c))throw new TypeError("Unknown encoding: "+c);if(e.length===1){const h=e.charCodeAt(0);(c==="utf8"&&h<128||c==="latin1")&&(e=h)}}else typeof e=="number"?e=e&255:typeof e=="boolean"&&(e=Number(e));if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t=t>>>0,n=n===void 0?this.length:n>>>0,e||(e=0);let d;if(typeof e=="number")for(d=t;d<n;++d)this[d]=e;else{const h=i.isBuffer(e)?e:i.from(e,c),y=h.length;if(y===0)throw new TypeError('The value "'+e+'" is invalid for argument "value"');for(d=0;d<n-t;++d)this[d+t]=h[d%y]}return this};const K={};function ye(r,e,t){K[r]=class extends t{constructor(){super(),Object.defineProperty(this,"message",{value:e.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${r}]`,this.stack,delete this.name}get code(){return r}set code(c){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:c,writable:!0})}toString(){return`${this.name} [${r}]: ${this.message}`}}}ye("ERR_BUFFER_OUT_OF_BOUNDS",function(r){return r?`${r} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),ye("ERR_INVALID_ARG_TYPE",function(r,e){return`The "${r}" argument must be of type number. Received type ${typeof e}`},TypeError),ye("ERR_OUT_OF_RANGE",function(r,e,t){let n=`The value of "${r}" is out of range.`,c=t;return Number.isInteger(t)&&Math.abs(t)>2**32?c=Ge(String(t)):typeof t=="bigint"&&(c=String(t),(t>BigInt(2)**BigInt(32)||t<-(BigInt(2)**BigInt(32)))&&(c=Ge(c)),c+="n"),n+=` It must be ${e}. Received ${c}`,n},RangeError);function Ge(r){let e="",t=r.length;const n=r[0]==="-"?1:0;for(;t>=n+4;t-=3)e=`_${r.slice(t-3,t)}${e}`;return`${r.slice(0,t)}${e}`}function Xt(r,e,t){Y(e,"offset"),(r[e]===void 0||r[e+t]===void 0)&&oe(e,r.length-(t+1))}function Qe(r,e,t,n,c,d){if(r>t||r<e){const h=typeof e=="bigint"?"n":"";let y;throw e===0||e===BigInt(0)?y=`>= 0${h} and < 2${h} ** ${(d+1)*8}${h}`:y=`>= -(2${h} ** ${(d+1)*8-1}${h}) and < 2 ** ${(d+1)*8-1}${h}`,new K.ERR_OUT_OF_RANGE("value",y,r)}Xt(n,c,d)}function Y(r,e){if(typeof r!="number")throw new K.ERR_INVALID_ARG_TYPE(e,"number",r)}function oe(r,e,t){throw Math.floor(r)!==r?(Y(r,t),new K.ERR_OUT_OF_RANGE("offset","an integer",r)):e<0?new K.ERR_BUFFER_OUT_OF_BOUNDS:new K.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${e}`,r)}const Vt=/[^+/0-9A-Za-z-_]/g;function Ht(r){if(r=r.split("=")[0],r=r.trim().replace(Vt,""),r.length<2)return"";for(;r.length%4!==0;)r=r+"=";return r}function be(r,e){e=e||1/0;let t;const n=r.length;let c=null;const d=[];for(let h=0;h<n;++h){if(t=r.charCodeAt(h),t>55295&&t<57344){if(!c){if(t>56319){(e-=3)>-1&&d.push(239,191,189);continue}else if(h+1===n){(e-=3)>-1&&d.push(239,191,189);continue}c=t;continue}if(t<56320){(e-=3)>-1&&d.push(239,191,189),c=t;continue}t=(c-55296<<10|t-56320)+65536}else c&&(e-=3)>-1&&d.push(239,191,189);if(c=null,t<128){if((e-=1)<0)break;d.push(t)}else if(t<2048){if((e-=2)<0)break;d.push(t>>6|192,t&63|128)}else if(t<65536){if((e-=3)<0)break;d.push(t>>12|224,t>>6&63|128,t&63|128)}else if(t<1114112){if((e-=4)<0)break;d.push(t>>18|240,t>>12&63|128,t>>6&63|128,t&63|128)}else throw new Error("Invalid code point")}return d}function Gt(r){const e=[];for(let t=0;t<r.length;++t)e.push(r.charCodeAt(t)&255);return e}function Qt(r,e){let t,n,c;const d=[];for(let h=0;h<r.length&&!((e-=2)<0);++h)t=r.charCodeAt(h),n=t>>8,c=t%256,d.push(c),d.push(n);return d}function Ze(r){return o.toByteArray(Ht(r))}function ce(r,e,t,n){let c;for(c=0;c<n&&!(c+t>=e.length||c>=r.length);++c)e[c+t]=r[c];return c}function $(r,e){return r instanceof e||r!=null&&r.constructor!=null&&r.constructor.name!=null&&r.constructor.name===e.name}function Pe(r){return r!==r}const Zt=function(){const r="0123456789abcdef",e=new Array(256);for(let t=0;t<16;++t){const n=t*16;for(let c=0;c<16;++c)e[n+c]=r[t]+r[c]}return e}();function z(r){return typeof BigInt>"u"?Kt:r}function Kt(){throw new Error("BigInt not supported")}})(me);const At=s=>{const o=me.Buffer.from(s,"base64").toString("utf8"),a=me.Buffer.from(o,"binary").toString("base64");return s===a?o:s},Lt=async s=>{const o=At(s),a=JSON.parse(o);return{message:o,...a}};class g{constructor(o,a,l,u,f){this._legacyCanvasSize=g.DEFAULT_CANVAS_SIZE,this._preferredCamera="environment",this._maxScansPerSecond=25,this._lastScanTimestamp=-1,this._destroyed=this._flashOn=this._paused=this._active=!1,this.$video=o,this.$canvas=document.createElement("canvas"),l&&typeof l=="object"?this._onDecode=a:(console.warn(l||u||f?"You're using a deprecated version of the QrScanner constructor which will be removed in the future":"Note that the type of the scan result passed to onDecode will change in the future. To already switch to the new api today, you can pass returnDetailedScanResult: true."),this._legacyOnDecode=a),a=typeof l=="object"?l:{},this._onDecodeError=a.onDecodeError||(typeof l=="function"?l:this._onDecodeError),this._calculateScanRegion=a.calculateScanRegion||(typeof u=="function"?u:this._calculateScanRegion),this._preferredCamera=a.preferredCamera||f||this._preferredCamera,this._legacyCanvasSize=typeof l=="number"?l:typeof u=="number"?u:this._legacyCanvasSize,this._maxScansPerSecond=a.maxScansPerSecond||this._maxScansPerSecond,this._onPlay=this._onPlay.bind(this),this._onLoadedMetaData=this._onLoadedMetaData.bind(this),this._onVisibilityChange=this._onVisibilityChange.bind(this),this._updateOverlay=this._updateOverlay.bind(this),o.disablePictureInPicture=!0,o.playsInline=!0,o.muted=!0;let B=!1;if(o.hidden&&(o.hidden=!1,B=!0),document.body.contains(o)||(document.body.appendChild(o),B=!0),l=o.parentElement,a.highlightScanRegion||a.highlightCodeOutline){if(u=!!a.overlay,this.$overlay=a.overlay||document.createElement("div"),f=this.$overlay.style,f.position="absolute",f.display="none",f.pointerEvents="none",this.$overlay.classList.add("scan-region-highlight"),!u&&a.highlightScanRegion){this.$overlay.innerHTML='<svg class="scan-region-highlight-svg" viewBox="0 0 238 238" preserveAspectRatio="none" style="position:absolute;width:100%;height:100%;left:0;top:0;fill:none;stroke:#e9b213;stroke-width:4;stroke-linecap:round;stroke-linejoin:round"><path d="M31 2H10a8 8 0 0 0-8 8v21M207 2h21a8 8 0 0 1 8 8v21m0 176v21a8 8 0 0 1-8 8h-21m-176 0H10a8 8 0 0 1-8-8v-21"/></svg>';try{this.$overlay.firstElementChild.animate({transform:["scale(.98)","scale(1.01)"]},{duration:400,iterations:1/0,direction:"alternate",easing:"ease-in-out"})}catch{}l.insertBefore(this.$overlay,this.$video.nextSibling)}a.highlightCodeOutline&&(this.$overlay.insertAdjacentHTML("beforeend",'<svg class="code-outline-highlight" preserveAspectRatio="none" style="display:none;width:100%;height:100%;fill:none;stroke:#e9b213;stroke-width:5;stroke-dasharray:25;stroke-linecap:round;stroke-linejoin:round"><polygon/></svg>'),this.$codeOutlineHighlight=this.$overlay.lastElementChild)}this._scanRegion=this._calculateScanRegion(o),requestAnimationFrame(()=>{let i=window.getComputedStyle(o);i.display==="none"&&(o.style.setProperty("display","block","important"),B=!0),i.visibility!=="visible"&&(o.style.setProperty("visibility","visible","important"),B=!0),B&&(console.warn("QrScanner has overwritten the video hiding style to avoid Safari stopping the playback."),o.style.opacity="0",o.style.width="0",o.style.height="0",this.$overlay&&this.$overlay.parentElement&&this.$overlay.parentElement.removeChild(this.$overlay),delete this.$overlay,delete this.$codeOutlineHighlight),this.$overlay&&this._updateOverlay()}),o.addEventListener("play",this._onPlay),o.addEventListener("loadedmetadata",this._onLoadedMetaData),document.addEventListener("visibilitychange",this._onVisibilityChange),window.addEventListener("resize",this._updateOverlay),this._qrEnginePromise=g.createQrEngine()}static set WORKER_PATH(o){console.warn("Setting QrScanner.WORKER_PATH is not required and not supported anymore. Have a look at the README for new setup instructions.")}static async hasCamera(){try{return!!(await g.listCameras(!1)).length}catch{return!1}}static async listCameras(o=!1){if(!navigator.mediaDevices)return[];let a=async()=>(await navigator.mediaDevices.enumerateDevices()).filter(u=>u.kind==="videoinput"),l;try{o&&(await a()).every(u=>!u.label)&&(l=await navigator.mediaDevices.getUserMedia({audio:!1,video:!0}))}catch{}try{return(await a()).map((u,f)=>({id:u.deviceId,label:u.label||(f===0?"Default Camera":`Camera ${f+1}`)}))}finally{l&&(console.warn("Call listCameras after successfully starting a QR scanner to avoid creating a temporary video stream"),g._stopVideoStream(l))}}async hasFlash(){let o;try{if(this.$video.srcObject){if(!(this.$video.srcObject instanceof MediaStream))return!1;o=this.$video.srcObject}else o=(await this._getCameraStream()).stream;return"torch"in o.getVideoTracks()[0].getSettings()}catch{return!1}finally{o&&o!==this.$video.srcObject&&(console.warn("Call hasFlash after successfully starting the scanner to avoid creating a temporary video stream"),g._stopVideoStream(o))}}isFlashOn(){return this._flashOn}async toggleFlash(){this._flashOn?await this.turnFlashOff():await this.turnFlashOn()}async turnFlashOn(){if(!this._flashOn&&!this._destroyed&&(this._flashOn=!0,this._active&&!this._paused))try{if(!await this.hasFlash())throw"No flash available";await this.$video.srcObject.getVideoTracks()[0].applyConstraints({advanced:[{torch:!0}]})}catch(o){throw this._flashOn=!1,o}}async turnFlashOff(){this._flashOn&&(this._flashOn=!1,await this._restartVideoStream())}destroy(){this.$video.removeEventListener("loadedmetadata",this._onLoadedMetaData),this.$video.removeEventListener("play",this._onPlay),document.removeEventListener("visibilitychange",this._onVisibilityChange),window.removeEventListener("resize",this._updateOverlay),this._destroyed=!0,this._flashOn=!1,this.stop(),g._postWorkerMessage(this._qrEnginePromise,"close")}async start(){if(this._destroyed)throw Error("The QR scanner can not be started as it had been destroyed.");if((!this._active||this._paused)&&(window.location.protocol!=="https:"&&console.warn("The camera stream is only accessible if the page is transferred via https."),this._active=!0,!document.hidden))if(this._paused=!1,this.$video.srcObject)await this.$video.play();else try{let{stream:o,facingMode:a}=await this._getCameraStream();!this._active||this._paused?g._stopVideoStream(o):(this._setVideoMirror(a),this.$video.srcObject=o,await this.$video.play(),this._flashOn&&(this._flashOn=!1,this.turnFlashOn().catch(()=>{})))}catch(o){if(!this._paused)throw this._active=!1,o}}stop(){this.pause(),this._active=!1}async pause(o=!1){if(this._paused=!0,!this._active)return!0;this.$video.pause(),this.$overlay&&(this.$overlay.style.display="none");let a=()=>{this.$video.srcObject instanceof MediaStream&&(g._stopVideoStream(this.$video.srcObject),this.$video.srcObject=null)};return o?(a(),!0):(await new Promise(l=>setTimeout(l,300)),this._paused?(a(),!0):!1)}async setCamera(o){o!==this._preferredCamera&&(this._preferredCamera=o,await this._restartVideoStream())}static async scanImage(o,a,l,u,f=!1,B=!1){let i,k=!1;a&&("scanRegion"in a||"qrEngine"in a||"canvas"in a||"disallowCanvasResizing"in a||"alsoTryWithoutScanRegion"in a||"returnDetailedScanResult"in a)?(i=a.scanRegion,l=a.qrEngine,u=a.canvas,f=a.disallowCanvasResizing||!1,B=a.alsoTryWithoutScanRegion||!1,k=!0):console.warn(a||l||u||f||B?"You're using a deprecated api for scanImage which will be removed in the future.":"Note that the return type of scanImage will change in the future. To already switch to the new api today, you can pass returnDetailedScanResult: true."),a=!!l;try{let m,w;[l,m]=await Promise.all([l||g.createQrEngine(),g._loadImage(o)]),[u,w]=g._drawToCanvas(m,i,u,f);let C;if(l instanceof Worker){let p=l;a||g._postWorkerMessageSync(p,"inversionMode","both"),C=await new Promise((b,M)=>{let R,D,F,Z=-1;D=U=>{U.data.id===Z&&(p.removeEventListener("message",D),p.removeEventListener("error",F),clearTimeout(R),U.data.data!==null?b({data:U.data.data,cornerPoints:g._convertPoints(U.data.cornerPoints,i)}):M(g.NO_QR_CODE_FOUND))},F=U=>{p.removeEventListener("message",D),p.removeEventListener("error",F),clearTimeout(R),M("Scanner error: "+(U?U.message||U:"Unknown Error"))},p.addEventListener("message",D),p.addEventListener("error",F),R=setTimeout(()=>F("timeout"),1e4);let q=w.getImageData(0,0,u.width,u.height);Z=g._postWorkerMessageSync(p,"decode",q,[q.data.buffer])})}else C=await Promise.race([new Promise((p,b)=>window.setTimeout(()=>b("Scanner error: timeout"),1e4)),(async()=>{try{var[p]=await l.detect(u);if(!p)throw g.NO_QR_CODE_FOUND;return{data:p.rawValue,cornerPoints:g._convertPoints(p.cornerPoints,i)}}catch(b){if(p=b.message||b,/not implemented|service unavailable/.test(p))return g._disableBarcodeDetector=!0,g.scanImage(o,{scanRegion:i,canvas:u,disallowCanvasResizing:f,alsoTryWithoutScanRegion:B});throw`Scanner error: ${p}`}})()]);return k?C:C.data}catch(m){if(!i||!B)throw m;let w=await g.scanImage(o,{qrEngine:l,canvas:u,disallowCanvasResizing:f});return k?w:w.data}finally{a||g._postWorkerMessage(l,"close")}}setGrayscaleWeights(o,a,l,u=!0){g._postWorkerMessage(this._qrEnginePromise,"grayscaleWeights",{red:o,green:a,blue:l,useIntegerApproximation:u})}setInversionMode(o){g._postWorkerMessage(this._qrEnginePromise,"inversionMode",o)}static async createQrEngine(o){if(o&&console.warn("Specifying a worker path is not required and not supported anymore."),o=()=>Promise.resolve().then(()=>Ft).then(l=>l.createWorker()),!(!g._disableBarcodeDetector&&"BarcodeDetector"in window&&BarcodeDetector.getSupportedFormats&&(await BarcodeDetector.getSupportedFormats()).includes("qr_code")))return o();let a=navigator.userAgentData;return a&&a.brands.some(({brand:l})=>/Chromium/i.test(l))&&/mac ?OS/i.test(a.platform)&&await a.getHighEntropyValues(["architecture","platformVersion"]).then(({architecture:l,platformVersion:u})=>/arm/i.test(l||"arm")&&13<=parseInt(u||"13")).catch(()=>!0)?o():new BarcodeDetector({formats:["qr_code"]})}_onPlay(){this._scanRegion=this._calculateScanRegion(this.$video),this._updateOverlay(),this.$overlay&&(this.$overlay.style.display=""),this._scanFrame()}_onLoadedMetaData(){this._scanRegion=this._calculateScanRegion(this.$video),this._updateOverlay()}_onVisibilityChange(){document.hidden?this.pause():this._active&&this.start()}_calculateScanRegion(o){let a=Math.round(.6666666666666666*Math.min(o.videoWidth,o.videoHeight));return{x:Math.round((o.videoWidth-a)/2),y:Math.round((o.videoHeight-a)/2),width:a,height:a,downScaledWidth:this._legacyCanvasSize,downScaledHeight:this._legacyCanvasSize}}_updateOverlay(){requestAnimationFrame(()=>{if(this.$overlay){var o=this.$video,a=o.videoWidth,l=o.videoHeight,u=o.offsetWidth,f=o.offsetHeight,B=o.offsetLeft,i=o.offsetTop,k=window.getComputedStyle(o),m=k.objectFit,w=a/l,C=u/f;switch(m){case"none":var p=a,b=l;break;case"fill":p=u,b=f;break;default:(m==="cover"?w>C:w<C)?(b=f,p=b*w):(p=u,b=p/w),m==="scale-down"&&(p=Math.min(p,a),b=Math.min(b,l))}var[M,R]=k.objectPosition.split(" ").map((F,Z)=>{const q=parseFloat(F);return F.endsWith("%")?(Z?f-b:u-p)*q/100:q});k=this._scanRegion.width||a,C=this._scanRegion.height||l,m=this._scanRegion.x||0;var D=this._scanRegion.y||0;w=this.$overlay.style,w.width=`${k/a*p}px`,w.height=`${C/l*b}px`,w.top=`${i+R+D/l*b}px`,l=/scaleX\(-1\)/.test(o.style.transform),w.left=`${B+(l?u-M-p:M)+(l?a-m-k:m)/a*p}px`,w.transform=o.style.transform}})}static _convertPoints(o,a){if(!a)return o;let l=a.x||0,u=a.y||0,f=a.width&&a.downScaledWidth?a.width/a.downScaledWidth:1;a=a.height&&a.downScaledHeight?a.height/a.downScaledHeight:1;for(let B of o)B.x=B.x*f+l,B.y=B.y*a+u;return o}_scanFrame(){!this._active||this.$video.paused||this.$video.ended||("requestVideoFrameCallback"in this.$video?this.$video.requestVideoFrameCallback.bind(this.$video):requestAnimationFrame)(async()=>{if(!(1>=this.$video.readyState)){var o=Date.now()-this._lastScanTimestamp,a=1e3/this._maxScansPerSecond;o<a&&await new Promise(u=>setTimeout(u,a-o)),this._lastScanTimestamp=Date.now();try{var l=await g.scanImage(this.$video,{scanRegion:this._scanRegion,qrEngine:this._qrEnginePromise,canvas:this.$canvas})}catch(u){if(!this._active)return;this._onDecodeError(u)}!g._disableBarcodeDetector||await this._qrEnginePromise instanceof Worker||(this._qrEnginePromise=g.createQrEngine()),l?(this._onDecode?this._onDecode(l):this._legacyOnDecode&&this._legacyOnDecode(l.data),this.$codeOutlineHighlight&&(clearTimeout(this._codeOutlineHighlightRemovalTimeout),this._codeOutlineHighlightRemovalTimeout=void 0,this.$codeOutlineHighlight.setAttribute("viewBox",`${this._scanRegion.x||0} ${this._scanRegion.y||0} ${this._scanRegion.width||this.$video.videoWidth} ${this._scanRegion.height||this.$video.videoHeight}`),this.$codeOutlineHighlight.firstElementChild.setAttribute("points",l.cornerPoints.map(({x:u,y:f})=>`${u},${f}`).join(" ")),this.$codeOutlineHighlight.style.display="")):this.$codeOutlineHighlight&&!this._codeOutlineHighlightRemovalTimeout&&(this._codeOutlineHighlightRemovalTimeout=setTimeout(()=>this.$codeOutlineHighlight.style.display="none",100))}this._scanFrame()})}_onDecodeError(o){o!==g.NO_QR_CODE_FOUND&&console.log(o)}async _getCameraStream(){if(!navigator.mediaDevices)throw"Camera not found.";let o=/^(environment|user)$/.test(this._preferredCamera)?"facingMode":"deviceId",a=[{width:{min:1024}},{width:{min:768}},{}],l=a.map(u=>Object.assign({},u,{[o]:{exact:this._preferredCamera}}));for(let u of[...l,...a])try{let f=await navigator.mediaDevices.getUserMedia({video:u,audio:!1}),B=this._getFacingMode(f)||(u.facingMode?this._preferredCamera:this._preferredCamera==="environment"?"user":"environment");return{stream:f,facingMode:B}}catch{}throw"Camera not found."}async _restartVideoStream(){let o=this._paused;await this.pause(!0)&&!o&&this._active&&await this.start()}static _stopVideoStream(o){for(let a of o.getTracks())a.stop(),o.removeTrack(a)}_setVideoMirror(o){this.$video.style.transform="scaleX("+(o==="user"?-1:1)+")"}_getFacingMode(o){return(o=o.getVideoTracks()[0])?/rear|back|environment/i.test(o.label)?"environment":/front|user|face/i.test(o.label)?"user":null:null}static _drawToCanvas(o,a,l,u=!1){l=l||document.createElement("canvas");let f=a&&a.x?a.x:0,B=a&&a.y?a.y:0,i=a&&a.width?a.width:o.videoWidth||o.width,k=a&&a.height?a.height:o.videoHeight||o.height;return u||(u=a&&a.downScaledWidth?a.downScaledWidth:i,a=a&&a.downScaledHeight?a.downScaledHeight:k,l.width!==u&&(l.width=u),l.height!==a&&(l.height=a)),a=l.getContext("2d",{alpha:!1}),a.imageSmoothingEnabled=!1,a.drawImage(o,f,B,i,k,0,0,l.width,l.height),[l,a]}static async _loadImage(o){if(o instanceof Image)return await g._awaitImageLoad(o),o;if(o instanceof HTMLVideoElement||o instanceof HTMLCanvasElement||o instanceof SVGImageElement||"OffscreenCanvas"in window&&o instanceof OffscreenCanvas||"ImageBitmap"in window&&o instanceof ImageBitmap)return o;if(o instanceof File||o instanceof Blob||o instanceof URL||typeof o=="string"){let a=new Image;a.src=o instanceof File||o instanceof Blob?URL.createObjectURL(o):o.toString();try{return await g._awaitImageLoad(a),a}finally{(o instanceof File||o instanceof Blob)&&URL.revokeObjectURL(a.src)}}else throw"Unsupported image type."}static async _awaitImageLoad(o){o.complete&&o.naturalWidth!==0||await new Promise((a,l)=>{let u=f=>{o.removeEventListener("load",u),o.removeEventListener("error",u),f instanceof ErrorEvent?l("Image load error"):a()};o.addEventListener("load",u),o.addEventListener("error",u)})}static async _postWorkerMessage(o,a,l,u){return g._postWorkerMessageSync(await o,a,l,u)}static _postWorkerMessageSync(o,a,l,u){if(!(o instanceof Worker))return-1;let f=g._workerMessageId++;return o.postMessage({id:f,type:a,data:l},u),f}}g.DEFAULT_CANVAS_SIZE=400,g.NO_QR_CODE_FOUND="No QR code found",g._disableBarcodeDetector=!1,g._workerMessageId=0;const Ce=class Ce{constructor(o,a,l){this.events={};const u=document.querySelector(o.target);if(!u)throw new Error(`Target element '${o.target}' is not found`);this.targetElement=u,this.decode=a,this.scannerElements=l}async _initializeScanner(o,a=25){var l,u,f,B;try{if(!o){const i=await this.listVideoInputDevices();o=this._getMainCameraDeviceId(i)}this.qrScanner=new g(document.getElementById(`${this.scannerElements.VIDEO}`),async i=>{var k,m,w,C;if(this.previousScanText!==i.data)try{this.previousScanText=i.data,(m=(k=this.events)==null?void 0:k[G.CAPTURE])==null||m.call(k,await this.decode(i.data))}catch(p){(C=(w=this.events)==null?void 0:w[G.ERROR])==null||C.call(w,p)}},{returnDetailedScanResult:!0,maxScansPerSecond:a,preferredCamera:o,highlightScanRegion:!0,highlightCodeOutline:!0,onDecodeError:()=>{}}),await this.qrScanner.start()}catch(i){(u=(l=this.events)==null?void 0:l[G.ERROR])==null||u.call(l,i),(f=this.qrScanner)==null||f.stop(),(B=this.rootElement)==null||B.remove()}}async listVideoInputDevices(){return g.listCameras(!0)}_getMainCameraDeviceId(o){var u,f;if(!(o!=null&&o.length))throw new Error("No video input devices available");const a=["back","задня"],l=o.find(B=>{const i=B.label.toLowerCase();return i.includes(a[0])||i.includes(a[1])});return(l==null?void 0:l.id)||((u=o[1])==null?void 0:u.id)||((f=o[0])==null?void 0:f.id)}close(){var o,a,l,u;this.previousScanText=null,(a=(o=this.events)==null?void 0:o[G.CANCEL])==null||a.call(o),(l=this.qrScanner)==null||l.stop(),(u=this.rootElement)==null||u.remove()}on(o,a){this.events[o]=a}off(o){this.events[o]=void 0}};Ce.events=G;let ge=Ce;class Te extends ge{constructor(o){super(o,Lt,ie)}async scan({deviceId:o,maxScansPerSecond:a,isCloseButton:l}={}){var u,f;l===void 0&&(l=!0),(u=this.qrScanner)==null||u.stop(),(f=this.rootElement)==null||f.remove(),new bt({target:this.targetElement,props:{close:this.close.bind(this),isCloseButton:l,scannerElements:ie}}),this.rootElement=document.getElementById(ie.ROOT),await this._initializeScanner(o,a)}}typeof window<"u"&&(window.CredenzaScanner=Te);const Ft=Object.freeze(Object.defineProperty({__proto__:null,createWorker:()=>new Worker(URL.createObjectURL(new Blob([`class x{constructor(a,b){this.width=b;this.height=a.length/b;this.data=a}static createEmpty(a,b){return new x(new Uint8ClampedArray(a*b),a)}get(a,b){return 0>a||a>=this.width||0>b||b>=this.height?!1:!!this.data[b*this.width+a]}set(a,b,c){this.data[b*this.width+a]=c?1:0}setRegion(a,b,c,d,e){for(let f=b;f<b+d;f++)for(let g=a;g<a+c;g++)this.set(g,f,!!e)}}
|
|
7
|
+
class A{constructor(a,b,c){this.width=a;a*=b;if(c&&c.length!==a)throw Error("Wrong buffer size");this.data=c||new Uint8ClampedArray(a)}get(a,b){return this.data[b*this.width+a]}set(a,b,c){this.data[b*this.width+a]=c}}
|
|
8
|
+
class ba{constructor(a){this.bitOffset=this.byteOffset=0;this.bytes=a}readBits(a){if(1>a||32<a||a>this.available())throw Error("Cannot read "+a.toString()+" bits");var b=0;if(0<this.bitOffset){b=8-this.bitOffset;var c=a<b?a:b;b-=c;b=(this.bytes[this.byteOffset]&255>>8-c<<b)>>b;a-=c;this.bitOffset+=c;8===this.bitOffset&&(this.bitOffset=0,this.byteOffset++)}if(0<a){for(;8<=a;)b=b<<8|this.bytes[this.byteOffset]&255,this.byteOffset++,a-=8;0<a&&(c=8-a,b=b<<a|(this.bytes[this.byteOffset]&255>>c<<c)>>c,
|
|
9
|
+
this.bitOffset+=a)}return b}available(){return 8*(this.bytes.length-this.byteOffset)-this.bitOffset}}var B,C=B||(B={});C.Numeric="numeric";C.Alphanumeric="alphanumeric";C.Byte="byte";C.Kanji="kanji";C.ECI="eci";C.StructuredAppend="structuredappend";var D,E=D||(D={});E[E.Terminator=0]="Terminator";E[E.Numeric=1]="Numeric";E[E.Alphanumeric=2]="Alphanumeric";E[E.Byte=4]="Byte";E[E.Kanji=8]="Kanji";E[E.ECI=7]="ECI";E[E.StructuredAppend=3]="StructuredAppend";let F="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:".split("");
|
|
10
|
+
function ca(a,b){let c=[],d="";b=a.readBits([8,16,16][b]);for(let e=0;e<b;e++){let f=a.readBits(8);c.push(f)}try{d+=decodeURIComponent(c.map(e=>\`%\${("0"+e.toString(16)).substr(-2)}\`).join(""))}catch(e){}return{bytes:c,text:d}}
|
|
11
|
+
function da(a,b){a=new ba(a);let c=9>=b?0:26>=b?1:2;for(b={text:"",bytes:[],chunks:[],version:b};4<=a.available();){var d=a.readBits(4);if(d===D.Terminator)return b;if(d===D.ECI)0===a.readBits(1)?b.chunks.push({type:B.ECI,assignmentNumber:a.readBits(7)}):0===a.readBits(1)?b.chunks.push({type:B.ECI,assignmentNumber:a.readBits(14)}):0===a.readBits(1)?b.chunks.push({type:B.ECI,assignmentNumber:a.readBits(21)}):b.chunks.push({type:B.ECI,assignmentNumber:-1});else if(d===D.Numeric){var e=a,f=[];d="";for(var g=
|
|
12
|
+
e.readBits([10,12,14][c]);3<=g;){var h=e.readBits(10);if(1E3<=h)throw Error("Invalid numeric value above 999");var k=Math.floor(h/100),m=Math.floor(h/10)%10;h%=10;f.push(48+k,48+m,48+h);d+=k.toString()+m.toString()+h.toString();g-=3}if(2===g){g=e.readBits(7);if(100<=g)throw Error("Invalid numeric value above 99");e=Math.floor(g/10);g%=10;f.push(48+e,48+g);d+=e.toString()+g.toString()}else if(1===g){e=e.readBits(4);if(10<=e)throw Error("Invalid numeric value above 9");f.push(48+e);d+=e.toString()}b.text+=
|
|
13
|
+
d;b.bytes.push(...f);b.chunks.push({type:B.Numeric,text:d})}else if(d===D.Alphanumeric){e=a;f=[];d="";for(g=e.readBits([9,11,13][c]);2<=g;)m=e.readBits(11),k=Math.floor(m/45),m%=45,f.push(F[k].charCodeAt(0),F[m].charCodeAt(0)),d+=F[k]+F[m],g-=2;1===g&&(e=e.readBits(6),f.push(F[e].charCodeAt(0)),d+=F[e]);b.text+=d;b.bytes.push(...f);b.chunks.push({type:B.Alphanumeric,text:d})}else if(d===D.Byte)d=ca(a,c),b.text+=d.text,b.bytes.push(...d.bytes),b.chunks.push({type:B.Byte,bytes:d.bytes,text:d.text});
|
|
14
|
+
else if(d===D.Kanji){f=a;d=[];e=f.readBits([8,10,12][c]);for(g=0;g<e;g++)k=f.readBits(13),k=Math.floor(k/192)<<8|k%192,k=7936>k?k+33088:k+49472,d.push(k>>8,k&255);f=(new TextDecoder("shift-jis")).decode(Uint8Array.from(d));b.text+=f;b.bytes.push(...d);b.chunks.push({type:B.Kanji,bytes:d,text:f})}else d===D.StructuredAppend&&b.chunks.push({type:B.StructuredAppend,currentSequence:a.readBits(4),totalSequence:a.readBits(4),parity:a.readBits(8)})}if(0===a.available()||0===a.readBits(a.available()))return b}
|
|
15
|
+
class G{constructor(a,b){if(0===b.length)throw Error("No coefficients.");this.field=a;let c=b.length;if(1<c&&0===b[0]){let d=1;for(;d<c&&0===b[d];)d++;if(d===c)this.coefficients=a.zero.coefficients;else for(this.coefficients=new Uint8ClampedArray(c-d),a=0;a<this.coefficients.length;a++)this.coefficients[a]=b[d+a]}else this.coefficients=b}degree(){return this.coefficients.length-1}isZero(){return 0===this.coefficients[0]}getCoefficient(a){return this.coefficients[this.coefficients.length-1-a]}addOrSubtract(a){if(this.isZero())return a;
|
|
16
|
+
if(a.isZero())return this;let b=this.coefficients;a=a.coefficients;b.length>a.length&&([b,a]=[a,b]);let c=new Uint8ClampedArray(a.length),d=a.length-b.length;for(var e=0;e<d;e++)c[e]=a[e];for(e=d;e<a.length;e++)c[e]=b[e-d]^a[e];return new G(this.field,c)}multiply(a){if(0===a)return this.field.zero;if(1===a)return this;let b=this.coefficients.length,c=new Uint8ClampedArray(b);for(let d=0;d<b;d++)c[d]=this.field.multiply(this.coefficients[d],a);return new G(this.field,c)}multiplyPoly(a){if(this.isZero()||
|
|
17
|
+
a.isZero())return this.field.zero;let b=this.coefficients,c=b.length;a=a.coefficients;let d=a.length,e=new Uint8ClampedArray(c+d-1);for(let f=0;f<c;f++){let g=b[f];for(let h=0;h<d;h++)e[f+h]=H(e[f+h],this.field.multiply(g,a[h]))}return new G(this.field,e)}multiplyByMonomial(a,b){if(0>a)throw Error("Invalid degree less than 0");if(0===b)return this.field.zero;let c=this.coefficients.length;a=new Uint8ClampedArray(c+a);for(let d=0;d<c;d++)a[d]=this.field.multiply(this.coefficients[d],b);return new G(this.field,
|
|
18
|
+
a)}evaluateAt(a){let b=0;if(0===a)return this.getCoefficient(0);let c=this.coefficients.length;if(1===a)return this.coefficients.forEach(d=>{b^=d}),b;b=this.coefficients[0];for(let d=1;d<c;d++)b=H(this.field.multiply(a,b),this.coefficients[d]);return b}}function H(a,b){return a^b}
|
|
19
|
+
class ea{constructor(a,b,c){this.primitive=a;this.size=b;this.generatorBase=c;this.expTable=Array(this.size);this.logTable=Array(this.size);a=1;for(b=0;b<this.size;b++)this.expTable[b]=a,a*=2,a>=this.size&&(a=(a^this.primitive)&this.size-1);for(a=0;a<this.size-1;a++)this.logTable[this.expTable[a]]=a;this.zero=new G(this,Uint8ClampedArray.from([0]));this.one=new G(this,Uint8ClampedArray.from([1]))}multiply(a,b){return 0===a||0===b?0:this.expTable[(this.logTable[a]+this.logTable[b])%(this.size-1)]}inverse(a){if(0===
|
|
20
|
+
a)throw Error("Can't invert 0");return this.expTable[this.size-this.logTable[a]-1]}buildMonomial(a,b){if(0>a)throw Error("Invalid monomial degree less than 0");if(0===b)return this.zero;a=new Uint8ClampedArray(a+1);a[0]=b;return new G(this,a)}log(a){if(0===a)throw Error("Can't take log(0)");return this.logTable[a]}exp(a){return this.expTable[a]}}
|
|
21
|
+
function fa(a,b,c,d){b.degree()<c.degree()&&([b,c]=[c,b]);let e=a.zero;for(var f=a.one;c.degree()>=d/2;){var g=b;let h=e;b=c;e=f;if(b.isZero())return null;c=g;f=a.zero;g=b.getCoefficient(b.degree());for(g=a.inverse(g);c.degree()>=b.degree()&&!c.isZero();){let k=c.degree()-b.degree(),m=a.multiply(c.getCoefficient(c.degree()),g);f=f.addOrSubtract(a.buildMonomial(k,m));c=c.addOrSubtract(b.multiplyByMonomial(k,m))}f=f.multiplyPoly(e).addOrSubtract(h);if(c.degree()>=b.degree())return null}d=f.getCoefficient(0);
|
|
22
|
+
if(0===d)return null;a=a.inverse(d);return[f.multiply(a),c.multiply(a)]}
|
|
23
|
+
function ha(a,b){let c=new Uint8ClampedArray(a.length);c.set(a);a=new ea(285,256,0);var d=new G(a,c),e=new Uint8ClampedArray(b),f=!1;for(var g=0;g<b;g++){var h=d.evaluateAt(a.exp(g+a.generatorBase));e[e.length-1-g]=h;0!==h&&(f=!0)}if(!f)return c;d=new G(a,e);d=fa(a,a.buildMonomial(b,1),d,b);if(null===d)return null;b=d[0];g=b.degree();if(1===g)b=[b.getCoefficient(1)];else{e=Array(g);f=0;for(h=1;h<a.size&&f<g;h++)0===b.evaluateAt(h)&&(e[f]=a.inverse(h),f++);b=f!==g?null:e}if(null==b)return null;e=d[1];
|
|
24
|
+
f=b.length;d=Array(f);for(g=0;g<f;g++){h=a.inverse(b[g]);let k=1;for(let m=0;m<f;m++)g!==m&&(k=a.multiply(k,H(1,a.multiply(b[m],h))));d[g]=a.multiply(e.evaluateAt(h),a.inverse(k));0!==a.generatorBase&&(d[g]=a.multiply(d[g],h))}for(e=0;e<b.length;e++){f=c.length-1-a.log(b[e]);if(0>f)return null;c[f]^=d[e]}return c}
|
|
25
|
+
let I=[{infoBits:null,versionNumber:1,alignmentPatternCenters:[],errorCorrectionLevels:[{ecCodewordsPerBlock:7,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:19}]},{ecCodewordsPerBlock:10,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:16}]},{ecCodewordsPerBlock:13,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:13}]},{ecCodewordsPerBlock:17,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:9}]}]},{infoBits:null,versionNumber:2,alignmentPatternCenters:[6,18],errorCorrectionLevels:[{ecCodewordsPerBlock:10,ecBlocks:[{numBlocks:1,
|
|
26
|
+
dataCodewordsPerBlock:34}]},{ecCodewordsPerBlock:16,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:28}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:22}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:16}]}]},{infoBits:null,versionNumber:3,alignmentPatternCenters:[6,22],errorCorrectionLevels:[{ecCodewordsPerBlock:15,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:55}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:44}]},{ecCodewordsPerBlock:18,
|
|
27
|
+
ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:17}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:13}]}]},{infoBits:null,versionNumber:4,alignmentPatternCenters:[6,26],errorCorrectionLevels:[{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:80}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:32}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:24}]},{ecCodewordsPerBlock:16,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:9}]}]},
|
|
28
|
+
{infoBits:null,versionNumber:5,alignmentPatternCenters:[6,30],errorCorrectionLevels:[{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:108}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:43}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:15},{numBlocks:2,dataCodewordsPerBlock:16}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:11},{numBlocks:2,dataCodewordsPerBlock:12}]}]},{infoBits:null,versionNumber:6,alignmentPatternCenters:[6,
|
|
29
|
+
34],errorCorrectionLevels:[{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:68}]},{ecCodewordsPerBlock:16,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:27}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:19}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:15}]}]},{infoBits:31892,versionNumber:7,alignmentPatternCenters:[6,22,38],errorCorrectionLevels:[{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:78}]},{ecCodewordsPerBlock:18,
|
|
30
|
+
ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:31}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:14},{numBlocks:4,dataCodewordsPerBlock:15}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:13},{numBlocks:1,dataCodewordsPerBlock:14}]}]},{infoBits:34236,versionNumber:8,alignmentPatternCenters:[6,24,42],errorCorrectionLevels:[{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:97}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:38},
|
|
31
|
+
{numBlocks:2,dataCodewordsPerBlock:39}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:18},{numBlocks:2,dataCodewordsPerBlock:19}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:14},{numBlocks:2,dataCodewordsPerBlock:15}]}]},{infoBits:39577,versionNumber:9,alignmentPatternCenters:[6,26,46],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:36},
|
|
32
|
+
{numBlocks:2,dataCodewordsPerBlock:37}]},{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:16},{numBlocks:4,dataCodewordsPerBlock:17}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:12},{numBlocks:4,dataCodewordsPerBlock:13}]}]},{infoBits:42195,versionNumber:10,alignmentPatternCenters:[6,28,50],errorCorrectionLevels:[{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:68},{numBlocks:2,dataCodewordsPerBlock:69}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,
|
|
33
|
+
dataCodewordsPerBlock:43},{numBlocks:1,dataCodewordsPerBlock:44}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:19},{numBlocks:2,dataCodewordsPerBlock:20}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:15},{numBlocks:2,dataCodewordsPerBlock:16}]}]},{infoBits:48118,versionNumber:11,alignmentPatternCenters:[6,30,54],errorCorrectionLevels:[{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:81}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:1,
|
|
34
|
+
dataCodewordsPerBlock:50},{numBlocks:4,dataCodewordsPerBlock:51}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:22},{numBlocks:4,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:12},{numBlocks:8,dataCodewordsPerBlock:13}]}]},{infoBits:51042,versionNumber:12,alignmentPatternCenters:[6,32,58],errorCorrectionLevels:[{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:92},{numBlocks:2,dataCodewordsPerBlock:93}]},
|
|
35
|
+
{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:36},{numBlocks:2,dataCodewordsPerBlock:37}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:20},{numBlocks:6,dataCodewordsPerBlock:21}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:14},{numBlocks:4,dataCodewordsPerBlock:15}]}]},{infoBits:55367,versionNumber:13,alignmentPatternCenters:[6,34,62],errorCorrectionLevels:[{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:107}]},
|
|
36
|
+
{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:37},{numBlocks:1,dataCodewordsPerBlock:38}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:20},{numBlocks:4,dataCodewordsPerBlock:21}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:11},{numBlocks:4,dataCodewordsPerBlock:12}]}]},{infoBits:58893,versionNumber:14,alignmentPatternCenters:[6,26,46,66],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:115},
|
|
37
|
+
{numBlocks:1,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:40},{numBlocks:5,dataCodewordsPerBlock:41}]},{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:16},{numBlocks:5,dataCodewordsPerBlock:17}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:12},{numBlocks:5,dataCodewordsPerBlock:13}]}]},{infoBits:63784,versionNumber:15,alignmentPatternCenters:[6,26,48,70],errorCorrectionLevels:[{ecCodewordsPerBlock:22,
|
|
38
|
+
ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:87},{numBlocks:1,dataCodewordsPerBlock:88}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:41},{numBlocks:5,dataCodewordsPerBlock:42}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:24},{numBlocks:7,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:12},{numBlocks:7,dataCodewordsPerBlock:13}]}]},{infoBits:68472,versionNumber:16,alignmentPatternCenters:[6,26,50,
|
|
39
|
+
74],errorCorrectionLevels:[{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:98},{numBlocks:1,dataCodewordsPerBlock:99}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:45},{numBlocks:3,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:19},{numBlocks:2,dataCodewordsPerBlock:20}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:15},{numBlocks:13,dataCodewordsPerBlock:16}]}]},{infoBits:70749,
|
|
40
|
+
versionNumber:17,alignmentPatternCenters:[6,30,54,78],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:107},{numBlocks:5,dataCodewordsPerBlock:108}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:46},{numBlocks:1,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:22},{numBlocks:15,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:14},{numBlocks:17,
|
|
41
|
+
dataCodewordsPerBlock:15}]}]},{infoBits:76311,versionNumber:18,alignmentPatternCenters:[6,30,56,82],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:120},{numBlocks:1,dataCodewordsPerBlock:121}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:9,dataCodewordsPerBlock:43},{numBlocks:4,dataCodewordsPerBlock:44}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:22},{numBlocks:1,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,
|
|
42
|
+
dataCodewordsPerBlock:14},{numBlocks:19,dataCodewordsPerBlock:15}]}]},{infoBits:79154,versionNumber:19,alignmentPatternCenters:[6,30,58,86],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:113},{numBlocks:4,dataCodewordsPerBlock:114}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:44},{numBlocks:11,dataCodewordsPerBlock:45}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:21},{numBlocks:4,dataCodewordsPerBlock:22}]},
|
|
43
|
+
{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:9,dataCodewordsPerBlock:13},{numBlocks:16,dataCodewordsPerBlock:14}]}]},{infoBits:84390,versionNumber:20,alignmentPatternCenters:[6,34,62,90],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:107},{numBlocks:5,dataCodewordsPerBlock:108}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:41},{numBlocks:13,dataCodewordsPerBlock:42}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:24},
|
|
44
|
+
{numBlocks:5,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:15},{numBlocks:10,dataCodewordsPerBlock:16}]}]},{infoBits:87683,versionNumber:21,alignmentPatternCenters:[6,28,50,72,94],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:116},{numBlocks:4,dataCodewordsPerBlock:117}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:42}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:22},
|
|
45
|
+
{numBlocks:6,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:16},{numBlocks:6,dataCodewordsPerBlock:17}]}]},{infoBits:92361,versionNumber:22,alignmentPatternCenters:[6,26,50,74,98],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:111},{numBlocks:7,dataCodewordsPerBlock:112}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:24},
|
|
46
|
+
{numBlocks:16,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:34,dataCodewordsPerBlock:13}]}]},{infoBits:96236,versionNumber:23,alignmentPatternCenters:[6,30,54,74,102],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:121},{numBlocks:5,dataCodewordsPerBlock:122}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:47},{numBlocks:14,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:24},
|
|
47
|
+
{numBlocks:14,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:16,dataCodewordsPerBlock:15},{numBlocks:14,dataCodewordsPerBlock:16}]}]},{infoBits:102084,versionNumber:24,alignmentPatternCenters:[6,28,54,80,106],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:117},{numBlocks:4,dataCodewordsPerBlock:118}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:45},{numBlocks:14,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,
|
|
48
|
+
ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:24},{numBlocks:16,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:30,dataCodewordsPerBlock:16},{numBlocks:2,dataCodewordsPerBlock:17}]}]},{infoBits:102881,versionNumber:25,alignmentPatternCenters:[6,32,58,84,110],errorCorrectionLevels:[{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:106},{numBlocks:4,dataCodewordsPerBlock:107}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:47},{numBlocks:13,
|
|
49
|
+
dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:24},{numBlocks:22,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:22,dataCodewordsPerBlock:15},{numBlocks:13,dataCodewordsPerBlock:16}]}]},{infoBits:110507,versionNumber:26,alignmentPatternCenters:[6,30,58,86,114],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:114},{numBlocks:2,dataCodewordsPerBlock:115}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:19,
|
|
50
|
+
dataCodewordsPerBlock:46},{numBlocks:4,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:28,dataCodewordsPerBlock:22},{numBlocks:6,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:33,dataCodewordsPerBlock:16},{numBlocks:4,dataCodewordsPerBlock:17}]}]},{infoBits:110734,versionNumber:27,alignmentPatternCenters:[6,34,62,90,118],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:122},{numBlocks:4,dataCodewordsPerBlock:123}]},
|
|
51
|
+
{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:22,dataCodewordsPerBlock:45},{numBlocks:3,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:23},{numBlocks:26,dataCodewordsPerBlock:24}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:15},{numBlocks:28,dataCodewordsPerBlock:16}]}]},{infoBits:117786,versionNumber:28,alignmentPatternCenters:[6,26,50,74,98,122],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:117},
|
|
52
|
+
{numBlocks:10,dataCodewordsPerBlock:118}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:45},{numBlocks:23,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:24},{numBlocks:31,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:15},{numBlocks:31,dataCodewordsPerBlock:16}]}]},{infoBits:119615,versionNumber:29,alignmentPatternCenters:[6,30,54,78,102,126],errorCorrectionLevels:[{ecCodewordsPerBlock:30,
|
|
53
|
+
ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:116},{numBlocks:7,dataCodewordsPerBlock:117}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:21,dataCodewordsPerBlock:45},{numBlocks:7,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:23},{numBlocks:37,dataCodewordsPerBlock:24}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:15},{numBlocks:26,dataCodewordsPerBlock:16}]}]},{infoBits:126325,versionNumber:30,alignmentPatternCenters:[6,
|
|
54
|
+
26,52,78,104,130],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:115},{numBlocks:10,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:47},{numBlocks:10,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:24},{numBlocks:25,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:23,dataCodewordsPerBlock:15},{numBlocks:25,dataCodewordsPerBlock:16}]}]},
|
|
55
|
+
{infoBits:127568,versionNumber:31,alignmentPatternCenters:[6,30,56,82,108,134],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:13,dataCodewordsPerBlock:115},{numBlocks:3,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:46},{numBlocks:29,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:42,dataCodewordsPerBlock:24},{numBlocks:1,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:23,dataCodewordsPerBlock:15},
|
|
56
|
+
{numBlocks:28,dataCodewordsPerBlock:16}]}]},{infoBits:133589,versionNumber:32,alignmentPatternCenters:[6,34,60,86,112,138],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:115}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:46},{numBlocks:23,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:24},{numBlocks:35,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,
|
|
57
|
+
dataCodewordsPerBlock:15},{numBlocks:35,dataCodewordsPerBlock:16}]}]},{infoBits:136944,versionNumber:33,alignmentPatternCenters:[6,30,58,86,114,142],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:115},{numBlocks:1,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:14,dataCodewordsPerBlock:46},{numBlocks:21,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:29,dataCodewordsPerBlock:24},{numBlocks:19,dataCodewordsPerBlock:25}]},
|
|
58
|
+
{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:15},{numBlocks:46,dataCodewordsPerBlock:16}]}]},{infoBits:141498,versionNumber:34,alignmentPatternCenters:[6,34,62,90,118,146],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:13,dataCodewordsPerBlock:115},{numBlocks:6,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:14,dataCodewordsPerBlock:46},{numBlocks:23,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:44,
|
|
59
|
+
dataCodewordsPerBlock:24},{numBlocks:7,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:59,dataCodewordsPerBlock:16},{numBlocks:1,dataCodewordsPerBlock:17}]}]},{infoBits:145311,versionNumber:35,alignmentPatternCenters:[6,30,54,78,102,126,150],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:121},{numBlocks:7,dataCodewordsPerBlock:122}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:47},{numBlocks:26,dataCodewordsPerBlock:48}]},
|
|
60
|
+
{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:39,dataCodewordsPerBlock:24},{numBlocks:14,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:22,dataCodewordsPerBlock:15},{numBlocks:41,dataCodewordsPerBlock:16}]}]},{infoBits:150283,versionNumber:36,alignmentPatternCenters:[6,24,50,76,102,128,154],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:121},{numBlocks:14,dataCodewordsPerBlock:122}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:6,
|
|
61
|
+
dataCodewordsPerBlock:47},{numBlocks:34,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:46,dataCodewordsPerBlock:24},{numBlocks:10,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:15},{numBlocks:64,dataCodewordsPerBlock:16}]}]},{infoBits:152622,versionNumber:37,alignmentPatternCenters:[6,28,54,80,106,132,158],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:122},{numBlocks:4,dataCodewordsPerBlock:123}]},
|
|
62
|
+
{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:29,dataCodewordsPerBlock:46},{numBlocks:14,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:49,dataCodewordsPerBlock:24},{numBlocks:10,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:24,dataCodewordsPerBlock:15},{numBlocks:46,dataCodewordsPerBlock:16}]}]},{infoBits:158308,versionNumber:38,alignmentPatternCenters:[6,32,58,84,110,136,162],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:4,
|
|
63
|
+
dataCodewordsPerBlock:122},{numBlocks:18,dataCodewordsPerBlock:123}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:13,dataCodewordsPerBlock:46},{numBlocks:32,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:48,dataCodewordsPerBlock:24},{numBlocks:14,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:42,dataCodewordsPerBlock:15},{numBlocks:32,dataCodewordsPerBlock:16}]}]},{infoBits:161089,versionNumber:39,alignmentPatternCenters:[6,26,54,82,110,138,166],
|
|
64
|
+
errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:20,dataCodewordsPerBlock:117},{numBlocks:4,dataCodewordsPerBlock:118}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:40,dataCodewordsPerBlock:47},{numBlocks:7,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:43,dataCodewordsPerBlock:24},{numBlocks:22,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:15},{numBlocks:67,dataCodewordsPerBlock:16}]}]},{infoBits:167017,
|
|
65
|
+
versionNumber:40,alignmentPatternCenters:[6,30,58,86,114,142,170],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:118},{numBlocks:6,dataCodewordsPerBlock:119}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:18,dataCodewordsPerBlock:47},{numBlocks:31,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:34,dataCodewordsPerBlock:24},{numBlocks:34,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:20,dataCodewordsPerBlock:15},
|
|
66
|
+
{numBlocks:61,dataCodewordsPerBlock:16}]}]}];function J(a,b){a^=b;for(b=0;a;)b++,a&=a-1;return b}function K(a,b){return b<<1|a}
|
|
67
|
+
let ia=[{bits:21522,formatInfo:{errorCorrectionLevel:1,dataMask:0}},{bits:20773,formatInfo:{errorCorrectionLevel:1,dataMask:1}},{bits:24188,formatInfo:{errorCorrectionLevel:1,dataMask:2}},{bits:23371,formatInfo:{errorCorrectionLevel:1,dataMask:3}},{bits:17913,formatInfo:{errorCorrectionLevel:1,dataMask:4}},{bits:16590,formatInfo:{errorCorrectionLevel:1,dataMask:5}},{bits:20375,formatInfo:{errorCorrectionLevel:1,dataMask:6}},{bits:19104,formatInfo:{errorCorrectionLevel:1,dataMask:7}},{bits:30660,formatInfo:{errorCorrectionLevel:0,
|
|
68
|
+
dataMask:0}},{bits:29427,formatInfo:{errorCorrectionLevel:0,dataMask:1}},{bits:32170,formatInfo:{errorCorrectionLevel:0,dataMask:2}},{bits:30877,formatInfo:{errorCorrectionLevel:0,dataMask:3}},{bits:26159,formatInfo:{errorCorrectionLevel:0,dataMask:4}},{bits:25368,formatInfo:{errorCorrectionLevel:0,dataMask:5}},{bits:27713,formatInfo:{errorCorrectionLevel:0,dataMask:6}},{bits:26998,formatInfo:{errorCorrectionLevel:0,dataMask:7}},{bits:5769,formatInfo:{errorCorrectionLevel:3,dataMask:0}},{bits:5054,
|
|
69
|
+
formatInfo:{errorCorrectionLevel:3,dataMask:1}},{bits:7399,formatInfo:{errorCorrectionLevel:3,dataMask:2}},{bits:6608,formatInfo:{errorCorrectionLevel:3,dataMask:3}},{bits:1890,formatInfo:{errorCorrectionLevel:3,dataMask:4}},{bits:597,formatInfo:{errorCorrectionLevel:3,dataMask:5}},{bits:3340,formatInfo:{errorCorrectionLevel:3,dataMask:6}},{bits:2107,formatInfo:{errorCorrectionLevel:3,dataMask:7}},{bits:13663,formatInfo:{errorCorrectionLevel:2,dataMask:0}},{bits:12392,formatInfo:{errorCorrectionLevel:2,
|
|
70
|
+
dataMask:1}},{bits:16177,formatInfo:{errorCorrectionLevel:2,dataMask:2}},{bits:14854,formatInfo:{errorCorrectionLevel:2,dataMask:3}},{bits:9396,formatInfo:{errorCorrectionLevel:2,dataMask:4}},{bits:8579,formatInfo:{errorCorrectionLevel:2,dataMask:5}},{bits:11994,formatInfo:{errorCorrectionLevel:2,dataMask:6}},{bits:11245,formatInfo:{errorCorrectionLevel:2,dataMask:7}}],ja=[a=>0===(a.y+a.x)%2,a=>0===a.y%2,a=>0===a.x%3,a=>0===(a.y+a.x)%3,a=>0===(Math.floor(a.y/2)+Math.floor(a.x/3))%2,a=>0===a.x*a.y%
|
|
71
|
+
2+a.x*a.y%3,a=>0===(a.y*a.x%2+a.y*a.x%3)%2,a=>0===((a.y+a.x)%2+a.y*a.x%3)%2];
|
|
72
|
+
function ka(a,b,c){c=ja[c.dataMask];let d=a.height;var e=17+4*b.versionNumber;let f=x.createEmpty(e,e);f.setRegion(0,0,9,9,!0);f.setRegion(e-8,0,8,9,!0);f.setRegion(0,e-8,9,8,!0);for(var g of b.alignmentPatternCenters)for(var h of b.alignmentPatternCenters)6===g&&6===h||6===g&&h===e-7||g===e-7&&6===h||f.setRegion(g-2,h-2,5,5,!0);f.setRegion(6,9,1,e-17,!0);f.setRegion(9,6,e-17,1,!0);6<b.versionNumber&&(f.setRegion(e-11,0,3,6,!0),f.setRegion(0,e-11,6,3,!0));b=[];h=g=0;e=!0;for(let k=d-1;0<k;k-=2){6===
|
|
73
|
+
k&&k--;for(let m=0;m<d;m++){let l=e?d-1-m:m;for(let n=0;2>n;n++){let q=k-n;if(!f.get(q,l)){h++;let r=a.get(q,l);c({y:l,x:q})&&(r=!r);g=g<<1|r;8===h&&(b.push(g),g=h=0)}}}e=!e}return b}
|
|
74
|
+
function la(a){var b=a.height,c=Math.floor((b-17)/4);if(6>=c)return I[c-1];c=0;for(var d=5;0<=d;d--)for(var e=b-9;e>=b-11;e--)c=K(a.get(e,d),c);d=0;for(e=5;0<=e;e--)for(let g=b-9;g>=b-11;g--)d=K(a.get(e,g),d);a=Infinity;let f;for(let g of I){if(g.infoBits===c||g.infoBits===d)return g;b=J(c,g.infoBits);b<a&&(f=g,a=b);b=J(d,g.infoBits);b<a&&(f=g,a=b)}if(3>=a)return f}
|
|
75
|
+
function ma(a){let b=0;for(var c=0;8>=c;c++)6!==c&&(b=K(a.get(c,8),b));for(c=7;0<=c;c--)6!==c&&(b=K(a.get(8,c),b));var d=a.height;c=0;for(var e=d-1;e>=d-7;e--)c=K(a.get(8,e),c);for(e=d-8;e<d;e++)c=K(a.get(e,8),c);a=Infinity;d=null;for(let {bits:f,formatInfo:g}of ia){if(f===b||f===c)return g;e=J(b,f);e<a&&(d=g,a=e);b!==c&&(e=J(c,f),e<a&&(d=g,a=e))}return 3>=a?d:null}
|
|
76
|
+
function na(a,b,c){let d=b.errorCorrectionLevels[c],e=[],f=0;d.ecBlocks.forEach(h=>{for(let k=0;k<h.numBlocks;k++)e.push({numDataCodewords:h.dataCodewordsPerBlock,codewords:[]}),f+=h.dataCodewordsPerBlock+d.ecCodewordsPerBlock});if(a.length<f)return null;a=a.slice(0,f);b=d.ecBlocks[0].dataCodewordsPerBlock;for(c=0;c<b;c++)for(var g of e)g.codewords.push(a.shift());if(1<d.ecBlocks.length)for(g=d.ecBlocks[0].numBlocks,b=d.ecBlocks[1].numBlocks,c=0;c<b;c++)e[g+c].codewords.push(a.shift());for(;0<a.length;)for(let h of e)h.codewords.push(a.shift());
|
|
77
|
+
return e}function L(a){let b=la(a);if(!b)return null;var c=ma(a);if(!c)return null;a=ka(a,b,c);var d=na(a,b,c.errorCorrectionLevel);if(!d)return null;c=d.reduce((e,f)=>e+f.numDataCodewords,0);c=new Uint8ClampedArray(c);a=0;for(let e of d){d=ha(e.codewords,e.codewords.length-e.numDataCodewords);if(!d)return null;for(let f=0;f<e.numDataCodewords;f++)c[a++]=d[f]}try{return da(c,b.versionNumber)}catch(e){return null}}
|
|
78
|
+
function M(a,b,c,d){var e=a.x-b.x+c.x-d.x;let f=a.y-b.y+c.y-d.y;if(0===e&&0===f)return{a11:b.x-a.x,a12:b.y-a.y,a13:0,a21:c.x-b.x,a22:c.y-b.y,a23:0,a31:a.x,a32:a.y,a33:1};let g=b.x-c.x;var h=d.x-c.x;let k=b.y-c.y,m=d.y-c.y;c=g*m-h*k;h=(e*m-h*f)/c;e=(g*f-e*k)/c;return{a11:b.x-a.x+h*b.x,a12:b.y-a.y+h*b.y,a13:h,a21:d.x-a.x+e*d.x,a22:d.y-a.y+e*d.y,a23:e,a31:a.x,a32:a.y,a33:1}}
|
|
79
|
+
function oa(a,b,c,d){a=M(a,b,c,d);return{a11:a.a22*a.a33-a.a23*a.a32,a12:a.a13*a.a32-a.a12*a.a33,a13:a.a12*a.a23-a.a13*a.a22,a21:a.a23*a.a31-a.a21*a.a33,a22:a.a11*a.a33-a.a13*a.a31,a23:a.a13*a.a21-a.a11*a.a23,a31:a.a21*a.a32-a.a22*a.a31,a32:a.a12*a.a31-a.a11*a.a32,a33:a.a11*a.a22-a.a12*a.a21}}
|
|
80
|
+
function pa(a,b){var c=oa({x:3.5,y:3.5},{x:b.dimension-3.5,y:3.5},{x:b.dimension-6.5,y:b.dimension-6.5},{x:3.5,y:b.dimension-3.5}),d=M(b.topLeft,b.topRight,b.alignmentPattern,b.bottomLeft),e=d.a11*c.a11+d.a21*c.a12+d.a31*c.a13,f=d.a12*c.a11+d.a22*c.a12+d.a32*c.a13,g=d.a13*c.a11+d.a23*c.a12+d.a33*c.a13,h=d.a11*c.a21+d.a21*c.a22+d.a31*c.a23,k=d.a12*c.a21+d.a22*c.a22+d.a32*c.a23,m=d.a13*c.a21+d.a23*c.a22+d.a33*c.a23,l=d.a11*c.a31+d.a21*c.a32+d.a31*c.a33,n=d.a12*c.a31+d.a22*c.a32+d.a32*c.a33,q=d.a13*
|
|
81
|
+
c.a31+d.a23*c.a32+d.a33*c.a33;c=x.createEmpty(b.dimension,b.dimension);d=(r,u)=>{const p=g*r+m*u+q;return{x:(e*r+h*u+l)/p,y:(f*r+k*u+n)/p}};for(let r=0;r<b.dimension;r++)for(let u=0;u<b.dimension;u++){let p=d(u+.5,r+.5);c.set(u,r,a.get(Math.floor(p.x),Math.floor(p.y)))}return{matrix:c,mappingFunction:d}}let N=(a,b)=>Math.sqrt(Math.pow(b.x-a.x,2)+Math.pow(b.y-a.y,2));function O(a){return a.reduce((b,c)=>b+c)}
|
|
82
|
+
function qa(a,b,c){let d=N(a,b),e=N(b,c),f=N(a,c),g,h,k;e>=d&&e>=f?[g,h,k]=[b,a,c]:f>=e&&f>=d?[g,h,k]=[a,b,c]:[g,h,k]=[a,c,b];0>(k.x-h.x)*(g.y-h.y)-(k.y-h.y)*(g.x-h.x)&&([g,k]=[k,g]);return{bottomLeft:g,topLeft:h,topRight:k}}
|
|
83
|
+
function ra(a,b,c,d){d=(O(P(a,c,d,5))/7+O(P(a,b,d,5))/7+O(P(c,a,d,5))/7+O(P(b,a,d,5))/7)/4;if(1>d)throw Error("Invalid module size");b=Math.round(N(a,b)/d);a=Math.round(N(a,c)/d);a=Math.floor((b+a)/2)+7;switch(a%4){case 0:a++;break;case 2:a--}return{dimension:a,moduleSize:d}}
|
|
84
|
+
function Q(a,b,c,d){let e=[{x:Math.floor(a.x),y:Math.floor(a.y)}];var f=Math.abs(b.y-a.y)>Math.abs(b.x-a.x);if(f){var g=Math.floor(a.y);var h=Math.floor(a.x);a=Math.floor(b.y);b=Math.floor(b.x)}else g=Math.floor(a.x),h=Math.floor(a.y),a=Math.floor(b.x),b=Math.floor(b.y);let k=Math.abs(a-g),m=Math.abs(b-h),l=Math.floor(-k/2),n=g<a?1:-1,q=h<b?1:-1,r=!0;for(let u=g,p=h;u!==a+n;u+=n){g=f?p:u;h=f?u:p;if(c.get(g,h)!==r&&(r=!r,e.push({x:g,y:h}),e.length===d+1))break;l+=m;if(0<l){if(p===b)break;p+=q;l-=k}}c=
|
|
85
|
+
[];for(f=0;f<d;f++)e[f]&&e[f+1]?c.push(N(e[f],e[f+1])):c.push(0);return c}function P(a,b,c,d){let e=b.y-a.y,f=b.x-a.x;b=Q(a,b,c,Math.ceil(d/2));a=Q(a,{x:a.x-f,y:a.y-e},c,Math.ceil(d/2));c=b.shift()+a.shift()-1;return a.concat(c).concat(...b)}function R(a,b){let c=O(a)/O(b),d=0;b.forEach((e,f)=>{d+=Math.pow(a[f]-e*c,2)});return{averageSize:c,error:d}}
|
|
86
|
+
function S(a,b,c){try{let d=P(a,{x:-1,y:a.y},c,b.length),e=P(a,{x:a.x,y:-1},c,b.length),f=P(a,{x:Math.max(0,a.x-a.y)-1,y:Math.max(0,a.y-a.x)-1},c,b.length),g=P(a,{x:Math.min(c.width,a.x+a.y)+1,y:Math.min(c.height,a.y+a.x)+1},c,b.length),h=R(d,b),k=R(e,b),m=R(f,b),l=R(g,b),n=(h.averageSize+k.averageSize+m.averageSize+l.averageSize)/4;return Math.sqrt(h.error*h.error+k.error*k.error+m.error*m.error+l.error*l.error)+(Math.pow(h.averageSize-n,2)+Math.pow(k.averageSize-n,2)+Math.pow(m.averageSize-n,2)+
|
|
87
|
+
Math.pow(l.averageSize-n,2))/n}catch(d){return Infinity}}function T(a,b){for(var c=Math.round(b.x);a.get(c,Math.round(b.y));)c--;for(var d=Math.round(b.x);a.get(d,Math.round(b.y));)d++;c=(c+d)/2;for(d=Math.round(b.y);a.get(Math.round(c),d);)d--;for(b=Math.round(b.y);a.get(Math.round(c),b);)b++;return{x:c,y:(d+b)/2}}
|
|
88
|
+
function sa(a){var b=[],c=[];let d=[];var e=[];for(let p=0;p<=a.height;p++){var f=0,g=!1;let t=[0,0,0,0,0];for(let v=-1;v<=a.width;v++){var h=a.get(v,p);if(h===g)f++;else{t=[t[1],t[2],t[3],t[4],f];f=1;g=h;var k=O(t)/7;k=Math.abs(t[0]-k)<k&&Math.abs(t[1]-k)<k&&Math.abs(t[2]-3*k)<3*k&&Math.abs(t[3]-k)<k&&Math.abs(t[4]-k)<k&&!h;var m=O(t.slice(-3))/3;h=Math.abs(t[2]-m)<m&&Math.abs(t[3]-m)<m&&Math.abs(t[4]-m)<m&&h;if(k){let z=v-t[3]-t[4],y=z-t[2];k={startX:y,endX:z,y:p};m=c.filter(w=>y>=w.bottom.startX&&
|
|
89
|
+
y<=w.bottom.endX||z>=w.bottom.startX&&y<=w.bottom.endX||y<=w.bottom.startX&&z>=w.bottom.endX&&1.5>t[2]/(w.bottom.endX-w.bottom.startX)&&.5<t[2]/(w.bottom.endX-w.bottom.startX));0<m.length?m[0].bottom=k:c.push({top:k,bottom:k})}if(h){let z=v-t[4],y=z-t[3];h={startX:y,y:p,endX:z};k=e.filter(w=>y>=w.bottom.startX&&y<=w.bottom.endX||z>=w.bottom.startX&&y<=w.bottom.endX||y<=w.bottom.startX&&z>=w.bottom.endX&&1.5>t[2]/(w.bottom.endX-w.bottom.startX)&&.5<t[2]/(w.bottom.endX-w.bottom.startX));0<k.length?
|
|
90
|
+
k[0].bottom=h:e.push({top:h,bottom:h})}}}b.push(...c.filter(v=>v.bottom.y!==p&&2<=v.bottom.y-v.top.y));c=c.filter(v=>v.bottom.y===p);d.push(...e.filter(v=>v.bottom.y!==p));e=e.filter(v=>v.bottom.y===p)}b.push(...c.filter(p=>2<=p.bottom.y-p.top.y));d.push(...e);c=[];for(var l of b)2>l.bottom.y-l.top.y||(b=(l.top.startX+l.top.endX+l.bottom.startX+l.bottom.endX)/4,e=(l.top.y+l.bottom.y+1)/2,a.get(Math.round(b),Math.round(e))&&(f=[l.top.endX-l.top.startX,l.bottom.endX-l.bottom.startX,l.bottom.y-l.top.y+
|
|
91
|
+
1],f=O(f)/f.length,g=S({x:Math.round(b),y:Math.round(e)},[1,1,3,1,1],a),c.push({score:g,x:b,y:e,size:f})));if(3>c.length)return null;c.sort((p,t)=>p.score-t.score);l=[];for(b=0;b<Math.min(c.length,5);++b){e=c[b];f=[];for(var n of c)n!==e&&f.push(Object.assign(Object.assign({},n),{score:n.score+Math.pow(n.size-e.size,2)/e.size}));f.sort((p,t)=>p.score-t.score);l.push({points:[e,f[0],f[1]],score:e.score+f[0].score+f[1].score})}l.sort((p,t)=>p.score-t.score);let {topRight:q,topLeft:r,bottomLeft:u}=qa(...l[0].points);
|
|
92
|
+
l=U(a,d,q,r,u);n=[];l&&n.push({alignmentPattern:{x:l.alignmentPattern.x,y:l.alignmentPattern.y},bottomLeft:{x:u.x,y:u.y},dimension:l.dimension,topLeft:{x:r.x,y:r.y},topRight:{x:q.x,y:q.y}});l=T(a,q);b=T(a,r);c=T(a,u);(a=U(a,d,l,b,c))&&n.push({alignmentPattern:{x:a.alignmentPattern.x,y:a.alignmentPattern.y},bottomLeft:{x:c.x,y:c.y},topLeft:{x:b.x,y:b.y},topRight:{x:l.x,y:l.y},dimension:a.dimension});return 0===n.length?null:n}
|
|
93
|
+
function U(a,b,c,d,e){let f,g;try{({dimension:f,moduleSize:g}=ra(d,c,e,a))}catch(l){return null}var h=c.x-d.x+e.x,k=c.y-d.y+e.y;c=(N(d,e)+N(d,c))/2/g;e=1-3/c;let m={x:d.x+e*(h-d.x),y:d.y+e*(k-d.y)};b=b.map(l=>{const n=(l.top.startX+l.top.endX+l.bottom.startX+l.bottom.endX)/4;l=(l.top.y+l.bottom.y+1)/2;if(a.get(Math.floor(n),Math.floor(l))){var q=S({x:Math.floor(n),y:Math.floor(l)},[1,1,1],a)+N({x:n,y:l},m);return{x:n,y:l,score:q}}}).filter(l=>!!l).sort((l,n)=>l.score-n.score);return{alignmentPattern:15<=
|
|
94
|
+
c&&b.length?b[0]:m,dimension:f}}
|
|
95
|
+
function V(a){var b=sa(a);if(!b)return null;for(let e of b){b=pa(a,e);var c=b.matrix;if(null==c)c=null;else{var d=L(c);if(d)c=d;else{for(d=0;d<c.width;d++)for(let f=d+1;f<c.height;f++)c.get(d,f)!==c.get(f,d)&&(c.set(d,f,!c.get(d,f)),c.set(f,d,!c.get(f,d)));c=L(c)}}if(c)return{binaryData:c.bytes,data:c.text,chunks:c.chunks,version:c.version,location:{topRightCorner:b.mappingFunction(e.dimension,0),topLeftCorner:b.mappingFunction(0,0),bottomRightCorner:b.mappingFunction(e.dimension,e.dimension),bottomLeftCorner:b.mappingFunction(0,
|
|
96
|
+
e.dimension),topRightFinderPattern:e.topRight,topLeftFinderPattern:e.topLeft,bottomLeftFinderPattern:e.bottomLeft,bottomRightAlignmentPattern:e.alignmentPattern},matrix:b.matrix}}return null}let ta={inversionAttempts:"attemptBoth",greyScaleWeights:{red:.2126,green:.7152,blue:.0722,useIntegerApproximation:!1},canOverwriteImage:!0};function W(a,b){Object.keys(b).forEach(c=>{a[c]=b[c]})}
|
|
97
|
+
function X(a,b,c,d={}){let e=Object.create(null);W(e,ta);W(e,d);d="onlyInvert"===e.inversionAttempts||"invertFirst"===e.inversionAttempts;var f="attemptBoth"===e.inversionAttempts||d;var g=e.greyScaleWeights,h=e.canOverwriteImage,k=b*c;if(a.length!==4*k)throw Error("Malformed data passed to binarizer.");var m=0;if(h){var l=new Uint8ClampedArray(a.buffer,m,k);m+=k}l=new A(b,c,l);if(g.useIntegerApproximation)for(var n=0;n<c;n++)for(var q=0;q<b;q++){var r=4*(n*b+q);l.set(q,n,g.red*a[r]+g.green*a[r+1]+
|
|
98
|
+
g.blue*a[r+2]+128>>8)}else for(n=0;n<c;n++)for(q=0;q<b;q++)r=4*(n*b+q),l.set(q,n,g.red*a[r]+g.green*a[r+1]+g.blue*a[r+2]);g=Math.ceil(b/8);n=Math.ceil(c/8);q=g*n;if(h){var u=new Uint8ClampedArray(a.buffer,m,q);m+=q}u=new A(g,n,u);for(q=0;q<n;q++)for(r=0;r<g;r++){var p=Infinity,t=0;for(var v=0;8>v;v++)for(let w=0;8>w;w++){let aa=l.get(8*r+w,8*q+v);p=Math.min(p,aa);t=Math.max(t,aa)}v=(p+t)/2;v=Math.min(255,1.11*v);24>=t-p&&(v=p/2,0<q&&0<r&&(t=(u.get(r,q-1)+2*u.get(r-1,q)+u.get(r-1,q-1))/4,p<t&&(v=t)));
|
|
99
|
+
u.set(r,q,v)}h?(q=new Uint8ClampedArray(a.buffer,m,k),m+=k,q=new x(q,b)):q=x.createEmpty(b,c);r=null;f&&(h?(a=new Uint8ClampedArray(a.buffer,m,k),r=new x(a,b)):r=x.createEmpty(b,c));for(b=0;b<n;b++)for(a=0;a<g;a++){c=g-3;c=2>a?2:a>c?c:a;h=n-3;h=2>b?2:b>h?h:b;k=0;for(m=-2;2>=m;m++)for(p=-2;2>=p;p++)k+=u.get(c+m,h+p);c=k/25;for(h=0;8>h;h++)for(k=0;8>k;k++)m=8*a+h,p=8*b+k,t=l.get(m,p),q.set(m,p,t<=c),f&&r.set(m,p,!(t<=c))}f=f?{binarized:q,inverted:r}:{binarized:q};let {binarized:z,inverted:y}=f;(f=V(d?
|
|
100
|
+
y:z))||"attemptBoth"!==e.inversionAttempts&&"invertFirst"!==e.inversionAttempts||(f=V(d?z:y));return f}X.default=X;let Y="dontInvert",Z={red:77,green:150,blue:29,useIntegerApproximation:!0};
|
|
101
|
+
self.onmessage=a=>{let b=a.data.id,c=a.data.data;switch(a.data.type){case "decode":(a=X(c.data,c.width,c.height,{inversionAttempts:Y,greyScaleWeights:Z}))?self.postMessage({id:b,type:"qrResult",data:a.data,cornerPoints:[a.location.topLeftCorner,a.location.topRightCorner,a.location.bottomRightCorner,a.location.bottomLeftCorner]}):self.postMessage({id:b,type:"qrResult",data:null});break;case "grayscaleWeights":Z.red=c.red;Z.green=c.green;Z.blue=c.blue;Z.useIntegerApproximation=c.useIntegerApproximation;
|
|
102
|
+
break;case "inversionMode":switch(c){case "original":Y="dontInvert";break;case "invert":Y="onlyInvert";break;case "both":Y="attemptBoth";break;default:throw Error("Invalid inversion mode");}break;case "close":self.close()}}
|
|
103
|
+
`]),{type:"application/javascript"}))},Symbol.toStringTag,{value:"Module"}));A.Scanner=Te,Object.defineProperty(A,Symbol.toStringTag,{value:"Module"})});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { default as default_2 } from 'qr-scanner';
|
|
2
|
+
|
|
3
|
+
declare class BaseScanner {
|
|
4
|
+
static events: typeof ScannerEvents;
|
|
5
|
+
protected previousScanText: string | null;
|
|
6
|
+
protected targetElement: Element;
|
|
7
|
+
protected rootElement: Element;
|
|
8
|
+
protected qrScanner: default_2;
|
|
9
|
+
protected decode: (data: string) => any;
|
|
10
|
+
protected scannerElements: Record<string, string>;
|
|
11
|
+
protected events: TEvents;
|
|
12
|
+
constructor(opts: TScannerConstructorOpts, decode: (data: string) => any, scannerElements: Record<string, string>);
|
|
13
|
+
protected _initializeScanner(deviceId: string | undefined, maxScansPerSecond?: number): Promise<void>;
|
|
14
|
+
listVideoInputDevices(): Promise<default_2.Camera[]>;
|
|
15
|
+
protected _getMainCameraDeviceId(inputs: default_2.Camera[]): string;
|
|
16
|
+
close(): void;
|
|
17
|
+
on(event: TScannerEvent, callback: TCallbackFunction): void;
|
|
18
|
+
off(event: TScannerEvent): void;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export declare class Scanner extends BaseScanner {
|
|
22
|
+
constructor(opts: TScannerConstructorOpts);
|
|
23
|
+
scan({ deviceId, maxScansPerSecond, isCloseButton }?: TScanOpts): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
declare enum ScannerEvents {
|
|
27
|
+
CAPTURE = "capture",
|
|
28
|
+
ERROR = "error",
|
|
29
|
+
CANCEL = "cancel"
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
declare type TCallbackFunction = (...args: any[]) => void;
|
|
33
|
+
|
|
34
|
+
declare type TEvents = {
|
|
35
|
+
[key in TScannerEvent]?: TCallbackFunction | undefined | null;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
declare type TScannerConstructorOpts = {
|
|
39
|
+
target: string;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
declare type TScannerEvent = keyof TScannerEvents;
|
|
43
|
+
|
|
44
|
+
declare type TScannerEvents = Record<ScannerEvents, string>;
|
|
45
|
+
|
|
46
|
+
declare type TScanOpts = {
|
|
47
|
+
deviceId?: string;
|
|
48
|
+
isCloseButton?: boolean;
|
|
49
|
+
maxScansPerSecond?: number;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export { }
|
package/eslint.config.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import eslintPluginSvelte from 'eslint-plugin-svelte'
|
|
2
|
+
import eslint from '@eslint/js'
|
|
3
|
+
import tseslint from 'typescript-eslint'
|
|
4
|
+
|
|
5
|
+
export default tseslint.config(
|
|
6
|
+
eslint.configs.recommended,
|
|
7
|
+
...tseslint.configs.recommended,
|
|
8
|
+
...eslintPluginSvelte.configs['flat/prettier'],
|
|
9
|
+
)
|
package/package.json
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@credenza3/scanner-lib",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Credenza Scanner Library",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"types": "dist/types/index.d.ts",
|
|
7
|
+
"main": "./dist/scanner.umd.js",
|
|
8
|
+
"module": "./dist/scanner.es.js",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/scanner.es.js",
|
|
12
|
+
"require": "./dist/scanner.umd.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/credenza-web3/scanner.git"
|
|
18
|
+
},
|
|
19
|
+
"author": "Dmitry Fokin",
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"devDependencies": {
|
|
22
|
+
"@sveltejs/vite-plugin-svelte": "^3.1.0",
|
|
23
|
+
"@types/jest": "^29.5.12",
|
|
24
|
+
"@types/node": "^20.12.12",
|
|
25
|
+
"eslint": "^9.3.0",
|
|
26
|
+
"eslint-plugin-svelte": "^2.39.0",
|
|
27
|
+
"husky": "^9.0.11",
|
|
28
|
+
"jest": "^29.7.0",
|
|
29
|
+
"prettier": "^3.2.5",
|
|
30
|
+
"prettier-plugin-svelte": "^3.2.3",
|
|
31
|
+
"sass": "^1.77.2",
|
|
32
|
+
"svelte-preprocess": "^5.1.4",
|
|
33
|
+
"ts-jest": "^29.1.2",
|
|
34
|
+
"typescript": "^5.4.5",
|
|
35
|
+
"typescript-eslint": "^7.9.0",
|
|
36
|
+
"vite": "^5.2.11",
|
|
37
|
+
"vite-plugin-dts": "^3.9.1"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"svelte": "^4.2.17"
|
|
41
|
+
},
|
|
42
|
+
"engines": {
|
|
43
|
+
"node": ">=20.10",
|
|
44
|
+
"pnpm": ">=9.0.0"
|
|
45
|
+
},
|
|
46
|
+
"scripts": {
|
|
47
|
+
"build": "vite build"
|
|
48
|
+
}
|
|
49
|
+
}
|