From bf00c4b56f95b7de2bafb748294d2d69c21a2f7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Berson?= Date: Tue, 5 Dec 2023 00:53:58 +0100 Subject: [PATCH] Add new tldts-icann package which does not contain private rules --- .../test/publicsuffix.test.ts | 2 +- packages/tldts-experimental/test/tld.test.ts | 2 +- packages/tldts-icann/README.md | 290 +++++ packages/tldts-icann/index.ts | 62 + packages/tldts-icann/package.json | 87 ++ packages/tldts-icann/rollup.config.mjs | 41 + packages/tldts-icann/src/data/trie.ts | 14 + packages/tldts-icann/src/suffix-trie.ts | 87 ++ .../tldts-icann/test/publicsuffix.test.ts | 9 + packages/tldts-icann/test/tld.test.ts | 9 + packages/tldts-icann/tsconfig.bundle.json | 12 + packages/tldts-icann/tsconfig.json | 17 + .../tldts-tests/src/publicsuffix-tests.ts | 13 +- packages/tldts-tests/src/tldts-tests.ts | 326 +++-- packages/tldts-utils/src/builders/trie.ts | 27 +- packages/tldts-utils/src/update.ts | 9 +- packages/tldts/test/publicsuffix.test.ts | 2 +- packages/tldts/test/tld.test.ts | 2 +- yarn.lock | 1109 ++++++++--------- 19 files changed, 1386 insertions(+), 734 deletions(-) create mode 100644 packages/tldts-icann/README.md create mode 100644 packages/tldts-icann/index.ts create mode 100644 packages/tldts-icann/package.json create mode 100644 packages/tldts-icann/rollup.config.mjs create mode 100644 packages/tldts-icann/src/data/trie.ts create mode 100644 packages/tldts-icann/src/suffix-trie.ts create mode 100644 packages/tldts-icann/test/publicsuffix.test.ts create mode 100644 packages/tldts-icann/test/tld.test.ts create mode 100644 packages/tldts-icann/tsconfig.bundle.json create mode 100644 packages/tldts-icann/tsconfig.json diff --git a/packages/tldts-experimental/test/publicsuffix.test.ts b/packages/tldts-experimental/test/publicsuffix.test.ts index 0b7b28e0..9b86fa3b 100644 --- a/packages/tldts-experimental/test/publicsuffix.test.ts +++ b/packages/tldts-experimental/test/publicsuffix.test.ts @@ -5,5 +5,5 @@ import { publicSuffixListTests } from 'tldts-tests'; import * as tld from '../index'; describe('tldts experimental', () => { - publicSuffixListTests(tld.getDomain); + publicSuffixListTests(tld.getDomain, { includePrivate: true }); }); diff --git a/packages/tldts-experimental/test/tld.test.ts b/packages/tldts-experimental/test/tld.test.ts index 41661e86..6ee8da91 100644 --- a/packages/tldts-experimental/test/tld.test.ts +++ b/packages/tldts-experimental/test/tld.test.ts @@ -5,5 +5,5 @@ import { tldtsTests } from 'tldts-tests'; import * as tld from '../index'; describe('tldts experimental', () => { - tldtsTests(tld); + tldtsTests(tld, { includePrivate: true }); }); diff --git a/packages/tldts-icann/README.md b/packages/tldts-icann/README.md new file mode 100644 index 00000000..4c5da496 --- /dev/null +++ b/packages/tldts-icann/README.md @@ -0,0 +1,290 @@ +# tldts - Blazing Fast URL Parsing (ICANN rules only) + +`tldts` is a JavaScript library to extract hostnames, domains, public suffixes, top-level domains and subdomains from URLs. + +**Features**: + +1. Tuned for **performance** (order of 0.1 to 1 μs per input) +2. Handles both URLs and hostnames +3. Full Unicode/IDNA support +4. Support parsing email addresses +5. Detect IPv4 and IPv6 addresses +6. Continuously updated version of the public suffix list +7. **TypeScript**, ships with `umd`, `esm`, `cjs` bundles and _type definitions_ +8. Small bundles and small memory footprint +9. Battle tested: full test coverage and production use + +# Install + +```bash +npm install --save tldts-icann +``` + +# Usage + +Programmatically: + +```js +const { parse } = require('tldts-icann'); + +// Retrieving hostname related informations of a given URL +parse('http://www.writethedocs.org/conf/eu/2017/'); +// { domain: 'writethedocs.org', +// domainWithoutSuffix: 'writethedocs', +// hostname: 'www.writethedocs.org', +// isIp: false, +// publicSuffix: 'org', +// subdomain: 'www' } +``` + +Modern _ES6 modules import_ is also supported: + +```js +import { parse } from 'tldts-icann'; +``` + +Alternatively, you can try it _directly in your browser_ here: https://npm.runkit.com/tldts + +# API + +- `tldts.parse(url | hostname, options)` +- `tldts.getHostname(url | hostname, options)` +- `tldts.getDomain(url | hostname, options)` +- `tldts.getPublicSuffix(url | hostname, options)` +- `tldts.getSubdomain(url, | hostname, options)` +- `tldts.getDomainWithoutSuffix(url | hostname, options)` + +The behavior of `tldts` can be customized using an `options` argument for all +the functions exposed as part of the public API. This is useful to both change +the behavior of the library as well as fine-tune the performance depending on +your inputs. + +```js +{ + // Extract and validate hostname (default: true) + // When set to `false`, inputs will be considered valid hostnames. + extractHostname: boolean; + // Validate hostnames after parsing (default: true) + // If a hostname is not valid, not further processing is performed. When set + // to `false`, inputs to the library will be considered valid and parsing will + // proceed regardless. + validateHostname: boolean; + // Perform IP address detection (default: true). + detectIp: boolean; + // Assume that both URLs and hostnames can be given as input (default: true) + // If set to `false` we assume only URLs will be given as input, which + // speed-ups processing. + mixedInputs: boolean; + // Specifies extra valid suffixes (default: null) + validHosts: string[] | null; +} +``` + +The `parse` method returns handy **properties about a URL or a hostname**. + +```js +const tldts = require('tldts-icann'); + +tldts.parse('https://spark-public.s3.amazonaws.com/dataanalysis/loansData.csv'); +// { domain: 'amazonaws.com', +// domainWithoutSuffix: 'amazonaws', +// hostname: 'spark-public.s3.amazonaws.com', +// isIp: false, +// publicSuffix: 'com', +// subdomain: 'spark-public.s3' } + +tldts.parse( + 'https://spark-public.s3.amazonaws.com/dataanalysis/loansData.csv', + { allowPrivateDomains: true }, +); +// { domain: 'spark-public.s3.amazonaws.com', +// domainWithoutSuffix: 'spark-public', +// hostname: 'spark-public.s3.amazonaws.com', +// isIp: false, +// publicSuffix: 's3.amazonaws.com', +// subdomain: '' } + +tldts.parse('gopher://domain.unknown/'); +// { domain: 'domain.unknown', +// domainWithoutSuffix: 'domain', +// hostname: 'domain.unknown', +// isIp: false, +// publicSuffix: 'unknown', +// subdomain: '' } + +tldts.parse('https://192.168.0.0'); // IPv4 +// { domain: null, +// domainWithoutSuffix: null, +// hostname: '192.168.0.0', +// isIp: true, +// publicSuffix: null, +// subdomain: null } + +tldts.parse('https://[::1]'); // IPv6 +// { domain: null, +// domainWithoutSuffix: null, +// hostname: '::1', +// isIp: true, +// publicSuffix: null, +// subdomain: null } + +tldts.parse('tldts@emailprovider.co.uk'); // email +// { domain: 'emailprovider.co.uk', +// domainWithoutSuffix: 'emailprovider', +// hostname: 'emailprovider.co.uk', +// isIp: false, +// publicSuffix: 'co.uk', +// subdomain: '' } +``` + +| Property Name | Type | Description | +| :-------------------- | :----- | :---------------------------------------------- | +| `hostname` | `str` | `hostname` of the input extracted automatically | +| `domain` | `str` | Domain (tld + sld) | +| `domainWithoutSuffix` | `str` | Domain without public suffix | +| `subdomain` | `str` | Sub domain (what comes after `domain`) | +| `publicSuffix` | `str` | Public Suffix (tld) of `hostname` | +| `isIP` | `bool` | Is `hostname` an IP address? | + +## Single purpose methods + +These methods are shorthands if you want to retrieve only a single value (and +will perform better than `parse` because less work will be needed). + +### getHostname(url | hostname, options?) + +Returns the hostname from a given string. + +```javascript +const { getHostname } = require('tldts-icann'); + +getHostname('google.com'); // returns `google.com` +getHostname('fr.google.com'); // returns `fr.google.com` +getHostname('fr.google.google'); // returns `fr.google.google` +getHostname('foo.google.co.uk'); // returns `foo.google.co.uk` +getHostname('t.co'); // returns `t.co` +getHostname('fr.t.co'); // returns `fr.t.co` +getHostname( + 'https://user:password@example.co.uk:8080/some/path?and&query#hash', +); // returns `example.co.uk` +``` + +### getDomain(url | hostname, options?) + +Returns the fully qualified domain from a given string. + +```javascript +const { getDomain } = require('tldts-icann'); + +getDomain('google.com'); // returns `google.com` +getDomain('fr.google.com'); // returns `google.com` +getDomain('fr.google.google'); // returns `google.google` +getDomain('foo.google.co.uk'); // returns `google.co.uk` +getDomain('t.co'); // returns `t.co` +getDomain('fr.t.co'); // returns `t.co` +getDomain('https://user:password@example.co.uk:8080/some/path?and&query#hash'); // returns `example.co.uk` +``` + +### getDomainWithoutSuffix(url | hostname, options?) + +Returns the domain (as returned by `getDomain(...)`) without the public suffix part. + +```javascript +const { getDomainWithoutSuffix } = require('tldts-icann'); + +getDomainWithoutSuffix('google.com'); // returns `google` +getDomainWithoutSuffix('fr.google.com'); // returns `google` +getDomainWithoutSuffix('fr.google.google'); // returns `google` +getDomainWithoutSuffix('foo.google.co.uk'); // returns `google` +getDomainWithoutSuffix('t.co'); // returns `t` +getDomainWithoutSuffix('fr.t.co'); // returns `t` +getDomainWithoutSuffix( + 'https://user:password@example.co.uk:8080/some/path?and&query#hash', +); // returns `example` +``` + +### getSubdomain(url | hostname, options?) + +Returns the complete subdomain for a given string. + +```javascript +const { getSubdomain } = require('tldts-icann'); + +getSubdomain('google.com'); // returns `` +getSubdomain('fr.google.com'); // returns `fr` +getSubdomain('google.co.uk'); // returns `` +getSubdomain('foo.google.co.uk'); // returns `foo` +getSubdomain('moar.foo.google.co.uk'); // returns `moar.foo` +getSubdomain('t.co'); // returns `` +getSubdomain('fr.t.co'); // returns `fr` +getSubdomain( + 'https://user:password@secure.example.co.uk:443/some/path?and&query#hash', +); // returns `secure` +``` + +### getPublicSuffix(url | hostname, options?) + +Returns the [public suffix][] for a given string. + +```javascript +const { getPublicSuffix } = require('tldts-icann'); + +getPublicSuffix('google.com'); // returns `com` +getPublicSuffix('fr.google.com'); // returns `com` +getPublicSuffix('google.co.uk'); // returns `co.uk` +getPublicSuffix('s3.amazonaws.com'); // returns `com` +getPublicSuffix('tld.is.unknown'); // returns `unknown` +``` + +# Troubleshooting + +## Retrieving subdomain of `localhost` and custom hostnames + +`tldts` methods `getDomain` and `getSubdomain` are designed to **work only with _known and valid_ TLDs**. +This way, you can trust what a domain is. + +`localhost` is a valid hostname but not a TLD. You can pass additional options to each method exposed by `tldts`: + +```js +const tldts = require('tldts-icann'); + +tldts.getDomain('localhost'); // returns null +tldts.getSubdomain('vhost.localhost'); // returns null + +tldts.getDomain('localhost', { validHosts: ['localhost'] }); // returns 'localhost' +tldts.getSubdomain('vhost.localhost', { validHosts: ['localhost'] }); // returns 'vhost' +``` + +## Updating the TLDs List + +`tldts` made the opinionated choice of shipping with a list of suffixes directly +in its bundle. There is currently no mechanism to update the lists yourself, but +we make sure that the version shipped is always up-to-date. + +If you keep `tldts` updated, the lists should be up-to-date as well! + +# Performance + +`tldts` is the _fastest JavaScript library_ available for parsing hostnames. It is able to parse _millions of inputs per second_ (typically 2-3M depending on your hardware and inputs). It also offers granular options to fine-tune the behavior and performance of the library depending on the kind of inputs you are dealing with (e.g.: if you know you only manipulate valid hostnames you can disable the hostname extraction step with `{ extractHostname: false }`). + +Please see [this detailed comparison](./comparison/comparison.md) with other available libraries. + +## Contributors + +`tldts` is based upon the excellent `tld.js` library and would not exist without +the many contributors who worked on the project: + + +This project would not be possible without the amazing Mozilla's +[public suffix list][]. Thank you for your hard work! + +# License + +[MIT License](LICENSE). + +[badge-ci]: https://secure.travis-ci.org/remusao/tldts.svg?branch=master +[badge-downloads]: https://img.shields.io/npm/dm/tldts.svg +[public suffix list]: https://publicsuffix.org/list/ +[list the recent changes]: https://github.com/publicsuffix/list/commits/master +[changes Atom Feed]: https://github.com/publicsuffix/list/commits/master.atom +[public suffix]: https://publicsuffix.org/learn/ diff --git a/packages/tldts-icann/index.ts b/packages/tldts-icann/index.ts new file mode 100644 index 00000000..f9865cd1 --- /dev/null +++ b/packages/tldts-icann/index.ts @@ -0,0 +1,62 @@ +import { + FLAG, + getEmptyResult, + IOptions, + IResult, + parseImpl, + resetResult, +} from 'tldts-core'; + +import suffixLookup from './src/suffix-trie'; + +// For all methods but 'parse', it does not make sense to allocate an object +// every single time to only return the value of a specific attribute. To avoid +// this un-necessary allocation, we use a global object which is re-used. +const RESULT: IResult = getEmptyResult(); + +export function parse(url: string, options: Partial = {}): IResult { + return parseImpl(url, FLAG.ALL, suffixLookup, options, getEmptyResult()); +} + +export function getHostname( + url: string, + options: Partial = {}, +): string | null { + /*@__INLINE__*/ resetResult(RESULT); + return parseImpl(url, FLAG.HOSTNAME, suffixLookup, options, RESULT).hostname; +} + +export function getPublicSuffix( + url: string, + options: Partial = {}, +): string | null { + /*@__INLINE__*/ resetResult(RESULT); + return parseImpl(url, FLAG.PUBLIC_SUFFIX, suffixLookup, options, RESULT) + .publicSuffix; +} + +export function getDomain( + url: string, + options: Partial = {}, +): string | null { + /*@__INLINE__*/ resetResult(RESULT); + return parseImpl(url, FLAG.DOMAIN, suffixLookup, options, RESULT).domain; +} + +export function getSubdomain( + url: string, + options: Partial = {}, +): string | null { + /*@__INLINE__*/ resetResult(RESULT); + return parseImpl(url, FLAG.SUB_DOMAIN, suffixLookup, options, RESULT) + .subdomain; +} + +export function getDomainWithoutSuffix( + url: string, + options: Partial = {}, +): string | null { + /*@__INLINE__*/ resetResult(RESULT); + return parseImpl(url, FLAG.ALL, suffixLookup, options, RESULT) + .domainWithoutSuffix; +} diff --git a/packages/tldts-icann/package.json b/packages/tldts-icann/package.json new file mode 100644 index 00000000..e55af841 --- /dev/null +++ b/packages/tldts-icann/package.json @@ -0,0 +1,87 @@ +{ + "name": "tldts-icann", + "version": "6.0.22", + "description": "Library to work against complex domain names, subdomains and URIs. Only contains ICANN section.", + "author": { + "name": "Rémi Berson" + }, + "contributors": [ + "Alexei ", + "Alexey ", + "Andrew ", + "Johannes Ewald ", + "Jérôme Desboeufs ", + "Kelly Campbell ", + "Kiko Beats ", + "Kris Reeves ", + "Krzysztof Jan Modras ", + "Olivier Melcher ", + "Rémi Berson ", + "Saad Rashid ", + "Thomas Parisot ", + "Timo Tijhof ", + "Xavier Damman ", + "Yehezkiel Syamsuhadi " + ], + "publishConfig": { + "access": "public" + }, + "license": "MIT", + "homepage": "https://github.com/remusao/tldts#readme", + "bugs": { + "url": "https://github.com/remusao/tldts/issues" + }, + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/remusao/tldts.git" + }, + "main": "dist/cjs/index.js", + "module": "dist/es6/index.js", + "types": "dist/types/index.d.ts", + "files": [ + "dist", + "src", + "index.ts" + ], + "scripts": { + "clean": "rimraf dist coverage", + "build": "tsc --build ./tsconfig.json", + "bundle": "tsc --build ./tsconfig.bundle.json && rollup --config ./rollup.config.mjs", + "prepack": "yarn run bundle", + "test": "nyc mocha --config ../../.mocharc.js" + }, + "devDependencies": { + "@rollup/plugin-node-resolve": "^15.0.1", + "@rollup/plugin-terser": "^0.4.0", + "@rollup/plugin-typescript": "^11.0.0", + "@types/chai": "^4.2.18", + "@types/mocha": "^10.0.0", + "@types/node": "^20.2.3", + "chai": "^4.2.0", + "mocha": "^10.1.0", + "nyc": "^15.0.1", + "rimraf": "^5.0.1", + "rollup": "^4.1.0", + "rollup-plugin-sourcemaps": "^0.6.1", + "tldts-tests": "^6.0.22", + "typescript": "^5.0.4" + }, + "dependencies": { + "tldts-core": "^6.0.22" + }, + "keywords": [ + "tld", + "sld", + "domain", + "subdomain", + "subdomain", + "hostname", + "browser", + "uri", + "url", + "domain name", + "public suffix", + "url parsing", + "typescript" + ] +} diff --git a/packages/tldts-icann/rollup.config.mjs b/packages/tldts-icann/rollup.config.mjs new file mode 100644 index 00000000..b2300b4d --- /dev/null +++ b/packages/tldts-icann/rollup.config.mjs @@ -0,0 +1,41 @@ +import terser from '@rollup/plugin-terser'; +import resolve from '@rollup/plugin-node-resolve'; +import sourcemaps from 'rollup-plugin-sourcemaps'; + +export default [ + // cjs + { + input: './dist/es6/index.js', + output: { + file: './dist/cjs/index.js', + format: 'cjs', + sourcemap: true, + }, + plugins: [resolve(), sourcemaps()], + }, + // minified esm + umd + { + input: './dist/es6/index.js', + output: [ + { + file: './dist/index.esm.min.js', + format: 'esm', + name: 'tldts', + sourcemap: true, + }, + { + file: './dist/index.umd.min.js', + format: 'umd', + name: 'tldts', + sourcemap: true, + }, + { + file: './dist/index.cjs.min.js', + format: 'cjs', + name: 'tldts', + sourcemap: true, + }, + ], + plugins: [resolve(), terser({ output: { comments: false } }), sourcemaps()], + }, +]; diff --git a/packages/tldts-icann/src/data/trie.ts b/packages/tldts-icann/src/data/trie.ts new file mode 100644 index 00000000..656a9ea0 --- /dev/null +++ b/packages/tldts-icann/src/data/trie.ts @@ -0,0 +1,14 @@ + +export type ITrie = [0 | 1, { [label: string]: ITrie}]; + +export const exceptions: ITrie = (function() { + const _57: ITrie = [1,{}],_58: ITrie = [0,{"city":_57}]; +const exceptions: ITrie = [0,{"ck":[0,{"www":_57}],"jp":[0,{"kawasaki":_58,"kitakyushu":_58,"kobe":_58,"nagoya":_58,"sapporo":_58,"sendai":_58,"yokohama":_58}]}]; + return exceptions; +})(); + +export const rules: ITrie = (function() { + const _59: ITrie = [1,{}],_60: ITrie = [1,{"com":_59,"edu":_59,"gov":_59,"net":_59,"mil":_59,"org":_59}],_61: ITrie = [1,{"gov":_59,"com":_59,"org":_59,"net":_59,"edu":_59}],_62: ITrie = [1,{"gov":_59}],_63: ITrie = [1,{"com":_59}],_64: ITrie = [0,{"*":_59}],_65: ITrie = [1,{"com":_59,"edu":_59,"net":_59,"org":_59}],_66: ITrie = [1,{"co":_59,"net":_59,"org":_59}],_67: ITrie = [1,{"co":_59,"com":_59,"edu":_59,"gov":_59,"net":_59,"org":_59}],_68: ITrie = [1,{"com":_59,"org":_59,"net":_59,"edu":_59,"sch":_59,"gov":_59,"mil":_59,"name":_59}],_69: ITrie = [1,{"edu":_59,"biz":_59,"net":_59,"org":_59,"gov":_59,"info":_59,"com":_59}],_70: ITrie = [1,{"gs":_59}],_71: ITrie = [0,{"nes":_59}],_72: ITrie = [1,{"k12":_59,"cc":_59,"lib":_59}],_73: ITrie = [1,{"cc":_59}],_74: ITrie = [1,{"cc":_59,"lib":_59}]; +const rules: ITrie = [0,{"ac":_60,"ad":[1,{"nom":_59}],"ae":[1,{"co":_59,"net":_59,"org":_59,"sch":_59,"ac":_59,"gov":_59,"mil":_59}],"aero":[1,{"accident-investigation":_59,"accident-prevention":_59,"aerobatic":_59,"aeroclub":_59,"aerodrome":_59,"agents":_59,"aircraft":_59,"airline":_59,"airport":_59,"air-surveillance":_59,"airtraffic":_59,"air-traffic-control":_59,"ambulance":_59,"amusement":_59,"association":_59,"author":_59,"ballooning":_59,"broker":_59,"caa":_59,"cargo":_59,"catering":_59,"certification":_59,"championship":_59,"charter":_59,"civilaviation":_59,"club":_59,"conference":_59,"consultant":_59,"consulting":_59,"control":_59,"council":_59,"crew":_59,"design":_59,"dgca":_59,"educator":_59,"emergency":_59,"engine":_59,"engineer":_59,"entertainment":_59,"equipment":_59,"exchange":_59,"express":_59,"federation":_59,"flight":_59,"fuel":_59,"gliding":_59,"government":_59,"groundhandling":_59,"group":_59,"hanggliding":_59,"homebuilt":_59,"insurance":_59,"journal":_59,"journalist":_59,"leasing":_59,"logistics":_59,"magazine":_59,"maintenance":_59,"media":_59,"microlight":_59,"modelling":_59,"navigation":_59,"parachuting":_59,"paragliding":_59,"passenger-association":_59,"pilot":_59,"press":_59,"production":_59,"recreation":_59,"repbody":_59,"res":_59,"research":_59,"rotorcraft":_59,"safety":_59,"scientist":_59,"services":_59,"show":_59,"skydiving":_59,"software":_59,"student":_59,"trader":_59,"trading":_59,"trainer":_59,"union":_59,"workinggroup":_59,"works":_59}],"af":_61,"ag":[1,{"com":_59,"org":_59,"net":_59,"co":_59,"nom":_59}],"ai":[1,{"off":_59,"com":_59,"net":_59,"org":_59}],"al":_60,"am":[1,{"co":_59,"com":_59,"commune":_59,"net":_59,"org":_59}],"ao":[1,{"ed":_59,"gv":_59,"og":_59,"co":_59,"pb":_59,"it":_59}],"aq":_59,"ar":[1,{"bet":_59,"com":_59,"coop":_59,"edu":_59,"gob":_59,"gov":_59,"int":_59,"mil":_59,"musica":_59,"mutual":_59,"net":_59,"org":_59,"senasa":_59,"tur":_59}],"arpa":[1,{"e164":_59,"in-addr":_59,"ip6":_59,"iris":_59,"uri":_59,"urn":_59}],"as":_62,"asia":_59,"at":[1,{"ac":[1,{"sth":_59}],"co":_59,"gv":_59,"or":_59}],"au":[1,{"com":_59,"net":_59,"org":_59,"edu":[1,{"act":_59,"catholic":_59,"nsw":[1,{"schools":_59}],"nt":_59,"qld":_59,"sa":_59,"tas":_59,"vic":_59,"wa":_59}],"gov":[1,{"qld":_59,"sa":_59,"tas":_59,"vic":_59,"wa":_59}],"asn":_59,"id":_59,"info":_59,"conf":_59,"oz":_59,"act":_59,"nsw":_59,"nt":_59,"qld":_59,"sa":_59,"tas":_59,"vic":_59,"wa":_59}],"aw":_63,"ax":_59,"az":[1,{"com":_59,"net":_59,"int":_59,"gov":_59,"org":_59,"edu":_59,"info":_59,"pp":_59,"mil":_59,"name":_59,"pro":_59,"biz":_59}],"ba":_60,"bb":[1,{"biz":_59,"co":_59,"com":_59,"edu":_59,"gov":_59,"info":_59,"net":_59,"org":_59,"store":_59,"tv":_59}],"bd":_64,"be":[1,{"ac":_59}],"bf":_62,"bg":[1,{"0":_59,"1":_59,"2":_59,"3":_59,"4":_59,"5":_59,"6":_59,"7":_59,"8":_59,"9":_59,"a":_59,"b":_59,"c":_59,"d":_59,"e":_59,"f":_59,"g":_59,"h":_59,"i":_59,"j":_59,"k":_59,"l":_59,"m":_59,"n":_59,"o":_59,"p":_59,"q":_59,"r":_59,"s":_59,"t":_59,"u":_59,"v":_59,"w":_59,"x":_59,"y":_59,"z":_59}],"bh":_61,"bi":[1,{"co":_59,"com":_59,"edu":_59,"or":_59,"org":_59}],"biz":_59,"bj":[1,{"africa":_59,"agro":_59,"architectes":_59,"assur":_59,"avocats":_59,"co":_59,"com":_59,"eco":_59,"econo":_59,"edu":_59,"info":_59,"loisirs":_59,"money":_59,"net":_59,"org":_59,"ote":_59,"resto":_59,"restaurant":_59,"tourism":_59,"univ":_59}],"bm":_61,"bn":_61,"bo":[1,{"com":_59,"edu":_59,"gob":_59,"int":_59,"org":_59,"net":_59,"mil":_59,"tv":_59,"web":_59,"academia":_59,"agro":_59,"arte":_59,"blog":_59,"bolivia":_59,"ciencia":_59,"cooperativa":_59,"democracia":_59,"deporte":_59,"ecologia":_59,"economia":_59,"empresa":_59,"indigena":_59,"industria":_59,"info":_59,"medicina":_59,"movimiento":_59,"musica":_59,"natural":_59,"nombre":_59,"noticias":_59,"patria":_59,"politica":_59,"profesional":_59,"plurinacional":_59,"pueblo":_59,"revista":_59,"salud":_59,"tecnologia":_59,"tksat":_59,"transporte":_59,"wiki":_59}],"br":[1,{"9guacu":_59,"abc":_59,"adm":_59,"adv":_59,"agr":_59,"aju":_59,"am":_59,"anani":_59,"aparecida":_59,"app":_59,"arq":_59,"art":_59,"ato":_59,"b":_59,"barueri":_59,"belem":_59,"bhz":_59,"bib":_59,"bio":_59,"blog":_59,"bmd":_59,"boavista":_59,"bsb":_59,"campinagrande":_59,"campinas":_59,"caxias":_59,"cim":_59,"cng":_59,"cnt":_59,"com":_59,"contagem":_59,"coop":_59,"coz":_59,"cri":_59,"cuiaba":_59,"curitiba":_59,"def":_59,"des":_59,"det":_59,"dev":_59,"ecn":_59,"eco":_59,"edu":_59,"emp":_59,"enf":_59,"eng":_59,"esp":_59,"etc":_59,"eti":_59,"far":_59,"feira":_59,"flog":_59,"floripa":_59,"fm":_59,"fnd":_59,"fortal":_59,"fot":_59,"foz":_59,"fst":_59,"g12":_59,"geo":_59,"ggf":_59,"goiania":_59,"gov":[1,{"ac":_59,"al":_59,"am":_59,"ap":_59,"ba":_59,"ce":_59,"df":_59,"es":_59,"go":_59,"ma":_59,"mg":_59,"ms":_59,"mt":_59,"pa":_59,"pb":_59,"pe":_59,"pi":_59,"pr":_59,"rj":_59,"rn":_59,"ro":_59,"rr":_59,"rs":_59,"sc":_59,"se":_59,"sp":_59,"to":_59}],"gru":_59,"imb":_59,"ind":_59,"inf":_59,"jab":_59,"jampa":_59,"jdf":_59,"joinville":_59,"jor":_59,"jus":_59,"leg":_59,"lel":_59,"log":_59,"londrina":_59,"macapa":_59,"maceio":_59,"manaus":_59,"maringa":_59,"mat":_59,"med":_59,"mil":_59,"morena":_59,"mp":_59,"mus":_59,"natal":_59,"net":_59,"niteroi":_59,"nom":_64,"not":_59,"ntr":_59,"odo":_59,"ong":_59,"org":_59,"osasco":_59,"palmas":_59,"poa":_59,"ppg":_59,"pro":_59,"psc":_59,"psi":_59,"pvh":_59,"qsl":_59,"radio":_59,"rec":_59,"recife":_59,"rep":_59,"ribeirao":_59,"rio":_59,"riobranco":_59,"riopreto":_59,"salvador":_59,"sampa":_59,"santamaria":_59,"santoandre":_59,"saobernardo":_59,"saogonca":_59,"seg":_59,"sjc":_59,"slg":_59,"slz":_59,"sorocaba":_59,"srv":_59,"taxi":_59,"tc":_59,"tec":_59,"teo":_59,"the":_59,"tmp":_59,"trd":_59,"tur":_59,"tv":_59,"udi":_59,"vet":_59,"vix":_59,"vlog":_59,"wiki":_59,"zlg":_59}],"bs":_61,"bt":_61,"bv":_59,"bw":[1,{"co":_59,"org":_59}],"by":[1,{"gov":_59,"mil":_59,"com":_59,"of":_59}],"bz":_61,"ca":[1,{"ab":_59,"bc":_59,"mb":_59,"nb":_59,"nf":_59,"nl":_59,"ns":_59,"nt":_59,"nu":_59,"on":_59,"pe":_59,"qc":_59,"sk":_59,"yk":_59,"gc":_59}],"cat":_59,"cc":_59,"cd":_62,"cf":_59,"cg":_59,"ch":_59,"ci":[1,{"org":_59,"or":_59,"com":_59,"co":_59,"edu":_59,"ed":_59,"ac":_59,"net":_59,"go":_59,"asso":_59,"xn--aroport-bya":_59,"aéroport":_59,"int":_59,"presse":_59,"md":_59,"gouv":_59}],"ck":_64,"cl":[1,{"co":_59,"gob":_59,"gov":_59,"mil":_59}],"cm":[1,{"co":_59,"com":_59,"gov":_59,"net":_59}],"cn":[1,{"ac":_59,"com":_59,"edu":_59,"gov":_59,"net":_59,"org":_59,"mil":_59,"xn--55qx5d":_59,"公司":_59,"xn--io0a7i":_59,"网络":_59,"xn--od0alg":_59,"網絡":_59,"ah":_59,"bj":_59,"cq":_59,"fj":_59,"gd":_59,"gs":_59,"gz":_59,"gx":_59,"ha":_59,"hb":_59,"he":_59,"hi":_59,"hl":_59,"hn":_59,"jl":_59,"js":_59,"jx":_59,"ln":_59,"nm":_59,"nx":_59,"qh":_59,"sc":_59,"sd":_59,"sh":_59,"sn":_59,"sx":_59,"tj":_59,"xj":_59,"xz":_59,"yn":_59,"zj":_59,"hk":_59,"mo":_59,"tw":_59}],"co":[1,{"arts":_59,"com":_59,"edu":_59,"firm":_59,"gov":_59,"info":_59,"int":_59,"mil":_59,"net":_59,"nom":_59,"org":_59,"rec":_59,"web":_59}],"com":_59,"coop":_59,"cr":[1,{"ac":_59,"co":_59,"ed":_59,"fi":_59,"go":_59,"or":_59,"sa":_59}],"cu":[1,{"com":_59,"edu":_59,"org":_59,"net":_59,"gov":_59,"inf":_59}],"cv":[1,{"com":_59,"edu":_59,"int":_59,"nome":_59,"org":_59}],"cw":_65,"cx":_62,"cy":[1,{"ac":_59,"biz":_59,"com":_59,"ekloges":_59,"gov":_59,"ltd":_59,"mil":_59,"net":_59,"org":_59,"press":_59,"pro":_59,"tm":_59}],"cz":_59,"de":_59,"dj":_59,"dk":_59,"dm":_61,"do":[1,{"art":_59,"com":_59,"edu":_59,"gob":_59,"gov":_59,"mil":_59,"net":_59,"org":_59,"sld":_59,"web":_59}],"dz":[1,{"art":_59,"asso":_59,"com":_59,"edu":_59,"gov":_59,"org":_59,"net":_59,"pol":_59,"soc":_59,"tm":_59}],"ec":[1,{"com":_59,"info":_59,"net":_59,"fin":_59,"k12":_59,"med":_59,"pro":_59,"org":_59,"edu":_59,"gov":_59,"gob":_59,"mil":_59}],"edu":_59,"ee":[1,{"edu":_59,"gov":_59,"riik":_59,"lib":_59,"med":_59,"com":_59,"pri":_59,"aip":_59,"org":_59,"fie":_59}],"eg":[1,{"com":_59,"edu":_59,"eun":_59,"gov":_59,"mil":_59,"name":_59,"net":_59,"org":_59,"sci":_59}],"er":_64,"es":[1,{"com":_59,"nom":_59,"org":_59,"gob":_59,"edu":_59}],"et":[1,{"com":_59,"gov":_59,"org":_59,"edu":_59,"biz":_59,"name":_59,"info":_59,"net":_59}],"eu":_59,"fi":[1,{"aland":_59}],"fj":[1,{"ac":_59,"biz":_59,"com":_59,"gov":_59,"info":_59,"mil":_59,"name":_59,"net":_59,"org":_59,"pro":_59}],"fk":_64,"fm":_65,"fo":_59,"fr":[1,{"asso":_59,"com":_59,"gouv":_59,"nom":_59,"prd":_59,"tm":_59,"avoues":_59,"cci":_59,"greta":_59,"huissier-justice":_59}],"ga":_59,"gb":_59,"gd":[1,{"edu":_59,"gov":_59}],"ge":[1,{"com":_59,"edu":_59,"gov":_59,"org":_59,"mil":_59,"net":_59,"pvt":_59}],"gf":_59,"gg":_66,"gh":[1,{"com":_59,"edu":_59,"gov":_59,"org":_59,"mil":_59}],"gi":[1,{"com":_59,"ltd":_59,"gov":_59,"mod":_59,"edu":_59,"org":_59}],"gl":[1,{"co":_59,"com":_59,"edu":_59,"net":_59,"org":_59}],"gm":_59,"gn":[1,{"ac":_59,"com":_59,"edu":_59,"gov":_59,"org":_59,"net":_59}],"gov":_59,"gp":[1,{"com":_59,"net":_59,"mobi":_59,"edu":_59,"org":_59,"asso":_59}],"gq":_59,"gr":_61,"gs":_59,"gt":[1,{"com":_59,"edu":_59,"gob":_59,"ind":_59,"mil":_59,"net":_59,"org":_59}],"gu":[1,{"com":_59,"edu":_59,"gov":_59,"guam":_59,"info":_59,"net":_59,"org":_59,"web":_59}],"gw":_59,"gy":_67,"hk":[1,{"com":_59,"edu":_59,"gov":_59,"idv":_59,"net":_59,"org":_59,"xn--55qx5d":_59,"公司":_59,"xn--wcvs22d":_59,"教育":_59,"xn--lcvr32d":_59,"敎育":_59,"xn--mxtq1m":_59,"政府":_59,"xn--gmqw5a":_59,"個人":_59,"xn--ciqpn":_59,"个人":_59,"xn--gmq050i":_59,"箇人":_59,"xn--zf0avx":_59,"網络":_59,"xn--io0a7i":_59,"网络":_59,"xn--mk0axi":_59,"组織":_59,"xn--od0alg":_59,"網絡":_59,"xn--od0aq3b":_59,"网絡":_59,"xn--tn0ag":_59,"组织":_59,"xn--uc0atv":_59,"組織":_59,"xn--uc0ay4a":_59,"組织":_59}],"hm":_59,"hn":[1,{"com":_59,"edu":_59,"org":_59,"net":_59,"mil":_59,"gob":_59}],"hr":[1,{"iz":_59,"from":_59,"name":_59,"com":_59}],"ht":[1,{"com":_59,"shop":_59,"firm":_59,"info":_59,"adult":_59,"net":_59,"pro":_59,"org":_59,"med":_59,"art":_59,"coop":_59,"pol":_59,"asso":_59,"edu":_59,"rel":_59,"gouv":_59,"perso":_59}],"hu":[1,{"2000":_59,"co":_59,"info":_59,"org":_59,"priv":_59,"sport":_59,"tm":_59,"agrar":_59,"bolt":_59,"casino":_59,"city":_59,"erotica":_59,"erotika":_59,"film":_59,"forum":_59,"games":_59,"hotel":_59,"ingatlan":_59,"jogasz":_59,"konyvelo":_59,"lakas":_59,"media":_59,"news":_59,"reklam":_59,"sex":_59,"shop":_59,"suli":_59,"szex":_59,"tozsde":_59,"utazas":_59,"video":_59}],"id":[1,{"ac":_59,"biz":_59,"co":_59,"desa":_59,"go":_59,"mil":_59,"my":_59,"net":_59,"or":_59,"ponpes":_59,"sch":_59,"web":_59}],"ie":_62,"il":[1,{"ac":_59,"co":_59,"gov":_59,"idf":_59,"k12":_59,"muni":_59,"net":_59,"org":_59}],"xn--4dbrk0ce":[1,{"xn--4dbgdty6c":_59,"xn--5dbhl8d":_59,"xn--8dbq2a":_59,"xn--hebda8b":_59}],"ישראל":[1,{"אקדמיה":_59,"ישוב":_59,"צהל":_59,"ממשל":_59}],"im":[1,{"ac":_59,"co":[1,{"ltd":_59,"plc":_59}],"com":_59,"net":_59,"org":_59,"tt":_59,"tv":_59}],"in":[1,{"5g":_59,"6g":_59,"ac":_59,"ai":_59,"am":_59,"bihar":_59,"biz":_59,"business":_59,"ca":_59,"cn":_59,"co":_59,"com":_59,"coop":_59,"cs":_59,"delhi":_59,"dr":_59,"edu":_59,"er":_59,"firm":_59,"gen":_59,"gov":_59,"gujarat":_59,"ind":_59,"info":_59,"int":_59,"internet":_59,"io":_59,"me":_59,"mil":_59,"net":_59,"nic":_59,"org":_59,"pg":_59,"post":_59,"pro":_59,"res":_59,"travel":_59,"tv":_59,"uk":_59,"up":_59,"us":_59}],"info":_59,"int":[1,{"eu":_59}],"io":_63,"iq":_60,"ir":[1,{"ac":_59,"co":_59,"gov":_59,"id":_59,"net":_59,"org":_59,"sch":_59,"xn--mgba3a4f16a":_59,"ایران":_59,"xn--mgba3a4fra":_59,"ايران":_59}],"is":[1,{"net":_59,"com":_59,"edu":_59,"gov":_59,"org":_59,"int":_59}],"it":[1,{"gov":_59,"edu":_59,"abr":_59,"abruzzo":_59,"aosta-valley":_59,"aostavalley":_59,"bas":_59,"basilicata":_59,"cal":_59,"calabria":_59,"cam":_59,"campania":_59,"emilia-romagna":_59,"emiliaromagna":_59,"emr":_59,"friuli-v-giulia":_59,"friuli-ve-giulia":_59,"friuli-vegiulia":_59,"friuli-venezia-giulia":_59,"friuli-veneziagiulia":_59,"friuli-vgiulia":_59,"friuliv-giulia":_59,"friulive-giulia":_59,"friulivegiulia":_59,"friulivenezia-giulia":_59,"friuliveneziagiulia":_59,"friulivgiulia":_59,"fvg":_59,"laz":_59,"lazio":_59,"lig":_59,"liguria":_59,"lom":_59,"lombardia":_59,"lombardy":_59,"lucania":_59,"mar":_59,"marche":_59,"mol":_59,"molise":_59,"piedmont":_59,"piemonte":_59,"pmn":_59,"pug":_59,"puglia":_59,"sar":_59,"sardegna":_59,"sardinia":_59,"sic":_59,"sicilia":_59,"sicily":_59,"taa":_59,"tos":_59,"toscana":_59,"trentin-sud-tirol":_59,"xn--trentin-sd-tirol-rzb":_59,"trentin-süd-tirol":_59,"trentin-sudtirol":_59,"xn--trentin-sdtirol-7vb":_59,"trentin-südtirol":_59,"trentin-sued-tirol":_59,"trentin-suedtirol":_59,"trentino-a-adige":_59,"trentino-aadige":_59,"trentino-alto-adige":_59,"trentino-altoadige":_59,"trentino-s-tirol":_59,"trentino-stirol":_59,"trentino-sud-tirol":_59,"xn--trentino-sd-tirol-c3b":_59,"trentino-süd-tirol":_59,"trentino-sudtirol":_59,"xn--trentino-sdtirol-szb":_59,"trentino-südtirol":_59,"trentino-sued-tirol":_59,"trentino-suedtirol":_59,"trentino":_59,"trentinoa-adige":_59,"trentinoaadige":_59,"trentinoalto-adige":_59,"trentinoaltoadige":_59,"trentinos-tirol":_59,"trentinostirol":_59,"trentinosud-tirol":_59,"xn--trentinosd-tirol-rzb":_59,"trentinosüd-tirol":_59,"trentinosudtirol":_59,"xn--trentinosdtirol-7vb":_59,"trentinosüdtirol":_59,"trentinosued-tirol":_59,"trentinosuedtirol":_59,"trentinsud-tirol":_59,"xn--trentinsd-tirol-6vb":_59,"trentinsüd-tirol":_59,"trentinsudtirol":_59,"xn--trentinsdtirol-nsb":_59,"trentinsüdtirol":_59,"trentinsued-tirol":_59,"trentinsuedtirol":_59,"tuscany":_59,"umb":_59,"umbria":_59,"val-d-aosta":_59,"val-daosta":_59,"vald-aosta":_59,"valdaosta":_59,"valle-aosta":_59,"valle-d-aosta":_59,"valle-daosta":_59,"valleaosta":_59,"valled-aosta":_59,"valledaosta":_59,"vallee-aoste":_59,"xn--valle-aoste-ebb":_59,"vallée-aoste":_59,"vallee-d-aoste":_59,"xn--valle-d-aoste-ehb":_59,"vallée-d-aoste":_59,"valleeaoste":_59,"xn--valleaoste-e7a":_59,"valléeaoste":_59,"valleedaoste":_59,"xn--valledaoste-ebb":_59,"valléedaoste":_59,"vao":_59,"vda":_59,"ven":_59,"veneto":_59,"ag":_59,"agrigento":_59,"al":_59,"alessandria":_59,"alto-adige":_59,"altoadige":_59,"an":_59,"ancona":_59,"andria-barletta-trani":_59,"andria-trani-barletta":_59,"andriabarlettatrani":_59,"andriatranibarletta":_59,"ao":_59,"aosta":_59,"aoste":_59,"ap":_59,"aq":_59,"aquila":_59,"ar":_59,"arezzo":_59,"ascoli-piceno":_59,"ascolipiceno":_59,"asti":_59,"at":_59,"av":_59,"avellino":_59,"ba":_59,"balsan-sudtirol":_59,"xn--balsan-sdtirol-nsb":_59,"balsan-südtirol":_59,"balsan-suedtirol":_59,"balsan":_59,"bari":_59,"barletta-trani-andria":_59,"barlettatraniandria":_59,"belluno":_59,"benevento":_59,"bergamo":_59,"bg":_59,"bi":_59,"biella":_59,"bl":_59,"bn":_59,"bo":_59,"bologna":_59,"bolzano-altoadige":_59,"bolzano":_59,"bozen-sudtirol":_59,"xn--bozen-sdtirol-2ob":_59,"bozen-südtirol":_59,"bozen-suedtirol":_59,"bozen":_59,"br":_59,"brescia":_59,"brindisi":_59,"bs":_59,"bt":_59,"bulsan-sudtirol":_59,"xn--bulsan-sdtirol-nsb":_59,"bulsan-südtirol":_59,"bulsan-suedtirol":_59,"bulsan":_59,"bz":_59,"ca":_59,"cagliari":_59,"caltanissetta":_59,"campidano-medio":_59,"campidanomedio":_59,"campobasso":_59,"carbonia-iglesias":_59,"carboniaiglesias":_59,"carrara-massa":_59,"carraramassa":_59,"caserta":_59,"catania":_59,"catanzaro":_59,"cb":_59,"ce":_59,"cesena-forli":_59,"xn--cesena-forl-mcb":_59,"cesena-forlì":_59,"cesenaforli":_59,"xn--cesenaforl-i8a":_59,"cesenaforlì":_59,"ch":_59,"chieti":_59,"ci":_59,"cl":_59,"cn":_59,"co":_59,"como":_59,"cosenza":_59,"cr":_59,"cremona":_59,"crotone":_59,"cs":_59,"ct":_59,"cuneo":_59,"cz":_59,"dell-ogliastra":_59,"dellogliastra":_59,"en":_59,"enna":_59,"fc":_59,"fe":_59,"fermo":_59,"ferrara":_59,"fg":_59,"fi":_59,"firenze":_59,"florence":_59,"fm":_59,"foggia":_59,"forli-cesena":_59,"xn--forl-cesena-fcb":_59,"forlì-cesena":_59,"forlicesena":_59,"xn--forlcesena-c8a":_59,"forlìcesena":_59,"fr":_59,"frosinone":_59,"ge":_59,"genoa":_59,"genova":_59,"go":_59,"gorizia":_59,"gr":_59,"grosseto":_59,"iglesias-carbonia":_59,"iglesiascarbonia":_59,"im":_59,"imperia":_59,"is":_59,"isernia":_59,"kr":_59,"la-spezia":_59,"laquila":_59,"laspezia":_59,"latina":_59,"lc":_59,"le":_59,"lecce":_59,"lecco":_59,"li":_59,"livorno":_59,"lo":_59,"lodi":_59,"lt":_59,"lu":_59,"lucca":_59,"macerata":_59,"mantova":_59,"massa-carrara":_59,"massacarrara":_59,"matera":_59,"mb":_59,"mc":_59,"me":_59,"medio-campidano":_59,"mediocampidano":_59,"messina":_59,"mi":_59,"milan":_59,"milano":_59,"mn":_59,"mo":_59,"modena":_59,"monza-brianza":_59,"monza-e-della-brianza":_59,"monza":_59,"monzabrianza":_59,"monzaebrianza":_59,"monzaedellabrianza":_59,"ms":_59,"mt":_59,"na":_59,"naples":_59,"napoli":_59,"no":_59,"novara":_59,"nu":_59,"nuoro":_59,"og":_59,"ogliastra":_59,"olbia-tempio":_59,"olbiatempio":_59,"or":_59,"oristano":_59,"ot":_59,"pa":_59,"padova":_59,"padua":_59,"palermo":_59,"parma":_59,"pavia":_59,"pc":_59,"pd":_59,"pe":_59,"perugia":_59,"pesaro-urbino":_59,"pesarourbino":_59,"pescara":_59,"pg":_59,"pi":_59,"piacenza":_59,"pisa":_59,"pistoia":_59,"pn":_59,"po":_59,"pordenone":_59,"potenza":_59,"pr":_59,"prato":_59,"pt":_59,"pu":_59,"pv":_59,"pz":_59,"ra":_59,"ragusa":_59,"ravenna":_59,"rc":_59,"re":_59,"reggio-calabria":_59,"reggio-emilia":_59,"reggiocalabria":_59,"reggioemilia":_59,"rg":_59,"ri":_59,"rieti":_59,"rimini":_59,"rm":_59,"rn":_59,"ro":_59,"roma":_59,"rome":_59,"rovigo":_59,"sa":_59,"salerno":_59,"sassari":_59,"savona":_59,"si":_59,"siena":_59,"siracusa":_59,"so":_59,"sondrio":_59,"sp":_59,"sr":_59,"ss":_59,"suedtirol":_59,"xn--sdtirol-n2a":_59,"südtirol":_59,"sv":_59,"ta":_59,"taranto":_59,"te":_59,"tempio-olbia":_59,"tempioolbia":_59,"teramo":_59,"terni":_59,"tn":_59,"to":_59,"torino":_59,"tp":_59,"tr":_59,"trani-andria-barletta":_59,"trani-barletta-andria":_59,"traniandriabarletta":_59,"tranibarlettaandria":_59,"trapani":_59,"trento":_59,"treviso":_59,"trieste":_59,"ts":_59,"turin":_59,"tv":_59,"ud":_59,"udine":_59,"urbino-pesaro":_59,"urbinopesaro":_59,"va":_59,"varese":_59,"vb":_59,"vc":_59,"ve":_59,"venezia":_59,"venice":_59,"verbania":_59,"vercelli":_59,"verona":_59,"vi":_59,"vibo-valentia":_59,"vibovalentia":_59,"vicenza":_59,"viterbo":_59,"vr":_59,"vs":_59,"vt":_59,"vv":_59}],"je":_66,"jm":_64,"jo":_68,"jobs":_59,"jp":[1,{"ac":_59,"ad":_59,"co":_59,"ed":_59,"go":_59,"gr":_59,"lg":_59,"ne":_59,"or":_59,"aichi":[1,{"aisai":_59,"ama":_59,"anjo":_59,"asuke":_59,"chiryu":_59,"chita":_59,"fuso":_59,"gamagori":_59,"handa":_59,"hazu":_59,"hekinan":_59,"higashiura":_59,"ichinomiya":_59,"inazawa":_59,"inuyama":_59,"isshiki":_59,"iwakura":_59,"kanie":_59,"kariya":_59,"kasugai":_59,"kira":_59,"kiyosu":_59,"komaki":_59,"konan":_59,"kota":_59,"mihama":_59,"miyoshi":_59,"nishio":_59,"nisshin":_59,"obu":_59,"oguchi":_59,"oharu":_59,"okazaki":_59,"owariasahi":_59,"seto":_59,"shikatsu":_59,"shinshiro":_59,"shitara":_59,"tahara":_59,"takahama":_59,"tobishima":_59,"toei":_59,"togo":_59,"tokai":_59,"tokoname":_59,"toyoake":_59,"toyohashi":_59,"toyokawa":_59,"toyone":_59,"toyota":_59,"tsushima":_59,"yatomi":_59}],"akita":[1,{"akita":_59,"daisen":_59,"fujisato":_59,"gojome":_59,"hachirogata":_59,"happou":_59,"higashinaruse":_59,"honjo":_59,"honjyo":_59,"ikawa":_59,"kamikoani":_59,"kamioka":_59,"katagami":_59,"kazuno":_59,"kitaakita":_59,"kosaka":_59,"kyowa":_59,"misato":_59,"mitane":_59,"moriyoshi":_59,"nikaho":_59,"noshiro":_59,"odate":_59,"oga":_59,"ogata":_59,"semboku":_59,"yokote":_59,"yurihonjo":_59}],"aomori":[1,{"aomori":_59,"gonohe":_59,"hachinohe":_59,"hashikami":_59,"hiranai":_59,"hirosaki":_59,"itayanagi":_59,"kuroishi":_59,"misawa":_59,"mutsu":_59,"nakadomari":_59,"noheji":_59,"oirase":_59,"owani":_59,"rokunohe":_59,"sannohe":_59,"shichinohe":_59,"shingo":_59,"takko":_59,"towada":_59,"tsugaru":_59,"tsuruta":_59}],"chiba":[1,{"abiko":_59,"asahi":_59,"chonan":_59,"chosei":_59,"choshi":_59,"chuo":_59,"funabashi":_59,"futtsu":_59,"hanamigawa":_59,"ichihara":_59,"ichikawa":_59,"ichinomiya":_59,"inzai":_59,"isumi":_59,"kamagaya":_59,"kamogawa":_59,"kashiwa":_59,"katori":_59,"katsuura":_59,"kimitsu":_59,"kisarazu":_59,"kozaki":_59,"kujukuri":_59,"kyonan":_59,"matsudo":_59,"midori":_59,"mihama":_59,"minamiboso":_59,"mobara":_59,"mutsuzawa":_59,"nagara":_59,"nagareyama":_59,"narashino":_59,"narita":_59,"noda":_59,"oamishirasato":_59,"omigawa":_59,"onjuku":_59,"otaki":_59,"sakae":_59,"sakura":_59,"shimofusa":_59,"shirako":_59,"shiroi":_59,"shisui":_59,"sodegaura":_59,"sosa":_59,"tako":_59,"tateyama":_59,"togane":_59,"tohnosho":_59,"tomisato":_59,"urayasu":_59,"yachimata":_59,"yachiyo":_59,"yokaichiba":_59,"yokoshibahikari":_59,"yotsukaido":_59}],"ehime":[1,{"ainan":_59,"honai":_59,"ikata":_59,"imabari":_59,"iyo":_59,"kamijima":_59,"kihoku":_59,"kumakogen":_59,"masaki":_59,"matsuno":_59,"matsuyama":_59,"namikata":_59,"niihama":_59,"ozu":_59,"saijo":_59,"seiyo":_59,"shikokuchuo":_59,"tobe":_59,"toon":_59,"uchiko":_59,"uwajima":_59,"yawatahama":_59}],"fukui":[1,{"echizen":_59,"eiheiji":_59,"fukui":_59,"ikeda":_59,"katsuyama":_59,"mihama":_59,"minamiechizen":_59,"obama":_59,"ohi":_59,"ono":_59,"sabae":_59,"sakai":_59,"takahama":_59,"tsuruga":_59,"wakasa":_59}],"fukuoka":[1,{"ashiya":_59,"buzen":_59,"chikugo":_59,"chikuho":_59,"chikujo":_59,"chikushino":_59,"chikuzen":_59,"chuo":_59,"dazaifu":_59,"fukuchi":_59,"hakata":_59,"higashi":_59,"hirokawa":_59,"hisayama":_59,"iizuka":_59,"inatsuki":_59,"kaho":_59,"kasuga":_59,"kasuya":_59,"kawara":_59,"keisen":_59,"koga":_59,"kurate":_59,"kurogi":_59,"kurume":_59,"minami":_59,"miyako":_59,"miyama":_59,"miyawaka":_59,"mizumaki":_59,"munakata":_59,"nakagawa":_59,"nakama":_59,"nishi":_59,"nogata":_59,"ogori":_59,"okagaki":_59,"okawa":_59,"oki":_59,"omuta":_59,"onga":_59,"onojo":_59,"oto":_59,"saigawa":_59,"sasaguri":_59,"shingu":_59,"shinyoshitomi":_59,"shonai":_59,"soeda":_59,"sue":_59,"tachiarai":_59,"tagawa":_59,"takata":_59,"toho":_59,"toyotsu":_59,"tsuiki":_59,"ukiha":_59,"umi":_59,"usui":_59,"yamada":_59,"yame":_59,"yanagawa":_59,"yukuhashi":_59}],"fukushima":[1,{"aizubange":_59,"aizumisato":_59,"aizuwakamatsu":_59,"asakawa":_59,"bandai":_59,"date":_59,"fukushima":_59,"furudono":_59,"futaba":_59,"hanawa":_59,"higashi":_59,"hirata":_59,"hirono":_59,"iitate":_59,"inawashiro":_59,"ishikawa":_59,"iwaki":_59,"izumizaki":_59,"kagamiishi":_59,"kaneyama":_59,"kawamata":_59,"kitakata":_59,"kitashiobara":_59,"koori":_59,"koriyama":_59,"kunimi":_59,"miharu":_59,"mishima":_59,"namie":_59,"nango":_59,"nishiaizu":_59,"nishigo":_59,"okuma":_59,"omotego":_59,"ono":_59,"otama":_59,"samegawa":_59,"shimogo":_59,"shirakawa":_59,"showa":_59,"soma":_59,"sukagawa":_59,"taishin":_59,"tamakawa":_59,"tanagura":_59,"tenei":_59,"yabuki":_59,"yamato":_59,"yamatsuri":_59,"yanaizu":_59,"yugawa":_59}],"gifu":[1,{"anpachi":_59,"ena":_59,"gifu":_59,"ginan":_59,"godo":_59,"gujo":_59,"hashima":_59,"hichiso":_59,"hida":_59,"higashishirakawa":_59,"ibigawa":_59,"ikeda":_59,"kakamigahara":_59,"kani":_59,"kasahara":_59,"kasamatsu":_59,"kawaue":_59,"kitagata":_59,"mino":_59,"minokamo":_59,"mitake":_59,"mizunami":_59,"motosu":_59,"nakatsugawa":_59,"ogaki":_59,"sakahogi":_59,"seki":_59,"sekigahara":_59,"shirakawa":_59,"tajimi":_59,"takayama":_59,"tarui":_59,"toki":_59,"tomika":_59,"wanouchi":_59,"yamagata":_59,"yaotsu":_59,"yoro":_59}],"gunma":[1,{"annaka":_59,"chiyoda":_59,"fujioka":_59,"higashiagatsuma":_59,"isesaki":_59,"itakura":_59,"kanna":_59,"kanra":_59,"katashina":_59,"kawaba":_59,"kiryu":_59,"kusatsu":_59,"maebashi":_59,"meiwa":_59,"midori":_59,"minakami":_59,"naganohara":_59,"nakanojo":_59,"nanmoku":_59,"numata":_59,"oizumi":_59,"ora":_59,"ota":_59,"shibukawa":_59,"shimonita":_59,"shinto":_59,"showa":_59,"takasaki":_59,"takayama":_59,"tamamura":_59,"tatebayashi":_59,"tomioka":_59,"tsukiyono":_59,"tsumagoi":_59,"ueno":_59,"yoshioka":_59}],"hiroshima":[1,{"asaminami":_59,"daiwa":_59,"etajima":_59,"fuchu":_59,"fukuyama":_59,"hatsukaichi":_59,"higashihiroshima":_59,"hongo":_59,"jinsekikogen":_59,"kaita":_59,"kui":_59,"kumano":_59,"kure":_59,"mihara":_59,"miyoshi":_59,"naka":_59,"onomichi":_59,"osakikamijima":_59,"otake":_59,"saka":_59,"sera":_59,"seranishi":_59,"shinichi":_59,"shobara":_59,"takehara":_59}],"hokkaido":[1,{"abashiri":_59,"abira":_59,"aibetsu":_59,"akabira":_59,"akkeshi":_59,"asahikawa":_59,"ashibetsu":_59,"ashoro":_59,"assabu":_59,"atsuma":_59,"bibai":_59,"biei":_59,"bifuka":_59,"bihoro":_59,"biratori":_59,"chippubetsu":_59,"chitose":_59,"date":_59,"ebetsu":_59,"embetsu":_59,"eniwa":_59,"erimo":_59,"esan":_59,"esashi":_59,"fukagawa":_59,"fukushima":_59,"furano":_59,"furubira":_59,"haboro":_59,"hakodate":_59,"hamatonbetsu":_59,"hidaka":_59,"higashikagura":_59,"higashikawa":_59,"hiroo":_59,"hokuryu":_59,"hokuto":_59,"honbetsu":_59,"horokanai":_59,"horonobe":_59,"ikeda":_59,"imakane":_59,"ishikari":_59,"iwamizawa":_59,"iwanai":_59,"kamifurano":_59,"kamikawa":_59,"kamishihoro":_59,"kamisunagawa":_59,"kamoenai":_59,"kayabe":_59,"kembuchi":_59,"kikonai":_59,"kimobetsu":_59,"kitahiroshima":_59,"kitami":_59,"kiyosato":_59,"koshimizu":_59,"kunneppu":_59,"kuriyama":_59,"kuromatsunai":_59,"kushiro":_59,"kutchan":_59,"kyowa":_59,"mashike":_59,"matsumae":_59,"mikasa":_59,"minamifurano":_59,"mombetsu":_59,"moseushi":_59,"mukawa":_59,"muroran":_59,"naie":_59,"nakagawa":_59,"nakasatsunai":_59,"nakatombetsu":_59,"nanae":_59,"nanporo":_59,"nayoro":_59,"nemuro":_59,"niikappu":_59,"niki":_59,"nishiokoppe":_59,"noboribetsu":_59,"numata":_59,"obihiro":_59,"obira":_59,"oketo":_59,"okoppe":_59,"otaru":_59,"otobe":_59,"otofuke":_59,"otoineppu":_59,"oumu":_59,"ozora":_59,"pippu":_59,"rankoshi":_59,"rebun":_59,"rikubetsu":_59,"rishiri":_59,"rishirifuji":_59,"saroma":_59,"sarufutsu":_59,"shakotan":_59,"shari":_59,"shibecha":_59,"shibetsu":_59,"shikabe":_59,"shikaoi":_59,"shimamaki":_59,"shimizu":_59,"shimokawa":_59,"shinshinotsu":_59,"shintoku":_59,"shiranuka":_59,"shiraoi":_59,"shiriuchi":_59,"sobetsu":_59,"sunagawa":_59,"taiki":_59,"takasu":_59,"takikawa":_59,"takinoue":_59,"teshikaga":_59,"tobetsu":_59,"tohma":_59,"tomakomai":_59,"tomari":_59,"toya":_59,"toyako":_59,"toyotomi":_59,"toyoura":_59,"tsubetsu":_59,"tsukigata":_59,"urakawa":_59,"urausu":_59,"uryu":_59,"utashinai":_59,"wakkanai":_59,"wassamu":_59,"yakumo":_59,"yoichi":_59}],"hyogo":[1,{"aioi":_59,"akashi":_59,"ako":_59,"amagasaki":_59,"aogaki":_59,"asago":_59,"ashiya":_59,"awaji":_59,"fukusaki":_59,"goshiki":_59,"harima":_59,"himeji":_59,"ichikawa":_59,"inagawa":_59,"itami":_59,"kakogawa":_59,"kamigori":_59,"kamikawa":_59,"kasai":_59,"kasuga":_59,"kawanishi":_59,"miki":_59,"minamiawaji":_59,"nishinomiya":_59,"nishiwaki":_59,"ono":_59,"sanda":_59,"sannan":_59,"sasayama":_59,"sayo":_59,"shingu":_59,"shinonsen":_59,"shiso":_59,"sumoto":_59,"taishi":_59,"taka":_59,"takarazuka":_59,"takasago":_59,"takino":_59,"tamba":_59,"tatsuno":_59,"toyooka":_59,"yabu":_59,"yashiro":_59,"yoka":_59,"yokawa":_59}],"ibaraki":[1,{"ami":_59,"asahi":_59,"bando":_59,"chikusei":_59,"daigo":_59,"fujishiro":_59,"hitachi":_59,"hitachinaka":_59,"hitachiomiya":_59,"hitachiota":_59,"ibaraki":_59,"ina":_59,"inashiki":_59,"itako":_59,"iwama":_59,"joso":_59,"kamisu":_59,"kasama":_59,"kashima":_59,"kasumigaura":_59,"koga":_59,"miho":_59,"mito":_59,"moriya":_59,"naka":_59,"namegata":_59,"oarai":_59,"ogawa":_59,"omitama":_59,"ryugasaki":_59,"sakai":_59,"sakuragawa":_59,"shimodate":_59,"shimotsuma":_59,"shirosato":_59,"sowa":_59,"suifu":_59,"takahagi":_59,"tamatsukuri":_59,"tokai":_59,"tomobe":_59,"tone":_59,"toride":_59,"tsuchiura":_59,"tsukuba":_59,"uchihara":_59,"ushiku":_59,"yachiyo":_59,"yamagata":_59,"yawara":_59,"yuki":_59}],"ishikawa":[1,{"anamizu":_59,"hakui":_59,"hakusan":_59,"kaga":_59,"kahoku":_59,"kanazawa":_59,"kawakita":_59,"komatsu":_59,"nakanoto":_59,"nanao":_59,"nomi":_59,"nonoichi":_59,"noto":_59,"shika":_59,"suzu":_59,"tsubata":_59,"tsurugi":_59,"uchinada":_59,"wajima":_59}],"iwate":[1,{"fudai":_59,"fujisawa":_59,"hanamaki":_59,"hiraizumi":_59,"hirono":_59,"ichinohe":_59,"ichinoseki":_59,"iwaizumi":_59,"iwate":_59,"joboji":_59,"kamaishi":_59,"kanegasaki":_59,"karumai":_59,"kawai":_59,"kitakami":_59,"kuji":_59,"kunohe":_59,"kuzumaki":_59,"miyako":_59,"mizusawa":_59,"morioka":_59,"ninohe":_59,"noda":_59,"ofunato":_59,"oshu":_59,"otsuchi":_59,"rikuzentakata":_59,"shiwa":_59,"shizukuishi":_59,"sumita":_59,"tanohata":_59,"tono":_59,"yahaba":_59,"yamada":_59}],"kagawa":[1,{"ayagawa":_59,"higashikagawa":_59,"kanonji":_59,"kotohira":_59,"manno":_59,"marugame":_59,"mitoyo":_59,"naoshima":_59,"sanuki":_59,"tadotsu":_59,"takamatsu":_59,"tonosho":_59,"uchinomi":_59,"utazu":_59,"zentsuji":_59}],"kagoshima":[1,{"akune":_59,"amami":_59,"hioki":_59,"isa":_59,"isen":_59,"izumi":_59,"kagoshima":_59,"kanoya":_59,"kawanabe":_59,"kinko":_59,"kouyama":_59,"makurazaki":_59,"matsumoto":_59,"minamitane":_59,"nakatane":_59,"nishinoomote":_59,"satsumasendai":_59,"soo":_59,"tarumizu":_59,"yusui":_59}],"kanagawa":[1,{"aikawa":_59,"atsugi":_59,"ayase":_59,"chigasaki":_59,"ebina":_59,"fujisawa":_59,"hadano":_59,"hakone":_59,"hiratsuka":_59,"isehara":_59,"kaisei":_59,"kamakura":_59,"kiyokawa":_59,"matsuda":_59,"minamiashigara":_59,"miura":_59,"nakai":_59,"ninomiya":_59,"odawara":_59,"oi":_59,"oiso":_59,"sagamihara":_59,"samukawa":_59,"tsukui":_59,"yamakita":_59,"yamato":_59,"yokosuka":_59,"yugawara":_59,"zama":_59,"zushi":_59}],"kochi":[1,{"aki":_59,"geisei":_59,"hidaka":_59,"higashitsuno":_59,"ino":_59,"kagami":_59,"kami":_59,"kitagawa":_59,"kochi":_59,"mihara":_59,"motoyama":_59,"muroto":_59,"nahari":_59,"nakamura":_59,"nankoku":_59,"nishitosa":_59,"niyodogawa":_59,"ochi":_59,"okawa":_59,"otoyo":_59,"otsuki":_59,"sakawa":_59,"sukumo":_59,"susaki":_59,"tosa":_59,"tosashimizu":_59,"toyo":_59,"tsuno":_59,"umaji":_59,"yasuda":_59,"yusuhara":_59}],"kumamoto":[1,{"amakusa":_59,"arao":_59,"aso":_59,"choyo":_59,"gyokuto":_59,"kamiamakusa":_59,"kikuchi":_59,"kumamoto":_59,"mashiki":_59,"mifune":_59,"minamata":_59,"minamioguni":_59,"nagasu":_59,"nishihara":_59,"oguni":_59,"ozu":_59,"sumoto":_59,"takamori":_59,"uki":_59,"uto":_59,"yamaga":_59,"yamato":_59,"yatsushiro":_59}],"kyoto":[1,{"ayabe":_59,"fukuchiyama":_59,"higashiyama":_59,"ide":_59,"ine":_59,"joyo":_59,"kameoka":_59,"kamo":_59,"kita":_59,"kizu":_59,"kumiyama":_59,"kyotamba":_59,"kyotanabe":_59,"kyotango":_59,"maizuru":_59,"minami":_59,"minamiyamashiro":_59,"miyazu":_59,"muko":_59,"nagaokakyo":_59,"nakagyo":_59,"nantan":_59,"oyamazaki":_59,"sakyo":_59,"seika":_59,"tanabe":_59,"uji":_59,"ujitawara":_59,"wazuka":_59,"yamashina":_59,"yawata":_59}],"mie":[1,{"asahi":_59,"inabe":_59,"ise":_59,"kameyama":_59,"kawagoe":_59,"kiho":_59,"kisosaki":_59,"kiwa":_59,"komono":_59,"kumano":_59,"kuwana":_59,"matsusaka":_59,"meiwa":_59,"mihama":_59,"minamiise":_59,"misugi":_59,"miyama":_59,"nabari":_59,"shima":_59,"suzuka":_59,"tado":_59,"taiki":_59,"taki":_59,"tamaki":_59,"toba":_59,"tsu":_59,"udono":_59,"ureshino":_59,"watarai":_59,"yokkaichi":_59}],"miyagi":[1,{"furukawa":_59,"higashimatsushima":_59,"ishinomaki":_59,"iwanuma":_59,"kakuda":_59,"kami":_59,"kawasaki":_59,"marumori":_59,"matsushima":_59,"minamisanriku":_59,"misato":_59,"murata":_59,"natori":_59,"ogawara":_59,"ohira":_59,"onagawa":_59,"osaki":_59,"rifu":_59,"semine":_59,"shibata":_59,"shichikashuku":_59,"shikama":_59,"shiogama":_59,"shiroishi":_59,"tagajo":_59,"taiwa":_59,"tome":_59,"tomiya":_59,"wakuya":_59,"watari":_59,"yamamoto":_59,"zao":_59}],"miyazaki":[1,{"aya":_59,"ebino":_59,"gokase":_59,"hyuga":_59,"kadogawa":_59,"kawaminami":_59,"kijo":_59,"kitagawa":_59,"kitakata":_59,"kitaura":_59,"kobayashi":_59,"kunitomi":_59,"kushima":_59,"mimata":_59,"miyakonojo":_59,"miyazaki":_59,"morotsuka":_59,"nichinan":_59,"nishimera":_59,"nobeoka":_59,"saito":_59,"shiiba":_59,"shintomi":_59,"takaharu":_59,"takanabe":_59,"takazaki":_59,"tsuno":_59}],"nagano":[1,{"achi":_59,"agematsu":_59,"anan":_59,"aoki":_59,"asahi":_59,"azumino":_59,"chikuhoku":_59,"chikuma":_59,"chino":_59,"fujimi":_59,"hakuba":_59,"hara":_59,"hiraya":_59,"iida":_59,"iijima":_59,"iiyama":_59,"iizuna":_59,"ikeda":_59,"ikusaka":_59,"ina":_59,"karuizawa":_59,"kawakami":_59,"kiso":_59,"kisofukushima":_59,"kitaaiki":_59,"komagane":_59,"komoro":_59,"matsukawa":_59,"matsumoto":_59,"miasa":_59,"minamiaiki":_59,"minamimaki":_59,"minamiminowa":_59,"minowa":_59,"miyada":_59,"miyota":_59,"mochizuki":_59,"nagano":_59,"nagawa":_59,"nagiso":_59,"nakagawa":_59,"nakano":_59,"nozawaonsen":_59,"obuse":_59,"ogawa":_59,"okaya":_59,"omachi":_59,"omi":_59,"ookuwa":_59,"ooshika":_59,"otaki":_59,"otari":_59,"sakae":_59,"sakaki":_59,"saku":_59,"sakuho":_59,"shimosuwa":_59,"shinanomachi":_59,"shiojiri":_59,"suwa":_59,"suzaka":_59,"takagi":_59,"takamori":_59,"takayama":_59,"tateshina":_59,"tatsuno":_59,"togakushi":_59,"togura":_59,"tomi":_59,"ueda":_59,"wada":_59,"yamagata":_59,"yamanouchi":_59,"yasaka":_59,"yasuoka":_59}],"nagasaki":[1,{"chijiwa":_59,"futsu":_59,"goto":_59,"hasami":_59,"hirado":_59,"iki":_59,"isahaya":_59,"kawatana":_59,"kuchinotsu":_59,"matsuura":_59,"nagasaki":_59,"obama":_59,"omura":_59,"oseto":_59,"saikai":_59,"sasebo":_59,"seihi":_59,"shimabara":_59,"shinkamigoto":_59,"togitsu":_59,"tsushima":_59,"unzen":_59}],"nara":[1,{"ando":_59,"gose":_59,"heguri":_59,"higashiyoshino":_59,"ikaruga":_59,"ikoma":_59,"kamikitayama":_59,"kanmaki":_59,"kashiba":_59,"kashihara":_59,"katsuragi":_59,"kawai":_59,"kawakami":_59,"kawanishi":_59,"koryo":_59,"kurotaki":_59,"mitsue":_59,"miyake":_59,"nara":_59,"nosegawa":_59,"oji":_59,"ouda":_59,"oyodo":_59,"sakurai":_59,"sango":_59,"shimoichi":_59,"shimokitayama":_59,"shinjo":_59,"soni":_59,"takatori":_59,"tawaramoto":_59,"tenkawa":_59,"tenri":_59,"uda":_59,"yamatokoriyama":_59,"yamatotakada":_59,"yamazoe":_59,"yoshino":_59}],"niigata":[1,{"aga":_59,"agano":_59,"gosen":_59,"itoigawa":_59,"izumozaki":_59,"joetsu":_59,"kamo":_59,"kariwa":_59,"kashiwazaki":_59,"minamiuonuma":_59,"mitsuke":_59,"muika":_59,"murakami":_59,"myoko":_59,"nagaoka":_59,"niigata":_59,"ojiya":_59,"omi":_59,"sado":_59,"sanjo":_59,"seiro":_59,"seirou":_59,"sekikawa":_59,"shibata":_59,"tagami":_59,"tainai":_59,"tochio":_59,"tokamachi":_59,"tsubame":_59,"tsunan":_59,"uonuma":_59,"yahiko":_59,"yoita":_59,"yuzawa":_59}],"oita":[1,{"beppu":_59,"bungoono":_59,"bungotakada":_59,"hasama":_59,"hiji":_59,"himeshima":_59,"hita":_59,"kamitsue":_59,"kokonoe":_59,"kuju":_59,"kunisaki":_59,"kusu":_59,"oita":_59,"saiki":_59,"taketa":_59,"tsukumi":_59,"usa":_59,"usuki":_59,"yufu":_59}],"okayama":[1,{"akaiwa":_59,"asakuchi":_59,"bizen":_59,"hayashima":_59,"ibara":_59,"kagamino":_59,"kasaoka":_59,"kibichuo":_59,"kumenan":_59,"kurashiki":_59,"maniwa":_59,"misaki":_59,"nagi":_59,"niimi":_59,"nishiawakura":_59,"okayama":_59,"satosho":_59,"setouchi":_59,"shinjo":_59,"shoo":_59,"soja":_59,"takahashi":_59,"tamano":_59,"tsuyama":_59,"wake":_59,"yakage":_59}],"okinawa":[1,{"aguni":_59,"ginowan":_59,"ginoza":_59,"gushikami":_59,"haebaru":_59,"higashi":_59,"hirara":_59,"iheya":_59,"ishigaki":_59,"ishikawa":_59,"itoman":_59,"izena":_59,"kadena":_59,"kin":_59,"kitadaito":_59,"kitanakagusuku":_59,"kumejima":_59,"kunigami":_59,"minamidaito":_59,"motobu":_59,"nago":_59,"naha":_59,"nakagusuku":_59,"nakijin":_59,"nanjo":_59,"nishihara":_59,"ogimi":_59,"okinawa":_59,"onna":_59,"shimoji":_59,"taketomi":_59,"tarama":_59,"tokashiki":_59,"tomigusuku":_59,"tonaki":_59,"urasoe":_59,"uruma":_59,"yaese":_59,"yomitan":_59,"yonabaru":_59,"yonaguni":_59,"zamami":_59}],"osaka":[1,{"abeno":_59,"chihayaakasaka":_59,"chuo":_59,"daito":_59,"fujiidera":_59,"habikino":_59,"hannan":_59,"higashiosaka":_59,"higashisumiyoshi":_59,"higashiyodogawa":_59,"hirakata":_59,"ibaraki":_59,"ikeda":_59,"izumi":_59,"izumiotsu":_59,"izumisano":_59,"kadoma":_59,"kaizuka":_59,"kanan":_59,"kashiwara":_59,"katano":_59,"kawachinagano":_59,"kishiwada":_59,"kita":_59,"kumatori":_59,"matsubara":_59,"minato":_59,"minoh":_59,"misaki":_59,"moriguchi":_59,"neyagawa":_59,"nishi":_59,"nose":_59,"osakasayama":_59,"sakai":_59,"sayama":_59,"sennan":_59,"settsu":_59,"shijonawate":_59,"shimamoto":_59,"suita":_59,"tadaoka":_59,"taishi":_59,"tajiri":_59,"takaishi":_59,"takatsuki":_59,"tondabayashi":_59,"toyonaka":_59,"toyono":_59,"yao":_59}],"saga":[1,{"ariake":_59,"arita":_59,"fukudomi":_59,"genkai":_59,"hamatama":_59,"hizen":_59,"imari":_59,"kamimine":_59,"kanzaki":_59,"karatsu":_59,"kashima":_59,"kitagata":_59,"kitahata":_59,"kiyama":_59,"kouhoku":_59,"kyuragi":_59,"nishiarita":_59,"ogi":_59,"omachi":_59,"ouchi":_59,"saga":_59,"shiroishi":_59,"taku":_59,"tara":_59,"tosu":_59,"yoshinogari":_59}],"saitama":[1,{"arakawa":_59,"asaka":_59,"chichibu":_59,"fujimi":_59,"fujimino":_59,"fukaya":_59,"hanno":_59,"hanyu":_59,"hasuda":_59,"hatogaya":_59,"hatoyama":_59,"hidaka":_59,"higashichichibu":_59,"higashimatsuyama":_59,"honjo":_59,"ina":_59,"iruma":_59,"iwatsuki":_59,"kamiizumi":_59,"kamikawa":_59,"kamisato":_59,"kasukabe":_59,"kawagoe":_59,"kawaguchi":_59,"kawajima":_59,"kazo":_59,"kitamoto":_59,"koshigaya":_59,"kounosu":_59,"kuki":_59,"kumagaya":_59,"matsubushi":_59,"minano":_59,"misato":_59,"miyashiro":_59,"miyoshi":_59,"moroyama":_59,"nagatoro":_59,"namegawa":_59,"niiza":_59,"ogano":_59,"ogawa":_59,"ogose":_59,"okegawa":_59,"omiya":_59,"otaki":_59,"ranzan":_59,"ryokami":_59,"saitama":_59,"sakado":_59,"satte":_59,"sayama":_59,"shiki":_59,"shiraoka":_59,"soka":_59,"sugito":_59,"toda":_59,"tokigawa":_59,"tokorozawa":_59,"tsurugashima":_59,"urawa":_59,"warabi":_59,"yashio":_59,"yokoze":_59,"yono":_59,"yorii":_59,"yoshida":_59,"yoshikawa":_59,"yoshimi":_59}],"shiga":[1,{"aisho":_59,"gamo":_59,"higashiomi":_59,"hikone":_59,"koka":_59,"konan":_59,"kosei":_59,"koto":_59,"kusatsu":_59,"maibara":_59,"moriyama":_59,"nagahama":_59,"nishiazai":_59,"notogawa":_59,"omihachiman":_59,"otsu":_59,"ritto":_59,"ryuoh":_59,"takashima":_59,"takatsuki":_59,"torahime":_59,"toyosato":_59,"yasu":_59}],"shimane":[1,{"akagi":_59,"ama":_59,"gotsu":_59,"hamada":_59,"higashiizumo":_59,"hikawa":_59,"hikimi":_59,"izumo":_59,"kakinoki":_59,"masuda":_59,"matsue":_59,"misato":_59,"nishinoshima":_59,"ohda":_59,"okinoshima":_59,"okuizumo":_59,"shimane":_59,"tamayu":_59,"tsuwano":_59,"unnan":_59,"yakumo":_59,"yasugi":_59,"yatsuka":_59}],"shizuoka":[1,{"arai":_59,"atami":_59,"fuji":_59,"fujieda":_59,"fujikawa":_59,"fujinomiya":_59,"fukuroi":_59,"gotemba":_59,"haibara":_59,"hamamatsu":_59,"higashiizu":_59,"ito":_59,"iwata":_59,"izu":_59,"izunokuni":_59,"kakegawa":_59,"kannami":_59,"kawanehon":_59,"kawazu":_59,"kikugawa":_59,"kosai":_59,"makinohara":_59,"matsuzaki":_59,"minamiizu":_59,"mishima":_59,"morimachi":_59,"nishiizu":_59,"numazu":_59,"omaezaki":_59,"shimada":_59,"shimizu":_59,"shimoda":_59,"shizuoka":_59,"susono":_59,"yaizu":_59,"yoshida":_59}],"tochigi":[1,{"ashikaga":_59,"bato":_59,"haga":_59,"ichikai":_59,"iwafune":_59,"kaminokawa":_59,"kanuma":_59,"karasuyama":_59,"kuroiso":_59,"mashiko":_59,"mibu":_59,"moka":_59,"motegi":_59,"nasu":_59,"nasushiobara":_59,"nikko":_59,"nishikata":_59,"nogi":_59,"ohira":_59,"ohtawara":_59,"oyama":_59,"sakura":_59,"sano":_59,"shimotsuke":_59,"shioya":_59,"takanezawa":_59,"tochigi":_59,"tsuga":_59,"ujiie":_59,"utsunomiya":_59,"yaita":_59}],"tokushima":[1,{"aizumi":_59,"anan":_59,"ichiba":_59,"itano":_59,"kainan":_59,"komatsushima":_59,"matsushige":_59,"mima":_59,"minami":_59,"miyoshi":_59,"mugi":_59,"nakagawa":_59,"naruto":_59,"sanagochi":_59,"shishikui":_59,"tokushima":_59,"wajiki":_59}],"tokyo":[1,{"adachi":_59,"akiruno":_59,"akishima":_59,"aogashima":_59,"arakawa":_59,"bunkyo":_59,"chiyoda":_59,"chofu":_59,"chuo":_59,"edogawa":_59,"fuchu":_59,"fussa":_59,"hachijo":_59,"hachioji":_59,"hamura":_59,"higashikurume":_59,"higashimurayama":_59,"higashiyamato":_59,"hino":_59,"hinode":_59,"hinohara":_59,"inagi":_59,"itabashi":_59,"katsushika":_59,"kita":_59,"kiyose":_59,"kodaira":_59,"koganei":_59,"kokubunji":_59,"komae":_59,"koto":_59,"kouzushima":_59,"kunitachi":_59,"machida":_59,"meguro":_59,"minato":_59,"mitaka":_59,"mizuho":_59,"musashimurayama":_59,"musashino":_59,"nakano":_59,"nerima":_59,"ogasawara":_59,"okutama":_59,"ome":_59,"oshima":_59,"ota":_59,"setagaya":_59,"shibuya":_59,"shinagawa":_59,"shinjuku":_59,"suginami":_59,"sumida":_59,"tachikawa":_59,"taito":_59,"tama":_59,"toshima":_59}],"tottori":[1,{"chizu":_59,"hino":_59,"kawahara":_59,"koge":_59,"kotoura":_59,"misasa":_59,"nanbu":_59,"nichinan":_59,"sakaiminato":_59,"tottori":_59,"wakasa":_59,"yazu":_59,"yonago":_59}],"toyama":[1,{"asahi":_59,"fuchu":_59,"fukumitsu":_59,"funahashi":_59,"himi":_59,"imizu":_59,"inami":_59,"johana":_59,"kamiichi":_59,"kurobe":_59,"nakaniikawa":_59,"namerikawa":_59,"nanto":_59,"nyuzen":_59,"oyabe":_59,"taira":_59,"takaoka":_59,"tateyama":_59,"toga":_59,"tonami":_59,"toyama":_59,"unazuki":_59,"uozu":_59,"yamada":_59}],"wakayama":[1,{"arida":_59,"aridagawa":_59,"gobo":_59,"hashimoto":_59,"hidaka":_59,"hirogawa":_59,"inami":_59,"iwade":_59,"kainan":_59,"kamitonda":_59,"katsuragi":_59,"kimino":_59,"kinokawa":_59,"kitayama":_59,"koya":_59,"koza":_59,"kozagawa":_59,"kudoyama":_59,"kushimoto":_59,"mihama":_59,"misato":_59,"nachikatsuura":_59,"shingu":_59,"shirahama":_59,"taiji":_59,"tanabe":_59,"wakayama":_59,"yuasa":_59,"yura":_59}],"yamagata":[1,{"asahi":_59,"funagata":_59,"higashine":_59,"iide":_59,"kahoku":_59,"kaminoyama":_59,"kaneyama":_59,"kawanishi":_59,"mamurogawa":_59,"mikawa":_59,"murayama":_59,"nagai":_59,"nakayama":_59,"nanyo":_59,"nishikawa":_59,"obanazawa":_59,"oe":_59,"oguni":_59,"ohkura":_59,"oishida":_59,"sagae":_59,"sakata":_59,"sakegawa":_59,"shinjo":_59,"shirataka":_59,"shonai":_59,"takahata":_59,"tendo":_59,"tozawa":_59,"tsuruoka":_59,"yamagata":_59,"yamanobe":_59,"yonezawa":_59,"yuza":_59}],"yamaguchi":[1,{"abu":_59,"hagi":_59,"hikari":_59,"hofu":_59,"iwakuni":_59,"kudamatsu":_59,"mitou":_59,"nagato":_59,"oshima":_59,"shimonoseki":_59,"shunan":_59,"tabuse":_59,"tokuyama":_59,"toyota":_59,"ube":_59,"yuu":_59}],"yamanashi":[1,{"chuo":_59,"doshi":_59,"fuefuki":_59,"fujikawa":_59,"fujikawaguchiko":_59,"fujiyoshida":_59,"hayakawa":_59,"hokuto":_59,"ichikawamisato":_59,"kai":_59,"kofu":_59,"koshu":_59,"kosuge":_59,"minami-alps":_59,"minobu":_59,"nakamichi":_59,"nanbu":_59,"narusawa":_59,"nirasaki":_59,"nishikatsura":_59,"oshino":_59,"otsuki":_59,"showa":_59,"tabayama":_59,"tsuru":_59,"uenohara":_59,"yamanakako":_59,"yamanashi":_59}],"xn--4pvxs":_59,"栃木":_59,"xn--vgu402c":_59,"愛知":_59,"xn--c3s14m":_59,"愛媛":_59,"xn--f6qx53a":_59,"兵庫":_59,"xn--8pvr4u":_59,"熊本":_59,"xn--uist22h":_59,"茨城":_59,"xn--djrs72d6uy":_59,"北海道":_59,"xn--mkru45i":_59,"千葉":_59,"xn--0trq7p7nn":_59,"和歌山":_59,"xn--8ltr62k":_59,"長崎":_59,"xn--2m4a15e":_59,"長野":_59,"xn--efvn9s":_59,"新潟":_59,"xn--32vp30h":_59,"青森":_59,"xn--4it797k":_59,"静岡":_59,"xn--1lqs71d":_59,"東京":_59,"xn--5rtp49c":_59,"石川":_59,"xn--5js045d":_59,"埼玉":_59,"xn--ehqz56n":_59,"三重":_59,"xn--1lqs03n":_59,"京都":_59,"xn--qqqt11m":_59,"佐賀":_59,"xn--kbrq7o":_59,"大分":_59,"xn--pssu33l":_59,"大阪":_59,"xn--ntsq17g":_59,"奈良":_59,"xn--uisz3g":_59,"宮城":_59,"xn--6btw5a":_59,"宮崎":_59,"xn--1ctwo":_59,"富山":_59,"xn--6orx2r":_59,"山口":_59,"xn--rht61e":_59,"山形":_59,"xn--rht27z":_59,"山梨":_59,"xn--djty4k":_59,"岩手":_59,"xn--nit225k":_59,"岐阜":_59,"xn--rht3d":_59,"岡山":_59,"xn--klty5x":_59,"島根":_59,"xn--kltx9a":_59,"広島":_59,"xn--kltp7d":_59,"徳島":_59,"xn--uuwu58a":_59,"沖縄":_59,"xn--zbx025d":_59,"滋賀":_59,"xn--ntso0iqx3a":_59,"神奈川":_59,"xn--elqq16h":_59,"福井":_59,"xn--4it168d":_59,"福岡":_59,"xn--klt787d":_59,"福島":_59,"xn--rny31h":_59,"秋田":_59,"xn--7t0a264c":_59,"群馬":_59,"xn--5rtq34k":_59,"香川":_59,"xn--k7yn95e":_59,"高知":_59,"xn--tor131o":_59,"鳥取":_59,"xn--d5qv7z876c":_59,"鹿児島":_59,"kawasaki":_64,"kitakyushu":_64,"kobe":_64,"nagoya":_64,"sapporo":_64,"sendai":_64,"yokohama":_64}],"ke":[1,{"ac":_59,"co":_59,"go":_59,"info":_59,"me":_59,"mobi":_59,"ne":_59,"or":_59,"sc":_59}],"kg":_60,"kh":_64,"ki":_69,"km":[1,{"org":_59,"nom":_59,"gov":_59,"prd":_59,"tm":_59,"edu":_59,"mil":_59,"ass":_59,"com":_59,"coop":_59,"asso":_59,"presse":_59,"medecin":_59,"notaires":_59,"pharmaciens":_59,"veterinaire":_59,"gouv":_59}],"kn":[1,{"net":_59,"org":_59,"edu":_59,"gov":_59}],"kp":[1,{"com":_59,"edu":_59,"gov":_59,"org":_59,"rep":_59,"tra":_59}],"kr":[1,{"ac":_59,"co":_59,"es":_59,"go":_59,"hs":_59,"kg":_59,"mil":_59,"ms":_59,"ne":_59,"or":_59,"pe":_59,"re":_59,"sc":_59,"busan":_59,"chungbuk":_59,"chungnam":_59,"daegu":_59,"daejeon":_59,"gangwon":_59,"gwangju":_59,"gyeongbuk":_59,"gyeonggi":_59,"gyeongnam":_59,"incheon":_59,"jeju":_59,"jeonbuk":_59,"jeonnam":_59,"seoul":_59,"ulsan":_59}],"kw":[1,{"com":_59,"edu":_59,"emb":_59,"gov":_59,"ind":_59,"net":_59,"org":_59}],"ky":_65,"kz":_60,"la":[1,{"int":_59,"net":_59,"info":_59,"edu":_59,"gov":_59,"per":_59,"com":_59,"org":_59}],"lb":_61,"lc":_67,"li":_59,"lk":[1,{"gov":_59,"sch":_59,"net":_59,"int":_59,"com":_59,"org":_59,"edu":_59,"ngo":_59,"soc":_59,"web":_59,"ltd":_59,"assn":_59,"grp":_59,"hotel":_59,"ac":_59}],"lr":_61,"ls":[1,{"ac":_59,"biz":_59,"co":_59,"edu":_59,"gov":_59,"info":_59,"net":_59,"org":_59,"sc":_59}],"lt":_62,"lu":_59,"lv":[1,{"com":_59,"edu":_59,"gov":_59,"org":_59,"mil":_59,"id":_59,"net":_59,"asn":_59,"conf":_59}],"ly":[1,{"com":_59,"net":_59,"gov":_59,"plc":_59,"edu":_59,"sch":_59,"med":_59,"org":_59,"id":_59}],"ma":[1,{"co":_59,"net":_59,"gov":_59,"org":_59,"ac":_59,"press":_59}],"mc":[1,{"tm":_59,"asso":_59}],"md":_59,"me":[1,{"co":_59,"net":_59,"org":_59,"edu":_59,"ac":_59,"gov":_59,"its":_59,"priv":_59}],"mg":[1,{"org":_59,"nom":_59,"gov":_59,"prd":_59,"tm":_59,"edu":_59,"mil":_59,"com":_59,"co":_59}],"mh":_59,"mil":_59,"mk":[1,{"com":_59,"org":_59,"net":_59,"edu":_59,"gov":_59,"inf":_59,"name":_59}],"ml":[1,{"com":_59,"edu":_59,"gouv":_59,"gov":_59,"net":_59,"org":_59,"presse":_59}],"mm":_64,"mn":[1,{"gov":_59,"edu":_59,"org":_59}],"mo":_61,"mobi":_59,"mp":_59,"mq":_59,"mr":_62,"ms":_61,"mt":_65,"mu":[1,{"com":_59,"net":_59,"org":_59,"gov":_59,"ac":_59,"co":_59,"or":_59}],"museum":_59,"mv":[1,{"aero":_59,"biz":_59,"com":_59,"coop":_59,"edu":_59,"gov":_59,"info":_59,"int":_59,"mil":_59,"museum":_59,"name":_59,"net":_59,"org":_59,"pro":_59}],"mw":[1,{"ac":_59,"biz":_59,"co":_59,"com":_59,"coop":_59,"edu":_59,"gov":_59,"int":_59,"museum":_59,"net":_59,"org":_59}],"mx":[1,{"com":_59,"org":_59,"gob":_59,"edu":_59,"net":_59}],"my":[1,{"biz":_59,"com":_59,"edu":_59,"gov":_59,"mil":_59,"name":_59,"net":_59,"org":_59}],"mz":[1,{"ac":_59,"adv":_59,"co":_59,"edu":_59,"gov":_59,"mil":_59,"net":_59,"org":_59}],"na":[1,{"info":_59,"pro":_59,"name":_59,"school":_59,"or":_59,"dr":_59,"us":_59,"mx":_59,"ca":_59,"in":_59,"cc":_59,"tv":_59,"ws":_59,"mobi":_59,"co":_59,"com":_59,"org":_59}],"name":_59,"nc":[1,{"asso":_59,"nom":_59}],"ne":_59,"net":_59,"nf":[1,{"com":_59,"net":_59,"per":_59,"rec":_59,"web":_59,"arts":_59,"firm":_59,"info":_59,"other":_59,"store":_59}],"ng":[1,{"com":_59,"edu":_59,"gov":_59,"i":_59,"mil":_59,"mobi":_59,"name":_59,"net":_59,"org":_59,"sch":_59}],"ni":[1,{"ac":_59,"biz":_59,"co":_59,"com":_59,"edu":_59,"gob":_59,"in":_59,"info":_59,"int":_59,"mil":_59,"net":_59,"nom":_59,"org":_59,"web":_59}],"nl":_59,"no":[1,{"fhs":_59,"vgs":_59,"fylkesbibl":_59,"folkebibl":_59,"museum":_59,"idrett":_59,"priv":_59,"mil":_59,"stat":_59,"dep":_59,"kommune":_59,"herad":_59,"aa":_70,"ah":_70,"bu":_70,"fm":_70,"hl":_70,"hm":_70,"jan-mayen":_70,"mr":_70,"nl":_70,"nt":_70,"of":_70,"ol":_70,"oslo":_70,"rl":_70,"sf":_70,"st":_70,"svalbard":_70,"tm":_70,"tr":_70,"va":_70,"vf":_70,"akrehamn":_59,"xn--krehamn-dxa":_59,"åkrehamn":_59,"algard":_59,"xn--lgrd-poac":_59,"ålgård":_59,"arna":_59,"brumunddal":_59,"bryne":_59,"bronnoysund":_59,"xn--brnnysund-m8ac":_59,"brønnøysund":_59,"drobak":_59,"xn--drbak-wua":_59,"drøbak":_59,"egersund":_59,"fetsund":_59,"floro":_59,"xn--flor-jra":_59,"florø":_59,"fredrikstad":_59,"hokksund":_59,"honefoss":_59,"xn--hnefoss-q1a":_59,"hønefoss":_59,"jessheim":_59,"jorpeland":_59,"xn--jrpeland-54a":_59,"jørpeland":_59,"kirkenes":_59,"kopervik":_59,"krokstadelva":_59,"langevag":_59,"xn--langevg-jxa":_59,"langevåg":_59,"leirvik":_59,"mjondalen":_59,"xn--mjndalen-64a":_59,"mjøndalen":_59,"mo-i-rana":_59,"mosjoen":_59,"xn--mosjen-eya":_59,"mosjøen":_59,"nesoddtangen":_59,"orkanger":_59,"osoyro":_59,"xn--osyro-wua":_59,"osøyro":_59,"raholt":_59,"xn--rholt-mra":_59,"råholt":_59,"sandnessjoen":_59,"xn--sandnessjen-ogb":_59,"sandnessjøen":_59,"skedsmokorset":_59,"slattum":_59,"spjelkavik":_59,"stathelle":_59,"stavern":_59,"stjordalshalsen":_59,"xn--stjrdalshalsen-sqb":_59,"stjørdalshalsen":_59,"tananger":_59,"tranby":_59,"vossevangen":_59,"afjord":_59,"xn--fjord-lra":_59,"åfjord":_59,"agdenes":_59,"al":_59,"xn--l-1fa":_59,"ål":_59,"alesund":_59,"xn--lesund-hua":_59,"ålesund":_59,"alstahaug":_59,"alta":_59,"xn--lt-liac":_59,"áltá":_59,"alaheadju":_59,"xn--laheadju-7ya":_59,"álaheadju":_59,"alvdal":_59,"amli":_59,"xn--mli-tla":_59,"åmli":_59,"amot":_59,"xn--mot-tla":_59,"åmot":_59,"andebu":_59,"andoy":_59,"xn--andy-ira":_59,"andøy":_59,"andasuolo":_59,"ardal":_59,"xn--rdal-poa":_59,"årdal":_59,"aremark":_59,"arendal":_59,"xn--s-1fa":_59,"ås":_59,"aseral":_59,"xn--seral-lra":_59,"åseral":_59,"asker":_59,"askim":_59,"askvoll":_59,"askoy":_59,"xn--asky-ira":_59,"askøy":_59,"asnes":_59,"xn--snes-poa":_59,"åsnes":_59,"audnedaln":_59,"aukra":_59,"aure":_59,"aurland":_59,"aurskog-holand":_59,"xn--aurskog-hland-jnb":_59,"aurskog-høland":_59,"austevoll":_59,"austrheim":_59,"averoy":_59,"xn--avery-yua":_59,"averøy":_59,"balestrand":_59,"ballangen":_59,"balat":_59,"xn--blt-elab":_59,"bálát":_59,"balsfjord":_59,"bahccavuotna":_59,"xn--bhccavuotna-k7a":_59,"báhccavuotna":_59,"bamble":_59,"bardu":_59,"beardu":_59,"beiarn":_59,"bajddar":_59,"xn--bjddar-pta":_59,"bájddar":_59,"baidar":_59,"xn--bidr-5nac":_59,"báidár":_59,"berg":_59,"bergen":_59,"berlevag":_59,"xn--berlevg-jxa":_59,"berlevåg":_59,"bearalvahki":_59,"xn--bearalvhki-y4a":_59,"bearalváhki":_59,"bindal":_59,"birkenes":_59,"bjarkoy":_59,"xn--bjarky-fya":_59,"bjarkøy":_59,"bjerkreim":_59,"bjugn":_59,"bodo":_59,"xn--bod-2na":_59,"bodø":_59,"badaddja":_59,"xn--bdddj-mrabd":_59,"bådåddjå":_59,"budejju":_59,"bokn":_59,"bremanger":_59,"bronnoy":_59,"xn--brnny-wuac":_59,"brønnøy":_59,"bygland":_59,"bykle":_59,"barum":_59,"xn--brum-voa":_59,"bærum":_59,"telemark":[0,{"bo":_59,"xn--b-5ga":_59,"bø":_59}],"nordland":[0,{"bo":_59,"xn--b-5ga":_59,"bø":_59,"heroy":_59,"xn--hery-ira":_59,"herøy":_59}],"bievat":_59,"xn--bievt-0qa":_59,"bievát":_59,"bomlo":_59,"xn--bmlo-gra":_59,"bømlo":_59,"batsfjord":_59,"xn--btsfjord-9za":_59,"båtsfjord":_59,"bahcavuotna":_59,"xn--bhcavuotna-s4a":_59,"báhcavuotna":_59,"dovre":_59,"drammen":_59,"drangedal":_59,"dyroy":_59,"xn--dyry-ira":_59,"dyrøy":_59,"donna":_59,"xn--dnna-gra":_59,"dønna":_59,"eid":_59,"eidfjord":_59,"eidsberg":_59,"eidskog":_59,"eidsvoll":_59,"eigersund":_59,"elverum":_59,"enebakk":_59,"engerdal":_59,"etne":_59,"etnedal":_59,"evenes":_59,"evenassi":_59,"xn--eveni-0qa01ga":_59,"evenášši":_59,"evje-og-hornnes":_59,"farsund":_59,"fauske":_59,"fuossko":_59,"fuoisku":_59,"fedje":_59,"fet":_59,"finnoy":_59,"xn--finny-yua":_59,"finnøy":_59,"fitjar":_59,"fjaler":_59,"fjell":_59,"flakstad":_59,"flatanger":_59,"flekkefjord":_59,"flesberg":_59,"flora":_59,"fla":_59,"xn--fl-zia":_59,"flå":_59,"folldal":_59,"forsand":_59,"fosnes":_59,"frei":_59,"frogn":_59,"froland":_59,"frosta":_59,"frana":_59,"xn--frna-woa":_59,"fræna":_59,"froya":_59,"xn--frya-hra":_59,"frøya":_59,"fusa":_59,"fyresdal":_59,"forde":_59,"xn--frde-gra":_59,"førde":_59,"gamvik":_59,"gangaviika":_59,"xn--ggaviika-8ya47h":_59,"gáŋgaviika":_59,"gaular":_59,"gausdal":_59,"gildeskal":_59,"xn--gildeskl-g0a":_59,"gildeskål":_59,"giske":_59,"gjemnes":_59,"gjerdrum":_59,"gjerstad":_59,"gjesdal":_59,"gjovik":_59,"xn--gjvik-wua":_59,"gjøvik":_59,"gloppen":_59,"gol":_59,"gran":_59,"grane":_59,"granvin":_59,"gratangen":_59,"grimstad":_59,"grong":_59,"kraanghke":_59,"xn--kranghke-b0a":_59,"kråanghke":_59,"grue":_59,"gulen":_59,"hadsel":_59,"halden":_59,"halsa":_59,"hamar":_59,"hamaroy":_59,"habmer":_59,"xn--hbmer-xqa":_59,"hábmer":_59,"hapmir":_59,"xn--hpmir-xqa":_59,"hápmir":_59,"hammerfest":_59,"hammarfeasta":_59,"xn--hmmrfeasta-s4ac":_59,"hámmárfeasta":_59,"haram":_59,"hareid":_59,"harstad":_59,"hasvik":_59,"aknoluokta":_59,"xn--koluokta-7ya57h":_59,"ákŋoluokta":_59,"hattfjelldal":_59,"aarborte":_59,"haugesund":_59,"hemne":_59,"hemnes":_59,"hemsedal":_59,"more-og-romsdal":[0,{"heroy":_59,"sande":_59}],"xn--mre-og-romsdal-qqb":[0,{"xn--hery-ira":_59,"sande":_59}],"møre-og-romsdal":[0,{"herøy":_59,"sande":_59}],"hitra":_59,"hjartdal":_59,"hjelmeland":_59,"hobol":_59,"xn--hobl-ira":_59,"hobøl":_59,"hof":_59,"hol":_59,"hole":_59,"holmestrand":_59,"holtalen":_59,"xn--holtlen-hxa":_59,"holtålen":_59,"hornindal":_59,"horten":_59,"hurdal":_59,"hurum":_59,"hvaler":_59,"hyllestad":_59,"hagebostad":_59,"xn--hgebostad-g3a":_59,"hægebostad":_59,"hoyanger":_59,"xn--hyanger-q1a":_59,"høyanger":_59,"hoylandet":_59,"xn--hylandet-54a":_59,"høylandet":_59,"ha":_59,"xn--h-2fa":_59,"hå":_59,"ibestad":_59,"inderoy":_59,"xn--indery-fya":_59,"inderøy":_59,"iveland":_59,"jevnaker":_59,"jondal":_59,"jolster":_59,"xn--jlster-bya":_59,"jølster":_59,"karasjok":_59,"karasjohka":_59,"xn--krjohka-hwab49j":_59,"kárášjohka":_59,"karlsoy":_59,"galsa":_59,"xn--gls-elac":_59,"gálsá":_59,"karmoy":_59,"xn--karmy-yua":_59,"karmøy":_59,"kautokeino":_59,"guovdageaidnu":_59,"klepp":_59,"klabu":_59,"xn--klbu-woa":_59,"klæbu":_59,"kongsberg":_59,"kongsvinger":_59,"kragero":_59,"xn--krager-gya":_59,"kragerø":_59,"kristiansand":_59,"kristiansund":_59,"krodsherad":_59,"xn--krdsherad-m8a":_59,"krødsherad":_59,"kvalsund":_59,"rahkkeravju":_59,"xn--rhkkervju-01af":_59,"ráhkkerávju":_59,"kvam":_59,"kvinesdal":_59,"kvinnherad":_59,"kviteseid":_59,"kvitsoy":_59,"xn--kvitsy-fya":_59,"kvitsøy":_59,"kvafjord":_59,"xn--kvfjord-nxa":_59,"kvæfjord":_59,"giehtavuoatna":_59,"kvanangen":_59,"xn--kvnangen-k0a":_59,"kvænangen":_59,"navuotna":_59,"xn--nvuotna-hwa":_59,"návuotna":_59,"kafjord":_59,"xn--kfjord-iua":_59,"kåfjord":_59,"gaivuotna":_59,"xn--givuotna-8ya":_59,"gáivuotna":_59,"larvik":_59,"lavangen":_59,"lavagis":_59,"loabat":_59,"xn--loabt-0qa":_59,"loabát":_59,"lebesby":_59,"davvesiida":_59,"leikanger":_59,"leirfjord":_59,"leka":_59,"leksvik":_59,"lenvik":_59,"leangaviika":_59,"xn--leagaviika-52b":_59,"leaŋgaviika":_59,"lesja":_59,"levanger":_59,"lier":_59,"lierne":_59,"lillehammer":_59,"lillesand":_59,"lindesnes":_59,"lindas":_59,"xn--linds-pra":_59,"lindås":_59,"lom":_59,"loppa":_59,"lahppi":_59,"xn--lhppi-xqa":_59,"láhppi":_59,"lund":_59,"lunner":_59,"luroy":_59,"xn--lury-ira":_59,"lurøy":_59,"luster":_59,"lyngdal":_59,"lyngen":_59,"ivgu":_59,"lardal":_59,"lerdal":_59,"xn--lrdal-sra":_59,"lærdal":_59,"lodingen":_59,"xn--ldingen-q1a":_59,"lødingen":_59,"lorenskog":_59,"xn--lrenskog-54a":_59,"lørenskog":_59,"loten":_59,"xn--lten-gra":_59,"løten":_59,"malvik":_59,"masoy":_59,"xn--msy-ula0h":_59,"måsøy":_59,"muosat":_59,"xn--muost-0qa":_59,"muosát":_59,"mandal":_59,"marker":_59,"marnardal":_59,"masfjorden":_59,"meland":_59,"meldal":_59,"melhus":_59,"meloy":_59,"xn--mely-ira":_59,"meløy":_59,"meraker":_59,"xn--merker-kua":_59,"meråker":_59,"moareke":_59,"xn--moreke-jua":_59,"moåreke":_59,"midsund":_59,"midtre-gauldal":_59,"modalen":_59,"modum":_59,"molde":_59,"moskenes":_59,"moss":_59,"mosvik":_59,"malselv":_59,"xn--mlselv-iua":_59,"målselv":_59,"malatvuopmi":_59,"xn--mlatvuopmi-s4a":_59,"málatvuopmi":_59,"namdalseid":_59,"aejrie":_59,"namsos":_59,"namsskogan":_59,"naamesjevuemie":_59,"xn--nmesjevuemie-tcba":_59,"nååmesjevuemie":_59,"laakesvuemie":_59,"nannestad":_59,"narvik":_59,"narviika":_59,"naustdal":_59,"nedre-eiker":_59,"akershus":_71,"buskerud":_71,"nesna":_59,"nesodden":_59,"nesseby":_59,"unjarga":_59,"xn--unjrga-rta":_59,"unjárga":_59,"nesset":_59,"nissedal":_59,"nittedal":_59,"nord-aurdal":_59,"nord-fron":_59,"nord-odal":_59,"norddal":_59,"nordkapp":_59,"davvenjarga":_59,"xn--davvenjrga-y4a":_59,"davvenjárga":_59,"nordre-land":_59,"nordreisa":_59,"raisa":_59,"xn--risa-5na":_59,"ráisa":_59,"nore-og-uvdal":_59,"notodden":_59,"naroy":_59,"xn--nry-yla5g":_59,"nærøy":_59,"notteroy":_59,"xn--nttery-byae":_59,"nøtterøy":_59,"odda":_59,"oksnes":_59,"xn--ksnes-uua":_59,"øksnes":_59,"oppdal":_59,"oppegard":_59,"xn--oppegrd-ixa":_59,"oppegård":_59,"orkdal":_59,"orland":_59,"xn--rland-uua":_59,"ørland":_59,"orskog":_59,"xn--rskog-uua":_59,"ørskog":_59,"orsta":_59,"xn--rsta-fra":_59,"ørsta":_59,"hedmark":[0,{"os":_59,"valer":_59,"xn--vler-qoa":_59,"våler":_59}],"hordaland":[0,{"os":_59}],"osen":_59,"osteroy":_59,"xn--ostery-fya":_59,"osterøy":_59,"ostre-toten":_59,"xn--stre-toten-zcb":_59,"østre-toten":_59,"overhalla":_59,"ovre-eiker":_59,"xn--vre-eiker-k8a":_59,"øvre-eiker":_59,"oyer":_59,"xn--yer-zna":_59,"øyer":_59,"oygarden":_59,"xn--ygarden-p1a":_59,"øygarden":_59,"oystre-slidre":_59,"xn--ystre-slidre-ujb":_59,"øystre-slidre":_59,"porsanger":_59,"porsangu":_59,"xn--porsgu-sta26f":_59,"porsáŋgu":_59,"porsgrunn":_59,"radoy":_59,"xn--rady-ira":_59,"radøy":_59,"rakkestad":_59,"rana":_59,"ruovat":_59,"randaberg":_59,"rauma":_59,"rendalen":_59,"rennebu":_59,"rennesoy":_59,"xn--rennesy-v1a":_59,"rennesøy":_59,"rindal":_59,"ringebu":_59,"ringerike":_59,"ringsaker":_59,"rissa":_59,"risor":_59,"xn--risr-ira":_59,"risør":_59,"roan":_59,"rollag":_59,"rygge":_59,"ralingen":_59,"xn--rlingen-mxa":_59,"rælingen":_59,"rodoy":_59,"xn--rdy-0nab":_59,"rødøy":_59,"romskog":_59,"xn--rmskog-bya":_59,"rømskog":_59,"roros":_59,"xn--rros-gra":_59,"røros":_59,"rost":_59,"xn--rst-0na":_59,"røst":_59,"royken":_59,"xn--ryken-vua":_59,"røyken":_59,"royrvik":_59,"xn--ryrvik-bya":_59,"røyrvik":_59,"rade":_59,"xn--rde-ula":_59,"råde":_59,"salangen":_59,"siellak":_59,"saltdal":_59,"salat":_59,"xn--slt-elab":_59,"sálát":_59,"xn--slat-5na":_59,"sálat":_59,"samnanger":_59,"vestfold":[0,{"sande":_59}],"sandefjord":_59,"sandnes":_59,"sandoy":_59,"xn--sandy-yua":_59,"sandøy":_59,"sarpsborg":_59,"sauda":_59,"sauherad":_59,"sel":_59,"selbu":_59,"selje":_59,"seljord":_59,"sigdal":_59,"siljan":_59,"sirdal":_59,"skaun":_59,"skedsmo":_59,"ski":_59,"skien":_59,"skiptvet":_59,"skjervoy":_59,"xn--skjervy-v1a":_59,"skjervøy":_59,"skierva":_59,"xn--skierv-uta":_59,"skiervá":_59,"skjak":_59,"xn--skjk-soa":_59,"skjåk":_59,"skodje":_59,"skanland":_59,"xn--sknland-fxa":_59,"skånland":_59,"skanit":_59,"xn--sknit-yqa":_59,"skánit":_59,"smola":_59,"xn--smla-hra":_59,"smøla":_59,"snillfjord":_59,"snasa":_59,"xn--snsa-roa":_59,"snåsa":_59,"snoasa":_59,"snaase":_59,"xn--snase-nra":_59,"snåase":_59,"sogndal":_59,"sokndal":_59,"sola":_59,"solund":_59,"songdalen":_59,"sortland":_59,"spydeberg":_59,"stange":_59,"stavanger":_59,"steigen":_59,"steinkjer":_59,"stjordal":_59,"xn--stjrdal-s1a":_59,"stjørdal":_59,"stokke":_59,"stor-elvdal":_59,"stord":_59,"stordal":_59,"storfjord":_59,"omasvuotna":_59,"strand":_59,"stranda":_59,"stryn":_59,"sula":_59,"suldal":_59,"sund":_59,"sunndal":_59,"surnadal":_59,"sveio":_59,"svelvik":_59,"sykkylven":_59,"sogne":_59,"xn--sgne-gra":_59,"søgne":_59,"somna":_59,"xn--smna-gra":_59,"sømna":_59,"sondre-land":_59,"xn--sndre-land-0cb":_59,"søndre-land":_59,"sor-aurdal":_59,"xn--sr-aurdal-l8a":_59,"sør-aurdal":_59,"sor-fron":_59,"xn--sr-fron-q1a":_59,"sør-fron":_59,"sor-odal":_59,"xn--sr-odal-q1a":_59,"sør-odal":_59,"sor-varanger":_59,"xn--sr-varanger-ggb":_59,"sør-varanger":_59,"matta-varjjat":_59,"xn--mtta-vrjjat-k7af":_59,"mátta-várjjat":_59,"sorfold":_59,"xn--srfold-bya":_59,"sørfold":_59,"sorreisa":_59,"xn--srreisa-q1a":_59,"sørreisa":_59,"sorum":_59,"xn--srum-gra":_59,"sørum":_59,"tana":_59,"deatnu":_59,"time":_59,"tingvoll":_59,"tinn":_59,"tjeldsund":_59,"dielddanuorri":_59,"tjome":_59,"xn--tjme-hra":_59,"tjøme":_59,"tokke":_59,"tolga":_59,"torsken":_59,"tranoy":_59,"xn--trany-yua":_59,"tranøy":_59,"tromso":_59,"xn--troms-zua":_59,"tromsø":_59,"tromsa":_59,"romsa":_59,"trondheim":_59,"troandin":_59,"trysil":_59,"trana":_59,"xn--trna-woa":_59,"træna":_59,"trogstad":_59,"xn--trgstad-r1a":_59,"trøgstad":_59,"tvedestrand":_59,"tydal":_59,"tynset":_59,"tysfjord":_59,"divtasvuodna":_59,"divttasvuotna":_59,"tysnes":_59,"tysvar":_59,"xn--tysvr-vra":_59,"tysvær":_59,"tonsberg":_59,"xn--tnsberg-q1a":_59,"tønsberg":_59,"ullensaker":_59,"ullensvang":_59,"ulvik":_59,"utsira":_59,"vadso":_59,"xn--vads-jra":_59,"vadsø":_59,"cahcesuolo":_59,"xn--hcesuolo-7ya35b":_59,"čáhcesuolo":_59,"vaksdal":_59,"valle":_59,"vang":_59,"vanylven":_59,"vardo":_59,"xn--vard-jra":_59,"vardø":_59,"varggat":_59,"xn--vrggt-xqad":_59,"várggát":_59,"vefsn":_59,"vaapste":_59,"vega":_59,"vegarshei":_59,"xn--vegrshei-c0a":_59,"vegårshei":_59,"vennesla":_59,"verdal":_59,"verran":_59,"vestby":_59,"vestnes":_59,"vestre-slidre":_59,"vestre-toten":_59,"vestvagoy":_59,"xn--vestvgy-ixa6o":_59,"vestvågøy":_59,"vevelstad":_59,"vik":_59,"vikna":_59,"vindafjord":_59,"volda":_59,"voss":_59,"varoy":_59,"xn--vry-yla5g":_59,"værøy":_59,"vagan":_59,"xn--vgan-qoa":_59,"vågan":_59,"voagat":_59,"vagsoy":_59,"xn--vgsy-qoa0j":_59,"vågsøy":_59,"vaga":_59,"xn--vg-yiab":_59,"vågå":_59,"ostfold":[0,{"valer":_59}],"xn--stfold-9xa":[0,{"xn--vler-qoa":_59}],"østfold":[0,{"våler":_59}]}],"np":_64,"nr":_69,"nu":_59,"nz":[1,{"ac":_59,"co":_59,"cri":_59,"geek":_59,"gen":_59,"govt":_59,"health":_59,"iwi":_59,"kiwi":_59,"maori":_59,"mil":_59,"xn--mori-qsa":_59,"māori":_59,"net":_59,"org":_59,"parliament":_59,"school":_59}],"om":[1,{"co":_59,"com":_59,"edu":_59,"gov":_59,"med":_59,"museum":_59,"net":_59,"org":_59,"pro":_59}],"onion":_59,"org":_59,"pa":[1,{"ac":_59,"gob":_59,"com":_59,"org":_59,"sld":_59,"edu":_59,"net":_59,"ing":_59,"abo":_59,"med":_59,"nom":_59}],"pe":[1,{"edu":_59,"gob":_59,"nom":_59,"mil":_59,"org":_59,"com":_59,"net":_59}],"pf":[1,{"com":_59,"org":_59,"edu":_59}],"pg":_64,"ph":[1,{"com":_59,"net":_59,"org":_59,"gov":_59,"edu":_59,"ngo":_59,"mil":_59,"i":_59}],"pk":[1,{"com":_59,"net":_59,"edu":_59,"org":_59,"fam":_59,"biz":_59,"web":_59,"gov":_59,"gob":_59,"gok":_59,"gon":_59,"gop":_59,"gos":_59,"info":_59}],"pl":[1,{"com":_59,"net":_59,"org":_59,"aid":_59,"agro":_59,"atm":_59,"auto":_59,"biz":_59,"edu":_59,"gmina":_59,"gsm":_59,"info":_59,"mail":_59,"miasta":_59,"media":_59,"mil":_59,"nieruchomosci":_59,"nom":_59,"pc":_59,"powiat":_59,"priv":_59,"realestate":_59,"rel":_59,"sex":_59,"shop":_59,"sklep":_59,"sos":_59,"szkola":_59,"targi":_59,"tm":_59,"tourism":_59,"travel":_59,"turystyka":_59,"gov":[1,{"ap":_59,"griw":_59,"ic":_59,"is":_59,"kmpsp":_59,"konsulat":_59,"kppsp":_59,"kwp":_59,"kwpsp":_59,"mup":_59,"mw":_59,"oia":_59,"oirm":_59,"oke":_59,"oow":_59,"oschr":_59,"oum":_59,"pa":_59,"pinb":_59,"piw":_59,"po":_59,"pr":_59,"psp":_59,"psse":_59,"pup":_59,"rzgw":_59,"sa":_59,"sdn":_59,"sko":_59,"so":_59,"sr":_59,"starostwo":_59,"ug":_59,"ugim":_59,"um":_59,"umig":_59,"upow":_59,"uppo":_59,"us":_59,"uw":_59,"uzs":_59,"wif":_59,"wiih":_59,"winb":_59,"wios":_59,"witd":_59,"wiw":_59,"wkz":_59,"wsa":_59,"wskr":_59,"wsse":_59,"wuoz":_59,"wzmiuw":_59,"zp":_59,"zpisdn":_59}],"augustow":_59,"babia-gora":_59,"bedzin":_59,"beskidy":_59,"bialowieza":_59,"bialystok":_59,"bielawa":_59,"bieszczady":_59,"boleslawiec":_59,"bydgoszcz":_59,"bytom":_59,"cieszyn":_59,"czeladz":_59,"czest":_59,"dlugoleka":_59,"elblag":_59,"elk":_59,"glogow":_59,"gniezno":_59,"gorlice":_59,"grajewo":_59,"ilawa":_59,"jaworzno":_59,"jelenia-gora":_59,"jgora":_59,"kalisz":_59,"kazimierz-dolny":_59,"karpacz":_59,"kartuzy":_59,"kaszuby":_59,"katowice":_59,"kepno":_59,"ketrzyn":_59,"klodzko":_59,"kobierzyce":_59,"kolobrzeg":_59,"konin":_59,"konskowola":_59,"kutno":_59,"lapy":_59,"lebork":_59,"legnica":_59,"lezajsk":_59,"limanowa":_59,"lomza":_59,"lowicz":_59,"lubin":_59,"lukow":_59,"malbork":_59,"malopolska":_59,"mazowsze":_59,"mazury":_59,"mielec":_59,"mielno":_59,"mragowo":_59,"naklo":_59,"nowaruda":_59,"nysa":_59,"olawa":_59,"olecko":_59,"olkusz":_59,"olsztyn":_59,"opoczno":_59,"opole":_59,"ostroda":_59,"ostroleka":_59,"ostrowiec":_59,"ostrowwlkp":_59,"pila":_59,"pisz":_59,"podhale":_59,"podlasie":_59,"polkowice":_59,"pomorze":_59,"pomorskie":_59,"prochowice":_59,"pruszkow":_59,"przeworsk":_59,"pulawy":_59,"radom":_59,"rawa-maz":_59,"rybnik":_59,"rzeszow":_59,"sanok":_59,"sejny":_59,"slask":_59,"slupsk":_59,"sosnowiec":_59,"stalowa-wola":_59,"skoczow":_59,"starachowice":_59,"stargard":_59,"suwalki":_59,"swidnica":_59,"swiebodzin":_59,"swinoujscie":_59,"szczecin":_59,"szczytno":_59,"tarnobrzeg":_59,"tgory":_59,"turek":_59,"tychy":_59,"ustka":_59,"walbrzych":_59,"warmia":_59,"warszawa":_59,"waw":_59,"wegrow":_59,"wielun":_59,"wlocl":_59,"wloclawek":_59,"wodzislaw":_59,"wolomin":_59,"wroclaw":_59,"zachpomor":_59,"zagan":_59,"zarow":_59,"zgora":_59,"zgorzelec":_59}],"pm":_59,"pn":[1,{"gov":_59,"co":_59,"org":_59,"edu":_59,"net":_59}],"post":_59,"pr":[1,{"com":_59,"net":_59,"org":_59,"gov":_59,"edu":_59,"isla":_59,"pro":_59,"biz":_59,"info":_59,"name":_59,"est":_59,"prof":_59,"ac":_59}],"pro":[1,{"aaa":_59,"aca":_59,"acct":_59,"avocat":_59,"bar":_59,"cpa":_59,"eng":_59,"jur":_59,"law":_59,"med":_59,"recht":_59}],"ps":[1,{"edu":_59,"gov":_59,"sec":_59,"plo":_59,"com":_59,"org":_59,"net":_59}],"pt":[1,{"net":_59,"gov":_59,"org":_59,"edu":_59,"int":_59,"publ":_59,"com":_59,"nome":_59}],"pw":[1,{"co":_59,"ne":_59,"or":_59,"ed":_59,"go":_59,"belau":_59}],"py":[1,{"com":_59,"coop":_59,"edu":_59,"gov":_59,"mil":_59,"net":_59,"org":_59}],"qa":_68,"re":[1,{"asso":_59,"com":_59,"nom":_59}],"ro":[1,{"arts":_59,"com":_59,"firm":_59,"info":_59,"nom":_59,"nt":_59,"org":_59,"rec":_59,"store":_59,"tm":_59,"www":_59}],"rs":[1,{"ac":_59,"co":_59,"edu":_59,"gov":_59,"in":_59,"org":_59}],"ru":_59,"rw":[1,{"ac":_59,"co":_59,"coop":_59,"gov":_59,"mil":_59,"net":_59,"org":_59}],"sa":[1,{"com":_59,"net":_59,"org":_59,"gov":_59,"med":_59,"pub":_59,"edu":_59,"sch":_59}],"sb":_61,"sc":_61,"sd":[1,{"com":_59,"net":_59,"org":_59,"edu":_59,"med":_59,"tv":_59,"gov":_59,"info":_59}],"se":[1,{"a":_59,"ac":_59,"b":_59,"bd":_59,"brand":_59,"c":_59,"d":_59,"e":_59,"f":_59,"fh":_59,"fhsk":_59,"fhv":_59,"g":_59,"h":_59,"i":_59,"k":_59,"komforb":_59,"kommunalforbund":_59,"komvux":_59,"l":_59,"lanbib":_59,"m":_59,"n":_59,"naturbruksgymn":_59,"o":_59,"org":_59,"p":_59,"parti":_59,"pp":_59,"press":_59,"r":_59,"s":_59,"t":_59,"tm":_59,"u":_59,"w":_59,"x":_59,"y":_59,"z":_59}],"sg":[1,{"com":_59,"net":_59,"org":_59,"gov":_59,"edu":_59,"per":_59}],"sh":[1,{"com":_59,"net":_59,"gov":_59,"org":_59,"mil":_59}],"si":_59,"sj":_59,"sk":_59,"sl":_61,"sm":_59,"sn":[1,{"art":_59,"com":_59,"edu":_59,"gouv":_59,"org":_59,"perso":_59,"univ":_59}],"so":[1,{"com":_59,"edu":_59,"gov":_59,"me":_59,"net":_59,"org":_59}],"sr":_59,"ss":[1,{"biz":_59,"com":_59,"edu":_59,"gov":_59,"me":_59,"net":_59,"org":_59,"sch":_59}],"st":[1,{"co":_59,"com":_59,"consulado":_59,"edu":_59,"embaixada":_59,"mil":_59,"net":_59,"org":_59,"principe":_59,"saotome":_59,"store":_59}],"su":_59,"sv":[1,{"com":_59,"edu":_59,"gob":_59,"org":_59,"red":_59}],"sx":_62,"sy":_60,"sz":[1,{"co":_59,"ac":_59,"org":_59}],"tc":_59,"td":_59,"tel":_59,"tf":_59,"tg":_59,"th":[1,{"ac":_59,"co":_59,"go":_59,"in":_59,"mi":_59,"net":_59,"or":_59}],"tj":[1,{"ac":_59,"biz":_59,"co":_59,"com":_59,"edu":_59,"go":_59,"gov":_59,"int":_59,"mil":_59,"name":_59,"net":_59,"nic":_59,"org":_59,"test":_59,"web":_59}],"tk":_59,"tl":_62,"tm":[1,{"com":_59,"co":_59,"org":_59,"net":_59,"nom":_59,"gov":_59,"mil":_59,"edu":_59}],"tn":[1,{"com":_59,"ens":_59,"fin":_59,"gov":_59,"ind":_59,"info":_59,"intl":_59,"mincom":_59,"nat":_59,"net":_59,"org":_59,"perso":_59,"tourism":_59}],"to":_60,"tr":[1,{"av":_59,"bbs":_59,"bel":_59,"biz":_59,"com":_59,"dr":_59,"edu":_59,"gen":_59,"gov":_59,"info":_59,"mil":_59,"k12":_59,"kep":_59,"name":_59,"net":_59,"org":_59,"pol":_59,"tel":_59,"tsk":_59,"tv":_59,"web":_59,"nc":_62}],"tt":[1,{"co":_59,"com":_59,"org":_59,"net":_59,"biz":_59,"info":_59,"pro":_59,"int":_59,"coop":_59,"jobs":_59,"mobi":_59,"travel":_59,"museum":_59,"aero":_59,"name":_59,"gov":_59,"edu":_59}],"tv":_59,"tw":[1,{"edu":_59,"gov":_59,"mil":_59,"com":_59,"net":_59,"org":_59,"idv":_59,"game":_59,"ebiz":_59,"club":_59,"xn--zf0ao64a":_59,"網路":_59,"xn--uc0atv":_59,"組織":_59,"xn--czrw28b":_59,"商業":_59}],"tz":[1,{"ac":_59,"co":_59,"go":_59,"hotel":_59,"info":_59,"me":_59,"mil":_59,"mobi":_59,"ne":_59,"or":_59,"sc":_59,"tv":_59}],"ua":[1,{"com":_59,"edu":_59,"gov":_59,"in":_59,"net":_59,"org":_59,"cherkassy":_59,"cherkasy":_59,"chernigov":_59,"chernihiv":_59,"chernivtsi":_59,"chernovtsy":_59,"ck":_59,"cn":_59,"cr":_59,"crimea":_59,"cv":_59,"dn":_59,"dnepropetrovsk":_59,"dnipropetrovsk":_59,"donetsk":_59,"dp":_59,"if":_59,"ivano-frankivsk":_59,"kh":_59,"kharkiv":_59,"kharkov":_59,"kherson":_59,"khmelnitskiy":_59,"khmelnytskyi":_59,"kiev":_59,"kirovograd":_59,"km":_59,"kr":_59,"kropyvnytskyi":_59,"krym":_59,"ks":_59,"kv":_59,"kyiv":_59,"lg":_59,"lt":_59,"lugansk":_59,"luhansk":_59,"lutsk":_59,"lv":_59,"lviv":_59,"mk":_59,"mykolaiv":_59,"nikolaev":_59,"od":_59,"odesa":_59,"odessa":_59,"pl":_59,"poltava":_59,"rivne":_59,"rovno":_59,"rv":_59,"sb":_59,"sebastopol":_59,"sevastopol":_59,"sm":_59,"sumy":_59,"te":_59,"ternopil":_59,"uz":_59,"uzhgorod":_59,"uzhhorod":_59,"vinnica":_59,"vinnytsia":_59,"vn":_59,"volyn":_59,"yalta":_59,"zakarpattia":_59,"zaporizhzhe":_59,"zaporizhzhia":_59,"zhitomir":_59,"zhytomyr":_59,"zp":_59,"zt":_59}],"ug":[1,{"co":_59,"or":_59,"ac":_59,"sc":_59,"go":_59,"ne":_59,"com":_59,"org":_59}],"uk":[1,{"ac":_59,"co":_59,"gov":_59,"ltd":_59,"me":_59,"net":_59,"nhs":_59,"org":_59,"plc":_59,"police":_59,"sch":_64}],"us":[1,{"dni":_59,"fed":_59,"isa":_59,"kids":_59,"nsn":_59,"ak":_72,"al":_72,"ar":_72,"as":_72,"az":_72,"ca":_72,"co":_72,"ct":_72,"dc":_72,"de":_73,"fl":_72,"ga":_72,"gu":_72,"hi":_74,"ia":_72,"id":_72,"il":_72,"in":_72,"ks":_72,"ky":_72,"la":_72,"ma":[1,{"k12":[1,{"pvt":_59,"chtr":_59,"paroch":_59}],"cc":_59,"lib":_59}],"md":_72,"me":_72,"mi":[1,{"k12":_59,"cc":_59,"lib":_59,"ann-arbor":_59,"cog":_59,"dst":_59,"eaton":_59,"gen":_59,"mus":_59,"tec":_59,"washtenaw":_59}],"mn":_72,"mo":_72,"ms":_72,"mt":_72,"nc":_72,"nd":_74,"ne":_72,"nh":_72,"nj":_72,"nm":_72,"nv":_72,"ny":_72,"oh":_72,"ok":_72,"or":_72,"pa":_72,"pr":_72,"ri":_74,"sc":_72,"sd":_74,"tn":_72,"tx":_72,"ut":_72,"vi":_72,"vt":_72,"va":_72,"wa":_72,"wi":_72,"wv":_73,"wy":_72}],"uy":[1,{"com":_59,"edu":_59,"gub":_59,"mil":_59,"net":_59,"org":_59}],"uz":[1,{"co":_59,"com":_59,"net":_59,"org":_59}],"va":_59,"vc":_60,"ve":[1,{"arts":_59,"bib":_59,"co":_59,"com":_59,"e12":_59,"edu":_59,"firm":_59,"gob":_59,"gov":_59,"info":_59,"int":_59,"mil":_59,"net":_59,"nom":_59,"org":_59,"rar":_59,"rec":_59,"store":_59,"tec":_59,"web":_59}],"vg":_59,"vi":[1,{"co":_59,"com":_59,"k12":_59,"net":_59,"org":_59}],"vn":[1,{"ac":_59,"ai":_59,"biz":_59,"com":_59,"edu":_59,"gov":_59,"health":_59,"id":_59,"info":_59,"int":_59,"io":_59,"name":_59,"net":_59,"org":_59,"pro":_59,"angiang":_59,"bacgiang":_59,"backan":_59,"baclieu":_59,"bacninh":_59,"baria-vungtau":_59,"bentre":_59,"binhdinh":_59,"binhduong":_59,"binhphuoc":_59,"binhthuan":_59,"camau":_59,"cantho":_59,"caobang":_59,"daklak":_59,"daknong":_59,"danang":_59,"dienbien":_59,"dongnai":_59,"dongthap":_59,"gialai":_59,"hagiang":_59,"haiduong":_59,"haiphong":_59,"hanam":_59,"hanoi":_59,"hatinh":_59,"haugiang":_59,"hoabinh":_59,"hungyen":_59,"khanhhoa":_59,"kiengiang":_59,"kontum":_59,"laichau":_59,"lamdong":_59,"langson":_59,"laocai":_59,"longan":_59,"namdinh":_59,"nghean":_59,"ninhbinh":_59,"ninhthuan":_59,"phutho":_59,"phuyen":_59,"quangbinh":_59,"quangnam":_59,"quangngai":_59,"quangninh":_59,"quangtri":_59,"soctrang":_59,"sonla":_59,"tayninh":_59,"thaibinh":_59,"thainguyen":_59,"thanhhoa":_59,"thanhphohochiminh":_59,"thuathienhue":_59,"tiengiang":_59,"travinh":_59,"tuyenquang":_59,"vinhlong":_59,"vinhphuc":_59,"yenbai":_59}],"vu":_65,"wf":_59,"ws":_61,"yt":_59,"xn--mgbaam7a8h":_59,"امارات":_59,"xn--y9a3aq":_59,"հայ":_59,"xn--54b7fta0cc":_59,"বাংলা":_59,"xn--90ae":_59,"бг":_59,"xn--mgbcpq6gpa1a":_59,"البحرين":_59,"xn--90ais":_59,"бел":_59,"xn--fiqs8s":_59,"中国":_59,"xn--fiqz9s":_59,"中國":_59,"xn--lgbbat1ad8j":_59,"الجزائر":_59,"xn--wgbh1c":_59,"مصر":_59,"xn--e1a4c":_59,"ею":_59,"xn--qxa6a":_59,"ευ":_59,"xn--mgbah1a3hjkrd":_59,"موريتانيا":_59,"xn--node":_59,"გე":_59,"xn--qxam":_59,"ελ":_59,"xn--j6w193g":[1,{"xn--55qx5d":_59,"xn--wcvs22d":_59,"xn--mxtq1m":_59,"xn--gmqw5a":_59,"xn--od0alg":_59,"xn--uc0atv":_59}],"香港":[1,{"公司":_59,"教育":_59,"政府":_59,"個人":_59,"網絡":_59,"組織":_59}],"xn--2scrj9c":_59,"ಭಾರತ":_59,"xn--3hcrj9c":_59,"ଭାରତ":_59,"xn--45br5cyl":_59,"ভাৰত":_59,"xn--h2breg3eve":_59,"भारतम्":_59,"xn--h2brj9c8c":_59,"भारोत":_59,"xn--mgbgu82a":_59,"ڀارت":_59,"xn--rvc1e0am3e":_59,"ഭാരതം":_59,"xn--h2brj9c":_59,"भारत":_59,"xn--mgbbh1a":_59,"بارت":_59,"xn--mgbbh1a71e":_59,"بھارت":_59,"xn--fpcrj9c3d":_59,"భారత్":_59,"xn--gecrj9c":_59,"ભારત":_59,"xn--s9brj9c":_59,"ਭਾਰਤ":_59,"xn--45brj9c":_59,"ভারত":_59,"xn--xkc2dl3a5ee0h":_59,"இந்தியா":_59,"xn--mgba3a4f16a":_59,"ایران":_59,"xn--mgba3a4fra":_59,"ايران":_59,"xn--mgbtx2b":_59,"عراق":_59,"xn--mgbayh7gpa":_59,"الاردن":_59,"xn--3e0b707e":_59,"한국":_59,"xn--80ao21a":_59,"қаз":_59,"xn--q7ce6a":_59,"ລາວ":_59,"xn--fzc2c9e2c":_59,"ලංකා":_59,"xn--xkc2al3hye2a":_59,"இலங்கை":_59,"xn--mgbc0a9azcg":_59,"المغرب":_59,"xn--d1alf":_59,"мкд":_59,"xn--l1acc":_59,"мон":_59,"xn--mix891f":_59,"澳門":_59,"xn--mix082f":_59,"澳门":_59,"xn--mgbx4cd0ab":_59,"مليسيا":_59,"xn--mgb9awbf":_59,"عمان":_59,"xn--mgbai9azgqp6j":_59,"پاکستان":_59,"xn--mgbai9a5eva00b":_59,"پاكستان":_59,"xn--ygbi2ammx":_59,"فلسطين":_59,"xn--90a3ac":[1,{"xn--o1ac":_59,"xn--c1avg":_59,"xn--90azh":_59,"xn--d1at":_59,"xn--o1ach":_59,"xn--80au":_59}],"срб":[1,{"пр":_59,"орг":_59,"обр":_59,"од":_59,"упр":_59,"ак":_59}],"xn--p1ai":_59,"рф":_59,"xn--wgbl6a":_59,"قطر":_59,"xn--mgberp4a5d4ar":_59,"السعودية":_59,"xn--mgberp4a5d4a87g":_59,"السعودیة":_59,"xn--mgbqly7c0a67fbc":_59,"السعودیۃ":_59,"xn--mgbqly7cvafr":_59,"السعوديه":_59,"xn--mgbpl2fh":_59,"سودان":_59,"xn--yfro4i67o":_59,"新加坡":_59,"xn--clchc0ea0b2g2a9gcd":_59,"சிங்கப்பூர்":_59,"xn--ogbpf8fl":_59,"سورية":_59,"xn--mgbtf8fl":_59,"سوريا":_59,"xn--o3cw4h":[1,{"xn--12c1fe0br":_59,"xn--12co0c3b4eva":_59,"xn--h3cuzk1di":_59,"xn--o3cyx2a":_59,"xn--m3ch0j3a":_59,"xn--12cfi8ixb8l":_59}],"ไทย":[1,{"ศึกษา":_59,"ธุรกิจ":_59,"รัฐบาล":_59,"ทหาร":_59,"เน็ต":_59,"องค์กร":_59}],"xn--pgbs0dh":_59,"تونس":_59,"xn--kpry57d":_59,"台灣":_59,"xn--kprw13d":_59,"台湾":_59,"xn--nnx388a":_59,"臺灣":_59,"xn--j1amh":_59,"укр":_59,"xn--mgb2ddes":_59,"اليمن":_59,"xxx":_59,"ye":_60,"za":[0,{"ac":_59,"agric":_59,"alt":_59,"co":_59,"edu":_59,"gov":_59,"grondar":_59,"law":_59,"mil":_59,"net":_59,"ngo":_59,"nic":_59,"nis":_59,"nom":_59,"org":_59,"school":_59,"tm":_59,"web":_59}],"zm":[1,{"ac":_59,"biz":_59,"co":_59,"com":_59,"edu":_59,"gov":_59,"info":_59,"mil":_59,"net":_59,"org":_59,"sch":_59}],"zw":[1,{"ac":_59,"co":_59,"gov":_59,"mil":_59,"org":_59}],"aaa":_59,"aarp":_59,"abb":_59,"abbott":_59,"abbvie":_59,"abc":_59,"able":_59,"abogado":_59,"abudhabi":_59,"academy":_59,"accenture":_59,"accountant":_59,"accountants":_59,"aco":_59,"actor":_59,"ads":_59,"adult":_59,"aeg":_59,"aetna":_59,"afl":_59,"africa":_59,"agakhan":_59,"agency":_59,"aig":_59,"airbus":_59,"airforce":_59,"airtel":_59,"akdn":_59,"alibaba":_59,"alipay":_59,"allfinanz":_59,"allstate":_59,"ally":_59,"alsace":_59,"alstom":_59,"amazon":_59,"americanexpress":_59,"americanfamily":_59,"amex":_59,"amfam":_59,"amica":_59,"amsterdam":_59,"analytics":_59,"android":_59,"anquan":_59,"anz":_59,"aol":_59,"apartments":_59,"app":_59,"apple":_59,"aquarelle":_59,"arab":_59,"aramco":_59,"archi":_59,"army":_59,"art":_59,"arte":_59,"asda":_59,"associates":_59,"athleta":_59,"attorney":_59,"auction":_59,"audi":_59,"audible":_59,"audio":_59,"auspost":_59,"author":_59,"auto":_59,"autos":_59,"avianca":_59,"aws":_59,"axa":_59,"azure":_59,"baby":_59,"baidu":_59,"banamex":_59,"bananarepublic":_59,"band":_59,"bank":_59,"bar":_59,"barcelona":_59,"barclaycard":_59,"barclays":_59,"barefoot":_59,"bargains":_59,"baseball":_59,"basketball":_59,"bauhaus":_59,"bayern":_59,"bbc":_59,"bbt":_59,"bbva":_59,"bcg":_59,"bcn":_59,"beats":_59,"beauty":_59,"beer":_59,"bentley":_59,"berlin":_59,"best":_59,"bestbuy":_59,"bet":_59,"bharti":_59,"bible":_59,"bid":_59,"bike":_59,"bing":_59,"bingo":_59,"bio":_59,"black":_59,"blackfriday":_59,"blockbuster":_59,"blog":_59,"bloomberg":_59,"blue":_59,"bms":_59,"bmw":_59,"bnpparibas":_59,"boats":_59,"boehringer":_59,"bofa":_59,"bom":_59,"bond":_59,"boo":_59,"book":_59,"booking":_59,"bosch":_59,"bostik":_59,"boston":_59,"bot":_59,"boutique":_59,"box":_59,"bradesco":_59,"bridgestone":_59,"broadway":_59,"broker":_59,"brother":_59,"brussels":_59,"build":_59,"builders":_59,"business":_59,"buy":_59,"buzz":_59,"bzh":_59,"cab":_59,"cafe":_59,"cal":_59,"call":_59,"calvinklein":_59,"cam":_59,"camera":_59,"camp":_59,"canon":_59,"capetown":_59,"capital":_59,"capitalone":_59,"car":_59,"caravan":_59,"cards":_59,"care":_59,"career":_59,"careers":_59,"cars":_59,"casa":_59,"case":_59,"cash":_59,"casino":_59,"catering":_59,"catholic":_59,"cba":_59,"cbn":_59,"cbre":_59,"center":_59,"ceo":_59,"cern":_59,"cfa":_59,"cfd":_59,"chanel":_59,"channel":_59,"charity":_59,"chase":_59,"chat":_59,"cheap":_59,"chintai":_59,"christmas":_59,"chrome":_59,"church":_59,"cipriani":_59,"circle":_59,"cisco":_59,"citadel":_59,"citi":_59,"citic":_59,"city":_59,"claims":_59,"cleaning":_59,"click":_59,"clinic":_59,"clinique":_59,"clothing":_59,"cloud":_59,"club":_59,"clubmed":_59,"coach":_59,"codes":_59,"coffee":_59,"college":_59,"cologne":_59,"comcast":_59,"commbank":_59,"community":_59,"company":_59,"compare":_59,"computer":_59,"comsec":_59,"condos":_59,"construction":_59,"consulting":_59,"contact":_59,"contractors":_59,"cooking":_59,"cool":_59,"corsica":_59,"country":_59,"coupon":_59,"coupons":_59,"courses":_59,"cpa":_59,"credit":_59,"creditcard":_59,"creditunion":_59,"cricket":_59,"crown":_59,"crs":_59,"cruise":_59,"cruises":_59,"cuisinella":_59,"cymru":_59,"cyou":_59,"dabur":_59,"dad":_59,"dance":_59,"data":_59,"date":_59,"dating":_59,"datsun":_59,"day":_59,"dclk":_59,"dds":_59,"deal":_59,"dealer":_59,"deals":_59,"degree":_59,"delivery":_59,"dell":_59,"deloitte":_59,"delta":_59,"democrat":_59,"dental":_59,"dentist":_59,"desi":_59,"design":_59,"dev":_59,"dhl":_59,"diamonds":_59,"diet":_59,"digital":_59,"direct":_59,"directory":_59,"discount":_59,"discover":_59,"dish":_59,"diy":_59,"dnp":_59,"docs":_59,"doctor":_59,"dog":_59,"domains":_59,"dot":_59,"download":_59,"drive":_59,"dtv":_59,"dubai":_59,"dunlop":_59,"dupont":_59,"durban":_59,"dvag":_59,"dvr":_59,"earth":_59,"eat":_59,"eco":_59,"edeka":_59,"education":_59,"email":_59,"emerck":_59,"energy":_59,"engineer":_59,"engineering":_59,"enterprises":_59,"epson":_59,"equipment":_59,"ericsson":_59,"erni":_59,"esq":_59,"estate":_59,"eurovision":_59,"eus":_59,"events":_59,"exchange":_59,"expert":_59,"exposed":_59,"express":_59,"extraspace":_59,"fage":_59,"fail":_59,"fairwinds":_59,"faith":_59,"family":_59,"fan":_59,"fans":_59,"farm":_59,"farmers":_59,"fashion":_59,"fast":_59,"fedex":_59,"feedback":_59,"ferrari":_59,"ferrero":_59,"fidelity":_59,"fido":_59,"film":_59,"final":_59,"finance":_59,"financial":_59,"fire":_59,"firestone":_59,"firmdale":_59,"fish":_59,"fishing":_59,"fit":_59,"fitness":_59,"flickr":_59,"flights":_59,"flir":_59,"florist":_59,"flowers":_59,"fly":_59,"foo":_59,"food":_59,"football":_59,"ford":_59,"forex":_59,"forsale":_59,"forum":_59,"foundation":_59,"fox":_59,"free":_59,"fresenius":_59,"frl":_59,"frogans":_59,"frontier":_59,"ftr":_59,"fujitsu":_59,"fun":_59,"fund":_59,"furniture":_59,"futbol":_59,"fyi":_59,"gal":_59,"gallery":_59,"gallo":_59,"gallup":_59,"game":_59,"games":_59,"gap":_59,"garden":_59,"gay":_59,"gbiz":_59,"gdn":_59,"gea":_59,"gent":_59,"genting":_59,"george":_59,"ggee":_59,"gift":_59,"gifts":_59,"gives":_59,"giving":_59,"glass":_59,"gle":_59,"global":_59,"globo":_59,"gmail":_59,"gmbh":_59,"gmo":_59,"gmx":_59,"godaddy":_59,"gold":_59,"goldpoint":_59,"golf":_59,"goo":_59,"goodyear":_59,"goog":_59,"google":_59,"gop":_59,"got":_59,"grainger":_59,"graphics":_59,"gratis":_59,"green":_59,"gripe":_59,"grocery":_59,"group":_59,"guardian":_59,"gucci":_59,"guge":_59,"guide":_59,"guitars":_59,"guru":_59,"hair":_59,"hamburg":_59,"hangout":_59,"haus":_59,"hbo":_59,"hdfc":_59,"hdfcbank":_59,"health":_59,"healthcare":_59,"help":_59,"helsinki":_59,"here":_59,"hermes":_59,"hiphop":_59,"hisamitsu":_59,"hitachi":_59,"hiv":_59,"hkt":_59,"hockey":_59,"holdings":_59,"holiday":_59,"homedepot":_59,"homegoods":_59,"homes":_59,"homesense":_59,"honda":_59,"horse":_59,"hospital":_59,"host":_59,"hosting":_59,"hot":_59,"hotels":_59,"hotmail":_59,"house":_59,"how":_59,"hsbc":_59,"hughes":_59,"hyatt":_59,"hyundai":_59,"ibm":_59,"icbc":_59,"ice":_59,"icu":_59,"ieee":_59,"ifm":_59,"ikano":_59,"imamat":_59,"imdb":_59,"immo":_59,"immobilien":_59,"inc":_59,"industries":_59,"infiniti":_59,"ing":_59,"ink":_59,"institute":_59,"insurance":_59,"insure":_59,"international":_59,"intuit":_59,"investments":_59,"ipiranga":_59,"irish":_59,"ismaili":_59,"ist":_59,"istanbul":_59,"itau":_59,"itv":_59,"jaguar":_59,"java":_59,"jcb":_59,"jeep":_59,"jetzt":_59,"jewelry":_59,"jio":_59,"jll":_59,"jmp":_59,"jnj":_59,"joburg":_59,"jot":_59,"joy":_59,"jpmorgan":_59,"jprs":_59,"juegos":_59,"juniper":_59,"kaufen":_59,"kddi":_59,"kerryhotels":_59,"kerrylogistics":_59,"kerryproperties":_59,"kfh":_59,"kia":_59,"kids":_59,"kim":_59,"kindle":_59,"kitchen":_59,"kiwi":_59,"koeln":_59,"komatsu":_59,"kosher":_59,"kpmg":_59,"kpn":_59,"krd":_59,"kred":_59,"kuokgroup":_59,"kyoto":_59,"lacaixa":_59,"lamborghini":_59,"lamer":_59,"lancaster":_59,"land":_59,"landrover":_59,"lanxess":_59,"lasalle":_59,"lat":_59,"latino":_59,"latrobe":_59,"law":_59,"lawyer":_59,"lds":_59,"lease":_59,"leclerc":_59,"lefrak":_59,"legal":_59,"lego":_59,"lexus":_59,"lgbt":_59,"lidl":_59,"life":_59,"lifeinsurance":_59,"lifestyle":_59,"lighting":_59,"like":_59,"lilly":_59,"limited":_59,"limo":_59,"lincoln":_59,"link":_59,"lipsy":_59,"live":_59,"living":_59,"llc":_59,"llp":_59,"loan":_59,"loans":_59,"locker":_59,"locus":_59,"lol":_59,"london":_59,"lotte":_59,"lotto":_59,"love":_59,"lpl":_59,"lplfinancial":_59,"ltd":_59,"ltda":_59,"lundbeck":_59,"luxe":_59,"luxury":_59,"madrid":_59,"maif":_59,"maison":_59,"makeup":_59,"man":_59,"management":_59,"mango":_59,"map":_59,"market":_59,"marketing":_59,"markets":_59,"marriott":_59,"marshalls":_59,"mattel":_59,"mba":_59,"mckinsey":_59,"med":_59,"media":_59,"meet":_59,"melbourne":_59,"meme":_59,"memorial":_59,"men":_59,"menu":_59,"merckmsd":_59,"miami":_59,"microsoft":_59,"mini":_59,"mint":_59,"mit":_59,"mitsubishi":_59,"mlb":_59,"mls":_59,"mma":_59,"mobile":_59,"moda":_59,"moe":_59,"moi":_59,"mom":_59,"monash":_59,"money":_59,"monster":_59,"mormon":_59,"mortgage":_59,"moscow":_59,"moto":_59,"motorcycles":_59,"mov":_59,"movie":_59,"msd":_59,"mtn":_59,"mtr":_59,"music":_59,"nab":_59,"nagoya":_59,"natura":_59,"navy":_59,"nba":_59,"nec":_59,"netbank":_59,"netflix":_59,"network":_59,"neustar":_59,"new":_59,"news":_59,"next":_59,"nextdirect":_59,"nexus":_59,"nfl":_59,"ngo":_59,"nhk":_59,"nico":_59,"nike":_59,"nikon":_59,"ninja":_59,"nissan":_59,"nissay":_59,"nokia":_59,"norton":_59,"now":_59,"nowruz":_59,"nowtv":_59,"nra":_59,"nrw":_59,"ntt":_59,"nyc":_59,"obi":_59,"observer":_59,"office":_59,"okinawa":_59,"olayan":_59,"olayangroup":_59,"oldnavy":_59,"ollo":_59,"omega":_59,"one":_59,"ong":_59,"onl":_59,"online":_59,"ooo":_59,"open":_59,"oracle":_59,"orange":_59,"organic":_59,"origins":_59,"osaka":_59,"otsuka":_59,"ott":_59,"ovh":_59,"page":_59,"panasonic":_59,"paris":_59,"pars":_59,"partners":_59,"parts":_59,"party":_59,"pay":_59,"pccw":_59,"pet":_59,"pfizer":_59,"pharmacy":_59,"phd":_59,"philips":_59,"phone":_59,"photo":_59,"photography":_59,"photos":_59,"physio":_59,"pics":_59,"pictet":_59,"pictures":_59,"pid":_59,"pin":_59,"ping":_59,"pink":_59,"pioneer":_59,"pizza":_59,"place":_59,"play":_59,"playstation":_59,"plumbing":_59,"plus":_59,"pnc":_59,"pohl":_59,"poker":_59,"politie":_59,"porn":_59,"pramerica":_59,"praxi":_59,"press":_59,"prime":_59,"prod":_59,"productions":_59,"prof":_59,"progressive":_59,"promo":_59,"properties":_59,"property":_59,"protection":_59,"pru":_59,"prudential":_59,"pub":_59,"pwc":_59,"qpon":_59,"quebec":_59,"quest":_59,"racing":_59,"radio":_59,"read":_59,"realestate":_59,"realtor":_59,"realty":_59,"recipes":_59,"red":_59,"redstone":_59,"redumbrella":_59,"rehab":_59,"reise":_59,"reisen":_59,"reit":_59,"reliance":_59,"ren":_59,"rent":_59,"rentals":_59,"repair":_59,"report":_59,"republican":_59,"rest":_59,"restaurant":_59,"review":_59,"reviews":_59,"rexroth":_59,"rich":_59,"richardli":_59,"ricoh":_59,"ril":_59,"rio":_59,"rip":_59,"rocks":_59,"rodeo":_59,"rogers":_59,"room":_59,"rsvp":_59,"rugby":_59,"ruhr":_59,"run":_59,"rwe":_59,"ryukyu":_59,"saarland":_59,"safe":_59,"safety":_59,"sakura":_59,"sale":_59,"salon":_59,"samsclub":_59,"samsung":_59,"sandvik":_59,"sandvikcoromant":_59,"sanofi":_59,"sap":_59,"sarl":_59,"sas":_59,"save":_59,"saxo":_59,"sbi":_59,"sbs":_59,"sca":_59,"scb":_59,"schaeffler":_59,"schmidt":_59,"scholarships":_59,"school":_59,"schule":_59,"schwarz":_59,"science":_59,"scot":_59,"search":_59,"seat":_59,"secure":_59,"security":_59,"seek":_59,"select":_59,"sener":_59,"services":_59,"seven":_59,"sew":_59,"sex":_59,"sexy":_59,"sfr":_59,"shangrila":_59,"sharp":_59,"shaw":_59,"shell":_59,"shia":_59,"shiksha":_59,"shoes":_59,"shop":_59,"shopping":_59,"shouji":_59,"show":_59,"silk":_59,"sina":_59,"singles":_59,"site":_59,"ski":_59,"skin":_59,"sky":_59,"skype":_59,"sling":_59,"smart":_59,"smile":_59,"sncf":_59,"soccer":_59,"social":_59,"softbank":_59,"software":_59,"sohu":_59,"solar":_59,"solutions":_59,"song":_59,"sony":_59,"soy":_59,"spa":_59,"space":_59,"sport":_59,"spot":_59,"srl":_59,"stada":_59,"staples":_59,"star":_59,"statebank":_59,"statefarm":_59,"stc":_59,"stcgroup":_59,"stockholm":_59,"storage":_59,"store":_59,"stream":_59,"studio":_59,"study":_59,"style":_59,"sucks":_59,"supplies":_59,"supply":_59,"support":_59,"surf":_59,"surgery":_59,"suzuki":_59,"swatch":_59,"swiss":_59,"sydney":_59,"systems":_59,"tab":_59,"taipei":_59,"talk":_59,"taobao":_59,"target":_59,"tatamotors":_59,"tatar":_59,"tattoo":_59,"tax":_59,"taxi":_59,"tci":_59,"tdk":_59,"team":_59,"tech":_59,"technology":_59,"temasek":_59,"tennis":_59,"teva":_59,"thd":_59,"theater":_59,"theatre":_59,"tiaa":_59,"tickets":_59,"tienda":_59,"tips":_59,"tires":_59,"tirol":_59,"tjmaxx":_59,"tjx":_59,"tkmaxx":_59,"tmall":_59,"today":_59,"tokyo":_59,"tools":_59,"top":_59,"toray":_59,"toshiba":_59,"total":_59,"tours":_59,"town":_59,"toyota":_59,"toys":_59,"trade":_59,"trading":_59,"training":_59,"travel":_59,"travelers":_59,"travelersinsurance":_59,"trust":_59,"trv":_59,"tube":_59,"tui":_59,"tunes":_59,"tushu":_59,"tvs":_59,"ubank":_59,"ubs":_59,"unicom":_59,"university":_59,"uno":_59,"uol":_59,"ups":_59,"vacations":_59,"vana":_59,"vanguard":_59,"vegas":_59,"ventures":_59,"verisign":_59,"versicherung":_59,"vet":_59,"viajes":_59,"video":_59,"vig":_59,"viking":_59,"villas":_59,"vin":_59,"vip":_59,"virgin":_59,"visa":_59,"vision":_59,"viva":_59,"vivo":_59,"vlaanderen":_59,"vodka":_59,"volvo":_59,"vote":_59,"voting":_59,"voto":_59,"voyage":_59,"wales":_59,"walmart":_59,"walter":_59,"wang":_59,"wanggou":_59,"watch":_59,"watches":_59,"weather":_59,"weatherchannel":_59,"webcam":_59,"weber":_59,"website":_59,"wed":_59,"wedding":_59,"weibo":_59,"weir":_59,"whoswho":_59,"wien":_59,"wiki":_59,"williamhill":_59,"win":_59,"windows":_59,"wine":_59,"winners":_59,"wme":_59,"wolterskluwer":_59,"woodside":_59,"work":_59,"works":_59,"world":_59,"wow":_59,"wtc":_59,"wtf":_59,"xbox":_59,"xerox":_59,"xfinity":_59,"xihuan":_59,"xin":_59,"xn--11b4c3d":_59,"कॉम":_59,"xn--1ck2e1b":_59,"セール":_59,"xn--1qqw23a":_59,"佛山":_59,"xn--30rr7y":_59,"慈善":_59,"xn--3bst00m":_59,"集团":_59,"xn--3ds443g":_59,"在线":_59,"xn--3pxu8k":_59,"点看":_59,"xn--42c2d9a":_59,"คอม":_59,"xn--45q11c":_59,"八卦":_59,"xn--4gbrim":_59,"موقع":_59,"xn--55qw42g":_59,"公益":_59,"xn--55qx5d":_59,"公司":_59,"xn--5su34j936bgsg":_59,"香格里拉":_59,"xn--5tzm5g":_59,"网站":_59,"xn--6frz82g":_59,"移动":_59,"xn--6qq986b3xl":_59,"我爱你":_59,"xn--80adxhks":_59,"москва":_59,"xn--80aqecdr1a":_59,"католик":_59,"xn--80asehdb":_59,"онлайн":_59,"xn--80aswg":_59,"сайт":_59,"xn--8y0a063a":_59,"联通":_59,"xn--9dbq2a":_59,"קום":_59,"xn--9et52u":_59,"时尚":_59,"xn--9krt00a":_59,"微博":_59,"xn--b4w605ferd":_59,"淡马锡":_59,"xn--bck1b9a5dre4c":_59,"ファッション":_59,"xn--c1avg":_59,"орг":_59,"xn--c2br7g":_59,"नेट":_59,"xn--cck2b3b":_59,"ストア":_59,"xn--cckwcxetd":_59,"アマゾン":_59,"xn--cg4bki":_59,"삼성":_59,"xn--czr694b":_59,"商标":_59,"xn--czrs0t":_59,"商店":_59,"xn--czru2d":_59,"商城":_59,"xn--d1acj3b":_59,"дети":_59,"xn--eckvdtc9d":_59,"ポイント":_59,"xn--efvy88h":_59,"新闻":_59,"xn--fct429k":_59,"家電":_59,"xn--fhbei":_59,"كوم":_59,"xn--fiq228c5hs":_59,"中文网":_59,"xn--fiq64b":_59,"中信":_59,"xn--fjq720a":_59,"娱乐":_59,"xn--flw351e":_59,"谷歌":_59,"xn--fzys8d69uvgm":_59,"電訊盈科":_59,"xn--g2xx48c":_59,"购物":_59,"xn--gckr3f0f":_59,"クラウド":_59,"xn--gk3at1e":_59,"通販":_59,"xn--hxt814e":_59,"网店":_59,"xn--i1b6b1a6a2e":_59,"संगठन":_59,"xn--imr513n":_59,"餐厅":_59,"xn--io0a7i":_59,"网络":_59,"xn--j1aef":_59,"ком":_59,"xn--jlq480n2rg":_59,"亚马逊":_59,"xn--jvr189m":_59,"食品":_59,"xn--kcrx77d1x4a":_59,"飞利浦":_59,"xn--kput3i":_59,"手机":_59,"xn--mgba3a3ejt":_59,"ارامكو":_59,"xn--mgba7c0bbn0a":_59,"العليان":_59,"xn--mgbab2bd":_59,"بازار":_59,"xn--mgbca7dzdo":_59,"ابوظبي":_59,"xn--mgbi4ecexp":_59,"كاثوليك":_59,"xn--mgbt3dhd":_59,"همراه":_59,"xn--mk1bu44c":_59,"닷컴":_59,"xn--mxtq1m":_59,"政府":_59,"xn--ngbc5azd":_59,"شبكة":_59,"xn--ngbe9e0a":_59,"بيتك":_59,"xn--ngbrx":_59,"عرب":_59,"xn--nqv7f":_59,"机构":_59,"xn--nqv7fs00ema":_59,"组织机构":_59,"xn--nyqy26a":_59,"健康":_59,"xn--otu796d":_59,"招聘":_59,"xn--p1acf":_59,"рус":_59,"xn--pssy2u":_59,"大拿":_59,"xn--q9jyb4c":_59,"みんな":_59,"xn--qcka1pmc":_59,"グーグル":_59,"xn--rhqv96g":_59,"世界":_59,"xn--rovu88b":_59,"書籍":_59,"xn--ses554g":_59,"网址":_59,"xn--t60b56a":_59,"닷넷":_59,"xn--tckwe":_59,"コム":_59,"xn--tiq49xqyj":_59,"天主教":_59,"xn--unup4y":_59,"游戏":_59,"xn--vermgensberater-ctb":_59,"vermögensberater":_59,"xn--vermgensberatung-pwb":_59,"vermögensberatung":_59,"xn--vhquv":_59,"企业":_59,"xn--vuq861b":_59,"信息":_59,"xn--w4r85el8fhu5dnra":_59,"嘉里大酒店":_59,"xn--w4rs40l":_59,"嘉里":_59,"xn--xhq521b":_59,"广东":_59,"xn--zfr164b":_59,"政务":_59,"xyz":_59,"yachts":_59,"yahoo":_59,"yamaxun":_59,"yandex":_59,"yodobashi":_59,"yoga":_59,"yokohama":_59,"you":_59,"youtube":_59,"yun":_59,"zappos":_59,"zara":_59,"zero":_59,"zip":_59,"zone":_59,"zuerich":_59}]; + return rules; +})(); diff --git a/packages/tldts-icann/src/suffix-trie.ts b/packages/tldts-icann/src/suffix-trie.ts new file mode 100644 index 00000000..008f5f5f --- /dev/null +++ b/packages/tldts-icann/src/suffix-trie.ts @@ -0,0 +1,87 @@ +import { + fastPathLookup, + IPublicSuffix, + ISuffixLookupOptions, +} from 'tldts-core'; +import { exceptions, ITrie, rules } from './data/trie'; + +interface IMatch { + index: number; +} + +/** + * Lookup parts of domain in Trie + */ +function lookupInTrie( + parts: string[], + trie: ITrie, + index: number, +): IMatch | null { + let result: IMatch | null = null; + let node: ITrie | undefined = trie; + while (node !== undefined) { + // We have a match! + if (node[0] === 1) { + result = { + index: index + 1, + }; + } + + // No more `parts` to look for + if (index === -1) { + break; + } + + const succ: { [label: string]: ITrie } = node[1]; + node = Object.prototype.hasOwnProperty.call(succ, parts[index]!) + ? succ[parts[index]!] + : succ['*']; + index -= 1; + } + + return result; +} + +/** + * Check if `hostname` has a valid public suffix in `trie`. + */ +export default function suffixLookup( + hostname: string, + options: ISuffixLookupOptions, + out: IPublicSuffix, +): void { + if (fastPathLookup(hostname, options, out)) { + return; + } + + const hostnameParts = hostname.split('.'); + + // Look for exceptions + const exceptionMatch = lookupInTrie( + hostnameParts, + exceptions, + hostnameParts.length - 1, + ); + + if (exceptionMatch !== null) { + out.publicSuffix = hostnameParts.slice(exceptionMatch.index + 1).join('.'); + return; + } + + // Look for a match in rules + const rulesMatch = lookupInTrie( + hostnameParts, + rules, + hostnameParts.length - 1, + ); + + if (rulesMatch !== null) { + out.publicSuffix = hostnameParts.slice(rulesMatch.index).join('.'); + return; + } + + // No match found... + // Prevailing rule is '*' so we consider the top-level domain to be the + // public suffix of `hostname` (e.g.: 'example.org' => 'org'). + out.publicSuffix = hostnameParts[hostnameParts.length - 1] ?? null; +} diff --git a/packages/tldts-icann/test/publicsuffix.test.ts b/packages/tldts-icann/test/publicsuffix.test.ts new file mode 100644 index 00000000..75a4df51 --- /dev/null +++ b/packages/tldts-icann/test/publicsuffix.test.ts @@ -0,0 +1,9 @@ +import 'mocha'; + +import * as tld from '../index'; + +import { publicSuffixListTests } from 'tldts-tests'; + +describe('tldts classic (ICANN only)', () => { + publicSuffixListTests(tld.getDomain, { includePrivate: false }); +}); diff --git a/packages/tldts-icann/test/tld.test.ts b/packages/tldts-icann/test/tld.test.ts new file mode 100644 index 00000000..1398758d --- /dev/null +++ b/packages/tldts-icann/test/tld.test.ts @@ -0,0 +1,9 @@ +import 'mocha'; + +import * as tld from '../index'; + +import { tldtsTests } from 'tldts-tests'; + +describe('tldts classic (ICANN only)', () => { + tldtsTests(tld, { includePrivate: false }); +}); diff --git a/packages/tldts-icann/tsconfig.bundle.json b/packages/tldts-icann/tsconfig.bundle.json new file mode 100644 index 00000000..4a7fec13 --- /dev/null +++ b/packages/tldts-icann/tsconfig.bundle.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "declaration": false, + "declarationMap": false, + "declarationDir": null, + "composite": false, + "incremental": true, + "module": "es6", + "outDir": "dist/es6" + } +} diff --git a/packages/tldts-icann/tsconfig.json b/packages/tldts-icann/tsconfig.json new file mode 100644 index 00000000..8335cfa5 --- /dev/null +++ b/packages/tldts-icann/tsconfig.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig", + "compilerOptions": { + "composite": true, + "outDir": "dist/cjs", + "declarationDir": "dist/types" + }, + "references": [ + { + "path": "../tldts-core/tsconfig.json" + }, + { + "path": "../tldts-tests/tsconfig.json" + } + ], + "include": ["./src/**/*.ts", "./index.ts"] +} diff --git a/packages/tldts-tests/src/publicsuffix-tests.ts b/packages/tldts-tests/src/publicsuffix-tests.ts index 4996e4e1..408f67e4 100644 --- a/packages/tldts-tests/src/publicsuffix-tests.ts +++ b/packages/tldts-tests/src/publicsuffix-tests.ts @@ -6,6 +6,7 @@ export default function test( domain: string, options: { allowIcannDomains: boolean; allowPrivateDomains: boolean }, ) => string | null, + { includePrivate }: { includePrivate: boolean }, ): void { // Ease testing by simply copy/pasting tests from Mozilla Central // @see https://dxr.mozilla.org/mozilla-central/source/netwerk/test/unit/data/test_psl.txt?raw=1 @@ -16,7 +17,7 @@ export default function test( expect( getDomain(testDomain, { allowIcannDomains: true, - allowPrivateDomains: true, + allowPrivateDomains: includePrivate, }), ).to.equal(expectedResult); } @@ -61,10 +62,12 @@ export default function test( checkPublicSuffix('example.com', 'example.com'); checkPublicSuffix('b.example.com', 'example.com'); checkPublicSuffix('a.b.example.com', 'example.com'); - checkPublicSuffix('uk.com', null); - checkPublicSuffix('example.uk.com', 'example.uk.com'); - checkPublicSuffix('b.example.uk.com', 'example.uk.com'); - checkPublicSuffix('a.b.example.uk.com', 'example.uk.com'); + if (includePrivate) { + checkPublicSuffix('uk.com', null); + checkPublicSuffix('example.uk.com', 'example.uk.com'); + checkPublicSuffix('b.example.uk.com', 'example.uk.com'); + checkPublicSuffix('a.b.example.uk.com', 'example.uk.com'); + } checkPublicSuffix('test.ac', 'test.ac'); }); diff --git a/packages/tldts-tests/src/tldts-tests.ts b/packages/tldts-tests/src/tldts-tests.ts index 1968d2d0..7a2de64b 100644 --- a/packages/tldts-tests/src/tldts-tests.ts +++ b/packages/tldts-tests/src/tldts-tests.ts @@ -13,21 +13,24 @@ interface Options { validHosts?: string[]; } -export default function test(tldts: { - getDomainWithoutSuffix: (url: string, options?: Options) => string | null; - getPublicSuffix: (url: string, options?: Options) => string | null; - getHostname: (url: string, options?: Options) => string | null; - getDomain: (url: string, options?: Options) => string | null; - getSubdomain: (url: string, options?: Options) => string | null; - parse: ( - url: string, - options?: Options, - ) => { - domain: string | null; - hostname: string | null; - publicSuffix: string | null; - }; -}): void { +export default function test( + tldts: { + getDomainWithoutSuffix: (url: string, options?: Options) => string | null; + getPublicSuffix: (url: string, options?: Options) => string | null; + getHostname: (url: string, options?: Options) => string | null; + getDomain: (url: string, options?: Options) => string | null; + getSubdomain: (url: string, options?: Options) => string | null; + parse: ( + url: string, + options?: Options, + ) => { + domain: string | null; + hostname: string | null; + publicSuffix: string | null; + }; + }, + { includePrivate }: { includePrivate: boolean }, +): void { describe('from https://github.com/rushmorem/publicsuffix/blob/master/src/tests.rs', () => { // Copyright (c) 2016 Rushmore Mushambi it('should allow parsing IDN email addresses', () => { @@ -319,16 +322,18 @@ export default function test(tldts: { // @see https://github.com/oncletom/tld.js/issues/25 // @see https://github.com/oncletom/tld.js/issues/30 - it('existing rule constraint', () => { - expect(tldts.getDomain('s3.amazonaws.com')).to.equal('amazonaws.com'); - expect( - tldts.getDomain('s3.amazonaws.com', { allowPrivateDomains: true }), - ).to.equal(null); - expect( - tldts.getDomain('blogspot.co.uk', { allowPrivateDomains: true }), - ).to.equal(null); - expect(tldts.getDomain('blogspot.co.uk')).to.equal('blogspot.co.uk'); - }); + if (includePrivate) { + it('existing rule constraint', () => { + expect(tldts.getDomain('s3.amazonaws.com')).to.equal('amazonaws.com'); + expect( + tldts.getDomain('s3.amazonaws.com', { allowPrivateDomains: true }), + ).to.equal(null); + expect( + tldts.getDomain('blogspot.co.uk', { allowPrivateDomains: true }), + ).to.equal(null); + expect(tldts.getDomain('blogspot.co.uk')).to.equal('blogspot.co.uk'); + }); + } it('should return nytimes.com even in a whole valid', () => { expect(tldts.getDomain('http://www.nytimes.com/')).to.equal( @@ -345,57 +350,59 @@ export default function test(tldts: { }); describe('#getPublicSuffix', () => { - describe('allowPrivateDomains', () => { - const getPublicSuffix = (url: string) => { - return tldts.getPublicSuffix(url, { allowPrivateDomains: true }); - }; - - it('should return de if example.de', () => { - expect(getPublicSuffix('example.de')).to.equal('de'); - }); + if (includePrivate) { + describe('allowPrivateDomains', () => { + const getPublicSuffix = (url: string) => { + return tldts.getPublicSuffix(url, { allowPrivateDomains: true }); + }; + + it('should return de if example.de', () => { + expect(getPublicSuffix('example.de')).to.equal('de'); + }); - it('should return co.uk if google.co.uk', () => { - expect(getPublicSuffix('google.co.uk')).to.equal('co.uk'); - }); + it('should return co.uk if google.co.uk', () => { + expect(getPublicSuffix('google.co.uk')).to.equal('co.uk'); + }); - // @see https://github.com/oncletom/tld.js/pull/97 - it('should return www.ck if www.www.ck', () => { - expect(getPublicSuffix('www.www.ck')).to.equal('ck'); - }); + // @see https://github.com/oncletom/tld.js/pull/97 + it('should return www.ck if www.www.ck', () => { + expect(getPublicSuffix('www.www.ck')).to.equal('ck'); + }); - // @see https://github.com/oncletom/tld.js/issues/30 - it('should return s3.amazonaws.com if s3.amazonaws.com', () => { - expect(getPublicSuffix('s3.amazonaws.com')).to.equal( - 's3.amazonaws.com', - ); - }); + // @see https://github.com/oncletom/tld.js/issues/30 + it('should return s3.amazonaws.com if s3.amazonaws.com', () => { + expect(getPublicSuffix('s3.amazonaws.com')).to.equal( + 's3.amazonaws.com', + ); + }); - it('should return s3.amazonaws.com if www.s3.amazonaws.com', () => { - expect(getPublicSuffix('www.s3.amazonaws.com')).to.equal( - 's3.amazonaws.com', - ); - }); + it('should return s3.amazonaws.com if www.s3.amazonaws.com', () => { + expect(getPublicSuffix('www.s3.amazonaws.com')).to.equal( + 's3.amazonaws.com', + ); + }); - it('should directly return the suffix if it matches a rule key', () => { - expect(getPublicSuffix('youtube')).to.equal('youtube'); - }); + it('should directly return the suffix if it matches a rule key', () => { + expect(getPublicSuffix('youtube')).to.equal('youtube'); + }); - it('should return the suffix if a rule exists that has no exceptions', () => { - expect(getPublicSuffix('microsoft.eu')).to.equal('eu'); - }); + it('should return the suffix if a rule exists that has no exceptions', () => { + expect(getPublicSuffix('microsoft.eu')).to.equal('eu'); + }); - // @see https://github.com/oncletom/tld.js/pull/97 - it('should return the string tldts if the publicsuffix does not exist', () => { - expect(getPublicSuffix('www.freedom.nsa')).to.equal('nsa'); - }); + // @see https://github.com/oncletom/tld.js/pull/97 + it('should return the string tldts if the publicsuffix does not exist', () => { + expect(getPublicSuffix('www.freedom.nsa')).to.equal('nsa'); + }); - // @see https://github.com/oncletom/tld.js/issues/95 - it('should ignore the trailing dot in a domain', () => { - expect(getPublicSuffix('https://www.google.co.uk./maps')).to.equal( - 'co.uk', - ); + // @see https://github.com/oncletom/tld.js/issues/95 + it('should ignore the trailing dot in a domain', () => { + expect(getPublicSuffix('https://www.google.co.uk./maps')).to.equal( + 'co.uk', + ); + }); }); - }); + } describe('ignoring Private domains', () => { const getPublicSuffix = (url: string) => { @@ -437,30 +444,32 @@ export default function test(tldts: { }); }); - describe('ignoring ICANN domains', () => { - const getPublicSuffix = (url: string) => { - return tldts.getPublicSuffix(url, { - allowIcannDomains: false, - allowPrivateDomains: true, - }); - }; + if (includePrivate) { + describe('ignoring ICANN domains', () => { + const getPublicSuffix = (url: string) => { + return tldts.getPublicSuffix(url, { + allowIcannDomains: false, + allowPrivateDomains: true, + }); + }; - it('should return s3.amazonaws.com if www.s3.amazonaws.com', () => { - expect(getPublicSuffix('www.s3.amazonaws.com')).to.equal( - 's3.amazonaws.com', - ); - }); + it('should return s3.amazonaws.com if www.s3.amazonaws.com', () => { + expect(getPublicSuffix('www.s3.amazonaws.com')).to.equal( + 's3.amazonaws.com', + ); + }); - it('should return global.prod.fastly.net if global.prod.fastly.net', () => { - expect(getPublicSuffix('https://global.prod.fastly.net')).to.equal( - 'global.prod.fastly.net', - ); - }); + it('should return global.prod.fastly.net if global.prod.fastly.net', () => { + expect(getPublicSuffix('https://global.prod.fastly.net')).to.equal( + 'global.prod.fastly.net', + ); + }); - it('should return co.uk if google.co.uk', () => { - expect(getPublicSuffix('google.co.uk')).to.equal('uk'); + it('should return co.uk if google.co.uk', () => { + expect(getPublicSuffix('google.co.uk')).to.equal('uk'); + }); }); - }); + } }); describe('#getHostname', () => { @@ -753,16 +762,29 @@ export default function test(tldts: { }; it('fallback to wildcard', () => { - expect(tldts.parse('https://foo.bar.badasdasdada')).to.deep.equal({ - domain: 'bar.badasdasdada', - domainWithoutSuffix: 'bar', - hostname: 'foo.bar.badasdasdada', - isIcann: false, - isIp: false, - isPrivate: false, - publicSuffix: 'badasdasdada', - subdomain: 'foo', - }); + expect(tldts.parse('https://foo.bar.badasdasdada')).to.deep.equal( + includePrivate + ? { + domain: 'bar.badasdasdada', + domainWithoutSuffix: 'bar', + hostname: 'foo.bar.badasdasdada', + isIcann: false, + isIp: false, + isPrivate: false, + publicSuffix: 'badasdasdada', + subdomain: 'foo', + } + : { + domain: 'bar.badasdasdada', + domainWithoutSuffix: 'bar', + hostname: 'foo.bar.badasdasdada', + isIcann: null, + isIp: false, + isPrivate: null, + publicSuffix: 'badasdasdada', + subdomain: 'foo', + }, + ); }); it('should handle data URLs', () => { @@ -825,16 +847,29 @@ export default function test(tldts: { it('disable ip detection', () => { expect( tldts.parse('http://192.168.0.1/', { detectIp: false }), - ).to.deep.equal({ - domain: '0.1', - domainWithoutSuffix: '0', - hostname: '192.168.0.1', - isIcann: false, - isIp: null, - isPrivate: false, - publicSuffix: '1', - subdomain: '192.168', - }); + ).to.deep.equal( + includePrivate + ? { + domain: '0.1', + domainWithoutSuffix: '0', + hostname: '192.168.0.1', + isIcann: false, + isIp: null, + isPrivate: false, + publicSuffix: '1', + subdomain: '192.168', + } + : { + domain: '0.1', + domainWithoutSuffix: '0', + hostname: '192.168.0.1', + isIcann: null, + isIp: null, + isPrivate: null, + publicSuffix: '1', + subdomain: '192.168', + }, + ); }); }); @@ -872,22 +907,39 @@ export default function test(tldts: { // Examples based on What-wg specification: https://url.spec.whatwg.org/#example-host-psl describe('whatwg URL spec', () => { - for (const [input, publicSuffix, domain] of [ - ['com', 'com', null], - ['example.com', 'com', 'example.com'], - ['www.example.com', 'com', 'example.com'], - ['sub.www.example.com', 'com', 'example.com'], - ['EXAMPLE.COM', 'com', 'example.com'], - // ['example.com.', 'com.', 'example.com.'], - ['github.io', 'github.io', null], - ['whatwg.github.io', 'github.io', 'whatwg.github.io'], - ['إختبار', 'إختبار', null], - ['example.إختبار', 'إختبار', 'example.إختبار'], - ['sub.example.إختبار', 'إختبار', 'example.إختبار'], - ['[2001:0db8:85a3:0000:0000:8a2e:0370:7334]', null, null], - ] as const) { + for (const [input, publicSuffix, domain] of includePrivate + ? ([ + ['com', 'com', null], + ['example.com', 'com', 'example.com'], + ['www.example.com', 'com', 'example.com'], + ['sub.www.example.com', 'com', 'example.com'], + ['EXAMPLE.COM', 'com', 'example.com'], + // ['example.com.', 'com.', 'example.com.'], + ['github.io', 'github.io', null], + ['whatwg.github.io', 'github.io', 'whatwg.github.io'], + ['إختبار', 'إختبار', null], + ['example.إختبار', 'إختبار', 'example.إختبار'], + ['sub.example.إختبار', 'إختبار', 'example.إختبار'], + ['[2001:0db8:85a3:0000:0000:8a2e:0370:7334]', null, null], + ] as const) + : ([ + ['com', 'com', null], + ['example.com', 'com', 'example.com'], + ['www.example.com', 'com', 'example.com'], + ['sub.www.example.com', 'com', 'example.com'], + ['EXAMPLE.COM', 'com', 'example.com'], + // ['example.com.', 'com.', 'example.com.'], + ['github.io', 'io', 'github.io'], + ['whatwg.github.io', 'io', 'github.io'], + ['إختبار', 'إختبار', null], + ['example.إختبار', 'إختبار', 'example.إختبار'], + ['sub.example.إختبار', 'إختبار', 'example.إختبار'], + ['[2001:0db8:85a3:0000:0000:8a2e:0370:7334]', null, null], + ] as const)) { it(input, () => { - const result = tldts.parse(input, { allowPrivateDomains: true }); + const result = tldts.parse(input, { + allowPrivateDomains: includePrivate, + }); expect(result, input).not.to.equal(null); expect(result.publicSuffix, input).to.equal(publicSuffix); expect(result.domain, input).to.equal(domain); @@ -897,13 +949,19 @@ export default function test(tldts: { describe('wildcard tests', () => { parsePublicSuffixRules(loadPublicSuffixList(), (rule) => { - if (!rule.isException && rule.isWildcard) { + if ( + !rule.isException && + rule.isWildcard && + (rule.isIcann || includePrivate) + ) { let domain = rule.rule; it(domain, () => { expect(domain.startsWith('*.')).to.be.true; domain = domain.slice(2); const url = `https://www.sub.${domain}/`; - const result = tldts.parse(url, { allowPrivateDomains: true }); + const result = tldts.parse(url, { + allowPrivateDomains: includePrivate, + }); expect(result, url).not.to.equal(null); expect(result.publicSuffix, url).to.equal(`sub.${domain}`); expect(result.domain, url).to.equal(`www.sub.${domain}`); @@ -915,11 +973,17 @@ export default function test(tldts: { describe('exception tests', () => { parsePublicSuffixRules(loadPublicSuffixList(), (rule) => { - if (rule.isException && !rule.isWildcard) { + if ( + rule.isException && + !rule.isWildcard && + (rule.isIcann || includePrivate) + ) { const domain = rule.rule; it(domain, () => { const url = `https://${domain}/`; - const result = tldts.parse(url, { allowPrivateDomains: true }); + const result = tldts.parse(url, { + allowPrivateDomains: includePrivate, + }); expect(result, url).not.to.equal(null); expect(result.publicSuffix, url).to.equal( domain.split('.').slice(1).join('.'), @@ -933,11 +997,17 @@ export default function test(tldts: { describe('extended tests', () => { parsePublicSuffixRules(loadPublicSuffixList(), (rule) => { - if (!rule.isException && !rule.isWildcard) { + if ( + !rule.isException && + !rule.isWildcard && + (rule.isIcann || includePrivate) + ) { const suffix = rule.rule; it(suffix, () => { const url = `https://example.${suffix}/`; - const result = tldts.parse(url, { allowPrivateDomains: true }); + const result = tldts.parse(url, { + allowPrivateDomains: includePrivate, + }); expect(result, url).not.to.equal(null); expect(result.publicSuffix, url).to.equal(suffix); expect(result.domain, url).to.equal(`example.${suffix}`); diff --git a/packages/tldts-utils/src/builders/trie.ts b/packages/tldts-utils/src/builders/trie.ts index 551371d3..840db573 100644 --- a/packages/tldts-utils/src/builders/trie.ts +++ b/packages/tldts-utils/src/builders/trie.ts @@ -173,9 +173,15 @@ function compressToDAWG(trie: ITrie, name: string): string { return output.join('\n'); } -function convertToTypeScriptSource(rules: ITrie, exceptions: ITrie): string { +function convertToTypeScriptSource( + rules: ITrie, + exceptions: ITrie, + { includePrivate }: { includePrivate: boolean }, +): string { return ` -export type ITrie = [0 | 1 | 2, { [label: string]: ITrie}]; +export type ITrie = [${ + includePrivate ? '0 | 1 | 2' : '0 | 1' + }, { [label: string]: ITrie}]; export const exceptions: ITrie = (function() { ${compressToDAWG(exceptions, 'exceptions')} @@ -189,17 +195,22 @@ export const rules: ITrie = (function() { `; } -export default (body: string) => { +export default ( + body: string, + { includePrivate }: { includePrivate: boolean }, +) => { const exceptions: ITrie = { $: 0, succ: {} }; const rules: ITrie = { $: 0, succ: {} }; // Iterate on public suffix rules parse(body, ({ rule, isIcann, isException }) => { - insertInTrie( - { isIcann, parts: rule.split('.').reverse() }, - isException ? exceptions : rules, - ); + if (isIcann || includePrivate) { + insertInTrie( + { isIcann, parts: rule.split('.').reverse() }, + isException ? exceptions : rules, + ); + } }); - return convertToTypeScriptSource(rules, exceptions); + return convertToTypeScriptSource(rules, exceptions, { includePrivate }); }; diff --git a/packages/tldts-utils/src/update.ts b/packages/tldts-utils/src/update.ts index 166f8333..30ec2659 100644 --- a/packages/tldts-utils/src/update.ts +++ b/packages/tldts-utils/src/update.ts @@ -12,7 +12,14 @@ export default function () { // Build trie and update TypeScript file writeFileSync( findBaseDir('./tldts/src/data/trie.ts'), - buildTrie(publicSuffixList), + buildTrie(publicSuffixList, { includePrivate: true }), + 'utf-8', + ); + + // Build trie and update TypeScript file (ICANN only) + writeFileSync( + findBaseDir('./tldts-icann/src/data/trie.ts'), + buildTrie(publicSuffixList, { includePrivate: false }), 'utf-8', ); diff --git a/packages/tldts/test/publicsuffix.test.ts b/packages/tldts/test/publicsuffix.test.ts index 9c8f84db..1a14196c 100644 --- a/packages/tldts/test/publicsuffix.test.ts +++ b/packages/tldts/test/publicsuffix.test.ts @@ -5,5 +5,5 @@ import * as tld from '../index'; import { publicSuffixListTests } from 'tldts-tests'; describe('tldts classic', () => { - publicSuffixListTests(tld.getDomain); + publicSuffixListTests(tld.getDomain, { includePrivate: true }); }); diff --git a/packages/tldts/test/tld.test.ts b/packages/tldts/test/tld.test.ts index 5c931e74..a54216d0 100644 --- a/packages/tldts/test/tld.test.ts +++ b/packages/tldts/test/tld.test.ts @@ -5,5 +5,5 @@ import * as tld from '../index'; import { tldtsTests } from 'tldts-tests'; describe('tldts classic', () => { - tldtsTests(tld); + tldtsTests(tld, { includePrivate: true }); }); diff --git a/yarn.lock b/yarn.lock index fed4e2be..05107f8e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -117,74 +117,57 @@ semver "^7.0.0" tslib "1.10.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" - integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== - dependencies: - "@babel/highlight" "^7.22.5" - -"@babel/code-frame@^7.22.13": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== dependencies: - "@babel/highlight" "^7.22.13" + "@babel/highlight" "^7.23.4" chalk "^2.4.2" "@babel/compat-data@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730" - integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== "@babel/core@^7.7.5": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" - integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.5.tgz#6e23f2acbcb77ad283c5ed141f824fd9f70101c7" + integrity sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" - convert-source-map "^1.7.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.5" + "@babel/parser" "^7.23.5" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" + convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.2" + json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" - integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== - dependencies: - "@babel/types" "^7.22.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/generator@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" - integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== +"@babel/generator@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" + integrity sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA== dependencies: - "@babel/types" "^7.23.0" + "@babel/types" "^7.23.5" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-compilation-targets@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" - integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== +"@babel/helper-compilation-targets@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" browserslist "^4.21.9" lru-cache "^5.1.1" semver "^6.3.1" @@ -194,11 +177,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/helper-environment-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98" - integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q== - "@babel/helper-function-name@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" @@ -214,23 +192,23 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-imports@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c" - integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg== +"@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129" - integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ== +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" "@babel/helper-simple-access" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" "@babel/helper-simple-access@^7.22.5": version "7.22.5" @@ -246,62 +224,43 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-string-parser@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" - integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-identifier@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" - integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== - -"@babel/helper-validator-option@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac" - integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== +"@babel/helper-validator-option@^7.22.15": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== -"@babel/helpers@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" - integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== +"@babel/helpers@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e" + integrity sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg== dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.6" - "@babel/types" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.5" + "@babel/types" "^7.23.5" -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== dependencies: "@babel/helper-validator-identifier" "^7.22.20" chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== - dependencies: - "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.22.15", "@babel/parser@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" - integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== - -"@babel/parser@^7.22.5", "@babel/parser@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== +"@babel/parser@^7.22.15", "@babel/parser@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" + integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== "@babel/template@^7.22.15": version "7.22.15" @@ -312,49 +271,31 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/template@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec" - integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw== +"@babel/traverse@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" + integrity sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/parser" "^7.22.5" - "@babel/types" "^7.22.5" - -"@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" - integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.5" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.0" - "@babel/types" "^7.23.0" + "@babel/parser" "^7.23.5" + "@babel/types" "^7.23.5" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.22.15", "@babel/types@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" - integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== +"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" + integrity sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w== dependencies: - "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-string-parser" "^7.23.4" "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@babel/types@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" - integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - to-fast-properties "^2.0.0" - "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -380,9 +321,9 @@ eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": - version "4.6.2" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" - integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== "@eslint/eslintrc@^2.1.4": version "2.1.4" @@ -467,9 +408,9 @@ integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== "@jest/schemas@^29.4.3": - version "29.6.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.0.tgz#0f4cb2c8e3dca80c135507ba5635a4fd755b0040" - integrity sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ== + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== dependencies: "@sinclair/typebox" "^0.27.8" @@ -482,12 +423,7 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== - -"@jridgewell/resolve-uri@^3.0.3": +"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": version "3.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== @@ -505,12 +441,7 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== @@ -524,12 +455,12 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" "@lerna/child-process@6.6.2": version "6.6.2" @@ -794,9 +725,9 @@ which "^3.0.0" "@npmcli/query@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-3.0.0.tgz#51a0dfb85811e04f244171f164b6bc83b36113a7" - integrity sha512-MFNDSJNgsLZIEBVZ0Q9w9K7o07j5N4o4yjtdz2uEpuCZlXGMuPENiRaFYk0vRqAA64qVuUQwC05g27fRtfUgnA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-3.0.1.tgz#77d63ceb7d27ed748da3cc8b50d45fc341448ed6" + integrity sha512-0jE8iHBogf/+bFDj+ju6/UMLbJ39c8h6nSe6qile+dB7PJ0iV3gNqcb2vtt6WWCBrxv9uAjzUT/8vroluulidA== dependencies: postcss-selector-parser "^6.0.10" @@ -822,75 +753,75 @@ read-package-json-fast "^3.0.0" which "^3.0.0" -"@nrwl/cli@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-15.9.4.tgz#63b600dff1cdc126f234d16978a888f72c22a00c" - integrity sha512-FoiGFCLpb/r4HXCM3KYqT0xteP+MRV6bIHjz3bdPHIDLmBNQQnRRaV2K47jtJ6zjh1eOU5UHKyDtDDYf80Idpw== +"@nrwl/cli@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-15.9.7.tgz#1db113f5cb1cfe63213097be1ece041eef33da1f" + integrity sha512-1jtHBDuJzA57My5nLzYiM372mJW0NY6rFKxlWt5a0RLsAZdPTHsd8lE3Gs9XinGC1jhXbruWmhhnKyYtZvX/zA== dependencies: - nx "15.9.4" + nx "15.9.7" "@nrwl/devkit@>=15.5.2 < 16": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-15.9.4.tgz#3f0a43a9637fcd0a46c06df2a9c36012b27f006b" - integrity sha512-mUX1kXTuPMdTzFxIzH+MsSNvdppOmstPDOEtiGFZJTuJ625ki0HhNJILO3N2mJ7MeMrLqIlAiNdvelQaObxYsQ== + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-15.9.7.tgz#14d19ec82ff4209c12147a97f1cdea05d8f6c087" + integrity sha512-Sb7Am2TMT8AVq8e+vxOlk3AtOA2M0qCmhBzoM1OJbdHaPKc0g0UgSnWRml1kPGg5qfPk72tWclLoZJ5/ut0vTg== dependencies: ejs "^3.1.7" ignore "^5.0.4" - semver "7.3.4" + semver "7.5.4" tmp "~0.2.1" tslib "^2.3.0" -"@nrwl/nx-darwin-arm64@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-darwin-arm64/-/nx-darwin-arm64-15.9.4.tgz#e5a2f39d42a60397a01140a251f894788f5d1fda" - integrity sha512-XnvrnT9BJsgThY/4xUcYtE077ERq/img8CkRj7MOOBNOh0/nVcR4LGbBKDHtwE3HPk0ikyS/SxRyNa9msvi3QQ== - -"@nrwl/nx-darwin-x64@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-darwin-x64/-/nx-darwin-x64-15.9.4.tgz#97a810d4ff6b4bf395a43e4740890c0def2372da" - integrity sha512-WKSfSlpVMLchpXkax0geeUNyhvNxwO7qUz/s0/HJWBekt8fizwKDwDj1gP7fOu+YWb/tHiSscbR1km8PtdjhQw== - -"@nrwl/nx-linux-arm-gnueabihf@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-15.9.4.tgz#b8dd23b8c755b7e640d744945ab2dec3fd3eda65" - integrity sha512-a/b4PP7lP/Cgrh0LjC4O2YTt5pyf4DQTGtuE8qlo8o486UiofCtk4QGJX72q80s23L0ejCaKY2ULKx/3zMLjuA== - -"@nrwl/nx-linux-arm64-gnu@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-15.9.4.tgz#5bc150c2bdb2e0a2eaf8721b3c5fdb2eb93f8739" - integrity sha512-ibBV8fMhSfLVd/2WzcDuUm32BoZsattuKkvMmOoyU6Pzoznc3AqyDjJR4xCIoAn5Rf+Nu1oeQONr5FAtb1Ugow== - -"@nrwl/nx-linux-arm64-musl@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm64-musl/-/nx-linux-arm64-musl-15.9.4.tgz#df2f18f813828000dc52f1b7668339947b1a0862" - integrity sha512-iIjvVYd7+uM4jVD461+PvU5XTALgSvJOODUaMRGOoDl0KlMuTe6pQZlw0eXjl5rcTd6paKaVFWT5j6awr8kj7w== - -"@nrwl/nx-linux-x64-gnu@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-x64-gnu/-/nx-linux-x64-gnu-15.9.4.tgz#55547b07e6aeb0c36a43e05bd07c15b013f2de9f" - integrity sha512-q4OyH72mdrE4KellBWtwpr5EwfxHKNoFP9//7FAILO68ROh0rpMd7YQMlTB7T04UEUHjKEEsFGTlVXIee3Viwg== - -"@nrwl/nx-linux-x64-musl@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-x64-musl/-/nx-linux-x64-musl-15.9.4.tgz#29cd644736f643566d9c0e1a1171c49a62a08c09" - integrity sha512-67+/XNMR1CgLPyeGX8jqSG6l8yYD0iiwUgcu1Vaxq6N05WwnqVisIW8XzLSRUtKt4WyVQgOWk3aspImpMVOG3Q== - -"@nrwl/nx-win32-arm64-msvc@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-15.9.4.tgz#55a38bf5dc201e9088729fb03e505dc63caf8b3a" - integrity sha512-2rEsq3eOGVCYpYJn2tTJkOGNJm/U8rP/FmqtZXYa6VJv/00XP3Gl00IXFEDaYV6rZo7SWqLxtEPUbjK5LwPzZA== - -"@nrwl/nx-win32-x64-msvc@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/nx-win32-x64-msvc/-/nx-win32-x64-msvc-15.9.4.tgz#56bb859bfe47d08d14f8d5822d9a31d9098d95a9" - integrity sha512-bogVju4Z/hy1jbppqaTNbmV1R4Kg0R5fKxXAXC2LaL7FL0dup31wPumdV+mXttXBNOBDjV8V/Oz1ZqdmxpOJUw== - -"@nrwl/tao@15.9.4": - version "15.9.4" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-15.9.4.tgz#5e384af06d1fb68e326eda2c6a5d8f99ce1583b8" - integrity sha512-m90iz8UsXx1rgPm1dxsBQjSrCViWYZIrp8bpwjSCW24j3kifyilYSXGuKaRwZwUn7eNmH/kZcI9/8qeGIPF4Sg== - dependencies: - nx "15.9.4" +"@nrwl/nx-darwin-arm64@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-darwin-arm64/-/nx-darwin-arm64-15.9.7.tgz#a2cb7390c782b8acf3bb8806a3002620226a933d" + integrity sha512-aBUgnhlkrgC0vu0fK6eb9Vob7eFnkuknrK+YzTjmLrrZwj7FGNAeyGXSlyo1dVokIzjVKjJg2saZZ0WQbfuCJw== + +"@nrwl/nx-darwin-x64@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-darwin-x64/-/nx-darwin-x64-15.9.7.tgz#af0437e726aeb97eb660646bfd9a7da5ba7a0a6f" + integrity sha512-L+elVa34jhGf1cmn38Z0sotQatmLovxoASCIw5r1CBZZeJ5Tg7Y9nOwjRiDixZxNN56hPKXm6xl9EKlVHVeKlg== + +"@nrwl/nx-linux-arm-gnueabihf@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-15.9.7.tgz#e29f4d31afa903bfb4d0fd7421e19be1086eae87" + integrity sha512-pqmfqqEUGFu6PmmHKyXyUw1Al0Ki8PSaR0+ndgCAb1qrekVDGDfznJfaqxN0JSLeolPD6+PFtLyXNr9ZyPFlFg== + +"@nrwl/nx-linux-arm64-gnu@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-15.9.7.tgz#eb2880a24d3268dd93583d21a6a0b9ff96bb23b4" + integrity sha512-NYOa/eRrqmM+In5g3M0rrPVIS9Z+q6fvwXJYf/KrjOHqqan/KL+2TOfroA30UhcBrwghZvib7O++7gZ2hzwOnA== + +"@nrwl/nx-linux-arm64-musl@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-arm64-musl/-/nx-linux-arm64-musl-15.9.7.tgz#5d04913c4672a96cefa78491824620d8a8bcfd7f" + integrity sha512-zyStqjEcmbvLbejdTOrLUSEdhnxNtdQXlmOuymznCzYUEGRv+4f7OAepD3yRoR0a/57SSORZmmGQB7XHZoYZJA== + +"@nrwl/nx-linux-x64-gnu@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-x64-gnu/-/nx-linux-x64-gnu-15.9.7.tgz#cf7f61fd87f35a793e6824952a6eb12242fe43fd" + integrity sha512-saNK5i2A8pKO3Il+Ejk/KStTApUpWgCxjeUz9G+T8A+QHeDloZYH2c7pU/P3jA9QoNeKwjVO9wYQllPL9loeVg== + +"@nrwl/nx-linux-x64-musl@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-linux-x64-musl/-/nx-linux-x64-musl-15.9.7.tgz#2bec23c3696780540eb47fa1358dda780c84697f" + integrity sha512-extIUThYN94m4Vj4iZggt6hhMZWQSukBCo8pp91JHnDcryBg7SnYmnikwtY1ZAFyyRiNFBLCKNIDFGkKkSrZ9Q== + +"@nrwl/nx-win32-arm64-msvc@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-15.9.7.tgz#21b56ef3ab4190370effea71bd83fdc3e47ec69c" + integrity sha512-GSQ54hJ5AAnKZb4KP4cmBnJ1oC4ILxnrG1mekxeM65c1RtWg9NpBwZ8E0gU3xNrTv8ZNsBeKi/9UhXBxhsIh8A== + +"@nrwl/nx-win32-x64-msvc@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/nx-win32-x64-msvc/-/nx-win32-x64-msvc-15.9.7.tgz#1677ab1dcce921706b5677dc2844e3e0027f8bd5" + integrity sha512-x6URof79RPd8AlapVbPefUD3ynJZpmah3tYaYZ9xZRMXojVtEHV8Qh5vysKXQ1rNYJiiB8Ah6evSKWLbAH60tw== + +"@nrwl/tao@15.9.7": + version "15.9.7" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-15.9.7.tgz#c0e78c99caa6742762f7558f20d8524bc9015e97" + integrity sha512-OBnHNvQf3vBH0qh9YnvBQQWyyFZ+PWguF6dJ8+1vyQYlrLVk/XZ8nJ4ukWFb+QfPv/O8VBmqaofaOI9aFC4yTw== + dependencies: + nx "15.9.7" "@octokit/auth-token@^2.4.4": version "2.5.0" @@ -977,9 +908,9 @@ integrity sha512-HNWisMYlR8VCnNurDU6os2ikx0s0VyEjDYHNS/h4cgb8DeOxQ0n72HyinUtdDVxJhFy3FWLGl0DJhfEWk3P5Iw== "@octokit/openapi-types@^18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.0.0.tgz#f43d765b3c7533fd6fb88f3f25df079c24fccf69" - integrity sha512-V8GImKs3TeQRxRtXFpG2wl19V7444NIOTDF24AWuIbmNaNYOQMWRbjcGDXV5B+0n887fgDcuMNOmlul+k+oJtw== + version "18.1.1" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.1.1.tgz#09bdfdabfd8e16d16324326da5148010d765f009" + integrity sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw== "@octokit/plugin-enterprise-compatibility@1.3.0": version "1.3.0" @@ -1180,9 +1111,9 @@ picomatch "^2.2.2" "@rollup/pluginutils@^5.0.1": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" - integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== + version "5.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" + integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== dependencies: "@types/estree" "^1.0.0" estree-walker "^2.0.2" @@ -1248,30 +1179,26 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.6.1.tgz#45785b5caf83200a34a9867ba50d69560880c120" integrity sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A== -"@sigstore/bundle@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-1.0.0.tgz#2f2f4867f434760f4bc6f4b4bbccbaecd4143bc3" - integrity sha512-yLvrWDOh6uMOUlFCTJIZEnwOT9Xte7NPXUqVexEKGSF5XtBAuSg5du0kn3dRR0p47a4ah10Y0mNt8+uyeQXrBQ== +"@sigstore/bundle@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-1.1.0.tgz#17f8d813b09348b16eeed66a8cf1c3d6bd3d04f1" + integrity sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog== dependencies: "@sigstore/protobuf-specs" "^0.2.0" -"@sigstore/protobuf-specs@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz#957cb64ea2f5ce527cc9cf02a096baeb0d2b99b4" - integrity sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ== - "@sigstore/protobuf-specs@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.0.tgz#5801b2a4d10afe1577be6133be6b132b5677c18c" - integrity sha512-8ZhZKAVfXjIspDWwm3D3Kvj0ddbJ0HqDZ/pOs5cx88HpT8mVsotFrg7H1UMnXOuDHz6Zykwxn4mxG3QLuN+RUg== + version "0.2.1" + resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz#be9ef4f3c38052c43bd399d3f792c97ff9e2277b" + integrity sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A== -"@sigstore/tuf@^1.0.1": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-1.0.2.tgz#acbb2c8399fb03aca0c90fa1dc1934bda4160623" - integrity sha512-vjwcYePJzM01Ha6oWWZ9gNcdIgnzyFxfqfWzph483DPJTH8Tb7f7bQRRll3CYVkyH56j0AgcPAcl6Vg95DPF+Q== +"@sigstore/sign@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-1.0.0.tgz#6b08ebc2f6c92aa5acb07a49784cb6738796f7b4" + integrity sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA== dependencies: - "@sigstore/protobuf-specs" "^0.1.0" - tuf-js "^1.1.7" + "@sigstore/bundle" "^1.1.0" + "@sigstore/protobuf-specs" "^0.2.0" + make-fetch-happen "^11.0.1" "@sigstore/tuf@^1.0.3": version "1.0.3" @@ -1330,14 +1257,14 @@ integrity sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ== "@types/command-line-args@^5.0.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@types/command-line-args/-/command-line-args-5.2.0.tgz#adbb77980a1cc376bb208e3f4142e907410430f6" - integrity sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA== + version "5.2.3" + resolved "https://registry.yarnpkg.com/@types/command-line-args/-/command-line-args-5.2.3.tgz#553ce2fd5acf160b448d307649b38ffc60d39639" + integrity sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw== "@types/command-line-usage@^5.0.1": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@types/command-line-usage/-/command-line-usage-5.0.2.tgz#ba5e3f6ae5a2009d466679cc431b50635bf1a064" - integrity sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg== + version "5.0.4" + resolved "https://registry.yarnpkg.com/@types/command-line-usage/-/command-line-usage-5.0.4.tgz#374e4c62d78fbc5a670a0f36da10235af879a0d5" + integrity sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg== "@types/estree@0.0.39": version "0.0.39" @@ -1345,14 +1272,14 @@ integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== "@types/estree@^1.0.0": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" - integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/json-schema@^7.0.12": - version "7.0.12" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" - integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/minimatch@^3.0.3": version "3.0.5" @@ -1360,9 +1287,9 @@ integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== "@types/mocha@^10.0.0": version "10.0.6" @@ -1377,14 +1304,14 @@ undici-types "~5.26.4" "@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== "@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== "@types/punycode@^2.1.3": version "2.1.3" @@ -1397,20 +1324,20 @@ integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== "@types/semver@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" - integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== + version "7.5.6" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== "@typescript-eslint/eslint-plugin@^6.0.0": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.1.tgz#f98bd887bf95551203c917e734d113bf8d527a0c" - integrity sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA== + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz#2e03506c5362a65e43cb132c37c9ce2d3cb51470" + integrity sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.13.1" - "@typescript-eslint/type-utils" "6.13.1" - "@typescript-eslint/utils" "6.13.1" - "@typescript-eslint/visitor-keys" "6.13.1" + "@typescript-eslint/scope-manager" "6.13.2" + "@typescript-eslint/type-utils" "6.13.2" + "@typescript-eslint/utils" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -1419,71 +1346,71 @@ ts-api-utils "^1.0.1" "@typescript-eslint/parser@^6.0.0": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.13.1.tgz#29d6d4e5fab4669e58bc15f6904b67da65567487" - integrity sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ== - dependencies: - "@typescript-eslint/scope-manager" "6.13.1" - "@typescript-eslint/types" "6.13.1" - "@typescript-eslint/typescript-estree" "6.13.1" - "@typescript-eslint/visitor-keys" "6.13.1" + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.13.2.tgz#390b79cc9a57a5f904d197a201cc4b6bc4f9afb9" + integrity sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg== + dependencies: + "@typescript-eslint/scope-manager" "6.13.2" + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/typescript-estree" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.13.1.tgz#58c7c37c6a957d3d9f59bc4f64c2888e0cac1d70" - integrity sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ== +"@typescript-eslint/scope-manager@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz#5fa4e4adace028dafac212c770640b94e7b61052" + integrity sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA== dependencies: - "@typescript-eslint/types" "6.13.1" - "@typescript-eslint/visitor-keys" "6.13.1" + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" -"@typescript-eslint/type-utils@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.13.1.tgz#e6e5885e387841cae9c38fc0638fd8b7561973d6" - integrity sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ== +"@typescript-eslint/type-utils@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz#ebec2da14a6bb7122e0fd31eea72a382c39c6102" + integrity sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw== dependencies: - "@typescript-eslint/typescript-estree" "6.13.1" - "@typescript-eslint/utils" "6.13.1" + "@typescript-eslint/typescript-estree" "6.13.2" + "@typescript-eslint/utils" "6.13.2" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.13.1.tgz#b56f26130e7eb8fa1e429c75fb969cae6ad7bb5c" - integrity sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg== +"@typescript-eslint/types@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.13.2.tgz#c044aac24c2f6cefb8e921e397acad5417dd0ae6" + integrity sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg== -"@typescript-eslint/typescript-estree@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.1.tgz#d01dda78d2487434d1c503853fa00291c566efa4" - integrity sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ== +"@typescript-eslint/typescript-estree@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz#ae556ee154c1acf025b48d37c3ef95a1d55da258" + integrity sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w== dependencies: - "@typescript-eslint/types" "6.13.1" - "@typescript-eslint/visitor-keys" "6.13.1" + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.13.1.tgz#925b3a2453a71ada914ae329b7bb7e7d96634b2f" - integrity sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw== +"@typescript-eslint/utils@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.13.2.tgz#8eb89e53adc6d703a879b131e528807245486f89" + integrity sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.13.1" - "@typescript-eslint/types" "6.13.1" - "@typescript-eslint/typescript-estree" "6.13.1" + "@typescript-eslint/scope-manager" "6.13.2" + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/typescript-estree" "6.13.2" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.1.tgz#c4b692dcc23a4fc60685b718f10fde789d65a540" - integrity sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ== +"@typescript-eslint/visitor-keys@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz#e0a4a80cf842bb08e6127b903284166ac4a5594c" + integrity sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw== dependencies: - "@typescript-eslint/types" "6.13.1" + "@typescript-eslint/types" "6.13.2" eslint-visitor-keys "^3.4.1" "@ungap/structured-clone@^1.2.0": @@ -1496,10 +1423,10 @@ resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== -"@yarnpkg/parsers@^3.0.0-rc.18": - version "3.0.0-rc.48.1" - resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.48.1.tgz#8636c24c02c888f2602a464edfd7fb113d75e937" - integrity sha512-qEewJouhRvaecGjbkjz9kMKn96UASbDodNrE5MYy2TrXkHcisIkbMxZdGBYfAq+s1dFtCSx/5H4k5bEkfakM+A== +"@yarnpkg/parsers@3.0.0-rc.46": + version "3.0.0-rc.46" + resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz#03f8363111efc0ea670e53b0282cd3ef62de4e01" + integrity sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q== dependencies: js-yaml "^3.10.0" tslib "^2.4.0" @@ -1542,14 +1469,14 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.1.1: - version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + version "8.3.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f" + integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== acorn@^8.4.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== add-stream@^1.0.0: version "1.0.0" @@ -1564,12 +1491,10 @@ agent-base@6, agent-base@^6.0.2: debug "4" agentkeepalive@^4.2.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.3.0.tgz#bb999ff07412653c1803b3ced35e50729830a255" - integrity sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg== + version "4.5.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" + integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== dependencies: - debug "^4.1.0" - depd "^2.0.0" humanize-ms "^1.2.1" aggregate-error@^3.0.0: @@ -1752,9 +1677,9 @@ assertion-error@^1.1.0: integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== async@^3.2.3: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + version "3.2.5" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== asynckit@^0.4.0: version "0.4.0" @@ -1800,9 +1725,9 @@ await-to-js@^3.0.0: integrity sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g== axios@^1.0.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.1.tgz#76550d644bf0a2d469a01f9244db6753208397d7" - integrity sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g== + version "1.6.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" + integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -1832,9 +1757,9 @@ benchmark@^2.1.4: platform "^1.3.3" bin-links@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.2.tgz#13321472ea157e9530caded2b7281496d698665b" - integrity sha512-jxJ0PbXR8eQyPlExCvCs3JFnikvs1Yp4gUJt6nmgathdOwvur+q22KWC3h20gvWl4T/14DXKj2IlkJwwZkZPOw== + version "4.0.3" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.3.tgz#9e4a3c5900830aee3d7f52178b65e01dcdde64a5" + integrity sha512-obsRaULtJurnfox/MDwgq6Yo9kzbv1CPTk/1/s7Z/61Lezc8IKkFCOXNeVLXz0456WRzBQmSsDWlai2tIhBsfA== dependencies: cmd-shim "^6.0.0" npm-normalize-package-bin "^3.0.0" @@ -1888,14 +1813,14 @@ browser-stdout@1.3.1: integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== browserslist@^4.21.9: - version "4.21.9" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" - integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== + version "4.22.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" + integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== dependencies: - caniuse-lite "^1.0.30001503" - electron-to-chromium "^1.4.431" - node-releases "^2.0.12" - update-browserslist-db "^1.0.11" + caniuse-lite "^1.0.30001565" + electron-to-chromium "^1.4.601" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" buffer-from@^1.0.0: version "1.1.2" @@ -1965,15 +1890,15 @@ cacache@^16.1.0: unique-filename "^2.0.0" cacache@^17.0.0, cacache@^17.0.4: - version "17.1.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.3.tgz#c6ac23bec56516a7c0c52020fd48b4909d7c7044" - integrity sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg== + version "17.1.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.4.tgz#b3ff381580b47e85c6e64f801101508e26604b35" + integrity sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A== dependencies: "@npmcli/fs" "^3.1.0" fs-minipass "^3.0.0" glob "^10.2.2" lru-cache "^7.7.1" - minipass "^5.0.0" + minipass "^7.0.3" minipass-collect "^1.0.2" minipass-flush "^1.0.5" minipass-pipeline "^1.2.4" @@ -2016,10 +1941,10 @@ camelcase@^6.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001503: - version "1.0.30001516" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001516.tgz#621b1be7d85a8843ee7d210fd9d87b52e3daab3a" - integrity sha512-Wmec9pCBY8CWbmI4HsjBeQLqDTqV91nFVR83DnZpYyRnPI1wePDsTg0bGLPC5VU/3OIZV1fmxEea1b+tFKe86g== +caniuse-lite@^1.0.30001565: + version "1.0.30001566" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz#61a8e17caf3752e3e426d4239c549ebbb37fef0d" + integrity sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA== chai@^4.2.0: version "4.3.10" @@ -2042,7 +1967,7 @@ chalk@4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2097,9 +2022,9 @@ ci-info@^2.0.0: integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== ci-info@^3.6.1: - version "3.8.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" - integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== clean-stack@^2.0.0: version "2.2.0" @@ -2119,9 +2044,9 @@ cli-spinners@2.6.1: integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== cli-spinners@^2.5.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.0.tgz#5881d0ad96381e117bbe07ad91f2008fe6ffd8db" - integrity sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g== + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== cli-width@^3.0.0: version "3.0.0" @@ -2177,9 +2102,9 @@ cmd-shim@5.0.0: mkdirp-infer-owner "^2.0.0" cmd-shim@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.1.tgz#a65878080548e1dca760b3aea1e21ed05194da9d" - integrity sha512-S9iI9y0nKR4hwEQsVWpyxld/6kRfGepGfzff83FcaiEBpmvlbA2nnGe7Cylgrx2f/p1P5S5wpRm9oL8z1PbS3Q== + version "6.0.2" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.2.tgz#435fd9e5c95340e61715e19f90209ed6fcd9e0a4" + integrity sha512-+FFYbB0YLaAkhkcrjkyNLYDiOsFSfRjwjY19LXk/psmMx1z00xlCv7hhQoTGXXIKi+YXHL/iiFo8NqMVQX9nOw== color-convert@^1.9.0: version "1.9.3" @@ -2397,6 +2322,11 @@ convert-source-map@^1.7.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" @@ -2547,11 +2477,6 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== -depd@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" @@ -2634,10 +2559,10 @@ ejs@^3.1.7: dependencies: jake "^10.8.5" -electron-to-chromium@^1.4.431: - version "1.4.461" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.461.tgz#6b14af66042732bf883ab63a4d82cac8f35eb252" - integrity sha512-1JkvV2sgEGTDXjdsaQCeSwYYuhLRphRpc+g6EHTFELJXEiznLt3/0pZ9JuAOQ5p2rI3YxKTbivtvajirIfhrEQ== +electron-to-chromium@^1.4.601: + version "1.4.603" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.603.tgz#446907c21d333b55d0beaba1cb5b48430775a8a7" + integrity sha512-Dvo5OGjnl7AZTU632dFJtWj0uJK835eeOVQIuRcmBmsFsTNn3cL05FqOyHAfGQDIoHfLhyJ1Tya3PJ0ceMz54g== emoji-regex@^8.0.0: version "8.0.0" @@ -2672,7 +2597,15 @@ endent@^2.1.0: fast-json-parse "^1.0.3" objectorarray "^1.0.5" -enquirer@^2.3.4, enquirer@~2.3.6: +enquirer@^2.3.4: + version "2.4.1" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== + dependencies: + ansi-colors "^4.1.1" + strip-ansi "^6.0.1" + +enquirer@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== @@ -2694,9 +2627,9 @@ env-paths@^2.2.0: integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== envinfo@^7.7.4: - version "7.10.0" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.10.0.tgz#55146e3909cc5fe63c22da63fb15b05aeac35b13" - integrity sha512-ZtUjZO6l5mwTHvc1L9+1q5p/R3wTopcfqMW8r5t8SJSKqeVI/LtajORwRFEKpEFuekjD0VBjwu1HMxL4UalIRw== + version "7.11.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.11.0.tgz#c3793f44284a55ff8c82faf1ffd91bc6478ea01f" + integrity sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg== err-code@^2.0.2: version "2.0.3" @@ -2911,9 +2844,9 @@ fast-glob@3.2.7: micromatch "^4.0.4" fast-glob@^3.1.1, fast-glob@^3.2.9: - version "3.3.0" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" - integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -3023,11 +2956,12 @@ find-up@^4.0.0, find-up@^4.1.0: path-exists "^4.0.0" flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== dependencies: - flatted "^3.1.0" + flatted "^3.2.9" + keyv "^4.5.3" rimraf "^3.0.2" flat@^5.0.2: @@ -3035,15 +2969,15 @@ flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== follow-redirects@^1.15.0: - version "1.15.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" - integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + version "1.15.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" + integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== foreground-child@^2.0.0: version "2.0.0" @@ -3071,9 +3005,9 @@ form-data@^4.0.0: mime-types "^2.1.12" fp-ts@^2.5.3: - version "2.16.0" - resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-2.16.0.tgz#64e03314dfc1c7ce5e975d3496ac14bc3eb7f92e" - integrity sha512-bLq+KgbiXdTEoT1zcARrWEpa5z6A/8b7PcDW7Gef3NSisQ+VS7ll2Xbf1E+xsgik0rWub/8u0qP/iTTjj+PhxQ== + version "2.16.1" + resolved "https://registry.yarnpkg.com/fp-ts/-/fp-ts-2.16.1.tgz#6abc401ce42b65364ca8f0b0d995c5840c68a930" + integrity sha512-by7U5W8dkIzcvDofUcO42yl9JbnHTEDBrzu3pt5fKT+Z4Oy85I21K80EYJYdjQGC2qum4Vo55Ag57iiIK4FYuA== fromentries@^1.2.0, fromentries@^1.3.2: version "1.3.2" @@ -3096,9 +3030,9 @@ fs-extra@9.1.0, fs-extra@^9.1.0: universalify "^2.0.0" fs-extra@^11.1.0: - version "11.1.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" - integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -3112,11 +3046,11 @@ fs-minipass@^2.0.0, fs-minipass@^2.1.0: minipass "^3.0.0" fs-minipass@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.2.tgz#5b383858efa8c1eb8c33b39e994f7e8555b8b3a3" - integrity sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g== + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== dependencies: - minipass "^5.0.0" + minipass "^7.0.3" fs.realpath@^1.0.0: version "1.0.0" @@ -3124,14 +3058,14 @@ fs.realpath@^1.0.0: integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== gauge@^4.0.3: version "4.0.4" @@ -3359,9 +3293,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + version "13.23.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" + integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== dependencies: type-fest "^0.20.2" @@ -3405,12 +3339,12 @@ graphemer@^1.4.0: integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== handlebars@^4.7.7: - version "4.7.7" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.7.tgz#9ce33416aad02dbd6c8fafa8240d5d98004945a1" - integrity sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA== + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== dependencies: minimist "^1.2.5" - neo-async "^2.6.0" + neo-async "^2.6.2" source-map "^0.6.1" wordwrap "^1.0.0" optionalDependencies: @@ -3436,13 +3370,6 @@ has-unicode@2.0.1, has-unicode@^2.0.1: resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - hasha@^5.0.0: version "5.2.2" resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" @@ -3451,6 +3378,13 @@ hasha@^5.0.0: is-stream "^2.0.0" type-fest "^0.8.0" +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + he@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -3555,9 +3489,9 @@ ignore-walk@^5.0.1: minimatch "^5.0.1" ignore-walk@^6.0.0: - version "6.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.3.tgz#0fcdb6decaccda35e308a7b0948645dd9523b7bb" - integrity sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA== + version "6.0.4" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.4.tgz#89950be94b4f522225eb63a13c56badb639190e9" + integrity sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw== dependencies: minimatch "^9.0.0" @@ -3567,9 +3501,9 @@ ignore@^3.3.5: integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== ignore@^5.0.4, ignore@^5.2.0, ignore@^5.2.4: - version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" - integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== import-cwd@^3.0.0: version "3.0.0" @@ -3669,9 +3603,9 @@ inquirer@8.2.4: wrap-ansi "^7.0.0" inquirer@^8.2.4: - version "8.2.5" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" - integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== + version "8.2.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" + integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== dependencies: ansi-escapes "^4.2.1" chalk "^4.1.1" @@ -3687,12 +3621,12 @@ inquirer@^8.2.4: string-width "^4.1.0" strip-ansi "^6.0.0" through "^2.3.6" - wrap-ansi "^7.0.0" + wrap-ansi "^6.0.1" io-ts@^2.1.2: - version "2.2.20" - resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-2.2.20.tgz#be42b75f6668a2c44f706f72ee6e4c906777c7f5" - integrity sha512-Rq2BsYmtwS5vVttie4rqrOCIfHCS9TgpRLFpKQCM1wZBBRY9nWVGmEvm2FnDbSE2un1UE39DvFpTR5UL47YDcA== + version "2.2.21" + resolved "https://registry.yarnpkg.com/io-ts/-/io-ts-2.2.21.tgz#4ef754176f7082a1099d04c7d5c4ea53267c530a" + integrity sha512-zz2Z69v9ZIC3mMLYWIeoUcwWD6f+O7yP92FMVVaXEOSZH1jnVBmET/urd/uoarD1WGBY4rCj8TAyMPzsGNzMFQ== ip@^2.0.0: version "2.0.0" @@ -3725,12 +3659,12 @@ is-ci@2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.8.1: - version "2.12.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" - integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== +is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.8.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: - has "^1.0.3" + hasown "^2.0.0" is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" @@ -3873,9 +3807,9 @@ isobject@^3.0.1: integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== istanbul-lib-hook@^3.0.0: version "3.0.0" @@ -3907,12 +3841,12 @@ istanbul-lib-processinfo@^2.0.2: uuid "^8.3.2" istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" + make-dir "^4.0.0" supports-color "^7.1.0" istanbul-lib-source-maps@^4.0.0: @@ -3925,9 +3859,9 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.0.2: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + version "3.1.6" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" + integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -3981,6 +3915,11 @@ jsesc@^2.5.1: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" @@ -3992,9 +3931,9 @@ json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-parse-even-better-errors@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz#2cb2ee33069a78870a0c7e3da560026b89669cf7" - integrity sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0" + integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg== json-schema-traverse@^0.4.1: version "0.4.1" @@ -4016,7 +3955,7 @@ json-stringify-safe@^5.0.1: resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@^2.2.2: +json5@^2.2.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -4050,6 +3989,13 @@ just-diff@^6.0.0: resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285" integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA== +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + kind-of@^6.0.2, kind-of@^6.0.3: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" @@ -4175,9 +4121,9 @@ lines-and-columns@^1.1.6: integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== lines-and-columns@~2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.3.tgz#b2f0badedb556b747020ab8ea7f0373e22efac1b" - integrity sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w== + version "2.0.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42" + integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== load-json-file@6.2.0: version "6.2.0" @@ -4291,9 +4237,9 @@ lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== "lru-cache@^9.1.1 || ^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.0.tgz#b9e2a6a72a129d81ab317202d93c7691df727e61" - integrity sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw== + version "10.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== make-dir@3.1.0, make-dir@^3.0.0, make-dir@^3.0.2: version "3.1.0" @@ -4310,12 +4256,19 @@ make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + make-error@^1, make-error@^1.1.1: version "1.3.6" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -make-fetch-happen@^10.0.6: +make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6: version "10.2.1" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== @@ -4337,7 +4290,7 @@ make-fetch-happen@^10.0.6: socks-proxy-agent "^7.0.0" ssri "^9.0.0" -make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.0.3, make-fetch-happen@^11.1.1: +make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.1.1: version "11.1.1" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz#85ceb98079584a9523d4bf71d32996e7e208549f" integrity sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w== @@ -4512,11 +4465,11 @@ minipass-fetch@^2.0.3: encoding "^0.1.13" minipass-fetch@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.3.tgz#d9df70085609864331b533c960fd4ffaa78d15ce" - integrity sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ== + version "3.0.4" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" + integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== dependencies: - minipass "^5.0.0" + minipass "^7.0.3" minipass-sized "^1.0.3" minizlib "^2.1.2" optionalDependencies: @@ -4568,10 +4521,10 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.2.tgz#58a82b7d81c7010da5bd4b2c0c85ac4b4ec5131e" - integrity sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3: + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" @@ -4673,7 +4626,7 @@ negotiator@^0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.6.0: +neo-async@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -4696,27 +4649,27 @@ node-fetch@2.6.7: whatwg-url "^5.0.0" node-fetch@^2.6.7: - version "2.6.12" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" - integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" node-gyp-build@^4.3.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055" - integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== + version "4.7.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.7.1.tgz#cd7d2eb48e594874053150a9418ac85af83ca8f7" + integrity sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg== node-gyp@^9.0.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.0.tgz#2a7a91c7cba4eccfd95e949369f27c9ba704f369" - integrity sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg== + version "9.4.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.1.tgz#8a1023e0d6766ecb52764cc3a734b36ff275e185" + integrity sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ== dependencies: env-paths "^2.2.0" exponential-backoff "^3.1.1" glob "^7.1.4" graceful-fs "^4.2.6" - make-fetch-happen "^11.0.3" + make-fetch-happen "^10.0.3" nopt "^6.0.0" npmlog "^6.0.0" rimraf "^3.0.2" @@ -4731,10 +4684,10 @@ node-preload@^0.2.1: dependencies: process-on-spawn "^1.0.0" -node-releases@^2.0.12: - version "2.0.13" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" - integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== nopt@^6.0.0: version "6.0.0" @@ -4810,9 +4763,9 @@ npm-bundled@^3.0.0: npm-normalize-package-bin "^3.0.0" npm-install-checks@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.1.1.tgz#b459b621634d06546664207fde16810815808db1" - integrity sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw== + version "6.3.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== dependencies: semver "^7.1.1" @@ -4878,9 +4831,9 @@ npm-packlist@^7.0.0: ignore-walk "^6.0.0" npm-pick-manifest@^8.0.0, npm-pick-manifest@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz#c6acd97d1ad4c5dbb80eac7b386b03ffeb289e5f" - integrity sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA== + version "8.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz#2159778d9c7360420c925c1a2287b5a884c713aa" + integrity sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg== dependencies: npm-install-checks "^6.0.0" npm-normalize-package-bin "^3.0.0" @@ -4953,16 +4906,16 @@ npmlog@^7.0.1: gauge "^5.0.0" set-blocking "^2.0.0" -nx@15.9.4, "nx@>=15.5.2 < 16": - version "15.9.4" - resolved "https://registry.yarnpkg.com/nx/-/nx-15.9.4.tgz#1075bc33fe8ee6c6546c21ec6ffcfd2e000946c6" - integrity sha512-P1G4t59UvE/lkHyruLeSOB5ZuNyh01IwU0tTUOi8f9s/NbP7+OQ8MYVwDV74JHTr6mQgjlS+n+4Eox8tVm9itA== +nx@15.9.7, "nx@>=15.5.2 < 16": + version "15.9.7" + resolved "https://registry.yarnpkg.com/nx/-/nx-15.9.7.tgz#f0e713cedb8637a517d9c4795c99afec4959a1b6" + integrity sha512-1qlEeDjX9OKZEryC8i4bA+twNg+lB5RKrozlNwWx/lLJHqWPUfvUTvxh+uxlPYL9KzVReQjUuxMLFMsHNqWUrA== dependencies: - "@nrwl/cli" "15.9.4" - "@nrwl/tao" "15.9.4" + "@nrwl/cli" "15.9.7" + "@nrwl/tao" "15.9.7" "@parcel/watcher" "2.0.4" "@yarnpkg/lockfile" "^1.1.0" - "@yarnpkg/parsers" "^3.0.0-rc.18" + "@yarnpkg/parsers" "3.0.0-rc.46" "@zkochan/js-yaml" "0.0.6" axios "^1.0.0" chalk "^4.1.0" @@ -4983,7 +4936,7 @@ nx@15.9.4, "nx@>=15.5.2 < 16": minimatch "3.0.5" npm-run-path "^4.0.1" open "^8.4.0" - semver "7.3.4" + semver "7.5.4" string-width "^4.2.3" strong-log-transformer "^2.1.0" tar-stream "~2.2.0" @@ -4994,15 +4947,15 @@ nx@15.9.4, "nx@>=15.5.2 < 16": yargs "^17.6.2" yargs-parser "21.1.1" optionalDependencies: - "@nrwl/nx-darwin-arm64" "15.9.4" - "@nrwl/nx-darwin-x64" "15.9.4" - "@nrwl/nx-linux-arm-gnueabihf" "15.9.4" - "@nrwl/nx-linux-arm64-gnu" "15.9.4" - "@nrwl/nx-linux-arm64-musl" "15.9.4" - "@nrwl/nx-linux-x64-gnu" "15.9.4" - "@nrwl/nx-linux-x64-musl" "15.9.4" - "@nrwl/nx-win32-arm64-msvc" "15.9.4" - "@nrwl/nx-win32-x64-msvc" "15.9.4" + "@nrwl/nx-darwin-arm64" "15.9.7" + "@nrwl/nx-darwin-x64" "15.9.7" + "@nrwl/nx-linux-arm-gnueabihf" "15.9.7" + "@nrwl/nx-linux-arm64-gnu" "15.9.7" + "@nrwl/nx-linux-arm64-musl" "15.9.7" + "@nrwl/nx-linux-x64-gnu" "15.9.7" + "@nrwl/nx-linux-x64-musl" "15.9.7" + "@nrwl/nx-win32-arm64-msvc" "15.9.7" + "@nrwl/nx-win32-x64-msvc" "15.9.7" nyc@^15.0.1: version "15.1.0" @@ -5534,12 +5487,7 @@ proxy-from-env@^1.1.0: resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== -punycode@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" - integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== - -punycode@^2.3.1: +punycode@^2.1.0, punycode@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== @@ -5789,11 +5737,11 @@ resolve-from@^4.0.0: integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve@^1.10.0, resolve@^1.22.1: - version "1.22.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" - integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: - is-core-module "^2.11.0" + is-core-module "^2.13.0" path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" @@ -5909,13 +5857,6 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.3.4: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - dependencies: - lru-cache "^6.0.0" - semver@7.3.8: version "7.3.8" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" @@ -5923,18 +5864,18 @@ semver@7.3.8: dependencies: lru-cache "^6.0.0" -semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.4: +semver@7.5.4, semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" +semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + serialize-javascript@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" @@ -5979,9 +5920,9 @@ signal-exit@3.0.7, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== signal-exit@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" - integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== signale@^1.4.0: version "1.4.0" @@ -5992,25 +5933,17 @@ signale@^1.4.0: figures "^2.0.0" pkg-conf "^2.1.0" -sigstore@^1.0.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.8.0.tgz#f790120697fa7c89f4418598ce59e638ff680aa5" - integrity sha512-ogU8qtQ3VFBawRJ8wjsBEX/vIFeHuGs1fm4jZtjWQwjo8pfAt7T/rh+udlAN4+QUe0IzA8qRSc/YZ7dHP6kh+w== +sigstore@^1.0.0, sigstore@^1.3.0, sigstore@^1.4.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.9.0.tgz#1e7ad8933aa99b75c6898ddd0eeebc3eb0d59875" + integrity sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A== dependencies: - "@sigstore/bundle" "^1.0.0" + "@sigstore/bundle" "^1.1.0" "@sigstore/protobuf-specs" "^0.2.0" + "@sigstore/sign" "^1.0.0" "@sigstore/tuf" "^1.0.3" make-fetch-happen "^11.0.1" -sigstore@^1.3.0, sigstore@^1.4.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.7.0.tgz#9186e6c8ce1ab0cba5d97b414212d40f0a01564e" - integrity sha512-KP7QULhWdlu3hlp+jw2EvgWKlOGOY9McLj/jrchLjHNlNPK0KWIwF919cbmOp6QiKXLmPijR2qH/5KYWlbtG9Q== - dependencies: - "@sigstore/protobuf-specs" "^0.1.0" - "@sigstore/tuf" "^1.0.1" - make-fetch-happen "^11.0.1" - slash@3.0.0, slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -6027,9 +5960,9 @@ smart-buffer@^4.2.0: integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== smob@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/smob/-/smob-1.4.0.tgz#ac9751fe54b1fc1fc8286a628d4e7f824273b95a" - integrity sha512-MqR3fVulhjWuRNSMydnTlweu38UhQ0HXM4buStD/S3mc/BzX3CuM9OmhyQpmtYCvoYdl5ris6TI0ZqH355Ymqg== + version "1.4.1" + resolved "https://registry.yarnpkg.com/smob/-/smob-1.4.1.tgz#66270e7df6a7527664816c5b577a23f17ba6f5b5" + integrity sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ== socks-proxy-agent@^7.0.0: version "7.0.0" @@ -6110,9 +6043,9 @@ spdx-expression-parse@^3.0.0: spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.13" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz#7189a474c46f8d47c7b0da4b987bb45e908bd2d5" - integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== + version "3.0.16" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== split2@^3.0.0: version "3.2.2" @@ -6141,11 +6074,11 @@ ssri@9.0.1, ssri@^9.0.0: minipass "^3.1.1" ssri@^10.0.0, ssri@^10.0.1: - version "10.0.4" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.4.tgz#5a20af378be586df139ddb2dfb3bf992cf0daba6" - integrity sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ== + version "10.0.5" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" + integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== dependencies: - minipass "^5.0.0" + minipass "^7.0.3" "string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" @@ -6307,9 +6240,9 @@ tar@6.1.11: yallist "^4.0.0" tar@^6.1.11, tar@^6.1.2: - version "6.1.15" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.15.tgz#c9738b0b98845a3b344d334b8fa3041aaba53a69" - integrity sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A== + version "6.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -6348,9 +6281,9 @@ terminal-link@^2.1.1: supports-hyperlinks "^2.0.0" terser@^5.17.4: - version "5.19.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.19.0.tgz#7b3137b01226bdd179978207b9c8148754a6da9c" - integrity sha512-JpcpGOQLOXm2jsomozdMDpd5f8ZHh1rR48OFgWUH3QsyZcfPgv2qDCYbcDEAYNd4OZRj2bWYKpwdll/udZCk/Q== + version "5.25.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.25.0.tgz#6579b4cca45b08bf0fdaa1a04605fd5860dfb2ac" + integrity sha512-we0I9SIsfvNUMP77zC9HG+MylwYYsGFSBG8qm+13oud2Yh+O104y614FRbyjpxys16jZwot72Fpi827YvGzuqg== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -6443,9 +6376,9 @@ trim-newlines@^3.0.0: integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== ts-api-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" - integrity sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A== + version "1.0.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== ts-node@^10.0.0, ts-node@^10.9.1: version "10.9.1" @@ -6498,9 +6431,9 @@ tslib@2.1.0: integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== tslib@^2, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0, tslib@^2.5.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.0.tgz#b295854684dbda164e181d259a22cd779dcd7bc3" - integrity sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA== + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tuf-js@^1.1.7: version "1.1.7" @@ -6641,24 +6574,24 @@ unique-string@^2.0.0: crypto-random-string "^2.0.0" universal-user-agent@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" - integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + version "6.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" + integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== upath@2.0.1, upath@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== -update-browserslist-db@^1.0.11: - version "1.0.11" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" - integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -6809,7 +6742,7 @@ workerpool@6.2.1: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^6.2.0: +wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==