{"version":3,"sources":["webpack://vue-qr/webpack/universalModuleDefinition","webpack://vue-qr/webpack/bootstrap","webpack://vue-qr/./node_modules/_@babel_runtime@7.14.6@@babel/runtime/regenerator/index.js","webpack://vue-qr/./node_modules/_@babel_runtime@7.14.6@@babel/runtime/helpers/asyncToGenerator.js","webpack://vue-qr/./src/packages/gif.worker.js","webpack://vue-qr/./node_modules/_@babel_runtime@7.14.6@@babel/runtime/helpers/typeof.js","webpack://vue-qr/./node_modules/_worker-loader@3.0.8@worker-loader/dist/runtime/inline.js","webpack://vue-qr/./node_modules/_regenerator-runtime@0.13.7@regenerator-runtime/runtime.js","webpack://vue-qr/./src/packages/vue-qr.vue?9832","webpack://vue-qr/./node_modules/_uuid@8.3.2@uuid/dist/esm-browser/rng.js","webpack://vue-qr/./node_modules/_uuid@8.3.2@uuid/dist/esm-browser/regex.js","webpack://vue-qr/./node_modules/_uuid@8.3.2@uuid/dist/esm-browser/stringify.js","webpack://vue-qr/./node_modules/_uuid@8.3.2@uuid/dist/esm-browser/validate.js","webpack://vue-qr/./node_modules/_uuid@8.3.2@uuid/dist/esm-browser/v4.js","webpack://vue-qr/./src/packages/util.js","webpack://vue-qr/./src/packages/imgLoaded.js","webpack://vue-qr/./src/packages/readAsArrayBuffer.js","webpack://vue-qr/./src/packages/vue-qr.vue","webpack://vue-qr/./node_modules/_vue-loader@15.9.7@vue-loader/lib/runtime/componentNormalizer.js","webpack://vue-qr/src/packages/vue-qr.vue","webpack://vue-qr/./src/packages/index.js","webpack://vue-qr/./src/index.js","webpack://vue-qr/./src/packages/ByteStream.js","webpack://vue-qr/./src/packages/DataParser.js","webpack://vue-qr/./src/packages/Parsers.js","webpack://vue-qr/./src/packages/schemaGIF.js","webpack://vue-qr/./src/packages/Gif.js","webpack://vue-qr/./src/packages/gifjs.js","webpack://vue-qr/./src/packages/awesome-qr.js"],"names":["root","factory","exports","module","define","amd","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","fn","self","args","arguments","apply","err","undefined","Worker_fn","_typeof","obj","iterator","constructor","content","workerConstructor","workerOptions","url","globalScope","window","blob","Blob","e","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","append","getBlob","URL","webkitURL","objectURL","createObjectURL","worker","revokeObjectURL","concat","encodeURIComponent","Error","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","configurable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","method","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","result","__await","unwrapped","TypeError","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","toString","keys","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","getRandomValues","rnds8","Uint8Array","rng","crypto","msCrypto","uuid","test","byteToHex","substr","arr","offset","toLowerCase","options","buf","rnds","random","toBoolean","val","imgLoaded","img","Image","onload","onerror","src","setAttribute","readAsArrayBuffer","callback","xhr","XMLHttpRequest","responseType","reader","FileReader","onloadend","response","open","send","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","props","text","String","required","qid","correctLevel","Number","default","size","margin","colorDark","colorLight","bgSrc","background","backgroundDimming","logoSrc","logoBackgroundColor","gifBgSrc","logoScale","logoMargin","logoCornerRadius","whiteMargin","Boolean","dotScale","autoColor","binarize","binarizeThreshold","bindElement","backgroundColor","data","AwesomeQRCode","watch","$props","deep","handler","main","mounted","methods","_h","$createElement","_c","_self","_b","staticStyle","id","_e","vueQr","install","Vue","component","components","map","ByteStream","pos","readByte","peekByte","readBytes","bytes","Array","peekBytes","readString","len","str","fromCharCode","readBitArray","bite","readUnsigned","littleEndian","a","DataParser","stream","output","parse","schema","parseParts","part","parsePart","label","requires","loop","items","item","parts","parser","skip","bits","parseBits","details","out","index","reduce","Parsers","readArray","countFunc","count","subBlocks","gce","codes","future","disposal","userInput","transparentColorGiven","image","exists","interlaced","sort","descriptor","lct","Math","pow","blockSize","frames","nextCode","schemaGIF","resolution","lsd","gct","GIF","arrayBuffer","byteData","raw","gifSchema","hasImages","f","decompressFrame","buildPatch","frame","totalPixels","width","height","pixels","minCodeSize","pixelCount","available","clear","code_mask","code_size","end_of_information","in_code","old_code","code","datum","data_size","first","top","bi","pi","npix","dstPixels","prefix","suffix","pixelStack","MAX_STACK_SIZE","lzw","blocks","newPixels","rows","cpRow","toRow","fromRow","fromPixels","splice","offsets","steps","pass","deinterlace","dims","left","colorTable","delay","disposalType","extras","transparentIndex","transparentColorIndex","patch","patchData","Uint8ClampedArray","colorIndex","color","generatePatch","decompressFrames","UA","browser","platform","ua","EventEmitter","_events","_maxListeners","isFunction","isObject","isUndefined","defaultMaxListeners","setMaxListeners","emit","er","listeners","addListener","listener","newListener","warned","console","trace","on","once","fired","g","removeListener","list","position","removeAllListeners","listenerCount","evlistener","emitter","navigator","userAgent","match","document","documentMode","version","parseFloat","parseInt","hasProp","indexOf","superClass","defaults","frameDefaults","child","__super__","extend","gifWorker","require","base","running","freeWorkers","activeWorkers","setOptions","workerScript","workers","repeat","quality","transparent","debug","dither","copy","setOption","_canvas","results","addFrame","ImageData","CanvasRenderingContext2D","WebGLRenderingContext","getContextData","childNodes","getImageData","j","numWorkers","ref","nextFrame","finishedFrames","imageParts","spawnWorkers","globalPalette","renderNextFrame","abort","shift","log","terminate","_this","min","Worker","onmessage","event","frameFinished","finishRendering","k","len1","len2","len3","page","ref1","ref2","pageSize","cursor","round","set","task","getTask","postMessage","ctx","createElement","getContext","setFill","fillRect","drawImage","last","canTransfer","QR8bitByte","QRMode","MODE_8BIT_BYTE","parsedData","byteArray","charCodeAt","unshift","QRCodeModel","typeNumber","errorCorrectLevel","moduleCount","dataCache","dataList","getLength","buffer","write","put","addData","newData","isDark","row","col","getModuleCount","make","rsBlocks","QRRSBlock","getRSBlocks","QRBitBuffer","totalDataCount","dataCount","QRUtil","getLengthInBits","makeImpl","getBestMaskPattern","maskPattern","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","minLostPoint","pattern","lostPoint","getLostPoint","createMovieClip","target_mc","instance_name","depth","qr_mc","createEmptyMovieClip","y","x","beginFill","moveTo","lineTo","endFill","getPatternPosition","getBCHTypeNumber","mod","floor","getBCHTypeInfo","inc","bitIndex","byteIndex","dark","getMask","PAD0","PAD1","putBit","createBytes","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","ecCount","totalCount","max","rsPoly","getErrorCorrectPolynomial","modPoly","QRPolynomial","modIndex","totalCodeCount","MODE_NUMBER","MODE_ALPHA_NUM","MODE_KANJI","QRErrorCorrectLevel","L","M","Q","H","QRMaskPattern","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","getBCHDigit","digit","errorCorrectLength","multiply","QRMath","gexp","qrCode","sameCount","darkCount","abs","glog","LOG_TABLE","EXP_TABLE","num","ratio","RS_BLOCK_TABLE","rsBlock","getRsBlockTable","bufIndex","bit","Drawing","_onMakeImage","_elImage","_elCanvas","toDataURL","style","display","_safeSetDataURI","fSuccess","fFail","_fFail","_fSuccess","_bSupportDataURI","el","fOnError","onabort","htOption","_bIsPainted","_htOption","_oContext","alt","_callback","_bindElement","draw","oQRCode","_tCanvas","nCount","rawSize","rawMargin","ceil","rawViewportSize","nSize","viewportSize","gifBackground","gifFrames","save","translate","_bkgCanvas","_bContext","_maskCanvas","gif","b","backgroundImage","avgRGB","imgEl","defaultRGB","canvas","rgb","naturalHeight","offsetHeight","naturalWidth","offsetWidth","getAverageRGB","maskedDots","rect","fillStyle","fill","agnPatternCenter","xyOffset","bIsDark","isBlkPosCtr","bProtected","nLeft","nTop","strokeStyle","lineWidth","_fillRectWithMask","protectorStyle","edgeCenter","agnX","agnY","_drawAlignProtector","_drawAlign","logoImage","restore","logoSize","_prepareRoundedCornerClip","clip","threshold","_greyscale","putImageData","_fCanvas","_fContext","getElementById","nodeName","elStyle","gifOutput","rawBkg","hRawBkg","patchCanvas","hPatchCanvas","GIFE","createImageData","stdCanvas","hStdCanvas","target","readAsDataURL","makeImage","isPainted","clearRect","nNumber","w","beginPath","arcTo","closePath","maskSrc","bDark","fill_","centerX","centerY","nWidth","nHeight","vOption","_oQRCode","_oDrawing","makeCode","sText","CorrectLevel"],"mappings":"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EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KACvB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,EAAG,IAAK,IAAK,EAAG,IAAK,KACtB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,EAAG,IAAK,IAAK,GAAI,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,IAAK,KACV,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IACrB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,GAAI,GAAI,EAAG,GAAI,IACpB,CAAC,GAAI,IAAK,IAAK,EAAG,IAAK,KACvB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,IAC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","file":"vue-qr.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"vue-qr\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vue-qr\"] = factory();\n\telse\n\t\troot[\"vue-qr\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 5);\n","module.exports = require(\"regenerator-runtime\");\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","\nimport worker from \"!!../../node_modules/_worker-loader@3.0.8@worker-loader/dist/runtime/inline.js\";\n\nexport default function Worker_fn() {\n return worker(\"!function(t){var e={};function i(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,i),o.l=!0,o.exports}i.m=t,i.c=e,i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},i.r=function(t){\\\"undefined\\\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\\\"Module\\\"}),Object.defineProperty(t,\\\"__esModule\\\",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&\\\"object\\\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,\\\"default\\\",{enumerable:!0,value:t}),2&e&&\\\"string\\\"!=typeof t)for(var o in t)i.d(r,o,function(e){return t[e]}.bind(null,o));return r},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,\\\"a\\\",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p=\\\"/dist/\\\",i(i.s=0)}([function(t,e){!function(){var t,e,i,r=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535];function o(o,s,n,a){var h,l,u,p,f,c,y=Math.max(2,a),d=new Uint8Array(256),w=new Int32Array(5003),g=new Int32Array(5003),b=0,x=0,v=!1;function P(t,e){d[l++]=t,l>=254&&S(e)}function m(t){B(5003),x=f+2,v=!0,F(f,t)}function B(t){for(var e=0;e0&&(t.writeByte(l),t.writeBytes(d,0,l),l=0)}function T(t){return(1<0?h|=t<=8;)P(255&h,e),h>>=8,b-=8;if((x>u||v)&&(v?(u=T(i=p),v=!1):(++i,u=12==i?4096:T(i))),t==c){for(;b>0;)P(255&h,e),h>>=8,b-=8;S(e)}}this.encode=function(r){r.writeByte(y),t=o*s,e=0,function(t,e){var r,o,s,n,a,h;for(v=!1,u=T(i=p=t),c=(f=1<=0){a=5003-s,0===s&&(a=1);do{if((s-=a)<0&&(s+=5003),w[s]===r){n=g[s];continue t}}while(w[s]>=0)}F(n,e),n=o,x<4096?(g[s]=x++,w[s]=r):m(e)}else n=g[s];F(n,e),F(c,e)}(y+1,r),r.writeByte(0)}}var s;function n(t,e){var i,r,o,s,n;function a(t,e,r,o,s){i[e][0]-=t*(i[e][0]-r)/1024,i[e][1]-=t*(i[e][1]-o)/1024,i[e][2]-=t*(i[e][2]-s)/1024}function h(t,e,r,o,s){for(var a,h,l=Math.abs(e-t),u=Math.min(e+t,256),p=e+1,f=e-1,c=1;pl;)h=n[c++],pl&&((a=i[f--])[0]-=h*(a[0]-r)/(1<<18),a[1]-=h*(a[1]-o)/(1<<18),a[2]-=h*(a[2]-s)/(1<<18))}function l(t,e,r){var n,a,h,l,u,p=~(1<<31),f=p,c=-1,y=c;for(n=0;n<256;n++)a=i[n],(h=Math.abs(a[0]-t)+Math.abs(a[1]-e)+Math.abs(a[2]-r))>12))>10,s[n]-=u,o[n]+=u<<10;return s[c]+=64,o[c]-=65536,y}this.buildColormap=function(){!function(){var t,e;for(i=[],r=new Int32Array(256),o=new Int32Array(256),s=new Int32Array(256),n=new Int32Array(32),t=0;t<256;t++)e=(t<<12)/256,i[t]=new Float64Array([e,e,e,0]),s[t]=256,o[t]=0}(),function(){var i,r,o,s,u,p,f=t.length,c=30+(e-1)/3,y=f/(3*e),d=~~(y/100),w=1024,g=2048,b=g>>6;for(b<=1&&(b=0),i=0;i=f&&(x-=f),0===d&&(d=1),++i%d==0)for(w-=w/c,(b=(g-=g/30)>>6)<=1&&(b=0),p=0;p>=4,i[t][1]>>=4,i[t][2]>>=4,i[t][3]=t}(),function(){var t,e,o,s,n,a,h=0,l=0;for(t=0;t<256;t++){for(n=t,a=(o=i[t])[1],e=t+1;e<256;e++)(s=i[e])[1]>1,e=h+1;e>1,e=h+1;e<256;e++)r[e]=255}()},this.getColormap=function(){for(var t=[],e=[],r=0;r<256;r++)e[i[r][3]]=r;for(var o=0,s=0;s<256;s++){var n=e[s];t[o++]=i[n][0],t[o++]=i[n][1],t[o++]=i[n][2]}return t},this.lookupRGB=function(t,e,o){for(var s,n,a,h=1e3,l=-1,u=r[e],p=u-1;u<256||p>=0;)u<256&&((a=(n=i[u])[1]-e)>=h?u=256:(u++,a<0&&(a=-a),(s=n[0]-t)<0&&(s=-s),(a+=s)=0&&((a=e-(n=i[p])[1])>=h?p=-1:(p--,a<0&&(a=-a),(s=n[0]-t)<0&&(s=-s),(a+=s)=a.pageSize&&this.newPage(),this.pages[this.page][this.cursor++]=t},a.prototype.writeUTFBytes=function(t){for(var e=t.length,i=0;i=0&&(this.dispose=t)},l.prototype.setRepeat=function(t){this.repeat=t},l.prototype.setTransparent=function(t){this.transparent=t},l.prototype.addFrame=function(t){this.image=t,this.colorTab=this.globalPalette&&this.globalPalette.slice?this.globalPalette:null,this.getImagePixels(),this.analyzePixels(),!0===this.globalPalette&&(this.globalPalette=this.colorTab),this.firstFrame&&(this.writeLSD(),this.writePalette(),this.repeat>=0&&this.writeNetscapeExt()),this.writeGraphicCtrlExt(),this.writeImageDesc(),this.firstFrame||this.globalPalette||this.writePalette(),this.writePixels(),this.firstFrame=!1},l.prototype.finish=function(){this.out.writeByte(59)},l.prototype.setQuality=function(t){t<1&&(t=1),this.sample=t},l.prototype.setDither=function(t){!0===t&&(t=\\\"FloydSteinberg\\\"),this.dither=t},l.prototype.setGlobalPalette=function(t){this.globalPalette=t},l.prototype.getGlobalPalette=function(){return this.globalPalette&&this.globalPalette.slice&&this.globalPalette.slice(0)||this.globalPalette},l.prototype.writeHeader=function(){this.out.writeUTFBytes(\\\"GIF89a\\\")},l.prototype.analyzePixels=function(){this.colorTab||(this.neuQuant=new n(this.pixels,this.sample),this.neuQuant.buildColormap(),this.colorTab=this.neuQuant.getColormap()),this.dither?this.ditherPixels(this.dither.replace(\\\"-serpentine\\\",\\\"\\\"),null!==this.dither.match(/-serpentine/)):this.indexPixels(),this.pixels=null,this.colorDepth=8,this.palSize=7,null!==this.transparent&&(this.transIndex=this.findClosest(this.transparent,!0))},l.prototype.indexPixels=function(t){var e=this.pixels.length/3;this.indexedPixels=new Uint8Array(e);for(var i=0,r=0;r=0&&P+u=0&&m+l>16,(65280&t)>>8,255&t,e)},l.prototype.findClosestRGB=function(t,e,i,r){if(null===this.colorTab)return-1;if(this.neuQuant&&!r)return this.neuQuant.lookupRGB(t,e,i);for(var o=0,s=16777216,n=this.colorTab.length,a=0,h=0;a=0&&(e=7&dispose),e<<=2,this.out.writeByte(0|e|t),this.writeShort(this.delay),this.out.writeByte(this.transIndex),this.out.writeByte(0)},l.prototype.writeImageDesc=function(){this.out.writeByte(44),this.writeShort(0),this.writeShort(0),this.writeShort(this.width),this.writeShort(this.height),this.firstFrame||this.globalPalette?this.out.writeByte(0):this.out.writeByte(128|this.palSize)},l.prototype.writeLSD=function(){this.writeShort(this.width),this.writeShort(this.height),this.out.writeByte(240|this.palSize),this.out.writeByte(0),this.out.writeByte(0)},l.prototype.writeNetscapeExt=function(){this.out.writeByte(33),this.out.writeByte(255),this.out.writeByte(11),this.out.writeUTFBytes(\\\"NETSCAPE2.0\\\"),this.out.writeByte(3),this.out.writeByte(1),this.writeShort(this.repeat),this.out.writeByte(0)},l.prototype.writePalette=function(){this.out.writeBytes(this.colorTab);for(var t=768-this.colorTab.length,e=0;e>8&255)},l.prototype.writePixels=function(){new o(this.width,this.height,this.indexedPixels,this.colorDepth).encode(this.out)},l.prototype.stream=function(){return this.out}}()}]);\\n\", \"Worker\", undefined, undefined);\n}\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","\"use strict\";\n\n/* eslint-env browser */\n\n/* eslint-disable no-undef, no-use-before-define, new-cap */\nmodule.exports = function (content, workerConstructor, workerOptions, url) {\n var globalScope = self || window;\n\n try {\n try {\n var blob;\n\n try {\n // New API\n blob = new globalScope.Blob([content]);\n } catch (e) {\n // BlobBuilder = Deprecated, but widely implemented\n var BlobBuilder = globalScope.BlobBuilder || globalScope.WebKitBlobBuilder || globalScope.MozBlobBuilder || globalScope.MSBlobBuilder;\n blob = new BlobBuilder();\n blob.append(content);\n blob = blob.getBlob();\n }\n\n var URL = globalScope.URL || globalScope.webkitURL;\n var objectURL = URL.createObjectURL(blob);\n var worker = new globalScope[workerConstructor](objectURL, workerOptions);\n URL.revokeObjectURL(objectURL);\n return worker;\n } catch (e) {\n return new globalScope[workerConstructor](\"data:application/javascript,\".concat(encodeURIComponent(content)), workerOptions);\n }\n } catch (e) {\n if (!url) {\n throw Error(\"Inline worker is not supported\");\n }\n\n return new globalScope[workerConstructor](url, workerOptions);\n }\n};","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.bindElement)?_c('img',_vm._b({staticStyle:{\"display\":\"inline-block\"}},'img',{ id: _vm.uuid },false)):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","export function toBoolean(val) {\n if (val === '') return val\n return val === 'true' || val == '1'\n}\n","function imgLoaded(url) {\n if(!url){\n return undefined\n }\n return new Promise(function(resolve, reject) {\n if (url.slice(0, 4) == 'data') {\n let img = new Image()\n img.onload = function() {\n resolve(img)\n }\n img.onerror = function() {\n reject('Image load error')\n }\n img.src = url\n return\n }\n let img = new Image()\n img.setAttribute(\"crossOrigin\",'Anonymous')\n img.onload = function() {\n resolve(img)\n }\n img.onerror = function() {\n reject('Image load error')\n }\n img.src = url\n })\n}\nexport default imgLoaded\n","function readAsArrayBuffer(url, callback) {\n return new Promise((resolve, reject) => {\n var xhr = new XMLHttpRequest();\n xhr.responseType = \"blob\"; //设定返回数据类型为Blob\n xhr.onload = function() {\n var reader = new FileReader();\n reader.onloadend = function() {\n resolve(reader.result)\n };\n reader.readAsArrayBuffer(xhr.response); //xhr.response就是一个Blob,用FileReader读取\n };\n xhr.open(\"GET\", url);\n xhr.send();\n });\n}\nexport default readAsArrayBuffer","import { render, staticRenderFns } from \"./vue-qr.vue?vue&type=template&id=48c9e137&\"\nimport script from \"./vue-qr.vue?vue&type=script&lang=js&\"\nexport * from \"./vue-qr.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/_vue-loader@15.9.7@vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","\n\n\n","import vueQr from './vue-qr';\n\nvueQr.install = Vue => Vue.component(vueQr.name, vueQr);\n\nexport default vueQr;\n","import vueQr from './packages/index.js';\n\nconst components = [\n vueQr\n]\n\nconst install = function(Vue, opts = {}) {\n components.map(component => {\n Vue.component(component.name, component);\n })\n}\n\n/* 支持使用标签的方式引入 */\nif (typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n}\n\nexport default vueQr\n\n","function ByteStream(data) {\n this.data = data;\n this.pos = 0;\n}\n\n// read the next byte off the stream\nByteStream.prototype.readByte = function() {\n return this.data[this.pos++];\n};\n\n// look at the next byte in the stream without updating the stream position\nByteStream.prototype.peekByte = function() {\n return this.data[this.pos];\n};\n\n// read an array of bytes\nByteStream.prototype.readBytes = function(n) {\n var bytes = new Array(n);\n for (var i = 0; i < n; i++) {\n bytes[i] = this.readByte();\n }\n return bytes;\n};\n\n// peek at an array of bytes without updating the stream position\nByteStream.prototype.peekBytes = function(n) {\n var bytes = new Array(n);\n for (var i = 0; i < n; i++) {\n bytes[i] = this.data[this.pos + i];\n }\n return bytes;\n};\n\n// read a string from a byte set\nByteStream.prototype.readString = function(len) {\n var str = \"\";\n for (var i = 0; i < len; i++) {\n str += String.fromCharCode(this.readByte());\n }\n return str;\n};\n\n// read a single byte and return an array of bit booleans\nByteStream.prototype.readBitArray = function() {\n var arr = [];\n var bite = this.readByte();\n for (var i = 7; i >= 0; i--) {\n arr.push(!!(bite & (1 << i)));\n }\n return arr;\n};\n\n// read an unsigned int with endian option\nByteStream.prototype.readUnsigned = function(littleEndian) {\n var a = this.readBytes(2);\n if (littleEndian) {\n return (a[1] << 8) + a[0];\n } else {\n return (a[0] << 8) + a[1];\n }\n};\n\nexport default ByteStream\n","import ByteStream from './ByteStream'\nfunction DataParser(data) {\n this.stream = new ByteStream(data);\n // the final parsed object from the data\n this.output = {};\n}\n\nDataParser.prototype.parse = function(schema) {\n // the top level schema is just the top level parts array\n this.parseParts(this.output, schema);\n return this.output;\n};\n\n// parse a set of hierarchy parts providing the parent object, and the subschema\nDataParser.prototype.parseParts = function(obj, schema) {\n for (var i = 0; i < schema.length; i++) {\n var part = schema[i];\n this.parsePart(obj, part);\n }\n};\n\nDataParser.prototype.parsePart = function(obj, part) {\n var name = part.label;\n var value;\n\n // make sure the part meets any parse requirements\n if (part.requires && !part.requires(this.stream, this.output, obj)) {\n return;\n }\n\n if (part.loop) {\n // create a parse loop over the parts\n var items = [];\n while (part.loop(this.stream)) {\n var item = {};\n this.parseParts(item, part.parts);\n items.push(item);\n }\n obj[name] = items;\n } else if (part.parts) {\n // process any child parts\n value = {};\n this.parseParts(value, part.parts);\n obj[name] = value;\n } else if (part.parser) {\n // parse the value using a parser\n value = part.parser(this.stream, this.output, obj);\n if (!part.skip) {\n obj[name] = value;\n }\n } else if (part.bits) {\n // convert the next byte to a set of bit fields\n obj[name] = this.parseBits(part.bits);\n }\n};\n\n// combine bits to calculate value\nfunction bitsToNum(bitArray) {\n return bitArray.reduce(function(s, n) {\n return s * 2 + n;\n }, 0);\n}\n\n// parse a byte as a bit set (flags and values)\nDataParser.prototype.parseBits = function(details) {\n var out = {};\n var bits = this.stream.readBitArray();\n for (var key in details) {\n var item = details[key];\n if (item.length) {\n // convert the bit set to value\n out[key] = bitsToNum(bits.slice(item.index, item.index + item.length));\n } else {\n out[key] = bits[item.index];\n }\n }\n return out;\n};\n\nexport default DataParser","var Parsers = {\n // read a byte\n readByte: function() {\n return function(stream) {\n return stream.readByte();\n };\n },\n // read an array of bytes\n readBytes: function(length) {\n return function(stream) {\n return stream.readBytes(length);\n };\n },\n // read a string from bytes\n readString: function(length) {\n return function(stream) {\n return stream.readString(length);\n };\n },\n // read an unsigned int (with endian)\n readUnsigned: function(littleEndian) {\n return function(stream) {\n return stream.readUnsigned(littleEndian);\n };\n },\n // read an array of byte sets\n readArray: function(size, countFunc) {\n return function(stream, obj, parent) {\n var count = countFunc(stream, obj, parent);\n var arr = new Array(count);\n for (var i = 0; i < count; i++) {\n arr[i] = stream.readBytes(size);\n }\n return arr;\n };\n }\n};\n\nexport default Parsers","import Parsers from './Parsers'\n// a set of 0x00 terminated subblocks\nvar subBlocks = {\n label: \"blocks\",\n parser: function(stream) {\n var out = [];\n var terminator = 0x00;\n for (\n var size = stream.readByte();\n size !== terminator;\n size = stream.readByte()\n ) {\n out = out.concat(stream.readBytes(size));\n }\n return out;\n }\n};\n\n// global control extension\nvar gce = {\n label: \"gce\",\n requires: function(stream) {\n // just peek at the top two bytes, and if true do this\n var codes = stream.peekBytes(2);\n return codes[0] === 0x21 && codes[1] === 0xf9;\n },\n parts: [\n { label: \"codes\", parser: Parsers.readBytes(2), skip: true },\n { label: \"byteSize\", parser: Parsers.readByte() },\n {\n label: \"extras\",\n bits: {\n future: { index: 0, length: 3 },\n disposal: { index: 3, length: 3 },\n userInput: { index: 6 },\n transparentColorGiven: { index: 7 }\n }\n },\n { label: \"delay\", parser: Parsers.readUnsigned(true) },\n { label: \"transparentColorIndex\", parser: Parsers.readByte() },\n { label: \"terminator\", parser: Parsers.readByte(), skip: true }\n ]\n};\n\n// image pipeline block\nvar image = {\n label: \"image\",\n requires: function(stream) {\n // peek at the next byte\n var code = stream.peekByte();\n return code === 0x2c;\n },\n parts: [\n { label: \"code\", parser: Parsers.readByte(), skip: true },\n {\n label: \"descriptor\", // image descriptor\n parts: [\n { label: \"left\", parser: Parsers.readUnsigned(true) },\n { label: \"top\", parser: Parsers.readUnsigned(true) },\n { label: \"width\", parser: Parsers.readUnsigned(true) },\n { label: \"height\", parser: Parsers.readUnsigned(true) },\n {\n label: \"lct\",\n bits: {\n exists: { index: 0 },\n interlaced: { index: 1 },\n sort: { index: 2 },\n future: { index: 3, length: 2 },\n size: { index: 5, length: 3 }\n }\n }\n ]\n },\n {\n label: \"lct\", // optional local color table\n requires: function(stream, obj, parent) {\n return parent.descriptor.lct.exists;\n },\n parser: Parsers.readArray(3, function(stream, obj, parent) {\n return Math.pow(2, parent.descriptor.lct.size + 1);\n })\n },\n {\n label: \"data\", // the image data blocks\n parts: [{ label: \"minCodeSize\", parser: Parsers.readByte() }, subBlocks]\n }\n ]\n};\n\n// plain text block\nvar text = {\n label: \"text\",\n requires: function(stream) {\n // just peek at the top two bytes, and if true do this\n var codes = stream.peekBytes(2);\n return codes[0] === 0x21 && codes[1] === 0x01;\n },\n parts: [\n { label: \"codes\", parser: Parsers.readBytes(2), skip: true },\n { label: \"blockSize\", parser: Parsers.readByte() },\n {\n label: \"preData\",\n parser: function(stream, obj, parent) {\n return stream.readBytes(parent.text.blockSize);\n }\n },\n subBlocks\n ]\n};\n\n// application block\nvar application = {\n label: \"application\",\n requires: function(stream, obj, parent) {\n // make sure this frame doesn't already have a gce, text, comment, or image\n // as that means this block should be attached to the next frame\n //if(parent.gce || parent.text || parent.image || parent.comment){ return false; }\n\n // peek at the top two bytes\n var codes = stream.peekBytes(2);\n return codes[0] === 0x21 && codes[1] === 0xff;\n },\n parts: [\n { label: \"codes\", parser: Parsers.readBytes(2), skip: true },\n { label: \"blockSize\", parser: Parsers.readByte() },\n {\n label: \"id\",\n parser: function(stream, obj, parent) {\n return stream.readString(parent.blockSize);\n }\n },\n subBlocks\n ]\n};\n\n// comment block\nvar comment = {\n label: \"comment\",\n requires: function(stream, obj, parent) {\n // make sure this frame doesn't already have a gce, text, comment, or image\n // as that means this block should be attached to the next frame\n //if(parent.gce || parent.text || parent.image || parent.comment){ return false; }\n\n // peek at the top two bytes\n var codes = stream.peekBytes(2);\n return codes[0] === 0x21 && codes[1] === 0xfe;\n },\n parts: [\n { label: \"codes\", parser: Parsers.readBytes(2), skip: true },\n subBlocks\n ]\n};\n\n// frames of ext and image data\nvar frames = {\n label: \"frames\",\n parts: [gce, application, comment, image, text],\n loop: function(stream) {\n var nextCode = stream.peekByte();\n // rather than check for a terminator, we should check for the existence\n // of an ext or image block to avoid infinite loops\n //var terminator = 0x3B;\n //return nextCode !== terminator;\n return nextCode === 0x21 || nextCode === 0x2c;\n }\n};\n\n// main GIF schema\nvar schemaGIF = [\n {\n label: \"header\", // gif header\n parts: [\n { label: \"signature\", parser: Parsers.readString(3) },\n { label: \"version\", parser: Parsers.readString(3) }\n ]\n },\n {\n label: \"lsd\", // local screen descriptor\n parts: [\n { label: \"width\", parser: Parsers.readUnsigned(true) },\n { label: \"height\", parser: Parsers.readUnsigned(true) },\n {\n label: \"gct\",\n bits: {\n exists: { index: 0 },\n resolution: { index: 1, length: 3 },\n sort: { index: 4 },\n size: { index: 5, length: 3 }\n }\n },\n { label: \"backgroundColorIndex\", parser: Parsers.readByte() },\n { label: \"pixelAspectRatio\", parser: Parsers.readByte() }\n ]\n },\n {\n label: \"gct\", // global color table\n requires: function(stream, obj) {\n return obj.lsd.gct.exists;\n },\n parser: Parsers.readArray(3, function(stream, obj) {\n return Math.pow(2, obj.lsd.gct.size + 1);\n })\n },\n frames // content frames\n];\nexport default schemaGIF\n","import DataParser from './DataParser'\nimport gifSchema from './schemaGIF'\nfunction GIF(arrayBuffer) {\n // convert to byte array\n var byteData = new Uint8Array(arrayBuffer);\n var parser = new DataParser(byteData);\n // parse the data\n this.raw = parser.parse(gifSchema);\n\n // set a flag to make sure the gif contains at least one image\n this.raw.hasImages = false;\n for (var f = 0; f < this.raw.frames.length; f++) {\n if (this.raw.frames[f].image) {\n this.raw.hasImages = true;\n break;\n }\n }\n}\n\n// process a single gif image frames data, decompressing it using LZW\n// if buildPatch is true, the returned image will be a clamped 8 bit image patch\n// for use directly with a canvas.\nGIF.prototype.decompressFrame = function(index, buildPatch) {\n\n // make sure a valid frame is requested\n if (index >= this.raw.frames.length) {\n return null;\n }\n\n var frame = this.raw.frames[index];\n if (frame.image) {\n // get the number of pixels\n var totalPixels = frame.image.descriptor.width * frame.image.descriptor.height;\n\n // do lzw decompression\n var pixels = lzw(frame.image.data.minCodeSize, frame.image.data.blocks, totalPixels);\n\n // deal with interlacing if necessary\n if (frame.image.descriptor.lct.interlaced) {\n pixels = deinterlace(pixels, frame.image.descriptor.width);\n }\n\n // setup usable image object\n var image = {\n pixels: pixels,\n dims: {\n top: frame.image.descriptor.top,\n left: frame.image.descriptor.left,\n width: frame.image.descriptor.width,\n height: frame.image.descriptor.height\n }\n };\n\n // color table\n if (frame.image.descriptor.lct && frame.image.descriptor.lct.exists) {\n image.colorTable = frame.image.lct;\n } else {\n image.colorTable = this.raw.gct;\n }\n\n // add per frame relevant gce information\n if (frame.gce) {\n image.delay = (frame.gce.delay || 10) * 10; // convert to ms\n image.disposalType = frame.gce.extras.disposal;\n // transparency\n if (frame.gce.extras.transparentColorGiven) {\n image.transparentIndex = frame.gce.transparentColorIndex;\n }\n }\n\n // create canvas usable imagedata if desired\n if (buildPatch) {\n image.patch = generatePatch(image);\n }\n\n return image;\n }\n\n // frame does not contains image\n return null;\n\n\n /**\n * javascript port of java LZW decompression\n * Original java author url: https://gist.github.com/devunwired/4479231\n */\n function lzw(minCodeSize, data, pixelCount) {\n\n var MAX_STACK_SIZE = 4096;\n var nullCode = -1;\n\n var npix = pixelCount;\n var available, clear, code_mask, code_size, end_of_information, in_code, old_code, bits, code, i,\n datum, data_size, first, top, bi, pi;\n\n var dstPixels = new Array(pixelCount);\n var prefix = new Array(MAX_STACK_SIZE);\n var suffix = new Array(MAX_STACK_SIZE);\n var pixelStack = new Array(MAX_STACK_SIZE + 1);\n\n // Initialize GIF data stream decoder.\n data_size = minCodeSize;\n clear = 1 << data_size;\n end_of_information = clear + 1;\n available = clear + 2;\n old_code = nullCode;\n code_size = data_size + 1;\n code_mask = (1 << code_size) - 1;\n for (code = 0; code < clear; code++) {\n prefix[code] = 0;\n suffix[code] = code;\n }\n let count\n // Decode GIF pixel stream.\n datum = bits = count = first = top = pi = bi = 0;\n for (i = 0; i < npix;) {\n if (top === 0) {\n if (bits < code_size) {\n\n // get the next byte\n datum += data[bi] << bits;\n\n bits += 8;\n bi++;\n continue;\n }\n // Get the next code.\n code = datum & code_mask;\n datum >>= code_size;\n bits -= code_size;\n // Interpret the code\n if ((code > available) || (code == end_of_information)) {\n break;\n }\n if (code == clear) {\n // Reset decoder.\n code_size = data_size + 1;\n code_mask = (1 << code_size) - 1;\n available = clear + 2;\n old_code = nullCode;\n continue;\n }\n if (old_code == nullCode) {\n pixelStack[top++] = suffix[code];\n old_code = code;\n first = code;\n continue;\n }\n in_code = code;\n if (code == available) {\n pixelStack[top++] = first;\n code = old_code;\n }\n while (code > clear) {\n pixelStack[top++] = suffix[code];\n code = prefix[code];\n }\n\n first = suffix[code] & 0xff;\n pixelStack[top++] = first;\n\n // add a new string to the table, but only if space is available\n // if not, just continue with current table until a clear code is found\n // (deferred clear code implementation as per GIF spec)\n if (available < MAX_STACK_SIZE) {\n prefix[available] = old_code;\n suffix[available] = first;\n available++;\n if (((available & code_mask) === 0) && (available < MAX_STACK_SIZE)) {\n code_size++;\n code_mask += available;\n }\n }\n old_code = in_code;\n }\n // Pop a pixel off the pixel stack.\n top--;\n dstPixels[pi++] = pixelStack[top];\n i++;\n }\n\n for (i = pi; i < npix; i++) {\n dstPixels[i] = 0; // clear missing pixels\n }\n\n return dstPixels;\n }\n\n // deinterlace function from https://github.com/shachaf/jsgif\n function deinterlace(pixels, width) {\n\n var newPixels = new Array(pixels.length);\n var rows = pixels.length / width;\n var cpRow = function(toRow, fromRow) {\n var fromPixels = pixels.slice(fromRow * width, (fromRow + 1) * width);\n newPixels.splice.apply(newPixels, [toRow * width, width].concat(fromPixels));\n };\n\n // See appendix E.\n var offsets = [0, 4, 2, 1];\n var steps = [8, 8, 4, 2];\n\n var fromRow = 0;\n for (var pass = 0; pass < 4; pass++) {\n for (var toRow = offsets[pass]; toRow < rows; toRow += steps[pass]) {\n cpRow(toRow, fromRow);\n fromRow++;\n }\n }\n\n return newPixels;\n }\n\n // create a clamped byte array patch for the frame image to be used directly with a canvas\n // TODO: could potentially squeeze some performance by doing a direct 32bit write per iteration\n function generatePatch(image) {\n\n var totalPixels = image.pixels.length;\n var patchData = new Uint8ClampedArray(totalPixels * 4);\n for (var i = 0; i < totalPixels; i++) {\n var pos = i * 4;\n var colorIndex = image.pixels[i];\n var color = image.colorTable[colorIndex];\n patchData[pos] = color[0];\n patchData[pos + 1] = color[1];\n patchData[pos + 2] = color[2];\n patchData[pos + 3] = colorIndex !== image.transparentIndex ? 255 : 0;\n }\n\n return patchData;\n }\n};\n\n// returns all frames decompressed\nGIF.prototype.decompressFrames = function(buildPatch) {\n var frames = [];\n for (var i = 0; i < this.raw.frames.length; i++) {\n var frame = this.raw.frames[i];\n if (frame.image) {\n frames.push(this.decompressFrame(i, buildPatch));\n }\n }\n return frames;\n};\n\n\nexport default GIF","function EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\nEventEmitter.defaultMaxListeners = 10;\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError(\"n must be a positive number\");\n this._maxListeners = n;\n return this;\n};\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n if (!this._events) this._events = {};\n if (type === \"error\") {\n if (\n !this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)\n ) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er;\n } else {\n var err = new Error(\n 'Uncaught, unspecified \"error\" event. (' + er + \")\"\n );\n err.context = er;\n throw err;\n }\n }\n }\n handler = this._events[type];\n if (isUndefined(handler)) return false;\n if (isFunction(handler)) {\n switch (arguments.length) {\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++) listeners[i].apply(this, args);\n }\n return true;\n};\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n if (!isFunction(listener)) throw TypeError(\"listener must be a function\");\n if (!this._events) this._events = {};\n if (this._events.newListener)\n this.emit(\n \"newListener\",\n type,\n isFunction(listener.listener) ? listener.listener : listener\n );\n if (!this._events[type]) this._events[type] = listener;\n else if (isObject(this._events[type])) this._events[type].push(listener);\n else this._events[type] = [this._events[type], listener];\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error(\n \"(node) warning: possible EventEmitter memory \" +\n \"leak detected. %d listeners added. \" +\n \"Use emitter.setMaxListeners() to increase limit.\",\n this._events[type].length\n );\n if (typeof console.trace === \"function\") {\n console.trace();\n }\n }\n }\n return this;\n};\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener)) throw TypeError(\"listener must be a function\");\n var fired = false;\n function g() {\n this.removeListener(type, g);\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n g.listener = listener;\n this.on(type, g);\n return this;\n};\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n if (!isFunction(listener)) throw TypeError(\"listener must be a function\");\n if (!this._events || !this._events[type]) return this;\n list = this._events[type];\n length = list.length;\n position = -1;\n if (\n list === listener ||\n (isFunction(list.listener) && list.listener === listener)\n ) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit(\"removeListener\", type, listener);\n } else if (isObject(list)) {\n for (i = length; i-- > 0; ) {\n if (\n list[i] === listener ||\n (list[i].listener && list[i].listener === listener)\n ) {\n position = i;\n break;\n }\n }\n if (position < 0) return this;\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n if (this._events.removeListener)\n this.emit(\"removeListener\", type, listener);\n }\n return this;\n};\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n if (!this._events) return this;\n if (!this._events.removeListener) {\n if (arguments.length === 0) this._events = {};\n else if (this._events[type]) delete this._events[type];\n return this;\n }\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === \"removeListener\") continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners(\"removeListener\");\n this._events = {};\n return this;\n }\n listeners = this._events[type];\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n return this;\n};\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type]) ret = [];\n else if (isFunction(this._events[type])) ret = [this._events[type]];\n else ret = this._events[type].slice();\n return ret;\n};\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n if (isFunction(evlistener)) return 1;\n else if (evlistener) return evlistener.length;\n }\n return 0;\n};\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\nfunction isFunction(arg) {\n return typeof arg === \"function\";\n}\nfunction isNumber(arg) {\n return typeof arg === \"number\";\n}\nfunction isObject(arg) {\n return typeof arg === \"object\" && arg !== null;\n}\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\nvar UA, browser, mode, platform, ua;\nua = navigator.userAgent.toLowerCase();\nplatform = navigator.platform.toLowerCase();\nUA = ua.match(\n /(opera|ie|firefox|chrome|version)[\\s\\/:]([\\w\\d\\.]+)?.*?(safari|version[\\s\\/:]([\\w\\d\\.]+)|$)/\n) || [null, \"unknown\", 0];\nmode = UA[1] === \"ie\" && document.documentMode;\nbrowser = {\n name: UA[1] === \"version\" ? UA[3] : UA[1],\n version: mode || parseFloat(UA[1] === \"opera\" && UA[4] ? UA[4] : UA[2]),\n platform: {\n name: ua.match(/ip(?:ad|od|hone)/)\n ? \"ios\"\n : (ua.match(/(?:webos|android)/) ||\n platform.match(/mac|win|linux/) || [\"other\"])[0]\n }\n};\nbrowser[browser.name] = true;\nbrowser[browser.name + parseInt(browser.version, 10)] = true;\nbrowser.platform[browser.platform.name] = true;\n\nvar extend = function(child, parent) {\n for (var key in parent) {\n if (hasProp.call(parent, key)) child[key] = parent[key];\n }\n function ctor() {\n this.constructor = child;\n }\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n child.__super__ = parent.prototype;\n return child;\n },\n hasProp = {}.hasOwnProperty,\n indexOf =\n [].indexOf ||\n function(item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (i in this && this[i] === item) return i;\n }\n return -1;\n },\n slice = [].slice;\nvar GIF = (function(superClass) {\n var defaults, frameDefaults;\n extend(GIF, superClass);\n var gifWorker = require(\"./gif.worker.js\");\n\n defaults = {\n workerScript: gifWorker,\n workers: 2,\n repeat: 0,\n background: \"#fff\",\n quality: 10,\n width: null,\n height: null,\n transparent: null,\n debug: false,\n dither: false\n };\n\n frameDefaults = { delay: 500, copy: false };\n function GIF(options) {\n var base, key, value;\n this.running = false;\n this.options = {};\n this.frames = [];\n this.freeWorkers = [];\n this.activeWorkers = [];\n this.setOptions(options);\n for (key in defaults) {\n value = defaults[key];\n if ((base = this.options)[key] == null) {\n base[key] = value;\n }\n }\n }\n GIF.prototype.setOption = function(key, value) {\n this.options[key] = value;\n if (this._canvas != null && (key === \"width\" || key === \"height\")) {\n return (this._canvas[key] = value);\n }\n };\n GIF.prototype.setOptions = function(options) {\n var key, results, value;\n results = [];\n for (key in options) {\n if (!hasProp.call(options, key)) continue;\n value = options[key];\n results.push(this.setOption(key, value));\n }\n return results;\n };\n GIF.prototype.addFrame = function(image, options) {\n var frame, key;\n if (options == null) {\n options = {};\n }\n frame = {};\n frame.transparent = this.options.transparent;\n for (key in frameDefaults) {\n frame[key] = options[key] || frameDefaults[key];\n }\n if (this.options.width == null) {\n this.setOption(\"width\", image.width);\n }\n if (this.options.height == null) {\n this.setOption(\"height\", image.height);\n }\n if (\n typeof ImageData !== \"undefined\" &&\n ImageData !== null &&\n image instanceof ImageData\n ) {\n frame.data = image.data;\n } else if (\n (typeof CanvasRenderingContext2D !== \"undefined\" &&\n CanvasRenderingContext2D !== null &&\n image instanceof CanvasRenderingContext2D) ||\n (typeof WebGLRenderingContext !== \"undefined\" &&\n WebGLRenderingContext !== null &&\n image instanceof WebGLRenderingContext)\n ) {\n if (options.copy) {\n frame.data = this.getContextData(image);\n } else {\n frame.context = image;\n }\n } else if (image.childNodes != null) {\n if (options.copy) {\n frame.data = this.getImageData(image);\n } else {\n frame.image = image;\n }\n } else {\n throw new Error(\"Invalid image\");\n }\n return this.frames.push(frame);\n };\n GIF.prototype.render = function() {\n var i, j, numWorkers, ref;\n if (this.running) {\n throw new Error(\"Already running\");\n }\n if (this.options.width == null || this.options.height == null) {\n throw new Error(\"Width and height must be set prior to rendering\");\n }\n this.running = true;\n this.nextFrame = 0;\n this.finishedFrames = 0;\n this.imageParts = function() {\n var j, ref, results;\n results = [];\n for (\n i = j = 0, ref = this.frames.length;\n 0 <= ref ? j < ref : j > ref;\n i = 0 <= ref ? ++j : --j\n ) {\n results.push(null);\n }\n return results;\n }.call(this);\n numWorkers = this.spawnWorkers();\n if (this.options.globalPalette === true) {\n this.renderNextFrame();\n } else {\n for (\n i = j = 0, ref = numWorkers;\n 0 <= ref ? j < ref : j > ref;\n i = 0 <= ref ? ++j : --j\n ) {\n this.renderNextFrame();\n }\n }\n this.emit(\"start\");\n return this.emit(\"progress\", 0);\n };\n GIF.prototype.abort = function() {\n var worker;\n while (true) {\n worker = this.activeWorkers.shift();\n if (worker == null) {\n break;\n }\n this.log(\"killing active worker\");\n worker.terminate();\n }\n this.running = false;\n return this.emit(\"abort\");\n };\n GIF.prototype.spawnWorkers = function() {\n var j, numWorkers, ref, results;\n numWorkers = Math.min(this.options.workers, this.frames.length);\n (function() {\n results = [];\n for (\n var j = (ref = this.freeWorkers.length);\n ref <= numWorkers ? j < numWorkers : j > numWorkers;\n ref <= numWorkers ? j++ : j--\n ) {\n results.push(j);\n }\n return results;\n }\n .apply(this)\n .forEach(\n (function(_this) {\n return function(i) {\n var worker;\n _this.log(\"spawning worker \" + i);\n const Worker=require('./gif.worker')\n\n worker = new Worker.default();\n // worker = new Worker(_this.options.workerScript);\n worker.onmessage = function(event) {\n _this.activeWorkers.splice(\n _this.activeWorkers.indexOf(worker),\n 1\n );\n _this.freeWorkers.push(worker);\n return _this.frameFinished(event.data);\n };\n return _this.freeWorkers.push(worker);\n };\n })(this)\n ));\n return numWorkers;\n };\n GIF.prototype.frameFinished = function(frame) {\n var i, j, ref;\n this.log(\n \"frame \" +\n frame.index +\n \" finished - \" +\n this.activeWorkers.length +\n \" active\"\n );\n this.finishedFrames++;\n this.emit(\"progress\", this.finishedFrames / this.frames.length);\n this.imageParts[frame.index] = frame;\n if (this.options.globalPalette === true) {\n this.options.globalPalette = frame.globalPalette;\n this.log(\"global palette analyzed\");\n if (this.frames.length > 2) {\n for (\n i = j = 1, ref = this.freeWorkers.length;\n 1 <= ref ? j < ref : j > ref;\n i = 1 <= ref ? ++j : --j\n ) {\n this.renderNextFrame();\n }\n }\n }\n if (indexOf.call(this.imageParts, null) >= 0) {\n return this.renderNextFrame();\n } else {\n return this.finishRendering();\n }\n };\n GIF.prototype.finishRendering = function() {\n var data,\n frame,\n i,\n image,\n j,\n k,\n l,\n len,\n len1,\n len2,\n len3,\n offset,\n page,\n ref,\n ref1,\n ref2;\n len = 0;\n ref = this.imageParts;\n for (j = 0, len1 = ref.length; j < len1; j++) {\n frame = ref[j];\n len += (frame.data.length - 1) * frame.pageSize + frame.cursor;\n }\n len += frame.pageSize - frame.cursor;\n this.log(\"rendering finished - filesize \" + Math.round(len / 1e3) + \"kb\");\n data = new Uint8Array(len);\n offset = 0;\n ref1 = this.imageParts;\n for (k = 0, len2 = ref1.length; k < len2; k++) {\n frame = ref1[k];\n ref2 = frame.data;\n for (i = l = 0, len3 = ref2.length; l < len3; i = ++l) {\n page = ref2[i];\n data.set(page, offset);\n if (i === frame.data.length - 1) {\n offset += frame.cursor;\n } else {\n offset += frame.pageSize;\n }\n }\n }\n image = new Blob([data], { type: \"image/gif\" });\n return this.emit(\"finished\", image, data);\n };\n GIF.prototype.renderNextFrame = function() {\n var frame, task, worker;\n if (this.freeWorkers.length === 0) {\n throw new Error(\"No free workers\");\n }\n if (this.nextFrame >= this.frames.length) {\n return;\n }\n frame = this.frames[this.nextFrame++];\n worker = this.freeWorkers.shift();\n task = this.getTask(frame);\n this.log(\n \"starting frame \" + (task.index + 1) + \" of \" + this.frames.length\n );\n this.activeWorkers.push(worker);\n return worker.postMessage(task);\n };\n GIF.prototype.getContextData = function(ctx) {\n return ctx.getImageData(0, 0, this.options.width, this.options.height).data;\n };\n GIF.prototype.getImageData = function(image) {\n var ctx;\n if (this._canvas == null) {\n this._canvas = document.createElement(\"canvas\");\n this._canvas.width = this.options.width;\n this._canvas.height = this.options.height;\n }\n ctx = this._canvas.getContext(\"2d\");\n ctx.setFill = this.options.background;\n ctx.fillRect(0, 0, this.options.width, this.options.height);\n ctx.drawImage(image, 0, 0);\n return this.getContextData(ctx);\n };\n GIF.prototype.getTask = function(frame) {\n var index, task;\n index = this.frames.indexOf(frame);\n task = {\n index: index,\n last: index === this.frames.length - 1,\n delay: frame.delay,\n transparent: frame.transparent,\n width: this.options.width,\n height: this.options.height,\n quality: this.options.quality,\n dither: this.options.dither,\n globalPalette: this.options.globalPalette,\n repeat: this.options.repeat,\n canTransfer: browser.name === \"chrome\"\n };\n if (frame.data != null) {\n task.data = frame.data;\n } else if (frame.context != null) {\n task.data = this.getContextData(frame.context);\n } else if (frame.image != null) {\n task.data = this.getImageData(frame.image);\n } else {\n throw new Error(\"Invalid frame\");\n }\n return task;\n };\n GIF.prototype.log = function() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n if (!this.options.debug) {\n return;\n }\n return console.log.apply(console, args);\n };\n return GIF;\n})(EventEmitter);\n\nexport default GIF;\n","import GIF from \"./Gif\";\nimport GIFE from \"./gifjs\";\nvar AwesomeQRCode;\n\nfunction QR8bitByte(data) {\n this.mode = QRMode.MODE_8BIT_BYTE;\n this.data = data;\n this.parsedData = [];\n for (var i = 0, l = this.data.length; i < l; i++) {\n var byteArray = [];\n var code = this.data.charCodeAt(i);\n if (code > 0x10000) {\n byteArray[0] = 0xf0 | ((code & 0x1c0000) >>> 18);\n byteArray[1] = 0x80 | ((code & 0x3f000) >>> 12);\n byteArray[2] = 0x80 | ((code & 0xfc0) >>> 6);\n byteArray[3] = 0x80 | (code & 0x3f);\n } else if (code > 0x800) {\n byteArray[0] = 0xe0 | ((code & 0xf000) >>> 12);\n byteArray[1] = 0x80 | ((code & 0xfc0) >>> 6);\n byteArray[2] = 0x80 | (code & 0x3f);\n } else if (code > 0x80) {\n byteArray[0] = 0xc0 | ((code & 0x7c0) >>> 6);\n byteArray[1] = 0x80 | (code & 0x3f);\n } else {\n byteArray[0] = code;\n }\n this.parsedData.push(byteArray);\n }\n this.parsedData = Array.prototype.concat.apply([], this.parsedData);\n if (this.parsedData.length != this.data.length) {\n this.parsedData.unshift(191);\n this.parsedData.unshift(187);\n this.parsedData.unshift(239);\n }\n}\n\nQR8bitByte.prototype = {\n getLength: function(buffer) {\n return this.parsedData.length;\n },\n write: function(buffer) {\n for (var i = 0, l = this.parsedData.length; i < l; i++) {\n buffer.put(this.parsedData[i], 8);\n }\n }\n};\n\nfunction QRCodeModel(typeNumber, errorCorrectLevel) {\n this.typeNumber = typeNumber;\n this.errorCorrectLevel = errorCorrectLevel;\n this.modules = null;\n this.moduleCount = 0;\n this.dataCache = null;\n this.dataList = [];\n}\n\nQRCodeModel.prototype = {\n addData: function(data) {\n var newData = new QR8bitByte(data);\n this.dataList.push(newData);\n this.dataCache = null;\n },\n isDark: function(row, col) {\n if (\n row < 0 ||\n this.moduleCount <= row ||\n col < 0 ||\n this.moduleCount <= col\n ) {\n throw new Error(row + \",\" + col);\n }\n return this.modules[row][col];\n },\n getModuleCount: function() {\n return this.moduleCount;\n },\n make: function() {\n /////////////////////////////////////////////\n if (this.typeNumber < 1) {\n var typeNumber = 1;\n for (typeNumber = 1; typeNumber < 40; typeNumber++) {\n var rsBlocks = QRRSBlock.getRSBlocks(\n typeNumber,\n this.errorCorrectLevel\n );\n\n var buffer = new QRBitBuffer();\n var totalDataCount = 0;\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n\n for (var i = 0; i < this.dataList.length; i++) {\n var data = this.dataList[i];\n buffer.put(data.mode, 4);\n buffer.put(\n data.getLength(),\n QRUtil.getLengthInBits(data.mode, typeNumber)\n );\n data.write(buffer);\n }\n if (buffer.getLengthInBits() <= totalDataCount * 8) break;\n }\n this.typeNumber = typeNumber;\n }\n /////////////////////////////////////////////\n this.makeImpl(!1, this.getBestMaskPattern());\n },\n makeImpl: function(test, maskPattern) {\n this.moduleCount = this.typeNumber * 4 + 17;\n this.modules = new Array(this.moduleCount);\n for (var row = 0; row < this.moduleCount; row++) {\n this.modules[row] = new Array(this.moduleCount);\n for (var col = 0; col < this.moduleCount; col++) {\n this.modules[row][col] = null;\n }\n }\n this.setupPositionProbePattern(0, 0);\n this.setupPositionProbePattern(this.moduleCount - 7, 0);\n this.setupPositionProbePattern(0, this.moduleCount - 7);\n this.setupPositionAdjustPattern();\n this.setupTimingPattern();\n this.setupTypeInfo(test, maskPattern);\n if (this.typeNumber >= 7) {\n this.setupTypeNumber(test);\n }\n if (this.dataCache == null) {\n this.dataCache = QRCodeModel.createData(\n this.typeNumber,\n this.errorCorrectLevel,\n this.dataList\n );\n }\n this.mapData(this.dataCache, maskPattern);\n },\n setupPositionProbePattern: function(row, col) {\n for (var r = -1; r <= 7; r++) {\n if (row + r <= -1 || this.moduleCount <= row + r) continue;\n for (var c = -1; c <= 7; c++) {\n if (col + c <= -1 || this.moduleCount <= col + c) continue;\n if (\n (0 <= r && r <= 6 && (c == 0 || c == 6)) ||\n (0 <= c && c <= 6 && (r == 0 || r == 6)) ||\n (2 <= r && r <= 4 && 2 <= c && c <= 4)\n ) {\n this.modules[row + r][col + c] = !0;\n } else {\n this.modules[row + r][col + c] = !1;\n }\n }\n }\n },\n getBestMaskPattern: function() {\n var minLostPoint = 0;\n var pattern = 0;\n for (var i = 0; i < 8; i++) {\n this.makeImpl(!0, i);\n var lostPoint = QRUtil.getLostPoint(this);\n if (i == 0 || minLostPoint > lostPoint) {\n minLostPoint = lostPoint;\n pattern = i;\n }\n }\n return pattern;\n },\n createMovieClip: function(target_mc, instance_name, depth) {\n var qr_mc = target_mc.createEmptyMovieClip(instance_name, depth);\n var cs = 1;\n this.make();\n for (var row = 0; row < this.modules.length; row++) {\n var y = row * cs;\n for (var col = 0; col < this.modules[row].length; col++) {\n var x = col * cs;\n var dark = this.modules[row][col];\n if (dark) {\n qr_mc.beginFill(0, 100);\n qr_mc.moveTo(x, y);\n qr_mc.lineTo(x + cs, y);\n qr_mc.lineTo(x + cs, y + cs);\n qr_mc.lineTo(x, y + cs);\n qr_mc.endFill();\n }\n }\n }\n return qr_mc;\n },\n setupTimingPattern: function() {\n for (var r = 8; r < this.moduleCount - 8; r++) {\n if (this.modules[r][6] != null) {\n continue;\n }\n this.modules[r][6] = r % 2 == 0;\n }\n for (var c = 8; c < this.moduleCount - 8; c++) {\n if (this.modules[6][c] != null) {\n continue;\n }\n this.modules[6][c] = c % 2 == 0;\n }\n },\n setupPositionAdjustPattern: function() {\n var pos = QRUtil.getPatternPosition(this.typeNumber);\n for (var i = 0; i < pos.length; i++) {\n for (var j = 0; j < pos.length; j++) {\n var row = pos[i];\n var col = pos[j];\n if (this.modules[row][col] != null) {\n continue;\n }\n for (var r = -2; r <= 2; r++) {\n for (var c = -2; c <= 2; c++) {\n if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) {\n this.modules[row + r][col + c] = !0;\n } else {\n this.modules[row + r][col + c] = !1;\n }\n }\n }\n }\n }\n },\n setupTypeNumber: function(test) {\n var bits = QRUtil.getBCHTypeNumber(this.typeNumber);\n for (var i = 0; i < 18; i++) {\n var mod = !test && ((bits >> i) & 1) == 1;\n this.modules[Math.floor(i / 3)][(i % 3) + this.moduleCount - 8 - 3] = mod;\n }\n for (var i = 0; i < 18; i++) {\n var mod = !test && ((bits >> i) & 1) == 1;\n this.modules[(i % 3) + this.moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n }\n },\n setupTypeInfo: function(test, maskPattern) {\n var data = (this.errorCorrectLevel << 3) | maskPattern;\n var bits = QRUtil.getBCHTypeInfo(data);\n for (var i = 0; i < 15; i++) {\n var mod = !test && ((bits >> i) & 1) == 1;\n if (i < 6) {\n this.modules[i][8] = mod;\n } else if (i < 8) {\n this.modules[i + 1][8] = mod;\n } else {\n this.modules[this.moduleCount - 15 + i][8] = mod;\n }\n }\n for (var i = 0; i < 15; i++) {\n var mod = !test && ((bits >> i) & 1) == 1;\n if (i < 8) {\n this.modules[8][this.moduleCount - i - 1] = mod;\n } else if (i < 9) {\n this.modules[8][15 - i - 1 + 1] = mod;\n } else {\n this.modules[8][15 - i - 1] = mod;\n }\n }\n this.modules[this.moduleCount - 8][8] = !test;\n },\n mapData: function(data, maskPattern) {\n var inc = -1;\n var row = this.moduleCount - 1;\n var bitIndex = 7;\n var byteIndex = 0;\n for (var col = this.moduleCount - 1; col > 0; col -= 2) {\n if (col == 6) col--;\n while (!0) {\n for (var c = 0; c < 2; c++) {\n if (this.modules[row][col - c] == null) {\n var dark = !1;\n if (byteIndex < data.length) {\n dark = ((data[byteIndex] >>> bitIndex) & 1) == 1;\n }\n var mask = QRUtil.getMask(maskPattern, row, col - c);\n if (mask) {\n dark = !dark;\n }\n this.modules[row][col - c] = dark;\n bitIndex--;\n if (bitIndex == -1) {\n byteIndex++;\n bitIndex = 7;\n }\n }\n }\n row += inc;\n if (row < 0 || this.moduleCount <= row) {\n row -= inc;\n inc = -inc;\n break;\n }\n }\n }\n }\n};\nQRCodeModel.PAD0 = 0xec;\nQRCodeModel.PAD1 = 0x11;\nQRCodeModel.createData = function(typeNumber, errorCorrectLevel, dataList) {\n var rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel);\n var buffer = new QRBitBuffer();\n for (var i = 0; i < dataList.length; i++) {\n var data = dataList[i];\n buffer.put(data.mode, 4);\n buffer.put(data.getLength(), QRUtil.getLengthInBits(data.mode, typeNumber));\n data.write(buffer);\n }\n var totalDataCount = 0;\n for (var i = 0; i < rsBlocks.length; i++) {\n totalDataCount += rsBlocks[i].dataCount;\n }\n if (buffer.getLengthInBits() > totalDataCount * 8) {\n throw new Error(\n \"code length overflow. (\" +\n buffer.getLengthInBits() +\n \">\" +\n totalDataCount * 8 +\n \")\"\n );\n }\n if (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n buffer.put(0, 4);\n }\n while (buffer.getLengthInBits() % 8 != 0) {\n buffer.putBit(!1);\n }\n while (!0) {\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(QRCodeModel.PAD0, 8);\n if (buffer.getLengthInBits() >= totalDataCount * 8) {\n break;\n }\n buffer.put(QRCodeModel.PAD1, 8);\n }\n return QRCodeModel.createBytes(buffer, rsBlocks);\n};\nQRCodeModel.createBytes = function(buffer, rsBlocks) {\n var offset = 0;\n var maxDcCount = 0;\n var maxEcCount = 0;\n var dcdata = new Array(rsBlocks.length);\n var ecdata = new Array(rsBlocks.length);\n for (var r = 0; r < rsBlocks.length; r++) {\n var dcCount = rsBlocks[r].dataCount;\n var ecCount = rsBlocks[r].totalCount - dcCount;\n maxDcCount = Math.max(maxDcCount, dcCount);\n maxEcCount = Math.max(maxEcCount, ecCount);\n dcdata[r] = new Array(dcCount);\n for (var i = 0; i < dcdata[r].length; i++) {\n dcdata[r][i] = 0xff & buffer.buffer[i + offset];\n }\n offset += dcCount;\n var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);\n var rawPoly = new QRPolynomial(dcdata[r], rsPoly.getLength() - 1);\n var modPoly = rawPoly.mod(rsPoly);\n ecdata[r] = new Array(rsPoly.getLength() - 1);\n for (var i = 0; i < ecdata[r].length; i++) {\n var modIndex = i + modPoly.getLength() - ecdata[r].length;\n ecdata[r][i] = modIndex >= 0 ? modPoly.get(modIndex) : 0;\n }\n }\n var totalCodeCount = 0;\n for (var i = 0; i < rsBlocks.length; i++) {\n totalCodeCount += rsBlocks[i].totalCount;\n }\n var data = new Array(totalCodeCount);\n var index = 0;\n for (var i = 0; i < maxDcCount; i++) {\n for (var r = 0; r < rsBlocks.length; r++) {\n if (i < dcdata[r].length) {\n data[index++] = dcdata[r][i];\n }\n }\n }\n for (var i = 0; i < maxEcCount; i++) {\n for (var r = 0; r < rsBlocks.length; r++) {\n if (i < ecdata[r].length) {\n data[index++] = ecdata[r][i];\n }\n }\n }\n return data;\n};\nvar QRMode = {\n MODE_NUMBER: 1 << 0,\n MODE_ALPHA_NUM: 1 << 1,\n MODE_8BIT_BYTE: 1 << 2,\n MODE_KANJI: 1 << 3\n};\nvar QRErrorCorrectLevel = { L: 1, M: 0, Q: 3, H: 2 };\nvar QRMaskPattern = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n};\nvar QRUtil = {\n PATTERN_POSITION_TABLE: [\n [],\n [6, 18],\n [6, 22],\n [6, 26],\n [6, 30],\n [6, 34],\n [6, 22, 38],\n [6, 24, 42],\n [6, 26, 46],\n [6, 28, 50],\n [6, 30, 54],\n [6, 32, 58],\n [6, 34, 62],\n [6, 26, 46, 66],\n [6, 26, 48, 70],\n [6, 26, 50, 74],\n [6, 30, 54, 78],\n [6, 30, 56, 82],\n [6, 30, 58, 86],\n [6, 34, 62, 90],\n [6, 28, 50, 72, 94],\n [6, 26, 50, 74, 98],\n [6, 30, 54, 78, 102],\n [6, 28, 54, 80, 106],\n [6, 32, 58, 84, 110],\n [6, 30, 58, 86, 114],\n [6, 34, 62, 90, 118],\n [6, 26, 50, 74, 98, 122],\n [6, 30, 54, 78, 102, 126],\n [6, 26, 52, 78, 104, 130],\n [6, 30, 56, 82, 108, 134],\n [6, 34, 60, 86, 112, 138],\n [6, 30, 58, 86, 114, 142],\n [6, 34, 62, 90, 118, 146],\n [6, 30, 54, 78, 102, 126, 150],\n [6, 24, 50, 76, 102, 128, 154],\n [6, 28, 54, 80, 106, 132, 158],\n [6, 32, 58, 84, 110, 136, 162],\n [6, 26, 54, 82, 110, 138, 166],\n [6, 30, 58, 86, 114, 142, 170]\n ],\n G15:\n (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0),\n G18:\n (1 << 12) |\n (1 << 11) |\n (1 << 10) |\n (1 << 9) |\n (1 << 8) |\n (1 << 5) |\n (1 << 2) |\n (1 << 0),\n G15_MASK: (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1),\n getBCHTypeInfo: function(data) {\n var d = data << 10;\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15) >= 0) {\n d ^=\n QRUtil.G15 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G15));\n }\n return ((data << 10) | d) ^ QRUtil.G15_MASK;\n },\n getBCHTypeNumber: function(data) {\n var d = data << 12;\n while (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18) >= 0) {\n d ^=\n QRUtil.G18 << (QRUtil.getBCHDigit(d) - QRUtil.getBCHDigit(QRUtil.G18));\n }\n return (data << 12) | d;\n },\n getBCHDigit: function(data) {\n var digit = 0;\n while (data != 0) {\n digit++;\n data >>>= 1;\n }\n return digit;\n },\n getPatternPosition: function(typeNumber) {\n return QRUtil.PATTERN_POSITION_TABLE[typeNumber - 1];\n },\n getMask: function(maskPattern, i, j) {\n switch (maskPattern) {\n case QRMaskPattern.PATTERN000:\n return (i + j) % 2 == 0;\n case QRMaskPattern.PATTERN001:\n return i % 2 == 0;\n case QRMaskPattern.PATTERN010:\n return j % 3 == 0;\n case QRMaskPattern.PATTERN011:\n return (i + j) % 3 == 0;\n case QRMaskPattern.PATTERN100:\n return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0;\n case QRMaskPattern.PATTERN101:\n return ((i * j) % 2) + ((i * j) % 3) == 0;\n case QRMaskPattern.PATTERN110:\n return (((i * j) % 2) + ((i * j) % 3)) % 2 == 0;\n case QRMaskPattern.PATTERN111:\n return (((i * j) % 3) + ((i + j) % 2)) % 2 == 0;\n default:\n throw new Error(\"bad maskPattern:\" + maskPattern);\n }\n },\n getErrorCorrectPolynomial: function(errorCorrectLength) {\n var a = new QRPolynomial([1], 0);\n for (var i = 0; i < errorCorrectLength; i++) {\n a = a.multiply(new QRPolynomial([1, QRMath.gexp(i)], 0));\n }\n return a;\n },\n getLengthInBits: function(mode, type) {\n if (1 <= type && type < 10) {\n switch (mode) {\n case QRMode.MODE_NUMBER:\n return 10;\n case QRMode.MODE_ALPHA_NUM:\n return 9;\n case QRMode.MODE_8BIT_BYTE:\n return 8;\n case QRMode.MODE_KANJI:\n return 8;\n default:\n throw new Error(\"mode:\" + mode);\n }\n } else if (type < 27) {\n switch (mode) {\n case QRMode.MODE_NUMBER:\n return 12;\n case QRMode.MODE_ALPHA_NUM:\n return 11;\n case QRMode.MODE_8BIT_BYTE:\n return 16;\n case QRMode.MODE_KANJI:\n return 10;\n default:\n throw new Error(\"mode:\" + mode);\n }\n } else if (type < 41) {\n switch (mode) {\n case QRMode.MODE_NUMBER:\n return 14;\n case QRMode.MODE_ALPHA_NUM:\n return 13;\n case QRMode.MODE_8BIT_BYTE:\n return 16;\n case QRMode.MODE_KANJI:\n return 12;\n default:\n throw new Error(\"mode:\" + mode);\n }\n } else {\n throw new Error(\"type:\" + type);\n }\n },\n getLostPoint: function(qrCode) {\n var moduleCount = qrCode.getModuleCount();\n var lostPoint = 0;\n for (var row = 0; row < moduleCount; row++) {\n for (var col = 0; col < moduleCount; col++) {\n var sameCount = 0;\n var dark = qrCode.isDark(row, col);\n for (var r = -1; r <= 1; r++) {\n if (row + r < 0 || moduleCount <= row + r) {\n continue;\n }\n for (var c = -1; c <= 1; c++) {\n if (col + c < 0 || moduleCount <= col + c) {\n continue;\n }\n if (r == 0 && c == 0) {\n continue;\n }\n if (dark == qrCode.isDark(row + r, col + c)) {\n sameCount++;\n }\n }\n }\n if (sameCount > 5) {\n lostPoint += 3 + sameCount - 5;\n }\n }\n }\n for (var row = 0; row < moduleCount - 1; row++) {\n for (var col = 0; col < moduleCount - 1; col++) {\n var count = 0;\n if (qrCode.isDark(row, col)) count++;\n if (qrCode.isDark(row + 1, col)) count++;\n if (qrCode.isDark(row, col + 1)) count++;\n if (qrCode.isDark(row + 1, col + 1)) count++;\n if (count == 0 || count == 4) {\n lostPoint += 3;\n }\n }\n }\n for (var row = 0; row < moduleCount; row++) {\n for (var col = 0; col < moduleCount - 6; col++) {\n if (\n qrCode.isDark(row, col) &&\n !qrCode.isDark(row, col + 1) &&\n qrCode.isDark(row, col + 2) &&\n qrCode.isDark(row, col + 3) &&\n qrCode.isDark(row, col + 4) &&\n !qrCode.isDark(row, col + 5) &&\n qrCode.isDark(row, col + 6)\n ) {\n lostPoint += 40;\n }\n }\n }\n for (var col = 0; col < moduleCount; col++) {\n for (var row = 0; row < moduleCount - 6; row++) {\n if (\n qrCode.isDark(row, col) &&\n !qrCode.isDark(row + 1, col) &&\n qrCode.isDark(row + 2, col) &&\n qrCode.isDark(row + 3, col) &&\n qrCode.isDark(row + 4, col) &&\n !qrCode.isDark(row + 5, col) &&\n qrCode.isDark(row + 6, col)\n ) {\n lostPoint += 40;\n }\n }\n }\n var darkCount = 0;\n for (var col = 0; col < moduleCount; col++) {\n for (var row = 0; row < moduleCount; row++) {\n if (qrCode.isDark(row, col)) {\n darkCount++;\n }\n }\n }\n var ratio =\n Math.abs((100 * darkCount) / moduleCount / moduleCount - 50) / 5;\n lostPoint += ratio * 10;\n return lostPoint;\n }\n};\nvar QRMath = {\n glog: function(n) {\n if (n < 1) {\n throw new Error(\"glog(\" + n + \")\");\n }\n return QRMath.LOG_TABLE[n];\n },\n gexp: function(n) {\n while (n < 0) {\n n += 255;\n }\n while (n >= 256) {\n n -= 255;\n }\n return QRMath.EXP_TABLE[n];\n },\n EXP_TABLE: new Array(256),\n LOG_TABLE: new Array(256)\n};\nfor (var i = 0; i < 8; i++) {\n QRMath.EXP_TABLE[i] = 1 << i;\n}\nfor (var i = 8; i < 256; i++) {\n QRMath.EXP_TABLE[i] =\n QRMath.EXP_TABLE[i - 4] ^\n QRMath.EXP_TABLE[i - 5] ^\n QRMath.EXP_TABLE[i - 6] ^\n QRMath.EXP_TABLE[i - 8];\n}\nfor (var i = 0; i < 255; i++) {\n QRMath.LOG_TABLE[QRMath.EXP_TABLE[i]] = i;\n}\n\nfunction QRPolynomial(num, shift) {\n if (num.length == undefined) {\n throw new Error(num.length + \"/\" + shift);\n }\n var offset = 0;\n while (offset < num.length && num[offset] == 0) {\n offset++;\n }\n this.num = new Array(num.length - offset + shift);\n for (var i = 0; i < num.length - offset; i++) {\n this.num[i] = num[i + offset];\n }\n}\n\nQRPolynomial.prototype = {\n get: function(index) {\n return this.num[index];\n },\n getLength: function() {\n return this.num.length;\n },\n multiply: function(e) {\n var num = new Array(this.getLength() + e.getLength() - 1);\n for (var i = 0; i < this.getLength(); i++) {\n for (var j = 0; j < e.getLength(); j++) {\n num[i + j] ^= QRMath.gexp(\n QRMath.glog(this.get(i)) + QRMath.glog(e.get(j))\n );\n }\n }\n return new QRPolynomial(num, 0);\n },\n mod: function(e) {\n if (this.getLength() - e.getLength() < 0) {\n return this;\n }\n var ratio = QRMath.glog(this.get(0)) - QRMath.glog(e.get(0));\n var num = new Array(this.getLength());\n for (var i = 0; i < this.getLength(); i++) {\n num[i] = this.get(i);\n }\n for (var i = 0; i < e.getLength(); i++) {\n num[i] ^= QRMath.gexp(QRMath.glog(e.get(i)) + ratio);\n }\n return new QRPolynomial(num, 0).mod(e);\n }\n};\n\nfunction QRRSBlock(totalCount, dataCount) {\n this.totalCount = totalCount;\n this.dataCount = dataCount;\n}\n\nQRRSBlock.RS_BLOCK_TABLE = [\n [1, 26, 19],\n [1, 26, 16],\n [1, 26, 13],\n [1, 26, 9],\n [1, 44, 34],\n [1, 44, 28],\n [1, 44, 22],\n [1, 44, 16],\n [1, 70, 55],\n [1, 70, 44],\n [2, 35, 17],\n [2, 35, 13],\n [1, 100, 80],\n [2, 50, 32],\n [2, 50, 24],\n [4, 25, 9],\n [1, 134, 108],\n [2, 67, 43],\n [2, 33, 15, 2, 34, 16],\n [2, 33, 11, 2, 34, 12],\n [2, 86, 68],\n [4, 43, 27],\n [4, 43, 19],\n [4, 43, 15],\n [2, 98, 78],\n [4, 49, 31],\n [2, 32, 14, 4, 33, 15],\n [4, 39, 13, 1, 40, 14],\n [2, 121, 97],\n [2, 60, 38, 2, 61, 39],\n [4, 40, 18, 2, 41, 19],\n [4, 40, 14, 2, 41, 15],\n [2, 146, 116],\n [3, 58, 36, 2, 59, 37],\n [4, 36, 16, 4, 37, 17],\n [4, 36, 12, 4, 37, 13],\n [2, 86, 68, 2, 87, 69],\n [4, 69, 43, 1, 70, 44],\n [6, 43, 19, 2, 44, 20],\n [6, 43, 15, 2, 44, 16],\n [4, 101, 81],\n [1, 80, 50, 4, 81, 51],\n [4, 50, 22, 4, 51, 23],\n [3, 36, 12, 8, 37, 13],\n [2, 116, 92, 2, 117, 93],\n [6, 58, 36, 2, 59, 37],\n [4, 46, 20, 6, 47, 21],\n [7, 42, 14, 4, 43, 15],\n [4, 133, 107],\n [8, 59, 37, 1, 60, 38],\n [8, 44, 20, 4, 45, 21],\n [12, 33, 11, 4, 34, 12],\n [3, 145, 115, 1, 146, 116],\n [4, 64, 40, 5, 65, 41],\n [11, 36, 16, 5, 37, 17],\n [11, 36, 12, 5, 37, 13],\n [5, 109, 87, 1, 110, 88],\n [5, 65, 41, 5, 66, 42],\n [5, 54, 24, 7, 55, 25],\n [11, 36, 12],\n [5, 122, 98, 1, 123, 99],\n [7, 73, 45, 3, 74, 46],\n [15, 43, 19, 2, 44, 20],\n [3, 45, 15, 13, 46, 16],\n [1, 135, 107, 5, 136, 108],\n [10, 74, 46, 1, 75, 47],\n [1, 50, 22, 15, 51, 23],\n [2, 42, 14, 17, 43, 15],\n [5, 150, 120, 1, 151, 121],\n [9, 69, 43, 4, 70, 44],\n [17, 50, 22, 1, 51, 23],\n [2, 42, 14, 19, 43, 15],\n [3, 141, 113, 4, 142, 114],\n [3, 70, 44, 11, 71, 45],\n [17, 47, 21, 4, 48, 22],\n [9, 39, 13, 16, 40, 14],\n [3, 135, 107, 5, 136, 108],\n [3, 67, 41, 13, 68, 42],\n [15, 54, 24, 5, 55, 25],\n [15, 43, 15, 10, 44, 16],\n [4, 144, 116, 4, 145, 117],\n [17, 68, 42],\n [17, 50, 22, 6, 51, 23],\n [19, 46, 16, 6, 47, 17],\n [2, 139, 111, 7, 140, 112],\n [17, 74, 46],\n [7, 54, 24, 16, 55, 25],\n [34, 37, 13],\n [4, 151, 121, 5, 152, 122],\n [4, 75, 47, 14, 76, 48],\n [11, 54, 24, 14, 55, 25],\n [16, 45, 15, 14, 46, 16],\n [6, 147, 117, 4, 148, 118],\n [6, 73, 45, 14, 74, 46],\n [11, 54, 24, 16, 55, 25],\n [30, 46, 16, 2, 47, 17],\n [8, 132, 106, 4, 133, 107],\n [8, 75, 47, 13, 76, 48],\n [7, 54, 24, 22, 55, 25],\n [22, 45, 15, 13, 46, 16],\n [10, 142, 114, 2, 143, 115],\n [19, 74, 46, 4, 75, 47],\n [28, 50, 22, 6, 51, 23],\n [33, 46, 16, 4, 47, 17],\n [8, 152, 122, 4, 153, 123],\n [22, 73, 45, 3, 74, 46],\n [8, 53, 23, 26, 54, 24],\n [12, 45, 15, 28, 46, 16],\n [3, 147, 117, 10, 148, 118],\n [3, 73, 45, 23, 74, 46],\n [4, 54, 24, 31, 55, 25],\n [11, 45, 15, 31, 46, 16],\n [7, 146, 116, 7, 147, 117],\n [21, 73, 45, 7, 74, 46],\n [1, 53, 23, 37, 54, 24],\n [19, 45, 15, 26, 46, 16],\n [5, 145, 115, 10, 146, 116],\n [19, 75, 47, 10, 76, 48],\n [15, 54, 24, 25, 55, 25],\n [23, 45, 15, 25, 46, 16],\n [13, 145, 115, 3, 146, 116],\n [2, 74, 46, 29, 75, 47],\n [42, 54, 24, 1, 55, 25],\n [23, 45, 15, 28, 46, 16],\n [17, 145, 115],\n [10, 74, 46, 23, 75, 47],\n [10, 54, 24, 35, 55, 25],\n [19, 45, 15, 35, 46, 16],\n [17, 145, 115, 1, 146, 116],\n [14, 74, 46, 21, 75, 47],\n [29, 54, 24, 19, 55, 25],\n [11, 45, 15, 46, 46, 16],\n [13, 145, 115, 6, 146, 116],\n [14, 74, 46, 23, 75, 47],\n [44, 54, 24, 7, 55, 25],\n [59, 46, 16, 1, 47, 17],\n [12, 151, 121, 7, 152, 122],\n [12, 75, 47, 26, 76, 48],\n [39, 54, 24, 14, 55, 25],\n [22, 45, 15, 41, 46, 16],\n [6, 151, 121, 14, 152, 122],\n [6, 75, 47, 34, 76, 48],\n [46, 54, 24, 10, 55, 25],\n [2, 45, 15, 64, 46, 16],\n [17, 152, 122, 4, 153, 123],\n [29, 74, 46, 14, 75, 47],\n [49, 54, 24, 10, 55, 25],\n [24, 45, 15, 46, 46, 16],\n [4, 152, 122, 18, 153, 123],\n [13, 74, 46, 32, 75, 47],\n [48, 54, 24, 14, 55, 25],\n [42, 45, 15, 32, 46, 16],\n [20, 147, 117, 4, 148, 118],\n [40, 75, 47, 7, 76, 48],\n [43, 54, 24, 22, 55, 25],\n [10, 45, 15, 67, 46, 16],\n [19, 148, 118, 6, 149, 119],\n [18, 75, 47, 31, 76, 48],\n [34, 54, 24, 34, 55, 25],\n [20, 45, 15, 61, 46, 16]\n];\nQRRSBlock.getRSBlocks = function(typeNumber, errorCorrectLevel) {\n var rsBlock = QRRSBlock.getRsBlockTable(typeNumber, errorCorrectLevel);\n if (rsBlock == undefined) {\n throw new Error(\n \"bad rs block @ typeNumber:\" +\n typeNumber +\n \"/errorCorrectLevel:\" +\n errorCorrectLevel\n );\n }\n var length = rsBlock.length / 3;\n var list = [];\n for (var i = 0; i < length; i++) {\n var count = rsBlock[i * 3 + 0];\n var totalCount = rsBlock[i * 3 + 1];\n var dataCount = rsBlock[i * 3 + 2];\n for (var j = 0; j < count; j++) {\n list.push(new QRRSBlock(totalCount, dataCount));\n }\n }\n return list;\n};\nQRRSBlock.getRsBlockTable = function(typeNumber, errorCorrectLevel) {\n switch (errorCorrectLevel) {\n case QRErrorCorrectLevel.L:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n case QRErrorCorrectLevel.M:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n case QRErrorCorrectLevel.Q:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n case QRErrorCorrectLevel.H:\n return QRRSBlock.RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n default:\n return undefined;\n }\n};\n\nfunction QRBitBuffer() {\n this.buffer = [];\n this.length = 0;\n}\n\nQRBitBuffer.prototype = {\n get: function(index) {\n var bufIndex = Math.floor(index / 8);\n return ((this.buffer[bufIndex] >>> (7 - (index % 8))) & 1) == 1;\n },\n put: function(num, length) {\n for (var i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) == 1);\n }\n },\n getLengthInBits: function() {\n return this.length;\n },\n putBit: function(bit) {\n var bufIndex = Math.floor(this.length / 8);\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0);\n }\n if (bit) {\n this.buffer[bufIndex] |= 0x80 >>> this.length % 8;\n }\n this.length++;\n }\n};\nvar QRCodeLimitLength = [\n [17, 14, 11, 7],\n [32, 26, 20, 14],\n [53, 42, 32, 24],\n [78, 62, 46, 34],\n [106, 84, 60, 44],\n [134, 106, 74, 58],\n [154, 122, 86, 64],\n [192, 152, 108, 84],\n [230, 180, 130, 98],\n [271, 213, 151, 119],\n [321, 251, 177, 137],\n [367, 287, 203, 155],\n [425, 331, 241, 177],\n [458, 362, 258, 194],\n [520, 412, 292, 220],\n [586, 450, 322, 250],\n [644, 504, 364, 280],\n [718, 560, 394, 310],\n [792, 624, 442, 338],\n [858, 666, 482, 382],\n [929, 711, 509, 403],\n [1003, 779, 565, 439],\n [1091, 857, 611, 461],\n [1171, 911, 661, 511],\n [1273, 997, 715, 535],\n [1367, 1059, 751, 593],\n [1465, 1125, 805, 625],\n [1528, 1190, 868, 658],\n [1628, 1264, 908, 698],\n [1732, 1370, 982, 742],\n [1840, 1452, 1030, 790],\n [1952, 1538, 1112, 842],\n [2068, 1628, 1168, 898],\n [2188, 1722, 1228, 958],\n [2303, 1809, 1283, 983],\n [2431, 1911, 1351, 1051],\n [2563, 1989, 1423, 1093],\n [2699, 2099, 1499, 1139],\n [2809, 2213, 1579, 1219],\n [2953, 2331, 1663, 1273]\n];\n\n// END OF QR CODE CORE LIBRARY DEFINITION\n\nvar Drawing = (function() {\n // Drawing in Canvas\n function _onMakeImage() {\n this._elImage.src = this._elCanvas.toDataURL(\"image/png\");\n this._elImage.style.display = \"block\";\n this._elCanvas.style.display = \"none\";\n }\n\n function _safeSetDataURI(fSuccess, fFail) {\n var self = this;\n self._fFail = fFail;\n self._fSuccess = fSuccess;\n\n // Check it just once\n if (self._bSupportDataURI === null) {\n var el = document.createElement(\"img\");\n var fOnError = function() {\n self._bSupportDataURI = false;\n\n if (self._fFail) {\n self._fFail.call(self);\n }\n };\n var fOnSuccess = function() {\n self._bSupportDataURI = true;\n\n if (self._fSuccess) {\n self._fSuccess.call(self);\n }\n };\n\n el.onabort = fOnError;\n el.onerror = fOnError;\n el.onload = fOnSuccess;\n el.src =\n \"data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==\"; // the Image contains 1px data.\n return;\n } else if (self._bSupportDataURI === true && self._fSuccess) {\n self._fSuccess.call(self);\n } else if (self._bSupportDataURI === false && self._fFail) {\n self._fFail.call(self);\n }\n }\n\n var Drawing = function(htOption) {\n this._bIsPainted = false;\n\n this._htOption = htOption;\n this._elCanvas = document.createElement(\"canvas\");\n this._elCanvas.width = htOption.size;\n this._elCanvas.height = htOption.size;\n this._oContext = this._elCanvas.getContext(\"2d\");\n this._bIsPainted = false;\n this._elImage = document.createElement(\"img\");\n this._elImage.alt = \"Scan me!\";\n this._elImage.style.display = \"none\";\n this._bSupportDataURI = null;\n this._callback = htOption.callback;\n this._bindElement = htOption.bindElement;\n };\n\n Drawing.prototype.draw = function(oQRCode) {\n var _elImage = this._elImage;\n var _tCanvas = document.createElement(\"canvas\");\n var _oContext = _tCanvas.getContext(\"2d\");\n // var _oContext = this._oContext;\n var _htOption = this._htOption;\n\n var nCount = oQRCode.getModuleCount();\n var rawSize = _htOption.size;\n var rawMargin = _htOption.margin;\n\n if (rawMargin < 0 || rawMargin * 2 >= rawSize) {\n rawMargin = 0;\n }\n\n var margin = Math.ceil(rawMargin);\n\n var rawViewportSize = rawSize - 2 * rawMargin;\n\n var whiteMargin = _htOption.whiteMargin;\n var backgroundDimming = _htOption.backgroundDimming;\n var nSize = Math.ceil(rawViewportSize / nCount);\n var viewportSize = nSize * nCount;\n var size = viewportSize + 2 * margin;\n\n var gifBackground = undefined;\n var gifFrames = undefined;\n\n _tCanvas.width = size;\n _tCanvas.height = size;\n\n var dotScale = _htOption.dotScale;\n _elImage.style.display = \"none\";\n this.clear();\n\n if (dotScale <= 0 || dotScale > 1) {\n throw new Error(\"Scale should be in range (0, 1).\");\n }\n\n // Leave room for margin\n _oContext.save();\n _oContext.translate(margin, margin);\n\n var _bkgCanvas = document.createElement(\"canvas\");\n _bkgCanvas.width = size;\n _bkgCanvas.height = size;\n var _bContext = _bkgCanvas.getContext(\"2d\");\n\n var _maskCanvas = undefined;\n var _mContext = undefined;\n\n if (_htOption.gifBackground !== undefined) {\n var gif = new GIF(_htOption.gifBackground);\n\n if (!gif.raw.hasImages) {\n throw new Error(\"An invalid gif has been selected as the background.\");\n }\n gifBackground = gif;\n gifFrames = gif.decompressFrames(true);\n // console.log(gifFrames);\n if (_htOption.autoColor) {\n var r = 0,\n g = 0,\n b = 0;\n var count = 0;\n for (var i = 0; i < gifFrames[0].colorTable.length; i++) {\n var c = gifFrames[0].colorTable[i];\n if (c[0] > 200 || c[1] > 200 || c[2] > 200) continue;\n if (c[0] === 0 && c[1] === 0 && c[2] === 0) continue;\n count++;\n r += c[0];\n g += c[1];\n b += c[2];\n }\n\n r = ~~(r / count);\n g = ~~(g / count);\n b = ~~(b / count);\n // console.log(\"rgb(\" + r + \", \" + g + \", \" + b + \")\");\n _htOption.colorDark = \"rgb(\" + r + \", \" + g + \", \" + b + \")\";\n }\n } else if (_htOption.backgroundImage !== undefined) {\n if (_htOption.autoColor) {\n var avgRGB = getAverageRGB(_htOption.backgroundImage);\n _htOption.colorDark =\n \"rgb(\" + avgRGB.r + \", \" + avgRGB.g + \", \" + avgRGB.b + \")\";\n }\n\n if (_htOption.maskedDots) {\n _maskCanvas = document.createElement(\"canvas\");\n _maskCanvas.width = size;\n _maskCanvas.height = size;\n _mContext = _maskCanvas.getContext(\"2d\");\n /*\n _mContext.drawImage(_htOption.backgroundImage,\n 0, 0, _htOption.backgroundImage.width, _htOption.backgroundImage.height,\n whiteMargin ? 0 : -margin, whiteMargin ? 0 : -margin, whiteMargin ? viewportSize : size, whiteMargin ? viewportSize : size);\n */\n _mContext.drawImage(\n _htOption.backgroundImage,\n 0,\n 0,\n _htOption.backgroundImage.width,\n _htOption.backgroundImage.height,\n 0,\n 0,\n size,\n size\n );\n\n _bContext.rect(0, 0, size, size);\n _bContext.fillStyle = \"#ffffff\";\n _bContext.fill();\n } else {\n /*\n _bContext.drawImage(_htOption.backgroundImage,\n 0, 0, _htOption.backgroundImage.width, _htOption.backgroundImage.height,\n whiteMargin ? 0 : -margin, whiteMargin ? 0 : -margin, whiteMargin ? viewportSize : size, whiteMargin ? viewportSize : size);\n */\n _bContext.drawImage(\n _htOption.backgroundImage,\n 0,\n 0,\n _htOption.backgroundImage.width,\n _htOption.backgroundImage.height,\n 0,\n 0,\n size,\n size\n );\n _bContext.rect(0, 0, size, size);\n _bContext.fillStyle = backgroundDimming;\n _bContext.fill();\n }\n } else {\n _bContext.rect(0, 0, size, size);\n _bContext.fillStyle = _htOption.backgroundColor;\n _bContext.fill();\n }\n\n if (_htOption.binarize) {\n _htOption.colorDark = \"#000000\";\n _htOption.colorLight = \"#FFFFFF\";\n }\n\n var agnPatternCenter = QRUtil.getPatternPosition(oQRCode.typeNumber);\n var xyOffset = (1 - dotScale) * 0.5;\n for (var row = 0; row < nCount; row++) {\n for (var col = 0; col < nCount; col++) {\n var bIsDark = oQRCode.isDark(row, col);\n\n // var isBlkPosCtr = ((col < 8 && (row < 8 || row >= nCount - 8)) || (col >= nCount - 8 && row < 8) || (col < nCount - 4 && col >= nCount - 4 - 5 && row < nCount - 4 && row >= nCount - 4 - 5));\n var isBlkPosCtr =\n (col < 8 && (row < 8 || row >= nCount - 8)) ||\n (col >= nCount - 8 && row < 8);\n var isBlkPos =\n (col < 7 && (row < 7 || row >= nCount - 7)) ||\n (col >= nCount - 7 && row < 7);\n var bProtected = row === 6 || col === 6 || isBlkPosCtr;\n\n for (var i = 0; i < agnPatternCenter.length - 1; i++) {\n bProtected =\n bProtected ||\n (row >= agnPatternCenter[i] - 2 &&\n row <= agnPatternCenter[i] + 2 &&\n col >= agnPatternCenter[i] - 2 &&\n col <= agnPatternCenter[i] + 2);\n }\n\n var nLeft = col * nSize + (bProtected ? 0 : xyOffset * nSize);\n var nTop = row * nSize + (bProtected ? 0 : xyOffset * nSize);\n _oContext.strokeStyle = bIsDark\n ? _htOption.colorDark\n : _htOption.colorLight;\n _oContext.lineWidth = 0.5;\n _oContext.fillStyle = bIsDark\n ? _htOption.colorDark\n : _htOption.colorLight || \"rgba(255, 255, 255, 0.6)\"; //_htOption.colorLight;\n if (agnPatternCenter.length === 0) {\n // if align pattern list is empty, then it means that we don't need to leave room for the align patterns\n if (!bProtected)\n _fillRectWithMask(\n _oContext,\n nLeft,\n nTop,\n (bProtected ? (isBlkPosCtr ? 1 : 1) : dotScale) * nSize,\n (bProtected ? (isBlkPosCtr ? 1 : 1) : dotScale) * nSize,\n _maskCanvas,\n bIsDark\n );\n } else {\n var inAgnRange =\n col < nCount - 4 &&\n col >= nCount - 4 - 5 &&\n row < nCount - 4 &&\n row >= nCount - 4 - 5;\n if (!bProtected && !inAgnRange)\n _fillRectWithMask(\n _oContext,\n nLeft,\n nTop,\n (bProtected ? (isBlkPosCtr ? 1 : 1) : dotScale) * nSize,\n (bProtected ? (isBlkPosCtr ? 1 : 1) : dotScale) * nSize,\n _maskCanvas,\n bIsDark\n );\n }\n }\n }\n\n // Draw POSITION protectors\n var protectorStyle = _htOption.colorLight;\n _oContext.fillStyle = protectorStyle;\n _oContext.fillRect(0, 0, 8 * nSize, 8 * nSize);\n _oContext.fillRect(0, (nCount - 8) * nSize, 8 * nSize, 8 * nSize);\n _oContext.fillRect((nCount - 8) * nSize, 0, 8 * nSize, 8 * nSize);\n _oContext.fillRect(8 * nSize, 6 * nSize, (nCount - 8 - 8) * nSize, nSize);\n _oContext.fillRect(6 * nSize, 8 * nSize, nSize, (nCount - 8 - 8) * nSize);\n\n // Draw ALIGN protectors\n var edgeCenter = agnPatternCenter[agnPatternCenter.length - 1];\n for (var i = 0; i < agnPatternCenter.length; i++) {\n for (var j = 0; j < agnPatternCenter.length; j++) {\n var agnX = agnPatternCenter[j];\n var agnY = agnPatternCenter[i];\n if (agnX === 6 && (agnY === 6 || agnY === edgeCenter)) {\n continue;\n } else if (agnY === 6 && (agnX === 6 || agnX === edgeCenter)) {\n continue;\n } else if (\n agnX !== 6 &&\n agnX !== edgeCenter &&\n agnY !== 6 &&\n agnY !== edgeCenter\n ) {\n _drawAlignProtector(_oContext, agnX, agnY, nSize, nSize);\n } else {\n _drawAlignProtector(_oContext, agnX, agnY, nSize, nSize);\n }\n // console.log(\"agnX=\" + agnX + \", agnY=\" + agnX);\n }\n }\n\n // Draw POSITION patterns\n _oContext.fillStyle = _htOption.colorDark;\n _oContext.fillRect(0, 0, 7 * nSize, nSize);\n _oContext.fillRect((nCount - 7) * nSize, 0, 7 * nSize, nSize);\n _oContext.fillRect(0, 6 * nSize, 7 * nSize, nSize);\n _oContext.fillRect((nCount - 7) * nSize, 6 * nSize, 7 * nSize, nSize);\n _oContext.fillRect(0, (nCount - 7) * nSize, 7 * nSize, nSize);\n _oContext.fillRect(0, (nCount - 7 + 6) * nSize, 7 * nSize, nSize);\n _oContext.fillRect(0, 0, nSize, 7 * nSize);\n _oContext.fillRect(6 * nSize, 0, nSize, 7 * nSize);\n _oContext.fillRect((nCount - 7) * nSize, 0, nSize, 7 * nSize);\n _oContext.fillRect((nCount - 7 + 6) * nSize, 0, nSize, 7 * nSize);\n _oContext.fillRect(0, (nCount - 7) * nSize, nSize, 7 * nSize);\n _oContext.fillRect(6 * nSize, (nCount - 7) * nSize, nSize, 7 * nSize);\n\n _oContext.fillRect(2 * nSize, 2 * nSize, 3 * nSize, 3 * nSize);\n _oContext.fillRect(\n (nCount - 7 + 2) * nSize,\n 2 * nSize,\n 3 * nSize,\n 3 * nSize\n );\n _oContext.fillRect(\n 2 * nSize,\n (nCount - 7 + 2) * nSize,\n 3 * nSize,\n 3 * nSize\n );\n\n for (var i = 0; i < nCount - 8; i += 2) {\n _oContext.fillRect((8 + i) * nSize, 6 * nSize, nSize, nSize);\n _oContext.fillRect(6 * nSize, (8 + i) * nSize, nSize, nSize);\n }\n for (var i = 0; i < agnPatternCenter.length; i++) {\n for (var j = 0; j < agnPatternCenter.length; j++) {\n var agnX = agnPatternCenter[j];\n var agnY = agnPatternCenter[i];\n if (agnX === 6 && (agnY === 6 || agnY === edgeCenter)) {\n continue;\n } else if (agnY === 6 && (agnX === 6 || agnX === edgeCenter)) {\n continue;\n } else if (\n agnX !== 6 &&\n agnX !== edgeCenter &&\n agnY !== 6 &&\n agnY !== edgeCenter\n ) {\n _oContext.fillStyle = _htOption.colorLight;\n _drawAlign(_oContext, agnX, agnY, nSize, nSize);\n } else {\n _oContext.fillStyle = _htOption.colorDark;\n _drawAlign(_oContext, agnX, agnY, nSize, nSize);\n }\n }\n }\n\n // Fill the margin\n if (whiteMargin) {\n _oContext.fillStyle = _htOption.backgroundColor;\n _oContext.fillRect(-margin, -margin, size, margin);\n _oContext.fillRect(-margin, viewportSize, size, margin);\n _oContext.fillRect(viewportSize, -margin, margin, size);\n _oContext.fillRect(-margin, -margin, margin, size);\n }\n\n if (_htOption.logoImage !== undefined) {\n var logoScale = _htOption.logoScale;\n var logoMargin = _htOption.logoMargin;\n var logoCornerRadius = _htOption.logoCornerRadius;\n if (logoScale <= 0 || logoScale >= 1.0) {\n logoScale = 0.2;\n }\n if (logoMargin < 0) {\n logoMargin = 0;\n }\n if (logoCornerRadius < 0) {\n logoCornerRadius = 0;\n }\n\n _oContext.restore();\n _oContext.translate(margin, margin);\n var logoSize = viewportSize * logoScale;\n var x = 0.5 * (viewportSize - logoSize);\n var y = x;\n\n _oContext.fillStyle = _htOption.logoBackgroundColor;\n _oContext.save();\n _prepareRoundedCornerClip(\n _oContext,\n x - logoMargin,\n y - logoMargin,\n logoSize + 2 * logoMargin,\n logoSize + 2 * logoMargin,\n logoCornerRadius\n );\n _oContext.clip();\n _oContext.fill();\n _oContext.restore();\n\n _oContext.save();\n _prepareRoundedCornerClip(\n _oContext,\n x,\n y,\n logoSize,\n logoSize,\n logoCornerRadius\n );\n _oContext.clip();\n _oContext.drawImage(_htOption.logoImage, x, y, logoSize, logoSize);\n _oContext.restore();\n }\n\n if (gifBackground === undefined) {\n // Swap and merge the foreground and the background\n _bContext.drawImage(_tCanvas, 0, 0, size, size);\n _oContext.drawImage(_bkgCanvas, -margin, -margin, size, size);\n\n // Binarize the final image\n if (_htOption.binarize) {\n var pixels = _oContext.getImageData(0, 0, size, size);\n var threshold = 128;\n if (\n parseInt(_htOption.binarizeThreshold) > 0 &&\n parseInt(_htOption.binarizeThreshold) < 255\n ) {\n threshold = parseInt(_htOption.binarizeThreshold);\n }\n for (var i = 0; i < pixels.data.length; i += 4) {\n // rgb in [0, 255]\n var R = pixels.data[i];\n var G = pixels.data[i + 1];\n var B = pixels.data[i + 2];\n var sum = _greyscale(R, G, B);\n if (sum > threshold) {\n pixels.data[i] = 255;\n pixels.data[i + 1] = 255;\n pixels.data[i + 2] = 255;\n } else {\n pixels.data[i] = 0;\n pixels.data[i + 1] = 0;\n pixels.data[i + 2] = 0;\n }\n }\n _oContext.putImageData(pixels, 0, 0);\n }\n\n // Scale the final image\n var _fCanvas = document.createElement(\"canvas\");\n var _fContext = _fCanvas.getContext(\"2d\");\n _fCanvas.width = rawSize;\n _fCanvas.height = rawSize;\n _fContext.drawImage(_tCanvas, 0, 0, rawSize, rawSize);\n this._elCanvas = _fCanvas;\n\n // Painting work completed\n this._bIsPainted = true;\n if (this._callback !== undefined) {\n this._callback(this._elCanvas.toDataURL());\n }\n if (this._bindElement !== undefined) {\n try {\n var el = document.getElementById(this._bindElement);\n if (el.nodeName === \"IMG\") {\n el.src = this._elCanvas.toDataURL();\n } else {\n var elStyle = el.style;\n elStyle[\"background-image\"] =\n \"url(\" + this._elCanvas.toDataURL() + \")\";\n elStyle[\"background-size\"] = \"contain\";\n elStyle[\"background-repeat\"] = \"no-repeat\";\n }\n } catch (e) {\n console.error(e);\n }\n }\n } else {\n var gifOutput;\n\n // Reuse in order to apply the patch\n var rawBkg;\n var hRawBkg;\n\n var patchCanvas = document.createElement(\"canvas\");\n var hPatchCanvas = patchCanvas.getContext(\"2d\");\n var patchData;\n\n gifFrames.forEach(function(frame) {\n // console.log(frame);\n if (gifOutput === undefined) {\n gifOutput = new GIFE({\n workers: 4,\n quality: 10,\n width: rawSize,\n height: rawSize\n });\n }\n\n if (rawBkg === undefined) {\n rawBkg = document.createElement(\"canvas\");\n hRawBkg = rawBkg.getContext(\"2d\");\n rawBkg.width = frame.dims.width;\n rawBkg.height = frame.dims.height;\n hRawBkg.rect(0, 0, rawBkg.width, rawBkg.height);\n hRawBkg.fillStyle = \"#ffffff\";\n hRawBkg.fill();\n // console.log(rawBkg);\n }\n\n if (\n !patchData ||\n frame.dims.width !== patchCanvas.width ||\n frame.dims.height !== patchCanvas.height\n ) {\n patchCanvas.width = frame.dims.width;\n patchCanvas.height = frame.dims.height;\n patchData = hPatchCanvas.createImageData(\n frame.dims.width,\n frame.dims.height\n );\n }\n\n patchData.data.set(frame.patch);\n hPatchCanvas.putImageData(patchData, 0, 0);\n\n hRawBkg.drawImage(patchCanvas, frame.dims.left, frame.dims.top);\n\n var stdCanvas = document.createElement(\"canvas\");\n stdCanvas.width = size;\n stdCanvas.height = size;\n var hStdCanvas = stdCanvas.getContext(\"2d\");\n\n hStdCanvas.drawImage(rawBkg, 0, 0, size, size);\n hStdCanvas.drawImage(_tCanvas, 0, 0, size, size);\n\n // Scale the final image\n var _fCanvas = document.createElement(\"canvas\");\n var _fContext = _fCanvas.getContext(\"2d\");\n _fCanvas.width = rawSize;\n _fCanvas.height = rawSize;\n _fContext.drawImage(stdCanvas, 0, 0, rawSize, rawSize);\n // console.log(_fContext);\n gifOutput.addFrame(_fContext, { copy: true, delay: frame.delay });\n });\n\n if (gifOutput === undefined) {\n throw new Error(\"No frames.\");\n }\n var ref = this;\n gifOutput.on(\"finished\", function(blob) {\n // Painting work completed\n var r = new FileReader();\n r.onload = function(e) {\n var data = e.target.result;\n ref._bIsPainted = true;\n if (ref._callback !== undefined) {\n ref._callback(data);\n }\n if (ref._bindElement !== undefined) {\n try {\n var el = document.getElementById(ref._bindElement);\n if (el.nodeName === \"IMG\") {\n el.src = data;\n } else {\n var elStyle = el.style;\n elStyle[\"background-image\"] = \"url(\" + data + \")\";\n elStyle[\"background-size\"] = \"contain\";\n elStyle[\"background-repeat\"] = \"no-repeat\";\n }\n } catch (e) {\n console.error(e);\n }\n }\n };\n r.readAsDataURL(blob);\n });\n\n gifOutput.render();\n }\n };\n\n Drawing.prototype.makeImage = function() {\n if (this._bIsPainted) {\n _safeSetDataURI.call(this, _onMakeImage);\n }\n };\n\n Drawing.prototype.isPainted = function() {\n return this._bIsPainted;\n };\n\n Drawing.prototype.clear = function() {\n this._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height);\n this._bIsPainted = false;\n };\n\n Drawing.prototype.round = function(nNumber) {\n if (!nNumber) {\n return nNumber;\n }\n\n return Math.floor(nNumber * 1000) / 1000;\n };\n\n return Drawing;\n})();\n\n// Utilities and useful helpers\n\nfunction _getUTF8Length(sText) {\n var replacedText = encodeURI(sText)\n .toString()\n .replace(/\\%[0-9a-fA-F]{2}/g, \"a\");\n return replacedText.length + (replacedText.length != sText ? 3 : 0);\n}\n\nfunction _prepareRoundedCornerClip(ctx, x, y, w, h, r) {\n ctx.beginPath();\n ctx.moveTo(x, y);\n ctx.arcTo(x + w, y, x + w, y + h, r);\n ctx.arcTo(x + w, y + h, x, y + h, r);\n ctx.arcTo(x, y + h, x, y, r);\n ctx.arcTo(x, y, x + w, y, r);\n ctx.closePath();\n}\n\nfunction _setPixel(imageData, p, r, g, b, a) {\n var index = p * 4;\n imageData.data[index + 0] = r;\n imageData.data[index + 1] = g;\n imageData.data[index + 2] = b;\n imageData.data[index + 3] = a;\n}\n\nfunction _greyscale(r, g, b) {\n return 0.3 * r + 0.59 * b + 0.11 * b;\n}\n\nfunction _fillRectWithMask(canvas, x, y, w, h, maskSrc, bDark) {\n //console.log(\"maskSrc=\" + maskSrc);\n if (maskSrc === undefined) {\n canvas.fillRect(x, y, w, h);\n } else {\n canvas.drawImage(maskSrc, x, y, w, h, x, y, w, h);\n var fill_ = canvas.fillStyle;\n canvas.fillStyle = bDark ? \"rgba(0, 0, 0, .5)\" : \"rgba(255, 255, 255, .7)\";\n canvas.fillRect(x, y, w, h);\n canvas.fillStyle = fill_;\n }\n}\n\nfunction _drawAlignProtector(context, centerX, centerY, nWidth, nHeight) {\n context.clearRect(\n (centerX - 2) * nWidth,\n (centerY - 2) * nHeight,\n 5 * nWidth,\n 5 * nHeight\n );\n context.fillRect(\n (centerX - 2) * nWidth,\n (centerY - 2) * nHeight,\n 5 * nWidth,\n 5 * nHeight\n );\n}\n\nfunction _drawAlign(context, centerX, centerY, nWidth, nHeight) {\n context.fillRect(\n (centerX - 2) * nWidth,\n (centerY - 2) * nHeight,\n nWidth,\n 4 * nHeight\n );\n context.fillRect(\n (centerX + 2) * nWidth,\n (centerY - 2 + 1) * nHeight,\n nWidth,\n 4 * nHeight\n );\n context.fillRect(\n (centerX - 2 + 1) * nWidth,\n (centerY - 2) * nHeight,\n 4 * nWidth,\n nHeight\n );\n context.fillRect(\n (centerX - 2) * nWidth,\n (centerY + 2) * nHeight,\n 4 * nWidth,\n nHeight\n );\n context.fillRect(centerX * nWidth, centerY * nHeight, nWidth, nHeight);\n}\n\nAwesomeQRCode = function() {};\n\nAwesomeQRCode.prototype.create = function(vOption) {\n this._htOption = {\n size: 800,\n margin: 20,\n typeNumber: 4,\n colorDark: \"#000000\",\n colorLight: \"rgba(255, 255, 255, 0.6)\",\n logoBackgroundColor: \"#ffffff\",\n correctLevel: QRErrorCorrectLevel.M,\n backgroundImage: undefined,\n backgroundDimming: \"rgba(0,0,0,0)\",\n logoImage: undefined,\n logoScale: 0.2,\n logoMargin: 6,\n logoCornerRadius: 8,\n whiteMargin: true,\n dotScale: 0.35,\n maskedDots: false,\n autoColor: true,\n binarize: false,\n binarizeThreshold: 128,\n gifBackground: undefined,\n callback: undefined,\n bindElement: undefined,\n backgroundColor: \"#ffffff\"\n };\n\n if (typeof vOption === \"string\") {\n vOption = {\n text: vOption\n };\n }\n\n if (vOption) {\n for (var i in vOption) {\n this._htOption[i] = vOption[i];\n }\n }\n\n this._oQRCode = null;\n this._oDrawing = new Drawing(this._htOption);\n\n if (this._htOption.text) {\n this.makeCode(this._htOption.text);\n }\n};\n\nfunction _getTypeNumber(sText, nCorrectLevel) {\n var nType = 1;\n var length = _getUTF8Length(sText);\n\n for (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) {\n var nLimit = 0;\n\n switch (nCorrectLevel) {\n case QRErrorCorrectLevel.L:\n nLimit = QRCodeLimitLength[i][0];\n break;\n case QRErrorCorrectLevel.M:\n nLimit = QRCodeLimitLength[i][1];\n break;\n case QRErrorCorrectLevel.Q:\n nLimit = QRCodeLimitLength[i][2];\n break;\n case QRErrorCorrectLevel.H:\n nLimit = QRCodeLimitLength[i][3];\n break;\n }\n\n if (length <= nLimit) {\n break;\n } else {\n nType++;\n }\n }\n\n if (nType > QRCodeLimitLength.length) {\n throw new Error(\"Too long data\");\n }\n\n return nType;\n}\n\nAwesomeQRCode.prototype.makeCode = function(sText) {\n //this._oQRCode = new QRCodeModel(_getTypeNumber(sText, this._htOption.correctLevel), this._htOption.correctLevel);\n this._oQRCode = new QRCodeModel(-1, this._htOption.correctLevel);\n this._oQRCode.addData(sText);\n this._oQRCode.make();\n this._oDrawing.draw(this._oQRCode);\n this.makeImage();\n};\n\nAwesomeQRCode.prototype.makeImage = function() {\n if (typeof this._oDrawing.makeImage == \"function\") {\n this._oDrawing.makeImage();\n }\n};\n\nAwesomeQRCode.prototype.clear = function() {\n this._oDrawing.clear();\n};\n\nAwesomeQRCode.CorrectLevel = QRErrorCorrectLevel;\n\nfunction getAverageRGB(imgEl) {\n var blockSize = 5,\n defaultRGB = {\n r: 0,\n g: 0,\n b: 0\n },\n canvas = document.createElement(\"canvas\"),\n context = canvas.getContext && canvas.getContext(\"2d\"),\n data,\n width,\n height,\n i = -4,\n length,\n rgb = {\n r: 0,\n g: 0,\n b: 0\n },\n count = 0;\n\n if (!context) {\n return defaultRGB;\n }\n\n height = canvas.height =\n imgEl.naturalHeight || imgEl.offsetHeight || imgEl.height;\n width = canvas.width = imgEl.naturalWidth || imgEl.offsetWidth || imgEl.width;\n\n context.drawImage(imgEl, 0, 0);\n\n try {\n data = context.getImageData(0, 0, width, height);\n } catch (e) {\n return defaultRGB;\n }\n\n length = data.data.length;\n\n while ((i += blockSize * 4) < length) {\n if (data.data[i] > 200 || data.data[i + 1] > 200 || data.data[i + 2] > 200)\n continue;\n ++count;\n rgb.r += data.data[i];\n rgb.g += data.data[i + 1];\n rgb.b += data.data[i + 2];\n }\n\n rgb.r = ~~(rgb.r / count);\n rgb.g = ~~(rgb.g / count);\n rgb.b = ~~(rgb.b / count);\n\n return rgb;\n}\n// module.exports=AwesomeQRCode\nexport default AwesomeQRCode;\n"],"sourceRoot":""}