diff --git a/README.md b/README.md index 9531a6b..c506c6b 100644 --- a/README.md +++ b/README.md @@ -148,6 +148,18 @@ Example: ``` +# Row Height + +Row Height can be set by specifying `data-height` in the `` tag. +Example: + +```html + + Cell 1 + Cell 2 + +``` + # Release Changelog ## 1.0.0 @@ -166,3 +178,11 @@ Example: - String "true/false" will be accepted as Boolean - Changed border style values - Text rotation values changed + +## 1.0.2 + +- Fixed bug in handling multiple columns merges in a sheet + +## 1.0.3 + +- Option to specify row height diff --git a/dist/index.html b/dist/index.html index 55c95a0..441b40a 100644 --- a/dist/index.html +++ b/dist/index.html @@ -93,6 +93,9 @@ Excluded Cell Included Cell + + Row height 42 + diff --git a/dist/index.js b/dist/index.js index c26d77e..1693ac2 100644 --- a/dist/index.js +++ b/dist/index.js @@ -198,7 +198,7 @@ var parent = module.bundle.parent; if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') { var hostname = "" || location.hostname; var protocol = location.protocol === 'https:' ? 'wss' : 'ws'; - var ws = new WebSocket(protocol + '://' + hostname + ':' + "52850" + '/'); + var ws = new WebSocket(protocol + '://' + hostname + ':' + "49818" + '/'); ws.onmessage = function (event) { var data = JSON.parse(event.data); diff --git a/dist/tableToExcel.517b1af9.js b/dist/tableToExcel.517b1af9.js index 2308bcb..7c394e0 100644 --- a/dist/tableToExcel.517b1af9.js +++ b/dist/tableToExcel.517b1af9.js @@ -141,6 +141,9 @@ var TTEParser = function () { for (_r = 0; _r < rows.length; ++_r) { var row = rows[_r]; + r = _r + 1; // Actual excel row number + + c = 1; // Actual excel col number if (row.getAttribute("data-exclude") === "true") { rows.splice(_r, 1); @@ -148,10 +151,12 @@ var TTEParser = function () { continue; } - var tds = _toConsumableArray(row.children); + if (row.getAttribute("data-height")) { + var exRow = ws.getRow(r); + exRow.height = parseFloat(row.getAttribute("data-height")); + } - r = _r + 1; - c = 1; + var tds = _toConsumableArray(row.children); for (_c = 0; _c < tds.length; ++_c) { var td = tds[_c]; @@ -44629,7 +44634,7 @@ var parent = module.bundle.parent; if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') { var hostname = "" || location.hostname; var protocol = location.protocol === 'https:' ? 'wss' : 'ws'; - var ws = new WebSocket(protocol + '://' + hostname + ':' + "52850" + '/'); + var ws = new WebSocket(protocol + '://' + hostname + ':' + "49818" + '/'); ws.onmessage = function (event) { var data = JSON.parse(event.data); diff --git a/dist/tableToExcel.517b1af9.map b/dist/tableToExcel.517b1af9.map index 80eb9db..cd28dfc 100644 --- a/dist/tableToExcel.517b1af9.map +++ b/dist/tableToExcel.517b1af9.map @@ -1 +1 @@ -{"version":3,"sources":["../src/parser.js","../src/FileSaver.js","../../../lib/utils/promish.js","../../../lib/config/set-value.js","../node_modules/process/browser.js","../node_modules/es6-promise/dist/es6-promise.js","../node_modules/promish/dist/promish-class.js","../node_modules/promish/dist/promish-node.js","../../../lib/utils/under-dash.js","../../../lib/utils/col-cache.js","../../../lib/doc/range.js","../../../lib/doc/enums.js","../../../lib/utils/shared-formula.js","../../../lib/doc/cell.js","../../../lib/doc/row.js","../../../lib/doc/column.js","../../../lib/doc/data-validations.js","../../../lib/doc/worksheet.js","../../../lib/utils/cell-matrix.js","../../../lib/doc/defined-names.js","../node_modules/events/events.js","../node_modules/inherits/inherits_browser.js","../node_modules/process-nextick-args/index.js","../node_modules/isarray/index.js","../node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/buffer/index.js","../node_modules/safe-buffer/index.js","../node_modules/core-util-is/lib/util.js","../node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/util-deprecate/browser.js","../node_modules/readable-stream/lib/_stream_writable.js","../node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/readable-stream/lib/_stream_readable.js","../node_modules/readable-stream/lib/_stream_transform.js","../node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/readable-stream/readable-browser.js","../node_modules/readable-stream/writable-browser.js","../node_modules/readable-stream/duplex-browser.js","../node_modules/readable-stream/transform.js","../node_modules/readable-stream/passthrough.js","../node_modules/stream-browserify/index.js","../node_modules/exceljs/node_modules/jszip/lib/readable-stream-browser.js","../node_modules/exceljs/node_modules/jszip/lib/support.js","../node_modules/exceljs/node_modules/jszip/lib/base64.js","../node_modules/exceljs/node_modules/jszip/lib/nodejsUtils.js","../node_modules/exceljs/node_modules/core-js/library/modules/_global.js","../node_modules/exceljs/node_modules/core-js/library/modules/_core.js","../node_modules/exceljs/node_modules/core-js/library/modules/_a-function.js","../node_modules/exceljs/node_modules/core-js/library/modules/_ctx.js","../node_modules/exceljs/node_modules/core-js/library/modules/_is-object.js","../node_modules/exceljs/node_modules/core-js/library/modules/_an-object.js","../node_modules/exceljs/node_modules/core-js/library/modules/_fails.js","../node_modules/exceljs/node_modules/core-js/library/modules/_descriptors.js","../node_modules/exceljs/node_modules/core-js/library/modules/_dom-create.js","../node_modules/exceljs/node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/exceljs/node_modules/core-js/library/modules/_to-primitive.js","../node_modules/exceljs/node_modules/core-js/library/modules/_object-dp.js","../node_modules/exceljs/node_modules/core-js/library/modules/_property-desc.js","../node_modules/exceljs/node_modules/core-js/library/modules/_hide.js","../node_modules/exceljs/node_modules/core-js/library/modules/_export.js","../node_modules/exceljs/node_modules/core-js/library/modules/_invoke.js","../node_modules/exceljs/node_modules/core-js/library/modules/_html.js","../node_modules/exceljs/node_modules/core-js/library/modules/_cof.js","../node_modules/exceljs/node_modules/core-js/library/modules/_task.js","../node_modules/exceljs/node_modules/core-js/library/modules/web.immediate.js","../node_modules/exceljs/node_modules/core-js/library/fn/set-immediate.js","../node_modules/immediate/lib/browser.js","../node_modules/lie/lib/browser.js","../node_modules/exceljs/node_modules/jszip/lib/external.js","../node_modules/exceljs/node_modules/jszip/lib/utils.js","../node_modules/exceljs/node_modules/jszip/lib/stream/GenericWorker.js","../node_modules/exceljs/node_modules/jszip/lib/utf8.js","../node_modules/exceljs/node_modules/jszip/lib/stream/ConvertWorker.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/util.js","../node_modules/exceljs/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js","../node_modules/exceljs/node_modules/jszip/lib/stream/StreamHelper.js","../node_modules/exceljs/node_modules/jszip/lib/defaults.js","../node_modules/exceljs/node_modules/jszip/lib/stream/DataWorker.js","../node_modules/exceljs/node_modules/jszip/lib/stream/DataLengthProbe.js","../node_modules/exceljs/node_modules/jszip/lib/crc32.js","../node_modules/exceljs/node_modules/jszip/lib/stream/Crc32Probe.js","../node_modules/exceljs/node_modules/jszip/lib/compressedObject.js","../node_modules/exceljs/node_modules/jszip/lib/zipObject.js","../node_modules/exceljs/node_modules/pako/lib/utils/common.js","../node_modules/exceljs/node_modules/pako/lib/zlib/trees.js","../node_modules/exceljs/node_modules/pako/lib/zlib/adler32.js","../node_modules/exceljs/node_modules/pako/lib/zlib/crc32.js","../node_modules/exceljs/node_modules/pako/lib/zlib/messages.js","../node_modules/exceljs/node_modules/pako/lib/zlib/deflate.js","../node_modules/exceljs/node_modules/pako/lib/utils/strings.js","../node_modules/exceljs/node_modules/pako/lib/zlib/zstream.js","../node_modules/exceljs/node_modules/pako/lib/deflate.js","../node_modules/exceljs/node_modules/pako/lib/zlib/inffast.js","../node_modules/exceljs/node_modules/pako/lib/zlib/inftrees.js","../node_modules/exceljs/node_modules/pako/lib/zlib/inflate.js","../node_modules/exceljs/node_modules/pako/lib/zlib/constants.js","../node_modules/exceljs/node_modules/pako/lib/zlib/gzheader.js","../node_modules/exceljs/node_modules/pako/lib/inflate.js","../node_modules/exceljs/node_modules/pako/index.js","../node_modules/exceljs/node_modules/jszip/lib/flate.js","../node_modules/exceljs/node_modules/jszip/lib/compressions.js","../node_modules/exceljs/node_modules/jszip/lib/signature.js","../node_modules/exceljs/node_modules/jszip/lib/generate/ZipFileWorker.js","../node_modules/exceljs/node_modules/jszip/lib/generate/index.js","../node_modules/exceljs/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js","../node_modules/exceljs/node_modules/jszip/lib/object.js","../node_modules/exceljs/node_modules/jszip/lib/reader/DataReader.js","../node_modules/exceljs/node_modules/jszip/lib/reader/ArrayReader.js","../node_modules/exceljs/node_modules/jszip/lib/reader/StringReader.js","../node_modules/exceljs/node_modules/jszip/lib/reader/Uint8ArrayReader.js","../node_modules/exceljs/node_modules/jszip/lib/reader/NodeBufferReader.js","../node_modules/exceljs/node_modules/jszip/lib/reader/readerFor.js","../node_modules/exceljs/node_modules/jszip/lib/zipEntry.js","../node_modules/exceljs/node_modules/jszip/lib/zipEntries.js","../node_modules/exceljs/node_modules/jszip/lib/load.js","../node_modules/exceljs/node_modules/jszip/lib/index.js","../../../lib/utils/utils.js","../../../lib/utils/string-buf.js","../../../lib/utils/stream-buf.js","../../../lib/utils/zip-stream.js","../../../lib/utils/xml-stream.js","../node_modules/sax/lib/sax.js","../../../../lib/xlsx/xform/base-xform.js","../../../../lib/xlsx/xform/static-xform.js","../../../../lib/xlsx/xform/list-xform.js","../../../../../lib/xlsx/xform/style/color-xform.js","../../../../../lib/xlsx/xform/simple/boolean-xform.js","../../../../../lib/xlsx/xform/simple/integer-xform.js","../../../../../lib/xlsx/xform/simple/string-xform.js","../../../../../lib/xlsx/xform/style/underline-xform.js","../../../../../lib/xlsx/xform/style/font-xform.js","../../../../../lib/xlsx/xform/style/fill-xform.js","../../../../../lib/xlsx/xform/style/border-xform.js","../../../lib/xlsx/defaultnumformats.js","../../../../../lib/xlsx/xform/style/numfmt-xform.js","../../../../../lib/xlsx/xform/style/alignment-xform.js","../../../../../lib/xlsx/xform/style/style-xform.js","../../../../../lib/xlsx/xform/style/styles-xform.js","../../../../../lib/xlsx/xform/simple/date-xform.js","../../../../../lib/xlsx/xform/core/core-xform.js","../../../../../lib/xlsx/xform/strings/text-xform.js","../../../../../lib/xlsx/xform/strings/rich-text-xform.js","../../../../../lib/xlsx/xform/strings/phonetic-text-xform.js","../../../../../lib/xlsx/xform/strings/shared-string-xform.js","../../../../../lib/xlsx/xform/strings/shared-strings-xform.js","../../../../../lib/xlsx/xform/core/relationship-xform.js","../../../../../lib/xlsx/xform/core/relationships-xform.js","../../../../../lib/xlsx/xform/core/content-types-xform.js","../../../../../lib/xlsx/xform/core/app-heading-pairs-xform.js","../../../../../lib/xlsx/xform/core/app-titles-of-parts-xform.js","../../../../../lib/xlsx/xform/core/app-xform.js","../../../../../lib/xlsx/xform/book/defined-name-xform.js","../../../../../lib/xlsx/xform/book/sheet-xform.js","../../../../../lib/xlsx/xform/book/workbook-view-xform.js","../../../../../lib/xlsx/xform/book/workbook-properties-xform.js","../../../../../lib/xlsx/xform/book/workbook-xform.js","../../../lib/xlsx/rel-type.js","../../../../../lib/xlsx/xform/sheet/merges.js","../../../../../lib/xlsx/xform/sheet/cell-xform.js","../../../../../lib/xlsx/xform/sheet/row-xform.js","../../../../../lib/xlsx/xform/sheet/col-xform.js","../../../../../lib/xlsx/xform/sheet/dimension-xform.js","../../../../../lib/xlsx/xform/sheet/hyperlink-xform.js","../../../../../lib/xlsx/xform/sheet/merge-cell-xform.js","../../../../../lib/xlsx/xform/sheet/data-validations-xform.js","../../../../../lib/xlsx/xform/sheet/page-setup-properties-xform.js","../../../../../lib/xlsx/xform/sheet/outline-properties-xform.js","../../../../../lib/xlsx/xform/sheet/sheet-properties-xform.js","../../../../../lib/xlsx/xform/sheet/sheet-format-properties-xform.js","../../../../../lib/xlsx/xform/sheet/sheet-view-xform.js","../../../../../lib/xlsx/xform/sheet/page-margins-xform.js","../../../../../lib/xlsx/xform/sheet/page-setup-xform.js","../../../../../lib/xlsx/xform/sheet/print-options-xform.js","../../../../../lib/xlsx/xform/sheet/auto-filter-xform.js","../../../../../lib/xlsx/xform/sheet/picture-xform.js","../../../../../lib/xlsx/xform/sheet/drawing-xform.js","../../../../../lib/xlsx/xform/sheet/page-breaks-xform.js","../../../../../lib/xlsx/xform/sheet/row-breaks-xform.js","../../../../../lib/xlsx/xform/sheet/worksheet-xform.js","../../../../../lib/xlsx/xform/drawing/cell-position-xform.js","../../../../../lib/xlsx/xform/drawing/blip-xform.js","../../../../../lib/xlsx/xform/drawing/blip-fill-xform.js","../../../../../lib/xlsx/xform/drawing/nv-pic-pr-xform.js","../../../../../lib/xlsx/xform/drawing/sp-pr.js","../../../../../lib/xlsx/xform/drawing/pic-xform.js","../../../../../lib/xlsx/xform/drawing/two-cell-anchor-xform.js","../../../../../lib/xlsx/xform/drawing/drawing-xform.js","../../../../lib/xlsx/xml/theme1.js","../../../lib/xlsx/xlsx.js","../node_modules/declare.js/declare.js","../node_modules/declare.js/index.js","../node_modules/extender/extender.js","../node_modules/extender/index.js","../node_modules/extended/index.js","../node_modules/is-extended/index.js","../node_modules/arguments-extended/index.js","../node_modules/array-extended/index.js","../node_modules/object-extended/index.js","../node_modules/date-extended/index.js","../node_modules/string-extended/index.js","../node_modules/os-browserify/browser.js","../node_modules/fast-csv/lib/extended.js","../node_modules/fast-csv/lib/parser/parser.js","../node_modules/fast-csv/lib/parser/parser_stream.js","../node_modules/fast-csv/lib/parser/index.js","../node_modules/fast-csv/lib/formatter/formatter.js","../node_modules/fast-csv/lib/formatter/formatter_stream.js","../node_modules/fast-csv/lib/formatter/index.js","../node_modules/fast-csv/lib/index.js","../node_modules/fast-csv/index.js","../node_modules/moment/moment.js","../../../lib/csv/csv.js","../../../lib/doc/workbook.js","../../lib/exceljs.browser.js","../src/tableToExcel.js"],"names":["TTEParser","methods","parseDomToTable","ws","table","opts","_r","_c","cs","rs","r","c","rows","getElementsByTagName","widths","getAttribute","split","map","item","parseInt","merges","length","row","splice","tds","children","td","_m","m","s","e","exCell","getCell","getColumnAddress","push","value","getValue","autoStyle","styles","getStylesDataAttr","font","alignment","border","fill","numFmt","forEach","width","_i","columns","applyMerges","mergeCells","getExcelColumnName","htmldecode","entities","x","RegExp","str","o","trim","replace","i","num","ret","a","b","String","fromCharCode","col","dataType","rawVal","innerHTML","val","Number","Date","toLowerCase","Boolean","text","hyperlink","error","name","size","color","argb","bold","italic","underline","strike","horizontal","vertical","wrapText","textRotation","indent","readingOrder","top","left","bottom","right","style","type","pattern","fgColor","module","exports","Promish","PromishLib","require","setValue","key","overwrite","undefined","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","Error","defaultClearTimeout","setTimeout","clearTimeout","runTimeout","fun","call","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","concat","drainQueue","timeout","len","run","nextTick","args","Array","arguments","Item","array","prototype","apply","title","browser","env","argv","version","versions","noop","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","Constructor","protoProps","staticProps","_classCallCheck","instance","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","generatePromish","Base","isErrorClass","_Base","f","_ret","_this","Promise","then","Function","getPrototypeOf","resolve","reject","_finally","h","_catch","from","pop","matcher","delay","values","reduce","val0","spread","all","v","v2","promise","count","sequence","fns","initialValue","method","shift","nfapply","nfcall","post","bind","npost","invoke","ninvoke","promisify","denodify","nbind","promisifyAll","options","inPlace","suffix","p","oo","promises","some","n","rejects","catch","any","defer","deferred","ES6Promise","generate","_","each","obj","cb","isArray","keys","every","isEqual","aType","bType","aArray","bArray","aValue","index","bValue","escapeHtml","html","colCache","_dictionary","_l2n","_n2l","_level","_fill","level","l1","l2","l3","Math","floor","l2n","l","n2l","_hash","validateAddress","match","decodeAddress","addr","matchCol","colNumber","matchRow","rowNumber","address","$col$row","getAddress","decode","parts","tl","br","result","min","max","dimensions","decodeEx","groups","sheetName","reference","startsWith","assign","encodeAddress","encode","Range","_set_tlbr","t","model","_set_tl_br","tlbr","_serialisedSheetName","test","expand","expandRow","number","expandToAddress","addressStr","$t$l","$b$r","range","$range","shortRange","$shortRange","toString","intersects","other","contains","containsEx","ValueType","Null","Merge","Hyperlink","Formula","SharedString","RichText","FormulaType","None","Master","Shared","RelationshipType","OfficeDocument","Worksheet","CalcChain","SharedStrings","Styles","Theme","DocumentType","Xlsx","ReadingOrder","LeftToRight","RightToLeft","ErrorValue","NotApplicable","Ref","Name","DivZero","Value","Num","replacementCandidateRx","CRrx","slideFormula","formula","fromCell","toCell","offset","to","refMatch","sheet","sheetMaybe","addrPart","trailingParen","exec","colDollar","colStr","toUpperCase","rowDollar","rowStr","res","Enums","Cell","column","_row","_column","_address","_value","Types","_mergeStyle","_mergeCount","worksheet","workbook","destroy","rowStyle","colStyle","letter","effectiveType","toCsvString","addMergeRef","releaseMergeRef","isMerged","merge","master","release","unmerge","isMergedTo","isHyperlink","getType","_upgradeToHyperlink","formulaType","fullAddress","names","definedNames","getNamesEx","removeAllNames","addEx","addName","removeName","removeEx","_dataValidations","dataValidations","dataValidation","find","add","NullValue","cell","NumberValue","StringValue","RichTextValue","richText","join","DateValue","toISOString","HyperlinkValue","MergeValue","_master","FormulaValue","sharedFormula","validate","dependencies","ranges","cells","_getTranslatedFormula","_translatedFormula","findCell","SharedStringValue","BooleanValue","JSONValue","JSON","stringify","rawValue","sharedString","types","T","Row","_worksheet","_number","_cells","outlineLevel","commit","_commitRow","getCellEx","getColumn","getColumnKey","start","inserts","slice","nKeep","nExpand","nEnd","cSrc","cDst","eachCell","iteratee","includeEmpty","addPageBreak","lft","rght","pb","id","man","rowBreaks","hasOwnProperty","eachColumnKey","hasValues","cellCount","actualCellCount","_applyStyle","hidden","_hidden","_outlineLevel","collapsed","properties","outlineLevelRow","cellModel","height","previousAddress","Column","defn","isCustomWidth","header","_header","headers","_key","deleteColumnKey","setColumnKey","outlineLevelCol","equivalentTo","isDefault","headerCount","eachRow","toModel","cols","fromModel","DataValidations","validation","remove","orderNo","state","_rows","_columns","_keys","_merges","_workbook","defaultRowHeight","dyDescent","pageSetup","margins","footer","orientation","horizontalDpi","verticalDpi","fitToPage","fitToWidth","fitToHeight","scale","pageOrder","blackAndWhite","draft","cellComments","errors","paperSize","showRowColHeaders","showGridLines","firstPageNumber","horizontalCentered","verticalCentered","colBreaks","views","autoFilter","_media","removeWorksheetEx","rowDims","_headerRowCount","pv","cv","spliceColumns","nRows","rowArguments","insert","getRow","columnCount","maxCount","actualColumnCount","counts","_lastRowNumber","_nextRow","lastRow","findRow","rowCount","actualRowCount","addRow","addRows","spliceRows","rSrc","getSheetValues","j","_unMergeMaster","hasMerges","unMergeCells","fillFormula","results","decoded","masterAddress","getResult","first","addImage","addImageToCells","imageId","getImages","filter","addBackgroundImage","getBackgroundImageId","tabColor","console","trace","media","rowModel","_parseRows","_parseMergeCells","CellMatrix","template","sheets","addCell","addCellEx","findCellEx","findCellAt","getCellAt","findSheet","findSheetRow","findRowCell","removeCellEx","callback","parse","rangeRegexp","DefinedNames","matrixMap","getMatrix","locStr","location","matrix","getNames","_explore","mark","y","vGrow","yy","edge","hGrow","xx","getRanges","definedName","rangeStr","EventEmitter","_events","_maxListeners","defaultMaxListeners","setMaxListeners","isNumber","isNaN","er","handler","isObject","err","context","isUndefined","isFunction","listener","newListener","warned","fired","g","list","position","listenerCount","evlistener","emitter","arg","formatRegExp","format","isString","objects","inspect","isNull","deprecate","fn","msg","global","noDeprecation","deprecated","throwDeprecation","traceDeprecation","debugs","debugEnviron","debuglog","set","pid","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","arrayToHash","hash","idx","recurseTimes","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","isError","indexOf","formatError","isRegExp","isDate","base","braces","toUTCString","output","formatArray","formatProperty","reduceToSingleString","simple","desc","getOwnPropertyDescriptor","get","line","substr","numLinesEst","prev","cur","ar","isNullOrUndefined","isSymbol","re","objectToString","d","isPrimitive","isBuffer","pad","months","timestamp","time","getHours","getMinutes","getSeconds","getDate","getMonth","log","inherits","origin","prop","fs","cls","superCtor","statics","super_","utils","nop","promiseImmediate","setImmediate","dateToExcel","date1904","getTime","excelToDate","millisecondSinceEpoch","round","parsePath","filepath","last","lastIndexOf","path","substring","getRelsPath","xmlEncode","xmlDecode","validInt","isDateFmt","fmt","exists","toIsoDateString","dt","toIsoString","subsstr","StringBuf","_buf","Buffer","_encoding","encoding","_inPos","_buffer","capacity","buffer","toBuffer","copy","reset","_grow","buf","addText","inPos","write","addStringBuf","inBuf","Stream","StringChunk","data","_data","targetOffset","StringBufChunk","BufferChunk","ReadWriteBuf","iRead","iWrite","eod","full","read","chunk","StreamBuf","bufSize","buffers","batch","corked","outPos","pipes","paused","Duplex","rwBuf","_getWritableBuffer","_pipe","pipe","_writeToBuffers","inLen","cork","_flush","uncork","end","writeComplete","setEncoding","pause","resume","isPaused","destination","unpipe","unshift","wrap","events","JSZip","ZipReader","jsZip","stream","_process","getEntryType","_finished","content","loadAsync","zip","entry","async","entryStream","autodrain","ZipWriter","append","base64","file","finalize","compression","generateAsync","OPEN_ANGLE","CLOSE_ANGLE","OPEN_ANGLE_SLASH","CLOSE_SLASH_ANGLE","EQUALS_QUOTE","QUOTE","SPACE","pushAttribute","xml","pushAttributes","attributes","XmlStream","_xml","_stack","_rollbacks","StdDocAttributes","standalone","tos","openXml","docAttributes","openNode","parent","open","leaf","addAttribute","addAttributes","attrs","writeText","writeXml","closeNode","node","leafNode","closeAll","addRollback","stack","rollback","Sax","BaseXform","prepare","render","parseOpen","parseText","parseClose","reconcile","mergeModel","parser","abort","parseStream","createStream","toXml","xmlStream","build","tag","$","child","StaticXform","_model","ListXform","empty","$count","childXform","maxItems","childModel","ColorXform","theme","tint","indexed","rgb","parseFloat","BooleanXform","attr","IntegerXform","zero","StringXform","UnderlineXform","Attributes","single","double","singleAccounting","doubleAccounting","FontXform","OPTIONS","xform","u","charset","condense","extend","family","outline","scheme","shadow","sz","fontNameTag","tagName","StopXform","PatternFillXform","bgColor","patternType","GradientFillXform","stop","gradient","degree","center","stopXform","stops","stopModel","FillXform","patternFill","gradientFill","validPatternValues","validStyle","validStyleValues","EdgeXform","defaultColor","BorderXform","diagonal","up","down","edgeModel","edgeXform","diagonalUp","diagonalDown","extensions","defaultNumFormats","hashDefaultFormats","dnf","defaultFmtHash","NumFmtXform","formatCode","getDefaultFmtId","getDefaultFmtCode","numFmtId","horizontalValues","verticalValues","shrinkToFit","textRotationXform","tr","AlignmentXform","isValid","valid","truthy","StyleXform","xfId","fontId","fillId","borderId","NUMFMT_BASE","StylesXform","initialise","numFmts","fonts","fills","borders","cellStyleXfs","cellXfs","cellStyles","STATIC_XFORMS","dxfs","tableStyles","extLst","init","STYLESHEET_ATTRIBUTES","xmlns","builtinId","defaultTableStyle","defaultPivotStyle","uri","defaultSlicerStyle","defaultTimelineStyle","initIndex","numFmtNextId","_addFont","_addBorder","_addStyle","_addFill","numFmtXml","fontXml","fillXml","borderXml","styleXml","propName","numFmtIndex","addStyleModel","cellType","weakMap","has","_addNumFmtStr","styleId","getStyleModel","addStyle","group","part","Mock","dateStyleId","_dateStyleId","dateStyle","DateXform","_format","_parse","CoreXform","DateFormat","DateAttrs","CORE_PROPERTY_ATTRIBUTES","creator","subject","description","identifier","language","keywords","category","lastModifiedBy","lastPrinted","revision","contentStatus","contentType","created","modified","TextXform","_text","$0","$1","RichTextXform","FONT_OPTIONS","textXform","_textXform","fontXform","_fontXform","PhoneticTextXform","sb","eb","rt","SharedStringXform","rPh","SharedStringsXform","rich","sharedStringXform","_sharedStringXform","uniqueCount","getString","addRichText","_values","sx","RelationshipXform","RelationshipsXform","Relationship","RELATIONSHIPS_ATTRIBUTES","relationship","ContentTypesXform","PROPERTY_ATTRIBUTES","mediaHash","medium","imageType","extension","Extension","ContentType","PartName","worksheets","hasSharedStrings","sharedStrings","drawings","drawing","AppHeadingPairsXform","baseType","AppTitlesOfPartsXform","AppTitleOfPartsXform","AppXform","Company","Manager","HeadingPairs","TitleOfParts","company","manager","DefinedNamesXform","localSheetId","_parsedName","_parsedLocalSheetId","_parsedText","extractRanges","parsedText","quotesOpened","quotes","quotesEven","WorksheetXform","sheetId","rId","WorkbookViewXform","xWindow","yWindow","windowWidth","windowHeight","firstSheet","activeTab","visibility","addS","dflt","addN","WorksheetPropertiesXform","defaultThemeVersion","filterPrivacy","DefinedNameXform","SheetXform","WorkbookPropertiesXform","WorkbookXform","fileVersion","workbookPr","bookViews","calcPr","WORKBOOK_ATTRIBUTES","appName","lastEdited","lowestEdited","rupBuild","calcId","printAreas","printArea","printTitlesRow","titlesRows","rels","workbookRels","rel","Id","worksheetHash","Target","longRange","Image","CoreProperties","ExtenderProperties","Merges","getMasterAddress","getValueType","getEffectiveCellType","CellXform","richTextXForm","ssId","hyperlinks","formulae","si","ref","siFormulae","renderFormula","currentNode","hyperlinkMap","RowXform","cellXform","numRowsSeen","spans","span","bestFit","ht","ColXform","DimensionXform","HyperlinkXform","MergeCellXform","defaultValue","parseBool","assignBool","DataValidationsXform","operator","allowBlank","showInputMessage","promptTitle","prompt","showErrorMessage","errorStyle","errorTitle","sqref","_definedName","_formula","PageSetupPropertiesXform","OutlinePropertiesXform","isDefined","summaryBelow","summaryRight","SheetPropertiesXform","pageSetUpPr","outlinePr","inner","outlineProperties","SheetFormatPropertiesXform","VIEW_STATES","frozen","frozenSplit","SheetViewXform","workbookViewId","included","rightToLeft","tabSelected","showRuler","zoomScale","zoomScaleNormal","topLeftCell","xSplit","ySplit","activePane","pane","activeCell","sheetView","view","selections","selection","topLeft","PageMarginsXform","booleanToXml","pageOrderToXml","cellCommentsToXml","errorsToXml","pageSizeToModel","PageSetupXform","useFirstPageNumber","usePrinterDefaults","copies","PrintOptionsXform","headings","gridLines","AutoFilterXform","firstAddress","secondAddress","PictureXform","DrawingXform","PageBreaksXform","RowBreaksXform","RelType","WorkSheetXform","maxRows","sheetPr","dimension","sheetViews","sheetFormatPr","sheetData","pageMargins","printOptions","picture","WORKSHEET_ATTRIBUTES","nextRid","Type","TargetMode","drawingRelsHash","bookImage","background","image","drawingsCount","anchors","rIdImage","sheetFormatPropertiesModel","sheetPropertiesModel","pageMarginsModel","printOptionsModel","outlinePropertiesx","sheetProperties","relationships","drawingRel","drawingName","anchor","backgroundRel","mediaIndex","CellPositionXform","colOff","rowOff","BlipXform","cstate","BlipFillXform","NvPicPrXform","noChangeAspect","cx","cy","prst","spPrJSON","PicXform","TwoCellAnchorXform","editAs","mediaId","isInteger","DRAWING_ATTRIBUTES","twoCellAnchorXform","ZipStream","theme1Xml","XLSX","fsReadFileAsync","filename","readFile","createReadStream","close","parseRels","parseWorkbook","parseSharedStrings","workbookXform","worksheetXform","drawingXform","drawingOptions","drawingRels","sheetOptions","worksheetRels","sheetNo","globalRels","sheetDefs","processWorksheetEntry","processWorksheetRelsEntry","processMediaEntry","lastDot","streamBuf","processDrawingEntry","processDrawingRelsEntry","processThemeEntry","themes","processIgnoreEntry","createInputStream","entryPath","appXform","appProperties","coreXform","coreProperties","zipStream","load","addMedia","dataimg64","addDrawings","relsXform","addContentTypes","addApp","addCore","addThemes","theme1","addOfficeRels","addWorkbookRels","addSharedStrings","addStyles","addWorkbook","addWorksheets","relationshipsXform","_finalize","prepareModel","useSharedStrings","useStyles","worksheetOptions","afters","writeFile","createWriteStream","writeBuffer","is","hasOwn","register","EOL","arr","iter","asyncIterator","spreadArgs","scope","extended","isUndefinedOrNull","trimLeft","trimRight","createParser","delimiter","doLtrim","ltrim","doRtrim","rtrim","doTrim","ESCAPE","quote","VALUE_REGEXP","SEARCH_REGEXP","ESCAPE_CHAR","escape","NEXT_TOKEN_REGEXP","ROW_DELIMITER","SPACE_CHAR_REGEX","COMMENT","hasComments","comment","formatItem","parseEscapedItem","items","cursor","hasMoreData","startPushing","token","escapeIsEscape","charAt","next","getNextToken","nextToken","search","parseCommentLine","nextIndex","parseItem","searchStr","nextChar","cursorChar","strictColumnHandling","tokenLen","subStr","parseLine","lastLineI","util","out","stdout","EMPTY","DEFAULT_DELIMITER","StringDecoder","hasIsPaused","Transform","ParserStream","objectMode","lines","decoder","_parsedHeaders","_rowCount","_emitData","_headers","_renameHeaders","renameHeaders","_ignoreEmpty","ignoreEmpty","_discardUnmappedColumns","discardUnmappedColumns","_strictColumnHandling","__objectMode","__buffered","origOn","origEmit","__pausedDone","__endEmitted","__emittedData","__handleLine","__parseLineData","ignore","__transform","__validate","reason","__processRows","asyncEach","dataRow","isStreamPaused","__emitRecord","__processHeaders","headerHandler","headersLength","orig","_parseLine","__removeBOM","charCodeAt","_transform","done","lineData","__doFlush","__flushPausedBuffer","buffered","__paused","event","evt","transform","fromStream","fromPath","fromString","string","Readable","LINE_BREAK","createQuoteChecker","quoteColumns","quoteHeaders","shouldQuote","isHeader","createFormatter","ESCAPE_REGEXP","rowDelimiter","REPLACE_REGEXP","escapeField","field","escapeFields","fields","defaultTransform","isHashArray","gatherHeaders","checkHeaders","parsedHeaders","hasWrittenHeaders","totalCount","formatter","transformHashData","vals","transformArrayData","transformHashArrayData","transformItem","CsvTransformStream","consumerTransform","hasHeaders","includeEndRowDelimiter","csvStream","writeToStream","writeToString","Writable","written","_write","enc","writeToBuffer","writeToPath","csv","moment","CSV","SpecialValues","addWorksheet","dateFormats","ISO_8601","datum","valueOf","special","getWorksheet","dateFormat","dateUTC","utc","includeEmptyRows","streamOptions","Workbook","_worksheets","_definedNames","xlsx","_xlsx","_csv","nextId","lastOrderNo","acc","removeWorksheet","sort","eachSheet","clearThemes","_themes","getImage","worksheetModel","findIndex","setConfigValue","ExcelJS","TableToExcel","Parser","initWorkBook","wb","initSheet","save","fileName","Blob","tableToSheet","tableToBook","convert","defaultOpts","window"],"mappings":"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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACv8BA;;;;AAEA,IAAIC,YAAY,GAAG,YAAY;AAAE,WAASC,gBAAT,CAA0BC,MAA1B,EAAkCC,KAAlC,EAAyC;AAAE,SAAK,IAAI1G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kBjjB,IAAlB,EAAwB;AACnD,SAAOijB,OAAO,CAACF,aAAR,CAAsB/iB,IAAtB,CAAP;AACD,CAFD;;AAIA,SAASuiB,UAAT,CAAoBW,GAApB,EAAyB;AACvB,SAAO,OAAOA,GAAP,KAAe,UAAtB;AACD;;AAED,SAASnB,QAAT,CAAkBmB,GAAlB,EAAuB;AACrB,SAAO,OAAOA,GAAP,KAAe,QAAtB;AACD;;AAED,SAASf,QAAT,CAAkBe,GAAlB,EAAuB;AACrB,SAAO,OAAOA,GAAP,KAAe,QAAf,IAA2BA,GAAG,KAAK,IAA1C;AACD;;AAED,SAASZ,WAAT,CAAqBY,GAArB,EAA0B;AACxB,SAAOA,GAAG,KAAK,KAAK,CAApB;AACD;;AC7SD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC7vDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC3GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9qBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACvSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;;ACDA;AACA;;ACDA;AACA;;ACDA;AACA;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AClCA;AACA;AACA;AACA;;ACHA;AACA;;ACDA;AACA;AACA;AACA;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;;ACFA;AACA;AACA;AACA;AACA;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;AACA;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;;ACNA;AACA;AACA;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;;ACAA;AACA;AACA;AACA;AACA;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;;ACLA;AACA;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9dA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnRA;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AR,CAAY,SAAZ,EAAuBP,SAAS,EAAhC,EAAoCtnB,OAAO,CAACgjB,MAAR,CAAe1gB,KAAf,CAAqBtC,OAArB,EAA8BkC,SAA9B,CAApC;AACD,CAFD;AAKA;;;;;;;;;;;;;;;AAaAlC,OAAO,CAAC8nB,QAAR,GAAmB3nB,OAAO,CAAC,UAAD,CAA1B;;AAEAH,OAAO,CAAC0kB,OAAR,GAAkB,UAASqD,MAAT,EAAiB3T,GAAjB,EAAsB;AACtC;AACA,MAAI,CAACA,GAAD,IAAQ,CAAC2N,QAAQ,CAAC3N,GAAD,CAArB,EAA4B,OAAO2T,MAAP;AAE5B,MAAIve,IAAI,GAAGnF,MAAM,CAACmF,IAAP,CAAY4K,GAAZ,CAAX;AACA,MAAI9W,CAAC,GAAGkM,IAAI,CAACzO,MAAb;;AACA,SAAOuC,CAAC,EAAR,EAAY;AACVyqB,IAAAA,MAAM,CAACve,IAAI,CAAClM,CAAD,CAAL,CAAN,GAAkB8W,GAAG,CAAC5K,IAAI,CAAClM,CAAD,CAAL,CAArB;AACD;;AACD,SAAOyqB,MAAP;AACD,CAVD;;AAYA,SAAShQ,cAAT,CAAwB1O,GAAxB,EAA6B2e,IAA7B,EAAmC;AACjC,SAAO3jB,MAAM,CAAChC,SAAP,CAAiB0V,cAAjB,CAAgC7W,IAAhC,CAAqCmI,GAArC,EAA0C2e,IAA1C,CAAP;AACD;;ACzkBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpsCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACl1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACphDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5hBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACpDA;;;;;AAMA;;AAEA,IAAIC,EAAAA,GAAK9nB,OAAAA,CAAQ,IAARA,CAAT;;AACA,IAAID,UAAAA,GAAaC,OAAAA,CAAQ,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pB,IAAL,CAAUrb,IAAV,CAAe,EAAf,CAAP;AACD;;AA/GmB,CAAtBob;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7hDA;;;;;AAMA;;AAEA,IAAIyB,GAAAA,GAAMrxB,OAAAA,CAAQ,KAARA,CAAV;;AACA,IAAID,UAAAA,GAAaC,OAAAA,CAAQ,qBAARA,CAAjB;;AAEA,IAAI4vB,SAAAA,GAAY5vB,OAAAA,CAAQ,wBAARA,CAAhB,EAEA;;;AACA,IAAIsxB,SAAAA,GAAY1xB,MAAAA,CAAOC,OAAPD,GAAiB;AAAS;AAAmB,CAA7D,CAAA;;AAGA0xB,SAAAA,CAAUpvB,SAAVovB,GAAsB;AACpB;AACA;AACAC,EAAAA,OAAAA,EAAS,SAAA,OAAA;AAAS;AAAsB,GACtC;AAJkB,GAAA;AAMpBC,EAAAA,MAAAA,EAAQ,SAAA,MAAA;AAAS;AAAwB,GACvC;AAPkB,GAAA;AASpBC,EAAAA,SAAAA,EAAW,SAAA,SAAA;AAAS;AAAY,GAC9B;AAVkB,GAAA;AAYpBC,EAAAA,SAAAA,EAAW,SAAA,SAAA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B,EAA0B;AACtD+nB,MAAAA,MAAAA,CAAOprB,EAAPorB,CAAU,QAAVA,EAAoB,YAAW;AAC7BhoB,QAAAA,OAAAA;AADF,OAAAgoB;AAGAA,MAAAA,MAAAA,CAAOprB,EAAPorB,CAAU,OAAVA,EAAmB,UAAS1vB,KAAT,EAAgB;AACjC2H,QAAAA,MAAAA,CAAO3H,KAAP2H,CAAAA;AADF,OAAA+nB;AAIAppB,MAAAA,IAAAA,CAAKmmB,KAALnmB,CAAWopB,MAAXppB,EAAmBsD,OAAnBtD,EACGiB,IADHjB,CACQ,YAAW;AACfopB,QAAAA,MAAAA,CAAOd,GAAPc;AAFJ,OAAAppB,EAIG+D,KAJH/D,CAIS,UAAStG,KAAT,EAAgB;AACrB2H,QAAAA,MAAAA,CAAO3H,KAAP2H,CAAAA;AALJ,OAAArB;AARK,KAAA,CAAP;AAtmBa,GAAA;AAunBf+rC,EAAAA,WAAAA,EAAa,SAAA,WAAA,CAASzoC,OAAT,EAAkB;AAC7B,QAAItD,IAAAA,GAAO,IAAX;AACA,QAAIopB,MAAAA,GAAS,IAAIhC,SAAJ,EAAb;AACA,WAAOpnB,IAAAA,CAAKmmB,KAALnmB,CAAWopB,MAAXppB,EAAmBsD,OAAnBtD,EACJiB,IADIjB,CACC,YAAW;AACf,aAAOopB,MAAAA,CAAOlC,IAAPkC,EAAP;AAFG,KAAAppB,CAAP;AAID;AA9nBc,CAAjBkoC;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC75BA;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3hBA;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACpfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AC5pBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACxNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACl7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACroBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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CX,SAAO5oB,MAAM,CAAC3vB,KAAP,CAAa,KAAK,CAAlB,EAAqBJ,SAArB,CAAP;AACH;;AAED24C,GAAG,CAAC36B,KAAJ,GAAY26B,GAAZ;AACAA,GAAG,CAAC3C,UAAJ,GAAiBjmB,MAAM,CAACimB,UAAxB;AACA2C,GAAG,CAAC5C,QAAJ,GAAehmB,MAAM,CAACgmB,QAAtB;AACA4C,GAAG,CAAC7C,UAAJ,GAAiB/lB,MAAM,CAAC+lB,UAAxB;AACA6C,GAAG,CAAC73B,MAAJ,GAAa02B,SAAb;AACAmB,GAAG,CAAC5vB,KAAJ,GAAYyuB,SAAS,CAACzuB,KAAtB;AACA4vB,GAAG,CAACR,aAAJ,GAAoBX,SAAS,CAACW,aAA9B;AACAQ,GAAG,CAACP,aAAJ,GAAoBZ,SAAS,CAACY,aAA9B;AACAO,GAAG,CAACF,aAAJ,GAAoBjB,SAAS,CAACiB,aAA9B;AACAE,GAAG,CAACD,WAAJ,GAAkBlB,SAAS,CAACkB,WAA5B;AACAC,GAAG,CAACjK,iBAAJ,GAAwB8I,SAAS,CAAC9I,iBAAlC;AACAiK,GAAG,CAACzN,gBAAJ,GAAuBsM,SAAS,CAAC9I,iBAAjC;AAEA7wC,MAAM,CAACC,OAAP,GAAiB66C,GAAjB;;AC5BA96C,MAAM,CAACC,OAAP,GAAiBG,OAAO,CAAC,OAAD,CAAxB;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC15IA;;;;;AAMA;;;;;;;;;;AAGA,IAAI8nB,EAAAA,GAAK9nB,OAAAA,CAAQ,IAARA,CAAT;;AACA,IAAI06C,GAAAA,GAAM16C,OAAAA,CAAQ,UAARA,CAAV;;AACA,IAAI26C,MAAAA,GAAS36C,OAAAA,CAAQ,QAARA,CAAb;;AACA,IAAID,UAAAA,GAAaC,OAAAA,CAAQ,kBAARA,CAAjB;;AACA,IAAI+rB,SAAAA,GAAY/rB,OAAAA,CAAQ,qBAARA,CAAhB;;AAEA,IAAImoB,KAAAA,GAAQnoB,OAAAA,CAAQ,gBAARA,CAAZ;;AAEA,IAAI46C,GAAAA,GAAMh7C,MAAAA,CAAOC,OAAPD,GAAiB,UAASqS,QAAT,EAAmB;AAC5C,OAAKA,QAAL,GAAgBA,QAAhB;AACA,OAAKD,SAAL,GAAiB,IAAjB;AAFF,CAAA;AAKA;;;AACA,IAAI6oC,aAAAA,GAAgB;AAClB,UAAQ,IADU;AAElB,WAAS,KAFS;AAGlB,UAAQ;AAAEx8C,IAAAA,KAAAA,EAAO;AAAT,GAHU;AAIlB,WAAS;AAAEA,IAAAA,KAAAA,EAAO;AAAT,GAJS;AAKlB,YAAU;AAAEA,IAAAA,KAAAA,EAAO;AAAT,GALQ;AAMlB,aAAW;AAAEA,IAAAA,KAAAA,EAAO;AAAT,GANO;AAOlB,YAAU;AAAEA,I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","file":"tableToExcel.517b1af9.map","sourceRoot":"../sample","sourcesContent":["const TTEParser = (function() {\n let methods = {};\n\n /**\n * Parse HTML table to excel worksheet\n * @param {object} ws The worksheet object\n * @param {HTML entity} table The table to be converted to excel sheet\n */\n methods.parseDomToTable = function(ws, table, opts) {\n let _r, _c, cs, rs, r, c;\n let rows = [...table.getElementsByTagName(\"tr\")];\n let widths = table.getAttribute(\"data-cols-width\");\n if (widths)\n widths = widths.split(\",\").map(function(item) {\n return parseInt(item);\n });\n let merges = [];\n for (_r = 0; _r < rows.length; ++_r) {\n let row = rows[_r];\n if (row.getAttribute(\"data-exclude\") === \"true\") {\n rows.splice(_r, 1);\n _r--;\n continue;\n }\n let tds = [...row.children];\n r = _r + 1;\n c = 1;\n for (_c = 0; _c < tds.length; ++_c) {\n let td = tds[_c];\n if (td.getAttribute(\"data-exclude\") === \"true\") {\n tds.splice(_c, 1);\n _c--;\n continue;\n }\n for (let _m = 0; _m < merges.length; ++_m) {\n var m = merges[_m];\n if (m.s.c == c && m.s.r <= r && r <= m.e.r) {\n c = m.e.c + 1;\n _m = -1;\n }\n }\n let exCell = ws.getCell(getColumnAddress(c, r));\n // calculate merges\n cs = parseInt(td.getAttribute(\"colspan\")) || 1;\n rs = parseInt(td.getAttribute(\"rowspan\")) || 1;\n if (cs > 1 || rs > 1) {\n merges.push({\n s: { c: c, r: r },\n e: { c: c + cs - 1, r: r + rs - 1 }\n });\n }\n c += cs;\n exCell.value = getValue(td);\n if (!opts.autoStyle) {\n let styles = getStylesDataAttr(td);\n exCell.font = styles.font || null;\n exCell.alignment = styles.alignment || null;\n exCell.border = styles.border || null;\n exCell.fill = styles.fill || null;\n exCell.numFmt = styles.numFmt || null;\n }\n // // If first row, set width of the columns.\n // if (_r == 0) {\n // // ws.columns[_c].width = Math.round(tds[_c].offsetWidth / 7.2); // convert pixel to character width\n // }\n }\n }\n //Setting column width\n if (widths)\n widths.forEach((width, _i) => {\n ws.columns[_i].width = width;\n });\n applyMerges(ws, merges);\n return ws;\n };\n\n /**\n * To apply merges on the sheet\n * @param {object} ws The worksheet object\n * @param {object[]} merges array of merges\n */\n let applyMerges = function(ws, merges) {\n merges.forEach(m => {\n ws.mergeCells(\n getExcelColumnName(m.s.c) +\n m.s.r +\n \":\" +\n getExcelColumnName(m.e.c) +\n m.e.r\n );\n });\n };\n\n /**\n * Convert HTML to plain text\n */\n let htmldecode = (function() {\n let entities = [\n [\"nbsp\", \" \"],\n [\"middot\", \"·\"],\n [\"quot\", '\"'],\n [\"apos\", \"'\"],\n [\"gt\", \">\"],\n [\"lt\", \"<\"],\n [\"amp\", \"&\"]\n ].map(function(x) {\n return [new RegExp(\"&\" + x[0] + \";\", \"g\"), x[1]];\n });\n return function htmldecode(str) {\n let o = str\n .trim()\n .replace(/\\s+/g, \" \")\n .replace(/<\\s*[bB][rR]\\s*\\/?>/g, \"\\n\")\n .replace(/<[^>]*>/g, \"\");\n for (let i = 0; i < entities.length; ++i)\n o = o.replace(entities[i][0], entities[i][1]);\n return o;\n };\n })();\n\n /**\n * Takes a positive integer and returns the corresponding column name.\n * @param {number} num The positive integer to convert to a column name.\n * @return {string} The column name.\n */\n let getExcelColumnName = function(num) {\n for (var ret = \"\", a = 1, b = 26; (num -= a) >= 0; a = b, b *= 26) {\n ret = String.fromCharCode(parseInt((num % b) / a) + 65) + ret;\n }\n return ret;\n };\n\n let getColumnAddress = function(col, row) {\n return getExcelColumnName(col) + row;\n };\n\n /**\n * Checks the data type specified and conerts the value to it.\n * @param {HTML entity} td\n */\n let getValue = function(td) {\n let dataType = td.getAttribute(\"data-t\");\n let rawVal = htmldecode(td.innerHTML);\n if (dataType) {\n let val;\n switch (dataType) {\n case \"n\": //number\n val = Number(rawVal);\n break;\n case \"d\": //date\n val = new Date(rawVal);\n break;\n case \"b\": //boolean\n val =\n rawVal.toLowerCase() === \"true\"\n ? true\n : rawVal.toLowerCase() === \"false\"\n ? false\n : Boolean(parseInt(rawVal));\n break;\n default:\n val = rawVal;\n }\n return val;\n } else if (td.getAttribute(\"data-hyperlink\")) {\n return {\n text: rawVal,\n hyperlink: td.getAttribute(\"data-hyperlink\")\n };\n } else if (td.getAttribute(\"data-error\")) {\n return { error: td.getAttribute(\"data-error\") };\n }\n return rawVal;\n };\n\n /**\n * Prepares the style object for a cell using the data attributes\n * @param {HTML entity} td\n */\n let getStylesDataAttr = function(td) {\n //Font attrs\n let font = {};\n if (td.getAttribute(\"data-f-name\"))\n font.name = td.getAttribute(\"data-f-name\");\n if (td.getAttribute(\"data-f-sz\")) font.size = td.getAttribute(\"data-f-sz\");\n if (td.getAttribute(\"data-f-color\"))\n font.color = { argb: td.getAttribute(\"data-f-color\") };\n if (td.getAttribute(\"data-f-bold\") === \"true\") font.bold = true;\n if (td.getAttribute(\"data-f-italic\") === \"true\") font.italic = true;\n if (td.getAttribute(\"data-f-underline\") === \"true\") font.underline = true;\n if (td.getAttribute(\"data-f-strike\") === \"true\") font.strike = true;\n\n // Alignment attrs\n let alignment = {};\n if (td.getAttribute(\"data-a-h\"))\n alignment.horizontal = td.getAttribute(\"data-a-h\");\n if (td.getAttribute(\"data-a-v\"))\n alignment.vertical = td.getAttribute(\"data-a-v\");\n if (td.getAttribute(\"data-a-wrap\") === \"true\") alignment.wrapText = true;\n if (td.getAttribute(\"data-a-text-rotation\"))\n alignment.textRotation = td.getAttribute(\"data-a-text-rotation\");\n if (td.getAttribute(\"data-a-indent\"))\n alignment.indent = td.getAttribute(\"data-a-indent\");\n if (td.getAttribute(\"data-a-rtl\") === \"true\")\n alignment.readingOrder = \"rtl\";\n\n // Border attrs\n let border = {\n top: {},\n left: {},\n bottom: {},\n right: {}\n };\n\n if (td.getAttribute(\"data-b-a-s\")) {\n let style = td.getAttribute(\"data-b-a-s\");\n border.top.style = style;\n border.left.style = style;\n border.bottom.style = style;\n border.right.style = style;\n }\n if (td.getAttribute(\"data-b-a-c\")) {\n let color = { argb: td.getAttribute(\"data-b-a-c\") };\n border.top.color = color;\n border.left.color = color;\n border.bottom.color = color;\n border.right.color = color;\n }\n if (td.getAttribute(\"data-b-t-s\")) {\n border.top.style = td.getAttribute(\"data-b-t-s\");\n if (td.getAttribute(\"data-b-t-c\"))\n border.top.color = { argb: td.getAttribute(\"data-b-t-c\") };\n }\n if (td.getAttribute(\"data-b-l-s\")) {\n border.left.style = td.getAttribute(\"data-b-l-s\");\n if (td.getAttribute(\"data-b-l-c\"))\n border.left.color = { argb: td.getAttribute(\"data-b-t-c\") };\n }\n if (td.getAttribute(\"data-b-b-s\")) {\n border.bottom.style = td.getAttribute(\"data-b-b-s\");\n if (td.getAttribute(\"data-b-b-c\"))\n border.bottom.color = { argb: td.getAttribute(\"data-b-t-c\") };\n }\n if (td.getAttribute(\"data-b-r-s\")) {\n border.right.style = td.getAttribute(\"data-b-r-s\");\n if (td.getAttribute(\"data-b-r-c\"))\n border.right.color = { argb: td.getAttribute(\"data-b-t-c\") };\n }\n\n //Fill\n let fill;\n if (td.getAttribute(\"data-fill-color\")) {\n fill = {\n type: \"pattern\",\n pattern: \"solid\",\n fgColor: { argb: td.getAttribute(\"data-fill-color\") }\n };\n }\n //number format\n let numFmt;\n if (td.getAttribute(\"data-num-fmt\"))\n numFmt = td.getAttribute(\"data-num-fmt\");\n\n return {\n font,\n alignment,\n border,\n fill,\n numFmt\n };\n };\n\n return methods;\n})();\n\nexport default TTEParser;\n","/*\n* FileSaver.js\n* A saveAs() FileSaver implementation.\n*\n* By Eli Grey, http://eligrey.com\n*\n* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n* source : http://purl.eligrey.com/github/FileSaver.js\n*/\n\n\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nvar _global = typeof window === 'object' && window.window === window\n ? window : typeof self === 'object' && self.self === self\n ? self : typeof global === 'object' && global.global === global\n ? global\n : this\n\nfunction bom (blob, opts) {\n if (typeof opts === 'undefined') opts = { autoBom: false }\n else if (typeof opts !== 'object') {\n console.warn('Depricated: Expected third argument to be a object')\n opts = { autoBom: !opts }\n }\n\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (opts.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type })\n }\n return blob\n}\n\nfunction download (url, name, opts) {\n var xhr = new XMLHttpRequest()\n xhr.open('GET', url)\n xhr.responseType = 'blob'\n xhr.onload = function () {\n saveAs(xhr.response, name, opts)\n }\n xhr.onerror = function () {\n console.error('could not download file')\n }\n xhr.send()\n}\n\nfunction corsEnabled (url) {\n var xhr = new XMLHttpRequest()\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false)\n xhr.send()\n return xhr.status >= 200 && xhr.status <= 299\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent('click'))\n } catch (e) {\n var evt = document.createEvent('MouseEvents')\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,\n 20, false, false, false, false, 0, null)\n node.dispatchEvent(evt)\n }\n}\n\nvar saveAs = _global.saveAs ||\n// probably in some web worker\n(typeof window !== 'object' || window !== _global)\n ? function saveAs () { /* noop */ }\n\n// Use download attribute first if possible (#193 Lumia mobile)\n: 'download' in HTMLAnchorElement.prototype\n? function saveAs (blob, name, opts) {\n var URL = _global.URL || _global.webkitURL\n var a = document.createElement('a')\n name = name || blob.name || 'download'\n\n a.download = name\n a.rel = 'noopener' // tabnabbing\n\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob\n if (a.origin !== location.origin) {\n corsEnabled(a.href)\n ? download(blob, name, opts)\n : click(a, a.target = '_blank')\n } else {\n click(a)\n }\n } else {\n // Support blobs\n a.href = URL.createObjectURL(blob)\n setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s\n setTimeout(function () { click(a) }, 0)\n }\n}\n\n// Use msSaveOrOpenBlob as a second approach\n: 'msSaveOrOpenBlob' in navigator\n? function saveAs (blob, name, opts) {\n name = name || blob.name || 'download'\n\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts)\n } else {\n var a = document.createElement('a')\n a.href = blob\n a.target = '_blank'\n setTimeout(function () { click(a) })\n }\n } else {\n navigator.msSaveOrOpenBlob(bom(blob, opts), name)\n }\n}\n\n// Fallback to using FileReader and a popup\n: function saveAs (blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only avalible on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank')\n if (popup) {\n popup.document.title =\n popup.document.body.innerText = 'downloading...'\n }\n\n if (typeof blob === 'string') return download(blob, name, opts)\n\n var force = blob.type === 'application/octet-stream'\n var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari\n var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent)\n\n if ((isChromeIOS || (force && isSafari)) && typeof FileReader === 'object') {\n // Safari doesn't allow downloading of blob urls\n var reader = new FileReader()\n reader.onloadend = function () {\n var url = reader.result\n url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;')\n if (popup) popup.location.href = url\n else location = url\n popup = null // reverse-tabnabbing #460\n }\n reader.readAsDataURL(blob)\n } else {\n var URL = _global.URL || _global.webkitURL\n var url = URL.createObjectURL(blob)\n if (popup) popup.location = url\n else location.href = url\n popup = null // reverse-tabnabbing #460\n setTimeout(function () { URL.revokeObjectURL(url) }, 4E4) // 40s\n }\n}\n\n_global.saveAs = saveAs.saveAs = saveAs\n\nif (typeof module !== 'undefined') {\n module.exports = saveAs;\n}\n","'use strict';\r\n\r\nmodule.exports = {\r\n Promish: null\r\n};\r\n","'use strict';\r\n\r\nvar PromishLib = require('../utils/promish');\r\n\r\nfunction setValue(key, value, overwrite) {\r\n if (overwrite === undefined) {\r\n // only avoid overwrite if explicitly disabled\r\n overwrite = true;\r\n }\r\n switch (key.toLowerCase()) {\r\n case 'promise':\r\n if (!overwrite && PromishLib.Promish) return;\r\n PromishLib.Promish = value;\r\n break;\r\n default:\r\n break;\r\n }\r\n}\r\n\r\nmodule.exports = setValue;\r\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.0.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$toString = {}.toString;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable) {\n if (maybeThenable.constructor === promise.constructor) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n var then = lib$es6$promise$$internal$$getThen(maybeThenable);\n\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n var enumerator = this;\n\n enumerator._instanceConstructor = Constructor;\n enumerator.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (enumerator._validateInput(input)) {\n enumerator._input = input;\n enumerator.length = input.length;\n enumerator._remaining = input.length;\n\n enumerator._init();\n\n if (enumerator.length === 0) {\n lib$es6$promise$$internal$$fulfill(enumerator.promise, enumerator._result);\n } else {\n enumerator.length = enumerator.length || 0;\n enumerator._enumerate();\n if (enumerator._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(enumerator.promise, enumerator._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(enumerator.promise, enumerator._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validateInput = function(input) {\n return lib$es6$promise$utils$$isArray(input);\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._init = function() {\n this._result = new Array(this.length);\n };\n\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var enumerator = this;\n\n var length = enumerator.length;\n var promise = enumerator.promise;\n var input = enumerator._input;\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n enumerator._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var enumerator = this;\n var c = enumerator._instanceConstructor;\n\n if (lib$es6$promise$utils$$isMaybeThenable(entry)) {\n if (entry.constructor === c && entry._state !== lib$es6$promise$$internal$$PENDING) {\n entry._onerror = null;\n enumerator._settledAt(entry._state, i, entry._result);\n } else {\n enumerator._willSettleAt(c.resolve(entry), i);\n }\n } else {\n enumerator._remaining--;\n enumerator._result[i] = entry;\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var enumerator = this;\n var promise = enumerator.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n enumerator._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n enumerator._result[i] = value;\n }\n }\n\n if (enumerator._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, enumerator._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n if (!lib$es6$promise$utils$$isFunction(resolver)) {\n lib$es6$promise$promise$$needsResolver();\n }\n\n if (!(this instanceof lib$es6$promise$promise$$Promise)) {\n lib$es6$promise$promise$$needsNew();\n }\n\n lib$es6$promise$$internal$$initializePromise(this, resolver);\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: function(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n },\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction generatePromish(Base) {\n function isErrorClass(type) {\n while (type && type !== Object) {\n if (type === Error || type instanceof Error) {\n return true;\n }\n type = type.prototype;\n }\n return false;\n }\n\n var Promish = function (_Base) {\n _inherits(Promish, _Base);\n\n function Promish(f) {\n _classCallCheck(this, Promish);\n\n if (f instanceof Promish) {\n var _ret;\n\n return _ret = f, _possibleConstructorReturn(_this, _ret);\n } else if (f instanceof Promise || f.then instanceof Function) {\n var _this = _possibleConstructorReturn(this, (Promish.__proto__ || Object.getPrototypeOf(Promish)).call(this, function (resolve, reject) {\n return f.then(resolve, reject);\n }));\n } else if (f instanceof Error) {\n var _this = _possibleConstructorReturn(this, (Promish.__proto__ || Object.getPrototypeOf(Promish)).call(this, function (resolve, reject) {\n return reject(f);\n }));\n // sugar for 'rethrow'\n\n } else if (f instanceof Function) {\n var _this = _possibleConstructorReturn(this, (Promish.__proto__ || Object.getPrototypeOf(Promish)).call(this, f));\n } else {\n var _this = _possibleConstructorReturn(this, (Promish.__proto__ || Object.getPrototypeOf(Promish)).call(this, function (resolve) {\n return resolve(f);\n }));\n // anything else, resolve with value\n\n }\n return _possibleConstructorReturn(_this);\n }\n\n _createClass(Promish, [{\n key: 'finally',\n value: function _finally(h) {\n return this.then(function (value) {\n return Promish.resolve(h()).then(function () {\n return value;\n });\n }, function (error) {\n return Promish.resolve(h()).then(function () {\n return Promish.reject(error);\n });\n });\n }\n }, {\n key: 'catch',\n value: function _catch() {\n // extend catch with type-aware or matcher handling\n var args = Array.from(arguments);\n var h = args.pop();\n return this.then(undefined, function (error) {\n // default catch - no matchers. Just return handler result\n if (!args.length) {\n return h(error);\n }\n\n //console.log('catch matcher', error)\n // search for a match in argument order and return handler result if found\n for (var i = 0; i < args.length; i++) {\n var matcher = args[i];\n if (isErrorClass(matcher)) {\n if (error instanceof matcher) {\n return h(error);\n }\n } else if (matcher instanceof Function) {\n //console.log('matcher function')\n if (matcher(error)) {\n //console.log('matched!!')\n return h(error);\n }\n }\n }\n\n // no match was found send this error to the next promise handler in the chain\n return new Promish(function (resolve, reject) {\n return reject(error);\n });\n });\n }\n }, {\n key: 'delay',\n value: function delay(timeout) {\n return this.then(function (value) {\n return new Promish(function (resolve) {\n setTimeout(function () {\n resolve(value);\n }, timeout);\n });\n });\n }\n }, {\n key: 'map',\n value: function map(f) {\n return this.then(function (values) {\n return Promish.map(values, f);\n });\n }\n }, {\n key: 'reduce',\n value: function reduce(f, val0) {\n return this.then(function (values) {\n return Promish.reduce(values, f, val0);\n });\n }\n }, {\n key: 'spread',\n value: function spread(f) {\n return this.then(function (values) {\n return Promish.all(values);\n }).then(function (values) {\n return f.apply(undefined, values);\n });\n }\n }], [{\n key: 'map',\n value: function map(values, f) {\n return Promish.all(values.map(function (v, i) {\n return Promish.resolve(v).then(function (v2) {\n return f(v2, i, values.length);\n });\n }));\n }\n }, {\n key: 'reduce',\n value: function reduce(values, f, val0) {\n var promise;\n var count = 0;\n if (val0 !== undefined) {\n promise = Promish.resolve(val0);\n } else if (values.length > 1) {\n promise = Promish.resolve(values[count++]);\n } else {\n return Promish.resolve(values[0]);\n }\n while (count < values.length) {\n (function (i) {\n promise = promise.then(function (value) {\n return Promish.resolve(values[i]).then(function (v2) {\n return f(value, v2, i);\n });\n });\n })(count++);\n }return promise;\n }\n }, {\n key: 'delay',\n value: function delay(timeout, value) {\n return new Promish(function (resolve) {\n setTimeout(function () {\n resolve(value);\n }, timeout);\n });\n }\n }, {\n key: 'resolve',\n value: function resolve(value) {\n return new Promish(function (resolve) {\n resolve(value);\n });\n }\n }, {\n key: 'reject',\n value: function reject(error) {\n return new Promish(function (resolve, reject) {\n reject(error);\n });\n }\n }, {\n key: 'sequence',\n value: function sequence(fns, initialValue) {\n // convenience function that calls functions in sequence, each one waiting for the previous\n var promise = Promish.resolve(initialValue);\n for (var i = 0; i < fns.length; i++) {\n promise = promise.then(fns[i]);\n }\n return promise;\n }\n\n // Wrap a synchronous method and resolve with its return value\n\n }, {\n key: 'method',\n value: function method(f) {\n return function () {\n var self = this; // is this necessary?\n var args = Array.from(arguments);\n return new Promish(function (resolve) {\n return resolve(f.apply(self, args));\n });\n };\n }\n\n //\n\n }, {\n key: 'apply',\n value: function apply(f, args) {\n // take a copy of args because a) might not be Array and b) no side-effects\n args = Array.from(args);\n return new Promish(function (resolve, reject) {\n args.push(function () {\n var error = Array.prototype.shift.apply(arguments);\n if (error) {\n reject(error);\n } else {\n if (arguments.length === 1) {\n resolve(arguments[0]);\n } else {\n resolve(arguments);\n }\n }\n });\n f.apply(undefined, args);\n });\n }\n }, {\n key: 'nfapply',\n value: function nfapply(f, args) {\n return Promish.apply(f, args);\n }\n }, {\n key: 'call',\n value: function call() {\n var f = Array.prototype.shift.apply(arguments);\n return Promish.apply(f, arguments);\n }\n }, {\n key: 'nfcall',\n value: function nfcall() {\n return Promish.call.apply(null, arguments);\n }\n }, {\n key: 'post',\n value: function post(o, f, a) {\n return Promish.apply(f.bind(o), a);\n }\n }, {\n key: 'npost',\n value: function npost(o, f, a) {\n return Promish.apply(f.bind(o), a);\n }\n }, {\n key: 'invoke',\n value: function invoke() {\n var o = Array.prototype.shift.apply(arguments);\n var f = Array.prototype.shift.apply(arguments);\n return Promish.apply(f.bind(o), arguments);\n }\n }, {\n key: 'ninvoke',\n value: function ninvoke() {\n return Promish.invoke(arguments);\n }\n\n // create curry function for nfcall\n\n }, {\n key: 'promisify',\n value: function promisify(f) {\n return function () {\n return Promish.apply(f, arguments);\n };\n }\n }, {\n key: 'denodify',\n value: function denodify(f) {\n return Promish.promisify(f);\n }\n\n // create Q based curry function for ninvoke\n\n }, {\n key: 'nbind',\n value: function nbind(f, o) {\n // Why is it function, object and not object, function like the others?\n return function () {\n return Promish.post(o, f, arguments);\n };\n }\n\n // curry function for ninvoke with arguments in object, method order\n\n }, {\n key: 'bind',\n value: function bind(o, f) {\n return function () {\n return Promish.post(o, f, arguments);\n };\n }\n\n // Promishify every method in an object\n\n }, {\n key: 'promisifyAll',\n value: function promisifyAll(o, options) {\n options = options || {};\n var inPlace = options.inPlace || false;\n var suffix = options.suffix || (inPlace ? 'Async' : '');\n\n var p = {};\n var oo = o;\n while (oo && oo !== Object) {\n for (var i in oo) {\n if (!p[i + suffix] && oo[i] instanceof Function) {\n p[i + suffix] = Promish.bind(o, oo[i]);\n }\n }\n oo = Object.getPrototypeOf(oo) || oo.prototype;\n }\n\n if (inPlace) {\n for (var _i in p) {\n if (p[_i] instanceof Function) {\n o[_i] = p[_i];\n }\n }\n p = o;\n }\n\n return p;\n }\n }, {\n key: 'all',\n value: function all(promises) {\n return new Promish(Promise.all(promises));\n }\n\n // some - the first n to resolve, win - else reject with all of the errors\n\n }, {\n key: 'some',\n value: function some(promises, n) {\n return new Promish(function (resolve, reject) {\n var values = [];\n var rejects = [];\n promises.forEach(function (promise) {\n promise.then(function (value) {\n values.push(value);\n if (values.length >= n) {\n resolve(values);\n }\n }).catch(function (error) {\n rejects.push(error);\n if (rejects.length > promises.length - n) {\n reject(rejects);\n }\n });\n });\n });\n }\n\n // any - the first to resolve, wins - else reject with all of the errors\n\n }, {\n key: 'any',\n value: function any(promises) {\n return Promish.some(promises, 1).then(function (values) {\n return values[0];\n });\n }\n\n // old-style for ease of adoption\n\n }, {\n key: 'defer',\n value: function defer() {\n var deferred = {};\n deferred.promise = new Promish(function (resolve, reject) {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n return deferred;\n }\n\n // spread - apply array of values to function as args\n\n }, {\n key: 'spread',\n value: function spread(value, f) {\n return f.apply(undefined, value);\n }\n }]);\n\n return Promish;\n }(Base);\n\n return Promish;\n};\nmodule.exports = generatePromish;\n\n","'use strict';\n\nvar ES6Promise = require('es6-promise').Promise;\nvar generate = require('./promish-class');\nmodule.exports = generate(ES6Promise);\n\n","'use strict';\r\n\r\nvar _ = {\r\n each: function each(obj, cb) {\r\n if (obj) {\r\n if (Array.isArray(obj)) {\r\n obj.forEach(cb);\r\n } else {\r\n Object.keys(obj).forEach(function(key) {\r\n cb(obj[key], key);\r\n });\r\n }\r\n }\r\n },\r\n\r\n some: function some(obj, cb) {\r\n if (obj) {\r\n if (Array.isArray(obj)) {\r\n return obj.some(cb);\r\n }\r\n return Object.keys(obj).some(function(key) {\r\n return cb(obj[key], key);\r\n });\r\n }\r\n return false;\r\n },\r\n\r\n every: function every(obj, cb) {\r\n if (obj) {\r\n if (Array.isArray(obj)) {\r\n return obj.every(cb);\r\n }\r\n return Object.keys(obj).every(function(key) {\r\n return cb(obj[key], key);\r\n });\r\n }\r\n return true;\r\n },\r\n\r\n map: function map(obj, cb) {\r\n if (obj) {\r\n if (Array.isArray(obj)) {\r\n return obj.map(cb);\r\n }\r\n return Object.keys(obj).map(function(key) {\r\n return cb(obj[key], key);\r\n });\r\n }\r\n return [];\r\n },\r\n\r\n isEqual: function isEqual(a, b) {\r\n var aType = typeof a;\r\n var bType = typeof b;\r\n var aArray = Array.isArray(a);\r\n var bArray = Array.isArray(b);\r\n\r\n if (aType !== bType) {\r\n return false;\r\n }\r\n switch (typeof a) {\r\n case 'object':\r\n if (aArray || bArray) {\r\n if (aArray && bArray) {\r\n return (a.length === b.length) &&\r\n a.every(function(aValue, index) {\r\n var bValue = b[index];\r\n return _.isEqual(aValue, bValue);\r\n });\r\n }\r\n return false;\r\n }\r\n return _.every(a, function(aValue, key) {\r\n var bValue = b[key];\r\n return _.isEqual(aValue, bValue);\r\n });\r\n\r\n default:\r\n return a === b;\r\n }\r\n },\r\n\r\n escapeHtml: function(html) {\r\n return html\r\n .replace(/&/g, \"&\")\r\n .replace(//g, \">\")\r\n .replace(/\"/g, \""\")\r\n .replace(/'/g, \"'\");\r\n }\r\n};\r\n\r\nmodule.exports = _;\r\n","/**\r\n * Copyright (c) 2014-2017 Guyon Roche\r\n * LICENCE: MIT - please refer to LICENCE file included with this module\r\n * or https://github.com/guyonroche/exceljs/blob/master/LICENSE\r\n */\r\n\r\n'use strict';\r\n\r\n// =========================================================================\r\n// Column Letter to Number conversion\r\nvar colCache = module.exports = {\r\n _dictionary: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'],\r\n _l2n: {},\r\n _n2l: [],\r\n _level: function(n) {\r\n if (n <= 26) { return 1; }\r\n if (n <= 26 * 26) { return 2; }\r\n return 3;\r\n },\r\n _fill: function(level) {\r\n var c, v, l1, l2, l3;\r\n var n = 1;\r\n if (level >= 1) {\r\n while (n <= 26) {\r\n c = this._dictionary[n - 1];\r\n this._n2l[n] = c;\r\n this._l2n[c] = n;\r\n n++;\r\n }\r\n }\r\n if (level >= 2) {\r\n while (n <= 26 + (26 * 26)) {\r\n v = n - (26 + 1);\r\n l1 = v % 26;\r\n l2 = Math.floor(v / 26);\r\n c = this._dictionary[l2] + this._dictionary[l1];\r\n this._n2l[n] = c;\r\n this._l2n[c] = n;\r\n n++;\r\n }\r\n }\r\n if (level >= 3) {\r\n while (n <= 16384) {\r\n v = n - ((26 * 26) + 26 + 1);\r\n l1 = v % 26;\r\n l2 = Math.floor(v / 26) % 26;\r\n l3 = Math.floor(v / (26 * 26));\r\n c = this._dictionary[l3] + this._dictionary[l2] + this._dictionary[l1];\r\n this._n2l[n] = c;\r\n this._l2n[c] = n;\r\n n++;\r\n }\r\n }\r\n },\r\n l2n: function(l) {\r\n if (!this._l2n[l]) {\r\n this._fill(l.length);\r\n }\r\n if (!this._l2n[l]) {\r\n throw new Error('Out of bounds. Invalid column letter: ' + l);\r\n }\r\n return this._l2n[l];\r\n },\r\n n2l: function(n) {\r\n if ((n < 1) || (n > 16384)) {\r\n throw new Error('' + n + ' is out of bounds. Excel supports columns from 1 to 16384');\r\n }\r\n if (!this._n2l[n]) {\r\n this._fill(this._level(n));\r\n }\r\n return this._n2l[n];\r\n },\r\n\r\n // =========================================================================\r\n // Address processing\r\n _hash: {},\r\n\r\n // check if value looks like an address\r\n validateAddress: function(value) {\r\n if (!value.match(/^[A-Z]+\\d+$/)) {\r\n throw new Error('Invalid Address: ' + value);\r\n }\r\n return true;\r\n },\r\n\r\n // convert address string into structure\r\n decodeAddress: function(value) {\r\n var addr = this._hash[value];\r\n if (addr) {\r\n return addr;\r\n }\r\n var matchCol = value.match(/[A-Z]+/);\r\n var col;\r\n var colNumber;\r\n if (matchCol) {\r\n col = matchCol[0];\r\n colNumber = this.l2n(col);\r\n }\r\n var matchRow = value.match(/\\d+/);\r\n var row;\r\n var rowNumber;\r\n if (matchRow) {\r\n row = matchRow[0];\r\n rowNumber = parseInt(row, 10);\r\n }\r\n\r\n // in case $row$col\r\n value = (col || '') + (row || '');\r\n\r\n var address = {\r\n address: value,\r\n col: colNumber,\r\n row: rowNumber,\r\n $col$row: '$' + (col || '') + '$' + (row || '')\r\n };\r\n\r\n // mem fix - cache only the tl 100x100 square\r\n if ((colNumber <= 100) && (rowNumber <= 100)) {\r\n this._hash[value] = address;\r\n this._hash[address.$col$row] = address;\r\n }\r\n\r\n return address;\r\n },\r\n\r\n // convert r,c into structure (if only 1 arg, assume r is address string)\r\n getAddress: function(r, c) {\r\n if (c) {\r\n var address = this.n2l(c) + r;\r\n return this.decodeAddress(address);\r\n }\r\n return this.decodeAddress(r);\r\n },\r\n\r\n // convert [address], [tl:br] into address structures\r\n decode: function(value) {\r\n var parts = value.split(':');\r\n if (parts.length === 2) {\r\n var tl = this.decodeAddress(parts[0]);\r\n var br = this.decodeAddress(parts[1]);\r\n var result = {\r\n top: Math.min(tl.row, br.row),\r\n left: Math.min(tl.col, br.col),\r\n bottom: Math.max(tl.row, br.row),\r\n right: Math.max(tl.col, br.col)\r\n };\r\n // reconstruct tl, br and dimensions\r\n result.tl = this.n2l(result.left) + result.top;\r\n result.br = this.n2l(result.right) + result.bottom;\r\n result.dimensions = result.tl + ':' + result.br;\r\n return result;\r\n }\r\n return this.decodeAddress(value);\r\n },\r\n\r\n // convert [sheetName!][$]col[$]row[[$]col[$]row] into address or range structures\r\n decodeEx: function(value) {\r\n var groups = value.match(/(?:(?:(?:'((?:[^']|'')*)')|([^'^ !]*))!)?(.*)/);\r\n\r\n var sheetName = groups[1] || groups[2]; // Qouted and unqouted groups\r\n var reference = groups[3]; // Remaining address\r\n\r\n var parts = reference.split(':');\r\n if (parts.length > 1) {\r\n var tl = this.decodeAddress(parts[0]);\r\n var br = this.decodeAddress(parts[1]);\r\n var top = Math.min(tl.row, br.row);\r\n var left = Math.min(tl.col, br.col);\r\n var bottom = Math.max(tl.row, br.row);\r\n var right = Math.max(tl.col, br.col);\r\n\r\n tl = this.n2l(left) + top;\r\n br = this.n2l(right) + bottom;\r\n\r\n return {\r\n top: top,\r\n left: left,\r\n bottom: bottom,\r\n right: right,\r\n sheetName: sheetName,\r\n tl: { address: tl, col: left, row: top, $col$row: '$' + this.n2l(left) + '$' + top, sheetName: sheetName },\r\n br: { address: br, col: right, row: bottom, $col$row: '$' + this.n2l(right) + '$' + bottom, sheetName: sheetName },\r\n dimensions: tl + ':' + br\r\n };\r\n } else if (reference.startsWith('#')) {\r\n return sheetName ? {sheetName: sheetName, error: reference} : {error: reference};\r\n }\r\n\r\n var address = this.decodeAddress(reference);\r\n return sheetName ? Object.assign({sheetName: sheetName}, address) : address;\r\n },\r\n\r\n // convert row,col into address string\r\n encodeAddress: function(row, col) {\r\n return colCache.n2l(col) + row;\r\n },\r\n\r\n // convert row,col into string address or t,l,b,r into range\r\n encode: function() {\r\n switch (arguments.length) {\r\n case 2:\r\n return colCache.encodeAddress(arguments[0], arguments[1]);\r\n case 4:\r\n return colCache.encodeAddress(arguments[0], arguments[1]) + ':' + colCache.encodeAddress(arguments[2], arguments[3]);\r\n default:\r\n throw new Error('Can only encode with 2 or 4 arguments');\r\n }\r\n }\r\n};\r\n","/**\r\n * Copyright (c) 2014-2017 Guyon Roche\r\n * LICENCE: MIT - please refer to LICENCE file included with this module\r\n * or https://github.com/guyonroche/exceljs/blob/master/LICENSE\r\n */\r\n\r\n'use strict';\r\n\r\nvar colCache = require('./../utils/col-cache');\r\n\r\n// used by worksheet to calculate sheet dimensions\r\nvar Range = module.exports = function() {\r\n this.decode(arguments);\r\n};\r\n\r\nRange.prototype = {\r\n _set_tlbr: function(t, l, b, r, s) {\r\n this.model = {\r\n top: Math.min(t, b),\r\n left: Math.min(l, r),\r\n bottom: Math.max(t, b),\r\n right: Math.max(l, r),\r\n sheetName: s\r\n };\r\n },\r\n _set_tl_br: function(tl, br, s) {\r\n tl = colCache.decodeAddress(tl);\r\n br = colCache.decodeAddress(br);\r\n this._set_tlbr(tl.row, tl.col, br.row, br.col, s);\r\n },\r\n decode: function(argv) {\r\n switch (argv.length) {\r\n case 5: // [t,l,b,r,s]\r\n this._set_tlbr(argv[0], argv[1], argv[2], argv[3], argv[4]);\r\n break;\r\n case 4: // [t,l,b,r]\r\n this._set_tlbr(argv[0], argv[1], argv[2], argv[3]);\r\n break;\r\n\r\n case 3: // [tl,br,s]\r\n this._set_tl_br(argv[0], argv[1], argv[2]);\r\n break;\r\n case 2: // [tl,br]\r\n this._set_tl_br(argv[0], argv[1]);\r\n break;\r\n\r\n case 1:\r\n var value = argv[0];\r\n if (value instanceof Range) { // copy constructor\r\n this.model = {\r\n top: value.model.top,\r\n left: value.model.left,\r\n bottom: value.model.bottom,\r\n right: value.model.right,\r\n sheetName: value.sheetName\r\n };\r\n } else if (value instanceof Array) { // an arguments array\r\n this.decode(value);\r\n } else if (value.top && value.left && value.bottom && value.right) { // a model\r\n this.model = {\r\n top: value.top,\r\n left: value.left,\r\n bottom: value.bottom,\r\n right: value.right,\r\n sheetName: value.sheetName\r\n };\r\n } else { // [sheetName!]tl:br\r\n var tlbr = colCache.decodeEx(value);\r\n if (tlbr.top) {\r\n this.model = {\r\n top: tlbr.top,\r\n left: tlbr.left,\r\n bottom: tlbr.bottom,\r\n right: tlbr.right,\r\n sheetName: tlbr.sheetName\r\n };\r\n } else {\r\n this.model = {\r\n top: tlbr.row,\r\n left: tlbr.col,\r\n bottom: tlbr.row,\r\n right: tlbr.col,\r\n sheetName: tlbr.sheetName\r\n };\r\n }\r\n }\r\n break;\r\n\r\n case 0:\r\n this.model = {\r\n top: 0,\r\n left: 0,\r\n bottom: 0,\r\n right: 0\r\n };\r\n break;\r\n\r\n default:\r\n throw new Error('Invalid number of arguments to _getDimensions() - ' + argv.length);\r\n }\r\n },\r\n\r\n get top() { return this.model.top || 1; },\r\n set top(value) { this.model.top = value; },\r\n get left() { return this.model.left || 1; },\r\n set left(value) { this.model.left = value; },\r\n get bottom() { return this.model.bottom || 1; },\r\n set bottom(value) { this.model.bottom = value; },\r\n get right() { return this.model.right || 1; },\r\n set right(value) { this.model.right = value; },\r\n get sheetName() { return this.model.sheetName; },\r\n set sheetName(value) { this.model.sheetName = value; },\r\n\r\n get _serialisedSheetName() {\r\n var sheetName = this.model.sheetName;\r\n if (sheetName) {\r\n if (/^[a-zA-Z0-9]*$/.test(sheetName)) {\r\n return sheetName + '!';\r\n }\r\n return '\\'' + sheetName + '\\'!';\r\n }\r\n return '';\r\n },\r\n\r\n expand: function(top, left, bottom, right) {\r\n if (!this.model.top || (top < this.top)) this.top = top;\r\n if (!this.model.left || (left < this.left)) this.left = left;\r\n if (!this.model.bottom || (bottom > this.bottom)) this.bottom = bottom;\r\n if (!this.model.right || (right > this.right)) this.right = right;\r\n },\r\n expandRow: function(row) {\r\n if (row) {\r\n var dimensions = row.dimensions;\r\n if (dimensions) {\r\n this.expand(row.number, dimensions.min, row.number, dimensions.max);\r\n }\r\n }\r\n },\r\n expandToAddress: function(addressStr) {\r\n var address = colCache.decodeEx(addressStr);\r\n this.expand(address.row, address.col, address.row, address.col);\r\n },\r\n\r\n get tl() {\r\n return colCache.n2l(this.left) + this.top;\r\n },\r\n get $t$l() {\r\n return '$' + colCache.n2l(this.left) + '$' + this.top;\r\n },\r\n get br() {\r\n return colCache.n2l(this.right) + this.bottom;\r\n },\r\n get $b$r() {\r\n return '$' + colCache.n2l(this.right) + '$' + this.bottom;\r\n },\r\n\r\n get range() {\r\n return this._serialisedSheetName + this.tl + ':' + this.br;\r\n },\r\n get $range() {\r\n return this._serialisedSheetName + this.$t$l + ':' + this.$b$r;\r\n },\r\n get shortRange() {\r\n return this.count > 1 ? this.range :\r\n (this._serialisedSheetName + this.tl);\r\n },\r\n get $shortRange() {\r\n return this.count > 1 ? this.$range :\r\n (this._serialisedSheetName + this.$t$l);\r\n },\r\n get count() {\r\n return ((1 + this.bottom) - this.top) * ((1 + this.right) - this.left);\r\n },\r\n\r\n toString: function() {\r\n return this.range;\r\n },\r\n\r\n intersects: function(other) {\r\n if (other.sheetName && this.sheetName && (other.sheetName !== this.sheetName)) return false;\r\n if (other.bottom < this.top) return false;\r\n if (other.top > this.bottom) return false;\r\n if (other.right < this.left) return false;\r\n if (other.left > this.right) return false;\r\n return true;\r\n },\r\n contains: function(addressStr) {\r\n var address = colCache.decodeEx(addressStr);\r\n return this.containsEx(address);\r\n },\r\n containsEx: function(address) {\r\n if (address.sheetName && this.sheetName && (address.sheetName !== this.sheetName)) return false;\r\n return (address.row >= this.top) &&\r\n (address.row <= this.bottom) &&\r\n (address.col >= this.left) &&\r\n (address.col <= this.right);\r\n }\r\n};\r\n","/**\r\n * Copyright (c) 2016-2017 Guyon Roche\r\n * LICENCE: MIT - please refer to LICENCE file included with this module\r\n * or https://github.com/guyonroche/exceljs/blob/master/LICENSE\r\n */\r\n\r\n'use strict';\r\n\r\nmodule.exports = {\r\n ValueType: {\r\n Null: 0,\r\n Merge: 1,\r\n Number: 2,\r\n String: 3,\r\n Date: 4,\r\n Hyperlink: 5,\r\n Formula: 6,\r\n SharedString: 7,\r\n RichText: 8,\r\n Boolean: 9,\r\n Error: 10,\r\n },\r\n FormulaType: {\r\n None: 0,\r\n Master: 1,\r\n Shared: 2,\r\n },\r\n RelationshipType: {\r\n None: 0,\r\n OfficeDocument: 1,\r\n Worksheet: 2,\r\n CalcChain: 3,\r\n SharedStrings: 4,\r\n Styles: 5,\r\n Theme: 6,\r\n Hyperlink: 7,\r\n },\r\n DocumentType: {\r\n Xlsx: 1,\r\n },\r\n ReadingOrder: {\r\n LeftToRight: 1,\r\n RightToLeft: 2,\r\n },\r\n ErrorValue: {\r\n NotApplicable: '#N/A',\r\n Ref: '#REF!',\r\n Name: '#NAME?',\r\n DivZero: '#DIV/0!',\r\n Null: '#NULL!',\r\n Value: '#VALUE!',\r\n Num: '#NUM!',\r\n },\r\n};\r\n","/**\r\n * Copyright (c) 2017 Morten Ulrik Sørensen\r\n * LICENCE: MIT - please refer to LICENCE file included with this module\r\n * or https://github.com/guyonroche/exceljs/blob/master/LICENSE\r\n */\r\n\r\n'use strict';\r\n\r\nvar colCache = require('./col-cache');\r\n\r\n// var cellRefRegex = /(([a-z_\\-0-9]*)!)?[$]?([a-z]+)[$]?([1-9][0-9]*)/i;\r\nvar replacementCandidateRx = /(([a-z_\\-0-9]*)!)?([a-z0-9_$]{2,})([(])?/ig;\r\nvar CRrx = /^([$])?([a-z]+)([$])?([1-9][0-9]*)$/i;\r\n\r\nvar slideFormula = function(formula, fromCell, toCell) {\r\n var offset = colCache.decode(fromCell);\r\n var to = colCache.decode(toCell);\r\n return formula.replace(replacementCandidateRx, function(refMatch, sheet, sheetMaybe, addrPart, trailingParen) {\r\n if (trailingParen) {\r\n return refMatch;\r\n }\r\n var match = CRrx.exec(addrPart);\r\n if (match) {\r\n var colDollar = match[1];\r\n var colStr = match[2].toUpperCase();\r\n var rowDollar = match[3];\r\n var rowStr = match[4];\r\n if (colStr.length > 3 || (colStr.length === 3 && colStr > 'XFD')) {\r\n // > XFD is the highest col number in excel 2007 and beyond, so this is a named range\r\n return refMatch;\r\n }\r\n var col = colCache.l2n(colStr);\r\n var row = parseInt(rowStr, 10);\r\n if (!colDollar) {\r\n col += to.col - offset.col;\r\n }\r\n if (!rowDollar) {\r\n row += to.row - offset.row;\r\n }\r\n var res = (sheet || '') + (colDollar || '') + colCache.n2l(col) + (rowDollar || '') + row;\r\n return res;\r\n }\r\n return refMatch;\r\n });\r\n};\r\n\r\nmodule.exports = {\r\n slideFormula\r\n};\r\n","/**\r\n * Copyright (c) 2014-2017 Guyon Roche\r\n * LICENCE: MIT - please refer to LICENCE file included with this module\r\n * or https://github.com/guyonroche/exceljs/blob/master/LICENSE\r\n */\r\n\r\n'use strict';\r\n\r\nvar colCache = require('../utils/col-cache');\r\nvar _ = require('../utils/under-dash');\r\nvar Enums = require('./enums');\r\nvar { slideFormula } = require('../utils/shared-formula');\r\n\r\n// Cell requirements\r\n// Operate inside a worksheet\r\n// Store and retrieve a value with a range of types: text, number, date, hyperlink, reference, formula, etc.\r\n// Manage/use and manipulate cell format either as local to cell or inherited from column or row.\r\n\r\nvar Cell = module.exports = function(row, column, address) {\r\n if (!row || !column) {\r\n throw new Error('A Cell needs a Row');\r\n }\r\n\r\n this._row = row;\r\n this._column = column;\r\n\r\n colCache.validateAddress(address);\r\n this._address = address;\r\n\r\n // TODO: lazy evaluation of this._value\r\n this._value = Value.create(Cell.Types.Null, this);\r\n\r\n this.style = this._mergeStyle(row.style, column.style, {});\r\n\r\n this._mergeCount = 0;\r\n};\r\n\r\nCell.Types = Enums.ValueType;\r\n\r\nCell.prototype = {\r\n\r\n get worksheet() {\r\n return this._row.worksheet;\r\n },\r\n get workbook() {\r\n return this._row.worksheet.workbook;\r\n },\r\n\r\n // help GC by removing cyclic (and other) references\r\n destroy: function() {\r\n delete this.style;\r\n delete this._value;\r\n delete this._row;\r\n delete this._column;\r\n delete this._address;\r\n },\r\n\r\n // =========================================================================\r\n // Styles stuff\r\n get numFmt() {\r\n return this.style.numFmt;\r\n },\r\n set numFmt(value) {\r\n this.style.numFmt = value;\r\n },\r\n get font() {\r\n return this.style.font;\r\n },\r\n set font(value) {\r\n this.style.font = value;\r\n },\r\n get alignment() {\r\n return this.style.alignment;\r\n },\r\n set alignment(value) {\r\n this.style.alignment = value;\r\n },\r\n get border() {\r\n return this.style.border;\r\n },\r\n set border(value) {\r\n this.style.border = value;\r\n },\r\n get fill() {\r\n return this.style.fill;\r\n },\r\n set fill(value) {\r\n this.style.fill = value;\r\n },\r\n\r\n _mergeStyle: function(rowStyle, colStyle, style) {\r\n var numFmt = (rowStyle && rowStyle.numFmt) || (colStyle && colStyle.numFmt);\r\n if (numFmt) style.numFmt = numFmt;\r\n\r\n var font = (rowStyle && rowStyle.font) || (colStyle && colStyle.font);\r\n if (font) style.font = font;\r\n\r\n var alignment = (rowStyle && rowStyle.alignment) || (colStyle && colStyle.alignment);\r\n if (alignment) style.alignment = alignment;\r\n\r\n var border = (rowStyle && rowStyle.border) || (colStyle && colStyle.border);\r\n if (border) style.border = border;\r\n\r\n var fill = (rowStyle && rowStyle.fill) || (colStyle && colStyle.fill);\r\n if (fill) style.fill = fill;\r\n\r\n return style;\r\n },\r\n\r\n // =========================================================================\r\n // return the address for this cell\r\n get address() {\r\n return this._address;\r\n },\r\n\r\n get row() {\r\n return this._row.number;\r\n },\r\n get col() {\r\n return this._column.number;\r\n },\r\n\r\n get $col$row() {\r\n return '$' + this._column.letter + '$' + this.row;\r\n },\r\n\r\n\r\n // =========================================================================\r\n // Value stuff\r\n\r\n get type() {\r\n return this._value.type;\r\n },\r\n\r\n get effectiveType() {\r\n return this._value.effectiveType;\r\n },\r\n\r\n toCsvString: function() {\r\n return this._value.toCsvString();\r\n },\r\n\r\n // =========================================================================\r\n // Merge stuff\r\n\r\n addMergeRef: function() {\r\n this._mergeCount++;\r\n },\r\n releaseMergeRef: function() {\r\n this._mergeCount--;\r\n },\r\n get isMerged() {\r\n return (this._mergeCount > 0) || (this.type === Cell.Types.Merge);\r\n },\r\n merge: function(master) {\r\n this._value.release();\r\n this._value = Value.create(Cell.Types.Merge, this, master);\r\n this.style = master.style;\r\n },\r\n unmerge: function() {\r\n if (this.type === Cell.Types.Merge) {\r\n this._value.release();\r\n this._value = Value.create(Cell.Types.Null, this);\r\n this.style = this._mergeStyle(this._row.style, this._column.style, {});\r\n }\r\n },\r\n isMergedTo: function(master) {\r\n if (this._value.type !== Cell.Types.Merge) return false;\r\n return this._value.isMergedTo(master);\r\n },\r\n get master() {\r\n if (this.type === Cell.Types.Merge) {\r\n return this._value.master;\r\n }\r\n return this; // an unmerged cell is its own master\r\n },\r\n\r\n get isHyperlink() {\r\n return this._value.type === Cell.Types.Hyperlink;\r\n },\r\n get hyperlink() {\r\n return this._value.hyperlink;\r\n },\r\n\r\n // return the value\r\n get value() {\r\n return this._value.value;\r\n },\r\n // set the value - can be number, string or raw\r\n set value(v) {\r\n // special case - merge cells set their master's value\r\n if (this.type === Cell.Types.Merge) {\r\n this._value.master.value = v;\r\n return;\r\n }\r\n\r\n this._value.release();\r\n\r\n // assign value\r\n this._value = Value.create(Value.getType(v), this, v);\r\n },\r\n get text() {\r\n return this._value.toString();\r\n },\r\n get html() {\r\n return _.escapeHtml(this.text);\r\n },\r\n toString: function() {\r\n return this.text;\r\n },\r\n\r\n _upgradeToHyperlink: function(hyperlink) {\r\n // if this cell is a string, turn it into a Hyperlink\r\n if (this.type === Cell.Types.String) {\r\n this._value = Value.create(Cell.Types.Hyperlink, this, {\r\n text: this._value.value,\r\n hyperlink: hyperlink\r\n });\r\n }\r\n },\r\n\r\n // =========================================================================\r\n // Formula stuff\r\n get formula() {\r\n return this._value.formula;\r\n },\r\n get result() {\r\n return this._value.result;\r\n },\r\n get formulaType() {\r\n return this._value.formulaType;\r\n },\r\n\r\n // =========================================================================\r\n // Name stuff\r\n get fullAddress() {\r\n var worksheet = this._row.worksheet;\r\n return {\r\n sheetName: worksheet.name,\r\n address: this.address,\r\n row: this.row,\r\n col: this.col\r\n };\r\n },\r\n get name() {\r\n return this.names[0];\r\n },\r\n set name(value) {\r\n this.names = [value];\r\n },\r\n get names() {\r\n return this.workbook.definedNames.getNamesEx(this.fullAddress);\r\n },\r\n set names(value) {\r\n var self = this;\r\n var definedNames = this.workbook.definedNames;\r\n this.workbook.definedNames.removeAllNames(self.fullAddress);\r\n value.forEach(function(name) {\r\n definedNames.addEx(self.fullAddress, name);\r\n });\r\n },\r\n addName: function(name) {\r\n this.workbook.definedNames.addEx(this.fullAddress, name);\r\n },\r\n removeName: function(name) {\r\n this.workbook.definedNames.removeEx(this.fullAddress, name);\r\n },\r\n removeAllNames: function() {\r\n this.workbook.definedNames.removeAllNames(this.fullAddress);\r\n },\r\n\r\n // =========================================================================\r\n // Data Validation stuff\r\n get _dataValidations() {\r\n return this.worksheet.dataValidations;\r\n },\r\n\r\n get dataValidation() {\r\n return this._dataValidations.find(this.address);\r\n },\r\n\r\n set dataValidation(value) {\r\n this._dataValidations.add(this.address, value);\r\n },\r\n\r\n // =========================================================================\r\n // Model stuff\r\n\r\n get model() {\r\n var model = this._value.model;\r\n model.style = this.style;\r\n return model;\r\n },\r\n set model(value) {\r\n this._value.release();\r\n this._value = Value.create(value.type, this);\r\n this._value.model = value;\r\n if (value.style) {\r\n this.style = value.style;\r\n } else {\r\n this.style = {};\r\n }\r\n }\r\n};\r\n\r\n// =============================================================================\r\n// Internal Value Types\r\n\r\nvar NullValue = function(cell) {\r\n this.model = {\r\n address: cell.address,\r\n type: Cell.Types.Null\r\n };\r\n};\r\nNullValue.prototype = {\r\n get value() {\r\n return null;\r\n },\r\n set value(value) {\r\n // nothing to do\r\n },\r\n get type() {\r\n return Cell.Types.Null;\r\n },\r\n get effectiveType() {\r\n return Cell.Types.Null;\r\n },\r\n get address() {\r\n return this.model.address;\r\n },\r\n set address(value) {\r\n this.model.address = value;\r\n },\r\n toCsvString: function() {\r\n return '';\r\n },\r\n release: function() {\r\n },\r\n toString: function() {\r\n return '';\r\n }\r\n};\r\n\r\nvar NumberValue = function(cell, value) {\r\n this.model = {\r\n address: cell.address,\r\n type: Cell.Types.Number,\r\n value: value\r\n };\r\n};\r\nNumberValue.prototype = {\r\n get value() {\r\n return this.model.value;\r\n },\r\n set value(value) {\r\n this.model.value = value;\r\n },\r\n get type() {\r\n return Cell.Types.Number;\r\n },\r\n get effectiveType() {\r\n return Cell.Types.Number;\r\n },\r\n get address() {\r\n return this.model.address;\r\n },\r\n set address(value) {\r\n this.model.address = value;\r\n },\r\n toCsvString: function() {\r\n return '' + this.model.value;\r\n },\r\n release: function() {\r\n },\r\n toString: function() {\r\n return this.model.value.toString();\r\n }\r\n};\r\n\r\nvar StringValue = function(cell, value) {\r\n this.model = {\r\n address: cell.address,\r\n type: Cell.Types.String,\r\n value: value\r\n };\r\n};\r\nStringValue.prototype = {\r\n get value() {\r\n return this.model.value;\r\n },\r\n set value(value) {\r\n this.model.value = value;\r\n },\r\n get type() {\r\n return Cell.Types.String;\r\n },\r\n get effectiveType() {\r\n return Cell.Types.String;\r\n },\r\n get address() {\r\n return this.model.address;\r\n },\r\n set address(value) {\r\n this.model.address = value;\r\n },\r\n toCsvString: function() {\r\n return '\"' + this.model.value.replace(/\"/g, '\"\"') + '\"';\r\n },\r\n release: function() {\r\n },\r\n toString: function() {\r\n return this.model.value;\r\n }\r\n};\r\n\r\nvar RichTextValue = function(cell, value) {\r\n this.model = {\r\n address: cell.address,\r\n type: Cell.Types.String,\r\n value: value\r\n };\r\n};\r\nRichTextValue.prototype = {\r\n get value() {\r\n return this.model.value;\r\n },\r\n set value(value) {\r\n this.model.value = value;\r\n },\r\n toString: function() {\r\n return this.model.value.richText.map(function(t) {\r\n return t.text;\r\n }).join('');\r\n },\r\n get type() {\r\n return Cell.Types.RichText;\r\n },\r\n get effectiveType() {\r\n return Cell.Types.RichText;\r\n },\r\n get address() {\r\n return this.model.address;\r\n },\r\n set address(value) {\r\n this.model.address = value;\r\n },\r\n toCsvString: function() {\r\n return '\"' + this.text.replace(/\"/g, '\"\"') + '\"';\r\n },\r\n release: function() {\r\n }\r\n};\r\n\r\nvar DateValue = function(cell, value) {\r\n this.model = {\r\n address: cell.address,\r\n type: Cell.Types.Date,\r\n value: value\r\n };\r\n};\r\nDateValue.prototype = {\r\n get value() {\r\n return this.model.value;\r\n },\r\n set value(value) {\r\n this.model.value = value;\r\n },\r\n get type() {\r\n return Cell.Types.Date;\r\n },\r\n get effectiveType() {\r\n return Cell.Types.Date;\r\n },\r\n get address() {\r\n return this.model.address;\r\n },\r\n set address(value) {\r\n this.model.address = value;\r\n },\r\n toCsvString: function() {\r\n return this.model.value.toISOString();\r\n },\r\n release: function() {\r\n },\r\n toString: function() {\r\n return this.model.value.toString();\r\n }\r\n};\r\n\r\nvar HyperlinkValue = function(cell, value) {\r\n this.model = {\r\n address: cell.address,\r\n type: Cell.Types.Hyperlink,\r\n text: value ? value.text : undefined,\r\n hyperlink: value ? value.hyperlink : undefined\r\n };\r\n};\r\nHyperlinkValue.prototype = {\r\n get value() {\r\n return {\r\n text: this.model.text,\r\n hyperlink: this.model.hyperlink\r\n };\r\n },\r\n set value(value) {\r\n this.model.text = value.text;\r\n this.model.hyperlink = value.hyperlink;\r\n },\r\n\r\n get text() {\r\n return this.model.text;\r\n },\r\n set text(value) {\r\n this.model.text = value;\r\n },\r\n get hyperlink() {\r\n return this.model.hyperlink;\r\n },\r\n set hyperlink(value) {\r\n this.model.hyperlink = value;\r\n },\r\n get type() {\r\n return Cell.Types.Hyperlink;\r\n },\r\n get effectiveType() {\r\n return Cell.Types.Hyperlink;\r\n },\r\n get address() {\r\n return this.model.address;\r\n },\r\n set address(value) {\r\n this.model.address = value;\r\n },\r\n toCsvString: function() {\r\n return this.model.hyperlink;\r\n },\r\n release: function() {\r\n },\r\n toString: function() {\r\n return this.model.text;\r\n }\r\n};\r\n\r\nvar MergeValue = function(cell, master) {\r\n this.model = {\r\n address: cell.address,\r\n type: Cell.Types.Merge,\r\n master: master ? master.address : undefined\r\n };\r\n this._master = master;\r\n if (master) {\r\n master.addMergeRef();\r\n }\r\n};\r\nMergeValue.prototype = {\r\n get value() {\r\n return this._master.value;\r\n },\r\n set value(value) {\r\n if (value instanceof Cell) {\r\n if (this._master) {\r\n this._master.releaseMergeRef();\r\n }\r\n value.addMergeRef();\r\n this._master = value;\r\n } else {\r\n this._master.value = value;\r\n }\r\n },\r\n\r\n isMergedTo: function(master) {\r\n return master === this._master;\r\n },\r\n get master() {\r\n return this._master;\r\n },\r\n get type() {\r\n return Cell.Types.Merge;\r\n },\r\n get effectiveType() {\r\n return this._master.effectiveType;\r\n },\r\n get address() {\r\n return this.model.address;\r\n },\r\n set address(value) {\r\n this.model.address = value;\r\n },\r\n toCsvString: function() {\r\n return '';\r\n },\r\n release: function() {\r\n this._master.releaseMergeRef();\r\n },\r\n toString: function() {\r\n return this.value.toString();\r\n }\r\n};\r\n\r\nvar FormulaValue = function(cell, value) {\r\n this.cell = cell;\r\n this.model = {\r\n address: cell.address,\r\n type: Cell.Types.Formula,\r\n formula: value ? value.formula : undefined,\r\n sharedFormula: value ? value.sharedFormula : undefined,\r\n result: value ? value.result : undefined\r\n };\r\n};\r\nFormulaValue.prototype = {\r\n get value() {\r\n return this.model.formula ? {\r\n formula: this.model.formula,\r\n result: this.model.result,\r\n } : {\r\n sharedFormula: this.model.sharedFormula,\r\n result: this.model.result,\r\n };\r\n },\r\n set value(value) {\r\n this.model.formula = value.formula;\r\n this.model.sharedFormula = value.sharedFormula;\r\n this.model.result = value.result;\r\n },\r\n validate: function(value) {\r\n switch (Value.getType(value)) {\r\n case Cell.Types.Null:\r\n case Cell.Types.String:\r\n case Cell.Types.Number:\r\n case Cell.Types.Date:\r\n break;\r\n case Cell.Types.Hyperlink:\r\n case Cell.Types.Formula:\r\n default:\r\n throw new Error('Cannot process that type of result value');\r\n }\r\n },\r\n get dependencies() {\r\n // find all the ranges and cells mentioned in the formula\r\n var ranges = this.formula.match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}:[A-Z]{1,3}\\d{1,4}/g);\r\n var cells = this.formula.replace(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}:[A-Z]{1,3}\\d{1,4}/g, '')\r\n .match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}/g);\r\n return {\r\n ranges: ranges,\r\n cells: cells\r\n };\r\n },\r\n get formula() {\r\n return this.model.formula ||\r\n this._getTranslatedFormula();\r\n },\r\n set formula(value) {\r\n this.model.formula = value;\r\n },\r\n get formulaType() {\r\n if (this.model.formula) {\r\n return Enums.FormulaType.Master;\r\n }\r\n if (this.model.sharedFormula) {\r\n return Enums.FormulaType.Shared;\r\n }\r\n return Enums.FormulaType.None;\r\n },\r\n get result() {\r\n return this.model.result;\r\n },\r\n set result(value) {\r\n this.model.result = value;\r\n },\r\n get type() {\r\n return Cell.Types.Formula;\r\n },\r\n get effectiveType() {\r\n var v = this.model.result;\r\n if ((v === null) || (v === undefined)) {\r\n return Enums.ValueType.Null;\r\n } else if ((v instanceof String) || (typeof v === 'string')) {\r\n return Enums.ValueType.String;\r\n } else if (typeof v === 'number') {\r\n return Enums.ValueType.Number;\r\n } else if (v instanceof Date) {\r\n return Enums.ValueType.Date;\r\n } else if (v.text && v.hyperlink) {\r\n return Enums.ValueType.Hyperlink;\r\n } else if (v.formula) {\r\n return Enums.ValueType.Formula;\r\n }\r\n\r\n return Enums.ValueType.Null;\r\n },\r\n get address() {\r\n return this.model.address;\r\n },\r\n set address(value) {\r\n this.model.address = value;\r\n },\r\n _getTranslatedFormula() {\r\n if (!this._translatedFormula && this.model.sharedFormula) {\r\n var worksheet = this.cell.worksheet;\r\n var master = worksheet.findCell(this.model.sharedFormula);\r\n this._translatedFormula = master &&\r\n slideFormula(master.formula, master.address, this.model.address);\r\n }\r\n return this._translatedFormula;\r\n },\r\n toCsvString: function() {\r\n return '' + (this.model.result || '');\r\n },\r\n release: function() {\r\n },\r\n toString: function() {\r\n return this.model.result ? this.model.result.toString() : '';\r\n }\r\n};\r\n\r\nvar SharedStringValue = function(cell, value) {\r\n this.model = {\r\n address: cell.address,\r\n type: Cell.Types.SharedString,\r\n value: value\r\n };\r\n};\r\nSharedStringValue.prototype = {\r\n get value() {\r\n return this.model.value;\r\n },\r\n set value(value) {\r\n this.model.value = value;\r\n },\r\n get type() {\r\n return Cell.Types.SharedString;\r\n },\r\n get effectiveType() {\r\n return Cell.Types.SharedString;\r\n },\r\n get address() {\r\n return this.model.address;\r\n },\r\n set address(value) {\r\n this.model.address = value;\r\n },\r\n toCsvString: function() {\r\n return '' + this.model.value;\r\n },\r\n release: function() {\r\n },\r\n toString: function() {\r\n return this.model.value.toString();\r\n }\r\n};\r\n\r\nvar BooleanValue = function(cell, value) {\r\n this.model = {\r\n address: cell.address,\r\n type: Cell.Types.Boolean,\r\n value: value\r\n };\r\n};\r\nBooleanValue.prototype = {\r\n get value() {\r\n return this.model.value;\r\n },\r\n set value(value) {\r\n this.model.value = value;\r\n },\r\n get type() {\r\n return Cell.Types.Boolean;\r\n },\r\n get effectiveType() {\r\n return Cell.Types.Boolean;\r\n },\r\n get address() {\r\n return this.model.address;\r\n },\r\n set address(value) {\r\n this.model.address = value;\r\n },\r\n toCsvString: function() {\r\n return this.model.value ? 1 : 0;\r\n },\r\n release: function() {\r\n },\r\n toString: function() {\r\n return this.model.value.toString();\r\n }\r\n};\r\n\r\nvar ErrorValue = function(cell, value) {\r\n this.model = {\r\n address: cell.address,\r\n type: Cell.Types.Error,\r\n value: value\r\n };\r\n};\r\nErrorValue.prototype = {\r\n get value() {\r\n return this.model.value;\r\n },\r\n set value(value) {\r\n this.model.value = value;\r\n },\r\n get type() {\r\n return Cell.Types.Error;\r\n },\r\n get effectiveType() {\r\n return Cell.Types.Error;\r\n },\r\n get address() {\r\n return this.model.address;\r\n },\r\n set address(value) {\r\n this.model.address = value;\r\n },\r\n toCsvString: function() {\r\n return this.toString();\r\n },\r\n release: function() {\r\n },\r\n toString: function() {\r\n return this.model.value.error.toString();\r\n }\r\n};\r\n\r\nvar JSONValue = function(cell, value) {\r\n this.model = {\r\n address: cell.address,\r\n type: Cell.Types.String,\r\n value: JSON.stringify(value),\r\n rawValue: value\r\n };\r\n};\r\nJSONValue.prototype = {\r\n get value() {\r\n return this.model.rawValue;\r\n },\r\n set value(value) {\r\n this.model.rawValue = value;\r\n this.model.value = JSON.stringify(value);\r\n },\r\n get type() {\r\n return Cell.Types.String;\r\n },\r\n get effectiveType() {\r\n return Cell.Types.String;\r\n },\r\n get address() {\r\n return this.model.address;\r\n },\r\n set address(value) {\r\n this.model.address = value;\r\n },\r\n toCsvString: function() {\r\n return this.model.value;\r\n },\r\n release: function() {\r\n },\r\n toString: function() {\r\n return this.model.value;\r\n }\r\n};\r\n\r\n// Value is a place to hold common static Value type functions\r\nvar Value = {\r\n getType: function(value) {\r\n if ((value === null) || (value === undefined)) {\r\n return Cell.Types.Null;\r\n } else if ((value instanceof String) || (typeof value === 'string')) {\r\n return Cell.Types.String;\r\n } else if (typeof value === 'number') {\r\n return Cell.Types.Number;\r\n } else if (typeof value === 'boolean') {\r\n return Cell.Types.Boolean;\r\n } else if (value instanceof Date) {\r\n return Cell.Types.Date;\r\n } else if (value.text && value.hyperlink) {\r\n return Cell.Types.Hyperlink;\r\n } else if (value.formula || value.sharedFormula) {\r\n return Cell.Types.Formula;\r\n } else if (value.richText) {\r\n return Cell.Types.RichText;\r\n } else if (value.sharedString) {\r\n return Cell.Types.SharedString;\r\n } else if (value.error) {\r\n return Cell.Types.Error;\r\n }\r\n return Cell.Types.JSON;\r\n },\r\n\r\n // map valueType to constructor\r\n types: [\r\n {t: Cell.Types.Null, f: NullValue},\r\n {t: Cell.Types.Number, f: NumberValue},\r\n {t: Cell.Types.String, f: StringValue},\r\n {t: Cell.Types.Date, f: DateValue},\r\n {t: Cell.Types.Hyperlink, f: HyperlinkValue},\r\n {t: Cell.Types.Formula, f: FormulaValue},\r\n {t: Cell.Types.Merge, f: MergeValue},\r\n {t: Cell.Types.JSON, f: JSONValue},\r\n {t: Cell.Types.SharedString, f: SharedStringValue},\r\n {t: Cell.Types.RichText, f: RichTextValue},\r\n {t: Cell.Types.Boolean, f: BooleanValue},\r\n {t: Cell.Types.Error, f: ErrorValue},\r\n ].reduce((p, t) => { p[t.t] = t.f; return p; }, []),\r\n\r\n create: function(type, cell, value) {\r\n var T = this.types[type];\r\n if (!T) {\r\n throw new Error('Could not create Value of type ' + type);\r\n }\r\n return new T(cell, value);\r\n }\r\n};\r\n","/**\r\n * Copyright (c) 2014-2017 Guyon Roche\r\n * LICENCE: MIT - please refer to LICENCE file included with this module\r\n * or https://github.com/guyonroche/exceljs/blob/master/LICENSE\r\n */\r\n\r\n'use strict';\r\n\r\nvar _ = require('../utils/under-dash');\r\n\r\nvar Enums = require('./enums');\r\nvar colCache = require('./../utils/col-cache');\r\nvar Cell = require('./cell');\r\n\r\nvar Row = module.exports = function(worksheet, number) {\r\n this._worksheet = worksheet;\r\n this._number = number;\r\n this._cells = [];\r\n this.style = {};\r\n this.outlineLevel = 0;\r\n};\r\n\r\nRow.prototype = {\r\n // return the row number\r\n get number() {\r\n return this._number;\r\n },\r\n\r\n get worksheet() {\r\n return this._worksheet;\r\n },\r\n\r\n // Inform Streaming Writer that this row (and all rows before it) are complete\r\n // and ready to write. Has no effect on Worksheet document\r\n commit: function() {\r\n this._worksheet._commitRow(this); // eslint-disable-line no-underscore-dangle\r\n },\r\n\r\n // helps GC by breaking cyclic references\r\n destroy: function() {\r\n delete this._worksheet;\r\n delete this._cells;\r\n delete this.style;\r\n },\r\n\r\n findCell: function(colNumber) {\r\n return this._cells[colNumber - 1];\r\n },\r\n\r\n // given {address, row, col}, find or create new cell\r\n getCellEx: function(address) {\r\n var cell = this._cells[address.col - 1];\r\n if (!cell) {\r\n var column = this._worksheet.getColumn(address.col);\r\n cell = new Cell(this, column, address.address);\r\n this._cells[address.col - 1] = cell;\r\n }\r\n return cell;\r\n },\r\n\r\n // get cell by key, letter or column number\r\n getCell: function(col) {\r\n if (typeof col === 'string') {\r\n // is it a key?\r\n var column = this._worksheet.getColumnKey(col);\r\n if (column) {\r\n col = column.number;\r\n } else {\r\n col = colCache.l2n(col);\r\n }\r\n }\r\n return this._cells[col - 1] ||\r\n this.getCellEx({\r\n address: colCache.encodeAddress(this._number, col),\r\n row: this._number,\r\n col: col\r\n });\r\n },\r\n\r\n // remove cell(s) and shift all higher cells down by count\r\n splice: function(start, count) {\r\n var inserts = Array.prototype.slice.call(arguments, 2);\r\n var nKeep = start + count;\r\n var nExpand = inserts.length - count;\r\n var nEnd = this._cells.length;\r\n var i, cSrc, cDst;\r\n\r\n if (nExpand < 0) {\r\n // remove cells\r\n for (i = start + inserts.length; i <= nEnd; i++) {\r\n cDst = this._cells[i - 1];\r\n cSrc = this._cells[i - nExpand - 1];\r\n if (cSrc) {\r\n this.getCell(i).value = cSrc.value;\r\n } else if (cDst) {\r\n cDst.value = null;\r\n }\r\n }\r\n } else if (nExpand > 0) {\r\n // insert new cells\r\n for (i = nEnd; i >= nKeep; i--) {\r\n cSrc = this._cells[i - 1];\r\n if (cSrc) {\r\n this.getCell(i + nExpand).value = cSrc.value;\r\n } else {\r\n this._cells[(i + nExpand) - 1] = undefined;\r\n }\r\n }\r\n }\r\n\r\n // now add the new values\r\n for (i = 0; i < inserts.length; i++) {\r\n this.getCell(start + i).value = inserts[i];\r\n }\r\n },\r\n\r\n // Iterate over all non-null cells in this row\r\n eachCell: function(options, iteratee) {\r\n if (!iteratee) {\r\n iteratee = options;\r\n options = null;\r\n }\r\n if (options && options.includeEmpty) {\r\n var n = this._cells.length;\r\n for (var i = 1; i <= n; i++) {\r\n iteratee(this.getCell(i), i);\r\n }\r\n } else {\r\n this._cells.forEach(function(cell, index) {\r\n if (cell && (cell.type !== Enums.ValueType.Null)) {\r\n iteratee(cell, index + 1);\r\n }\r\n });\r\n }\r\n },\r\n\r\n // ===========================================================================\r\n // Page Breaks\r\n addPageBreak: function(lft, rght) {\r\n const ws = this._worksheet;\r\n const left = Math.max(0, lft - 1) || 0;\r\n const right = Math.max(0, rght - 1) || 16838;\r\n const pb = {\r\n id: this._number,\r\n max: right,\r\n man: 1\r\n };\r\n if (left) pb.min = left;\r\n \r\n ws.rowBreaks.push(pb);\r\n },\r\n\r\n // return a sparse array of cell values\r\n get values() {\r\n var values = [];\r\n this._cells.forEach(function(cell) {\r\n if (cell && (cell.type !== Enums.ValueType.Null)) {\r\n values[cell.col] = cell.value;\r\n }\r\n });\r\n return values;\r\n },\r\n\r\n // set the values by contiguous or sparse array, or by key'd object literal\r\n set values(value) {\r\n // this operation is not additive - any prior cells are removed\r\n this._cells = [];\r\n if (!value) {\r\n // empty row\r\n } else if (value instanceof Array) {\r\n var offset = 0;\r\n if (value.hasOwnProperty('0')) {\r\n // contiguous array - start at column 1\r\n offset = 1;\r\n }\r\n value.forEach((item, index) => {\r\n if (item !== undefined) {\r\n this.getCellEx({\r\n address: colCache.encodeAddress(this._number, index + offset),\r\n row: this._number,\r\n col: index + offset\r\n }).value = item;\r\n }\r\n });\r\n } else {\r\n // assume object with column keys\r\n this._worksheet.eachColumnKey((column, key) => {\r\n if (value[key] !== undefined) {\r\n this.getCellEx({\r\n address: colCache.encodeAddress(this._number, column.number),\r\n row: this._number,\r\n col: column.number\r\n }).value = value[key];\r\n }\r\n });\r\n }\r\n },\r\n\r\n // returns true if the row includes at least one cell with a value\r\n get hasValues() {\r\n return _.some(this._cells, function(cell) {\r\n return cell && (cell.type !== Enums.ValueType.Null);\r\n });\r\n },\r\n\r\n get cellCount() {\r\n return this._cells.length;\r\n },\r\n get actualCellCount() {\r\n var count = 0;\r\n this.eachCell(function() {\r\n count++;\r\n });\r\n return count;\r\n },\r\n\r\n // get the min and max column number for the non-null cells in this row or null\r\n get dimensions() {\r\n var min = 0;\r\n var max = 0;\r\n this._cells.forEach(function(cell) {\r\n if (cell && (cell.type !== Enums.ValueType.Null)) {\r\n if (!min || (min > cell.col)) {\r\n min = cell.col;\r\n }\r\n if (max < cell.col) {\r\n max = cell.col;\r\n }\r\n }\r\n });\r\n return min > 0 ? {\r\n min: min,\r\n max: max\r\n } : null;\r\n },\r\n\r\n // =========================================================================\r\n // styles\r\n _applyStyle: function(name, value) {\r\n this.style[name] = value;\r\n this._cells.forEach(function(cell) {\r\n if (cell) { cell[name] = value; }\r\n });\r\n return value;\r\n },\r\n\r\n get numFmt() {\r\n return this.style.numFmt;\r\n },\r\n set numFmt(value) {\r\n this._applyStyle('numFmt', value);\r\n },\r\n get font() {\r\n return this.style.font;\r\n },\r\n set font(value) {\r\n this._applyStyle('font', value);\r\n },\r\n get alignment() {\r\n return this.style.alignment;\r\n },\r\n set alignment(value) {\r\n this._applyStyle('alignment', value);\r\n },\r\n get border() {\r\n return this.style.border;\r\n },\r\n set border(value) {\r\n this._applyStyle('border', value);\r\n },\r\n get fill() {\r\n return this.style.fill;\r\n },\r\n set fill(value) {\r\n this._applyStyle('fill', value);\r\n },\r\n\r\n get hidden() {\r\n return !!this._hidden;\r\n },\r\n set hidden(value) {\r\n this._hidden = value;\r\n },\r\n\r\n get outlineLevel() {\r\n return this._outlineLevel || 0;\r\n },\r\n set outlineLevel(value) {\r\n this._outlineLevel = value;\r\n },\r\n get collapsed() {\r\n return !!(this._outlineLevel && (this._outlineLevel >= this._worksheet.properties.outlineLevelRow));\r\n },\r\n\r\n // =========================================================================\r\n get model() {\r\n var cells = [];\r\n var min = 0;\r\n var max = 0;\r\n this._cells.forEach(function(cell) {\r\n if (cell) {\r\n var cellModel = cell.model;\r\n if (cellModel) {\r\n if (!min || (min > cell.col)) {\r\n min = cell.col;\r\n }\r\n if (max < cell.col) {\r\n max = cell.col;\r\n }\r\n cells.push(cellModel);\r\n }\r\n }\r\n });\r\n\r\n return (this.height || cells.length) ? {\r\n cells: cells,\r\n number: this.number,\r\n min: min,\r\n max: max,\r\n height: this.height,\r\n style: this.style,\r\n hidden: this.hidden,\r\n outlineLevel: this.outlineLevel,\r\n collapsed: this.collapsed\r\n } : null;\r\n },\r\n set model(value) {\r\n if (value.number !== this._number) {\r\n throw new Error('Invalid row number in model');\r\n }\r\n this._cells = [];\r\n var previousAddress;\r\n value.cells.forEach(cellModel => {\r\n switch (cellModel.type) {\r\n case Cell.Types.Merge:\r\n // special case - don't add this types\r\n break;\r\n default:\r\n var address;\r\n if (cellModel.address) {\r\n address = colCache.decodeAddress(cellModel.address);\r\n } else if (previousAddress) {\r\n // This is a element without an r attribute\r\n // Assume that it's the cell for the next column\r\n var row = previousAddress.row;\r\n var col = previousAddress.col + 1;\r\n address = {\r\n row: row,\r\n col: col,\r\n address: colCache.encodeAddress(row, col),\r\n $col$row: '$' + colCache.n2l(col) + '$' + row\r\n };\r\n }\r\n previousAddress = address;\r\n var cell = this.getCellEx(address);\r\n cell.model = cellModel;\r\n break;\r\n }\r\n });\r\n\r\n if (value.height) {\r\n this.height = value.height;\r\n } else {\r\n delete this.height;\r\n }\r\n\r\n this.hidden = value.hidden;\r\n this.outlineLevel = value.outlineLevel || 0;\r\n\r\n this.style = value.style || {};\r\n }\r\n};\r\n","/**\r\n * Copyright (c) 2014-2017 Guyon Roche\r\n * LICENCE: MIT - please refer to LICENCE file included with this module\r\n * or https://github.com/guyonroche/exceljs/blob/master/LICENSE\r\n */\r\n\r\n'use strict';\r\n\r\nvar _ = require('../utils/under-dash');\r\n\r\nvar Enums = require('./enums');\r\nvar colCache = require('../utils/col-cache');\r\n// Column defines the column properties for 1 column.\r\n// This includes header rows, widths, key, (style), etc.\r\n// Worksheet will condense the columns as appropriate during serialization\r\nvar Column = module.exports = function(worksheet, number, defn) {\r\n this._worksheet = worksheet;\r\n this._number = number;\r\n if (defn !== false) {\r\n // sometimes defn will follow\r\n this.defn = defn;\r\n }\r\n};\r\n\r\nColumn.prototype = {\r\n get number() {\r\n return this._number;\r\n },\r\n get worksheet() {\r\n return this._worksheet;\r\n },\r\n get letter() {\r\n return colCache.n2l(this._number);\r\n },\r\n get isCustomWidth() {\r\n return (this.width !== undefined) && (this.width !== 8);\r\n },\r\n get defn() {\r\n return {\r\n header: this._header,\r\n key: this.key,\r\n width: this.width,\r\n style: this.style,\r\n hidden: this.hidden,\r\n outlineLevel: this.outlineLevel\r\n };\r\n },\r\n set defn(value) {\r\n if (value) {\r\n this.key = value.key;\r\n this.width = value.width;\r\n this.outlineLevel = value.outlineLevel;\r\n if (value.style) {\r\n this.style = value.style;\r\n } else {\r\n this.style = {};\r\n }\r\n\r\n // headers must be set after style\r\n this.header = value.header;\r\n this._hidden = !!value.hidden;\r\n } else {\r\n delete this._header;\r\n delete this.key;\r\n delete this.width;\r\n this.style = {};\r\n this.outlineLevel = 0;\r\n }\r\n },\r\n get headers() {\r\n return this._header && (this._header instanceof Array) ?\r\n this._header :\r\n [this._header];\r\n },\r\n get header() {\r\n return this._header;\r\n },\r\n set header(value) {\r\n if (value !== undefined) {\r\n this._header = value;\r\n this.headers.forEach((text, index) => {\r\n this._worksheet.getCell(index + 1, this.number).value = text;\r\n });\r\n } else {\r\n this._header = undefined;\r\n }\r\n },\r\n get key() {\r\n return this._key;\r\n },\r\n set key(value) {\r\n const column = this._key && this._worksheet.getColumnKey(this._key);\r\n if (column === this) {\r\n this._worksheet.deleteColumnKey(this._key);\r\n }\r\n\r\n this._key = value;\r\n if (value) {\r\n this._worksheet.setColumnKey(this._key, this);\r\n }\r\n },\r\n get hidden() {\r\n return !!this._hidden;\r\n },\r\n set hidden(value) {\r\n this._hidden = value;\r\n },\r\n get outlineLevel() {\r\n return this._outlineLevel || 0;\r\n },\r\n set outlineLevel(value) {\r\n this._outlineLevel = value;\r\n },\r\n get collapsed() {\r\n return !!(this._outlineLevel && (this._outlineLevel >= this._worksheet.properties.outlineLevelCol));\r\n },\r\n\r\n toString: function() {\r\n return JSON.stringify({\r\n key: this.key,\r\n width: this.width,\r\n headers: this.headers.length ? this.headers : undefined\r\n });\r\n },\r\n equivalentTo: function(other) {\r\n return (this.width === other.width) &&\r\n (this.hidden === other.hidden) &&\r\n (this.outlineLevel === other.outlineLevel) &&\r\n _.isEqual(this.style, other.style);\r\n },\r\n get isDefault() {\r\n if (this.isCustomWidth) {\r\n return false;\r\n }\r\n if (this.hidden) {\r\n return false;\r\n }\r\n if (this.outlineLevel) {\r\n return false;\r\n }\r\n var s = this.style;\r\n if (s && (s.font || s.numFmt || s.alignment || s.border || s.fill)) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n get headerCount() {\r\n return this.headers.length;\r\n },\r\n\r\n eachCell: function(options, iteratee) {\r\n var colNumber = this.number;\r\n if (!iteratee) {\r\n iteratee = options;\r\n options = null;\r\n }\r\n this._worksheet.eachRow(options, function(row, rowNumber) {\r\n iteratee(row.getCell(colNumber), rowNumber);\r\n });\r\n },\r\n\r\n get values() {\r\n const v = [];\r\n this.eachCell((cell, rowNumber) => {\r\n if (cell && cell.type !== Enums.ValueType.Null) {\r\n v[rowNumber] = cell.value;\r\n }\r\n });\r\n return v;\r\n },\r\n\r\n set values(v) {\r\n if (!v) {\r\n return;\r\n }\r\n const colNumber = this.number;\r\n let offset = 0;\r\n if (v.hasOwnProperty('0')) {\r\n // assume contiguous array, start at row 1\r\n offset = 1;\r\n }\r\n v.forEach((value, index) => {\r\n this._worksheet.getCell(index + offset, colNumber).value = value;\r\n });\r\n },\r\n\r\n // =========================================================================\r\n // styles\r\n _applyStyle: function(name, value) {\r\n this.style[name] = value;\r\n this.eachCell(function(cell) {\r\n cell[name] = value;\r\n });\r\n return value;\r\n },\r\n\r\n get numFmt() {\r\n return this.style.numFmt;\r\n },\r\n set numFmt(value) {\r\n this._applyStyle('numFmt', value);\r\n },\r\n get font() {\r\n return this.style.font;\r\n },\r\n set font(value) {\r\n this._applyStyle('font', value);\r\n },\r\n get alignment() {\r\n return this.style.alignment;\r\n },\r\n set alignment(value) {\r\n this._applyStyle('alignment', value);\r\n },\r\n get border() {\r\n return this.style.border;\r\n },\r\n set border(value) {\r\n this._applyStyle('border', value);\r\n },\r\n get fill() {\r\n return this.style.fill;\r\n },\r\n set fill(value) {\r\n this._applyStyle('fill', value);\r\n }\r\n};\r\n\r\n// =============================================================================\r\n// static functions\r\n\r\nColumn.toModel = function(columns) {\r\n // Convert array of Column into compressed list cols\r\n var cols = [];\r\n var col = null;\r\n if (columns) {\r\n columns.forEach(function(column, index) {\r\n if (column.isDefault) {\r\n if (col) {\r\n col = null;\r\n }\r\n } else if (!col || !column.equivalentTo(col)) {\r\n col = {\r\n min: index + 1,\r\n max: index + 1,\r\n width: column.width,\r\n style: column.style,\r\n isCustomWidth: column.isCustomWidth,\r\n hidden: column.hidden,\r\n outlineLevel: column.outlineLevel,\r\n collapsed: column.collapsed\r\n };\r\n cols.push(col);\r\n } else {\r\n col.max = index + 1;\r\n }\r\n });\r\n }\r\n return cols.length ? cols : undefined;\r\n};\r\n\r\nColumn.fromModel = function(worksheet, cols) {\r\n cols = cols || [];\r\n var columns = [];\r\n var count = 1;\r\n var index = 0;\r\n while (index < cols.length) {\r\n var col = cols[index++];\r\n while (count < col.min) {\r\n columns.push(new Column(worksheet, count++));\r\n }\r\n while (count <= col.max) {\r\n columns.push(new Column(worksheet, count++, col));\r\n }\r\n }\r\n return columns.length ? columns : null;\r\n};\r\n","/**\r\n * Copyright (c) 2016-2017 Guyon Roche\r\n * LICENCE: MIT - please refer to LICENCE file included with this module\r\n * or https://github.com/guyonroche/exceljs/blob/master/LICENSE\r\n */\r\n\r\n'use strict';\r\n\r\nvar DataValidations = module.exports = function(model) {\r\n this.model = model || {};\r\n};\r\n\r\nDataValidations.prototype = {\r\n add: function(address, validation) {\r\n return (this.model[address] = validation);\r\n },\r\n find: function(address) {\r\n return this.model[address];\r\n },\r\n remove: function(address) {\r\n this.model[address] = undefined;\r\n }\r\n};\r\n\r\n","/**\r\n * Copyright (c) 2014-2017 Guyon Roche\r\n * LICENCE: MIT - please refer to LICENCE file included with this module\r\n * or https://github.com/guyonroche/exceljs/blob/master/LICENSE\r\n */\r\n\r\n'use strict';\r\n\r\nvar _ = require('../utils/under-dash');\r\n\r\nvar colCache = require('./../utils/col-cache');\r\nvar Range = require('./range');\r\nvar Row = require('./row');\r\nvar Column = require('./column');\r\nvar Enums = require('./enums');\r\nvar DataValidations = require('./data-validations');\r\n\r\n// Worksheet requirements\r\n// Operate as sheet inside workbook or standalone\r\n// Load and Save from file and stream\r\n// Access/Add/Delete individual cells\r\n// Manage column widths and row heights\r\n\r\nvar Worksheet = module.exports = function(options) {\r\n options = options || {};\r\n\r\n // in a workbook, each sheet will have a number\r\n this.id = options.id;\r\n this.orderNo = options.orderNo;\r\n\r\n // and a name\r\n this.name = options.name || 'Sheet' + this.id;\r\n\r\n // add a state\r\n this.state = options.state || 'show';\r\n\r\n // rows allows access organised by row. Sparse array of arrays indexed by row-1, col\r\n // Note: _rows is zero based. Must subtract 1 to go from cell.row to index\r\n this._rows = [];\r\n\r\n // column definitions\r\n this._columns = null;\r\n\r\n // column keys (addRow convenience): key ==> this._collumns index\r\n this._keys = {};\r\n\r\n // keep record of all merges\r\n this._merges = {};\r\n\r\n // record of all row and column pageBreaks\r\n this.rowBreaks = [];\r\n\r\n this._workbook = options.workbook;\r\n\r\n // for tabColor, default row height, outline levels, etc\r\n this.properties = Object.assign({}, {\r\n defaultRowHeight: 15,\r\n dyDescent: 55,\r\n outlineLevelCol: 0,\r\n outlineLevelRow: 0\r\n }, options.properties);\r\n\r\n // for all things printing\r\n this.pageSetup = Object.assign({}, {\r\n margins: {left: 0.7, right: 0.7, top: 0.75, bottom: 0.75, header: 0.3, footer: 0.3 },\r\n orientation: 'portrait',\r\n horizontalDpi: 4294967295,\r\n verticalDpi: 4294967295,\r\n fitToPage: !!(options.pageSetup && ((options.pageSetup.fitToWidth || options.pageSetup.fitToHeight) && !options.pageSetup.scale)),\r\n pageOrder: 'downThenOver',\r\n blackAndWhite: false,\r\n draft: false,\r\n cellComments: 'None',\r\n errors: 'displayed',\r\n scale: 100,\r\n fitToWidth: 1,\r\n fitToHeight: 1,\r\n paperSize: undefined,\r\n showRowColHeaders: false,\r\n showGridLines: false,\r\n firstPageNumber: undefined,\r\n horizontalCentered: false,\r\n verticalCentered: false,\r\n rowBreaks: null,\r\n colBreaks: null\r\n }, options.pageSetup);\r\n\r\n this.dataValidations = new DataValidations();\r\n\r\n // for freezepanes, split, zoom, gridlines, etc\r\n this.views = options.views || [];\r\n\r\n this.autoFilter = options.autoFilter || null;\r\n\r\n // for images, etc\r\n this._media = [];\r\n};\r\n\r\nWorksheet.prototype = {\r\n\r\n get workbook() {\r\n return this._workbook;\r\n },\r\n\r\n // when you're done with this worksheet, call this to remove from workbook\r\n destroy: function() {\r\n this._workbook.removeWorksheetEx(this);\r\n },\r\n\r\n // Get the bounding range of the cells in this worksheet\r\n get dimensions() {\r\n var dimensions = new Range();\r\n this._rows.forEach(function(row) {\r\n if (row) {\r\n var rowDims = row.dimensions;\r\n if (rowDims) {\r\n dimensions.expand(row.number, rowDims.min, row.number, rowDims.max);\r\n }\r\n }\r\n });\r\n return dimensions;\r\n },\r\n\r\n // =========================================================================\r\n // Columns\r\n\r\n // get the current columns array.\r\n get columns() {\r\n return this._columns;\r\n },\r\n\r\n // set the columns from an array of column definitions.\r\n // Note: any headers defined will overwrite existing values.\r\n set columns(value) {\r\n var self = this;\r\n\r\n // calculate max header row count\r\n this._headerRowCount = value.reduce(function(pv, cv) {\r\n var headerCount =\r\n (cv.header && 1) ||\r\n (cv.headers && cv.headers.length) ||\r\n 0;\r\n return Math.max(pv, headerCount);\r\n }, 0);\r\n\r\n // construct Column objects\r\n var count = 1;\r\n var columns = this._columns = [];\r\n value.forEach(function(defn) {\r\n var column = new Column(self, count++, false);\r\n columns.push(column);\r\n column.defn = defn;\r\n });\r\n },\r\n\r\n getColumnKey(key) {\r\n return this._keys[key];\r\n },\r\n setColumnKey(key, value) {\r\n this._keys[key] = value;\r\n },\r\n deleteColumnKey(key) {\r\n delete this._keys[key];\r\n },\r\n eachColumnKey(f) {\r\n _.each(this._keys, f);\r\n },\r\n\r\n // get a single column by col number. If it doesn't exist, create it and any gaps before it\r\n getColumn: function(c) {\r\n if (typeof c === 'string') {\r\n // if it matches a key'd column, return that\r\n var col = this._keys[c];\r\n if (col) return col;\r\n\r\n // otherwise, assume letter\r\n c = colCache.l2n(c);\r\n }\r\n if (!this._columns) { this._columns = []; }\r\n if (c > this._columns.length) {\r\n var n = this._columns.length + 1;\r\n while (n <= c) {\r\n this._columns.push(new Column(this, n++));\r\n }\r\n }\r\n return this._columns[c - 1];\r\n },\r\n spliceColumns: function(start, count) {\r\n // each member of inserts is a column of data.\r\n var i;\r\n var inserts = Array.prototype.slice.call(arguments, 2);\r\n var rows = this._rows;\r\n var nRows = rows.length;\r\n if (inserts.length > 0) {\r\n // must iterate over all rows whether they exist yet or not\r\n for (i = 0; i < nRows; i++) {\r\n var rowArguments = [start, count];\r\n inserts.forEach(function(insert) { // eslint-disable-line no-loop-func\r\n rowArguments.push(insert[i] || null);\r\n });\r\n var row = this.getRow(i + 1);\r\n // eslint-disable-next-line prefer-spread\r\n row.splice.apply(row, rowArguments);\r\n }\r\n } else {\r\n // nothing to insert, so just splice all rows\r\n this._rows.forEach(function(r, i) {\r\n if (r) {\r\n r.splice(start, count);\r\n }\r\n });\r\n }\r\n\r\n // splice column definitions\r\n var nExpand = inserts.length - count;\r\n var nKeep = start + count;\r\n var nEnd = this._columns.length;\r\n if (nExpand < 0) {\r\n for(i = start + inserts.length; i <= nEnd; i++) {\r\n this.getColumn(i).defn = this.getColumn(i - nExpand).defn;\r\n }\r\n } else if (nExpand > 0) {\r\n for (i = nEnd; i >= nKeep; i--) {\r\n this.getColumn(i + nExpand).defn = this.getColumn(i).defn;\r\n }\r\n }\r\n for (i = start; i < start + inserts.length; i++) {\r\n this.getColumn(i).defn = null;\r\n }\r\n },\r\n\r\n get columnCount() {\r\n var maxCount = 0;\r\n this.eachRow(function(row) {\r\n maxCount = Math.max(maxCount, row.cellCount);\r\n });\r\n return maxCount;\r\n },\r\n get actualColumnCount() {\r\n // performance nightmare - for each row, counts all the columns used\r\n var counts = [];\r\n var count = 0;\r\n this.eachRow(function(row) {\r\n row.eachCell(function(cell) {\r\n var col = cell.col;\r\n if (!counts[col]) {\r\n counts[col] = true;\r\n count++;\r\n }\r\n });\r\n });\r\n return count;\r\n },\r\n\r\n\r\n // =========================================================================\r\n // Rows\r\n\r\n _commitRow: function() {\r\n // nop - allows streaming reader to fill a document\r\n },\r\n\r\n get _lastRowNumber() {\r\n // need to cope with results of splice\r\n var rows = this._rows;\r\n var n = rows.length;\r\n while ((n > 0) && (rows[n - 1] === undefined)) {\r\n n--;\r\n }\r\n return n;\r\n },\r\n get _nextRow() {\r\n return this._lastRowNumber + 1;\r\n },\r\n\r\n get lastRow() {\r\n if (this._rows.length) {\r\n return this._rows[this._rows.length - 1];\r\n }\r\n return undefined;\r\n },\r\n\r\n // find a row (if exists) by row number\r\n findRow: function(r) {\r\n return this._rows[r - 1];\r\n },\r\n\r\n get rowCount() {\r\n return this._lastRowNumber;\r\n },\r\n get actualRowCount() {\r\n // counts actual rows that have actual data\r\n var count = 0;\r\n this.eachRow(function() {\r\n count++;\r\n });\r\n return count;\r\n },\r\n\r\n // get a row by row number.\r\n getRow: function(r) {\r\n var row = this._rows[r - 1];\r\n if (!row) {\r\n row = this._rows[r - 1] = new Row(this, r);\r\n }\r\n return row;\r\n },\r\n addRow: function(value) {\r\n var row = this.getRow(this._nextRow);\r\n row.values = value;\r\n return row;\r\n },\r\n addRows: function(value) {\r\n var self = this;\r\n value.forEach(function(row) {\r\n self.addRow(row);\r\n });\r\n },\r\n\r\n spliceRows: function(start, count) {\r\n // same problem as row.splice, except worse.\r\n var inserts = Array.prototype.slice.call(arguments, 2);\r\n var nKeep = start + count;\r\n var nExpand = inserts.length - count;\r\n var nEnd = this._rows.length;\r\n var i, rSrc;\r\n if (nExpand < 0) {\r\n // remove rows\r\n for (i = nKeep; i <= nEnd; i++) {\r\n rSrc = this._rows[i - 1];\r\n if (rSrc) {\r\n this.getRow(i + nExpand).values = rSrc.values;\r\n this._rows[i - 1] = undefined;\r\n } else {\r\n this._rows[(i + nExpand) - 1] = undefined;\r\n }\r\n }\r\n } else if (nExpand > 0) {\r\n // insert new cells\r\n for (i = nEnd; i >= nKeep; i--) {\r\n rSrc = this._rows[i - 1];\r\n if (rSrc) {\r\n this.getRow(i + nExpand).values = rSrc.values;\r\n } else {\r\n this._rows[(i + nExpand) - 1] = undefined;\r\n }\r\n }\r\n }\r\n\r\n // now copy over the new values\r\n for (i = 0; i < inserts.length; i++) {\r\n this.getRow(start + i).values = inserts[i];\r\n }\r\n },\r\n\r\n // iterate over every row in the worksheet, including maybe empty rows\r\n eachRow: function(options, iteratee) {\r\n if (!iteratee) {\r\n iteratee = options;\r\n options = undefined;\r\n }\r\n if (options && options.includeEmpty) {\r\n var n = this._rows.length;\r\n for (var i = 1; i <= n; i++) {\r\n iteratee(this.getRow(i), i);\r\n }\r\n } else {\r\n this._rows.forEach(function(row) {\r\n if (row && row.hasValues) {\r\n iteratee(row, row.number);\r\n }\r\n });\r\n }\r\n },\r\n\r\n // return all rows as sparse array\r\n getSheetValues: function() {\r\n var rows = [];\r\n this._rows.forEach(function(row) {\r\n if (row) { rows[row.number] = row.values; }\r\n });\r\n return rows;\r\n },\r\n\r\n // =========================================================================\r\n // Cells\r\n\r\n // returns the cell at [r,c] or address given by r. If not found, return undefined\r\n findCell: function(r, c) {\r\n var address = colCache.getAddress(r, c);\r\n var row = this._rows[address.row - 1];\r\n return row ? row.findCell(address.col) : undefined;\r\n },\r\n\r\n // return the cell at [r,c] or address given by r. If not found, create a new one.\r\n getCell: function(r, c) {\r\n var address = colCache.getAddress(r, c);\r\n var row = this.getRow(address.row);\r\n return row.getCellEx(address);\r\n },\r\n\r\n // =========================================================================\r\n // Merge\r\n\r\n // convert the range defined by ['tl:br'], [tl,br] or [t,l,b,r] into a single 'merged' cell\r\n mergeCells: function() {\r\n var dimensions = new Range(Array.prototype.slice.call(arguments, 0)); // convert arguments into Array\r\n\r\n // check cells aren't already merged\r\n _.each(this._merges, function(merge) {\r\n if (merge.intersects(dimensions)) {\r\n throw new Error('Cannot merge already merged cells');\r\n }\r\n });\r\n\r\n // apply merge\r\n var master = this.getCell(dimensions.top, dimensions.left);\r\n for (var i = dimensions.top; i <= dimensions.bottom; i++) {\r\n for (var j = dimensions.left; j <= dimensions.right; j++) {\r\n // merge all but the master cell\r\n if ((i > dimensions.top) || (j > dimensions.left)) {\r\n this.getCell(i, j).merge(master);\r\n }\r\n }\r\n }\r\n\r\n // index merge\r\n this._merges[master.address] = dimensions;\r\n },\r\n _unMergeMaster: function(master) {\r\n // master is always top left of a rectangle\r\n var merge = this._merges[master.address];\r\n if (merge) {\r\n for (var i = merge.top; i <= merge.bottom; i++) {\r\n for (var j = merge.left; j <= merge.right; j++) {\r\n this.getCell(i, j).unmerge();\r\n }\r\n }\r\n delete this._merges[master.address];\r\n }\r\n },\r\n\r\n get hasMerges() {\r\n return _.some(this._merges, function() {\r\n // TODO: this doesn't look right\r\n return true;\r\n });\r\n },\r\n\r\n // scan the range defined by ['tl:br'], [tl,br] or [t,l,b,r] and if any cell is part of a merge,\r\n // un-merge the group. Note this function can affect multiple merges and merge-blocks are\r\n // atomic - either they're all merged or all un-merged.\r\n unMergeCells: function() {\r\n var dimensions = new Range(Array.prototype.slice.call(arguments, 0)); // convert arguments into Array\r\n\r\n // find any cells in that range and unmerge them\r\n for (var i = dimensions.top; i <= dimensions.bottom; i++) {\r\n for (var j = dimensions.left; j <= dimensions.right; j++) {\r\n var cell = this.findCell(i, j);\r\n if (cell) {\r\n if (cell.type === Enums.ValueType.Merge) {\r\n // this cell merges to another master\r\n this._unMergeMaster(cell.master);\r\n } else if (this._merges[cell.address]) {\r\n // this cell is a master\r\n this._unMergeMaster(cell);\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n // ===========================================================================\r\n // Shared Formula\r\n fillFormula: function(range, formula, results) {\r\n // Define formula for top-left cell and share to rest\r\n var decoded = colCache.decode(range);\r\n var { top, left, bottom, right } = decoded;\r\n var width = (right - left) + 1;\r\n var masterAddress = colCache.encodeAddress(top, left);\r\n\r\n // work out result accessor\r\n var getResult;\r\n if (typeof results === 'function') {\r\n getResult = results;\r\n } else if (Array.isArray(results)) {\r\n if (Array.isArray(results[0])) {\r\n getResult = (row, col) => results[row - top][col - left];\r\n } else {\r\n getResult = (row, col) => results[((row - top) * width) + (col - left)];\r\n }\r\n } else {\r\n getResult = () => undefined;\r\n }\r\n var first = true;\r\n for (var r = top; r <= bottom; r++) {\r\n for (var c = left; c <= right; c++) {\r\n if (first) {\r\n this.getCell(r, c).value = {\r\n formula,\r\n result: getResult(r, c),\r\n };\r\n first = false;\r\n } else {\r\n this.getCell(r, c).value = {\r\n sharedFormula: masterAddress,\r\n result: getResult(r, c),\r\n };\r\n }\r\n }\r\n }\r\n },\r\n\r\n\r\n // =========================================================================\r\n // Images\r\n addImage: function addImageToCells(imageId, range) {\r\n this._media.push({\r\n type: 'image',\r\n imageId,\r\n range,\r\n });\r\n },\r\n\r\n getImages() {\r\n return this._media\r\n .filter(m => m.type === 'image');\r\n },\r\n\r\n addBackgroundImage: function(imageId) {\r\n this._media.push({\r\n type: 'background',\r\n imageId,\r\n });\r\n },\r\n\r\n getBackgroundImageId() {\r\n return this._media\r\n .filter(m => m.type === 'background')\r\n .map(m => m.imageId)[0];\r\n },\r\n\r\n // ===========================================================================\r\n // Deprecated\r\n get tabColor() {\r\n // eslint-disable-next-line no-console\r\n console.trace('worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor');\r\n return this.properties.tabColor;\r\n },\r\n set tabColor(value) {\r\n // eslint-disable-next-line no-console\r\n console.trace('worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor');\r\n this.properties.tabColor = value;\r\n },\r\n\r\n // ===========================================================================\r\n // Model\r\n\r\n get model() {\r\n var model = {\r\n id: this.id,\r\n name: this.name,\r\n dataValidations: this.dataValidations.model,\r\n properties: this.properties,\r\n state: this.state,\r\n pageSetup: this.pageSetup,\r\n rowBreaks: this.rowBreaks,\r\n views: this.views,\r\n autoFilter: this.autoFilter,\r\n media: this._media,\r\n };\r\n\r\n // =================================================\r\n // columns\r\n model.cols = Column.toModel(this.columns);\r\n\r\n // ==========================================================\r\n // Rows\r\n var rows = model.rows = [];\r\n var dimensions = model.dimensions = new Range();\r\n this._rows.forEach(function(row) {\r\n var rowModel = row && row.model;\r\n if (rowModel) {\r\n dimensions.expand(rowModel.number, rowModel.min, rowModel.number, rowModel.max);\r\n rows.push(rowModel);\r\n }\r\n });\r\n\r\n // ==========================================================\r\n // Merges\r\n model.merges = [];\r\n _.each(this._merges, function(merge) {\r\n model.merges.push(merge.range);\r\n });\r\n\r\n return model;\r\n },\r\n _parseRows: function(model) {\r\n this._rows = [];\r\n model.rows.forEach(rowModel => {\r\n var row = new Row(this, rowModel.number);\r\n this._rows[row.number - 1] = row;\r\n row.model = rowModel;\r\n });\r\n },\r\n _parseMergeCells: function(model) {\r\n _.each(model.mergeCells, merge => {\r\n this.mergeCells(merge);\r\n });\r\n },\r\n set model(value) {\r\n this.name = value.name;\r\n this._columns = Column.fromModel(this, value.cols);\r\n this._parseRows(value);\r\n\r\n this._parseMergeCells(value);\r\n this.dataValidations = new DataValidations(value.dataValidations);\r\n this.properties = value.properties;\r\n this.pageSetup = value.pageSetup;\r\n this.views = value.views;\r\n this.autoFilter = value.autoFilter;\r\n this._media = value.media;\r\n }\r\n};\r\n","/**\r\n * Copyright (c) 2016-2017 Guyon Roche\r\n * LICENCE: MIT - please refer to LICENCE file included with this module\r\n * or https://github.com/guyonroche/exceljs/blob/master/LICENSE\r\n */\r\n\r\n'use strict';\r\n\r\nvar _ = require('./under-dash');\r\nvar colCache = require('./col-cache');\r\n\r\nvar CellMatrix = function(template) {\r\n this.template = template;\r\n this.sheets = {};\r\n};\r\n\r\nCellMatrix.prototype = {\r\n addCell: function(addressStr) {\r\n this.addCellEx(colCache.decodeEx(addressStr));\r\n },\r\n getCell: function(addressStr) {\r\n return this.findCellEx(colCache.decodeEx(addressStr), true);\r\n },\r\n findCell: function(addressStr) {\r\n return this.findCellEx(colCache.decodeEx(addressStr), false);\r\n },\r\n\r\n findCellAt: function(sheetName, rowNumber, colNumber) {\r\n var sheet = this.sheets[sheetName];\r\n var row = sheet && sheet[rowNumber];\r\n return row && row[colNumber];\r\n },\r\n addCellEx: function(address) {\r\n if (address.top) {\r\n for (var row = address.top; row <= address.bottom; row++) {\r\n for (var col = address.left; col <= address.right; col++) {\r\n this.getCellAt(address.sheetName, row, col);\r\n }\r\n }\r\n } else {\r\n this.findCellEx(address, true);\r\n }\r\n },\r\n getCellEx: function(address) {\r\n return this.findCellEx(address, true);\r\n },\r\n findCellEx: function(address, create) {\r\n var sheet = this.findSheet(address, create);\r\n var row = this.findSheetRow(sheet, address, create);\r\n return this.findRowCell(row, address, create);\r\n },\r\n getCellAt: function(sheetName, rowNumber, colNumber) {\r\n var sheet = this.sheets[sheetName] || (this.sheets[sheetName] = []);\r\n var row = sheet[rowNumber] || (sheet[rowNumber] = []);\r\n return row[colNumber] || (row[colNumber] = {\r\n sheetName: sheetName,\r\n address: colCache.n2l(colNumber) + rowNumber,\r\n row: rowNumber,\r\n col: colNumber\r\n });\r\n },\r\n\r\n removeCellEx: function(address) {\r\n var sheet = this.findSheet(address);\r\n if (!sheet) { return; }\r\n var row = this.findSheetRow(sheet, address);\r\n if (!row) { return; }\r\n delete row[address.col];\r\n },\r\n\r\n forEach: function(callback) {\r\n _.each(this.sheets, function(sheet) {\r\n if (sheet) {\r\n sheet.forEach(function(row) {\r\n if (row) {\r\n row.forEach(function(cell) {\r\n if (cell) {\r\n callback(cell);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n });\r\n },\r\n map: function(callback) {\r\n var results = [];\r\n this.forEach(function(cell) { results.push(callback(cell)); });\r\n return results;\r\n },\r\n\r\n findSheet: function(address, create) {\r\n var name = address.sheetName;\r\n if (this.sheets[name]) {\r\n return this.sheets[name];\r\n }\r\n if (create) {\r\n return (this.sheets[name] = []);\r\n }\r\n return undefined;\r\n },\r\n findSheetRow: function(sheet, address, create) {\r\n var row = address.row;\r\n if (sheet && sheet[row]) {\r\n return sheet[row];\r\n }\r\n if (create) {\r\n return (sheet[row] = []);\r\n }\r\n return undefined;\r\n },\r\n findRowCell: function(row, address, create) {\r\n var col = address.col;\r\n if (row && row[col]) {\r\n return row[col];\r\n }\r\n if (create) {\r\n return (row[col] = this.template ? Object.assign(address, JSON.parse(JSON.stringify(this.template))) : address);\r\n }\r\n return undefined;\r\n }\r\n};\r\n\r\nmodule.exports = CellMatrix;\r\n","/**\r\n * Copyright (c) 2016-2017 Guyon Roche\r\n * LICENCE: MIT - please refer to LICENCE file included with this module\r\n * or https://github.com/guyonroche/exceljs/blob/master/LICENSE\r\n */\r\n\r\n'use strict';\r\n\r\nvar _ = require('../utils/under-dash');\r\nvar colCache = require('../utils/col-cache');\r\nvar CellMatrix = require('../utils/cell-matrix');\r\nvar Range = require('./range');\r\n\r\nvar rangeRegexp = /[$](\\w+)[$](\\d+)(:[$](\\w+)[$](\\d+))?/;\r\n\r\nvar DefinedNames = module.exports = function() {\r\n this.matrixMap = {};\r\n};\r\n\r\nDefinedNames.prototype = {\r\n getMatrix: function(name) {\r\n return this.matrixMap[name] || (this.matrixMap[name] = new CellMatrix());\r\n },\r\n\r\n // add a name to a cell. locStr in the form SheetName!$col$row or SheetName!$c1$r1:$c2:$r2\r\n add: function(locStr, name) {\r\n var location = colCache.decodeEx(locStr);\r\n this.addEx(location, name);\r\n },\r\n addEx: function(location, name) {\r\n var matrix = this.getMatrix(name);\r\n if (location.top) {\r\n for (var col = location.left; col <= location.right; col++) {\r\n for (var row = location.top; row <= location.bottom; row++) {\r\n var address = {\r\n sheetName: location.sheetName,\r\n address: colCache.n2l(col) + row,\r\n row: row,\r\n col: col\r\n };\r\n\r\n matrix.addCellEx(address);\r\n }\r\n }\r\n } else {\r\n matrix.addCellEx(location);\r\n }\r\n },\r\n\r\n remove: function(locStr, name) {\r\n var location = colCache.decodeEx(locStr);\r\n this.removeEx(location, name);\r\n },\r\n removeEx: function(location, name) {\r\n var matrix = this.getMatrix(name);\r\n matrix.removeCellEx(location);\r\n },\r\n removeAllNames: function(location) {\r\n _.each(this.matrixMap, function(matrix) {\r\n matrix.removeCellEx(location);\r\n });\r\n },\r\n\r\n forEach: function(callback) {\r\n _.each(this.matrixMap, function(matrix, name) {\r\n matrix.forEach(function(cell) {\r\n callback(name, cell);\r\n });\r\n });\r\n },\r\n\r\n // get all the names of a cell\r\n getNames: function(addressStr) {\r\n return this.getNamesEx(colCache.decodeEx(addressStr));\r\n },\r\n getNamesEx: function(address) {\r\n return _.map(\r\n this.matrixMap,\r\n (matrix, name) => matrix.findCellEx(address) && name\r\n ).filter(Boolean);\r\n },\r\n\r\n _explore: function(matrix, cell) {\r\n cell.mark = false;\r\n var sheetName = cell.sheetName;\r\n\r\n var range = new Range(cell.row, cell.col, cell.row, cell.col, sheetName);\r\n var x, y;\r\n\r\n // grow vertical - only one col to worry about\r\n function vGrow(yy, edge) {\r\n var c = matrix.findCellAt(sheetName, yy, cell.col);\r\n if (!c || !c.mark) { return false; }\r\n range[edge] = yy;\r\n c.mark = false;\r\n return true;\r\n }\r\n for (y = cell.row - 1; vGrow(y, 'top'); y--);\r\n for (y = cell.row + 1; vGrow(y, 'bottom'); y++);\r\n\r\n // grow horizontal - ensure all rows can grow\r\n function hGrow(xx, edge) {\r\n var c, cells = [];\r\n for (y = range.top; y <= range.bottom; y++) {\r\n c = matrix.findCellAt(sheetName, y, xx);\r\n if (c && c.mark) {\r\n cells.push(c);\r\n } else {\r\n return false;\r\n }\r\n }\r\n range[edge] = xx;\r\n for (var i = 0; i < cells.length; i++) {\r\n cells[i].mark = false;\r\n }\r\n return true;\r\n }\r\n for (x = cell.col - 1; hGrow(x, 'left'); x--);\r\n for (x = cell.col + 1; hGrow(x, 'right'); x++);\r\n\r\n return range;\r\n },\r\n\r\n getRanges: function(name, matrix) {\r\n matrix = matrix || this.matrixMap[name];\r\n\r\n if (!matrix) {\r\n return { name: name, ranges: [] };\r\n }\r\n\r\n // mark and sweep!\r\n matrix.forEach(function(cell) { cell.mark = true; });\r\n var ranges = matrix.map(cell => cell.mark && this._explore(matrix, cell))\r\n .filter(Boolean)\r\n .map(range => range.$shortRange);\r\n\r\n return {\r\n name: name, ranges: ranges\r\n };\r\n },\r\n\r\n get model() {\r\n var self = this;\r\n // To get names per cell - just iterate over all names finding cells if they exist\r\n return _.map(this.matrixMap, function(matrix, name) {\r\n return self.getRanges(name, matrix);\r\n })\r\n .filter(function(definedName) {\r\n return definedName.ranges.length;\r\n });\r\n },\r\n set model(value) {\r\n // value is [ { name, ranges }, ... ]\r\n var matrixMap = this.matrixMap = {};\r\n value.forEach(function(definedName) {\r\n var matrix = matrixMap[definedName.name] = new CellMatrix();\r\n definedName.ranges.forEach(function(rangeStr) {\r\n if (rangeRegexp.test(rangeStr.split('!').pop() || '')) {\r\n matrix.addCell(rangeStr);\r\n }\r\n });\r\n });\r\n }\r\n};\r\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\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};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\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 // slower\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++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\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\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\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\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","'use strict';\n\nif (!process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","module.exports = require('events').EventEmitter;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n for (var i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = require('core-util-is');\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","module.exports = require('./lib/_stream_writable.js');\n","module.exports = require('./lib/_stream_duplex.js');\n","module.exports = require('./readable').Transform\n","module.exports = require('./readable').PassThrough\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","/*\n * This file is used by module bundlers (browserify/webpack/etc) when\n * including a stream implementation. We use \"readable-stream\" to get a\n * consistent behavior between nodejs versions but bundlers often have a shim\n * for \"stream\". Using this shim greatly improve the compatibility and greatly\n * reduce the final size of the bundle (only one stream implementation, not\n * two).\n */\nmodule.exports = require(\"stream\");\n","'use strict';\n\nexports.base64 = true;\nexports.array = true;\nexports.string = true;\nexports.arraybuffer = typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\";\nexports.nodebuffer = typeof Buffer !== \"undefined\";\n// contains true if JSZip can read/generate Uint8Array, false otherwise.\nexports.uint8array = typeof Uint8Array !== \"undefined\";\n\nif (typeof ArrayBuffer === \"undefined\") {\n exports.blob = false;\n}\nelse {\n var buffer = new ArrayBuffer(0);\n try {\n exports.blob = new Blob([buffer], {\n type: \"application/zip\"\n }).size === 0;\n }\n catch (e) {\n try {\n var Builder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n var builder = new Builder();\n builder.append(buffer);\n exports.blob = builder.getBlob('application/zip').size === 0;\n }\n catch (e) {\n exports.blob = false;\n }\n }\n}\n\ntry {\n exports.nodestream = !!require('readable-stream').Readable;\n} catch(e) {\n exports.nodestream = false;\n}\n","'use strict';\nvar utils = require('./utils');\nvar support = require('./support');\n// private property\nvar _keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\n\n// public method for encoding\nexports.encode = function(input) {\n var output = [];\n var chr1, chr2, chr3, enc1, enc2, enc3, enc4;\n var i = 0, len = input.length, remainingBytes = len;\n\n var isArray = utils.getTypeOf(input) !== \"string\";\n while (i < input.length) {\n remainingBytes = len - i;\n\n if (!isArray) {\n chr1 = input.charCodeAt(i++);\n chr2 = i < len ? input.charCodeAt(i++) : 0;\n chr3 = i < len ? input.charCodeAt(i++) : 0;\n } else {\n chr1 = input[i++];\n chr2 = i < len ? input[i++] : 0;\n chr3 = i < len ? input[i++] : 0;\n }\n\n enc1 = chr1 >> 2;\n enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64;\n enc4 = remainingBytes > 2 ? (chr3 & 63) : 64;\n\n output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4));\n\n }\n\n return output.join(\"\");\n};\n\n// public method for decoding\nexports.decode = function(input) {\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0, resultIndex = 0;\n\n var dataUrlPrefix = \"data:\";\n\n if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) {\n // This is a common error: people give a data url\n // (data:image/png;base64,iVBOR...) with a {base64: true} and\n // wonders why things don't work.\n // We can detect that the string input looks like a data url but we\n // *can't* be sure it is one: removing everything up to the comma would\n // be too dangerous.\n throw new Error(\"Invalid base64 input, it looks like a data url.\");\n }\n\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\n var totalLength = input.length * 3 / 4;\n if(input.charAt(input.length - 1) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if(input.charAt(input.length - 2) === _keyStr.charAt(64)) {\n totalLength--;\n }\n if (totalLength % 1 !== 0) {\n // totalLength is not an integer, the length does not match a valid\n // base64 content. That can happen if:\n // - the input is not a base64 content\n // - the input is *almost* a base64 content, with a extra chars at the\n // beginning or at the end\n // - the input uses a base64 variant (base64url for example)\n throw new Error(\"Invalid base64 input, bad content length.\");\n }\n var output;\n if (support.uint8array) {\n output = new Uint8Array(totalLength|0);\n } else {\n output = new Array(totalLength|0);\n }\n\n while (i < input.length) {\n\n enc1 = _keyStr.indexOf(input.charAt(i++));\n enc2 = _keyStr.indexOf(input.charAt(i++));\n enc3 = _keyStr.indexOf(input.charAt(i++));\n enc4 = _keyStr.indexOf(input.charAt(i++));\n\n chr1 = (enc1 << 2) | (enc2 >> 4);\n chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);\n chr3 = ((enc3 & 3) << 6) | enc4;\n\n output[resultIndex++] = chr1;\n\n if (enc3 !== 64) {\n output[resultIndex++] = chr2;\n }\n if (enc4 !== 64) {\n output[resultIndex++] = chr3;\n }\n\n }\n\n return output;\n};\n","'use strict';\n\nmodule.exports = {\n /**\n * True if this is running in Nodejs, will be undefined in a browser.\n * In a browser, browserify won't include this file and the whole module\n * will be resolved an empty object.\n */\n isNode : typeof Buffer !== \"undefined\",\n /**\n * Create a new nodejs Buffer.\n * @param {Object} data the data to pass to the constructor.\n * @param {String} encoding the encoding to use.\n * @return {Buffer} a new Buffer.\n */\n newBuffer : function(data, encoding){\n return new Buffer(data, encoding);\n },\n /**\n * Find out if an object is a Buffer.\n * @param {Object} b the object to test.\n * @return {Boolean} true if the object is a Buffer, false otherwise.\n */\n isBuffer : function(b){\n return Buffer.isBuffer(b);\n },\n\n isStream : function (obj) {\n return obj &&\n typeof obj.on === \"function\" &&\n typeof obj.pause === \"function\" &&\n typeof obj.resume === \"function\";\n }\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef","var core = module.exports = {version: '2.3.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\r\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\r\n});","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};","var global = require('./_global')\n , core = require('./_core')\n , ctx = require('./_ctx')\n , hide = require('./_hide')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE]\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(a, b, c){\n if(this instanceof C){\n switch(arguments.length){\n case 0: return new C;\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if(IS_PROTO){\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function(fn, args, that){\n var un = that === undefined;\n switch(args.length){\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};","module.exports = require('./_global').document && document.documentElement;","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};","var ctx = require('./_ctx')\n , invoke = require('./_invoke')\n , html = require('./_html')\n , cel = require('./_dom-create')\n , global = require('./_global')\n , process = global.process\n , setTask = global.setImmediate\n , clearTask = global.clearImmediate\n , MessageChannel = global.MessageChannel\n , counter = 0\n , queue = {}\n , ONREADYSTATECHANGE = 'onreadystatechange'\n , defer, channel, port;\nvar run = function(){\n var id = +this;\n if(queue.hasOwnProperty(id)){\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function(event){\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif(!setTask || !clearTask){\n setTask = function setImmediate(fn){\n var args = [], i = 1;\n while(arguments.length > i)args.push(arguments[i++]);\n queue[++counter] = function(){\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id){\n delete queue[id];\n };\n // Node.js 0.8-\n if(require('./_cof')(process) == 'process'){\n defer = function(id){\n process.nextTick(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if(MessageChannel){\n channel = new MessageChannel;\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){\n defer = function(id){\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if(ONREADYSTATECHANGE in cel('script')){\n defer = function(id){\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function(id){\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};","var $export = require('./_export')\n , $task = require('./_task');\n$export($export.G + $export.B, {\n setImmediate: $task.set,\n clearImmediate: $task.clear\n});","require('../modules/web.immediate');\nmodule.exports = require('../modules/_core').setImmediate;","'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a