UNPKG

339 kBSource Map (JSON)View Raw
1{"version":3,"sources":["node_modules/browser-pack/_prelude.js","lib/Gist.js","lib/GitHub.js","lib/Issue.js","lib/Markdown.js","lib/Organization.js","lib/Project.js","lib/RateLimit.js","lib/Repository.js","lib/Requestable.js","lib/Search.js","lib/Team.js","lib/User.js","node_modules/axios/index.js","node_modules/axios/lib/adapters/xhr.js","node_modules/axios/lib/axios.js","node_modules/axios/lib/cancel/Cancel.js","node_modules/axios/lib/cancel/CancelToken.js","node_modules/axios/lib/cancel/isCancel.js","node_modules/axios/lib/core/Axios.js","node_modules/axios/lib/core/InterceptorManager.js","node_modules/axios/lib/core/buildFullPath.js","node_modules/axios/lib/core/createError.js","node_modules/axios/lib/core/dispatchRequest.js","node_modules/axios/lib/core/enhanceError.js","node_modules/axios/lib/core/mergeConfig.js","node_modules/axios/lib/core/settle.js","node_modules/axios/lib/core/transformData.js","node_modules/axios/lib/defaults.js","node_modules/axios/lib/helpers/bind.js","node_modules/axios/lib/helpers/buildURL.js","node_modules/axios/lib/helpers/combineURLs.js","node_modules/axios/lib/helpers/cookies.js","node_modules/axios/lib/helpers/isAbsoluteURL.js","node_modules/axios/lib/helpers/isAxiosError.js","node_modules/axios/lib/helpers/isURLSameOrigin.js","node_modules/axios/lib/helpers/normalizeHeaderName.js","node_modules/axios/lib/helpers/parseHeaders.js","node_modules/axios/lib/helpers/spread.js","node_modules/axios/lib/utils.js","node_modules/base64-js/index.js","node_modules/buffer/index.js","node_modules/debug/src/browser.js","node_modules/debug/src/debug.js","node_modules/ieee754/index.js","node_modules/isarray/index.js","node_modules/js-base64/base64.js","node_modules/ms/index.js","node_modules/process/browser.js","node_modules/utf8/utf8.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","GitHub","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","1","_Requestable2","Gist","id","auth","apiBase","_classCallCheck","_this","_possibleConstructorReturn","__proto__","Object","getPrototypeOf","__id","cb","_request","gist","_this2","then","response","data","_request204or404","_requestAllPages","revision","comment","body","_Requestable3","default","_Gist","_User","_Issue","_Search","_RateLimit","_Repository","_Organization","_Team","_Markdown","_Project","arguments","undefined","__apiBase","__auth","_Gist2","user","_User2","organization","_Organization2","teamId","_Team2","repo","_Repository2","_getFullName","_Issue2","query","_Search2","_RateLimit2","_Markdown2","_Project2","fullname","Issue","repository","__repository","issueData","options","issue","milestone","milestoneData","labelData","label","Markdown","Organization","__name","requestOptions","_getOptionsWithDefaults","direction","username","AcceptHeader","Project","colId","position","listProjectColumns","_ref","Promise","all","map","column","cardsInColumns","cards","reduce","prev","_ref2","push","apply","_toConsumableArray","catch","err","cardId","column_id","RateLimit","_utf","_jsBase","_debug","log","_debug2","Repository","__fullname","__currentTree","branch","sha","ref","number","base","head","since","_dateToISO","until","path","treeSHA","content","postBody","_getContentObject","_utf2","encode","encoding","Buffer","toString","Blob","Base64","_typeof","JSON","stringify","baseTreeSHA","blobSHA","newTree","base_tree","tree","mode","type","baseSHA","parent","message","parents","assign","commitSHA","force","raw","encodeURI","org","oldBranch","newBranch","_this3","getRef","object","createRef","_this4","getSha","deleteCommit","oldPath","newPath","_this5","oldSha","getTree","_ref2$data","createTree","_ref3","commit","_ref4","updateHead","_this6","filePath","shouldEncode","author","committer","methodHasNoBody","method","METHODS_WITH_NO_BODY","indexOf","getNextPage","split","nextUrl","link","search","match","callbackErrorOrThrow","error","hasOwnProperty","_object$response","status","statusText","_object$config","config","url","ResponseError","_axios","request","Requestable","token","password","__AcceptHeader","__authorizationHeader","newCacheBuster","Date","getTime","replace","headers","Content-Type","Accept","Authorization","visibility","affiliation","sort","per_page","date","toISOString","__getURL","__getRequestHeaders","queryParams","params","responseType","requestPromise","_axios2","keys","results","_results","thisGroup","Array","items","page","parseInt","shift","pop","Search","defaults","__defaults","withOptions","forEach","prop","_search","Team","__teamId","owner","User","__user","endpoint","__getScopedUrl","before","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","resolve","reject","requestData","requestHeaders","isFormData","XMLHttpRequest","unescape","encodeURIComponent","btoa","fullPath","baseURL","open","toUpperCase","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseText","onabort","onerror","ontimeout","timeoutErrorMessage","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","xsrfHeaderName","val","key","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","cancel","abort","send","createInstance","defaultConfig","context","Axios","instance","bind","prototype","extend","mergeConfig","axios","create","instanceConfig","Cancel","CancelToken","isCancel","promises","spread","isAxiosError","__CANCEL__","executor","TypeError","resolvePromise","reason","throwIfRequested","source","value","interceptors","InterceptorManager","dispatchRequest","chain","interceptor","unshift","fulfilled","rejected","getUri","handlers","use","eject","fn","h","isAbsoluteURL","combineURLs","requestedURL","enhanceError","throwIfCancellationRequested","transformData","transformRequest","merge","common","adapter","transformResponse","toJSON","name","description","fileName","lineNumber","columnNumber","stack","config1","config2","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","axiosKeys","concat","otherKeys","filter","validateStatus","fns","setContentTypeIfUnset","normalizeHeaderName","DEFAULT_CONTENT_TYPE","process","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","parse","maxContentLength","maxBodyLength","thisArg","args","serializedParams","parts","v","isDate","join","hashmarkIndex","relativeURL","write","expires","domain","secure","cookie","isNumber","toGMTString","isString","document","RegExp","decodeURIComponent","remove","now","test","payload","resolveURL","href","msie","urlParsingNode","setAttribute","protocol","host","hash","hostname","port","pathname","charAt","originURL","navigator","userAgent","createElement","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","line","trim","substr","callback","arr","constructor","FormData","ArrayBuffer","isView","isFunction","pipe","URLSearchParams","str","product","obj","l","assignValue","result","b","stripBOM","charCodeAt","getLens","b64","len","validLen","byteLength","lens","placeHoldersLen","_byteLength","toByteArray","tmp","Arr","curByte","revLookup","tripletToBase64","num","lookup","encodeChunk","uint8","start","end","output","fromByteArray","extraBytes","len2","Uint8Array","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","arg","encodingOrOffset","allocUnsafe","from","fromArrayBuffer","fromString","fromObject","assertSize","size","alloc","fill","checked","string","isEncoding","actual","fromArrayLike","array","byteOffset","copy","isnan","SlowBuffer","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","m","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","lastIndexOf","buf","indexSize","readUInt16BE","arrLength","valLength","String","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","base64","Math","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","ret","out","toHex","bytes","checkOffset","ext","checkInt","max","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","ieee754","writeDouble","base64clean","stringtrim","INVALID_BASE64_RE","units","Infinity","leadSurrogate","byteArray","hi","lo","src","dst","INSPECT_MAX_BYTES","foo","subarray","poolSize","_augment","Symbol","species","defineProperty","configurable","allocUnsafeSlow","_isBuffer","compare","x","y","list","pos","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","_arr","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","useColors","documentElement","style","WebkitAppearance","console","firebug","exception","table","$1","formatArgs","namespace","humanize","diff","color","splice","index","lastC","Function","save","namespaces","storage","removeItem","debug","load","env","DEBUG","chrome","local","localStorage","colors","formatters","enable","selectColor","abs","createDebug","enabled","curr","ms","prevTime","coerce","format","formatter","init","names","skips","disable","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","s","NaN","rt","LN2","factory","fromUint8Array","_Base64","b64chars","b64tab","bin","cb_utob","cc","re_utob","utob","cb_encode","ccc","padlen","ord","_encode","mkUriSafe","m0","urisafe","a0","a1","a2","toUint8Array","re_btou","cb_btou","cccc","cp","btou","cb_decode","chars","_atob","atob","_decode","_fromURI","decode","noConflict","VERSION","fromBase64","toBase64","noEnum","enumerable","writable","extendString","exec","parseFloat","fmtShort","round","fmtLong","plural","ceil","long","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","setTimeout","runClearTimeout","marker","cachedClearTimeout","clearTimeout","cleanUpNextTick","draining","currentQueue","queue","queueIndex","drainQueue","run","Item","noop","nextTick","title","browser","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","root","ucs2decode","extra","counter","ucs2encode","stringFromCharCode","checkScalarValue","createByte","encodeCodePoint","symbol","utf8encode","byteString","readContinuationByte","byteIndex","byteCount","continuationByte","decodeSymbol","byte1","byte2","byte3","byte4","utf8decode","freeExports","freeModule","freeGlobal","utf8","nodeType"],"mappings":"CAAA,SAAAA,GAAA,GAAA,gBAAAC,UAAA,mBAAAC,QAAAA,OAAAD,QAAAD,QAAA,IAAA,kBAAAG,SAAAA,OAAAC,IAAAD,UAAAH,OAAA,CAAA,GAAAK,EAAAA,GAAA,mBAAAC,QAAAA,OAAA,mBAAAC,QAAAA,OAAA,mBAAAC,MAAAA,KAAAC,KAAAJ,EAAAK,OAAAV,MAAA,WAAA,GAAAG,EAAA,OAAA,YAAA,QAAAQ,GAAAC,EAAAC,EAAAC,GAAA,QAAAC,GAAAC,EAAAhB,GAAA,IAAAa,EAAAG,GAAA,CAAA,IAAAJ,EAAAI,GAAA,CAAA,GAAAC,GAAA,kBAAAC,UAAAA,OAAA,KAAAlB,GAAAiB,EAAA,MAAAA,GAAAD,GAAA,EAAA,IAAAG,EAAA,MAAAA,GAAAH,GAAA,EAAA,IAAAI,GAAA,GAAAC,OAAA,uBAAAL,EAAA,IAAA,MAAAI,GAAAE,KAAA,mBAAAF,EAAA,GAAAG,GAAAV,EAAAG,IAAAf,WAAAW,GAAAI,GAAA,GAAAQ,KAAAD,EAAAtB,QAAA,SAAAU,GAAA,MAAAI,GAAAH,EAAAI,GAAA,GAAAL,IAAAA,IAAAY,EAAAA,EAAAtB,QAAAU,EAAAC,EAAAC,EAAAC,GAAA,MAAAD,GAAAG,GAAAf,QAAA,IAAA,GAAAkB,GAAA,kBAAAD,UAAAA,QAAAF,EAAA,EAAAA,EAAAF,EAAAW,OAAAT,IAAAD,EAAAD,EAAAE,GAAA,OAAAD,GAAA,MAAAJ,OAAAe,GAAA,SAAAR,EAAAhB,EAAAD,q0BCOA0B,EAAAT,EAAA,wEAKMU,cAOH,QAAAA,GAAYC,EAAIC,EAAMC,GAASC,EAAAvB,KAAAmB,EAAA,IAAAK,GAAAC,EAAAzB,MAAAmB,EAAAO,WAAAC,OAAAC,eAAAT,IAAAJ,KAAAf,KACtBqB,EAAMC,GADgB,OAE5BE,GAAKK,KAAOT,EAFgBI,gDAW1BM,GACF,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAK6B,KAAQ,KAAMC,kCAUrDE,EAAMF,GAAI,GAAAG,GAAAjC,IACd,OAAOA,MAAK+B,SAAS,OAAQ,SAAUC,EAAMF,GACzCI,KAAK,SAACC,GAEJ,MADAF,GAAKJ,KAAOM,EAASC,KAAKhB,GACnBe,mCAUTL,GACJ,MAAO9B,MAAK+B,SAAS,SAAd,UAAkC/B,KAAK6B,KAAQ,KAAMC,gCAS1DA,GACF,MAAO9B,MAAK+B,SAAS,OAAd,UAAgC/B,KAAK6B,KAArC,SAAmD,KAAMC,kCAU5DE,EAAMF,GACV,MAAO9B,MAAK+B,SAAS,QAAd,UAAiC/B,KAAK6B,KAAQG,EAAMF,gCASzDA,GACF,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAK6B,KAApC,QAAiD,KAAMC,kCAS1DA,GACJ,MAAO9B,MAAK+B,SAAS,SAAd,UAAkC/B,KAAK6B,KAAvC,QAAoD,KAAMC,qCAS1DA,GACP,MAAO9B,MAAKqC,iBAAL,UAAgCrC,KAAK6B,KAArC,QAAkD,KAAMC,uCAStDA,GACT,MAAO9B,MAAKsC,iBAAL,UAAgCtC,KAAK6B,KAArC,WAAqD,KAAMC,uCAUzDS,EAAUT,GACnB,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAK6B,KAApC,IAA4CU,EAAY,KAAMT,wCAS3DA,GACV,MAAO9B,MAAKsC,iBAAL,UAAgCtC,KAAK6B,KAArC,YAAsD,KAAMC,sCAU3DU,EAASV,GACjB,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAK6B,KAApC,aAAqDW,EAAW,KAAMV,yCAUlEU,EAASV,GACpB,MAAO9B,MAAK+B,SAAS,OAAd,UAAgC/B,KAAK6B,KAArC,aAAuDY,KAAMD,GAAUV,uCAWrEU,EAASC,EAAMX,GACxB,MAAO9B,MAAK+B,SAAS,QAAd,UAAiC/B,KAAK6B,KAAtC,aAAuDW,GAAYC,KAAMA,GAAOX,yCAU5EU,EAASV,GACpB,MAAO9B,MAAK+B,SAAS,SAAd,UAAkC/B,KAAK6B,KAAvC,aAAwDW,EAAW,KAAMV,UA3KnEY,EAAAC,QA+KnBlD,GAAOD,QAAU2B,kcCnLjByB,EAAAnC,EAAA,iBACAoC,EAAApC,EAAA,iBACAqC,EAAArC,EAAA,kBACAsC,EAAAtC,EAAA,mBACAuC,EAAAvC,EAAA,sBACAwC,EAAAxC,EAAA,uBACAyC,EAAAzC,EAAA,yBACA0C,EAAA1C,EAAA,iBACA2C,EAAA3C,EAAA,qBACA4C,EAAA5C,EAAA,oBAKMR,aAOH,QAAAA,GAAYoB,GAA0C,GAApCC,GAAoCgC,UAAAtC,OAAA,OAAAuC,KAAAD,UAAA,GAAAA,UAAA,GAA1B,wBAA0B/B,GAAAvB,KAAAC,GACnDD,KAAKwD,UAAYlC,EACjBtB,KAAKyD,OAASpC,gDAQTD,GACL,MAAO,IAAIsC,GAAAf,QAAKvB,EAAIpB,KAAKyD,OAAQzD,KAAKwD,2CASjCG,GACL,MAAO,IAAIC,GAAAjB,QAAKgB,EAAM3D,KAAKyD,OAAQzD,KAAKwD,mDAQ3BK,GACb,MAAO,IAAIC,GAAAnB,QAAakB,EAAc7D,KAAKyD,OAAQzD,KAAKwD,2CAQnDO,GACL,MAAO,IAAIC,GAAArB,QAAKoB,EAAQ/D,KAAKyD,OAAQzD,KAAKwD,2CASrCG,EAAMM,GACX,MAAO,IAAIC,GAAAvB,QAAW3C,KAAKmE,aAAaR,EAAMM,GAAOjE,KAAKyD,OAAQzD,KAAKwD,6CAShEG,EAAMM,GACb,MAAO,IAAIG,GAAAzB,QAAM3C,KAAKmE,aAAaR,EAAMM,GAAOjE,KAAKyD,OAAQzD,KAAKwD,0CAQ9Da,GACJ,MAAO,IAAIC,GAAA3B,QAAO0B,EAAOrE,KAAKyD,OAAQzD,KAAKwD,kDAQ3C,MAAO,IAAIe,GAAA5B,QAAU3C,KAAKyD,OAAQzD,KAAKwD,iDAQvC,MAAO,IAAIgB,GAAA7B,QAAS3C,KAAKyD,OAAQzD,KAAKwD,8CAQ9BpC,GACR,MAAO,IAAIqD,GAAA9B,QAAQvB,EAAIpB,KAAKyD,OAAQzD,KAAKwD,gDAS/BG,EAAMM,GAChB,GAAIS,GAAWf,CAMf,OAJIM,KACDS,EAAcf,EAAd,IAAsBM,GAGlBS,UAIbjF,GAAOD,QAAUS,y+BCvIjBiB,EAAAT,EAAA,wEAKMkE,cAOH,QAAAA,GAAYC,EAAYvD,EAAMC,GAASC,EAAAvB,KAAA2E,EAAA,IAAAnD,GAAAC,EAAAzB,MAAA2E,EAAAjD,WAAAC,OAAAC,eAAA+C,IAAA5D,KAAAf,KAC9BqB,EAAMC,GADwB,OAEpCE,GAAKqD,aAAeD,EAFgBpD,uDAY3BsD,EAAWhD,GACpB,MAAO9B,MAAK+B,SAAS,OAAd,UAAgC/B,KAAK6E,aAArC,UAA4DC,EAAWhD,sCAUtEiD,EAASjD,GACjB,MAAO9B,MAAKsC,iBAAL,UAAgCtC,KAAK6E,aAArC,UAA4DE,EAASjD,2CAU/DkD,EAAOlD,GACpB,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAK6E,aAApC,WAA2DG,EAA3D,UAA2E,KAAMlD,6CAUzEkD,EAAOlD,GACtB,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAK6E,aAApC,WAA2DG,EAA3D,YAA6E,KAAMlD,2CAU7EV,EAAIU,GACjB,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAK6E,aAApC,oBAAoEzD,EAAM,KAAMU,8CAWvEkD,EAAOxC,EAASV,GAChC,MAAO9B,MAAK+B,SAAS,OAAd,UAAgC/B,KAAK6E,aAArC,WAA4DG,EAA5D,aAA+EvC,KAAMD,GAAUV,4CAWxFV,EAAIoB,EAASV,GAC3B,MAAO9B,MAAK+B,SAAS,QAAd,UAAiC/B,KAAK6E,aAAtC,oBAAsEzD,GAAOqB,KAAMD,GAAUV,8CAUpFV,EAAIU,GACpB,MAAO9B,MAAK+B,SAAS,SAAd,UAAkC/B,KAAK6E,aAAvC,oBAAuEzD,EAAM,KAAMU,qCAWnFkD,EAAOF,EAAWhD,GACzB,MAAO9B,MAAK+B,SAAS,QAAd,UAAiC/B,KAAK6E,aAAtC,WAA6DG,EAASF,EAAWhD,oCAUlFkD,EAAOlD,GACb,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAK6E,aAApC,WAA2DG,EAAS,KAAMlD,0CAUrEiD,EAASjD,GACrB,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAK6E,aAApC,cAA+DE,EAASjD,wCAUrEmD,EAAWnD,GACrB,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAK6E,aAApC,eAA+DI,EAAa,KAAMnD,2CAU5EoD,EAAepD,GAC5B,MAAO9B,MAAK+B,SAAS,OAAd,UAAgC/B,KAAK6E,aAArC,cAAgEK,EAAepD,yCAW3EmD,EAAWC,EAAepD,GACrC,MAAO9B,MAAK+B,SAAS,QAAd,UAAiC/B,KAAK6E,aAAtC,eAAiEI,EAAaC,EAAepD,2CAUvFmD,EAAWnD,GACxB,MAAO9B,MAAK+B,SAAS,SAAd,UAAkC/B,KAAK6E,aAAvC,eAAkEI,EAAa,KAAMnD,uCAUnFqD,EAAWrD,GACpB,MAAO9B,MAAK+B,SAAS,OAAd,UAAgC/B,KAAK6E,aAArC,UAA4DM,EAAWrD,sCAUtEiD,EAASjD,GACjB,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAK6E,aAApC,UAA2DE,EAASjD,oCAUrEsD,EAAOtD,GACb,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAK6E,aAApC,WAA2DO,EAAS,KAAMtD,qCAW1EsD,EAAOD,EAAWrD,GACzB,MAAO9B,MAAK+B,SAAS,QAAd,UAAiC/B,KAAK6E,aAAtC,WAA6DO,EAASD,EAAWrD,uCAU/EsD,EAAOtD,GAChB,MAAO9B,MAAK+B,SAAS,SAAd,UAAkC/B,KAAK6E,aAAvC,WAA8DO,EAAS,KAAMtD,UA1OtEY,EAAAC,QA8OpBlD,GAAOD,QAAUmF,62BCnPjBzD,EAAAT,EAAA,wEAKM4E,cAOH,QAAAA,GAAYhE,EAAMC,GAAS,MAAAC,GAAAvB,KAAAqF,GAAA5D,EAAAzB,MAAAqF,EAAA3D,WAAAC,OAAAC,eAAAyD,IAAAtE,KAAAf,KAClBqB,EAAMC,oDAaRyD,EAASjD,GACb,MAAO9B,MAAK+B,SAAS,OAAQ,YAAagD,EAASjD,GAAI,UAtBtCY,EAAAC,QA0BvBlD,GAAOD,QAAU6F,62BC/BjBnE,EAAAT,EAAA,wEAKM6E,cAOH,QAAAA,GAAYzB,EAAcxC,EAAMC,GAASC,EAAAvB,KAAAsF,EAAA,IAAA9D,GAAAC,EAAAzB,MAAAsF,EAAA5D,WAAAC,OAAAC,eAAA0D,IAAAvE,KAAAf,KAChCqB,EAAMC,GAD0B,OAEtCE,GAAK+D,OAAS1B,EAFwBrC,sDAY9BuD,EAASjD,GACjB,MAAO9B,MAAK+B,SAAS,OAAd,SAA+B/B,KAAKuF,OAApC,SAAoDR,EAASjD,oCAS9DA,GACN,GAAI0D,GAAiBxF,KAAKyF,yBAAyBC,UAAW,QAE9D,OAAO1F,MAAKsC,iBAAL,SAA+BtC,KAAKuF,OAApC,SAAoDC,EAAgB1D,oCASrE6D,EAAU7D,GAChB,MAAO9B,MAAKqC,iBAAL,SAA+BrC,KAAKuF,OAApC,YAAsDI,EAAY,KAAM7D,uCAYtEiD,EAASjD,GAClB,MAAO9B,MAAK+B,SAAS,MAAd,SAA8B/B,KAAKuF,OAAnC,WAAqDR,EAASjD,oCAS/DA,GACN,MAAO9B,MAAKsC,iBAAL,SAA+BtC,KAAKuF,OAApC,aAAoDhC,GAAWzB,sCAe9DiD,EAASjD,GACjB,MAAO9B,MAAK+B,SAAS,OAAd,SAA+B/B,KAAKuF,OAApC,SAAoDR,EAASjD,wCAS1DA,GACV,MAAO9B,MAAKsC,iBAAL,SAA+BtC,KAAKuF,OAApC,aAAwDK,aAAc,mBAAoB9D,yCAUtFiD,EAASjD,GAGpB,MAFAiD,GAAUA,MACVA,EAAQa,aAAe,kBAChB5F,KAAK+B,SAAS,OAAd,SAA+B/B,KAAKuF,OAApC,YAAuDR,EAASjD,UAxGlDY,EAAAC,QA4G3BlD,GAAOD,QAAU8F,q+BCjHjBpE,EAAAT,EAAA,wEAKMoF,cAOH,QAAAA,GAAYzE,EAAIC,EAAMC,GAASC,EAAAvB,KAAA6F,EAAA,IAAArE,GAAAC,EAAAzB,MAAA6F,EAAAnE,WAAAC,OAAAC,eAAAiE,IAAA9E,KAAAf,KACtBqB,EAAMC,EAAS,mBADO,OAE5BE,GAAKK,KAAOT,EAFgBI,sDAWpBM,GACR,MAAO9B,MAAK+B,SAAS,MAAd,aAAkC/B,KAAK6B,KAAQ,KAAMC,yCAUjDiD,EAASjD,GACpB,MAAO9B,MAAK+B,SAAS,QAAd,aAAoC/B,KAAK6B,KAAQkD,EAASjD,yCAStDA,GACX,MAAO9B,MAAK+B,SAAS,SAAd,aAAqC/B,KAAK6B,KAAQ,KAAMC,8CAS/CA,GAChB,MAAO9B,MAAKsC,iBAAL,aAAmCtC,KAAK6B,KAAxC,WAAwD,KAAMC,4CAUvDgE,EAAOhE,GACrB,MAAO9B,MAAK+B,SAAS,MAAd,qBAA0C+D,EAAS,KAAMhE,+CAU/CiD,EAASjD,GAC1B,MAAO9B,MAAK+B,SAAS,OAAd,aAAmC/B,KAAK6B,KAAxC,WAAwDkD,EAASjD,+CAWvDgE,EAAOf,EAASjD,GACjC,MAAO9B,MAAK+B,SAAS,QAAd,qBAA4C+D,EAASf,EAASjD,+CAUpDgE,EAAOhE,GACxB,MAAO9B,MAAK+B,SAAS,SAAd,qBAA6C+D,EAAS,KAAMhE,6CAYpDgE,EAAOC,EAAUjE,GAChC,MAAO9B,MAAK+B,SACT,OADI,qBAEiB+D,EAFjB,UAGHC,SAAUA,GACXjE,4CAUWA,GAAI,GAAAG,GAAAjC,IAClB,OAAOA,MAAKgG,qBACT9D,KAAK,SAAA+D,GAAY,GAAV7D,GAAU6D,EAAV7D,IACL,OAAO8D,SAAQC,IAAI/D,EAAKgE,IAAI,SAACC,GAC1B,MAAOpE,GAAKK,iBAAL,qBAA2C+D,EAAOjF,GAAlD,SAA8D,WAExEc,KAAK,SAACoE,GACN,GAAMC,GAAQD,EAAeE,OAAO,SAACC,EAADC,GAAkB,GAAVtE,GAAUsE,EAAVtE,IAEzC,OADAqE,GAAKE,KAALC,MAAAH,EAAAI,EAAazE,IACNqE,MAKV,OAHI3E,IACDA,EAAG,KAAMyE,GAELA,IACPO,MAAM,SAACC,GACP,GAAIjF,EAED,WADAA,GAAGiF,EAGN,MAAMA,6CAWEjB,EAAOhE,GACpB,MAAO9B,MAAKsC,iBAAL,qBAA2CwD,EAA3C,SAA0D,KAAMhE,0CAU3DkF,EAAQlF,GACpB,MAAO9B,MAAK+B,SAAS,MAAd,2BAAgDiF,EAAU,KAAMlF,6CAWxDgE,EAAOf,EAASjD,GAC/B,MAAO9B,MAAK+B,SAAS,OAAd,qBAA2C+D,EAA3C,SAA0Df,EAASjD,6CAW3DkF,EAAQjC,EAASjD,GAChC,MAAO9B,MAAK+B,SAAS,QAAd,2BAAkDiF,EAAUjC,EAASjD,6CAU7DkF,EAAQlF,GACvB,MAAO9B,MAAK+B,SAAS,SAAd,2BAAmDiF,EAAU,KAAMlF,2CAa7DkF,EAAQjB,EAAUD,EAAOhE,GACtC,MAAO9B,MAAK+B,SACT,OADI,2BAEuBiF,EAFvB,UAGHjB,SAAUA,EAAUkB,UAAWnB,GAChChE,UA1NaY,EAAAC,QA+NtBlD,GAAOD,QAAUqG,62BCpOjB3E,EAAAT,EAAA,wEAKMyG,cAOH,QAAAA,GAAY7F,EAAMC,GAAS,MAAAC,GAAAvB,KAAAkH,GAAAzF,EAAAzB,MAAAkH,EAAAxF,WAAAC,OAAAC,eAAAsF,IAAAnG,KAAAf,KAClBqB,EAAMC,0DASFQ,GACV,MAAO9B,MAAK+B,SAAS,MAAO,cAAe,KAAMD,UAlB/BY,EAAAC,QAsBxBlD,GAAOD,QAAU0H,qoCC3BjBhG,EAAAT,EAAA,wBACA0G,EAAA1G,EAAA,eACA2G,EAAA3G,EAAA,aAGA4G,EAAA5G,EAAA,gBACM6G,GAAM,EAAAC,EAAA5E,SAAM,qBAKZ6E,cAOH,QAAAA,GAAY9C,EAAUrD,EAAMC,GAASC,EAAAvB,KAAAwH,EAAA,IAAAhG,GAAAC,EAAAzB,MAAAwH,EAAA9F,WAAAC,OAAAC,eAAA4F,IAAAzG,KAAAf,KAC5BqB,EAAMC,GADsB,OAElCE,GAAKiG,WAAa/C,EAClBlD,EAAKkG,eACFC,OAAQ,KACRC,IAAK,MAL0BpG,kDAgB9BqG,EAAK/F,GACT,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,aAA2DI,EAAO,KAAM/F,qCAUxEiD,EAASjD,GAChB,MAAO9B,MAAK+B,SAAS,OAAd,UAAgC/B,KAAKyH,WAArC,YAA4D1C,EAASjD,qCAUrE+F,EAAK/F,GACZ,MAAO9B,MAAK+B,SAAS,SAAd,UAAkC/B,KAAKyH,WAAvC,aAA8DI,EAAO,KAAM/F,sCAS1EA,GACR,MAAO9B,MAAK+B,SAAS,SAAd,UAAkC/B,KAAKyH,WAAc,KAAM3F,oCAS5DA,GACN,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,QAAuD,KAAM3F,4CAUtDiD,EAASjD,GAEvB,MADAiD,GAAUA,MACH/E,KAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,SAAwD1C,EAASjD,0CAU5DgG,EAAQhG,GACpB,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,UAAwDK,EAAU,KAAMhG,gDAU7DgG,EAAQhG,GAC1B,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,UAAwDK,EAAxD,SAAwE,KAAMhG,2CAWxEiG,EAAMC,EAAMlG,GACzB,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,YAA0DM,EAA1D,MAAoEC,EAAQ,KAAMlG,wCAS/EA,GACV,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,YAA2D,KAAM3F,mCAUnE8F,EAAK9F,GACV,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,cAA4DG,EAAO,KAAM9F,EAAI,yCAU7E6F,EAAQ7F,GACf,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,aAA2DE,EAAU,KAAM7F,qCAU3E8F,EAAK9F,GACZ,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,gBAA8DG,EAAO,KAAM9F,uCAezEiD,EAASjD,GASlB,MARAiD,GAAUA,MACa,kBAAZA,KACRjD,EAAKiD,EACLA,MAEHA,EAAQkD,MAAQjI,KAAKkI,WAAWnD,EAAQkD,OACxClD,EAAQoD,MAAQnI,KAAKkI,WAAWnD,EAAQoD,OAEjCnI,KAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,WAA0D1C,EAASjD,2CAW7DgG,EAAQ/C,EAASjD,GAM9B,MALAiD,GAAUA,MACa,kBAAZA,KACRjD,EAAKiD,EACLA,MAEI/E,KAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,UAAwDK,EAAxD,WAA0E/C,EAASjD,2CAU7E+F,EAAK/F,GAElB,MADA+F,GAAMA,GAAO,GACN7H,KAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,YAA0DI,EAAO,KAAM/F,kCAW1E6F,EAAQS,EAAMtG,GAElB,MADA6F,GAASA,EAAA,QAAiBA,EAAW,GAC9B3H,KAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,aAA2DW,EAAOT,EAAU,KAAM7F,wCAU/E8F,EAAK9F,GACf,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,YAA0DG,EAA1D,YAA0E,KAAM9F,6CAUxE8F,EAAK9F,GACpB,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,YAA0DG,EAA1D,UAAwE,KAAM9F,mCAUhFuG,EAASvG,GACd,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,cAA4DY,EAAW,KAAMvG,sCAU5EwG,EAASxG,GACjB,GAAIyG,GAAWvI,KAAKwI,kBAAkBF,EAGtC,OADAhB,GAAI,kBAAmBiB,GAChBvI,KAAK+B,SAAS,OAAd,UAAgC/B,KAAKyH,WAArC,aAA6Dc,EAAUzG,6CAQ/DwG,GACf,GAAuB,gBAAZA,GAER,MADAhB,GAAI,uBAEDgB,QAASG,EAAA9F,QAAK+F,OAAOJ,GACrBK,SAAU,QAGT,QAAsB,KAAXC,GAA0BN,YAAmBM,GAE5D,MADAtB,GAAI,4BAEDgB,QAASA,EAAQO,SAAS,UAC1BF,SAAU,SAGT,IAAoB,mBAATG,OAAwBR,YAAmBQ,MAE1D,MADAxB,GAAI,mCAEDgB,QAASlB,EAAA2B,OAAOL,OAAOJ,GACvBK,SAAU,SAKb,MADArB,GAAA,uCAAA,KAA6CgB,EAA7C,YAAAU,EAA6CV,IAA7C,KAAyDW,KAAKC,UAAUZ,IAClE,GAAI1H,OAAM,wHAcXuI,EAAaf,EAAMgB,EAAStH,GACpC,GAAIuH,IACDC,UAAWH,EACXI,OACGnB,KAAMA,EACNR,IAAKwB,EACLI,KAAM,SACNC,KAAM,SAIZ,OAAOzJ,MAAK+B,SAAS,OAAd,UAAgC/B,KAAKyH,WAArC,aAA6D4B,EAASvH,sCAWrEyH,EAAMG,EAAS5H,GACvB,MAAO9B,MAAK+B,SAAS,OAAd,UAAgC/B,KAAKyH,WAArC,cACJ8B,KAAAA,EACAD,UAAWI,GACX5H,kCAeC6H,EAAQJ,EAAMK,EAAS7E,EAASjD,GAAI,GAAAG,GAAAjC,IACjB,mBAAZ+E,KACRjD,EAAKiD,EACLA,KAGH,IAAI3C,IACDwH,QAAAA,EACAL,KAAAA,EACAM,SAAUF,GAKb,OAFAvH,GAAOT,OAAOmI,UAAW/E,EAAS3C,GAE3BpC,KAAK+B,SAAS,OAAd,UAAgC/B,KAAKyH,WAArC,eAA+DrF,EAAMN,GACxEI,KAAK,SAACC,GAEJ,MADAF,GAAKyF,cAAcE,IAAMzF,EAASC,KAAKwF,IAChCzF,uCAaL0F,EAAKkC,EAAWC,EAAOlI,GAC/B,MAAO9B,MAAK+B,SAAS,QAAd,UAAiC/B,KAAKyH,WAAtC,aAA6DI,GACjED,IAAKmC,EACLC,MAAOA,GACPlI,wCAeOiI,EAAWhF,EAASjD,GAC9B,MAAO9B,MAAK+B,SAAS,OAAd,UAAgC/B,KAAKyH,WAArC,aAA4DsC,EAAahF,EAASjD,4CAkB3EiD,EAASjD,GACvB,MAAO9B,MAAK+B,SAAS,QAAd,UAAiC/B,KAAKyH,WAAc1C,EAASjD,sCAS5DA,GACR,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAAc,KAAM3F,2CASlDA,GACb,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,gBAA+D,KAAM3F,+CAS3DA,GACjB,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,sBAAqE,KAAM3F,4CAUpEA,GACd,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,iBAAgE,KAAM3F,0CAUjE6D,EAAU7D,GACtB,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,kBAAgE9B,EAAY,KAAM7D,uCAYhF+F,EAAKO,EAAM6B,EAAKnI,GAEzB,MADAsG,GAAOA,EAAA,GAAU8B,UAAU9B,GAAU,GAC9BpI,KAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,aAA2DW,GAC/DP,IAAAA,GACA/F,EAAImI,qCAWApC,EAAKoC,EAAKnI,GACjB,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,WACJI,IAAAA,GACA/F,EAAImI,gCASLnI,GACF,MAAO9B,MAAK+B,SAAS,OAAd,UAAgC/B,KAAKyH,WAArC,SAAyD,KAAM3F,qCAW/DqI,EAAKrI,GACZ,MAAO9B,MAAK+B,SAAS,OAAd,UAAgC/B,KAAKyH,WAArC,uBAAsE0C,EAAO,KAAMrI,qCASnFA,GACP,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,SAAwD,KAAM3F,wCAU3DsI,EAAWC,EAAWvI,GAAI,GAAAwI,GAAAtK,IAOpC,OANyB,kBAAdqK,KACRvI,EAAKuI,EACLA,EAAYD,EACZA,EAAY,UAGRpK,KAAKuK,OAAL,SAAqBH,GACxBlI,KAAK,SAACC,GACJ,GAAIyF,GAAMzF,EAASC,KAAKoI,OAAO5C,GAC/B,OAAO0C,GAAKG,WACT7C,IAAAA,EACAC,IAAA,cAAmBwC,GACnBvI,+CAWMiD,EAASjD,GACxB,MAAO9B,MAAK+B,SAAS,OAAd,UAAgC/B,KAAKyH,WAArC,SAAyD1C,EAASjD,6CAW1DgG,EAAQ/C,EAASjD,GAChC,MAAO9B,MAAK+B,SAAS,QAAd,UAAiC/B,KAAKyH,WAAtC,UAA0DK,EAAU/C,EAASjD,qCAS7EA,GACP,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,SAAwD,KAAM3F,mCAUhEV,EAAIU,GACT,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,UAAwDrG,EAAM,KAAMU,sCAUnEiD,EAASjD,GACjB,MAAO9B,MAAK+B,SAAS,OAAd,UAAgC/B,KAAKyH,WAArC,SAAyD1C,EAASjD,sCAWjEV,EAAI2D,EAASjD,GACrB,MAAO9B,MAAK+B,SAAS,QAAd,UAAiC/B,KAAKyH,WAAtC,UAA0DrG,EAAM2D,EAASjD,sCAUxEV,EAAIU,GACZ,MAAO9B,MAAK+B,SAAS,SAAd,UAAkC/B,KAAKyH,WAAvC,UAA2DrG,EAAM,KAAMU,oCASxEA,GACN,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,QAAuD,KAAM3F,kCAUhEV,EAAIU,GACR,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,SAAuDrG,EAAM,KAAMU,qCAUnEiD,EAASjD,GAChB,MAAO9B,MAAK+B,SAAS,OAAd,UAAgC/B,KAAKyH,WAArC,QAAwD1C,EAASjD,qCAUjEV,EAAIU,GACX,MAAO9B,MAAK+B,SAAS,SAAd,UAAkC/B,KAAKyH,WAAvC,SAA0DrG,EAAM,KAAMU,sCAWrE6F,EAAQS,EAAMtG,GAAI,GAAA4I,GAAA1K,IAC1B,OAAOA,MAAK2K,OAAOhD,EAAQS,GACvBlG,KAAK,SAACC,GACJ,GAAMyI,IACHhB,QAAA,uBAAgCxB,EAAhC,IACAR,IAAKzF,EAASC,KAAKwF,IACnBD,OAAAA,EAEH,OAAO+C,GAAK3I,SAAS,SAAd,UAAkC2I,EAAKjD,WAAvC,aAA8DW,EAAQwC,EAAc9I,kCAY/F6F,EAAQkD,EAASC,EAAShJ,GAAI,GAAAiJ,GAAA/K,KAC5BgL,MAAA,EACJ,OAAOhL,MAAKuK,OAAL,SAAqB5C,GACxBzF,KAAK,SAAA+D,GAAA,GAASuE,GAATvE,EAAE7D,KAAOoI,MAAT,OAAsBO,GAAKE,QAAWT,EAAO5C,IAAvB,qBAC3B1F,KAAK,SAAAwE,GAAyB,GAAAwE,GAAAxE,EAAvBtE,KAAOmH,EAAgB2B,EAAhB3B,KAAM3B,EAAUsD,EAAVtD,GAClBoD,GAASpD,CACT,IAAIyB,GAAUE,EAAKnD,IAAI,SAACyB,GAOrB,MANIA,GAAIO,OAASyC,IACdhD,EAAIO,KAAO0C,GAEG,SAAbjD,EAAI4B,YACE5B,GAAID,IAEPC,GAEV,OAAOkD,GAAKI,WAAW9B,KAEzBnH,KAAK,SAAAkJ,GAAA,GAAQ7B,GAAR6B,EAAEhJ,IAAF,OAAkB2I,GAAKM,OAAOL,EAAQzB,EAAK3B,IAAzB,YAA0CiD,EAA1C,SAA0DC,EAA1D,OACvB5I,KAAK,SAAAoJ,GAAA,GAAQD,GAARC,EAAElJ,IAAF,OAAoB2I,GAAKQ,WAAL,SAAyB5D,EAAU0D,EAAOzD,KAAK,EAAM9F,uCAiB3E6F,EAAQS,EAAME,EAASsB,EAAS7E,EAASjD,GAAI,GAAA0J,GAAAxL,IAE7B,oBADvB+E,EAAUA,SAEPjD,EAAKiD,EACLA,KAEH,IAAI0G,GAAWrD,EAAO8B,UAAU9B,GAAQ,GACpCsD,GAAkC,IAAnB3G,EAAQ2D,OACvB2C,GACD1D,OAAAA,EACAiC,QAAAA,EACA+B,OAAQ5G,EAAQ4G,OAChBC,UAAW7G,EAAQ6G,UACnBtD,QAASoD,EAAetE,EAAA2B,OAAOL,OAAOJ,GAAWA,EAGpD,OAAOtI,MAAK2K,OAAOhD,EAAQ8D,GACvBvJ,KAAK,SAACC,GAEJ,MADAkJ,GAAOzD,IAAMzF,EAASC,KAAKwF,IACpB4D,EAAKzJ,SAAS,MAAd,UAA+ByJ,EAAK/D,WAApC,aAA2DgE,EAAYJ,EAAQvJ,IACtF,WACA,MAAO0J,GAAKzJ,SAAS,MAAd,UAA+ByJ,EAAK/D,WAApC,aAA2DgE,EAAYJ,EAAQvJ,uCAWrFA,GACP,MAAO9B,MAAKqC,iBAAL,iBAAuCrC,KAAKyH,WAAc,KAAM3F,gCASrEA,GACF,MAAO9B,MAAK+B,SAAS,MAAd,iBAAsC/B,KAAKyH,WAAc,KAAM3F,kCASlEA,GACJ,MAAO9B,MAAK+B,SAAS,SAAd,iBAAyC/B,KAAKyH,WAAc,KAAM3F,yCAU9DiD,EAASjD,GACpB,MAAO9B,MAAK+B,SAAS,OAAd,UAAgC/B,KAAKyH,WAArC,YAA4D1C,EAASjD,yCAWjEV,EAAI2D,EAASjD,GACxB,MAAO9B,MAAK+B,SAAS,QAAd,UAAiC/B,KAAKyH,WAAtC,aAA6DrG,EAAM2D,EAASjD,wCASzEA,GACV,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,YAA2D,KAAM3F,sCAUhEV,EAAIU,GACZ,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,aAA2DrG,EAAM,KAAMU,yCAUnEV,EAAIU,GACf,MAAO9B,MAAK+B,SAAS,SAAd,UAAkC/B,KAAKyH,WAAvC,aAA8DrG,EAAM,KAAMU,4CAWnEgG,EAAQ/C,EAASjD,GAC/B,MAAO9B,MAAK+B,SAAS,MAAd,UAA+B/B,KAAKyH,WAApC,UAAwDK,EAAxD,SAAwE/C,EAASjD,wCAS9EA,GACV,MAAO9B,MAAKsC,iBAAL,UAAgCtC,KAAKyH,WAArC,aAA6D7B,aAAc,mBAAoB9D,yCAU3FiD,EAASjD,GAGpB,MAFAiD,GAAUA,MACVA,EAAQa,aAAe,kBAChB5F,KAAK+B,SAAS,OAAd,UAAgC/B,KAAKyH,WAArC,YAA4D1C,EAASjD,UA53BzDY,EAAAC,QAi4BzBlD,GAAOD,QAAUgI,s3BCjnBjB,QAASqE,GAAgBC,GACtB,OAAiD,IAA1CC,EAAqBC,QAAQF,GAGvC,QAASG,KAEN,OAFoC3I,UAAAtC,OAAA,OAAAuC,KAAAD,UAAA,GAAAA,UAAA,GAAJ,IACN4I,MAAM,WACnB1F,OAAO,SAAS2F,EAASC,GACnC,OAAmC,IAA/BA,EAAKC,OAAO,eACLD,EAAKE,MAAM,eAAiB,GAGhCH,OACP5I,IAGN,QAASgJ,GAAqBzK,EAAIsG,GAC/B,MAAO,UAAiBoC,GACrB,GAAIgC,OAAA,EACJ,IAAIhC,EAAOiC,eAAe,UAAW,CAAA,GAAAC,GAC8BlC,EAAzDrI,SAAWwK,EADgBD,EAChBC,OAAQC,EADQF,EACRE,WADQC,EAC8BrC,EAAzBsC,OAAShB,EADde,EACcf,OAAQiB,EADtBF,EACsBE,IACpDnD,EAAc+C,EAAd,yBAA6Cb,EAA7C,IAAuDiB,EAAvD,MAAgEH,EAAhE,GACJJ,GAAQ,GAAIQ,GAAcpD,EAASxB,EAAMoC,GACzClD,EAAOsC,EAAP,IAAkBX,KAAKC,UAAUsB,EAAOpI,WAExCoK,GAAQhC,CAEX,KAAI1I,EAKD,KADAwF,GAAI,kBACEkF,CAJNlF,GAAI,2BACJxF,EAAG0K,ycAvTZS,EAAAxM,EAAA,gBACA4G,EAAA5G,EAAA,gBACA2G,EAAA3G,EAAA,aAEM6G,GAAM,EAAAC,EAAA5E,SAAM,kBAKZqK,cAOH,QAAAA,GAAYpD,EAASxB,EAAMjG,GAAUZ,EAAAvB,KAAAgN,EAAA,IAAAxL,GAAAC,EAAAzB,MAAAgN,EAAAtL,WAAAC,OAAAC,eAAAoL,IAAAjM,KAAAf,KAC5B4J,GAD4B,OAElCpI,GAAK4G,KAAOA,EACZ5G,EAAK0L,QAAU/K,EAAS2K,OACxBtL,EAAKW,UAAYA,OAAgBA,UAAYA,EAC7CX,EAAKmL,OAASxK,EAASwK,OALWnL,mBAPZZ,OAmBtBuM,aAeH,QAAAA,GAAY9L,EAAMC,EAASsE,GAAcrE,EAAAvB,KAAAmN,GACtCnN,KAAKwD,UAAYlC,GAAW,yBAC5BtB,KAAKyD,QACF2J,MAAO/L,EAAK+L,MACZzH,SAAUtE,EAAKsE,SACf0H,SAAUhM,EAAKgM,UAElBrN,KAAKsN,eAAiB1H,GAAgB,KAElCvE,EAAK+L,MACNpN,KAAKuN,sBAAwB,SAAWlM,EAAK+L,MACrC/L,EAAKsE,UAAYtE,EAAKgM,WAC9BrN,KAAKuN,sBAAwB,SAAWnG,EAAA2B,OAAOL,OAAOrH,EAAKsE,SAAW,IAAMtE,EAAKgM,sDAU9EjF,GACN,GAAI2E,GAAM3E,GAEkB,IAAxBA,EAAK4D,QAAQ,QACde,EAAM/M,KAAKwD,UAAY4E,EAG1B,IAAIoF,GAAiB,cAAe,GAAIC,OAAOC,SAC/C,OAAOX,GAAIY,QAAQ,kBAAmBH,+CAUrBvD,EAAKrE,GACtB,GAAIgI,IACDC,eAAgB,iCAChBC,OAAU,2BAA6BlI,GAAgB5F,KAAKsN,gBAY/D,OATIrD,KACD2D,EAAQE,QAAU,QAErBF,EAAQE,QAAU,QAEd9N,KAAKuN,wBACNK,EAAQG,cAAgB/N,KAAKuN,uBAGzBK,oDASmC,GAArBpI,GAAqBlC,UAAAtC,OAAA,OAAAuC,KAAAD,UAAA,GAAAA,UAAA,KAO1C,OANMkC,GAAewI,YAAcxI,EAAeyI,cAC/CzI,EAAeiE,KAAOjE,EAAeiE,MAAQ,OAEhDjE,EAAe0I,KAAO1I,EAAe0I,MAAQ,UAC7C1I,EAAe2I,SAAW3I,EAAe2I,UAAY,MAE9C3I,qCAQC4I,GAKR,MAJIA,IAASA,YAAgBX,QAC1BW,EAAOA,EAAKC,eAGRD,mCAqBDtC,EAAQ1D,EAAMhG,EAAMN,EAAImI,GAC9B,GAAM8C,GAAM/M,KAAKsO,SAASlG,GAEpBxC,GAAgBxD,OAAYwD,YAC9BA,UACMxD,GAAKwD,YAEf,IAAMgI,GAAU5N,KAAKuO,oBAAoBtE,EAAKrE,GAE1C4I,IAE0BpM,IAAyB,gBAAhB,KAAOA,EAAP,YAAA4G,EAAO5G,KAAsByJ,EAAgBC,KAEjF0C,EAAcpM,EACdA,MAAOmB,GAGV,IAAMuJ,IACHC,IAAKA,EACLjB,OAAQA,EACR8B,QAASA,EACTa,OAAQD,EACRpM,KAAMA,EACNsM,aAAczE,EAAM,OAAS,OAGhC3C,GAAOwF,EAAOhB,OAAd,OAA2BgB,EAAOC,IAClC,IAAM4B,IAAiB,EAAAC,EAAAjM,SAAMmK,GAAQhG,MAAMyF,EAAqBzK,EAAIsG,GAgBpE,OAdItG,IACD6M,EAAezM,KAAK,SAACC,GACdA,EAASC,MAAQT,OAAOkN,KAAK1M,EAASC,MAAMpB,OAAS,EAEtDc,EAAG,KAAMK,EAASC,KAAMD,GACE,QAAlB2K,EAAOhB,QAAoBnK,OAAOkN,KAAK1M,EAASC,MAAMpB,OAAS,EAEvEc,EAAG,KAAOK,EAASwK,OAAS,IAAMxK,GAElCL,EAAG,KAAMK,EAASC,KAAMD,KAK1BwM,2CAWOvG,EAAMhG,EAAMN,GAAoB,GAAhBgK,GAAgBxI,UAAAtC,OAAA,OAAAuC,KAAAD,UAAA,GAAAA,UAAA,GAAP,KACvC,OAAOtD,MAAK+B,SAAS+J,EAAQ1D,EAAMhG,GAC/BF,KAAK,SAAiBC,GAIpB,MAHIL,IACDA,EAAG,MAAM,EAAMK,IAEX,GACP,SAAiBA,GACjB,GAAiC,MAA7BA,EAASA,SAASwK,OAInB,MAHI7K,IACDA,EAAG,MAAM,EAAOK,IAEZ,CAMV,MAHIL,IACDA,EAAGK,GAEAA,6CAcEiG,EAAMrD,EAASjD,EAAIgN,GAAS,GAAA7M,GAAAjC,IAG1C,OAFA8O,GAAUA,MAEH9O,KAAK+B,SAAS,MAAOqG,EAAMrD,GAC9B7C,KAAK,SAACC,GAAa,GAAA4M,GACbC,MAAA,EACJ,IAAI7M,EAASC,eAAgB6M,OAC1BD,EAAY7M,EAASC,SACjB;0CAAA,KAAID,EAASC,KAAK8M,gBAAiBD,QAEnC,CACJ,GAAIrF,GAAA,mCAA6CzH,EAASC,KAAtD,oBACJ,MAAM,IAAI4K,GAAcpD,EAASxB,EAAMjG,GAHvC6M,EAAY7M,EAASC,KAAK8M,OAK7BH,EAAAD,GAAQnI,KAARC,MAAAmI,EAAAlI,EAAgBmI,GAEhB,IAAM7C,GAAUF,EAAY9J,EAASyL,QAAQxB,KAC7C,OAAGD,KACKpH,IACFA,MAEHA,EAAQoK,KAAOC,SACbjD,EAAQG,MAAM,uBACX+C,QACAnD,MAAM,KACNoD,QAECvK,GAAmC,gBAAjBA,GAAQoK,OAC7B7H,EAAA,sBAA0B6E,GACnBlK,EAAKK,iBAAiB6J,EAASpH,EAASjD,EAAIgN,KAIrDhN,GACDA,EAAG,KAAMgN,EAAS3M,GAGrBA,EAASC,KAAO0M,EACT3M,KACP2E,MAAMyF,EAAqBzK,EAAIsG,YAI3C3I,GAAOD,QAAU2N,CAKjB,IAAMpB,IAAwB,MAAO,OAAQ,w7BC1R7C7K,EAAAT,EAAA,wBACA4G,EAAA5G,EAAA,gBACM6G,GAAM,EAAAC,EAAA5E,SAAM,iBAKZ4M,cAOH,QAAAA,GAAYC,EAAUnO,EAAMC,GAASC,EAAAvB,KAAAuP,EAAA,IAAA/N,GAAAC,EAAAzB,MAAAuP,EAAA7N,WAAAC,OAAAC,eAAA2N,IAAAxO,KAAAf,KAC5BqB,EAAMC,GADsB,OAElCE,GAAKiO,WAAajO,EAAKiE,wBAAwB+J,GAFbhO,mDAsB7B4G,GAAwC,GAAAnG,GAAAjC,KAAlC0P,EAAkCpM,UAAAtC,OAAA,OAAAuC,KAAAD,UAAA,GAAAA,UAAA,MAAhBxB,EAAgBwB,UAAAtC,OAAA,OAAAuC,KAAAD,UAAA,GAAAA,UAAA,OAAXC,GAC9BiC,IASJ,OARA7D,QAAOkN,KAAK7O,KAAKyP,YAAYE,QAAQ,SAACC,GACnCpK,EAAeoK,GAAQ3N,EAAKwN,WAAWG,KAE1CjO,OAAOkN,KAAKa,GAAaC,QAAQ,SAACC,GAC/BpK,EAAeoK,GAAQF,EAAYE,KAGtCtI,EAAA,aAAiBc,EAAjB,iBAAuC5C,GAChCxF,KAAKsC,iBAAL,WAAiC8F,EAAQ5C,EAAgB1D,2CAUnDiD,EAASjD,GACtB,MAAO9B,MAAK6P,QAAQ,eAAgB9K,EAASjD,mCAUxCiD,EAASjD,GACd,MAAO9B,MAAK6P,QAAQ,OAAQ9K,EAASjD,qCAU9BiD,EAASjD,GAChB,MAAO9B,MAAK6P,QAAQ,SAAU9K,EAASjD,oCAUjCiD,EAASjD,GACf,MAAO9B,MAAK6P,QAAQ,QAAS9K,EAASjD,UAnFvBY,EAAAC,QAuFrBlD,GAAOD,QAAU+P,06BC9FjBrO,EAAAT,EAAA,wBACA4G,EAAA5G,EAAA,gBACM6G,GAAM,EAAAC,EAAA5E,SAAM,eAKZmN,cAOH,QAAAA,GAAY/L,EAAQ1C,EAAMC,GAASC,EAAAvB,KAAA8P,EAAA,IAAAtO,GAAAC,EAAAzB,MAAA8P,EAAApO,WAAAC,OAAAC,eAAAkO,IAAA/O,KAAAf,KAC1BqB,EAAMC,GADoB,OAEhCE,GAAKuO,SAAWhM,EAFgBvC,mDAW3BM,GAEL,MADAwF,GAAA,iBAAqBtH,KAAK+P,UACnB/P,KAAK+B,SAAS,MAAd,UAA+B/B,KAAK+P,aAAYxM,GAAWzB,qCAS3DA,GAEP,MADAwF,GAAA,kCAAsCtH,KAAK+P,UACpC/P,KAAKsC,iBAAL,UAAgCtC,KAAK+P,SAArC,aAAuDxM,GAAWzB,oCAenEiD,EAASjD,GAEf,MADAwF,GAAA,gBAAoBtH,KAAK+P,UAClB/P,KAAK+B,SAAS,QAAd,UAAiC/B,KAAK+P,SAAYhL,EAASjD,uCAWzDiD,EAASjD,GAElB,MADAwF,GAAA,2BAA+BtH,KAAK+P,UAC7B/P,KAAKsC,iBAAL,UAAgCtC,KAAK+P,SAArC,WAAyDhL,EAASjD,yCAU9D6D,EAAU7D,GAErB,MADAwF,GAAA,8BAAkC3B,EAAlC,YAAsD3F,KAAK+P,UACpD/P,KAAK+B,SAAS,MAAd,UAA+B/B,KAAK+P,SAApC,gBAA4DpK,MAAYpC,GAAWzB,yCAa/E6D,EAAUZ,EAASjD,GAE9B,MADAwF,GAAA,eAAmB3B,EAAnB,YAAuC3F,KAAK+P,UACrC/P,KAAK+B,SAAS,MAAd,UAA+B/B,KAAK+P,SAApC,gBAA4DpK,EAAYZ,EAASjD,yCAW7EkO,EAAO/L,EAAMnC,GAExB,MADAwF,GAAA,mCAAuCtH,KAAK+P,SAA5C,aAAiEC,EAAjE,IAA0E/L,GACnEjE,KAAKqC,iBAAL,UAAgCrC,KAAK+P,SAArC,UAAuDC,EAAvD,IAAgE/L,MAAQV,GAAWzB,sCAclFkO,EAAO/L,EAAMc,EAASjD,GAE9B,MADAwF,GAAA,8CAAkDtH,KAAK+P,SAAvD,aAA4EC,EAA5E,IAAqF/L,GAC9EjE,KAAKqC,iBAAL,UAAgCrC,KAAK+P,SAArC,UAAuDC,EAAvD,IAAgE/L,EAAQc,EAASjD,EAAI,4CAWlFkO,EAAO/L,EAAMnC,GAEvB,MADAwF,GAAA,kCAAsCtH,KAAK+P,SAA3C,aAAgEC,EAAhE,IAAyE/L,GAClEjE,KAAKqC,iBAAL,UAAgCrC,KAAK+P,SAArC,UAAuDC,EAAvD,IAAgE/L,MAAQV,GAAWzB,EAAI,6CAStFA,GAER,MADAwF,GAAA,iBAAqBtH,KAAK+P,UACnB/P,KAAKqC,iBAAL,UAAgCrC,KAAK+P,aAAYxM,GAAWzB,EAAI,iBA7I1DY,EAAAC,QAiJnBlD,GAAOD,QAAUsQ,06BCxJjB5O,EAAAT,EAAA,wBACA4G,EAAA5G,EAAA,gBACM6G,GAAM,EAAAC,EAAA5E,SAAM,eAKZsN,cAOH,QAAAA,GAAYtK,EAAUtE,EAAMC,GAASC,EAAAvB,KAAAiQ,EAAA,IAAAzO,GAAAC,EAAAzB,MAAAiQ,EAAAvO,WAAAC,OAAAC,eAAAqO,IAAAlP,KAAAf,KAC5BqB,EAAMC,GADsB,OAElCE,GAAK0O,OAASvK,EAFoBnE,0DAWtB2O,GACZ,GAAInQ,KAAKkQ,OACN,MAAOC,GAAA,UACMnQ,KAAKkQ,OADX,IACqBC,EADrB,UAEMnQ,KAAKkQ,MAIlB,QAAQC,GACL,IAAK,GACF,MAAO,OAEV,KAAK,gBACL,IAAK,QACF,MAAA,IAAWA,CAEd,SACG,MAAA,SAAgBA,qCAYlBpL,EAASjD,GAShB,MARuB,kBAAZiD,KACRjD,EAAKiD,EACLA,MAGHA,EAAU/E,KAAKyF,wBAAwBV,GAEvCuC,EAAA,uCAA2C2B,KAAKC,UAAUnE,IACnD/E,KAAKsC,iBAAiBtC,KAAKoQ,eAAe,SAAUrL,EAASjD,oCAS9DA,GACN,MAAO9B,MAAK+B,SAAS,MAAO/B,KAAKoQ,eAAe,QAAS,KAAMtO,yCASpDA,GACX,MAAO9B,MAAK+B,SAAS,MAAO/B,KAAKoQ,eAAe,aAAc,KAAMtO,yCASzDA,GACX,MAAO9B,MAAK+B,SAAS,MAAO/B,KAAKoQ,eAAe,aAAc,KAAMtO,qCAS7DA,GACP,MAAO9B,MAAK+B,SAAS,MAAO/B,KAAKoQ,eAAe,SAAU,KAAMtO,6CAUjDiD,EAASjD,GAUxB,MATAiD,GAAUA,MACa,kBAAZA,KACRjD,EAAKiD,EACLA,MAGHA,EAAQkD,MAAQjI,KAAKkI,WAAWnD,EAAQkD,OACxClD,EAAQsL,OAASrQ,KAAKkI,WAAWnD,EAAQsL,QAElCrQ,KAAK+B,SAAS,MAAO/B,KAAKoQ,eAAe,iBAAkBrL,EAASjD,sCASnEA,GACR,MAAO9B,MAAK+B,SAAS,MAAO/B,KAAKoQ,eAAe,IAAK,KAAMtO,4CAS7CA,GACd,GAAI0D,GAAiBxF,KAAKyF,yBAC1B,OAAOzF,MAAKsC,iBAAiBtC,KAAKoQ,eAAe,WAAY5K,EAAgB1D,4CAU/DiD,EAASjD,GAOvB,MANAiD,GAAUA,MACa,kBAAZA,KACRjD,EAAKiD,EACLA,MAEHA,EAAQkD,MAAQjI,KAAKkI,WAAWnD,EAAQkD,OACjCjI,KAAK+B,SAAS,MAAO,iBAAkBgD,EAASjD,qCAShDA,GACP,MAAO9B,MAAK+B,SAAS,MAAO,eAAgB,KAAMD,kCAU9C6D,EAAU7D,GACd,MAAO9B,MAAK+B,SAAS,MAAd,mBAAwC4D,EAAY,KAAM7D,oCAU3D6D,EAAU7D,GAChB,MAAO9B,MAAK+B,SAAS,SAAd,mBAA2C4D,EAAY,KAAM7D,sCAU5DiD,EAASjD,GACjB,MAAO9B,MAAK+B,SAAS,OAAQ,cAAegD,EAASjD,UArMxCY,EAAAC,QAyMnBlD,GAAOD,QAAUyQ,qDCvNjBxQ,EAAAD,QAAAiB,EAAA,wDCAA,YAEA,IAAA6P,GAAA7P,EAAA,cACA8P,EAAA9P,EAAA,oBACA+P,EAAA/P,EAAA,wBACAgQ,EAAAhQ,EAAA,yBACAiQ,EAAAjQ,EAAA,yBACAkQ,EAAAlQ,EAAA,6BACAmQ,EAAAnQ,EAAA,gCACAoQ,EAAApQ,EAAA,sBAEAhB,GAAAD,QAAA,SAAAsN,GACA,MAAA,IAAA5G,SAAA,SAAA4K,EAAAC,GACA,GAAAC,GAAAlE,EAAA1K,KACA6O,EAAAnE,EAAAc,OAEA0C,GAAAY,WAAAF,UACAC,GAAA,eAGA,IAAA/D,GAAA,GAAAiE,eAGA,IAAArE,EAAAzL,KAAA,CACA,GAAAsE,GAAAmH,EAAAzL,KAAAsE,UAAA,GACA0H,EAAAP,EAAAzL,KAAAgM,SAAA+D,SAAAC,mBAAAvE,EAAAzL,KAAAgM,WAAA,EACA4D,GAAAlD,cAAA,SAAAuD,KAAA3L,EAAA,IAAA0H,GAGA,GAAAkE,GAAAb,EAAA5D,EAAA0E,QAAA1E,EAAAC,IA4EA,IA3EAG,EAAAuE,KAAA3E,EAAAhB,OAAA4F,cAAAjB,EAAAc,EAAAzE,EAAA2B,OAAA3B,EAAA6E,mBAAA,GAGAzE,EAAA0E,QAAA9E,EAAA8E,QAGA1E,EAAA2E,mBAAA,WACA,GAAA3E,GAAA,IAAAA,EAAA4E,aAQA,IAAA5E,EAAAP,QAAAO,EAAA6E,aAAA,IAAA7E,EAAA6E,YAAA/F,QAAA,UAAA,CAKA,GAAAgG,GAAA,yBAAA9E,GAAAyD,EAAAzD,EAAA+E,yBAAA,KACAC,EAAApF,EAAA4B,cAAA,SAAA5B,EAAA4B,aAAAxB,EAAA/K,SAAA+K,EAAAiF,aACAhQ,GACAC,KAAA8P,EACAvF,OAAAO,EAAAP,OACAC,WAAAM,EAAAN,WACAgB,QAAAoE,EACAlF,OAAAA,EACAI,QAAAA,EAGAqD,GAAAO,EAAAC,EAAA5O,GAGA+K,EAAA,OAIAA,EAAAkF,QAAA,WACAlF,IAIA6D,EAAAF,EAAA,kBAAA/D,EAAA,eAAAI,IAGAA,EAAA,OAIAA,EAAAmF,QAAA,WAGAtB,EAAAF,EAAA,gBAAA/D,EAAA,KAAAI,IAGAA,EAAA,MAIAA,EAAAoF,UAAA,WACA,GAAAC,GAAA,cAAAzF,EAAA8E,QAAA,aACA9E,GAAAyF,sBACAA,EAAAzF,EAAAyF,qBAEAxB,EAAAF,EAAA0B,EAAAzF,EAAA,eACAI,IAGAA,EAAA,MAMAoD,EAAAkC,uBAAA,CAEA,GAAAC,IAAA3F,EAAA4F,iBAAA9B,EAAAW,KAAAzE,EAAA6F,eACAnC,EAAAoC,KAAA9F,EAAA6F,oBACApP,EAEAkP,KACAxB,EAAAnE,EAAA+F,gBAAAJ,GAuBA,GAlBA,oBAAAvF,IACAoD,EAAAX,QAAAsB,EAAA,SAAA6B,EAAAC,OACA,KAAA/B,GAAA,iBAAA+B,EAAAC,oBAEA/B,GAAA8B,GAGA7F,EAAA+F,iBAAAF,EAAAD,KAMAxC,EAAA4C,YAAApG,EAAA4F,mBACAxF,EAAAwF,kBAAA5F,EAAA4F,iBAIA5F,EAAA4B,aACA,IACAxB,EAAAwB,aAAA5B,EAAA4B,aACA,MAAAvO,GAGA,GAAA,SAAA2M,EAAA4B,aACA,KAAAvO,GAMA,kBAAA2M,GAAAqG,oBACAjG,EAAAkG,iBAAA,WAAAtG,EAAAqG,oBAIA,kBAAArG,GAAAuG,kBAAAnG,EAAAoG,QACApG,EAAAoG,OAAAF,iBAAA,WAAAtG,EAAAuG,kBAGAvG,EAAAyG,aAEAzG,EAAAyG,YAAAC,QAAAtR,KAAA,SAAAuR,GACAvG,IAIAA,EAAAwG,QACA3C,EAAA0C,GAEAvG,EAAA,QAIA8D,IACAA,EAAA,MAIA9D,EAAAyG,KAAA3C,8OChLA,YAcA,SAAA4C,GAAAC,GACA,GAAAC,GAAA,GAAAC,GAAAF,GACAG,EAAAC,EAAAF,EAAAG,UAAAhH,QAAA4G,EAQA,OALAxD,GAAA6D,OAAAH,EAAAD,EAAAG,UAAAJ,GAGAxD,EAAA6D,OAAAH,EAAAF,GAEAE,EAtBA,GAAA1D,GAAA7P,EAAA,WACAwT,EAAAxT,EAAA,kBACAsT,EAAAtT,EAAA,gBACA2T,EAAA3T,EAAA,sBACA+O,EAAA/O,EAAA,cAsBA4T,EAAAT,EAAApE,EAGA6E,GAAAN,MAAAA,EAGAM,EAAAC,OAAA,SAAAC,GACA,MAAAX,GAAAQ,EAAAC,EAAA7E,SAAA+E,KAIAF,EAAAG,OAAA/T,EAAA,mBACA4T,EAAAI,YAAAhU,EAAA,wBACA4T,EAAAK,SAAAjU,EAAA,qBAGA4T,EAAAlO,IAAA,SAAAwO,GACA,MAAAzO,SAAAC,IAAAwO,IAEAN,EAAAO,OAAAnU,EAAA,oBAGA4T,EAAAQ,aAAApU,EAAA,0BAEAhB,EAAAD,QAAA6U,EAGA5U,EAAAD,QAAAmD,QAAA0R,6OCvDA,YAQA,SAAAG,GAAA5K,GACA5J,KAAA4J,QAAAA,EAGA4K,EAAAN,UAAArL,SAAA,WACA,MAAA,UAAA7I,KAAA4J,QAAA,KAAA5J,KAAA4J,QAAA,KAGA4K,EAAAN,UAAAY,YAAA,EAEArV,EAAAD,QAAAgV,2BClBA,YAUA,SAAAC,GAAAM,GACA,GAAA,kBAAAA,GACA,KAAA,IAAAC,WAAA,+BAGA,IAAAC,EACAjV,MAAAwT,QAAA,GAAAtN,SAAA,SAAA4K,GACAmE,EAAAnE,GAGA,IAAA1D,GAAApN,IACA+U,GAAA,SAAAnL,GACAwD,EAAA8H,SAKA9H,EAAA8H,OAAA,GAAAV,GAAA5K,GACAqL,EAAA7H,EAAA8H,WA1BA,GAAAV,GAAA/T,EAAA,WAiCAgU,GAAAP,UAAAiB,iBAAA,WACA,GAAAnV,KAAAkV,OACA,KAAAlV,MAAAkV,QAQAT,EAAAW,OAAA,WACA,GAAA3B,EAIA,QACArG,MAJA,GAAAqH,GAAA,SAAAjU,GACAiT,EAAAjT,IAIAiT,OAAAA,IAIAhU,EAAAD,QAAAiV,wCCxDA,YAEAhV,GAAAD,QAAA,SAAA6V,GACA,SAAAA,IAAAA,EAAAP,sCCHA,YAaA,SAAAf,GAAAQ,GACAvU,KAAAwP,SAAA+E,EACAvU,KAAAsV,cACApI,QAAA,GAAAqI,GACApT,SAAA,GAAAoT,IAfA,GAAAjF,GAAA7P,EAAA,cACAgQ,EAAAhQ,EAAA,uBACA8U,EAAA9U,EAAA,wBACA+U,EAAA/U,EAAA,qBACA2T,EAAA3T,EAAA,gBAoBAsT,GAAAG,UAAAhH,QAAA,SAAAJ,GAGA,gBAAAA,IACAA,EAAAxJ,UAAA,OACAwJ,EAAAC,IAAAzJ,UAAA,IAEAwJ,EAAAA,MAGAA,EAAAsH,EAAApU,KAAAwP,SAAA1C,GAGAA,EAAAhB,OACAgB,EAAAhB,OAAAgB,EAAAhB,OAAAkH,cACAhT,KAAAwP,SAAA1D,OACAgB,EAAAhB,OAAA9L,KAAAwP,SAAA1D,OAAAkH,cAEAlG,EAAAhB,OAAA,KAIA,IAAA2J,IAAAD,MAAAjS,IACAiQ,EAAAtN,QAAA4K,QAAAhE,EAUA,KARA9M,KAAAsV,aAAApI,QAAAyC,QAAA,SAAA+F,GACAD,EAAAE,QAAAD,EAAAE,UAAAF,EAAAG,YAGA7V,KAAAsV,aAAAnT,SAAAwN,QAAA,SAAA+F,GACAD,EAAA9O,KAAA+O,EAAAE,UAAAF,EAAAG,YAGAJ,EAAAzU,QACAwS,EAAAA,EAAAtR,KAAAuT,EAAApG,QAAAoG,EAAApG,QAGA,OAAAmE,IAGAO,EAAAG,UAAA4B,OAAA,SAAAhJ,GAEA,MADAA,GAAAsH,EAAApU,KAAAwP,SAAA1C,GACA2D,EAAA3D,EAAAC,IAAAD,EAAA2B,OAAA3B,EAAA6E,kBAAAhE,QAAA,MAAA,KAIA2C,EAAAX,SAAA,SAAA,MAAA,OAAA,WAAA,SAAA7D,GAEAiI,EAAAG,UAAApI,GAAA,SAAAiB,EAAAD,GACA,MAAA9M,MAAAkN,QAAAkH,EAAAtH,OACAhB,OAAAA,EACAiB,IAAAA,EACA3K,MAAA0K,OAAA1K,WAKAkO,EAAAX,SAAA,OAAA,MAAA,SAAA,SAAA7D,GAEAiI,EAAAG,UAAApI,GAAA,SAAAiB,EAAA3K,EAAA0K,GACA,MAAA9M,MAAAkN,QAAAkH,EAAAtH,OACAhB,OAAAA,EACAiB,IAAAA,EACA3K,KAAAA,QAKA3C,EAAAD,QAAAuU,uIC9FA,YAIA,SAAAwB,KACAvV,KAAA+V,YAHA,GAAAzF,GAAA7P,EAAA,aAcA8U,GAAArB,UAAA8B,IAAA,SAAAJ,EAAAC,GAKA,MAJA7V,MAAA+V,SAAApP,MACAiP,UAAAA,EACAC,SAAAA,IAEA7V,KAAA+V,SAAA/U,OAAA,GAQAuU,EAAArB,UAAA+B,MAAA,SAAA7U,GACApB,KAAA+V,SAAA3U,KACApB,KAAA+V,SAAA3U,GAAA,OAYAmU,EAAArB,UAAAvE,QAAA,SAAAuG,GACA5F,EAAAX,QAAA3P,KAAA+V,SAAA,SAAAI,GACA,OAAAA,GACAD,EAAAC,MAKA1W,EAAAD,QAAA+V,0CCnDA,YAEA,IAAAa,GAAA3V,EAAA,4BACA4V,EAAA5V,EAAA,yBAWAhB,GAAAD,QAAA,SAAAgS,EAAA8E,GACA,MAAA9E,KAAA4E,EAAAE,GACAD,EAAA7E,EAAA8E,GAEAA,qFClBA,YAEA,IAAAC,GAAA9V,EAAA,iBAYAhB,GAAAD,QAAA,SAAAoK,EAAAkD,EAAAjM,EAAAqM,EAAA/K,GACA,GAAAqK,GAAA,GAAA5L,OAAAgJ,EACA,OAAA2M,GAAA/J,EAAAM,EAAAjM,EAAAqM,EAAA/K,gDChBA,YAUA,SAAAqU,GAAA1J,GACAA,EAAAyG,aACAzG,EAAAyG,YAAA4B,mBAVA,GAAA7E,GAAA7P,EAAA,cACAgW,EAAAhW,EAAA,mBACAiU,EAAAjU,EAAA,sBACA+O,EAAA/O,EAAA,cAiBAhB,GAAAD,QAAA,SAAAsN,GA6BA,MA5BA0J,GAAA1J,GAGAA,EAAAc,QAAAd,EAAAc,YAGAd,EAAA1K,KAAAqU,EACA3J,EAAA1K,KACA0K,EAAAc,QACAd,EAAA4J,kBAIA5J,EAAAc,QAAA0C,EAAAqG,MACA7J,EAAAc,QAAAgJ,WACA9J,EAAAc,QAAAd,EAAAhB,YACAgB,EAAAc,SAGA0C,EAAAX,SACA,SAAA,MAAA,OAAA,OAAA,MAAA,QAAA,UACA,SAAA7D,SACAgB,GAAAc,QAAA9B,MAIAgB,EAAA+J,SAAArH,EAAAqH,SAEA/J,GAAA5K,KAAA,SAAAC,GAUA,MATAqU,GAAA1J,GAGA3K,EAAAC,KAAAqU,EACAtU,EAAAC,KACAD,EAAAyL,QACAd,EAAAgK,mBAGA3U,GACA,SAAA+S,GAcA,MAbAR,GAAAQ,KACAsB,EAAA1J,GAGAoI,GAAAA,EAAA/S,WACA+S,EAAA/S,SAAAC,KAAAqU,EACAvB,EAAA/S,SAAAC,KACA8S,EAAA/S,SAAAyL,QACAd,EAAAgK,qBAKA5Q,QAAA6K,OAAAmE,4GC5EA,YAYAzV,GAAAD,QAAA,SAAAgN,EAAAM,EAAAjM,EAAAqM,EAAA/K,GA4BA,MA3BAqK,GAAAM,OAAAA,EACAjM,IACA2L,EAAA3L,KAAAA,GAGA2L,EAAAU,QAAAA,EACAV,EAAArK,SAAAA,EACAqK,EAAAqI,cAAA,EAEArI,EAAAuK,OAAA,WACA,OAEAnN,QAAA5J,KAAA4J,QACAoN,KAAAhX,KAAAgX,KAEAC,YAAAjX,KAAAiX,YACAnP,OAAA9H,KAAA8H,OAEAoP,SAAAlX,KAAAkX,SACAC,WAAAnX,KAAAmX,WACAC,aAAApX,KAAAoX,aACAC,MAAArX,KAAAqX,MAEAvK,OAAA9M,KAAA8M,OACAjM,KAAAb,KAAAa,OAGA2L,4BCxCA,YAEA,IAAA8D,GAAA7P,EAAA,WAUAhB,GAAAD,QAAA,SAAA8X,EAAAC,GAgBA,QAAAC,GAAAC,EAAArC,GACA,MAAA9E,GAAAoH,cAAAD,IAAAnH,EAAAoH,cAAAtC,GACA9E,EAAAqG,MAAAc,EAAArC,GACA9E,EAAAoH,cAAAtC,GACA9E,EAAAqG,SAAAvB,GACA9E,EAAAqH,QAAAvC,GACAA,EAAAwC,QAEAxC,EAGA,QAAAyC,GAAAjI,GACAU,EAAA4C,YAAAqE,EAAA3H,IAEAU,EAAA4C,YAAAoE,EAAA1H,MACA9C,EAAA8C,GAAA4H,MAAAjU,GAAA+T,EAAA1H,KAFA9C,EAAA8C,GAAA4H,EAAAF,EAAA1H,GAAA2H,EAAA3H,IA3BA2H,EAAAA,KACA,IAAAzK,MAEAgL,GAAA,MAAA,SAAA,QACAC,GAAA,UAAA,OAAA,QAAA,UACAC,GACA,UAAA,mBAAA,oBAAA,mBACA,UAAA,iBAAA,kBAAA,UAAA,eAAA,iBACA,iBAAA,mBAAA,qBAAA,aACA,mBAAA,gBAAA,eAAA,YAAA,YACA,aAAA,cAAA,aAAA,oBAEAC,GAAA,iBAqBA3H,GAAAX,QAAAmI,EAAA,SAAAlI,GACAU,EAAA4C,YAAAqE,EAAA3H,MACA9C,EAAA8C,GAAA4H,MAAAjU,GAAAgU,EAAA3H,OAIAU,EAAAX,QAAAoI,EAAAF,GAEAvH,EAAAX,QAAAqI,EAAA,SAAApI,GACAU,EAAA4C,YAAAqE,EAAA3H,IAEAU,EAAA4C,YAAAoE,EAAA1H,MACA9C,EAAA8C,GAAA4H,MAAAjU,GAAA+T,EAAA1H,KAFA9C,EAAA8C,GAAA4H,MAAAjU,GAAAgU,EAAA3H,MAMAU,EAAAX,QAAAsI,EAAA,SAAArI,GACAA,IAAA2H,GACAzK,EAAA8C,GAAA4H,EAAAF,EAAA1H,GAAA2H,EAAA3H,IACAA,IAAA0H,KACAxK,EAAA8C,GAAA4H,MAAAjU,GAAA+T,EAAA1H,MAIA,IAAAsI,GAAAJ,EACAK,OAAAJ,GACAI,OAAAH,GACAG,OAAAF,GAEAG,EAAAzW,OACAkN,KAAAyI,GACAa,OAAAxW,OAAAkN,KAAA0I,IACAc,OAAA,SAAAtF,GACA,OAAA,IAAAmF,EAAAlM,QAAA+G,IAKA,OAFAzC,GAAAX,QAAAyI,EAAAP,GAEA/K,yCCrFA,YAEA,IAAA+D,GAAApQ,EAAA,gBASAhB,GAAAD,QAAA,SAAAsR,EAAAC,EAAA5O,GACA,GAAAmW,GAAAnW,EAAA2K,OAAAwL,cACAnW,GAAAwK,QAAA2L,IAAAA,EAAAnW,EAAAwK,QAGAoE,EAAAF,EACA,mCAAA1O,EAAAwK,OACAxK,EAAA2K,OACA,KACA3K,EAAA+K,QACA/K,IAPA2O,EAAA3O,+CCdA,YAEA,IAAAmO,GAAA7P,EAAA,aAUAhB,GAAAD,QAAA,SAAA4C,EAAAwL,EAAA2K,GAMA,MAJAjI,GAAAX,QAAA4I,EAAA,SAAArC,GACA9T,EAAA8T,EAAA9T,EAAAwL,KAGAxL,oEClBA,YASA,SAAAoW,GAAA5K,EAAAyH,IACA/E,EAAA4C,YAAAtF,IAAA0C,EAAA4C,YAAAtF,EAAA,mBACAA,EAAA,gBAAAyH,GATA,GAAA/E,GAAA7P,EAAA,WACAgY,EAAAhY,EAAA,iCAEAiY,GACA7K,eAAA,qCAqBA2B,GACAqH,QAbA,WACA,GAAAA,EAQA,OAPA,mBAAA1F,gBAEA0F,EAAApW,EAAA,sBACA,KAAAkY,GAAA,qBAAAhX,OAAAuS,UAAArL,SAAA9H,KAAA4X,KAEA9B,EAAApW,EAAA,oBAEAoW,KAMAH,kBAAA,SAAAtU,EAAAwL,GAGA,MAFA6K,GAAA7K,EAAA,UACA6K,EAAA7K,EAAA,gBACA0C,EAAAY,WAAA9O,IACAkO,EAAAsI,cAAAxW,IACAkO,EAAAuI,SAAAzW,IACAkO,EAAAwI,SAAA1W,IACAkO,EAAAyI,OAAA3W,IACAkO,EAAA0I,OAAA5W,GAEAA,EAEAkO,EAAA2I,kBAAA7W,GACAA,EAAA8W,OAEA5I,EAAA6I,kBAAA/W,IACAoW,EAAA5K,EAAA,mDACAxL,EAAAyG,YAEAyH,EAAA8I,SAAAhX,IACAoW,EAAA5K,EAAA,kCACA3E,KAAAC,UAAA9G,IAEAA,IAGA0U,mBAAA,SAAA1U,GAEA,GAAA,gBAAAA,GACA,IACAA,EAAA6G,KAAAoQ,MAAAjX,GACA,MAAAjC,IAEA,MAAAiC,KAOAwP,QAAA,EAEAe,eAAA,aACAE,eAAA,eAEAyG,kBAAA,EACAC,eAAA,EAEAjB,eAAA,SAAA3L,GACA,MAAAA,IAAA,KAAAA,EAAA,KAIA6C,GAAA5B,SACAgJ,QACA9I,OAAA,sCAIAwC,EAAAX,SAAA,SAAA,MAAA,QAAA,SAAA7D,GACA0D,EAAA5B,QAAA9B,QAGAwE,EAAAX,SAAA,OAAA,MAAA,SAAA,SAAA7D,GACA0D,EAAA5B,QAAA9B,GAAAwE,EAAAqG,MAAA+B,KAGAjZ,EAAAD,QAAAgQ,uKCjGA,YAEA/P,GAAAD,QAAA,SAAA0W,EAAAsD,GACA,MAAA,YAEA,IAAA,GADAC,GAAA,GAAAxK,OAAA3L,UAAAtC,QACAT,EAAA,EAAAA,EAAAkZ,EAAAzY,OAAAT,IACAkZ,EAAAlZ,GAAA+C,UAAA/C,EAEA,OAAA2V,GAAAtP,MAAA4S,EAAAC,8BCRA,YAIA,SAAA/Q,GAAAoK,GACA,MAAAzB,oBAAAyB,GACAnF,QAAA,QAAA,KACAA,QAAA,OAAA,KACAA,QAAA,QAAA,KACAA,QAAA,OAAA,KACAA,QAAA,QAAA,KACAA,QAAA,QAAA,KATA,GAAA2C,GAAA7P,EAAA,aAmBAhB,GAAAD,QAAA,SAAAuN,EAAA0B,EAAAkD,GAEA,IAAAlD,EACA,MAAA1B,EAGA,IAAA2M,EACA,IAAA/H,EACA+H,EAAA/H,EAAAlD,OACA,IAAA6B,EAAA6I,kBAAA1K,GACAiL,EAAAjL,EAAA5F,eACA,CACA,GAAA8Q,KAEArJ,GAAAX,QAAAlB,EAAA,SAAAqE,EAAAC,GACA,OAAAD,OAAA,KAAAA,IAIAxC,EAAAqH,QAAA7E,GACAC,GAAA,KAEAD,GAAAA,GAGAxC,EAAAX,QAAAmD,EAAA,SAAA8G,GACAtJ,EAAAuJ,OAAAD,GACAA,EAAAA,EAAAvL,cACAiC,EAAA8I,SAAAQ,KACAA,EAAA3Q,KAAAC,UAAA0Q,IAEAD,EAAAhT,KAAA+B,EAAAqK,GAAA,IAAArK,EAAAkR,SAIAF,EAAAC,EAAAG,KAAA,KAGA,GAAAJ,EAAA,CACA,GAAAK,GAAAhN,EAAAf,QAAA,MACA,IAAA+N,IACAhN,EAAAA,EAAA6K,MAAA,EAAAmC,IAGAhN,KAAA,IAAAA,EAAAf,QAAA,KAAA,IAAA,KAAA0N,EAGA,MAAA3M,4CCpEA,YASAtN,GAAAD,QAAA,SAAAgS,EAAAwI,GACA,MAAAA,GACAxI,EAAA7D,QAAA,OAAA,IAAA,IAAAqM,EAAArM,QAAA,OAAA,IACA6D,4BCZA,YAEA,IAAAlB,GAAA7P,EAAA,aAEAhB,GAAAD,QACA8Q,EAAAkC,uBAGA,WACA,OACAyH,MAAA,SAAAjD,EAAA3B,EAAA6E,EAAA9R,EAAA+R,EAAAC,GACA,GAAAC,KACAA,GAAA1T,KAAAqQ,EAAA,IAAA3F,mBAAAgE,IAEA/E,EAAAgK,SAAAJ,IACAG,EAAA1T,KAAA,WAAA,GAAA8G,MAAAyM,GAAAK,eAGAjK,EAAAkK,SAAApS,IACAiS,EAAA1T,KAAA,QAAAyB,GAGAkI,EAAAkK,SAAAL,IACAE,EAAA1T,KAAA,UAAAwT,IAGA,IAAAC,GACAC,EAAA1T,KAAA,UAGA8T,SAAAJ,OAAAA,EAAAP,KAAA,OAGAlH,KAAA,SAAAoE,GACA,GAAA1K,GAAAmO,SAAAJ,OAAA/N,MAAA,GAAAoO,QAAA,aAAA1D,EAAA,aACA,OAAA1K,GAAAqO,mBAAArO,EAAA,IAAA,MAGAsO,OAAA,SAAA5D,GACAhX,KAAAia,MAAAjD,EAAA,GAAAvJ,KAAAoN,MAAA,YAMA,WACA,OACAZ,MAAA,aACArH,KAAA,WAAA,MAAA,OACAgI,OAAA,yDCjDA,YAQAnb,GAAAD,QAAA,SAAAuN,GAIA,MAAA,gCAAA+N,KAAA/N,6BCZA,YAQAtN,GAAAD,QAAA,SAAAub,GACA,MAAA,gBAAAA,KAAA,IAAAA,EAAAlG,uCCTA,YAEA,IAAAvE,GAAA7P,EAAA,aAEAhB,GAAAD,QACA8Q,EAAAkC,uBAIA,WAWA,QAAAwI,GAAAjO,GACA,GAAAkO,GAAAlO,CAWA,OATAmO,KAEAC,EAAAC,aAAA,OAAAH,GACAA,EAAAE,EAAAF,MAGAE,EAAAC,aAAA,OAAAH,IAIAA,KAAAE,EAAAF,KACAI,SAAAF,EAAAE,SAAAF,EAAAE,SAAA1N,QAAA,KAAA,IAAA,GACA2N,KAAAH,EAAAG,KACAjP,OAAA8O,EAAA9O,OAAA8O,EAAA9O,OAAAsB,QAAA,MAAA,IAAA,GACA4N,KAAAJ,EAAAI,KAAAJ,EAAAI,KAAA5N,QAAA,KAAA,IAAA,GACA6N,SAAAL,EAAAK,SACAC,KAAAN,EAAAM,KACAC,SAAA,MAAAP,EAAAO,SAAAC,OAAA,GACAR,EAAAO,SACA,IAAAP,EAAAO,UAhCA,GAEAE,GAFAV,EAAA,kBAAAJ,KAAAe,UAAAC,WACAX,EAAAV,SAAAsB,cAAA,IA2CA,OARAH,GAAAZ,EAAAnb,OAAAmc,SAAAf,MAQA,SAAAgB,GACA,GAAAC,GAAA5L,EAAAkK,SAAAyB,GAAAjB,EAAAiB,GAAAA,CACA,OAAAC,GAAAb,WAAAO,EAAAP,UACAa,EAAAZ,OAAAM,EAAAN,SAKA,WACA,MAAA,YACA,OAAA,8CChEA,YAEA,IAAAhL,GAAA7P,EAAA,WAEAhB,GAAAD,QAAA,SAAAoO,EAAAuO,GACA7L,EAAAX,QAAA/B,EAAA,SAAAyH,EAAA2B,GACAA,IAAAmF,GAAAnF,EAAAtF,gBAAAyK,EAAAzK,gBACA9D,EAAAuO,GAAA9G,QACAzH,GAAAoJ,6CCRA,YAEA,IAAA1G,GAAA7P,EAAA,cAIA2b,GACA,MAAA,gBAAA,iBAAA,eAAA,OACA,UAAA,OAAA,OAAA,oBAAA,sBACA,gBAAA,WAAA,eAAA,sBACA,UAAA,cAAA,aAgBA3c,GAAAD,QAAA,SAAAoO,GACA,GACAmF,GACAD,EACAvS,EAHA2b,IAKA,OAAAtO,IAEA0C,EAAAX,QAAA/B,EAAA1B,MAAA,MAAA,SAAAmQ,GAKA,GAJA9b,EAAA8b,EAAArQ,QAAA,KACA+G,EAAAzC,EAAAgM,KAAAD,EAAAE,OAAA,EAAAhc,IAAAyS,cACAF,EAAAxC,EAAAgM,KAAAD,EAAAE,OAAAhc,EAAA,IAEAwS,EAAA,CACA,GAAAmJ,EAAAnJ,IAAAqJ,EAAApQ,QAAA+G,IAAA,EACA,MAGAmJ,GAAAnJ,GADA,eAAAA,GACAmJ,EAAAnJ,GAAAmJ,EAAAnJ,OAAAoF,QAAArF,IAEAoJ,EAAAnJ,GAAAmJ,EAAAnJ,GAAA,KAAAD,EAAAA,KAKAoJ,GAnBAA,2CChCA,YAsBAzc,GAAAD,QAAA,SAAAgd,GACA,MAAA,UAAAC,GACA,MAAAD,GAAA5V,MAAA,KAAA6V,8BCxBA,YAgBA,SAAA9E,GAAA7E,GACA,MAAA,mBAAAjK,EAAA9H,KAAA+R,GASA,QAAAI,GAAAJ,GACA,WAAA,KAAAA,EASA,QAAA+F,GAAA/F,GACA,MAAA,QAAAA,IAAAI,EAAAJ,IAAA,OAAAA,EAAA4J,cAAAxJ,EAAAJ,EAAA4J,cACA,kBAAA5J,GAAA4J,YAAA7D,UAAA/F,EAAA4J,YAAA7D,SAAA/F,GASA,QAAA8F,GAAA9F,GACA,MAAA,yBAAAjK,EAAA9H,KAAA+R,GASA,QAAA5B,GAAA4B,GACA,MAAA,mBAAA6J,WAAA7J,YAAA6J,UASA,QAAA1D,GAAAnG,GAOA,MALA,mBAAA8J,cAAAA,YAAA,OACAA,YAAAC,OAAA/J,GAEA,GAAAA,EAAA,QAAAA,EAAAoG,iBAAA0D,aAWA,QAAApC,GAAA1H,GACA,MAAA,gBAAAA,GASA,QAAAwH,GAAAxH,GACA,MAAA,gBAAAA,GASA,QAAAsG,GAAAtG,GACA,MAAA,QAAAA,GAAA,gBAAAA,GASA,QAAA4E,GAAA5E,GACA,GAAA,oBAAAjK,EAAA9H,KAAA+R,GACA,OAAA,CAGA,IAAAoB,GAAAvS,OAAAC,eAAAkR,EACA,OAAA,QAAAoB,GAAAA,IAAAvS,OAAAuS,UASA,QAAA2F,GAAA/G,GACA,MAAA,kBAAAjK,EAAA9H,KAAA+R,GASA,QAAAiG,GAAAjG,GACA,MAAA,kBAAAjK,EAAA9H,KAAA+R,GASA,QAAAkG,GAAAlG,GACA,MAAA,kBAAAjK,EAAA9H,KAAA+R,GASA,QAAAgK,GAAAhK,GACA,MAAA,sBAAAjK,EAAA9H,KAAA+R,GASA,QAAAgG,GAAAhG,GACA,MAAAsG,GAAAtG,IAAAgK,EAAAhK,EAAAiK,MASA,QAAA5D,GAAArG,GACA,MAAA,mBAAAkK,kBAAAlK,YAAAkK,iBASA,QAAAV,GAAAW,GACA,MAAAA,GAAAtP,QAAA,OAAA,IAAAA,QAAA,OAAA,IAkBA,QAAA6E,KACA,OAAA,mBAAAqJ,YAAA,gBAAAA,UAAAqB,SACA,iBAAArB,UAAAqB,SACA,OAAArB,UAAAqB,WAIA,mBAAArd,SACA,mBAAA4a,WAgBA,QAAA9K,GAAAwN,EAAAjH,GAEA,GAAA,OAAAiH,OAAA,KAAAA,EAUA,GALA,gBAAAA,KAEAA,GAAAA,IAGAxF,EAAAwF,GAEA,IAAA,GAAA5c,GAAA,EAAA6c,EAAAD,EAAAnc,OAAAT,EAAA6c,EAAA7c,IACA2V,EAAAnV,KAAA,KAAAoc,EAAA5c,GAAAA,EAAA4c,OAIA,KAAA,GAAApK,KAAAoK,GACAxb,OAAAuS,UAAAzH,eAAA1L,KAAAoc,EAAApK,IACAmD,EAAAnV,KAAA,KAAAoc,EAAApK,GAAAA,EAAAoK,GAuBA,QAAAxG,KAEA,QAAA0G,GAAAvK,EAAAC,GACA2E,EAAA4F,EAAAvK,KAAA2E,EAAA5E,GACAwK,EAAAvK,GAAA4D,EAAA2G,EAAAvK,GAAAD,GACA4E,EAAA5E,GACAwK,EAAAvK,GAAA4D,KAAA7D,GACA6E,EAAA7E,GACAwK,EAAAvK,GAAAD,EAAA8E,QAEA0F,EAAAvK,GAAAD,EAIA,IAAA,GAbAwK,MAaA/c,EAAA,EAAA6c,EAAA9Z,UAAAtC,OAAAT,EAAA6c,EAAA7c,IACAoP,EAAArM,UAAA/C,GAAA8c,EAEA,OAAAC,GAWA,QAAAnJ,GAAAxT,EAAA4c,EAAA/D,GAQA,MAPA7J,GAAA4N,EAAA,SAAAzK,EAAAC,GAEApS,EAAAoS,GADAyG,GAAA,kBAAA1G,GACAmB,EAAAnB,EAAA0G,GAEA1G,IAGAnS,EASA,QAAA6c,GAAAlV,GAIA,MAHA,SAAAA,EAAAmV,WAAA,KACAnV,EAAAA,EAAAsP,MAAA,IAEAtP,EAlUA,GAAA2L,GAAAxT,EAAA,kBAMAoI,EAAAlH,OAAAuS,UAAArL,QA+TApJ,GAAAD,SACAmY,QAAAA,EACAiB,cAAAA,EACAC,SAAAA,EACA3H,WAAAA,EACA+H,kBAAAA,EACAuB,SAAAA,EACAF,SAAAA,EACAlB,SAAAA,EACA1B,cAAAA,EACAxE,YAAAA,EACA2G,OAAAA,EACAd,OAAAA,EACAC,OAAAA,EACA8D,WAAAA,EACAhE,SAAAA,EACAK,kBAAAA,EACA3G,qBAAAA,EACA7C,QAAAA,EACAgH,MAAAA,EACAxC,OAAAA,EACAmI,KAAAA,EACAkB,SAAAA,+CC7VA,YAqBA,SAAAE,GAAAC,GACA,GAAAC,GAAAD,EAAA3c,MAEA,IAAA4c,EAAA,EAAA,EACA,KAAA,IAAAhd,OAAA,iDAKA,IAAAid,GAAAF,EAAA3R,QAAA,IAOA,QANA,IAAA6R,IAAAA,EAAAD,IAMAC,EAJAA,IAAAD,EACA,EACA,EAAAC,EAAA,GAMA,QAAAC,GAAAH,GACA,GAAAI,GAAAL,EAAAC,GACAE,EAAAE,EAAA,GACAC,EAAAD,EAAA,EACA,OAAA,IAAAF,EAAAG,GAAA,EAAAA,EAGA,QAAAC,GAAAN,EAAAE,EAAAG,GACA,MAAA,IAAAH,EAAAG,GAAA,EAAAA,EAGA,QAAAE,GAAAP,GACA,GAAAQ,GAcA5d,EAbAwd,EAAAL,EAAAC,GACAE,EAAAE,EAAA,GACAC,EAAAD,EAAA,GAEAtB,EAAA,GAAA2B,GAAAH,EAAAN,EAAAE,EAAAG,IAEAK,EAAA,EAGAT,EAAAI,EAAA,EACAH,EAAA,EACAA,CAGA,KAAAtd,EAAA,EAAAA,EAAAqd,EAAArd,GAAA,EACA4d,EACAG,EAAAX,EAAAF,WAAAld,KAAA,GACA+d,EAAAX,EAAAF,WAAAld,EAAA,KAAA,GACA+d,EAAAX,EAAAF,WAAAld,EAAA,KAAA,EACA+d,EAAAX,EAAAF,WAAAld,EAAA,IACAkc,EAAA4B,KAAAF,GAAA,GAAA,IACA1B,EAAA4B,KAAAF,GAAA,EAAA,IACA1B,EAAA4B,KAAA,IAAAF,CAmBA,OAhBA,KAAAH,IACAG,EACAG,EAAAX,EAAAF,WAAAld,KAAA,EACA+d,EAAAX,EAAAF,WAAAld,EAAA,KAAA,EACAkc,EAAA4B,KAAA,IAAAF,GAGA,IAAAH,IACAG,EACAG,EAAAX,EAAAF,WAAAld,KAAA,GACA+d,EAAAX,EAAAF,WAAAld,EAAA,KAAA,EACA+d,EAAAX,EAAAF,WAAAld,EAAA,KAAA,EACAkc,EAAA4B,KAAAF,GAAA,EAAA,IACA1B,EAAA4B,KAAA,IAAAF,GAGA1B,EAGA,QAAA8B,GAAAC,GACA,MAAAC,GAAAD,GAAA,GAAA,IACAC,EAAAD,GAAA,GAAA,IACAC,EAAAD,GAAA,EAAA,IACAC,EAAA,GAAAD,GAGA,QAAAE,GAAAC,EAAAC,EAAAC,GAGA,IAAA,GAFAV,GACAW,KACAve,EAAAqe,EAAAre,EAAAse,EAAAte,GAAA,EACA4d,GACAQ,EAAApe,IAAA,GAAA,WACAoe,EAAApe,EAAA,IAAA,EAAA,QACA,IAAAoe,EAAApe,EAAA,IACAue,EAAAnY,KAAA4X,EAAAJ,GAEA,OAAAW,GAAAhF,KAAA,IAGA,QAAAiF,GAAAJ,GAQA,IAAA,GAPAR,GACAP,EAAAe,EAAA3d,OACAge,EAAApB,EAAA,EACAjE,KAIApZ,EAAA,EAAA0e,EAAArB,EAAAoB,EAAAze,EAAA0e,EAAA1e,GAHA,MAIAoZ,EAAAhT,KAAA+X,EAAAC,EAAApe,EAAAA,EAJA,MAIA0e,EAAAA,EAAA1e,EAJA,OAyBA,OAjBA,KAAAye,GACAb,EAAAQ,EAAAf,EAAA,GACAjE,EAAAhT,KACA8X,EAAAN,GAAA,GACAM,EAAAN,GAAA,EAAA,IACA,OAEA,IAAAa,IACAb,GAAAQ,EAAAf,EAAA,IAAA,GAAAe,EAAAf,EAAA,GACAjE,EAAAhT,KACA8X,EAAAN,GAAA,IACAM,EAAAN,GAAA,EAAA,IACAM,EAAAN,GAAA,EAAA,IACA,MAIAxE,EAAAG,KAAA,IAlJAta,EAAAse,WAAAA,EACAte,EAAA0e,YAAAA,EACA1e,EAAAuf,cAAAA,CAOA,KAAA,GALAN,MACAH,KACAF,EAAA,mBAAAc,YAAAA,WAAAjQ,MAEApO,EAAA,mEACAN,EAAA,EAAAqd,EAAA/c,EAAAG,OAAAT,EAAAqd,IAAArd,EACAke,EAAAle,GAAAM,EAAAN,GACA+d,EAAAzd,EAAA4c,WAAAld,IAAAA,CAKA+d,GAAA,IAAAb,WAAA,IAAA,GACAa,EAAA,IAAAb,WAAA,IAAA,uDCXA,YAuDA,SAAA0B,KACA,MAAAvW,GAAAwW,oBACA,WACA,WAGA,QAAAC,GAAAC,EAAAte,GACA,GAAAme,IAAAne,EACA,KAAA,IAAAue,YAAA,6BAcA,OAZA3W,GAAAwW,qBAEAE,EAAA,GAAAJ,YAAAle,GACAse,EAAA5d,UAAAkH,EAAAsL,YAGA,OAAAoL,IACAA,EAAA,GAAA1W,GAAA5H,IAEAse,EAAAte,OAAAA,GAGAse,EAaA,QAAA1W,GAAA4W,EAAAC,EAAAze,GACA,KAAA4H,EAAAwW,qBAAApf,eAAA4I,IACA,MAAA,IAAAA,GAAA4W,EAAAC,EAAAze,EAIA,IAAA,gBAAAwe,GAAA,CACA,GAAA,gBAAAC,GACA,KAAA,IAAA7e,OACA,oEAGA,OAAA8e,GAAA1f,KAAAwf,GAEA,MAAAG,GAAA3f,KAAAwf,EAAAC,EAAAze,GAWA,QAAA2e,GAAAL,EAAAjK,EAAAoK,EAAAze,GACA,GAAA,gBAAAqU,GACA,KAAA,IAAAL,WAAA,wCAGA,OAAA,mBAAA4H,cAAAvH,YAAAuH,aACAgD,EAAAN,EAAAjK,EAAAoK,EAAAze,GAGA,gBAAAqU,GACAwK,EAAAP,EAAAjK,EAAAoK,GAGAK,EAAAR,EAAAjK,GA4BA,QAAA0K,GAAAC,GACA,GAAA,gBAAAA,GACA,KAAA,IAAAhL,WAAA,mCACA,IAAAgL,EAAA,EACA,KAAA,IAAAT,YAAA,wCAIA,QAAAU,GAAAX,EAAAU,EAAAE,EAAAvX,GAEA,MADAoX,GAAAC,GACAA,GAAA,EACAX,EAAAC,EAAAU,OAEAzc,KAAA2c,EAIA,gBAAAvX,GACA0W,EAAAC,EAAAU,GAAAE,KAAAA,EAAAvX,GACA0W,EAAAC,EAAAU,GAAAE,KAAAA,GAEAb,EAAAC,EAAAU,GAWA,QAAAN,GAAAJ,EAAAU,GAGA,GAFAD,EAAAC,GACAV,EAAAD,EAAAC,EAAAU,EAAA,EAAA,EAAA,EAAAG,EAAAH,KACApX,EAAAwW,oBACA,IAAA,GAAA7e,GAAA,EAAAA,EAAAyf,IAAAzf,EACA+e,EAAA/e,GAAA,CAGA,OAAA+e,GAgBA,QAAAO,GAAAP,EAAAc,EAAAzX,GAKA,GAJA,gBAAAA,IAAA,KAAAA,IACAA,EAAA,SAGAC,EAAAyX,WAAA1X,GACA,KAAA,IAAAqM,WAAA,6CAGA,IAAAhU,GAAA,EAAA8c,EAAAsC,EAAAzX,EACA2W,GAAAD,EAAAC,EAAAte,EAEA,IAAAsf,GAAAhB,EAAArF,MAAAmG,EAAAzX,EASA,OAPA2X,KAAAtf,IAIAse,EAAAA,EAAA1H,MAAA,EAAA0I,IAGAhB,EAGA,QAAAiB,GAAAjB,EAAAkB,GACA,GAAAxf,GAAAwf,EAAAxf,OAAA,EAAA,EAAA,EAAAmf,EAAAK,EAAAxf,OACAse,GAAAD,EAAAC,EAAAte,EACA,KAAA,GAAAT,GAAA,EAAAA,EAAAS,EAAAT,GAAA,EACA+e,EAAA/e,GAAA,IAAAigB,EAAAjgB,EAEA,OAAA+e,GAGA,QAAAM,GAAAN,EAAAkB,EAAAC,EAAAzf,GAGA,GAFAwf,EAAA1C,WAEA2C,EAAA,GAAAD,EAAA1C,WAAA2C,EACA,KAAA,IAAAlB,YAAA,4BAGA,IAAAiB,EAAA1C,WAAA2C,GAAAzf,GAAA,GACA,KAAA,IAAAue,YAAA,4BAmBA,OAfAiB,OADAjd,KAAAkd,OAAAld,KAAAvC,EACA,GAAAke,YAAAsB,OACAjd,KAAAvC,EACA,GAAAke,YAAAsB,EAAAC,GAEA,GAAAvB,YAAAsB,EAAAC,EAAAzf,GAGA4H,EAAAwW,qBAEAE,EAAAkB,EACAlB,EAAA5d,UAAAkH,EAAAsL,WAGAoL,EAAAiB,EAAAjB,EAAAkB,GAEAlB,EAGA,QAAAQ,GAAAR,EAAAnC,GACA,GAAAvU,EAAAiQ,SAAAsE,GAAA,CACA,GAAAS,GAAA,EAAAuC,EAAAhD,EAAAnc,OAGA,OAFAse,GAAAD,EAAAC,EAAA1B,GAEA,IAAA0B,EAAAte,OACAse,GAGAnC,EAAAuD,KAAApB,EAAA,EAAA,EAAA1B,GACA0B,GAGA,GAAAnC,EAAA,CACA,GAAA,mBAAAP,cACAO,EAAAjE,iBAAA0D,cAAA,UAAAO,GACA,MAAA,gBAAAA,GAAAnc,QAAA2f,EAAAxD,EAAAnc,QACAqe,EAAAC,EAAA,GAEAiB,EAAAjB,EAAAnC,EAGA,IAAA,WAAAA,EAAA1T,MAAAkO,EAAAwF,EAAA/a,MACA,MAAAme,GAAAjB,EAAAnC,EAAA/a,MAIA,KAAA,IAAA4S,WAAA,sFAGA,QAAAmL,GAAAnf,GAGA,GAAAA,GAAAme,IACA,KAAA,IAAAI,YAAA,0DACAJ,IAAAtW,SAAA,IAAA,SAEA,OAAA,GAAA7H,EAGA,QAAA4f,GAAA5f,GAIA,OAHAA,GAAAA,IACAA,EAAA,GAEA4H,EAAAqX,OAAAjf,GA+EA,QAAA8c,GAAAsC,EAAAzX,GACA,GAAAC,EAAAiQ,SAAAuH,GACA,MAAAA,GAAApf,MAEA,IAAA,mBAAA4b,cAAA,kBAAAA,aAAAC,SACAD,YAAAC,OAAAuD,IAAAA,YAAAxD,cACA,MAAAwD,GAAAtC,UAEA,iBAAAsC,KACAA,EAAA,GAAAA,EAGA,IAAAxC,GAAAwC,EAAApf,MACA,IAAA,IAAA4c,EAAA,MAAA,EAIA,KADA,GAAAiD,IAAA,IAEA,OAAAlY,GACA,IAAA,QACA,IAAA,SACA,IAAA,SACA,MAAAiV,EACA,KAAA,OACA,IAAA,QACA,SAAAra,GACA,MAAAud,GAAAV,GAAApf,MACA,KAAA,OACA,IAAA,QACA,IAAA,UACA,IAAA,WACA,MAAA,GAAA4c,CACA,KAAA,MACA,MAAAA,KAAA,CACA,KAAA,SACA,MAAAmD,GAAAX,GAAApf,MACA,SACA,GAAA6f,EAAA,MAAAC,GAAAV,GAAApf,MACA2H,IAAA,GAAAA,GAAAqK,cACA6N,GAAA,GAMA,QAAAG,GAAArY,EAAAiW,EAAAC,GACA,GAAAgC,IAAA,CAcA,SALAtd,KAAAqb,GAAAA,EAAA,KACAA,EAAA,GAIAA,EAAA5e,KAAAgB,OACA,MAAA,EAOA,SAJAuC,KAAAsb,GAAAA,EAAA7e,KAAAgB,UACA6d,EAAA7e,KAAAgB,QAGA6d,GAAA,EACA,MAAA,EAOA,IAHAA,KAAA,EACAD,KAAA,EAEAC,GAAAD,EACA,MAAA,EAKA,KAFAjW,IAAAA,EAAA,UAGA,OAAAA,GACA,IAAA,MACA,MAAAsY,GAAAjhB,KAAA4e,EAAAC,EAEA,KAAA,OACA,IAAA,QACA,MAAAqC,GAAAlhB,KAAA4e,EAAAC,EAEA,KAAA,QACA,MAAAsC,GAAAnhB,KAAA4e,EAAAC,EAEA,KAAA,SACA,IAAA,SACA,MAAAuC,GAAAphB,KAAA4e,EAAAC,EAEA,KAAA,SACA,MAAAwC,GAAArhB,KAAA4e,EAAAC,EAEA,KAAA,OACA,IAAA,QACA,IAAA,UACA,IAAA,WACA,MAAAyC,GAAAthB,KAAA4e,EAAAC,EAEA,SACA,GAAAgC,EAAA,KAAA,IAAA7L,WAAA,qBAAArM,EACAA,IAAAA,EAAA,IAAAqK,cACA6N,GAAA,GASA,QAAAU,GAAAhE,EAAAnd,EAAAohB,GACA,GAAAjhB,GAAAgd,EAAAnd,EACAmd,GAAAnd,GAAAmd,EAAAiE,GACAjE,EAAAiE,GAAAjhB,EAmIA,QAAAkhB,GAAAvI,EAAApG,EAAA2N,EAAA9X,EAAA+Y,GAEA,GAAA,IAAAxI,EAAAlY,OAAA,OAAA,CAmBA,IAhBA,gBAAAyf,IACA9X,EAAA8X,EACAA,EAAA,GACAA,EAAA,WACAA,EAAA,WACAA,GAAA,aACAA,GAAA,YAEAA,GAAAA,EACAkB,MAAAlB,KAEAA,EAAAiB,EAAA,EAAAxI,EAAAlY,OAAA,GAIAyf,EAAA,IAAAA,EAAAvH,EAAAlY,OAAAyf,GACAA,GAAAvH,EAAAlY,OAAA,CACA,GAAA0gB,EAAA,OAAA,CACAjB,GAAAvH,EAAAlY,OAAA,MACA,IAAAyf,EAAA,EAAA,CACA,IAAAiB,EACA,OAAA,CADAjB,GAAA,EAUA,GALA,gBAAA3N,KACAA,EAAAlK,EAAA+W,KAAA7M,EAAAnK,IAIAC,EAAAiQ,SAAA/F,GAEA,MAAA,KAAAA,EAAA9R,QACA,EAEA4gB,EAAA1I,EAAApG,EAAA2N,EAAA9X,EAAA+Y,EACA,IAAA,gBAAA5O,GAEA,MADAA,IAAA,IACAlK,EAAAwW,qBACA,kBAAAF,YAAAhL,UAAAlI,QACA0V,EACAxC,WAAAhL,UAAAlI,QAAAjL,KAAAmY,EAAApG,EAAA2N,GAEAvB,WAAAhL,UAAA2N,YAAA9gB,KAAAmY,EAAApG,EAAA2N,GAGAmB,EAAA1I,GAAApG,GAAA2N,EAAA9X,EAAA+Y,EAGA,MAAA,IAAA1M,WAAA,wCAGA,QAAA4M,GAAAnF,EAAA3J,EAAA2N,EAAA9X,EAAA+Y,GAmBA,QAAA9O,GAAAkP,EAAAvhB,GACA,MAAA,KAAAwhB,EACAD,EAAAvhB,GAEAuhB,EAAAE,aAAAzhB,EAAAwhB,GAtBA,GAAAA,GAAA,EACAE,EAAAxF,EAAAzb,OACAkhB,EAAApP,EAAA9R,MAEA,QAAAuC,KAAAoF,IAEA,UADAA,EAAAwZ,OAAAxZ,GAAAqK,gBACA,UAAArK,GACA,YAAAA,GAAA,aAAAA,GAAA,CACA,GAAA8T,EAAAzb,OAAA,GAAA8R,EAAA9R,OAAA,EACA,OAAA,CAEA+gB,GAAA,EACAE,GAAA,EACAC,GAAA,EACAzB,GAAA,EAYA,GAAAlgB,EACA,IAAAmhB,EAAA,CACA,GAAAU,IAAA,CACA,KAAA7hB,EAAAkgB,EAAAlgB,EAAA0hB,EAAA1hB,IACA,GAAAqS,EAAA6J,EAAAlc,KAAAqS,EAAAE,GAAA,IAAAsP,EAAA,EAAA7hB,EAAA6hB,IAEA,IADA,IAAAA,IAAAA,EAAA7hB,GACAA,EAAA6hB,EAAA,IAAAF,EAAA,MAAAE,GAAAL,OAEA,IAAAK,IAAA7hB,GAAAA,EAAA6hB,GACAA,GAAA,MAKA,KADA3B,EAAAyB,EAAAD,IAAAxB,EAAAwB,EAAAC,GACA3hB,EAAAkgB,EAAAlgB,GAAA,EAAAA,IAAA,CAEA,IAAA,GADA8hB,IAAA,EACAC,EAAA,EAAAA,EAAAJ,EAAAI,IACA,GAAA1P,EAAA6J,EAAAlc,EAAA+hB,KAAA1P,EAAAE,EAAAwP,GAAA,CACAD,GAAA,CACA,OAGA,GAAAA,EAAA,MAAA9hB,GAIA,OAAA,EAeA,QAAAgiB,GAAAT,EAAA1B,EAAAoC,EAAAxhB,GACAwhB,EAAAC,OAAAD,IAAA,CACA,IAAAE,GAAAZ,EAAA9gB,OAAAwhB,CACAxhB,IAGAA,EAAAyhB,OAAAzhB,IACA0hB,IACA1hB,EAAA0hB,GAJA1hB,EAAA0hB,CASA,IAAAC,GAAAvC,EAAApf,MACA,IAAA2hB,EAAA,GAAA,EAAA,KAAA,IAAA3N,WAAA,qBAEAhU,GAAA2hB,EAAA,IACA3hB,EAAA2hB,EAAA,EAEA,KAAA,GAAApiB,GAAA,EAAAA,EAAAS,IAAAT,EAAA,CACA,GAAA2b,GAAA9M,SAAAgR,EAAA7D,OAAA,EAAAhc,EAAA,GAAA,GACA,IAAAohB,MAAAzF,GAAA,MAAA3b,EACAuhB,GAAAU,EAAAjiB,GAAA2b,EAEA,MAAA3b,GAGA,QAAAqiB,GAAAd,EAAA1B,EAAAoC,EAAAxhB,GACA,MAAA6hB,GAAA/B,EAAAV,EAAA0B,EAAA9gB,OAAAwhB,GAAAV,EAAAU,EAAAxhB,GAGA,QAAA8hB,GAAAhB,EAAA1B,EAAAoC,EAAAxhB,GACA,MAAA6hB,GAAAE,EAAA3C,GAAA0B,EAAAU,EAAAxhB,GAGA,QAAAgiB,GAAAlB,EAAA1B,EAAAoC,EAAAxhB,GACA,MAAA8hB,GAAAhB,EAAA1B,EAAAoC,EAAAxhB,GAGA,QAAAiiB,GAAAnB,EAAA1B,EAAAoC,EAAAxhB,GACA,MAAA6hB,GAAA9B,EAAAX,GAAA0B,EAAAU,EAAAxhB,GAGA,QAAAkiB,GAAApB,EAAA1B,EAAAoC,EAAAxhB,GACA,MAAA6hB,GAAAM,EAAA/C,EAAA0B,EAAA9gB,OAAAwhB,GAAAV,EAAAU,EAAAxhB,GAkFA,QAAAqgB,GAAAS,EAAAlD,EAAAC,GACA,MAAA,KAAAD,GAAAC,IAAAiD,EAAA9gB,OACAoiB,EAAArE,cAAA+C,GAEAsB,EAAArE,cAAA+C,EAAAlK,MAAAgH,EAAAC,IAIA,QAAAqC,GAAAY,EAAAlD,EAAAC,GACAA,EAAAwE,KAAAC,IAAAxB,EAAA9gB,OAAA6d,EAIA,KAHA,GAAA0E,MAEAhjB,EAAAqe,EACAre,EAAAse,GAAA,CACA,GAAA2E,GAAA1B,EAAAvhB,GACAkjB,EAAA,KACAC,EAAAF,EAAA,IAAA,EACAA,EAAA,IAAA,EACAA,EAAA,IAAA,EACA,CAEA,IAAAjjB,EAAAmjB,GAAA7E,EAAA,CACA,GAAA8E,GAAAC,EAAAC,EAAAC,CAEA,QAAAJ,GACA,IAAA,GACAF,EAAA,MACAC,EAAAD,EAEA,MACA,KAAA,GACAG,EAAA7B,EAAAvhB,EAAA,GACA,MAAA,IAAAojB,KACAG,GAAA,GAAAN,IAAA,EAAA,GAAAG,GACA,MACAF,EAAAK,EAGA,MACA,KAAA,GACAH,EAAA7B,EAAAvhB,EAAA,GACAqjB,EAAA9B,EAAAvhB,EAAA,GACA,MAAA,IAAAojB,IAAA,MAAA,IAAAC,KACAE,GAAA,GAAAN,IAAA,IAAA,GAAAG,IAAA,EAAA,GAAAC,GACA,OAAAE,EAAA,OAAAA,EAAA,SACAL,EAAAK,EAGA,MACA,KAAA,GACAH,EAAA7B,EAAAvhB,EAAA,GACAqjB,EAAA9B,EAAAvhB,EAAA,GACAsjB,EAAA/B,EAAAvhB,EAAA,GACA,MAAA,IAAAojB,IAAA,MAAA,IAAAC,IAAA,MAAA,IAAAC,KACAC,GAAA,GAAAN,IAAA,IAAA,GAAAG,IAAA,IAAA,GAAAC,IAAA,EAAA,GAAAC,GACA,OAAAC,EAAA,UACAL,EAAAK,IAMA,OAAAL,GAGAA,EAAA,MACAC,EAAA,GACAD,EAAA,QAEAA,GAAA,MACAF,EAAA5c,KAAA8c,IAAA,GAAA,KAAA,OACAA,EAAA,MAAA,KAAAA,GAGAF,EAAA5c,KAAA8c,GACAljB,GAAAmjB,EAGA,MAAAK,GAAAR,GAQA,QAAAQ,GAAAC,GACA,GAAApG,GAAAoG,EAAAhjB,MACA,IAAA4c,GAAAqG,EACA,MAAA9B,QAAA+B,aAAAtd,MAAAub,OAAA6B,EAMA,KAFA,GAAAT,GAAA,GACAhjB,EAAA,EACAA,EAAAqd,GACA2F,GAAApB,OAAA+B,aAAAtd,MACAub,OACA6B,EAAApM,MAAArX,EAAAA,GAAA0jB,GAGA,OAAAV,GAGA,QAAApC,GAAAW,EAAAlD,EAAAC,GACA,GAAAsF,GAAA,EACAtF,GAAAwE,KAAAC,IAAAxB,EAAA9gB,OAAA6d,EAEA,KAAA,GAAAte,GAAAqe,EAAAre,EAAAse,IAAAte,EACA4jB,GAAAhC,OAAA+B,aAAA,IAAApC,EAAAvhB,GAEA,OAAA4jB,GAGA,QAAA/C,GAAAU,EAAAlD,EAAAC,GACA,GAAAsF,GAAA,EACAtF,GAAAwE,KAAAC,IAAAxB,EAAA9gB,OAAA6d,EAEA,KAAA,GAAAte,GAAAqe,EAAAre,EAAAse,IAAAte,EACA4jB,GAAAhC,OAAA+B,aAAApC,EAAAvhB,GAEA,OAAA4jB,GAGA,QAAAlD,GAAAa,EAAAlD,EAAAC,GACA,GAAAjB,GAAAkE,EAAA9gB,SAEA4d,GAAAA,EAAA,KAAAA,EAAA,KACAC,GAAAA,EAAA,GAAAA,EAAAjB,KAAAiB,EAAAjB,EAGA,KAAA,GADAwG,GAAA,GACA7jB,EAAAqe,EAAAre,EAAAse,IAAAte,EACA6jB,GAAAC,EAAAvC,EAAAvhB,GAEA,OAAA6jB,GAGA,QAAA9C,GAAAQ,EAAAlD,EAAAC,GAGA,IAAA,GAFAyF,GAAAxC,EAAAlK,MAAAgH,EAAAC,GACA0E,EAAA,GACAhjB,EAAA,EAAAA,EAAA+jB,EAAAtjB,OAAAT,GAAA,EACAgjB,GAAApB,OAAA+B,aAAAI,EAAA/jB,GAAA,IAAA+jB,EAAA/jB,EAAA;uFAEA,OAAAgjB,GA0CA,QAAAgB,GAAA/B,EAAAgC,EAAAxjB,GACA,GAAAwhB,EAAA,GAAA,GAAAA,EAAA,EAAA,KAAA,IAAAjD,YAAA,qBACA,IAAAiD,EAAAgC,EAAAxjB,EAAA,KAAA,IAAAue,YAAA,yCA+JA,QAAAkF,GAAA3C,EAAAzM,EAAAmN,EAAAgC,EAAAE,EAAApB,GACA,IAAA1a,EAAAiQ,SAAAiJ,GAAA,KAAA,IAAA9M,WAAA,8CACA,IAAAK,EAAAqP,GAAArP,EAAAiO,EAAA,KAAA,IAAA/D,YAAA,oCACA,IAAAiD,EAAAgC,EAAA1C,EAAA9gB,OAAA,KAAA,IAAAue,YAAA,sBAkDA,QAAAoF,GAAA7C,EAAAzM,EAAAmN,EAAAoC,GACAvP,EAAA,IAAAA,EAAA,MAAAA,EAAA,EACA,KAAA,GAAA9U,GAAA,EAAA+hB,EAAAe,KAAAC,IAAAxB,EAAA9gB,OAAAwhB,EAAA,GAAAjiB,EAAA+hB,IAAA/hB,EACAuhB,EAAAU,EAAAjiB,IAAA8U,EAAA,KAAA,GAAAuP,EAAArkB,EAAA,EAAAA,MACA,GAAAqkB,EAAArkB,EAAA,EAAAA,GA8BA,QAAAskB,GAAA/C,EAAAzM,EAAAmN,EAAAoC,GACAvP,EAAA,IAAAA,EAAA,WAAAA,EAAA,EACA,KAAA,GAAA9U,GAAA,EAAA+hB,EAAAe,KAAAC,IAAAxB,EAAA9gB,OAAAwhB,EAAA,GAAAjiB,EAAA+hB,IAAA/hB,EACAuhB,EAAAU,EAAAjiB,GAAA8U,IAAA,GAAAuP,EAAArkB,EAAA,EAAAA,GAAA,IAmJA,QAAAukB,GAAAhD,EAAAzM,EAAAmN,EAAAgC,EAAAE,EAAApB,GACA,GAAAd,EAAAgC,EAAA1C,EAAA9gB,OAAA,KAAA,IAAAue,YAAA,qBACA,IAAAiD,EAAA,EAAA,KAAA,IAAAjD,YAAA,sBAGA,QAAAwF,GAAAjD,EAAAzM,EAAAmN,EAAAoC,EAAAI,GAKA,MAJAA,IACAF,EAAAhD,EAAAzM,EAAAmN,EAAA,EAAA,uBAAA,uBAEAyC,EAAAhL,MAAA6H,EAAAzM,EAAAmN,EAAAoC,EAAA,GAAA,GACApC,EAAA,EAWA,QAAA0C,GAAApD,EAAAzM,EAAAmN,EAAAoC,EAAAI,GAKA,MAJAA,IACAF,EAAAhD,EAAAzM,EAAAmN,EAAA,EAAA,wBAAA,wBAEAyC,EAAAhL,MAAA6H,EAAAzM,EAAAmN,EAAAoC,EAAA,GAAA,GACApC,EAAA,EAgIA,QAAA2C,GAAAlI,GAIA,GAFAA,EAAAmI,EAAAnI,GAAAtP,QAAA0X,GAAA,IAEApI,EAAAjc,OAAA,EAAA,MAAA,EAEA,MAAAic,EAAAjc,OAAA,GAAA,GACAic,GAAA,GAEA,OAAAA,GAGA,QAAAmI,GAAAnI,GACA,MAAAA,GAAAX,KAAAW,EAAAX,OACAW,EAAAtP,QAAA,aAAA,IAGA,QAAA0W,GAAAjkB,GACA,MAAAA,GAAA,GAAA,IAAAA,EAAAyI,SAAA,IACAzI,EAAAyI,SAAA,IAGA,QAAAiY,GAAAV,EAAAkF,GACAA,EAAAA,GAAAC,EAAAA,CAMA,KAAA,GALA9B,GACAziB,EAAAof,EAAApf,OACAwkB,EAAA,KACAlB,KAEA/jB,EAAA,EAAAA,EAAAS,IAAAT,EAAA,CAIA,IAHAkjB,EAAArD,EAAA3C,WAAAld,IAGA,OAAAkjB,EAAA,MAAA,CAEA,IAAA+B,EAAA,CAEA,GAAA/B,EAAA,MAAA,EAEA6B,GAAA,IAAA,GAAAhB,EAAA3d,KAAA,IAAA,IAAA,IACA,UACA,GAAApG,EAAA,IAAAS,EAAA,EAEAskB,GAAA,IAAA,GAAAhB,EAAA3d,KAAA,IAAA,IAAA,IACA,UAIA6e,EAAA/B,CAEA,UAIA,GAAAA,EAAA,MAAA,EACA6B,GAAA,IAAA,GAAAhB,EAAA3d,KAAA,IAAA,IAAA,KACA6e,EAAA/B,CACA,UAIAA,EAAA,OAAA+B,EAAA,OAAA,GAAA/B,EAAA,WACA+B,KAEAF,GAAA,IAAA,GAAAhB,EAAA3d,KAAA,IAAA,IAAA,IAMA,IAHA6e,EAAA,KAGA/B,EAAA,IAAA,CACA,IAAA6B,GAAA,GAAA,EAAA,KACAhB,GAAA3d,KAAA8c,OACA,IAAAA,EAAA,KAAA,CACA,IAAA6B,GAAA,GAAA,EAAA,KACAhB,GAAA3d,KACA8c,GAAA,EAAA,IACA,GAAAA,EAAA,SAEA,IAAAA,EAAA,MAAA,CACA,IAAA6B,GAAA,GAAA,EAAA,KACAhB,GAAA3d,KACA8c,GAAA,GAAA,IACAA,GAAA,EAAA,GAAA,IACA,GAAAA,EAAA,SAEA,CAAA,KAAAA,EAAA,SASA,KAAA,IAAA7iB,OAAA,qBARA,KAAA0kB,GAAA,GAAA,EAAA,KACAhB,GAAA3d,KACA8c,GAAA,GAAA,IACAA,GAAA,GAAA,GAAA,IACAA,GAAA,EAAA,GAAA,IACA,GAAAA,EAAA,MAOA,MAAAa,GAGA,QAAAvB,GAAA9F,GAEA,IAAA,GADAwI,MACAllB,EAAA,EAAAA,EAAA0c,EAAAjc,SAAAT,EAEAklB,EAAA9e,KAAA,IAAAsW,EAAAQ,WAAAld,GAEA,OAAAklB,GAGA,QAAAtC,GAAAlG,EAAAqI,GAGA,IAAA,GAFA9kB,GAAAklB,EAAAC,EACAF,KACAllB,EAAA,EAAAA,EAAA0c,EAAAjc,WACAskB,GAAA,GAAA,KADA/kB,EAGAC,EAAAyc,EAAAQ,WAAAld,GACAmlB,EAAAllB,GAAA,EACAmlB,EAAAnlB,EAAA,IACAilB,EAAA9e,KAAAgf,GACAF,EAAA9e,KAAA+e,EAGA,OAAAD,GAGA,QAAA1E,GAAA9D,GACA,MAAAmG,GAAAlF,YAAAiH,EAAAlI,IAGA,QAAA4F,GAAA+C,EAAAC,EAAArD,EAAAxhB,GACA,IAAA,GAAAT,GAAA,EAAAA,EAAAS,KACAT,EAAAiiB,GAAAqD,EAAA7kB,QAAAT,GAAAqlB,EAAA5kB,UADAT,EAEAslB,EAAAtlB,EAAAiiB,GAAAoD,EAAArlB,EAEA,OAAAA,GAGA,QAAAogB,GAAA7N,GACA,MAAAA,KAAAA,EAjvDA,GAAAsQ,GAAA3iB,EAAA,aACAwkB,EAAAxkB,EAAA,WACAkX,EAAAlX,EAAA,UAEAjB,GAAAoJ,OAAAA,EACApJ,EAAAohB,WAAAA,EACAphB,EAAAsmB,kBAAA,GA0BAld,EAAAwW,wBAAA7b,KAAAzD,EAAAsf,oBACAtf,EAAAsf,oBAQA,WACA,IACA,GAAA3C,GAAA,GAAAyC,YAAA,EAEA,OADAzC,GAAA/a,WAAAA,UAAAwd,WAAAhL,UAAA6R,IAAA,WAAA,MAAA,MACA,KAAAtJ,EAAAsJ,OACA,kBAAAtJ,GAAAuJ,UACA,IAAAvJ,EAAAuJ,SAAA,EAAA,GAAAlI,WACA,MAAA3d,GACA,OAAA,MAVAX,EAAA2f,WAAAA,IAkEAvW,EAAAqd,SAAA,KAGArd,EAAAsd,SAAA,SAAAzJ,GAEA,MADAA,GAAA/a,UAAAkH,EAAAsL,UACAuI,GA2BA7T,EAAA+W,KAAA,SAAAtK,EAAAoK,EAAAze,GACA,MAAA2e,GAAA,KAAAtK,EAAAoK,EAAAze,IAGA4H,EAAAwW,sBACAxW,EAAAsL,UAAAxS,UAAAwd,WAAAhL,UACAtL,EAAAlH,UAAAwd,WACA,mBAAAiH,SAAAA,OAAAC,SACAxd,EAAAud,OAAAC,WAAAxd,GAEAjH,OAAA0kB,eAAAzd,EAAAud,OAAAC,SACA/Q,MAAA,KACAiR,cAAA,KAiCA1d,EAAAqX,MAAA,SAAAD,EAAAE,EAAAvX,GACA,MAAAsX,GAAA,KAAAD,EAAAE,EAAAvX,IAiBAC,EAAA8W,YAAA,SAAAM,GACA,MAAAN,GAAA,KAAAM,IAKApX,EAAA2d,gBAAA,SAAAvG,GACA,MAAAN,GAAA,KAAAM,IAiHApX,EAAAiQ,SAAA,SAAA0E,GACA,QAAA,MAAAA,IAAAA,EAAAiJ,YAGA5d,EAAA6d,QAAA,SAAA9lB,EAAA4c,GACA,IAAA3U,EAAAiQ,SAAAlY,KAAAiI,EAAAiQ,SAAA0E,GACA,KAAA,IAAAvI,WAAA,4BAGA,IAAArU,IAAA4c,EAAA,MAAA,EAKA,KAAA,GAHAmJ,GAAA/lB,EAAAK,OACA2lB,EAAApJ,EAAAvc,OAEAT,EAAA,EAAAqd,EAAAyF,KAAAC,IAAAoD,EAAAC,GAAApmB,EAAAqd,IAAArd,EACA,GAAAI,EAAAJ,KAAAgd,EAAAhd,GAAA,CACAmmB,EAAA/lB,EAAAJ,GACAomB,EAAApJ,EAAAhd,EACA,OAIA,MAAAmmB,GAAAC,GAAA,EACAA,EAAAD,EAAA,EACA,GAGA9d,EAAAyX,WAAA,SAAA1X,GACA,OAAAwZ,OAAAxZ,GAAAqK,eACA,IAAA,MACA,IAAA,OACA,IAAA,QACA,IAAA,QACA,IAAA,SACA,IAAA,SACA,IAAA,SACA,IAAA,OACA,IAAA,QACA,IAAA,UACA,IAAA,WACA,OAAA,CACA,SACA,OAAA,IAIApK,EAAAuP,OAAA,SAAAyO,EAAA5lB,GACA,IAAA2W,EAAAiP,GACA,KAAA,IAAA5R,WAAA,8CAGA,IAAA,IAAA4R,EAAA5lB,OACA,MAAA4H,GAAAqX,MAAA,EAGA,IAAA1f,EACA,QAAAgD,KAAAvC,EAEA,IADAA,EAAA,EACAT,EAAA,EAAAA,EAAAqmB,EAAA5lB,SAAAT,EACAS,GAAA4lB,EAAArmB,GAAAS,MAIA,IAAAkY,GAAAtQ,EAAA8W,YAAA1e,GACA6lB,EAAA,CACA,KAAAtmB,EAAA,EAAAA,EAAAqmB,EAAA5lB,SAAAT,EAAA,CACA,GAAAuhB,GAAA8E,EAAArmB,EACA,KAAAqI,EAAAiQ,SAAAiJ,GACA,KAAA,IAAA9M,WAAA,8CAEA8M,GAAApB,KAAAxH,EAAA2N,GACAA,GAAA/E,EAAA9gB,OAEA,MAAAkY,IA8CAtQ,EAAAkV,WAAAA,EA0EAlV,EAAAsL,UAAAsS,WAAA,EAQA5d,EAAAsL,UAAA4S,OAAA,WACA,GAAAlJ,GAAA5d,KAAAgB,MACA,IAAA4c,EAAA,GAAA,EACA,KAAA,IAAA2B,YAAA,4CAEA,KAAA,GAAAhf,GAAA,EAAAA,EAAAqd,EAAArd,GAAA,EACAghB,EAAAvhB,KAAAO,EAAAA,EAAA,EAEA,OAAAP,OAGA4I,EAAAsL,UAAA6S,OAAA,WACA,GAAAnJ,GAAA5d,KAAAgB,MACA,IAAA4c,EAAA,GAAA,EACA,KAAA,IAAA2B,YAAA,4CAEA,KAAA,GAAAhf,GAAA,EAAAA,EAAAqd,EAAArd,GAAA,EACAghB,EAAAvhB,KAAAO,EAAAA,EAAA,GACAghB,EAAAvhB,KAAAO,EAAA,EAAAA,EAAA,EAEA,OAAAP,OAGA4I,EAAAsL,UAAA8S,OAAA,WACA,GAAApJ,GAAA5d,KAAAgB,MACA,IAAA4c,EAAA,GAAA,EACA,KAAA,IAAA2B,YAAA,4CAEA,KAAA,GAAAhf,GAAA,EAAAA,EAAAqd,EAAArd,GAAA,EACAghB,EAAAvhB,KAAAO,EAAAA,EAAA,GACAghB,EAAAvhB,KAAAO,EAAA,EAAAA,EAAA,GACAghB,EAAAvhB,KAAAO,EAAA,EAAAA,EAAA,GACAghB,EAAAvhB,KAAAO,EAAA,EAAAA,EAAA,EAEA,OAAAP,OAGA4I,EAAAsL,UAAArL,SAAA,WACA,GAAA7H,GAAA,EAAAhB,KAAAgB,MACA,OAAA,KAAAA,EAAA,GACA,IAAAsC,UAAAtC,OAAAkgB,EAAAlhB,KAAA,EAAAgB,GACAggB,EAAApa,MAAA5G,KAAAsD,YAGAsF,EAAAsL,UAAA+S,OAAA,SAAA1J,GACA,IAAA3U,EAAAiQ,SAAA0E,GAAA,KAAA,IAAAvI,WAAA,4BACA,OAAAhV,QAAAud,GACA,IAAA3U,EAAA6d,QAAAzmB,KAAAud,IAGA3U,EAAAsL,UAAAgT,QAAA,WACA,GAAAjK,GAAA,GACAyH,EAAAllB,EAAAsmB,iBAKA,OAJA9lB,MAAAgB,OAAA,IACAic,EAAAjd,KAAA6I,SAAA,MAAA,EAAA6b,GAAApY,MAAA,SAAAwN,KAAA,KACA9Z,KAAAgB,OAAA0jB,IAAAzH,GAAA,UAEA,WAAAA,EAAA,KAGArU,EAAAsL,UAAAuS,QAAA,SAAAhP,EAAAmH,EAAAC,EAAAsI,EAAAC,GACA,IAAAxe,EAAAiQ,SAAApB,GACA,KAAA,IAAAzC,WAAA,4BAgBA,QAbAzR,KAAAqb,IACAA,EAAA,OAEArb,KAAAsb,IACAA,EAAApH,EAAAA,EAAAzW,OAAA,OAEAuC,KAAA4jB,IACAA,EAAA,OAEA5jB,KAAA6jB,IACAA,EAAApnB,KAAAgB,QAGA4d,EAAA,GAAAC,EAAApH,EAAAzW,QAAAmmB,EAAA,GAAAC,EAAApnB,KAAAgB,OACA,KAAA,IAAAue,YAAA,qBAGA,IAAA4H,GAAAC,GAAAxI,GAAAC,EACA,MAAA,EAEA,IAAAsI,GAAAC,EACA,OAAA,CAEA,IAAAxI,GAAAC,EACA,MAAA,EAQA,IALAD,KAAA,EACAC,KAAA,EACAsI,KAAA,EACAC,KAAA,EAEApnB,OAAAyX,EAAA,MAAA,EASA,KAAA,GAPAiP,GAAAU,EAAAD,EACAR,EAAA9H,EAAAD,EACAhB,EAAAyF,KAAAC,IAAAoD,EAAAC,GAEAU,EAAArnB,KAAA4X,MAAAuP,EAAAC,GACAE,EAAA7P,EAAAG,MAAAgH,EAAAC,GAEAte,EAAA,EAAAA,EAAAqd,IAAArd,EACA,GAAA8mB,EAAA9mB,KAAA+mB,EAAA/mB,GAAA,CACAmmB,EAAAW,EAAA9mB,GACAomB,EAAAW,EAAA/mB,EACA,OAIA,MAAAmmB,GAAAC,GAAA,EACAA,EAAAD,EAAA,EACA,GA6HA9d,EAAAsL,UAAAqT,SAAA,SAAAzU,EAAA2N,EAAA9X,GACA,OAAA,IAAA3I,KAAAgM,QAAA8G,EAAA2N,EAAA9X,IAGAC,EAAAsL,UAAAlI,QAAA,SAAA8G,EAAA2N,EAAA9X,GACA,MAAA8Y,GAAAzhB,KAAA8S,EAAA2N,EAAA9X,GAAA,IAGAC,EAAAsL,UAAA2N,YAAA,SAAA/O,EAAA2N,EAAA9X,GACA,MAAA8Y,GAAAzhB,KAAA8S,EAAA2N,EAAA9X,GAAA,IAkDAC,EAAAsL,UAAA+F,MAAA,SAAAmG,EAAAoC,EAAAxhB,EAAA2H,GAEA,OAAApF,KAAAif,EACA7Z,EAAA,OACA3H,EAAAhB,KAAAgB,OACAwhB,EAAA,MAEA,QAAAjf,KAAAvC,GAAA,gBAAAwhB,GACA7Z,EAAA6Z,EACAxhB,EAAAhB,KAAAgB,OACAwhB,EAAA,MAEA,CAAA,IAAAgF,SAAAhF,GAWA,KAAA,IAAA5hB,OACA,0EAXA4hB,IAAA,EACAgF,SAAAxmB,IACAA,GAAA,MACAuC,KAAAoF,IAAAA,EAAA,UAEAA,EAAA3H,EACAA,MAAAuC,IASA,GAAAmf,GAAA1iB,KAAAgB,OAAAwhB,CAGA,SAFAjf,KAAAvC,GAAAA,EAAA0hB,KAAA1hB,EAAA0hB,GAEAtC,EAAApf,OAAA,IAAAA,EAAA,GAAAwhB,EAAA,IAAAA,EAAAxiB,KAAAgB,OACA,KAAA,IAAAue,YAAA,yCAGA5W,KAAAA,EAAA,OAGA,KADA,GAAAkY,IAAA,IAEA,OAAAlY,GACA,IAAA,MACA,MAAA4Z,GAAAviB,KAAAogB,EAAAoC,EAAAxhB,EAEA,KAAA,OACA,IAAA,QACA,MAAA4hB,GAAA5iB,KAAAogB,EAAAoC,EAAAxhB,EAEA,KAAA,QACA,MAAA8hB,GAAA9iB,KAAAogB,EAAAoC,EAAAxhB,EAEA,KAAA,SACA,IAAA,SACA,MAAAgiB,GAAAhjB,KAAAogB,EAAAoC,EAAAxhB,EAEA,KAAA,SAEA,MAAAiiB,GAAAjjB,KAAAogB,EAAAoC,EAAAxhB,EAEA,KAAA,OACA,IAAA,QACA,IAAA,UACA,IAAA,WACA,MAAAkiB,GAAAljB,KAAAogB,EAAAoC,EAAAxhB,EAEA,SACA,GAAA6f,EAAA,KAAA,IAAA7L,WAAA,qBAAArM,EACAA,IAAA,GAAAA,GAAAqK,cACA6N,GAAA,IAKAjY,EAAAsL,UAAA6C,OAAA,WACA,OACAtN,KAAA,SACArH,KAAA6M,MAAAiF,UAAA0D,MAAA7W,KAAAf,KAAAynB,MAAAznB,KAAA,IAwFA,IAAAikB,GAAA,IA8DArb,GAAAsL,UAAA0D,MAAA,SAAAgH,EAAAC,GACA,GAAAjB,GAAA5d,KAAAgB,MACA4d,KAAAA,EACAC,MAAAtb,KAAAsb,EAAAjB,IAAAiB,EAEAD,EAAA,GACAA,GAAAhB,GACA,IAAAgB,EAAA,GACAA,EAAAhB,IACAgB,EAAAhB,GAGAiB,EAAA,GACAA,GAAAjB,GACA,IAAAiB,EAAA,GACAA,EAAAjB,IACAiB,EAAAjB,GAGAiB,EAAAD,IAAAC,EAAAD,EAEA,IAAA8I,EACA,IAAA9e,EAAAwW,oBACAsI,EAAA1nB,KAAAgmB,SAAApH,EAAAC,GACA6I,EAAAhmB,UAAAkH,EAAAsL,cACA,CACA,GAAAyT,GAAA9I,EAAAD,CACA8I,GAAA,GAAA9e,GAAA+e,MAAApkB,GACA,KAAA,GAAAhD,GAAA,EAAAA,EAAAonB,IAAApnB,EACAmnB,EAAAnnB,GAAAP,KAAAO,EAAAqe,GAIA,MAAA8I,IAWA9e,EAAAsL,UAAA0T,WAAA,SAAApF,EAAA1E,EAAAkH,GACAxC,GAAA,EACA1E,GAAA,EACAkH,GAAAT,EAAA/B,EAAA1E,EAAA9d,KAAAgB,OAKA,KAHA,GAAA8R,GAAA9S,KAAAwiB,GACAqF,EAAA,EACAtnB,EAAA,IACAA,EAAAud,IAAA+J,GAAA,MACA/U,GAAA9S,KAAAwiB,EAAAjiB,GAAAsnB,CAGA,OAAA/U,IAGAlK,EAAAsL,UAAA4T,WAAA,SAAAtF,EAAA1E,EAAAkH,GACAxC,GAAA,EACA1E,GAAA,EACAkH,GACAT,EAAA/B,EAAA1E,EAAA9d,KAAAgB,OAKA,KAFA,GAAA8R,GAAA9S,KAAAwiB,IAAA1E,GACA+J,EAAA,EACA/J,EAAA,IAAA+J,GAAA,MACA/U,GAAA9S,KAAAwiB,IAAA1E,GAAA+J,CAGA,OAAA/U,IAGAlK,EAAAsL,UAAA6T,UAAA,SAAAvF,EAAAwC,GAEA,MADAA,IAAAT,EAAA/B,EAAA,EAAAxiB,KAAAgB,QACAhB,KAAAwiB,IAGA5Z,EAAAsL,UAAA8T,aAAA,SAAAxF,EAAAwC,GAEA,MADAA,IAAAT,EAAA/B,EAAA,EAAAxiB,KAAAgB,QACAhB,KAAAwiB,GAAAxiB,KAAAwiB,EAAA,IAAA,GAGA5Z,EAAAsL,UAAA8N,aAAA,SAAAQ,EAAAwC,GAEA,MADAA,IAAAT,EAAA/B,EAAA,EAAAxiB,KAAAgB,QACAhB,KAAAwiB,IAAA,EAAAxiB,KAAAwiB,EAAA,IAGA5Z,EAAAsL,UAAA+T,aAAA,SAAAzF,EAAAwC,GAGA,MAFAA,IAAAT,EAAA/B,EAAA,EAAAxiB,KAAAgB,SAEAhB,KAAAwiB,GACAxiB,KAAAwiB,EAAA,IAAA,EACAxiB,KAAAwiB,EAAA,IAAA,IACA,SAAAxiB,KAAAwiB,EAAA,IAGA5Z,EAAAsL,UAAAgU,aAAA,SAAA1F,EAAAwC,GAGA,MAFAA,IAAAT,EAAA/B,EAAA,EAAAxiB,KAAAgB,QAEA,SAAAhB,KAAAwiB,IACAxiB,KAAAwiB,EAAA,IAAA,GACAxiB,KAAAwiB,EAAA,IAAA,EACAxiB,KAAAwiB,EAAA,KAGA5Z,EAAAsL,UAAAiU,UAAA,SAAA3F,EAAA1E,EAAAkH,GACAxC,GAAA,EACA1E,GAAA,EACAkH,GAAAT,EAAA/B,EAAA1E,EAAA9d,KAAAgB,OAKA,KAHA,GAAA8R,GAAA9S,KAAAwiB,GACAqF,EAAA,EACAtnB,EAAA,IACAA,EAAAud,IAAA+J,GAAA,MACA/U,GAAA9S,KAAAwiB,EAAAjiB,GAAAsnB,CAMA,OAJAA,IAAA,IAEA/U,GAAA+U,IAAA/U,GAAAuQ,KAAA+E,IAAA,EAAA,EAAAtK,IAEAhL,GAGAlK,EAAAsL,UAAAmU,UAAA,SAAA7F,EAAA1E,EAAAkH,GACAxC,GAAA,EACA1E,GAAA,EACAkH,GAAAT,EAAA/B,EAAA1E,EAAA9d,KAAAgB,OAKA,KAHA,GAAAT,GAAAud,EACA+J,EAAA,EACA/U,EAAA9S,KAAAwiB,IAAAjiB,GACAA,EAAA,IAAAsnB,GAAA,MACA/U,GAAA9S,KAAAwiB,IAAAjiB,GAAAsnB,CAMA,OAJAA,IAAA,IAEA/U,GAAA+U,IAAA/U,GAAAuQ,KAAA+E,IAAA,EAAA,EAAAtK,IAEAhL,GAGAlK,EAAAsL,UAAAoU,SAAA,SAAA9F,EAAAwC,GAEA,MADAA,IAAAT,EAAA/B,EAAA,EAAAxiB,KAAAgB,QACA,IAAAhB,KAAAwiB,IACA,GAAA,IAAAxiB,KAAAwiB,GAAA,GADAxiB,KAAAwiB,IAIA5Z,EAAAsL,UAAAqU,YAAA,SAAA/F,EAAAwC,GACAA,GAAAT,EAAA/B,EAAA,EAAAxiB,KAAAgB,OACA,IAAA8R,GAAA9S,KAAAwiB,GAAAxiB,KAAAwiB,EAAA,IAAA,CACA,OAAA,OAAA1P,EAAA,WAAAA,EAAAA,GAGAlK,EAAAsL,UAAAsU,YAAA,SAAAhG,EAAAwC,GACAA,GAAAT,EAAA/B,EAAA,EAAAxiB,KAAAgB,OACA,IAAA8R,GAAA9S,KAAAwiB,EAAA,GAAAxiB,KAAAwiB,IAAA,CACA,OAAA,OAAA1P,EAAA,WAAAA,EAAAA,GAGAlK,EAAAsL,UAAAuU,YAAA,SAAAjG,EAAAwC,GAGA,MAFAA,IAAAT,EAAA/B,EAAA,EAAAxiB,KAAAgB,QAEAhB,KAAAwiB,GACAxiB,KAAAwiB,EAAA,IAAA,EACAxiB,KAAAwiB,EAAA,IAAA,GACAxiB,KAAAwiB,EAAA,IAAA,IAGA5Z,EAAAsL,UAAAwU,YAAA,SAAAlG,EAAAwC,GAGA,MAFAA,IAAAT,EAAA/B,EAAA,EAAAxiB,KAAAgB,QAEAhB,KAAAwiB,IAAA,GACAxiB,KAAAwiB,EAAA,IAAA,GACAxiB,KAAAwiB,EAAA,IAAA,EACAxiB,KAAAwiB,EAAA,IAGA5Z,EAAAsL,UAAAyU,YAAA,SAAAnG,EAAAwC,GAEA,MADAA,IAAAT,EAAA/B,EAAA,EAAAxiB,KAAAgB,QACAikB,EAAArS,KAAA5S,KAAAwiB,GAAA,EAAA,GAAA,IAGA5Z,EAAAsL,UAAA0U,YAAA,SAAApG,EAAAwC,GAEA,MADAA,IAAAT,EAAA/B,EAAA,EAAAxiB,KAAAgB,QACAikB,EAAArS,KAAA5S,KAAAwiB,GAAA,EAAA,GAAA,IAGA5Z,EAAAsL,UAAA2U,aAAA,SAAArG,EAAAwC,GAEA,MADAA,IAAAT,EAAA/B,EAAA,EAAAxiB,KAAAgB,QACAikB,EAAArS,KAAA5S,KAAAwiB,GAAA,EAAA,GAAA,IAGA5Z,EAAAsL,UAAA4U,aAAA,SAAAtG,EAAAwC,GAEA,MADAA,IAAAT,EAAA/B,EAAA,EAAAxiB,KAAAgB,QACAikB,EAAArS,KAAA5S,KAAAwiB,GAAA,EAAA,GAAA,IASA5Z,EAAAsL,UAAA6U,YAAA,SAAA1T,EAAAmN,EAAA1E,EAAAkH,GAIA,GAHA3P,GAAAA,EACAmN,GAAA,EACA1E,GAAA,GACAkH,EAAA,CAEAP,EAAAzkB,KAAAqV,EAAAmN,EAAA1E,EADAuF,KAAA+E,IAAA,EAAA,EAAAtK,GAAA,EACA,GAGA,GAAA+J,GAAA,EACAtnB,EAAA,CAEA,KADAP,KAAAwiB,GAAA,IAAAnN,IACA9U,EAAAud,IAAA+J,GAAA,MACA7nB,KAAAwiB,EAAAjiB,GAAA8U,EAAAwS,EAAA,GAGA,OAAArF,GAAA1E,GAGAlV,EAAAsL,UAAA8U,YAAA,SAAA3T,EAAAmN,EAAA1E,EAAAkH,GAIA,GAHA3P,GAAAA,EACAmN,GAAA,EACA1E,GAAA,GACAkH,EAAA,CAEAP,EAAAzkB,KAAAqV,EAAAmN,EAAA1E,EADAuF,KAAA+E,IAAA,EAAA,EAAAtK,GAAA,EACA,GAGA,GAAAvd,GAAAud,EAAA,EACA+J,EAAA,CAEA,KADA7nB,KAAAwiB,EAAAjiB,GAAA,IAAA8U,IACA9U,GAAA,IAAAsnB,GAAA,MACA7nB,KAAAwiB,EAAAjiB,GAAA8U,EAAAwS,EAAA,GAGA,OAAArF,GAAA1E,GAGAlV,EAAAsL,UAAA+U,WAAA,SAAA5T,EAAAmN,EAAAwC,GAMA,MALA3P,IAAAA,EACAmN,GAAA,EACAwC,GAAAP,EAAAzkB,KAAAqV,EAAAmN,EAAA,EAAA,IAAA,GACA5Z,EAAAwW,sBAAA/J,EAAAgO,KAAA6F,MAAA7T,IACArV,KAAAwiB,GAAA,IAAAnN,EACAmN,EAAA,GAWA5Z,EAAAsL,UAAAiV,cAAA,SAAA9T,EAAAmN,EAAAwC,GAUA,MATA3P,IAAAA,EACAmN,GAAA,EACAwC,GAAAP,EAAAzkB,KAAAqV,EAAAmN,EAAA,EAAA,MAAA,GACA5Z,EAAAwW,qBACApf,KAAAwiB,GAAA,IAAAnN,EACArV,KAAAwiB,EAAA,GAAAnN,IAAA,GAEAsP,EAAA3kB,KAAAqV,EAAAmN,GAAA,GAEAA,EAAA,GAGA5Z,EAAAsL,UAAAkV,cAAA,SAAA/T,EAAAmN,EAAAwC,GAUA,MATA3P,IAAAA,EACAmN,GAAA,EACAwC,GAAAP,EAAAzkB,KAAAqV,EAAAmN,EAAA,EAAA,MAAA,GACA5Z,EAAAwW,qBACApf,KAAAwiB,GAAAnN,IAAA,EACArV,KAAAwiB,EAAA,GAAA,IAAAnN,GAEAsP,EAAA3kB,KAAAqV,EAAAmN,GAAA,GAEAA,EAAA,GAUA5Z,EAAAsL,UAAAmV,cAAA,SAAAhU,EAAAmN,EAAAwC,GAYA,MAXA3P,IAAAA,EACAmN,GAAA,EACAwC,GAAAP,EAAAzkB,KAAAqV,EAAAmN,EAAA,EAAA,WAAA,GACA5Z,EAAAwW,qBACApf,KAAAwiB,EAAA,GAAAnN,IAAA,GACArV,KAAAwiB,EAAA,GAAAnN,IAAA,GACArV,KAAAwiB,EAAA,GAAAnN,IAAA,EACArV,KAAAwiB,GAAA,IAAAnN,GAEAwP,EAAA7kB,KAAAqV,EAAAmN,GAAA,GAEAA,EAAA,GAGA5Z,EAAAsL,UAAAoV,cAAA,SAAAjU,EAAAmN,EAAAwC,GAYA,MAXA3P,IAAAA,EACAmN,GAAA,EACAwC,GAAAP,EAAAzkB,KAAAqV,EAAAmN,EAAA,EAAA,WAAA,GACA5Z,EAAAwW,qBACApf,KAAAwiB,GAAAnN,IAAA,GACArV,KAAAwiB,EAAA,GAAAnN,IAAA,GACArV,KAAAwiB,EAAA,GAAAnN,IAAA,EACArV,KAAAwiB,EAAA,GAAA,IAAAnN,GAEAwP,EAAA7kB,KAAAqV,EAAAmN,GAAA,GAEAA,EAAA,GAGA5Z,EAAAsL,UAAAqV,WAAA,SAAAlU,EAAAmN,EAAA1E,EAAAkH,GAGA,GAFA3P,GAAAA,EACAmN,GAAA,GACAwC,EAAA,CACA,GAAAwE,GAAAnG,KAAA+E,IAAA,EAAA,EAAAtK,EAAA,EAEA2G,GAAAzkB,KAAAqV,EAAAmN,EAAA1E,EAAA0L,EAAA,GAAAA,GAGA,GAAAjpB,GAAA,EACAsnB,EAAA,EACA4B,EAAA,CAEA,KADAzpB,KAAAwiB,GAAA,IAAAnN,IACA9U,EAAAud,IAAA+J,GAAA,MACAxS,EAAA,GAAA,IAAAoU,GAAA,IAAAzpB,KAAAwiB,EAAAjiB,EAAA,KACAkpB,EAAA,GAEAzpB,KAAAwiB,EAAAjiB,IAAA8U,EAAAwS,GAAA,GAAA4B,EAAA,GAGA,OAAAjH,GAAA1E,GAGAlV,EAAAsL,UAAAwV,WAAA,SAAArU,EAAAmN,EAAA1E,EAAAkH,GAGA,GAFA3P,GAAAA,EACAmN,GAAA,GACAwC,EAAA,CACA,GAAAwE,GAAAnG,KAAA+E,IAAA,EAAA,EAAAtK,EAAA,EAEA2G,GAAAzkB,KAAAqV,EAAAmN,EAAA1E,EAAA0L,EAAA,GAAAA,GAGA,GAAAjpB,GAAAud,EAAA,EACA+J,EAAA,EACA4B,EAAA,CAEA,KADAzpB,KAAAwiB,EAAAjiB,GAAA,IAAA8U,IACA9U,GAAA,IAAAsnB,GAAA,MACAxS,EAAA,GAAA,IAAAoU,GAAA,IAAAzpB,KAAAwiB,EAAAjiB,EAAA,KACAkpB,EAAA,GAEAzpB,KAAAwiB,EAAAjiB,IAAA8U,EAAAwS,GAAA,GAAA4B,EAAA,GAGA,OAAAjH,GAAA1E,GAGAlV,EAAAsL,UAAAyV,UAAA,SAAAtU,EAAAmN,EAAAwC,GAOA,MANA3P,IAAAA,EACAmN,GAAA,EACAwC,GAAAP,EAAAzkB,KAAAqV,EAAAmN,EAAA,EAAA,KAAA,KACA5Z,EAAAwW,sBAAA/J,EAAAgO,KAAA6F,MAAA7T,IACAA,EAAA,IAAAA,EAAA,IAAAA,EAAA,GACArV,KAAAwiB,GAAA,IAAAnN,EACAmN,EAAA,GAGA5Z,EAAAsL,UAAA0V,aAAA,SAAAvU,EAAAmN,EAAAwC,GAUA,MATA3P,IAAAA,EACAmN,GAAA,EACAwC,GAAAP,EAAAzkB,KAAAqV,EAAAmN,EAAA,EAAA,OAAA,OACA5Z,EAAAwW,qBACApf,KAAAwiB,GAAA,IAAAnN,EACArV,KAAAwiB,EAAA,GAAAnN,IAAA,GAEAsP,EAAA3kB,KAAAqV,EAAAmN,GAAA,GAEAA,EAAA,GAGA5Z,EAAAsL,UAAA2V,aAAA,SAAAxU,EAAAmN,EAAAwC,GAUA,MATA3P,IAAAA,EACAmN,GAAA,EACAwC,GAAAP,EAAAzkB,KAAAqV,EAAAmN,EAAA,EAAA,OAAA,OACA5Z,EAAAwW,qBACApf,KAAAwiB,GAAAnN,IAAA,EACArV,KAAAwiB,EAAA,GAAA,IAAAnN,GAEAsP,EAAA3kB,KAAAqV,EAAAmN,GAAA,GAEAA,EAAA,GAGA5Z,EAAAsL,UAAA4V,aAAA,SAAAzU,EAAAmN,EAAAwC,GAYA,MAXA3P,IAAAA,EACAmN,GAAA,EACAwC,GAAAP,EAAAzkB,KAAAqV,EAAAmN,EAAA,EAAA,YAAA,YACA5Z,EAAAwW,qBACApf,KAAAwiB,GAAA,IAAAnN,EACArV,KAAAwiB,EAAA,GAAAnN,IAAA,EACArV,KAAAwiB,EAAA,GAAAnN,IAAA,GACArV,KAAAwiB,EAAA,GAAAnN,IAAA,IAEAwP,EAAA7kB,KAAAqV,EAAAmN,GAAA,GAEAA,EAAA,GAGA5Z,EAAAsL,UAAA6V,aAAA,SAAA1U,EAAAmN,EAAAwC,GAaA,MAZA3P,IAAAA,EACAmN,GAAA,EACAwC,GAAAP,EAAAzkB,KAAAqV,EAAAmN,EAAA,EAAA,YAAA,YACAnN,EAAA,IAAAA,EAAA,WAAAA,EAAA,GACAzM,EAAAwW,qBACApf,KAAAwiB,GAAAnN,IAAA,GACArV,KAAAwiB,EAAA,GAAAnN,IAAA,GACArV,KAAAwiB,EAAA,GAAAnN,IAAA,EACArV,KAAAwiB,EAAA,GAAA,IAAAnN,GAEAwP,EAAA7kB,KAAAqV,EAAAmN,GAAA,GAEAA,EAAA,GAgBA5Z,EAAAsL,UAAA8V,aAAA,SAAA3U,EAAAmN,EAAAwC,GACA,MAAAD,GAAA/kB,KAAAqV,EAAAmN,GAAA,EAAAwC,IAGApc,EAAAsL,UAAA+V,aAAA,SAAA5U,EAAAmN,EAAAwC,GACA,MAAAD,GAAA/kB,KAAAqV,EAAAmN,GAAA,EAAAwC,IAWApc,EAAAsL,UAAAgW,cAAA,SAAA7U,EAAAmN,EAAAwC,GACA,MAAAE,GAAAllB,KAAAqV,EAAAmN,GAAA,EAAAwC,IAGApc,EAAAsL,UAAAiW,cAAA,SAAA9U,EAAAmN,EAAAwC,GACA,MAAAE,GAAAllB,KAAAqV,EAAAmN,GAAA,EAAAwC,IAIApc,EAAAsL,UAAAwM,KAAA,SAAAjJ,EAAA2S,EAAAxL,EAAAC,GAQA,GAPAD,IAAAA,EAAA,GACAC,GAAA,IAAAA,IAAAA,EAAA7e,KAAAgB,QACAopB,GAAA3S,EAAAzW,SAAAopB,EAAA3S,EAAAzW,QACAopB,IAAAA,EAAA,GACAvL,EAAA,GAAAA,EAAAD,IAAAC,EAAAD,GAGAC,IAAAD,EAAA,MAAA,EACA,IAAA,IAAAnH,EAAAzW,QAAA,IAAAhB,KAAAgB,OAAA,MAAA,EAGA,IAAAopB,EAAA,EACA,KAAA,IAAA7K,YAAA,4BAEA,IAAAX,EAAA,GAAAA,GAAA5e,KAAAgB,OAAA,KAAA,IAAAue,YAAA,4BACA,IAAAV,EAAA,EAAA,KAAA,IAAAU,YAAA,0BAGAV,GAAA7e,KAAAgB,SAAA6d,EAAA7e,KAAAgB,QACAyW,EAAAzW,OAAAopB,EAAAvL,EAAAD,IACAC,EAAApH,EAAAzW,OAAAopB,EAAAxL,EAGA,IACAre,GADAqd,EAAAiB,EAAAD,CAGA,IAAA5e,OAAAyX,GAAAmH,EAAAwL,GAAAA,EAAAvL,EAEA,IAAAte,EAAAqd,EAAA,EAAArd,GAAA,IAAAA,EACAkX,EAAAlX,EAAA6pB,GAAApqB,KAAAO,EAAAqe,OAEA,IAAAhB,EAAA,MAAAhV,EAAAwW,oBAEA,IAAA7e,EAAA,EAAAA,EAAAqd,IAAArd,EACAkX,EAAAlX,EAAA6pB,GAAApqB,KAAAO,EAAAqe,OAGAM,YAAAhL,UAAAmW,IAAAtpB,KACA0W,EACAzX,KAAAgmB,SAAApH,EAAAA,EAAAhB,GACAwM,EAIA,OAAAxM,IAOAhV,EAAAsL,UAAAgM,KAAA,SAAApN,EAAA8L,EAAAC,EAAAlW,GAEA,GAAA,gBAAAmK,GAAA,CASA,GARA,gBAAA8L,IACAjW,EAAAiW,EACAA,EAAA,EACAC,EAAA7e,KAAAgB,QACA,gBAAA6d,KACAlW,EAAAkW,EACAA,EAAA7e,KAAAgB,QAEA,IAAA8R,EAAA9R,OAAA,CACA,GAAAH,GAAAiS,EAAA2K,WAAA,EACA5c,GAAA,MACAiS,EAAAjS,GAGA,OAAA0C,KAAAoF,GAAA,gBAAAA,GACA,KAAA,IAAAqM,WAAA,4BAEA,IAAA,gBAAArM,KAAAC,EAAAyX,WAAA1X,GACA,KAAA,IAAAqM,WAAA,qBAAArM,OAEA,gBAAAmK,KACAA,GAAA,IAIA,IAAA8L,EAAA,GAAA5e,KAAAgB,OAAA4d,GAAA5e,KAAAgB,OAAA6d,EACA,KAAA,IAAAU,YAAA,qBAGA,IAAAV,GAAAD,EACA,MAAA5e,KAGA4e,MAAA,EACAC,MAAAtb,KAAAsb,EAAA7e,KAAAgB,OAAA6d,IAAA,EAEA/L,IAAAA,EAAA,EAEA,IAAAvS,EACA,IAAA,gBAAAuS,GACA,IAAAvS,EAAAqe,EAAAre,EAAAse,IAAAte,EACAP,KAAAO,GAAAuS,MAEA,CACA,GAAAwR,GAAA1b,EAAAiQ,SAAA/F,GACAA,EACAgO,EAAA,GAAAlY,GAAAkK,EAAAnK,GAAAE,YACA+U,EAAA0G,EAAAtjB,MACA,KAAAT,EAAA,EAAAA,EAAAse,EAAAD,IAAAre,EACAP,KAAAO,EAAAqe,GAAA0F,EAAA/jB,EAAAqd,GAIA,MAAA5d,MAMA,IAAAqlB,IAAA,uQCvkDA,QAAAiF,KAIA,QAAA,mBAAAzqB,UAAAA,OAAA8Y,SAAA,aAAA9Y,OAAA8Y,QAAAlP,QAMA,mBAAAgR,WAAAA,SAAA8P,iBAAA9P,SAAA8P,gBAAAC,OAAA/P,SAAA8P,gBAAAC,MAAAC,kBAEA,mBAAA5qB,SAAAA,OAAA6qB,UAAA7qB,OAAA6qB,QAAAC,SAAA9qB,OAAA6qB,QAAAE,WAAA/qB,OAAA6qB,QAAAG,QAGA,mBAAAhP,YAAAA,UAAAC,WAAAD,UAAAC,UAAA9I,cAAA1G,MAAA,mBAAA8C,SAAAsL,OAAAoQ,GAAA,KAAA,IAEA,mBAAAjP,YAAAA,UAAAC,WAAAD,UAAAC,UAAA9I,cAAA1G,MAAA,uBAsBA,QAAAye,GAAAtR,GACA,GAAA6Q,GAAAtqB,KAAAsqB,SASA,IAPA7Q,EAAA,IAAA6Q,EAAA,KAAA,IACAtqB,KAAAgrB,WACAV,EAAA,MAAA,KACA7Q,EAAA,IACA6Q,EAAA,MAAA,KACA,IAAA9qB,EAAAyrB,SAAAjrB,KAAAkrB,MAEAZ,EAAA,CAEA,GAAA9pB,GAAA,UAAAR,KAAAmrB,KACA1R,GAAA2R,OAAA,EAAA,EAAA5qB,EAAA,iBAKA,IAAA6qB,GAAA,EACAC,EAAA,CACA7R,GAAA,GAAA9L,QAAA,cAAA,SAAArB,GACA,OAAAA,IACA+e,IACA,OAAA/e,IAGAgf,EAAAD,MAIA5R,EAAA2R,OAAAE,EAAA,EAAA9qB,IAUA,QAAA8G,KAGA,MAAA,gBAAAojB,UACAA,QAAApjB,KACAikB,SAAArX,UAAAtN,MAAA7F,KAAA2pB,QAAApjB,IAAAojB,QAAApnB,WAUA,QAAAkoB,GAAAC,GACA,IACA,MAAAA,EACAjsB,EAAAksB,QAAAC,WAAA,SAEAnsB,EAAAksB,QAAAE,MAAAH,EAEA,MAAAtrB,KAUA,QAAA0rB,KACA,GAAA3rB,EACA,KACAA,EAAAV,EAAAksB,QAAAE,MACA,MAAAzrB,IAOA,OAJAD,OAAA,KAAAyY,GAAA,OAAAA,KACAzY,EAAAyY,EAAAmT,IAAAC,OAGA7rB,EA1JAV,EAAAC,EAAAD,QAAAiB,EAAA,WACAjB,EAAA8H,IAAAA,EACA9H,EAAAurB,WAAAA,EACAvrB,EAAAgsB,KAAAA,EACAhsB,EAAAqsB,KAAAA,EACArsB,EAAA8qB,UAAAA,EACA9qB,EAAAksB,QAAA,mBAAAM,aACA,KAAAA,OAAAN,QACAM,OAAAN,QAAAO,MAsKA,WACA,IACA,MAAApsB,QAAAqsB,aACA,MAAA/rB,QAlKAX,EAAA2sB,QACA,gBACA,cACA,YACA,aACA,aACA,WAmCA3sB,EAAA4sB,WAAA9J,EAAA,SAAA1I,GACA,IACA,MAAA3Q,MAAAC,UAAA0Q,GACA,MAAA7S,GACA,MAAA,+BAAAA,EAAA6C,UAqGApK,EAAA6sB,OAAAR,8FC5HA,QAAAS,GAAAtB,GACA,GAAAzqB,GAAAgb,EAAA,CAEA,KAAAhb,IAAAyqB,GACAzP,GAAAA,GAAA,GAAAA,EAAAyP,EAAAvN,WAAAld,GACAgb,GAAA,CAGA,OAAA/b,GAAA2sB,OAAA9I,KAAAkJ,IAAAhR,GAAA/b,EAAA2sB,OAAAnrB,QAWA,QAAAwrB,GAAAxB,GAEA,QAAAY,KAEA,GAAAA,EAAAa,QAAA,CAEA,GAAA1sB,GAAA6rB,EAGAc,GAAA,GAAAjf,MACAkf,EAAAD,GAAAE,GAAAF,EACA3sB,GAAAmrB,KAAAyB,EACA5sB,EAAA0G,KAAAmmB,EACA7sB,EAAA2sB,KAAAA,EACAE,EAAAF,CAIA,KAAA,GADAjT,GAAA,GAAAxK,OAAA3L,UAAAtC,QACAT,EAAA,EAAAA,EAAAkZ,EAAAzY,OAAAT,IACAkZ,EAAAlZ,GAAA+C,UAAA/C,EAGAkZ,GAAA,GAAAja,EAAAqtB,OAAApT,EAAA,IAEA,gBAAAA,GAAA,IAEAA,EAAA9D,QAAA,KAIA,IAAA0V,GAAA,CACA5R,GAAA,GAAAA,EAAA,GAAA9L,QAAA,gBAAA,SAAArB,EAAAwgB,GAEA,GAAA,OAAAxgB,EAAA,MAAAA,EACA+e,IACA,IAAA0B,GAAAvtB,EAAA4sB,WAAAU,EACA,IAAA,kBAAAC,GAAA,CACA,GAAAja,GAAA2G,EAAA4R,EACA/e,GAAAygB,EAAAhsB,KAAAhB,EAAA+S,GAGA2G,EAAA2R,OAAAC,EAAA,GACAA,IAEA,MAAA/e,KAIA9M,EAAAurB,WAAAhqB,KAAAhB,EAAA0Z,IAEAmS,EAAAtkB,KAAA9H,EAAA8H,KAAAojB,QAAApjB,IAAA2M,KAAAyW,UACA9jB,MAAA7G,EAAA0Z,IAaA,MAVAmS,GAAAZ,UAAAA,EACAY,EAAAa,QAAAjtB,EAAAitB,QAAAzB,GACAY,EAAAtB,UAAA9qB,EAAA8qB,YACAsB,EAAAT,MAAAmB,EAAAtB,GAGA,kBAAAxrB,GAAAwtB,MACAxtB,EAAAwtB,KAAApB,GAGAA,EAWA,QAAAS,GAAAZ,GACAjsB,EAAAgsB,KAAAC,GAEAjsB,EAAAytB,SACAztB,EAAA0tB,QAKA,KAAA,GAHAhhB,IAAA,gBAAAuf,GAAAA,EAAA,IAAAvf,MAAA,UACA0R,EAAA1R,EAAAlL,OAEAT,EAAA,EAAAA,EAAAqd,EAAArd,IACA2L,EAAA3L,KACAkrB,EAAAvf,EAAA3L,GAAAoN,QAAA,MAAA,OACA,MAAA8d,EAAA,GACAjsB,EAAA0tB,MAAAvmB,KAAA,GAAA+T,QAAA,IAAA+Q,EAAAlP,OAAA,GAAA,MAEA/c,EAAAytB,MAAAtmB,KAAA,GAAA+T,QAAA,IAAA+Q,EAAA,OAWA,QAAA0B,KACA3tB,EAAA6sB,OAAA,IAWA,QAAAI,GAAAzV,GACA,GAAAzW,GAAAqd,CACA,KAAArd,EAAA,EAAAqd,EAAApe,EAAA0tB,MAAAlsB,OAAAT,EAAAqd,EAAArd,IACA,GAAAf,EAAA0tB,MAAA3sB,GAAAua,KAAA9D,GACA,OAAA,CAGA,KAAAzW,EAAA,EAAAqd,EAAApe,EAAAytB,MAAAjsB,OAAAT,EAAAqd,EAAArd,IACA,GAAAf,EAAAytB,MAAA1sB,GAAAua,KAAA9D,GACA,OAAA,CAGA,QAAA,EAWA,QAAA6V,GAAA/Z,GACA,MAAAA,aAAAlS,OAAAkS,EAAAuE,OAAAvE,EAAAlJ,QACAkJ,EAhMAtT,EAAAC,EAAAD,QAAAgtB,EAAAZ,MAAAY,EAAA,QAAAA,EACAhtB,EAAAqtB,OAAAA,EACArtB,EAAA2tB,QAAAA,EACA3tB,EAAA6sB,OAAAA,EACA7sB,EAAAitB,QAAAA,EACAjtB,EAAAyrB,SAAAxqB,EAAA,MAMAjB,EAAAytB,SACAztB,EAAA0tB,SAQA1tB,EAAA4sB,aAMA,IAAAQ,iCCjCAptB,EAAAoT,KAAA,SAAAsG,EAAAsJ,EAAA4K,EAAAC,EAAAC,GACA,GAAAntB,GAAAqhB,EACA+L,EAAA,EAAAD,EAAAD,EAAA,EACAG,GAAA,GAAAD,GAAA,EACAE,EAAAD,GAAA,EACAE,GAAA,EACAntB,EAAA6sB,EAAAE,EAAA,EAAA,EACAK,EAAAP,GAAA,EAAA,EACAQ,EAAA1U,EAAAsJ,EAAAjiB,EAOA,KALAA,GAAAotB,EAEAxtB,EAAAytB,GAAA,IAAAF,GAAA,EACAE,KAAAF,EACAA,GAAAH,EACAG,EAAA,EAAAvtB,EAAA,IAAAA,EAAA+Y,EAAAsJ,EAAAjiB,GAAAA,GAAAotB,EAAAD,GAAA,GAKA,IAHAlM,EAAArhB,GAAA,IAAAutB,GAAA,EACAvtB,KAAAutB,EACAA,GAAAL,EACAK,EAAA,EAAAlM,EAAA,IAAAA,EAAAtI,EAAAsJ,EAAAjiB,GAAAA,GAAAotB,EAAAD,GAAA,GAEA,GAAA,IAAAvtB,EACAA,EAAA,EAAAstB,MACA,CAAA,GAAAttB,IAAAqtB,EACA,MAAAhM,GAAAqM,IAAAtI,EAAAA,GAAAqI,GAAA,EAAA,EAEApM,IAAA6B,KAAA+E,IAAA,EAAAiF,GACAltB,GAAAstB,EAEA,OAAAG,GAAA,EAAA,GAAApM,EAAA6B,KAAA+E,IAAA,EAAAjoB,EAAAktB,IAGA7tB,EAAAya,MAAA,SAAAf,EAAA7D,EAAAmN,EAAA4K,EAAAC,EAAAC,GACA,GAAAntB,GAAAqhB,EAAAhhB,EACA+sB,EAAA,EAAAD,EAAAD,EAAA,EACAG,GAAA,GAAAD,GAAA,EACAE,EAAAD,GAAA,EACAM,EAAA,KAAAT,EAAAhK,KAAA+E,IAAA,GAAA,IAAA/E,KAAA+E,IAAA,GAAA,IAAA,EACA7nB,EAAA6sB,EAAA,EAAAE,EAAA,EACAK,EAAAP,EAAA,GAAA,EACAQ,EAAAvY,EAAA,GAAA,IAAAA,GAAA,EAAAA,EAAA,EAAA,EAAA,CAmCA,KAjCAA,EAAAgO,KAAAkJ,IAAAlX,GAEAsM,MAAAtM,IAAAA,IAAAkQ,EAAAA,GACA/D,EAAAG,MAAAtM,GAAA,EAAA,EACAlV,EAAAqtB,IAEArtB,EAAAkjB,KAAA6F,MAAA7F,KAAA/b,IAAA+N,GAAAgO,KAAA0K,KACA1Y,GAAA7U,EAAA6iB,KAAA+E,IAAA,GAAAjoB,IAAA,IACAA,IACAK,GAAA,GAGA6U,GADAlV,EAAAstB,GAAA,EACAK,EAAAttB,EAEAstB,EAAAzK,KAAA+E,IAAA,EAAA,EAAAqF,GAEApY,EAAA7U,GAAA,IACAL,IACAK,GAAA,GAGAL,EAAAstB,GAAAD,GACAhM,EAAA,EACArhB,EAAAqtB,GACArtB,EAAAstB,GAAA,GACAjM,GAAAnM,EAAA7U,EAAA,GAAA6iB,KAAA+E,IAAA,EAAAiF,GACAltB,GAAAstB,IAEAjM,EAAAnM,EAAAgO,KAAA+E,IAAA,EAAAqF,EAAA,GAAApK,KAAA+E,IAAA,EAAAiF,GACAltB,EAAA,IAIAktB,GAAA,EAAAnU,EAAAsJ,EAAAjiB,GAAA,IAAAihB,EAAAjhB,GAAAotB,EAAAnM,GAAA,IAAA6L,GAAA,GAIA,IAFAltB,EAAAA,GAAAktB,EAAA7L,EACA+L,GAAAF,EACAE,EAAA,EAAArU,EAAAsJ,EAAAjiB,GAAA,IAAAJ,EAAAI,GAAAotB,EAAAxtB,GAAA,IAAAotB,GAAA,GAEArU,EAAAsJ,EAAAjiB,EAAAotB,IAAA,IAAAC,4BCnFA,GAAA/kB,MAAAA,QAEApJ,GAAAD,QAAAyP,MAAA0I,SAAA,SAAA8E,GACA,MAAA,kBAAA5T,EAAA9H,KAAA0b,uDCMA,SAAA3c,EAAAkuB,GACA,gBAAAxuB,QAAA,KAAAC,EACAA,EAAAD,QAAAwuB,EAAAluB,GACA,kBAAAJ,IAAAA,EAAAC,IACAD,EAAAsuB,GAAAA,EAAAluB,IAEA,mBAAAC,MAAAA,KACA,mBAAAF,QAAAA,WACA,KAAAC,EAAAA,EACAE,KACA,SAAAF,GACA,YAEAA,GAAAA,KACA,IAmEAmuB,GAnEAC,EAAApuB,EAAAiJ,OAGAolB,EACA,mEACAC,EAAA,SAAAC,GAEA,IAAA,GADAhuB,MACAE,EAAA,EAAA6c,EAAAiR,EAAArtB,OAAAT,EAAA6c,EAAA7c,IAAAF,EAAAguB,EAAA1S,OAAApb,IAAAA,CACA,OAAAF,IACA8tB,GACAjK,EAAA/B,OAAA+B,aAEAoK,EAAA,SAAA9tB,GACA,GAAAA,EAAAQ,OAAA,EAAA,CACA,GAAAutB,GAAA/tB,EAAAid,WAAA,EACA,OAAA8Q,GAAA,IAAA/tB,EACA+tB,EAAA,KAAArK,EAAA,IAAAqK,IAAA,GACArK,EAAA,IAAA,GAAAqK,GACArK,EAAA,IAAAqK,IAAA,GAAA,IACArK,EAAA,IAAAqK,IAAA,EAAA,IACArK,EAAA,IAAA,GAAAqK,GAEA,GAAAA,GAAA,MACA,MAAA/tB,EAAAid,WAAA,GAAA,QACAjd,EAAAid,WAAA,GAAA,MACA,OAAAyG,GAAA,IAAAqK,IAAA,GAAA,GACArK,EAAA,IAAAqK,IAAA,GAAA,IACArK,EAAA,IAAAqK,IAAA,EAAA,IACArK,EAAA,IAAA,GAAAqK,IAGAC,EAAA,gDACAC,EAAA,SAAA/tB,GACA,MAAAA,GAAAiN,QAAA6gB,EAAAF,IAEAI,EAAA,SAAAC,GACA,GAAAC,IAAA,EAAA,EAAA,GAAAD,EAAA3tB,OAAA,GACA6tB,EAAAF,EAAAlR,WAAA,IAAA,IACAkR,EAAA3tB,OAAA,EAAA2tB,EAAAlR,WAAA,GAAA,IAAA,GACAkR,EAAA3tB,OAAA,EAAA2tB,EAAAlR,WAAA,GAAA,EAOA,QALA0Q,EAAAxS,OAAAkT,IAAA,IACAV,EAAAxS,OAAAkT,IAAA,GAAA,IACAD,GAAA,EAAA,IAAAT,EAAAxS,OAAAkT,IAAA,EAAA,IACAD,GAAA,EAAA,IAAAT,EAAAxS,OAAA,GAAAkT,IAEA/U,KAAA,KAEAxI,EAAAxR,EAAAwR,MAAA,kBAAAxR,GAAAwR,KACA,SAAAiM,GAAA,MAAAzd,GAAAwR,KAAAiM,IAAA,SAAAA,GACA,GAAAA,EAAAjR,MAAA,gBAAA,KAAA,IAAAiT,YACA,0CAEA,OAAAhC,GAAA5P,QAAA,eAAA+gB,IAEAI,EAAA,SAAApuB,GACA,MAAA4Q,GAAAmd,EAAAtM,OAAAzhB,MAEAquB,EAAA,SAAApR,GACA,MAAAA,GAAAhQ,QAAA,SAAA,SAAAqhB,GACA,MAAA,KAAAA,EAAA,IAAA,MACArhB,QAAA,KAAA,KAEAjF,EAAA,SAAAhI,EAAAuuB,GACA,MAAAA,GAAAF,EAAAD,EAAApuB,IAAAouB,EAAApuB,IAEAwJ,EAAA,SAAAxJ,GAAA,MAAAgI,GAAAhI,GAAA,GAEAZ,GAAAof,aAAA+O,EAAA,SAAAttB,EAAAsuB,GAGA,IAAA,GADAtR,GAAA,GACApd,EAAA,EAAA6c,EAAAzc,EAAAK,OAAAT,EAAA6c,EAAA7c,GAAA,EAAA,CACA,GAAA2uB,GAAAvuB,EAAAJ,GAAA4uB,EAAAxuB,EAAAJ,EAAA,GAAA6uB,EAAAzuB,EAAAJ,EAAA,GACAsuB,EAAAK,GAAA,GAAAC,GAAA,EAAAC,CACAzR,IAAAwQ,EAAAxS,OAAAkT,IAAA,IACAV,EAAAxS,OAAAkT,IAAA,GAAA,SACA,KAAAM,EACAhB,EAAAxS,OAAAkT,IAAA,EAAA,IAAA,UACA,KAAAO,EACAjB,EAAAxS,OAAA,GAAAkT,GAAA,KAEA,MAAAI,GAAAF,EAAApR,GAAAA,GAGA,IA0DA0R,GA1DAC,EAAA,8EACAC,EAAA,SAAAC,GACA,OAAAA,EAAAxuB,QACA,IAAA,GACA,GAAAyuB,IAAA,EAAAD,EAAA/R,WAAA,KAAA,IACA,GAAA+R,EAAA/R,WAAA,KAAA,IACA,GAAA+R,EAAA/R,WAAA,KAAA,EACA,GAAA+R,EAAA/R,WAAA,GACA+E,EAAAiN,EAAA,KACA,OAAAvL,GAAA,OAAA1B,IAAA,KACA0B,EAAA,OAAA,KAAA1B,GACA,KAAA,GACA,MAAA0B,IACA,GAAAsL,EAAA/R,WAAA,KAAA,IACA,GAAA+R,EAAA/R,WAAA,KAAA,EACA,GAAA+R,EAAA/R,WAAA,GAEA,SACA,MAAAyG,IACA,GAAAsL,EAAA/R,WAAA,KAAA,EACA,GAAA+R,EAAA/R,WAAA,MAIAiS,EAAA,SAAAnS,GACA,MAAAA,GAAA5P,QAAA2hB,EAAAC,IAEAI,EAAA,SAAAH,GACA,GAAA5R,GAAA4R,EAAAxuB,OACA4tB,EAAAhR,EAAA,EACAxd,GAAAwd,EAAA,EAAAwQ,EAAAoB,EAAA7T,OAAA,KAAA,GAAA,IACAiC,EAAA,EAAAwQ,EAAAoB,EAAA7T,OAAA,KAAA,GAAA,IACAiC,EAAA,EAAAwQ,EAAAoB,EAAA7T,OAAA,KAAA,EAAA,IACAiC,EAAA,EAAAwQ,EAAAoB,EAAA7T,OAAA,IAAA,GACAiU,GACA1L,EAAA9jB,IAAA,IACA8jB,EAAA9jB,IAAA,EAAA,KACA8jB,EAAA,IAAA9jB,GAGA,OADAwvB,GAAA5uB,SAAA,EAAA,EAAA,EAAA,GAAA4tB,GACAgB,EAAA9V,KAAA,KAEA+V,EAAA/vB,EAAAgwB,MAAA,kBAAAhwB,GAAAgwB,KACA,SAAAnvB,GAAA,MAAAb,GAAAgwB,KAAAnvB,IAAA,SAAAA,GACA,MAAAA,GAAAgN,QAAA,WAAAgiB,IAEAG,EAAA,SAAAnvB,GACA,MAAAkvB,GAAA1N,OAAAxhB,GAAAgN,QAAA,oBAAA,MAEAoiB,EAAA,SAAApvB,GAAA,MAAA+uB,GAAAG,EAAAlvB,KACAqvB,EAAA,SAAArvB,GACA,MAAAwhB,QAAAxhB,GAAAgN,QAAA,QAAA,SAAAqhB,GACA,MAAA,KAAAA,EAAA,IAAA,MACArhB,QAAA,oBAAA,KAEAsiB,EAAA,SAAAtvB,GACA,MAAAovB,GAAAC,EAAArvB,IAGAb,GAAAof,aAAAmQ,EAAA,SAAA1uB,GACA,MAAAue,YAAAS,KAAAmQ,EAAAE,EAAArvB,IAAA,SAAAH,GACA,MAAAA,GAAAid,WAAA,MAGA,IAAAyS,GAAA,WACA,GAAAnnB,GAAAjJ,EAAAiJ,MAEA,OADAjJ,GAAAiJ,OAAAmlB,EACAnlB,EAmBA,IAhBAjJ,EAAAiJ,QACAonB,QA1JA,QA2JAL,KAAAA,EACAxe,KAAAA,EACA8e,WAAAH,EACAI,SAAA3nB,EACA+lB,KAAAA,EACA/lB,OAAAA,EACAwB,UAAAA,EACAwlB,KAAAA,EACAO,OAAAA,EACAC,WAAAA,EACAjC,eAAAA,EACAoB,aAAAA,GAGA,kBAAA1tB,QAAA0kB,eAAA,CACA,GAAAiK,GAAA,SAAA1W,GACA,OAAAvE,MAAAuE,EAAA2W,YAAA,EAAAC,UAAA,EAAAlK,cAAA,GAEAxmB,GAAAiJ,OAAA0nB,aAAA,WACA9uB,OAAA0kB,eACAlE,OAAAjO,UAAA,aAAAoc,EAAA,WACA,MAAAL,GAAAjwB,SAEA2B,OAAA0kB,eACAlE,OAAAjO,UAAA,WAAAoc,EAAA,SAAArB,GACA,MAAAvmB,GAAA1I,KAAAivB,MAEAttB,OAAA0kB,eACAlE,OAAAjO,UAAA,cAAAoc,EAAA,WACA,MAAA5nB,GAAA1I,MAAA,OAoBA,MAbAF,GAAA,SACAiJ,OAAAjJ,EAAAiJ,YAIA,KAAAtJ,GAAAA,EAAAD,QACAC,EAAAD,QAAAuJ,OAAAjJ,EAAAiJ,OAEA,kBAAArJ,IAAAA,EAAAC,KAEAD,KAAA,WAAA,MAAAI,GAAAiJ,UAGAA,OAAAjJ,EAAAiJ,kKCtLA,QAAAsQ,GAAA4D,GAEA,GADAA,EAAAkF,OAAAlF,KACAA,EAAAjc,OAAA,KAAA,CAGA,GAAAsL,GAAA,wHAAAokB,KACAzT,EAEA,IAAA3Q,EAAA,CAGA,GAAAlM,GAAAuwB,WAAArkB,EAAA,GAEA,SADAA,EAAA,IAAA,MAAA0G,eAEA,IAAA,QACA,IAAA,OACA,IAAA,MACA,IAAA,KACA,IAAA,IACA,MAAA5S,GAAAumB,CACA,KAAA,OACA,IAAA,MACA,IAAA,IACA,MAAAvmB,GAAAutB,CACA,KAAA,QACA,IAAA,OACA,IAAA,MACA,IAAA,KACA,IAAA,IACA,MAAAvtB,GAAA+V,CACA,KAAA,UACA,IAAA,SACA,IAAA,OACA,IAAA,MACA,IAAA,IACA,MAAA/V,GAAAohB,CACA,KAAA,UACA,IAAA,SACA,IAAA,OACA,IAAA,MACA,IAAA,IACA,MAAAphB,GAAAwtB,CACA,KAAA,eACA,IAAA,cACA,IAAA,QACA,IAAA,OACA,IAAA,KACA,MAAAxtB,EACA,SACA,UAYA,QAAAwwB,GAAAjE,GACA,MAAAA,IAAAgB,EACAtK,KAAAwN,MAAAlE,EAAAgB,GAAA,IAEAhB,GAAAxW,EACAkN,KAAAwN,MAAAlE,EAAAxW,GAAA,IAEAwW,GAAAnL,EACA6B,KAAAwN,MAAAlE,EAAAnL,GAAA,IAEAmL,GAAAiB,EACAvK,KAAAwN,MAAAlE,EAAAiB,GAAA,IAEAjB,EAAA,KAWA,QAAAmE,GAAAnE,GACA,MAAAoE,GAAApE,EAAAgB,EAAA,QACAoD,EAAApE,EAAAxW,EAAA,SACA4a,EAAApE,EAAAnL,EAAA,WACAuP,EAAApE,EAAAiB,EAAA,WACAjB,EAAA,MAOA,QAAAoE,GAAApE,EAAAvsB,EAAA4W,GACA,KAAA2V,EAAAvsB,GAGA,MAAAusB,GAAA,IAAAvsB,EACAijB,KAAA6F,MAAAyD,EAAAvsB,GAAA,IAAA4W,EAEAqM,KAAA2N,KAAArE,EAAAvsB,GAAA,IAAA4W,EAAA,IAlJA,GAAA4W,GAAA,IACApM,EAAA,GAAAoM,EACAzX,EAAA,GAAAqL,EACAmM,EAAA,GAAAxX,EACAwQ,EAAA,OAAAgH,CAgBAluB,GAAAD,QAAA,SAAAsT,EAAA/N,GACAA,EAAAA,KACA,IAAA0E,SAAAqJ,EACA,IAAA,WAAArJ,GAAAqJ,EAAA9R,OAAA,EACA,MAAAqY,GAAAvG,EACA,IAAA,WAAArJ,IAAA,IAAAkY,MAAA7O,GACA,MAAA/N,GAAAksB,KAAAH,EAAAhe,GAAA8d,EAAA9d,EAEA,MAAA,IAAAlS,OACA,wDACAqI,KAAAC,UAAA4J,8BCvBA,QAAAoe,KACA,KAAA,IAAAtwB,OAAA,mCAEA,QAAAuwB,KACA,KAAA,IAAAvwB,OAAA,qCAsBA,QAAAwwB,GAAAC,GACA,GAAAC,IAAAC,WAEA,MAAAA,YAAAF,EAAA,EAGA,KAAAC,IAAAJ,IAAAI,IAAAC,WAEA,MADAD,GAAAC,WACAA,WAAAF,EAAA,EAEA,KAEA,MAAAC,GAAAD,EAAA,GACA,MAAAlxB,GACA,IAEA,MAAAmxB,GAAAvwB,KAAA,KAAAswB,EAAA,GACA,MAAAlxB,GAEA,MAAAmxB,GAAAvwB,KAAAf,KAAAqxB,EAAA,KAMA,QAAAG,GAAAC,GACA,GAAAC,IAAAC,aAEA,MAAAA,cAAAF,EAGA,KAAAC,IAAAP,IAAAO,IAAAC,aAEA,MADAD,GAAAC,aACAA,aAAAF,EAEA,KAEA,MAAAC,GAAAD,GACA,MAAAtxB,GACA,IAEA,MAAAuxB,GAAA3wB,KAAA,KAAA0wB,GACA,MAAAtxB,GAGA,MAAAuxB,GAAA3wB,KAAAf,KAAAyxB,KAYA,QAAAG,KACAC,GAAAC,IAGAD,GAAA,EACAC,EAAA9wB,OACA+wB,EAAAD,EAAA3Z,OAAA4Z,GAEAC,GAAA,EAEAD,EAAA/wB,QACAixB,KAIA,QAAAA,KACA,IAAAJ,EAAA,CAGA,GAAAjgB,GAAAwf,EAAAQ,EACAC,IAAA,CAGA,KADA,GAAAjU,GAAAmU,EAAA/wB,OACA4c,GAAA,CAGA,IAFAkU,EAAAC,EACAA,OACAC,EAAApU,GACAkU,GACAA,EAAAE,GAAAE,KAGAF,IAAA,EACApU,EAAAmU,EAAA/wB,OAEA8wB,EAAA,KACAD,GAAA,EACAL,EAAA5f,IAiBA,QAAAugB,GAAAd,EAAA7Q,GACAxgB,KAAAqxB,IAAAA,EACArxB,KAAAwgB,MAAAA,EAYA,QAAA4R,MAhKA,GAOAd,GACAI,EARA/Y,EAAAlZ,EAAAD,YAgBA,WACA,IAEA8xB,EADA,kBAAAC,YACAA,WAEAL,EAEA,MAAA/wB,GACAmxB,EAAAJ,EAEA,IAEAQ,EADA,kBAAAC,cACAA,aAEAR,EAEA,MAAAhxB,GACAuxB,EAAAP,KAuDA,IAEAW,GAFAC,KACAF,GAAA,EAEAG,GAAA,CAyCArZ,GAAA0Z,SAAA,SAAAhB,GACA,GAAA5X,GAAA,GAAAxK,OAAA3L,UAAAtC,OAAA,EACA,IAAAsC,UAAAtC,OAAA,EACA,IAAA,GAAAT,GAAA,EAAAA,EAAA+C,UAAAtC,OAAAT,IACAkZ,EAAAlZ,EAAA,GAAA+C,UAAA/C,EAGAwxB,GAAAprB,KAAA,GAAAwrB,GAAAd,EAAA5X,IACA,IAAAsY,EAAA/wB,QAAA6wB,GACAT,EAAAa,IASAE,EAAAje,UAAAge,IAAA,WACAlyB,KAAAqxB,IAAAzqB,MAAA,KAAA5G,KAAAwgB,QAEA7H,EAAA2Z,MAAA,UACA3Z,EAAA4Z,SAAA,EACA5Z,EAAAmT,OACAnT,EAAA6Z,QACA7Z,EAAA8Z,QAAA,GACA9Z,EAAA+Z,YAIA/Z,EAAAga,GAAAP,EACAzZ,EAAAia,YAAAR,EACAzZ,EAAAka,KAAAT,EACAzZ,EAAAma,IAAAV,EACAzZ,EAAAoa,eAAAX,EACAzZ,EAAAqa,mBAAAZ,EACAzZ,EAAAsa,KAAAb,EACAzZ,EAAAua,gBAAAd,EACAzZ,EAAAwa,oBAAAf,EAEAzZ,EAAAya,UAAA,SAAApc,GAAA,UAEA2B,EAAA0a,QAAA,SAAArc,GACA,KAAA,IAAApW,OAAA,qCAGA+X,EAAA2a,IAAA,WAAA,MAAA,KACA3a,EAAA4a,MAAA,SAAA7R,GACA,KAAA,IAAA9gB,OAAA,mCAEA+X,EAAA6a,MAAA,WAAA,MAAA,uDCtLA,SAAAC,GAqBA,QAAAC,GAAAtT,GAMA,IALA,GAGA/K,GACAse,EAJA7U,KACA8U,EAAA,EACA5yB,EAAAof,EAAApf,OAGA4yB,EAAA5yB,GACAqU,EAAA+K,EAAA3C,WAAAmW,KACAve,GAAA,OAAAA,GAAA,OAAAue,EAAA5yB,GAEA2yB,EAAAvT,EAAA3C,WAAAmW,KACA,QAAA,MAAAD,GACA7U,EAAAnY,OAAA,KAAA0O,IAAA,KAAA,KAAAse,GAAA,QAIA7U,EAAAnY,KAAA0O,GACAue,MAGA9U,EAAAnY,KAAA0O,EAGA,OAAAyJ,GAIA,QAAA+U,GAAArT,GAKA,IAJA,GAEAnL,GAFArU,EAAAwf,EAAAxf,OACAqqB,GAAA,EAEAvM,EAAA,KACAuM,EAAArqB,GACAqU,EAAAmL,EAAA6K,GACAhW,EAAA,QACAA,GAAA,MACAyJ,GAAAgV,EAAAze,IAAA,GAAA,KAAA,OACAA,EAAA,MAAA,KAAAA,GAEAyJ,GAAAgV,EAAAze,EAEA,OAAAyJ,GAGA,QAAAiV,GAAAtQ,GACA,GAAAA,GAAA,OAAAA,GAAA,MACA,KAAA7iB,OACA,oBAAA6iB,EAAA5a,SAAA,IAAA6I,cACA,0BAMA,QAAAsiB,GAAAvQ,EAAApU,GACA,MAAAykB,GAAArQ,GAAApU,EAAA,GAAA,KAGA,QAAA4kB,GAAAxQ,GACA,GAAA,IAAA,WAAAA,GACA,MAAAqQ,GAAArQ,EAEA,IAAAyQ,GAAA,EAeA,OAdA,KAAA,WAAAzQ,GACAyQ,EAAAJ,EAAArQ,GAAA,EAAA,GAAA,KAEA,IAAA,WAAAA,IACAsQ,EAAAtQ,GACAyQ,EAAAJ,EAAArQ,GAAA,GAAA,GAAA,KACAyQ,GAAAF,EAAAvQ,EAAA,IAEA,IAAA,WAAAA,KACAyQ,EAAAJ,EAAArQ,GAAA,GAAA,EAAA,KACAyQ,GAAAF,EAAAvQ,EAAA,IACAyQ,GAAAF,EAAAvQ,EAAA,IAEAyQ,GAAAJ,EAAA,GAAArQ,EAAA,KAIA,QAAA0Q,GAAA/T,GAMA,IALA,GAGAqD,GAHAO,EAAA0P,EAAAtT,GACApf,EAAAgjB,EAAAhjB,OACAqqB,GAAA,EAEA+I,EAAA,KACA/I,EAAArqB,GACAyiB,EAAAO,EAAAqH,GACA+I,GAAAH,EAAAxQ,EAEA,OAAA2Q,GAKA,QAAAC,KACA,GAAAC,GAAAC,EACA,KAAA3zB,OAAA,qBAGA,IAAA4zB,GAAA,IAAA/O,EAAA6O,EAGA,IAFAA,IAEA,MAAA,IAAAE,GACA,MAAA,IAAAA,CAIA,MAAA5zB,OAAA,6BAGA,QAAA6zB,KACA,GAAAC,GACAC,EACAC,EACAC,EACApR,CAEA,IAAA6Q,EAAAC,EACA,KAAA3zB,OAAA,qBAGA,IAAA0zB,GAAAC,EACA,OAAA,CAQA,IAJAG,EAAA,IAAAjP,EAAA6O,GACAA,IAGA,IAAA,IAAAI,GACA,MAAAA,EAIA,IAAA,MAAA,IAAAA,GAAA,CAGA,GAFAC,EAAAN,KACA5Q,GAAA,GAAAiR,IAAA,EAAAC,IACA,IACA,MAAAlR,EAEA,MAAA7iB,OAAA,6BAKA,GAAA,MAAA,IAAA8zB,GAAA,CAIA,GAHAC,EAAAN,IACAO,EAAAP,KACA5Q,GAAA,GAAAiR,IAAA,GAAAC,GAAA,EAAAC,IACA,KAEA,MADAb,GAAAtQ,GACAA,CAEA,MAAA7iB,OAAA,6BAKA,GAAA,MAAA,IAAA8zB,KACAC,EAAAN,IACAO,EAAAP,IACAQ,EAAAR,KACA5Q,GAAA,EAAAiR,IAAA,GAAAC,GAAA,GACAC,GAAA,EAAAC,IACA,OAAApR,GAAA,SACA,MAAAA,EAIA,MAAA7iB,OAAA,0BAMA,QAAAk0B,GAAAV,GACA3O,EAAAiO,EAAAU,GACAG,EAAA9O,EAAAzkB,OACAszB,EAAA,CAGA,KAFA,GACAnW,GADA6F,MAEA,KAAA7F,EAAAsW,MACAzQ,EAAArd,KAAAwX,EAEA,OAAA0V,GAAA7P,GA5MA,GAAA+Q,GAAA,gBAAAv1B,IAAAA,EAGAw1B,EAAA,gBAAAv1B,IAAAA,GACAA,EAAAD,SAAAu1B,GAAAt1B,EAIAw1B,EAAA,gBAAAn1B,IAAAA,CACAm1B,GAAAn1B,SAAAm1B,GAAAA,EAAAp1B,SAAAo1B,IACAxB,EAAAwB,EAKA,IAiLAxP,GACA8O,EACAD,EAnLAR,EAAA3R,OAAA+B,aAkMAgR,GACAzC,QAAA,QACA/pB,OAAAyrB,EACAlE,OAAA6E,EAKA,IACA,kBAAAp1B,IACA,gBAAAA,GAAAC,KACAD,EAAAC,IAEAD,EAAA,WACA,MAAAw1B,SAEA,IAAAH,IAAAA,EAAAI,SACA,GAAAH,EACAA,EAAAx1B,QAAA01B,MACA,CACA,GAAA1qB,MACAiC,EAAAjC,EAAAiC,cACA,KAAA,GAAAsG,KAAAmiB,GACAzoB,EAAA1L,KAAAm0B,EAAAniB,KAAAgiB,EAAAhiB,GAAAmiB,EAAAniB,QAIA0gB,GAAAyB,KAAAA,GAGAl1B","file":"GitHub.bundle.min.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()","/**\n * @file\n * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc.\n * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}.\n * Github.js is freely distributable.\n */\n\nimport Requestable from './Requestable';\n\n/**\n * A Gist can retrieve and modify gists.\n */\nclass Gist extends Requestable {\n /**\n * Create a Gist.\n * @param {string} id - the id of the gist (not required when creating a gist)\n * @param {Requestable.auth} [auth] - information required to authenticate to Github\n * @param {string} [apiBase=https://api.github.com] - the base Github API URL\n */\n constructor(id, auth, apiBase) {\n super(auth, apiBase);\n this.__id = id;\n }\n\n /**\n * Fetch a gist.\n * @see https://developer.github.com/v3/gists/#get-a-single-gist\n * @param {Requestable.callback} [cb] - will receive the gist\n * @return {Promise} - the Promise for the http request\n */\n read(cb) {\n return this._request('GET', `/gists/${this.__id}`, null, cb);\n }\n\n /**\n * Create a new gist.\n * @see https://developer.github.com/v3/gists/#create-a-gist\n * @param {Object} gist - the data for the new gist\n * @param {Requestable.callback} [cb] - will receive the new gist upon creation\n * @return {Promise} - the Promise for the http request\n */\n create(gist, cb) {\n return this._request('POST', '/gists', gist, cb)\n .then((response) => {\n this.__id = response.data.id;\n return response;\n });\n }\n\n /**\n * Delete a gist.\n * @see https://developer.github.com/v3/gists/#delete-a-gist\n * @param {Requestable.callback} [cb] - will receive true if the request succeeds\n * @return {Promise} - the Promise for the http request\n */\n delete(cb) {\n return this._request('DELETE', `/gists/${this.__id}`, null, cb);\n }\n\n /**\n * Fork a gist.\n * @see https://developer.github.com/v3/gists/#fork-a-gist\n * @param {Requestable.callback} [cb] - the function that will receive the gist\n * @return {Promise} - the Promise for the http request\n */\n fork(cb) {\n return this._request('POST', `/gists/${this.__id}/forks`, null, cb);\n }\n\n /**\n * Update a gist.\n * @see https://developer.github.com/v3/gists/#edit-a-gist\n * @param {Object} gist - the new data for the gist\n * @param {Requestable.callback} [cb] - the function that receives the API result\n * @return {Promise} - the Promise for the http request\n */\n update(gist, cb) {\n return this._request('PATCH', `/gists/${this.__id}`, gist, cb);\n }\n\n /**\n * Star a gist.\n * @see https://developer.github.com/v3/gists/#star-a-gist\n * @param {Requestable.callback} [cb] - will receive true if the request is successful\n * @return {Promise} - the Promise for the http request\n */\n star(cb) {\n return this._request('PUT', `/gists/${this.__id}/star`, null, cb);\n }\n\n /**\n * Unstar a gist.\n * @see https://developer.github.com/v3/gists/#unstar-a-gist\n * @param {Requestable.callback} [cb] - will receive true if the request is successful\n * @return {Promise} - the Promise for the http request\n */\n unstar(cb) {\n return this._request('DELETE', `/gists/${this.__id}/star`, null, cb);\n }\n\n /**\n * Check if a gist is starred by the user.\n * @see https://developer.github.com/v3/gists/#check-if-a-gist-is-starred\n * @param {Requestable.callback} [cb] - will receive true if the gist is starred and false if the gist is not starred\n * @return {Promise} - the Promise for the http request\n */\n isStarred(cb) {\n return this._request204or404(`/gists/${this.__id}/star`, null, cb);\n }\n\n /**\n * List the gist's commits\n * @see https://developer.github.com/v3/gists/#list-gist-commits\n * @param {Requestable.callback} [cb] - will receive the array of commits\n * @return {Promise} - the Promise for the http request\n */\n listCommits(cb) {\n return this._requestAllPages(`/gists/${this.__id}/commits`, null, cb);\n }\n\n /**\n * Fetch one of the gist's revision.\n * @see https://developer.github.com/v3/gists/#get-a-specific-revision-of-a-gist\n * @param {string} revision - the id of the revision\n * @param {Requestable.callback} [cb] - will receive the revision\n * @return {Promise} - the Promise for the http request\n */\n getRevision(revision, cb) {\n return this._request('GET', `/gists/${this.__id}/${revision}`, null, cb);\n }\n\n /**\n * List the gist's comments\n * @see https://developer.github.com/v3/gists/comments/#list-comments-on-a-gist\n * @param {Requestable.callback} [cb] - will receive the array of comments\n * @return {Promise} - the promise for the http request\n */\n listComments(cb) {\n return this._requestAllPages(`/gists/${this.__id}/comments`, null, cb);\n }\n\n /**\n * Fetch one of the gist's comments\n * @see https://developer.github.com/v3/gists/comments/#get-a-single-comment\n * @param {number} comment - the id of the comment\n * @param {Requestable.callback} [cb] - will receive the comment\n * @return {Promise} - the Promise for the http request\n */\n getComment(comment, cb) {\n return this._request('GET', `/gists/${this.__id}/comments/${comment}`, null, cb);\n }\n\n /**\n * Comment on a gist\n * @see https://developer.github.com/v3/gists/comments/#create-a-comment\n * @param {string} comment - the comment to add\n * @param {Requestable.callback} [cb] - the function that receives the API result\n * @return {Promise} - the Promise for the http request\n */\n createComment(comment, cb) {\n return this._request('POST', `/gists/${this.__id}/comments`, {body: comment}, cb);\n }\n\n /**\n * Edit a comment on the gist\n * @see https://developer.github.com/v3/gists/comments/#edit-a-comment\n * @param {number} comment - the id of the comment\n * @param {string} body - the new comment\n * @param {Requestable.callback} [cb] - will receive the modified comment\n * @return {Promise} - the promise for the http request\n */\n editComment(comment, body, cb) {\n return this._request('PATCH', `/gists/${this.__id}/comments/${comment}`, {body: body}, cb);\n }\n\n /**\n * Delete a comment on the gist.\n * @see https://developer.github.com/v3/gists/comments/#delete-a-comment\n * @param {number} comment - the id of the comment\n * @param {Requestable.callback} [cb] - will receive true if the request succeeds\n * @return {Promise} - the Promise for the http request\n */\n deleteComment(comment, cb) {\n return this._request('DELETE', `/gists/${this.__id}/comments/${comment}`, null, cb);\n }\n}\n\nmodule.exports = Gist;\n","/**\n * @file\n * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc.\n * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}.\n * Github.js is freely distributable.\n */\n/* eslint valid-jsdoc: [\"error\", {\"requireReturnDescription\": false}] */\n\nimport Gist from './Gist';\nimport User from './User';\nimport Issue from './Issue';\nimport Search from './Search';\nimport RateLimit from './RateLimit';\nimport Repository from './Repository';\nimport Organization from './Organization';\nimport Team from './Team';\nimport Markdown from './Markdown';\nimport Project from './Project';\n\n/**\n * GitHub encapsulates the functionality to create various API wrapper objects.\n */\nclass GitHub {\n /**\n * Create a new GitHub.\n * @param {Requestable.auth} [auth] - the credentials to authenticate to Github. If auth is\n * not provided requests will be made unauthenticated\n * @param {string} [apiBase=https://api.github.com] - the base Github API URL\n */\n constructor(auth, apiBase = 'https://api.github.com') {\n this.__apiBase = apiBase;\n this.__auth = auth || {};\n }\n\n /**\n * Create a new Gist wrapper\n * @param {string} [id] - the id for the gist, leave undefined when creating a new gist\n * @return {Gist}\n */\n getGist(id) {\n return new Gist(id, this.__auth, this.__apiBase);\n }\n\n /**\n * Create a new User wrapper\n * @param {string} [user] - the name of the user to get information about\n * leave undefined for the authenticated user\n * @return {User}\n */\n getUser(user) {\n return new User(user, this.__auth, this.__apiBase);\n }\n\n /**\n * Create a new Organization wrapper\n * @param {string} organization - the name of the organization\n * @return {Organization}\n */\n getOrganization(organization) {\n return new Organization(organization, this.__auth, this.__apiBase);\n }\n\n /**\n * create a new Team wrapper\n * @param {string} teamId - the name of the team\n * @return {team}\n */\n getTeam(teamId) {\n return new Team(teamId, this.__auth, this.__apiBase);\n }\n\n /**\n * Create a new Repository wrapper\n * @param {string} user - the user who owns the repository\n * @param {string} repo - the name of the repository\n * @return {Repository}\n */\n getRepo(user, repo) {\n return new Repository(this._getFullName(user, repo), this.__auth, this.__apiBase);\n }\n\n /**\n * Create a new Issue wrapper\n * @param {string} user - the user who owns the repository\n * @param {string} repo - the name of the repository\n * @return {Issue}\n */\n getIssues(user, repo) {\n return new Issue(this._getFullName(user, repo), this.__auth, this.__apiBase);\n }\n\n /**\n * Create a new Search wrapper\n * @param {string} query - the query to search for\n * @return {Search}\n */\n search(query) {\n return new Search(query, this.__auth, this.__apiBase);\n }\n\n /**\n * Create a new RateLimit wrapper\n * @return {RateLimit}\n */\n getRateLimit() {\n return new RateLimit(this.__auth, this.__apiBase);\n }\n\n /**\n * Create a new Markdown wrapper\n * @return {Markdown}\n */\n getMarkdown() {\n return new Markdown(this.__auth, this.__apiBase);\n }\n\n /**\n * Create a new Project wrapper\n * @param {string} id - the id of the project\n * @return {Project}\n */\n getProject(id) {\n return new Project(id, this.__auth, this.__apiBase);\n }\n\n /**\n * Computes the full repository name\n * @param {string} user - the username (or the full name)\n * @param {string} repo - the repository name, must not be passed if `user` is the full name\n * @return {string} the repository's full name\n */\n _getFullName(user, repo) {\n let fullname = user;\n\n if (repo) {\n fullname = `${user}/${repo}`;\n }\n\n return fullname;\n }\n}\n\nmodule.exports = GitHub;\n","/**\n * @file\n * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc.\n * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}.\n * Github.js is freely distributable.\n */\n\nimport Requestable from './Requestable';\n\n/**\n * Issue wraps the functionality to get issues for repositories\n */\nclass Issue extends Requestable {\n /**\n * Create a new Issue\n * @param {string} repository - the full name of the repository (`:user/:repo`) to get issues for\n * @param {Requestable.auth} [auth] - information required to authenticate to Github\n * @param {string} [apiBase=https://api.github.com] - the base Github API URL\n */\n constructor(repository, auth, apiBase) {\n super(auth, apiBase);\n this.__repository = repository;\n }\n\n /**\n * Create a new issue\n * @see https://developer.github.com/v3/issues/#create-an-issue\n * @param {Object} issueData - the issue to create\n * @param {Requestable.callback} [cb] - will receive the created issue\n * @return {Promise} - the promise for the http request\n */\n createIssue(issueData, cb) {\n return this._request('POST', `/repos/${this.__repository}/issues`, issueData, cb);\n }\n\n /**\n * List the issues for the repository\n * @see https://developer.github.com/v3/issues/#list-issues-for-a-repository\n * @param {Object} options - filtering options\n * @param {Requestable.callback} [cb] - will receive the array of issues\n * @return {Promise} - the promise for the http request\n */\n listIssues(options, cb) {\n return this._requestAllPages(`/repos/${this.__repository}/issues`, options, cb);\n }\n\n /**\n * List the events for an issue\n * @see https://developer.github.com/v3/issues/events/#list-events-for-an-issue\n * @param {number} issue - the issue to get events for\n * @param {Requestable.callback} [cb] - will receive the list of events\n * @return {Promise} - the promise for the http request\n */\n listIssueEvents(issue, cb) {\n return this._request('GET', `/repos/${this.__repository}/issues/${issue}/events`, null, cb);\n }\n\n /**\n * List comments on an issue\n * @see https://developer.github.com/v3/issues/comments/#list-comments-on-an-issue\n * @param {number} issue - the id of the issue to get comments from\n * @param {Requestable.callback} [cb] - will receive the comments\n * @return {Promise} - the promise for the http request\n */\n listIssueComments(issue, cb) {\n return this._request('GET', `/repos/${this.__repository}/issues/${issue}/comments`, null, cb);\n }\n\n /**\n * Get a single comment on an issue\n * @see https://developer.github.com/v3/issues/comments/#get-a-single-comment\n * @param {number} id - the comment id to get\n * @param {Requestable.callback} [cb] - will receive the comment\n * @return {Promise} - the promise for the http request\n */\n getIssueComment(id, cb) {\n return this._request('GET', `/repos/${this.__repository}/issues/comments/${id}`, null, cb);\n }\n\n /**\n * Comment on an issue\n * @see https://developer.github.com/v3/issues/comments/#create-a-comment\n * @param {number} issue - the id of the issue to comment on\n * @param {string} comment - the comment to add\n * @param {Requestable.callback} [cb] - will receive the created comment\n * @return {Promise} - the promise for the http request\n */\n createIssueComment(issue, comment, cb) {\n return this._request('POST', `/repos/${this.__repository}/issues/${issue}/comments`, {body: comment}, cb);\n }\n\n /**\n * Edit a comment on an issue\n * @see https://developer.github.com/v3/issues/comments/#edit-a-comment\n * @param {number} id - the comment id to edit\n * @param {string} comment - the comment to edit\n * @param {Requestable.callback} [cb] - will receive the edited comment\n * @return {Promise} - the promise for the http request\n */\n editIssueComment(id, comment, cb) {\n return this._request('PATCH', `/repos/${this.__repository}/issues/comments/${id}`, {body: comment}, cb);\n }\n\n /**\n * Delete a comment on an issue\n * @see https://developer.github.com/v3/issues/comments/#delete-a-comment\n * @param {number} id - the comment id to delete\n * @param {Requestable.callback} [cb] - will receive true if the request is successful\n * @return {Promise} - the promise for the http request\n */\n deleteIssueComment(id, cb) {\n return this._request('DELETE', `/repos/${this.__repository}/issues/comments/${id}`, null, cb);\n }\n\n /**\n * Edit an issue\n * @see https://developer.github.com/v3/issues/#edit-an-issue\n * @param {number} issue - the issue number to edit\n * @param {Object} issueData - the new issue data\n * @param {Requestable.callback} [cb] - will receive the modified issue\n * @return {Promise} - the promise for the http request\n */\n editIssue(issue, issueData, cb) {\n return this._request('PATCH', `/repos/${this.__repository}/issues/${issue}`, issueData, cb);\n }\n\n /**\n * Get a particular issue\n * @see https://developer.github.com/v3/issues/#get-a-single-issue\n * @param {number} issue - the issue number to fetch\n * @param {Requestable.callback} [cb] - will receive the issue\n * @return {Promise} - the promise for the http request\n */\n getIssue(issue, cb) {\n return this._request('GET', `/repos/${this.__repository}/issues/${issue}`, null, cb);\n }\n\n /**\n * List the milestones for the repository\n * @see https://developer.github.com/v3/issues/milestones/#list-milestones-for-a-repository\n * @param {Object} options - filtering options\n * @param {Requestable.callback} [cb] - will receive the array of milestones\n * @return {Promise} - the promise for the http request\n */\n listMilestones(options, cb) {\n return this._request('GET', `/repos/${this.__repository}/milestones`, options, cb);\n }\n\n /**\n * Get a milestone\n * @see https://developer.github.com/v3/issues/milestones/#get-a-single-milestone\n * @param {string} milestone - the id of the milestone to fetch\n * @param {Requestable.callback} [cb] - will receive the milestone\n * @return {Promise} - the promise for the http request\n */\n getMilestone(milestone, cb) {\n return this._request('GET', `/repos/${this.__repository}/milestones/${milestone}`, null, cb);\n }\n\n /**\n * Create a new milestone\n * @see https://developer.github.com/v3/issues/milestones/#create-a-milestone\n * @param {Object} milestoneData - the milestone definition\n * @param {Requestable.callback} [cb] - will receive the milestone\n * @return {Promise} - the promise for the http request\n */\n createMilestone(milestoneData, cb) {\n return this._request('POST', `/repos/${this.__repository}/milestones`, milestoneData, cb);\n }\n\n /**\n * Edit a milestone\n * @see https://developer.github.com/v3/issues/milestones/#update-a-milestone\n * @param {string} milestone - the id of the milestone to edit\n * @param {Object} milestoneData - the updates to make to the milestone\n * @param {Requestable.callback} [cb] - will receive the updated milestone\n * @return {Promise} - the promise for the http request\n */\n editMilestone(milestone, milestoneData, cb) {\n return this._request('PATCH', `/repos/${this.__repository}/milestones/${milestone}`, milestoneData, cb);\n }\n\n /**\n * Delete a milestone (this is distinct from closing a milestone)\n * @see https://developer.github.com/v3/issues/milestones/#delete-a-milestone\n * @param {string} milestone - the id of the milestone to delete\n * @param {Requestable.callback} [cb] - will receive the status\n * @return {Promise} - the promise for the http request\n */\n deleteMilestone(milestone, cb) {\n return this._request('DELETE', `/repos/${this.__repository}/milestones/${milestone}`, null, cb);\n }\n\n /**\n * Create a new label\n * @see https://developer.github.com/v3/issues/labels/#create-a-label\n * @param {Object} labelData - the label definition\n * @param {Requestable.callback} [cb] - will receive the object representing the label\n * @return {Promise} - the promise for the http request\n */\n createLabel(labelData, cb) {\n return this._request('POST', `/repos/${this.__repository}/labels`, labelData, cb);\n }\n\n /**\n * List the labels for the repository\n * @see https://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository\n * @param {Object} options - filtering options\n * @param {Requestable.callback} [cb] - will receive the array of labels\n * @return {Promise} - the promise for the http request\n */\n listLabels(options, cb) {\n return this._request('GET', `/repos/${this.__repository}/labels`, options, cb);\n }\n\n /**\n * Get a label\n * @see https://developer.github.com/v3/issues/labels/#get-a-single-label\n * @param {string} label - the name of the label to fetch\n * @param {Requestable.callback} [cb] - will receive the label\n * @return {Promise} - the promise for the http request\n */\n getLabel(label, cb) {\n return this._request('GET', `/repos/${this.__repository}/labels/${label}`, null, cb);\n }\n\n /**\n * Edit a label\n * @see https://developer.github.com/v3/issues/labels/#update-a-label\n * @param {string} label - the name of the label to edit\n * @param {Object} labelData - the updates to make to the label\n * @param {Requestable.callback} [cb] - will receive the updated label\n * @return {Promise} - the promise for the http request\n */\n editLabel(label, labelData, cb) {\n return this._request('PATCH', `/repos/${this.__repository}/labels/${label}`, labelData, cb);\n }\n\n /**\n * Delete a label\n * @see https://developer.github.com/v3/issues/labels/#delete-a-label\n * @param {string} label - the name of the label to delete\n * @param {Requestable.callback} [cb] - will receive the status\n * @return {Promise} - the promise for the http request\n */\n deleteLabel(label, cb) {\n return this._request('DELETE', `/repos/${this.__repository}/labels/${label}`, null, cb);\n }\n}\n\nmodule.exports = Issue;\n","/**\n * @file\n * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc.\n * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}.\n * Github.js is freely distributable.\n */\n\nimport Requestable from './Requestable';\n\n/**\n * Renders html from Markdown text\n */\nclass Markdown extends Requestable {\n /**\n * construct a Markdown\n * @param {Requestable.auth} auth - the credentials to authenticate to GitHub\n * @param {string} [apiBase] - the base Github API URL\n * @return {Promise} - the promise for the http request\n */\n constructor(auth, apiBase) {\n super(auth, apiBase);\n }\n\n /**\n * Render html from Markdown text.\n * @see https://developer.github.com/v3/markdown/#render-an-arbitrary-markdown-document\n * @param {Object} options - conversion options\n * @param {string} [options.text] - the markdown text to convert\n * @param {string} [options.mode=markdown] - can be either `markdown` or `gfm`\n * @param {string} [options.context] - repository name if mode is gfm\n * @param {Requestable.callback} [cb] - will receive the converted html\n * @return {Promise} - the promise for the http request\n */\n render(options, cb) {\n return this._request('POST', '/markdown', options, cb, true);\n }\n}\n\nmodule.exports = Markdown;\n","/**\n * @file\n * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc.\n * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}.\n * Github.js is freely distributable.\n */\n\nimport Requestable from './Requestable';\n\n/**\n * Organization encapsulates the functionality to create repositories in organizations\n */\nclass Organization extends Requestable {\n /**\n * Create a new Organization\n * @param {string} organization - the name of the organization\n * @param {Requestable.auth} [auth] - information required to authenticate to Github\n * @param {string} [apiBase=https://api.github.com] - the base Github API URL\n */\n constructor(organization, auth, apiBase) {\n super(auth, apiBase);\n this.__name = organization;\n }\n\n /**\n * Create a repository in an organization\n * @see https://developer.github.com/v3/repos/#create\n * @param {Object} options - the repository definition\n * @param {Requestable.callback} [cb] - will receive the created repository\n * @return {Promise} - the promise for the http request\n */\n createRepo(options, cb) {\n return this._request('POST', `/orgs/${this.__name}/repos`, options, cb);\n }\n\n /**\n * List the repositories in an organization\n * @see https://developer.github.com/v3/repos/#list-organization-repositories\n * @param {Requestable.callback} [cb] - will receive the list of repositories\n * @return {Promise} - the promise for the http request\n */\n getRepos(cb) {\n let requestOptions = this._getOptionsWithDefaults({direction: 'desc'});\n\n return this._requestAllPages(`/orgs/${this.__name}/repos`, requestOptions, cb);\n }\n\n /**\n * Query if the user is a member or not\n * @param {string} username - the user in question\n * @param {Requestable.callback} [cb] - will receive true if the user is a member\n * @return {Promise} - the promise for the http request\n */\n isMember(username, cb) {\n return this._request204or404(`/orgs/${this.__name}/members/${username}`, null, cb);\n }\n\n /**\n * List the users who are members of the company\n * @see https://developer.github.com/v3/orgs/members/#members-list\n * @param {object} options - filtering options\n * @param {string} [options.filter=all] - can be either `2fa_disabled` or `all`\n * @param {string} [options.role=all] - can be one of: `all`, `admin`, or `member`\n * @param {Requestable.callback} [cb] - will receive the list of users\n * @return {Promise} - the promise for the http request\n */\n listMembers(options, cb) {\n return this._request('GET', `/orgs/${this.__name}/members`, options, cb);\n }\n\n /**\n * List the Teams in the Organization\n * @see https://developer.github.com/v3/orgs/teams/#list-teams\n * @param {Requestable.callback} [cb] - will receive the list of teams\n * @return {Promise} - the promise for the http request\n */\n getTeams(cb) {\n return this._requestAllPages(`/orgs/${this.__name}/teams`, undefined, cb);\n }\n\n /**\n * Create a team\n * @see https://developer.github.com/v3/orgs/teams/#create-team\n * @param {object} options - Team creation parameters\n * @param {string} options.name - The name of the team\n * @param {string} [options.description] - Team description\n * @param {string} [options.repo_names] - Repos to add the team to\n * @param {string} [options.privacy=secret] - The level of privacy the team should have. Can be either one\n * of: `secret`, or `closed`\n * @param {Requestable.callback} [cb] - will receive the created team\n * @return {Promise} - the promise for the http request\n */\n createTeam(options, cb) {\n return this._request('POST', `/orgs/${this.__name}/teams`, options, cb);\n }\n\n /**\n * Get information about all projects\n * @see https://developer.github.com/v3/projects/#list-organization-projects\n * @param {Requestable.callback} [cb] - will receive the list of projects\n * @return {Promise} - the promise for the http request\n */\n listProjects(cb) {\n return this._requestAllPages(`/orgs/${this.__name}/projects`, {AcceptHeader: 'inertia-preview'}, cb);\n }\n\n /**\n * Create a new project\n * @see https://developer.github.com/v3/repos/projects/#create-a-project\n * @param {Object} options - the description of the project\n * @param {Requestable.callback} cb - will receive the newly created project\n * @return {Promise} - the promise for the http request\n */\n createProject(options, cb) {\n options = options || {};\n options.AcceptHeader = 'inertia-preview';\n return this._request('POST', `/orgs/${this.__name}/projects`, options, cb);\n }\n}\n\nmodule.exports = Organization;\n","/**\n * @file\n * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc.\n * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}.\n * Github.js is freely distributable.\n */\n\nimport Requestable from './Requestable';\n\n/**\n * Project encapsulates the functionality to create, query, and modify cards and columns.\n */\nclass Project extends Requestable {\n /**\n * Create a Project.\n * @param {string} id - the id of the project\n * @param {Requestable.auth} [auth] - information required to authenticate to Github\n * @param {string} [apiBase=https://api.github.com] - the base Github API URL\n */\n constructor(id, auth, apiBase) {\n super(auth, apiBase, 'inertia-preview');\n this.__id = id;\n }\n\n /**\n * Get information about a project\n * @see https://developer.github.com/v3/projects/#get-a-project\n * @param {Requestable.callback} cb - will receive the project information\n * @return {Promise} - the promise for the http request\n */\n getProject(cb) {\n return this._request('GET', `/projects/${this.__id}`, null, cb);\n }\n\n /**\n * Edit a project\n * @see https://developer.github.com/v3/projects/#update-a-project\n * @param {Object} options - the description of the project\n * @param {Requestable.callback} cb - will receive the modified project\n * @return {Promise} - the promise for the http request\n */\n updateProject(options, cb) {\n return this._request('PATCH', `/projects/${this.__id}`, options, cb);\n }\n\n /**\n * Delete a project\n * @see https://developer.github.com/v3/projects/#delete-a-project\n * @param {Requestable.callback} cb - will receive true if the operation is successful\n * @return {Promise} - the promise for the http request\n */\n deleteProject(cb) {\n return this._request('DELETE', `/projects/${this.__id}`, null, cb);\n }\n\n /**\n * Get information about all columns of a project\n * @see https://developer.github.com/v3/projects/columns/#list-project-columns\n * @param {Requestable.callback} [cb] - will receive the list of columns\n * @return {Promise} - the promise for the http request\n */\n listProjectColumns(cb) {\n return this._requestAllPages(`/projects/${this.__id}/columns`, null, cb);\n }\n\n /**\n * Get information about a column\n * @see https://developer.github.com/v3/projects/columns/#get-a-project-column\n * @param {string} colId - the id of the column\n * @param {Requestable.callback} cb - will receive the column information\n * @return {Promise} - the promise for the http request\n */\n getProjectColumn(colId, cb) {\n return this._request('GET', `/projects/columns/${colId}`, null, cb);\n }\n\n /**\n * Create a new column\n * @see https://developer.github.com/v3/projects/columns/#create-a-project-column\n * @param {Object} options - the description of the column\n * @param {Requestable.callback} cb - will receive the newly created column\n * @return {Promise} - the promise for the http request\n */\n createProjectColumn(options, cb) {\n return this._request('POST', `/projects/${this.__id}/columns`, options, cb);\n }\n\n /**\n * Edit a column\n * @see https://developer.github.com/v3/projects/columns/#update-a-project-column\n * @param {string} colId - the column id\n * @param {Object} options - the description of the column\n * @param {Requestable.callback} cb - will receive the modified column\n * @return {Promise} - the promise for the http request\n */\n updateProjectColumn(colId, options, cb) {\n return this._request('PATCH', `/projects/columns/${colId}`, options, cb);\n }\n\n /**\n * Delete a column\n * @see https://developer.github.com/v3/projects/columns/#delete-a-project-column\n * @param {string} colId - the column to be deleted\n * @param {Requestable.callback} cb - will receive true if the operation is successful\n * @return {Promise} - the promise for the http request\n */\n deleteProjectColumn(colId, cb) {\n return this._request('DELETE', `/projects/columns/${colId}`, null, cb);\n }\n\n /**\n * Move a column\n * @see https://developer.github.com/v3/projects/columns/#move-a-project-column\n * @param {string} colId - the column to be moved\n * @param {string} position - can be one of first, last, or after:<column-id>,\n * where <column-id> is the id value of a column in the same project.\n * @param {Requestable.callback} cb - will receive true if the operation is successful\n * @return {Promise} - the promise for the http request\n */\n moveProjectColumn(colId, position, cb) {\n return this._request(\n 'POST',\n `/projects/columns/${colId}/moves`,\n {position: position},\n cb\n );\n }\n\n /**\n * Get information about all cards of a project\n * @see https://developer.github.com/v3/projects/cards/#list-project-cards\n * @param {Requestable.callback} [cb] - will receive the list of cards\n * @return {Promise} - the promise for the http request\n */\n listProjectCards(cb) {\n return this.listProjectColumns()\n .then(({data}) => {\n return Promise.all(data.map((column) => {\n return this._requestAllPages(`/projects/columns/${column.id}/cards`, null);\n }));\n }).then((cardsInColumns) => {\n const cards = cardsInColumns.reduce((prev, {data}) => {\n prev.push(...data);\n return prev;\n }, []);\n if (cb) {\n cb(null, cards);\n }\n return cards;\n }).catch((err) => {\n if (cb) {\n cb(err);\n return;\n }\n throw err;\n });\n }\n\n /**\n * Get information about all cards of a column\n * @see https://developer.github.com/v3/projects/cards/#list-project-cards\n * @param {string} colId - the id of the column\n * @param {Requestable.callback} [cb] - will receive the list of cards\n * @return {Promise} - the promise for the http request\n */\n listColumnCards(colId, cb) {\n return this._requestAllPages(`/projects/columns/${colId}/cards`, null, cb);\n }\n\n /**\n * Get information about a card\n * @see https://developer.github.com/v3/projects/cards/#get-a-project-card\n * @param {string} cardId - the id of the card\n * @param {Requestable.callback} cb - will receive the card information\n * @return {Promise} - the promise for the http request\n */\n getProjectCard(cardId, cb) {\n return this._request('GET', `/projects/columns/cards/${cardId}`, null, cb);\n }\n\n /**\n * Create a new card\n * @see https://developer.github.com/v3/projects/cards/#create-a-project-card\n * @param {string} colId - the column id\n * @param {Object} options - the description of the card\n * @param {Requestable.callback} cb - will receive the newly created card\n * @return {Promise} - the promise for the http request\n */\n createProjectCard(colId, options, cb) {\n return this._request('POST', `/projects/columns/${colId}/cards`, options, cb);\n }\n\n /**\n * Edit a card\n * @see https://developer.github.com/v3/projects/cards/#update-a-project-card\n * @param {string} cardId - the card id\n * @param {Object} options - the description of the card\n * @param {Requestable.callback} cb - will receive the modified card\n * @return {Promise} - the promise for the http request\n */\n updateProjectCard(cardId, options, cb) {\n return this._request('PATCH', `/projects/columns/cards/${cardId}`, options, cb);\n }\n\n /**\n * Delete a card\n * @see https://developer.github.com/v3/projects/cards/#delete-a-project-card\n * @param {string} cardId - the card to be deleted\n * @param {Requestable.callback} cb - will receive true if the operation is successful\n * @return {Promise} - the promise for the http request\n */\n deleteProjectCard(cardId, cb) {\n return this._request('DELETE', `/projects/columns/cards/${cardId}`, null, cb);\n }\n\n /**\n * Move a card\n * @see https://developer.github.com/v3/projects/cards/#move-a-project-card\n * @param {string} cardId - the card to be moved\n * @param {string} position - can be one of top, bottom, or after:<card-id>,\n * where <card-id> is the id value of a card in the same project.\n * @param {string} colId - the id value of a column in the same project.\n * @param {Requestable.callback} cb - will receive true if the operation is successful\n * @return {Promise} - the promise for the http request\n */\n moveProjectCard(cardId, position, colId, cb) {\n return this._request(\n 'POST',\n `/projects/columns/cards/${cardId}/moves`,\n {position: position, column_id: colId}, // eslint-disable-line camelcase\n cb\n );\n }\n}\n\nmodule.exports = Project;\n","/**\n * @file\n * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc.\n * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}.\n * Github.js is freely distributable.\n */\n\nimport Requestable from './Requestable';\n\n/**\n * RateLimit allows users to query their rate-limit status\n */\nclass RateLimit extends Requestable {\n /**\n * construct a RateLimit\n * @param {Requestable.auth} auth - the credentials to authenticate to GitHub\n * @param {string} [apiBase] - the base Github API URL\n * @return {Promise} - the promise for the http request\n */\n constructor(auth, apiBase) {\n super(auth, apiBase);\n }\n\n /**\n * Query the current rate limit\n * @see https://developer.github.com/v3/rate_limit/\n * @param {Requestable.callback} [cb] - will receive the rate-limit data\n * @return {Promise} - the promise for the http request\n */\n getRateLimit(cb) {\n return this._request('GET', '/rate_limit', null, cb);\n }\n}\n\nmodule.exports = RateLimit;\n","/**\n * @file\n * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc.\n * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}.\n * Github.js is freely distributable.\n */\n\nimport Requestable from './Requestable';\nimport Utf8 from 'utf8';\nimport {\n Base64,\n} from 'js-base64';\nimport debug from 'debug';\nconst log = debug('github:repository');\n\n/**\n * Repository encapsulates the functionality to create, query, and modify files.\n */\nclass Repository extends Requestable {\n /**\n * Create a Repository.\n * @param {string} fullname - the full name of the repository\n * @param {Requestable.auth} [auth] - information required to authenticate to Github\n * @param {string} [apiBase=https://api.github.com] - the base Github API URL\n */\n constructor(fullname, auth, apiBase) {\n super(auth, apiBase);\n this.__fullname = fullname;\n this.__currentTree = {\n branch: null,\n sha: null,\n };\n }\n\n /**\n * Get a reference\n * @see https://developer.github.com/v3/git/refs/#get-a-reference\n * @param {string} ref - the reference to get\n * @param {Requestable.callback} [cb] - will receive the reference's refSpec or a list of refSpecs that match `ref`\n * @return {Promise} - the promise for the http request\n */\n getRef(ref, cb) {\n return this._request('GET', `/repos/${this.__fullname}/git/refs/${ref}`, null, cb);\n }\n\n /**\n * Create a reference\n * @see https://developer.github.com/v3/git/refs/#create-a-reference\n * @param {Object} options - the object describing the ref\n * @param {Requestable.callback} [cb] - will receive the ref\n * @return {Promise} - the promise for the http request\n */\n createRef(options, cb) {\n return this._request('POST', `/repos/${this.__fullname}/git/refs`, options, cb);\n }\n\n /**\n * Delete a reference\n * @see https://developer.github.com/v3/git/refs/#delete-a-reference\n * @param {string} ref - the name of the ref to delte\n * @param {Requestable.callback} [cb] - will receive true if the request is successful\n * @return {Promise} - the promise for the http request\n */\n deleteRef(ref, cb) {\n return this._request('DELETE', `/repos/${this.__fullname}/git/refs/${ref}`, null, cb);\n }\n\n /**\n * Delete a repository\n * @see https://developer.github.com/v3/repos/#delete-a-repository\n * @param {Requestable.callback} [cb] - will receive true if the request is successful\n * @return {Promise} - the promise for the http request\n */\n deleteRepo(cb) {\n return this._request('DELETE', `/repos/${this.__fullname}`, null, cb);\n }\n\n /**\n * List the tags on a repository\n * @see https://developer.github.com/v3/repos/#list-tags\n * @param {Requestable.callback} [cb] - will receive the tag data\n * @return {Promise} - the promise for the http request\n */\n listTags(cb) {\n return this._request('GET', `/repos/${this.__fullname}/tags`, null, cb);\n }\n\n /**\n * List the open pull requests on the repository\n * @see https://developer.github.com/v3/pulls/#list-pull-requests\n * @param {Object} options - options to filter the search\n * @param {Requestable.callback} [cb] - will receive the list of PRs\n * @return {Promise} - the promise for the http request\n */\n listPullRequests(options, cb) {\n options = options || {};\n return this._request('GET', `/repos/${this.__fullname}/pulls`, options, cb);\n }\n\n /**\n * Get information about a specific pull request\n * @see https://developer.github.com/v3/pulls/#get-a-single-pull-request\n * @param {number} number - the PR you wish to fetch\n * @param {Requestable.callback} [cb] - will receive the PR from the API\n * @return {Promise} - the promise for the http request\n */\n getPullRequest(number, cb) {\n return this._request('GET', `/repos/${this.__fullname}/pulls/${number}`, null, cb);\n }\n\n /**\n * List the files of a specific pull request\n * @see https://developer.github.com/v3/pulls/#list-pull-requests-files\n * @param {number|string} number - the PR you wish to fetch\n * @param {Requestable.callback} [cb] - will receive the list of files from the API\n * @return {Promise} - the promise for the http request\n */\n listPullRequestFiles(number, cb) {\n return this._request('GET', `/repos/${this.__fullname}/pulls/${number}/files`, null, cb);\n }\n\n /**\n * Compare two branches/commits/repositories\n * @see https://developer.github.com/v3/repos/commits/#compare-two-commits\n * @param {string} base - the base commit\n * @param {string} head - the head commit\n * @param {Requestable.callback} cb - will receive the comparison\n * @return {Promise} - the promise for the http request\n */\n compareBranches(base, head, cb) {\n return this._request('GET', `/repos/${this.__fullname}/compare/${base}...${head}`, null, cb);\n }\n\n /**\n * List all the branches for the repository\n * @see https://developer.github.com/v3/repos/#list-branches\n * @param {Requestable.callback} cb - will receive the list of branches\n * @return {Promise} - the promise for the http request\n */\n listBranches(cb) {\n return this._request('GET', `/repos/${this.__fullname}/branches`, null, cb);\n }\n\n /**\n * Get a raw blob from the repository\n * @see https://developer.github.com/v3/git/blobs/#get-a-blob\n * @param {string} sha - the sha of the blob to fetch\n * @param {Requestable.callback} cb - will receive the blob from the API\n * @return {Promise} - the promise for the http request\n */\n getBlob(sha, cb) {\n return this._request('GET', `/repos/${this.__fullname}/git/blobs/${sha}`, null, cb, 'raw');\n }\n\n /**\n * Get a single branch\n * @see https://developer.github.com/v3/repos/branches/#get-branch\n * @param {string} branch - the name of the branch to fetch\n * @param {Requestable.callback} cb - will receive the branch from the API\n * @returns {Promise} - the promise for the http request\n */\n getBranch(branch, cb) {\n return this._request('GET', `/repos/${this.__fullname}/branches/${branch}`, null, cb);\n }\n\n /**\n * Get a commit from the repository\n * @see https://developer.github.com/v3/repos/commits/#get-a-single-commit\n * @param {string} sha - the sha for the commit to fetch\n * @param {Requestable.callback} cb - will receive the commit data\n * @return {Promise} - the promise for the http request\n */\n getCommit(sha, cb) {\n return this._request('GET', `/repos/${this.__fullname}/git/commits/${sha}`, null, cb);\n }\n\n /**\n * List the commits on a repository, optionally filtering by path, author or time range\n * @see https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository\n * @param {Object} [options] - the filtering options for commits\n * @param {string} [options.sha] - the SHA or branch to start from\n * @param {string} [options.path] - the path to search on\n * @param {string} [options.author] - the commit author\n * @param {(Date|string)} [options.since] - only commits after this date will be returned\n * @param {(Date|string)} [options.until] - only commits before this date will be returned\n * @param {Requestable.callback} cb - will receive the list of commits found matching the criteria\n * @return {Promise} - the promise for the http request\n */\n listCommits(options, cb) {\n options = options || {};\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n options.since = this._dateToISO(options.since);\n options.until = this._dateToISO(options.until);\n\n return this._request('GET', `/repos/${this.__fullname}/commits`, options, cb);\n }\n\n /**\n * List the commits on a pull request\n * @see https://developer.github.com/v3/repos/commits/#list-commits-on-a-repository\n * @param {number|string} number - the number of the pull request to list the commits\n * @param {Object} [options] - the filtering options for commits\n * @param {Requestable.callback} [cb] - will receive the commits information\n * @return {Promise} - the promise for the http request\n */\n listCommitsOnPR(number, options, cb) {\n options = options || {};\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n return this._request('GET', `/repos/${this.__fullname}/pulls/${number}/commits`, options, cb);\n }\n\n /**\n * Gets a single commit information for a repository\n * @see https://developer.github.com/v3/repos/commits/#get-a-single-commit\n * @param {string} ref - the reference for the commit-ish\n * @param {Requestable.callback} cb - will receive the commit information\n * @return {Promise} - the promise for the http request\n */\n getSingleCommit(ref, cb) {\n ref = ref || '';\n return this._request('GET', `/repos/${this.__fullname}/commits/${ref}`, null, cb);\n }\n\n /**\n * Get tha sha for a particular object in the repository. This is a convenience function\n * @see https://developer.github.com/v3/repos/contents/#get-contents\n * @param {string} [branch] - the branch to look in, or the repository's default branch if omitted\n * @param {string} path - the path of the file or directory\n * @param {Requestable.callback} cb - will receive a description of the requested object, including a `SHA` property\n * @return {Promise} - the promise for the http request\n */\n getSha(branch, path, cb) {\n branch = branch ? `?ref=${branch}` : '';\n return this._request('GET', `/repos/${this.__fullname}/contents/${path}${branch}`, null, cb);\n }\n\n /**\n * List the commit statuses for a particular sha, branch, or tag\n * @see https://developer.github.com/v3/repos/statuses/#list-statuses-for-a-specific-ref\n * @param {string} sha - the sha, branch, or tag to get statuses for\n * @param {Requestable.callback} cb - will receive the list of statuses\n * @return {Promise} - the promise for the http request\n */\n listStatuses(sha, cb) {\n return this._request('GET', `/repos/${this.__fullname}/commits/${sha}/statuses`, null, cb);\n }\n\n /**\n * Get the combined view of commit statuses for a particular sha, branch, or tag\n * @see https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref\n * @param {string} sha - the sha, branch, or tag to get the combined status for\n * @param {Requestable.callback} cb - will receive the combined status\n * @returns {Promise} - the promise for the http request\n */\n getCombinedStatus(sha, cb) {\n return this._request('GET', `/repos/${this.__fullname}/commits/${sha}/status`, null, cb);\n }\n\n /**\n * Get a description of a git tree\n * @see https://developer.github.com/v3/git/trees/#get-a-tree\n * @param {string} treeSHA - the SHA of the tree to fetch\n * @param {Requestable.callback} cb - will receive the callback data\n * @return {Promise} - the promise for the http request\n */\n getTree(treeSHA, cb) {\n return this._request('GET', `/repos/${this.__fullname}/git/trees/${treeSHA}`, null, cb);\n }\n\n /**\n * Create a blob\n * @see https://developer.github.com/v3/git/blobs/#create-a-blob\n * @param {(string|Buffer|Blob)} content - the content to add to the repository\n * @param {Requestable.callback} cb - will receive the details of the created blob\n * @return {Promise} - the promise for the http request\n */\n createBlob(content, cb) {\n let postBody = this._getContentObject(content);\n\n log('sending content', postBody);\n return this._request('POST', `/repos/${this.__fullname}/git/blobs`, postBody, cb);\n }\n\n /**\n * Get the object that represents the provided content\n * @param {string|Buffer|Blob} content - the content to send to the server\n * @return {Object} the representation of `content` for the GitHub API\n */\n _getContentObject(content) {\n if (typeof content === 'string') {\n log('contet is a string');\n return {\n content: Utf8.encode(content),\n encoding: 'utf-8',\n };\n\n } else if (typeof Buffer !== 'undefined' && content instanceof Buffer) {\n log('We appear to be in Node');\n return {\n content: content.toString('base64'),\n encoding: 'base64',\n };\n\n } else if (typeof Blob !== 'undefined' && content instanceof Blob) {\n log('We appear to be in the browser');\n return {\n content: Base64.encode(content),\n encoding: 'base64',\n };\n\n } else { // eslint-disable-line\n log(`Not sure what this content is: ${typeof content}, ${JSON.stringify(content)}`);\n throw new Error('Unknown content passed to postBlob. Must be string or Buffer (node) or Blob (web)');\n }\n }\n\n /**\n * Update a tree in Git\n * @see https://developer.github.com/v3/git/trees/#create-a-tree\n * @param {string} baseTreeSHA - the SHA of the tree to update\n * @param {string} path - the path for the new file\n * @param {string} blobSHA - the SHA for the blob to put at `path`\n * @param {Requestable.callback} cb - will receive the new tree that is created\n * @return {Promise} - the promise for the http request\n * @deprecated use {@link Repository#createTree} instead\n */\n updateTree(baseTreeSHA, path, blobSHA, cb) {\n let newTree = {\n base_tree: baseTreeSHA, // eslint-disable-line\n tree: [{\n path: path,\n sha: blobSHA,\n mode: '100644',\n type: 'blob',\n }],\n };\n\n return this._request('POST', `/repos/${this.__fullname}/git/trees`, newTree, cb);\n }\n\n /**\n * Create a new tree in git\n * @see https://developer.github.com/v3/git/trees/#create-a-tree\n * @param {Object} tree - the tree to create\n * @param {string} baseSHA - the root sha of the tree\n * @param {Requestable.callback} cb - will receive the new tree that is created\n * @return {Promise} - the promise for the http request\n */\n createTree(tree, baseSHA, cb) {\n return this._request('POST', `/repos/${this.__fullname}/git/trees`, {\n tree,\n base_tree: baseSHA, // eslint-disable-line camelcase\n }, cb);\n }\n\n /**\n * Add a commit to the repository\n * @see https://developer.github.com/v3/git/commits/#create-a-commit\n * @param {string} parent - the SHA of the parent commit\n * @param {string} tree - the SHA of the tree for this commit\n * @param {string} message - the commit message\n * @param {Object} [options] - commit options\n * @param {Object} [options.author] - the author of the commit\n * @param {Object} [options.commiter] - the committer\n * @param {Requestable.callback} cb - will receive the commit that is created\n * @return {Promise} - the promise for the http request\n */\n commit(parent, tree, message, options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n let data = {\n message,\n tree,\n parents: [parent],\n };\n\n data = Object.assign({}, options, data);\n\n return this._request('POST', `/repos/${this.__fullname}/git/commits`, data, cb)\n .then((response) => {\n this.__currentTree.sha = response.data.sha; // Update latest commit\n return response;\n });\n }\n\n /**\n * Update a ref\n * @see https://developer.github.com/v3/git/refs/#update-a-reference\n * @param {string} ref - the ref to update\n * @param {string} commitSHA - the SHA to point the reference to\n * @param {boolean} force - indicates whether to force or ensure a fast-forward update\n * @param {Requestable.callback} cb - will receive the updated ref back\n * @return {Promise} - the promise for the http request\n */\n updateHead(ref, commitSHA, force, cb) {\n return this._request('PATCH', `/repos/${this.__fullname}/git/refs/${ref}`, {\n sha: commitSHA,\n force: force,\n }, cb);\n }\n\n /**\n * Update commit status\n * @see https://developer.github.com/v3/repos/statuses/\n * @param {string} commitSHA - the SHA of the commit that should be updated\n * @param {object} options - Commit status parameters\n * @param {string} options.state - The state of the status. Can be one of: pending, success, error, or failure.\n * @param {string} [options.target_url] - The target URL to associate with this status.\n * @param {string} [options.description] - A short description of the status.\n * @param {string} [options.context] - A string label to differentiate this status among CI systems.\n * @param {Requestable.callback} cb - will receive the updated commit back\n * @return {Promise} - the promise for the http request\n */\n updateStatus(commitSHA, options, cb) {\n return this._request('POST', `/repos/${this.__fullname}/statuses/${commitSHA}`, options, cb);\n }\n\n /**\n * Update repository information\n * @see https://developer.github.com/v3/repos/#edit\n * @param {object} options - New parameters that will be set to the repository\n * @param {string} options.name - Name of the repository\n * @param {string} [options.description] - A short description of the repository\n * @param {string} [options.homepage] - A URL with more information about the repository\n * @param {boolean} [options.private] - Either true to make the repository private, or false to make it public.\n * @param {boolean} [options.has_issues] - Either true to enable issues for this repository, false to disable them.\n * @param {boolean} [options.has_wiki] - Either true to enable the wiki for this repository, false to disable it.\n * @param {boolean} [options.has_downloads] - Either true to enable downloads, false to disable them.\n * @param {string} [options.default_branch] - Updates the default branch for this repository.\n * @param {Requestable.callback} cb - will receive the updated repository back\n * @return {Promise} - the promise for the http request\n */\n updateRepository(options, cb) {\n return this._request('PATCH', `/repos/${this.__fullname}`, options, cb);\n }\n\n /**\n * Get information about the repository\n * @see https://developer.github.com/v3/repos/#get\n * @param {Requestable.callback} cb - will receive the information about the repository\n * @return {Promise} - the promise for the http request\n */\n getDetails(cb) {\n return this._request('GET', `/repos/${this.__fullname}`, null, cb);\n }\n\n /**\n * List the contributors to the repository\n * @see https://developer.github.com/v3/repos/#list-contributors\n * @param {Requestable.callback} cb - will receive the list of contributors\n * @return {Promise} - the promise for the http request\n */\n getContributors(cb) {\n return this._request('GET', `/repos/${this.__fullname}/contributors`, null, cb);\n }\n\n /**\n * List the contributor stats to the repository\n * @see https://developer.github.com/v3/repos/#list-contributors\n * @param {Requestable.callback} cb - will receive the list of contributors\n * @return {Promise} - the promise for the http request\n */\n getContributorStats(cb) {\n return this._request('GET', `/repos/${this.__fullname}/stats/contributors`, null, cb);\n }\n\n /**\n * List the users who are collaborators on the repository. The currently authenticated user must have\n * push access to use this method\n * @see https://developer.github.com/v3/repos/collaborators/#list-collaborators\n * @param {Requestable.callback} cb - will receive the list of collaborators\n * @return {Promise} - the promise for the http request\n */\n getCollaborators(cb) {\n return this._request('GET', `/repos/${this.__fullname}/collaborators`, null, cb);\n }\n\n /**\n * Check if a user is a collaborator on the repository\n * @see https://developer.github.com/v3/repos/collaborators/#check-if-a-user-is-a-collaborator\n * @param {string} username - the user to check\n * @param {Requestable.callback} cb - will receive true if the user is a collaborator and false if they are not\n * @return {Promise} - the promise for the http request {Boolean} [description]\n */\n isCollaborator(username, cb) {\n return this._request('GET', `/repos/${this.__fullname}/collaborators/${username}`, null, cb);\n }\n\n /**\n * Get the contents of a repository\n * @see https://developer.github.com/v3/repos/contents/#get-contents\n * @param {string} ref - the ref to check\n * @param {string} path - the path containing the content to fetch\n * @param {boolean} raw - `true` if the results should be returned raw instead of GitHub's normalized format\n * @param {Requestable.callback} cb - will receive the fetched data\n * @return {Promise} - the promise for the http request\n */\n getContents(ref, path, raw, cb) {\n path = path ? `${encodeURI(path)}` : '';\n return this._request('GET', `/repos/${this.__fullname}/contents/${path}`, {\n ref,\n }, cb, raw);\n }\n\n /**\n * Get the README of a repository\n * @see https://developer.github.com/v3/repos/contents/#get-the-readme\n * @param {string} ref - the ref to check\n * @param {boolean} raw - `true` if the results should be returned raw instead of GitHub's normalized format\n * @param {Requestable.callback} cb - will receive the fetched data\n * @return {Promise} - the promise for the http request\n */\n getReadme(ref, raw, cb) {\n return this._request('GET', `/repos/${this.__fullname}/readme`, {\n ref,\n }, cb, raw);\n }\n\n /**\n * Fork a repository\n * @see https://developer.github.com/v3/repos/forks/#create-a-fork\n * @param {Requestable.callback} cb - will receive the information about the newly created fork\n * @return {Promise} - the promise for the http request\n */\n fork(cb) {\n return this._request('POST', `/repos/${this.__fullname}/forks`, null, cb);\n }\n\n /**\n * Fork a repository to an organization\n * @see https://developer.github.com/v3/repos/forks/#create-a-fork\n * @param {String} org - organization where you'd like to create the fork.\n * @param {Requestable.callback} cb - will receive the information about the newly created fork\n * @return {Promise} - the promise for the http request\n *\n */\n forkToOrg(org, cb) {\n return this._request('POST', `/repos/${this.__fullname}/forks?organization=${org}`, null, cb);\n }\n\n /**\n * List a repository's forks\n * @see https://developer.github.com/v3/repos/forks/#list-forks\n * @param {Requestable.callback} cb - will receive the list of repositories forked from this one\n * @return {Promise} - the promise for the http request\n */\n listForks(cb) {\n return this._request('GET', `/repos/${this.__fullname}/forks`, null, cb);\n }\n\n /**\n * Create a new branch from an existing branch.\n * @param {string} [oldBranch=master] - the name of the existing branch\n * @param {string} newBranch - the name of the new branch\n * @param {Requestable.callback} cb - will receive the commit data for the head of the new branch\n * @return {Promise} - the promise for the http request\n */\n createBranch(oldBranch, newBranch, cb) {\n if (typeof newBranch === 'function') {\n cb = newBranch;\n newBranch = oldBranch;\n oldBranch = 'master';\n }\n\n return this.getRef(`heads/${oldBranch}`)\n .then((response) => {\n let sha = response.data.object.sha;\n return this.createRef({\n sha,\n ref: `refs/heads/${newBranch}`,\n }, cb);\n });\n }\n\n /**\n * Create a new pull request\n * @see https://developer.github.com/v3/pulls/#create-a-pull-request\n * @param {Object} options - the pull request description\n * @param {Requestable.callback} cb - will receive the new pull request\n * @return {Promise} - the promise for the http request\n */\n createPullRequest(options, cb) {\n return this._request('POST', `/repos/${this.__fullname}/pulls`, options, cb);\n }\n\n /**\n * Update a pull request\n * @see https://developer.github.com/v3/pulls/#update-a-pull-request\n * @param {number|string} number - the number of the pull request to update\n * @param {Object} options - the pull request description\n * @param {Requestable.callback} [cb] - will receive the pull request information\n * @return {Promise} - the promise for the http request\n */\n updatePullRequest(number, options, cb) {\n return this._request('PATCH', `/repos/${this.__fullname}/pulls/${number}`, options, cb);\n }\n\n /**\n * List the hooks for the repository\n * @see https://developer.github.com/v3/repos/hooks/#list-hooks\n * @param {Requestable.callback} cb - will receive the list of hooks\n * @return {Promise} - the promise for the http request\n */\n listHooks(cb) {\n return this._request('GET', `/repos/${this.__fullname}/hooks`, null, cb);\n }\n\n /**\n * Get a hook for the repository\n * @see https://developer.github.com/v3/repos/hooks/#get-single-hook\n * @param {number} id - the id of the webook\n * @param {Requestable.callback} cb - will receive the details of the webook\n * @return {Promise} - the promise for the http request\n */\n getHook(id, cb) {\n return this._request('GET', `/repos/${this.__fullname}/hooks/${id}`, null, cb);\n }\n\n /**\n * Add a new hook to the repository\n * @see https://developer.github.com/v3/repos/hooks/#create-a-hook\n * @param {Object} options - the configuration describing the new hook\n * @param {Requestable.callback} cb - will receive the new webhook\n * @return {Promise} - the promise for the http request\n */\n createHook(options, cb) {\n return this._request('POST', `/repos/${this.__fullname}/hooks`, options, cb);\n }\n\n /**\n * Edit an existing webhook\n * @see https://developer.github.com/v3/repos/hooks/#edit-a-hook\n * @param {number} id - the id of the webhook\n * @param {Object} options - the new description of the webhook\n * @param {Requestable.callback} cb - will receive the updated webhook\n * @return {Promise} - the promise for the http request\n */\n updateHook(id, options, cb) {\n return this._request('PATCH', `/repos/${this.__fullname}/hooks/${id}`, options, cb);\n }\n\n /**\n * Delete a webhook\n * @see https://developer.github.com/v3/repos/hooks/#delete-a-hook\n * @param {number} id - the id of the webhook to be deleted\n * @param {Requestable.callback} cb - will receive true if the call is successful\n * @return {Promise} - the promise for the http request\n */\n deleteHook(id, cb) {\n return this._request('DELETE', `/repos/${this.__fullname}/hooks/${id}`, null, cb);\n }\n\n /**\n * List the deploy keys for the repository\n * @see https://developer.github.com/v3/repos/keys/#list-deploy-keys\n * @param {Requestable.callback} cb - will receive the list of deploy keys\n * @return {Promise} - the promise for the http request\n */\n listKeys(cb) {\n return this._request('GET', `/repos/${this.__fullname}/keys`, null, cb);\n }\n\n /**\n * Get a deploy key for the repository\n * @see https://developer.github.com/v3/repos/keys/#get-a-deploy-key\n * @param {number} id - the id of the deploy key\n * @param {Requestable.callback} cb - will receive the details of the deploy key\n * @return {Promise} - the promise for the http request\n */\n getKey(id, cb) {\n return this._request('GET', `/repos/${this.__fullname}/keys/${id}`, null, cb);\n }\n\n /**\n * Add a new deploy key to the repository\n * @see https://developer.github.com/v3/repos/keys/#add-a-new-deploy-key\n * @param {Object} options - the configuration describing the new deploy key\n * @param {Requestable.callback} cb - will receive the new deploy key\n * @return {Promise} - the promise for the http request\n */\n createKey(options, cb) {\n return this._request('POST', `/repos/${this.__fullname}/keys`, options, cb);\n }\n\n /**\n * Delete a deploy key\n * @see https://developer.github.com/v3/repos/keys/#remove-a-deploy-key\n * @param {number} id - the id of the deploy key to be deleted\n * @param {Requestable.callback} cb - will receive true if the call is successful\n * @return {Promise} - the promise for the http request\n */\n deleteKey(id, cb) {\n return this._request('DELETE', `/repos/${this.__fullname}/keys/${id}`, null, cb);\n }\n\n /**\n * Delete a file from a branch\n * @see https://developer.github.com/v3/repos/contents/#delete-a-file\n * @param {string} branch - the branch to delete from, or the default branch if not specified\n * @param {string} path - the path of the file to remove\n * @param {Requestable.callback} cb - will receive the commit in which the delete occurred\n * @return {Promise} - the promise for the http request\n */\n deleteFile(branch, path, cb) {\n return this.getSha(branch, path)\n .then((response) => {\n const deleteCommit = {\n message: `Delete the file at '${path}'`,\n sha: response.data.sha,\n branch,\n };\n return this._request('DELETE', `/repos/${this.__fullname}/contents/${path}`, deleteCommit, cb);\n });\n }\n\n /**\n * Change all references in a repo from oldPath to new_path\n * @param {string} branch - the branch to carry out the reference change, or the default branch if not specified\n * @param {string} oldPath - original path\n * @param {string} newPath - new reference path\n * @param {Requestable.callback} cb - will receive the commit in which the move occurred\n * @return {Promise} - the promise for the http request\n */\n move(branch, oldPath, newPath, cb) {\n let oldSha;\n return this.getRef(`heads/${branch}`)\n .then(({data: {object}}) => this.getTree(`${object.sha}?recursive=true`))\n .then(({data: {tree, sha}}) => {\n oldSha = sha;\n let newTree = tree.map((ref) => {\n if (ref.path === oldPath) {\n ref.path = newPath;\n }\n if (ref.type === 'tree') {\n delete ref.sha;\n }\n return ref;\n });\n return this.createTree(newTree);\n })\n .then(({data: tree}) => this.commit(oldSha, tree.sha, `Renamed '${oldPath}' to '${newPath}'`))\n .then(({data: commit}) => this.updateHead(`heads/${branch}`, commit.sha, true, cb));\n }\n\n /**\n * Write a file to the repository\n * @see https://developer.github.com/v3/repos/contents/#update-a-file\n * @param {string} branch - the name of the branch\n * @param {string} path - the path for the file\n * @param {string} content - the contents of the file\n * @param {string} message - the commit message\n * @param {Object} [options] - commit options\n * @param {Object} [options.author] - the author of the commit\n * @param {Object} [options.commiter] - the committer\n * @param {boolean} [options.encode] - true if the content should be base64 encoded\n * @param {Requestable.callback} cb - will receive the new commit\n * @return {Promise} - the promise for the http request\n */\n writeFile(branch, path, content, message, options, cb) {\n options = options || {};\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n let filePath = path ? encodeURI(path) : '';\n let shouldEncode = options.encode !== false;\n let commit = {\n branch,\n message,\n author: options.author,\n committer: options.committer,\n content: shouldEncode ? Base64.encode(content) : content,\n };\n\n return this.getSha(branch, filePath)\n .then((response) => {\n commit.sha = response.data.sha;\n return this._request('PUT', `/repos/${this.__fullname}/contents/${filePath}`, commit, cb);\n }, () => {\n return this._request('PUT', `/repos/${this.__fullname}/contents/${filePath}`, commit, cb);\n });\n }\n\n /**\n * Check if a repository is starred by you\n * @see https://developer.github.com/v3/activity/starring/#check-if-you-are-starring-a-repository\n * @param {Requestable.callback} cb - will receive true if the repository is starred and false if the repository\n * is not starred\n * @return {Promise} - the promise for the http request {Boolean} [description]\n */\n isStarred(cb) {\n return this._request204or404(`/user/starred/${this.__fullname}`, null, cb);\n }\n\n /**\n * Star a repository\n * @see https://developer.github.com/v3/activity/starring/#star-a-repository\n * @param {Requestable.callback} cb - will receive true if the repository is starred\n * @return {Promise} - the promise for the http request\n */\n star(cb) {\n return this._request('PUT', `/user/starred/${this.__fullname}`, null, cb);\n }\n\n /**\n * Unstar a repository\n * @see https://developer.github.com/v3/activity/starring/#unstar-a-repository\n * @param {Requestable.callback} cb - will receive true if the repository is unstarred\n * @return {Promise} - the promise for the http request\n */\n unstar(cb) {\n return this._request('DELETE', `/user/starred/${this.__fullname}`, null, cb);\n }\n\n /**\n * Create a new release\n * @see https://developer.github.com/v3/repos/releases/#create-a-release\n * @param {Object} options - the description of the release\n * @param {Requestable.callback} cb - will receive the newly created release\n * @return {Promise} - the promise for the http request\n */\n createRelease(options, cb) {\n return this._request('POST', `/repos/${this.__fullname}/releases`, options, cb);\n }\n\n /**\n * Edit a release\n * @see https://developer.github.com/v3/repos/releases/#edit-a-release\n * @param {string} id - the id of the release\n * @param {Object} options - the description of the release\n * @param {Requestable.callback} cb - will receive the modified release\n * @return {Promise} - the promise for the http request\n */\n updateRelease(id, options, cb) {\n return this._request('PATCH', `/repos/${this.__fullname}/releases/${id}`, options, cb);\n }\n\n /**\n * Get information about all releases\n * @see https://developer.github.com/v3/repos/releases/#list-releases-for-a-repository\n * @param {Requestable.callback} cb - will receive the release information\n * @return {Promise} - the promise for the http request\n */\n listReleases(cb) {\n return this._request('GET', `/repos/${this.__fullname}/releases`, null, cb);\n }\n\n /**\n * Get information about a release\n * @see https://developer.github.com/v3/repos/releases/#get-a-single-release\n * @param {string} id - the id of the release\n * @param {Requestable.callback} cb - will receive the release information\n * @return {Promise} - the promise for the http request\n */\n getRelease(id, cb) {\n return this._request('GET', `/repos/${this.__fullname}/releases/${id}`, null, cb);\n }\n\n /**\n * Delete a release\n * @see https://developer.github.com/v3/repos/releases/#delete-a-release\n * @param {string} id - the release to be deleted\n * @param {Requestable.callback} cb - will receive true if the operation is successful\n * @return {Promise} - the promise for the http request\n */\n deleteRelease(id, cb) {\n return this._request('DELETE', `/repos/${this.__fullname}/releases/${id}`, null, cb);\n }\n\n /**\n * Merge a pull request\n * @see https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button\n * @param {number|string} number - the number of the pull request to merge\n * @param {Object} options - the merge options for the pull request\n * @param {Requestable.callback} [cb] - will receive the merge information if the operation is successful\n * @return {Promise} - the promise for the http request\n */\n mergePullRequest(number, options, cb) {\n return this._request('PUT', `/repos/${this.__fullname}/pulls/${number}/merge`, options, cb);\n }\n\n /**\n * Get information about all projects\n * @see https://developer.github.com/v3/projects/#list-repository-projects\n * @param {Requestable.callback} [cb] - will receive the list of projects\n * @return {Promise} - the promise for the http request\n */\n listProjects(cb) {\n return this._requestAllPages(`/repos/${this.__fullname}/projects`, {AcceptHeader: 'inertia-preview'}, cb);\n }\n\n /**\n * Create a new project\n * @see https://developer.github.com/v3/projects/#create-a-repository-project\n * @param {Object} options - the description of the project\n * @param {Requestable.callback} cb - will receive the newly created project\n * @return {Promise} - the promise for the http request\n */\n createProject(options, cb) {\n options = options || {};\n options.AcceptHeader = 'inertia-preview';\n return this._request('POST', `/repos/${this.__fullname}/projects`, options, cb);\n }\n\n}\n\nmodule.exports = Repository;\n","/**\n * @file\n * @copyright 2016 Yahoo Inc.\n * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}.\n * Github.js is freely distributable.\n */\n\nimport axios from 'axios';\nimport debug from 'debug';\nimport {Base64} from 'js-base64';\n\nconst log = debug('github:request');\n\n/**\n * The error structure returned when a network call fails\n */\nclass ResponseError extends Error {\n /**\n * Construct a new ResponseError\n * @param {string} message - an message to return instead of the the default error message\n * @param {string} path - the requested path\n * @param {Object} response - the object returned by Axios\n */\n constructor(message, path, response) {\n super(message);\n this.path = path;\n this.request = response.config;\n this.response = (response || {}).response || response;\n this.status = response.status;\n }\n}\n\n/**\n * Requestable wraps the logic for making http requests to the API\n */\nclass Requestable {\n /**\n * Either a username and password or an oauth token for Github\n * @typedef {Object} Requestable.auth\n * @prop {string} [username] - the Github username\n * @prop {string} [password] - the user's password\n * @prop {token} [token] - an OAuth token\n */\n /**\n * Initialize the http internals.\n * @param {Requestable.auth} [auth] - the credentials to authenticate to Github. If auth is\n * not provided request will be made unauthenticated\n * @param {string} [apiBase=https://api.github.com] - the base Github API URL\n * @param {string} [AcceptHeader=v3] - the accept header for the requests\n */\n constructor(auth, apiBase, AcceptHeader) {\n this.__apiBase = apiBase || 'https://api.github.com';\n this.__auth = {\n token: auth.token,\n username: auth.username,\n password: auth.password,\n };\n this.__AcceptHeader = AcceptHeader || 'v3';\n\n if (auth.token) {\n this.__authorizationHeader = 'token ' + auth.token;\n } else if (auth.username && auth.password) {\n this.__authorizationHeader = 'Basic ' + Base64.encode(auth.username + ':' + auth.password);\n }\n }\n\n /**\n * Compute the URL to use to make a request.\n * @private\n * @param {string} path - either a URL relative to the API base or an absolute URL\n * @return {string} - the URL to use\n */\n __getURL(path) {\n let url = path;\n\n if (path.indexOf('//') === -1) {\n url = this.__apiBase + path;\n }\n\n let newCacheBuster = 'timestamp=' + new Date().getTime();\n return url.replace(/(timestamp=\\d+)/, newCacheBuster);\n }\n\n /**\n * Compute the headers required for an API request.\n * @private\n * @param {boolean} raw - if the request should be treated as JSON or as a raw request\n * @param {string} AcceptHeader - the accept header for the request\n * @return {Object} - the headers to use in the request\n */\n __getRequestHeaders(raw, AcceptHeader) {\n let headers = {\n 'Content-Type': 'application/json;charset=UTF-8',\n 'Accept': 'application/vnd.github.' + (AcceptHeader || this.__AcceptHeader),\n };\n\n if (raw) {\n headers.Accept += '.raw';\n }\n headers.Accept += '+json';\n\n if (this.__authorizationHeader) {\n headers.Authorization = this.__authorizationHeader;\n }\n\n return headers;\n }\n\n /**\n * Sets the default options for API requests\n * @protected\n * @param {Object} [requestOptions={}] - the current options for the request\n * @return {Object} - the options to pass to the request\n */\n _getOptionsWithDefaults(requestOptions = {}) {\n if (!(requestOptions.visibility || requestOptions.affiliation)) {\n requestOptions.type = requestOptions.type || 'all';\n }\n requestOptions.sort = requestOptions.sort || 'updated';\n requestOptions.per_page = requestOptions.per_page || '100'; // eslint-disable-line\n\n return requestOptions;\n }\n\n /**\n * if a `Date` is passed to this function it will be converted to an ISO string\n * @param {*} date - the object to attempt to coerce into an ISO date string\n * @return {string} - the ISO representation of `date` or whatever was passed in if it was not a date\n */\n _dateToISO(date) {\n if (date && (date instanceof Date)) {\n date = date.toISOString();\n }\n\n return date;\n }\n\n /**\n * A function that receives the result of the API request.\n * @callback Requestable.callback\n * @param {Requestable.Error} error - the error returned by the API or `null`\n * @param {(Object|true)} result - the data returned by the API or `true` if the API returns `204 No Content`\n * @param {Object} request - the raw {@linkcode https://github.com/mzabriskie/axios#response-schema Response}\n */\n /**\n * Make a request.\n * @param {string} method - the method for the request (GET, PUT, POST, DELETE)\n * @param {string} path - the path for the request\n * @param {*} [data] - the data to send to the server. For HTTP methods that don't have a body the data\n * will be sent as query parameters\n * @param {Requestable.callback} [cb] - the callback for the request\n * @param {boolean} [raw=false] - if the request should be sent as raw. If this is a falsy value then the\n * request will be made as JSON\n * @return {Promise} - the Promise for the http request\n */\n _request(method, path, data, cb, raw) {\n const url = this.__getURL(path);\n\n const AcceptHeader = (data || {}).AcceptHeader;\n if (AcceptHeader) {\n delete data.AcceptHeader;\n }\n const headers = this.__getRequestHeaders(raw, AcceptHeader);\n\n let queryParams = {};\n\n const shouldUseDataAsParams = data && (typeof data === 'object') && methodHasNoBody(method);\n if (shouldUseDataAsParams) {\n queryParams = data;\n data = undefined;\n }\n\n const config = {\n url: url,\n method: method,\n headers: headers,\n params: queryParams,\n data: data,\n responseType: raw ? 'text' : 'json',\n };\n\n log(`${config.method} to ${config.url}`);\n const requestPromise = axios(config).catch(callbackErrorOrThrow(cb, path));\n\n if (cb) {\n requestPromise.then((response) => {\n if (response.data && Object.keys(response.data).length > 0) {\n // When data has results\n cb(null, response.data, response);\n } else if (config.method !== 'GET' && Object.keys(response.data).length < 1) {\n // True when successful submit a request and receive a empty object\n cb(null, (response.status < 300), response);\n } else {\n cb(null, response.data, response);\n }\n });\n }\n\n return requestPromise;\n }\n\n /**\n * Make a request to an endpoint the returns 204 when true and 404 when false\n * @param {string} path - the path to request\n * @param {Object} data - any query parameters for the request\n * @param {Requestable.callback} cb - the callback that will receive `true` or `false`\n * @param {method} [method=GET] - HTTP Method to use\n * @return {Promise} - the promise for the http request\n */\n _request204or404(path, data, cb, method = 'GET') {\n return this._request(method, path, data)\n .then(function success(response) {\n if (cb) {\n cb(null, true, response);\n }\n return true;\n }, function failure(response) {\n if (response.response.status === 404) {\n if (cb) {\n cb(null, false, response);\n }\n return false;\n }\n\n if (cb) {\n cb(response);\n }\n throw response;\n });\n }\n\n /**\n * Make a request and fetch all the available data. Github will paginate responses so for queries\n * that might span multiple pages this method is preferred to {@link Requestable#request}\n * @param {string} path - the path to request\n * @param {Object} options - the query parameters to include\n * @param {Requestable.callback} [cb] - the function to receive the data. The returned data will always be an array.\n * @param {Object[]} results - the partial results. This argument is intended for internal use only.\n * @return {Promise} - a promise which will resolve when all pages have been fetched\n * @deprecated This will be folded into {@link Requestable#_request} in the 2.0 release.\n */\n _requestAllPages(path, options, cb, results) {\n results = results || [];\n\n return this._request('GET', path, options)\n .then((response) => {\n let thisGroup;\n if (response.data instanceof Array) {\n thisGroup = response.data;\n } else if (response.data.items instanceof Array) {\n thisGroup = response.data.items;\n } else {\n let message = `cannot figure out how to append ${response.data} to the result set`;\n throw new ResponseError(message, path, response);\n }\n results.push(...thisGroup);\n\n const nextUrl = getNextPage(response.headers.link);\n if(nextUrl) {\n if (!options) {\n options = {};\n }\n options.page = parseInt(\n nextUrl.match(/([&\\?]page=[0-9]*)/g)\n .shift()\n .split('=')\n .pop()\n );\n if (!(options && typeof options.page !== 'number')) {\n log(`getting next page: ${nextUrl}`);\n return this._requestAllPages(nextUrl, options, cb, results);\n }\n }\n\n if (cb) {\n cb(null, results, response);\n }\n\n response.data = results;\n return response;\n }).catch(callbackErrorOrThrow(cb, path));\n }\n}\n\nmodule.exports = Requestable;\n\n// ////////////////////////// //\n// Private helper functions //\n// ////////////////////////// //\nconst METHODS_WITH_NO_BODY = ['GET', 'HEAD', 'DELETE'];\nfunction methodHasNoBody(method) {\n return METHODS_WITH_NO_BODY.indexOf(method) !== -1;\n}\n\nfunction getNextPage(linksHeader = '') {\n const links = linksHeader.split(/\\s*,\\s*/); // splits and strips the urls\n return links.reduce(function(nextUrl, link) {\n if (link.search(/rel=\"next\"/) !== -1) {\n return (link.match(/<(.*)>/) || [])[1];\n }\n\n return nextUrl;\n }, undefined);\n}\n\nfunction callbackErrorOrThrow(cb, path) {\n return function handler(object) {\n let error;\n if (object.hasOwnProperty('config')) {\n const {response: {status, statusText}, config: {method, url}} = object;\n let message = (`${status} error making request ${method} ${url}: \"${statusText}\"`);\n error = new ResponseError(message, path, object);\n log(`${message} ${JSON.stringify(object.data)}`);\n } else {\n error = object;\n }\n if (cb) {\n log('going to error callback');\n cb(error);\n } else {\n log('throwing error');\n throw error;\n }\n };\n}\n","/**\n * @file\n * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc.\n * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}.\n * Github.js is freely distributable.\n */\n\nimport Requestable from './Requestable';\nimport debug from 'debug';\nconst log = debug('github:search');\n\n/**\n * Wrap the Search API\n */\nclass Search extends Requestable {\n /**\n * Create a Search\n * @param {Object} defaults - defaults for the search\n * @param {Requestable.auth} [auth] - information required to authenticate to Github\n * @param {string} [apiBase=https://api.github.com] - the base Github API URL\n */\n constructor(defaults, auth, apiBase) {\n super(auth, apiBase);\n this.__defaults = this._getOptionsWithDefaults(defaults);\n }\n\n /**\n * Available search options\n * @see https://developer.github.com/v3/search/#parameters\n * @typedef {Object} Search.Params\n * @param {string} q - the query to make\n * @param {string} sort - the sort field, one of `stars`, `forks`, or `updated`.\n * Default is [best match](https://developer.github.com/v3/search/#ranking-search-results)\n * @param {string} order - the ordering, either `asc` or `desc`\n */\n /**\n * Perform a search on the GitHub API\n * @private\n * @param {string} path - the scope of the search\n * @param {Search.Params} [withOptions] - additional parameters for the search\n * @param {Requestable.callback} [cb] - will receive the results of the search\n * @return {Promise} - the promise for the http request\n */\n _search(path, withOptions = {}, cb = undefined) {\n let requestOptions = {};\n Object.keys(this.__defaults).forEach((prop) => {\n requestOptions[prop] = this.__defaults[prop];\n });\n Object.keys(withOptions).forEach((prop) => {\n requestOptions[prop] = withOptions[prop];\n });\n\n log(`searching ${path} with options:`, requestOptions);\n return this._requestAllPages(`/search/${path}`, requestOptions, cb);\n }\n\n /**\n * Search for repositories\n * @see https://developer.github.com/v3/search/#search-repositories\n * @param {Search.Params} [options] - additional parameters for the search\n * @param {Requestable.callback} [cb] - will receive the results of the search\n * @return {Promise} - the promise for the http request\n */\n forRepositories(options, cb) {\n return this._search('repositories', options, cb);\n }\n\n /**\n * Search for code\n * @see https://developer.github.com/v3/search/#search-code\n * @param {Search.Params} [options] - additional parameters for the search\n * @param {Requestable.callback} [cb] - will receive the results of the search\n * @return {Promise} - the promise for the http request\n */\n forCode(options, cb) {\n return this._search('code', options, cb);\n }\n\n /**\n * Search for issues\n * @see https://developer.github.com/v3/search/#search-issues\n * @param {Search.Params} [options] - additional parameters for the search\n * @param {Requestable.callback} [cb] - will receive the results of the search\n * @return {Promise} - the promise for the http request\n */\n forIssues(options, cb) {\n return this._search('issues', options, cb);\n }\n\n /**\n * Search for users\n * @see https://developer.github.com/v3/search/#search-users\n * @param {Search.Params} [options] - additional parameters for the search\n * @param {Requestable.callback} [cb] - will receive the results of the search\n * @return {Promise} - the promise for the http request\n */\n forUsers(options, cb) {\n return this._search('users', options, cb);\n }\n}\n\nmodule.exports = Search;\n","/**\n * @file\n * @copyright 2016 Matt Smith (Development Seed)\n * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}.\n * Github.js is freely distributable.\n */\n\nimport Requestable from './Requestable';\nimport debug from 'debug';\nconst log = debug('github:team');\n\n/**\n * A Team allows scoping of API requests to a particular Github Organization Team.\n */\nclass Team extends Requestable {\n /**\n * Create a Team.\n * @param {string} [teamId] - the id for the team\n * @param {Requestable.auth} [auth] - information required to authenticate to Github\n * @param {string} [apiBase=https://api.github.com] - the base Github API URL\n */\n constructor(teamId, auth, apiBase) {\n super(auth, apiBase);\n this.__teamId = teamId;\n }\n\n /**\n * Get Team information\n * @see https://developer.github.com/v3/orgs/teams/#get-team\n * @param {Requestable.callback} [cb] - will receive the team\n * @return {Promise} - the promise for the http request\n */\n getTeam(cb) {\n log(`Fetching Team ${this.__teamId}`);\n return this._request('Get', `/teams/${this.__teamId}`, undefined, cb);\n }\n\n /**\n * List the Team's repositories\n * @see https://developer.github.com/v3/orgs/teams/#list-team-repos\n * @param {Requestable.callback} [cb] - will receive the list of repositories\n * @return {Promise} - the promise for the http request\n */\n listRepos(cb) {\n log(`Fetching repositories for Team ${this.__teamId}`);\n return this._requestAllPages(`/teams/${this.__teamId}/repos`, undefined, cb);\n }\n\n /**\n * Edit Team information\n * @see https://developer.github.com/v3/orgs/teams/#edit-team\n * @param {object} options - Parameters for team edit\n * @param {string} options.name - The name of the team\n * @param {string} [options.description] - Team description\n * @param {string} [options.repo_names] - Repos to add the team to\n * @param {string} [options.privacy=secret] - The level of privacy the team should have. Can be either one\n * of: `secret`, or `closed`\n * @param {Requestable.callback} [cb] - will receive the updated team\n * @return {Promise} - the promise for the http request\n */\n editTeam(options, cb) {\n log(`Editing Team ${this.__teamId}`);\n return this._request('PATCH', `/teams/${this.__teamId}`, options, cb);\n }\n\n /**\n * List the users who are members of the Team\n * @see https://developer.github.com/v3/orgs/teams/#list-team-members\n * @param {object} options - Parameters for listing team users\n * @param {string} [options.role=all] - can be one of: `all`, `maintainer`, or `member`\n * @param {Requestable.callback} [cb] - will receive the list of users\n * @return {Promise} - the promise for the http request\n */\n listMembers(options, cb) {\n log(`Getting members of Team ${this.__teamId}`);\n return this._requestAllPages(`/teams/${this.__teamId}/members`, options, cb);\n }\n\n /**\n * Get Team membership status for a user\n * @see https://developer.github.com/v3/orgs/teams/#get-team-membership\n * @param {string} username - can be one of: `all`, `maintainer`, or `member`\n * @param {Requestable.callback} [cb] - will receive the membership status of a user\n * @return {Promise} - the promise for the http request\n */\n getMembership(username, cb) {\n log(`Getting membership of user ${username} in Team ${this.__teamId}`);\n return this._request('GET', `/teams/${this.__teamId}/memberships/${username}`, undefined, cb);\n }\n\n /**\n * Add a member to the Team\n * @see https://developer.github.com/v3/orgs/teams/#add-team-membership\n * @param {string} username - can be one of: `all`, `maintainer`, or `member`\n * @param {object} options - Parameters for adding a team member\n * @param {string} [options.role=member] - The role that this user should have in the team. Can be one\n * of: `member`, or `maintainer`\n * @param {Requestable.callback} [cb] - will receive the membership status of added user\n * @return {Promise} - the promise for the http request\n */\n addMembership(username, options, cb) {\n log(`Adding user ${username} to Team ${this.__teamId}`);\n return this._request('PUT', `/teams/${this.__teamId}/memberships/${username}`, options, cb);\n }\n\n /**\n * Get repo management status for team\n * @see https://developer.github.com/v3/orgs/teams/#remove-team-membership\n * @param {string} owner - Organization name\n * @param {string} repo - Repo name\n * @param {Requestable.callback} [cb] - will receive the membership status of added user\n * @return {Promise} - the promise for the http request\n */\n isManagedRepo(owner, repo, cb) {\n log(`Getting repo management by Team ${this.__teamId} for repo ${owner}/${repo}`);\n return this._request204or404(`/teams/${this.__teamId}/repos/${owner}/${repo}`, undefined, cb);\n }\n\n /**\n * Add or Update repo management status for team\n * @see https://developer.github.com/v3/orgs/teams/#add-or-update-team-repository\n * @param {string} owner - Organization name\n * @param {string} repo - Repo name\n * @param {object} options - Parameters for adding or updating repo management for the team\n * @param {string} [options.permission] - The permission to grant the team on this repository. Can be one\n * of: `pull`, `push`, or `admin`\n * @param {Requestable.callback} [cb] - will receive the membership status of added user\n * @return {Promise} - the promise for the http request\n */\n manageRepo(owner, repo, options, cb) {\n log(`Adding or Updating repo management by Team ${this.__teamId} for repo ${owner}/${repo}`);\n return this._request204or404(`/teams/${this.__teamId}/repos/${owner}/${repo}`, options, cb, 'PUT');\n }\n\n /**\n * Remove repo management status for team\n * @see https://developer.github.com/v3/orgs/teams/#remove-team-repository\n * @param {string} owner - Organization name\n * @param {string} repo - Repo name\n * @param {Requestable.callback} [cb] - will receive the membership status of added user\n * @return {Promise} - the promise for the http request\n */\n unmanageRepo(owner, repo, cb) {\n log(`Remove repo management by Team ${this.__teamId} for repo ${owner}/${repo}`);\n return this._request204or404(`/teams/${this.__teamId}/repos/${owner}/${repo}`, undefined, cb, 'DELETE');\n }\n\n /**\n * Delete Team\n * @see https://developer.github.com/v3/orgs/teams/#delete-team\n * @param {Requestable.callback} [cb] - will receive the list of repositories\n * @return {Promise} - the promise for the http request\n */\n deleteTeam(cb) {\n log(`Deleting Team ${this.__teamId}`);\n return this._request204or404(`/teams/${this.__teamId}`, undefined, cb, 'DELETE');\n }\n}\n\nmodule.exports = Team;\n","/**\n * @file\n * @copyright 2013 Michael Aufreiter (Development Seed) and 2016 Yahoo Inc.\n * @license Licensed under {@link https://spdx.org/licenses/BSD-3-Clause-Clear.html BSD-3-Clause-Clear}.\n * Github.js is freely distributable.\n */\n\nimport Requestable from './Requestable';\nimport debug from 'debug';\nconst log = debug('github:user');\n\n/**\n * A User allows scoping of API requests to a particular Github user.\n */\nclass User extends Requestable {\n /**\n * Create a User.\n * @param {string} [username] - the user to use for user-scoped queries\n * @param {Requestable.auth} [auth] - information required to authenticate to Github\n * @param {string} [apiBase=https://api.github.com] - the base Github API URL\n */\n constructor(username, auth, apiBase) {\n super(auth, apiBase);\n this.__user = username;\n }\n\n /**\n * Get the url for the request. (dependent on if we're requesting for the authenticated user or not)\n * @private\n * @param {string} endpoint - the endpoint being requested\n * @return {string} - the resolved endpoint\n */\n __getScopedUrl(endpoint) {\n if (this.__user) {\n return endpoint ?\n `/users/${this.__user}/${endpoint}` :\n `/users/${this.__user}`\n ;\n\n } else { // eslint-disable-line\n switch (endpoint) {\n case '':\n return '/user';\n\n case 'notifications':\n case 'gists':\n return `/${endpoint}`;\n\n default:\n return `/user/${endpoint}`;\n }\n }\n }\n\n /**\n * List the user's repositories\n * @see https://developer.github.com/v3/repos/#list-user-repositories\n * @param {Object} [options={}] - any options to refine the search\n * @param {Requestable.callback} [cb] - will receive the list of repositories\n * @return {Promise} - the promise for the http request\n */\n listRepos(options, cb) {\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options = this._getOptionsWithDefaults(options);\n\n log(`Fetching repositories with options: ${JSON.stringify(options)}`);\n return this._requestAllPages(this.__getScopedUrl('repos'), options, cb);\n }\n\n /**\n * List the orgs that the user belongs to\n * @see https://developer.github.com/v3/orgs/#list-user-organizations\n * @param {Requestable.callback} [cb] - will receive the list of organizations\n * @return {Promise} - the promise for the http request\n */\n listOrgs(cb) {\n return this._request('GET', this.__getScopedUrl('orgs'), null, cb);\n }\n\n /**\n * List followers of a user\n * @see https://developer.github.com/v3/users/followers/#list-followers-of-a-user\n * @param {Requestable.callback} [cb] - will receive the list of followers\n * @return {Promise} - the promise for the http request\n */\n listFollowers(cb) {\n return this._request('GET', this.__getScopedUrl('followers'), null, cb);\n }\n\n /**\n * List users followed by another user\n * @see https://developer.github.com/v3/users/followers/#list-users-followed-by-another-user\n * @param {Requestable.callback} [cb] - will receive the list of who a user is following\n * @return {Promise} - the promise for the http request\n */\n listFollowing(cb) {\n return this._request('GET', this.__getScopedUrl('following'), null, cb);\n }\n\n /**\n * List the user's gists\n * @see https://developer.github.com/v3/gists/#list-a-users-gists\n * @param {Requestable.callback} [cb] - will receive the list of gists\n * @return {Promise} - the promise for the http request\n */\n listGists(cb) {\n return this._request('GET', this.__getScopedUrl('gists'), null, cb);\n }\n\n /**\n * List the user's notifications\n * @see https://developer.github.com/v3/activity/notifications/#list-your-notifications\n * @param {Object} [options={}] - any options to refine the search\n * @param {Requestable.callback} [cb] - will receive the list of repositories\n * @return {Promise} - the promise for the http request\n */\n listNotifications(options, cb) {\n options = options || {};\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n\n options.since = this._dateToISO(options.since);\n options.before = this._dateToISO(options.before);\n\n return this._request('GET', this.__getScopedUrl('notifications'), options, cb);\n }\n\n /**\n * Show the user's profile\n * @see https://developer.github.com/v3/users/#get-a-single-user\n * @param {Requestable.callback} [cb] - will receive the user's information\n * @return {Promise} - the promise for the http request\n */\n getProfile(cb) {\n return this._request('GET', this.__getScopedUrl(''), null, cb);\n }\n\n /**\n * Gets the list of starred repositories for the user\n * @see https://developer.github.com/v3/activity/starring/#list-repositories-being-starred\n * @param {Requestable.callback} [cb] - will receive the list of starred repositories\n * @return {Promise} - the promise for the http request\n */\n listStarredRepos(cb) {\n let requestOptions = this._getOptionsWithDefaults();\n return this._requestAllPages(this.__getScopedUrl('starred'), requestOptions, cb);\n }\n\n /**\n * Gets the list of starred gists for the user\n * @see https://developer.github.com/v3/gists/#list-starred-gists\n * @param {Object} [options={}] - any options to refine the search\n * @param {Requestable.callback} [cb] - will receive the list of gists\n * @return {Promise} - the promise for the http request\n */\n listStarredGists(options, cb) {\n options = options || {};\n if (typeof options === 'function') {\n cb = options;\n options = {};\n }\n options.since = this._dateToISO(options.since);\n return this._request('GET', '/gists/starred', options, cb);\n }\n\n /**\n * List email addresses for a user\n * @see https://developer.github.com/v3/users/emails/#list-email-addresses-for-a-user\n * @param {Requestable.callback} [cb] - will receive the list of emails\n * @return {Promise} - the promise for the http request\n */\n getEmails(cb) {\n return this._request('GET', '/user/emails', null, cb);\n }\n\n /**\n * Have the authenticated user follow this user\n * @see https://developer.github.com/v3/users/followers/#follow-a-user\n * @param {string} username - the user to follow\n * @param {Requestable.callback} [cb] - will receive true if the request succeeds\n * @return {Promise} - the promise for the http request\n */\n follow(username, cb) {\n return this._request('PUT', `/user/following/${username}`, null, cb);\n }\n\n /**\n * Have the currently authenticated user unfollow this user\n * @see https://developer.github.com/v3/users/followers/#follow-a-user\n * @param {string} username - the user to unfollow\n * @param {Requestable.callback} [cb] - receives true if the request succeeds\n * @return {Promise} - the promise for the http request\n */\n unfollow(username, cb) {\n return this._request('DELETE', `/user/following/${username}`, null, cb);\n }\n\n /**\n * Create a new repository for the currently authenticated user\n * @see https://developer.github.com/v3/repos/#create\n * @param {object} options - the repository definition\n * @param {Requestable.callback} [cb] - will receive the API response\n * @return {Promise} - the promise for the http request\n */\n createRepo(options, cb) {\n return this._request('POST', '/user/repos', options, cb);\n }\n}\n\nmodule.exports = User;\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\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 var i\n for (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(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\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","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\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 '<Buffer ' + str + '>'\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","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.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","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*\n * base64.js\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n */\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n ? module.exports = factory(global)\n : typeof define === 'function' && define.amd\n ? define(factory) : factory(global)\n}((\n typeof self !== 'undefined' ? self\n : typeof window !== 'undefined' ? window\n : typeof global !== 'undefined' ? global\n: this\n), function(global) {\n 'use strict';\n // existing version for noConflict()\n global = global || {};\n var _Base64 = global.Base64;\n var version = \"2.6.4\";\n // constants\n var b64chars\n = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n var b64tab = function(bin) {\n var t = {};\n for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;\n return t;\n }(b64chars);\n var fromCharCode = String.fromCharCode;\n // encoder stuff\n var cb_utob = function(c) {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6))\n + fromCharCode(0x80 | (cc & 0x3f)))\n : (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f))\n + fromCharCode(0x80 | ((cc >>> 6) & 0x3f))\n + fromCharCode(0x80 | ( cc & 0x3f)));\n } else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07))\n + fromCharCode(0x80 | ((cc >>> 12) & 0x3f))\n + fromCharCode(0x80 | ((cc >>> 6) & 0x3f))\n + fromCharCode(0x80 | ( cc & 0x3f)));\n }\n };\n var re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n var utob = function(u) {\n return u.replace(re_utob, cb_utob);\n };\n var cb_encode = function(ccc) {\n var padlen = [0, 2, 1][ccc.length % 3],\n ord = ccc.charCodeAt(0) << 16\n | ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8)\n | ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)),\n chars = [\n b64chars.charAt( ord >>> 18),\n b64chars.charAt((ord >>> 12) & 63),\n padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),\n padlen >= 1 ? '=' : b64chars.charAt(ord & 63)\n ];\n return chars.join('');\n };\n var btoa = global.btoa && typeof global.btoa == 'function'\n ? function(b){ return global.btoa(b) } : function(b) {\n if (b.match(/[^\\x00-\\xFF]/)) throw new RangeError(\n 'The string contains invalid characters.'\n );\n return b.replace(/[\\s\\S]{1,3}/g, cb_encode);\n };\n var _encode = function(u) {\n return btoa(utob(String(u)));\n };\n var mkUriSafe = function (b64) {\n return b64.replace(/[+\\/]/g, function(m0) {\n return m0 == '+' ? '-' : '_';\n }).replace(/=/g, '');\n };\n var encode = function(u, urisafe) {\n return urisafe ? mkUriSafe(_encode(u)) : _encode(u);\n };\n var encodeURI = function(u) { return encode(u, true) };\n var fromUint8Array;\n if (global.Uint8Array) fromUint8Array = function(a, urisafe) {\n // return btoa(fromCharCode.apply(null, a));\n var b64 = '';\n for (var i = 0, l = a.length; i < l; i += 3) {\n var a0 = a[i], a1 = a[i+1], a2 = a[i+2];\n var ord = a0 << 16 | a1 << 8 | a2;\n b64 += b64chars.charAt( ord >>> 18)\n + b64chars.charAt((ord >>> 12) & 63)\n + ( typeof a1 != 'undefined'\n ? b64chars.charAt((ord >>> 6) & 63) : '=')\n + ( typeof a2 != 'undefined'\n ? b64chars.charAt( ord & 63) : '=');\n }\n return urisafe ? mkUriSafe(b64) : b64;\n };\n // decoder stuff\n var re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\n var cb_btou = function(cccc) {\n switch(cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)),\n offset = cp - 0x10000;\n return (fromCharCode((offset >>> 10) + 0xD800)\n + fromCharCode((offset & 0x3FF) + 0xDC00));\n case 3:\n return fromCharCode(\n ((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2))\n );\n default:\n return fromCharCode(\n ((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1))\n );\n }\n };\n var btou = function(b) {\n return b.replace(re_btou, cb_btou);\n };\n var cb_decode = function(cccc) {\n var len = cccc.length,\n padlen = len % 4,\n n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0)\n | (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0)\n | (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0)\n | (len > 3 ? b64tab[cccc.charAt(3)] : 0),\n chars = [\n fromCharCode( n >>> 16),\n fromCharCode((n >>> 8) & 0xff),\n fromCharCode( n & 0xff)\n ];\n chars.length -= [0, 0, 2, 1][padlen];\n return chars.join('');\n };\n var _atob = global.atob && typeof global.atob == 'function'\n ? function(a){ return global.atob(a) } : function(a){\n return a.replace(/\\S{1,4}/g, cb_decode);\n };\n var atob = function(a) {\n return _atob(String(a).replace(/[^A-Za-z0-9\\+\\/]/g, ''));\n };\n var _decode = function(a) { return btou(_atob(a)) };\n var _fromURI = function(a) {\n return String(a).replace(/[-_]/g, function(m0) {\n return m0 == '-' ? '+' : '/'\n }).replace(/[^A-Za-z0-9\\+\\/]/g, '');\n };\n var decode = function(a){\n return _decode(_fromURI(a));\n };\n var toUint8Array;\n if (global.Uint8Array) toUint8Array = function(a) {\n return Uint8Array.from(atob(_fromURI(a)), function(c) {\n return c.charCodeAt(0);\n });\n };\n var noConflict = function() {\n var Base64 = global.Base64;\n global.Base64 = _Base64;\n return Base64;\n };\n // export Base64\n global.Base64 = {\n VERSION: version,\n atob: atob,\n btoa: btoa,\n fromBase64: decode,\n toBase64: encode,\n utob: utob,\n encode: encode,\n encodeURI: encodeURI,\n btou: btou,\n decode: decode,\n noConflict: noConflict,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array\n };\n // if ES5 is available, make Base64.extendString() available\n if (typeof Object.defineProperty === 'function') {\n var noEnum = function(v){\n return {value:v,enumerable:false,writable:true,configurable:true};\n };\n global.Base64.extendString = function () {\n Object.defineProperty(\n String.prototype, 'fromBase64', noEnum(function () {\n return decode(this)\n }));\n Object.defineProperty(\n String.prototype, 'toBase64', noEnum(function (urisafe) {\n return encode(this, urisafe)\n }));\n Object.defineProperty(\n String.prototype, 'toBase64URI', noEnum(function () {\n return encode(this, true)\n }));\n };\n }\n //\n // export Base64 to the namespace\n //\n if (global['Meteor']) { // Meteor.js\n Base64 = global.Base64;\n }\n // module.exports and AMD are mutually exclusive.\n // module.exports has precedence.\n if (typeof module !== 'undefined' && module.exports) {\n module.exports.Base64 = global.Base64;\n }\n else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([], function(){ return global.Base64 });\n }\n // that's it!\n return {Base64: global.Base64}\n}));\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\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","/*! https://mths.be/utf8js v2.1.2 by @mathias */\n;(function(root) {\n\n\t// Detect free variables `exports`\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code,\n\t// and use it as `root`\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar utf8 = {\n\t\t'version': '2.1.2',\n\t\t'encode': utf8encode,\n\t\t'decode': utf8decode\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn utf8;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = utf8;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tvar object = {};\n\t\t\tvar hasOwnProperty = object.hasOwnProperty;\n\t\t\tfor (var key in utf8) {\n\t\t\t\thasOwnProperty.call(utf8, key) && (freeExports[key] = utf8[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.utf8 = utf8;\n\t}\n\n}(this));\n"]}
\No newline at end of file