UNPKG

@qr-platform/qr-code.js

Version:

QRCode.js is a professional JavaScript/TypeScript library for creating customized QR codes, offering a blend of simplicity and sophistication. With versatile styling options—dot shapes, colors, gradients, embedded images, borders, and text—it enables you

1 lines 220 kB
const e={width:500,height:500};class t{constructor(){this.buffer=[],this.length=0}getBuffer(){return this.buffer}getLengthInBits(){return this.length}toString(){let e="";for(let t=0;t<this.getLengthInBits();t+=1)e+=this.getBit(t)?"1":"0";return e}getBit(e){return 1==(this.buffer[~~(e/8)]>>>7-e%8&1)}put(e,t){for(let o=0;o<t;o+=1)this.putBit(1==(e>>>t-o-1&1))}putBit(e){this.length==8*this.buffer.length&&this.buffer.push(0),e&&(this.buffer[~~(this.length/8)]|=128>>>this.length%8),this.length+=1}}var o,r,i;!function(e){e[e.L=1]="L",e[e.M=0]="M",e[e.Q=3]="Q",e[e.H=2]="H"}(o||(o={}));class n{constructor(){throw new Error("error")}static glog(e){if(e<1)throw new Error("log("+e+")");return n.LOG_TABLE[e]}static gexp(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return n.EXP_TABLE[e]}}n.initialize=(()=>{n.EXP_TABLE=[],n.LOG_TABLE=[];for(let e=0;e<256;e+=1)n.EXP_TABLE.push(e<8?1<<e:n.EXP_TABLE[e-4]^n.EXP_TABLE[e-5]^n.EXP_TABLE[e-6]^n.EXP_TABLE[e-8]),n.LOG_TABLE.push(0);for(let e=0;e<255;e+=1)n.LOG_TABLE[n.EXP_TABLE[e]]=e})();class s{constructor(e,t=0){let o=0;for(;o<e.length&&0==e[o];)o+=1;this.num=[];const r=e.length-o;for(let t=0;t<r;t+=1)this.num.push(e[o+t]);for(let e=0;e<t;e+=1)this.num.push(0)}getAt(e){return this.num[e]}getLength(){return this.num.length}toString(){let e="";for(let t=0;t<this.getLength();t+=1)t>0&&(e+=","),e+=this.getAt(t);return e.toString()}toLogString(){let e="";for(let t=0;t<this.getLength();t+=1)t>0&&(e+=","),e+=n.glog(this.getAt(t));return e.toString()}multiply(e){const t=[],o=this.getLength()+e.getLength()-1;for(let e=0;e<o;e+=1)t.push(0);for(let o=0;o<this.getLength();o+=1)for(let r=0;r<e.getLength();r+=1)t[o+r]^=n.gexp(n.glog(this.getAt(o))+n.glog(e.getAt(r)));return new s(t)}mod(e){if(this.getLength()-e.getLength()<0)return this;const t=n.glog(this.getAt(0))-n.glog(e.getAt(0)),o=[];for(let e=0;e<this.getLength();e+=1)o.push(this.getAt(e));for(let r=0;r<e.getLength();r+=1)o[r]^=n.gexp(n.glog(e.getAt(r))+t);return new s(o).mod(e)}}!function(e){e[e.MODE_NUMBER=1]="MODE_NUMBER",e[e.MODE_ALPHA_NUM=2]="MODE_ALPHA_NUM",e[e.MODE_8BIT_BYTE=4]="MODE_8BIT_BYTE",e[e.MODE_KANJI=8]="MODE_KANJI"}(r||(r={}));class a{constructor(e,t){this.mode=e,this.data=t}getMode(){return this.mode}getData(){return this.data}getLengthInBits(e){if(1<=e&&e<10)switch(this.mode){case r.MODE_NUMBER:return 10;case r.MODE_ALPHA_NUM:return 9;case r.MODE_8BIT_BYTE:case r.MODE_KANJI:return 8;default:throw new Error("mode:"+this.mode)}else if(e<27)switch(this.mode){case r.MODE_NUMBER:return 12;case r.MODE_ALPHA_NUM:return 11;case r.MODE_8BIT_BYTE:return 16;case r.MODE_KANJI:return 10;default:throw new Error("mode:"+this.mode)}else{if(!(e<41))throw new Error("typeNumber:"+e);switch(this.mode){case r.MODE_NUMBER:return 14;case r.MODE_ALPHA_NUM:return 13;case r.MODE_8BIT_BYTE:return 16;case r.MODE_KANJI:return 12;default:throw new Error("mode:"+this.mode)}}}}class l extends a{constructor(e,t){super(r.MODE_8BIT_BYTE,e),this.stringToBytes=t}write(e){this.stringToBytes(this.getData()).forEach((t=>e.put(t,8)))}getLength(){return this.stringToBytes(this.getData()).length}}class d extends a{constructor(e){super(r.MODE_ALPHA_NUM,e)}write(e){const t=this.getData();let o=0;for(;o+1<t.length;)e.put(45*d.getCode(t.charAt(o))+d.getCode(t.charAt(o+1)),11),o+=2;o<t.length&&e.put(d.getCode(t.charAt(o)),6)}getLength(){return this.getData().length}static getCode(e){if("0"<=e&&e<="9")return e.charCodeAt(0)-"0".charCodeAt(0);if("A"<=e&&e<="Z")return e.charCodeAt(0)-"A".charCodeAt(0)+10;switch(e){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw new Error("illegal char :"+e)}}}class c extends a{constructor(e,t){super(r.MODE_KANJI,e),this.stringToBytes=t}write(e){const t=this.stringToBytes(this.getData());let o=0;for(;o+1<t.length;){let r=(255&t[o])<<8|255&t[o+1];if(33088<=r&&r<=40956)r-=33088;else{if(!(57408<=r&&r<=60351))throw new Error("illegal char at "+(o+1)+"/"+r);r-=49472}r=192*(r>>>8&255)+(255&r),e.put(r,13),o+=2}if(o<t.length)throw new Error("illegal char at "+(o+1))}getLength(){return this.stringToBytes(this.getData()).length/2}}class u extends a{constructor(e){super(r.MODE_NUMBER,e)}write(e){const t=this.getData();let o=0;for(;o+2<t.length;)e.put(u.strToNum(t.substring(o,o+3)),10),o+=3;o<t.length&&(t.length-o==1?e.put(u.strToNum(t.substring(o,o+1)),4):t.length-o==2&&e.put(u.strToNum(t.substring(o,o+2)),7))}getLength(){return this.getData().length}static strToNum(e){let t=0;for(let o=0;o<e.length;o+=1)t=10*t+u.chatToNum(e.charAt(o));return t}static chatToNum(e){if("0"<=e&&e<="9")return e.charCodeAt(0)-"0".charCodeAt(0);throw new Error("illegal char :"+e)}}!function(e){e[e.PATTERN000=0]="PATTERN000",e[e.PATTERN001=1]="PATTERN001",e[e.PATTERN010=2]="PATTERN010",e[e.PATTERN011=3]="PATTERN011",e[e.PATTERN100=4]="PATTERN100",e[e.PATTERN101=5]="PATTERN101",e[e.PATTERN110=6]="PATTERN110",e[e.PATTERN111=7]="PATTERN111"}(i||(i={}));class h{constructor(){throw new Error("error")}static getPatternPosition(e){return h.PATTERN_POSITION_TABLE[e-1]}static getMaxLength(e,t,i){const n=e-1;let s=0,a=0;switch(i){case o.L:s=0;break;case o.M:s=1;break;case o.Q:s=2;break;case o.H:s=3;break;default:throw new Error("e:"+i)}switch(t){case r.MODE_NUMBER:a=0;break;case r.MODE_ALPHA_NUM:a=1;break;case r.MODE_8BIT_BYTE:a=2;break;case r.MODE_KANJI:a=3;break;default:throw new Error("m:"+t)}return h.MAX_LENGTH[n][s][a]}static getErrorCorrectPolynomial(e){let t=new s([1]);for(let o=0;o<e;o+=1)t=t.multiply(new s([1,n.gexp(o)]));return t}static getMaskFunc(e){switch(e){case i.PATTERN000:return(e,t)=>(e+t)%2==0;case i.PATTERN001:return(e,t)=>e%2==0;case i.PATTERN010:return(e,t)=>t%3==0;case i.PATTERN011:return(e,t)=>(e+t)%3==0;case i.PATTERN100:return(e,t)=>(~~(e/2)+~~(t/3))%2==0;case i.PATTERN101:return(e,t)=>e*t%2+e*t%3==0;case i.PATTERN110:return(e,t)=>(e*t%2+e*t%3)%2==0;case i.PATTERN111:return(e,t)=>(e*t%3+(e+t)%2)%2==0;default:throw new Error("mask:"+e)}}static getLostPoint(e){const t=e.getModuleCount();let o=0;for(let r=0;r<t;r+=1)for(let i=0;i<t;i+=1){let n=0;const s=e.isDark(r,i);for(let o=-1;o<=1;o+=1)if(!(r+o<0||t<=r+o))for(let a=-1;a<=1;a+=1)i+a<0||t<=i+a||0==o&&0==a||s==e.isDark(r+o,i+a)&&(n+=1);n>5&&(o+=3+n-5)}for(let r=0;r<t-1;r+=1)for(let i=0;i<t-1;i+=1){let t=0;e.isDark(r,i)&&(t+=1),e.isDark(r+1,i)&&(t+=1),e.isDark(r,i+1)&&(t+=1),e.isDark(r+1,i+1)&&(t+=1),0!=t&&4!=t||(o+=3)}for(let r=0;r<t;r+=1)for(let i=0;i<t-6;i+=1)e.isDark(r,i)&&!e.isDark(r,i+1)&&e.isDark(r,i+2)&&e.isDark(r,i+3)&&e.isDark(r,i+4)&&!e.isDark(r,i+5)&&e.isDark(r,i+6)&&(o+=40);for(let r=0;r<t;r+=1)for(let i=0;i<t-6;i+=1)e.isDark(i,r)&&!e.isDark(i+1,r)&&e.isDark(i+2,r)&&e.isDark(i+3,r)&&e.isDark(i+4,r)&&!e.isDark(i+5,r)&&e.isDark(i+6,r)&&(o+=40);let r=0;for(let o=0;o<t;o+=1)for(let i=0;i<t;i+=1)e.isDark(i,o)&&(r+=1);return o+=10*(Math.abs(100*r/t/t-50)/5),o}static getBCHTypeInfo(e){let t=e<<10;for(;h.getBCHDigit(t)-h.getBCHDigit(h.G15)>=0;)t^=h.G15<<h.getBCHDigit(t)-h.getBCHDigit(h.G15);return(e<<10|t)^h.G15_MASK}static getBCHTypeNumber(e){let t=e<<12;for(;h.getBCHDigit(t)-h.getBCHDigit(h.G18)>=0;)t^=h.G18<<h.getBCHDigit(t)-h.getBCHDigit(h.G18);return e<<12|t}static getBCHDigit(e){let t=0;for(;0!=e;)t+=1,e>>>=1;return t}}h.PATTERN_POSITION_TABLE=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],h.MAX_LENGTH=[[[41,25,17,10],[34,20,14,8],[27,16,11,7],[17,10,7,4]],[[77,47,32,20],[63,38,26,16],[48,29,20,12],[34,20,14,8]],[[127,77,53,32],[101,61,42,26],[77,47,32,20],[58,35,24,15]],[[187,114,78,48],[149,90,62,38],[111,67,46,28],[82,50,34,21]],[[255,154,106,65],[202,122,84,52],[144,87,60,37],[106,64,44,27]],[[322,195,134,82],[255,154,106,65],[178,108,74,45],[139,84,58,36]],[[370,224,154,95],[293,178,122,75],[207,125,86,53],[154,93,64,39]],[[461,279,192,118],[365,221,152,93],[259,157,108,66],[202,122,84,52]],[[552,335,230,141],[432,262,180,111],[312,189,130,80],[235,143,98,60]],[[652,395,271,167],[513,311,213,131],[364,221,151,93],[288,174,119,74]]],h.G15=1335,h.G18=7973,h.G15_MASK=21522;class p{constructor(e,t){this.totalCount=e,this.dataCount=t}getDataCount(){return this.dataCount}getTotalCount(){return this.totalCount}static getRSBlocks(e,t){const o=p.getRsBlockTable(e,t),r=o.length/3,i=[];for(let e=0;e<r;e+=1){const t=o[3*e+0],r=o[3*e+1],n=o[3*e+2];for(let e=0;e<t;e+=1)i.push(new p(r,n))}return i}static getRsBlockTable(e,t){switch(t){case o.L:return p.RS_BLOCK_TABLE[4*(e-1)+0];case o.M:return p.RS_BLOCK_TABLE[4*(e-1)+1];case o.Q:return p.RS_BLOCK_TABLE[4*(e-1)+2];case o.H:return p.RS_BLOCK_TABLE[4*(e-1)+3]}throw new Error("tn:"+e+"/ecl:"+t)}}p.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];const m=Array(41).fill(0).map(((e,t)=>t));var g,b;!function(e){e.L="L",e.M="M",e.Q="Q",e.H="H"}(g||(g={})),function(e){e.numeric="numeric",e.alphanumeric="alphanumeric",e.byte="byte",e.kanji="kanji",e.unicode="unicode"}(b||(b={}));class f{constructor(e=0,t=g.L){this.modules=[],this.moduleCount=0,this.typeNumber=e,this.errorCorrectLevel=o[t],this.qrDataList=[]}getTypeNumber(){return this.typeNumber}setTypeNumber(e){this.typeNumber=e}getErrorCorrectLevel(){return this.errorCorrectLevel}setErrorCorrectLevel(e){this.errorCorrectLevel=e}clearData(){this.qrDataList=[]}addData(e,t=b.byte){if(e instanceof a)this.qrDataList.push(e);else{if("string"!=typeof e)throw new Error(typeof e);switch(t){case b.numeric:this.qrDataList.push(new u(e));break;case b.alphanumeric:this.qrDataList.push(new d(e));break;case b.byte:this.qrDataList.push(new l(e,f.stringToBytesFuncs.default));break;case b.unicode:this.qrDataList.push(new l(e,f.stringToBytesFuncs.UTF8));break;case b.kanji:this.qrDataList.push(new c(e,f.stringToBytesFuncs.SJIS));break;default:throw new Error("mode:"+t)}}}isDark(e,t){return!(!this.modules[e]||null==this.modules[e][t])&&this.modules[e][t]}getModuleCount(){return this.moduleCount}make(){if(this.typeNumber<1){let e=1;for(;e<40;e++){const o=p.getRSBlocks(e,this.errorCorrectLevel),r=new t;this.qrDataList.forEach((t=>{r.put(t.getMode(),4),r.put(t.getLength(),t.getLengthInBits(e)),t.write(r)}));const i=o.reduce(((e,t)=>e+t.getDataCount()),0);if(r.getLengthInBits()<=8*i)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())}getBestMaskPattern(){let e=0,t=0;for(let o=0;o<8;o+=1){this.makeImpl(!0,o);const r=h.getLostPoint(this);(0==o||e>r)&&(e=r,t=o)}return t}makeImpl(e,t){this.moduleCount=4*this.typeNumber+17,this.modules=[];for(let e=0;e<this.moduleCount;e+=1){this.modules.push([]);for(let t=0;t<this.moduleCount;t+=1)this.modules[e].push(null)}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),this.typeNumber>=7&&this.setupTypeNumber(e);const o=f.createData(this.typeNumber,this.errorCorrectLevel,this.qrDataList);this.mapData(o,t)}mapData(e,t){let o=-1,r=this.moduleCount-1,i=7,n=0;const s=h.getMaskFunc(t);for(let t=this.moduleCount-1;t>0;t-=2)for(6==t&&(t-=1);;){for(let o=0;o<2;o+=1)if(null==this.modules[r][t-o]){let a=!1;n<e.length&&(a=1==(e[n]>>>i&1));s(r,t-o)&&(a=!a),this.modules[r][t-o]=a,i-=1,-1==i&&(n+=1,i=7)}if(r+=o,r<0||this.moduleCount<=r){r-=o,o=-o;break}}}setupPositionAdjustPattern(){const e=h.getPatternPosition(this.typeNumber);e.forEach((t=>{e.forEach((e=>{if(null==this.modules[t][e])for(let o=-2;o<=2;o+=1)for(let r=-2;r<=2;r+=1)this.modules[t+o][e+r]=-2==o||2==o||-2==r||2==r||0==o&&0==r}))}))}setupPositionProbePattern(e,t){for(let o=-1;o<=7;o+=1)for(let r=-1;r<=7;r+=1)e+o<=-1||this.moduleCount<=e+o||t+r<=-1||this.moduleCount<=t+r||(this.modules[e+o][t+r]=0<=o&&o<=6&&(0==r||6==r)||0<=r&&r<=6&&(0==o||6==o)||2<=o&&o<=4&&2<=r&&r<=4)}setupTimingPattern(){for(let e=8;e<this.moduleCount-8;e+=1)null==this.modules[e][6]&&(this.modules[e][6]=e%2==0);for(let e=8;e<this.moduleCount-8;e+=1)null==this.modules[6][e]&&(this.modules[6][e]=e%2==0)}setupTypeNumber(e){const t=h.getBCHTypeNumber(this.typeNumber);for(let o=0;o<18;o+=1)this.modules[~~(o/3)][o%3+this.moduleCount-8-3]=!e&&1==(t>>o&1);for(let o=0;o<18;o+=1)this.modules[o%3+this.moduleCount-8-3][~~(o/3)]=!e&&1==(t>>o&1)}setupTypeInfo(e,t){const o=this.errorCorrectLevel<<3|t,r=h.getBCHTypeInfo(o);for(let t=0;t<15;t+=1){const o=!e&&1==(r>>t&1);t<6?this.modules[t][8]=o:t<8?this.modules[t+1][8]=o:this.modules[this.moduleCount-15+t][8]=o}for(let t=0;t<15;t+=1){const o=!e&&1==(r>>t&1);t<8?this.modules[8][this.moduleCount-t-1]=o:t<9?this.modules[8][15-t-1+1]=o:this.modules[8][15-t-1]=o}this.modules[this.moduleCount-8][8]=!e}static createData(e,o,r){const i=p.getRSBlocks(e,o),n=new t;r.forEach((t=>{n.put(t.getMode(),4),n.put(t.getLength(),t.getLengthInBits(e)),t.write(n)}));const s=i.reduce(((e,t)=>e+t.getDataCount()),0);if(n.getLengthInBits()>8*s)throw new Error("code length overflow. ("+n.getLengthInBits()+">"+8*s+")");for(n.getLengthInBits()+4<=8*s&&n.put(0,4);n.getLengthInBits()%8!=0;)n.putBit(!1);for(;!(n.getLengthInBits()>=8*s||(n.put(f.PAD0,8),n.getLengthInBits()>=8*s));)n.put(f.PAD1,8);return f.createBytes(n,i)}static createBytes(e,t){let o=0,r=0,i=0;const n=new Array(t.length).map((e=>[])),a=new Array(t.length).map((e=>[]));function l(e){const t=[];for(let o=0;o<e;o+=1)t.push(0);return t}for(let d=0;d<t.length;d+=1){const c=t[d].getDataCount(),u=t[d].getTotalCount()-c;r=Math.max(r,c),i=Math.max(i,u),n[d]=l(c);for(let t=0;t<n[d].length;t+=1)n[d][t]=255&e.getBuffer()[t+o];o+=c;const p=h.getErrorCorrectPolynomial(u),m=new s(n[d],p.getLength()-1).mod(p);a[d]=l(p.getLength()-1);for(let e=0;e<a[d].length;e+=1){const t=e+m.getLength()-a[d].length;a[d][e]=t>=0?m.getAt(t):0}}const d=l(t.reduce(((e,t)=>e+t.getTotalCount()),0));let c=0;for(let e=0;e<r;e+=1)for(let o=0;o<t.length;o+=1)e<n[o].length&&(d[c]=n[o][e],c+=1);for(let e=0;e<i;e+=1)for(let o=0;o<t.length;o+=1)e<a[o].length&&(d[c]=a[o][e],c+=1);return d}}f.stringToBytesFuncs={default(e){const t=[];for(let o=0;o<e.length;o+=1){const r=e.charCodeAt(o);t.push(255&r)}return t}},f.PAD0=236,f.PAD1=17;const y=e=>!!e&&"object"==typeof e&&!Array.isArray(e);function O(e,t=!1){const o=e.split("").reverse().join("");return t?o.toLocaleUpperCase():o}function C(e,...t){if(!t.length)return e;const o=t.shift();return void 0!==o&&y(e)&&y(o)?(e={...e},Object.keys(o).forEach((t=>{const r=e[t],i=o[t];Array.isArray(r)&&Array.isArray(i)?e[t]=i:y(r)&&y(i)?e[t]=C({...r},i):e[t]=void 0===i?r:i})),C(e,...t)):e}O("rq",!0),O("-",!0),O("talp",!0),O("mrof",!0),O("a".repeat(6)+"#",!0);const S=/\.?0+$/;function v(e){return e.toFixed(7).replace(S,"")}function k(e,...t){return e.reduce(((e,o,r)=>{let i="";return r&&(i=t[r-1]),"number"==typeof i&&(i=v(i)),`${e}${i}${o}`}),"").trim().replace(/[\s\n\r]+/gim," ")}function w(e){if(!e)return!1;const t=e.toLowerCase().trim();return"none"===t||"transparent"===t}const A="top",T="bottom",q="left",I="right";const D=e=>"number"==typeof e?e:parseInt(e.replace("%",""),10),Z=(e,t="0%")=>e?e.endsWith("%")?e:e+"%":t,x="text",W="image",V=(e,t)=>{var o,r;return!(null!==(o=null==e||null===(r=e.decorations)||void 0===r||null===(r=r[t])||void 0===r?void 0:r.disabled)&&void 0!==o&&o)},j=e=>{if("string"==typeof e)return e;const{fontFace:t="Arial",fontSize:o=20,fontColor:r="#ffffff",letterSpacing:i=1,textTransform:n="uppercase",fontWeight:s="bold"}=e||{};return`font-weight: ${s}; text-transform: ${n}; font-size: ${o}px; font-family: ${t}; fill: ${r}; letter-spacing: ${i}px; dominant-baseline: central;`};const R=({document:e,position:t,rotate:o,flip:r,thickness:i,height:n,width:s,round:a,offset:l=0,curveAdjustment:d=0,curveRadius:c,innerBorderPadding:u=0,outerBorderPadding:h=0,instanceId:p})=>{const m=Math.min(s,n),g=e.createElementNS("http://www.w3.org/2000/svg","path"),b=(e=>{if(e>=50)return 1;const t=[{R:0,P:0},{R:5,P:0},{R:10,P:.12},{R:15,P:.2},{R:20,P:.32},{R:25,P:.44},{R:30,P:.56},{R:35,P:.65},{R:40,P:.72},{R:42,P:.76},{R:44,P:.8},{R:45,P:.83},{R:46,P:.86},{R:48,P:.92},{R:50,P:1}],o=t.find((t=>e<=t.R))||t[0],r=t.find((t=>e>t.R))||t[t.length-1],{R:i,P:n}=o,{R:s,P:a}=r;return n+(e-i)/(s-i)*(a-n)})("string"==typeof a?D(a):a),f=void 0!==c?function(e){let t;return t="number"==typeof e?e:"string"==typeof e?(e.includes("%"),parseFloat(e)):0,t=Math.min(Math.max(t,0),50),.5+t/50*.5}(c):b;let y=(m-i-2*h-10*d*2)/2*f;const O=((e,t,o,r)=>{const i=o/2,n=r/2;let s="";return e&&(s+=`rotate(${e}, ${i}, ${n}) `),t&&(s+=`translate(${i}, ${n}) scale(1, -1) translate(${-i}, ${-n}) `),s.trim()})(o,r,s,n);g.setAttribute("id",`${t}-text-path-${p}`),g.setAttribute("transform",O);let{startX:C,startY:S,pathWidth:v}=((e,t,o,r,i={})=>{let n=t/2,s=t/2+r,a=e-t;return o&&(a-=4*o,n+=2*o,s+=2*o),n+=i.left||0,s+=i.top||0,{startX:n,startY:s,pathWidth:a}})(m,i,h,l);const k=h>0,w=u>0;if(k||w){let e=0;k&&(e-=h/20),w&&(e-=u/2),C-=e,S-=e,v+=2*e,y=v/2*f}return g.setAttribute("d",((e,t,o,r)=>`\n M${e},${t+r}\n a${r},${r} 0 0 1 ${r},${-r}\n h${o-2*r}\n a${r},${r} 0 0 1 ${r},${r}\n `)(C,S,v,y)),g},M=({document:e,thickness:t,value:o,svg:r,position:i,height:n,width:s,round:a,style:l,offset:d=0,curveAdjustment:c=0,curveDisabled:u=!1,innerBorderPadding:h=0,outerBorderPadding:p=0,curveRadius:m,instanceId:g,noBorderThickness:b,enabledBorders:f})=>{let y=0,O=!1;if(i===I?y=90:i===T?O=!u:i===q&&(y=-90),u){const a=e.createElementNS("http://www.w3.org/2000/svg","text");let c=s/2,u=(n-Math.min(s,n)+t)/2+2*p+d-(n-s>0?0:(s-n)/2);let m=0;if(p>0&&(m-=p/20),h>0&&(m-=h/2),i===T?u=n-2*p-t/2-d+m:i===A?u=2*p+t/2+d-m:i!==q&&i!==I||(u-=m),i===A||i===T){let e=0;!f[q]&&f[I]?e=-(t-b)/2:f[q]&&!f[I]&&(e=(t-b)/2),c+=e}else if(i===q||i===I){let e=0;!f[A]&&f[T]?e=i===q?(t-b)/2:-(t-b)/2:f[A]&&!f[T]&&(e=i===q?-(t-b)/2:(t-b)/2),c+=e}let g="";0!==y&&(g+=`rotate(${y}, ${s/2}, ${n/2}) `),a.setAttribute("x",c.toString()),a.setAttribute("y",u.toString()),a.setAttribute("text-anchor","middle"),g&&a.setAttribute("transform",g.trim()),a.textContent=o;const O=j(l);a.setAttribute("style",O),r.appendChild(a)}else{let u=r.getElementsByTagName("defs")[0];u||(u=e.createElementNS("http://www.w3.org/2000/svg","defs"),r.appendChild(u));const C=R({document:e,position:i,rotate:y,flip:O,thickness:t,height:n,width:s,round:a,offset:d,curveAdjustment:c,innerBorderPadding:h,outerBorderPadding:p,curveRadius:m,instanceId:g}),{x:S,y:v}=function(e,t,o,r){let i=0,n=0;const s=(t-o)/2;return r.left&&r.right&&r.top&&r.bottom?(i=0,n=0):"top"===e||"bottom"===e?!r.left&&r.right?i=-s:(r.left&&!r.right||r.left&&r.right)&&(i=s):"left"!==e&&"right"!==e||(!r.top&&r.bottom?r.left&&r.right?(i="left"===e?2*+s:0,n=-s):i="left"===e?+s:-s:r.top&&!r.bottom?r.left&&r.right?(i="left"===e?0:2*s,n=-s):i=0:r.top&&r.bottom?n=r.left&&r.right?2*+s:+s:(i=r.left&&r.right?2*+s:+s,n=r.left&&r.right?2*-s:-s)),{x:i,y:n}}(i,t,b,f);if(0!==S||0!==v){const e=`${C.getAttribute("transform")||""} translate(${S}, ${v})`.trim();C.setAttribute("transform",e)}u.appendChild(C),r.appendChild((({document:e,value:t,position:o,style:r,instanceId:i})=>{const n=e.createElementNS("http://www.w3.org/2000/svg","text"),s=e.createElementNS("http://www.w3.org/2000/svg","textPath");s.setAttribute("href",`#${o}-text-path-${i}`),s.setAttribute("text-anchor","middle"),s.setAttribute("startOffset","50%"),s.textContent=t;const a=j(r);return n.setAttribute("style",a),n.appendChild(s),n})({document:e,position:i,value:o,style:l,instanceId:g}))}},B=({document:e,thickness:t,value:o,svg:r,position:i,height:n,width:s,offset:a=0,style:l})=>{const d=e.createElementNS("http://www.w3.org/2000/svg","image"),c=Math.min(s,n);let u=(s-c+t)/2,h=(n-c+t)/2+a;i===A?u+=(c-t)/2:i===I?(u+=c-t,h+=(c-t)/2):i===T?(u+=(c-t)/2,h+=c-t):i===q&&(h+=(c-t)/2),d.setAttribute("href",o||""),d.setAttribute("x",`${u}`),d.setAttribute("y",`${h}`),d.setAttribute("style",(null==l?void 0:l.toString())||""),r.appendChild(d)};var Y,J,X,G,E,F,z;function L(e){const t={...e};if(!t.colorStops||!t.colorStops.length)throw new Error("Field 'colorStops' is required in gradient");return t.rotation?t.rotation=Number(t.rotation):t.rotation=0,t.colorStops=t.colorStops.map((e=>({...e,offset:Number(e.offset)}))),t}function N(e){var t,o,r;const i={...e};if(i.imageOptions={...i.imageOptions,imageSize:Math.min(1,Number(null===(t=i.imageOptions)||void 0===t?void 0:t.imageSize))||1,margin:Number(null===(o=i.imageOptions)||void 0===o?void 0:o.margin)||0,padding:Number(null===(r=i.imageOptions)||void 0===r?void 0:r.padding)||0},i.imageOptions.mode==z.overlay&&(i.imageOptions.margin=0),i.dotsOptions={...i.dotsOptions},i.dotsOptions.gradient&&(i.dotsOptions.gradient=L(i.dotsOptions.gradient)),i.dotsOptions.size=Math.round(Math.max(0,i.dotsOptions.size)||10),i.cornersSquareOptions&&(i.cornersSquareOptions={...i.cornersSquareOptions},i.cornersSquareOptions.gradient&&(i.cornersSquareOptions.gradient=L(i.cornersSquareOptions.gradient))),i.cornersDotOptions&&(i.cornersDotOptions={...i.cornersDotOptions},i.cornersDotOptions.gradient&&(i.cornersDotOptions.gradient=L(i.cornersDotOptions.gradient))),i.backgroundOptions&&(i.backgroundOptions={...i.backgroundOptions},i.backgroundOptions.gradient&&(i.backgroundOptions.gradient=L(i.backgroundOptions.gradient))),i.borderOptions&&i.borderOptions.decorations){const e=["top","bottom","left","right"];for(const t of e){let e=i.borderOptions.decorations[t];e||(i.borderOptions.decorations[t]={enableText:!1,value:void 0},e=i.borderOptions.decorations[t]),!1===e.enableText?e.value=void 0:!0===e.enableText?null!==e.value&&void 0!==e.value||(e.value=""):void 0===e.enableText&&(e.value&&"string"==typeof e.value&&!1!==e.enableText&&""!==e.value.trim()?e.enableText=!0:(e.enableText=!1,e.value=void 0))}}return"undefined"==typeof document||i.document||(i.document=document),i}!function(e){e.radial="radial",e.linear="linear"}(Y||(Y={})),function(e){e.svg="svg",e.png="png",e.jpeg="jpeg",e.webp="webp"}(J||(J={})),function(e){e.dot="dot",e.randomDot="random-dot",e.rounded="rounded",e.extraRounded="extra-rounded",e.verticalLine="vertical-line",e.horizontalLine="horizontal-line",e.classy="classy",e.classyRounded="classy-rounded",e.square="square",e.smallSquare="small-square",e.tinySquare="tiny-square",e.star="star",e.plus="plus",e.diamond="diamond"}(X||(X={})),function(e){e.dot="dot",e.square="square",e.heart="heart",e.rounded="rounded",e.classy="classy",e.outpoint="outpoint",e.inpoint="inpoint"}(G||(G={})),function(e){e.dot="dot",e.square="square",e.rounded="rounded",e.classy="classy",e.outpoint="outpoint",e.inpoint="inpoint"}(E||(E={})),function(e){e.square="square",e.circle="circle"}(F||(F={})),function(e){e.center="center",e.overlay="overlay",e.background="background"}(z||(z={}));const P={[g.L]:.07,[g.M]:.15,[g.Q]:.25,[g.H]:.3};class U{constructor(e="",t={}){if(e instanceof U)return e;const o=function(e){let t={r:0,g:0,b:0},o=1,r=null,i=null,n=null,s=!1,a=!1;"string"==typeof e&&(e=function(e){const t=/^\s+/,o=/\s+$/;e=e.replace(t,"").replace(o,"").toLowerCase();let r,i=!1;if(U.names[e])e=U.names[e],i=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};if(r=Oe.rgb.exec(e))return{r:r[1],g:r[2],b:r[3]};if(r=Oe.rgba.exec(e))return{r:r[1],g:r[2],b:r[3],a:r[4]};if(r=Oe.hsl.exec(e))return{h:r[1],s:r[2],l:r[3]};if(r=Oe.hsla.exec(e))return{h:r[1],s:r[2],l:r[3],a:r[4]};if(r=Oe.hsv.exec(e))return{h:r[1],s:r[2],v:r[3]};if(r=Oe.hsva.exec(e))return{h:r[1],s:r[2],v:r[3],a:r[4]};if(r=Oe.hex8.exec(e))return{r:me(r[1]),g:me(r[2]),b:me(r[3]),a:ye(r[4]),format:i?"name":"hex8"};if(r=Oe.hex6.exec(e))return{r:me(r[1]),g:me(r[2]),b:me(r[3]),format:i?"name":"hex"};if(r=Oe.hex4.exec(e))return{r:me(r[1]+""+r[1]),g:me(r[2]+""+r[2]),b:me(r[3]+""+r[3]),a:ye(r[4]+""+r[4]),format:i?"name":"hex8"};if(r=Oe.hex3.exec(e))return{r:me(r[1]+""+r[1]),g:me(r[2]+""+r[2]),b:me(r[3]+""+r[3]),format:i?"name":"hex"};return!1}(e));"object"==typeof e&&(Ce(e.r)&&Ce(e.g)&&Ce(e.b)?(l=e.r,d=e.g,c=e.b,t={r:255*he(l,255),g:255*he(d,255),b:255*he(c,255)},s=!0,a="%"===String(e.r).slice(-1)?"prgb":"rgb"):Ce(e.h)&&Ce(e.s)&&Ce(e.v)?(r=be(e.s),i=be(e.v),t=function(e,t,o){e=6*he(e,360),t=he(t,100),o=he(o,100);const r=Math.floor(e),i=e-r,n=o*(1-t),s=o*(1-i*t),a=o*(1-(1-i)*t),l=r%6,d=[o,s,n,n,a,o][l],c=[a,o,o,s,n,n][l],u=[n,n,a,o,o,qw][l];return{r:255*d,g:255*c,b:255*u}}(e.h,r,i),s=!0,a="hsv"):Ce(e.h)&&Ce(e.s)&&Ce(e.l)&&(r=be(e.s),n=be(e.l),t=function(e,t,o){let r,i,n;function s(e,t,o){return o<0&&(o+=1),o>1&&(o-=1),o<1/6?e+6*(t-e)*o:o<.5?t:o<2/3?e+(t-e)*(2/3-o)*6:e}if(e=he(e,360),t=he(t,100),o=he(o,100),0===t)r=i=n=o;else{const a=o<.5?o*(1+t):o+t-o*t,l=2*o-a;r=s(l,a,e+1/3),i=s(l,a,e),n=s(l,a,e-1/3)}return{r:255*r,g:255*i,b:255*n}}(e.h,r,n),s=!0,a="hsl"),e.hasOwnProperty("a")&&(o=e.a));var l,d,c;return o=ue(o),{ok:s,format:e.format||a,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:o}}(e);this._originalInput=e,this._r=o.r,this._g=o.g,this._b=o.b,this._a=o.a,this._roundA=Math.round(100*this._a)/100,this._format=t.format||o.format,this._gradientType=t.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=o.ok}isDark(){return this.getBrightness()<128}isLight(){return!this.isDark()}isValid(){return this._ok}getOriginalInput(){return this._originalInput}getFormat(){return this._format}getAlpha(){return this._a}getBrightness(){const e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3}getLuminance(){const e=this.toRgb(),t=e.r/255,o=e.g/255,r=e.b/255;return.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4))}setAlpha(e){return this._a=ue(e),this._roundA=Math.round(100*this._a)/100,this}toHsv(){const e=H(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}}toHsvString(){const e=H(this._r,this._g,this._b),t=Math.round(360*e.h),o=Math.round(100*e.s),r=Math.round(100*e.v);return 1==this._a?`hsv(${t}, ${o}%, ${r}%)`:`hsva(${t}, ${o}%, ${r}%, ${this._roundA})`}toHsl(){const e=_(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}}toHslString(){const e=_(this._r,this._g,this._b),t=Math.round(360*e.h),o=Math.round(100*e.s),r=Math.round(100*e.l);return 1==this._a?`hsl(${t}, ${o}%, ${r}%)`:`hsla(${t}, ${o}%, ${r}%, ${this._roundA})`}toHex(e){return K(this._r,this._g,this._b,e)}toHexString(e){return"#"+this.toHex(e)}toHex8(e){return function(e,t,o,r,i){const n=[ge(Math.round(e).toString(16)),ge(Math.round(t).toString(16)),ge(Math.round(o).toString(16)),ge(fe(r))];if(i&&n[0].charAt(0)==n[0].charAt(1)&&n[1].charAt(0)==n[1].charAt(1)&&n[2].charAt(0)==n[2].charAt(1)&&n[3].charAt(0)==n[3].charAt(1))return n[0].charAt(0)+n[1].charAt(0)+n[2].charAt(0)+n[3].charAt(0);return n.join("")}(this._r,this._g,this._b,this._a,e)}toHex8String(e){return"#"+this.toHex8(e)}toRgb(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}}toRgbString(){return 1==this._a?`rgb(${Math.round(this._r)}, ${Math.round(this._g)}, ${Math.round(this._b)})`:`rgba(${Math.round(this._r)}, ${Math.round(this._g)}, ${Math.round(this._b)}, ${this._roundA})`}toPercentageRgb(){return{r:Math.round(100*he(this._r,255))+"%",g:Math.round(100*he(this._g,255))+"%",b:Math.round(100*he(this._b,255))+"%",a:this._a}}toPercentageRgbString(){return 1==this._a?`rgb(${Math.round(100*he(this._r,255))}%, ${Math.round(100*he(this._g,255))}%, ${Math.round(100*he(this._b,255))}%)`:`rgba(${Math.round(100*he(this._r,255))}%, ${Math.round(100*he(this._g,255))}%, ${Math.round(100*he(this._b,255))}%, ${this._roundA})`}toName(){return 0===this._a?"transparent":!(this._a<1)&&(U.hexNames[K(this._r,this._g,this._b,!0)]||!1)}toFilter(e){const t="#"+Q(this._r,this._g,this._b,this._a);let o=t;const r=this._gradientType?"GradientType = 1, ":"";if(e){const t=new U(e);o="#"+Q(t._r,t._g,t._b,t._a)}return`progid:DXImageTransform.Microsoft.gradient(${r}startColorstr=${t},endColorstr=${o})`}toString(e){const t=!!e;e=e||this._format;let o=!1;const r=this._a<1&&this._a>=0;return t||!r||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(o=this.toRgbString()),"prgb"===e&&(o=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(o=this.toHexString()),"hex3"===e&&(o=this.toHexString(!0)),"hex4"===e&&(o=this.toHex8String(!0)),"hex8"===e&&(o=this.toHex8String()),"name"===e&&(o=this.toName()),"hsl"===e&&(o=this.toHslString()),"hsv"===e&&(o=this.toHsvString()),o||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()}clone(){return new U(this.toString())}_applyModification(e,...t){const o=e(this,...t);return this._r=o._r,this._g=o._g,this._b=o._b,this.setAlpha(o._a),this}lighten(...e){return this._applyModification(oe,...e)}brighten(...e){return this._applyModification(re,...e)}darken(...e){return this._applyModification(ie,...e)}desaturate(...e){return this._applyModification($,...e)}saturate(...e){return this._applyModification(ee,...e)}greyscale(...e){return this._applyModification(te,...e)}spin(...e){return this._applyModification(ne,...e)}_applyCombination(e,...t){return e(this,...t)}analogous(...e){return this._applyCombination(de,...e)}complement(...e){return this._applyCombination(se,...e)}monochromatic(...e){return this._applyCombination(ce,...e)}splitcomplement(...e){return this._applyCombination(le,...e)}triad(){return this._applyCombination(ae,3)}tetrad(){return this._applyCombination(ae,4)}static fromRatio(e,t){if("object"==typeof e){const t={};for(const o in e)e.hasOwnProperty(o)&&(t[o]="a"===o?e[o]:be(e[o]));e=t}return new U(e,t)}static equals(e,t){return!(!e||!t)&&new U(e).toRgbString()===new U(t).toRgbString()}static random(){return U.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})}static mix(e,t,o){o=0===o?0:o||50;const r=new U(e).toRgb(),i=new U(t).toRgb(),n=o/100,s={r:(i.r-r.r)*n+r.r,g:(i.g-r.g)*n+r.g,b:(i.b-r.b)*n+r.b,a:(i.a-r.a)*n+r.a};return new U(s)}static readability(e,t){const o=new U(e),r=new U(t);return(Math.max(o.getLuminance(),r.getLuminance())+.05)/(Math.min(o.getLuminance(),r.getLuminance())+.05)}static isReadable(e,t,o){const r=U.readability(e,t);let i=!1;const n=function(e){let t,o;t=((e=e||{level:"AA",size:"small"}).level||"AA").toUpperCase(),o=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA");"small"!==o&&"large"!==o&&(o="small");return{level:t,size:o}}(o);switch(n.level+n.size){case"AAsmall":case"AAAlarge":i=r>=4.5;break;case"AAlarge":i=r>=3;break;case"AAAsmall":i=r>=7}return i}static mostReadable(e,t,o={}){let r,i=null,n=0;const{includeFallbackColors:s,level:a,size:l}=o;for(const o of t)r=U.readability(e,o),r>n&&(n=r,i=new U(o));return U.isReadable(e,i,{level:a,size:l})||!s?i:(o.includeFallbackColors=!1,U.mostReadable(e,["#fff","#000"],o))}}function _(e,t,o){e=he(e,255),t=he(t,255),o=he(o,255);const r=Math.max(e,t,o),i=Math.min(e,t,o);let n,s;const a=(r+i)/2;if(r==i)n=s=0;else{const l=r-i;switch(s=a>.5?l/(2-r-i):l/(r+i),r){case e:n=(t-o)/l+(t<o?6:0);break;case t:n=(o-e)/l+2;break;case o:n=(e-t)/l+4}n/=6}return{h:n,s,l:a}}function H(e,t,o){e=he(e,255),t=he(t,255),o=he(o,255);const r=Math.max(e,t,o),i=Math.min(e,t,o);let n;const s=r,a=r-i,l=0===r?0:a/r;if(r==i)n=0;else{switch(r){case e:n=(t-o)/a+(t<o?6:0);break;case t:n=(o-e)/a+2;break;case o:n=(e-t)/a+4}n/=6}return{h:n,s:l,v:s}}function K(e,t,o,r){const i=[ge(Math.round(e).toString(16)),ge(Math.round(t).toString(16)),ge(Math.round(o).toString(16))];return r&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0):i.join("")}function Q(e,t,o,r){return[ge(fe(r)),ge(Math.round(e).toString(16)),ge(Math.round(t).toString(16)),ge(Math.round(o).toString(16))].join("")}function $(e,t){t=0===t?0:t||10;const o=new U(e).toHsl();return o.s-=t/100,o.s=pe(o.s),new U(o)}function ee(e,t){t=0===t?0:t||10;const o=new U(e).toHsl();return o.s+=t/100,o.s=pe(o.s),new U(o)}function te(e){return new U(e).desaturate(100)}function oe(e,t){t=0===t?0:t||10;const o=new U(e).toHsl();return o.l+=t/100,o.l=pe(o.l),new U(o)}function re(e,t){t=0===t?0:t||10;const o=new U(e).toRgb();return o.r=Math.max(0,Math.min(255,o.r-Math.round(-t/100*255))),o.g=Math.max(0,Math.min(255,o.g-Math.round(-t/100*255))),o.b=Math.max(0,Math.min(255,o.b-Math.round(-t/100*255))),new U(o)}function ie(e,t){t=0===t?0:t||10;const o=new U(e).toHsl();return o.l-=t/100,o.l=pe(o.l),new U(o)}function ne(e,t){const o=new U(e).toHsl(),r=(o.h+t)%360;return o.h=r<0?360+r:r,new U(o)}U.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},U.hexNames=function(e){const t={};for(const o in e)e.hasOwnProperty(o)&&(t[e[o]]=o);return t}(U.names);const se=e=>{const t=new U(e).toHsl();return t.h=(t.h+180)%360,new U(t)},ae=(e,t)=>{if(isNaN(t)||t<=0)throw new Error("Argument to polyad must be a positive number");const o=new U(e).toHsl(),r=[new U(e)],i=360/t;for(let e=1;e<t;e++)r.push(new U({h:(o.h+e*i)%360,s:o.s,l:o.l}));return r};function le(e){const t=new U(e).toHsl(),o=t.h;return[new U(e),new U({h:(o+72)%360,s:t.s,l:t.l}),new U({h:(o+216)%360,s:t.s,l:t.l})]}function de(e,t,o){t=t||6,o=o||30;const r=new U(e).toHsl(),i=360/o,n=[new U(e)];for(r.h=(r.h-(i*t>>1)+720)%360;--t;)r.h=(r.h+i)%360,n.push(new U(r));return n}function ce(e,t){t=t||6;const o=new U(e).toHsv(),r=o.h,i=o.s;let n=o.v;const s=[],a=1/t;for(;t--;)s.push(new U({h:r,s:i,v:n})),n=(n+a)%1;return s}function ue(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function he(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");const o=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=Math.min(t,Math.max(0,parseFloat(e))),o&&(e=parseInt(e*t,10)/100),Math.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function pe(e){return Math.min(1,Math.max(0,e))}function me(e){return parseInt(e,16)}function ge(e){return 1==e.length?"0"+e:""+e}function be(e){return e<=1&&(e=100*e+"%"),e}function fe(e){return Math.round(255*parseFloat(e)).toString(16)}function ye(e){return me(e)/255}const Oe=(()=>{const e="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",t=`[\\s|\\(]+(${e})[,|\\s]+(${e})[,|\\s]+(${e})\\s*\\)?`,o=`[\\s|\\(]+(${e})[,|\\s]+(${e})[,|\\s]+(${e})[,|\\s]+(${e})\\s*\\)?`;return{CSS_UNIT:new RegExp(e),rgb:new RegExp("rgb"+t),rgba:new RegExp("rgba"+o),hsl:new RegExp("hsl"+t),hsla:new RegExp("hsla"+o),hsv:new RegExp("hsv"+t),hsva:new RegExp("hsva"+o),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}})();function Ce(e){return!!Oe.CSS_UNIT.exec(e)}function Se(e,t){e.decorations||(e.decorations={}),["top","right","bottom","left"].forEach((o=>{e.decorations[o]||(e.decorations[o]={}),e.decorations[o].style||(e.decorations[o].style={}),e.decorations[o].style.fontColor=t}))}function ve(e){const t={};if((e.primaryColor||e.dotsGradient)&&(t.dotsOptions={...t.dotsOptions,...e.primaryColor&&{color:e.primaryColor},...e.dotsGradient&&{gradient:e.dotsGradient}}),(e.secondaryColor||e.cornersGradient)&&(t.cornersSquareOptions={...t.cornersSquareOptions,...e.secondaryColor&&{color:e.secondaryColor},...e.cornersGradient&&{gradient:e.cornersGradient}},t.cornersDotOptions={...t.cornersDotOptions,...e.secondaryColor&&{color:e.secondaryColor}}),(e.thirdColor||e.cornersDotGradient)&&(t.cornersDotOptions={...t.cornersDotOptions,...e.thirdColor&&{color:e.thirdColor},...e.cornersDotGradient&&{gradient:e.cornersDotGradient}}),(e.backgroundColor||e.backgroundGradient)&&(t.backgroundOptions={...t.backgroundOptions,...e.backgroundColor&&{color:e.backgroundColor},...e.backgroundGradient&&{gradient:e.backgroundGradient}}),e.dotShape&&(t.dotsOptions={...t.dotsOptions,type:e.dotShape}),e.cornerSquareShape&&(t.cornersSquareOptions={...t.cornersSquareOptions,type:e.cornerSquareShape}),e.cornerDotShape&&(t.cornersDotOptions={...t.cornersDotOptions,type:e.cornerDotShape}),e.logo&&(t.image=e.logo),(void 0!==e.logoSize||e.logoMode||void 0!==e.logoMargin||e.logoBackgroundColor||void 0!==e.logoPadding||void 0!==e.logoRadius)&&(t.imageOptions={...t.imageOptions,...void 0!==e.logoSize&&{imageSize:e.logoSize},...e.logoMode&&{mode:e.logoMode},...void 0!==e.logoMargin&&{margin:e.logoMargin},...e.logoBackgroundColor&&{backgroundColor:e.logoBackgroundColor},...void 0!==e.logoPadding&&{padding:e.logoPadding},...void 0!==e.logoRadius&&{radius:e.logoRadius}}),e.borderColor||void 0!==e.borderThickness||void 0!==e.borderRadius||e.borderInnerColor||void 0!==e.borderInnerThickness||void 0!==e.borderInnerRadius||e.borderOuterColor||void 0!==e.borderOuterThickness||e.borderTextTop||e.borderTextRight||e.borderTextBottom||e.borderTextLeft||e.borderFontFace||void 0!==e.borderFontSize||e.borderFontColor||void 0!==e.borderLetterSpacing||e.borderTextTransform||e.borderFontWeight){t.borderOptions||(t.borderOptions={});const o=t.borderOptions;e.borderColor&&(o.color=e.borderColor),void 0!==e.borderThickness&&(o.thickness=e.borderThickness),void 0!==e.borderRadius&&(o.radius=String(e.borderRadius)),void 0===e.borderInnerColor&&void 0===e.borderInnerThickness||(o.borderInner||(o.borderInner={}),void 0!==e.borderInnerColor&&(o.borderInner.color=e.borderInnerColor),void 0!==e.borderInnerThickness&&(o.borderInner.thickness=e.borderInnerThickness)),void 0!==e.borderInnerRadius&&(o.inner||(o.inner={}),o.inner.radius=String(e.borderInnerRadius)),void 0===e.borderOuterColor&&void 0===e.borderOuterThickness||(o.borderOuter||(o.borderOuter={}),void 0!==e.borderOuterColor&&(o.borderOuter.color=e.borderOuterColor),void 0!==e.borderOuterThickness&&(o.borderOuter.thickness=e.borderOuterThickness));const r={};e.borderFontFace&&(r.fontFace=e.borderFontFace),void 0!==e.borderFontSize&&(r.fontSize=e.borderFontSize),e.borderFontColor&&(r.fontColor=e.borderFontColor),void 0!==e.borderLetterSpacing&&(r.letterSpacing=e.borderLetterSpacing),e.borderTextTransform&&(r.textTransform=e.borderTextTransform),e.borderFontWeight&&(r.fontWeight=e.borderFontWeight),o.decorations||(o.decorations={});const i=o.decorations?JSON.parse(JSON.stringify(o.decorations)):{};let n=!1;Object.keys(r).length>0&&(n=!0,["top","right","bottom","left"].forEach((e=>{i[e]||(i[e]={}),i[e].style||(i[e].style={}),i[e].style={...i[e].style,...r}}))),["top","right","bottom","left"].forEach((t=>{var o,s;const a=`borderText${t.charAt(0).toUpperCase()+t.slice(1)}`,l=e[a];var d;void 0!==l?(i[t]||(i[t]={}),i[t]={...i[t],value:l,enableText:!0,style:{...(null===(d=i[t])||void 0===d?void 0:d.style)||{},...r}},n=!0):null!==(o=i[t])&&void 0!==o&&o.value&&Object.keys(r).length>0&&(null===(s=i[t])||void 0===s||!s.style)&&(i[t].style||(i[t].style={}),i[t].style={...i[t].style,...r},n=!0)})),n&&(o.decorations=i)}if(!!(e.primaryColor||e.secondaryColor||e.thirdColor||e.backgroundColor)){t.borderOptions||(t.borderOptions={});const o=t.borderOptions;if(e.secondaryColor&&!e.borderColor){const t=new U(e.secondaryColor).isDark();o.color=new U(e.primaryColor).darken(t?-12:12).toString()}if(e.thirdColor&&!e.borderInnerColor&&(o.borderInner||(o.borderInner={}),o.borderInner.color=new U(e.thirdColor).darken(2).toString()),e.primaryColor&&!e.borderOuterColor&&(o.borderOuter=o.borderOuter||{},o.borderOuter.color=new U(e.primaryColor).darken(2).toString()),e.backgroundColor&&!e.borderFontColor&&o.color){const t=new U(e.backgroundColor),r=new U(o.color),i=U.readability(t,r),n=t.isDark();if(i<2){Se(o,(n?t.lighten(15):t.darken(15)).toString())}else{Se(o,(n?t.lighten(20):t.lighten(10)).toString())}}}return t}function ke(e){const t=[];return void 0!==e.logoSize&&("number"!=typeof e.logoSize||e.logoSize<0||e.logoSize>1)&&t.push("logoSize must be a number between 0 and 1."),{isValid:0===t.length,errors:t}}class we{constructor(){}close(){}}class Ae extends we{constructor(e){super(),this.istream=e,this.buffer=0,this.buflen=0}readByte(){for(;this.buflen<8;){const e=this.istream.readByte();if(-1==e){if(0==this.buflen)return-1;throw new Error("unexpected end of file./"+this.buflen)}if(e=="=".charCodeAt(0))return this.buflen=0,-1;Ae.isWhitespace(e)||(this.buffer=this.buffer<<6|Ae.decode(e),this.buflen+=6)}const e=this.buffer>>>this.buflen-8&255;return this.buflen-=8,e}static isWhitespace(e){return e=="\v".charCodeAt(0)||e=="\t".charCodeAt(0)||e=="\r".charCodeAt(0)||e=="\n".charCodeAt(0)}static decode(e){if("A".charCodeAt(0)<=e&&e<="Z".charCodeAt(0))return e-"A".charCodeAt(0);if("a".charCodeAt(0)<=e&&e<="z".charCodeAt(0))return e-"a".charCodeAt(0)+26;if("0".charCodeAt(0)<=e&&e<="9".charCodeAt(0))return e-"0".charCodeAt(0)+52;if(e=="+".charCodeAt(0))return 62;if(e=="/".charCodeAt(0))return 63;throw new Error("c:"+e)}}class Te extends we{constructor(e){super(),this.bytes=e,this.pos=0}readByte(){if(this.pos<this.bytes.length){const e=this.bytes[this.pos];return this.pos+=1,e}return-1}}(function(e,t){const o=(()=>{const o=new Ae(new Te(function(e){const t=[];for(let o=0;o<e.length;o+=1)t.push(e.charCodeAt(o));return t}(e))),r=()=>{const e=o.readByte();if(-1==e)throw new Error("eof");return e};let i=0;const n={};for(;;){const e=o.readByte();if(-1==e)break;const t=r(),s=r()<<8|r();n[String.fromCharCode(e<<8|t)]=s,i+=1}if(i!=t)throw new Error(i+"!="+t);return n})(),r="?".charCodeAt(0)})("AAAAAAABAAEAAgACAAMAAwAEAAQABQAFAAYABgAHAAcACAAIAAkACQAKAAoACwALAAwADAANAA0ADgAOAA8ADwAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAB4AHgAfAB8AIAAgACEAIQAiACIAIwAjACQAJAAlACUAJgAmACcAJwAoACgAKQApACoAKgArACsALAAsAC0ALQAuAC4ALwAvADAAMAAxADEAMgAyADMAMwA0ADQANQA1ADYANgA3ADcAOAA4ADkAOQA6ADoAOwA7ADwAPAA9AD0APgA+AD8APwBAAEAAQQBBAEIAQgBDAEMARABEAEUARQBGAEYARwBHAEgASABJAEkASgBKAEsASwBMAEwATQBNAE4ATgBPAE8AUABQAFEAUQBSAFIAUwBTAFQAVABVAFUAVgBWAFcAVwBYAFgAWQBZAFoAWgBbAFsAXABcAF0AXQBeAF4AXwBfAGAAYABhAGEAYgBiAGMAYwBkAGQAZQBlAGYAZgBnAGcAaABoAGkAaQBqAGoAawBrAGwAbABtAG0AbgBuAG8AbwBwAHAAcQBxAHIAcgBzAHMAdAB0AHUAdQB2AHYAdwB3AHgAeAB5AHkAegB6AHsAewB8AHwAfQB9AH4AfgB/AH8AooGRAKOBkgCngZgAqIFOAKyBygCwgYsAsYF9ALSBTAC2gfcA14F+APeBgAORg58DkoOgA5ODoQOUg6IDlYOjA5aDpAOXg6UDmIOmA5mDpwOag6gDm4OpA5yDqgOdg6sDnoOsA5+DrQOgg64DoYOvA6ODsAOkg7EDpYOyA6aDswOng7QDqIO1A6mDtgOxg78DsoPAA7ODwQO0g8IDtYPDA7aDxAO3g8UDuIPGA7mDxwO6g8gDu4PJA7yDygO9g8sDvoPMA7+DzQPAg84DwYPPA8OD0APEg9EDxYPSA8aD0wPHg9QDyIPVA8mD1gQBhEYEEIRABBGEQQQShEIEE4RDBBSERAQVhEUEFoRHBBeESAQYhEkEGYRKBBqESwQbhEwEHIRNBB2ETgQehE8EH4RQBCCEUQQhhFIEIoRTBCOEVAQkhFUEJYRWBCaEVwQnhFgEKIRZBCmEWgQqhFsEK4RcBCyEXQQthF4ELoRfBC+EYAQwhHAEMYRxBDKEcgQzhHMENIR0BDWEdQQ2hHcEN4R4BDiEeQQ5hHoEOoR7BDuEfAQ8hH0EPYR+BD6EgAQ/hIEEQISCBEGEgwRChIQEQ4SFBESEhgRFhIcERoSIBEeEiQRIhIoESYSLBEqEjARLhI0ETISOBE2EjwROhJAET4SRBFGEdiAQgV0gFIFcIBaBYSAYgWUgGYFmIByBZyAdgWggIIH1ICGB9iAlgWQgJoFjIDCB8SAygYwgM4GNIDuBpiEDgY4hK4HwIZCBqSGRgaohkoGoIZOBqyHSgcsh1IHMIgCBzSICgd0iA4HOIgeB3iIIgbgiC4G5IhKBfCIageMiHYHlIh6BhyIggdoiJ4HIIiiBySIpgb8iKoG+IiuB5yIsgegiNIGIIjWB5iI9geQiUoHgImCBgiJhgd8iZoGFImeBhiJqgeEia4HiIoKBvCKDgb0ihoG6IoeBuyKlgdsjEoHcJQCEnyUBhKolAoSgJQOEqyUMhKElD4SsJRCEoiUThK0lFISkJReEryUYhKMlG4SuJRyEpSUdhLolIIS1JSOEsCUkhKclJYS8JSiEtyUrhLIlLISmJS+EtiUwhLslM4SxJTSEqCU3hLglOIS9JTuEsyU8hKklP4S5JUKEviVLhLQloIGhJaGBoCWygaMls4GiJbyBpSW9gaQlxoGfJceBniXLgZslzoGdJc+BnCXvgfwmBYGaJgaBmSZAgYomQoGJJmqB9CZtgfMmb4HyMACBQDABgUEwAoFCMAOBVjAFgVgwBoFZMAeBWjAIgXEwCYFyMAqBczALgXQwDIF1MA2BdjAOgXcwD4F4MBCBeTARgXowEoGnMBOBrDAUgWswFYFsMByBYDBBgp8wQoKgMEOCoTBEgqIwRYKjMEaCpDBHgqUwSIKmMEmCpzBKgqgwS4KpMEyCqjBNgqswToKsME+CrTBQgq4wUYKvMFKCsDBTgrEwVIKyMFWCszBWgrQwV4K1MFiCtjBZgrcwWoK4MFuCuTBcgrowXYK7MF6CvDBfgr0wYIK+MGGCvzBigsAwY4LBMGSCwjBlgsMwZoLEMGeCxTBogsYwaYLHMGqCyDBrgskwbILKMG2CyzBugswwb4LNMHCCzjBxgs8wcoLQMHOC0TB0gtIwdYLTMHaC1DB3gtUweILWMHmC1zB6gtgwe4LZMHyC2jB9gtswfoLcMH+C3TCAgt4wgYLfMIKC4DCDguEwhILiMIWC4zCGguQwh4LlMIiC5jCJgucwioLoMIuC6TCMguowjYLrMI6C7DCPgu0wkILuMJGC7zCSgvAwk4LxMJuBSjCcgUswnYFUMJ6BVTChg0AwooNBMKODQjCkg0MwpYNEMKaDRTCng0YwqINHMKmDSDCqg0kwq4NKMKyDSzCtg0wwroNNMK+DTjCwg08wsYNQMLKDUTCzg1IwtINTMLWDVDC2g1Uwt4NWMLiDVzC5g1gwuoN