@eusilvio/cep-lookup 2.3.2 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,24 +1,4 @@
1
- # Project License
2
-
3
- This project was developed with the philosophy that knowledge and tools should be accessible to all. I believe that by sharing our work freely, we can empower other creators to build incredible things.
4
-
5
- That's why I chose the MIT License for this project. In simple terms, this means you have complete freedom to use, modify, and distribute this code, even for commercial purposes, with a single condition: you must keep the original copyright and license notice included.
6
-
7
- Thank you for your interest and contributions!
8
-
9
- ---
10
-
11
- # Licença do Projeto
12
-
13
- Este projeto foi desenvolvido com a filosofia de que o conhecimento e as ferramentas devem ser acessíveis a todos. Acredito que, ao compartilhar nosso trabalho livremente, podemos capacitar outros criadores a construir coisas incríveis.
14
-
15
- Por isso, escolhi a Licença MIT para este projeto. Em termos simples, isso significa que você tem total liberdade para usar, modificar e distribuir este código, até mesmo para fins comerciais, com uma única condição: mantenha o aviso de licença e copyright originais.
16
-
17
- Agradecemos o seu interesse e contribuição!
18
-
19
- ---
20
-
21
- ### MIT License
1
+ MIT License
22
2
 
23
3
  Copyright (c) 2025 Silvio Campos
24
4
 
@@ -39,29 +19,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
39
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
40
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
41
21
  SOFTWARE.
42
-
43
- ---
44
-
45
- ### Tradução para Português (Apenas para referência)
46
-
47
- _Aviso: Esta é uma tradução não oficial e serve apenas para facilitar o entendimento. A versão em inglês é a que possui validade legal._
48
-
49
- Copyright (c) 2025 Silvio Campos
50
-
51
- É concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia
52
- deste software e dos arquivos de documentação associados (o "Software"), para negociar
53
- o Software sem restrições, incluindo, sem limitação, os direitos
54
- de usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender
55
- cópias do Software, e permitir que as pessoas a quem o Software é
56
- fornecido o façam, sujeito às seguintes condições:
57
-
58
- O aviso de copyright acima e este aviso de permissão devem ser incluídos em todas as
59
- cópias ou partes substanciais do Software.
60
-
61
- O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU
62
- IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO,
63
- ADEQUAÇÃO A UM FIM ESPECÍFICO E NÃO VIOLAÇÃO. EM NENHUMA CIRCUNSTÂNCIA OS
64
- AUTORES OU TITULARES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER REIVINDICAÇÃO, DANOS OU OUTRA
65
- RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ILÍCITO CIVIL OU DE OUTRA FORMA, DECORRENTE DE,
66
- FORA DE OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO
67
- SOFTWARE.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![NPM Version](https://img.shields.io/npm/v/@eusilvio/cep-lookup.svg)](https://www.npmjs.com/package/@eusilvio/cep-lookup)
4
4
  [![NPM Unpacked Size](https://img.shields.io/npm/unpacked-size/@eusilvio/cep-lookup)](https://www.npmjs.com/package/@eusilvio/cep-lookup)
5
- [![Build Status](https://img.shields.io/github/workflow/status/eusilvio/cep-lookup/CI)](https://github.com/eusilvio/cep-lookup/actions)
5
+ [![Build Status](https://img.shields.io/github/actions/workflow/status/eusilvio/cep-lookup/ci.yml)](https://github.com/eusilvio/cep-lookup/actions)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
7
 
8
8
  A modern, flexible, and agnostic CEP (Brazilian postal code) lookup library written in TypeScript.
@@ -119,7 +119,7 @@ const cepLookup = new CepLookup({
119
119
  });
120
120
 
121
121
  // 2. Look up multiple CEPs
122
- cepLookup.lookupCeps(cepsToLookup, { concurrency: 2 }).then((results: BulkCepResult[]) => {
122
+ cepLookup.lookupCeps(cepsToLookup, 2).then((results: BulkCepResult[]) => {
123
123
  console.log("Bulk lookup results:", results);
124
124
  // Output:
125
125
  // [
@@ -153,6 +153,11 @@ Creates a new `CepLookup` instance.
153
153
  - `fetcher` (Fetcher, _optional_): Your asynchronous function that fetches data from a URL. Defaults to global `fetch` if not provided.
154
154
  - `cache` (Cache, _optional_): An instance of a cache that implements the `Cache` interface. Use `InMemoryCache` for a simple in-memory cache.
155
155
  - `rateLimit` ({ requests: number, per: number }, _optional_): Configures an in-memory rate limiter (e.g., `{ requests: 10, per: 1000 }` for 10 requests per second).
156
+ - `staggerDelay` (number, _optional_): Time in milliseconds to wait for the fastest provider before triggering backups (default: `100`).
157
+
158
+ ### `cepLookup.warmup()`
159
+
160
+ Pings all providers to determine the fastest one for the current environment. Call this during idle UI time (like when a user focuses a CEP input field) to optimize the subsequent `lookup` call.
156
161
 
157
162
  ### `cepLookup.lookup<T = Address>(cep, mapper?): Promise<T>`
158
163
 
@@ -161,13 +166,12 @@ Returns a `Promise` that resolves to the address in the default format (`Address
161
166
  - `cep` (string, **required**): The CEP to be queried.
162
167
  - `mapper` ((address: Address) => T, _optional_): A function that receives the default `Address` object and transforms it into a new format `T`.
163
168
 
164
- ### `cepLookup.lookupCeps(ceps, options?): Promise<BulkCepResult[]>`
169
+ ### `cepLookup.lookupCeps(ceps, concurrency?): Promise<BulkCepResult[]>`
165
170
 
166
171
  Looks up multiple CEPs in bulk. Returns a `Promise` that resolves to an array of `BulkCepResult` objects, one for each queried CEP.
167
172
 
168
173
  - `ceps` (string[], **required**): An array of CEP strings to be queried.
169
- - `options` (object, _optional_): An options object.
170
- - `concurrency` (number): The number of parallel requests to make. Defaults to `5`.
174
+ - `concurrency` (number, _optional_): The number of parallel requests to make. Defaults to `5`.
171
175
 
172
176
  > **Note on Deprecated Functions:**
173
177
  > Standalone `lookupCep` and `lookupCeps` functions are deprecated and will be removed in a future version. Please use the methods on a `CepLookup` instance instead.
@@ -244,6 +248,13 @@ const myCustomProvider: Provider = {
244
248
  npm test
245
249
  ```
246
250
 
251
+ ## Compatibility and support
252
+
253
+ - Node.js: `20.x`, `22.x`, `24.x`
254
+ - React package: `react >= 16.8`
255
+ - Vue package: `vue ^3`
256
+ - Maintenance policy: [SUPPORT.md](../../SUPPORT.md)
257
+
247
258
  ## License
248
259
 
249
- Distributed under the MIT License.
260
+ Distributed under the MIT License.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var f=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var N=(i,e)=>{for(var t in e)f(i,t,{get:e[t],enumerable:!0})},b=(i,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of C(e))!A.call(i,r)&&r!==t&&f(i,r,{get:()=>e[r],enumerable:!(s=g(e,r))||s.enumerable});return i};var y=i=>b(f({},"__esModule",{value:!0}),i);var q={};N(q,{CepLookup:()=>l,InMemoryCache:()=>m,lookupCep:()=>R,lookupCeps:()=>O});module.exports=y(q);var m=class{constructor(){this.cache=new Map}get(e){return this.cache.get(e)}set(e,t){this.cache.set(e,t)}clear(){this.cache.clear()}};var v=class{constructor(){this.listeners={}}on(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)}off(e,t){let s=this.listeners[e];s&&(this.listeners[e]=s.filter(r=>r!==t))}emit(e,t){let s=this.listeners[e];s&&s.forEach(r=>r(t))}};function x(i){if(!/^(\d{8}|\d{5}-\d{3})$/.test(i))throw new Error("Invalid CEP format. Use either NNNNNNNN or NNNNN-NNN.");return i.replace("-","")}function P(i){let e={...i};return Object.keys(e).forEach(t=>{let s=e[t];typeof s=="string"&&(e[t]=s.trim())}),e}var l=class{constructor(e){this.requestTimestamps=[];this.providers=e.providers,this.emitter=new v,this.fetcher=e.fetcher||(async(t,s)=>{let r=await fetch(t,{signal:s});if(!r.ok)throw new Error(`HTTP error! status: ${r.status}`);return r.json()}),this.cache=e.cache,this.rateLimit=e.rateLimit}on(e,t){this.emitter.on(e,t)}off(e,t){this.emitter.off(e,t)}checkRateLimit(){if(!this.rateLimit)return;let e=Date.now(),t=e-this.rateLimit.per;if(this.requestTimestamps=this.requestTimestamps.filter(s=>s>t),this.requestTimestamps.length>=this.rateLimit.requests)throw new Error(`Rate limit exceeded: ${this.rateLimit.requests} requests per ${this.rateLimit.per}ms.`);this.requestTimestamps.push(e)}async lookup(e,t){this.checkRateLimit();let s=x(e);if(this.cache){let n=this.cache.get(s);if(n)return this.emitter.emit("cache:hit",{cep:s}),t?t(n):n}let r=new AbortController,{signal:o}=r,a=this.providers.map(n=>{let d=Date.now(),p=n.buildUrl(s),k=new Promise((c,h)=>{if(!n.timeout)return;let u=setTimeout(()=>{o.removeEventListener("abort",T);let E=Date.now()-d,w=new Error(`Timeout from ${n.name}`);this.emitter.emit("failure",{provider:n.name,cep:s,duration:E,error:w}),h(w)},n.timeout),T=()=>clearTimeout(u);o.addEventListener("abort",T,{once:!0})}),L=this.fetcher(p,o).then(c=>n.transform(c)).then(c=>{let h=Date.now()-d,u=P(c);return this.emitter.emit("success",{provider:n.name,cep:s,duration:h,address:u}),this.cache&&this.cache.set(s,u),t?t(u):u}).catch(c=>{let h=Date.now()-d;throw c.message.includes("Timeout from")||this.emitter.emit("failure",{provider:n.name,cep:s,duration:h,error:c}),c});return Promise.race([L,k])});try{return a.length===1?await a[0]:await Promise.any(a)}finally{r.abort()}}async lookupCeps(e,t=5){if(!e||e.length===0)return[];let s=new Array(e.length),r=0,o=async()=>{for(;r<e.length;){let n=r++;if(n>=e.length)break;let d=e[n];try{let p=await this.lookup(d);if(p)s[n]={cep:d,data:p,provider:p.service};else throw new Error("No address found")}catch(p){s[n]={cep:d,data:null,error:p}}}},a=Array.from({length:Math.min(t,e.length)},()=>o());return await Promise.all(a),s.filter(Boolean)}};function R(i){console.warn("[cep-lookup] The standalone `lookupCep` function is deprecated and will be removed in a future version. Please use `new CepLookup(options).lookup(cep)` instead.");let{cep:e,providers:t,fetcher:s,mapper:r,cache:o,rateLimit:a}=i;return new l({providers:t,fetcher:s,cache:o,rateLimit:a}).lookup(e,r)}async function O(i){console.warn("[cep-lookup] The standalone `lookupCeps` function is deprecated and will be removed in a future version. Please use `new CepLookup(options).lookupCeps(ceps)` instead.");let{ceps:e,providers:t,fetcher:s,cache:r,concurrency:o=5,rateLimit:a}=i;return new l({providers:t,fetcher:s,cache:r,rateLimit:a}).lookupCeps(e,o)}
1
+ "use strict";var A=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var S=Object.getOwnPropertyNames;var I=Object.prototype.hasOwnProperty;var z=(s,e)=>{for(var t in e)A(s,t,{get:e[t],enumerable:!0})},B=(s,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of S(e))!I.call(s,i)&&i!==t&&A(s,i,{get:()=>e[i],enumerable:!(r=O(e,i))||r.enumerable});return s};var q=s=>B(A({},"__esModule",{value:!0}),s);var U={};z(U,{AllProvidersFailedError:()=>w,CepLookup:()=>L,CepNotFoundError:()=>T,CepValidationError:()=>v,InMemoryCache:()=>E,ProviderTimeoutError:()=>y,RateLimitError:()=>g});module.exports=q(U);var E=class{constructor(e){this.cache=new Map;this.ttl=e?.ttl??1/0,this.maxSize=e?.maxSize??1/0}get(e){let t=this.cache.get(e);if(t){if(this.ttl!==1/0&&Date.now()-t.timestamp>this.ttl){this.cache.delete(e);return}return t.value}}set(e,t){if(this.cache.has(e)&&this.cache.delete(e),this.cache.size>=this.maxSize){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(e,{value:t,timestamp:Date.now()})}delete(e){this.cache.delete(e)}has(e){if(!this.cache.has(e))return!1;let t=this.cache.get(e);return this.ttl!==1/0&&Date.now()-t.timestamp>this.ttl?(this.cache.delete(e),!1):!0}clear(){this.cache.clear()}};var v=class extends Error{constructor(e){super("Invalid CEP format. Use either NNNNNNNN or NNNNN-NNN."),this.name="CepValidationError",this.cep=e}},g=class extends Error{constructor(e,t){super(`Rate limit exceeded: ${e} requests per ${t}ms.`),this.name="RateLimitError",this.limit=e,this.window=t}},y=class extends Error{constructor(e,t){super(`Timeout from ${e}`),this.name="ProviderTimeoutError",this.provider=e,this.timeout=t}},T=class extends Error{constructor(e,t){super("CEP not found"),this.name="CepNotFoundError",this.cep=e,this.provider=t}},w=class extends Error{constructor(e){super("All providers failed to resolve the CEP."),this.name="AllProvidersFailedError",this.errors=e}};var N={AC:"68",AL:"82",AM:"92",AP:"96",BA:"71",CE:"85",DF:"61",ES:"27",GO:"62",MA:"98",MG:"31",MS:"67",MT:"65",PA:"91",PB:"83",PE:"81",PI:"86",PR:"41",RJ:"21",RN:"84",RO:"69",RR:"95",RS:"51",SC:"48",SE:"79",SP:"11",TO:"63"};var x=class{constructor(){this.listeners={}}on(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)}off(e,t){let r=this.listeners[e];r&&(this.listeners[e]=r.filter(i=>i!==t))}emit(e,t){let r=this.listeners[e];r&&r.forEach(i=>i(t))}};function F(s){if(!/^(\d{8}|\d{5}-\d{3})$/.test(s))throw new v(s);return s.replace("-","")}function $(s){let e={...s};return Object.keys(e).forEach(t=>{let r=e[t];typeof r=="string"&&(e[t]=r.trim())}),e}function K(s){if(!s.ddd&&s.state){let e=N[s.state];if(e)return{...s,ddd:e}}return s}var L=class{constructor(e){this.requestTimestamps=[];this.providers=e.providers,this.sortedProviders=[...e.providers],this.emitter=new x,this.fetcher=e.fetcher||(async(t,r)=>{let i=await fetch(t,{signal:r});if(!i.ok)throw new Error(`HTTP error! status: ${i.status}`);return i.json()}),this.cache=e.cache,this.rateLimit=e.rateLimit,this.staggerDelay=e.staggerDelay??100,this.retries=e.retries??0,this.retryDelay=e.retryDelay??1e3,this.logger=e.logger}log(e,t){this.logger?.debug(e,t)}on(e,t){this.emitter.on(e,t)}off(e,t){this.emitter.off(e,t)}async warmup(){let e="01001000",t=new AbortController,r=this.providers.map(async n=>{let a=Date.now();try{let c=n.buildUrl(e);return await this.fetcher(c,t.signal),{provider:n,duration:Date.now()-a,error:!1}}catch{return{provider:n,duration:1/0,error:!0}}}),d=(await Promise.all(r)).sort((n,a)=>n.duration-a.duration);return this.sortedProviders=d.map(n=>n.provider).filter(n=>!!n),t.abort(),this.sortedProviders}checkRateLimit(){if(!this.rateLimit)return;let e=Date.now(),t=e-this.rateLimit.per;if(this.requestTimestamps=this.requestTimestamps.filter(r=>r>t),this.requestTimestamps.length>=this.rateLimit.requests)throw new g(this.rateLimit.requests,this.rateLimit.per);this.requestTimestamps.push(e)}async lookup(e,t){this.checkRateLimit();let r=F(e);if(this.log("lookup:start",{cep:r}),this.cache){let n=this.cache.get(r);if(n)return this.log("cache:hit",{cep:r}),this.emitter.emit("cache:hit",{cep:r}),t?t(n):n}let i,d=1+this.retries;for(let n=0;n<d;n++){if(n>0){let a=this.retryDelay*Math.pow(2,n-1);this.log("retry:attempt",{attempt:n,cep:r,delay:a}),await new Promise(c=>setTimeout(c,a))}try{return await this._lookupFromProviders(r,t)}catch(a){if(a instanceof v||a instanceof g)throw a;i=a}}throw i}async _lookupFromProviders(e,t){let r=new AbortController,{signal:i}=r,d=o=>{let m=Date.now(),b=o.buildUrl(e);this.log("provider:start",{provider:o.name,cep:e});let C=new Promise((l,p)=>{if(!o.timeout)return;let f=setTimeout(()=>{i.removeEventListener("abort",R);let M=Date.now()-m,P=new y(o.name,o.timeout);this.log("provider:failure",{provider:o.name,cep:e,error:P.message}),this.emitter.emit("failure",{provider:o.name,cep:e,duration:M,error:P}),p(P)},o.timeout),R=()=>clearTimeout(f);i.addEventListener("abort",R,{once:!0})}),D=this.fetcher(b,i).then(l=>o.transform(l)).then(l=>{let p=Date.now()-m,f=K($(l));return this.log("provider:success",{provider:o.name,cep:e,duration:p}),this.emitter.emit("success",{provider:o.name,cep:e,duration:p,address:f}),this.cache&&this.cache.set(e,f),t?t(f):f}).catch(l=>{let p=Date.now()-m;throw!l.message.includes("Timeout from")&&l.name!=="AbortError"&&(this.log("provider:failure",{provider:o.name,cep:e,error:l.message}),this.emitter.emit("failure",{provider:o.name,cep:e,duration:p,error:l})),l});return Promise.race([D,C])},n=this.sortedProviders[0],a=this.sortedProviders.slice(1);if(a.length===0)try{return await d(n)}finally{r.abort()}let c=null,h=null,u=new Promise((o,m)=>{h=()=>{if(c&&clearTimeout(c),i.aborted)return;let b=a.map(d);Promise.any(b).then(o).catch(m)},c=setTimeout(h,this.staggerDelay)}),k=d(n).catch(o=>{throw h&&h(),o});try{return await Promise.any([k,u])}catch(o){let m=o.errors||[o];throw new w(m)}finally{c&&clearTimeout(c),r.abort()}}async lookupCeps(e,t=5,r){if(!e||e.length===0)return[];let i=new Array(e.length),d=0,n=async()=>{for(;d<e.length;){let c=d++;if(c>=e.length)break;let h=e[c];try{let u=await this.lookup(h);if(u)i[c]={cep:h,data:r?r(u):u,provider:u.service};else throw new Error("No address found")}catch(u){i[c]={cep:h,data:null,error:u}}}},a=Array.from({length:Math.min(t,e.length)},()=>n());return await Promise.all(a),i.filter(Boolean)}};
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var m=class{constructor(){this.cache=new Map}get(e){return this.cache.get(e)}set(e,t){this.cache.set(e,t)}clear(){this.cache.clear()}};var f=class{constructor(){this.listeners={}}on(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)}off(e,t){let s=this.listeners[e];s&&(this.listeners[e]=s.filter(i=>i!==t))}emit(e,t){let s=this.listeners[e];s&&s.forEach(i=>i(t))}};function E(n){if(!/^(\d{8}|\d{5}-\d{3})$/.test(n))throw new Error("Invalid CEP format. Use either NNNNNNNN or NNNNN-NNN.");return n.replace("-","")}function g(n){let e={...n};return Object.keys(e).forEach(t=>{let s=e[t];typeof s=="string"&&(e[t]=s.trim())}),e}var l=class{constructor(e){this.requestTimestamps=[];this.providers=e.providers,this.emitter=new f,this.fetcher=e.fetcher||(async(t,s)=>{let i=await fetch(t,{signal:s});if(!i.ok)throw new Error(`HTTP error! status: ${i.status}`);return i.json()}),this.cache=e.cache,this.rateLimit=e.rateLimit}on(e,t){this.emitter.on(e,t)}off(e,t){this.emitter.off(e,t)}checkRateLimit(){if(!this.rateLimit)return;let e=Date.now(),t=e-this.rateLimit.per;if(this.requestTimestamps=this.requestTimestamps.filter(s=>s>t),this.requestTimestamps.length>=this.rateLimit.requests)throw new Error(`Rate limit exceeded: ${this.rateLimit.requests} requests per ${this.rateLimit.per}ms.`);this.requestTimestamps.push(e)}async lookup(e,t){this.checkRateLimit();let s=E(e);if(this.cache){let r=this.cache.get(s);if(r)return this.emitter.emit("cache:hit",{cep:s}),t?t(r):r}let i=new AbortController,{signal:o}=i,a=this.providers.map(r=>{let d=Date.now(),p=r.buildUrl(s),w=new Promise((c,h)=>{if(!r.timeout)return;let u=setTimeout(()=>{o.removeEventListener("abort",v);let L=Date.now()-d,T=new Error(`Timeout from ${r.name}`);this.emitter.emit("failure",{provider:r.name,cep:s,duration:L,error:T}),h(T)},r.timeout),v=()=>clearTimeout(u);o.addEventListener("abort",v,{once:!0})}),k=this.fetcher(p,o).then(c=>r.transform(c)).then(c=>{let h=Date.now()-d,u=g(c);return this.emitter.emit("success",{provider:r.name,cep:s,duration:h,address:u}),this.cache&&this.cache.set(s,u),t?t(u):u}).catch(c=>{let h=Date.now()-d;throw c.message.includes("Timeout from")||this.emitter.emit("failure",{provider:r.name,cep:s,duration:h,error:c}),c});return Promise.race([k,w])});try{return a.length===1?await a[0]:await Promise.any(a)}finally{i.abort()}}async lookupCeps(e,t=5){if(!e||e.length===0)return[];let s=new Array(e.length),i=0,o=async()=>{for(;i<e.length;){let r=i++;if(r>=e.length)break;let d=e[r];try{let p=await this.lookup(d);if(p)s[r]={cep:d,data:p,provider:p.service};else throw new Error("No address found")}catch(p){s[r]={cep:d,data:null,error:p}}}},a=Array.from({length:Math.min(t,e.length)},()=>o());return await Promise.all(a),s.filter(Boolean)}};function b(n){console.warn("[cep-lookup] The standalone `lookupCep` function is deprecated and will be removed in a future version. Please use `new CepLookup(options).lookup(cep)` instead.");let{cep:e,providers:t,fetcher:s,mapper:i,cache:o,rateLimit:a}=n;return new l({providers:t,fetcher:s,cache:o,rateLimit:a}).lookup(e,i)}async function y(n){console.warn("[cep-lookup] The standalone `lookupCeps` function is deprecated and will be removed in a future version. Please use `new CepLookup(options).lookupCeps(ceps)` instead.");let{ceps:e,providers:t,fetcher:s,cache:i,concurrency:o=5,rateLimit:a}=n;return new l({providers:t,fetcher:s,cache:i,rateLimit:a}).lookupCeps(e,o)}export{l as CepLookup,m as InMemoryCache,b as lookupCep,y as lookupCeps};
1
+ var b=class{constructor(e){this.cache=new Map;this.ttl=e?.ttl??1/0,this.maxSize=e?.maxSize??1/0}get(e){let t=this.cache.get(e);if(t){if(this.ttl!==1/0&&Date.now()-t.timestamp>this.ttl){this.cache.delete(e);return}return t.value}}set(e,t){if(this.cache.has(e)&&this.cache.delete(e),this.cache.size>=this.maxSize){let r=this.cache.keys().next().value;r!==void 0&&this.cache.delete(r)}this.cache.set(e,{value:t,timestamp:Date.now()})}delete(e){this.cache.delete(e)}has(e){if(!this.cache.has(e))return!1;let t=this.cache.get(e);return this.ttl!==1/0&&Date.now()-t.timestamp>this.ttl?(this.cache.delete(e),!1):!0}clear(){this.cache.clear()}};var v=class extends Error{constructor(e){super("Invalid CEP format. Use either NNNNNNNN or NNNNN-NNN."),this.name="CepValidationError",this.cep=e}},g=class extends Error{constructor(e,t){super(`Rate limit exceeded: ${e} requests per ${t}ms.`),this.name="RateLimitError",this.limit=e,this.window=t}},y=class extends Error{constructor(e,t){super(`Timeout from ${e}`),this.name="ProviderTimeoutError",this.provider=e,this.timeout=t}},P=class extends Error{constructor(e,t){super("CEP not found"),this.name="CepNotFoundError",this.cep=e,this.provider=t}},w=class extends Error{constructor(e){super("All providers failed to resolve the CEP."),this.name="AllProvidersFailedError",this.errors=e}};var L={AC:"68",AL:"82",AM:"92",AP:"96",BA:"71",CE:"85",DF:"61",ES:"27",GO:"62",MA:"98",MG:"31",MS:"67",MT:"65",PA:"91",PB:"83",PE:"81",PI:"86",PR:"41",RJ:"21",RN:"84",RO:"69",RR:"95",RS:"51",SC:"48",SE:"79",SP:"11",TO:"63"};var A=class{constructor(){this.listeners={}}on(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)}off(e,t){let r=this.listeners[e];r&&(this.listeners[e]=r.filter(i=>i!==t))}emit(e,t){let r=this.listeners[e];r&&r.forEach(i=>i(t))}};function M(o){if(!/^(\d{8}|\d{5}-\d{3})$/.test(o))throw new v(o);return o.replace("-","")}function O(o){let e={...o};return Object.keys(e).forEach(t=>{let r=e[t];typeof r=="string"&&(e[t]=r.trim())}),e}function S(o){if(!o.ddd&&o.state){let e=L[o.state];if(e)return{...o,ddd:e}}return o}var R=class{constructor(e){this.requestTimestamps=[];this.providers=e.providers,this.sortedProviders=[...e.providers],this.emitter=new A,this.fetcher=e.fetcher||(async(t,r)=>{let i=await fetch(t,{signal:r});if(!i.ok)throw new Error(`HTTP error! status: ${i.status}`);return i.json()}),this.cache=e.cache,this.rateLimit=e.rateLimit,this.staggerDelay=e.staggerDelay??100,this.retries=e.retries??0,this.retryDelay=e.retryDelay??1e3,this.logger=e.logger}log(e,t){this.logger?.debug(e,t)}on(e,t){this.emitter.on(e,t)}off(e,t){this.emitter.off(e,t)}async warmup(){let e="01001000",t=new AbortController,r=this.providers.map(async s=>{let a=Date.now();try{let c=s.buildUrl(e);return await this.fetcher(c,t.signal),{provider:s,duration:Date.now()-a,error:!1}}catch{return{provider:s,duration:1/0,error:!0}}}),d=(await Promise.all(r)).sort((s,a)=>s.duration-a.duration);return this.sortedProviders=d.map(s=>s.provider).filter(s=>!!s),t.abort(),this.sortedProviders}checkRateLimit(){if(!this.rateLimit)return;let e=Date.now(),t=e-this.rateLimit.per;if(this.requestTimestamps=this.requestTimestamps.filter(r=>r>t),this.requestTimestamps.length>=this.rateLimit.requests)throw new g(this.rateLimit.requests,this.rateLimit.per);this.requestTimestamps.push(e)}async lookup(e,t){this.checkRateLimit();let r=M(e);if(this.log("lookup:start",{cep:r}),this.cache){let s=this.cache.get(r);if(s)return this.log("cache:hit",{cep:r}),this.emitter.emit("cache:hit",{cep:r}),t?t(s):s}let i,d=1+this.retries;for(let s=0;s<d;s++){if(s>0){let a=this.retryDelay*Math.pow(2,s-1);this.log("retry:attempt",{attempt:s,cep:r,delay:a}),await new Promise(c=>setTimeout(c,a))}try{return await this._lookupFromProviders(r,t)}catch(a){if(a instanceof v||a instanceof g)throw a;i=a}}throw i}async _lookupFromProviders(e,t){let r=new AbortController,{signal:i}=r,d=n=>{let m=Date.now(),E=n.buildUrl(e);this.log("provider:start",{provider:n.name,cep:e});let k=new Promise((l,p)=>{if(!n.timeout)return;let f=setTimeout(()=>{i.removeEventListener("abort",x);let D=Date.now()-m,T=new y(n.name,n.timeout);this.log("provider:failure",{provider:n.name,cep:e,error:T.message}),this.emitter.emit("failure",{provider:n.name,cep:e,duration:D,error:T}),p(T)},n.timeout),x=()=>clearTimeout(f);i.addEventListener("abort",x,{once:!0})}),C=this.fetcher(E,i).then(l=>n.transform(l)).then(l=>{let p=Date.now()-m,f=S(O(l));return this.log("provider:success",{provider:n.name,cep:e,duration:p}),this.emitter.emit("success",{provider:n.name,cep:e,duration:p,address:f}),this.cache&&this.cache.set(e,f),t?t(f):f}).catch(l=>{let p=Date.now()-m;throw!l.message.includes("Timeout from")&&l.name!=="AbortError"&&(this.log("provider:failure",{provider:n.name,cep:e,error:l.message}),this.emitter.emit("failure",{provider:n.name,cep:e,duration:p,error:l})),l});return Promise.race([C,k])},s=this.sortedProviders[0],a=this.sortedProviders.slice(1);if(a.length===0)try{return await d(s)}finally{r.abort()}let c=null,h=null,u=new Promise((n,m)=>{h=()=>{if(c&&clearTimeout(c),i.aborted)return;let E=a.map(d);Promise.any(E).then(n).catch(m)},c=setTimeout(h,this.staggerDelay)}),N=d(s).catch(n=>{throw h&&h(),n});try{return await Promise.any([N,u])}catch(n){let m=n.errors||[n];throw new w(m)}finally{c&&clearTimeout(c),r.abort()}}async lookupCeps(e,t=5,r){if(!e||e.length===0)return[];let i=new Array(e.length),d=0,s=async()=>{for(;d<e.length;){let c=d++;if(c>=e.length)break;let h=e[c];try{let u=await this.lookup(h);if(u)i[c]={cep:h,data:r?r(u):u,provider:u.service};else throw new Error("No address found")}catch(u){i[c]={cep:h,data:null,error:u}}}},a=Array.from({length:Math.min(t,e.length)},()=>s());return await Promise.all(a),i.filter(Boolean)}};export{w as AllProvidersFailedError,R as CepLookup,P as CepNotFoundError,v as CepValidationError,b as InMemoryCache,y as ProviderTimeoutError,g as RateLimitError};
@@ -1 +1 @@
1
- "use strict";var e=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var P=(r,t)=>{for(var o in t)e(r,o,{get:t[o],enumerable:!0})},f=(r,t,o,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of c(t))!m.call(r,i)&&i!==o&&e(r,i,{get:()=>t[i],enumerable:!(a=d(t,i))||a.enumerable});return r};var l=r=>f(e({},"__esModule",{value:!0}),r);var b={};P(b,{apicepProvider:()=>u,brasilApiProvider:()=>h,viaCepProvider:()=>v});module.exports=l(b);var v={name:"ViaCEP",buildUrl:r=>`https://viacep.com.br/ws/${r}/json/`,transform:r=>{if(!r||r.erro===!0||r.erro==="true")throw new Error("CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.uf||"",city:r.localidade||"",neighborhood:r.bairro||"",street:r.logradouro||"",service:"ViaCEP"}}};var h={name:"BrasilAPI",buildUrl:r=>`https://brasilapi.com.br/api/cep/v1/${r}`,transform:r=>{if(!r||r.errors||r.message)throw new Error(r.message||"CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.state||"",city:r.city||"",neighborhood:r.neighborhood||"",street:r.street||"",service:"BrasilAPI"}}};var u={name:"ApiCEP",buildUrl:r=>`https://cdn.apicep.com/file/apicep/${r}.json`,transform:r=>{if(!r||r.status!==200)throw new Error(r?.message||"CEP not found");return{cep:(r.code||"").replace("-",""),state:r.state||"",city:r.city||"",neighborhood:r.district||"",street:r.address||"",service:"ApiCEP"}}};
1
+ "use strict";var o=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var f=(r,t)=>{for(var d in t)o(r,d,{get:t[d],enumerable:!0})},P=(r,t,d,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of c(t))!m.call(r,i)&&i!==d&&o(r,i,{get:()=>t[i],enumerable:!(e=a(t,i))||e.enumerable});return r};var l=r=>P(o({},"__esModule",{value:!0}),r);var g={};f(g,{apicepProvider:()=>v,brasilApiProvider:()=>u,openCepProvider:()=>b,viaCepProvider:()=>n});module.exports=l(g);var n={name:"ViaCEP",buildUrl:r=>`https://viacep.com.br/ws/${r}/json/`,transform:r=>{if(!r||r.erro===!0||r.erro==="true")throw new Error("CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.uf||"",city:r.localidade||"",neighborhood:r.bairro||"",street:r.logradouro||"",service:"ViaCEP",ibge:r.ibge||void 0,ddd:r.ddd||void 0}}};var u={name:"BrasilAPI",buildUrl:r=>`https://brasilapi.com.br/api/cep/v1/${r}`,transform:r=>{if(!r||r.errors||r.message)throw new Error(r.message||"CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.state||"",city:r.city||"",neighborhood:r.neighborhood||"",street:r.street||"",service:"BrasilAPI"}}};var v={name:"ApiCEP",buildUrl:r=>`https://cdn.apicep.com/file/apicep/${r}.json`,transform:r=>{if(!r||r.status!==200)throw new Error(r?.message||"CEP not found");return{cep:(r.code||"").replace("-",""),state:r.state||"",city:r.city||"",neighborhood:r.district||"",street:r.address||"",service:"ApiCEP"}}};var b={name:"OpenCEP",buildUrl:r=>`https://opencep.com/v1/${r}`,transform:r=>{if(!r||r.error)throw new Error("CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.uf||"",city:r.localidade||"",neighborhood:r.bairro||"",street:r.logradouro||"",service:"OpenCEP",ibge:r.ibge||void 0}}};
@@ -1 +1 @@
1
- var t={name:"ViaCEP",buildUrl:r=>`https://viacep.com.br/ws/${r}/json/`,transform:r=>{if(!r||r.erro===!0||r.erro==="true")throw new Error("CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.uf||"",city:r.localidade||"",neighborhood:r.bairro||"",street:r.logradouro||"",service:"ViaCEP"}}};var o={name:"BrasilAPI",buildUrl:r=>`https://brasilapi.com.br/api/cep/v1/${r}`,transform:r=>{if(!r||r.errors||r.message)throw new Error(r.message||"CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.state||"",city:r.city||"",neighborhood:r.neighborhood||"",street:r.street||"",service:"BrasilAPI"}}};var a={name:"ApiCEP",buildUrl:r=>`https://cdn.apicep.com/file/apicep/${r}.json`,transform:r=>{if(!r||r.status!==200)throw new Error(r?.message||"CEP not found");return{cep:(r.code||"").replace("-",""),state:r.state||"",city:r.city||"",neighborhood:r.district||"",street:r.address||"",service:"ApiCEP"}}};export{a as apicepProvider,o as brasilApiProvider,t as viaCepProvider};
1
+ var t={name:"ViaCEP",buildUrl:r=>`https://viacep.com.br/ws/${r}/json/`,transform:r=>{if(!r||r.erro===!0||r.erro==="true")throw new Error("CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.uf||"",city:r.localidade||"",neighborhood:r.bairro||"",street:r.logradouro||"",service:"ViaCEP",ibge:r.ibge||void 0,ddd:r.ddd||void 0}}};var d={name:"BrasilAPI",buildUrl:r=>`https://brasilapi.com.br/api/cep/v1/${r}`,transform:r=>{if(!r||r.errors||r.message)throw new Error(r.message||"CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.state||"",city:r.city||"",neighborhood:r.neighborhood||"",street:r.street||"",service:"BrasilAPI"}}};var e={name:"ApiCEP",buildUrl:r=>`https://cdn.apicep.com/file/apicep/${r}.json`,transform:r=>{if(!r||r.status!==200)throw new Error(r?.message||"CEP not found");return{cep:(r.code||"").replace("-",""),state:r.state||"",city:r.city||"",neighborhood:r.district||"",street:r.address||"",service:"ApiCEP"}}};var c={name:"OpenCEP",buildUrl:r=>`https://opencep.com/v1/${r}`,transform:r=>{if(!r||r.error)throw new Error("CEP not found");return{cep:(r.cep||"").replace("-",""),state:r.uf||"",city:r.localidade||"",neighborhood:r.bairro||"",street:r.logradouro||"",service:"OpenCEP",ibge:r.ibge||void 0}}};export{e as apicepProvider,d as brasilApiProvider,c as openCepProvider,t as viaCepProvider};
@@ -7,30 +7,27 @@ export interface Cache {
7
7
  get(key: string): Address | undefined;
8
8
  set(key: string, value: Address): void;
9
9
  clear(): void;
10
+ delete?(key: string): void;
11
+ has?(key: string): boolean;
12
+ }
13
+ export interface InMemoryCacheOptions {
14
+ /** Time-to-live in milliseconds. Default: Infinity (no expiry) */
15
+ ttl?: number;
16
+ /** Maximum number of entries. Default: Infinity (no limit) */
17
+ maxSize?: number;
10
18
  }
11
19
  /**
12
20
  * @class InMemoryCache
13
- * @description A simple in-memory cache implementation for storing CEP lookups.
21
+ * @description In-memory cache with optional TTL and size limit.
14
22
  */
15
23
  export declare class InMemoryCache implements Cache {
16
24
  private cache;
17
- /**
18
- * @method get
19
- * @description Retrieves an address from the cache.
20
- * @param {string} key - The CEP to look up.
21
- * @returns {Address | undefined} The cached address or undefined if not found.
22
- */
25
+ private ttl;
26
+ private maxSize;
27
+ constructor(options?: InMemoryCacheOptions);
23
28
  get(key: string): Address | undefined;
24
- /**
25
- * @method set
26
- * @description Stores an address in the cache.
27
- * @param {string} key - The CEP to use as the cache key.
28
- * @param {Address} value - The address to store.
29
- */
30
29
  set(key: string, value: Address): void;
31
- /**
32
- * @method clear
33
- * @description Clears the entire cache.
34
- */
30
+ delete(key: string): void;
31
+ has(key: string): boolean;
35
32
  clear(): void;
36
33
  }
@@ -3,34 +3,49 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InMemoryCache = void 0;
4
4
  /**
5
5
  * @class InMemoryCache
6
- * @description A simple in-memory cache implementation for storing CEP lookups.
6
+ * @description In-memory cache with optional TTL and size limit.
7
7
  */
8
8
  class InMemoryCache {
9
- constructor() {
9
+ constructor(options) {
10
10
  this.cache = new Map();
11
+ this.ttl = options?.ttl ?? Infinity;
12
+ this.maxSize = options?.maxSize ?? Infinity;
11
13
  }
12
- /**
13
- * @method get
14
- * @description Retrieves an address from the cache.
15
- * @param {string} key - The CEP to look up.
16
- * @returns {Address | undefined} The cached address or undefined if not found.
17
- */
18
14
  get(key) {
19
- return this.cache.get(key);
15
+ const entry = this.cache.get(key);
16
+ if (!entry)
17
+ return undefined;
18
+ if (this.ttl !== Infinity && Date.now() - entry.timestamp > this.ttl) {
19
+ this.cache.delete(key);
20
+ return undefined;
21
+ }
22
+ return entry.value;
20
23
  }
21
- /**
22
- * @method set
23
- * @description Stores an address in the cache.
24
- * @param {string} key - The CEP to use as the cache key.
25
- * @param {Address} value - The address to store.
26
- */
27
24
  set(key, value) {
28
- this.cache.set(key, value);
25
+ if (this.cache.has(key)) {
26
+ this.cache.delete(key);
27
+ }
28
+ if (this.cache.size >= this.maxSize) {
29
+ const oldestKey = this.cache.keys().next().value;
30
+ if (oldestKey !== undefined) {
31
+ this.cache.delete(oldestKey);
32
+ }
33
+ }
34
+ this.cache.set(key, { value, timestamp: Date.now() });
35
+ }
36
+ delete(key) {
37
+ this.cache.delete(key);
38
+ }
39
+ has(key) {
40
+ if (!this.cache.has(key))
41
+ return false;
42
+ const entry = this.cache.get(key);
43
+ if (this.ttl !== Infinity && Date.now() - entry.timestamp > this.ttl) {
44
+ this.cache.delete(key);
45
+ return false;
46
+ }
47
+ return true;
29
48
  }
30
- /**
31
- * @method clear
32
- * @description Clears the entire cache.
33
- */
34
49
  clear() {
35
50
  this.cache.clear();
36
51
  }
@@ -0,0 +1,2 @@
1
+ /** DDD da capital de cada estado (fallback para providers que nao retornam DDD) */
2
+ export declare const dddByState: Record<string, string>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dddByState = void 0;
4
+ /** DDD da capital de cada estado (fallback para providers que nao retornam DDD) */
5
+ exports.dddByState = {
6
+ AC: "68", AL: "82", AM: "92", AP: "96", BA: "71",
7
+ CE: "85", DF: "61", ES: "27", GO: "62", MA: "98",
8
+ MG: "31", MS: "67", MT: "65", PA: "91", PB: "83",
9
+ PE: "81", PI: "86", PR: "41", RJ: "21", RN: "84",
10
+ RO: "69", RR: "95", RS: "51", SC: "48", SE: "79",
11
+ SP: "11", TO: "63",
12
+ };
@@ -0,0 +1,23 @@
1
+ export declare class CepValidationError extends Error {
2
+ readonly cep: string;
3
+ constructor(cep: string);
4
+ }
5
+ export declare class RateLimitError extends Error {
6
+ readonly limit: number;
7
+ readonly window: number;
8
+ constructor(limit: number, window: number);
9
+ }
10
+ export declare class ProviderTimeoutError extends Error {
11
+ readonly provider: string;
12
+ readonly timeout: number;
13
+ constructor(provider: string, timeout: number);
14
+ }
15
+ export declare class CepNotFoundError extends Error {
16
+ readonly cep: string;
17
+ readonly provider?: string;
18
+ constructor(cep: string, provider?: string);
19
+ }
20
+ export declare class AllProvidersFailedError extends Error {
21
+ readonly errors: Error[];
22
+ constructor(errors: Error[]);
23
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AllProvidersFailedError = exports.CepNotFoundError = exports.ProviderTimeoutError = exports.RateLimitError = exports.CepValidationError = void 0;
4
+ class CepValidationError extends Error {
5
+ constructor(cep) {
6
+ super("Invalid CEP format. Use either NNNNNNNN or NNNNN-NNN.");
7
+ this.name = "CepValidationError";
8
+ this.cep = cep;
9
+ }
10
+ }
11
+ exports.CepValidationError = CepValidationError;
12
+ class RateLimitError extends Error {
13
+ constructor(limit, window) {
14
+ super(`Rate limit exceeded: ${limit} requests per ${window}ms.`);
15
+ this.name = "RateLimitError";
16
+ this.limit = limit;
17
+ this.window = window;
18
+ }
19
+ }
20
+ exports.RateLimitError = RateLimitError;
21
+ class ProviderTimeoutError extends Error {
22
+ constructor(provider, timeout) {
23
+ super(`Timeout from ${provider}`);
24
+ this.name = "ProviderTimeoutError";
25
+ this.provider = provider;
26
+ this.timeout = timeout;
27
+ }
28
+ }
29
+ exports.ProviderTimeoutError = ProviderTimeoutError;
30
+ class CepNotFoundError extends Error {
31
+ constructor(cep, provider) {
32
+ super("CEP not found");
33
+ this.name = "CepNotFoundError";
34
+ this.cep = cep;
35
+ this.provider = provider;
36
+ }
37
+ }
38
+ exports.CepNotFoundError = CepNotFoundError;
39
+ class AllProvidersFailedError extends Error {
40
+ constructor(errors) {
41
+ super("All providers failed to resolve the CEP.");
42
+ this.name = "AllProvidersFailedError";
43
+ this.errors = errors;
44
+ }
45
+ }
46
+ exports.AllProvidersFailedError = AllProvidersFailedError;
@@ -1,36 +1,38 @@
1
1
  import { Address, Fetcher, Provider, CepLookupOptions, BulkCepResult, RateLimitOptions, EventName, EventListener, EventMap } from "./types";
2
- import { Cache, InMemoryCache } from "./cache";
3
- export type { Address, Fetcher, Provider, CepLookupOptions, BulkCepResult, RateLimitOptions, EventName, EventListener, EventMap, Cache };
2
+ import { Cache, InMemoryCache, InMemoryCacheOptions } from "./cache";
3
+ import { CepValidationError, RateLimitError, ProviderTimeoutError, CepNotFoundError, AllProvidersFailedError } from "./errors";
4
+ export type { Address, Fetcher, Provider, CepLookupOptions, BulkCepResult, RateLimitOptions, EventName, EventListener, EventMap, Cache, InMemoryCacheOptions };
4
5
  export { InMemoryCache };
6
+ export { CepValidationError, RateLimitError, ProviderTimeoutError, CepNotFoundError, AllProvidersFailedError };
5
7
  /**
6
8
  * @class CepLookup
7
9
  * @description A class for looking up Brazilian postal codes (CEPs) using multiple providers.
8
10
  */
9
11
  export declare class CepLookup {
10
12
  private providers;
13
+ private sortedProviders;
11
14
  private fetcher;
12
15
  private cache?;
13
16
  private rateLimit?;
17
+ private staggerDelay;
18
+ private retries;
19
+ private retryDelay;
20
+ private logger?;
14
21
  private requestTimestamps;
15
22
  private emitter;
16
23
  constructor(options: CepLookupOptions);
24
+ private log;
17
25
  on<T extends EventName>(eventName: T, listener: EventListener<T>): void;
18
26
  off<T extends EventName>(eventName: T, listener: EventListener<T>): void;
27
+ /**
28
+ * @method warmup
29
+ * @description Pings providers to determine the fastest one and updates the internal priority order.
30
+ * Useful to call on UI events like 'focus' on the CEP input.
31
+ * @returns {Promise<Provider[]>} The list of providers sorted by latency.
32
+ */
33
+ warmup(): Promise<Provider[]>;
19
34
  private checkRateLimit;
20
35
  lookup<T = Address>(cep: string, mapper?: (address: Address) => T): Promise<T>;
21
- lookupCeps(ceps: string[], concurrency?: number): Promise<BulkCepResult[]>;
36
+ private _lookupFromProviders;
37
+ lookupCeps<T = Address>(ceps: string[], concurrency?: number, mapper?: (address: Address) => T): Promise<BulkCepResult<T>[]>;
22
38
  }
23
- /**
24
- * @deprecated Use `new CepLookup(options).lookup(cep)` instead.
25
- */
26
- export declare function lookupCep<T = Address>(options: CepLookupOptions & {
27
- cep: string;
28
- mapper?: (address: Address) => T;
29
- }): Promise<T>;
30
- /**
31
- * @deprecated Use `new CepLookup(options).lookupCeps(ceps)` instead.
32
- */
33
- export declare function lookupCeps(options: CepLookupOptions & {
34
- ceps: string[];
35
- concurrency?: number;
36
- }): Promise<BulkCepResult[]>;
package/dist/src/index.js CHANGED
@@ -1,10 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CepLookup = exports.InMemoryCache = void 0;
4
- exports.lookupCep = lookupCep;
5
- exports.lookupCeps = lookupCeps;
3
+ exports.CepLookup = exports.AllProvidersFailedError = exports.CepNotFoundError = exports.ProviderTimeoutError = exports.RateLimitError = exports.CepValidationError = exports.InMemoryCache = void 0;
6
4
  const cache_1 = require("./cache");
7
5
  Object.defineProperty(exports, "InMemoryCache", { enumerable: true, get: function () { return cache_1.InMemoryCache; } });
6
+ const errors_1 = require("./errors");
7
+ Object.defineProperty(exports, "CepValidationError", { enumerable: true, get: function () { return errors_1.CepValidationError; } });
8
+ Object.defineProperty(exports, "RateLimitError", { enumerable: true, get: function () { return errors_1.RateLimitError; } });
9
+ Object.defineProperty(exports, "ProviderTimeoutError", { enumerable: true, get: function () { return errors_1.ProviderTimeoutError; } });
10
+ Object.defineProperty(exports, "CepNotFoundError", { enumerable: true, get: function () { return errors_1.CepNotFoundError; } });
11
+ Object.defineProperty(exports, "AllProvidersFailedError", { enumerable: true, get: function () { return errors_1.AllProvidersFailedError; } });
12
+ const ddd_by_state_1 = require("./data/ddd-by-state");
8
13
  // Minimal EventEmitter for internal use
9
14
  class EventEmitter {
10
15
  constructor() {
@@ -41,7 +46,7 @@ class EventEmitter {
41
46
  function validateCep(cep) {
42
47
  const cepRegex = /^(\d{8}|\d{5}-\d{3})$/;
43
48
  if (!cepRegex.test(cep)) {
44
- throw new Error("Invalid CEP format. Use either NNNNNNNN or NNNNN-NNN.");
49
+ throw new errors_1.CepValidationError(cep);
45
50
  }
46
51
  return cep.replace("-", "");
47
52
  }
@@ -61,6 +66,19 @@ function sanitizeAddress(address) {
61
66
  });
62
67
  return sanitized;
63
68
  }
69
+ /**
70
+ * @function enrichAddress
71
+ * @description Enriches an address with DDD fallback when the provider doesn't return it.
72
+ */
73
+ function enrichAddress(address) {
74
+ if (!address.ddd && address.state) {
75
+ const fallbackDdd = ddd_by_state_1.dddByState[address.state];
76
+ if (fallbackDdd) {
77
+ return { ...address, ddd: fallbackDdd };
78
+ }
79
+ }
80
+ return address;
81
+ }
64
82
  /**
65
83
  * @class CepLookup
66
84
  * @description A class for looking up Brazilian postal codes (CEPs) using multiple providers.
@@ -69,6 +87,7 @@ class CepLookup {
69
87
  constructor(options) {
70
88
  this.requestTimestamps = [];
71
89
  this.providers = options.providers;
90
+ this.sortedProviders = [...options.providers];
72
91
  this.emitter = new EventEmitter();
73
92
  this.fetcher = options.fetcher || (async (url, signal) => {
74
93
  const response = await fetch(url, { signal });
@@ -79,6 +98,13 @@ class CepLookup {
79
98
  });
80
99
  this.cache = options.cache;
81
100
  this.rateLimit = options.rateLimit;
101
+ this.staggerDelay = options.staggerDelay ?? 100;
102
+ this.retries = options.retries ?? 0;
103
+ this.retryDelay = options.retryDelay ?? 1000;
104
+ this.logger = options.logger;
105
+ }
106
+ log(msg, data) {
107
+ this.logger?.debug(msg, data);
82
108
  }
83
109
  on(eventName, listener) {
84
110
  this.emitter.on(eventName, listener);
@@ -86,6 +112,38 @@ class CepLookup {
86
112
  off(eventName, listener) {
87
113
  this.emitter.off(eventName, listener);
88
114
  }
115
+ /**
116
+ * @method warmup
117
+ * @description Pings providers to determine the fastest one and updates the internal priority order.
118
+ * Useful to call on UI events like 'focus' on the CEP input.
119
+ * @returns {Promise<Provider[]>} The list of providers sorted by latency.
120
+ */
121
+ async warmup() {
122
+ const controlCep = "01001000"; // Praça da Sé (Fixed Valid CEP)
123
+ const controller = new AbortController();
124
+ const race = this.providers.map(async (provider) => {
125
+ const start = Date.now();
126
+ try {
127
+ const url = provider.buildUrl(controlCep);
128
+ await this.fetcher(url, controller.signal);
129
+ // We don't care about the result content, just that it didn't throw network error
130
+ return { provider, duration: Date.now() - start, error: false };
131
+ }
132
+ catch (e) {
133
+ return { provider, duration: Infinity, error: true };
134
+ }
135
+ });
136
+ // Wait for all to finish (or fail)
137
+ const results = await Promise.all(race);
138
+ // Sort providers: functional/fastest first
139
+ const sortedResults = results.sort((a, b) => a.duration - b.duration);
140
+ this.sortedProviders = sortedResults
141
+ .map(r => r.provider)
142
+ .filter(p => !!p);
143
+ // Abort any lingering requests (though we awaited all)
144
+ controller.abort();
145
+ return this.sortedProviders;
146
+ }
89
147
  checkRateLimit() {
90
148
  if (!this.rateLimit)
91
149
  return;
@@ -93,32 +151,57 @@ class CepLookup {
93
151
  const windowStart = now - this.rateLimit.per;
94
152
  this.requestTimestamps = this.requestTimestamps.filter((ts) => ts > windowStart);
95
153
  if (this.requestTimestamps.length >= this.rateLimit.requests) {
96
- throw new Error(`Rate limit exceeded: ${this.rateLimit.requests} requests per ${this.rateLimit.per}ms.`);
154
+ throw new errors_1.RateLimitError(this.rateLimit.requests, this.rateLimit.per);
97
155
  }
98
156
  this.requestTimestamps.push(now);
99
157
  }
100
158
  async lookup(cep, mapper) {
101
159
  this.checkRateLimit();
102
160
  const cleanedCep = validateCep(cep);
161
+ this.log('lookup:start', { cep: cleanedCep });
103
162
  if (this.cache) {
104
163
  const cachedAddress = this.cache.get(cleanedCep);
105
164
  if (cachedAddress) {
165
+ this.log('cache:hit', { cep: cleanedCep });
106
166
  this.emitter.emit('cache:hit', { cep: cleanedCep });
107
167
  return mapper ? mapper(cachedAddress) : cachedAddress;
108
168
  }
109
169
  }
170
+ let lastError;
171
+ const maxAttempts = 1 + this.retries;
172
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
173
+ if (attempt > 0) {
174
+ const delay = this.retryDelay * Math.pow(2, attempt - 1);
175
+ this.log('retry:attempt', { attempt, cep: cleanedCep, delay });
176
+ await new Promise(resolve => setTimeout(resolve, delay));
177
+ }
178
+ try {
179
+ return await this._lookupFromProviders(cleanedCep, mapper);
180
+ }
181
+ catch (error) {
182
+ if (error instanceof errors_1.CepValidationError || error instanceof errors_1.RateLimitError) {
183
+ throw error;
184
+ }
185
+ lastError = error;
186
+ }
187
+ }
188
+ throw lastError;
189
+ }
190
+ async _lookupFromProviders(cleanedCep, mapper) {
110
191
  const controller = new AbortController();
111
192
  const { signal } = controller;
112
- const promises = this.providers.map((provider) => {
193
+ const createProviderPromise = (provider) => {
113
194
  const startTime = Date.now();
114
195
  const url = provider.buildUrl(cleanedCep);
196
+ this.log('provider:start', { provider: provider.name, cep: cleanedCep });
115
197
  const timeoutPromise = new Promise((_, reject) => {
116
198
  if (!provider.timeout)
117
199
  return;
118
200
  const timeoutId = setTimeout(() => {
119
201
  signal.removeEventListener('abort', onAbort);
120
202
  const duration = Date.now() - startTime;
121
- const error = new Error(`Timeout from ${provider.name}`);
203
+ const error = new errors_1.ProviderTimeoutError(provider.name, provider.timeout);
204
+ this.log('provider:failure', { provider: provider.name, cep: cleanedCep, error: error.message });
122
205
  this.emitter.emit('failure', { provider: provider.name, cep: cleanedCep, duration, error });
123
206
  reject(error);
124
207
  }, provider.timeout);
@@ -129,7 +212,8 @@ class CepLookup {
129
212
  .then((response) => provider.transform(response))
130
213
  .then((address) => {
131
214
  const duration = Date.now() - startTime;
132
- const sanitizedAddress = sanitizeAddress(address);
215
+ const sanitizedAddress = enrichAddress(sanitizeAddress(address));
216
+ this.log('provider:success', { provider: provider.name, cep: cleanedCep, duration });
133
217
  this.emitter.emit('success', { provider: provider.name, cep: cleanedCep, duration, address: sanitizedAddress });
134
218
  if (this.cache) {
135
219
  this.cache.set(cleanedCep, sanitizedAddress);
@@ -138,24 +222,56 @@ class CepLookup {
138
222
  })
139
223
  .catch((error) => {
140
224
  const duration = Date.now() - startTime;
141
- if (!error.message.includes('Timeout from')) {
225
+ if (!error.message.includes('Timeout from') && error.name !== 'AbortError') {
226
+ this.log('provider:failure', { provider: provider.name, cep: cleanedCep, error: error.message });
142
227
  this.emitter.emit('failure', { provider: provider.name, cep: cleanedCep, duration, error });
143
228
  }
144
229
  throw error;
145
230
  });
146
231
  return Promise.race([fetchPromise, timeoutPromise]);
232
+ };
233
+ const bestProvider = this.sortedProviders[0];
234
+ const otherProviders = this.sortedProviders.slice(1);
235
+ if (otherProviders.length === 0) {
236
+ try {
237
+ return await createProviderPromise(bestProvider);
238
+ }
239
+ finally {
240
+ controller.abort();
241
+ }
242
+ }
243
+ let staggerTimeout = null;
244
+ let triggerOthers = null;
245
+ const secondaryPromise = new Promise((resolve, reject) => {
246
+ triggerOthers = () => {
247
+ if (staggerTimeout)
248
+ clearTimeout(staggerTimeout);
249
+ if (signal.aborted)
250
+ return;
251
+ const promises = otherProviders.map(createProviderPromise);
252
+ Promise.any(promises).then(resolve).catch(reject);
253
+ };
254
+ staggerTimeout = setTimeout(triggerOthers, this.staggerDelay);
255
+ });
256
+ const primaryPromise = createProviderPromise(bestProvider).catch((err) => {
257
+ if (triggerOthers)
258
+ triggerOthers();
259
+ throw err;
147
260
  });
148
261
  try {
149
- if (promises.length === 1) {
150
- return await promises[0];
151
- }
152
- return await Promise.any(promises);
262
+ return await Promise.any([primaryPromise, secondaryPromise]);
263
+ }
264
+ catch (aggregateError) {
265
+ const errors = aggregateError.errors || [aggregateError];
266
+ throw new errors_1.AllProvidersFailedError(errors);
153
267
  }
154
268
  finally {
269
+ if (staggerTimeout)
270
+ clearTimeout(staggerTimeout);
155
271
  controller.abort();
156
272
  }
157
273
  }
158
- async lookupCeps(ceps, concurrency = 5) {
274
+ async lookupCeps(ceps, concurrency = 5, mapper) {
159
275
  if (!ceps || ceps.length === 0) {
160
276
  return [];
161
277
  }
@@ -170,7 +286,11 @@ class CepLookup {
170
286
  try {
171
287
  const address = await this.lookup(cep);
172
288
  if (address) {
173
- results[currentIndex] = { cep, data: address, provider: address.service };
289
+ results[currentIndex] = {
290
+ cep,
291
+ data: mapper ? mapper(address) : address,
292
+ provider: address.service,
293
+ };
174
294
  }
175
295
  else {
176
296
  throw new Error('No address found');
@@ -187,21 +307,3 @@ class CepLookup {
187
307
  }
188
308
  }
189
309
  exports.CepLookup = CepLookup;
190
- /**
191
- * @deprecated Use `new CepLookup(options).lookup(cep)` instead.
192
- */
193
- function lookupCep(options) {
194
- console.warn("[cep-lookup] The standalone `lookupCep` function is deprecated and will be removed in a future version. Please use `new CepLookup(options).lookup(cep)` instead.");
195
- const { cep, providers, fetcher, mapper, cache, rateLimit } = options;
196
- const cepLookup = new CepLookup({ providers, fetcher, cache, rateLimit });
197
- return cepLookup.lookup(cep, mapper);
198
- }
199
- /**
200
- * @deprecated Use `new CepLookup(options).lookupCeps(ceps)` instead.
201
- */
202
- async function lookupCeps(options) {
203
- console.warn("[cep-lookup] The standalone `lookupCeps` function is deprecated and will be removed in a future version. Please use `new CepLookup(options).lookupCeps(ceps)` instead.");
204
- const { ceps, providers, fetcher, cache, concurrency = 5, rateLimit } = options;
205
- const cepLookup = new CepLookup({ providers, fetcher, cache, rateLimit });
206
- return cepLookup.lookupCeps(ceps, concurrency);
207
- }
@@ -1,3 +1,4 @@
1
1
  export * from "./viacep";
2
2
  export * from "./brasil-api";
3
3
  export * from "./apicep";
4
+ export * from "./opencep";
@@ -17,3 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./viacep"), exports);
18
18
  __exportStar(require("./brasil-api"), exports);
19
19
  __exportStar(require("./apicep"), exports);
20
+ __exportStar(require("./opencep"), exports);
@@ -0,0 +1,10 @@
1
+ import { Provider } from "../types";
2
+ /**
3
+ * @const {Provider} openCepProvider
4
+ * @description Provider for the OpenCEP service.
5
+ * @property {string} name - "OpenCEP".
6
+ * @property {(cep: string) => string} buildUrl - Constructs the URL for OpenCEP API.
7
+ * @property {(response: any) => Address} transform - Transforms OpenCEP's response into a standardized `Address` object.
8
+ * @throws {Error} If OpenCEP response indicates an error.
9
+ */
10
+ export declare const openCepProvider: Provider;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.openCepProvider = void 0;
4
+ /**
5
+ * @const {Provider} openCepProvider
6
+ * @description Provider for the OpenCEP service.
7
+ * @property {string} name - "OpenCEP".
8
+ * @property {(cep: string) => string} buildUrl - Constructs the URL for OpenCEP API.
9
+ * @property {(response: any) => Address} transform - Transforms OpenCEP's response into a standardized `Address` object.
10
+ * @throws {Error} If OpenCEP response indicates an error.
11
+ */
12
+ exports.openCepProvider = {
13
+ name: "OpenCEP",
14
+ buildUrl: (cep) => `https://opencep.com/v1/${cep}`,
15
+ transform: (response) => {
16
+ if (!response || response.error) {
17
+ throw new Error("CEP not found");
18
+ }
19
+ // OpenCEP returns status code 404 for not found, which fetcher catches.
20
+ // But sometimes APIs return 200 with error data.
21
+ // Assuming standard JSON return based on description.
22
+ return {
23
+ cep: (response.cep || "").replace("-", ""),
24
+ state: response.uf || "",
25
+ city: response.localidade || "",
26
+ neighborhood: response.bairro || "",
27
+ street: response.logradouro || "",
28
+ service: "OpenCEP",
29
+ ibge: response.ibge || undefined,
30
+ };
31
+ },
32
+ };
@@ -23,6 +23,8 @@ exports.viaCepProvider = {
23
23
  neighborhood: response.bairro || "",
24
24
  street: response.logradouro || "",
25
25
  service: "ViaCEP",
26
+ ibge: response.ibge || undefined,
27
+ ddd: response.ddd || undefined,
26
28
  };
27
29
  },
28
30
  };
@@ -10,6 +10,8 @@ export interface Address {
10
10
  neighborhood: string;
11
11
  street: string;
12
12
  service: string;
13
+ ibge?: string;
14
+ ddd?: string;
13
15
  }
14
16
  /**
15
17
  * @interface Provider
@@ -43,14 +45,23 @@ export interface CepLookupOptions {
43
45
  fetcher?: Fetcher;
44
46
  cache?: Cache;
45
47
  rateLimit?: RateLimitOptions;
48
+ staggerDelay?: number;
49
+ /** Number of retries after all providers fail. Default: 0 */
50
+ retries?: number;
51
+ /** Base delay in ms between retries (exponential backoff). Default: 1000 */
52
+ retryDelay?: number;
53
+ /** Optional logger for debug output */
54
+ logger?: {
55
+ debug: (msg: string, data?: Record<string, unknown>) => void;
56
+ };
46
57
  }
47
58
  /**
48
59
  * @interface BulkCepResult
49
60
  * @description Represents the result for a single CEP in a bulk lookup operation.
50
61
  */
51
- export interface BulkCepResult {
62
+ export interface BulkCepResult<T = Address> {
52
63
  cep: string;
53
- data: Address | null;
64
+ data: T | null;
54
65
  provider?: string;
55
66
  error?: Error;
56
67
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@eusilvio/cep-lookup",
3
- "version": "2.3.2",
4
- "description": "A modern, flexible, and agnostic CEP lookup library written in TypeScript.",
3
+ "version": "2.5.1",
4
+ "description": "A agnostic, performant and flexible CEP lookup library with race strategy and caching.",
5
5
  "license": "MIT",
6
6
  "author": "Silvio Souza",
7
7
  "repository": {
@@ -34,7 +34,8 @@
34
34
  "scripts": {
35
35
  "clean": "rm -rf dist tsconfig.tsbuildinfo",
36
36
  "build": "npm run clean && tsc --emitDeclarationOnly --outDir dist && esbuild src/index.ts src/providers/index.ts --bundle --platform=neutral --format=cjs --outdir=dist --out-extension:.js=.cjs --minify && esbuild src/index.ts src/providers/index.ts --bundle --platform=neutral --format=esm --outdir=dist --out-extension:.js=.mjs --minify",
37
- "test": "jest"
37
+ "test": "jest",
38
+ "test:html": "npx http-server . -o examples/index.html -c-1"
38
39
  },
39
40
  "devDependencies": {
40
41
  "@types/jest": "^30.0.0",
@@ -1 +0,0 @@
1
- {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/typescript/lib/lib.es2021.full.d.ts","../src/cache/index.ts","../src/types.ts","../src/index.ts","../src/providers/apicep.ts","../src/providers/brasil-api.ts","../src/providers/viacep.ts","../src/providers/index.ts","../../../node_modules/@types/aria-query/index.d.ts","../../../node_modules/@babel/types/lib/index.d.ts","../../../node_modules/@types/babel__generator/index.d.ts","../../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../../node_modules/@types/babel__template/index.d.ts","../../../node_modules/@types/babel__traverse/index.d.ts","../../../node_modules/@types/babel__core/index.d.ts","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/istanbul-lib-report/index.d.ts","../../../node_modules/@types/istanbul-reports/index.d.ts","../../../node_modules/@jest/expect-utils/build/index.d.ts","../../../node_modules/chalk/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/symbols/symbols.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/symbols/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/any/any.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/any/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped-key.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/async-iterator/async-iterator.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/async-iterator/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/readonly/readonly.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/readonly/readonly-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/readonly/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/readonly-optional.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/constructor/constructor.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/constructor/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/literal/literal.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/literal/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/enum/enum.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/enum/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/function/function.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/function/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/computed/computed.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/computed/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/never/never.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/never/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-evaluated.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intersect/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/union/union-type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/union/union-evaluated.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/union/union.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/union/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/recursive/recursive.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/recursive/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/unsafe/unsafe.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/unsafe/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/ref/ref.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/ref/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/tuple/tuple.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/tuple/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/error/error.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/error/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/string/string.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/string/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/boolean/boolean.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/boolean/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/number/number.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/number/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/integer/integer.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/integer/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/bigint/bigint.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/bigint/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/parse.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/finite.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/generate.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/syntax.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/pattern.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/template-literal.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/union.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/template-literal/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-property-keys.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-from-mapped-key.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/indexed/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/iterator/iterator.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/iterator/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/promise/promise.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/promise/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/sets/set.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/sets/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/mapped/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/optional/optional.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/optional/optional-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/optional/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/awaited/awaited.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/awaited/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-property-keys.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-property-entries.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/keyof/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/omit/omit-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/omit/omit.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/omit/omit-from-mapped-key.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/omit/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/pick/pick-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/pick/pick.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/pick/pick-from-mapped-key.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/pick/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/null/null.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/null/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/symbol/symbol.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/symbol/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/undefined/undefined.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/undefined/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/partial/partial.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/partial/partial-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/partial/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/regexp/regexp.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/regexp/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/record/record.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/record/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/required/required.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/required/required-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/required/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/transform/transform.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/transform/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/module/compute.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/module/infer.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/module/module.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/module/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/not/not.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/not/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/static/static.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/static/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/object/object.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/object/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/helpers/helpers.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/helpers/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/array/array.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/array/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/date/date.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/date/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/uint8array/uint8array.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/uint8array/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/unknown/unknown.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/unknown/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/void/void.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/void/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/schema/schema.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/schema/anyschema.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/schema/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/clone/type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/clone/value.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/clone/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/create/type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/create/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/argument/argument.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/argument/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/guard/kind.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/guard/type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/guard/value.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/guard/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/patterns/patterns.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/patterns/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/registry/format.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/registry/type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/registry/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/composite/composite.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/composite/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/const/const.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/const/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/constructor-parameters.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude-from-template-literal.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/exclude/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extends/extends-check.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extends/extends-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extends/extends.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extends/extends-from-mapped-key.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extends/extends-undefined.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extends/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extract/extract-from-template-literal.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extract/extract.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extract/extract-from-mapped-result.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/extract/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/instance-type/instance-type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/instance-type/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/instantiate/instantiate.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/instantiate/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intrinsic/intrinsic-from-mapped-key.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intrinsic/intrinsic.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intrinsic/capitalize.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intrinsic/lowercase.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intrinsic/uncapitalize.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intrinsic/uppercase.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/intrinsic/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/parameters/parameters.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/parameters/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/rest/rest.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/rest/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/return-type/return-type.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/return-type/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/type/json.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/type/javascript.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/type/type/index.d.ts","../../../node_modules/@sinclair/typebox/build/cjs/index.d.ts","../../../node_modules/@jest/schemas/build/index.d.ts","../../../node_modules/jest-diff/node_modules/pretty-format/build/index.d.ts","../../../node_modules/jest-diff/build/index.d.ts","../../../node_modules/jest-matcher-utils/build/index.d.ts","../../../node_modules/jest-mock/build/index.d.ts","../../../node_modules/expect/build/index.d.ts","../../../node_modules/@types/jest/node_modules/pretty-format/build/index.d.ts","../../../node_modules/@types/jest/index.d.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/utility.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client-stats.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/h2c-client.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/path/posix.d.ts","../../../node_modules/@types/node/path/win32.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/quic.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/test/reporters.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/util/types.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/index.d.ts","../../../node_modules/parse5/dist/common/html.d.ts","../../../node_modules/parse5/dist/common/token.d.ts","../../../node_modules/parse5/dist/common/error-codes.d.ts","../../../node_modules/parse5/dist/tokenizer/preprocessor.d.ts","../../../node_modules/entities/dist/commonjs/generated/decode-data-html.d.ts","../../../node_modules/entities/dist/commonjs/generated/decode-data-xml.d.ts","../../../node_modules/entities/dist/commonjs/decode-codepoint.d.ts","../../../node_modules/entities/dist/commonjs/decode.d.ts","../../../node_modules/entities/decode.d.ts","../../../node_modules/parse5/dist/tokenizer/index.d.ts","../../../node_modules/parse5/dist/tree-adapters/interface.d.ts","../../../node_modules/parse5/dist/parser/open-element-stack.d.ts","../../../node_modules/parse5/dist/parser/formatting-element-list.d.ts","../../../node_modules/parse5/dist/parser/index.d.ts","../../../node_modules/parse5/dist/tree-adapters/default.d.ts","../../../node_modules/parse5/dist/serializer/index.d.ts","../../../node_modules/parse5/dist/common/foreign-content.d.ts","../../../node_modules/parse5/dist/index.d.ts","../../../node_modules/@types/tough-cookie/index.d.ts","../../../node_modules/@types/jsdom/base.d.ts","../../../node_modules/@types/jsdom/index.d.ts","../../../node_modules/@types/prop-types/index.d.ts","../../../node_modules/@types/react/global.d.ts","../../../node_modules/csstype/index.d.ts","../../../node_modules/@types/react/index.d.ts","../../../node_modules/@types/react-dom/index.d.ts","../../../node_modules/@types/stack-utils/index.d.ts","../../../node_modules/@types/yargs-parser/index.d.ts","../../../node_modules/@types/yargs/index.d.ts"],"fileIdsList":[[67,280,342,350,354,357,359,360,361,373],[280,342,350,354,357,359,360,361,373],[269,280,342,350,354,357,359,360,361,373],[79,81,85,88,90,92,94,96,98,102,106,110,112,114,116,118,120,122,124,126,128,130,138,143,145,147,149,151,154,156,161,165,169,171,173,175,178,180,182,185,187,191,193,195,197,199,201,203,205,207,209,212,215,217,219,223,225,228,230,232,234,238,244,248,250,252,259,261,263,265,268,280,342,350,354,357,359,360,361,373],[79,212,280,342,350,354,357,359,360,361,373],[80,280,342,350,354,357,359,360,361,373],[218,280,342,350,354,357,359,360,361,373],[79,195,199,212,280,342,350,354,357,359,360,361,373],[200,280,342,350,354,357,359,360,361,373],[79,195,212,280,342,350,354,357,359,360,361,373],[84,280,342,350,354,357,359,360,361,373],[100,106,110,116,147,199,212,280,342,350,354,357,359,360,361,373],[155,280,342,350,354,357,359,360,361,373],[129,280,342,350,354,357,359,360,361,373],[123,280,342,350,354,357,359,360,361,373],[213,214,280,342,350,354,357,359,360,361,373],[212,280,342,350,354,357,359,360,361,373],[102,106,143,149,161,197,199,212,280,342,350,354,357,359,360,361,373],[229,280,342,350,354,357,359,360,361,373],[78,212,280,342,350,354,357,359,360,361,373],[99,280,342,350,354,357,359,360,361,373],[81,88,94,98,102,118,130,171,173,175,197,199,203,205,207,212,280,342,350,354,357,359,360,361,373],[231,280,342,350,354,357,359,360,361,373],[92,102,118,212,280,342,350,354,357,359,360,361,373],[233,280,342,350,354,357,359,360,361,373],[79,88,90,154,195,199,212,280,342,350,354,357,359,360,361,373],[91,280,342,350,354,357,359,360,361,373],[216,280,342,350,354,357,359,360,361,373],[210,280,342,350,354,357,359,360,361,373],[202,280,342,350,354,357,359,360,361,373],[79,94,212,280,342,350,354,357,359,360,361,373],[95,280,342,350,354,357,359,360,361,373],[119,280,342,350,354,357,359,360,361,373],[151,197,212,236,280,342,350,354,357,359,360,361,373],[138,212,236,280,342,350,354,357,359,360,361,373],[102,110,138,151,195,199,212,235,237,280,342,350,354,357,359,360,361,373],[235,236,237,280,342,350,354,357,359,360,361,373],[120,212,280,342,350,354,357,359,360,361,373],[94,151,197,199,212,241,280,342,350,354,357,359,360,361,373],[151,197,212,241,280,342,350,354,357,359,360,361,373],[110,151,195,199,212,240,242,280,342,350,354,357,359,360,361,373],[239,240,241,242,243,280,342,350,354,357,359,360,361,373],[151,197,212,246,280,342,350,354,357,359,360,361,373],[138,212,246,280,342,350,354,357,359,360,361,373],[102,110,138,151,195,199,212,245,247,280,342,350,354,357,359,360,361,373],[245,246,247,280,342,350,354,357,359,360,361,373],[97,280,342,350,354,357,359,360,361,373],[220,221,222,280,342,350,354,357,359,360,361,373],[79,81,85,88,92,94,98,100,102,106,110,112,114,116,118,122,124,126,128,130,138,145,147,151,154,171,173,175,180,182,187,191,193,197,201,203,205,207,209,212,219,280,342,350,354,357,359,360,361,373],[79,81,85,88,92,94,98,100,102,106,110,112,114,116,118,120,122,124,126,128,130,138,145,147,151,154,171,173,175,180,182,187,191,193,197,201,203,205,207,209,212,219,280,342,350,354,357,359,360,361,373],[102,197,212,280,342,350,354,357,359,360,361,373],[198,280,342,350,354,357,359,360,361,373],[139,140,141,142,280,342,350,354,357,359,360,361,373],[141,151,197,199,212,280,342,350,354,357,359,360,361,373],[139,143,151,197,212,280,342,350,354,357,359,360,361,373],[94,110,126,128,138,212,280,342,350,354,357,359,360,361,373],[100,102,106,110,112,116,118,139,140,142,151,197,199,201,212,280,342,350,354,357,359,360,361,373],[249,280,342,350,354,357,359,360,361,373],[92,102,212,280,342,350,354,357,359,360,361,373],[251,280,342,350,354,357,359,360,361,373],[85,88,90,92,98,106,110,118,145,147,154,182,197,201,207,212,219,280,342,350,354,357,359,360,361,373],[127,280,342,350,354,357,359,360,361,373],[103,104,105,280,342,350,354,357,359,360,361,373],[88,102,103,154,212,280,342,350,354,357,359,360,361,373],[102,103,212,280,342,350,354,357,359,360,361,373],[212,254,280,342,350,354,357,359,360,361,373],[253,254,255,256,257,258,280,342,350,354,357,359,360,361,373],[94,151,197,199,212,254,280,342,350,354,357,359,360,361,373],[94,110,138,151,212,253,280,342,350,354,357,359,360,361,373],[144,280,342,350,354,357,359,360,361,373],[157,158,159,160,280,342,350,354,357,359,360,361,373],[151,158,197,199,212,280,342,350,354,357,359,360,361,373],[106,110,112,118,149,197,199,201,212,280,342,350,354,357,359,360,361,373],[94,100,110,116,126,151,157,159,199,212,280,342,350,354,357,359,360,361,373],[93,280,342,350,354,357,359,360,361,373],[82,83,150,280,342,350,354,357,359,360,361,373],[79,197,212,280,342,350,354,357,359,360,361,373],[82,83,85,88,92,94,96,98,106,110,118,143,145,147,149,154,197,199,201,212,280,342,350,354,357,359,360,361,373],[85,88,92,96,98,100,102,106,110,116,118,143,145,154,156,161,165,169,178,182,185,187,197,199,201,212,280,342,350,354,357,359,360,361,373],[190,280,342,350,354,357,359,360,361,373],[85,88,92,96,98,106,110,112,116,118,145,154,182,195,197,199,201,212,280,342,350,354,357,359,360,361,373],[79,188,189,195,197,212,280,342,350,354,357,359,360,361,373],[101,280,342,350,354,357,359,360,361,373],[192,280,342,350,354,357,359,360,361,373],[170,280,342,350,354,357,359,360,361,373],[125,280,342,350,354,357,359,360,361,373],[196,280,342,350,354,357,359,360,361,373],[79,88,154,195,199,212,280,342,350,354,357,359,360,361,373],[162,163,164,280,342,350,354,357,359,360,361,373],[151,163,197,212,280,342,350,354,357,359,360,361,373],[151,163,197,199,212,280,342,350,354,357,359,360,361,373],[94,100,106,110,112,116,143,151,162,164,197,199,212,280,342,350,354,357,359,360,361,373],[152,153,280,342,350,354,357,359,360,361,373],[151,152,197,280,342,350,354,357,359,360,361,373],[79,151,153,199,212,280,342,350,354,357,359,360,361,373],[260,280,342,350,354,357,359,360,361,373],[98,102,118,212,280,342,350,354,357,359,360,361,373],[176,177,280,342,350,354,357,359,360,361,373],[151,176,197,199,212,280,342,350,354,357,359,360,361,373],[88,90,94,100,106,110,112,116,122,124,126,128,130,151,154,171,173,175,177,197,199,212,280,342,350,354,357,359,360,361,373],[224,280,342,350,354,357,359,360,361,373],[166,167,168,280,342,350,354,357,359,360,361,373],[151,167,197,212,280,342,350,354,357,359,360,361,373],[151,167,197,199,212,280,342,350,354,357,359,360,361,373],[94,100,106,110,112,116,143,151,166,168,197,199,212,280,342,350,354,357,359,360,361,373],[146,280,342,350,354,357,359,360,361,373],[89,280,342,350,354,357,359,360,361,373],[88,154,212,280,342,350,354,357,359,360,361,373],[86,87,280,342,350,354,357,359,360,361,373],[86,151,197,280,342,350,354,357,359,360,361,373],[79,87,151,199,212,280,342,350,354,357,359,360,361,373],[181,280,342,350,354,357,359,360,361,373],[79,81,94,96,102,110,122,124,126,128,138,180,195,197,199,212,280,342,350,354,357,359,360,361,373],[111,280,342,350,354,357,359,360,361,373],[115,280,342,350,354,357,359,360,361,373],[79,114,195,212,280,342,350,354,357,359,360,361,373],[179,280,342,350,354,357,359,360,361,373],[226,227,280,342,350,354,357,359,360,361,373],[183,184,280,342,350,354,357,359,360,361,373],[151,183,197,199,212,280,342,350,354,357,359,360,361,373],[88,90,94,100,106,110,112,116,122,124,126,128,130,151,154,171,173,175,184,197,199,212,280,342,350,354,357,359,360,361,373],[262,280,342,350,354,357,359,360,361,373],[106,110,118,212,280,342,350,354,357,359,360,361,373],[264,280,342,350,354,357,359,360,361,373],[98,102,212,280,342,350,354,357,359,360,361,373],[81,85,92,94,96,98,106,110,112,116,118,122,124,126,128,130,138,145,147,171,173,175,180,182,193,197,201,203,205,207,209,210,280,342,350,354,357,359,360,361,373],[210,211,280,342,350,354,357,359,360,361,373],[79,280,342,350,354,357,359,360,361,373],[148,280,342,350,354,357,359,360,361,373],[194,280,342,350,354,357,359,360,361,373],[85,88,92,96,98,102,106,110,112,114,116,118,145,147,154,182,187,191,193,197,199,201,212,280,342,350,354,357,359,360,361,373],[121,280,342,350,354,357,359,360,361,373],[172,280,342,350,354,357,359,360,361,373],[78,280,342,350,354,357,359,360,361,373],[94,110,120,122,124,126,128,130,131,138,280,342,350,354,357,359,360,361,373],[94,110,120,124,131,132,138,199,280,342,350,354,357,359,360,361,373],[131,132,133,134,135,136,137,280,342,350,354,357,359,360,361,373],[120,280,342,350,354,357,359,360,361,373],[120,138,280,342,350,354,357,359,360,361,373],[94,110,122,124,126,130,138,199,280,342,350,354,357,359,360,361,373],[79,94,102,110,122,124,126,128,130,134,195,199,212,280,342,350,354,357,359,360,361,373],[94,110,136,195,199,280,342,350,354,357,359,360,361,373],[186,280,342,350,354,357,359,360,361,373],[117,280,342,350,354,357,359,360,361,373],[266,267,280,342,350,354,357,359,360,361,373],[85,92,98,130,145,147,156,173,175,180,203,205,209,212,219,234,250,252,261,265,266,280,342,350,354,357,359,360,361,373],[81,88,90,94,96,102,106,110,112,114,116,118,122,124,126,128,138,143,151,154,161,165,169,171,178,182,185,187,191,193,197,201,207,212,230,232,238,244,248,259,263,280,342,350,354,357,359,360,361,373],[204,280,342,350,354,357,359,360,361,373],[174,280,342,350,354,357,359,360,361,373],[107,108,109,280,342,350,354,357,359,360,361,373],[88,102,107,154,212,280,342,350,354,357,359,360,361,373],[102,107,212,280,342,350,354,357,359,360,361,373],[206,280,342,350,354,357,359,360,361,373],[113,280,342,350,354,357,359,360,361,373],[208,280,342,350,354,357,359,360,361,373],[67,68,69,70,71,280,342,350,354,357,359,360,361,373],[67,69,280,342,350,354,357,359,360,361,373],[73,280,342,350,354,357,359,360,361,373],[74,280,342,350,354,357,359,360,361,373],[271,275,280,342,350,354,357,359,360,361,373],[270,280,342,350,354,357,359,360,361,373],[280,342,350,353,354,357,359,360,361,373,394,398,416,417,419],[280,342,350,354,357,359,360,361,373,418],[280,339,340,342,350,354,357,359,360,361,373],[280,341,342,350,354,357,359,360,361,373],[342,350,354,357,359,360,361,373],[280,342,350,354,357,359,360,361,373,381],[280,342,343,348,350,353,354,357,359,360,361,363,373,378,390],[280,342,343,344,350,353,354,357,359,360,361,373],[280,342,345,350,354,357,359,360,361,373,391],[280,342,346,347,350,354,357,359,360,361,364,373],[280,342,347,350,354,357,359,360,361,373,378,387],[280,342,348,350,353,354,357,359,360,361,363,373],[280,341,342,349,350,354,357,359,360,361,373],[280,342,350,351,354,357,359,360,361,373],[280,342,350,352,353,354,357,359,360,361,373],[280,341,342,350,353,354,357,359,360,361,373],[280,342,350,353,354,355,357,359,360,361,373,378,390],[280,342,350,353,354,355,357,359,360,361,373,378,381],[280,329,342,350,353,354,356,357,359,360,361,363,373,378,390],[280,342,350,353,354,356,357,359,360,361,363,373,378,387,390],[280,342,350,354,356,357,358,359,360,361,373,378,387,390],[278,279,280,281,282,283,284,285,286,287,288,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397],[280,342,350,353,354,357,359,360,361,373],[280,342,350,354,357,359,361,373],[280,342,350,354,357,359,360,361,362,373,390],[280,342,350,353,354,357,359,360,361,363,373,378],[280,342,350,354,357,359,360,361,364,373],[280,342,350,354,357,359,360,361,365,373],[280,342,350,353,354,357,359,360,361,368,373],[280,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397],[280,342,350,354,357,359,360,361,370,373],[280,342,350,354,357,359,360,361,371,373],[280,342,347,350,354,357,359,360,361,363,373,381],[280,342,350,353,354,357,359,360,361,373,374],[280,342,350,354,357,359,360,361,373,375,391,394],[280,342,350,353,354,357,359,360,361,373,378,380,381],[280,342,350,354,357,359,360,361,373,379,381],[280,342,350,354,357,359,360,361,373,381,391],[280,342,350,354,357,359,360,361,373,382],[280,339,342,350,354,357,359,360,361,373,378,384],[280,342,350,354,357,359,360,361,373,378,383],[280,342,350,353,354,357,359,360,361,373,385,386],[280,342,350,354,357,359,360,361,373,385,386],[280,342,347,350,354,357,359,360,361,363,373,378,387],[280,342,350,354,357,359,360,361,373,388],[280,342,350,354,357,359,360,361,363,373,389],[280,342,350,354,356,357,359,360,361,371,373,390],[280,342,350,354,357,359,360,361,373,391,392],[280,342,347,350,354,357,359,360,361,373,392],[280,342,350,354,357,359,360,361,373,378,393],[280,342,350,354,357,359,360,361,362,373,394],[280,342,350,354,357,359,360,361,373,395],[280,342,345,350,354,357,359,360,361,373],[280,342,347,350,354,357,359,360,361,373],[280,342,350,354,357,359,360,361,373,391],[280,329,342,350,354,357,359,360,361,373],[280,342,350,354,357,359,360,361,373,390],[280,342,350,354,357,359,360,361,373,396],[280,342,350,354,357,359,360,361,368,373],[280,342,350,354,357,359,360,361,373,386],[280,329,342,350,353,354,355,357,359,360,361,368,373,378,381,390,393,394,396],[280,342,350,354,357,359,360,361,373,378,397],[280,342,350,354,357,359,360,361,373,423],[280,342,350,354,357,359,360,361,373,420,421,422],[280,342,350,354,357,359,360,361,373,426],[280,342,350,354,357,359,360,361,373,406],[280,342,350,354,357,359,360,361,373,403,404,405],[76,273,274,280,342,350,354,357,359,360,361,373],[271,280,342,350,354,357,359,360,361,373],[77,272,280,342,350,354,357,359,360,361,373],[280,342,350,354,357,359,360,361,373,400],[280,342,350,354,357,359,360,361,373,399,400],[280,342,350,354,357,359,360,361,373,399],[280,342,350,354,357,359,360,361,373,399,400,401,408,409,412,413,414,415],[280,342,350,354,357,359,360,361,373,400,409],[280,342,350,354,357,359,360,361,373,399,400,401,408,409,410,411],[280,342,350,354,357,359,360,361,373,399,409],[280,342,350,354,357,359,360,361,373,409,413],[280,342,350,354,357,359,360,361,373,400,401,402,407],[280,342,350,354,357,359,360,361,373,401],[280,342,350,354,357,359,360,361,373,399,400,409],[280,295,298,301,302,342,350,354,357,359,360,361,373,390],[280,298,342,350,354,357,359,360,361,373,378,390],[280,298,302,342,350,354,357,359,360,361,373,390],[280,342,350,354,357,359,360,361,373,378],[280,292,342,350,354,357,359,360,361,373],[280,296,342,350,354,357,359,360,361,373],[280,294,295,298,342,350,354,357,359,360,361,373,390],[280,342,350,354,357,359,360,361,363,373,387],[280,342,350,354,357,359,360,361,373,398],[280,292,342,350,354,357,359,360,361,373,398],[280,294,298,342,350,354,357,359,360,361,363,373,390],[280,289,290,291,293,297,342,350,353,354,357,359,360,361,373,378,390],[280,298,306,314,342,350,354,357,359,360,361,373],[280,290,296,342,350,354,357,359,360,361,373],[280,298,323,324,342,350,354,357,359,360,361,373],[280,290,293,298,342,350,354,357,359,360,361,373,381,390,398],[280,298,342,350,354,357,359,360,361,373],[280,294,298,342,350,354,357,359,360,361,373,390],[280,289,342,350,354,357,359,360,361,373],[280,292,293,294,296,297,298,299,300,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,324,325,326,327,328,342,350,354,357,359,360,361,373],[280,298,316,319,342,350,354,357,359,360,361,373],[280,298,306,307,308,342,350,354,357,359,360,361,373],[280,296,298,307,309,342,350,354,357,359,360,361,373],[280,297,342,350,354,357,359,360,361,373],[280,290,292,298,342,350,354,357,359,360,361,373],[280,298,302,307,309,342,350,354,357,359,360,361,373],[280,302,342,350,354,357,359,360,361,373],[280,296,298,301,342,350,354,357,359,360,361,373,390],[280,290,294,298,306,342,350,354,357,359,360,361,373],[280,298,316,342,350,354,357,359,360,361,373],[280,309,342,350,354,357,359,360,361,373],[280,292,298,323,342,350,354,357,359,360,361,373,381,396,398],[60,280,342,350,354,357,359,360,361,373],[59,60,280,342,350,354,357,359,360,361,373],[62,63,64,280,342,350,354,357,359,360,361,373],[59,280,342,350,354,357,359,360,361,373]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"4a66df3ab5de5cfcda11538cffddd67ff6a174e003788e270914c1e0248483cf","impliedFormat":1},{"version":"12850149476b3edfac5efa1063eafa6a188bfd7446ca7c983fcc381552971803","signature":"43f37477e88600586fbee697ad4233ffe9c119dd6e9735c13e2c43aa1f59cef7"},{"version":"d8117cc8595df21e440379820fc3cd31d56039b0d6450568b357edcf2f5f6525","signature":"e143c02d1acf778046492767e798ab3417fa0a8cd0ca18b950ffda6c70f2a6c3"},{"version":"c5e64e0c0c8b4f2d83173cd0f72fde473c51db1f4375e5021fd019e8c051bc48","signature":"29b68cc8047a17664483932bbd8d5304b9148468133a293950a4bf66fcfa99df"},{"version":"3c66c61ea4ceadf18c6211177a2e1aaaf7b4e5ce33acbf3d204d460d8cb8ee53","signature":"1c0a4a3ff278c6675c65dea00fa006b88dec7b3c3618145414bfd1886ba8210d"},{"version":"dad5e003bc57c95f6c965ca190075ab79565c6bd462e8aad7b854ec8d4838313","signature":"e534a0d4dc76fed916d8e2d19fdf0b16ba87cb3f22f586ddeeed4d3685762a9e"},{"version":"60918f459b4b31b1febc12e4efb915d2cc332b0b1832864c9155f20e208a8eac","signature":"e5fa96d16e623285b0b15ab53bfbfb8478ec688b75fe5673cd70708065b81b6d"},{"version":"d63f228102e5a6c548ce4ae03a39973572304bf86037982e75b471dabbeb332d","signature":"4dbcca0cd7d5571029b693b8310d1ac0dd2520b05608326c1fa72e2020ab12f1"},{"version":"ae77d81a5541a8abb938a0efedf9ac4bea36fb3a24cc28cfa11c598863aba571","impliedFormat":1},{"version":"c2c2a861a338244d7dd700d0c52a78916b4bb75b98fc8ca5e7c501899fc03796","impliedFormat":1},{"version":"b6d03c9cfe2cf0ba4c673c209fcd7c46c815b2619fd2aad59fc4229aaef2ed43","impliedFormat":1},{"version":"adb467429462e3891de5bb4a82a4189b92005d61c7f9367c089baf03997c104e","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"13b77ab19ef7aadd86a1e54f2f08ea23a6d74e102909e3c00d31f231ed040f62","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","impliedFormat":1},{"version":"a4809f4d92317535e6b22b01019437030077a76fec1d93b9881c9ed4738fcc54","impliedFormat":1},{"version":"5f53fa0bd22096d2a78533f94e02c899143b8f0f9891a46965294ee8b91a9434","impliedFormat":1},{"version":"d934a06d62d87a7e2d75a3586b5f9fb2d94d5fe4725ff07252d5f4651485100f","impliedFormat":1},{"version":"0d14fa22c41fdc7277e6f71473b20ebc07f40f00e38875142335d5b63cdfc9d2","impliedFormat":1},{"version":"b104e2da53231a529373174880dc0abfbc80184bb473b6bf2a9a0746bebb663d","impliedFormat":1},{"version":"ee91a5fbbd1627c632df89cce5a4054f9cc6e7413ebdccc82b27c7ffeedf982d","impliedFormat":1},{"version":"85c8731ca285809fc248abf21b921fe00a67b6121d27060d6194eddc0e042b1a","impliedFormat":1},{"version":"6bac0cbdf1bc85ae707f91fdf037e1b600e39fb05df18915d4ecab04a1e59d3c","impliedFormat":1},{"version":"5688b21a05a2a11c25f56e53359e2dcda0a34cb1a582dbeb1eaacdeca55cb699","impliedFormat":1},{"version":"35558bf15f773acbe3ed5ac07dd27c278476630d85245f176e85f9a95128b6e0","impliedFormat":1},{"version":"951f54e4a63e82b310439993170e866dba0f28bb829cbc14d2f2103935cea381","impliedFormat":1},{"version":"4454a999dc1676b866450e8cddd9490be87b391b5526a33f88c7e45129d30c5d","impliedFormat":1},{"version":"99013139312db746c142f27515a14cdebb61ff37f20ee1de6a58ce30d36a4f0d","impliedFormat":1},{"version":"71da852f38ac50d2ae43a7b7f2899b10a2000727fee293b0b72123ed2e7e2ad6","impliedFormat":1},{"version":"74dd1096fca1fec76b951cf5eacf609feaf919e67e13af02fed49ec3b77ea797","impliedFormat":1},{"version":"a0691153ccf5aa1b687b1500239722fff4d755481c20e16d9fcd7fb2d659c7c7","impliedFormat":1},{"version":"fe2201d73ae56b1b4946c10e18549a93bf4c390308af9d422f1ffd3c7989ffc8","impliedFormat":1},{"version":"cad63667f992149cee390c3e98f38c00eee56a2dae3541c6d9929641b835f987","impliedFormat":1},{"version":"f497cad2b33824d8b566fa276cfe3561553f905fdc6b40406c92bcfcaec96552","impliedFormat":1},{"version":"eb58c4dbc6fec60617d80f8ccf23900a64d3190fda7cfb2558b389506ec69be0","impliedFormat":1},{"version":"578929b1c1e3adaed503c0a0f9bda8ba3fea598cc41ad5c38932f765684d9888","impliedFormat":1},{"version":"7cc9d600b2070b1e5c220044a8d5a58b40da1c11399b6c8968711de9663dc6b2","impliedFormat":1},{"version":"45f36cf09d3067cd98b39a7d430e0e531f02911dd6d63b6d784b1955eef86435","impliedFormat":1},{"version":"80419a23b4182c256fa51d71cb9c4d872256ca6873701ceabbd65f8426591e49","impliedFormat":1},{"version":"5aa046aaab44da1a63d229bd67a7a1344afbd6f64db20c2bbe3981ceb2db3b07","impliedFormat":1},{"version":"ed9ad5b51c6faf9d6f597aa0ab11cb1d3a361c51ba59d1220557ef21ad5b0146","impliedFormat":1},{"version":"73db7984e8a35e6b48e3879a6d024803dd990022def2750b3c23c01eb58bc30f","impliedFormat":1},{"version":"c9ecb910b3b4c0cf67bc74833fc41585141c196b5660d2eb3a74cfffbf5aa266","impliedFormat":1},{"version":"33dcfba8a7e4acbe23974d342c44c36d7382c3d1d261f8aef28261a7a5df2969","impliedFormat":1},{"version":"de26700eb7277e8cfdde32ebb21b3d9ad1d713b64fdc2019068b857611e8f0c4","impliedFormat":1},{"version":"e481bd2c07c8e93eb58a857a9e66f22cb0b5ddfd86bbf273816fd31ef3a80613","impliedFormat":1},{"version":"ef156ba4043f6228d37645d6d9c6230a311e1c7a86669518d5f2ebc26e6559bf","impliedFormat":1},{"version":"457fd1e6d6f359d7fa2ca453353f4317efccae5c902b13f15c587597015212bc","impliedFormat":1},{"version":"473b2b42af720ebdb539988c06e040fd9600facdeb23cb297d72ee0098d8598f","impliedFormat":1},{"version":"22bc373ca556de33255faaddb373fec49e08336638958ad17fbd6361c7461eed","impliedFormat":1},{"version":"b3d58358675095fef03ec71bddc61f743128682625f1336df2fc31e29499ab25","impliedFormat":1},{"version":"5b1ef94b03042629c76350fe18be52e17ab70f1c3be8f606102b30a5cd86c1b3","impliedFormat":1},{"version":"a7b6046c44d5fda21d39b3266805d37a2811c2f639bf6b40a633b9a5fb4f5d88","impliedFormat":1},{"version":"80b036a132f3def4623aad73d526c6261dcae3c5f7013857f9ecf6589b72951f","impliedFormat":1},{"version":"0a347c2088c3b1726b95ccde77953bede00dd9dd2fda84585fa6f9f6e9573c18","impliedFormat":1},{"version":"8cc3abb4586d574a3faeea6747111b291e0c9981003a0d72711351a6bcc01421","impliedFormat":1},{"version":"0a516adfde610035e31008b170da29166233678216ef3646822c1b9af98879da","impliedFormat":1},{"version":"70d48a1faa86f67c9cb8a39babc5049246d7c67b6617cd08f64e29c055897ca9","impliedFormat":1},{"version":"df10dc6fe1c49e2f94be9d7d1e625aeb66e5eb90b2e0af1f378bfdfa5313155b","impliedFormat":1},{"version":"082b818038423de54be877cebdb344a2e3cf3f6abcfc48218d8acf95c030426a","impliedFormat":1},{"version":"813514ef625cb8fc3befeec97afddfb3b80b80ced859959339d99f3ad538d8fe","impliedFormat":1},{"version":"039cd54028eb988297e189275764df06c18f9299b14c063e93bd3f30c046fee6","impliedFormat":1},{"version":"e91cfd040e6da28427c5c4396912874902c26605240bdc3457cc75b6235a80f2","impliedFormat":1},{"version":"b4347f0b45e4788c18241ac4dee20ceab96d172847f1c11d42439d3de3c09a3e","impliedFormat":1},{"version":"16fe6721dc0b4144a0cdcef98857ee19025bf3c2a3cc210bcd0b9d0e25f7cec8","impliedFormat":1},{"version":"346d903799e8ea99e9674ba5745642d47c0d77b003cc7bb93e1d4c21c9e37101","impliedFormat":1},{"version":"3997421bb1889118b1bbfc53dd198c3f653bf566fd13c663e02eb08649b985c4","impliedFormat":1},{"version":"2d1ac54184d897cb5b2e732d501fa4591f751678717fd0c1fd4a368236b75cba","impliedFormat":1},{"version":"bade30041d41945c54d16a6ec7046fba6d1a279aade69dfdef9e70f71f2b7226","impliedFormat":1},{"version":"56fbea100bd7dd903dc49a1001995d3c6eee10a419c66a79cdb194bff7250eb7","impliedFormat":1},{"version":"fe8d26b2b3e519e37ceea31b1790b17d7c5ab30334ca2b56d376501388ba80d6","impliedFormat":1},{"version":"37ad0a0c2b296442072cd928d55ef6a156d50793c46c2e2497da1c2750d27c1e","impliedFormat":1},{"version":"be93d07586d09e1b6625e51a1591d6119c9f1cbd95718497636a406ec42babee","impliedFormat":1},{"version":"a062b507ed5fc23fbc5850fd101bc9a39e9a0940bb52a45cd4624176337ad6b8","impliedFormat":1},{"version":"cf01f601ef1e10b90cad69312081ce0350f26a18330913487a26d6d4f7ce5a73","impliedFormat":1},{"version":"a9de7b9a5deaed116c9c89ad76fdcc469226a22b79c80736de585af4f97b17cd","impliedFormat":1},{"version":"5bde81e8b0efb2d977c6795f9425f890770d54610764b1d8df340ce35778c4f8","impliedFormat":1},{"version":"20fd0402351907669405355eeae8db00b3cf0331a3a86d8142f7b33805174f57","impliedFormat":1},{"version":"da6949af729eca1ec1fe867f93a601988b5b206b6049c027d0c849301d20af6f","impliedFormat":1},{"version":"7008f240ea3a5a344be4e5f9b5dbf26721aad3c5cfef5ff79d133fa7450e48fa","impliedFormat":1},{"version":"eb13c8624f5747a845aea0df1dfde0f2b8f5ed90ca3bc550b12777797cb1b1e3","impliedFormat":1},{"version":"2452fc0f47d3b5b466bda412397831dd5138e62f77aa5e11270e6ca3ecb8328d","impliedFormat":1},{"version":"33c2ebbdd9a62776ca0091a8d1f445fa2ea4b4f378bc92f524031a70dfbeec86","impliedFormat":1},{"version":"3ac3a5b34331a56a3f76de9baf619def3f3073961ce0a012b6ffa72cf8a91f1f","impliedFormat":1},{"version":"d5e9d32cc9813a5290a17492f554999e33f1aa083a128d3e857779548537a778","impliedFormat":1},{"version":"776f49489fa2e461b40370e501d8e775ddb32433c2d1b973f79d9717e1d79be5","impliedFormat":1},{"version":"be94ea1bfaa2eeef1e821a024914ef94cf0cba05be8f2e7df7e9556231870a1d","impliedFormat":1},{"version":"40cd13782413c7195ad8f189f81174850cc083967d056b23d529199d64f02c79","impliedFormat":1},{"version":"05e041810faf710c1dcd03f3ffde100c4a744672d93512314b1f3cfffccdaf20","impliedFormat":1},{"version":"15a8f79b1557978d752c0be488ee5a70daa389638d79570507a3d4cfc620d49d","impliedFormat":1},{"version":"968ee57037c469cffb3b0e268ab824a9c31e4205475b230011895466a1e72da4","impliedFormat":1},{"version":"77debd777927059acbaf1029dfc95900b3ab8ed0434ce3914775efb0574e747b","impliedFormat":1},{"version":"921e3bd6325acb712cd319eaec9392c9ad81f893dead509ab2f4e688f265e536","impliedFormat":1},{"version":"60f6768c96f54b870966957fb9a1b176336cd82895ded088980fb506c032be1c","impliedFormat":1},{"version":"755d9b267084db4ea40fa29653ea5fc43e125792b1940f2909ec70a4c7f712d8","impliedFormat":1},{"version":"7e3056d5333f2d8a9e54324c2e2293027e4cd9874615692a53ad69090894d116","impliedFormat":1},{"version":"1e25b848c58ad80be5c31b794d49092d94df2b7e492683974c436bcdbefb983c","impliedFormat":1},{"version":"3df6fc700b8d787974651680ae6e37b6b50726cf5401b7887f669ab195c2f2ef","impliedFormat":1},{"version":"145df08c171ec616645a353d5eaa5d5f57a5fbce960a47d847548abd9215a99e","impliedFormat":1},{"version":"dcfd2ca9e033077f9125eeca6890bb152c6c0bc715d0482595abc93c05d02d92","impliedFormat":1},{"version":"8056fa6beb8297f160e13c9b677ba2be92ab23adfb6940e5a974b05acd33163b","impliedFormat":1},{"version":"86dda1e79020fad844010b39abb68fafed2f3b2156e3302820c4d0a161f88b03","impliedFormat":1},{"version":"dea0dcec8d5e0153d6f0eacebb163d7c3a4b322a9304048adffc6d26084054bd","impliedFormat":1},{"version":"2afd081a65d595d806b0ff434d2a96dc3d6dcd8f0d1351c0a0968568c6944e0b","impliedFormat":1},{"version":"b86259ab4b95ebe1aedb03d3eebea647f0bd9a706981220f00210487d70e77a0","impliedFormat":1},{"version":"2f1f7c65e8ee58e3e7358f9b8b3c37d8447549ecc85046f9405a0fc67fbdf54b","impliedFormat":1},{"version":"e3f3964ff78dee11a07ae589f1319ff682f62f3c6c8afa935e3d8616cf21b431","impliedFormat":1},{"version":"2762c2dbee294ffb8fdbcae6db32c3dae09e477d6a348b48578b4145b15d1818","impliedFormat":1},{"version":"78a1eace936ad32ca1c228814f3333cb2e826e1447e60fee181b3c53d43a8d07","impliedFormat":1},{"version":"24bd135b687da453ea7bd98f7ece72e610a3ff8ca6ec23d321c0e32f19d32db6","impliedFormat":1},{"version":"64d45d55ba6e42734ac326d2ea1f674c72837443eb7ff66c82f95e4544980713","impliedFormat":1},{"version":"f9b0dc747f13dcc09e40c26ddcc118b1bafc3152f771fdc32757a7f8916a11fc","impliedFormat":1},{"version":"7035fc608c297fd38dfe757d44d3483a570e2d6c8824b2d6b20294d617da64c6","impliedFormat":1},{"version":"22160a296186123d2df75280a1fab70d2105ce1677af1ebb344ffcb88eef6e42","impliedFormat":1},{"version":"9067b3fd7d71165d4c34fcbbf29f883860fd722b7e8f92e87da036b355a6c625","impliedFormat":1},{"version":"e01ab4b99cc4a775d06155e9cadd2ebd93e4af46e2723cb9361f24a4e1f178ef","impliedFormat":1},{"version":"9a13410635d5cc9c2882e67921c59fb26e77b9d99efa1a80b5a46fdc2954afce","impliedFormat":1},{"version":"b04862a4f44f78fd12ad8ed34ab81f9f254a87398568173694a78dc0bdebcd23","impliedFormat":1},{"version":"fa894bdddb2ba0e6c65ad0d88942cf15328941246410c502576124ef044746f9","impliedFormat":1},{"version":"59c5a06fa4bf2fa320a3c5289b6f199a3e4f9562480f59c0987c91dc135a1adf","impliedFormat":1},{"version":"456a9a12ad5d57af0094edf99ceab1804449f6e7bc773d85d09c56a18978a177","impliedFormat":1},{"version":"a8e2a77f445a8a1ce61bfd4b7b22664d98cf19b84ec6a966544d0decec18e143","impliedFormat":1},{"version":"6f6b0b477db6c4039410c7a13fe1ebed4910dedf644330269816df419cdb1c65","impliedFormat":1},{"version":"960b6e1edfb9aafbd560eceaae0093b31a9232ab273f4ed776c647b2fb9771da","impliedFormat":1},{"version":"530f4bee13cc07fd4e8bac69eeb728a6270ebafeab886c98624c699725b29755","impliedFormat":1},{"version":"a0db48d42371b223cea8fd7a41763d48f9166ecd4baecc9d29d9bb44cc3c2d83","impliedFormat":1},{"version":"aaf3c2e268f27514eb28255835f38445a200cd8bcfdff2c07c6227f67aaaf657","impliedFormat":1},{"version":"6ade56d2afdf75a9bd55cd9c8593ed1d78674804d9f6d9aba04f807f3179979e","impliedFormat":1},{"version":"b67acb619b761e91e3a11dddb98c51ee140361bc361eb17538f1c3617e3ec157","impliedFormat":1},{"version":"81b097e0f9f8d8c3d5fe6ba9dc86139e2d95d1e24c5ce7396a276dfbb2713371","impliedFormat":1},{"version":"692d56fff4fb60948fe16e9fed6c4c4eac9b263c06a8c6e63726e28ed4844fd4","impliedFormat":1},{"version":"f13228f2c0e145fc6dc64917eeef690fb2883a0ac3fa9ebfbd99616fd12f5629","impliedFormat":1},{"version":"d89b2b41a42c04853037408080a2740f8cd18beee1c422638d54f8aefe95c5b8","impliedFormat":1},{"version":"be5d39e513e3e0135068e4ebed5473ab465ae441405dce90ab95055a14403f64","impliedFormat":1},{"version":"97e320c56905d9fa6ac8bd652cea750265384f048505870831e273050e2878cc","impliedFormat":1},{"version":"9932f390435192eb93597f89997500626fb31005416ce08a614f66ec475c5c42","impliedFormat":1},{"version":"5d89ca552233ac2d61aee34b0587f49111a54a02492e7a1098e0701dedca60c9","impliedFormat":1},{"version":"a9b2562f690a70b18fbe9d6666d9a80e18aefec50cfb153a2b06d99ae52c77dc","impliedFormat":1},{"version":"fdc4fd2c610b368104746960b45216bc32685927529dd871a5330f4871d14906","impliedFormat":1},{"version":"7b5d77c769a6f54ea64b22f1877d64436f038d9c81f1552ad11ed63f394bd351","impliedFormat":1},{"version":"4f7d54c603949113f45505330caae6f41e8dbb59841d4ae20b42307dc4579835","impliedFormat":1},{"version":"a71fd01a802624c3fce6b09c14b461cc7c7758aa199c202d423a7c89ad89943c","impliedFormat":1},{"version":"1ed0dc05908eb15f46379bc1cb64423760e59d6c3de826a970b2e2f6da290bf5","impliedFormat":1},{"version":"db89ef053f209839606e770244031688c47624b771ff5c65f0fa1ec10a6919f1","impliedFormat":1},{"version":"4d45b88987f32b2ac744f633ff5ddb95cd10f64459703f91f1633ff457d6c30d","impliedFormat":1},{"version":"8512fd4a480cd8ef8bf923a85ff5e97216fa93fb763ec871144a9026e1c9dade","impliedFormat":1},{"version":"2aa58b491183eedf2c8ae6ef9a610cd43433fcd854f4cc3e2492027fbe63f5ca","impliedFormat":1},{"version":"ce1f3439cb1c5a207f47938e68752730892fc3e66222227effc6a8b693450b82","impliedFormat":1},{"version":"295ce2cf585c26a9b71ba34fbb026d2b5a5f0d738b06a356e514f39c20bf38ba","impliedFormat":1},{"version":"342f10cf9ba3fbf52d54253db5c0ac3de50360b0a3c28e648a449e28a4ac8a8c","impliedFormat":1},{"version":"c485987c684a51c30e375d70f70942576fa86e9d30ee8d5849b6017931fccc6f","impliedFormat":1},{"version":"320bd1aa480e22cdd7cd3d385157258cc252577f4948cbf7cfdf78ded9d6d0a8","impliedFormat":1},{"version":"4ee053dfa1fce5266ecfae2bf8b6b0cb78a6a76060a1dcf66fb7215b9ff46b0b","impliedFormat":1},{"version":"1f84d8b133284b596328df47453d3b3f3817ad206cf3facf5eb64b0a2c14f6d7","impliedFormat":1},{"version":"5c75e05bc62bffe196a9b2e9adfa824ffa7b90d62345a766c21585f2ce775001","impliedFormat":1},{"version":"cc2eb5b23140bbceadf000ef2b71d27ac011d1c325b0fc5ecd42a3221db5fb2e","impliedFormat":1},{"version":"fd75cc24ea5ec28a44c0afc2f8f33da5736be58737ba772318ae3bdc1c079dc3","impliedFormat":1},{"version":"5ae43407346e6f7d5408292a7d957a663cc7b6d858a14526714a23466ac83ef9","impliedFormat":1},{"version":"c72001118edc35bbe4fff17674dc5f2032ccdbcc5bec4bd7894a6ed55739d31b","impliedFormat":1},{"version":"353196fd0dd1d05e933703d8dad664651ed172b8dfb3beaef38e66522b1e0219","impliedFormat":1},{"version":"670aef817baea9332d7974295938cf0201a2d533c5721fccf4801ba9a4571c75","impliedFormat":1},{"version":"3f5736e735ee01c6ecc6d4ab35b2d905418bb0d2128de098b73e11dd5decc34f","impliedFormat":1},{"version":"b64e159c49afc6499005756f5a7c2397c917525ceab513995f047cdd80b04bdf","impliedFormat":1},{"version":"f72b400dbf8f27adbda4c39a673884cb05daf8e0a1d8152eec2480f5700db36c","impliedFormat":1},{"version":"24509d0601fc00c4d77c20cacddbca6b878025f4e0712bddd171c7917f8cdcde","impliedFormat":1},{"version":"5f5baa59149d3d6d6cef2c09d46bb4d19beb10d6bee8c05b7850c33535b3c438","impliedFormat":1},{"version":"f17a51aae728f9f1a2290919cf29a927621b27f6ae91697aee78f41d48851690","impliedFormat":1},{"version":"be02e3c3cb4e187fd252e7ae12f6383f274e82288c8772bb0daf1a4e4af571ad","impliedFormat":1},{"version":"82ca40fb541799273571b011cd9de6ee9b577ef68acc8408135504ae69365b74","impliedFormat":1},{"version":"8fb6646db72914d6ef0692ea88b25670bbf5e504891613a1f46b42783ec18cce","impliedFormat":1},{"version":"b61efdebae3d131b6ad71bd2aa7cc4284e351481339bf66d84ee5ed86465bcc8","impliedFormat":1},{"version":"213aa21650a910d95c4d0bee4bb936ecd51e230c1a9e5361e008830dcc73bc86","impliedFormat":1},{"version":"874a8c5125ad187e47e4a8eacc809c866c0e71b619a863cc14794dd3ccf23940","impliedFormat":1},{"version":"c31db8e51e85ee67018ac2a40006910efbb58e46baea774cf1f245d99bf178b5","impliedFormat":1},{"version":"31fac222250b18ebac0158938ede4b5d245e67d29cd2ef1e6c8a5859d137d803","impliedFormat":1},{"version":"a9dfb793a7e10949f4f3ea9f282b53d3bd8bf59f5459bc6e618e3457ed2529f5","impliedFormat":1},{"version":"2a77167687b0ec0c36ef581925103f1dc0c69993f61a9dbd299dcd30601af487","impliedFormat":1},{"version":"0f23b5ce60c754c2816c2542b9b164d6cb15243f4cbcd11cfafcab14b60e04d0","impliedFormat":1},{"version":"813ce40a8c02b172fdbeb8a07fdd427ac68e821f0e20e3dc699fb5f5bdf1ef0a","impliedFormat":1},{"version":"5ce6b24d5fd5ebb1e38fe817b8775e2e00c94145ad6eedaf26e3adf8bb3903d0","impliedFormat":1},{"version":"6babca69d3ae17be168cfceb91011eed881d41ce973302ee4e97d68a81c514b4","impliedFormat":1},{"version":"3e0832bc2533c0ec6ffcd61b7c055adedcca1a45364b3275c03343b83c71f5b3","impliedFormat":1},{"version":"342418c52b55f721b043183975052fb3956dae3c1f55f965fedfbbf4ad540501","impliedFormat":1},{"version":"6a6ab1edb5440ee695818d76f66d1a282a31207707e0d835828341e88e0c1160","impliedFormat":1},{"version":"7e9b4669774e97f5dc435ddb679aa9e7d77a1e5a480072c1d1291892d54bf45c","impliedFormat":1},{"version":"de439ddbed60296fbd1e5b4d242ce12aad718dffe6432efcae1ad6cd996defd3","impliedFormat":1},{"version":"ce5fb71799f4dbb0a9622bf976a192664e6c574d125d3773d0fa57926387b8b2","impliedFormat":1},{"version":"b9c0de070a5876c81540b1340baac0d7098ea9657c6653731a3199fcb2917cef","impliedFormat":1},{"version":"cbc91ecd74d8f9ddcbcbdc2d9245f14eff5b2f6ae38371283c97ca7dc3c4a45f","impliedFormat":1},{"version":"3ca1d6f016f36c61a59483c80d8b9f9d50301fbe52a0dde288c1381862b13636","impliedFormat":1},{"version":"ecfef0c0ff0c80ac9a6c2fab904a06b680fb5dfe8d9654bb789e49c6973cb781","impliedFormat":1},{"version":"0ee2eb3f7c0106ccf6e388bc0a16e1b3d346e88ac31b6a5bbc15766e43992167","impliedFormat":1},{"version":"7a80da7b14bc7902b1da607c8b3734ad5740f8f5fade9a7bfbf753b9bba22652","impliedFormat":1},{"version":"7e46dd61422e5afe88c34e5f1894ae89a37b7a07393440c092e9dc4399820172","impliedFormat":1},{"version":"9df4f57d7279173b0810154c174aa03fd60f5a1f0c3acfe8805e55e935bdecd4","impliedFormat":1},{"version":"a02a51b68a60a06d4bd0c747d6fbade0cb87eefda5f985fb4650e343da424f12","impliedFormat":1},{"version":"0cf851e2f0ecf61cabe64efd72de360246bcb8c19c6ef7b5cbb702293e1ff755","impliedFormat":1},{"version":"0c0e0aaf37ab0552dffc13eb584d8c56423b597c1c49f7974695cb45e2973de6","impliedFormat":1},{"version":"e2e0cd8f6470bc69bbfbc5e758e917a4e0f9259da7ffc93c0930516b0aa99520","impliedFormat":1},{"version":"180de8975eff720420697e7b5d95c0ecaf80f25d0cea4f8df7fe9cf817d44884","impliedFormat":1},{"version":"424a7394f9704d45596dce70bd015c5afec74a1cc5760781dfda31bc300df88f","impliedFormat":1},{"version":"044a62b9c967ee8c56dcb7b2090cf07ef2ac15c07e0e9c53d99fab7219ee3d67","impliedFormat":1},{"version":"3903b01a9ba327aae8c7ea884cdabc115d27446fba889afc95fddca8a9b4f6e2","impliedFormat":1},{"version":"78fd8f2504fbfb0070569729bf2fe41417fdf59f8c3e975ab3143a96f03e0a4a","impliedFormat":1},{"version":"8afd4f91e3a060a886a249f22b23da880ec12d4a20b6404acc5e283ef01bdd46","impliedFormat":1},{"version":"72e72e3dea4081877925442f67b23be151484ef0a1565323c9af7f1c5a0820f0","impliedFormat":1},{"version":"fa8c21bafd5d8991019d58887add8971ccbe88243c79bbcaec2e2417a40af4e8","impliedFormat":1},{"version":"ab35597fd103b902484b75a583606f606ab2cef7c069fae6c8aca0f058cee77d","impliedFormat":1},{"version":"ca54ec33929149dded2199dca95fd8ad7d48a04f6e8500f3f84a050fa77fee45","impliedFormat":1},{"version":"cac7dcf6f66d12979cc6095f33edc7fbb4266a44c8554cd44cd04572a4623fd0","impliedFormat":1},{"version":"98af566e6d420e54e4d8d942973e7fbe794e5168133ad6658b589d9dfb4409d8","impliedFormat":1},{"version":"772b2865dd86088c6e0cab71e23534ad7254961c1f791bdeaf31a57a2254df43","impliedFormat":1},{"version":"786d837fba58af9145e7ad685bc1990f52524dc4f84f3e60d9382a0c3f4a0f77","impliedFormat":1},{"version":"539dd525bf1d52094e7a35c2b4270bee757d3a35770462bcb01cd07683b4d489","impliedFormat":1},{"version":"69135303a105f3b058d79ea7e582e170721e621b1222e8f8e51ea29c61cd3acf","impliedFormat":1},{"version":"e92e6f0d63e0675fe2538e8031e1ece36d794cb6ecc07a036d82c33fa3e091a9","impliedFormat":1},{"version":"1fdb07843cdb9bd7e24745d357c6c1fde5e7f2dd7c668dd68b36c0dff144a390","impliedFormat":1},{"version":"786d837fba58af9145e7ad685bc1990f52524dc4f84f3e60d9382a0c3f4a0f77","impliedFormat":1},{"version":"3e2f739bdfb6b194ae2af13316b4c5bb18b3fe81ac340288675f92ba2061b370","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"438b41419b1df9f1fbe33b5e1b18f5853432be205991d1b19f5b7f351675541e","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"7fb266686238369442bd1719bc0d7edd0199da4fb8540354e1ff7f16669b4323","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"c183b931b68ad184bc8e8372bf663f3d33304772fb482f29fb91b3c391031f3e","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"e1528ca65ac90f6fa0e4a247eb656b4263c470bb22d9033e466463e13395e599","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"dd0109710de4cd93e245121ab86d8c66d20f3ead80074b68e9c3e349c4f53342","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"435b3711465425770ed2ee2f1cf00ce071835265e0851a7dc4600ab4b007550e","impliedFormat":1},{"version":"7e49f52a159435fc8df4de9dc377ef5860732ca2dc9efec1640531d3cf5da7a3","impliedFormat":1},{"version":"dd4bde4bdc2e5394aed6855e98cf135dfdf5dd6468cad842e03116d31bbcc9bc","impliedFormat":1},{"version":"4d4e879009a84a47c05350b8dca823036ba3a29a3038efed1be76c9f81e45edf","affectsGlobalScope":true,"impliedFormat":1},{"version":"cf83d90d5faf27b994c2e79af02e32b555dbfe42cd9bd1571445f2168d1f4e2d","impliedFormat":1},{"version":"9ba13b47cb450a438e3076c4a3f6afb9dc85e17eae50f26d4b2d72c0688c9251","impliedFormat":1},{"version":"b64cd4401633ea4ecadfd700ddc8323a13b63b106ac7127c1d2726f32424622c","impliedFormat":1},{"version":"37c6e5fe5715814412b43cc9b50b24c67a63c4e04e753e0d1305970d65417a60","impliedFormat":1},{"version":"0e28335ac43f4d94dd2fe6d9e6fa6813570640839addd10d309d7985f33a6308","impliedFormat":1},{"version":"ee0e4946247f842c6dd483cbb60a5e6b484fee07996e3a7bc7343dfb68a04c5d","impliedFormat":1},{"version":"ef051f42b7e0ef5ca04552f54c4552eac84099d64b6c5ad0ef4033574b6035b8","impliedFormat":1},{"version":"853a43154f1d01b0173d9cbd74063507ece57170bad7a3b68f3fa1229ad0a92f","impliedFormat":1},{"version":"56231e3c39a031bfb0afb797690b20ed4537670c93c0318b72d5180833d98b72","impliedFormat":1},{"version":"5cc7c39031bfd8b00ad58f32143d59eb6ffc24f5d41a20931269011dccd36c5e","impliedFormat":1},{"version":"b0b69c61b0f0ec8ca15db4c8c41f6e77f4cacb784d42bca948f42dea33e8757e","affectsGlobalScope":true,"impliedFormat":1},{"version":"961cf7535b9c521cd634055b1b6ac49b94d055f0b573ce7fdc4cfaddab080b7c","impliedFormat":1},{"version":"806a8c6daae69e5695e7200d9eca6bc1e4298f38d90edda3ce67a794da31a24f","impliedFormat":1},{"version":"ac86245c2f31335bfd52cbe7fc760f9fc4f165387875869a478a6d9616a95e72","impliedFormat":1},{"version":"01ff95aa1443e3f7248974e5a771f513cb2ac158c8898f470a1792f817bee497","impliedFormat":1},{"version":"9d96a7ce809392ff2cb99691acf7c62e632fe56897356ba013b689277aca3619","impliedFormat":1},{"version":"42a05d8f239f74587d4926aba8cc54792eed8e8a442c7adc9b38b516642aadfe","impliedFormat":1},{"version":"5d21b58d60383cc6ab9ad3d3e265d7d25af24a2c9b506247e0e50b0a884920be","impliedFormat":1},{"version":"101f482fd48cb4c7c0468dcc6d62c843d842977aea6235644b1edd05e81fbf22","impliedFormat":1},{"version":"ae6757460f37078884b1571a3de3ebaf724d827d7e1d53626c02b3c2a408ac63","affectsGlobalScope":true,"impliedFormat":1},{"version":"27c0a08e343c6a0ae17bd13ba6d44a9758236dc904cd5e4b43456996cd51f520","impliedFormat":1},{"version":"3ef397f12387eff17f550bc484ea7c27d21d43816bbe609d495107f44b97e933","impliedFormat":1},{"version":"1023282e2ba810bc07905d3668349fbd37a26411f0c8f94a70ef3c05fe523fcf","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"6f80e51ba310608cd71bcdc09a171d7bbfb3b316048601c9ec215ce16a8dcfbc","impliedFormat":1},{"version":"a3bdc774995d56caaac759a424831091bb22450ca3590f34dae53d98323be191","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f2c62938251b45715fd2a9887060ec4fbc8724727029d1cbce373747252bdd7","impliedFormat":1},{"version":"e3ace08b6bbd84655d41e244677b474fd995923ffef7149ddb68af8848b60b05","impliedFormat":1},{"version":"132580b0e86c48fab152bab850fc57a4b74fe915c8958d2ccb052b809a44b61c","impliedFormat":1},{"version":"af4ab0aa8908fc9a655bb833d3bc28e117c4f0e1038c5a891546158beb25accb","impliedFormat":1},{"version":"69c9a5a9392e8564bd81116e1ed93b13205201fb44cb35a7fde8c9f9e21c4b23","impliedFormat":1},{"version":"5f8fc37f8434691ffac1bfd8fc2634647da2c0e84253ab5d2dd19a7718915b35","impliedFormat":1},{"version":"5981c2340fd8b076cae8efbae818d42c11ffc615994cb060b1cd390795f1be2b","impliedFormat":1},{"version":"2ca2bca6845a7234eff5c3d192727a068fca72ac565f3c819c6b04ccc83dadc0","impliedFormat":1},{"version":"ed4f674fc8c0c993cc7e145069ac44129e03519b910c62be206a0cc777bdc60b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0250da3eb85c99624f974e77ef355cdf86f43980251bc371475c2b397ba55bcd","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"3d3a5f27ffbc06c885dd4d5f9ee20de61faf877fe2c3a7051c4825903d9a7fdc","impliedFormat":1},{"version":"12806f9f085598ef930edaf2467a5fa1789a878fba077cd27e85dc5851e11834","impliedFormat":1},{"version":"17d06eb5709839c7ce719f0c38ada6f308fb433f2cd6d8c87b35856e07400950","impliedFormat":1},{"version":"a43fe41c33d0a192a0ecaf9b92e87bef3709c9972e6d53c42c49251ccb962d69","impliedFormat":1},{"version":"a177959203c017fad3ecc4f3d96c8757a840957a4959a3ae00dab9d35961ca6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc727ccf9b36e257ff982ea0badeffbfc2c151802f741bddff00c6af3b784cf","impliedFormat":1},{"version":"6c00f77f0335ae0c18bd45a6c7c9c97c9625fb7e5dd6d5936eadf70718bce52e","impliedFormat":1},{"version":"4844a4c9b4b1e812b257676ed8a80b3f3be0e29bf05e742cc2ea9c3c6865e6c6","impliedFormat":1},{"version":"064878a60367e0407c42fb7ba02a2ea4d83257357dc20088e549bd4d89433e9c","impliedFormat":1},{"version":"14d4bd22d1b05824971b98f7e91b2484c90f1a684805c330476641417c3d9735","impliedFormat":1},{"version":"586eaf66bace2e731cee0ddfbfac326ad74a83c1acfeac4afb2db85ad23226c7","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"d1a14d87cedcf4f0b8173720d6eb29cc02878bf2b6dabf9c9d9cee742f275368","impliedFormat":1},{"version":"e60efae9fe48a2955f66bf4cbf0f082516185b877daf50d9c5e2a009660a7714","impliedFormat":1},{"version":"041a7781b9127ab568d2cdcce62c58fdea7c7407f40b8c50045d7866a2727130","impliedFormat":1},{"version":"cd9189eacf0f9143b8830e9d6769335aa6d902c04195f04145bcbf19e7f26fcb","impliedFormat":1},{"version":"e1cb68f3ef3a8dd7b2a9dfb3de482ed6c0f1586ba0db4e7d73c1d2147b6ffc51","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1},{"version":"19990350fca066265b2c190c9b6cde1229f35002ea2d4df8c9e397e9942f6c89","impliedFormat":99},{"version":"8fb8fdda477cd7382477ffda92c2bb7d9f7ef583b1aa531eb6b2dc2f0a206c10","impliedFormat":99},{"version":"66995b0c991b5c5d42eff1d950733f85482c7419f7296ab8952e03718169e379","impliedFormat":99},{"version":"9863f888da357e35e013ca3465b794a490a198226bd8232c2f81fb44e16ff323","impliedFormat":99},{"version":"84bc2d80326a83ee4a6e7cba2fd480b86502660770c0e24da96535af597c9f1e","impliedFormat":1},{"version":"ea27768379b866ee3f5da2419650acdb01125479f7af73580a4bceb25b79e372","impliedFormat":1},{"version":"598931eeb4362542cae5845f95c5f0e45ac668925a40ce201e244d7fe808e965","impliedFormat":1},{"version":"da9ef88cde9f715756da642ad80c4cd87a987f465d325462d6bc2a0b11d202c8","impliedFormat":1},{"version":"9462ab013df86c16a2a69ca0a3b6f31d4fd86dd29a947e14b590eb20806f220b","impliedFormat":99},{"version":"b4c6184d78303b0816e779a48bef779b15aea4a66028eb819aac0abee8407dea","impliedFormat":99},{"version":"db085d2171d48938a99e851dafe0e486dce9859e5dfa73c21de5ed3d4d6fb0c5","impliedFormat":99},{"version":"62a3ad1ddd1f5974b3bf105680b3e09420f2230711d6520a521fab2be1a32838","impliedFormat":99},{"version":"a77be6fc44c876bc10c897107f84eaba10790913ebdcad40fcda7e47469b2160","impliedFormat":99},{"version":"06cf55b6da5cef54eaaf51cdc3d4e5ebf16adfdd9ebd20cec7fe719be9ced017","impliedFormat":99},{"version":"91f5dbcdb25d145a56cffe957ec665256827892d779ef108eb2f3864faff523b","impliedFormat":99},{"version":"052ba354bab8fb943e0bc05a0769f7b81d7c3b3c6cd0f5cfa53c7b2da2a525c5","impliedFormat":99},{"version":"927955a3de5857e0a1c575ced5a4245e74e6821d720ed213141347dd1870197f","impliedFormat":99},{"version":"fec804d54cd97dd77e956232fc37dc13f53e160d4bbeeb5489e86eeaa91f7ebd","impliedFormat":99},{"version":"03c258e060b7da220973f84b89615e4e9850e9b5d30b3a8e4840b3e3268ae8eb","impliedFormat":1},{"version":"fd0589ca571ad090b531d8c095e26caa53d4825c64d3ff2b2b1ab95d72294175","impliedFormat":1},{"version":"669843ecafb89ae1e944df06360e8966219e4c1c34c0d28aa2503272cdd444a7","affectsGlobalScope":true,"impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"7a3aa194cfd5919c4da251ef04ea051077e22702638d4edcb9579e9101653519","affectsGlobalScope":true,"impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"ab82804a14454734010dcdcd43f564ff7b0389bee4c5692eec76ff5b30d4cf66","impliedFormat":1},{"version":"bae8d023ef6b23df7da26f51cea44321f95817c190342a36882e93b80d07a960","impliedFormat":1},{"version":"26a770cec4bd2e7dbba95c6e536390fffe83c6268b78974a93727903b515c4e7","impliedFormat":1}],"root":[[59,65]],"options":{"composite":true,"declaration":true,"esModuleInterop":true,"module":1,"outDir":"./","skipLibCheck":true,"strict":true,"target":8},"referencedMap":[[69,1],[67,2],[76,2],[270,3],[269,4],[80,5],[81,6],[218,5],[219,7],[200,8],[201,9],[84,10],[85,11],[155,12],[156,13],[129,5],[130,14],[123,5],[124,15],[215,16],[213,17],[214,2],[229,18],[230,19],[99,20],[100,21],[231,22],[232,23],[233,24],[234,25],[91,26],[92,27],[217,28],[216,29],[202,5],[203,30],[95,31],[96,32],[119,2],[120,33],[237,34],[235,35],[236,36],[238,37],[239,38],[242,39],[240,40],[243,17],[241,41],[244,42],[247,43],[245,44],[246,45],[248,46],[97,26],[98,47],[223,48],[220,49],[221,50],[222,2],[198,51],[199,52],[143,53],[142,54],[140,55],[139,56],[141,57],[250,58],[249,59],[252,60],[251,61],[128,62],[127,5],[106,63],[104,64],[103,10],[105,65],[255,66],[259,67],[253,68],[254,69],[256,66],[257,66],[258,66],[145,70],[144,10],[161,71],[159,72],[160,17],[157,73],[158,74],[94,75],[93,5],[151,76],[82,5],[83,77],[150,78],[188,79],[191,80],[189,81],[190,82],[102,83],[101,5],[193,84],[192,10],[171,85],[170,5],[126,86],[125,5],[197,87],[196,88],[165,89],[164,90],[162,91],[163,92],[154,93],[153,94],[152,95],[261,96],[260,97],[178,98],[177,99],[176,100],[225,101],[224,2],[169,102],[168,103],[166,104],[167,105],[147,106],[146,10],[90,107],[89,108],[88,109],[87,110],[86,111],[182,112],[181,113],[112,114],[111,10],[116,115],[115,116],[180,117],[179,5],[226,2],[228,118],[227,2],[185,119],[184,120],[183,121],[263,122],[262,123],[265,124],[264,125],[211,126],[212,127],[210,128],[149,129],[148,2],[195,130],[194,131],[122,132],[121,5],[173,133],[172,5],[79,134],[78,2],[132,135],[133,136],[138,137],[131,138],[135,139],[134,140],[136,141],[137,142],[187,143],[186,10],[118,144],[117,10],[268,145],[267,146],[266,147],[205,148],[204,5],[175,149],[174,5],[110,150],[108,151],[107,10],[109,152],[207,153],[206,5],[114,154],[113,5],[209,155],[208,5],[66,2],[72,156],[68,1],[70,157],[71,1],[73,2],[74,158],[75,159],[277,160],[276,161],[418,162],[419,163],[339,164],[340,164],[341,165],[280,166],[342,167],[343,168],[344,169],[278,2],[345,170],[346,171],[347,172],[348,173],[349,174],[350,175],[351,175],[352,176],[353,177],[354,178],[355,179],[281,2],[279,2],[356,180],[357,181],[358,182],[398,183],[359,184],[360,185],[361,184],[362,186],[363,187],[364,188],[365,189],[366,189],[367,189],[368,190],[369,191],[370,192],[371,193],[372,194],[373,195],[374,195],[375,196],[376,2],[377,2],[378,197],[379,198],[380,197],[381,199],[382,200],[383,201],[384,202],[385,203],[386,204],[387,205],[388,206],[389,207],[390,208],[391,209],[392,210],[393,211],[394,212],[395,213],[282,184],[283,2],[284,214],[285,215],[286,2],[287,216],[288,2],[330,217],[331,218],[332,219],[333,219],[334,220],[335,2],[336,167],[337,221],[338,218],[396,222],[397,223],[420,2],[424,224],[421,2],[423,225],[425,2],[417,2],[426,2],[427,226],[77,2],[422,2],[407,227],[405,2],[406,228],[403,2],[404,2],[275,229],[272,230],[271,161],[273,231],[274,2],[401,232],[415,233],[399,2],[400,234],[416,235],[411,236],[412,237],[410,238],[414,239],[408,240],[402,241],[413,242],[409,233],[56,2],[57,2],[11,2],[9,2],[10,2],[15,2],[14,2],[2,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[3,2],[24,2],[25,2],[4,2],[26,2],[30,2],[27,2],[28,2],[29,2],[31,2],[32,2],[33,2],[5,2],[34,2],[35,2],[36,2],[37,2],[6,2],[41,2],[38,2],[39,2],[40,2],[42,2],[7,2],[43,2],[48,2],[49,2],[44,2],[45,2],[46,2],[47,2],[8,2],[58,2],[53,2],[50,2],[51,2],[52,2],[1,2],[54,2],[55,2],[13,2],[12,2],[306,243],[318,244],[304,245],[319,246],[328,247],[295,248],[296,249],[294,250],[327,251],[322,252],[326,253],[298,254],[315,255],[297,256],[325,257],[292,258],[293,252],[299,259],[300,2],[305,260],[303,259],[290,261],[329,262],[320,263],[309,264],[308,259],[310,265],[313,266],[307,267],[311,268],[323,251],[301,269],[302,270],[314,271],[291,246],[317,272],[316,259],[312,273],[321,2],[289,2],[324,274],[59,275],[61,276],[62,275],[63,275],[65,277],[64,275],[60,278]],"latestChangedDtsFile":"./src/providers/index.d.ts","version":"5.9.3"}