{"version":3,"sources":["webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/axios/lib/cancel/CanceledError.js","webpack:///./node_modules/@github/webauthn-json/dist/main/webauthn-json.js","webpack:///app/javascript/opt/mastodon/app/javascript/core/two_factor_authentication.js","webpack:///./node_modules/axios/lib/defaults/index.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/initial_state.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/defaults/transitional.js","webpack:///./node_modules/axios/lib/helpers/toFormData.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/env/data.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/features/emoji/unicode_to_filename.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/parseProtocol.js","webpack:///./node_modules/axios/lib/helpers/null.js","webpack:///./node_modules/axios/lib/helpers/validator.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/ready.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/features/emoji/emoji.js","webpack:///./node_modules/escape-html/index.js","webpack:///app/javascript/opt/mastodon/app/javascript/packs/public-path.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/features/emoji/emoji_unicode_mapping_light.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/substring-trie/index.js","webpack:///./node_modules/axios/lib/core/AxiosError.js","webpack:///app/javascript/opt/mastodon/app/javascript/mastodon/utils/config.js","webpack:///app/javascript/opt/mastodon/app/javascript/core/settings.js"],"names":["runtime","exports","undefined","Op","Object","prototype","hasOwn","hasOwnProperty","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","key","value","defineProperty","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","state","GenStateSuspendedStart","method","arg","GenStateExecuting","Error","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","done","GenStateSuspendedYield","makeInvokeMethod","fn","call","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","invoke","resolve","reject","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","module","regeneratorRuntime","accidentalStrictMode","globalThis","Function","AxiosError","CanceledError","message","ERR_CANCELED","inherits","__CANCEL__","e","t","n","replace","r","atob","o","ArrayBuffer","c","Uint8Array","charCodeAt","String","fromCharCode","btoa","Array","map","entries","schema","required","id","transports","appid","appidExclude","credProps","a","s","publicKey","rp","user","challenge","pubKeyCredParams","timeout","excludeCredentials","authenticatorSelection","attestation","extensions","signal","p","rawId","response","clientDataJSON","attestationObject","clientExtensionResults","l","mediation","rpId","allowCredentials","userVerification","u","authenticatorData","signature","userHandle","hideFlashMessages","from","document","getElementsByClassName","flashMessage","classList","add","callback","url","body","CSRFSelector","axios","post","JSON","stringify","headers","querySelector","getAttribute","credentials","window","location","data","redirect_path","catch","status","getElementById","remove","console","ready","navigator","get","PublicKeyCredential","unsupported_browser_message","disabled","webAuthnCredentialRegistrationForm","addEventListener","event","preventDefault","nickname","target","getClientExtensionResults","WebAuthnJSON","credential","focus","webAuthnCredentialAuthenticationForm","otpAuthenticationForm","utils","normalizeHeaderName","transitionalDefaults","toFormData","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","isUndefined","adapter","defaults","transitional","XMLHttpRequest","process","toString","transformRequest","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isFileList","isObjectPayload","isObject","contentType","_FormData","env","FormData","rawValue","parser","encoder","isString","parse","trim","stringifySafely","transformResponse","silentJSONParsing","forcedJSONParsing","strictJSONParsing","responseType","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","merge","element","initialState","textContent","getMeta","prop","meta","reduceMotion","autoPlayGif","displayMedia","expandSpoilers","unfollowModal","boostModal","deleteModal","me","searchEnabled","maxChars","max_toot_chars","invitesEnabled","limitedFederationMode","repository","source_url","version","mascot","profile_directory","isStaff","forceSingleColumn","useBlurhash","usePendingItems","showTrends","title","cropImages","disableSwiping","languages","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","concat","drainQueue","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","arguments","apply","browser","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","thisArg","encode","val","encodeURIComponent","params","paramsSerializer","serializedParams","parts","isArray","v","isDate","toISOString","join","hashmarkIndex","indexOf","clarifyTimeoutError","formData","stack","convertValue","isTypedArray","Blob","Buffer","build","parentKey","isPlainObject","arr","fullKey","endsWith","toArray","el","append","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","parseProtocol","config","onCanceled","requestData","requestHeaders","cancelToken","unsubscribe","removeEventListener","isStandardBrowserEnv","request","auth","username","password","unescape","Authorization","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","open","toUpperCase","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","withCredentials","read","toLowerCase","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancel","abort","subscribe","aborted","protocol","ERR_BAD_REQUEST","send","isAbsoluteURL","combineURLs","requestedURL","config1","config2","getMergedValue","source","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","cache","bind","kindOf","thing","str","kindOfTest","isFunction","TypedArray","pattern","isView","isNumber","pipe","product","assignValue","extend","b","stripBOM","content","superConstructor","props","descriptors","assign","toFlatObject","sourceObj","destObj","filter","merged","getOwnPropertyNames","searchString","position","lastIndex","unicodeToFilename","charCode","Axios","mergeConfig","createInstance","defaultConfig","instance","instanceConfig","CancelToken","isCancel","VERSION","Cancel","all","promises","spread","isAxiosError","default","InterceptorManager","dispatchRequest","validator","validators","interceptors","configOrUrl","assertOptions","boolean","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","promise","responseInterceptorChain","chain","shift","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","handlers","use","options","eject","h","transformData","throwIfCancellationRequested","throwIfRequested","reason","fns","normalizedName","Math","floor","write","expires","path","domain","secure","cookie","Date","toGMTString","match","RegExp","decodeURIComponent","now","test","relativeURL","ignoreDuplicateOf","parsed","split","line","substr","originURL","msie","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","host","search","hash","hostname","port","pathname","requestURL","exec","deprecatedWarnings","formatMessage","opt","desc","opts","ERR_DEPRECATED","warn","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","executor","resolvePromise","token","_listeners","onfulfilled","_resolve","listener","index","splice","payload","Rails","linkClickSelector","buttonClickSelector","selector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","cspNonce","m","Element","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","$","querySelectorAll","csrfParam","csrfToken","CSRFProtection","xhr","refreshCSRFTokens","param","input","CustomEvent","fire","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","defaultPrevented","dispatchEvent","stopEverything","stopPropagation","stopImmediatePropagation","eventType","handler","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","getResponseHeader","success","beforeSend","OPENED","dataType","accept","crossDomain","DONE","head","appendChild","removeChild","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","serializeElement","additionalParam","inputs","elements","option","selected","checked","formElements","form","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","handleMethod","formContent","link","action","style","display","click","isRemote","handleRemote","button","enctype","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","start","_rails_loaded","loaded","includes","trie","Trie","unicodeMapping","emojiFilenames","emojis","filename","darkEmoji","lightEmoji","emojiFilename","contains","emojify","customEmojis","tagCharsWithEmojis","rtn","tagChars","invisible","tag","codePointAt","rend","lt","shortname","static_url","startsWith","shortCode","assetHost","buildCustomEmojis","emoji","shortcode","short_names","emoticons","keywords","imageUrl","custom","customCategory","categoriesFromEmojis","reduce","set","Set","matchHtmlRegExp","string","escape","substring","removeOuterSlashes","cdnHost","__webpack_public_path__","formattedHost","formatPublicPath","shortCodesToEmojiData","skins","categories","emojisWithoutShortCodes","require","processEmojiMapData","emojiMapData","native","filenameData","MiniTrie","words","_dict","word","dict","j","len2","char","code","toJSON","description","number","fileName","lineNumber","columnNumber","defineProperties","customProps","axiosError","escapeTextContentForBrowser","dataset","avatar","file","files","URL","createObjectURL","originalSrc","src","header","lock","hidden","select","setSelectionRange","oldReadOnly","readonly","execCommand","blur"],"mappings":"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","file":"js/core/auth-7b248d70fa972d2bb08f.chunk.js","sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function (obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"); // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n define(Gp, toStringTagSymbol, \"Generator\"); // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n define(Gp, iteratorSymbol, function () {\n return this;\n });\n define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function (skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function () {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function (exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function (type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function (record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function (finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function (tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function (iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\n\nvar utils = require('../utils');\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\n\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\nmodule.exports = CanceledError;","function e(e) {\n const t = \"==\".slice(0, (4 - e.length % 4) % 4),\n n = e.replace(/-/g, \"+\").replace(/_/g, \"/\") + t,\n r = atob(n),\n o = new ArrayBuffer(r.length),\n c = new Uint8Array(o);\n\n for (let e = 0; e < r.length; e++) c[e] = r.charCodeAt(e);\n\n return o;\n}\n\nfunction t(e) {\n const t = new Uint8Array(e);\n let n = \"\";\n\n for (const e of t) n += String.fromCharCode(e);\n\n return btoa(n).replace(/\\+/g, \"-\").replace(/\\//g, \"_\").replace(/=/g, \"\");\n}\n\nfunction n(e, t, r) {\n if (\"copy\" === t) return r;\n if (\"convert\" === t) return e(r);\n if (t instanceof Array) return r.map(r => n(e, t[0], r));\n\n if (t instanceof Object) {\n const o = {};\n\n for (const [c, i] of Object.entries(t)) if (c in r) null != r[c] ? o[c] = n(e, i.schema, r[c]) : o[c] = null;else if (i.required) throw new Error(\"Missing key: \" + c);\n\n return o;\n }\n}\n\nfunction r(e) {\n return {\n required: !0,\n schema: e\n };\n}\n\nfunction o(e) {\n return {\n required: !1,\n schema: e\n };\n}\n\nconst c = {\n type: r(\"copy\"),\n id: r(\"convert\"),\n transports: o(\"copy\")\n},\n i = {\n appid: o(\"copy\"),\n appidExclude: o(\"copy\"),\n credProps: o(\"copy\")\n},\n a = {\n appid: o(\"copy\"),\n appidExclude: o(\"copy\"),\n credProps: o(\"copy\")\n},\n s = {\n publicKey: r({\n rp: r(\"copy\"),\n user: r({\n id: r(\"convert\"),\n name: r(\"copy\"),\n displayName: r(\"copy\")\n }),\n challenge: r(\"convert\"),\n pubKeyCredParams: r(\"copy\"),\n timeout: o(\"copy\"),\n excludeCredentials: o([c]),\n authenticatorSelection: o(\"copy\"),\n attestation: o(\"copy\"),\n extensions: o(i)\n }),\n signal: o(\"copy\")\n},\n p = {\n type: r(\"copy\"),\n id: r(\"copy\"),\n rawId: r(\"convert\"),\n response: r({\n clientDataJSON: r(\"convert\"),\n attestationObject: r(\"convert\")\n }),\n clientExtensionResults: r(a)\n},\n l = {\n mediation: o(\"copy\"),\n publicKey: r({\n challenge: r(\"convert\"),\n timeout: o(\"copy\"),\n rpId: o(\"copy\"),\n allowCredentials: o([c]),\n userVerification: o(\"copy\"),\n extensions: o(i)\n }),\n signal: o(\"copy\")\n},\n u = {\n type: r(\"copy\"),\n id: r(\"copy\"),\n rawId: r(\"convert\"),\n response: r({\n clientDataJSON: r(\"convert\"),\n authenticatorData: r(\"convert\"),\n signature: r(\"convert\"),\n userHandle: r(\"convert\")\n }),\n clientExtensionResults: r(a)\n};\nexport const schema = {\n credentialCreationOptions: s,\n publicKeyCredentialWithAttestation: p,\n credentialRequestOptions: l,\n publicKeyCredentialWithAssertion: u\n};\nexport async function create(r) {\n return function (e) {\n const r = e;\n return r.clientExtensionResults = e.getClientExtensionResults(), n(t, p, r);\n }(await navigator.credentials.create(function (t) {\n return n(e, s, t);\n }(r)));\n}\nexport async function get(r) {\n return function (e) {\n const r = e;\n return r.clientExtensionResults = e.getClientExtensionResults(), n(t, u, r);\n }(await navigator.credentials.get(function (t) {\n return n(e, l, t);\n }(r)));\n}\nexport function supported() {\n return !!(navigator.credentials && navigator.credentials.create && navigator.credentials.get && window.PublicKeyCredential);\n}","import 'packs/public-path';\nimport axios from 'axios';\nimport * as WebAuthnJSON from '@github/webauthn-json';\nimport ready from '../mastodon/ready';\nimport 'regenerator-runtime/runtime';\n\nfunction getCSRFToken() {\n var CSRFSelector = document.querySelector('meta[name=\"csrf-token\"]');\n if (CSRFSelector) {\n return CSRFSelector.getAttribute('content');\n } else {\n return null;\n }\n}\n\nfunction hideFlashMessages() {\n Array.from(document.getElementsByClassName('flash-message')).forEach(function(flashMessage) {\n flashMessage.classList.add('hidden');\n });\n}\n\nfunction callback(url, body) {\n axios.post(url, JSON.stringify(body), {\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'X-CSRF-Token': getCSRFToken(),\n },\n credentials: 'same-origin',\n }).then(function(response) {\n window.location.replace(response.data.redirect_path);\n }).catch(function(error) {\n if (error.response.status === 422) {\n const errorMessage = document.getElementById('security-key-error-message');\n errorMessage.classList.remove('hidden');\n console.error(error.response.data.error);\n } else {\n console.error(error);\n }\n });\n}\n\nready(() => {\n if (!WebAuthnJSON.supported()) {\n const unsupported_browser_message = document.getElementById('unsupported-browser-message');\n if (unsupported_browser_message) {\n unsupported_browser_message.classList.remove('hidden');\n document.querySelector('.btn.js-webauthn').disabled = true;\n }\n }\n\n\n const webAuthnCredentialRegistrationForm = document.getElementById('new_webauthn_credential');\n if (webAuthnCredentialRegistrationForm) {\n webAuthnCredentialRegistrationForm.addEventListener('submit', (event) => {\n event.preventDefault();\n\n var nickname = event.target.querySelector('input[name=\"new_webauthn_credential[nickname]\"]');\n if (nickname.value) {\n axios.get('/settings/security_keys/options')\n .then((response) => {\n const credentialOptions = response.data;\n\n WebAuthnJSON.create({ 'publicKey': credentialOptions }).then((credential) => {\n var params = { 'credential': credential, 'nickname': nickname.value };\n callback('/settings/security_keys', params);\n }).catch((error) => {\n const errorMessage = document.getElementById('security-key-error-message');\n errorMessage.classList.remove('hidden');\n console.error(error);\n });\n }).catch((error) => {\n console.error(error.response.data.error);\n });\n } else {\n nickname.focus();\n }\n });\n }\n\n const webAuthnCredentialAuthenticationForm = document.getElementById('webauthn-form');\n if (webAuthnCredentialAuthenticationForm) {\n webAuthnCredentialAuthenticationForm.addEventListener('submit', (event) => {\n event.preventDefault();\n\n axios.get('sessions/security_key_options')\n .then((response) => {\n const credentialOptions = response.data;\n\n WebAuthnJSON.get({ 'publicKey': credentialOptions }).then((credential) => {\n var params = { 'user': { 'credential': credential } };\n callback('sign_in', params);\n }).catch((error) => {\n const errorMessage = document.getElementById('security-key-error-message');\n errorMessage.classList.remove('hidden');\n console.error(error);\n });\n }).catch((error) => {\n console.error(error.response.data.error);\n });\n });\n\n const otpAuthenticationForm = document.getElementById('otp-authentication-form');\n\n const linkToOtp = document.getElementById('link-to-otp');\n linkToOtp.addEventListener('click', () => {\n webAuthnCredentialAuthenticationForm.classList.add('hidden');\n otpAuthenticationForm.classList.remove('hidden');\n hideFlashMessages();\n });\n\n const linkToWebAuthn = document.getElementById('link-to-webauthn');\n linkToWebAuthn.addEventListener('click', () => {\n otpAuthenticationForm.classList.add('hidden');\n webAuthnCredentialAuthenticationForm.classList.remove('hidden');\n hideFlashMessages();\n });\n }\n});\n","'use strict';\n\nvar utils = require('../utils');\n\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\n\nvar AxiosError = require('../core/AxiosError');\n\nvar transitionalDefaults = require('./transitional');\n\nvar toFormData = require('../helpers/toFormData');\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\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\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n transitional: transitionalDefaults,\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || isObjectPayload && contentType === 'multipart/form-data') {\n var _FormData = this.env && this.env.FormData;\n\n return toFormData(isFileList ? {\n 'files[]': data\n } : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || forcedJSONParsing && utils.isString(data) && data.length) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n\n throw e;\n }\n }\n }\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 xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n maxBodyLength: -1,\n env: {\n FormData: require('./env/FormData')\n },\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n 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});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","const element = document.getElementById('initial-state');\nconst initialState = element && JSON.parse(element.textContent);\n\nconst getMeta = (prop) => initialState && initialState.meta && initialState.meta[prop];\n\nexport const reduceMotion = getMeta('reduce_motion');\nexport const autoPlayGif = getMeta('auto_play_gif');\nexport const displayMedia = getMeta('display_media');\nexport const expandSpoilers = getMeta('expand_spoilers');\nexport const unfollowModal = getMeta('unfollow_modal');\nexport const boostModal = getMeta('boost_modal');\nexport const deleteModal = getMeta('delete_modal');\nexport const me = getMeta('me');\nexport const searchEnabled = getMeta('search_enabled');\nexport const maxChars = (initialState && initialState.max_toot_chars) || 500;\nexport const invitesEnabled = getMeta('invites_enabled');\nexport const limitedFederationMode = getMeta('limited_federation_mode');\nexport const repository = getMeta('repository');\nexport const source_url = getMeta('source_url');\nexport const version = getMeta('version');\nexport const mascot = getMeta('mascot');\nexport const profile_directory = getMeta('profile_directory');\nexport const isStaff = getMeta('is_staff');\nexport const forceSingleColumn = !getMeta('advanced_layout');\nexport const useBlurhash = getMeta('use_blurhash');\nexport const usePendingItems = getMeta('use_pending_items');\nexport const showTrends = getMeta('trends');\nexport const title = getMeta('title');\nexport const cropImages = getMeta('crop_images');\nexport const disableSwiping = getMeta('disable_swiping');\nexport const languages = initialState && initialState.languages;\n\nexport default initialState;\n","// shim for using process in browser\nvar process = module.exports = {}; // 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}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\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\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\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\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\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\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\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\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\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) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\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 */\n\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\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\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\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function (el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n return formData;\n}\n\nmodule.exports = toFormData;","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar cookies = require('./../helpers/cookies');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar buildFullPath = require('../core/buildFullPath');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar transitionalDefaults = require('../defaults/transitional');\n\nvar AxiosError = require('../core/AxiosError');\n\nvar CanceledError = require('../cancel/CanceledError');\n\nvar parseProtocol = require('../helpers/parseProtocol');\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 var responseType = config.responseType;\n var onCanceled;\n\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\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); // Set the request timeout in MS\n\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ? 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 settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response); // Clean up request\n\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\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\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n\n\n setTimeout(onloadend);\n };\n } // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\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(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n\n reject(new AxiosError(timeoutErrorMessage, transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, config, request)); // Clean up request\n\n request = null;\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\n\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\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 } // Add withCredentials to request if needed\n\n\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n } // Add responseType to request if needed\n\n\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function (cancel) {\n if (!request) {\n return;\n }\n\n reject(!cancel || cancel && cancel.type ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && ['http', 'https', 'file'].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\n\nvar combineURLs = require('../helpers/combineURLs');\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 */\n\n\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n\n return requestedURL;\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('../utils');\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 */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\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\n return source;\n } // eslint-disable-next-line consistent-return\n\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n } // eslint-disable-next-line consistent-return\n\n\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n } // eslint-disable-next-line consistent-return\n\n\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n } // eslint-disable-next-line consistent-return\n\n\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n utils.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue);\n });\n return config;\n};","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nvar bind = require('./helpers/bind'); // utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString; // eslint-disable-next-line func-names\n\nvar kindOf = function (cache) {\n // eslint-disable-next-line func-names\n return function (thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n}(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\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 */\n\n\nfunction isArray(val) {\n return Array.isArray(val);\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 */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\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 */\n\n\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\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 */\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && isArrayBuffer(val.buffer);\n }\n\n return result;\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 */\n\n\nfunction isString(val) {\n return typeof val === 'string';\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 */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\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 */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\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 */\n\n\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nvar isDate = kindOfTest('Date');\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\nvar isFile = kindOfTest('File');\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\nvar isBlob = kindOfTest('Blob');\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\nvar isFileList = kindOfTest('FileList');\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 */\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\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 */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (typeof FormData === 'function' && thing instanceof FormData || toString.call(thing) === pattern || isFunction(thing.toString) && thing.toString() === pattern);\n}\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nvar isURLSearchParams = kindOfTest('URLSearchParams');\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 */\n\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\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 */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\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 */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\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 * 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 */\n\n\nfunction\n /* obj1, obj2, obj3, ... */\nmerge() {\n var result = {};\n\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\n return result;\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 */\n\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 * 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 */\n\n\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n\n return content;\n}\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n\n while (i-- > 0) {\n prop = props[i];\n\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\n\n\nfunction endsWith(str, searchString, position) {\n str = String(str);\n\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\n\n\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n\n return arr;\n} // eslint-disable-next-line func-names\n\n\nvar isTypedArray = function (TypedArray) {\n // eslint-disable-next-line func-names\n return function (thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n}(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\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 inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};","// taken from:\n// https://github.com/twitter/twemoji/blob/47732c7/twemoji-generator.js#L848-L866\nexports.unicodeToFilename = (str) => {\n let result = '';\n let charCode = 0;\n let p = 0;\n let i = 0;\n while (i < str.length) {\n charCode = str.charCodeAt(i++);\n if (p) {\n if (result.length > 0) {\n result += '-';\n }\n result += (0x10000 + ((p - 0xD800) << 10) + (charCode - 0xDC00)).toString(16);\n p = 0;\n } else if (0xD800 <= charCode && charCode <= 0xDBFF) {\n p = charCode;\n } else {\n if (result.length > 0) {\n result += '-';\n }\n result += charCode.toString(16);\n }\n }\n return result;\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\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 */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context); // Factory for creating new instances\n\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Expose Cancel & CancelToken\n\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData'); // Expose AxiosError class\n\naxios.AxiosError = require('../lib/core/AxiosError'); // alias for CanceledError for backward compatibility\n\naxios.Cancel = axios.CanceledError; // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread'); // Expose isAxiosError\n\naxios.isAxiosError = require('./helpers/isAxiosError');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n\nvar buildFullPath = require('./buildFullPath');\n\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config); // Set config.method\n\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 var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n } // filter out skipped interceptors\n\n\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n promise = Promise.resolve(config);\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n var newConfig = config;\n\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n}; // Provide aliases for supported request methods\n\n\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});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\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 */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\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 */\n\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;","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n\nvar CanceledError = require('../cancel/CanceledError');\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\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 */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Ensure headers exist\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData.call(config, config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData.call(config, response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData.call(config, reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar defaults = require('../defaults');\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 */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n return data;\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};","'use strict';\n\nvar AxiosError = require('./AxiosError');\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 */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError('Request failed with status code ' + response.status, [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], response.config, response.request, response));\n }\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction 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 read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\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 */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" 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};","'use strict';\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 */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\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 */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\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\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 return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // 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.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\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\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); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\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) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\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\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};","// eslint-disable-next-line strict\nmodule.exports = null;","'use strict';\n\nvar VERSION = require('../env/data').version;\n\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {}; // eslint-disable-next-line func-names\n\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\nvar deprecatedWarnings = {};\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\n\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n } // eslint-disable-next-line func-names\n\n\n return function (value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), AxiosError.ERR_DEPRECATED);\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true; // eslint-disable-next-line no-console\n\n console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'));\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n\n var keys = Object.keys(options);\n var i = keys.length;\n\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n\n continue;\n }\n\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};","'use strict';\n\nvar CanceledError = require('./CanceledError');\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 */\n\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 var token = this; // eslint-disable-next-line func-names\n\n this.promise.then(function (cancel) {\n if (!token._listeners) return;\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n\n token._listeners = null;\n }); // eslint-disable-next-line func-names\n\n this.promise.then = function (onfulfilled) {\n var _resolve; // eslint-disable-next-line func-names\n\n\n var promise = new Promise(function (resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Subscribe to the cancel signal\n */\n\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n/**\n * Unsubscribe from the cancel signal\n */\n\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n\n var index = this._listeners.indexOf(listener);\n\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\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;","'use strict';\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 */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\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 */\n\n\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && payload.isAxiosError === true;\n};","/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function (event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function (options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function (options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function (response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function (e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function (element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function (element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function (form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function (element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function (form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function (element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function (event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function (element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function (xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","export default function ready(loaded) {\n if (['interactive', 'complete'].includes(document.readyState)) {\n loaded();\n } else {\n document.addEventListener('DOMContentLoaded', loaded);\n }\n}\n","import { autoPlayGif } from '../../initial_state';\nimport unicodeMapping from './emoji_unicode_mapping_light';\nimport { assetHost } from 'mastodon/utils/config';\nimport Trie from 'substring-trie';\n\nconst trie = new Trie(Object.keys(unicodeMapping));\n\n// Convert to file names from emojis. (For different variation selector emojis)\nconst emojiFilenames = (emojis) => {\n return emojis.map(v => unicodeMapping[v].filename);\n};\n\n// Emoji requiring extra borders depending on theme\nconst darkEmoji = emojiFilenames(['🎱', '🐜', 'âšĢ', '🖤', 'âŦ›', 'â—ŧī¸', '◾', 'â—ŧī¸', '✒ī¸', 'â–Ēī¸', 'đŸ’Ŗ', 'đŸŽŗ', '📷', '📸', 'â™Ŗī¸', 'đŸ•ļī¸', '✴ī¸', '🔌', '💂‍♀ī¸', 'đŸ“Ŋī¸', 'đŸŗ', 'đŸĻ', '💂', 'đŸ”Ē', 'đŸ•ŗī¸', '🕹ī¸', '🕋', '🖊ī¸', '🖋ī¸', '💂‍♂ī¸', '🎤', '🎓', 'đŸŽĨ', 'đŸŽŧ', '♠ī¸', '🎩', 'đŸĻƒ', 'đŸ“ŧ', '📹', '🎮', '🐃', '🏴', '🐞', 'đŸ•ē', '📱', '📲', '🚲']);\nconst lightEmoji = emojiFilenames(['đŸ‘Ŋ', '⚾', '🐔', '☁ī¸', '💨', '🕊ī¸', '👀', 'đŸĨ', 'đŸ‘ģ', '🐐', '❕', '❔', '⛸ī¸', '🌩ī¸', '🔊', '🔇', '📃', '🌧ī¸', '🐏', '🍚', '🍙', '🐓', '🐑', '💀', '☠ī¸', '🌨ī¸', '🔉', '🔈', 'đŸ’Ŧ', '💭', '🏐', 'đŸŗī¸', 'âšĒ', 'âŦœ', 'â—Ŋ', 'â—ģī¸', 'â–Ģī¸']);\n\nconst emojiFilename = (filename) => {\n const borderedEmoji = (document.body && document.body.classList.contains('theme-mastodon-light')) ? lightEmoji : darkEmoji;\n return borderedEmoji.includes(filename) ? (filename + '_border') : filename;\n};\n\nconst emojify = (str, customEmojis = {}) => {\n const tagCharsWithoutEmojis = '<&';\n const tagCharsWithEmojis = Object.keys(customEmojis).length ? '<&:' : '<&';\n let rtn = '', tagChars = tagCharsWithEmojis, invisible = 0;\n for (;;) {\n let match, i = 0, tag;\n while (i < str.length && (tag = tagChars.indexOf(str[i])) === -1 && (invisible || !(match = trie.search(str.slice(i))))) {\n i += str.codePointAt(i) < 65536 ? 1 : 2;\n }\n let rend, replacement = '';\n if (i === str.length) {\n break;\n } else if (str[i] === ':') {\n if (!(() => {\n rend = str.indexOf(':', i + 1) + 1;\n if (!rend) return false; // no pair of ':'\n const lt = str.indexOf('<', i + 1);\n if (!(lt === -1 || lt >= rend)) return false; // tag appeared before closing ':'\n const shortname = str.slice(i, rend);\n // now got a replacee as ':shortname:'\n // if you want additional emoji handler, add statements below which set replacement and return true.\n if (shortname in customEmojis) {\n const filename = autoPlayGif ? customEmojis[shortname].url : customEmojis[shortname].static_url;\n replacement = `\"${shortname}\"`;\n return true;\n }\n return false;\n })()) rend = ++i;\n } else if (tag >= 0) { // <, &\n rend = str.indexOf('>;'[tag], i + 1) + 1;\n if (!rend) {\n break;\n }\n if (tag === 0) {\n if (invisible) {\n if (str[i + 1] === '/') { // closing tag\n if (!--invisible) {\n tagChars = tagCharsWithEmojis;\n }\n } else if (str[rend - 2] !== '/') { // opening tag\n invisible++;\n }\n } else {\n if (str.startsWith('', i)) {\n // avoid emojifying on invisible text\n invisible = 1;\n tagChars = tagCharsWithoutEmojis;\n }\n }\n }\n i = rend;\n } else { // matched to unicode emoji\n const { filename, shortCode } = unicodeMapping[match];\n const title = shortCode ? `:${shortCode}:` : '';\n replacement = `\"${match}\"`;\n rend = i + match.length;\n // If the matched character was followed by VS15 (for selecting text presentation), skip it.\n if (str.codePointAt(rend) === 65038) {\n rend += 1;\n }\n }\n rtn += str.slice(0, i) + replacement;\n str = str.slice(rend);\n }\n return rtn + str;\n};\n\nexport default emojify;\n\nexport const buildCustomEmojis = (customEmojis) => {\n const emojis = [];\n\n customEmojis.forEach(emoji => {\n const shortcode = emoji.get('shortcode');\n const url = autoPlayGif ? emoji.get('url') : emoji.get('static_url');\n const name = shortcode.replace(':', '');\n\n emojis.push({\n id: name,\n name,\n short_names: [name],\n text: '',\n emoticons: [],\n keywords: [name],\n imageUrl: url,\n custom: true,\n customCategory: emoji.get('category'),\n });\n });\n\n return emojis;\n};\n\nexport const categoriesFromEmojis = customEmojis => customEmojis.reduce((set, emoji) => set.add(emoji.get('category') ? `custom-${emoji.get('category')}` : 'custom'), new Set(['custom']));\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n'use strict';\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n // \"\n escape = '"';\n break;\n\n case 38:\n // &\n escape = '&';\n break;\n\n case 39:\n // '\n escape = ''';\n break;\n\n case 60:\n // <\n escape = '<';\n break;\n\n case 62:\n // >\n escape = '>';\n break;\n\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}","// Dynamically set webpack's loading path depending on a meta header, in order\n// to share the same assets regardless of instance configuration.\n// See https://webpack.js.org/guides/public-path/#on-the-fly\n\nfunction removeOuterSlashes(string) {\n return string.replace(/^\\/*/, '').replace(/\\/*$/, '');\n}\n\nfunction formatPublicPath(host = '', path = '') {\n let formattedHost = removeOuterSlashes(host);\n if (formattedHost && !/^http/i.test(formattedHost)) {\n formattedHost = `//${formattedHost}`;\n }\n const formattedPath = removeOuterSlashes(path);\n return `${formattedHost}/${formattedPath}/`;\n}\n\nconst cdnHost = document.querySelector('meta[name=cdn-host]');\n\n// eslint-disable-next-line camelcase, no-undef, no-unused-vars\n__webpack_public_path__ = formatPublicPath(cdnHost ? cdnHost.content : '', process.env.PUBLIC_OUTPUT_PATH);\n","// A mapping of unicode strings to an object containing the filename\n// (i.e. the svg filename) and a shortCode intended to be shown\n// as a \"title\" attribute in an HTML element (aka tooltip).\n\nconst [\n shortCodesToEmojiData,\n skins, // eslint-disable-line no-unused-vars\n categories, // eslint-disable-line no-unused-vars\n short_names, // eslint-disable-line no-unused-vars\n emojisWithoutShortCodes,\n] = require('./emoji_compressed');\nconst { unicodeToFilename } = require('./unicode_to_filename');\n\n// decompress\nconst unicodeMapping = {};\n\nfunction processEmojiMapData(emojiMapData, shortCode) {\n let [ native, filename ] = emojiMapData;\n if (!filename) {\n // filename name can be derived from unicodeToFilename\n filename = unicodeToFilename(native);\n }\n unicodeMapping[native] = {\n shortCode: shortCode,\n filename: filename,\n };\n}\n\nObject.keys(shortCodesToEmojiData).forEach((shortCode) => {\n let [ filenameData ] = shortCodesToEmojiData[shortCode];\n filenameData.forEach(emojiMapData => processEmojiMapData(emojiMapData, shortCode));\n});\nemojisWithoutShortCodes.forEach(emojiMapData => processEmojiMapData(emojiMapData));\n\nmodule.exports = unicodeMapping;\n","module.exports = require('./lib/axios');","'use strict';\n\nvar CODA_MARKER = '$$'; // marks the end of the string\n\nfunction MiniTrie(words) {\n this._dict = {};\n\n for (var i = 0, len = words.length; i < len; i++) {\n var word = words[i];\n var dict = this._dict;\n\n for (var j = 0, len2 = word.length; j < len2; j++) {\n var char = word.charAt(j);\n dict = dict[char] = dict[char] || {};\n }\n\n dict[CODA_MARKER] = true;\n }\n}\n\nMiniTrie.prototype.search = function (str) {\n var i = -1;\n var len = str.length;\n var stack = [this._dict];\n\n while (++i < len) {\n var dict = stack[i];\n var char = str.charAt(i);\n\n if (char in dict) {\n stack.push(dict[char]);\n } else {\n break;\n }\n }\n\n while (stack.length) {\n if (stack.pop()[CODA_MARKER]) {\n return str.substring(0, stack.length);\n }\n }\n};\n\nmodule.exports = MiniTrie;","'use strict';\n\nvar utils = require('../utils');\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 {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n 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 status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n['ERR_BAD_OPTION_VALUE', 'ERR_BAD_OPTION', 'ECONNABORTED', 'ETIMEDOUT', 'ERR_NETWORK', 'ERR_FR_TOO_MANY_REDIRECTS', 'ERR_DEPRECATED', 'ERR_BAD_RESPONSE', 'ERR_BAD_REQUEST', 'ERR_CANCELED' // eslint-disable-next-line func-names\n].forEach(function (code) {\n descriptors[code] = {\n value: code\n };\n});\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {\n value: true\n}); // eslint-disable-next-line func-names\n\nAxiosError.from = function (error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n AxiosError.call(axiosError, error.message, code, config, request, response);\n axiosError.name = error.name;\n customProps && Object.assign(axiosError, customProps);\n return axiosError;\n};\n\nmodule.exports = AxiosError;","import ready from '../ready';\n\nexport let assetHost = '';\n\nready(() => {\n const cdnHost = document.querySelector('meta[name=cdn-host]');\n if (cdnHost) {\n assetHost = cdnHost.content || '';\n }\n});\n","// This file will be loaded on settings pages, regardless of theme.\n\nimport 'packs/public-path';\nimport escapeTextContentForBrowser from 'escape-html';\nconst { delegate } = require('@rails/ujs');\nimport emojify from '../mastodon/features/emoji/emoji';\n\ndelegate(document, '#account_display_name', 'input', ({ target }) => {\n const name = document.querySelector('.card .display-name strong');\n if (name) {\n if (target.value) {\n name.innerHTML = emojify(escapeTextContentForBrowser(target.value));\n } else {\n name.textContent = name.textContent = target.dataset.default;\n }\n }\n});\n\ndelegate(document, '#account_avatar', 'change', ({ target }) => {\n const avatar = document.querySelector('.card .avatar img');\n const [file] = target.files || [];\n const url = file ? URL.createObjectURL(file) : avatar.dataset.originalSrc;\n\n avatar.src = url;\n});\n\ndelegate(document, '#account_header', 'change', ({ target }) => {\n const header = document.querySelector('.card .card__img img');\n const [file] = target.files || [];\n const url = file ? URL.createObjectURL(file) : header.dataset.originalSrc;\n\n header.src = url;\n});\n\ndelegate(document, '#account_locked', 'change', ({ target }) => {\n const lock = document.querySelector('.card .display-name i');\n\n if (lock) {\n if (target.checked) {\n delete lock.dataset.hidden;\n } else {\n lock.dataset.hidden = 'true';\n }\n }\n});\n\ndelegate(document, '.input-copy input', 'click', ({ target }) => {\n target.focus();\n target.select();\n target.setSelectionRange(0, target.value.length);\n});\n\ndelegate(document, '.input-copy button', 'click', ({ target }) => {\n const input = target.parentNode.querySelector('.input-copy__wrapper input');\n\n const oldReadOnly = input.readonly;\n\n input.readonly = false;\n input.focus();\n input.select();\n input.setSelectionRange(0, input.value.length);\n\n try {\n if (document.execCommand('copy')) {\n input.blur();\n target.parentNode.classList.add('copied');\n\n setTimeout(() => {\n target.parentNode.classList.remove('copied');\n }, 700);\n }\n } catch (err) {\n console.error(err);\n }\n\n input.readonly = oldReadOnly;\n});\n"],"sourceRoot":""}