avatar
Untitled

Guest 310 19th Jul, 2024

JAVASCRIPT 175.94 KB
                                           
                         // ==UserScript==
// @name         Extended player profile
// @version      1.2.0
// @description  Adds additional info and actions on a player overview.
// @author       Dawid Wysokiński - Kichiyaki - contact@twhelp.app
// @match        https://*.plemiona.pl/game.php?*screen=info_player*
// @icon         https://www.google.com/s2/favicons?domain=plemiona.pl
// @grant        none
// @run-at       document-end
// ==/UserScript==
!function(){function e(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}function t(e){return e&&e.__esModule?e.default:e}var r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},n={},o={},i=r.parcelRequire03e0;null==i&&((i=function(e){if(e in n)return n[e].exports;if(e in o){var t=o[e];delete o[e];var r={id:e,exports:{}};return n[e]=r,t.call(r.exports,r,r.exports),r.exports}var i=Error("Cannot find module '"+e+"'");throw i.code="MODULE_NOT_FOUND",i}).register=function(e,t){o[e]=t},r.parcelRequire03e0=i);var s=i.register;s("cyqxw",function(e,t){// Extended player profile
    i("1AONd");var r,n,o=i("gxD7Y");i("1eGEI");var s=i("02oNZ"),a=i("cO4wG");i("dn3NW");var l=i("dzS2D"),u=i("hUoNS"),d=i("6AVOj"),f=i("ezORx");let c=(0,s.createTranslationFunc)({pl_PL:{"Joined at":"Dołączył o","Last activity at":"Ostatnio aktywny o","Best rank":"Najwyższy ranking","Most points":"Najwięcej punkt\xf3w","Most villages":"Najwięcej wiosek","Show other servers":"Pokaż inne serwery","Show in a day ranks":"Pokaż dzienne rankingi","Show tribe changes":"Pokaż zmiany plemion","Show history":"Pokaż historię","Show ennoblements":"Pokaż przejęcia","Old tribe":"Stare plemię","New tribe":"Nowe plemię","Date/time":"Data/czas",Village:"Wioska","Old owner":"Stary właściciel","New owner":"Nowy właściciel",Rank:"Ranking",Points:"Punkty",Barbarian:"Barbarzyńska",Unknown:"Nieznany",Server:"Serwer",Deleted:"Usunięty",Yes:"Tak",No:"Nie",Date:"Data",Tribe:"Plemię",Villages:"Wioski",OD:"Pokonani og\xf3lnie","OD - rank":"Pokonani og\xf3lnie - ranking",ODA:"Pokonani agresor","ODA - rank":"Pokonani agresor - ranking",ODD:"Pokonani obrońca","ODD - rank":"Pokonani obrońca - ranking",ODS:"Pokonani wspierający","ODS - rank":"Pokonani wspierający - ranking",Type:"Typ",Score:"Wynik","Units defeated while attacking":"Jednostki pokonane w ataku","Units defeated while defending":"Jednostki pokonane w obronie","Units defeated while supporting":"Jednostki pokonane jako wspierający","Resources plundered":"Zrabowane surowce","Villages plundered":"Splądrowane wioski","Resources gathered":"Zebrane surowce","Villages conquered":"Przejęte wioski",Changes:"Zmiany",Open:"Otwarty",Closed:"Zamknięty"}});class h{async player(){return(await this.client.players.getPlayer({versionCode:this.version,serverKey:this.server,playerId:this.id})).data}async latestSnapshot(){let e=await this.playerSnapshots(void 0,1);return e.data.length>0?e.data[0]:null}playerTribeChanges(e,t){return this.client.tribeChanges.listPlayerTribeChanges({versionCode:this.version,serverKey:this.server,playerId:this.id,limit:t,cursor:e,sort:["createdAt:DESC"]})}playerEnnoblements(e,t){return this.client.ennoblements.listPlayerEnnoblements({versionCode:this.version,serverKey:this.server,playerId:this.id,limit:t,cursor:e,sort:["createdAt:DESC"]})}playerSnapshots(e,t){return this.client.snapshots.listPlayerPlayerSnapshots({versionCode:this.version,serverKey:this.server,playerId:this.id,limit:t,cursor:e,sort:["date:DESC"]})}playerOtherServers(e,t){return this.client.players.listVersionPlayers({versionCode:this.version,limit:t,cursor:e,id:[this.id]})}constructor(e,t,r,n){this.baseUrl=e,this.version=t,this.server=r,this.id=n,this.client=new u.TWHelpClient({BASE:e},l.AxiosHttpRequestWithTimeout)}}class p{player(){return this.cache.load(p.CACHE_KEY_PREFIX+this.name,600,()=>this.client.player(this.name))}constructor(e){this.name=e,this.cache=new f.Cache(localStorage),this.client=new o.InADayClient}}p.CACHE_KEY_PREFIX="extended_player_profile_in_a_day_",(r=n||(n={})).OTHER_SERVERS="extended_player_profile_other_servers",r.IN_A_DAY_RANKS="extended_player_profile_in_a_day_ranks",r.TRIBE_CHANGES="extended_player_profile_tribe_changes",r.ENNOBLEMENTS="extended_player_profile_ennoblements",r.HISTORY="extended_player_profile_history";class v{render(){this.renderAdditionalInfo(),this.renderStats(),this.renderActions()}renderAdditionalInfo(){let e=document.querySelector("#player_info tbody");e instanceof HTMLTableSectionElement&&e.insertAdjacentHTML("beforeend",`
    <tr>
        <td>${c("Joined at")}:</td>
        <td>${new Date(this.player.createdAt).toLocaleString()}</td>
    </tr>
    <tr>
        <td>${c("Last activity at")}:</td>
        <td>${new Date(this.player.lastActivityAt).toLocaleString()}</td>
    </tr>
    <tr>
        <td>${c("Best rank")}:</td>
        <td>${this.player.bestRank} (${new Date(this.player.bestRankAt).toLocaleString()})</td>
    </tr>
    <tr>
        <td>${c("Most points")}:</td>
        <td>${this.player.mostPoints.toLocaleString()} (${new Date(this.player.mostPointsAt).toLocaleString()})</td>
    </tr>
    <tr>
        <td>${c("Most villages")}:</td>
        <td>${this.player.mostVillages.toLocaleString()} (${new Date(this.player.mostVillagesAt).toLocaleString()})</td>
    </tr>
  `)}renderStats(){var e,t,r,n,o,i,s,a,l,u,d,f,h,p,v,y,g,m,b,w,E,C;let S=document.querySelector('#content_value td[valign="top"]:nth-child(2)');if(!(S instanceof HTMLTableCellElement))return;let T=[{header:c("Points"),value:this.player.points-(null!==(f=null===(e=this.latestSnapshot)||void 0===e?void 0:e.points)&&void 0!==f?f:0)},{header:c("Rank"),value:this.player.rank-(null!==(h=null===(t=this.latestSnapshot)||void 0===t?void 0:t.rank)&&void 0!==h?h:0),rank:!0},{header:c("Villages"),value:this.player.numVillages-(null!==(p=null===(r=this.latestSnapshot)||void 0===r?void 0:r.numVillages)&&void 0!==p?p:0)},{header:c("ODA"),value:this.player.opponentsDefeated.scoreAtt-(null!==(v=null===(n=this.latestSnapshot)||void 0===n?void 0:n.opponentsDefeated.scoreAtt)&&void 0!==v?v:0)},{header:c("ODA - rank"),value:this.player.opponentsDefeated.rankAtt-(null!==(y=null===(o=this.latestSnapshot)||void 0===o?void 0:o.opponentsDefeated.rankAtt)&&void 0!==y?y:0),rank:!0},{header:c("ODD"),value:this.player.opponentsDefeated.scoreDef-(null!==(g=null===(i=this.latestSnapshot)||void 0===i?void 0:i.opponentsDefeated.scoreDef)&&void 0!==g?g:0)},{header:c("ODD - rank"),value:this.player.opponentsDefeated.rankDef-(null!==(m=null===(s=this.latestSnapshot)||void 0===s?void 0:s.opponentsDefeated.rankDef)&&void 0!==m?m:0),rank:!0},{header:c("ODS"),value:this.player.opponentsDefeated.scoreSup-(null!==(b=null===(a=this.latestSnapshot)||void 0===a?void 0:a.opponentsDefeated.scoreSup)&&void 0!==b?b:0)},{header:c("ODS - rank"),value:this.player.opponentsDefeated.rankSup-(null!==(w=null===(l=this.latestSnapshot)||void 0===l?void 0:l.opponentsDefeated.rankSup)&&void 0!==w?w:0),rank:!0},{header:c("OD"),value:this.player.opponentsDefeated.scoreTotal-(null!==(E=null===(u=this.latestSnapshot)||void 0===u?void 0:u.opponentsDefeated.scoreTotal)&&void 0!==E?E:0)},{header:c("OD - rank"),value:this.player.opponentsDefeated.rankTotal-(null!==(C=null===(d=this.latestSnapshot)||void 0===d?void 0:d.opponentsDefeated.rankTotal)&&void 0!==C?C:0),rank:!0}];S.insertAdjacentHTML("afterbegin",`
    <table style="width: 100%" class="vis">
       <tbody>
          <tr>
            <th colspan="2">
              ${c("Changes")}
            </th>
          </tr>
          ${T.map(e=>`
            <tr>
             <td>${e.header}</td>
             <td style="color: #000; background-color: ${this.getStatBgColor(e.value,e.rank)}">${Math.abs(e.value).toLocaleString()}</td>
            </tr>
          `).join("")}
      </tbody>
    </table>
  `)}getStatBgColor(e,t){return e>0&&!t||e<0&&t?"#0f0":e<0&&!t||e>0&&t?"#f00":"#808080"}renderActions(){var e;let t=null===(e=document.querySelector('#content_value a[href*="twstats"]'))||void 0===e?void 0:e.closest("tbody");t instanceof HTMLTableSectionElement&&[{name:c("Show other servers"),handler:this.showOtherServers.bind(this)},{name:c("Show in a day ranks"),handler:this.showInADayRanks.bind(this)},{name:c("Show tribe changes"),handler:this.showTribeChanges.bind(this)},{name:c("Show history"),handler:this.showHistory.bind(this)},{name:c("Show ennoblements"),handler:this.showEnnoblements.bind(this)}].forEach(({name:e,handler:r})=>{let n=document.createElement("tr"),o=document.createElement("td");o.colSpan=2;let i=document.createElement("a");i.innerText=e,i.href="#",i.addEventListener("click",r),o.appendChild(i),n.appendChild(o),t.appendChild(n)})}async showOtherServers(e){e.preventDefault(),await new(0,d.DialogTable)("extended_player_profile_other_servers",[{header:c("Server"),accessor:e=>`<a href="${(0,a.buildURL)({server:e.server.key,id:e.id,entity:"player"})}">${e.server.key} (${e.server.open?c("Open"):c("Closed")})</a>`},{header:c("Tribe"),accessor:e=>{if(!e.tribe)return"-";let t=(0,a.buildURL)({server:e.server.key,id:e.tribe.id,entity:"tribe"});return`<a href="${t}">${e.tribe.tag}</a>`}},{header:c("Best rank"),accessor:e=>e.bestRank.toString()},{header:c("Most points"),accessor:e=>e.mostPoints.toLocaleString()},{header:c("Most villages"),accessor:e=>e.mostVillages.toLocaleString()}],30,(e,t)=>this.twhelpConnector.playerOtherServers(e,t)).render()}async showInADayRanks(e){e.preventDefault();let t={killAtt:"Units defeated while attacking",killDef:"Units defeated while defending",killSup:"Units defeated while supporting",lootRes:"Resources plundered",lootVil:"Villages plundered",scavenge:"Resources gathered",conquer:"Villages conquered"};await new(0,d.DialogTable)("extended_player_profile_in_a_day_ranks",[{header:c("Type"),accessor:e=>e.type in t?c(t[e.type]):e.type},{header:c("Rank"),accessor:e=>e.rank?e.rank.toString():"0"},{header:c("Score"),accessor:e=>e.score?e.score.toLocaleString():"0"},{header:c("Date"),accessor:e=>e.date?e.date:"-"}],30,async()=>{let e=await this.inADayConnector.player();return e?{data:Object.entries(null==e?void 0:e.scores).map(([e,t])=>({type:e,...t||{}})).sort((e,t)=>e.type>t.type?1:-1),total:Object.entries(null==e?void 0:e.scores).length}:{data:[],total:0}}).render()}async showTribeChanges(e){e.preventDefault(),await new(0,d.DialogTable)("extended_player_profile_tribe_changes",[{header:c("Old tribe"),accessor:e=>e.player.tribe?`<a href="${e.player.tribe.profileUrl}">${e.player.tribe.tag}</a>`:"-"},{header:c("New tribe"),accessor:e=>e.newTribe?`<a href="${e.newTribe.profileUrl}">${e.newTribe.tag}</a>`:"-"},{header:c("Date/time"),accessor:e=>new Date(e.createdAt).toLocaleString()}],30,(e,t)=>this.twhelpConnector.playerTribeChanges(e,t)).render()}async showHistory(e){e.preventDefault(),await new(0,d.DialogTable)("extended_player_profile_history",[{header:c("Date"),accessor:e=>e.date},{header:c("Tribe"),accessor:e=>e.player.tribe?`<a href="${e.player.tribe.profileUrl}">${e.player.tribe.tag}</a>`:"-"},{header:c("Points"),accessor:e=>`${e.points.toLocaleString()} (<strong>${e.rank}</strong>)`},{header:c("Villages"),accessor:e=>`${e.numVillages.toLocaleString()}`},{header:c("OD"),accessor:e=>`${e.opponentsDefeated.scoreTotal.toLocaleString()} (<strong>${e.opponentsDefeated.rankTotal}</strong>)`},{header:c("ODA"),accessor:e=>`${e.opponentsDefeated.scoreAtt.toLocaleString()} (<strong>${e.opponentsDefeated.rankAtt}</strong>)`},{header:c("ODD"),accessor:e=>`${e.opponentsDefeated.scoreDef.toLocaleString()} (<strong>${e.opponentsDefeated.rankDef}</strong>)`},{header:c("ODS"),accessor:e=>`${e.opponentsDefeated.scoreSup.toLocaleString()} (<strong>${e.opponentsDefeated.rankSup}</strong>)`}],30,(e,t)=>this.twhelpConnector.playerSnapshots(e,t)).render()}async showEnnoblements(e){e.preventDefault(),await new(0,d.DialogTable)("extended_player_profile_ennoblements",[{header:c("Village"),accessor:e=>`<a href="${e.village.profileUrl}">${e.village.fullName}</a>`},{header:c("Points"),accessor:e=>e.points.toLocaleString()},{header:c("Old owner"),accessor:({village:{player:e}})=>e?`<a href="${e.profileUrl}">${e.name}</a>${e.tribe?` (<a href="${e.tribe.profileUrl}">${e.tribe.tag}</a>)`:""}`:c("Barbarian")},{header:c("New owner"),accessor:({newOwner:e})=>e?`<a href="${e.profileUrl}">${e.name}</a>${e.tribe?` (<a href="${e.tribe.profileUrl}">${e.tribe.tag}</a>)`:""}`:c("Unknown")},{header:c("Date/time"),accessor:e=>new Date(e.createdAt).toLocaleString()}],30,(e,t)=>this.twhelpConnector.playerEnnoblements(e,t)).render()}constructor(e,t,r,n){this.player=e,this.latestSnapshot=t,this.twhelpConnector=r,this.inADayConnector=n}}class y{async run(){let[e,t]=await Promise.all([this.twhelpConnector.player(),this.twhelpConnector.latestSnapshot()]);new v(e,t,this.twhelpConnector,this.inADayConnector).render()}getPlayerId(){let e=new URLSearchParams(window.location.search).get("id");return e?parseInt(e):window.game_data.player.id}getPlayerName(){var e;let t=null===(e=document.querySelector("#map_toggler"))||void 0===e?void 0:e.closest("th");return t instanceof HTMLTableCellElement?t.innerText.trim():window.game_data.player.name}constructor(e){this.twhelpConnector=new h(e,window.game_data.market,window.game_data.world,this.getPlayerId()),this.inADayConnector=new p(this.getPlayerName())}}(async()=>{"info_player"===window.game_data.screen&&null===window.game_data.mode&&await new y("https://twhelp.app/api").run().catch(e=>{console.log(e)})})()}),s("1AONd",function(t,r){e(t.exports,"InADayClient",function(){return i("gxD7Y").InADayClient}),e(t.exports,"calcDistance",function(){return i("dwmQy").calcDistance}),e(t.exports,"calcLoyalty",function(){return i("dwmQy").calcLoyalty}),i("gxD7Y"),i("dwmQy"),i("g4r7h")}),s("gxD7Y",function(r,n){e(r.exports,"InADayClient",function(){return u}),i("vZM99");var o=i("cWpyM"),s=i("kCUUu");i("1eGEI");var a=i("ix6GL");class l{parse(){let e=[];for(let t of this.doc.querySelectorAll("#in_a_day_ranking_table tbody tr")){if(!(t instanceof HTMLTableRowElement))continue;let r=this.parseRow(t);r&&e.push(r)}return e}parseRow(e){var t,r;let n=[...e.children].filter(e=>e instanceof HTMLTableCellElement);if(5!==n.length)return null;let o=null===(t=n[1].querySelector("a"))||void 0===t?void 0:t.href;if(!o)return null;let i=null===(r=n[2].querySelector("a"))||void 0===r?void 0:r.href;return{player:{id:this.getIdFromUrl(o),name:n[1].innerText.trim(),profileUrl:o},...i?{tribe:{id:this.getIdFromUrl(i),tag:n[2].innerText.trim(),profileUrl:i}}:{tribe:null},rank:parseInt(n[0].innerText.trim()),score:this.parseScore(n[3].innerText.trim()),date:n[4].innerText.trim()}}getIdFromUrl(e){var t;return parseInt(null!==(t=new URL(e).searchParams.get("id"))&&void 0!==t?t:"")}parseScore(e){return parseInt(e.trim().replace(/\./g,""))}constructor(e){this.doc=new DOMParser().parseFromString(e,"text/html")}}class u{async player(e){let r={name:e},n=[{url:this.buildUrl("kill_att",r),key:"killAtt"},{url:this.buildUrl("kill_def",r),key:"killDef"},{url:this.buildUrl("kill_sup",r),key:"killSup"},{url:this.buildUrl("loot_res",r),key:"lootRes"},{url:this.buildUrl("loot_vil",r),key:"lootVil"},{url:this.buildUrl("scavenge",r),key:"scavenge"},{url:this.buildUrl("conquer",r),key:"conquer"}],o=[];for(let{url:r,key:i}of n){let u=await this.client.get(r),d=new l(u.data).parse()[0];d&&d.player.name===e&&o.push({key:i,score:d}),i!==n[n.length-1].key&&await (0,a.wait)(/*@__PURE__*/t(s)(200,400))}if(0===o.length)return null;let i={id:0,name:"",profileUrl:"",tribe:null,scores:{conquer:null,killAtt:null,killDef:null,killSup:null,lootRes:null,lootVil:null,scavenge:null}};return o.forEach(({score:e,key:t})=>{i.id||(i.id=e.player.id),i.name||(i.name=e.player.name),i.profileUrl||(i.profileUrl=e.player.profileUrl),!i.tribe&&e.tribe&&(i.tribe=e.tribe),i.scores[t]={rank:e.rank,score:e.score,date:e.date}}),i}buildUrl(e,t){return window.TribalWars.buildURL("GET","ranking",{mode:"in_a_day",type:e,...(null==t?void 0:t.name)?{name:t.name}:{},...(null==t?void 0:t.page)?{offset:((t.page-1)*25).toString()}:{offset:"0"}})}constructor(e=1e4){this.client=(0,o.default).create({timeout:e})}}}),s("vZM99",function(t,r){e(t.exports,"default",function(){return i("cWpyM").default});var n=i("cWpyM");// This module is intended to unwrap Axios default export as named.
// Keep top-level export same with static properties
// so that it can keep same with es module or cjs
    let{Axios:o,AxiosError:s,CanceledError:a,isCancel:l,CancelToken:u,VERSION:d,all:f,Cancel:c,isAxiosError:h,spread:p,toFormData:v,AxiosHeaders:y,HttpStatusCode:g,formToJSON:m,getAdapter:b,mergeConfig:w}=n.default}),s("cWpyM",function(t,r){e(t.exports,"default",function(){return C});var n=i("hgngq"),o=i("7Ibnk"),s=i("g3ejh"),a=i("ie4wS"),l=i("btmkB"),u=i("bdXlQ"),d=i("lRz8e"),f=i("anMXy"),c=i("ahR7Q"),h=i("3GT2L"),p=i("kA8lJ"),v=i("9UeRl"),y=i("8WIxP"),g=i("fYUnm"),m=i("6kxSN"),b=i("kDHQh"),w=i("8Cq8S");// Create the default instance to be exported
    let E=/**
     * Create an instance of Axios
     *
     * @param {Object} defaultConfig The default config for the instance
     *
     * @returns {Axios} A new instance of Axios
     */function e(t){let r=new s.default(t),i=(0,o.default)(s.default.prototype.request,r);return(// Copy axios.prototype to instance
        (0,n.default).extend(i,s.default.prototype,r,{allOwnKeys:!0}),// Copy context to instance
            (0,n.default).extend(i,r,null,{allOwnKeys:!0}),// Factory for creating new instances
            i.create=function(r){return e((0,a.default)(t,r))},i)}(l.default);// Expose Axios class to allow class inheritance
    E.Axios=s.default,// Expose Cancel & CancelToken
        E.CanceledError=d.default,E.CancelToken=f.default,E.isCancel=c.default,E.VERSION=h.VERSION,E.toFormData=p.default,// Expose AxiosError class
        E.AxiosError=v.default,// alias for CanceledError for backward compatibility
        E.Cancel=E.CanceledError,// Expose all/spread
        E.all=function(e){return Promise.all(e)},E.spread=y.default,// Expose isAxiosError
        E.isAxiosError=g.default,// Expose mergeConfig
        E.mergeConfig=a.default,E.AxiosHeaders=m.default,E.formToJSON=e=>(0,u.default)((0,n.default).isHTMLForm(e)?new FormData(e):e),E.getAdapter=b.default.getAdapter,E.HttpStatusCode=w.default,E.default=E;var C=E}),s("hgngq",function(t,n){e(t.exports,"default",function(){return j});var o,s,a=i("7Ibnk");// utils is a library of generic helper functions non-specific to axios
    let{toString:l}=Object.prototype,{getPrototypeOf:u}=Object,d=(o=Object.create(null),e=>{let t=l.call(e);return o[t]||(o[t]=t.slice(8,-1).toLowerCase())}),f=e=>(e=e.toLowerCase(),t=>d(t)===e),c=e=>t=>typeof t===e,{isArray:h}=Array,p=c("undefined"),v=f("ArrayBuffer"),y=c("string"),g=c("function"),m=c("number"),b=e=>null!==e&&"object"==typeof e,w=e=>{if("object"!==d(e))return!1;let t=u(e);return(null===t||t===Object.prototype||null===Object.getPrototypeOf(t))&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},E=f("Date"),C=f("File"),S=f("Blob"),T=f("FileList"),R=f("URLSearchParams");/**
     * Iterate over an Array or an Object invoking a function for each item.
     *
     * If `obj` is an Array callback will be called passing
     * the value, index, and complete array for each item.
     *
     * If 'obj' is an Object callback will be called passing
     * the value, key, and complete object for each property.
     *
     * @param {Object|Array} obj The object to iterate
     * @param {Function} fn The callback to invoke for each item
     *
     * @param {Boolean} [allOwnKeys = false]
     * @returns {any}
     */function q(e,t,{allOwnKeys:r=!1}={}){let n,o;// Don't bother if no value provided
        if(null!=e){if("object"!=typeof e&&/*eslint no-param-reassign:0*/(e=[e]),h(e))for(n=0,o=e.length;n<o;n++)t.call(null,e[n],n,e);else{let o;// Iterate over object keys
            let i=r?Object.getOwnPropertyNames(e):Object.keys(e),s=i.length;for(n=0;n<s;n++)o=i[n],t.call(null,e[o],o,e)}}}function A(e,t){let r;t=t.toLowerCase();let n=Object.keys(e),o=n.length;for(;o-- >0;)if(t===(r=n[o]).toLowerCase())return r;return null}let x=/*eslint no-undef:0*/"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:r,I=e=>!p(e)&&e!==x,O=(s="undefined"!=typeof Uint8Array&&u(Uint8Array),e=>s&&e instanceof s),_=f("HTMLFormElement"),k=(({hasOwnProperty:e})=>(t,r)=>e.call(t,r))(Object.prototype),D=f("RegExp"),K=(e,t)=>{let r=Object.getOwnPropertyDescriptors(e),n={};q(r,(r,o)=>{let i;!1!==(i=t(r,o,e))&&(n[o]=i||r)}),Object.defineProperties(e,n)},N="abcdefghijklmnopqrstuvwxyz",U="0123456789",P={DIGIT:U,ALPHA:N,ALPHA_DIGIT:N+N.toUpperCase()+U},L=f("AsyncFunction");var j={isArray:h,isArrayBuffer:v,isBuffer:/**
         * Determine if a value is a Buffer
         *
         * @param {*} val The value to test
         *
         * @returns {boolean} True if value is a Buffer, otherwise false
         */function(e){return null!==e&&!p(e)&&null!==e.constructor&&!p(e.constructor)&&g(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||g(e.append)&&("formdata"===(t=d(e))||// detect form-data instance
            "object"===t&&g(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:/**
         * Determine if a value is a view on an ArrayBuffer
         *
         * @param {*} val The value to test
         *
         * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
         */function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&v(e.buffer)},isString:y,isNumber:m,isBoolean:e=>!0===e||!1===e,isObject:b,isPlainObject:w,isUndefined:p,isDate:E,isFile:C,isBlob:S,isRegExp:D,isFunction:g,isStream:e=>b(e)&&g(e.pipe),isURLSearchParams:R,isTypedArray:O,isFileList:T,forEach:q,merge:/**
         * Accepts varargs expecting each argument to be an object, then
         * immutably merges the properties of each object and returns result.
         *
         * When multiple objects contain the same key the later object in
         * the arguments list will take precedence.
         *
         * Example:
         *
         * ```js
         * var result = merge({foo: 123}, {foo: 456});
         * console.log(result.foo); // outputs 456
         * ```
         *
         * @param {Object} obj1 Object to merge
         *
         * @returns {Object} Result of all merge properties
         */function e(){let{caseless:t}=I(this)&&this||{},r={},n=(n,o)=>{let i=t&&A(r,o)||o;w(r[i])&&w(n)?r[i]=e(r[i],n):w(n)?r[i]=e({},n):h(n)?r[i]=n.slice():r[i]=n};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&q(arguments[e],n);return r},extend:(e,t,r,{allOwnKeys:n}={})=>(q(t,(t,n)=>{r&&g(t)?e[n]=(0,a.default)(t,r):e[n]=t},{allOwnKeys:n}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,r,n)=>{e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:(e,t,r,n)=>{let o,i,s;let a={};// eslint-disable-next-line no-eq-null,eqeqeq
            if(t=t||{},null==e)return t;do{for(i=(o=Object.getOwnPropertyNames(e)).length;i-- >0;)s=o[i],(!n||n(s,e,t))&&!a[s]&&(t[s]=e[s],a[s]=!0);e=!1!==r&&u(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype)return t},kindOf:d,kindOfTest:f,endsWith:(e,t,r)=>{e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;let n=e.indexOf(t,r);return -1!==n&&n===r},toArray:e=>{if(!e)return null;if(h(e))return e;let t=e.length;if(!m(t))return null;let r=Array(t);for(;t-- >0;)r[t]=e[t];return r},forEachEntry:(e,t)=>{let r;let n=e&&e[Symbol.iterator],o=n.call(e);for(;(r=o.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let r;let n=[];for(;null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm:_,hasOwnProperty:k,hasOwnProp:k,reduceDescriptors:K,freezeMethods:e=>{K(e,(t,r)=>{// skip restricted props in strict mode
            if(g(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;let n=e[r];if(g(n)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},toObjectSet:(e,t)=>{let r={};return(e=>{e.forEach(e=>{r[e]=!0})})(h(e)?e:String(e).split(t)),r},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,r){return t.toUpperCase()+r}),noop:()=>{},toFiniteNumber:(e,t)=>Number.isFinite(e=+e)?e:t,findKey:A,global:x,isContextDefined:I,ALPHABET:P,generateString:(e=16,t=P.ALPHA_DIGIT)=>{let r="",{length:n}=t;for(;e--;)r+=t[Math.random()*n|0];return r},isSpecCompliantForm:/**
         * If the thing is a FormData object, return true, otherwise return false.
         *
         * @param {unknown} thing - The thing to check.
         *
         * @returns {boolean}
         */function(e){return!!(e&&g(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{let t=Array(10),r=(e,n)=>{if(b(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[n]=e;let o=h(e)?[]:{};return q(e,(e,t)=>{let i=r(e,n+1);p(i)||(o[t]=i)}),t[n]=void 0,o}}return e};return r(e,0)},isAsyncFn:L,isThenable:e=>e&&(b(e)||g(e))&&g(e.then)&&g(e.catch)}}),s("7Ibnk",function(t,r){e(t.exports,"default",function(){return n});function n(e,t){return function(){return e.apply(t,arguments)}}}),s("g3ejh",function(t,r){e(t.exports,"default",function(){return p});var n=i("hgngq"),o=i("2Y02D"),s=i("d5XAa"),a=i("69jb4"),l=i("ie4wS"),u=i("a4S1E"),d=i("2iN7U"),f=i("6kxSN");let c=d.default.validators;/**
 * Create a new instance of Axios
 *
 * @param {Object} instanceConfig The default config for the instance
 *
 * @return {Axios} A new instance of Axios
 */class h{/**
 * Dispatch a request
 *
 * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)
 * @param {?Object} config
 *
 * @returns {Promise} The Promise to be fulfilled
 */async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t;Error.captureStackTrace?Error.captureStackTrace(t={}):t=Error();// slice off the Error: ... line
    let r=t.stack?t.stack.replace(/^.+\n/,""):"";e.stack?r&&!String(e.stack).endsWith(r.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+r):e.stack=r}throw e}}_request(e,t){let r,o;"string"==typeof e?(t=t||{}).url=e:t=e||{},t=(0,l.default)(this.defaults,t);let{transitional:i,paramsSerializer:s,headers:u}=t;void 0!==i&&(0,d.default).assertOptions(i,{silentJSONParsing:c.transitional(c.boolean),forcedJSONParsing:c.transitional(c.boolean),clarifyTimeoutError:c.transitional(c.boolean)},!1),null!=s&&((0,n.default).isFunction(s)?t.paramsSerializer={serialize:s}:(0,d.default).assertOptions(s,{encode:c.function,serialize:c.function},!0)),// Set config.method
    t.method=(t.method||this.defaults.method||"get").toLowerCase();// Flatten headers
    let h=u&&(0,n.default).merge(u.common,u[t.method]);u&&(0,n.default).forEach(["delete","get","head","post","put","patch","common"],e=>{delete u[e]}),t.headers=(0,f.default).concat(h,u);// filter out skipped interceptors
    let p=[],v=!0;this.interceptors.request.forEach(function(e){("function"!=typeof e.runWhen||!1!==e.runWhen(t))&&(v=v&&e.synchronous,p.unshift(e.fulfilled,e.rejected))});let y=[];this.interceptors.response.forEach(function(e){y.push(e.fulfilled,e.rejected)});let g=0;if(!v){let e=[(0,a.default).bind(this),void 0];for(e.unshift.apply(e,p),e.push.apply(e,y),o=e.length,r=Promise.resolve(t);g<o;)r=r.then(e[g++],e[g++]);return r}o=p.length;let m=t;for(g=0;g<o;){let e=p[g++],t=p[g++];try{m=e(m)}catch(e){t.call(this,e);break}}try{r=(0,a.default).call(this,m)}catch(e){return Promise.reject(e)}for(g=0,o=y.length;g<o;)r=r.then(y[g++],y[g++]);return r}getUri(e){e=(0,l.default)(this.defaults,e);let t=(0,u.default)(e.baseURL,e.url);return(0,o.default)(t,e.params,e.paramsSerializer)}constructor(e){this.defaults=e,this.interceptors={request:new s.default,response:new s.default}}}// Provide aliases for supported request methods
    (0,n.default).forEach(["delete","get","head","options"],function(e){/*eslint func-names:0*/h.prototype[e]=function(t,r){return this.request((0,l.default)(r||{},{method:e,url:t,data:(r||{}).data}))}}),(0,n.default).forEach(["post","put","patch"],function(e){/*eslint func-names:0*/function t(t){return function(r,n,o){return this.request((0,l.default)(o||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:r,data:n}))}}h.prototype[e]=t(),h.prototype[e+"Form"]=t(!0)});var p=h}),s("2Y02D",function(t,r){e(t.exports,"default",function(){return a});var n=i("hgngq"),o=i("8NKc0");/**
 * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their
 * URI encoded counterparts
 *
 * @param {string} val The value to be encoded.
 *
 * @returns {string} The encoded value.
 */function s(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function a(e,t,r){let i;/*eslint no-param-reassign:0*/if(!t)return e;let a=r&&r.encode||s,l=r&&r.serialize;if(i=l?l(t,r):(0,n.default).isURLSearchParams(t)?t.toString():new(0,o.default)(t,r).toString(a)){let t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}}),s("8NKc0",function(t,r){e(t.exports,"default",function(){return l});var n=i("kA8lJ");/**
 * It encodes a string by replacing all characters that are not in the unreserved set with
 * their percent-encoded equivalents
 *
 * @param {string} str - The string to encode.
 *
 * @returns {string} The encoded string.
 */function o(e){let t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\x00"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(e){return t[e]})}/**
 * It takes a params object and converts it to a FormData object
 *
 * @param {Object<string, any>} params - The parameters to be converted to a FormData object.
 * @param {Object<string, any>} options - The options object passed to the Axios constructor.
 *
 * @returns {void}
 */function s(e,t){this._pairs=[],e&&(0,n.default)(e,this,t)}let a=s.prototype;a.append=function(e,t){this._pairs.push([e,t])},a.toString=function(e){let t=e?function(t){return e.call(this,t,o)}:o;return this._pairs.map(function(e){return t(e[0])+"="+t(e[1])},"").join("&")};var l=s}),s("kA8lJ",function(t,r){e(t.exports,"default",function(){return c});var n=i("hgngq"),o=i("9UeRl"),s=i("knlrn"),a=i("fLqwR").Buffer;/**
 * Determines if the given thing is a array or js object.
 *
 * @param {string} thing - The object or array to be visited.
 *
 * @returns {boolean}
 */function l(e){return(0,n.default).isPlainObject(e)||(0,n.default).isArray(e)}/**
 * It removes the brackets from the end of a string
 *
 * @param {string} key - The key of the parameter.
 *
 * @returns {string} the key without the brackets.
 */function u(e){return(0,n.default).endsWith(e,"[]")?e.slice(0,-2):e}/**
 * It takes a path, a key, and a boolean, and returns a string
 *
 * @param {string} path - The path to the current key.
 * @param {string} key - The key of the current object being iterated over.
 * @param {string} dots - If true, the key will be rendered with dots instead of brackets.
 *
 * @returns {string} The path to the current key.
 */function d(e,t,r){return e?e.concat(t).map(function(e,t){return(// eslint-disable-next-line no-param-reassign
    e=u(e),!r&&t?"["+e+"]":e)}).join(r?".":""):t}let f=(0,n.default).toFlatObject(n.default,{},null,function(e){return/^is[A-Z]/.test(e)});var c=/**
 * Convert a data object to FormData
 *
 * @param {Object} obj
 * @param {?Object} [formData]
 * @param {?Object} [options]
 * @param {Function} [options.visitor]
 * @param {Boolean} [options.metaTokens = true]
 * @param {Boolean} [options.dots = false]
 * @param {?Boolean} [options.indexes = false]
 *
 * @returns {Object}
 **//**
 * It converts an object into a FormData object
 *
 * @param {Object<any, any>} obj - The object to convert to form data.
 * @param {string} formData - The FormData object to append to.
 * @param {Object<string, any>} options
 *
 * @returns
 */function(e,t,r){if(!(0,n.default).isObject(e))throw TypeError("target must be an object");// eslint-disable-next-line no-param-reassign
    t=t||new(s.default||FormData),// eslint-disable-next-line no-param-reassign
        r=(0,n.default).toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){// eslint-disable-next-line no-eq-null,eqeqeq
            return!(0,n.default).isUndefined(t[e])});let i=r.metaTokens,c=r.visitor||m,h=r.dots,p=r.indexes,v=r.Blob||"undefined"!=typeof Blob&&Blob,y=v&&(0,n.default).isSpecCompliantForm(t);if(!(0,n.default).isFunction(c))throw TypeError("visitor must be a function");function g(e){if(null===e)return"";if((0,n.default).isDate(e))return e.toISOString();if(!y&&(0,n.default).isBlob(e))throw new o.default("Blob is not supported. Use a Buffer instead.");return(0,n.default).isArrayBuffer(e)||(0,n.default).isTypedArray(e)?y&&"function"==typeof Blob?new Blob([e]):a.from(e):e}/**
     * Default visitor.
     *
     * @param {*} value
     * @param {String|Number} key
     * @param {Array<String|Number>} path
     * @this {FormData}
     *
     * @returns {boolean} return true to visit the each prop of the value recursively
     */function m(e,r,o){let s=e;if(e&&!o&&"object"==typeof e){if((0,n.default).endsWith(r,"{}"))// eslint-disable-next-line no-param-reassign
        r=i?r:r.slice(0,-2),// eslint-disable-next-line no-param-reassign
            e=JSON.stringify(e);else{var a;if((0,n.default).isArray(e)&&(a=e,(0,n.default).isArray(a)&&!a.some(l))||((0,n.default).isFileList(e)||(0,n.default).endsWith(r,"[]"))&&(s=(0,n.default).toArray(e)))return(// eslint-disable-next-line no-param-reassign
        r=u(r),s.forEach(function(e,o){(0,n.default).isUndefined(e)||null===e||t.append(!0===p?d([r],o,h):null===p?r:r+"[]",g(e))}),!1)}}return!!l(e)||(t.append(d(o,r,h),g(e)),!1)}let b=[],w=Object.assign(f,{defaultVisitor:m,convertValue:g,isVisitable:l});if(!(0,n.default).isObject(e))throw TypeError("data must be an object");return function e(r,o){if(!(0,n.default).isUndefined(r)){if(-1!==b.indexOf(r))throw Error("Circular reference detected in "+o.join("."));b.push(r),(0,n.default).forEach(r,function(r,i){let s=!((0,n.default).isUndefined(r)||null===r)&&c.call(t,r,(0,n.default).isString(i)?i.trim():i,o,w);!0===s&&e(r,o?o.concat(i):[i])}),b.pop()}}(e),t}}),s("9UeRl",function(t,r){e(t.exports,"default",function(){return l});var n=i("hgngq");/**
 * Create an Error with the specified message, config, error code, request and response.
 *
 * @param {string} message The error message.
 * @param {string} [code] The error code (for example, 'ECONNABORTED').
 * @param {Object} [config] The config.
 * @param {Object} [request] The request.
 * @param {Object} [response] The response.
 *
 * @returns {Error} The created error.
 */function o(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o)}(0,n.default).inherits(o,Error,{toJSON:function(){return{// Standard
        message:this.message,name:this.name,// Microsoft
        description:this.description,number:this.number,// Mozilla
        fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,// Axios
        config:(0,n.default).toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});let s=o.prototype,a={};["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","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{a[e]={value:e}}),Object.defineProperties(o,a),Object.defineProperty(s,"isAxiosError",{value:!0}),// eslint-disable-next-line func-names
    o.from=(e,t,r,i,a,l)=>{let u=Object.create(s);return(0,n.default).toFlatObject(e,u,function(e){return e!==Error.prototype},e=>"isAxiosError"!==e),o.call(u,e.message,t,r,i,a),u.cause=e,u.name=e.name,l&&Object.assign(u,l),u};var l=o}),s("knlrn",function(t,r){e(t.exports,"default",function(){return n});// eslint-disable-next-line strict
    var n=null}),s("fLqwR",function(t,r){e(t.exports,"Buffer",function(){return n},function(e){return n=e}),e(t.exports,"INSPECT_MAX_BYTES",function(){return o},function(e){return o=e});var n,o,s=i("j3ood"),a=i("ea4e6"),l="function"==typeof Symbol&&"function"// eslint-disable-line dot-notation
==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom")// eslint-disable-line dot-notation
    :null;function u(e){if(e>2147483647)throw RangeError('The value "'+e+'" is invalid for option "size"');// Return an augmented `Uint8Array` instance
    var t=new Uint8Array(e);return Object.setPrototypeOf(t,d.prototype),t}/**
 * The Buffer constructor returns instances of `Uint8Array` that have their
 * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
 * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
 * and the `Uint8Array` methods. Square bracket notation works as expected -- it
 * returns a single octet.
 *
 * The `Uint8Array` prototype remains unmodified.
 */function d(e,t,r){// Common case.
    if("number"==typeof e){if("string"==typeof t)throw TypeError('The "string" argument must be of type string. Received type number');return h(e)}return f(e,t,r)}function f(e,t,r){if("string"==typeof e)return function(e,t){if(("string"!=typeof t||""===t)&&(t="utf8"),!d.isEncoding(t))throw TypeError("Unknown encoding: "+t);var r=0|g(e,t),n=u(r),o=n.write(e,t);return o!==r&&// cause everything after the first invalid character to be ignored. (e.g.
// 'abxxcd' will be treated as 'ab')
(n=n.slice(0,o)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(k(e,Uint8Array)){var t=new Uint8Array(e);return v(t.buffer,t.byteOffset,t.byteLength)}return p(e)}(e);if(null==e)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(k(e,ArrayBuffer)||e&&k(e.buffer,ArrayBuffer)||"undefined"!=typeof SharedArrayBuffer&&(k(e,SharedArrayBuffer)||e&&k(e.buffer,SharedArrayBuffer)))return v(e,t,r);if("number"==typeof e)throw TypeError('The "value" argument must not be of type number. Received type number');var n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return d.from(n,t,r);var o=function(e){if(d.isBuffer(e)){var t,r=0|y(e.length),n=u(r);return 0===n.length||e.copy(n,0,0,r),n}return void 0!==e.length?"number"!=typeof e.length||(t=e.length)!=t// eslint-disable-line no-self-compare
    ?u(0):p(e):"Buffer"===e.type&&Array.isArray(e.data)?p(e.data):void 0}(e);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return d.from(e[Symbol.toPrimitive]("string"),t,r);throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function c(e){if("number"!=typeof e)throw TypeError('"size" argument must be of type number');if(e<0)throw RangeError('The value "'+e+'" is invalid for option "size"')}function h(e){return c(e),u(e<0?0:0|y(e))}function p(e){for(var t=e.length<0?0:0|y(e.length),r=u(t),n=0;n<t;n+=1)r[n]=255&e[n];return r}function v(e,t,r){var n;if(t<0||e.byteLength<t)throw RangeError('"offset" is outside of buffer bounds');if(e.byteLength<t+(r||0))throw RangeError('"length" is outside of buffer bounds');return(// Return an augmented `Uint8Array` instance
    Object.setPrototypeOf(n=void 0===t&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,t):new Uint8Array(e,t,r),d.prototype),n)}function y(e){// Note: cannot use `length < K_MAX_LENGTH` here because that fails when
// length is NaN (which is otherwise coerced to zero.)
    if(e>=2147483647)throw RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|e}function g(e,t){if(d.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||k(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);var r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(// Use a for loop to avoid recursion
    var o=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return I(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return O(e).length;default:if(o)return n?-1:I(e).length// assume utf8
        ;t=(""+t).toLowerCase(),o=!0}}function m(e,t,r){var n,o,i=!1;// Return early if start > this.length. Done here to prevent potential uint32
// coercion fail below.
    if((void 0===t||t<0)&&(t=0),t>this.length||((void 0===r||r>this.length)&&(r=this.length),r<=0||// Force coercion to uint32. This will also coerce falsey/NaN values to 0.
    (r>>>=0)<=(t>>>=0)))return"";for(e||(e="utf8");;)switch(e){case"hex":return function(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var o="",i=t;i<r;++i)o+=D[e[i]];return o}(this,t,r);case"utf8":case"utf-8":return C(this,t,r);case"ascii":return function(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(127&e[o]);return n}(this,t,r);case"latin1":case"binary":return function(e,t,r){var n="";r=Math.min(e.length,r);for(var o=t;o<r;++o)n+=String.fromCharCode(e[o]);return n}(this,t,r);case"base64":return n=t,o=r,0===n&&o===this.length?s.fromByteArray(this):s.fromByteArray(this.slice(n,o));case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return function(e,t,r){// If bytes.length is odd, the last 8 bits must be ignored (same as node.js)
        for(var n=e.slice(t,r),o="",i=0;i<n.length-1;i+=2)o+=String.fromCharCode(n[i]+256*n[i+1]);return o}(this,t,r);default:if(i)throw TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),i=!0}}function b(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
//
// Arguments:
// - buffer - a Buffer to search
// - val - a string, Buffer, or number
// - byteOffset - an index into `buffer`; will be clamped to an int32
// - encoding - an optional encoding, relevant is val is a string
// - dir - true for indexOf, false for lastIndexOf
    function w(e,t,r,n,o){var i;// Empty buffer means no match
        if(0===e.length)return -1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),(i=r=+r// Coerce to Number.
        )!=i&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return -1;r=e.length-1}else if(r<0){if(!o)return -1;r=0}// Finally, search either indexOf (if dir is true) or lastIndexOf
        if("string"==typeof t&&(t=d.from(t,n)),d.isBuffer(t))return(// Special case: looking for empty string/buffer always fails
            0===t.length?-1:E(e,t,r,n,o));if("number"==typeof t)return(t&=255// Search for a byte value [0-255]
            ,"function"==typeof Uint8Array.prototype.indexOf)?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):E(e,[t],r,n,o);throw TypeError("val must be string, number or Buffer")}function E(e,t,r,n,o){var i,s=1,a=e.length,l=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return -1;s=2,a/=2,l/=2,r/=2}function u(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(o){var d=-1;for(i=r;i<a;i++)if(u(e,i)===u(t,-1===d?0:i-d)){if(-1===d&&(d=i),i-d+1===l)return d*s}else -1!==d&&(i-=i-d),d=-1}else for(r+l>a&&(r=a-l),i=r;i>=0;i--){for(var f=!0,c=0;c<l;c++)if(u(e,i+c)!==u(t,c)){f=!1;break}if(f)return i}return -1}function C(e,t,r){r=Math.min(e.length,r);for(var n=[],o=t;o<r;){var i,s,a,l,u=e[o],d=null,f=u>239?4:u>223?3:u>191?2:1;if(o+f<=r)switch(f){case 1:u<128&&(d=u);break;case 2:(192&(i=e[o+1]))==128&&(l=(31&u)<<6|63&i)>127&&(d=l);break;case 3:i=e[o+1],s=e[o+2],(192&i)==128&&(192&s)==128&&(l=(15&u)<<12|(63&i)<<6|63&s)>2047&&(l<55296||l>57343)&&(d=l);break;case 4:i=e[o+1],s=e[o+2],a=e[o+3],(192&i)==128&&(192&s)==128&&(192&a)==128&&(l=(15&u)<<18|(63&i)<<12|(63&s)<<6|63&a)>65535&&l<1114112&&(d=l)}null===d?(// we did not generate a valid codePoint so insert a
// replacement char (U+FFFD) and advance only 1 byte
        d=65533,f=1):d>65535&&(// encode to utf16 (surrogate pair dance)
        d-=65536,n.push(d>>>10&1023|55296),d=56320|1023&d),n.push(d),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e)// avoid extra slice()
        ;for(// Decode in chunks to avoid "call stack size exceeded".
        var r="",n=0;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=4096));return r}(n)}/*
 * Need to make sure that buffer isn't trying to write out of bounds.
 */function S(e,t,r){if(e%1!=0||e<0)throw RangeError("offset is not uint");if(e+t>r)throw RangeError("Trying to access beyond buffer length")}function T(e,t,r,n,o,i){if(!d.isBuffer(e))throw TypeError('"buffer" argument must be a Buffer instance');if(t>o||t<i)throw RangeError('"value" argument is out of bounds');if(r+n>e.length)throw RangeError("Index out of range")}function R(e,t,r,n,o,i){if(r+n>e.length||r<0)throw RangeError("Index out of range")}function q(e,t,r,n,o){return t=+t,r>>>=0,o||R(e,t,r,4,34028234663852886e22,-34028234663852886e22),a.write(e,t,r,n,23,4),r+4}function A(e,t,r,n,o){return t=+t,r>>>=0,o||R(e,t,r,8,17976931348623157e292,-17976931348623157e292),a.write(e,t,r,n,52,8),r+8}n=d,o=50,/**
     * If `Buffer.TYPED_ARRAY_SUPPORT`:
     *   === true    Use Uint8Array implementation (fastest)
     *   === false   Print warning and recommend using `buffer` v4.x which has an Object
     *               implementation (most compatible, even IE6)
     *
     * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
     * Opera 11.6+, iOS 4.2+.
     *
     * We report that the browser does not support typed arrays if the are not subclassable
     * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`
     * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support
     * for __proto__ and has a buggy typed array implementation.
     */d.TYPED_ARRAY_SUPPORT=function(){// Can typed array instances can be augmented?
        try{var e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),42===e.foo()}catch(e){return!1}}(),d.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(d.prototype,"parent",{enumerable:!0,get:function(){if(d.isBuffer(this))return this.buffer}}),Object.defineProperty(d.prototype,"offset",{enumerable:!0,get:function(){if(d.isBuffer(this))return this.byteOffset}}),d.poolSize=8192// not used by this implementation
        ,/**
     * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
     * if value is a number.
     * Buffer.from(str[, encoding])
     * Buffer.from(array)
     * Buffer.from(buffer)
     * Buffer.from(arrayBuffer[, byteOffset[, length]])
     **/d.from=function(e,t,r){return f(e,t,r)},// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:
// https://github.com/feross/buffer/pull/148
        Object.setPrototypeOf(d.prototype,Uint8Array.prototype),Object.setPrototypeOf(d,Uint8Array),/**
     * Creates a new filled Buffer instance.
     * alloc(size[, fill[, encoding]])
     **/d.alloc=function(e,t,r){return(c(e),e<=0)?u(e):void 0!==t?"string"==typeof r?u(e).fill(t,r):u(e).fill(t):u(e)},/**
     * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
     * */d.allocUnsafe=function(e){return h(e)},/**
     * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
     */d.allocUnsafeSlow=function(e){return h(e)},d.isBuffer=function(e){return null!=e&&!0===e._isBuffer&&e!==d.prototype// so Buffer.isBuffer(Buffer.prototype) will be false
    },d.compare=function(e,t){if(k(e,Uint8Array)&&(e=d.from(e,e.offset,e.byteLength)),k(t,Uint8Array)&&(t=d.from(t,t.offset,t.byteLength)),!d.isBuffer(e)||!d.isBuffer(t))throw TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(e===t)return 0;for(var r=e.length,n=t.length,o=0,i=Math.min(r,n);o<i;++o)if(e[o]!==t[o]){r=e[o],n=t[o];break}return r<n?-1:n<r?1:0},d.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},d.concat=function(e,t){if(!Array.isArray(e))throw TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return d.alloc(0);if(void 0===t)for(r=0,t=0;r<e.length;++r)t+=e[r].length;var r,n=d.allocUnsafe(t),o=0;for(r=0;r<e.length;++r){var i=e[r];if(k(i,Uint8Array))o+i.length>n.length?d.from(i).copy(n,o):Uint8Array.prototype.set.call(n,i,o);else if(d.isBuffer(i))i.copy(n,o);else throw TypeError('"list" argument must be an Array of Buffers');o+=i.length}return n},d.byteLength=g,// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)
// to detect a Buffer instance. It's not possible to use `instanceof Buffer`
// reliably in a browserify context because there could be multiple different
// copies of the 'buffer' package in use. This method works even for Buffer
// instances that were created from another copy of the `buffer` package.
// See: https://github.com/feross/buffer/issues/154
        d.prototype._isBuffer=!0,d.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)b(this,t,t+1);return this},d.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)b(this,t,t+3),b(this,t+1,t+2);return this},d.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)b(this,t,t+7),b(this,t+1,t+6),b(this,t+2,t+5),b(this,t+3,t+4);return this},d.prototype.toString=function(){var e=this.length;return 0===e?"":0==arguments.length?C(this,0,e):m.apply(this,arguments)},d.prototype.toLocaleString=d.prototype.toString,d.prototype.equals=function(e){if(!d.isBuffer(e))throw TypeError("Argument must be a Buffer");return this===e||0===d.compare(this,e)},d.prototype.inspect=function(){var e="",t=o;return e=this.toString("hex",0,t).replace(/(.{2})/g,"$1 ").trim(),this.length>t&&(e+=" ... "),"<Buffer "+e+">"},l&&(d.prototype[l]=d.prototype.inspect),d.prototype.compare=function(e,t,r,n,o){if(k(e,Uint8Array)&&(e=d.from(e,e.offset,e.byteLength)),!d.isBuffer(e))throw TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return -1;if(t>=r)return 1;if(t>>>=0,r>>>=0,n>>>=0,o>>>=0,this===e)return 0;for(var i=o-n,s=r-t,a=Math.min(i,s),l=this.slice(n,o),u=e.slice(t,r),f=0;f<a;++f)if(l[f]!==u[f]){i=l[f],s=u[f];break}return i<s?-1:s<i?1:0},d.prototype.includes=function(e,t,r){return -1!==this.indexOf(e,t,r)},d.prototype.indexOf=function(e,t,r){return w(this,e,t,r,!0)},d.prototype.lastIndexOf=function(e,t,r){return w(this,e,t,r,!1)},d.prototype.write=function(e,t,r,n){// Buffer#write(string)
        if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else if(isFinite(t))t>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0);else throw Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var o,i,s,a,l,u,d,f,c=this.length-t;if((void 0===r||r>c)&&(r=c),e.length>0&&(r<0||t<0)||t>this.length)throw RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var h=!1;;)switch(n){case"hex":return function(e,t,r,n){r=Number(r)||0;var o=e.length-r;n?(n=Number(n))>o&&(n=o):n=o;var i=t.length;n>i/2&&(n=i/2);for(var s=0;s<n;++s){var a=parseInt(t.substr(2*s,2),16);if(a!=a)break;e[r+s]=a}return s}(this,e,t,r);case"utf8":case"utf-8":return o=t,i=r,_(I(e,this.length-o),this,o,i);case"ascii":case"latin1":case"binary":return s=t,a=r,_(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(e),this,s,a);case"base64":// Warning: maxLength not taken into account in base64Write
            return l=t,u=r,_(O(e),this,l,u);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return d=t,f=r,_(function(e,t){for(var r,n,o=[],i=0;i<e.length&&!((t-=2)<0);++i)n=(r=e.charCodeAt(i))>>8,o.push(r%256),o.push(n);return o}(e,this.length-d),this,d,f);default:if(h)throw TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),h=!0}},d.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},d.prototype.slice=function(e,t){var r=this.length;e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e);var n=this.subarray(e,t);return(// Return an augmented `Uint8Array` instance
        Object.setPrototypeOf(n,d.prototype),n)},d.prototype.readUintLE=d.prototype.readUIntLE=function(e,t,r){e>>>=0,t>>>=0,r||S(e,t,this.length);for(var n=this[e],o=1,i=0;++i<t&&(o*=256);)n+=this[e+i]*o;return n},d.prototype.readUintBE=d.prototype.readUIntBE=function(e,t,r){e>>>=0,t>>>=0,r||S(e,t,this.length);for(var n=this[e+--t],o=1;t>0&&(o*=256);)n+=this[e+--t]*o;return n},d.prototype.readUint8=d.prototype.readUInt8=function(e,t){return e>>>=0,t||S(e,1,this.length),this[e]},d.prototype.readUint16LE=d.prototype.readUInt16LE=function(e,t){return e>>>=0,t||S(e,2,this.length),this[e]|this[e+1]<<8},d.prototype.readUint16BE=d.prototype.readUInt16BE=function(e,t){return e>>>=0,t||S(e,2,this.length),this[e]<<8|this[e+1]},d.prototype.readUint32LE=d.prototype.readUInt32LE=function(e,t){return e>>>=0,t||S(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},d.prototype.readUint32BE=d.prototype.readUInt32BE=function(e,t){return e>>>=0,t||S(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},d.prototype.readIntLE=function(e,t,r){e>>>=0,t>>>=0,r||S(e,t,this.length);for(var n=this[e],o=1,i=0;++i<t&&(o*=256);)n+=this[e+i]*o;return n>=(o*=128)&&(n-=Math.pow(2,8*t)),n},d.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||S(e,t,this.length);for(var n=t,o=1,i=this[e+--n];n>0&&(o*=256);)i+=this[e+--n]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},d.prototype.readInt8=function(e,t){return(e>>>=0,t||S(e,1,this.length),128&this[e])?-((255-this[e]+1)*1):this[e]},d.prototype.readInt16LE=function(e,t){e>>>=0,t||S(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},d.prototype.readInt16BE=function(e,t){e>>>=0,t||S(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},d.prototype.readInt32LE=function(e,t){return e>>>=0,t||S(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},d.prototype.readInt32BE=function(e,t){return e>>>=0,t||S(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},d.prototype.readFloatLE=function(e,t){return e>>>=0,t||S(e,4,this.length),a.read(this,e,!0,23,4)},d.prototype.readFloatBE=function(e,t){return e>>>=0,t||S(e,4,this.length),a.read(this,e,!1,23,4)},d.prototype.readDoubleLE=function(e,t){return e>>>=0,t||S(e,8,this.length),a.read(this,e,!0,52,8)},d.prototype.readDoubleBE=function(e,t){return e>>>=0,t||S(e,8,this.length),a.read(this,e,!1,52,8)},d.prototype.writeUintLE=d.prototype.writeUIntLE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){var o=Math.pow(2,8*r)-1;T(this,e,t,r,o,0)}var i=1,s=0;for(this[t]=255&e;++s<r&&(i*=256);)this[t+s]=e/i&255;return t+r},d.prototype.writeUintBE=d.prototype.writeUIntBE=function(e,t,r,n){if(e=+e,t>>>=0,r>>>=0,!n){var o=Math.pow(2,8*r)-1;T(this,e,t,r,o,0)}var i=r-1,s=1;for(this[t+i]=255&e;--i>=0&&(s*=256);)this[t+i]=e/s&255;return t+r},d.prototype.writeUint8=d.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,1,255,0),this[t]=255&e,t+1},d.prototype.writeUint16LE=d.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},d.prototype.writeUint16BE=d.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},d.prototype.writeUint32LE=d.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},d.prototype.writeUint32BE=d.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},d.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);T(this,e,t,r,o-1,-o)}var i=0,s=1,a=0;for(this[t]=255&e;++i<r&&(s*=256);)e<0&&0===a&&0!==this[t+i-1]&&(a=1),this[t+i]=(e/s>>0)-a&255;return t+r},d.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var o=Math.pow(2,8*r-1);T(this,e,t,r,o-1,-o)}var i=r-1,s=1,a=0;for(this[t+i]=255&e;--i>=0&&(s*=256);)e<0&&0===a&&0!==this[t+i+1]&&(a=1),this[t+i]=(e/s>>0)-a&255;return t+r},d.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},d.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},d.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},d.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},d.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||T(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},d.prototype.writeFloatLE=function(e,t,r){return q(this,e,t,!0,r)},d.prototype.writeFloatBE=function(e,t,r){return q(this,e,t,!1,r)},d.prototype.writeDoubleLE=function(e,t,r){return A(this,e,t,!0,r)},d.prototype.writeDoubleBE=function(e,t,r){return A(this,e,t,!1,r)},// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
        d.prototype.copy=function(e,t,r,n){if(!d.isBuffer(e))throw TypeError("argument should be a Buffer");// Copy 0 bytes; we're done
            if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n<r&&(n=r),n===r||0===e.length||0===this.length)return 0;// Fatal error conditions
            if(t<0)throw RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw RangeError("Index out of range");if(n<0)throw RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t<n-r&&(n=e.length-t+r);var o=n-r;return this===e&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(t,r,n):Uint8Array.prototype.set.call(e,this.subarray(r,n),t),o},// Usage:
//    buffer.fill(number[, offset[, end]])
//    buffer.fill(buffer[, offset[, end]])
//    buffer.fill(string[, offset[, end]][, encoding])
        d.prototype.fill=function(e,t,r,n){// Handle string cases:
            if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),void 0!==n&&"string"!=typeof n)throw TypeError("encoding must be a string");if("string"==typeof n&&!d.isEncoding(n))throw TypeError("Unknown encoding: "+n);if(1===e.length){var o,i=e.charCodeAt(0);("utf8"===n&&i<128||"latin1"===n)&&(e=i)}}else"number"==typeof e?e&=255:"boolean"==typeof e&&(e=Number(e));// Invalid ranges are not set to a default, so can range check early.
            if(t<0||this.length<t||this.length<r)throw RangeError("Out of range index");if(r<=t)return this;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o<r;++o)this[o]=e;else{var s=d.isBuffer(e)?e:d.from(e,n),a=s.length;if(0===a)throw TypeError('The value "'+e+'" is invalid for argument "value"');for(o=0;o<r-t;++o)this[o+t]=s[o%a]}return this};// HELPER FUNCTIONS
// ================
    var x=/[^+/0-9A-Za-z-_]/g;function I(e,t){t=t||1/0;for(var r,n=e.length,o=null,i=[],s=0;s<n;++s){// is surrogate component
        if((r=e.charCodeAt(s))>55295&&r<57344){// last char was a lead
            if(!o){// no lead yet
                if(r>56319||s+1===n){// unexpected trail
                    (t-=3)>-1&&i.push(239,191,189);continue}// valid lead
                o=r;continue}// 2 leads in a row
            if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}// valid surrogate pair
            r=(o-55296<<10|r-56320)+65536}else o&&(t-=3)>-1&&i.push(239,191,189);// encode utf8
        if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else if(r<1114112){if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}else throw Error("Invalid code point")}return i}function O(e){return s.toByteArray(function(e){// Node converts strings with length < 2 to ''
        if(// Node strips out invalid characters like \n and \t from the string, base64-js does not
            (e=// Node takes equal signs as end of the Base64 encoding
                (e=e.split("=")[0]).trim().replace(x,"")).length<2)return"";// Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
        for(;e.length%4!=0;)e+="=";return e}(e))}function _(e,t,r,n){for(var o=0;o<n&&!(o+r>=t.length)&&!(o>=e.length);++o)t[o+r]=e[o];return o}// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass
// the `instanceof` check but they should be treated as of that type.
// See: https://github.com/feross/buffer/issues/166
    function k(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}// Create lookup table for `toString('hex')`
// See: https://github.com/feross/buffer/issues/219
    var D=function(){for(var e="0123456789abcdef",t=Array(256),r=0;r<16;++r)for(var n=16*r,o=0;o<16;++o)t[n+o]=e[r]+e[o];return t}()}),s("j3ood",function(t,r){e(t.exports,"toByteArray",function(){return n},function(e){return n=e}),e(t.exports,"fromByteArray",function(){return o},function(e){return o=e}),n=function(e){var t,r,n=function(e){var t=e.length;if(t%4>0)throw Error("Invalid string. Length must be a multiple of 4");// Trim off extra bytes after placeholder bytes are found
// See: https://github.com/beatgammit/base64-js/issues/42
    var r=e.indexOf("=");-1===r&&(r=t);var n=r===t?0:4-r%4;return[r,n]}(e),o=n[0],i=n[1],l=new a((o+i)*3/4-i),u=0,d=i>0?o-4:o;for(r=0;r<d;r+=4)t=s[e.charCodeAt(r)]<<18|s[e.charCodeAt(r+1)]<<12|s[e.charCodeAt(r+2)]<<6|s[e.charCodeAt(r+3)],l[u++]=t>>16&255,l[u++]=t>>8&255,l[u++]=255&t;return 2===i&&(t=s[e.charCodeAt(r)]<<2|s[e.charCodeAt(r+1)]>>4,l[u++]=255&t),1===i&&(t=s[e.charCodeAt(r)]<<10|s[e.charCodeAt(r+1)]<<4|s[e.charCodeAt(r+2)]>>2,l[u++]=t>>8&255,l[u++]=255&t),l},o=function(e){// go through the array every three bytes, we'll deal with trailing stuff later
    for(var t,r=e.length,n=r%3// if we have 1 byte left, pad 2 bytes
            ,o=[],s=0,a=r-n;s<a;s+=16383// must be multiple of 3
    )o.push(function(e,t,r){for(var n,o=[],s=t;s<r;s+=3)o.push(i[(n=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(255&e[s+2]))>>18&63]+i[n>>12&63]+i[n>>6&63]+i[63&n]);return o.join("")}(e,s,s+16383>a?a:s+16383));return 1===n?o.push(i[(t=e[r-1])>>2]+i[t<<4&63]+"=="):2===n&&o.push(i[(t=(e[r-2]<<8)+e[r-1])>>10]+i[t>>4&63]+i[t<<2&63]+"="),o.join("")};for(var n,o,i=[],s=[],a="undefined"!=typeof Uint8Array?Uint8Array:Array,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u=0,d=l.length;u<d;++u)i[u]=l[u],s[l.charCodeAt(u)]=u;// Support decoding URL-safe base64 strings, as Node.js does.
// See: https://en.wikipedia.org/wiki/Base64#URL_applications
    s["-".charCodeAt(0)]=62,s["_".charCodeAt(0)]=63}),s("ea4e6",function(t,r){var n,o;e(t.exports,"read",function(){return n},function(e){return n=e}),e(t.exports,"write",function(){return o},function(e){return o=e}),n=function(e,t,r,n,o){var i,s,a=8*o-n-1,l=(1<<a)-1,u=l>>1,d=-7,f=r?o-1:0,c=r?-1:1,h=e[t+f];for(f+=c,i=h&(1<<-d)-1,h>>=-d,d+=a;d>0;i=256*i+e[t+f],f+=c,d-=8);for(s=i&(1<<-d)-1,i>>=-d,d+=n;d>0;s=256*s+e[t+f],f+=c,d-=8);if(0===i)i=1-u;else{if(i===l)return s?NaN:(h?-1:1)*(1/0);s+=Math.pow(2,n),i-=u}return(h?-1:1)*s*Math.pow(2,i-n)},o=function(e,t,r,n,o,i){var s,a,l,u=8*i-o-1,d=(1<<u)-1,f=d>>1,c=23===o?5960464477539062e-23:0,h=n?0:i-1,p=n?1:-1,v=t<0||0===t&&1/t<0?1:0;for(isNaN(t=Math.abs(t))||t===1/0?(a=isNaN(t)?1:0,s=d):(s=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-s))<1&&(s--,l*=2),s+f>=1?t+=c/l:t+=c*Math.pow(2,1-f),t*l>=2&&(s++,l/=2),s+f>=d?(a=0,s=d):s+f>=1?(a=(t*l-1)*Math.pow(2,o),s+=f):(a=t*Math.pow(2,f-1)*Math.pow(2,o),s=0));o>=8;e[r+h]=255&a,h+=p,a/=256,o-=8);for(s=s<<o|a,u+=o;u>0;e[r+h]=255&s,h+=p,s/=256,u-=8);e[r+h-p]|=128*v}}),s("d5XAa",function(t,r){e(t.exports,"default",function(){return o});var n=i("hgngq"),o=class{/**
 * Add a new interceptor to the stack
 *
 * @param {Function} fulfilled The function to handle `then` for a `Promise`
 * @param {Function} rejected The function to handle `reject` for a `Promise`
 *
 * @return {Number} An ID used to remove interceptor later
 */use(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}/**
 * Remove an interceptor from the stack
 *
 * @param {Number} id The ID that was returned by `use`
 *
 * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise
 */eject(e){this.handlers[e]&&(this.handlers[e]=null)}/**
 * Clear all interceptors from the stack
 *
 * @returns {void}
 */clear(){this.handlers&&(this.handlers=[])}/**
 * Iterate over all the registered interceptors
 *
 * This method is particularly useful for skipping over any
 * interceptors that may have become `null` calling `eject`.
 *
 * @param {Function} fn The function to call for each interceptor
 *
 * @returns {void}
 */forEach(e){(0,n.default).forEach(this.handlers,function(t){null!==t&&e(t)})}constructor(){this.handlers=[]}}}),s("69jb4",function(t,r){e(t.exports,"default",function(){return f});var n=i("zNChz"),o=i("ahR7Q"),s=i("btmkB"),a=i("lRz8e"),l=i("6kxSN"),u=i("kDHQh");/**
 * Throws a `CanceledError` if cancellation has been requested.
 *
 * @param {Object} config The config that is to be used for the request
 *
 * @returns {void}
 */function d(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new a.default(null,e)}function f(e){d(e),e.headers=(0,l.default).from(e.headers),// Transform request data
    e.data=(0,n.default).call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);let t=(0,u.default).getAdapter(e.adapter||s.default.adapter);return t(e).then(function(t){return d(e),// Transform response data
    t.data=(0,n.default).call(e,e.transformResponse,t),t.headers=(0,l.default).from(t.headers),t},function(t){return!(0,o.default)(t)&&(d(e),t&&t.response&&(t.response.data=(0,n.default).call(e,e.transformResponse,t.response),t.response.headers=(0,l.default).from(t.response.headers))),Promise.reject(t)})}}),s("zNChz",function(t,r){e(t.exports,"default",function(){return a});var n=i("hgngq"),o=i("btmkB"),s=i("6kxSN");function a(e,t){let r=this||o.default,i=t||r,a=(0,s.default).from(i.headers),l=i.data;return(0,n.default).forEach(e,function(e){l=e.call(r,l,a.normalize(),t?t.status:void 0)}),a.normalize(),l}}),s("btmkB",function(t,r){e(t.exports,"default",function(){return c});var n=i("hgngq"),o=i("9UeRl"),s=i("aaULQ"),a=i("kA8lJ"),l=i("VMPiI"),u=i("4peFf"),d=i("bdXlQ");let f={transitional:s.default,adapter:["xhr","http"],transformRequest:[function(e,t){let r;let o=t.getContentType()||"",i=o.indexOf("application/json")>-1,s=(0,n.default).isObject(e);s&&(0,n.default).isHTMLForm(e)&&(e=new FormData(e));let u=(0,n.default).isFormData(e);if(u)return i?JSON.stringify((0,d.default)(e)):e;if((0,n.default).isArrayBuffer(e)||(0,n.default).isBuffer(e)||(0,n.default).isStream(e)||(0,n.default).isFile(e)||(0,n.default).isBlob(e))return e;if((0,n.default).isArrayBufferView(e))return e.buffer;if((0,n.default).isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(s){if(o.indexOf("application/x-www-form-urlencoded")>-1)return(0,l.default)(e,this.formSerializer).toString();if((r=(0,n.default).isFileList(e))||o.indexOf("multipart/form-data")>-1){let t=this.env&&this.env.FormData;return(0,a.default)(r?{"files[]":e}:e,t&&new t,this.formSerializer)}}return s||i?(t.setContentType("application/json",!1),/**
     * It takes a string, tries to parse it, and if it fails, it returns the stringified version
     * of the input
     *
     * @param {any} rawValue - The value to be stringified.
     * @param {Function} parser - A function that parses a string into a JavaScript object.
     * @param {Function} encoder - A function that takes a value and returns a string.
     *
     * @returns {string} A stringified version of the rawValue.
     */function(e,t,r){if((0,n.default).isString(e))try{return(0,JSON.parse)(e),(0,n.default).trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(0,JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){let t=this.transitional||f.transitional,r=t&&t.forcedJSONParsing,i="json"===this.responseType;if(e&&(0,n.default).isString(e)&&(r&&!this.responseType||i)){let r=t&&t.silentJSONParsing;try{return JSON.parse(e)}catch(e){if(!r&&i){if("SyntaxError"===e.name)throw(0,o.default).from(e,o.default.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],/**
     * A timeout in milliseconds to abort a request. If set to 0 (default) a
     * timeout is not created.
     */timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:u.default.classes.FormData,Blob:u.default.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};(0,n.default).forEach(["delete","get","head","post","put","patch"],e=>{f.headers[e]={}});var c=f}),s("aaULQ",function(t,r){e(t.exports,"default",function(){return n});var n={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1}}),s("VMPiI",function(t,r){e(t.exports,"default",function(){return a});var n=i("hgngq"),o=i("kA8lJ"),s=i("4peFf");function a(e,t){return(0,o.default)(e,new s.default.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,o){return s.default.isNode&&(0,n.default).isBuffer(e)?(this.append(t,e.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)}},t))}}),s("4peFf",function(t,r){e(t.exports,"default",function(){return o});var n=i("aZj86"),o={...i("6SZ2K"),...n.default}}),s("aZj86",function(t,r){e(t.exports,"default",function(){return a});var n=i("4HAL7"),o=i("6ZRUt"),s=i("9e78A"),a={isBrowser:!0,classes:{URLSearchParams:n.default,FormData:o.default,Blob:s.default},protocols:["http","https","file","blob","url","data"]}}),s("4HAL7",function(t,r){e(t.exports,"default",function(){return o});var n=i("8NKc0"),o="undefined"!=typeof URLSearchParams?URLSearchParams:n.default}),s("6ZRUt",function(t,r){e(t.exports,"default",function(){return n});var n="undefined"!=typeof FormData?FormData:null}),s("9e78A",function(t,r){e(t.exports,"default",function(){return n});var n="undefined"!=typeof Blob?Blob:null}),s("6SZ2K",function(t,r){var n;e(t.exports,"hasBrowserEnv",function(){return o}),e(t.exports,"hasStandardBrowserEnv",function(){return i}),e(t.exports,"hasStandardBrowserWebWorkerEnv",function(){return s});let o="undefined"!=typeof window&&"undefined"!=typeof document,i=(n="undefined"!=typeof navigator&&navigator.product,o&&0>["ReactNative","NativeScript","NS"].indexOf(n)),s="undefined"!=typeof WorkerGlobalScope&&// eslint-disable-next-line no-undef
    self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts}),s("bdXlQ",function(t,r){e(t.exports,"default",function(){return o});var n=i("hgngq"),o=/**
 * It takes a FormData object and returns a JavaScript object
 *
 * @param {string} formData The FormData object to convert to JSON.
 *
 * @returns {Object<string, any> | null} The converted object.
 */function(e){if((0,n.default).isFormData(e)&&(0,n.default).isFunction(e.entries)){let t={};return(0,n.default).forEachEntry(e,(e,r)=>{!function e(t,r,o,i){let s=t[i++];if("__proto__"===s)return!0;let a=Number.isFinite(+s),l=i>=t.length;if(s=!s&&(0,n.default).isArray(o)?o.length:s,l)return(0,n.default).hasOwnProp(o,s)?o[s]=[o[s],r]:o[s]=r,!a;o[s]&&(0,n.default).isObject(o[s])||(o[s]=[]);let u=e(t,r,o[s],i);return u&&(0,n.default).isArray(o[s])&&(o[s]=/**
 * Convert an array to an object.
 *
 * @param {Array<any>} arr - The array to convert to an object.
 *
 * @returns An object with the same keys and values as the array.
 */function(e){let t,r;let n={},o=Object.keys(e),i=o.length;for(t=0;t<i;t++)n[r=o[t]]=e[r];return n}(o[s])),!a}((0,n.default).matchAll(/\w+|\[(\w*)]/g,e).map(e=>"[]"===e[0]?"":e[1]||e[0]),r,t,0)}),t}return null}}),s("6kxSN",function(t,r){e(t.exports,"default",function(){return c});var n=i("hgngq"),o=i("gKtU3");let s=Symbol("internals");function a(e){return e&&String(e).trim().toLowerCase()}function l(e){return!1===e||null==e?e:(0,n.default).isArray(e)?e.map(l):String(e)}let u=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function d(e,t,r,o,i){if((0,n.default).isFunction(o))return o.call(this,t,r);if(i&&(t=r),(0,n.default).isString(t)){if((0,n.default).isString(o))return -1!==t.indexOf(o);if((0,n.default).isRegExp(o))return o.test(t)}}class f{set(e,t,r){let i=this;function s(e,t,r){let o=a(t);if(!o)throw Error("header name must be a non-empty string");let s=(0,n.default).findKey(i,o);s&&void 0!==i[s]&&!0!==r&&(void 0!==r||!1===i[s])||(i[s||t]=l(e))}let d=(e,t)=>(0,n.default).forEach(e,(e,r)=>s(e,r,t));return(0,n.default).isPlainObject(e)||e instanceof this.constructor?d(e,t):(0,n.default).isString(e)&&(e=e.trim())&&!u(e)?d((0,o.default)(e),t):null!=e&&s(t,e,r),this}get(e,t){if(e=a(e)){let r=(0,n.default).findKey(this,e);if(r){let e=this[r];if(!t)return e;if(!0===t)return function(e){let t;let r=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;for(;t=n.exec(e);)r[t[1]]=t[2];return r}(e);if((0,n.default).isFunction(t))return t.call(this,e,r);if((0,n.default).isRegExp(t))return t.exec(e);throw TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=a(e)){let r=(0,n.default).findKey(this,e);return!!(r&&void 0!==this[r]&&(!t||d(this,this[r],r,t)))}return!1}delete(e,t){let r=this,o=!1;function i(e){if(e=a(e)){let i=(0,n.default).findKey(r,e);i&&(!t||d(r,r[i],i,t))&&(delete r[i],o=!0)}}return(0,n.default).isArray(e)?e.forEach(i):i(e),o}clear(e){let t=Object.keys(this),r=t.length,n=!1;for(;r--;){let o=t[r];(!e||d(this,this[o],o,e,!0))&&(delete this[o],n=!0)}return n}normalize(e){let t=this,r={};return(0,n.default).forEach(this,(o,i)=>{let s=(0,n.default).findKey(r,i);if(s){t[s]=l(o),delete t[i];return}let a=e?i.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,r)=>t.toUpperCase()+r):String(i).trim();a!==i&&delete t[i],t[a]=l(o),r[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return(0,n.default).forEach(this,(r,o)=>{null!=r&&!1!==r&&(t[o]=e&&(0,n.default).isArray(r)?r.join(", "):r)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){let r=new this(e);return t.forEach(e=>r.set(e)),r}static accessor(e){let t=this[s]=this[s]={accessors:{}},r=t.accessors,o=this.prototype;function i(e){let t=a(e);r[t]||(function(e,t){let r=(0,n.default).toCamelCase(" "+t);["get","set","has"].forEach(n=>{Object.defineProperty(e,n+r,{value:function(e,r,o){return this[n].call(this,t,e,r,o)},configurable:!0})})}(o,e),r[t]=!0)}return(0,n.default).isArray(e)?e.forEach(i):i(e),this}constructor(e){e&&this.set(e)}}f.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),// reserved names hotfix
    (0,n.default).reduceDescriptors(f.prototype,({value:e},t)=>{let r=t[0].toUpperCase()+t.slice(1);// map `set` => `Set`
        return{get:()=>e,set(e){this[r]=e}}}),(0,n.default).freezeMethods(f);var c=f}),s("gKtU3",function(t,r){e(t.exports,"default",function(){return s});var n=i("hgngq");// RawAxiosHeaders whose duplicates are ignored by node
// c.f. https://nodejs.org/api/http.html#http_message_headers
    let o=(0,n.default).toObjectSet(["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"]);var /**
     * Parse headers into an object
     *
     * ```
     * Date: Wed, 27 Aug 2014 08:58:49 GMT
     * Content-Type: application/json
     * Connection: keep-alive
     * Transfer-Encoding: chunked
     * ```
     *
     * @param {String} rawHeaders Headers needing to be parsed
     *
     * @returns {Object} Headers parsed into an object
     */s=e=>{let t,r,n;let i={};return e&&e.split("\n").forEach(function(e){n=e.indexOf(":"),t=e.substring(0,n).trim().toLowerCase(),r=e.substring(n+1).trim(),!t||i[t]&&o[t]||("set-cookie"===t?i[t]?i[t].push(r):i[t]=[r]:i[t]=i[t]?i[t]+", "+r:r)}),i}}),s("ahR7Q",function(t,r){e(t.exports,"default",function(){return n});function n(e){return!!(e&&e.__CANCEL__)}}),s("lRz8e",function(t,r){e(t.exports,"default",function(){return s});var n=i("9UeRl");/**
 * A `CanceledError` is an object that is thrown when an operation is canceled.
 *
 * @param {string=} message The message.
 * @param {Object=} config The config.
 * @param {Object=} request The request.
 *
 * @returns {CanceledError} The created error.
 */function o(e,t,r){// eslint-disable-next-line no-eq-null,eqeqeq
    (0,n.default).call(this,null==e?"canceled":e,n.default.ERR_CANCELED,t,r),this.name="CanceledError"}(0,i("hgngq").default).inherits(o,n.default,{__CANCEL__:!0});var s=o}),s("kDHQh",function(t,r){e(t.exports,"default",function(){return f});var n=i("hgngq"),o=i("knlrn"),s=i("lriRp"),a=i("9UeRl");let l={http:o.default,xhr:s.default};(0,n.default).forEach(l,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){// eslint-disable-next-line no-empty
}Object.defineProperty(e,"adapterName",{value:t})}});let u=e=>`- ${e}`,d=e=>(0,n.default).isFunction(e)||null===e||!1===e;var f={getAdapter:e=>{let t,r;e=(0,n.default).isArray(e)?e:[e];let{length:o}=e,i={};for(let n=0;n<o;n++){let o;if(r=t=e[n],!d(t)&&void 0===(r=l[(o=String(t)).toLowerCase()]))throw new a.default(`Unknown adapter '${o}'`);if(r)break;i[o||"#"+n]=r}if(!r){let e=Object.entries(i).map(([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build")),t=o?e.length>1?"since :\n"+e.map(u).join("\n"):" "+u(e[0]):"as no adapter specified";throw new a.default("There is no suitable adapter to dispatch the request "+t,"ERR_NOT_SUPPORT")}return r},adapters:l}}),s("lriRp",function(t,r){e(t.exports,"default",function(){return b});var n=i("hgngq"),o=i("beJCu"),s=i("3v3kq"),a=i("2Y02D"),l=i("a4S1E"),u=i("3Ox7t"),d=i("aaULQ"),f=i("9UeRl"),c=i("lRz8e"),h=i("74PFf"),p=i("4peFf"),v=i("6kxSN"),y=i("efx5b");function g(e,t){let r=0,n=(0,y.default)(50,250);return o=>{let i=o.loaded,s=o.lengthComputable?o.total:void 0,a=i-r,l=n(a);r=i;let u={loaded:i,total:s,progress:s?i/s:void 0,bytes:a,rate:l||void 0,estimated:l&&s&&i<=s?(s-i)/l:void 0,event:o};u[t?"download":"upload"]=!0,e(u)}}let m="undefined"!=typeof XMLHttpRequest;var b=m&&function(e){return new Promise(function(t,r){let i,y,m=e.data,b=(0,v.default).from(e.headers).normalize(),{responseType:w,withXSRFToken:E}=e;function C(){e.cancelToken&&e.cancelToken.unsubscribe(i),e.signal&&e.signal.removeEventListener("abort",i)}if((0,n.default).isFormData(m)){if(p.default.hasStandardBrowserEnv||p.default.hasStandardBrowserWebWorkerEnv)b.setContentType(!1);// Let the browser set it
else if(!1!==(y=b.getContentType())){// fix semicolon duplication issue for ReactNative FormData implementation
    let[e,...t]=y?y.split(";").map(e=>e.trim()).filter(Boolean):[];b.setContentType([e||"multipart/form-data",...t].join("; "))}}let S=new XMLHttpRequest;// HTTP basic authentication
    if(e.auth){let t=e.auth.username||"",r=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";b.set("Authorization","Basic "+btoa(t+":"+r))}let T=(0,l.default)(e.baseURL,e.url);function R(){if(!S)return;// Prepare the response
        let n=(0,v.default).from("getAllResponseHeaders"in S&&S.getAllResponseHeaders()),i=w&&"text"!==w&&"json"!==w?S.response:S.responseText,s={data:i,status:S.status,statusText:S.statusText,headers:n,config:e,request:S};(0,o.default)(function(e){t(e),C()},function(e){r(e),C()},s),// Clean up request
            S=null}// Add xsrf header
// This is only done if running in a standard browser environment.
// Specifically not if we're in a web worker, or react-native.
    if(S.open(e.method.toUpperCase(),(0,a.default)(T,e.params,e.paramsSerializer),!0),// Set the request timeout in MS
        S.timeout=e.timeout,"onloadend"in S?S.onloadend=R:S.onreadystatechange=function(){S&&4===S.readyState&&(0!==S.status||S.responseURL&&0===S.responseURL.indexOf("file:"))&&// readystate handler is calling before onerror or ontimeout handlers,
    // so we should call onloadend on the next 'tick'
    setTimeout(R)},// Handle browser request cancellation (as opposed to a manual cancellation)
        S.onabort=function(){S&&(r(new f.default("Request aborted",f.default.ECONNABORTED,e,S)),// Clean up request
            S=null)},// Handle low level network errors
        S.onerror=function(){// Real errors are hidden from us by the browser
// onerror should only fire if it's a network error
            r(new f.default("Network Error",f.default.ERR_NETWORK,e,S)),// Clean up request
                S=null},// Handle timeout
        S.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",n=e.transitional||d.default;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),r(new f.default(t,n.clarifyTimeoutError?f.default.ETIMEDOUT:f.default.ECONNABORTED,e,S)),// Clean up request
            S=null},p.default.hasStandardBrowserEnv&&(E&&(0,n.default).isFunction(E)&&(E=E(e)),E||!1!==E&&(0,u.default)(T))){// Add xsrf header
        let t=e.xsrfHeaderName&&e.xsrfCookieName&&(0,s.default).read(e.xsrfCookieName);t&&b.set(e.xsrfHeaderName,t)}// Remove Content-Type if data is undefined
    void 0===m&&b.setContentType(null),"setRequestHeader"in S&&(0,n.default).forEach(b.toJSON(),function(e,t){S.setRequestHeader(t,e)}),(0,n.default).isUndefined(e.withCredentials)||(S.withCredentials=!!e.withCredentials),w&&"json"!==w&&(S.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&S.addEventListener("progress",g(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&S.upload&&S.upload.addEventListener("progress",g(e.onUploadProgress)),(e.cancelToken||e.signal)&&(// Handle cancellation
// eslint-disable-next-line func-names
        i=t=>{S&&(r(!t||t.type?new c.default(null,e,S):t),S.abort(),S=null)},e.cancelToken&&e.cancelToken.subscribe(i),e.signal&&(e.signal.aborted?i():e.signal.addEventListener("abort",i)));let q=(0,h.default)(T);if(q&&-1===(0,p.default).protocols.indexOf(q)){r(new f.default("Unsupported protocol "+q+":",f.default.ERR_BAD_REQUEST,e));return}// Send the request
    S.send(m||null)})}}),s("beJCu",function(t,r){e(t.exports,"default",function(){return o});var n=i("9UeRl");function o(e,t,r){let o=r.config.validateStatus;!r.status||!o||o(r.status)?e(r):t(new n.default("Request failed with status code "+r.status,[n.default.ERR_BAD_REQUEST,n.default.ERR_BAD_RESPONSE][Math.floor(r.status/100)-4],r.config,r.request,r))}}),s("3v3kq",function(t,r){e(t.exports,"default",function(){return o});var n=i("hgngq"),o=i("4peFf").default.hasStandardBrowserEnv?{write(e,t,r,o,i,s){let a=[e+"="+encodeURIComponent(t)];(0,n.default).isNumber(r)&&a.push("expires="+new Date(r).toGMTString()),(0,n.default).isString(o)&&a.push("path="+o),(0,n.default).isString(i)&&a.push("domain="+i),!0===s&&a.push("secure"),document.cookie=a.join("; ")},read(e){let t=document.cookie.match(RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}}}),s("a4S1E",function(t,r){e(t.exports,"default",function(){return s});var n=i("4Ph4w"),o=i("9svBw");function s(e,t){return e&&!(0,n.default)(t)?(0,o.default)(e,t):t}}),s("4Ph4w",function(t,r){e(t.exports,"default",function(){return n});function n(e){// A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
// RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
// by any combination of letters, digits, plus, period, or hyphen.
    return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}}),s("9svBw",function(t,r){e(t.exports,"default",function(){return n});function n(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}}),s("3Ox7t",function(t,r){e(t.exports,"default",function(){return o});var n=i("hgngq"),o=i("4peFf").default.hasStandardBrowserEnv?// whether the request URL is of the same origin as current location.
    function(){let e;let t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");/**
     * Parse a URL to discover its components
     *
     * @param {String} url The URL to be parsed
     * @returns {Object}
     */function o(e){let n=e;// urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
        return t&&(// IE needs attribute set twice to normalize properties
            r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}/**
     * Determine if a URL shares the same origin as the current location
     *
     * @param {String} requestURL The URL to test
     * @returns {boolean} True if URL shares the same origin, otherwise false
     */return e=o(window.location.href),function(t){let r=(0,n.default).isString(t)?o(t):t;return r.protocol===e.protocol&&r.host===e.host}}():function(){return!0}}),s("74PFf",function(t,r){e(t.exports,"default",function(){return n});function n(e){let t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}}),s("efx5b",function(t,r){e(t.exports,"default",function(){return n});var n=/**
 * Calculate data maxRate
 * @param {Number} [samplesCount= 10]
 * @param {Number} [min= 1000]
 * @returns {Function}
 */function(e,t){let r;e=e||10;let n=Array(e),o=Array(e),i=0,s=0;return t=void 0!==t?t:1e3,function(a){let l=Date.now(),u=o[s];r||(r=l),n[i]=a,o[i]=l;let d=s,f=0;for(;d!==i;)f+=n[d++],d%=e;if((i=(i+1)%e)===s&&(s=(s+1)%e),l-r<t)return;let c=u&&l-u;return c?Math.round(1e3*f/c):void 0}}}),s("ie4wS",function(t,r){e(t.exports,"default",function(){return a});var n=i("hgngq"),o=i("6kxSN");let s=e=>e instanceof o.default?{...e}:e;function a(e,t){// eslint-disable-next-line no-param-reassign
    t=t||{};let r={};function o(e,t,r){return(0,n.default).isPlainObject(e)&&(0,n.default).isPlainObject(t)?(0,n.default).merge.call({caseless:r},e,t):(0,n.default).isPlainObject(t)?(0,n.default).merge({},t):(0,n.default).isArray(t)?t.slice():t}// eslint-disable-next-line consistent-return
    function i(e,t,r){return(0,n.default).isUndefined(t)?(0,n.default).isUndefined(e)?void 0:o(void 0,e,r):o(e,t,r)}// eslint-disable-next-line consistent-return
    function a(e,t){if(!(0,n.default).isUndefined(t))return o(void 0,t)}// eslint-disable-next-line consistent-return
    function l(e,t){return(0,n.default).isUndefined(t)?(0,n.default).isUndefined(e)?void 0:o(void 0,e):o(void 0,t)}// eslint-disable-next-line consistent-return
    function u(r,n,i){return i in t?o(r,n):i in e?o(void 0,r):void 0}let d={url:a,method:a,data:a,baseURL:l,transformRequest:l,transformResponse:l,paramsSerializer:l,timeout:l,timeoutMessage:l,withCredentials:l,withXSRFToken:l,adapter:l,responseType:l,xsrfCookieName:l,xsrfHeaderName:l,onUploadProgress:l,onDownloadProgress:l,decompress:l,maxContentLength:l,maxBodyLength:l,beforeRedirect:l,transport:l,httpAgent:l,httpsAgent:l,cancelToken:l,socketPath:l,responseEncoding:l,validateStatus:u,headers:(e,t)=>i(s(e),s(t),!0)};return(0,n.default).forEach(Object.keys(Object.assign({},e,t)),function(o){let s=d[o]||i,a=s(e[o],t[o],o);(0,n.default).isUndefined(a)&&s!==u||(r[o]=a)}),r}}),s("2iN7U",function(t,r){e(t.exports,"default",function(){return l});var n=i("3GT2L"),o=i("9UeRl");let s={};// eslint-disable-next-line func-names
    ["object","boolean","number","function","string","symbol"].forEach((e,t)=>{s[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});let a={};/**
     * Transitional option validator
     *
     * @param {function|boolean?} validator - set to false if the transitional option has been removed
     * @param {string?} version - deprecated version / removed since version
     * @param {string?} message - some message with additional info
     *
     * @returns {function}
     */s.transitional=function(e,t,r){function i(e,t){return"[Axios v"+n.VERSION+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}// eslint-disable-next-line func-names
        return(r,n,s)=>{if(!1===e)throw new o.default(i(n," has been removed"+(t?" in "+t:"")),o.default.ERR_DEPRECATED);return t&&!a[n]&&(a[n]=!0,// eslint-disable-next-line no-console
            console.warn(i(n," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,n,s)}};var l={assertOptions:/**
         * Assert object's properties type
         *
         * @param {object} options
         * @param {object} schema
         * @param {boolean?} allowUnknown
         *
         * @returns {object}
         */function(e,t,r){if("object"!=typeof e)throw new o.default("options must be an object",o.default.ERR_BAD_OPTION_VALUE);let n=Object.keys(e),i=n.length;for(;i-- >0;){let s=n[i],a=t[s];if(a){let t=e[s],r=void 0===t||a(t,s,e);if(!0!==r)throw new o.default("option "+s+" must be "+r,o.default.ERR_BAD_OPTION_VALUE);continue}if(!0!==r)throw new o.default("Unknown option "+s,o.default.ERR_BAD_OPTION)}},validators:s}}),s("3GT2L",function(t,r){e(t.exports,"VERSION",function(){return n});let n="1.6.8"}),s("anMXy",function(t,r){e(t.exports,"default",function(){return s});var n=i("lRz8e");/**
 * A `CancelToken` is an object that can be used to request cancellation of an operation.
 *
 * @param {Function} executor The executor function.
 *
 * @returns {CancelToken}
 */class o{/**
 * Throws a `CanceledError` if cancellation has been requested.
 */throwIfRequested(){if(this.reason)throw this.reason}/**
 * Subscribe to the cancel signal
 */subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}/**
 * Unsubscribe from the cancel signal
 */unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}/**
 * Returns an object that contains a new `CancelToken` and a function that, when called,
 * cancels the `CancelToken`.
 */static source(){let e;let t=new o(function(t){e=t});return{token:t,cancel:e}}constructor(e){let t;if("function"!=typeof e)throw TypeError("executor must be a function.");this.promise=new Promise(function(e){t=e});let r=this;// eslint-disable-next-line func-names
    this.promise.then(e=>{if(!r._listeners)return;let t=r._listeners.length;for(;t-- >0;)r._listeners[t](e);r._listeners=null}),// eslint-disable-next-line func-names
        this.promise.then=e=>{let t;// eslint-disable-next-line func-names
            let n=new Promise(e=>{r.subscribe(e),t=e}).then(e);return n.cancel=function(){r.unsubscribe(t)},n},e(function(e,o,i){r.reason||(r.reason=new n.default(e,o,i),t(r.reason))})}}var s=o}),s("8WIxP",function(t,r){e(t.exports,"default",function(){return n});function n(e){return function(t){return e.apply(null,t)}}}),s("fYUnm",function(t,r){e(t.exports,"default",function(){return o});var n=i("hgngq");function o(e){return(0,n.default).isObject(e)&&!0===e.isAxiosError}}),s("8Cq8S",function(t,r){e(t.exports,"default",function(){return o});let n={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(n).forEach(([e,t])=>{n[t]=e});var o=n}),s("kCUUu",function(e,t){var r=i("deAtp"),n=i("gn8s4"),o=i("keAx6"),s=parseFloat,a=Math.min,l=Math.random;e.exports=/**
 * Produces a random number between the inclusive `lower` and `upper` bounds.
 * If only one argument is provided a number between `0` and the given number
 * is returned. If `floating` is `true`, or either `lower` or `upper` are
 * floats, a floating-point number is returned instead of an integer.
 *
 * **Note:** JavaScript follows the IEEE-754 standard for resolving
 * floating-point values which can produce unexpected results.
 *
 * @static
 * @memberOf _
 * @since 0.7.0
 * @category Number
 * @param {number} [lower=0] The lower bound.
 * @param {number} [upper=1] The upper bound.
 * @param {boolean} [floating] Specify returning a floating-point number.
 * @returns {number} Returns the random number.
 * @example
 *
 * _.random(0, 5);
 * // => an integer between 0 and 5
 *
 * _.random(5);
 * // => also an integer between 0 and 5
 *
 * _.random(5, true);
 * // => a floating-point number between 0 and 5
 *
 * _.random(1.2, 5.2);
 * // => a floating-point number between 1.2 and 5.2
 */function(e,t,i){if(i&&"boolean"!=typeof i&&n(e,t,i)&&(t=i=void 0),void 0===i&&("boolean"==typeof t?(i=t,t=void 0):"boolean"==typeof e&&(i=e,e=void 0)),void 0===e&&void 0===t?(e=0,t=1):(e=o(e),void 0===t?(t=e,e=0):t=o(t)),e>t){var u=e;e=t,t=u}if(i||e%1||t%1){var d=l();return a(e+d*(t-e+s("1e-"+((d+"").length-1))),t)}return r(e,t)}}),s("deAtp",function(e,t){/* Built-in method references for those with the same name as other `lodash` methods. */var r=Math.floor,n=Math.random;e.exports=/**
 * The base implementation of `_.random` without support for returning
 * floating-point numbers.
 *
 * @private
 * @param {number} lower The lower bound.
 * @param {number} upper The upper bound.
 * @returns {number} Returns the random number.
 */function(e,t){return e+r(n()*(t-e+1))}}),s("gn8s4",function(e,t){var r=i("r5N1E"),n=i("2JTJA"),o=i("mBjiM"),s=i("igFd2");e.exports=/**
 * Checks if the given arguments are from an iteratee call.
 *
 * @private
 * @param {*} value The potential iteratee value argument.
 * @param {*} index The potential iteratee index or key argument.
 * @param {*} object The potential iteratee object argument.
 * @returns {boolean} Returns `true` if the arguments are from an iteratee call,
 *  else `false`.
 */function(e,t,i){if(!s(i))return!1;var a=typeof t;return("number"==a?!!(n(i)&&o(t,i.length)):"string"==a&&t in i)&&r(i[t],e)}}),s("r5N1E",function(e,t){e.exports=/**
 * Performs a
 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
 * comparison between two values to determine if they are equivalent.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to compare.
 * @param {*} other The other value to compare.
 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
 * @example
 *
 * var object = { 'a': 1 };
 * var other = { 'a': 1 };
 *
 * _.eq(object, object);
 * // => true
 *
 * _.eq(object, other);
 * // => false
 *
 * _.eq('a', 'a');
 * // => true
 *
 * _.eq('a', Object('a'));
 * // => false
 *
 * _.eq(NaN, NaN);
 * // => true
 */function(e,t){return e===t||e!=e&&t!=t}}),s("2JTJA",function(e,t){var r=i("8KK3a"),n=i("jmLS7");e.exports=/**
 * Checks if `value` is array-like. A value is considered array-like if it's
 * not a function and has a `value.length` that's an integer greater than or
 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
 * @example
 *
 * _.isArrayLike([1, 2, 3]);
 * // => true
 *
 * _.isArrayLike(document.body.children);
 * // => true
 *
 * _.isArrayLike('abc');
 * // => true
 *
 * _.isArrayLike(_.noop);
 * // => false
 */function(e){return null!=e&&n(e.length)&&!r(e)}}),s("8KK3a",function(e,t){var r=i("7hpi7"),n=i("igFd2");e.exports=/**
 * Checks if `value` is classified as a `Function` object.
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
 * @example
 *
 * _.isFunction(_);
 * // => true
 *
 * _.isFunction(/abc/);
 * // => false
 */function(e){if(!n(e))return!1;// The use of `Object#toString` avoids issues with the `typeof` operator
// in Safari 9 which returns 'object' for typed arrays and other constructors.
    var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}}),s("7hpi7",function(e,t){var r=i("1qQ74"),n=i("gyP4m"),o=i("ck7Gy"),s=r?r.toStringTag:void 0;e.exports=/**
 * The base implementation of `getTag` without fallbacks for buggy environments.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the `toStringTag`.
 */function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":s&&s in Object(e)?n(e):o(e)}}),s("1qQ74",function(e,t){/** Built-in value references. */var r=i("a5FyO").Symbol;e.exports=r}),s("a5FyO",function(e,t){var r=i("1uzCi"),n="object"==typeof self&&self&&self.Object===Object&&self,o=r||n||Function("return this")();e.exports=o}),s("1uzCi",function(e,t){/** Detect free variable `global` from Node.js. */var n="object"==typeof r&&r&&r.Object===Object&&r;e.exports=n}),s("gyP4m",function(e,t){var r=i("1qQ74"),n=Object.prototype,o=n.hasOwnProperty,s=n.toString,a=r?r.toStringTag:void 0;e.exports=/**
 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.
 *
 * @private
 * @param {*} value The value to query.
 * @returns {string} Returns the raw `toStringTag`.
 */function(e){var t=o.call(e,a),r=e[a];try{e[a]=void 0;var n=!0}catch(e){}var i=s.call(e);return n&&(t?e[a]=r:delete e[a]),i}}),s("ck7Gy",function(e,t){/**
 * Used to resolve the
 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
 * of values.
 */var r=Object.prototype.toString;e.exports=/**
 * Converts `value` to a string using `Object.prototype.toString`.
 *
 * @private
 * @param {*} value The value to convert.
 * @returns {string} Returns the converted string.
 */function(e){return r.call(e)}}),s("igFd2",function(e,t){e.exports=/**
 * Checks if `value` is the
 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
 *
 * @static
 * @memberOf _
 * @since 0.1.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
 * @example
 *
 * _.isObject({});
 * // => true
 *
 * _.isObject([1, 2, 3]);
 * // => true
 *
 * _.isObject(_.noop);
 * // => true
 *
 * _.isObject(null);
 * // => false
 */function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}}),s("jmLS7",function(e,t){e.exports=/**
 * Checks if `value` is a valid array-like length.
 *
 * **Note:** This method is loosely based on
 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
 * @example
 *
 * _.isLength(3);
 * // => true
 *
 * _.isLength(Number.MIN_VALUE);
 * // => false
 *
 * _.isLength(Infinity);
 * // => false
 *
 * _.isLength('3');
 * // => false
 */function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}}),s("mBjiM",function(e,t){/** Used to detect unsigned integer values. */var r=/^(?:0|[1-9]\d*)$/;e.exports=/**
 * Checks if `value` is a valid array-like index.
 *
 * @private
 * @param {*} value The value to check.
 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
 */function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&r.test(e))&&e>-1&&e%1==0&&e<t}}),s("keAx6",function(e,t){var r=i("3VVGL"),n=1/0;e.exports=/**
 * Converts `value` to a finite number.
 *
 * @static
 * @memberOf _
 * @since 4.12.0
 * @category Lang
 * @param {*} value The value to convert.
 * @returns {number} Returns the converted number.
 * @example
 *
 * _.toFinite(3.2);
 * // => 3.2
 *
 * _.toFinite(Number.MIN_VALUE);
 * // => 5e-324
 *
 * _.toFinite(Infinity);
 * // => 1.7976931348623157e+308
 *
 * _.toFinite('3.2');
 * // => 3.2
 */function(e){return e?(e=r(e))===n||e===-n?(e<0?-1:1)*17976931348623157e292:e==e?e:0:0===e?e:0}}),s("3VVGL",function(e,t){var r=i("bfEcs"),n=i("igFd2"),o=i("jmET2"),s=0/0,a=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,d=parseInt;e.exports=/**
 * Converts `value` to a number.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to process.
 * @returns {number} Returns the number.
 * @example
 *
 * _.toNumber(3.2);
 * // => 3.2
 *
 * _.toNumber(Number.MIN_VALUE);
 * // => 5e-324
 *
 * _.toNumber(Infinity);
 * // => Infinity
 *
 * _.toNumber('3.2');
 * // => 3.2
 */function(e){if("number"==typeof e)return e;if(o(e))return s;if(n(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=n(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var i=l.test(e);return i||u.test(e)?d(e.slice(2),i?2:8):a.test(e)?s:+e}}),s("bfEcs",function(e,t){var r=i("eVQrj"),n=/^\s+/;e.exports=/**
 * The base implementation of `_.trim`.
 *
 * @private
 * @param {string} string The string to trim.
 * @returns {string} Returns the trimmed string.
 */function(e){return e?e.slice(0,r(e)+1).replace(n,""):e}}),s("eVQrj",function(e,t){/** Used to match a single whitespace character. */var r=/\s/;e.exports=/**
 * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace
 * character of `string`.
 *
 * @private
 * @param {string} string The string to inspect.
 * @returns {number} Returns the index of the last non-whitespace character.
 */function(e){for(var t=e.length;t--&&r.test(e.charAt(t)););return t}}),s("jmET2",function(e,t){var r=i("7hpi7"),n=i("jpaqQ");e.exports=/**
 * Checks if `value` is classified as a `Symbol` primitive or object.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
 * @example
 *
 * _.isSymbol(Symbol.iterator);
 * // => true
 *
 * _.isSymbol('abc');
 * // => false
 */function(e){return"symbol"==typeof e||n(e)&&"[object Symbol]"==r(e)}}),s("jpaqQ",function(e,t){e.exports=/**
 * Checks if `value` is object-like. A value is object-like if it's not `null`
 * and has a `typeof` result of "object".
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Lang
 * @param {*} value The value to check.
 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
 * @example
 *
 * _.isObjectLike({});
 * // => true
 *
 * _.isObjectLike([1, 2, 3]);
 * // => true
 *
 * _.isObjectLike(_.noop);
 * // => false
 *
 * _.isObjectLike(null);
 * // => false
 */function(e){return null!=e&&"object"==typeof e}}),s("1eGEI",function(t,r){e(t.exports,"createTranslationFunc",function(){return i("02oNZ").createTranslationFunc}),e(t.exports,"wait",function(){return i("ix6GL").wait}),i("02oNZ"),i("ix6GL")}),s("02oNZ",function(t,r){e(t.exports,"createTranslationFunc",function(){return n});let n=e=>t=>{var r,n;return null!==(n=null===(r=e[window.game_data.locale])||void 0===r?void 0:r[t])&&void 0!==n?n:t}}),s("ix6GL",function(t,r){e(t.exports,"wait",function(){return n});let n=e=>new Promise(t=>setTimeout(t,e))}),s("dwmQy",function(t,r){e(t.exports,"calcLoyalty",function(){return s}),e(t.exports,"calcDistance",function(){return a});var n=i("kLohc"),o=i("g4r7h");let s=(e,t)=>{let r=o.LOYALTY_AFTER_CONQUER+Math.abs((0,n.differenceInMinutes)(new Date(e),new Date))*(t/60);return r>o.MAX_LOYALTY?o.MAX_LOYALTY:Math.floor(r)},a=(e,t)=>Math.hypot(e.x-t.x,e.y-t.y)}),s("kLohc",function(t,r){e(t.exports,"differenceInMinutes",function(){return a});var n=i("49kDi"),o=i("kOsmy"),s=i("iElpY");function a(e,t,r){let i=(0,s.differenceInMilliseconds)(e,t)/o.millisecondsInMinute;return(0,n.getRoundingMethod)(null==r?void 0:r.roundingMethod)(i)}}),s("49kDi",function(t,r){e(t.exports,"getRoundingMethod",function(){return n});function n(e){return t=>{let r=e?Math[e]:Math.trunc,n=r(t);// Prevent negative zero
    return 0===n?0:n}}}),s("kOsmy",function(t,r){e(t.exports,"millisecondsInMinute",function(){return n});let n=6e4}),s("iElpY",function(t,r){e(t.exports,"differenceInMilliseconds",function(){return o});var n=i("liNzN");function o(e,t){return+(0,n.toDate)(e)-+(0,n.toDate)(t)}}),s("liNzN",function(t,r){e(t.exports,"toDate",function(){return n});/**
 * @name toDate
 * @category Common Helpers
 * @summary Convert the given argument to an instance of Date.
 *
 * @description
 * Convert the given argument to an instance of Date.
 *
 * If the argument is an instance of Date, the function returns its clone.
 *
 * If the argument is a number, it is treated as a timestamp.
 *
 * If the argument is none of the above, the function returns Invalid Date.
 *
 * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 *
 * @param argument - The value to convert
 *
 * @returns The parsed date in the local time zone
 *
 * @example
 * // Clone the date:
 * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))
 * //=> Tue Feb 11 2014 11:30:30
 *
 * @example
 * // Convert the timestamp to date:
 * const result = toDate(1392098430000)
 * //=> Tue Feb 11 2014 11:30:30
 */function n(e){let t=Object.prototype.toString.call(e);return(// Clone the date
    e instanceof Date||"object"==typeof e&&"[object Date]"===t?new e.constructor(+e):new Date("number"==typeof e||"[object Number]"===t||"string"==typeof e||"[object String]"===t?e:NaN))}}),s("g4r7h",function(t,r){e(t.exports,"LOYALTY_AFTER_CONQUER",function(){return n}),e(t.exports,"MAX_LOYALTY",function(){return o});let n=25,o=100}),s("cO4wG",function(t,r){e(t.exports,"buildURL",function(){return o});let n="https://www.twstats.com",o=e=>{switch(e.entity){case"player":return`${n}/in/${e.server}/player/${e.id}`;case"tribe":return`${n}/in/${e.server}/tribe/${e.id}`;default:throw Error("Incorrect params.entity")}}}),s("dn3NW",function(t,r){e(t.exports,"TWHelpClient",function(){return i("hUoNS").TWHelpClient}),e(t.exports,"AxiosHttpRequestWithTimeout",function(){return i("dzS2D").AxiosHttpRequestWithTimeout}),i("5ErF6"),i("dzS2D")}),s("5ErF6",function(t,r){e(t.exports,"TWHelpClient",function(){return i("hUoNS").TWHelpClient}),i("hUoNS"),i("cGcth"),i("gJwtG"),i("5G6QK"),i("lpzxS"),i("ejmKE"),i("21Cek"),i("3C3g3"),i("9seUx"),i("9JFaH"),i("gCWYD"),i("2KJIB"),i("3Rorw"),i("kQrNu"),i("5pngn")}),s("hUoNS",function(t,r){e(t.exports,"TWHelpClient",function(){return h});/* generated using openapi-typescript-codegen -- do not edit *//* istanbul ignore file *//* tslint:disable *//* eslint-disable */var n=i("iXNZn"),o=i("3C3g3"),s=i("9seUx"),a=i("9JFaH"),l=i("gCWYD"),u=i("2KJIB"),d=i("3Rorw"),f=i("kQrNu"),c=i("5pngn");class h{constructor(e,t=n.AxiosHttpRequest){var r,i,h,p;this.request=new t({BASE:null!==(r=null==e?void 0:e.BASE)&&void 0!==r?r:"https://twhelp.app/api",VERSION:null!==(i=null==e?void 0:e.VERSION)&&void 0!==i?i:"2.0.0",WITH_CREDENTIALS:null!==(h=null==e?void 0:e.WITH_CREDENTIALS)&&void 0!==h&&h,CREDENTIALS:null!==(p=null==e?void 0:e.CREDENTIALS)&&void 0!==p?p:"include",TOKEN:null==e?void 0:e.TOKEN,USERNAME:null==e?void 0:e.USERNAME,PASSWORD:null==e?void 0:e.PASSWORD,HEADERS:null==e?void 0:e.HEADERS,ENCODE_PATH:null==e?void 0:e.ENCODE_PATH}),this.ennoblements=new o.EnnoblementsService(this.request),this.players=new s.PlayersService(this.request),this.servers=new a.ServersService(this.request),this.snapshots=new l.SnapshotsService(this.request),this.tribeChanges=new u.TribeChangesService(this.request),this.tribes=new d.TribesService(this.request),this.versions=new f.VersionsService(this.request),this.villages=new c.VillagesService(this.request)}}}),s("iXNZn",function(t,r){e(t.exports,"AxiosHttpRequest",function(){return s});/* generated using openapi-typescript-codegen -- do not edit *//* istanbul ignore file *//* tslint:disable *//* eslint-disable */var n=i("gJwtG"),o=i("8zZmk");class s extends n.BaseHttpRequest{/**
 * Request method
 * @param options The request options from the service
 * @returns CancelablePromise<T>
 * @throws ApiError
 */request(e){return(0,o.request)(this.config,e)}constructor(e){super(e)}}}),s("gJwtG",function(t,r){e(t.exports,"BaseHttpRequest",function(){return n});/* generated using openapi-typescript-codegen -- do not edit *//* istanbul ignore file *//* tslint:disable *//* eslint-disable */class n{constructor(e){this.config=e}}}),s("8zZmk",function(r,n){e(r.exports,"request",function(){return A}),/* generated using openapi-typescript-codegen -- do not edit *//* istanbul ignore file *//* tslint:disable *//* eslint-disable */i("vZM99");var o=i("cWpyM"),s=i("7vQyE"),a=i("cGcth"),l=i("5G6QK"),u=i("fLqwR").Buffer;let d=e=>null!=e,f=e=>"string"==typeof e,c=e=>f(e)&&""!==e,h=e=>"object"==typeof e&&"string"==typeof e.type&&"function"==typeof e.stream&&"function"==typeof e.arrayBuffer&&"function"==typeof e.constructor&&"string"==typeof e.constructor.name&&/^(Blob|File)$/.test(e.constructor.name)&&/^(Blob|File)$/.test(e[Symbol.toStringTag]),p=e=>e instanceof /*@__PURE__*/t(s),v=e=>e>=200&&e<300,y=e=>{try{return btoa(e)}catch(t){// @ts-ignore
    return u.from(e).toString("base64")}},g=e=>{let t=[],r=(e,r)=>{t.push(`${encodeURIComponent(e)}=${encodeURIComponent(String(r))}`)},n=(e,t)=>{d(t)&&(Array.isArray(t)?t.forEach(t=>{n(e,t)}):"object"==typeof t?Object.entries(t).forEach(([t,r])=>{n(`${e}[${t}]`,r)}):r(e,t))};return(Object.entries(e).forEach(([e,t])=>{n(e,t)}),t.length>0)?`?${t.join("&")}`:""},m=(e,t)=>{let r=e.ENCODE_PATH||encodeURI,n=t.url.replace("{api-version}",e.VERSION).replace(/{(.*?)}/g,(e,n)=>{var o;return(null===(o=t.path)||void 0===o?void 0:o.hasOwnProperty(n))?r(String(t.path[n])):e}),o=`${e.BASE}${n}`;return t.query?`${o}${g(t.query)}`:o},b=e=>{if(e.formData){let r=new/*@__PURE__*/(t(s)),n=(e,t)=>{f(t)||h(t)?r.append(e,t):r.append(e,JSON.stringify(t))};return Object.entries(e.formData).filter(([e,t])=>d(t)).forEach(([e,t])=>{Array.isArray(t)?t.forEach(t=>n(e,t)):n(e,t)}),r}},w=async(e,t)=>"function"==typeof t?t(e):t,E=async(e,t,r)=>{let[n,o,i,s]=await Promise.all([w(t,e.TOKEN),w(t,e.USERNAME),w(t,e.PASSWORD),w(t,e.HEADERS)]),a="function"==typeof(null==r?void 0:r.getHeaders)&&(null==r?void 0:r.getHeaders())||{},l=Object.entries({Accept:"application/json",...s,...t.headers,...a}).filter(([e,t])=>d(t)).reduce((e,[t,r])=>({...e,[t]:String(r)}),{});if(c(n)&&(l.Authorization=`Bearer ${n}`),c(o)&&c(i)){let e=y(`${o}:${i}`);l.Authorization=`Basic ${e}`}return void 0===t.body||(t.mediaType?l["Content-Type"]=t.mediaType:h(t.body)?l["Content-Type"]=t.body.type||"application/octet-stream":f(t.body)?l["Content-Type"]="text/plain":p(t.body)||(l["Content-Type"]="application/json")),l},C=e=>{if(e.body)return e.body},S=async(e,t,r,n,i,s,a,l)=>{let u=(0,o.default).CancelToken.source(),d={url:r,headers:s,data:null!=n?n:i,method:t.method,withCredentials:e.WITH_CREDENTIALS,withXSRFToken:"include"===e.CREDENTIALS&&e.WITH_CREDENTIALS,cancelToken:u.token};a(()=>u.cancel("The user aborted a request."));try{return await l.request(d)}catch(e){if(e.response)return e.response;throw e}},T=(e,t)=>{if(t){let r=e.headers[t];if(f(r))return r}},R=e=>{if(204!==e.status)return e.data},q=(e,t)=>{let r={400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error",502:"Bad Gateway",503:"Service Unavailable",...e.errors},n=r[t.status];if(n)throw new a.ApiError(e,t,n);if(!t.ok){var o,i;let r=null!==(o=t.status)&&void 0!==o?o:"unknown",n=null!==(i=t.statusText)&&void 0!==i?i:"unknown",s=(()=>{try{return JSON.stringify(t.body,null,2)}catch(e){return}})();throw new a.ApiError(e,t,`Generic Error: status: ${r}; status text: ${n}; body: ${s}`)}},A=(e,t,r=o.default)=>new l.CancelablePromise(async(n,o,i)=>{try{let o=m(e,t),s=b(t),a=C(t),l=await E(e,t,s);if(!i.isCancelled){let u=await S(e,t,o,a,s,l,i,r),d=R(u),f=T(u,t.responseHeader),c={url:o,ok:v(u.status),status:u.status,statusText:u.statusText,body:null!=f?f:d};q(t,c),n(c.body)}}catch(e){o(e)}})}),s("7vQyE",function(e,t){/* eslint-env browser */e.exports="object"==typeof self?self.FormData:window.FormData}),s("cGcth",function(t,r){e(t.exports,"ApiError",function(){return n});/* generated using openapi-typescript-codegen -- do not edit *//* istanbul ignore file *//* tslint:disable *//* eslint-disable */class n extends Error{constructor(e,t,r){super(r),this.name="ApiError",this.url=t.url,this.status=t.status,this.statusText=t.statusText,this.body=t.body,this.request=e}}}),s("5G6QK",function(t,r){e(t.exports,"CancelablePromise",function(){return y});/* generated using openapi-typescript-codegen -- do not edit *//* istanbul ignore file *//* tslint:disable *//* eslint-disable */var n=i("3aW1Y"),o=i("fnH7O"),s=i("1AlD6");class a extends Error{get isCancelled(){return!0}constructor(e){super(e),this.name="CancelError"}}var l=/*#__PURE__*/new WeakMap,u=/*#__PURE__*/new WeakMap,d=/*#__PURE__*/new WeakMap,f=/*#__PURE__*/new WeakMap,c=/*#__PURE__*/new WeakMap,h=/*#__PURE__*/new WeakMap,p=/*#__PURE__*/new WeakMap;let v=Symbol.toStringTag;class y{get[v](){return"Cancellable Promise"}then(e,t){return(0,n._)(this,c).then(e,t)}catch(e){return(0,n._)(this,c).catch(e)}finally(e){return(0,n._)(this,c).finally(e)}cancel(){if(!((0,n._)(this,l)||(0,n._)(this,u)||(0,n._)(this,d))){if((0,s._)(this,d,!0),(0,n._)(this,f).length)try{for(let e of(0,n._)(this,f))e()}catch(e){console.warn("Cancellation threw an error",e);return}(0,n._)(this,f).length=0,(0,n._)(this,p)&&(0,n._)(this,p).call(this,new a("Request aborted"))}}get isCancelled(){return(0,n._)(this,d)}constructor(e){(0,o._)(this,l,{writable:!0,value:void 0}),(0,o._)(this,u,{writable:!0,value:void 0}),(0,o._)(this,d,{writable:!0,value:void 0}),(0,o._)(this,f,{writable:!0,value:void 0}),(0,o._)(this,c,{writable:!0,value:void 0}),(0,o._)(this,h,{writable:!0,value:void 0}),(0,o._)(this,p,{writable:!0,value:void 0}),(0,s._)(this,l,!1),(0,s._)(this,u,!1),(0,s._)(this,d,!1),(0,s._)(this,f,[]),(0,s._)(this,c,new Promise((t,r)=>{(0,s._)(this,h,t),(0,s._)(this,p,r);let o=e=>{(0,n._)(this,l)||(0,n._)(this,u)||(0,n._)(this,d)||(0,n._)(this,f).push(e)};return Object.defineProperty(o,"isResolved",{get:()=>(0,n._)(this,l)}),Object.defineProperty(o,"isRejected",{get:()=>(0,n._)(this,u)}),Object.defineProperty(o,"isCancelled",{get:()=>(0,n._)(this,d)}),e(e=>{!((0,n._)(this,l)||(0,n._)(this,u)||(0,n._)(this,d))&&((0,s._)(this,l,!0),(0,n._)(this,h)&&(0,n._)(this,h).call(this,e))},e=>{!((0,n._)(this,l)||(0,n._)(this,u)||(0,n._)(this,d))&&((0,s._)(this,u,!0),(0,n._)(this,p)&&(0,n._)(this,p).call(this,e))},o)}))}}}),s("3aW1Y",function(t,r){e(t.exports,"_",function(){return s});var n=i("cuuDf"),o=i("41ORm");function s(e,t){var r=(0,o._class_extract_field_descriptor)(e,t,"get");return(0,n._class_apply_descriptor_get)(e,r)}}),s("cuuDf",function(t,r){e(t.exports,"_class_apply_descriptor_get",function(){return n});function n(e,t){return t.get?t.get.call(e):t.value}}),s("41ORm",function(t,r){e(t.exports,"_class_extract_field_descriptor",function(){return n});function n(e,t,r){if(!t.has(e))throw TypeError("attempted to "+r+" private field on non-instance");return t.get(e)}}),s("fnH7O",function(t,r){e(t.exports,"_",function(){return o});var n=i("bpFEO");function o(e,t,r){(0,n._check_private_redeclaration)(e,t),t.set(e,r)}}),s("bpFEO",function(t,r){e(t.exports,"_check_private_redeclaration",function(){return n});function n(e,t){if(t.has(e))throw TypeError("Cannot initialize the same private elements twice on an object")}}),s("1AlD6",function(t,r){e(t.exports,"_",function(){return s});var n=i("kLPKN"),o=i("41ORm");function s(e,t,r){var i=(0,o._class_extract_field_descriptor)(e,t,"set");return(0,n._class_apply_descriptor_set)(e,i,r),r}}),s("kLPKN",function(t,r){e(t.exports,"_class_apply_descriptor_set",function(){return n});function n(e,t,r){if(t.set)t.set.call(e,r);else{if(!t.writable)// always strict and private fields can only be used inside
// class bodies.
    throw TypeError("attempted to set read only private field");t.value=r}}}),s("3C3g3",function(t,r){e(t.exports,"EnnoblementsService",function(){return n});/* generated using openapi-typescript-codegen -- do not edit *//* istanbul ignore file *//* tslint:disable *//* eslint-disable */class n{/**
 * List ennoblements associated with the given server
 * @returns any
 * @throws ApiError
 */listEnnoblements({versionCode:e,serverKey:t,cursor:r,limit:n=500,sort:o,since:i,before:s}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/ennoblements",path:{versionCode:e,serverKey:t},query:{cursor:r,limit:n,sort:o,since:i,before:s}})}/**
 * List the given player's ennoblements
 * @returns any
 * @throws ApiError
 */listPlayerEnnoblements({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/ennoblements",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}/**
 * List the given tribe's ennoblements
 * @returns any
 * @throws ApiError
 */listTribeEnnoblements({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/ennoblements",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}/**
 * List the given village's ennoblements
 * @returns any
 * @throws ApiError
 */listVillageEnnoblements({versionCode:e,serverKey:t,villageId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/villages/{villageId}/ennoblements",path:{versionCode:e,serverKey:t,villageId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}constructor(e){this.httpRequest=e}}}),s("9seUx",function(t,r){e(t.exports,"PlayersService",function(){return n});/* generated using openapi-typescript-codegen -- do not edit *//* istanbul ignore file *//* tslint:disable *//* eslint-disable */class n{/**
 * List players associated with the given version
 * @returns any
 * @throws ApiError
 */listVersionPlayers({versionCode:e,cursor:t,limit:r=500,deleted:n,sort:o,name:i,id:s}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/players",path:{versionCode:e},query:{cursor:t,limit:r,deleted:n,sort:o,name:i,id:s}})}/**
 * List players associated with the given server
 * @returns any
 * @throws ApiError
 */listServerPlayers({versionCode:e,serverKey:t,cursor:r,limit:n=500,deleted:o,sort:i,name:s,id:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players",path:{versionCode:e,serverKey:t},query:{cursor:r,limit:n,deleted:o,sort:i,name:s,id:a}})}/**
 * Get a player
 * @returns any
 * @throws ApiError
 */getPlayer({versionCode:e,serverKey:t,playerId:r}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}",path:{versionCode:e,serverKey:t,playerId:r}})}/**
 * List the given player's ennoblements
 * @returns any
 * @throws ApiError
 */listPlayerEnnoblements({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/ennoblements",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}/**
 * List the given player's snapshots
 * @returns any
 * @throws ApiError
 */listPlayerPlayerSnapshots({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500,sort:i}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/snapshots",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o,sort:i}})}/**
 * List the given player's tribe changes
 * @returns any
 * @throws ApiError
 */listPlayerTribeChanges({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/tribe-changes",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}/**
 * List the given player's villages
 * @returns any
 * @throws ApiError
 */listPlayerVillages({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/villages",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o}})}/**
 * List the given tribe's members
 * @returns any
 * @throws ApiError
 */listTribeMembers({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/members",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i}})}constructor(e){this.httpRequest=e}}}),s("9JFaH",function(t,r){e(t.exports,"ServersService",function(){return n});/* generated using openapi-typescript-codegen -- do not edit *//* istanbul ignore file *//* tslint:disable *//* eslint-disable */class n{/**
 * List servers associated with the given version
 * @returns any
 * @throws ApiError
 */listServers({versionCode:e,cursor:t,limit:r=500,open:n}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers",path:{versionCode:e},query:{cursor:t,limit:r,open:n}})}/**
 * Get a server
 * @returns any
 * @throws ApiError
 */getServer({versionCode:e,serverKey:t}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}",path:{versionCode:e,serverKey:t}})}/**
 * Get the given server's building info
 * @returns any
 * @throws ApiError
 */getBuildingInfo({versionCode:e,serverKey:t}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/building-info",path:{versionCode:e,serverKey:t}})}/**
 * Get the given server's config
 * @returns any
 * @throws ApiError
 */getServerConfig({versionCode:e,serverKey:t}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/config",path:{versionCode:e,serverKey:t}})}/**
 * List ennoblements associated with the given server
 * @returns any
 * @throws ApiError
 */listEnnoblements({versionCode:e,serverKey:t,cursor:r,limit:n=500,sort:o,since:i,before:s}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/ennoblements",path:{versionCode:e,serverKey:t},query:{cursor:r,limit:n,sort:o,since:i,before:s}})}/**
 * List players associated with the given server
 * @returns any
 * @throws ApiError
 */listServerPlayers({versionCode:e,serverKey:t,cursor:r,limit:n=500,deleted:o,sort:i,name:s,id:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players",path:{versionCode:e,serverKey:t},query:{cursor:r,limit:n,deleted:o,sort:i,name:s,id:a}})}/**
 * Get a player
 * @returns any
 * @throws ApiError
 */getPlayer({versionCode:e,serverKey:t,playerId:r}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}",path:{versionCode:e,serverKey:t,playerId:r}})}/**
 * List the given player's ennoblements
 * @returns any
 * @throws ApiError
 */listPlayerEnnoblements({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/ennoblements",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}/**
 * List the given player's snapshots
 * @returns any
 * @throws ApiError
 */listPlayerPlayerSnapshots({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500,sort:i}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/snapshots",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o,sort:i}})}/**
 * List the given player's tribe changes
 * @returns any
 * @throws ApiError
 */listPlayerTribeChanges({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/tribe-changes",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}/**
 * List the given player's villages
 * @returns any
 * @throws ApiError
 */listPlayerVillages({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/villages",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o}})}/**
 * List tribes associated with the given server
 * @returns any
 * @throws ApiError
 */listTribes({versionCode:e,serverKey:t,cursor:r,limit:n=500,deleted:o,sort:i,tag:s}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes",path:{versionCode:e,serverKey:t},query:{cursor:r,limit:n,deleted:o,sort:i,tag:s}})}/**
 * Get a tribe
 * @returns any
 * @throws ApiError
 */getTribe({versionCode:e,serverKey:t,tribeId:r}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}",path:{versionCode:e,serverKey:t,tribeId:r}})}/**
 * List the given tribe's ennoblements
 * @returns any
 * @throws ApiError
 */listTribeEnnoblements({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/ennoblements",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}/**
 * List the given tribe's member changes (who joined, who left, etc.)
 * @returns any
 * @throws ApiError
 */listTribeMemberChanges({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/member-changes",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}/**
 * List the given tribe's members
 * @returns any
 * @throws ApiError
 */listTribeMembers({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/members",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i}})}/**
 * List the given tribe's snapshots
 * @returns any
 * @throws ApiError
 */listTribeTribeSnapshots({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/snapshots",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i}})}/**
 * List the given tribe's villages
 * @returns any
 * @throws ApiError
 */listTribeVillages({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/villages",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o}})}/**
 * Get the given server's unit info
 * @returns any
 * @throws ApiError
 */getUnitInfo({versionCode:e,serverKey:t}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/unit-info",path:{versionCode:e,serverKey:t}})}/**
 * List villages associated with the given server
 * @returns any
 * @throws ApiError
 */listVillages({versionCode:e,serverKey:t,cursor:r,limit:n=500,coords:o}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/villages",path:{versionCode:e,serverKey:t},query:{cursor:r,limit:n,coords:o}})}/**
 * Get a village
 * @returns any
 * @throws ApiError
 */getVillage({versionCode:e,serverKey:t,villageId:r}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/villages/{villageId}",path:{versionCode:e,serverKey:t,villageId:r}})}/**
 * List the given village's ennoblements
 * @returns any
 * @throws ApiError
 */listVillageEnnoblements({versionCode:e,serverKey:t,villageId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/villages/{villageId}/ennoblements",path:{versionCode:e,serverKey:t,villageId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}constructor(e){this.httpRequest=e}}}),s("gCWYD",function(t,r){e(t.exports,"SnapshotsService",function(){return n});/* generated using openapi-typescript-codegen -- do not edit *//* istanbul ignore file *//* tslint:disable *//* eslint-disable */class n{/**
 * List the given player's snapshots
 * @returns any
 * @throws ApiError
 */listPlayerPlayerSnapshots({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500,sort:i}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/snapshots",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o,sort:i}})}/**
 * List the given tribe's snapshots
 * @returns any
 * @throws ApiError
 */listTribeTribeSnapshots({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/snapshots",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i}})}constructor(e){this.httpRequest=e}}}),s("2KJIB",function(t,r){e(t.exports,"TribeChangesService",function(){return n});/* generated using openapi-typescript-codegen -- do not edit *//* istanbul ignore file *//* tslint:disable *//* eslint-disable */class n{/**
 * List the given player's tribe changes
 * @returns any
 * @throws ApiError
 */listPlayerTribeChanges({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/tribe-changes",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}/**
 * List the given tribe's member changes (who joined, who left, etc.)
 * @returns any
 * @throws ApiError
 */listTribeMemberChanges({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/member-changes",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}constructor(e){this.httpRequest=e}}}),s("3Rorw",function(t,r){e(t.exports,"TribesService",function(){return n});/* generated using openapi-typescript-codegen -- do not edit *//* istanbul ignore file *//* tslint:disable *//* eslint-disable */class n{/**
 * List tribes associated with the given server
 * @returns any
 * @throws ApiError
 */listTribes({versionCode:e,serverKey:t,cursor:r,limit:n=500,deleted:o,sort:i,tag:s}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes",path:{versionCode:e,serverKey:t},query:{cursor:r,limit:n,deleted:o,sort:i,tag:s}})}/**
 * Get a tribe
 * @returns any
 * @throws ApiError
 */getTribe({versionCode:e,serverKey:t,tribeId:r}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}",path:{versionCode:e,serverKey:t,tribeId:r}})}/**
 * List the given tribe's ennoblements
 * @returns any
 * @throws ApiError
 */listTribeEnnoblements({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/ennoblements",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}/**
 * List the given tribe's member changes (who joined, who left, etc.)
 * @returns any
 * @throws ApiError
 */listTribeMemberChanges({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/member-changes",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}/**
 * List the given tribe's members
 * @returns any
 * @throws ApiError
 */listTribeMembers({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/members",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i}})}/**
 * List the given tribe's snapshots
 * @returns any
 * @throws ApiError
 */listTribeTribeSnapshots({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/snapshots",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i}})}/**
 * List the given tribe's villages
 * @returns any
 * @throws ApiError
 */listTribeVillages({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/villages",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o}})}constructor(e){this.httpRequest=e}}}),s("kQrNu",function(t,r){e(t.exports,"VersionsService",function(){return n});/* generated using openapi-typescript-codegen -- do not edit *//* istanbul ignore file *//* tslint:disable *//* eslint-disable */class n{/**
 * List versions
 * @returns any
 * @throws ApiError
 */listVersions({cursor:e,limit:t=500}){return this.httpRequest.request({method:"GET",url:"/v2/versions",query:{cursor:e,limit:t}})}/**
 * Get a version
 * @returns any
 * @throws ApiError
 */getVersion({versionCode:e}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}",path:{versionCode:e}})}/**
 * List players associated with the given version
 * @returns any
 * @throws ApiError
 */listVersionPlayers({versionCode:e,cursor:t,limit:r=500,deleted:n,sort:o,name:i,id:s}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/players",path:{versionCode:e},query:{cursor:t,limit:r,deleted:n,sort:o,name:i,id:s}})}/**
 * List servers associated with the given version
 * @returns any
 * @throws ApiError
 */listServers({versionCode:e,cursor:t,limit:r=500,open:n}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers",path:{versionCode:e},query:{cursor:t,limit:r,open:n}})}/**
 * Get a server
 * @returns any
 * @throws ApiError
 */getServer({versionCode:e,serverKey:t}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}",path:{versionCode:e,serverKey:t}})}/**
 * Get the given server's building info
 * @returns any
 * @throws ApiError
 */getBuildingInfo({versionCode:e,serverKey:t}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/building-info",path:{versionCode:e,serverKey:t}})}/**
 * Get the given server's config
 * @returns any
 * @throws ApiError
 */getServerConfig({versionCode:e,serverKey:t}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/config",path:{versionCode:e,serverKey:t}})}/**
 * List ennoblements associated with the given server
 * @returns any
 * @throws ApiError
 */listEnnoblements({versionCode:e,serverKey:t,cursor:r,limit:n=500,sort:o,since:i,before:s}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/ennoblements",path:{versionCode:e,serverKey:t},query:{cursor:r,limit:n,sort:o,since:i,before:s}})}/**
 * List players associated with the given server
 * @returns any
 * @throws ApiError
 */listServerPlayers({versionCode:e,serverKey:t,cursor:r,limit:n=500,deleted:o,sort:i,name:s,id:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players",path:{versionCode:e,serverKey:t},query:{cursor:r,limit:n,deleted:o,sort:i,name:s,id:a}})}/**
 * Get a player
 * @returns any
 * @throws ApiError
 */getPlayer({versionCode:e,serverKey:t,playerId:r}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}",path:{versionCode:e,serverKey:t,playerId:r}})}/**
 * List the given player's ennoblements
 * @returns any
 * @throws ApiError
 */listPlayerEnnoblements({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/ennoblements",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}/**
 * List the given player's snapshots
 * @returns any
 * @throws ApiError
 */listPlayerPlayerSnapshots({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500,sort:i}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/snapshots",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o,sort:i}})}/**
 * List the given player's tribe changes
 * @returns any
 * @throws ApiError
 */listPlayerTribeChanges({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/tribe-changes",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}/**
 * List the given player's villages
 * @returns any
 * @throws ApiError
 */listPlayerVillages({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/villages",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o}})}/**
 * List tribes associated with the given server
 * @returns any
 * @throws ApiError
 */listTribes({versionCode:e,serverKey:t,cursor:r,limit:n=500,deleted:o,sort:i,tag:s}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes",path:{versionCode:e,serverKey:t},query:{cursor:r,limit:n,deleted:o,sort:i,tag:s}})}/**
 * Get a tribe
 * @returns any
 * @throws ApiError
 */getTribe({versionCode:e,serverKey:t,tribeId:r}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}",path:{versionCode:e,serverKey:t,tribeId:r}})}/**
 * List the given tribe's ennoblements
 * @returns any
 * @throws ApiError
 */listTribeEnnoblements({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/ennoblements",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}/**
 * List the given tribe's member changes (who joined, who left, etc.)
 * @returns any
 * @throws ApiError
 */listTribeMemberChanges({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/member-changes",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}/**
 * List the given tribe's members
 * @returns any
 * @throws ApiError
 */listTribeMembers({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/members",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i}})}/**
 * List the given tribe's snapshots
 * @returns any
 * @throws ApiError
 */listTribeTribeSnapshots({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500,sort:i}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/snapshots",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o,sort:i}})}/**
 * List the given tribe's villages
 * @returns any
 * @throws ApiError
 */listTribeVillages({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/villages",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o}})}/**
 * Get the given server's unit info
 * @returns any
 * @throws ApiError
 */getUnitInfo({versionCode:e,serverKey:t}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/unit-info",path:{versionCode:e,serverKey:t}})}/**
 * List villages associated with the given server
 * @returns any
 * @throws ApiError
 */listVillages({versionCode:e,serverKey:t,cursor:r,limit:n=500,coords:o}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/villages",path:{versionCode:e,serverKey:t},query:{cursor:r,limit:n,coords:o}})}/**
 * Get a village
 * @returns any
 * @throws ApiError
 */getVillage({versionCode:e,serverKey:t,villageId:r}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/villages/{villageId}",path:{versionCode:e,serverKey:t,villageId:r}})}/**
 * List the given village's ennoblements
 * @returns any
 * @throws ApiError
 */listVillageEnnoblements({versionCode:e,serverKey:t,villageId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/villages/{villageId}/ennoblements",path:{versionCode:e,serverKey:t,villageId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}constructor(e){this.httpRequest=e}}}),s("5pngn",function(t,r){e(t.exports,"VillagesService",function(){return n});/* generated using openapi-typescript-codegen -- do not edit *//* istanbul ignore file *//* tslint:disable *//* eslint-disable */class n{/**
 * List the given player's villages
 * @returns any
 * @throws ApiError
 */listPlayerVillages({versionCode:e,serverKey:t,playerId:r,cursor:n,limit:o=500}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/players/{playerId}/villages",path:{versionCode:e,serverKey:t,playerId:r},query:{cursor:n,limit:o}})}/**
 * List the given tribe's villages
 * @returns any
 * @throws ApiError
 */listTribeVillages({versionCode:e,serverKey:t,tribeId:r,cursor:n,limit:o=500}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/tribes/{tribeId}/villages",path:{versionCode:e,serverKey:t,tribeId:r},query:{cursor:n,limit:o}})}/**
 * List villages associated with the given server
 * @returns any
 * @throws ApiError
 */listVillages({versionCode:e,serverKey:t,cursor:r,limit:n=500,coords:o}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/villages",path:{versionCode:e,serverKey:t},query:{cursor:r,limit:n,coords:o}})}/**
 * Get a village
 * @returns any
 * @throws ApiError
 */getVillage({versionCode:e,serverKey:t,villageId:r}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/villages/{villageId}",path:{versionCode:e,serverKey:t,villageId:r}})}/**
 * List the given village's ennoblements
 * @returns any
 * @throws ApiError
 */listVillageEnnoblements({versionCode:e,serverKey:t,villageId:r,cursor:n,limit:o=500,sort:i,since:s,before:a}){return this.httpRequest.request({method:"GET",url:"/v2/versions/{versionCode}/servers/{serverKey}/villages/{villageId}/ennoblements",path:{versionCode:e,serverKey:t,villageId:r},query:{cursor:n,limit:o,sort:i,since:s,before:a}})}constructor(e){this.httpRequest=e}}}),s("lpzxS",function(e,t){}),s("ejmKE",function(e,t){var r,n;(n=r||(r={})).INVALID_CURSOR="invalid-cursor",n.MAX_LESS_EQUAL="max-less-equal",n.NIL="nil",n.PLAYER_NOT_FOUND="player-not-found",n.SORT_CONFLICT="sort-conflict",n.VILLAGE_NOT_FOUND="village-not-found",n.INVALID_URL="invalid-url",n.MIN_GREATER_EQUAL="min-greater-equal",n.TRIBE_NOT_FOUND="tribe-not-found",n.LENGTH_OUT_OF_RANGE="length-out-of-range",n.REQUIRED="required",n.SERVER_NOT_FOUND="server-not-found",n.UNSUPPORTED_SORT_STRING="unsupported-sort-string",n.VERSION_NOT_FOUND="version-not-found"}),s("21Cek",function(e,t){var r,n;(n=r||(r={})).INVALID_CURSOR="invalid-cursor",n.MAX_LESS_EQUAL="max-less-equal",n.NIL="nil",n.PLAYER_NOT_FOUND="player-not-found",n.SORT_CONFLICT="sort-conflict",n.VILLAGE_NOT_FOUND="village-not-found",n.INVALID_URL="invalid-url",n.MIN_GREATER_EQUAL="min-greater-equal",n.TRIBE_NOT_FOUND="tribe-not-found",n.LENGTH_OUT_OF_RANGE="length-out-of-range",n.REQUIRED="required",n.SERVER_NOT_FOUND="server-not-found",n.UNSUPPORTED_SORT_STRING="unsupported-sort-string",n.VERSION_NOT_FOUND="version-not-found"}),s("dzS2D",function(t,r){e(t.exports,"AxiosHttpRequestWithTimeout",function(){return a}),i("vZM99");var n=i("cWpyM"),o=i("8zZmk"),s=i("gJwtG");class a extends s.BaseHttpRequest{request(e){return(0,o.request)(this.config,e,this.axiosInstance)}constructor(e){super(e),this.axiosInstance=(0,n.default).create({timeout:5e3})}}}),s("6AVOj",function(t,r){e(t.exports,"DialogTable",function(){return s}),i("1eGEI");var n=i("02oNZ");let o=(0,n.createTranslationFunc)({pl_PL:{Loading:"Wczytywanie","Previous page":"Poprzednia strona","Next page":"Następna strona","Something went wrong while loading the data":"Coś poszło nie tak podczas wczytywania danych"}});class s{async render(){await this.renderPage()}async renderPage(e){window.Dialog.show(this.id,`<p>${o("Loading")}...</p>`);try{let{data:t,cursor:r}=await this.loadData(e,this.limit);window.Dialog.show(this.id,`
      ${this.buildPagination(r)}
      ${this.buildTable(t)}
    `),this.addEventListeners(r)}catch(e){console.error(e),window.Dialog.close(),window.UI.ErrorMessage(o("Something went wrong while loading the data"))}}buildPagination(e){return`
      <div style="display: flex; flex-direction: row; align-items: center; justify-content: center; margin-bottom: 10px">
          <button title="${o("Previous page")}" style="margin-right: 5px" class="btn" id="${this.prevPageId}"${0===this.prevCursors.length?" disabled":""}>&lt;</button>
          <button title="${o("Next page")}" class="btn" id="${this.nextPageId}"${(null==e?void 0:e.next)?"":" disabled"}>&gt;</button>
      </div>    
    `}buildTable(e){return`
      <table style="width: 100%" class="vis">
        <tbody>
          <tr>
            ${this.columns.map(e=>`<th>${e.header}</th>`).join("")}
          </tr>
          ${e.map((t,r)=>`
            <tr>
                ${this.columns.map(n=>`<td>${n.accessor(t,r,e)}</td>`).join("")}
            </tr>
          `).join("")}
        </tbody>
      </table>      
      `}addEventListeners(e){var t,r;null===(t=document.querySelector("#"+this.prevPageId))||void 0===t||t.addEventListener("click",()=>{let e=this.prevCursors.pop();e&&this.renderPage(e.self)}),null===(r=document.querySelector("#"+this.nextPageId))||void 0===r||r.addEventListener("click",()=>{e&&(this.prevCursors.push(e),this.renderPage(e.next))})}constructor(e,t,r,n){this.id=e,this.columns=t,this.limit=r,this.loadData=n,this.prevCursors=[],this.prevPageId=`${this.id}_page_prev`,this.nextPageId=`${this.id}_page_next`}}}),s("ezORx",function(t,r){e(t.exports,"InMemoryStorage",function(){return s}),e(t.exports,"Cache",function(){return a});var n=i("8IzH1"),o=i("5iEDq");class s{getItem(e){let t=this.data.get(e);return t||null}setItem(e,t){this.data.set(e,t)}removeItem(e){this.data.delete(e)}constructor(){this.data=new Map}}class a{// load first tries to load data from storage, if there is no data or it is expired then it executes the given function and caches the result
    async load(e,t,r){let o=this.get(e);if(o)return o;let i=await r();return this.storage.setItem(e,JSON.stringify({data:i,exp:(0,n.addSeconds)(new Date,t)})),i}get(e){try{var t;let r=JSON.parse(null!==(t=this.storage.getItem(e))&&void 0!==t?t:"");if(!r.exp||!r.data)return null;if((0,o.isAfter)(new Date,new Date(r.exp)))return this.storage.removeItem(e),null;return r.data}catch(e){return null}}constructor(e){this.storage=e}}}),s("8IzH1",function(t,r){e(t.exports,"addSeconds",function(){return o});var n=i("bjKG2");function o(e,t){return(0,n.addMilliseconds)(e,1e3*t)}}),s("bjKG2",function(t,r){e(t.exports,"addMilliseconds",function(){return s});var n=i("liNzN"),o=i("8u7XN");function s(e,t){let r=+(0,n.toDate)(e);return(0,o.constructFrom)(e,r+t)}}),s("8u7XN",function(t,r){e(t.exports,"constructFrom",function(){return n});/**
 * @name constructFrom
 * @category Generic Helpers
 * @summary Constructs a date using the reference date and the value
 *
 * @description
 * The function constructs a new date using the constructor from the reference
 * date and the given value. It helps to build generic functions that accept
 * date extensions.
 *
 * It defaults to `Date` if the passed reference date is a number or a string.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 *
 * @param date - The reference date to take constructor from
 * @param value - The value to create the date
 *
 * @returns Date initialized using the given date and value
 *
 * @example
 * import { constructFrom } from 'date-fns'
 *
 * // A function that clones a date preserving the original type
 * function cloneDate<DateType extends Date(date: DateType): DateType {
 *   return constructFrom(
 *     date, // Use contrustor from the given date
 *     date.getTime() // Use the date value to create a new date
 *   )
 * }
 */function n(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}}),s("5iEDq",function(t,r){e(t.exports,"isAfter",function(){return o});var n=i("liNzN");function o(e,t){let r=(0,n.toDate)(e),o=(0,n.toDate)(t);return r.getTime()>o.getTime()}}),i("cyqxw")}();
                      
                                       
To share this paste please copy this url and send to your friends
RAW Paste Data
Recent Pastes
Ta strona używa plików cookie w celu usprawnienia i ułatwienia dostępu do serwisu oraz prowadzenia danych statystycznych. Dalsze korzystanie z tej witryny oznacza akceptację tego stanu rzeczy.
Wykorzystywanie plików Cookie
Jak wyłączyć cookies?
ROZUMIEM