diff options
author | Austin Gebauer <agebauer@hashicorp.com> | 2020-03-16 05:23:00 +0300 |
---|---|---|
committer | Austin Gebauer <agebauer@hashicorp.com> | 2020-03-16 05:23:00 +0300 |
commit | 2aba1a6506cd4ad355ea1056b155fa8efcd4f449 (patch) | |
tree | 25a9d322c6df0d11f498bfe25b7635023555e6c5 | |
parent | ab8bece79f95ec16a80a95d3c535a87ab6895876 (diff) |
Updates dependencies
140 files changed, 2200 insertions, 3722 deletions
diff --git a/node_modules/ajv/README.md b/node_modules/ajv/README.md index cafbd71..9bd1f57 100644 --- a/node_modules/ajv/README.md +++ b/node_modules/ajv/README.md @@ -57,6 +57,7 @@ ajv.addMetaSchema(require('ajv/lib/refs/json-schema-draft-04.json')); - [Untrusted schemas](#untrusted-schemas) - [Circular references in objects](#circular-references-in-javascript-objects) - [Trusted schemas](#security-risks-of-trusted-schemas) + - [ReDoS attack](#redos-attack) - Modifying data during validation - [Filtering data](#filtering-data) - [Assigning defaults](#assigning-defaults) @@ -130,7 +131,11 @@ Try it in the Node.js REPL: https://tonicdev.com/npm/ajv The fastest validation call: ```javascript +// Node.js require: var Ajv = require('ajv'); +// or ESM/TypeScript import +import Ajv from 'ajv'; + var ajv = new Ajv(); // options can be passed, e.g. {allErrors: true} var validate = ajv.compile(schema); var valid = validate(data); @@ -164,6 +169,10 @@ The best performance is achieved when using compiled functions returned by `comp __Please note__: every time a validation function or `ajv.validate` are called `errors` property is overwritten. You need to copy `errors` array reference to another variable if you want to use it later (e.g., in the callback). See [Validation errors](#validation-errors) +__Note for TypeScript users__: `ajv` provides its own TypeScript declarations +out of the box, so you don't need to install the deprecated `@types/ajv` +module. + ## Using in browser @@ -240,7 +249,11 @@ __Please note__: Ajv does not implement validation of the keywords `examples`, ## Formats -The following formats are supported for string validation with "format" keyword: +Ajv implements formats defined by JSON Schema specification and several other formats. It is recommended NOT to use "format" keyword implementations with untrusted data, as they use potentially unsafe regular expressions - see [ReDoS attack](#redos-attack). + +__Please note__: if you need to use "format" keyword to validate untrusted data, you MUST assess their suitability and safety for your validation scenarios. + +The following formats are implemented for string validation with "format" keyword: - _date_: full-date according to [RFC3339](http://tools.ietf.org/html/rfc3339#section-5.6). - _time_: time with optional time-zone. @@ -323,7 +336,7 @@ __Please note__: ## $data reference -With `$data` option you can use values from the validated data as the values for the schema keywords. See [proposal](https://github.com/json-schema/json-schema/wiki/$data-(v5-proposal)) for more information about how it works. +With `$data` option you can use values from the validated data as the values for the schema keywords. See [proposal](https://github.com/json-schema-org/json-schema-spec/issues/51) for more information about how it works. `$data` reference is supported in the keywords: const, enum, format, maximum/minimum, exclusiveMaximum / exclusiveMinimum, maxLength / minLength, maxItems / minItems, maxProperties / minProperties, formatMaximum / formatMinimum, formatExclusiveMaximum / formatExclusiveMinimum, multipleOf, pattern, required, uniqueItems. @@ -646,9 +659,9 @@ An attempt to compile such schemas or validate such data would cause stack overf Some keywords in JSON Schemas can lead to very slow validation for certain data. These keywords include (but may be not limited to): -- `pattern` and `format` for large strings - use `maxLength` to mitigate +- `pattern` and `format` for large strings - in some cases using `maxLength` can help mitigate it, but certain regular expressions can lead to exponential validation time even with relatively short strings (see [ReDoS attack](#redos-attack)). +- `patternProperties` for large property names - use `propertyNames` to mitigate, but some regular expressions can have exponential evaluation time as well. - `uniqueItems` for large non-scalar arrays - use `maxItems` to mitigate -- `patternProperties` for large property names - use `propertyNames` to mitigate __Please note__: The suggestions above to prevent slow validation would only work if you do NOT use `allErrors: true` in production code (using it would continue validation after validation errors). @@ -660,13 +673,29 @@ const isSchemaSecure = ajv.compile(require('ajv/lib/refs/json-schema-secure.json const schema1 = {format: 'email'}; isSchemaSecure(schema1); // false -const schema2 = {format: 'email', maxLength: 256}; +const schema2 = {format: 'email', maxLength: MAX_LENGTH}; isSchemaSecure(schema2); // true ``` __Please note__: following all these recommendation is not a guarantee that validation of untrusted data is safe - it can still lead to some undesirable results. +## ReDoS attack + +Certain regular expressions can lead to the exponential evaluation time even with relatively short strings. + +Please assess the regular expressions you use in the schemas on their vulnerability to this attack - see [safe-regex](https://github.com/substack/safe-regex), for example. + +__Please note__: some formats that Ajv implements use [regular expressions](https://github.com/epoberezkin/ajv/blob/master/lib/compile/formats.js) that can be vulnerable to ReDoS attack, so if you use Ajv to validate data from untrusted sources __it is strongly recommended__ to consider the following: + +- making assessment of "format" implementations in Ajv. +- using `format: 'fast'` option that simplifies some of the regular expressions (although it does not guarantee that they are safe). +- replacing format implementations provided by Ajv with your own implementations of "format" keyword that either uses different regular expressions or another approach to format validation. Please see [addFormat](#api-addformat) method. +- disabling format validation by ignoring "format" keyword with option `format: false` + +Whatever mitigation you choose, please assume all formats provided by Ajv as potentially unsafe and make your own assessment of their suitability for your validation scenarios. + + ## Filtering data With [option `removeAdditional`](#options) (added by [andyscott](https://github.com/andyscott)) you can filter data during the validation. @@ -1123,12 +1152,13 @@ Defaults: - `"full"` - more restrictive and slow validation. E.g., 25:00:00 and 2015/14/33 will be invalid time and date in 'full' mode but it will be valid in 'fast' mode. - `false` - ignore all format keywords. - _formats_: an object with custom formats. Keys and values will be passed to `addFormat` method. +- _keywords_: an object with custom keywords. Keys and values will be passed to `addKeyword` method. - _unknownFormats_: handling of unknown formats. Option values: - `true` (default) - if an unknown format is encountered the exception is thrown during schema compilation. If `format` keyword value is [$data reference](#data-reference) and it is unknown the validation will fail. - `[String]` - an array of unknown format names that will be ignored. This option can be used to allow usage of third party schemas with format(s) for which you don't have definitions, but still fail if another unknown format is used. If `format` keyword value is [$data reference](#data-reference) and it is not in this array the validation will fail. - `"ignore"` - to log warning during schema compilation and always pass validation (the default behaviour in versions before 5.0.0). This option is not recommended, as it allows to mistype format name and it won't be validated without any error message. This behaviour is required by JSON Schema specification. - _schemas_: an array or object of schemas that will be added to the instance. In case you pass the array the schemas must have IDs in them. When the object is passed the method `addSchema(value, key)` will be called for each schema in this object. -- _logger_: sets the logging method. Default is the global `console` object that should have methods `log`, `warn` and `error`. Option values: +- _logger_: sets the logging method. Default is the global `console` object that should have methods `log`, `warn` and `error`. See [Error logging](#error-logging). Option values: - custom logger - it should have methods `log`, `warn` and `error`. If any of these methods is missing an exception will be thrown. - `false` - logging is disabled. @@ -1266,6 +1296,28 @@ Properties of `params` object in errors depend on the keyword that failed valida - custom keywords (in case keyword definition doesn't create errors) - property `keyword` (the keyword name). +### Error logging + +Using the `logger` option when initiallizing Ajv will allow you to define custom logging. Here you can build upon the exisiting logging. The use of other logging packages is supported as long as the package or its associated wrapper exposes the required methods. If any of the required methods are missing an exception will be thrown. +- **Required Methods**: `log`, `warn`, `error` + +```javascript +var otherLogger = new OtherLogger(); +var ajv = new Ajv({ + logger: { + log: console.log.bind(console), + warn: function warn() { + otherLogger.logWarn.apply(otherLogger, arguments); + }, + error: function error() { + otherLogger.logError.apply(otherLogger, arguments); + console.error.apply(console, arguments); + } + } +}); +``` + + ## Plugins Ajv can be extended with plugins that add custom keywords, formats or functions to process generated code. When such plugin is published as npm package it is recommended that it follows these conventions: diff --git a/node_modules/ajv/dist/ajv.bundle.js b/node_modules/ajv/dist/ajv.bundle.js index a6afe99..dd95630 100644 --- a/node_modules/ajv/dist/ajv.bundle.js +++ b/node_modules/ajv/dist/ajv.bundle.js @@ -161,8 +161,8 @@ var util = require('./util'); var DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/; var DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31]; -var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i; -var HOSTNAME = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i; +var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i; +var HOSTNAME = /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i; var URI = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i; var URIREF = /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i; // uri-template: https://tools.ietf.org/html/rfc6570 @@ -190,8 +190,8 @@ formats.fast = { // date: http://tools.ietf.org/html/rfc3339#section-5.6 date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/, // date-time: http://tools.ietf.org/html/rfc3339#section-5.6 - time: /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i, - 'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i, + time: /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, + 'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i, 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i, @@ -227,7 +227,7 @@ formats.full = { 'uri-template': URITEMPLATE, url: URL, email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i, - hostname: hostname, + hostname: HOSTNAME, ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/, ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i, regex: regex, @@ -280,13 +280,6 @@ function date_time(str) { } -function hostname(str) { - // https://tools.ietf.org/html/rfc1034#section-3.5 - // https://tools.ietf.org/html/rfc1123#section-2 - return str.length <= 255 && HOSTNAME.test(str); -} - - var NOT_URI_FRAGMENT = /\/|:/; function uri(str) { // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "." @@ -5072,21 +5065,18 @@ module.exports={ },{}],42:[function(require,module,exports){ 'use strict'; -var isArray = Array.isArray; -var keyList = Object.keys; -var hasProp = Object.prototype.hasOwnProperty; +// do not edit .js files directly - edit src/index.jst + + module.exports = function equal(a, b) { if (a === b) return true; if (a && b && typeof a == 'object' && typeof b == 'object') { - var arrA = isArray(a) - , arrB = isArray(b) - , i - , length - , key; + if (a.constructor !== b.constructor) return false; - if (arrA && arrB) { + var length, i, keys; + if (Array.isArray(a)) { length = a.length; if (length != b.length) return false; for (i = length; i-- !== 0;) @@ -5094,35 +5084,29 @@ module.exports = function equal(a, b) { return true; } - if (arrA != arrB) return false; - var dateA = a instanceof Date - , dateB = b instanceof Date; - if (dateA != dateB) return false; - if (dateA && dateB) return a.getTime() == b.getTime(); - var regexpA = a instanceof RegExp - , regexpB = b instanceof RegExp; - if (regexpA != regexpB) return false; - if (regexpA && regexpB) return a.toString() == b.toString(); + if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; + if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); + if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); - var keys = keyList(a); + keys = Object.keys(a); length = keys.length; - - if (length !== keyList(b).length) - return false; + if (length !== Object.keys(b).length) return false; for (i = length; i-- !== 0;) - if (!hasProp.call(b, keys[i])) return false; + if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; for (i = length; i-- !== 0;) { - key = keys[i]; + var key = keys[i]; + if (!equal(a[key], b[key])) return false; } return true; } + // true if both NaN, false otherwise return a!==a && b!==b; }; @@ -6741,6 +6725,7 @@ function Ajv(opts) { this._metaOpts = getMetaSchemaOptions(this); if (opts.formats) addInitialFormats(this); + if (opts.keywords) addInitialKeywords(this); addDefaultMetaSchema(this); if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta); if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}}); @@ -7139,6 +7124,14 @@ function addInitialFormats(self) { } +function addInitialKeywords(self) { + for (var name in self._opts.keywords) { + var keyword = self._opts.keywords[name]; + self.addKeyword(name, keyword); + } +} + + function checkUnique(self, id) { if (self._schemas[id] || self._refs[id]) throw new Error('schema with key or id "' + id + '" already exists'); diff --git a/node_modules/ajv/dist/ajv.min.js b/node_modules/ajv/dist/ajv.min.js index fd36d99..157af21 100644 --- a/node_modules/ajv/dist/ajv.min.js +++ b/node_modules/ajv/dist/ajv.min.js @@ -1,3 +1,3 @@ -/* ajv 6.10.2: Another JSON Schema Validator */ -!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Ajv=e()}}(function(){return function o(i,n,l){function c(r,e){if(!n[r]){if(!i[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(u)return u(r,!0);var a=new Error("Cannot find module '"+r+"'");throw a.code="MODULE_NOT_FOUND",a}var s=n[r]={exports:{}};i[r][0].call(s.exports,function(e){return c(i[r][1][e]||e)},s,s.exports,o,i,n,l)}return n[r].exports}for(var u="function"==typeof require&&require,e=0;e<l.length;e++)c(l[e]);return c}({1:[function(e,r,t){"use strict";var a=r.exports=function(){this._cache={}};a.prototype.put=function(e,r){this._cache[e]=r},a.prototype.get=function(e){return this._cache[e]},a.prototype.del=function(e){delete this._cache[e]},a.prototype.clear=function(){this._cache={}}},{}],2:[function(e,r,t){"use strict";var s=e("./error_classes").MissingRef;r.exports=function t(r,i,a){var n=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof i&&(a=i,i=void 0);var e=l(r).then(function(){var e=n._addSchema(r,void 0,i);return e.validate||c(e)});a&&e.then(function(e){a(null,e)},a);return e;function l(e){var r=e.$schema;return r&&!n.getSchema(r)?t.call(n,{$ref:r},!0):Promise.resolve()}function c(o){try{return n._compile(o)}catch(e){if(e instanceof s)return r(e);throw e}function r(e){var r=e.missingSchema;if(s(r))throw new Error("Schema "+r+" is loaded but "+e.missingRef+" cannot be resolved");var t=n._loadingSchemas[r];return t||(t=n._loadingSchemas[r]=n._opts.loadSchema(r)).then(a,a),t.then(function(e){if(!s(r))return l(e).then(function(){s(r)||n.addSchema(e,r,void 0,i)})}).then(function(){return c(o)});function a(){delete n._loadingSchemas[r]}function s(e){return n._refs[e]||n._schemas[e]}}}}},{"./error_classes":3}],3:[function(e,r,t){"use strict";var a=e("./resolve");function s(e,r,t){this.message=t||s.message(e,r),this.missingRef=a.url(e,r),this.missingSchema=a.normalizeId(a.fullPath(this.missingRef))}function o(e){return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e}r.exports={Validation:o(function(e){this.message="validation failed",this.errors=e,this.ajv=this.validation=!0}),MissingRef:o(s)},s.message=function(e,r){return"can't resolve reference "+r+" from id "+e}},{"./resolve":6}],4:[function(e,r,t){"use strict";var a=e("./util"),o=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31],n=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,s=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i,l=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,c=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,h=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,d=/^(?:\/(?:[^~/]|~0|~1)*)*$/,f=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,p=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function m(e){return a.copy(m[e="full"==e?"full":"fast"])}function v(e){var r=e.match(o);if(!r)return!1;var t,a=+r[2],s=+r[3];return 1<=a&&a<=12&&1<=s&&s<=(2!=a||((t=+r[1])%4!=0||t%100==0&&t%400!=0)?i[a]:29)}function y(e,r){var t=e.match(n);if(!t)return!1;var a=t[1],s=t[2],o=t[3];return(a<=23&&s<=59&&o<=59||23==a&&59==s&&60==o)&&(!r||t[5])}(r.exports=m).fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i,uri:/^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:s,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":f,"relative-json-pointer":p},m.full={date:v,time:y,"date-time":function(e){var r=e.split(g);return 2==r.length&&v(r[0])&&y(r[1],!0)},uri:function(e){return P.test(e)&&l.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:function(e){return e.length<=255&&s.test(e)},ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":f,"relative-json-pointer":p};var g=/t|\s/i;var P=/\/|:/;var E=/[^\\]\\Z/;function w(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},{"./util":10}],5:[function(e,r,t){"use strict";var $=e("./resolve"),D=e("./util"),j=e("./error_classes"),O=e("fast-json-stable-stringify"),I=e("../dotjs/validate"),A=D.ucs2length,C=e("fast-deep-equal"),k=j.Validation;function L(e,r,t){var a=s.call(this,e,r,t);return 0<=a?{index:a,compiling:!0}:{index:a=this._compilations.length,compiling:!(this._compilations[a]={schema:e,root:r,baseId:t})}}function z(e,r,t){var a=s.call(this,e,r,t);0<=a&&this._compilations.splice(a,1)}function s(e,r,t){for(var a=0;a<this._compilations.length;a++){var s=this._compilations[a];if(s.schema==e&&s.root==r&&s.baseId==t)return a}return-1}function T(e,r){return"var pattern"+e+" = new RegExp("+D.toQuotedString(r[e])+");"}function q(e){return"var default"+e+" = defaults["+e+"];"}function N(e,r){return void 0===r[e]?"":"var refVal"+e+" = refVal["+e+"];"}function Q(e){return"var customRule"+e+" = customRules["+e+"];"}function U(e,r){if(!e.length)return"";for(var t="",a=0;a<e.length;a++)t+=r(a,e);return t}r.exports=function c(e,u,h,r){var f=this,p=this._opts,d=[void 0],m={},v=[],t={},y=[],a={},g=[];u=u||{schema:e,refVal:d,refs:m};var s=L.call(this,e,u,r);var o=this._compilations[s.index];if(s.compiling)return o.callValidate=l;var P=this._formats;var E=this.RULES;try{var i=w(e,u,h,r);o.validate=i;var n=o.callValidate;return n&&(n.schema=i.schema,n.errors=null,n.refs=i.refs,n.refVal=i.refVal,n.root=i.root,n.$async=i.$async,p.sourceCode&&(n.source=i.source)),i}finally{z.call(this,e,u,r)}function l(){var e=o.validate,r=e.apply(this,arguments);return l.errors=e.errors,r}function w(e,r,t,a){var s=!r||r&&r.schema==e;if(r.schema!=u.schema)return c.call(f,e,r,t,a);var o,i=!0===e.$async,n=I({isTop:!0,schema:e,isRoot:s,baseId:a,root:r,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:j.MissingRef,RULES:E,validate:I,util:D,resolve:$,resolveRef:b,usePattern:F,useDefault:x,useCustomRule:R,opts:p,formats:P,logger:f.logger,self:f});n=U(d,N)+U(v,T)+U(y,q)+U(g,Q)+n,p.processCode&&(n=p.processCode(n));try{var l=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",n);o=l(f,E,P,u,d,y,g,C,A,k),d[0]=o}catch(e){throw f.logger.error("Error compiling schema, function code:",n),e}return o.schema=e,o.errors=null,o.refs=m,o.refVal=d,o.root=s?o:r,i&&(o.$async=!0),!0===p.sourceCode&&(o.source={code:n,patterns:v,defaults:y}),o}function b(e,r,t){r=$.url(e,r);var a,s,o=m[r];if(void 0!==o)return _(a=d[o],s="refVal["+o+"]");if(!t&&u.refs){var i=u.refs[r];if(void 0!==i)return s=S(r,a=u.refVal[i]),_(a,s)}s=S(r);var n=$.call(f,w,u,r);if(void 0===n){var l=h&&h[r];l&&(n=$.inlineRef(l,p.inlineRefs)?l:c.call(f,l,u,h,e))}if(void 0!==n)return d[m[r]]=n,_(n,s);delete m[r]}function S(e,r){var t=d.length;return d[t]=r,"refVal"+(m[e]=t)}function _(e,r){return"object"==typeof e||"boolean"==typeof e?{code:r,schema:e,inline:!0}:{code:r,$async:e&&!!e.$async}}function F(e){var r=t[e];return void 0===r&&(r=t[e]=v.length,v[r]=e),"pattern"+r}function x(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return D.toQuotedString(e);case"object":if(null===e)return"null";var r=O(e),t=a[r];return void 0===t&&(t=a[r]=y.length,y[t]=e),"default"+t}}function R(e,r,t,a){if(!1!==f._opts.validateSchema){var s=e.definition.dependencies;if(s&&!s.every(function(e){return Object.prototype.hasOwnProperty.call(t,e)}))throw new Error("parent schema must have all required keywords: "+s.join(","));var o=e.definition.validateSchema;if(o){var i=o(r);if(!i){var n="keyword schema is invalid: "+f.errorsText(o.errors);if("log"!=f._opts.validateSchema)throw new Error(n);f.logger.error(n)}}}var l,c=e.definition.compile,u=e.definition.inline,h=e.definition.macro;if(c)l=c.call(f,r,t,a);else if(h)l=h.call(f,r,t,a),!1!==p.validateSchema&&f.validateSchema(l,!0);else if(u)l=u.call(f,a,e.keyword,r,t);else if(!(l=e.definition.validate))return;if(void 0===l)throw new Error('custom keyword "'+e.keyword+'"failed to compile');var d=g.length;return{code:"customRule"+d,validate:g[d]=l}}}},{"../dotjs/validate":38,"./error_classes":3,"./resolve":6,"./util":10,"fast-deep-equal":42,"fast-json-stable-stringify":43}],6:[function(e,r,t){"use strict";var m=e("uri-js"),v=e("fast-deep-equal"),y=e("./util"),l=e("./schema_obj"),a=e("json-schema-traverse");function c(e,r,t){var a=this._refs[t];if("string"==typeof a){if(!this._refs[a])return c.call(this,e,r,a);a=this._refs[a]}if((a=a||this._schemas[t])instanceof l)return d(a.schema,this._opts.inlineRefs)?a.schema:a.validate||this._compile(a);var s,o,i,n=u.call(this,r,t);return n&&(s=n.schema,r=n.root,i=n.baseId),s instanceof l?o=s.validate||e.call(this,s.schema,r,void 0,i):void 0!==s&&(o=d(s,this._opts.inlineRefs)?s:e.call(this,s,r,void 0,i)),o}function u(e,r){var t=m.parse(r),a=f(t),s=g(this._getId(e.schema));if(0===Object.keys(e.schema).length||a!==s){var o=P(a),i=this._refs[o];if("string"==typeof i)return function(e,r,t){var a=u.call(this,e,r);if(a){var s=a.schema,o=a.baseId;e=a.root;var i=this._getId(s);return i&&(o=p(o,i)),n.call(this,t,o,s,e)}}.call(this,e,i,t);if(i instanceof l)i.validate||this._compile(i),e=i;else{if(!((i=this._schemas[o])instanceof l))return;if(i.validate||this._compile(i),o==P(r))return{schema:i,root:e,baseId:s};e=i}if(!e.schema)return;s=g(this._getId(e.schema))}return n.call(this,t,s,e.schema,e)}(r.exports=c).normalizeId=P,c.fullPath=g,c.url=p,c.ids=function(e){var r=P(this._getId(e)),h={"":r},d={"":g(r,!1)},f={},p=this;return a(e,{allKeys:!0},function(e,r,t,a,s,o,i){if(""!==r){var n=p._getId(e),l=h[a],c=d[a]+"/"+s;if(void 0!==i&&(c+="/"+("number"==typeof i?i:y.escapeFragment(i))),"string"==typeof n){n=l=P(l?m.resolve(l,n):n);var u=p._refs[n];if("string"==typeof u&&(u=p._refs[u]),u&&u.schema){if(!v(e,u.schema))throw new Error('id "'+n+'" resolves to more than one schema')}else if(n!=P(c))if("#"==n[0]){if(f[n]&&!v(e,f[n]))throw new Error('id "'+n+'" resolves to more than one schema');f[n]=e}else p._refs[n]=c}h[r]=l,d[r]=c}}),f},c.inlineRef=d,c.schema=u;var h=y.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function n(e,r,t,a){if(e.fragment=e.fragment||"","/"==e.fragment.slice(0,1)){for(var s=e.fragment.split("/"),o=1;o<s.length;o++){var i=s[o];if(i){if(void 0===(t=t[i=y.unescapeFragment(i)]))break;var n;if(!h[i]&&((n=this._getId(t))&&(r=p(r,n)),t.$ref)){var l=p(r,t.$ref),c=u.call(this,a,l);c&&(t=c.schema,a=c.root,r=c.baseId)}}}return void 0!==t&&t!==a.schema?{schema:t,root:a,baseId:r}:void 0}}var i=y.toHash(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum"]);function d(e,r){return!1!==r&&(void 0===r||!0===r?function e(r){var t;if(Array.isArray(r)){for(var a=0;a<r.length;a++)if("object"==typeof(t=r[a])&&!e(t))return!1}else for(var s in r){if("$ref"==s)return!1;if("object"==typeof(t=r[s])&&!e(t))return!1}return!0}(e):r?function e(r){var t,a=0;if(Array.isArray(r)){for(var s=0;s<r.length;s++)if("object"==typeof(t=r[s])&&(a+=e(t)),a==1/0)return 1/0}else for(var o in r){if("$ref"==o)return 1/0;if(i[o])a++;else if("object"==typeof(t=r[o])&&(a+=e(t)+1),a==1/0)return 1/0}return a}(e)<=r:void 0)}function g(e,r){return!1!==r&&(e=P(e)),f(m.parse(e))}function f(e){return m.serialize(e).split("#")[0]+"#"}var s=/#\/?$/;function P(e){return e?e.replace(s,""):""}function p(e,r){return r=P(r),m.resolve(e,r)}},{"./schema_obj":8,"./util":10,"fast-deep-equal":42,"json-schema-traverse":44,"uri-js":45}],7:[function(e,r,t){"use strict";var o=e("../dotjs"),i=e("./util").toHash;r.exports=function(){var a=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],s=["type","$comment"];return a.all=i(s),a.types=i(["number","integer","string","array","object","boolean","null"]),a.forEach(function(e){e.rules=e.rules.map(function(e){var r;if("object"==typeof e){var t=Object.keys(e)[0];r=e[t],e=t,r.forEach(function(e){s.push(e),a.all[e]=!0})}return s.push(e),a.all[e]={keyword:e,code:o[e],implements:r}}),a.all.$comment={keyword:"$comment",code:o.$comment},e.type&&(a.types[e.type]=e)}),a.keywords=i(s.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),a.custom={},a}},{"../dotjs":27,"./util":10}],8:[function(e,r,t){"use strict";var a=e("./util");r.exports=function(e){a.copy(e,this)}},{"./util":10}],9:[function(e,r,t){"use strict";r.exports=function(e){for(var r,t=0,a=e.length,s=0;s<a;)t++,55296<=(r=e.charCodeAt(s++))&&r<=56319&&s<a&&56320==(64512&(r=e.charCodeAt(s)))&&s++;return t}},{}],10:[function(e,r,t){"use strict";function o(e,r,t){var a=t?" !== ":" === ",s=t?" || ":" && ",o=t?"!":"",i=t?"":"!";switch(e){case"null":return r+a+"null";case"array":return o+"Array.isArray("+r+")";case"object":return"("+o+r+s+"typeof "+r+a+'"object"'+s+i+"Array.isArray("+r+"))";case"integer":return"(typeof "+r+a+'"number"'+s+i+"("+r+" % 1)"+s+r+a+r+")";default:return"typeof "+r+a+'"'+e+'"'}}r.exports={copy:function(e,r){for(var t in r=r||{},e)r[t]=e[t];return r},checkDataType:o,checkDataTypes:function(e,r){switch(e.length){case 1:return o(e[0],r,!0);default:var t="",a=n(e);for(var s in a.array&&a.object&&(t=a.null?"(":"(!"+r+" || ",t+="typeof "+r+' !== "object")',delete a.null,delete a.array,delete a.object),a.number&&delete a.integer,a)t+=(t?" && ":"")+o(s,r,!0);return t}},coerceToTypes:function(e,r){if(Array.isArray(r)){for(var t=[],a=0;a<r.length;a++){var s=r[a];i[s]?t[t.length]=s:"array"===e&&"array"===s&&(t[t.length]=s)}if(t.length)return t}else{if(i[r])return[r];if("array"===e&&"array"===r)return["array"]}},toHash:n,getProperty:h,escapeQuotes:l,equal:e("fast-deep-equal"),ucs2length:e("./ucs2length"),varOccurences:function(e,r){var t=e.match(new RegExp(r+="[^0-9]","g"));return t?t.length:0},varReplace:function(e,r,t){return r+="([^0-9])",t=t.replace(/\$/g,"$$$$"),e.replace(new RegExp(r,"g"),t+"$1")},cleanUpCode:function(e){return e.replace(c,"").replace(u,"").replace(d,"if (!($1))")},finalCleanUpCode:function(e,r){var t=e.match(f);t&&2==t.length&&(e=r?e.replace(m,"").replace(g,P):e.replace(p,"").replace(v,y));return(t=e.match(E))&&3===t.length?e.replace(w,""):e},schemaHasRules:function(e,r){if("boolean"==typeof e)return!e;for(var t in e)if(r[t])return!0},schemaHasRulesExcept:function(e,r,t){if("boolean"==typeof e)return!e&&"not"!=t;for(var a in e)if(a!=t&&r[a])return!0},schemaUnknownRules:function(e,r){if("boolean"==typeof e)return;for(var t in e)if(!r[t])return t},toQuotedString:b,getPathExpr:function(e,r,t,a){return F(e,t?"'/' + "+r+(a?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):a?"'[' + "+r+" + ']'":"'[\\'' + "+r+" + '\\']'")},getPath:function(e,r,t){var a=b(t?"/"+x(r):h(r));return F(e,a)},getData:function(e,r,t){var a,s,o,i;if(""===e)return"rootData";if("/"==e[0]){if(!S.test(e))throw new Error("Invalid JSON-pointer: "+e);s=e,o="rootData"}else{if(!(i=e.match(_)))throw new Error("Invalid JSON-pointer: "+e);if(a=+i[1],"#"==(s=i[2])){if(r<=a)throw new Error("Cannot access property/index "+a+" levels up, current level is "+r);return t[r-a]}if(r<a)throw new Error("Cannot access data "+a+" levels up, current level is "+r);if(o="data"+(r-a||""),!s)return o}for(var n=o,l=s.split("/"),c=0;c<l.length;c++){var u=l[c];u&&(o+=h(R(u)),n+=" && "+o)}return n},unescapeFragment:function(e){return R(decodeURIComponent(e))},unescapeJsonPointer:R,escapeFragment:function(e){return encodeURIComponent(x(e))},escapeJsonPointer:x};var i=n(["string","number","integer","boolean","null"]);function n(e){for(var r={},t=0;t<e.length;t++)r[e[t]]=!0;return r}var a=/^[a-z$_][a-z$_0-9]*$/i,s=/'|\\/g;function h(e){return"number"==typeof e?"["+e+"]":a.test(e)?"."+e:"['"+l(e)+"']"}function l(e){return e.replace(s,"\\$&").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\f/g,"\\f").replace(/\t/g,"\\t")}var c=/else\s*{\s*}/g,u=/if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g,d=/if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g;var f=/[^v.]errors/g,p=/var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g,m=/var errors = 0;|var vErrors = null;/g,v="return errors === 0;",y="validate.errors = null; return true;",g=/if \(errors === 0\) return data;\s*else throw new ValidationError\(vErrors\);/,P="return data;",E=/[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g,w=/if \(rootData === undefined\) rootData = data;/;function b(e){return"'"+l(e)+"'"}var S=/^\/(?:[^~]|~0|~1)*$/,_=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function F(e,r){return'""'==e?r:(e+" + "+r).replace(/' \+ '/g,"")}function x(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function R(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}},{"./ucs2length":9,"fast-deep-equal":42}],11:[function(e,r,t){"use strict";var l=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];r.exports=function(e,r){for(var t=0;t<r.length;t++){e=JSON.parse(JSON.stringify(e));var a,s=r[t].split("/"),o=e;for(a=1;a<s.length;a++)o=o[s[a]];for(a=0;a<l.length;a++){var i=l[a],n=o[i];n&&(o[i]={anyOf:[n,{$ref:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#"}]})}}return e}},{}],12:[function(e,r,t){"use strict";var a=e("./refs/json-schema-draft-07.json");r.exports={$id:"https://github.com/epoberezkin/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:a.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:a.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},{"./refs/json-schema-draft-07.json":41}],13:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;a=d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ","schema"+o):n;var f="maximum"==r,p=f?"exclusiveMaximum":"exclusiveMinimum",m=e.schema[p],v=e.opts.$data&&m&&m.$data,y=f?"<":">",g=f?">":"<",P=void 0;if(v){var E=e.util.getData(m.$data,i,e.dataPathArr),w="exclusive"+o,b="exclType"+o,S="exclIsNumber"+o,_="' + "+(R="op"+o)+" + '";s+=" var schemaExcl"+o+" = "+E+"; ";var F;P=p;(F=F||[]).push(s+=" var "+w+"; var "+b+" = typeof "+(E="schemaExcl"+o)+"; if ("+b+" != 'boolean' && "+b+" != 'undefined' && "+b+" != 'number') { "),s="",!1!==e.createErrors?(s+=" { keyword: '"+(P||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: {} ",!1!==e.opts.messages&&(s+=" , message: '"+p+" should be boolean' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var x=s;s=F.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+x+"]); ":" validate.errors = ["+x+"]; return false; ":" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+b+" == 'number' ? ( ("+w+" = "+a+" === undefined || "+E+" "+y+"= "+a+") ? "+h+" "+g+"= "+E+" : "+h+" "+g+" "+a+" ) : ( ("+w+" = "+E+" === true) ? "+h+" "+g+"= "+a+" : "+h+" "+g+" "+a+" ) || "+h+" !== "+h+") { var op"+o+" = "+w+" ? '"+y+"' : '"+y+"='; ",void 0===n&&(c=e.errSchemaPath+"/"+(P=p),a=E,d=v)}else{_=y;if((S="number"==typeof m)&&d){var R="'"+_+"'";s+=" if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" ( "+a+" === undefined || "+m+" "+y+"= "+a+" ? "+h+" "+g+"= "+m+" : "+h+" "+g+" "+a+" ) || "+h+" !== "+h+") { "}else{S&&void 0===n?(w=!0,c=e.errSchemaPath+"/"+(P=p),a=m,g+="="):(S&&(a=Math[f?"min":"max"](m,n)),m===(!S||a)?(w=!0,c=e.errSchemaPath+"/"+(P=p),g+="="):(w=!1,_+="="));R="'"+_+"'";s+=" if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+h+" "+g+" "+a+" || "+h+" !== "+h+") { "}}P=P||r,(F=F||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(P||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { comparison: "+R+", limit: "+a+", exclusive: "+w+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be "+_+" ",s+=d?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";x=s;return s=F.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+x+"]); ":" validate.errors = ["+x+"]; return false; ":" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { "),s}},{}],14:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;a=d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ","schema"+o):n,s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || ");var f=r,p=p||[];p.push(s+=" "+h+".length "+("maxItems"==r?">":"<")+" "+a+") { "),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxItems"==r?"more":"fewer",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],15:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;a=d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ","schema"+o):n,s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=!1===e.opts.unicode?" "+h+".length ":" ucs2length("+h+") ";var f=r,p=p||[];p.push(s+=" "+("maxLength"==r?">":"<")+" "+a+") { "),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT be ",s+="maxLength"==r?"longer":"shorter",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],16:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;a=d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ","schema"+o):n,s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || ");var f=r,p=p||[];p.push(s+=" Object.keys("+h+").length "+("maxProperties"==r?">":"<")+" "+a+") { "),s="",!1!==e.createErrors?(s+=" { keyword: '"+(f||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { limit: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have ",s+="maxProperties"==r?"more":"fewer",s+=" than ",s+=d?"' + "+a+" + '":""+n,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],17:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.schema[r],o=e.schemaPath+e.util.getProperty(r),i=e.errSchemaPath+"/"+r,n=!e.opts.allErrors,l=e.util.copy(e),c="";l.level++;var u="valid"+l.level,h=l.baseId,d=!0,f=s;if(f)for(var p,m=-1,v=f.length-1;m<v;)p=f[m+=1],(e.opts.strictKeywords?"object"==typeof p&&0<Object.keys(p).length:e.util.schemaHasRules(p,e.RULES.all))&&(d=!1,l.schema=p,l.schemaPath=o+"["+m+"]",l.errSchemaPath=i+"/"+m,a+=" "+e.validate(l)+" ",l.baseId=h,n&&(a+=" if ("+u+") { ",c+="}"));return n&&(a+=d?" if (true) { ":" "+c.slice(0,-1)+" "),a=e.util.cleanUpCode(a)}},{}],18:[function(e,r,t){"use strict";r.exports=function(r,e,t){var a=" ",s=r.level,o=r.dataLevel,i=r.schema[e],n=r.schemaPath+r.util.getProperty(e),l=r.errSchemaPath+"/"+e,c=!r.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,f=r.util.copy(r),p="";f.level++;var m="valid"+f.level;if(i.every(function(e){return r.opts.strictKeywords?"object"==typeof e&&0<Object.keys(e).length:r.util.schemaHasRules(e,r.RULES.all)})){var v=f.baseId;a+=" var "+d+" = errors; var "+h+" = false; ";var y=r.compositeRule;r.compositeRule=f.compositeRule=!0;var g=i;if(g)for(var P,E=-1,w=g.length-1;E<w;)P=g[E+=1],f.schema=P,f.schemaPath=n+"["+E+"]",f.errSchemaPath=l+"/"+E,a+=" "+r.validate(f)+" ",f.baseId=v,a+=" "+h+" = "+h+" || "+m+"; if (!"+h+") { ",p+="}";r.compositeRule=f.compositeRule=y,a+=" "+p+" if (!"+h+") { var err = ",!1!==r.createErrors?(a+=" { keyword: 'anyOf' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(l)+" , params: {} ",!1!==r.opts.messages&&(a+=" , message: 'should match some schema in anyOf' "),r.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!r.compositeRule&&c&&(a+=r.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),a+=" } else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",r.opts.allErrors&&(a+=" } "),a=r.util.cleanUpCode(a)}else c&&(a+=" if (true) { ");return a}},{}],19:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.errSchemaPath+"/"+r,o=e.util.toQuotedString(e.schema[r]);return!0===e.opts.$comment?a+=" console.log("+o+");":"function"==typeof e.opts.$comment&&(a+=" self._opts.$comment("+o+", "+e.util.toQuotedString(s)+", validate.root.schema);"),a}},{}],20:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d=e.opts.$data&&i&&i.$data;d&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; "),d||(a+=" var schema"+s+" = validate.schema"+n+";");var f=f||[];f.push(a+="var "+h+" = equal("+u+", schema"+s+"); if (!"+h+") { "),a="",!1!==e.createErrors?(a+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { allowedValue: schema"+s+" } ",!1!==e.opts.messages&&(a+=" , message: 'should be equal to constant' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var p=a;return a=f.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }",c&&(a+=" else { "),a}},{}],21:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,f=e.util.copy(e);f.level++;var p="valid"+f.level,m="i"+s,v=f.dataLevel=e.dataLevel+1,y="data"+v,g=e.baseId,P=e.opts.strictKeywords?"object"==typeof i&&0<Object.keys(i).length:e.util.schemaHasRules(i,e.RULES.all);if(a+="var "+d+" = errors;var "+h+";",P){var E=e.compositeRule;e.compositeRule=f.compositeRule=!0,f.schema=i,f.schemaPath=n,f.errSchemaPath=l,a+=" var "+p+" = false; for (var "+m+" = 0; "+m+" < "+u+".length; "+m+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);var w=u+"["+m+"]";f.dataPathArr[v]=m;var b=e.validate(f);f.baseId=g,e.util.varOccurences(b,y)<2?a+=" "+e.util.varReplace(b,y,w)+" ":a+=" var "+y+" = "+w+"; "+b+" ",a+=" if ("+p+") break; } ",e.compositeRule=f.compositeRule=E,a+=" if (!"+p+") {"}else a+=" if ("+u+".length == 0) {";var S=S||[];S.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should contain a valid item' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var _=a;return a=S.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+_+"]); ":" validate.errors = ["+_+"]; return false; ":" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { ",P&&(a+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } "),e.opts.allErrors&&(a+=" } "),a=e.util.cleanUpCode(a)}},{}],22:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s,o=" ",i=e.level,n=e.dataLevel,l=e.schema[r],c=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,d="data"+(n||""),f="valid"+i,p="errs__"+i,m=e.opts.$data&&l&&l.$data;s=m?(o+=" var schema"+i+" = "+e.util.getData(l.$data,n,e.dataPathArr)+"; ","schema"+i):l;var v,y,g,P,E,w=this,b="definition"+i,S=w.definition,_="";if(m&&S.$data){var F=S.validateSchema;o+=" var "+b+" = RULES.custom['"+r+"'].definition; var "+(E="keywordValidate"+i)+" = "+b+".validate;"}else{if(!(P=e.useCustomRule(w,l,e.schema,e)))return;s="validate.schema"+c,E=P.code,v=S.compile,y=S.inline,g=S.macro}var x=E+".errors",R="i"+i,$="ruleErr"+i,D=S.async;if(D&&!e.async)throw new Error("async keyword in sync schema");if(y||g||(o+=x+" = null;"),o+="var "+p+" = errors;var "+f+";",m&&S.$data&&(_+="}",o+=" if ("+s+" === undefined) { "+f+" = true; } else { ",F&&(_+="}",o+=" "+f+" = "+b+".validateSchema("+s+"); if ("+f+") { ")),y)o+=S.statements?" "+P.validate+" ":" "+f+" = "+P.validate+"; ";else if(g){var j=e.util.copy(e);_="";j.level++;var O="valid"+j.level;j.schema=P.validate,j.schemaPath="";var I=e.compositeRule;e.compositeRule=j.compositeRule=!0;var A=e.validate(j).replace(/validate\.schema/g,E);e.compositeRule=j.compositeRule=I,o+=" "+A}else{(z=z||[]).push(o),o="",o+=" "+E+".call( ",o+=e.opts.passContext?"this":"self",o+=v||!1===S.schema?" , "+d+" ":" , "+s+" , "+d+" , validate.schema"+e.schemaPath+" ",o+=" , (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);var C=n?"data"+(n-1||""):"parentData",k=n?e.dataPathArr[n]:"parentDataProperty",L=o+=" , "+C+" , "+k+" , rootData ) ";o=z.pop(),!1===S.errors?(o+=" "+f+" = ",D&&(o+="await "),o+=L+"; "):o+=D?" var "+(x="customErrors"+i)+" = null; try { "+f+" = await "+L+"; } catch (e) { "+f+" = false; if (e instanceof ValidationError) "+x+" = e.errors; else throw e; } ":" "+x+" = null; "+f+" = "+L+"; "}if(S.modifying&&(o+=" if ("+C+") "+d+" = "+C+"["+k+"];"),o+=""+_,S.valid)h&&(o+=" if (true) { ");else{var z;o+=" if ( ",void 0===S.valid?(o+=" !",o+=g?""+O:""+f):o+=" "+!S.valid+" ",a=w.keyword,(z=z||[]).push(o+=") { "),(z=z||[]).push(o=""),o="",!1!==e.createErrors?(o+=" { keyword: '"+(a||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+w.keyword+"' } ",!1!==e.opts.messages&&(o+=" , message: 'should pass \""+w.keyword+"\" keyword validation' "),e.opts.verbose&&(o+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var T=o;o=z.pop();var q=o+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+T+"]); ":" validate.errors = ["+T+"]; return false; ":" var err = "+T+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";o=z.pop(),y?S.errors?"full"!=S.errors&&(o+=" for (var "+R+"="+p+"; "+R+"<errors; "+R+"++) { var "+$+" = vErrors["+R+"]; if ("+$+".dataPath === undefined) "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+$+".schemaPath === undefined) { "+$+'.schemaPath = "'+u+'"; } ',e.opts.verbose&&(o+=" "+$+".schema = "+s+"; "+$+".data = "+d+"; "),o+=" } "):!1===S.errors?o+=" "+q+" ":(o+=" if ("+p+" == errors) { "+q+" } else { for (var "+R+"="+p+"; "+R+"<errors; "+R+"++) { var "+$+" = vErrors["+R+"]; if ("+$+".dataPath === undefined) "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+$+".schemaPath === undefined) { "+$+'.schemaPath = "'+u+'"; } ',e.opts.verbose&&(o+=" "+$+".schema = "+s+"; "+$+".data = "+d+"; "),o+=" } } "):g?(o+=" var err = ",!1!==e.createErrors?(o+=" { keyword: '"+(a||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+w.keyword+"' } ",!1!==e.opts.messages&&(o+=" , message: 'should pass \""+w.keyword+"\" keyword validation' "),e.opts.verbose&&(o+=" , schema: validate.schema"+c+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ",o+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&h&&(o+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; ")):!1===S.errors?o+=" "+q+" ":(o+=" if (Array.isArray("+x+")) { if (vErrors === null) vErrors = "+x+"; else vErrors = vErrors.concat("+x+"); errors = vErrors.length; for (var "+R+"="+p+"; "+R+"<errors; "+R+"++) { var "+$+" = vErrors["+R+"]; if ("+$+".dataPath === undefined) "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; "+$+'.schemaPath = "'+u+'"; ',e.opts.verbose&&(o+=" "+$+".schema = "+s+"; "+$+".data = "+d+"; "),o+=" } } else { "+q+" } "),o+=" } ",h&&(o+=" else { ")}return o}},{}],23:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="errs__"+s,d=e.util.copy(e),f="";d.level++;var p="valid"+d.level,m={},v={},y=e.opts.ownProperties;for(w in i){var g=i[w],P=Array.isArray(g)?v:m;P[w]=g}a+="var "+h+" = errors;";var E=e.errorPath;for(var w in a+="var missing"+s+";",v)if((P=v[w]).length){if(a+=" if ( "+u+e.util.getProperty(w)+" !== undefined ",y&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(w)+"') "),c){a+=" && ( ";var b=P;if(b)for(var S=-1,_=b.length-1;S<_;){j=b[S+=1],S&&(a+=" || "),a+=" ( ( "+(C=u+(A=e.util.getProperty(j)))+" === undefined ",y&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(j)+"') "),a+=") && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?j:A)+") ) "}a+=")) { ";var F="missing"+s,x="' + "+F+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(E,F,!0):E+" + "+F);var R=R||[];R.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(w)+"', missingProperty: '"+x+"', depsCount: "+P.length+", deps: '"+e.util.escapeQuotes(1==P.length?P[0]:P.join(", "))+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should have ",a+=1==P.length?"property "+e.util.escapeQuotes(P[0]):"properties "+e.util.escapeQuotes(P.join(", ")),a+=" when property "+e.util.escapeQuotes(w)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var $=a;a=R.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{a+=" ) { ";var D=P;if(D)for(var j,O=-1,I=D.length-1;O<I;){j=D[O+=1];var A=e.util.getProperty(j),C=(x=e.util.escapeQuotes(j),u+A);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(E,j,e.opts.jsonPointers)),a+=" if ( "+C+" === undefined ",y&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(j)+"') "),a+=") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(w)+"', missingProperty: '"+x+"', depsCount: "+P.length+", deps: '"+e.util.escapeQuotes(1==P.length?P[0]:P.join(", "))+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should have ",a+=1==P.length?"property "+e.util.escapeQuotes(P[0]):"properties "+e.util.escapeQuotes(P.join(", ")),a+=" when property "+e.util.escapeQuotes(w)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}a+=" } ",c&&(f+="}",a+=" else { ")}e.errorPath=E;var k=d.baseId;for(var w in m){g=m[w];(e.opts.strictKeywords?"object"==typeof g&&0<Object.keys(g).length:e.util.schemaHasRules(g,e.RULES.all))&&(a+=" "+p+" = true; if ( "+u+e.util.getProperty(w)+" !== undefined ",y&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(w)+"') "),a+=") { ",d.schema=g,d.schemaPath=n+e.util.getProperty(w),d.errSchemaPath=l+"/"+e.util.escapeFragment(w),a+=" "+e.validate(d)+" ",d.baseId=k,a+=" } ",c&&(a+=" if ("+p+") { ",f+="}"))}return c&&(a+=" "+f+" if ("+h+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],24:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d=e.opts.$data&&i&&i.$data;d&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ");var f="i"+s,p="schema"+s;d||(a+=" var "+p+" = validate.schema"+n+";"),a+="var "+h+";",d&&(a+=" if (schema"+s+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+s+")) "+h+" = false; else {"),a+=h+" = false;for (var "+f+"=0; "+f+"<"+p+".length; "+f+"++) if (equal("+u+", "+p+"["+f+"])) { "+h+" = true; break; }",d&&(a+=" } ");var m=m||[];m.push(a+=" if (!"+h+") { "),a="",!1!==e.createErrors?(a+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { allowedValues: schema"+s+" } ",!1!==e.opts.messages&&(a+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var v=a;return a=m.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }",c&&(a+=" else { "),a}},{}],25:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||"");if(!1===e.opts.format)return c&&(a+=" if (true) { "),a;var h,d=e.opts.$data&&i&&i.$data;h=d?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i;var f=e.opts.unknownFormats,p=Array.isArray(f);if(d){a+=" var "+(m="format"+s)+" = formats["+h+"]; var "+(v="isObject"+s)+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; var "+(y="formatType"+s)+" = "+v+" && "+m+".type || 'string'; if ("+v+") { ",e.async&&(a+=" var async"+s+" = "+m+".async; "),a+=" "+m+" = "+m+".validate; } if ( ",d&&(a+=" ("+h+" !== undefined && typeof "+h+" != 'string') || "),a+=" (","ignore"!=f&&(a+=" ("+h+" && !"+m+" ",p&&(a+=" && self._opts.unknownFormats.indexOf("+h+") == -1 "),a+=") || "),a+=" ("+m+" && "+y+" == '"+t+"' && !(typeof "+m+" == 'function' ? ",a+=e.async?" (async"+s+" ? await "+m+"("+u+") : "+m+"("+u+")) ":" "+m+"("+u+") ",a+=" : "+m+".test("+u+"))))) {"}else{var m;if(!(m=e.formats[i])){if("ignore"==f)return e.logger.warn('unknown format "'+i+'" ignored in schema at path "'+e.errSchemaPath+'"'),c&&(a+=" if (true) { "),a;if(p&&0<=f.indexOf(i))return c&&(a+=" if (true) { "),a;throw new Error('unknown format "'+i+'" is used in schema at path "'+e.errSchemaPath+'"')}var v,y=(v="object"==typeof m&&!(m instanceof RegExp)&&m.validate)&&m.type||"string";if(v){var g=!0===m.async;m=m.validate}if(y!=t)return c&&(a+=" if (true) { "),a;if(g){if(!e.async)throw new Error("async format in sync schema");a+=" if (!(await "+(P="formats"+e.util.getProperty(i)+".validate")+"("+u+"))) { "}else{a+=" if (! ";var P="formats"+e.util.getProperty(i);v&&(P+=".validate"),a+="function"==typeof m?" "+P+"("+u+") ":" "+P+".test("+u+") ",a+=") { "}}var E=E||[];E.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",a+=d?""+h:""+e.util.toQuotedString(i),a+=" } ",!1!==e.opts.messages&&(a+=" , message: 'should match format \"",a+=d?"' + "+h+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=d?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var w=a;return a=E.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+w+"]); ":" validate.errors = ["+w+"]; return false; ":" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { "),a}},{}],26:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,f=e.util.copy(e);f.level++;var p="valid"+f.level,m=e.schema.then,v=e.schema.else,y=void 0!==m&&(e.opts.strictKeywords?"object"==typeof m&&0<Object.keys(m).length:e.util.schemaHasRules(m,e.RULES.all)),g=void 0!==v&&(e.opts.strictKeywords?"object"==typeof v&&0<Object.keys(v).length:e.util.schemaHasRules(v,e.RULES.all)),P=f.baseId;if(y||g){var E;f.createErrors=!1,f.schema=i,f.schemaPath=n,f.errSchemaPath=l,a+=" var "+d+" = errors; var "+h+" = true; ";var w=e.compositeRule;e.compositeRule=f.compositeRule=!0,a+=" "+e.validate(f)+" ",f.baseId=P,f.createErrors=!0,a+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",e.compositeRule=f.compositeRule=w,y?(a+=" if ("+p+") { ",f.schema=e.schema.then,f.schemaPath=e.schemaPath+".then",f.errSchemaPath=e.errSchemaPath+"/then",a+=" "+e.validate(f)+" ",f.baseId=P,a+=" "+h+" = "+p+"; ",y&&g?a+=" var "+(E="ifClause"+s)+" = 'then'; ":E="'then'",a+=" } ",g&&(a+=" else { ")):a+=" if (!"+p+") { ",g&&(f.schema=e.schema.else,f.schemaPath=e.schemaPath+".else",f.errSchemaPath=e.errSchemaPath+"/else",a+=" "+e.validate(f)+" ",f.baseId=P,a+=" "+h+" = "+p+"; ",y&&g?a+=" var "+(E="ifClause"+s)+" = 'else'; ":E="'else'",a+=" } "),a+=" if (!"+h+") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { failingKeyword: "+E+" } ",!1!==e.opts.messages&&(a+=" , message: 'should match \"' + "+E+" + '\" schema' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(a+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),a+=" } ",c&&(a+=" else { "),a=e.util.cleanUpCode(a)}else c&&(a+=" if (true) { ");return a}},{}],27:[function(e,r,t){"use strict";r.exports={$ref:e("./ref"),allOf:e("./allOf"),anyOf:e("./anyOf"),$comment:e("./comment"),const:e("./const"),contains:e("./contains"),dependencies:e("./dependencies"),enum:e("./enum"),format:e("./format"),if:e("./if"),items:e("./items"),maximum:e("./_limit"),minimum:e("./_limit"),maxItems:e("./_limitItems"),minItems:e("./_limitItems"),maxLength:e("./_limitLength"),minLength:e("./_limitLength"),maxProperties:e("./_limitProperties"),minProperties:e("./_limitProperties"),multipleOf:e("./multipleOf"),not:e("./not"),oneOf:e("./oneOf"),pattern:e("./pattern"),properties:e("./properties"),propertyNames:e("./propertyNames"),required:e("./required"),uniqueItems:e("./uniqueItems"),validate:e("./validate")}},{"./_limit":13,"./_limitItems":14,"./_limitLength":15,"./_limitProperties":16,"./allOf":17,"./anyOf":18,"./comment":19,"./const":20,"./contains":21,"./dependencies":23,"./enum":24,"./format":25,"./if":26,"./items":28,"./multipleOf":29,"./not":30,"./oneOf":31,"./pattern":32,"./properties":33,"./propertyNames":34,"./ref":35,"./required":36,"./uniqueItems":37,"./validate":38}],28:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level,v="i"+s,y=f.dataLevel=e.dataLevel+1,g="data"+y,P=e.baseId;if(a+="var "+d+" = errors;var "+h+";",Array.isArray(i)){var E=e.schema.additionalItems;if(!1===E){a+=" "+h+" = "+u+".length <= "+i.length+"; ";var w=l;l=e.errSchemaPath+"/additionalItems";var b=b||[];b.push(a+=" if (!"+h+") { "),a="",!1!==e.createErrors?(a+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+i.length+" } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have more than "+i.length+" items' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var S=a;a=b.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",l=w,c&&(p+="}",a+=" else { ")}var _=i;if(_)for(var F,x=-1,R=_.length-1;x<R;)if(F=_[x+=1],e.opts.strictKeywords?"object"==typeof F&&0<Object.keys(F).length:e.util.schemaHasRules(F,e.RULES.all)){a+=" "+m+" = true; if ("+u+".length > "+x+") { ";var $=u+"["+x+"]";f.schema=F,f.schemaPath=n+"["+x+"]",f.errSchemaPath=l+"/"+x,f.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0),f.dataPathArr[y]=x;var D=e.validate(f);f.baseId=P,e.util.varOccurences(D,g)<2?a+=" "+e.util.varReplace(D,g,$)+" ":a+=" var "+g+" = "+$+"; "+D+" ",a+=" } ",c&&(a+=" if ("+m+") { ",p+="}")}if("object"==typeof E&&(e.opts.strictKeywords?"object"==typeof E&&0<Object.keys(E).length:e.util.schemaHasRules(E,e.RULES.all))){f.schema=E,f.schemaPath=e.schemaPath+".additionalItems",f.errSchemaPath=e.errSchemaPath+"/additionalItems",a+=" "+m+" = true; if ("+u+".length > "+i.length+") { for (var "+v+" = "+i.length+"; "+v+" < "+u+".length; "+v+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);$=u+"["+v+"]";f.dataPathArr[y]=v;D=e.validate(f);f.baseId=P,e.util.varOccurences(D,g)<2?a+=" "+e.util.varReplace(D,g,$)+" ":a+=" var "+g+" = "+$+"; "+D+" ",c&&(a+=" if (!"+m+") break; "),a+=" } } ",c&&(a+=" if ("+m+") { ",p+="}")}}else if(e.opts.strictKeywords?"object"==typeof i&&0<Object.keys(i).length:e.util.schemaHasRules(i,e.RULES.all)){f.schema=i,f.schemaPath=n,f.errSchemaPath=l,a+=" for (var "+v+" = 0; "+v+" < "+u+".length; "+v+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);$=u+"["+v+"]";f.dataPathArr[y]=v;D=e.validate(f);f.baseId=P,e.util.varOccurences(D,g)<2?a+=" "+e.util.varReplace(D,g,$)+" ":a+=" var "+g+" = "+$+"; "+D+" ",c&&(a+=" if (!"+m+") break; "),a+=" }"}return c&&(a+=" "+p+" if ("+d+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],29:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;a=d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ","schema"+o):n,s+="var division"+o+";if (",d&&(s+=" "+a+" !== undefined && ( typeof "+a+" != 'number' || "),s+=" (division"+o+" = "+h+" / "+a+", ",s+=e.opts.multipleOfPrecision?" Math.abs(Math.round(division"+o+") - division"+o+") > 1e-"+e.opts.multipleOfPrecision+" ":" division"+o+" !== parseInt(division"+o+") ",s+=" ) ",d&&(s+=" ) ");var f=f||[];f.push(s+=" ) { "),s="",!1!==e.createErrors?(s+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { multipleOf: "+a+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be multiple of ",s+=d?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var p=s;return s=f.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],30:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="errs__"+s,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(e.opts.strictKeywords?"object"==typeof i&&0<Object.keys(i).length:e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l,a+=" var "+h+" = errors; ";var p,m=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.createErrors=!1,d.opts.allErrors&&(p=d.opts.allErrors,d.opts.allErrors=!1),a+=" "+e.validate(d)+" ",d.createErrors=!0,p&&(d.opts.allErrors=p),e.compositeRule=d.compositeRule=m;var v=v||[];v.push(a+=" if ("+f+") { "),a="",!1!==e.createErrors?(a+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var y=a;a=v.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } ")}else a+=" var err = ",!1!==e.createErrors?(a+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be valid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(a+=" if (false) { ");return a}},{}],31:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d="errs__"+s,f=e.util.copy(e),p="";f.level++;var m="valid"+f.level,v=f.baseId,y="prevValid"+s,g="passingSchemas"+s;a+="var "+d+" = errors , "+y+" = false , "+h+" = false , "+g+" = null; ";var P=e.compositeRule;e.compositeRule=f.compositeRule=!0;var E=i;if(E)for(var w,b=-1,S=E.length-1;b<S;)w=E[b+=1],(e.opts.strictKeywords?"object"==typeof w&&0<Object.keys(w).length:e.util.schemaHasRules(w,e.RULES.all))?(f.schema=w,f.schemaPath=n+"["+b+"]",f.errSchemaPath=l+"/"+b,a+=" "+e.validate(f)+" ",f.baseId=v):a+=" var "+m+" = true; ",b&&(a+=" if ("+m+" && "+y+") { "+h+" = false; "+g+" = ["+g+", "+b+"]; } else { ",p+="}"),a+=" if ("+m+") { "+h+" = "+y+" = true; "+g+" = "+b+"; }";return e.compositeRule=f.compositeRule=P,a+=p+"if (!"+h+") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { passingSchemas: "+g+" } ",!1!==e.opts.messages&&(a+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(a+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),a+="} else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; }",e.opts.allErrors&&(a+=" } "),a}},{}],32:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d=e.opts.$data&&n&&n.$data;a=d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ","schema"+o):n;var f=d?"(new RegExp("+a+"))":e.usePattern(n);s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'string') || ");var p=p||[];p.push(s+=" !"+f+".test("+h+") ) { "),s="",!1!==e.createErrors?(s+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { pattern: ",s+=d?""+a:""+e.util.toQuotedString(n),s+=" } ",!1!==e.opts.messages&&(s+=" , message: 'should match pattern \"",s+=d?"' + "+a+" + '":""+e.util.escapeQuotes(n),s+="\"' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+e.util.toQuotedString(n),s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var m=s;return s=p.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+="} ",u&&(s+=" else { "),s}},{}],33:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="errs__"+s,d=e.util.copy(e),f="";d.level++;var p="valid"+d.level,m="key"+s,v="idx"+s,y=d.dataLevel=e.dataLevel+1,g="data"+y,P="dataProperties"+s,E=Object.keys(i||{}),w=e.schema.patternProperties||{},b=Object.keys(w),S=e.schema.additionalProperties,_=E.length||b.length,F=!1===S,x="object"==typeof S&&Object.keys(S).length,R=e.opts.removeAdditional,$=F||x||R,D=e.opts.ownProperties,j=e.baseId,O=e.schema.required;if(O&&(!e.opts.$data||!O.$data)&&O.length<e.opts.loopRequired)var I=e.util.toHash(O);if(a+="var "+h+" = errors;var "+p+" = true;",D&&(a+=" var "+P+" = undefined;"),$){if(a+=D?" "+P+" = "+P+" || Object.keys("+u+"); for (var "+v+"=0; "+v+"<"+P+".length; "+v+"++) { var "+m+" = "+P+"["+v+"]; ":" for (var "+m+" in "+u+") { ",_){if(a+=" var isAdditional"+s+" = !(false ",E.length)if(8<E.length)a+=" || validate.schema"+n+".hasOwnProperty("+m+") ";else{var A=E;if(A)for(var C=-1,k=A.length-1;C<k;)J=A[C+=1],a+=" || "+m+" == "+e.util.toQuotedString(J)+" "}if(b.length){var L=b;if(L)for(var z=-1,T=L.length-1;z<T;)se=L[z+=1],a+=" || "+e.usePattern(se)+".test("+m+") "}a+=" ); if (isAdditional"+s+") { "}if("all"==R)a+=" delete "+u+"["+m+"]; ";else{var q=e.errorPath,N="' + "+m+" + '";if(e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers)),F)if(R)a+=" delete "+u+"["+m+"]; ";else{var Q=l;l=e.errSchemaPath+"/additionalProperties",(re=re||[]).push(a+=" "+p+" = false; "),a="",!1!==e.createErrors?(a+=" { keyword: 'additionalProperties' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { additionalProperty: '"+N+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is an invalid additional property":"should NOT have additional properties",a+="' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var U=a;a=re.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+U+"]); ":" validate.errors = ["+U+"]; return false; ":" var err = "+U+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=Q,c&&(a+=" break; ")}else if(x)if("failing"==R){a+=" var "+h+" = errors; ";var V=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.schema=S,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers);var H=u+"["+m+"]";d.dataPathArr[y]=m;var K=e.validate(d);d.baseId=j,e.util.varOccurences(K,g)<2?a+=" "+e.util.varReplace(K,g,H)+" ":a+=" var "+g+" = "+H+"; "+K+" ",a+=" if (!"+p+") { errors = "+h+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+u+"["+m+"]; } ",e.compositeRule=d.compositeRule=V}else{d.schema=S,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers);H=u+"["+m+"]";d.dataPathArr[y]=m;K=e.validate(d);d.baseId=j,e.util.varOccurences(K,g)<2?a+=" "+e.util.varReplace(K,g,H)+" ":a+=" var "+g+" = "+H+"; "+K+" ",c&&(a+=" if (!"+p+") break; ")}e.errorPath=q}_&&(a+=" } "),a+=" } ",c&&(a+=" if ("+p+") { ",f+="}")}var M=e.opts.useDefaults&&!e.compositeRule;if(E.length){var B=E;if(B)for(var J,Z=-1,G=B.length-1;Z<G;){var Y=i[J=B[Z+=1]];if(e.opts.strictKeywords?"object"==typeof Y&&0<Object.keys(Y).length:e.util.schemaHasRules(Y,e.RULES.all)){var W=e.util.getProperty(J),X=(H=u+W,M&&void 0!==Y.default);d.schema=Y,d.schemaPath=n+W,d.errSchemaPath=l+"/"+e.util.escapeFragment(J),d.errorPath=e.util.getPath(e.errorPath,J,e.opts.jsonPointers),d.dataPathArr[y]=e.util.toQuotedString(J);K=e.validate(d);if(d.baseId=j,e.util.varOccurences(K,g)<2){K=e.util.varReplace(K,g,H);var ee=H}else{ee=g;a+=" var "+g+" = "+H+"; "}if(X)a+=" "+K+" ";else{if(I&&I[J]){a+=" if ( "+ee+" === undefined ",D&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(J)+"') "),a+=") { "+p+" = false; ";q=e.errorPath,Q=l;var re,te=e.util.escapeQuotes(J);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(q,J,e.opts.jsonPointers)),l=e.errSchemaPath+"/required",(re=re||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+te+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+te+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";U=a;a=re.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+U+"]); ":" validate.errors = ["+U+"]; return false; ":" var err = "+U+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=Q,e.errorPath=q,a+=" } else { "}else c?(a+=" if ( "+ee+" === undefined ",D&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(J)+"') "),a+=") { "+p+" = true; } else { "):(a+=" if ("+ee+" !== undefined ",D&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(J)+"') "),a+=" ) { ");a+=" "+K+" } "}}c&&(a+=" if ("+p+") { ",f+="}")}}if(b.length){var ae=b;if(ae)for(var se,oe=-1,ie=ae.length-1;oe<ie;){Y=w[se=ae[oe+=1]];if(e.opts.strictKeywords?"object"==typeof Y&&0<Object.keys(Y).length:e.util.schemaHasRules(Y,e.RULES.all)){d.schema=Y,d.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(se),d.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(se),a+=D?" "+P+" = "+P+" || Object.keys("+u+"); for (var "+v+"=0; "+v+"<"+P+".length; "+v+"++) { var "+m+" = "+P+"["+v+"]; ":" for (var "+m+" in "+u+") { ",a+=" if ("+e.usePattern(se)+".test("+m+")) { ",d.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers);H=u+"["+m+"]";d.dataPathArr[y]=m;K=e.validate(d);d.baseId=j,e.util.varOccurences(K,g)<2?a+=" "+e.util.varReplace(K,g,H)+" ":a+=" var "+g+" = "+H+"; "+K+" ",c&&(a+=" if (!"+p+") break; "),a+=" } ",c&&(a+=" else "+p+" = true; "),a+=" } ",c&&(a+=" if ("+p+") { ",f+="}")}}}return c&&(a+=" "+f+" if ("+h+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],34:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="errs__"+s,d=e.util.copy(e);d.level++;var f="valid"+d.level;if(a+="var "+h+" = errors;",e.opts.strictKeywords?"object"==typeof i&&0<Object.keys(i).length:e.util.schemaHasRules(i,e.RULES.all)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l;var p="key"+s,m="idx"+s,v="i"+s,y="' + "+p+" + '",g="data"+(d.dataLevel=e.dataLevel+1),P="dataProperties"+s,E=e.opts.ownProperties,w=e.baseId;E&&(a+=" var "+P+" = undefined; "),a+=E?" "+P+" = "+P+" || Object.keys("+u+"); for (var "+m+"=0; "+m+"<"+P+".length; "+m+"++) { var "+p+" = "+P+"["+m+"]; ":" for (var "+p+" in "+u+") { ",a+=" var startErrs"+s+" = errors; ";var b=p,S=e.compositeRule;e.compositeRule=d.compositeRule=!0;var _=e.validate(d);d.baseId=w,e.util.varOccurences(_,g)<2?a+=" "+e.util.varReplace(_,g,b)+" ":a+=" var "+g+" = "+b+"; "+_+" ",e.compositeRule=d.compositeRule=S,a+=" if (!"+f+") { for (var "+v+"=startErrs"+s+"; "+v+"<errors; "+v+"++) { vErrors["+v+"].propertyName = "+p+"; } var err = ",!1!==e.createErrors?(a+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { propertyName: '"+y+"' } ",!1!==e.opts.messages&&(a+=" , message: 'property name \\'"+y+"\\' is invalid' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(a+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),c&&(a+=" break; "),a+=" } }"}return c&&(a+=" if ("+h+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],35:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s,o=" ",i=e.dataLevel,n=e.schema[r],l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(i||""),h="valid"+e.level;if("#"==n||"#/"==n)s=e.isRoot?(a=e.async,"validate"):(a=!0===e.root.schema.$async,"root.refVal[0]");else{var d=e.resolveRef(e.baseId,n,e.isRoot);if(void 0===d){var f=e.MissingRefError.message(e.baseId,n);if("fail"==e.opts.missingRefs){e.logger.error(f),(y=y||[]).push(o),o="",!1!==e.createErrors?(o+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { ref: '"+e.util.escapeQuotes(n)+"' } ",!1!==e.opts.messages&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(n)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(n)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var p=o;o=y.pop(),o+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",c&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,n,f);e.logger.warn(f),c&&(o+=" if (true) { ")}}else if(d.inline){var m=e.util.copy(e);m.level++;var v="valid"+m.level;m.schema=d.schema,m.schemaPath="",m.errSchemaPath=n,o+=" "+e.validate(m).replace(/validate\.schema/g,d.code)+" ",c&&(o+=" if ("+v+") { ")}else a=!0===d.$async||e.async&&!1!==d.$async,s=d.code}if(s){var y;(y=y||[]).push(o),o="",o+=e.opts.passContext?" "+s+".call(this, ":" "+s+"( ",o+=" "+u+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);var g=o+=" , "+(i?"data"+(i-1||""):"parentData")+" , "+(i?e.dataPathArr[i]:"parentDataProperty")+", rootData) ";if(o=y.pop(),a){if(!e.async)throw new Error("async schema referenced by sync schema");c&&(o+=" var "+h+"; "),o+=" try { await "+g+"; ",c&&(o+=" "+h+" = true; "),o+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",c&&(o+=" "+h+" = false; "),o+=" } ",c&&(o+=" if ("+h+") { ")}else o+=" if (!"+g+") { if (vErrors === null) vErrors = "+s+".errors; else vErrors = vErrors.concat("+s+".errors); errors = vErrors.length; } ",c&&(o+=" else { ")}return o}},{}],36:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d=e.opts.$data&&i&&i.$data;d&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ");var f="schema"+s;if(!d)if(i.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var p=[],m=i;if(m)for(var v,y=-1,g=m.length-1;y<g;){v=m[y+=1];var P=e.schema.properties[v];P&&(e.opts.strictKeywords?"object"==typeof P&&0<Object.keys(P).length:e.util.schemaHasRules(P,e.RULES.all))||(p[p.length]=v)}}else p=i;if(d||p.length){var E=e.errorPath,w=d||e.opts.loopRequired<=p.length,b=e.opts.ownProperties;if(c)if(a+=" var missing"+s+"; ",w){d||(a+=" var "+f+" = validate.schema"+n+"; ");var S="' + "+(D="schema"+s+"["+(x="i"+s)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,D,e.opts.jsonPointers)),a+=" var "+h+" = true; ",d&&(a+=" if (schema"+s+" === undefined) "+h+" = true; else if (!Array.isArray(schema"+s+")) "+h+" = false; else {"),a+=" for (var "+x+" = 0; "+x+" < "+f+".length; "+x+"++) { "+h+" = "+u+"["+f+"["+x+"]] !== undefined ",b&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", "+f+"["+x+"]) "),a+="; if (!"+h+") break; } ",d&&(a+=" } "),($=$||[]).push(a+=" if (!"+h+") { "),a="",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+S+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var _=a;a=$.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+_+"]); ":" validate.errors = ["+_+"]; return false; ":" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { "}else{a+=" if ( ";var F=p;if(F)for(var x=-1,R=F.length-1;x<R;){O=F[x+=1],x&&(a+=" || "),a+=" ( ( "+(k=u+(C=e.util.getProperty(O)))+" === undefined ",b&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(O)+"') "),a+=") && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?O:C)+") ) "}a+=") { ";var $;S="' + "+(D="missing"+s)+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(E,D,!0):E+" + "+D),($=$||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+S+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";_=a;a=$.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+_+"]); ":" validate.errors = ["+_+"]; return false; ":" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { "}else if(w){d||(a+=" var "+f+" = validate.schema"+n+"; ");var D;S="' + "+(D="schema"+s+"["+(x="i"+s)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,D,e.opts.jsonPointers)),d&&(a+=" if ("+f+" && !Array.isArray("+f+")) { var err = ",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+S+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if ("+f+" !== undefined) { "),a+=" for (var "+x+" = 0; "+x+" < "+f+".length; "+x+"++) { if ("+u+"["+f+"["+x+"]] === undefined ",b&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", "+f+"["+x+"]) "),a+=") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+S+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",d&&(a+=" } ")}else{var j=p;if(j)for(var O,I=-1,A=j.length-1;I<A;){O=j[I+=1];var C=e.util.getProperty(O),k=(S=e.util.escapeQuotes(O),u+C);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(E,O,e.opts.jsonPointers)),a+=" if ( "+k+" === undefined ",b&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(O)+"') "),a+=") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+S+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+S+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=E}else c&&(a+=" if (true) {");return a}},{}],37:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d="valid"+o,f=e.opts.$data&&n&&n.$data;if(a=f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ","schema"+o):n,(n||f)&&!1!==e.opts.uniqueItems){f&&(s+=" var "+d+"; if ("+a+" === false || "+a+" === undefined) "+d+" = true; else if (typeof "+a+" != 'boolean') "+d+" = false; else { "),s+=" var i = "+h+".length , "+d+" = true , j; if (i > 1) { ";var p=e.schema.items&&e.schema.items.type,m=Array.isArray(p);if(!p||"object"==p||"array"==p||m&&(0<=p.indexOf("object")||0<=p.indexOf("array")))s+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+h+"[i], "+h+"[j])) { "+d+" = false; break outer; } } } ";else s+=" var itemIndices = {}, item; for (;i--;) { var item = "+h+"[i]; ",s+=" if ("+e.util["checkDataType"+(m?"s":"")](p,"item",!0)+") continue; ",m&&(s+=" if (typeof item == 'string') item = '\"' + item; "),s+=" if (typeof itemIndices[item] == 'number') { "+d+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ";s+=" } ",f&&(s+=" } ");var v=v||[];v.push(s+=" if (!"+d+") { "),s="",!1!==e.createErrors?(s+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(s+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var y=s;s=v.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } ",u&&(s+=" else { ")}else u&&(s+=" if (true) { ");return s}},{}],38:[function(e,r,t){"use strict";r.exports=function(a,e,r){var t="",s=!0===a.schema.$async,o=a.util.schemaHasRulesExcept(a.schema,a.RULES.all,"$ref"),i=a.self._getId(a.schema);if(a.opts.strictKeywords){var n=a.util.schemaUnknownRules(a.schema,a.RULES.keywords);if(n){var l="unknown keyword: "+n;if("log"!==a.opts.strictKeywords)throw new Error(l);a.logger.warn(l)}}if(a.isTop&&(t+=" var validate = ",s&&(a.async=!0,t+="async "),t+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",i&&(a.opts.sourceCode||a.opts.processCode)&&(t+=" /*# sourceURL="+i+" */ ")),"boolean"==typeof a.schema||!o&&!a.schema.$ref){var c=a.level,u=a.dataLevel,h=a.schema[e="false schema"],d=a.schemaPath+a.util.getProperty(e),f=a.errSchemaPath+"/"+e,p=!a.opts.allErrors,m="data"+(u||""),v="valid"+c;if(!1===a.schema){a.isTop?p=!0:t+=" var "+v+" = false; ",(G=G||[]).push(t),t="",!1!==a.createErrors?(t+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(f)+" , params: {} ",!1!==a.opts.messages&&(t+=" , message: 'boolean schema is false' "),a.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+a.schemaPath+" , data: "+m+" "),t+=" } "):t+=" {} ";var y=t;t=G.pop(),t+=!a.compositeRule&&p?a.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else t+=a.isTop?s?" return data; ":" validate.errors = null; return true; ":" var "+v+" = true; ";return a.isTop&&(t+=" }; return validate; "),t}if(a.isTop){var g=a.isTop;c=a.level=0,u=a.dataLevel=0,m="data";if(a.rootId=a.resolve.fullPath(a.self._getId(a.root.schema)),a.baseId=a.baseId||a.rootId,delete a.isTop,a.dataPathArr=[void 0],void 0!==a.schema.default&&a.opts.useDefaults&&a.opts.strictDefaults){var P="default is ignored in the schema root";if("log"!==a.opts.strictDefaults)throw new Error(P);a.logger.warn(P)}t+=" var vErrors = null; ",t+=" var errors = 0; ",t+=" if (rootData === undefined) rootData = data; "}else{c=a.level,m="data"+((u=a.dataLevel)||"");if(i&&(a.baseId=a.resolve.url(a.baseId,i)),s&&!a.async)throw new Error("async schema in sync schema");t+=" var errs_"+c+" = errors;"}v="valid"+c,p=!a.opts.allErrors;var E="",w="",b=a.schema.type,S=Array.isArray(b);if(b&&a.opts.nullable&&!0===a.schema.nullable&&(S?-1==b.indexOf("null")&&(b=b.concat("null")):"null"!=b&&(b=[b,"null"],S=!0)),S&&1==b.length&&(b=b[0],S=!1),a.schema.$ref&&o){if("fail"==a.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+a.errSchemaPath+'" (see option extendRefs)');!0!==a.opts.extendRefs&&(o=!1,a.logger.warn('$ref: keywords ignored in schema at path "'+a.errSchemaPath+'"'))}if(a.schema.$comment&&a.opts.$comment&&(t+=" "+a.RULES.all.$comment.code(a,"$comment")),b){if(a.opts.coerceTypes)var _=a.util.coerceToTypes(a.opts.coerceTypes,b);var F=a.RULES.types[b];if(_||S||!0===F||F&&!Y(F)){d=a.schemaPath+".type",f=a.errSchemaPath+"/type",d=a.schemaPath+".type",f=a.errSchemaPath+"/type";if(t+=" if ("+a.util[S?"checkDataTypes":"checkDataType"](b,m,!0)+") { ",_){var x="dataType"+c,R="coerced"+c;t+=" var "+x+" = typeof "+m+"; ","array"==a.opts.coerceTypes&&(t+=" if ("+x+" == 'object' && Array.isArray("+m+")) "+x+" = 'array'; "),t+=" var "+R+" = undefined; ";var $="",D=_;if(D)for(var j,O=-1,I=D.length-1;O<I;)j=D[O+=1],O&&(t+=" if ("+R+" === undefined) { ",$+="}"),"array"==a.opts.coerceTypes&&"array"!=j&&(t+=" if ("+x+" == 'array' && "+m+".length == 1) { "+R+" = "+m+" = "+m+"[0]; "+x+" = typeof "+m+"; } "),"string"==j?t+=" if ("+x+" == 'number' || "+x+" == 'boolean') "+R+" = '' + "+m+"; else if ("+m+" === null) "+R+" = ''; ":"number"==j||"integer"==j?(t+=" if ("+x+" == 'boolean' || "+m+" === null || ("+x+" == 'string' && "+m+" && "+m+" == +"+m+" ","integer"==j&&(t+=" && !("+m+" % 1)"),t+=")) "+R+" = +"+m+"; "):"boolean"==j?t+=" if ("+m+" === 'false' || "+m+" === 0 || "+m+" === null) "+R+" = false; else if ("+m+" === 'true' || "+m+" === 1) "+R+" = true; ":"null"==j?t+=" if ("+m+" === '' || "+m+" === 0 || "+m+" === false) "+R+" = null; ":"array"==a.opts.coerceTypes&&"array"==j&&(t+=" if ("+x+" == 'string' || "+x+" == 'number' || "+x+" == 'boolean' || "+m+" == null) "+R+" = ["+m+"]; ");(G=G||[]).push(t+=" "+$+" if ("+R+" === undefined) { "),t="",!1!==a.createErrors?(t+=" { keyword: 'type' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(f)+" , params: { type: '",t+=S?""+b.join(","):""+b,t+="' } ",!1!==a.opts.messages&&(t+=" , message: 'should be ",t+=S?""+b.join(","):""+b,t+="' "),a.opts.verbose&&(t+=" , schema: validate.schema"+d+" , parentSchema: validate.schema"+a.schemaPath+" , data: "+m+" "),t+=" } "):t+=" {} ";y=t;t=G.pop(),t+=!a.compositeRule&&p?a.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { ";var A=u?"data"+(u-1||""):"parentData";t+=" "+m+" = "+R+"; ",u||(t+="if ("+A+" !== undefined)"),t+=" "+A+"["+(u?a.dataPathArr[u]:"parentDataProperty")+"] = "+R+"; } "}else{(G=G||[]).push(t),t="",!1!==a.createErrors?(t+=" { keyword: 'type' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(f)+" , params: { type: '",t+=S?""+b.join(","):""+b,t+="' } ",!1!==a.opts.messages&&(t+=" , message: 'should be ",t+=S?""+b.join(","):""+b,t+="' "),a.opts.verbose&&(t+=" , schema: validate.schema"+d+" , parentSchema: validate.schema"+a.schemaPath+" , data: "+m+" "),t+=" } "):t+=" {} ";y=t;t=G.pop(),t+=!a.compositeRule&&p?a.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}t+=" } "}}if(a.schema.$ref&&!o)t+=" "+a.RULES.all.$ref.code(a,"$ref")+" ",p&&(t+=" } if (errors === ",t+=g?"0":"errs_"+c,t+=") { ",w+="}");else{var C=a.RULES;if(C)for(var k=-1,L=C.length-1;k<L;)if(Y(F=C[k+=1])){if(F.type&&(t+=" if ("+a.util.checkDataType(F.type,m)+") { "),a.opts.useDefaults)if("object"==F.type&&a.schema.properties){h=a.schema.properties;var z=Object.keys(h);if(z)for(var T,q=-1,N=z.length-1;q<N;){if(void 0!==(V=h[T=z[q+=1]]).default){var Q=m+a.util.getProperty(T);if(a.compositeRule){if(a.opts.strictDefaults){P="default is ignored for: "+Q;if("log"!==a.opts.strictDefaults)throw new Error(P);a.logger.warn(P)}}else t+=" if ("+Q+" === undefined ","empty"==a.opts.useDefaults&&(t+=" || "+Q+" === null || "+Q+" === '' "),t+=" ) "+Q+" = ",t+="shared"==a.opts.useDefaults?" "+a.useDefault(V.default)+" ":" "+JSON.stringify(V.default)+" ",t+="; "}}}else if("array"==F.type&&Array.isArray(a.schema.items)){var U=a.schema.items;if(U){O=-1;for(var V,H=U.length-1;O<H;)if(void 0!==(V=U[O+=1]).default){Q=m+"["+O+"]";if(a.compositeRule){if(a.opts.strictDefaults){P="default is ignored for: "+Q;if("log"!==a.opts.strictDefaults)throw new Error(P);a.logger.warn(P)}}else t+=" if ("+Q+" === undefined ","empty"==a.opts.useDefaults&&(t+=" || "+Q+" === null || "+Q+" === '' "),t+=" ) "+Q+" = ",t+="shared"==a.opts.useDefaults?" "+a.useDefault(V.default)+" ":" "+JSON.stringify(V.default)+" ",t+="; "}}}var K=F.rules;if(K)for(var M,B=-1,J=K.length-1;B<J;)if(W(M=K[B+=1])){var Z=M.code(a,M.keyword,F.type);Z&&(t+=" "+Z+" ",p&&(E+="}"))}if(p&&(t+=" "+E+" ",E=""),F.type&&(t+=" } ",b&&b===F.type&&!_)){var G;d=a.schemaPath+".type",f=a.errSchemaPath+"/type";(G=G||[]).push(t+=" else { "),t="",!1!==a.createErrors?(t+=" { keyword: 'type' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(f)+" , params: { type: '",t+=S?""+b.join(","):""+b,t+="' } ",!1!==a.opts.messages&&(t+=" , message: 'should be ",t+=S?""+b.join(","):""+b,t+="' "),a.opts.verbose&&(t+=" , schema: validate.schema"+d+" , parentSchema: validate.schema"+a.schemaPath+" , data: "+m+" "),t+=" } "):t+=" {} ";y=t;t=G.pop(),t+=!a.compositeRule&&p?a.async?" throw new ValidationError(["+y+"]); ":" validate.errors = ["+y+"]; return false; ":" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } "}p&&(t+=" if (errors === ",t+=g?"0":"errs_"+c,t+=") { ",w+="}")}}function Y(e){for(var r=e.rules,t=0;t<r.length;t++)if(W(r[t]))return!0}function W(e){return void 0!==a.schema[e.keyword]||e.implements&&function(e){for(var r=e.implements,t=0;t<r.length;t++)if(void 0!==a.schema[r[t]])return!0}(e)}return p&&(t+=" "+w+" "),g?(s?(t+=" if (errors === 0) return data; ",t+=" else throw new ValidationError(vErrors); "):(t+=" validate.errors = vErrors; ",t+=" return errors === 0; "),t+=" }; return validate;"):t+=" var "+v+" = errors === errs_"+c+";",t=a.util.cleanUpCode(t),g&&(t=a.util.finalCleanUpCode(t,s)),t}},{}],39:[function(e,r,t){"use strict";var i=/^[a-z_$][a-z0-9_$-]*$/i,l=e("./dotjs/custom"),s=e("./definition_schema");r.exports={add:function(e,r){var n=this.RULES;if(n.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!i.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(r){this.validateKeyword(r,!0);var t=r.type;if(Array.isArray(t))for(var a=0;a<t.length;a++)o(e,t[a],r);else o(e,t,r);var s=r.metaSchema;s&&(r.$data&&this._opts.$data&&(s={anyOf:[s,{$ref:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#"}]}),r.validateSchema=this.compile(s,!0))}function o(e,r,t){for(var a,s=0;s<n.length;s++){var o=n[s];if(o.type==r){a=o;break}}a||n.push(a={type:r,rules:[]});var i={keyword:e,definition:t,custom:!0,code:l,implements:t.implements};a.rules.push(i),n.custom[e]=i}return n.keywords[e]=n.all[e]=!0,this},get:function(e){var r=this.RULES.custom[e];return r?r.definition:this.RULES.keywords[e]||!1},remove:function(e){var r=this.RULES;delete r.keywords[e],delete r.all[e],delete r.custom[e];for(var t=0;t<r.length;t++)for(var a=r[t].rules,s=0;s<a.length;s++)if(a[s].keyword==e){a.splice(s,1);break}return this},validate:function e(r,t){e.errors=null;var a=this._validateKeyword=this._validateKeyword||this.compile(s,!0);if(a(r))return!0;e.errors=a.errors;{if(t)throw new Error("custom keyword definition is invalid: "+this.errorsText(a.errors));return!1}}}},{"./definition_schema":12,"./dotjs/custom":22}],40:[function(e,r,t){r.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}},{}],41:[function(e,r,t){r.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}},{}],42:[function(e,r,t){"use strict";var f=Array.isArray,p=Object.keys,m=Object.prototype.hasOwnProperty;r.exports=function e(r,t){if(r===t)return!0;if(r&&t&&"object"==typeof r&&"object"==typeof t){var a,s,o,i=f(r),n=f(t);if(i&&n){if((s=r.length)!=t.length)return!1;for(a=s;0!=a--;)if(!e(r[a],t[a]))return!1;return!0}if(i!=n)return!1;var l=r instanceof Date,c=t instanceof Date;if(l!=c)return!1;if(l&&c)return r.getTime()==t.getTime();var u=r instanceof RegExp,h=t instanceof RegExp;if(u!=h)return!1;if(u&&h)return r.toString()==t.toString();var d=p(r);if((s=d.length)!==p(t).length)return!1;for(a=s;0!=a--;)if(!m.call(t,d[a]))return!1;for(a=s;0!=a--;)if(!e(r[o=d[a]],t[o]))return!1;return!0}return r!=r&&t!=t}},{}],43:[function(e,r,t){"use strict";r.exports=function(e,r){r||(r={}),"function"==typeof r&&(r={cmp:r});var a,l="boolean"==typeof r.cycles&&r.cycles,c=r.cmp&&(a=r.cmp,function(t){return function(e,r){return a({key:e,value:t[e]},{key:r,value:t[r]})}}),u=[];return function e(r){if(r&&r.toJSON&&"function"==typeof r.toJSON&&(r=r.toJSON()),void 0!==r){if("number"==typeof r)return isFinite(r)?""+r:"null";if("object"!=typeof r)return JSON.stringify(r);var t,a;if(Array.isArray(r)){for(a="[",t=0;t<r.length;t++)t&&(a+=","),a+=e(r[t])||"null";return a+"]"}if(null===r)return"null";if(-1!==u.indexOf(r)){if(l)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var s=u.push(r)-1,o=Object.keys(r).sort(c&&c(r));for(a="",t=0;t<o.length;t++){var i=o[t],n=e(r[i]);n&&(a&&(a+=","),a+=JSON.stringify(i)+":"+n)}return u.splice(s,1),"{"+a+"}"}}(e)}},{}],44:[function(e,r,t){"use strict";var m=r.exports=function(e,r,t){"function"==typeof r&&(t=r,r={}),function e(r,t,a,s,o,i,n,l,c,u){if(s&&"object"==typeof s&&!Array.isArray(s)){for(var h in t(s,o,i,n,l,c,u),s){var d=s[h];if(Array.isArray(d)){if(h in m.arrayKeywords)for(var f=0;f<d.length;f++)e(r,t,a,d[f],o+"/"+h+"/"+f,i,o,h,s,f)}else if(h in m.propsKeywords){if(d&&"object"==typeof d)for(var p in d)e(r,t,a,d[p],o+"/"+h+"/"+p.replace(/~/g,"~0").replace(/\//g,"~1"),i,o,h,s,p)}else(h in m.keywords||r.allKeys&&!(h in m.skipKeywords))&&e(r,t,a,d,o+"/"+h,i,o,h,s)}a(s,o,i,n,l,c,u)}}(r,"function"==typeof(t=r.cb||t)?t:t.pre||function(){},t.post||function(){},e,"",e)};m.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},m.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},m.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},m.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0}},{}],45:[function(e,r,t){var a;a=this,function(e){"use strict";function C(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];if(1<r.length){r[0]=r[0].slice(0,-1);for(var a=r.length-1,s=1;s<a;++s)r[s]=r[s].slice(1,-1);return r[a]=r[a].slice(1),r.join("")}return r[0]}function k(e){return"(?:"+e+")"}function a(e){return void 0===e?"undefined":null===e?"null":Object.prototype.toString.call(e).split(" ").pop().split("]").shift().toLowerCase()}function p(e){return e.toUpperCase()}function r(e){var r="[A-Za-z]",t="[0-9]",a=C(t,"[A-Fa-f]"),s=k(k("%[EFef]"+a+"%"+a+a+"%"+a+a)+"|"+k("%[89A-Fa-f]"+a+"%"+a+a)+"|"+k("%"+a+a)),o="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",i=C("[\\:\\/\\?\\#\\[\\]\\@]",o),n=e?"[\\uE000-\\uF8FF]":"[]",l=C(r,t,"[\\-\\.\\_\\~]",e?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]"),c=k(r+C(r,t,"[\\+\\-\\.]")+"*"),u=k(k(s+"|"+C(l,o,"[\\:]"))+"*"),h=(k(k("25[0-5]")+"|"+k("2[0-4]"+t)+"|"+k("1"+t+t)+"|"+k("[1-9]"+t)+"|"+t),k(k("25[0-5]")+"|"+k("2[0-4]"+t)+"|"+k("1"+t+t)+"|"+k("0?[1-9]"+t)+"|0?0?"+t)),d=k(h+"\\."+h+"\\."+h+"\\."+h),f=k(a+"{1,4}"),p=k(k(f+"\\:"+f)+"|"+d),m=k([k(k(f+"\\:")+"{6}"+p),k("\\:\\:"+k(f+"\\:")+"{5}"+p),k(k(f)+"?\\:\\:"+k(f+"\\:")+"{4}"+p),k(k(k(f+"\\:")+"{0,1}"+f)+"?\\:\\:"+k(f+"\\:")+"{3}"+p),k(k(k(f+"\\:")+"{0,2}"+f)+"?\\:\\:"+k(f+"\\:")+"{2}"+p),k(k(k(f+"\\:")+"{0,3}"+f)+"?\\:\\:"+f+"\\:"+p),k(k(k(f+"\\:")+"{0,4}"+f)+"?\\:\\:"+p),k(k(k(f+"\\:")+"{0,5}"+f)+"?\\:\\:"+f),k(k(k(f+"\\:")+"{0,6}"+f)+"?\\:\\:")].join("|")),v=k(k(l+"|"+s)+"+"),y=(k(m+"\\%25"+v),k("\\["+k(k(m+k("\\%25|\\%(?!"+a+"{2})")+v)+"|"+m+"|"+k("[vV]"+a+"+\\."+C(l,o,"[\\:]")+"+"))+"\\]")),g=k(k(s+"|"+C(l,o))+"*"),P=k(y+"|"+d+"(?!"+g+")|"+g),E=k(t+"*"),w=k(k(u+"@")+"?"+P+k("\\:"+E)+"?"),b=k(s+"|"+C(l,o,"[\\:\\@]")),S=k(b+"*"),_=k(b+"+"),F=k(k(s+"|"+C(l,o,"[\\@]"))+"+"),x=k(k("\\/"+S)+"*"),R=k("\\/"+k(_+x)+"?"),$=k(F+x),D=k(_+x),j="(?!"+b+")",O=(k(x+"|"+R+"|"+$+"|"+D+"|"+j),k(k(b+"|"+C("[\\/\\?]",n))+"*")),I=k(k(b+"|[\\/\\?]")+"*"),A=k(k("\\/\\/"+w+x)+"|"+R+"|"+D+"|"+j);k(k(c+"\\:"+A+k("\\?"+O)+"?"+k("\\#"+I)+"?")+"|"+k(k(k("\\/\\/"+w+x)+"|"+R+"|"+$+"|"+j)+k("\\?"+O)+"?"+k("\\#"+I)+"?")),k(c+"\\:"+A+k("\\?"+O)+"?"),k(k("\\/\\/("+k("("+u+")@")+"?("+P+")"+k("\\:("+E+")")+"?)")+"?("+x+"|"+R+"|"+D+"|"+j+")"),k("\\?("+O+")"),k("\\#("+I+")"),k(k("\\/\\/("+k("("+u+")@")+"?("+P+")"+k("\\:("+E+")")+"?)")+"?("+x+"|"+R+"|"+$+"|"+j+")"),k("\\?("+O+")"),k("\\#("+I+")"),k(k("\\/\\/("+k("("+u+")@")+"?("+P+")"+k("\\:("+E+")")+"?)")+"?("+x+"|"+R+"|"+D+"|"+j+")"),k("\\?("+O+")"),k("\\#("+I+")"),k("("+u+")@"),k("\\:("+E+")");return{NOT_SCHEME:new RegExp(C("[^]",r,t,"[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(C("[^\\%\\:]",l,o),"g"),NOT_HOST:new RegExp(C("[^\\%\\[\\]\\:]",l,o),"g"),NOT_PATH:new RegExp(C("[^\\%\\/\\:\\@]",l,o),"g"),NOT_PATH_NOSCHEME:new RegExp(C("[^\\%\\/\\@]",l,o),"g"),NOT_QUERY:new RegExp(C("[^\\%]",l,o,"[\\:\\@\\/\\?]",n),"g"),NOT_FRAGMENT:new RegExp(C("[^\\%]",l,o,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(C("[^]",l,o),"g"),UNRESERVED:new RegExp(l,"g"),OTHER_CHARS:new RegExp(C("[^\\%]",l,i),"g"),PCT_ENCODED:new RegExp(s,"g"),IPV4ADDRESS:new RegExp("^("+d+")$"),IPV6ADDRESS:new RegExp("^\\[?("+m+")"+k(k("\\%25|\\%(?!"+a+"{2})")+"("+v+")")+"?\\]?$")}}var u=r(!1),h=r(!0),w=function(e,r){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,r){var t=[],a=!0,s=!1,o=void 0;try{for(var i,n=e[Symbol.iterator]();!(a=(i=n.next()).done)&&(t.push(i.value),!r||t.length!==r);a=!0);}catch(e){s=!0,o=e}finally{try{!a&&n.return&&n.return()}finally{if(s)throw o}}return t}(e,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")},A=2147483647,t=/^xn--/,s=/[^\0-\x7E]/,o=/[\x2E\u3002\uFF0E\uFF61]/g,i={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},L=Math.floor,z=String.fromCharCode;function T(e){throw new RangeError(i[e])}function n(e,r){var t=e.split("@"),a="";return 1<t.length&&(a=t[0]+"@",e=t[1]),a+function(e,r){for(var t=[],a=e.length;a--;)t[a]=r(e[a]);return t}((e=e.replace(o,".")).split("."),r).join(".")}function q(e){for(var r=[],t=0,a=e.length;t<a;){var s=e.charCodeAt(t++);if(55296<=s&&s<=56319&&t<a){var o=e.charCodeAt(t++);56320==(64512&o)?r.push(((1023&s)<<10)+(1023&o)+65536):(r.push(s),t--)}else r.push(s)}return r}var N=function(e,r){return e+22+75*(e<26)-((0!=r)<<5)},Q=function(e,r,t){var a=0;for(e=t?L(e/700):e>>1,e+=L(e/r);455<e;a+=36)e=L(e/35);return L(a+36*e/(e+38))},l=function(e){var r,t=[],a=e.length,s=0,o=128,i=72,n=e.lastIndexOf("-");n<0&&(n=0);for(var l=0;l<n;++l)128<=e.charCodeAt(l)&&T("not-basic"),t.push(e.charCodeAt(l));for(var c=0<n?n+1:0;c<a;){for(var u=s,h=1,d=36;;d+=36){a<=c&&T("invalid-input");var f=(r=e.charCodeAt(c++))-48<10?r-22:r-65<26?r-65:r-97<26?r-97:36;(36<=f||f>L((A-s)/h))&&T("overflow"),s+=f*h;var p=d<=i?1:i+26<=d?26:d-i;if(f<p)break;var m=36-p;h>L(A/m)&&T("overflow"),h*=m}var v=t.length+1;i=Q(s-u,v,0==u),L(s/v)>A-o&&T("overflow"),o+=L(s/v),s%=v,t.splice(s++,0,o)}return String.fromCodePoint.apply(String,t)},c=function(e){var r=[],t=(e=q(e)).length,a=128,s=0,o=72,i=!0,n=!1,l=void 0;try{for(var c,u=e[Symbol.iterator]();!(i=(c=u.next()).done);i=!0){var h=c.value;h<128&&r.push(z(h))}}catch(e){n=!0,l=e}finally{try{!i&&u.return&&u.return()}finally{if(n)throw l}}var d=r.length,f=d;for(d&&r.push("-");f<t;){var p=A,m=!0,v=!1,y=void 0;try{for(var g,P=e[Symbol.iterator]();!(m=(g=P.next()).done);m=!0){var E=g.value;a<=E&&E<p&&(p=E)}}catch(e){v=!0,y=e}finally{try{!m&&P.return&&P.return()}finally{if(v)throw y}}var w=f+1;p-a>L((A-s)/w)&&T("overflow"),s+=(p-a)*w,a=p;var b=!0,S=!1,_=void 0;try{for(var F,x=e[Symbol.iterator]();!(b=(F=x.next()).done);b=!0){var R=F.value;if(R<a&&++s>A&&T("overflow"),R==a){for(var $=s,D=36;;D+=36){var j=D<=o?1:o+26<=D?26:D-o;if($<j)break;var O=$-j,I=36-j;r.push(z(N(j+O%I,0))),$=L(O/I)}r.push(z(N($,0))),o=Q(s,w,f==d),s=0,++f}}}catch(e){S=!0,_=e}finally{try{!b&&x.return&&x.return()}finally{if(S)throw _}}++s,++a}return r.join("")},v={version:"2.1.0",ucs2:{decode:q,encode:function(e){return String.fromCodePoint.apply(String,function(e){if(Array.isArray(e)){for(var r=0,t=Array(e.length);r<e.length;r++)t[r]=e[r];return t}return Array.from(e)}(e))}},decode:l,encode:c,toASCII:function(e){return n(e,function(e){return s.test(e)?"xn--"+c(e):e})},toUnicode:function(e){return n(e,function(e){return t.test(e)?l(e.slice(4).toLowerCase()):e})}},d={};function m(e){var r=e.charCodeAt(0);return r<16?"%0"+r.toString(16).toUpperCase():r<128?"%"+r.toString(16).toUpperCase():r<2048?"%"+(r>>6|192).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase():"%"+(r>>12|224).toString(16).toUpperCase()+"%"+(r>>6&63|128).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase()}function f(e){for(var r="",t=0,a=e.length;t<a;){var s=parseInt(e.substr(t+1,2),16);if(s<128)r+=String.fromCharCode(s),t+=3;else if(194<=s&&s<224){if(6<=a-t){var o=parseInt(e.substr(t+4,2),16);r+=String.fromCharCode((31&s)<<6|63&o)}else r+=e.substr(t,6);t+=6}else if(224<=s){if(9<=a-t){var i=parseInt(e.substr(t+4,2),16),n=parseInt(e.substr(t+7,2),16);r+=String.fromCharCode((15&s)<<12|(63&i)<<6|63&n)}else r+=e.substr(t,9);t+=9}else r+=e.substr(t,3),t+=3}return r}function y(e,t){function r(e){var r=f(e);return r.match(t.UNRESERVED)?r:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,r).replace(t.NOT_USERINFO,m).replace(t.PCT_ENCODED,p)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_HOST,m).replace(t.PCT_ENCODED,p)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,r).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,m).replace(t.PCT_ENCODED,p)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,r).replace(t.NOT_QUERY,m).replace(t.PCT_ENCODED,p)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,r).replace(t.NOT_FRAGMENT,m).replace(t.PCT_ENCODED,p)),e}function b(e){return e.replace(/^0*(.*)/,"$1")||"0"}function S(e,r){var t=e.match(r.IPV4ADDRESS)||[],a=w(t,2)[1];return a?a.split(".").map(b).join("."):e}function g(e,r){var t=e.match(r.IPV6ADDRESS)||[],a=w(t,3),s=a[1],o=a[2];if(s){for(var i=s.toLowerCase().split("::").reverse(),n=w(i,2),l=n[0],c=n[1],u=c?c.split(":").map(b):[],h=l.split(":").map(b),d=r.IPV4ADDRESS.test(h[h.length-1]),f=d?7:8,p=h.length-f,m=Array(f),v=0;v<f;++v)m[v]=u[v]||h[p+v]||"";d&&(m[f-1]=S(m[f-1],r));var y=m.reduce(function(e,r,t){if(!r||"0"===r){var a=e[e.length-1];a&&a.index+a.length===t?a.length++:e.push({index:t,length:1})}return e},[]).sort(function(e,r){return r.length-e.length})[0],g=void 0;if(y&&1<y.length){var P=m.slice(0,y.index),E=m.slice(y.index+y.length);g=P.join(":")+"::"+E.join(":")}else g=m.join(":");return o&&(g+="%"+o),g}return e}var P=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,E=void 0==="".match(/(){0}/)[1];function _(e){var r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},t={},a=!1!==r.iri?h:u;"suffix"===r.reference&&(e=(r.scheme?r.scheme+":":"")+"//"+e);var s=e.match(P);if(s){E?(t.scheme=s[1],t.userinfo=s[3],t.host=s[4],t.port=parseInt(s[5],10),t.path=s[6]||"",t.query=s[7],t.fragment=s[8],isNaN(t.port)&&(t.port=s[5])):(t.scheme=s[1]||void 0,t.userinfo=-1!==e.indexOf("@")?s[3]:void 0,t.host=-1!==e.indexOf("//")?s[4]:void 0,t.port=parseInt(s[5],10),t.path=s[6]||"",t.query=-1!==e.indexOf("?")?s[7]:void 0,t.fragment=-1!==e.indexOf("#")?s[8]:void 0,isNaN(t.port)&&(t.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?s[4]:void 0)),t.host&&(t.host=g(S(t.host,a),a)),t.reference=void 0!==t.scheme||void 0!==t.userinfo||void 0!==t.host||void 0!==t.port||t.path||void 0!==t.query?void 0===t.scheme?"relative":void 0===t.fragment?"absolute":"uri":"same-document",r.reference&&"suffix"!==r.reference&&r.reference!==t.reference&&(t.error=t.error||"URI is not a "+r.reference+" reference.");var o=d[(r.scheme||t.scheme||"").toLowerCase()];if(r.unicodeSupport||o&&o.unicodeSupport)y(t,a);else{if(t.host&&(r.domainHost||o&&o.domainHost))try{t.host=v.toASCII(t.host.replace(a.PCT_ENCODED,f).toLowerCase())}catch(e){t.error=t.error||"Host's domain name can not be converted to ASCII via punycode: "+e}y(t,u)}o&&o.parse&&o.parse(t,r)}else t.error=t.error||"URI can not be parsed.";return t}var F=/^\.\.?\//,x=/^\/\.(\/|$)/,R=/^\/\.\.(\/|$)/,$=/^\/?(?:.|\n)*?(?=\/|$)/;function D(e){for(var r=[];e.length;)if(e.match(F))e=e.replace(F,"");else if(e.match(x))e=e.replace(x,"/");else if(e.match(R))e=e.replace(R,"/"),r.pop();else if("."===e||".."===e)e="";else{var t=e.match($);if(!t)throw new Error("Unexpected dot segment condition");var a=t[0];e=e.slice(a.length),r.push(a)}return r.join("")}function j(r){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},e=t.iri?h:u,a=[],s=d[(t.scheme||r.scheme||"").toLowerCase()];if(s&&s.serialize&&s.serialize(r,t),r.host)if(e.IPV6ADDRESS.test(r.host));else if(t.domainHost||s&&s.domainHost)try{r.host=t.iri?v.toUnicode(r.host):v.toASCII(r.host.replace(e.PCT_ENCODED,f).toLowerCase())}catch(e){r.error=r.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+e}y(r,e),"suffix"!==t.reference&&r.scheme&&(a.push(r.scheme),a.push(":"));var o,i,n,l=(i=!1!==t.iri?h:u,n=[],void 0!==(o=r).userinfo&&(n.push(o.userinfo),n.push("@")),void 0!==o.host&&n.push(g(S(String(o.host),i),i).replace(i.IPV6ADDRESS,function(e,r,t){return"["+r+(t?"%25"+t:"")+"]"})),"number"==typeof o.port&&(n.push(":"),n.push(o.port.toString(10))),n.length?n.join(""):void 0);if(void 0!==l&&("suffix"!==t.reference&&a.push("//"),a.push(l),r.path&&"/"!==r.path.charAt(0)&&a.push("/")),void 0!==r.path){var c=r.path;t.absolutePath||s&&s.absolutePath||(c=D(c)),void 0===l&&(c=c.replace(/^\/\//,"/%2F")),a.push(c)}return void 0!==r.query&&(a.push("?"),a.push(r.query)),void 0!==r.fragment&&(a.push("#"),a.push(r.fragment)),a.join("")}function O(e,r){var t=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},a={};return arguments[3]||(e=_(j(e,t),t),r=_(j(r,t),t)),!(t=t||{}).tolerant&&r.scheme?(a.scheme=r.scheme,a.userinfo=r.userinfo,a.host=r.host,a.port=r.port,a.path=D(r.path||""),a.query=r.query):(void 0!==r.userinfo||void 0!==r.host||void 0!==r.port?(a.userinfo=r.userinfo,a.host=r.host,a.port=r.port,a.path=D(r.path||""),a.query=r.query):(a.query=r.path?(a.path="/"===r.path.charAt(0)?D(r.path):(a.path=void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?e.path.slice(0,e.path.lastIndexOf("/")+1)+r.path:r.path:"/"+r.path,D(a.path)),r.query):(a.path=e.path,void 0!==r.query?r.query:e.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=r.fragment,a}function I(e,r){return e&&e.toString().replace(r&&r.iri?h.PCT_ENCODED:u.PCT_ENCODED,f)}var U={scheme:"http",domainHost:!0,parse:function(e,r){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e,r){return e.port!==("https"!==String(e.scheme).toLowerCase()?80:443)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},V={scheme:"https",domainHost:U.domainHost,parse:U.parse,serialize:U.serialize},H={},K="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",M="[0-9A-Fa-f]",B=k(k("%[EFef]"+M+"%"+M+M+"%"+M+M)+"|"+k("%[89A-Fa-f]"+M+"%"+M+M)+"|"+k("%"+M+M)),J=C("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]'),Z=new RegExp(K,"g"),G=new RegExp(B,"g"),Y=new RegExp(C("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',J),"g"),W=new RegExp(C("[^]",K,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),X=W;function ee(e){var r=f(e);return r.match(Z)?r:e}var re={scheme:"mailto",parse:function(e,r){var t=e,a=t.to=t.path?t.path.split(","):[];if(t.path=void 0,t.query){for(var s=!1,o={},i=t.query.split("&"),n=0,l=i.length;n<l;++n){var c=i[n].split("=");switch(c[0]){case"to":for(var u=c[1].split(","),h=0,d=u.length;h<d;++h)a.push(u[h]);break;case"subject":t.subject=I(c[1],r);break;case"body":t.body=I(c[1],r);break;default:s=!0,o[I(c[0],r)]=I(c[1],r)}}s&&(t.headers=o)}t.query=void 0;for(var f=0,p=a.length;f<p;++f){var m=a[f].split("@");if(m[0]=I(m[0]),r.unicodeSupport)m[1]=I(m[1],r).toLowerCase();else try{m[1]=v.toASCII(I(m[1],r).toLowerCase())}catch(e){t.error=t.error||"Email address's domain name can not be converted to ASCII via punycode: "+e}a[f]=m.join("@")}return t},serialize:function(e,r){var t,a=e,s=null!=(t=e.to)?t instanceof Array?t:"number"!=typeof t.length||t.split||t.setInterval||t.call?[t]:Array.prototype.slice.call(t):[];if(s){for(var o=0,i=s.length;o<i;++o){var n=String(s[o]),l=n.lastIndexOf("@"),c=n.slice(0,l).replace(G,ee).replace(G,p).replace(Y,m),u=n.slice(l+1);try{u=r.iri?v.toUnicode(u):v.toASCII(I(u,r).toLowerCase())}catch(e){a.error=a.error||"Email address's domain name can not be converted to "+(r.iri?"Unicode":"ASCII")+" via punycode: "+e}s[o]=c+"@"+u}a.path=s.join(",")}var h=e.headers=e.headers||{};e.subject&&(h.subject=e.subject),e.body&&(h.body=e.body);var d=[];for(var f in h)h[f]!==H[f]&&d.push(f.replace(G,ee).replace(G,p).replace(W,m)+"="+h[f].replace(G,ee).replace(G,p).replace(X,m));return d.length&&(a.query=d.join("&")),a}},te=/^([^\:]+)\:(.*)/,ae={scheme:"urn",parse:function(e,r){var t=e.path&&e.path.match(te),a=e;if(t){var s=r.scheme||a.scheme||"urn",o=t[1].toLowerCase(),i=t[2],n=d[s+":"+(r.nid||o)];a.nid=o,a.nss=i,a.path=void 0,n&&(a=n.parse(a,r))}else a.error=a.error||"URN can not be parsed.";return a},serialize:function(e,r){var t=e.nid,a=d[(r.scheme||e.scheme||"urn")+":"+(r.nid||t)];a&&(e=a.serialize(e,r));var s=e;return s.path=(t||r.nid)+":"+e.nss,s}},se=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,oe={scheme:"urn:uuid",parse:function(e,r){var t=e;return t.uuid=t.nss,t.nss=void 0,r.tolerant||t.uuid&&t.uuid.match(se)||(t.error=t.error||"UUID is not valid."),t},serialize:function(e,r){var t=e;return t.nss=(e.uuid||"").toLowerCase(),t}};d[U.scheme]=U,d[V.scheme]=V,d[re.scheme]=re,d[ae.scheme]=ae,d[oe.scheme]=oe,e.SCHEMES=d,e.pctEncChar=m,e.pctDecChars=f,e.parse=_,e.removeDotSegments=D,e.serialize=j,e.resolveComponents=O,e.resolve=function(e,r,t){var a=function(e,r){var t=e;if(r)for(var a in r)t[a]=r[a];return t}({scheme:"null"},t);return j(O(_(e,a),_(r,a),a,!0),a)},e.normalize=function(e,r){return"string"==typeof e?e=j(_(e,r),r):"object"===a(e)&&(e=_(j(e,r),r)),e},e.equal=function(e,r,t){return"string"==typeof e?e=j(_(e,t),t):"object"===a(e)&&(e=j(e,t)),"string"==typeof r?r=j(_(r,t),t):"object"===a(r)&&(r=j(r,t)),e===r},e.escapeComponent=function(e,r){return e&&e.toString().replace(r&&r.iri?h.ESCAPE:u.ESCAPE,m)},e.unescapeComponent=I,Object.defineProperty(e,"__esModule",{value:!0})}("object"==typeof t&&void 0!==r?t:a.URI=a.URI||{})},{}],ajv:[function(a,e,r){"use strict";var n=a("./compile"),d=a("./compile/resolve"),t=a("./cache"),f=a("./compile/schema_obj"),s=a("fast-json-stable-stringify"),o=a("./compile/formats"),i=a("./compile/rules"),l=a("./data"),c=a("./compile/util");(e.exports=y).prototype.validate=function(e,r){var t;if("string"==typeof e){if(!(t=this.getSchema(e)))throw new Error('no schema with key or ref "'+e+'"')}else{var a=this._addSchema(e);t=a.validate||this._compile(a)}var s=t(r);!0!==t.$async&&(this.errors=t.errors);return s},y.prototype.compile=function(e,r){var t=this._addSchema(e,void 0,r);return t.validate||this._compile(t)},y.prototype.addSchema=function(e,r,t,a){if(Array.isArray(e)){for(var s=0;s<e.length;s++)this.addSchema(e[s],void 0,t,a);return this}var o=this._getId(e);if(void 0!==o&&"string"!=typeof o)throw new Error("schema id must be string");return S(this,r=d.normalizeId(r||o)),this._schemas[r]=this._addSchema(e,t,a,!0),this},y.prototype.addMetaSchema=function(e,r,t){return this.addSchema(e,r,t,!0),this},y.prototype.validateSchema=function(e,r){var t=e.$schema;if(void 0!==t&&"string"!=typeof t)throw new Error("$schema must be a string");if(!(t=t||this._opts.defaultMeta||(a=this,s=a._opts.meta,a._opts.defaultMeta="object"==typeof s?a._getId(s)||s:a.getSchema(p)?p:void 0,a._opts.defaultMeta)))return this.logger.warn("meta-schema not available"),!(this.errors=null);var a,s;var o=this.validate(t,e);if(!o&&r){var i="schema is invalid: "+this.errorsText();if("log"!=this._opts.validateSchema)throw new Error(i);this.logger.error(i)}return o},y.prototype.getSchema=function(e){var r=g(this,e);switch(typeof r){case"object":return r.validate||this._compile(r);case"string":return this.getSchema(r);case"undefined":return function(e,r){var t=d.schema.call(e,{schema:{}},r);if(t){var a=t.schema,s=t.root,o=t.baseId,i=n.call(e,a,s,void 0,o);return e._fragments[r]=new f({ref:r,fragment:!0,schema:a,root:s,baseId:o,validate:i}),i}}(this,e)}},y.prototype.removeSchema=function(e){if(e instanceof RegExp)return P(this,this._schemas,e),P(this,this._refs,e),this;switch(typeof e){case"undefined":return P(this,this._schemas),P(this,this._refs),this._cache.clear(),this;case"string":var r=g(this,e);return r&&this._cache.del(r.cacheKey),delete this._schemas[e],delete this._refs[e],this;case"object":var t=this._opts.serialize,a=t?t(e):e;this._cache.del(a);var s=this._getId(e);s&&(s=d.normalizeId(s),delete this._schemas[s],delete this._refs[s])}return this},y.prototype.addFormat=function(e,r){"string"==typeof r&&(r=new RegExp(r));return this._formats[e]=r,this},y.prototype.errorsText=function(e,r){if(!(e=e||this.errors))return"No errors";for(var t=void 0===(r=r||{}).separator?", ":r.separator,a=void 0===r.dataVar?"data":r.dataVar,s="",o=0;o<e.length;o++){var i=e[o];i&&(s+=a+i.dataPath+" "+i.message+t)}return s.slice(0,-t.length)},y.prototype._addSchema=function(e,r,t,a){if("object"!=typeof e&&"boolean"!=typeof e)throw new Error("schema should be object or boolean");var s=this._opts.serialize,o=s?s(e):e,i=this._cache.get(o);if(i)return i;a=a||!1!==this._opts.addUsedSchema;var n=d.normalizeId(this._getId(e));n&&a&&S(this,n);var l,c=!1!==this._opts.validateSchema&&!r;c&&!(l=n&&n==d.normalizeId(e.$schema))&&this.validateSchema(e,!0);var u=d.ids.call(this,e),h=new f({id:n,schema:e,localRefs:u,cacheKey:o,meta:t});"#"!=n[0]&&a&&(this._refs[n]=h);this._cache.put(o,h),c&&l&&this.validateSchema(e,!0);return h},y.prototype._compile=function(t,e){if(t.compiling)return(t.validate=s).schema=t.schema,s.errors=null,s.root=e||s,!0===t.schema.$async&&(s.$async=!0),s;var r,a;t.compiling=!0,t.meta&&(r=this._opts,this._opts=this._metaOpts);try{a=n.call(this,t.schema,e,t.localRefs)}catch(e){throw delete t.validate,e}finally{t.compiling=!1,t.meta&&(this._opts=r)}return t.validate=a,t.refs=a.refs,t.refVal=a.refVal,t.root=a.root,a;function s(){var e=t.validate,r=e.apply(this,arguments);return s.errors=e.errors,r}},y.prototype.compileAsync=a("./compile/async");var u=a("./keyword");y.prototype.addKeyword=u.add,y.prototype.getKeyword=u.get,y.prototype.removeKeyword=u.remove,y.prototype.validateKeyword=u.validate;var h=a("./compile/error_classes");y.ValidationError=h.Validation,y.MissingRefError=h.MissingRef,y.$dataMetaSchema=l;var p="http://json-schema.org/draft-07/schema",m=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],v=["/properties"];function y(e){if(!(this instanceof y))return new y(e);e=this._opts=c.copy(e)||{},function(e){var r=e._opts.logger;if(!1===r)e.logger={log:_,warn:_,error:_};else{if(void 0===r&&(r=console),!("object"==typeof r&&r.log&&r.warn&&r.error))throw new Error("logger must implement log, warn and error methods");e.logger=r}}(this),this._schemas={},this._refs={},this._fragments={},this._formats=o(e.format),this._cache=e.cache||new t,this._loadingSchemas={},this._compilations=[],this.RULES=i(),this._getId=function(e){switch(e.schemaId){case"auto":return b;case"id":return E;default:return w}}(e),e.loopRequired=e.loopRequired||1/0,"property"==e.errorDataPath&&(e._errorDataPathProperty=!0),void 0===e.serialize&&(e.serialize=s),this._metaOpts=function(e){for(var r=c.copy(e._opts),t=0;t<m.length;t++)delete r[m[t]];return r}(this),e.formats&&function(e){for(var r in e._opts.formats){var t=e._opts.formats[r];e.addFormat(r,t)}}(this),function(e){var r;e._opts.$data&&(r=a("./refs/data.json"),e.addMetaSchema(r,r.$id,!0));if(!1===e._opts.meta)return;var t=a("./refs/json-schema-draft-07.json");e._opts.$data&&(t=l(t,v));e.addMetaSchema(t,p,!0),e._refs["http://json-schema.org/schema"]=p}(this),"object"==typeof e.meta&&this.addMetaSchema(e.meta),e.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),function(e){var r=e._opts.schemas;if(!r)return;if(Array.isArray(r))e.addSchema(r);else for(var t in r)e.addSchema(r[t],t)}(this)}function g(e,r){return r=d.normalizeId(r),e._schemas[r]||e._refs[r]||e._fragments[r]}function P(e,r,t){for(var a in r){var s=r[a];s.meta||t&&!t.test(a)||(e._cache.del(s.cacheKey),delete r[a])}}function E(e){return e.$id&&this.logger.warn("schema $id ignored",e.$id),e.id}function w(e){return e.id&&this.logger.warn("schema id ignored",e.id),e.$id}function b(e){if(e.$id&&e.id&&e.$id!=e.id)throw new Error("schema $id is different from id");return e.$id||e.id}function S(e,r){if(e._schemas[r]||e._refs[r])throw new Error('schema with key or id "'+r+'" already exists')}function _(){}},{"./cache":1,"./compile":5,"./compile/async":2,"./compile/error_classes":3,"./compile/formats":4,"./compile/resolve":6,"./compile/rules":7,"./compile/schema_obj":8,"./compile/util":10,"./data":11,"./keyword":39,"./refs/data.json":40,"./refs/json-schema-draft-07.json":41,"fast-json-stable-stringify":43}]},{},[])("ajv")}); +/* ajv 6.12.0: Another JSON Schema Validator */ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Ajv=e()}}(function(){return function o(i,n,l){function c(r,e){if(!n[r]){if(!i[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(u)return u(r,!0);var a=new Error("Cannot find module '"+r+"'");throw a.code="MODULE_NOT_FOUND",a}var s=n[r]={exports:{}};i[r][0].call(s.exports,function(e){return c(i[r][1][e]||e)},s,s.exports,o,i,n,l)}return n[r].exports}for(var u="function"==typeof require&&require,e=0;e<l.length;e++)c(l[e]);return c}({1:[function(e,r,t){"use strict";var a=r.exports=function(){this._cache={}};a.prototype.put=function(e,r){this._cache[e]=r},a.prototype.get=function(e){return this._cache[e]},a.prototype.del=function(e){delete this._cache[e]},a.prototype.clear=function(){this._cache={}}},{}],2:[function(e,r,t){"use strict";var s=e("./error_classes").MissingRef;r.exports=function t(r,i,a){var n=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof i&&(a=i,i=void 0);var e=l(r).then(function(){var e=n._addSchema(r,void 0,i);return e.validate||c(e)});a&&e.then(function(e){a(null,e)},a);return e;function l(e){var r=e.$schema;return r&&!n.getSchema(r)?t.call(n,{$ref:r},!0):Promise.resolve()}function c(o){try{return n._compile(o)}catch(e){if(e instanceof s)return r(e);throw e}function r(e){var r=e.missingSchema;if(s(r))throw new Error("Schema "+r+" is loaded but "+e.missingRef+" cannot be resolved");var t=n._loadingSchemas[r];return t||(t=n._loadingSchemas[r]=n._opts.loadSchema(r)).then(a,a),t.then(function(e){if(!s(r))return l(e).then(function(){s(r)||n.addSchema(e,r,void 0,i)})}).then(function(){return c(o)});function a(){delete n._loadingSchemas[r]}function s(e){return n._refs[e]||n._schemas[e]}}}}},{"./error_classes":3}],3:[function(e,r,t){"use strict";var a=e("./resolve");function s(e,r,t){this.message=t||s.message(e,r),this.missingRef=a.url(e,r),this.missingSchema=a.normalizeId(a.fullPath(this.missingRef))}function o(e){return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e}r.exports={Validation:o(function(e){this.message="validation failed",this.errors=e,this.ajv=this.validation=!0}),MissingRef:o(s)},s.message=function(e,r){return"can't resolve reference "+r+" from id "+e}},{"./resolve":6}],4:[function(e,r,t){"use strict";var a=e("./util"),o=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31],n=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i,s=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,l=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,c=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,u=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-?)*(?:[0-9KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[KSa-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i,h=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,d=/^(?:\/(?:[^~/]|~0|~1)*)*$/,f=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,p=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;function m(e){return a.copy(m[e="full"==e?"full":"fast"])}function v(e){var r=e.match(o);if(!r)return!1;var t,a=+r[2],s=+r[3];return 1<=a&&a<=12&&1<=s&&s<=(2!=a||((t=+r[1])%4!=0||t%100==0&&t%400!=0)?i[a]:29)}function y(e,r){var t=e.match(n);if(!t)return!1;var a=t[1],s=t[2],o=t[3];return(a<=23&&s<=59&&o<=59||23==a&&59==s&&60==o)&&(!r||t[5])}(r.exports=m).fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:s,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":f,"relative-json-pointer":p},m.full={date:v,time:y,"date-time":function(e){var r=e.split(g);return 2==r.length&&v(r[0])&&y(r[1],!0)},uri:function(e){return P.test(e)&&l.test(e)},"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":c,url:u,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:s,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:w,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":f,"relative-json-pointer":p};var g=/t|\s/i;var P=/\/|:/;var E=/[^\\]\\Z/;function w(e){if(E.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}},{"./util":10}],5:[function(e,r,t){"use strict";var j=e("./resolve"),O=e("./util"),I=e("./error_classes"),A=e("fast-json-stable-stringify"),C=e("../dotjs/validate"),k=O.ucs2length,L=e("fast-deep-equal"),z=I.Validation;function T(e,r,t){var a=s.call(this,e,r,t);return 0<=a?{index:a,compiling:!0}:{index:a=this._compilations.length,compiling:!(this._compilations[a]={schema:e,root:r,baseId:t})}}function q(e,r,t){var a=s.call(this,e,r,t);0<=a&&this._compilations.splice(a,1)}function s(e,r,t){for(var a=0;a<this._compilations.length;a++){var s=this._compilations[a];if(s.schema==e&&s.root==r&&s.baseId==t)return a}return-1}function N(e,r){return"var pattern"+e+" = new RegExp("+O.toQuotedString(r[e])+");"}function Q(e){return"var default"+e+" = defaults["+e+"];"}function U(e,r){return void 0===r[e]?"":"var refVal"+e+" = refVal["+e+"];"}function V(e){return"var customRule"+e+" = customRules["+e+"];"}function H(e,r){if(!e.length)return"";for(var t="",a=0;a<e.length;a++)t+=r(a,e);return t}r.exports=function c(e,u,h,r){var f=this,p=this._opts,d=[void 0],m={},v=[],t={},y=[],a={},g=[];u=u||{schema:e,refVal:d,refs:m};var s=T.call(this,e,u,r);var o=this._compilations[s.index];if(s.compiling)return o.callValidate=l;var P=this._formats;var E=this.RULES;try{var i=w(e,u,h,r);o.validate=i;var n=o.callValidate;return n&&(n.schema=i.schema,n.errors=null,n.refs=i.refs,n.refVal=i.refVal,n.root=i.root,n.$async=i.$async,p.sourceCode&&(n.source=i.source)),i}finally{q.call(this,e,u,r)}function l(){var e=o.validate,r=e.apply(this,arguments);return l.errors=e.errors,r}function w(e,r,t,a){var s=!r||r&&r.schema==e;if(r.schema!=u.schema)return c.call(f,e,r,t,a);var o,i=!0===e.$async,n=C({isTop:!0,schema:e,isRoot:s,baseId:a,root:r,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:I.MissingRef,RULES:E,validate:C,util:O,resolve:j,resolveRef:b,usePattern:$,useDefault:R,useCustomRule:D,opts:p,formats:P,logger:f.logger,self:f});n=H(d,U)+H(v,N)+H(y,Q)+H(g,V)+n,p.processCode&&(n=p.processCode(n));try{var l=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",n);o=l(f,E,P,u,d,y,g,L,k,z),d[0]=o}catch(e){throw f.logger.error("Error compiling schema, function code:",n),e}return o.schema=e,o.errors=null,o.refs=m,o.refVal=d,o.root=s?o:r,i&&(o.$async=!0),!0===p.sourceCode&&(o.source={code:n,patterns:v,defaults:y}),o}function b(e,r,t){r=j.url(e,r);var a,s,o=m[r];if(void 0!==o)return x(a=d[o],s="refVal["+o+"]");if(!t&&u.refs){var i=u.refs[r];if(void 0!==i)return s=S(r,a=u.refVal[i]),x(a,s)}s=S(r);var n=j.call(f,w,u,r);if(void 0===n){var l=h&&h[r];l&&(n=j.inlineRef(l,p.inlineRefs)?l:c.call(f,l,u,h,e))}if(void 0!==n)return F(r,n),x(n,s);_(r)}function S(e,r){var t=d.length;return d[t]=r,"refVal"+(m[e]=t)}function _(e){delete m[e]}function F(e,r){var t=m[e];d[t]=r}function x(e,r){return"object"==typeof e||"boolean"==typeof e?{code:r,schema:e,inline:!0}:{code:r,$async:e&&!!e.$async}}function $(e){var r=t[e];return void 0===r&&(r=t[e]=v.length,v[r]=e),"pattern"+r}function R(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return O.toQuotedString(e);case"object":if(null===e)return"null";var r=A(e),t=a[r];return void 0===t&&(t=a[r]=y.length,y[t]=e),"default"+t}}function D(e,r,t,a){if(!1!==f._opts.validateSchema){var s=e.definition.dependencies;if(s&&!s.every(function(e){return Object.prototype.hasOwnProperty.call(t,e)}))throw new Error("parent schema must have all required keywords: "+s.join(","));var o=e.definition.validateSchema;if(o){var i=o(r);if(!i){var n="keyword schema is invalid: "+f.errorsText(o.errors);if("log"!=f._opts.validateSchema)throw new Error(n);f.logger.error(n)}}}var l,c=e.definition.compile,u=e.definition.inline,h=e.definition.macro;if(c)l=c.call(f,r,t,a);else if(h)l=h.call(f,r,t,a),!1!==p.validateSchema&&f.validateSchema(l,!0);else if(u)l=u.call(f,a,e.keyword,r,t);else if(!(l=e.definition.validate))return;if(void 0===l)throw new Error('custom keyword "'+e.keyword+'"failed to compile');var d=g.length;return{code:"customRule"+d,validate:g[d]=l}}}},{"../dotjs/validate":38,"./error_classes":3,"./resolve":6,"./util":10,"fast-deep-equal":42,"fast-json-stable-stringify":43}],6:[function(e,r,t){"use strict";var m=e("uri-js"),v=e("fast-deep-equal"),y=e("./util"),l=e("./schema_obj"),a=e("json-schema-traverse");function c(e,r,t){var a=this._refs[t];if("string"==typeof a){if(!this._refs[a])return c.call(this,e,r,a);a=this._refs[a]}if((a=a||this._schemas[t])instanceof l)return d(a.schema,this._opts.inlineRefs)?a.schema:a.validate||this._compile(a);var s,o,i,n=u.call(this,r,t);return n&&(s=n.schema,r=n.root,i=n.baseId),s instanceof l?o=s.validate||e.call(this,s.schema,r,void 0,i):void 0!==s&&(o=d(s,this._opts.inlineRefs)?s:e.call(this,s,r,void 0,i)),o}function u(e,r){var t=m.parse(r),a=f(t),s=g(this._getId(e.schema));if(0===Object.keys(e.schema).length||a!==s){var o=P(a),i=this._refs[o];if("string"==typeof i)return function(e,r,t){var a=u.call(this,e,r);if(a){var s=a.schema,o=a.baseId;e=a.root;var i=this._getId(s);return i&&(o=p(o,i)),n.call(this,t,o,s,e)}}.call(this,e,i,t);if(i instanceof l)i.validate||this._compile(i),e=i;else{if(!((i=this._schemas[o])instanceof l))return;if(i.validate||this._compile(i),o==P(r))return{schema:i,root:e,baseId:s};e=i}if(!e.schema)return;s=g(this._getId(e.schema))}return n.call(this,t,s,e.schema,e)}(r.exports=c).normalizeId=P,c.fullPath=g,c.url=p,c.ids=function(e){var r=P(this._getId(e)),h={"":r},d={"":g(r,!1)},f={},p=this;return a(e,{allKeys:!0},function(e,r,t,a,s,o,i){if(""!==r){var n=p._getId(e),l=h[a],c=d[a]+"/"+s;if(void 0!==i&&(c+="/"+("number"==typeof i?i:y.escapeFragment(i))),"string"==typeof n){n=l=P(l?m.resolve(l,n):n);var u=p._refs[n];if("string"==typeof u&&(u=p._refs[u]),u&&u.schema){if(!v(e,u.schema))throw new Error('id "'+n+'" resolves to more than one schema')}else if(n!=P(c))if("#"==n[0]){if(f[n]&&!v(e,f[n]))throw new Error('id "'+n+'" resolves to more than one schema');f[n]=e}else p._refs[n]=c}h[r]=l,d[r]=c}}),f},c.inlineRef=d,c.schema=u;var h=y.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function n(e,r,t,a){if(e.fragment=e.fragment||"","/"==e.fragment.slice(0,1)){for(var s=e.fragment.split("/"),o=1;o<s.length;o++){var i=s[o];if(i){if(void 0===(t=t[i=y.unescapeFragment(i)]))break;var n;if(!h[i]&&((n=this._getId(t))&&(r=p(r,n)),t.$ref)){var l=p(r,t.$ref),c=u.call(this,a,l);c&&(t=c.schema,a=c.root,r=c.baseId)}}}return void 0!==t&&t!==a.schema?{schema:t,root:a,baseId:r}:void 0}}var i=y.toHash(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum"]);function d(e,r){return!1!==r&&(void 0===r||!0===r?function e(r){var t;if(Array.isArray(r)){for(var a=0;a<r.length;a++)if("object"==typeof(t=r[a])&&!e(t))return!1}else for(var s in r){if("$ref"==s)return!1;if("object"==typeof(t=r[s])&&!e(t))return!1}return!0}(e):r?function e(r){var t,a=0;if(Array.isArray(r)){for(var s=0;s<r.length;s++)if("object"==typeof(t=r[s])&&(a+=e(t)),a==1/0)return 1/0}else for(var o in r){if("$ref"==o)return 1/0;if(i[o])a++;else if("object"==typeof(t=r[o])&&(a+=e(t)+1),a==1/0)return 1/0}return a}(e)<=r:void 0)}function g(e,r){return!1!==r&&(e=P(e)),f(m.parse(e))}function f(e){return m.serialize(e).split("#")[0]+"#"}var s=/#\/?$/;function P(e){return e?e.replace(s,""):""}function p(e,r){return r=P(r),m.resolve(e,r)}},{"./schema_obj":8,"./util":10,"fast-deep-equal":42,"json-schema-traverse":44,"uri-js":45}],7:[function(e,r,t){"use strict";var o=e("../dotjs"),i=e("./util").toHash;r.exports=function(){var a=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}],s=["type","$comment"];return a.all=i(s),a.types=i(["number","integer","string","array","object","boolean","null"]),a.forEach(function(e){e.rules=e.rules.map(function(e){var r;if("object"==typeof e){var t=Object.keys(e)[0];r=e[t],e=t,r.forEach(function(e){s.push(e),a.all[e]=!0})}return s.push(e),a.all[e]={keyword:e,code:o[e],implements:r}}),a.all.$comment={keyword:"$comment",code:o.$comment},e.type&&(a.types[e.type]=e)}),a.keywords=i(s.concat(["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"])),a.custom={},a}},{"../dotjs":27,"./util":10}],8:[function(e,r,t){"use strict";var a=e("./util");r.exports=function(e){a.copy(e,this)}},{"./util":10}],9:[function(e,r,t){"use strict";r.exports=function(e){for(var r,t=0,a=e.length,s=0;s<a;)t++,55296<=(r=e.charCodeAt(s++))&&r<=56319&&s<a&&56320==(64512&(r=e.charCodeAt(s)))&&s++;return t}},{}],10:[function(e,r,t){"use strict";function o(e,r,t){var a=t?" !== ":" === ",s=t?" || ":" && ",o=t?"!":"",i=t?"":"!";switch(e){case"null":return r+a+"null";case"array":return o+"Array.isArray("+r+")";case"object":return"("+o+r+s+"typeof "+r+a+'"object"'+s+i+"Array.isArray("+r+"))";case"integer":return"(typeof "+r+a+'"number"'+s+i+"("+r+" % 1)"+s+r+a+r+")";default:return"typeof "+r+a+'"'+e+'"'}}r.exports={copy:function(e,r){for(var t in r=r||{},e)r[t]=e[t];return r},checkDataType:o,checkDataTypes:function(e,r){switch(e.length){case 1:return o(e[0],r,!0);default:var t="",a=n(e);for(var s in a.array&&a.object&&(t=a.null?"(":"(!"+r+" || ",t+="typeof "+r+' !== "object")',delete a.null,delete a.array,delete a.object),a.number&&delete a.integer,a)t+=(t?" && ":"")+o(s,r,!0);return t}},coerceToTypes:function(e,r){if(Array.isArray(r)){for(var t=[],a=0;a<r.length;a++){var s=r[a];i[s]?t[t.length]=s:"array"===e&&"array"===s&&(t[t.length]=s)}if(t.length)return t}else{if(i[r])return[r];if("array"===e&&"array"===r)return["array"]}},toHash:n,getProperty:h,escapeQuotes:l,equal:e("fast-deep-equal"),ucs2length:e("./ucs2length"),varOccurences:function(e,r){r+="[^0-9]";var t=e.match(new RegExp(r,"g"));return t?t.length:0},varReplace:function(e,r,t){return r+="([^0-9])",t=t.replace(/\$/g,"$$$$"),e.replace(new RegExp(r,"g"),t+"$1")},cleanUpCode:function(e){return e.replace(c,"").replace(u,"").replace(d,"if (!($1))")},finalCleanUpCode:function(e,r){var t=e.match(f);t&&2==t.length&&(e=r?e.replace(m,"").replace(g,P):e.replace(p,"").replace(v,y));return(t=e.match(E))&&3===t.length?e.replace(w,""):e},schemaHasRules:function(e,r){if("boolean"==typeof e)return!e;for(var t in e)if(r[t])return!0},schemaHasRulesExcept:function(e,r,t){if("boolean"==typeof e)return!e&&"not"!=t;for(var a in e)if(a!=t&&r[a])return!0},schemaUnknownRules:function(e,r){if("boolean"==typeof e)return;for(var t in e)if(!r[t])return t},toQuotedString:b,getPathExpr:function(e,r,t,a){return F(e,t?"'/' + "+r+(a?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):a?"'[' + "+r+" + ']'":"'[\\'' + "+r+" + '\\']'")},getPath:function(e,r,t){var a=b(t?"/"+x(r):h(r));return F(e,a)},getData:function(e,r,t){var a,s,o,i;if(""===e)return"rootData";if("/"==e[0]){if(!S.test(e))throw new Error("Invalid JSON-pointer: "+e);s=e,o="rootData"}else{if(!(i=e.match(_)))throw new Error("Invalid JSON-pointer: "+e);if(a=+i[1],"#"==(s=i[2])){if(r<=a)throw new Error("Cannot access property/index "+a+" levels up, current level is "+r);return t[r-a]}if(r<a)throw new Error("Cannot access data "+a+" levels up, current level is "+r);if(o="data"+(r-a||""),!s)return o}for(var n=o,l=s.split("/"),c=0;c<l.length;c++){var u=l[c];u&&(o+=h($(u)),n+=" && "+o)}return n},unescapeFragment:function(e){return $(decodeURIComponent(e))},unescapeJsonPointer:$,escapeFragment:function(e){return encodeURIComponent(x(e))},escapeJsonPointer:x};var i=n(["string","number","integer","boolean","null"]);function n(e){for(var r={},t=0;t<e.length;t++)r[e[t]]=!0;return r}var a=/^[a-z$_][a-z$_0-9]*$/i,s=/'|\\/g;function h(e){return"number"==typeof e?"["+e+"]":a.test(e)?"."+e:"['"+l(e)+"']"}function l(e){return e.replace(s,"\\$&").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\f/g,"\\f").replace(/\t/g,"\\t")}var c=/else\s*{\s*}/g,u=/if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g,d=/if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g;var f=/[^v.]errors/g,p=/var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g,m=/var errors = 0;|var vErrors = null;/g,v="return errors === 0;",y="validate.errors = null; return true;",g=/if \(errors === 0\) return data;\s*else throw new ValidationError\(vErrors\);/,P="return data;",E=/[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g,w=/if \(rootData === undefined\) rootData = data;/;function b(e){return"'"+l(e)+"'"}var S=/^\/(?:[^~]|~0|~1)*$/,_=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function F(e,r){return'""'==e?r:(e+" + "+r).replace(/' \+ '/g,"")}function x(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function $(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}},{"./ucs2length":9,"fast-deep-equal":42}],11:[function(e,r,t){"use strict";var l=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];r.exports=function(e,r){for(var t=0;t<r.length;t++){e=JSON.parse(JSON.stringify(e));var a,s=r[t].split("/"),o=e;for(a=1;a<s.length;a++)o=o[s[a]];for(a=0;a<l.length;a++){var i=l[a],n=o[i];n&&(o[i]={anyOf:[n,{$ref:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#"}]})}}return e}},{}],12:[function(e,r,t){"use strict";var a=e("./refs/json-schema-draft-07.json");r.exports={$id:"https://github.com/epoberezkin/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:a.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:a.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},{"./refs/json-schema-draft-07.json":41}],13:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h=e.opts.$data&&i&&i.$data;t=h?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i;var d="maximum"==r,f=d?"exclusiveMaximum":"exclusiveMinimum",p=e.schema[f],m=e.opts.$data&&p&&p.$data,v=d?"<":">",y=d?">":"<",g=void 0;if(m){var P=e.util.getData(p.$data,o,e.dataPathArr),E="exclusive"+s,w="exclType"+s,b="exclIsNumber"+s,S="' + "+(x="op"+s)+" + '";a+=" var schemaExcl"+s+" = "+P+"; ";var _;g=f;(_=_||[]).push(a+=" var "+E+"; var "+w+" = typeof "+(P="schemaExcl"+s)+"; if ("+w+" != 'boolean' && "+w+" != 'undefined' && "+w+" != 'number') { "),a="",!1!==e.createErrors?(a+=" { keyword: '"+(g||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: '"+f+" should be boolean' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var F=a;a=_.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+F+"]); ":" validate.errors = ["+F+"]; return false; ":" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else if ( ",h&&(a+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),a+=" "+w+" == 'number' ? ( ("+E+" = "+t+" === undefined || "+P+" "+v+"= "+t+") ? "+u+" "+y+"= "+P+" : "+u+" "+y+" "+t+" ) : ( ("+E+" = "+P+" === true) ? "+u+" "+y+"= "+t+" : "+u+" "+y+" "+t+" ) || "+u+" !== "+u+") { var op"+s+" = "+E+" ? '"+v+"' : '"+v+"='; ",void 0===i&&(l=e.errSchemaPath+"/"+(g=f),t=P,h=m)}else{S=v;if((b="number"==typeof p)&&h){var x="'"+S+"'";a+=" if ( ",h&&(a+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),a+=" ( "+t+" === undefined || "+p+" "+v+"= "+t+" ? "+u+" "+y+"= "+p+" : "+u+" "+y+" "+t+" ) || "+u+" !== "+u+") { "}else{b&&void 0===i?(E=!0,l=e.errSchemaPath+"/"+(g=f),t=p,y+="="):(b&&(t=Math[d?"min":"max"](p,i)),p===(!b||t)?(E=!0,l=e.errSchemaPath+"/"+(g=f),y+="="):(E=!1,S+="="));x="'"+S+"'";a+=" if ( ",h&&(a+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),a+=" "+u+" "+y+" "+t+" || "+u+" !== "+u+") { "}}g=g||r,(_=_||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: '"+(g||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { comparison: "+x+", limit: "+t+", exclusive: "+E+" } ",!1!==e.opts.messages&&(a+=" , message: 'should be "+S+" ",a+=h?"' + "+t:t+"'"),e.opts.verbose&&(a+=" , schema: ",a+=h?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";F=a;return a=_.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+F+"]); ":" validate.errors = ["+F+"]; return false; ":" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { "),a}},{}],14:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h=e.opts.$data&&i&&i.$data;t=h?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i,a+="if ( ",h&&(a+=" ("+t+" !== undefined && typeof "+t+" != 'number') || ");var d=r,f=f||[];f.push(a+=" "+u+".length "+("maxItems"==r?">":"<")+" "+t+") { "),a="",!1!==e.createErrors?(a+=" { keyword: '"+(d||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+t+" } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have ",a+="maxItems"==r?"more":"fewer",a+=" than ",a+=h?"' + "+t+" + '":""+i,a+=" items' "),e.opts.verbose&&(a+=" , schema: ",a+=h?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var p=a;return a=f.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],15:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h=e.opts.$data&&i&&i.$data;t=h?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i,a+="if ( ",h&&(a+=" ("+t+" !== undefined && typeof "+t+" != 'number') || "),a+=!1===e.opts.unicode?" "+u+".length ":" ucs2length("+u+") ";var d=r,f=f||[];f.push(a+=" "+("maxLength"==r?">":"<")+" "+t+") { "),a="",!1!==e.createErrors?(a+=" { keyword: '"+(d||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+t+" } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT be ",a+="maxLength"==r?"longer":"shorter",a+=" than ",a+=h?"' + "+t+" + '":""+i,a+=" characters' "),e.opts.verbose&&(a+=" , schema: ",a+=h?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var p=a;return a=f.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],16:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h=e.opts.$data&&i&&i.$data;t=h?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i,a+="if ( ",h&&(a+=" ("+t+" !== undefined && typeof "+t+" != 'number') || ");var d=r,f=f||[];f.push(a+=" Object.keys("+u+").length "+("maxProperties"==r?">":"<")+" "+t+") { "),a="",!1!==e.createErrors?(a+=" { keyword: '"+(d||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+t+" } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have ",a+="maxProperties"==r?"more":"fewer",a+=" than ",a+=h?"' + "+t+" + '":""+i,a+=" properties' "),e.opts.verbose&&(a+=" , schema: ",a+=h?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var p=a;return a=f.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],17:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.schema[r],s=e.schemaPath+e.util.getProperty(r),o=e.errSchemaPath+"/"+r,i=!e.opts.allErrors,n=e.util.copy(e),l="";n.level++;var c="valid"+n.level,u=n.baseId,h=!0,d=a;if(d)for(var f,p=-1,m=d.length-1;p<m;)f=d[p+=1],(e.opts.strictKeywords?"object"==typeof f&&0<Object.keys(f).length:e.util.schemaHasRules(f,e.RULES.all))&&(h=!1,n.schema=f,n.schemaPath=s+"["+p+"]",n.errSchemaPath=o+"/"+p,t+=" "+e.validate(n)+" ",n.baseId=u,i&&(t+=" if ("+c+") { ",l+="}"));return i&&(t+=h?" if (true) { ":" "+l.slice(0,-1)+" "),t=e.util.cleanUpCode(t)}},{}],18:[function(e,r,t){"use strict";r.exports=function(r,e){var t=" ",a=r.level,s=r.dataLevel,o=r.schema[e],i=r.schemaPath+r.util.getProperty(e),n=r.errSchemaPath+"/"+e,l=!r.opts.allErrors,c="data"+(s||""),u="valid"+a,h="errs__"+a,d=r.util.copy(r),f="";d.level++;var p="valid"+d.level;if(o.every(function(e){return r.opts.strictKeywords?"object"==typeof e&&0<Object.keys(e).length:r.util.schemaHasRules(e,r.RULES.all)})){var m=d.baseId;t+=" var "+h+" = errors; var "+u+" = false; ";var v=r.compositeRule;r.compositeRule=d.compositeRule=!0;var y=o;if(y)for(var g,P=-1,E=y.length-1;P<E;)g=y[P+=1],d.schema=g,d.schemaPath=i+"["+P+"]",d.errSchemaPath=n+"/"+P,t+=" "+r.validate(d)+" ",d.baseId=m,t+=" "+u+" = "+u+" || "+p+"; if (!"+u+") { ",f+="}";r.compositeRule=d.compositeRule=v,t+=" "+f+" if (!"+u+") { var err = ",!1!==r.createErrors?(t+=" { keyword: 'anyOf' , dataPath: (dataPath || '') + "+r.errorPath+" , schemaPath: "+r.util.toQuotedString(n)+" , params: {} ",!1!==r.opts.messages&&(t+=" , message: 'should match some schema in anyOf' "),r.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+r.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!r.compositeRule&&l&&(t+=r.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+=" } else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ",r.opts.allErrors&&(t+=" } "),t=r.util.cleanUpCode(t)}else l&&(t+=" if (true) { ");return t}},{}],19:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.errSchemaPath+"/"+r,s=e.util.toQuotedString(e.schema[r]);return!0===e.opts.$comment?t+=" console.log("+s+");":"function"==typeof e.opts.$comment&&(t+=" self._opts.$comment("+s+", "+e.util.toQuotedString(a)+", validate.root.schema);"),t}},{}],20:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h=e.opts.$data&&o&&o.$data;h&&(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; "),h||(t+=" var schema"+a+" = validate.schema"+i+";");var d=d||[];d.push(t+="var "+u+" = equal("+c+", schema"+a+"); if (!"+u+") { "),t="",!1!==e.createErrors?(t+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { allowedValue: schema"+a+" } ",!1!==e.opts.messages&&(t+=" , message: 'should be equal to constant' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var f=t;return t=d.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+f+"]); ":" validate.errors = ["+f+"]; return false; ":" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" }",l&&(t+=" else { "),t}},{}],21:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h="errs__"+a,d=e.util.copy(e);d.level++;var f="valid"+d.level,p="i"+a,m=d.dataLevel=e.dataLevel+1,v="data"+m,y=e.baseId,g=e.opts.strictKeywords?"object"==typeof o&&0<Object.keys(o).length:e.util.schemaHasRules(o,e.RULES.all);if(t+="var "+h+" = errors;var "+u+";",g){var P=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.schema=o,d.schemaPath=i,d.errSchemaPath=n,t+=" var "+f+" = false; for (var "+p+" = 0; "+p+" < "+c+".length; "+p+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,p,e.opts.jsonPointers,!0);var E=c+"["+p+"]";d.dataPathArr[m]=p;var w=e.validate(d);d.baseId=y,e.util.varOccurences(w,v)<2?t+=" "+e.util.varReplace(w,v,E)+" ":t+=" var "+v+" = "+E+"; "+w+" ",t+=" if ("+f+") break; } ",e.compositeRule=d.compositeRule=P,t+=" if (!"+f+") {"}else t+=" if ("+c+".length == 0) {";var b=b||[];b.push(t),t="",!1!==e.createErrors?(t+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: {} ",!1!==e.opts.messages&&(t+=" , message: 'should contain a valid item' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var S=t;return t=b.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { ",g&&(t+=" errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } "),e.opts.allErrors&&(t+=" } "),t=e.util.cleanUpCode(t)}},{}],22:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.level,i=e.dataLevel,n=e.schema[r],l=e.schemaPath+e.util.getProperty(r),c=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,h="data"+(i||""),d="valid"+o,f="errs__"+o,p=e.opts.$data&&n&&n.$data;a=p?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ","schema"+o):n;var m,v,y,g,P,E=this,w="definition"+o,b=E.definition,S="";if(p&&b.$data){var _=b.validateSchema;s+=" var "+w+" = RULES.custom['"+r+"'].definition; var "+(P="keywordValidate"+o)+" = "+w+".validate;"}else{if(!(g=e.useCustomRule(E,n,e.schema,e)))return;a="validate.schema"+l,P=g.code,m=b.compile,v=b.inline,y=b.macro}var F=P+".errors",x="i"+o,$="ruleErr"+o,R=b.async;if(R&&!e.async)throw new Error("async keyword in sync schema");if(v||y||(s+=F+" = null;"),s+="var "+f+" = errors;var "+d+";",p&&b.$data&&(S+="}",s+=" if ("+a+" === undefined) { "+d+" = true; } else { ",_&&(S+="}",s+=" "+d+" = "+w+".validateSchema("+a+"); if ("+d+") { ")),v)s+=b.statements?" "+g.validate+" ":" "+d+" = "+g.validate+"; ";else if(y){var D=e.util.copy(e);S="";D.level++;var j="valid"+D.level;D.schema=g.validate,D.schemaPath="";var O=e.compositeRule;e.compositeRule=D.compositeRule=!0;var I=e.validate(D).replace(/validate\.schema/g,P);e.compositeRule=D.compositeRule=O,s+=" "+I}else{(L=L||[]).push(s),s="",s+=" "+P+".call( ",s+=e.opts.passContext?"this":"self",s+=m||!1===b.schema?" , "+h+" ":" , "+a+" , "+h+" , validate.schema"+e.schemaPath+" ",s+=" , (dataPath || '')",'""'!=e.errorPath&&(s+=" + "+e.errorPath);var A=i?"data"+(i-1||""):"parentData",C=i?e.dataPathArr[i]:"parentDataProperty",k=s+=" , "+A+" , "+C+" , rootData ) ";s=L.pop(),!1===b.errors?(s+=" "+d+" = ",R&&(s+="await "),s+=k+"; "):s+=R?" var "+(F="customErrors"+o)+" = null; try { "+d+" = await "+k+"; } catch (e) { "+d+" = false; if (e instanceof ValidationError) "+F+" = e.errors; else throw e; } ":" "+F+" = null; "+d+" = "+k+"; "}if(b.modifying&&(s+=" if ("+A+") "+h+" = "+A+"["+C+"];"),s+=""+S,b.valid)u&&(s+=" if (true) { ");else{var L;s+=" if ( ",void 0===b.valid?(s+=" !",s+=y?""+j:d):s+=" "+!b.valid+" ",t=E.keyword,(L=L||[]).push(s+=") { "),(L=L||[]).push(s=""),s="",!1!==e.createErrors?(s+=" { keyword: '"+(t||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+E.keyword+"' } ",!1!==e.opts.messages&&(s+=" , message: 'should pass \""+E.keyword+"\" keyword validation' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ";var z=s;s=L.pop();var T=s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+z+"]); ":" validate.errors = ["+z+"]; return false; ":" var err = "+z+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";s=L.pop(),v?b.errors?"full"!=b.errors&&(s+=" for (var "+x+"="+f+"; "+x+"<errors; "+x+"++) { var "+$+" = vErrors["+x+"]; if ("+$+".dataPath === undefined) "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+$+".schemaPath === undefined) { "+$+'.schemaPath = "'+c+'"; } ',e.opts.verbose&&(s+=" "+$+".schema = "+a+"; "+$+".data = "+h+"; "),s+=" } "):!1===b.errors?s+=" "+T+" ":(s+=" if ("+f+" == errors) { "+T+" } else { for (var "+x+"="+f+"; "+x+"<errors; "+x+"++) { var "+$+" = vErrors["+x+"]; if ("+$+".dataPath === undefined) "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+$+".schemaPath === undefined) { "+$+'.schemaPath = "'+c+'"; } ',e.opts.verbose&&(s+=" "+$+".schema = "+a+"; "+$+".data = "+h+"; "),s+=" } } "):y?(s+=" var err = ",!1!==e.createErrors?(s+=" { keyword: '"+(t||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(c)+" , params: { keyword: '"+E.keyword+"' } ",!1!==e.opts.messages&&(s+=" , message: 'should pass \""+E.keyword+"\" keyword validation' "),e.opts.verbose&&(s+=" , schema: validate.schema"+l+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+h+" "),s+=" } "):s+=" {} ",s+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&u&&(s+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; ")):!1===b.errors?s+=" "+T+" ":(s+=" if (Array.isArray("+F+")) { if (vErrors === null) vErrors = "+F+"; else vErrors = vErrors.concat("+F+"); errors = vErrors.length; for (var "+x+"="+f+"; "+x+"<errors; "+x+"++) { var "+$+" = vErrors["+x+"]; if ("+$+".dataPath === undefined) "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; "+$+'.schemaPath = "'+c+'"; ',e.opts.verbose&&(s+=" "+$+".schema = "+a+"; "+$+".data = "+h+"; "),s+=" } } else { "+T+" } "),s+=" } ",u&&(s+=" else { ")}return s}},{}],23:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="errs__"+a,h=e.util.copy(e),d="";h.level++;var f="valid"+h.level,p={},m={},v=e.opts.ownProperties;for(E in o){var y=o[E],g=Array.isArray(y)?m:p;g[E]=y}t+="var "+u+" = errors;";var P=e.errorPath;for(var E in t+="var missing"+a+";",m)if((g=m[E]).length){if(t+=" if ( "+c+e.util.getProperty(E)+" !== undefined ",v&&(t+=" && Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(E)+"') "),l){t+=" && ( ";var w=g;if(w)for(var b=-1,S=w.length-1;b<S;){D=w[b+=1],b&&(t+=" || "),t+=" ( ( "+(A=c+(I=e.util.getProperty(D)))+" === undefined ",v&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(D)+"') "),t+=") && (missing"+a+" = "+e.util.toQuotedString(e.opts.jsonPointers?D:I)+") ) "}t+=")) { ";var _="missing"+a,F="' + "+_+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(P,_,!0):P+" + "+_);var x=x||[];x.push(t),t="",!1!==e.createErrors?(t+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { property: '"+e.util.escapeQuotes(E)+"', missingProperty: '"+F+"', depsCount: "+g.length+", deps: '"+e.util.escapeQuotes(1==g.length?g[0]:g.join(", "))+"' } ",!1!==e.opts.messages&&(t+=" , message: 'should have ",t+=1==g.length?"property "+e.util.escapeQuotes(g[0]):"properties "+e.util.escapeQuotes(g.join(", ")),t+=" when property "+e.util.escapeQuotes(E)+" is present' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var $=t;t=x.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{t+=" ) { ";var R=g;if(R)for(var D,j=-1,O=R.length-1;j<O;){D=R[j+=1];var I=e.util.getProperty(D),A=(F=e.util.escapeQuotes(D),c+I);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(P,D,e.opts.jsonPointers)),t+=" if ( "+A+" === undefined ",v&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(D)+"') "),t+=") { var err = ",!1!==e.createErrors?(t+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { property: '"+e.util.escapeQuotes(E)+"', missingProperty: '"+F+"', depsCount: "+g.length+", deps: '"+e.util.escapeQuotes(1==g.length?g[0]:g.join(", "))+"' } ",!1!==e.opts.messages&&(t+=" , message: 'should have ",t+=1==g.length?"property "+e.util.escapeQuotes(g[0]):"properties "+e.util.escapeQuotes(g.join(", ")),t+=" when property "+e.util.escapeQuotes(E)+" is present' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}t+=" } ",l&&(d+="}",t+=" else { ")}e.errorPath=P;var C=h.baseId;for(var E in p){y=p[E];(e.opts.strictKeywords?"object"==typeof y&&0<Object.keys(y).length:e.util.schemaHasRules(y,e.RULES.all))&&(t+=" "+f+" = true; if ( "+c+e.util.getProperty(E)+" !== undefined ",v&&(t+=" && Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(E)+"') "),t+=") { ",h.schema=y,h.schemaPath=i+e.util.getProperty(E),h.errSchemaPath=n+"/"+e.util.escapeFragment(E),t+=" "+e.validate(h)+" ",h.baseId=C,t+=" } ",l&&(t+=" if ("+f+") { ",d+="}"))}return l&&(t+=" "+d+" if ("+u+" == errors) {"),t=e.util.cleanUpCode(t)}},{}],24:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h=e.opts.$data&&o&&o.$data;h&&(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; ");var d="i"+a,f="schema"+a;h||(t+=" var "+f+" = validate.schema"+i+";"),t+="var "+u+";",h&&(t+=" if (schema"+a+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+a+")) "+u+" = false; else {"),t+=u+" = false;for (var "+d+"=0; "+d+"<"+f+".length; "+d+"++) if (equal("+c+", "+f+"["+d+"])) { "+u+" = true; break; }",h&&(t+=" } ");var p=p||[];p.push(t+=" if (!"+u+") { "),t="",!1!==e.createErrors?(t+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { allowedValues: schema"+a+" } ",!1!==e.opts.messages&&(t+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var m=t;return t=p.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+m+"]); ":" validate.errors = ["+m+"]; return false; ":" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" }",l&&(t+=" else { "),t}},{}],25:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||"");if(!1===e.opts.format)return c&&(a+=" if (true) { "),a;var h,d=e.opts.$data&&i&&i.$data;h=d?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i;var f=e.opts.unknownFormats,p=Array.isArray(f);if(d){a+=" var "+(m="format"+s)+" = formats["+h+"]; var "+(v="isObject"+s)+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; var "+(y="formatType"+s)+" = "+v+" && "+m+".type || 'string'; if ("+v+") { ",e.async&&(a+=" var async"+s+" = "+m+".async; "),a+=" "+m+" = "+m+".validate; } if ( ",d&&(a+=" ("+h+" !== undefined && typeof "+h+" != 'string') || "),a+=" (","ignore"!=f&&(a+=" ("+h+" && !"+m+" ",p&&(a+=" && self._opts.unknownFormats.indexOf("+h+") == -1 "),a+=") || "),a+=" ("+m+" && "+y+" == '"+t+"' && !(typeof "+m+" == 'function' ? ",a+=e.async?" (async"+s+" ? await "+m+"("+u+") : "+m+"("+u+")) ":" "+m+"("+u+") ",a+=" : "+m+".test("+u+"))))) {"}else{var m;if(!(m=e.formats[i])){if("ignore"==f)return e.logger.warn('unknown format "'+i+'" ignored in schema at path "'+e.errSchemaPath+'"'),c&&(a+=" if (true) { "),a;if(p&&0<=f.indexOf(i))return c&&(a+=" if (true) { "),a;throw new Error('unknown format "'+i+'" is used in schema at path "'+e.errSchemaPath+'"')}var v,y=(v="object"==typeof m&&!(m instanceof RegExp)&&m.validate)&&m.type||"string";if(v){var g=!0===m.async;m=m.validate}if(y!=t)return c&&(a+=" if (true) { "),a;if(g){if(!e.async)throw new Error("async format in sync schema");a+=" if (!(await "+(P="formats"+e.util.getProperty(i)+".validate")+"("+u+"))) { "}else{a+=" if (! ";var P="formats"+e.util.getProperty(i);v&&(P+=".validate"),a+="function"==typeof m?" "+P+"("+u+") ":" "+P+".test("+u+") ",a+=") { "}}var E=E||[];E.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'format' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ",a+=d?""+h:""+e.util.toQuotedString(i),a+=" } ",!1!==e.opts.messages&&(a+=" , message: 'should match format \"",a+=d?"' + "+h+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=d?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var w=a;return a=E.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+w+"]); ":" validate.errors = ["+w+"]; return false; ":" var err = "+w+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { "),a}},{}],26:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h="errs__"+a,d=e.util.copy(e);d.level++;var f="valid"+d.level,p=e.schema.then,m=e.schema.else,v=void 0!==p&&(e.opts.strictKeywords?"object"==typeof p&&0<Object.keys(p).length:e.util.schemaHasRules(p,e.RULES.all)),y=void 0!==m&&(e.opts.strictKeywords?"object"==typeof m&&0<Object.keys(m).length:e.util.schemaHasRules(m,e.RULES.all)),g=d.baseId;if(v||y){var P;d.createErrors=!1,d.schema=o,d.schemaPath=i,d.errSchemaPath=n,t+=" var "+h+" = errors; var "+u+" = true; ";var E=e.compositeRule;e.compositeRule=d.compositeRule=!0,t+=" "+e.validate(d)+" ",d.baseId=g,d.createErrors=!0,t+=" errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ",e.compositeRule=d.compositeRule=E,v?(t+=" if ("+f+") { ",d.schema=e.schema.then,d.schemaPath=e.schemaPath+".then",d.errSchemaPath=e.errSchemaPath+"/then",t+=" "+e.validate(d)+" ",d.baseId=g,t+=" "+u+" = "+f+"; ",v&&y?t+=" var "+(P="ifClause"+a)+" = 'then'; ":P="'then'",t+=" } ",y&&(t+=" else { ")):t+=" if (!"+f+") { ",y&&(d.schema=e.schema.else,d.schemaPath=e.schemaPath+".else",d.errSchemaPath=e.errSchemaPath+"/else",t+=" "+e.validate(d)+" ",d.baseId=g,t+=" "+u+" = "+f+"; ",v&&y?t+=" var "+(P="ifClause"+a)+" = 'else'; ":P="'else'",t+=" } "),t+=" if (!"+u+") { var err = ",!1!==e.createErrors?(t+=" { keyword: 'if' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { failingKeyword: "+P+" } ",!1!==e.opts.messages&&(t+=" , message: 'should match \"' + "+P+" + '\" schema' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&l&&(t+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+=" } ",l&&(t+=" else { "),t=e.util.cleanUpCode(t)}else l&&(t+=" if (true) { ");return t}},{}],27:[function(e,r,t){"use strict";r.exports={$ref:e("./ref"),allOf:e("./allOf"),anyOf:e("./anyOf"),$comment:e("./comment"),const:e("./const"),contains:e("./contains"),dependencies:e("./dependencies"),enum:e("./enum"),format:e("./format"),if:e("./if"),items:e("./items"),maximum:e("./_limit"),minimum:e("./_limit"),maxItems:e("./_limitItems"),minItems:e("./_limitItems"),maxLength:e("./_limitLength"),minLength:e("./_limitLength"),maxProperties:e("./_limitProperties"),minProperties:e("./_limitProperties"),multipleOf:e("./multipleOf"),not:e("./not"),oneOf:e("./oneOf"),pattern:e("./pattern"),properties:e("./properties"),propertyNames:e("./propertyNames"),required:e("./required"),uniqueItems:e("./uniqueItems"),validate:e("./validate")}},{"./_limit":13,"./_limitItems":14,"./_limitLength":15,"./_limitProperties":16,"./allOf":17,"./anyOf":18,"./comment":19,"./const":20,"./contains":21,"./dependencies":23,"./enum":24,"./format":25,"./if":26,"./items":28,"./multipleOf":29,"./not":30,"./oneOf":31,"./pattern":32,"./properties":33,"./propertyNames":34,"./ref":35,"./required":36,"./uniqueItems":37,"./validate":38}],28:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h="errs__"+a,d=e.util.copy(e),f="";d.level++;var p="valid"+d.level,m="i"+a,v=d.dataLevel=e.dataLevel+1,y="data"+v,g=e.baseId;if(t+="var "+h+" = errors;var "+u+";",Array.isArray(o)){var P=e.schema.additionalItems;if(!1===P){t+=" "+u+" = "+c+".length <= "+o.length+"; ";var E=n;n=e.errSchemaPath+"/additionalItems";var w=w||[];w.push(t+=" if (!"+u+") { "),t="",!1!==e.createErrors?(t+=" { keyword: 'additionalItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { limit: "+o.length+" } ",!1!==e.opts.messages&&(t+=" , message: 'should NOT have more than "+o.length+" items' "),e.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var b=t;t=w.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+b+"]); ":" validate.errors = ["+b+"]; return false; ":" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } ",n=E,l&&(f+="}",t+=" else { ")}var S=o;if(S)for(var _,F=-1,x=S.length-1;F<x;)if(_=S[F+=1],e.opts.strictKeywords?"object"==typeof _&&0<Object.keys(_).length:e.util.schemaHasRules(_,e.RULES.all)){t+=" "+p+" = true; if ("+c+".length > "+F+") { ";var $=c+"["+F+"]";d.schema=_,d.schemaPath=i+"["+F+"]",d.errSchemaPath=n+"/"+F,d.errorPath=e.util.getPathExpr(e.errorPath,F,e.opts.jsonPointers,!0),d.dataPathArr[v]=F;var R=e.validate(d);d.baseId=g,e.util.varOccurences(R,y)<2?t+=" "+e.util.varReplace(R,y,$)+" ":t+=" var "+y+" = "+$+"; "+R+" ",t+=" } ",l&&(t+=" if ("+p+") { ",f+="}")}if("object"==typeof P&&(e.opts.strictKeywords?"object"==typeof P&&0<Object.keys(P).length:e.util.schemaHasRules(P,e.RULES.all))){d.schema=P,d.schemaPath=e.schemaPath+".additionalItems",d.errSchemaPath=e.errSchemaPath+"/additionalItems",t+=" "+p+" = true; if ("+c+".length > "+o.length+") { for (var "+m+" = "+o.length+"; "+m+" < "+c+".length; "+m+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);$=c+"["+m+"]";d.dataPathArr[v]=m;R=e.validate(d);d.baseId=g,e.util.varOccurences(R,y)<2?t+=" "+e.util.varReplace(R,y,$)+" ":t+=" var "+y+" = "+$+"; "+R+" ",l&&(t+=" if (!"+p+") break; "),t+=" } } ",l&&(t+=" if ("+p+") { ",f+="}")}}else if(e.opts.strictKeywords?"object"==typeof o&&0<Object.keys(o).length:e.util.schemaHasRules(o,e.RULES.all)){d.schema=o,d.schemaPath=i,d.errSchemaPath=n,t+=" for (var "+m+" = 0; "+m+" < "+c+".length; "+m+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);$=c+"["+m+"]";d.dataPathArr[v]=m;R=e.validate(d);d.baseId=g,e.util.varOccurences(R,y)<2?t+=" "+e.util.varReplace(R,y,$)+" ":t+=" var "+y+" = "+$+"; "+R+" ",l&&(t+=" if (!"+p+") break; "),t+=" }"}return l&&(t+=" "+f+" if ("+h+" == errors) {"),t=e.util.cleanUpCode(t)}},{}],29:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h=e.opts.$data&&i&&i.$data;t=h?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i,a+="var division"+s+";if (",h&&(a+=" "+t+" !== undefined && ( typeof "+t+" != 'number' || "),a+=" (division"+s+" = "+u+" / "+t+", ",a+=e.opts.multipleOfPrecision?" Math.abs(Math.round(division"+s+") - division"+s+") > 1e-"+e.opts.multipleOfPrecision+" ":" division"+s+" !== parseInt(division"+s+") ",a+=" ) ",h&&(a+=" ) ");var d=d||[];d.push(a+=" ) { "),a="",!1!==e.createErrors?(a+=" { keyword: 'multipleOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { multipleOf: "+t+" } ",!1!==e.opts.messages&&(a+=" , message: 'should be multiple of ",a+=h?"' + "+t:t+"'"),e.opts.verbose&&(a+=" , schema: ",a+=h?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var f=a;return a=d.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+f+"]); ":" validate.errors = ["+f+"]; return false; ":" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],30:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="errs__"+a,h=e.util.copy(e);h.level++;var d="valid"+h.level;if(e.opts.strictKeywords?"object"==typeof o&&0<Object.keys(o).length:e.util.schemaHasRules(o,e.RULES.all)){h.schema=o,h.schemaPath=i,h.errSchemaPath=n,t+=" var "+u+" = errors; ";var f,p=e.compositeRule;e.compositeRule=h.compositeRule=!0,h.createErrors=!1,h.opts.allErrors&&(f=h.opts.allErrors,h.opts.allErrors=!1),t+=" "+e.validate(h)+" ",h.createErrors=!0,f&&(h.opts.allErrors=f),e.compositeRule=h.compositeRule=p;var m=m||[];m.push(t+=" if ("+d+") { "),t="",!1!==e.createErrors?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: {} ",!1!==e.opts.messages&&(t+=" , message: 'should NOT be valid' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var v=t;t=m.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { errors = "+u+"; if (vErrors !== null) { if ("+u+") vErrors.length = "+u+"; else vErrors = null; } ",e.opts.allErrors&&(t+=" } ")}else t+=" var err = ",!1!==e.createErrors?(t+=" { keyword: 'not' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: {} ",!1!==e.opts.messages&&(t+=" , message: 'should NOT be valid' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l&&(t+=" if (false) { ");return t}},{}],31:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h="errs__"+a,d=e.util.copy(e),f="";d.level++;var p="valid"+d.level,m=d.baseId,v="prevValid"+a,y="passingSchemas"+a;t+="var "+h+" = errors , "+v+" = false , "+u+" = false , "+y+" = null; ";var g=e.compositeRule;e.compositeRule=d.compositeRule=!0;var P=o;if(P)for(var E,w=-1,b=P.length-1;w<b;)E=P[w+=1],(e.opts.strictKeywords?"object"==typeof E&&0<Object.keys(E).length:e.util.schemaHasRules(E,e.RULES.all))?(d.schema=E,d.schemaPath=i+"["+w+"]",d.errSchemaPath=n+"/"+w,t+=" "+e.validate(d)+" ",d.baseId=m):t+=" var "+p+" = true; ",w&&(t+=" if ("+p+" && "+v+") { "+u+" = false; "+y+" = ["+y+", "+w+"]; } else { ",f+="}"),t+=" if ("+p+") { "+u+" = "+v+" = true; "+y+" = "+w+"; }";return e.compositeRule=d.compositeRule=g,t+=f+"if (!"+u+") { var err = ",!1!==e.createErrors?(t+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { passingSchemas: "+y+" } ",!1!==e.opts.messages&&(t+=" , message: 'should match exactly one schema in oneOf' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&l&&(t+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),t+="} else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; }",e.opts.allErrors&&(t+=" } "),t}},{}],32:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h=e.opts.$data&&i&&i.$data;t=h?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i;var d=h?"(new RegExp("+t+"))":e.usePattern(i);a+="if ( ",h&&(a+=" ("+t+" !== undefined && typeof "+t+" != 'string') || ");var f=f||[];f.push(a+=" !"+d+".test("+u+") ) { "),a="",!1!==e.createErrors?(a+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { pattern: ",a+=h?""+t:""+e.util.toQuotedString(i),a+=" } ",!1!==e.opts.messages&&(a+=" , message: 'should match pattern \"",a+=h?"' + "+t+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=h?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var p=a;return a=f.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+="} ",c&&(a+=" else { "),a}},{}],33:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="errs__"+a,h=e.util.copy(e),d="";h.level++;var f="valid"+h.level,p="key"+a,m="idx"+a,v=h.dataLevel=e.dataLevel+1,y="data"+v,g="dataProperties"+a,P=Object.keys(o||{}),E=e.schema.patternProperties||{},w=Object.keys(E),b=e.schema.additionalProperties,S=P.length||w.length,_=!1===b,F="object"==typeof b&&Object.keys(b).length,x=e.opts.removeAdditional,$=_||F||x,R=e.opts.ownProperties,D=e.baseId,j=e.schema.required;if(j&&(!e.opts.$data||!j.$data)&&j.length<e.opts.loopRequired)var O=e.util.toHash(j);if(t+="var "+u+" = errors;var "+f+" = true;",R&&(t+=" var "+g+" = undefined;"),$){if(t+=R?" "+g+" = "+g+" || Object.keys("+c+"); for (var "+m+"=0; "+m+"<"+g+".length; "+m+"++) { var "+p+" = "+g+"["+m+"]; ":" for (var "+p+" in "+c+") { ",S){if(t+=" var isAdditional"+a+" = !(false ",P.length)if(8<P.length)t+=" || validate.schema"+i+".hasOwnProperty("+p+") ";else{var I=P;if(I)for(var A=-1,C=I.length-1;A<C;)B=I[A+=1],t+=" || "+p+" == "+e.util.toQuotedString(B)+" "}if(w.length){var k=w;if(k)for(var L=-1,z=k.length-1;L<z;)ae=k[L+=1],t+=" || "+e.usePattern(ae)+".test("+p+") "}t+=" ); if (isAdditional"+a+") { "}if("all"==x)t+=" delete "+c+"["+p+"]; ";else{var T=e.errorPath,q="' + "+p+" + '";if(e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,p,e.opts.jsonPointers)),_)if(x)t+=" delete "+c+"["+p+"]; ";else{var N=n;n=e.errSchemaPath+"/additionalProperties",(ee=ee||[]).push(t+=" "+f+" = false; "),t="",!1!==e.createErrors?(t+=" { keyword: 'additionalProperties' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { additionalProperty: '"+q+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is an invalid additional property":"should NOT have additional properties",t+="' "),e.opts.verbose&&(t+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var Q=t;t=ee.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+Q+"]); ":" validate.errors = ["+Q+"]; return false; ":" var err = "+Q+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n=N,l&&(t+=" break; ")}else if(F)if("failing"==x){t+=" var "+u+" = errors; ";var U=e.compositeRule;e.compositeRule=h.compositeRule=!0,h.schema=b,h.schemaPath=e.schemaPath+".additionalProperties",h.errSchemaPath=e.errSchemaPath+"/additionalProperties",h.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,p,e.opts.jsonPointers);var V=c+"["+p+"]";h.dataPathArr[v]=p;var H=e.validate(h);h.baseId=D,e.util.varOccurences(H,y)<2?t+=" "+e.util.varReplace(H,y,V)+" ":t+=" var "+y+" = "+V+"; "+H+" ",t+=" if (!"+f+") { errors = "+u+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+c+"["+p+"]; } ",e.compositeRule=h.compositeRule=U}else{h.schema=b,h.schemaPath=e.schemaPath+".additionalProperties",h.errSchemaPath=e.errSchemaPath+"/additionalProperties",h.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,p,e.opts.jsonPointers);V=c+"["+p+"]";h.dataPathArr[v]=p;H=e.validate(h);h.baseId=D,e.util.varOccurences(H,y)<2?t+=" "+e.util.varReplace(H,y,V)+" ":t+=" var "+y+" = "+V+"; "+H+" ",l&&(t+=" if (!"+f+") break; ")}e.errorPath=T}S&&(t+=" } "),t+=" } ",l&&(t+=" if ("+f+") { ",d+="}")}var K=e.opts.useDefaults&&!e.compositeRule;if(P.length){var M=P;if(M)for(var B,J=-1,Z=M.length-1;J<Z;){var G=o[B=M[J+=1]];if(e.opts.strictKeywords?"object"==typeof G&&0<Object.keys(G).length:e.util.schemaHasRules(G,e.RULES.all)){var Y=e.util.getProperty(B),W=(V=c+Y,K&&void 0!==G.default);h.schema=G,h.schemaPath=i+Y,h.errSchemaPath=n+"/"+e.util.escapeFragment(B),h.errorPath=e.util.getPath(e.errorPath,B,e.opts.jsonPointers),h.dataPathArr[v]=e.util.toQuotedString(B);H=e.validate(h);if(h.baseId=D,e.util.varOccurences(H,y)<2){H=e.util.varReplace(H,y,V);var X=V}else{X=y;t+=" var "+y+" = "+V+"; "}if(W)t+=" "+H+" ";else{if(O&&O[B]){t+=" if ( "+X+" === undefined ",R&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(B)+"') "),t+=") { "+f+" = false; ";T=e.errorPath,N=n;var ee,re=e.util.escapeQuotes(B);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(T,B,e.opts.jsonPointers)),n=e.errSchemaPath+"/required",(ee=ee||[]).push(t),t="",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+re+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+re+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";Q=t;t=ee.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+Q+"]); ":" validate.errors = ["+Q+"]; return false; ":" var err = "+Q+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",n=N,e.errorPath=T,t+=" } else { "}else l?(t+=" if ( "+X+" === undefined ",R&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(B)+"') "),t+=") { "+f+" = true; } else { "):(t+=" if ("+X+" !== undefined ",R&&(t+=" && Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(B)+"') "),t+=" ) { ");t+=" "+H+" } "}}l&&(t+=" if ("+f+") { ",d+="}")}}if(w.length){var te=w;if(te)for(var ae,se=-1,oe=te.length-1;se<oe;){G=E[ae=te[se+=1]];if(e.opts.strictKeywords?"object"==typeof G&&0<Object.keys(G).length:e.util.schemaHasRules(G,e.RULES.all)){h.schema=G,h.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(ae),h.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(ae),t+=R?" "+g+" = "+g+" || Object.keys("+c+"); for (var "+m+"=0; "+m+"<"+g+".length; "+m+"++) { var "+p+" = "+g+"["+m+"]; ":" for (var "+p+" in "+c+") { ",t+=" if ("+e.usePattern(ae)+".test("+p+")) { ",h.errorPath=e.util.getPathExpr(e.errorPath,p,e.opts.jsonPointers);V=c+"["+p+"]";h.dataPathArr[v]=p;H=e.validate(h);h.baseId=D,e.util.varOccurences(H,y)<2?t+=" "+e.util.varReplace(H,y,V)+" ":t+=" var "+y+" = "+V+"; "+H+" ",l&&(t+=" if (!"+f+") break; "),t+=" } ",l&&(t+=" else "+f+" = true; "),t+=" } ",l&&(t+=" if ("+f+") { ",d+="}")}}}return l&&(t+=" "+d+" if ("+u+" == errors) {"),t=e.util.cleanUpCode(t)}},{}],34:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="errs__"+a,h=e.util.copy(e);h.level++;var d="valid"+h.level;if(t+="var "+u+" = errors;",e.opts.strictKeywords?"object"==typeof o&&0<Object.keys(o).length:e.util.schemaHasRules(o,e.RULES.all)){h.schema=o,h.schemaPath=i,h.errSchemaPath=n;var f="key"+a,p="idx"+a,m="i"+a,v="' + "+f+" + '",y="data"+(h.dataLevel=e.dataLevel+1),g="dataProperties"+a,P=e.opts.ownProperties,E=e.baseId;P&&(t+=" var "+g+" = undefined; "),t+=P?" "+g+" = "+g+" || Object.keys("+c+"); for (var "+p+"=0; "+p+"<"+g+".length; "+p+"++) { var "+f+" = "+g+"["+p+"]; ":" for (var "+f+" in "+c+") { ",t+=" var startErrs"+a+" = errors; ";var w=f,b=e.compositeRule;e.compositeRule=h.compositeRule=!0;var S=e.validate(h);h.baseId=E,e.util.varOccurences(S,y)<2?t+=" "+e.util.varReplace(S,y,w)+" ":t+=" var "+y+" = "+w+"; "+S+" ",e.compositeRule=h.compositeRule=b,t+=" if (!"+d+") { for (var "+m+"=startErrs"+a+"; "+m+"<errors; "+m+"++) { vErrors["+m+"].propertyName = "+f+"; } var err = ",!1!==e.createErrors?(t+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { propertyName: '"+v+"' } ",!1!==e.opts.messages&&(t+=" , message: 'property name \\'"+v+"\\' is invalid' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&l&&(t+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),l&&(t+=" break; "),t+=" } }"}return l&&(t+=" if ("+u+" == errors) {"),t=e.util.cleanUpCode(t)}},{}],35:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a,s=" ",o=e.dataLevel,i=e.schema[r],n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(o||""),u="valid"+e.level;if("#"==i||"#/"==i)a=e.isRoot?(t=e.async,"validate"):(t=!0===e.root.schema.$async,"root.refVal[0]");else{var h=e.resolveRef(e.baseId,i,e.isRoot);if(void 0===h){var d=e.MissingRefError.message(e.baseId,i);if("fail"==e.opts.missingRefs){e.logger.error(d),(v=v||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { ref: '"+e.util.escapeQuotes(i)+"' } ",!1!==e.opts.messages&&(s+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(i)+"' "),e.opts.verbose&&(s+=" , schema: "+e.util.toQuotedString(i)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var f=s;s=v.pop(),s+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+f+"]); ":" validate.errors = ["+f+"]; return false; ":" var err = "+f+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l&&(s+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,i,d);e.logger.warn(d),l&&(s+=" if (true) { ")}}else if(h.inline){var p=e.util.copy(e);p.level++;var m="valid"+p.level;p.schema=h.schema,p.schemaPath="",p.errSchemaPath=i,s+=" "+e.validate(p).replace(/validate\.schema/g,h.code)+" ",l&&(s+=" if ("+m+") { ")}else t=!0===h.$async||e.async&&!1!==h.$async,a=h.code}if(a){var v;(v=v||[]).push(s),s="",s+=e.opts.passContext?" "+a+".call(this, ":" "+a+"( ",s+=" "+c+", (dataPath || '')",'""'!=e.errorPath&&(s+=" + "+e.errorPath);var y=s+=" , "+(o?"data"+(o-1||""):"parentData")+" , "+(o?e.dataPathArr[o]:"parentDataProperty")+", rootData) ";if(s=v.pop(),t){if(!e.async)throw new Error("async schema referenced by sync schema");l&&(s+=" var "+u+"; "),s+=" try { await "+y+"; ",l&&(s+=" "+u+" = true; "),s+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",l&&(s+=" "+u+" = false; "),s+=" } ",l&&(s+=" if ("+u+") { ")}else s+=" if (!"+y+") { if (vErrors === null) vErrors = "+a+".errors; else vErrors = vErrors.concat("+a+".errors); errors = vErrors.length; } ",l&&(s+=" else { ")}return s}},{}],36:[function(e,r,t){"use strict";r.exports=function(e,r){var t=" ",a=e.level,s=e.dataLevel,o=e.schema[r],i=e.schemaPath+e.util.getProperty(r),n=e.errSchemaPath+"/"+r,l=!e.opts.allErrors,c="data"+(s||""),u="valid"+a,h=e.opts.$data&&o&&o.$data;h&&(t+=" var schema"+a+" = "+e.util.getData(o.$data,s,e.dataPathArr)+"; ");var d="schema"+a;if(!h)if(o.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var f=[],p=o;if(p)for(var m,v=-1,y=p.length-1;v<y;){m=p[v+=1];var g=e.schema.properties[m];g&&(e.opts.strictKeywords?"object"==typeof g&&0<Object.keys(g).length:e.util.schemaHasRules(g,e.RULES.all))||(f[f.length]=m)}}else f=o;if(h||f.length){var P=e.errorPath,E=h||e.opts.loopRequired<=f.length,w=e.opts.ownProperties;if(l)if(t+=" var missing"+a+"; ",E){h||(t+=" var "+d+" = validate.schema"+i+"; ");var b="' + "+(R="schema"+a+"["+(F="i"+a)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(P,R,e.opts.jsonPointers)),t+=" var "+u+" = true; ",h&&(t+=" if (schema"+a+" === undefined) "+u+" = true; else if (!Array.isArray(schema"+a+")) "+u+" = false; else {"),t+=" for (var "+F+" = 0; "+F+" < "+d+".length; "+F+"++) { "+u+" = "+c+"["+d+"["+F+"]] !== undefined ",w&&(t+=" && Object.prototype.hasOwnProperty.call("+c+", "+d+"["+F+"]) "),t+="; if (!"+u+") break; } ",h&&(t+=" } "),($=$||[]).push(t+=" if (!"+u+") { "),t="",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+b+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";var S=t;t=$.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { "}else{t+=" if ( ";var _=f;if(_)for(var F=-1,x=_.length-1;F<x;){j=_[F+=1],F&&(t+=" || "),t+=" ( ( "+(C=c+(A=e.util.getProperty(j)))+" === undefined ",w&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(j)+"') "),t+=") && (missing"+a+" = "+e.util.toQuotedString(e.opts.jsonPointers?j:A)+") ) "}t+=") { ";var $;b="' + "+(R="missing"+a)+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(P,R,!0):P+" + "+R),($=$||[]).push(t),t="",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+b+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ";S=t;t=$.pop(),t+=!e.compositeRule&&l?e.async?" throw new ValidationError(["+S+"]); ":" validate.errors = ["+S+"]; return false; ":" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",t+=" } else { "}else if(E){h||(t+=" var "+d+" = validate.schema"+i+"; ");var R;b="' + "+(R="schema"+a+"["+(F="i"+a)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(P,R,e.opts.jsonPointers)),h&&(t+=" if ("+d+" && !Array.isArray("+d+")) { var err = ",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+b+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if ("+d+" !== undefined) { "),t+=" for (var "+F+" = 0; "+F+" < "+d+".length; "+F+"++) { if ("+c+"["+d+"["+F+"]] === undefined ",w&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", "+d+"["+F+"]) "),t+=") { var err = ",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+b+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",h&&(t+=" } ")}else{var D=f;if(D)for(var j,O=-1,I=D.length-1;O<I;){j=D[O+=1];var A=e.util.getProperty(j),C=(b=e.util.escapeQuotes(j),c+A);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(P,j,e.opts.jsonPointers)),t+=" if ( "+C+" === undefined ",w&&(t+=" || ! Object.prototype.hasOwnProperty.call("+c+", '"+e.util.escapeQuotes(j)+"') "),t+=") { var err = ",!1!==e.createErrors?(t+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { missingProperty: '"+b+"' } ",!1!==e.opts.messages&&(t+=" , message: '",t+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+b+"\\'",t+="' "),e.opts.verbose&&(t+=" , schema: validate.schema"+i+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),t+=" } "):t+=" {} ",t+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=P}else l&&(t+=" if (true) {");return t}},{}],37:[function(e,r,t){"use strict";r.exports=function(e,r){var t,a=" ",s=e.level,o=e.dataLevel,i=e.schema[r],n=e.schemaPath+e.util.getProperty(r),l=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,u="data"+(o||""),h="valid"+s,d=e.opts.$data&&i&&i.$data;if(t=d?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ","schema"+s):i,(i||d)&&!1!==e.opts.uniqueItems){d&&(a+=" var "+h+"; if ("+t+" === false || "+t+" === undefined) "+h+" = true; else if (typeof "+t+" != 'boolean') "+h+" = false; else { "),a+=" var i = "+u+".length , "+h+" = true , j; if (i > 1) { ";var f=e.schema.items&&e.schema.items.type,p=Array.isArray(f);if(!f||"object"==f||"array"==f||p&&(0<=f.indexOf("object")||0<=f.indexOf("array")))a+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+u+"[i], "+u+"[j])) { "+h+" = false; break outer; } } } ";else a+=" var itemIndices = {}, item; for (;i--;) { var item = "+u+"[i]; ",a+=" if ("+e.util["checkDataType"+(p?"s":"")](f,"item",!0)+") continue; ",p&&(a+=" if (typeof item == 'string') item = '\"' + item; "),a+=" if (typeof itemIndices[item] == 'number') { "+h+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } ";a+=" } ",d&&(a+=" } ");var m=m||[];m.push(a+=" if (!"+h+") { "),a="",!1!==e.createErrors?(a+=" { keyword: 'uniqueItems' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { i: i, j: j } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "),e.opts.verbose&&(a+=" , schema: ",a+=d?"validate.schema"+n:""+i,a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var v=a;a=m.pop(),a+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",c&&(a+=" else { ")}else c&&(a+=" if (true) { ");return a}},{}],38:[function(e,r,t){"use strict";r.exports=function(a,e){var r="",t=!0===a.schema.$async,s=a.util.schemaHasRulesExcept(a.schema,a.RULES.all,"$ref"),o=a.self._getId(a.schema);if(a.opts.strictKeywords){var i=a.util.schemaUnknownRules(a.schema,a.RULES.keywords);if(i){var n="unknown keyword: "+i;if("log"!==a.opts.strictKeywords)throw new Error(n);a.logger.warn(n)}}if(a.isTop&&(r+=" var validate = ",t&&(a.async=!0,r+="async "),r+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",o&&(a.opts.sourceCode||a.opts.processCode)&&(r+=" /*# sourceURL="+o+" */ ")),"boolean"==typeof a.schema||!s&&!a.schema.$ref){var l=a.level,c=a.dataLevel,u=a.schema[e="false schema"],h=a.schemaPath+a.util.getProperty(e),d=a.errSchemaPath+"/"+e,f=!a.opts.allErrors,p="data"+(c||""),m="valid"+l;if(!1===a.schema){a.isTop?f=!0:r+=" var "+m+" = false; ",(Z=Z||[]).push(r),r="",!1!==a.createErrors?(r+=" { keyword: 'false schema' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(d)+" , params: {} ",!1!==a.opts.messages&&(r+=" , message: 'boolean schema is false' "),a.opts.verbose&&(r+=" , schema: false , parentSchema: validate.schema"+a.schemaPath+" , data: "+p+" "),r+=" } "):r+=" {} ";var v=r;r=Z.pop(),r+=!a.compositeRule&&f?a.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else r+=a.isTop?t?" return data; ":" validate.errors = null; return true; ":" var "+m+" = true; ";return a.isTop&&(r+=" }; return validate; "),r}if(a.isTop){var y=a.isTop;l=a.level=0,c=a.dataLevel=0,p="data";if(a.rootId=a.resolve.fullPath(a.self._getId(a.root.schema)),a.baseId=a.baseId||a.rootId,delete a.isTop,a.dataPathArr=[void 0],void 0!==a.schema.default&&a.opts.useDefaults&&a.opts.strictDefaults){var g="default is ignored in the schema root";if("log"!==a.opts.strictDefaults)throw new Error(g);a.logger.warn(g)}r+=" var vErrors = null; ",r+=" var errors = 0; ",r+=" if (rootData === undefined) rootData = data; "}else{l=a.level,p="data"+((c=a.dataLevel)||"");if(o&&(a.baseId=a.resolve.url(a.baseId,o)),t&&!a.async)throw new Error("async schema in sync schema");r+=" var errs_"+l+" = errors;"}m="valid"+l,f=!a.opts.allErrors;var P="",E="",w=a.schema.type,b=Array.isArray(w);if(w&&a.opts.nullable&&!0===a.schema.nullable&&(b?-1==w.indexOf("null")&&(w=w.concat("null")):"null"!=w&&(w=[w,"null"],b=!0)),b&&1==w.length&&(w=w[0],b=!1),a.schema.$ref&&s){if("fail"==a.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+a.errSchemaPath+'" (see option extendRefs)');!0!==a.opts.extendRefs&&(s=!1,a.logger.warn('$ref: keywords ignored in schema at path "'+a.errSchemaPath+'"'))}if(a.schema.$comment&&a.opts.$comment&&(r+=" "+a.RULES.all.$comment.code(a,"$comment")),w){if(a.opts.coerceTypes)var S=a.util.coerceToTypes(a.opts.coerceTypes,w);var _=a.RULES.types[w];if(S||b||!0===_||_&&!G(_)){h=a.schemaPath+".type",d=a.errSchemaPath+"/type",h=a.schemaPath+".type",d=a.errSchemaPath+"/type";if(r+=" if ("+a.util[b?"checkDataTypes":"checkDataType"](w,p,!0)+") { ",S){var F="dataType"+l,x="coerced"+l;r+=" var "+F+" = typeof "+p+"; ","array"==a.opts.coerceTypes&&(r+=" if ("+F+" == 'object' && Array.isArray("+p+")) "+F+" = 'array'; "),r+=" var "+x+" = undefined; ";var $="",R=S;if(R)for(var D,j=-1,O=R.length-1;j<O;)D=R[j+=1],j&&(r+=" if ("+x+" === undefined) { ",$+="}"),"array"==a.opts.coerceTypes&&"array"!=D&&(r+=" if ("+F+" == 'array' && "+p+".length == 1) { "+x+" = "+p+" = "+p+"[0]; "+F+" = typeof "+p+"; } "),"string"==D?r+=" if ("+F+" == 'number' || "+F+" == 'boolean') "+x+" = '' + "+p+"; else if ("+p+" === null) "+x+" = ''; ":"number"==D||"integer"==D?(r+=" if ("+F+" == 'boolean' || "+p+" === null || ("+F+" == 'string' && "+p+" && "+p+" == +"+p+" ","integer"==D&&(r+=" && !("+p+" % 1)"),r+=")) "+x+" = +"+p+"; "):"boolean"==D?r+=" if ("+p+" === 'false' || "+p+" === 0 || "+p+" === null) "+x+" = false; else if ("+p+" === 'true' || "+p+" === 1) "+x+" = true; ":"null"==D?r+=" if ("+p+" === '' || "+p+" === 0 || "+p+" === false) "+x+" = null; ":"array"==a.opts.coerceTypes&&"array"==D&&(r+=" if ("+F+" == 'string' || "+F+" == 'number' || "+F+" == 'boolean' || "+p+" == null) "+x+" = ["+p+"]; ");(Z=Z||[]).push(r+=" "+$+" if ("+x+" === undefined) { "),r="",!1!==a.createErrors?(r+=" { keyword: 'type' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(d)+" , params: { type: '",r+=b?""+w.join(","):""+w,r+="' } ",!1!==a.opts.messages&&(r+=" , message: 'should be ",r+=b?""+w.join(","):""+w,r+="' "),a.opts.verbose&&(r+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+a.schemaPath+" , data: "+p+" "),r+=" } "):r+=" {} ";v=r;r=Z.pop(),r+=!a.compositeRule&&f?a.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } else { ";var I=c?"data"+(c-1||""):"parentData";r+=" "+p+" = "+x+"; ",c||(r+="if ("+I+" !== undefined)"),r+=" "+I+"["+(c?a.dataPathArr[c]:"parentDataProperty")+"] = "+x+"; } "}else{(Z=Z||[]).push(r),r="",!1!==a.createErrors?(r+=" { keyword: 'type' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(d)+" , params: { type: '",r+=b?""+w.join(","):""+w,r+="' } ",!1!==a.opts.messages&&(r+=" , message: 'should be ",r+=b?""+w.join(","):""+w,r+="' "),a.opts.verbose&&(r+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+a.schemaPath+" , data: "+p+" "),r+=" } "):r+=" {} ";v=r;r=Z.pop(),r+=!a.compositeRule&&f?a.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}r+=" } "}}if(a.schema.$ref&&!s)r+=" "+a.RULES.all.$ref.code(a,"$ref")+" ",f&&(r+=" } if (errors === ",r+=y?"0":"errs_"+l,r+=") { ",E+="}");else{var A=a.RULES;if(A)for(var C=-1,k=A.length-1;C<k;)if(G(_=A[C+=1])){if(_.type&&(r+=" if ("+a.util.checkDataType(_.type,p)+") { "),a.opts.useDefaults)if("object"==_.type&&a.schema.properties){u=a.schema.properties;var L=Object.keys(u);if(L)for(var z,T=-1,q=L.length-1;T<q;){if(void 0!==(U=u[z=L[T+=1]]).default){var N=p+a.util.getProperty(z);if(a.compositeRule){if(a.opts.strictDefaults){g="default is ignored for: "+N;if("log"!==a.opts.strictDefaults)throw new Error(g);a.logger.warn(g)}}else r+=" if ("+N+" === undefined ","empty"==a.opts.useDefaults&&(r+=" || "+N+" === null || "+N+" === '' "),r+=" ) "+N+" = ",r+="shared"==a.opts.useDefaults?" "+a.useDefault(U.default)+" ":" "+JSON.stringify(U.default)+" ",r+="; "}}}else if("array"==_.type&&Array.isArray(a.schema.items)){var Q=a.schema.items;if(Q){j=-1;for(var U,V=Q.length-1;j<V;)if(void 0!==(U=Q[j+=1]).default){N=p+"["+j+"]";if(a.compositeRule){if(a.opts.strictDefaults){g="default is ignored for: "+N;if("log"!==a.opts.strictDefaults)throw new Error(g);a.logger.warn(g)}}else r+=" if ("+N+" === undefined ","empty"==a.opts.useDefaults&&(r+=" || "+N+" === null || "+N+" === '' "),r+=" ) "+N+" = ",r+="shared"==a.opts.useDefaults?" "+a.useDefault(U.default)+" ":" "+JSON.stringify(U.default)+" ",r+="; "}}}var H=_.rules;if(H)for(var K,M=-1,B=H.length-1;M<B;)if(Y(K=H[M+=1])){var J=K.code(a,K.keyword,_.type);J&&(r+=" "+J+" ",f&&(P+="}"))}if(f&&(r+=" "+P+" ",P=""),_.type&&(r+=" } ",w&&w===_.type&&!S)){var Z;h=a.schemaPath+".type",d=a.errSchemaPath+"/type";(Z=Z||[]).push(r+=" else { "),r="",!1!==a.createErrors?(r+=" { keyword: 'type' , dataPath: (dataPath || '') + "+a.errorPath+" , schemaPath: "+a.util.toQuotedString(d)+" , params: { type: '",r+=b?""+w.join(","):""+w,r+="' } ",!1!==a.opts.messages&&(r+=" , message: 'should be ",r+=b?""+w.join(","):""+w,r+="' "),a.opts.verbose&&(r+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+a.schemaPath+" , data: "+p+" "),r+=" } "):r+=" {} ";v=r;r=Z.pop(),r+=!a.compositeRule&&f?a.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",r+=" } "}f&&(r+=" if (errors === ",r+=y?"0":"errs_"+l,r+=") { ",E+="}")}}function G(e){for(var r=e.rules,t=0;t<r.length;t++)if(Y(r[t]))return 1}function Y(e){return void 0!==a.schema[e.keyword]||e.implements&&function(e){for(var r=e.implements,t=0;t<r.length;t++)if(void 0!==a.schema[r[t]])return!0}(e)}return f&&(r+=" "+E+" "),y?(t?(r+=" if (errors === 0) return data; ",r+=" else throw new ValidationError(vErrors); "):(r+=" validate.errors = vErrors; ",r+=" return errors === 0; "),r+=" }; return validate;"):r+=" var "+m+" = errors === errs_"+l+";",r=a.util.cleanUpCode(r),y&&(r=a.util.finalCleanUpCode(r,t)),r}},{}],39:[function(e,r,t){"use strict";var i=/^[a-z_$][a-z0-9_$-]*$/i,l=e("./dotjs/custom"),s=e("./definition_schema");r.exports={add:function(e,r){var n=this.RULES;if(n.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!i.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(r){this.validateKeyword(r,!0);var t=r.type;if(Array.isArray(t))for(var a=0;a<t.length;a++)o(e,t[a],r);else o(e,t,r);var s=r.metaSchema;s&&(r.$data&&this._opts.$data&&(s={anyOf:[s,{$ref:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#"}]}),r.validateSchema=this.compile(s,!0))}function o(e,r,t){for(var a,s=0;s<n.length;s++){var o=n[s];if(o.type==r){a=o;break}}a||n.push(a={type:r,rules:[]});var i={keyword:e,definition:t,custom:!0,code:l,implements:t.implements};a.rules.push(i),n.custom[e]=i}return n.keywords[e]=n.all[e]=!0,this},get:function(e){var r=this.RULES.custom[e];return r?r.definition:this.RULES.keywords[e]||!1},remove:function(e){var r=this.RULES;delete r.keywords[e],delete r.all[e],delete r.custom[e];for(var t=0;t<r.length;t++)for(var a=r[t].rules,s=0;s<a.length;s++)if(a[s].keyword==e){a.splice(s,1);break}return this},validate:function e(r,t){e.errors=null;var a=this._validateKeyword=this._validateKeyword||this.compile(s,!0);if(a(r))return!0;e.errors=a.errors;{if(t)throw new Error("custom keyword definition is invalid: "+this.errorsText(a.errors));return!1}}}},{"./definition_schema":12,"./dotjs/custom":22}],40:[function(e,r,t){r.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON Schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}},{}],41:[function(e,r,t){r.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}},{}],42:[function(e,r,t){"use strict";r.exports=function e(r,t){if(r===t)return!0;if(r&&t&&"object"==typeof r&&"object"==typeof t){if(r.constructor!==t.constructor)return!1;var a,s,o;if(Array.isArray(r)){if((a=r.length)!=t.length)return!1;for(s=a;0!=s--;)if(!e(r[s],t[s]))return!1;return!0}if(r.constructor===RegExp)return r.source===t.source&&r.flags===t.flags;if(r.valueOf!==Object.prototype.valueOf)return r.valueOf()===t.valueOf();if(r.toString!==Object.prototype.toString)return r.toString()===t.toString();if((a=(o=Object.keys(r)).length)!==Object.keys(t).length)return!1;for(s=a;0!=s--;)if(!Object.prototype.hasOwnProperty.call(t,o[s]))return!1;for(s=a;0!=s--;){var i=o[s];if(!e(r[i],t[i]))return!1}return!0}return r!=r&&t!=t}},{}],43:[function(e,r,t){"use strict";r.exports=function(e,r){"function"==typeof(r=r||{})&&(r={cmp:r});var a,l="boolean"==typeof r.cycles&&r.cycles,c=r.cmp&&(a=r.cmp,function(t){return function(e,r){return a({key:e,value:t[e]},{key:r,value:t[r]})}}),u=[];return function e(r){if(r&&r.toJSON&&"function"==typeof r.toJSON&&(r=r.toJSON()),void 0!==r){if("number"==typeof r)return isFinite(r)?""+r:"null";if("object"!=typeof r)return JSON.stringify(r);var t,a;if(Array.isArray(r)){for(a="[",t=0;t<r.length;t++)t&&(a+=","),a+=e(r[t])||"null";return a+"]"}if(null===r)return"null";if(-1!==u.indexOf(r)){if(l)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var s=u.push(r)-1,o=Object.keys(r).sort(c&&c(r));for(a="",t=0;t<o.length;t++){var i=o[t],n=e(r[i]);n&&(a&&(a+=","),a+=JSON.stringify(i)+":"+n)}return u.splice(s,1),"{"+a+"}"}}(e)}},{}],44:[function(e,r,t){"use strict";var m=r.exports=function(e,r,t){"function"==typeof r&&(t=r,r={}),function e(r,t,a,s,o,i,n,l,c,u){if(s&&"object"==typeof s&&!Array.isArray(s)){for(var h in t(s,o,i,n,l,c,u),s){var d=s[h];if(Array.isArray(d)){if(h in m.arrayKeywords)for(var f=0;f<d.length;f++)e(r,t,a,d[f],o+"/"+h+"/"+f,i,o,h,s,f)}else if(h in m.propsKeywords){if(d&&"object"==typeof d)for(var p in d)e(r,t,a,d[p],o+"/"+h+"/"+p.replace(/~/g,"~0").replace(/\//g,"~1"),i,o,h,s,p)}else(h in m.keywords||r.allKeys&&!(h in m.skipKeywords))&&e(r,t,a,d,o+"/"+h,i,o,h,s)}a(s,o,i,n,l,c,u)}}(r,"function"==typeof(t=r.cb||t)?t:t.pre||function(){},t.post||function(){},e,"",e)};m.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},m.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},m.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},m.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0}},{}],45:[function(e,r,t){var a;a=this,function(e){"use strict";function J(){for(var e=arguments.length,r=Array(e),t=0;t<e;t++)r[t]=arguments[t];if(1<r.length){r[0]=r[0].slice(0,-1);for(var a=r.length-1,s=1;s<a;++s)r[s]=r[s].slice(1,-1);return r[a]=r[a].slice(1),r.join("")}return r[0]}function Z(e){return"(?:"+e+")"}function a(e){return void 0===e?"undefined":null===e?"null":Object.prototype.toString.call(e).split(" ").pop().split("]").shift().toLowerCase()}function p(e){return e.toUpperCase()}function r(e){var r="[A-Za-z]",t="[0-9]",a=J(t,"[A-Fa-f]"),s=Z(Z("%[EFef]"+a+"%"+a+a+"%"+a+a)+"|"+Z("%[89A-Fa-f]"+a+"%"+a+a)+"|"+Z("%"+a+a)),o="[\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\=]",i=J("[\\:\\/\\?\\#\\[\\]\\@]",o),n=e?"[\\uE000-\\uF8FF]":"[]",l=J(r,t,"[\\-\\.\\_\\~]",e?"[\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]":"[]"),c=Z(r+J(r,t,"[\\+\\-\\.]")+"*"),u=Z(Z(s+"|"+J(l,o,"[\\:]"))+"*"),h=(Z("(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9][0-9])|(?:[1-9][0-9])|"+t),Z("(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9][0-9])|(?:0?[1-9][0-9])|0?0?"+t)),d=Z(h+"\\."+h+"\\."+h+"\\."+h),f=Z(a+"{1,4}"),p=Z(Z(f+"\\:"+f)+"|"+d),m=Z(Z(f+"\\:")+"{6}"+p),v=Z("\\:\\:"+Z(f+"\\:")+"{5}"+p),y=Z(Z(f)+"?\\:\\:"+Z(f+"\\:")+"{4}"+p),g=Z(Z(Z(f+"\\:")+"{0,1}"+f)+"?\\:\\:"+Z(f+"\\:")+"{3}"+p),P=Z(Z(Z(f+"\\:")+"{0,2}"+f)+"?\\:\\:"+Z(f+"\\:")+"{2}"+p),E=Z(Z(Z(f+"\\:")+"{0,3}"+f)+"?\\:\\:"+f+"\\:"+p),w=Z(Z(Z(f+"\\:")+"{0,4}"+f)+"?\\:\\:"+p),b=Z(Z(Z(f+"\\:")+"{0,5}"+f)+"?\\:\\:"+f),S=Z(Z(Z(f+"\\:")+"{0,6}"+f)+"?\\:\\:"),_=Z([m,v,y,g,P,E,w,b,S].join("|")),F=Z(Z(l+"|"+s)+"+"),x=(Z(_+"\\%25"+F),Z(_+Z("\\%25|\\%(?!"+a+"{2})")+F)),$=Z("[vV]"+a+"+\\."+J(l,o,"[\\:]")+"+"),R=Z("\\["+Z(x+"|"+_+"|"+$)+"\\]"),D=Z(Z(s+"|"+J(l,o))+"*"),j=Z(R+"|"+d+"(?!"+D+")|"+D),O=Z(t+"*"),I=Z(Z(u+"@")+"?"+j+Z("\\:"+O)+"?"),A=Z(s+"|"+J(l,o,"[\\:\\@]")),C=Z(A+"*"),k=Z(A+"+"),L=Z(Z(s+"|"+J(l,o,"[\\@]"))+"+"),z=Z(Z("\\/"+C)+"*"),T=Z("\\/"+Z(k+z)+"?"),q=Z(L+z),N=Z(k+z),Q="(?!"+A+")",U=(Z(z+"|"+T+"|"+q+"|"+N+"|"+Q),Z(Z(A+"|"+J("[\\/\\?]",n))+"*")),V=Z(Z(A+"|[\\/\\?]")+"*"),H=Z(Z("\\/\\/"+I+z)+"|"+T+"|"+N+"|"+Q),K=Z(c+"\\:"+H+Z("\\?"+U)+"?"+Z("\\#"+V)+"?"),M=Z(Z("\\/\\/"+I+z)+"|"+T+"|"+q+"|"+Q),B=Z(M+Z("\\?"+U)+"?"+Z("\\#"+V)+"?");Z(K+"|"+B),Z(c+"\\:"+H+Z("\\?"+U)+"?"),Z(Z("\\/\\/("+Z("("+u+")@")+"?("+j+")"+Z("\\:("+O+")")+"?)")+"?("+z+"|"+T+"|"+N+"|"+Q+")"),Z("\\?("+U+")"),Z("\\#("+V+")"),Z(Z("\\/\\/("+Z("("+u+")@")+"?("+j+")"+Z("\\:("+O+")")+"?)")+"?("+z+"|"+T+"|"+q+"|"+Q+")"),Z("\\?("+U+")"),Z("\\#("+V+")"),Z(Z("\\/\\/("+Z("("+u+")@")+"?("+j+")"+Z("\\:("+O+")")+"?)")+"?("+z+"|"+T+"|"+N+"|"+Q+")"),Z("\\?("+U+")"),Z("\\#("+V+")"),Z("("+u+")@"),Z("\\:("+O+")");return{NOT_SCHEME:new RegExp(J("[^]",r,t,"[\\+\\-\\.]"),"g"),NOT_USERINFO:new RegExp(J("[^\\%\\:]",l,o),"g"),NOT_HOST:new RegExp(J("[^\\%\\[\\]\\:]",l,o),"g"),NOT_PATH:new RegExp(J("[^\\%\\/\\:\\@]",l,o),"g"),NOT_PATH_NOSCHEME:new RegExp(J("[^\\%\\/\\@]",l,o),"g"),NOT_QUERY:new RegExp(J("[^\\%]",l,o,"[\\:\\@\\/\\?]",n),"g"),NOT_FRAGMENT:new RegExp(J("[^\\%]",l,o,"[\\:\\@\\/\\?]"),"g"),ESCAPE:new RegExp(J("[^]",l,o),"g"),UNRESERVED:new RegExp(l,"g"),OTHER_CHARS:new RegExp(J("[^\\%]",l,i),"g"),PCT_ENCODED:new RegExp(s,"g"),IPV4ADDRESS:new RegExp("^("+d+")$"),IPV6ADDRESS:new RegExp("^\\[?("+_+")"+Z(Z("\\%25|\\%(?!"+a+"{2})")+"("+F+")")+"?\\]?$")}}var u=r(!1),h=r(!0),w=function(e,r){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return function(e,r){var t=[],a=!0,s=!1,o=void 0;try{for(var i,n=e[Symbol.iterator]();!(a=(i=n.next()).done)&&(t.push(i.value),!r||t.length!==r);a=!0);}catch(e){s=!0,o=e}finally{try{!a&&n.return&&n.return()}finally{if(s)throw o}}return t}(e,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")},A=2147483647,t=/^xn--/,s=/[^\0-\x7E]/,o=/[\x2E\u3002\uFF0E\uFF61]/g,i={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},C=Math.floor,k=String.fromCharCode;function L(e){throw new RangeError(i[e])}function n(e,r){var t=e.split("@"),a="";return 1<t.length&&(a=t[0]+"@",e=t[1]),a+function(e,r){for(var t=[],a=e.length;a--;)t[a]=r(e[a]);return t}((e=e.replace(o,".")).split("."),r).join(".")}function z(e){for(var r=[],t=0,a=e.length;t<a;){var s=e.charCodeAt(t++);if(55296<=s&&s<=56319&&t<a){var o=e.charCodeAt(t++);56320==(64512&o)?r.push(((1023&s)<<10)+(1023&o)+65536):(r.push(s),t--)}else r.push(s)}return r}function T(e,r){return e+22+75*(e<26)-((0!=r)<<5)}function q(e,r,t){var a=0;for(e=t?C(e/700):e>>1,e+=C(e/r);455<e;a+=36)e=C(e/35);return C(a+36*e/(e+38))}function l(e){var r,t=[],a=e.length,s=0,o=128,i=72,n=e.lastIndexOf("-");n<0&&(n=0);for(var l=0;l<n;++l)128<=e.charCodeAt(l)&&L("not-basic"),t.push(e.charCodeAt(l));for(var c=0<n?n+1:0;c<a;){for(var u=s,h=1,d=36;;d+=36){a<=c&&L("invalid-input");var f=(r=e.charCodeAt(c++))-48<10?r-22:r-65<26?r-65:r-97<26?r-97:36;(36<=f||f>C((A-s)/h))&&L("overflow"),s+=f*h;var p=d<=i?1:i+26<=d?26:d-i;if(f<p)break;var m=36-p;h>C(A/m)&&L("overflow"),h*=m}var v=t.length+1;i=q(s-u,v,0==u),C(s/v)>A-o&&L("overflow"),o+=C(s/v),s%=v,t.splice(s++,0,o)}return String.fromCodePoint.apply(String,t)}function c(e){var r=[],t=(e=z(e)).length,a=128,s=0,o=72,i=!0,n=!1,l=void 0;try{for(var c,u=e[Symbol.iterator]();!(i=(c=u.next()).done);i=!0){var h=c.value;h<128&&r.push(k(h))}}catch(e){n=!0,l=e}finally{try{!i&&u.return&&u.return()}finally{if(n)throw l}}var d=r.length,f=d;for(d&&r.push("-");f<t;){var p=A,m=!0,v=!1,y=void 0;try{for(var g,P=e[Symbol.iterator]();!(m=(g=P.next()).done);m=!0){var E=g.value;a<=E&&E<p&&(p=E)}}catch(e){v=!0,y=e}finally{try{!m&&P.return&&P.return()}finally{if(v)throw y}}var w=f+1;p-a>C((A-s)/w)&&L("overflow"),s+=(p-a)*w,a=p;var b=!0,S=!1,_=void 0;try{for(var F,x=e[Symbol.iterator]();!(b=(F=x.next()).done);b=!0){var $=F.value;if($<a&&++s>A&&L("overflow"),$==a){for(var R=s,D=36;;D+=36){var j=D<=o?1:o+26<=D?26:D-o;if(R<j)break;var O=R-j,I=36-j;r.push(k(T(j+O%I,0))),R=C(O/I)}r.push(k(T(R,0))),o=q(s,w,f==d),s=0,++f}}}catch(e){S=!0,_=e}finally{try{!b&&x.return&&x.return()}finally{if(S)throw _}}++s,++a}return r.join("")}var v={version:"2.1.0",ucs2:{decode:z,encode:function(e){return String.fromCodePoint.apply(String,function(e){if(Array.isArray(e)){for(var r=0,t=Array(e.length);r<e.length;r++)t[r]=e[r];return t}return Array.from(e)}(e))}},decode:l,encode:c,toASCII:function(e){return n(e,function(e){return s.test(e)?"xn--"+c(e):e})},toUnicode:function(e){return n(e,function(e){return t.test(e)?l(e.slice(4).toLowerCase()):e})}},d={};function m(e){var r=e.charCodeAt(0);return r<16?"%0"+r.toString(16).toUpperCase():r<128?"%"+r.toString(16).toUpperCase():r<2048?"%"+(r>>6|192).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase():"%"+(r>>12|224).toString(16).toUpperCase()+"%"+(r>>6&63|128).toString(16).toUpperCase()+"%"+(63&r|128).toString(16).toUpperCase()}function f(e){for(var r="",t=0,a=e.length;t<a;){var s=parseInt(e.substr(t+1,2),16);if(s<128)r+=String.fromCharCode(s),t+=3;else if(194<=s&&s<224){if(6<=a-t){var o=parseInt(e.substr(t+4,2),16);r+=String.fromCharCode((31&s)<<6|63&o)}else r+=e.substr(t,6);t+=6}else if(224<=s){if(9<=a-t){var i=parseInt(e.substr(t+4,2),16),n=parseInt(e.substr(t+7,2),16);r+=String.fromCharCode((15&s)<<12|(63&i)<<6|63&n)}else r+=e.substr(t,9);t+=9}else r+=e.substr(t,3),t+=3}return r}function y(e,t){function r(e){var r=f(e);return r.match(t.UNRESERVED)?r:e}return e.scheme&&(e.scheme=String(e.scheme).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_SCHEME,"")),void 0!==e.userinfo&&(e.userinfo=String(e.userinfo).replace(t.PCT_ENCODED,r).replace(t.NOT_USERINFO,m).replace(t.PCT_ENCODED,p)),void 0!==e.host&&(e.host=String(e.host).replace(t.PCT_ENCODED,r).toLowerCase().replace(t.NOT_HOST,m).replace(t.PCT_ENCODED,p)),void 0!==e.path&&(e.path=String(e.path).replace(t.PCT_ENCODED,r).replace(e.scheme?t.NOT_PATH:t.NOT_PATH_NOSCHEME,m).replace(t.PCT_ENCODED,p)),void 0!==e.query&&(e.query=String(e.query).replace(t.PCT_ENCODED,r).replace(t.NOT_QUERY,m).replace(t.PCT_ENCODED,p)),void 0!==e.fragment&&(e.fragment=String(e.fragment).replace(t.PCT_ENCODED,r).replace(t.NOT_FRAGMENT,m).replace(t.PCT_ENCODED,p)),e}function b(e){return e.replace(/^0*(.*)/,"$1")||"0"}function S(e,r){var t=e.match(r.IPV4ADDRESS)||[],a=w(t,2)[1];return a?a.split(".").map(b).join("."):e}function g(e,r){var t=e.match(r.IPV6ADDRESS)||[],a=w(t,3),s=a[1],o=a[2];if(s){for(var i=s.toLowerCase().split("::").reverse(),n=w(i,2),l=n[0],c=n[1],u=c?c.split(":").map(b):[],h=l.split(":").map(b),d=r.IPV4ADDRESS.test(h[h.length-1]),f=d?7:8,p=h.length-f,m=Array(f),v=0;v<f;++v)m[v]=u[v]||h[p+v]||"";d&&(m[f-1]=S(m[f-1],r));var y=m.reduce(function(e,r,t){if(!r||"0"===r){var a=e[e.length-1];a&&a.index+a.length===t?a.length++:e.push({index:t,length:1})}return e},[]).sort(function(e,r){return r.length-e.length})[0],g=void 0;if(y&&1<y.length){var P=m.slice(0,y.index),E=m.slice(y.index+y.length);g=P.join(":")+"::"+E.join(":")}else g=m.join(":");return o&&(g+="%"+o),g}return e}var P=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i,E=void 0==="".match(/(){0}/)[1];function _(e){var r=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},t={},a=!1!==r.iri?h:u;"suffix"===r.reference&&(e=(r.scheme?r.scheme+":":"")+"//"+e);var s=e.match(P);if(s){E?(t.scheme=s[1],t.userinfo=s[3],t.host=s[4],t.port=parseInt(s[5],10),t.path=s[6]||"",t.query=s[7],t.fragment=s[8],isNaN(t.port)&&(t.port=s[5])):(t.scheme=s[1]||void 0,t.userinfo=-1!==e.indexOf("@")?s[3]:void 0,t.host=-1!==e.indexOf("//")?s[4]:void 0,t.port=parseInt(s[5],10),t.path=s[6]||"",t.query=-1!==e.indexOf("?")?s[7]:void 0,t.fragment=-1!==e.indexOf("#")?s[8]:void 0,isNaN(t.port)&&(t.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?s[4]:void 0)),t.host&&(t.host=g(S(t.host,a),a)),t.reference=void 0!==t.scheme||void 0!==t.userinfo||void 0!==t.host||void 0!==t.port||t.path||void 0!==t.query?void 0===t.scheme?"relative":void 0===t.fragment?"absolute":"uri":"same-document",r.reference&&"suffix"!==r.reference&&r.reference!==t.reference&&(t.error=t.error||"URI is not a "+r.reference+" reference.");var o=d[(r.scheme||t.scheme||"").toLowerCase()];if(r.unicodeSupport||o&&o.unicodeSupport)y(t,a);else{if(t.host&&(r.domainHost||o&&o.domainHost))try{t.host=v.toASCII(t.host.replace(a.PCT_ENCODED,f).toLowerCase())}catch(e){t.error=t.error||"Host's domain name can not be converted to ASCII via punycode: "+e}y(t,u)}o&&o.parse&&o.parse(t,r)}else t.error=t.error||"URI can not be parsed.";return t}var F=/^\.\.?\//,x=/^\/\.(\/|$)/,$=/^\/\.\.(\/|$)/,R=/^\/?(?:.|\n)*?(?=\/|$)/;function D(e){for(var r=[];e.length;)if(e.match(F))e=e.replace(F,"");else if(e.match(x))e=e.replace(x,"/");else if(e.match($))e=e.replace($,"/"),r.pop();else if("."===e||".."===e)e="";else{var t=e.match(R);if(!t)throw new Error("Unexpected dot segment condition");var a=t[0];e=e.slice(a.length),r.push(a)}return r.join("")}function j(r){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},e=t.iri?h:u,a=[],s=d[(t.scheme||r.scheme||"").toLowerCase()];if(s&&s.serialize&&s.serialize(r,t),r.host&&!e.IPV6ADDRESS.test(r.host)&&(t.domainHost||s&&s.domainHost))try{r.host=t.iri?v.toUnicode(r.host):v.toASCII(r.host.replace(e.PCT_ENCODED,f).toLowerCase())}catch(e){r.error=r.error||"Host's domain name can not be converted to "+(t.iri?"Unicode":"ASCII")+" via punycode: "+e}y(r,e),"suffix"!==t.reference&&r.scheme&&(a.push(r.scheme),a.push(":"));var o,i,n,l=(i=!1!==t.iri?h:u,n=[],void 0!==(o=r).userinfo&&(n.push(o.userinfo),n.push("@")),void 0!==o.host&&n.push(g(S(String(o.host),i),i).replace(i.IPV6ADDRESS,function(e,r,t){return"["+r+(t?"%25"+t:"")+"]"})),"number"==typeof o.port&&(n.push(":"),n.push(o.port.toString(10))),n.length?n.join(""):void 0);if(void 0!==l&&("suffix"!==t.reference&&a.push("//"),a.push(l),r.path&&"/"!==r.path.charAt(0)&&a.push("/")),void 0!==r.path){var c=r.path;t.absolutePath||s&&s.absolutePath||(c=D(c)),void 0===l&&(c=c.replace(/^\/\//,"/%2F")),a.push(c)}return void 0!==r.query&&(a.push("?"),a.push(r.query)),void 0!==r.fragment&&(a.push("#"),a.push(r.fragment)),a.join("")}function O(e,r){var t=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},a={};return arguments[3]||(e=_(j(e,t),t),r=_(j(r,t),t)),!(t=t||{}).tolerant&&r.scheme?(a.scheme=r.scheme,a.userinfo=r.userinfo,a.host=r.host,a.port=r.port,a.path=D(r.path||""),a.query=r.query):(void 0!==r.userinfo||void 0!==r.host||void 0!==r.port?(a.userinfo=r.userinfo,a.host=r.host,a.port=r.port,a.path=D(r.path||""),a.query=r.query):(r.path?("/"===r.path.charAt(0)?a.path=D(r.path):(a.path=void 0===e.userinfo&&void 0===e.host&&void 0===e.port||e.path?e.path?e.path.slice(0,e.path.lastIndexOf("/")+1)+r.path:r.path:"/"+r.path,a.path=D(a.path)),a.query=r.query):(a.path=e.path,a.query=void 0!==r.query?r.query:e.query),a.userinfo=e.userinfo,a.host=e.host,a.port=e.port),a.scheme=e.scheme),a.fragment=r.fragment,a}function I(e,r){return e&&e.toString().replace(r&&r.iri?h.PCT_ENCODED:u.PCT_ENCODED,f)}var N={scheme:"http",domainHost:!0,parse:function(e){return e.host||(e.error=e.error||"HTTP URIs must have a host."),e},serialize:function(e){return e.port!==("https"!==String(e.scheme).toLowerCase()?80:443)&&""!==e.port||(e.port=void 0),e.path||(e.path="/"),e}},Q={scheme:"https",domainHost:N.domainHost,parse:N.parse,serialize:N.serialize},U={},V="[A-Za-z0-9\\-\\.\\_\\~\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]",H="[0-9A-Fa-f]",K=(Z(Z("%[EFef]"+H+"%"+H+H+"%"+H+H)+"|"+Z("%[89A-Fa-f]"+H+"%"+H+H)+"|"+Z("%"+H+H)),J("[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]",'[\\"\\\\]')),M=new RegExp(V,"g"),B=new RegExp("(?:(?:%[EFef][0-9A-Fa-f]%[0-9A-Fa-f][0-9A-Fa-f]%[0-9A-Fa-f][0-9A-Fa-f])|(?:%[89A-Fa-f][0-9A-Fa-f]%[0-9A-Fa-f][0-9A-Fa-f])|(?:%[0-9A-Fa-f][0-9A-Fa-f]))","g"),G=new RegExp(J("[^]","[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]","[\\.]",'[\\"]',K),"g"),Y=new RegExp(J("[^]",V,"[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]"),"g"),W=Y;function X(e){var r=f(e);return r.match(M)?r:e}var ee={scheme:"mailto",parse:function(e,r){var t=e,a=t.to=t.path?t.path.split(","):[];if(t.path=void 0,t.query){for(var s=!1,o={},i=t.query.split("&"),n=0,l=i.length;n<l;++n){var c=i[n].split("=");switch(c[0]){case"to":for(var u=c[1].split(","),h=0,d=u.length;h<d;++h)a.push(u[h]);break;case"subject":t.subject=I(c[1],r);break;case"body":t.body=I(c[1],r);break;default:s=!0,o[I(c[0],r)]=I(c[1],r)}}s&&(t.headers=o)}t.query=void 0;for(var f=0,p=a.length;f<p;++f){var m=a[f].split("@");if(m[0]=I(m[0]),r.unicodeSupport)m[1]=I(m[1],r).toLowerCase();else try{m[1]=v.toASCII(I(m[1],r).toLowerCase())}catch(e){t.error=t.error||"Email address's domain name can not be converted to ASCII via punycode: "+e}a[f]=m.join("@")}return t},serialize:function(e,r){var t,a=e,s=null!=(t=e.to)?t instanceof Array?t:"number"!=typeof t.length||t.split||t.setInterval||t.call?[t]:Array.prototype.slice.call(t):[];if(s){for(var o=0,i=s.length;o<i;++o){var n=String(s[o]),l=n.lastIndexOf("@"),c=n.slice(0,l).replace(B,X).replace(B,p).replace(G,m),u=n.slice(l+1);try{u=r.iri?v.toUnicode(u):v.toASCII(I(u,r).toLowerCase())}catch(e){a.error=a.error||"Email address's domain name can not be converted to "+(r.iri?"Unicode":"ASCII")+" via punycode: "+e}s[o]=c+"@"+u}a.path=s.join(",")}var h=e.headers=e.headers||{};e.subject&&(h.subject=e.subject),e.body&&(h.body=e.body);var d=[];for(var f in h)h[f]!==U[f]&&d.push(f.replace(B,X).replace(B,p).replace(Y,m)+"="+h[f].replace(B,X).replace(B,p).replace(W,m));return d.length&&(a.query=d.join("&")),a}},re=/^([^\:]+)\:(.*)/,te={scheme:"urn",parse:function(e,r){var t=e.path&&e.path.match(re),a=e;if(t){var s=r.scheme||a.scheme||"urn",o=t[1].toLowerCase(),i=t[2],n=d[s+":"+(r.nid||o)];a.nid=o,a.nss=i,a.path=void 0,n&&(a=n.parse(a,r))}else a.error=a.error||"URN can not be parsed.";return a},serialize:function(e,r){var t=e.nid,a=d[(r.scheme||e.scheme||"urn")+":"+(r.nid||t)];a&&(e=a.serialize(e,r));var s=e;return s.path=(t||r.nid)+":"+e.nss,s}},ae=/^[0-9A-Fa-f]{8}(?:\-[0-9A-Fa-f]{4}){3}\-[0-9A-Fa-f]{12}$/,se={scheme:"urn:uuid",parse:function(e,r){var t=e;return t.uuid=t.nss,t.nss=void 0,r.tolerant||t.uuid&&t.uuid.match(ae)||(t.error=t.error||"UUID is not valid."),t},serialize:function(e){var r=e;return r.nss=(e.uuid||"").toLowerCase(),r}};d[N.scheme]=N,d[Q.scheme]=Q,d[ee.scheme]=ee,d[te.scheme]=te,d[se.scheme]=se,e.SCHEMES=d,e.pctEncChar=m,e.pctDecChars=f,e.parse=_,e.removeDotSegments=D,e.serialize=j,e.resolveComponents=O,e.resolve=function(e,r,t){var a=function(e,r){var t=e;if(r)for(var a in r)t[a]=r[a];return t}({scheme:"null"},t);return j(O(_(e,a),_(r,a),a,!0),a)},e.normalize=function(e,r){return"string"==typeof e?e=j(_(e,r),r):"object"===a(e)&&(e=_(j(e,r),r)),e},e.equal=function(e,r,t){return"string"==typeof e?e=j(_(e,t),t):"object"===a(e)&&(e=j(e,t)),"string"==typeof r?r=j(_(r,t),t):"object"===a(r)&&(r=j(r,t)),e===r},e.escapeComponent=function(e,r){return e&&e.toString().replace(r&&r.iri?h.ESCAPE:u.ESCAPE,m)},e.unescapeComponent=I,Object.defineProperty(e,"__esModule",{value:!0})}("object"==typeof t&&void 0!==r?t:a.URI=a.URI||{})},{}],ajv:[function(a,e,r){"use strict";var n=a("./compile"),d=a("./compile/resolve"),t=a("./cache"),f=a("./compile/schema_obj"),s=a("fast-json-stable-stringify"),o=a("./compile/formats"),i=a("./compile/rules"),l=a("./data"),c=a("./compile/util");(e.exports=y).prototype.validate=function(e,r){var t;if("string"==typeof e){if(!(t=this.getSchema(e)))throw new Error('no schema with key or ref "'+e+'"')}else{var a=this._addSchema(e);t=a.validate||this._compile(a)}var s=t(r);!0!==t.$async&&(this.errors=t.errors);return s},y.prototype.compile=function(e,r){var t=this._addSchema(e,void 0,r);return t.validate||this._compile(t)},y.prototype.addSchema=function(e,r,t,a){if(Array.isArray(e)){for(var s=0;s<e.length;s++)this.addSchema(e[s],void 0,t,a);return this}var o=this._getId(e);if(void 0!==o&&"string"!=typeof o)throw new Error("schema id must be string");return S(this,r=d.normalizeId(r||o)),this._schemas[r]=this._addSchema(e,t,a,!0),this},y.prototype.addMetaSchema=function(e,r,t){return this.addSchema(e,r,t,!0),this},y.prototype.validateSchema=function(e,r){var t=e.$schema;if(void 0!==t&&"string"!=typeof t)throw new Error("$schema must be a string");if(!(t=t||this._opts.defaultMeta||function(e){var r=e._opts.meta;return e._opts.defaultMeta="object"==typeof r?e._getId(r)||r:e.getSchema(p)?p:void 0,e._opts.defaultMeta}(this)))return this.logger.warn("meta-schema not available"),!(this.errors=null);var a=this.validate(t,e);if(!a&&r){var s="schema is invalid: "+this.errorsText();if("log"!=this._opts.validateSchema)throw new Error(s);this.logger.error(s)}return a},y.prototype.getSchema=function(e){var r=g(this,e);switch(typeof r){case"object":return r.validate||this._compile(r);case"string":return this.getSchema(r);case"undefined":return function(e,r){var t=d.schema.call(e,{schema:{}},r);if(t){var a=t.schema,s=t.root,o=t.baseId,i=n.call(e,a,s,void 0,o);return e._fragments[r]=new f({ref:r,fragment:!0,schema:a,root:s,baseId:o,validate:i}),i}}(this,e)}},y.prototype.removeSchema=function(e){if(e instanceof RegExp)return P(this,this._schemas,e),P(this,this._refs,e),this;switch(typeof e){case"undefined":return P(this,this._schemas),P(this,this._refs),this._cache.clear(),this;case"string":var r=g(this,e);return r&&this._cache.del(r.cacheKey),delete this._schemas[e],delete this._refs[e],this;case"object":var t=this._opts.serialize,a=t?t(e):e;this._cache.del(a);var s=this._getId(e);s&&(s=d.normalizeId(s),delete this._schemas[s],delete this._refs[s])}return this},y.prototype.addFormat=function(e,r){"string"==typeof r&&(r=new RegExp(r));return this._formats[e]=r,this},y.prototype.errorsText=function(e,r){if(!(e=e||this.errors))return"No errors";for(var t=void 0===(r=r||{}).separator?", ":r.separator,a=void 0===r.dataVar?"data":r.dataVar,s="",o=0;o<e.length;o++){var i=e[o];i&&(s+=a+i.dataPath+" "+i.message+t)}return s.slice(0,-t.length)},y.prototype._addSchema=function(e,r,t,a){if("object"!=typeof e&&"boolean"!=typeof e)throw new Error("schema should be object or boolean");var s=this._opts.serialize,o=s?s(e):e,i=this._cache.get(o);if(i)return i;a=a||!1!==this._opts.addUsedSchema;var n=d.normalizeId(this._getId(e));n&&a&&S(this,n);var l,c=!1!==this._opts.validateSchema&&!r;c&&!(l=n&&n==d.normalizeId(e.$schema))&&this.validateSchema(e,!0);var u=d.ids.call(this,e),h=new f({id:n,schema:e,localRefs:u,cacheKey:o,meta:t});"#"!=n[0]&&a&&(this._refs[n]=h);this._cache.put(o,h),c&&l&&this.validateSchema(e,!0);return h},y.prototype._compile=function(t,e){if(t.compiling)return(t.validate=s).schema=t.schema,s.errors=null,s.root=e||s,!0===t.schema.$async&&(s.$async=!0),s;var r,a;t.compiling=!0,t.meta&&(r=this._opts,this._opts=this._metaOpts);try{a=n.call(this,t.schema,e,t.localRefs)}catch(e){throw delete t.validate,e}finally{t.compiling=!1,t.meta&&(this._opts=r)}return t.validate=a,t.refs=a.refs,t.refVal=a.refVal,t.root=a.root,a;function s(){var e=t.validate,r=e.apply(this,arguments);return s.errors=e.errors,r}},y.prototype.compileAsync=a("./compile/async");var u=a("./keyword");y.prototype.addKeyword=u.add,y.prototype.getKeyword=u.get,y.prototype.removeKeyword=u.remove,y.prototype.validateKeyword=u.validate;var h=a("./compile/error_classes");y.ValidationError=h.Validation,y.MissingRefError=h.MissingRef,y.$dataMetaSchema=l;var p="http://json-schema.org/draft-07/schema",m=["removeAdditional","useDefaults","coerceTypes","strictDefaults"],v=["/properties"];function y(e){if(!(this instanceof y))return new y(e);e=this._opts=c.copy(e)||{},function(e){var r=e._opts.logger;if(!1===r)e.logger={log:_,warn:_,error:_};else{if(void 0===r&&(r=console),!("object"==typeof r&&r.log&&r.warn&&r.error))throw new Error("logger must implement log, warn and error methods");e.logger=r}}(this),this._schemas={},this._refs={},this._fragments={},this._formats=o(e.format),this._cache=e.cache||new t,this._loadingSchemas={},this._compilations=[],this.RULES=i(),this._getId=function(e){switch(e.schemaId){case"auto":return b;case"id":return E;default:return w}}(e),e.loopRequired=e.loopRequired||1/0,"property"==e.errorDataPath&&(e._errorDataPathProperty=!0),void 0===e.serialize&&(e.serialize=s),this._metaOpts=function(e){for(var r=c.copy(e._opts),t=0;t<m.length;t++)delete r[m[t]];return r}(this),e.formats&&function(e){for(var r in e._opts.formats){e.addFormat(r,e._opts.formats[r])}}(this),e.keywords&&function(e){for(var r in e._opts.keywords){e.addKeyword(r,e._opts.keywords[r])}}(this),function(e){var r;e._opts.$data&&(r=a("./refs/data.json"),e.addMetaSchema(r,r.$id,!0));if(!1===e._opts.meta)return;var t=a("./refs/json-schema-draft-07.json");e._opts.$data&&(t=l(t,v));e.addMetaSchema(t,p,!0),e._refs["http://json-schema.org/schema"]=p}(this),"object"==typeof e.meta&&this.addMetaSchema(e.meta),e.nullable&&this.addKeyword("nullable",{metaSchema:{type:"boolean"}}),function(e){var r=e._opts.schemas;if(!r)return;if(Array.isArray(r))e.addSchema(r);else for(var t in r)e.addSchema(r[t],t)}(this)}function g(e,r){return r=d.normalizeId(r),e._schemas[r]||e._refs[r]||e._fragments[r]}function P(e,r,t){for(var a in r){var s=r[a];s.meta||t&&!t.test(a)||(e._cache.del(s.cacheKey),delete r[a])}}function E(e){return e.$id&&this.logger.warn("schema $id ignored",e.$id),e.id}function w(e){return e.id&&this.logger.warn("schema id ignored",e.id),e.$id}function b(e){if(e.$id&&e.id&&e.$id!=e.id)throw new Error("schema $id is different from id");return e.$id||e.id}function S(e,r){if(e._schemas[r]||e._refs[r])throw new Error('schema with key or id "'+r+'" already exists')}function _(){}},{"./cache":1,"./compile":5,"./compile/async":2,"./compile/error_classes":3,"./compile/formats":4,"./compile/resolve":6,"./compile/rules":7,"./compile/schema_obj":8,"./compile/util":10,"./data":11,"./keyword":39,"./refs/data.json":40,"./refs/json-schema-draft-07.json":41,"fast-json-stable-stringify":43}]},{},[])("ajv")}); //# sourceMappingURL=ajv.min.js.map
\ No newline at end of file diff --git a/node_modules/ajv/dist/ajv.min.js.map b/node_modules/ajv/dist/ajv.min.js.map index 538dc3b..8b5fe56 100644 --- a/node_modules/ajv/dist/ajv.min.js.map +++ b/node_modules/ajv/dist/ajv.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["0"],"names":["f","exports","module","define","amd","window","global","self","this","Ajv","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","1","Cache","_cache","prototype","put","key","value","get","del","clear","2","MissingRefError","MissingRef","compileAsync","schema","meta","callback","_opts","loadSchema","undefined","loadMetaSchemaOf","then","schemaObj","_addSchema","validate","_compileAsync","v","sch","$schema","getSchema","$ref","Promise","resolve","_compile","loadMissingSchema","ref","missingSchema","added","missingRef","schemaPromise","_loadingSchemas","removePromise","addSchema","_refs","_schemas","./error_classes","3","baseId","message","url","normalizeId","fullPath","errorSubclass","Subclass","Object","create","constructor","Validation","errors","ajv","validation","./resolve","4","util","DATE","DAYS","TIME","HOSTNAME","URI","URITEMPLATE","URL","UUID","JSON_POINTER","JSON_POINTER_URI_FRAGMENT","RELATIVE_JSON_POINTER","formats","mode","copy","date","str","matches","match","year","month","day","time","full","hour","minute","second","fast","date-time","uri","uri-reference","uri-template","email","hostname","ipv4","ipv6","regex","uuid","json-pointer","json-pointer-uri-fragment","relative-json-pointer","dateTime","split","DATE_TIME_SEPARATOR","NOT_URI_FRAGMENT","test","Z_ANCHOR","RegExp","./util","5","errorClasses","stableStringify","validateGenerator","ucs2length","equal","ValidationError","checkCompiling","root","index","compIndex","compiling","_compilations","endCompiling","splice","patternCode","patterns","toQuotedString","defaultCode","refValCode","refVal","customRuleCode","vars","arr","statement","compile","localRefs","opts","refs","patternsHash","defaults","defaultsHash","customRules","compilation","callValidate","_formats","RULES","localCompile","cv","$async","sourceCode","source","result","apply","arguments","_schema","_root","isRoot","isTop","schemaPath","errSchemaPath","errorPath","resolveRef","usePattern","useDefault","useCustomRule","logger","processCode","makeValidate","Function","error","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","refId","inline","regexStr","valueStr","rule","parentSchema","it","validateSchema","deps","definition","dependencies","every","keyword","hasOwnProperty","join","valid","errorsText","macro","../dotjs/validate","fast-deep-equal","fast-json-stable-stringify","6","SchemaObject","traverse","res","resolveSchema","parse","refPath","_getFullPath","getFullPath","_getId","keys","id","parsedRef","resolveUrl","getJsonPointer","ids","schemaId","baseIds","","fullPaths","allKeys","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","escapeFragment","PREVENT_SCOPE_CHANGE","toHash","fragment","slice","parts","part","unescapeFragment","SIMPLE_INLINED","limit","checkNoRef","item","Array","isArray","countKeys","count","Infinity","normalize","serialize","TRAILING_SLASH_HASH","replace","./schema_obj","json-schema-traverse","uri-js","7","ruleModules","type","rules","maximum","minimum","properties","ALL","all","types","forEach","group","map","implKeywords","k","push","implements","$comment","keywords","concat","custom","../dotjs","8","obj","9","len","pos","charCodeAt","10","checkDataType","dataType","data","negate","EQUAL","AND","OK","NOT","to","checkDataTypes","dataTypes","array","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","escapeQuotes","varOccurences","dataVar","varReplace","expr","cleanUpCode","out","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","finalCleanUpCode","async","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_DATA_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","ROOTDATA_REGEXP","REMOVE_ROOTDATA","schemaHasRules","schemaHasRulesExcept","exceptKeyword","schemaUnknownRules","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","path","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","segments","segment","unescapeJsonPointer","decodeURIComponent","encodeURIComponent","hash","IDENTIFIER","SINGLE_QUOTE","b","./ucs2length","11","KEYWORDS","metaSchema","keywordsJsonPointers","JSON","stringify","j","anyOf","12","$id","definitions","simpleTypes","statements","not","required","items","modifying","const","./refs/json-schema-draft-07.json","13","$keyword","$ruleType","$schemaValue","$lvl","level","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","allErrors","$isData","dataPathArr","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$errorKeyword","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opStr","$opExpr","$$outStack","createErrors","messages","verbose","__err","pop","compositeRule","Math","14","15","unicode","16","17","$it","$closingBraces","$nextValid","$currentBaseId","$allSchemasEmpty","arr1","$sch","$i","l1","strictKeywords","18","$valid","$errs","$wasComposite","19","20","21","$idx","$dataNxt","$nextData","$nonEmptySchema","$passData","$code","22","$compile","$inline","$macro","$ruleValidate","$validateCode","$rule","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","passContext","$parentData","$parentDataProperty","def_callRuleValidate","def_customError","23","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$propertyKey","$useData","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","arr2","i2","l2","24","$vSchema","25","format","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","warn","indexOf","$formatRef","26","$thenSch","$elseSch","$thenPresent","$elsePresent","$ifClause","27","allOf","contains","enum","if","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","oneOf","pattern","propertyNames","uniqueItems","./_limit","./_limitItems","./_limitLength","./_limitProperties","./allOf","./anyOf","./comment","./const","./contains","./dependencies","./enum","./format","./if","./items","./multipleOf","./not","./oneOf","./pattern","./properties","./propertyNames","./ref","./required","./uniqueItems","./validate","28","$additionalItems","additionalItems","$currErrSchemaPath","29","multipleOfPrecision","30","$allErrorsOption","31","$prevValid","$passingSchemas","32","$regexp","33","$key","$dataProperties","$schemaKeys","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","i1","$pProperty","$additionalProperty","$useDefaults","useDefaults","arr3","i3","l3","$hasDefault","default","arr4","i4","l4","34","$invalidName","35","$refCode","$refVal","$message","missingRefs","__callValidate","36","$propertySch","$loopRequired","37","$itemType","$typeIsArray","38","$refKeywords","$unknownKwd","$keywordsMsg","$top","rootId","strictDefaults","$defaultMsg","$closingBraces1","$closingBraces2","$typeSchema","nullable","extendRefs","coerceTypes","$coerceToTypes","$rulesGroup","$shouldUseGroup","$dataType","$coerced","$bracesCoercion","$type","arr5","i5","l5","$shouldUseRule","impl","$ruleImplementsSomeKeyword","39","definitionSchema","add","validateKeyword","_addRule","ruleGroup","rg","remove","throwError","_validateKeyword","./definition_schema","./dotjs/custom","40","description","41","title","schemaArray","nonNegativeInteger","nonNegativeIntegerDefault0","stringArray","readOnly","examples","exclusiveMinimum","exclusiveMaximum","contentMediaType","contentEncoding","else","42","keyList","hasProp","arrA","arrB","dateA","Date","dateB","getTime","regexpA","regexpB","toString","43","cmp","cycles","node","seen","toJSON","isFinite","TypeError","seenIndex","sort","44","cb","_traverse","pre","post","arrayKeywords","propsKeywords","skipKeywords","45","merge","_len","sets","_key","xl","x","subexp","typeOf","shift","toLowerCase","toUpperCase","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","IPRIVATE$$","UNRESERVED$$","SCHEME$","USERINFO$","DEC_OCTET_RELAXED$","IPV4ADDRESS$","H16$","LS32$","IPV6ADDRESS$","ZONEID$","IP_LITERAL$","REG_NAME$","HOST$","PORT$","AUTHORITY$","PCHAR$","SEGMENT$","SEGMENT_NZ$","SEGMENT_NZ_NC$","PATH_ABEMPTY$","PATH_ABSOLUTE$","PATH_NOSCHEME$","PATH_ROOTLESS$","PATH_EMPTY$","QUERY$","FRAGMENT$","HIER_PART$","NOT_SCHEME","NOT_USERINFO","NOT_HOST","NOT_PATH","NOT_PATH_NOSCHEME","NOT_QUERY","NOT_FRAGMENT","ESCAPE","UNRESERVED","OTHER_CHARS","PCT_ENCODED","IPV4ADDRESS","IPV6ADDRESS","URI_PROTOCOL","IRI_PROTOCOL","slicedToArray","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","err","sliceIterator","maxInt","regexPunycode","regexNonASCII","regexSeparators","overflow","not-basic","invalid-input","floor","stringFromCharCode","String","fromCharCode","error$1","RangeError","mapDomain","string","fn","ucs2decode","output","counter","extra","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","baseMinusTMin","base","decode","input","codePoint","inputLength","bias","basic","lastIndexOf","oldi","w","baseMinusT","fromCodePoint","encode","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_currentValue2","return","basicLength","handledCPCount","m","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","currentValue","handledCPCountPlusOne","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_currentValue","q","qMinusT","punycode","version","ucs2","from","toConsumableArray","toASCII","toUnicode","SCHEMES","pctEncChar","chr","pctDecChars","newStr","il","parseInt","substr","c2","_c","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","scheme","userinfo","host","query","_stripLeadingZeros","_normalizeIPv4","address","_normalizeIPv6","_matches2","zone","_address$toLowerCase$","reverse","_address$toLowerCase$2","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","longestZeroFields","reduce","acc","field","lastLongest","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","uriString","options","iri","reference","port","isNaN","schemeHandler","unicodeSupport","domainHost","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","uriTokens","authority","_","$1","$2","charAt","absolutePath","resolveComponents","relative","target","tolerant","unescapeComponent","handler","handler$1","O","VCHAR$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","handler$2","mailtoComponents","unknownHeaders","headers","hfields","hfield","toAddrs","_x","_xl","subject","body","_x2","_xl2","addr","setInterval","toAddr","atIdx","localPart","domain","name","URN_PARSE","handler$3","urnComponents","nid","nss","uriComponents","handler$4","uuidComponents","baseURI","relativeURI","schemelessOptions","assign","uriA","uriB","escapeComponent","defineProperty","factory","compileSchema","$dataMetaSchema","schemaKeyRef","_meta","_skipValidation","checkUnique","addMetaSchema","skipValidation","throwOrLogError","defaultMeta","META_SCHEMA_ID","keyRef","_getSchemaObj","_fragments","_getSchemaFragment","removeSchema","_removeAllSchemas","cacheKey","addFormat","separator","text","dataPath","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","currentOpts","_metaOpts","_validate","customKeyword","addKeyword","getKeyword","removeKeyword","META_IGNORE_OPTIONS","META_SUPPORT_DATA","log","noop","console","setLogger","cache","_get$IdOrId","_get$Id","chooseGetId","errorDataPath","metaOpts","getMetaSchemaOptions","addInitialFormats","$dataSchema","addDefaultMetaSchema","optsSchemas","schemas","addInitialSchemas","./cache","./compile","./compile/async","./compile/error_classes","./compile/formats","./compile/resolve","./compile/rules","./compile/schema_obj","./compile/util","./data","./keyword","./refs/data.json"],"mappings":";CAAA,SAAUA,GAAG,GAAoB,iBAAVC,SAAoC,oBAATC,OAAsBA,OAAOD,QAAQD,SAAS,GAAmB,mBAATG,QAAqBA,OAAOC,IAAKD,OAAO,GAAGH,OAAO,EAA0B,oBAATK,OAAwBA,OAA+B,oBAATC,OAAwBA,OAA6B,oBAAPC,KAAsBA,KAAYC,MAAOC,IAAMT,KAAxT,CAA+T,WAAqC,OAAmB,SAASU,EAAEC,EAAEC,EAAEC,GAAG,SAASC,EAAEC,EAAEf,GAAG,IAAIY,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,IAAIC,EAAE,mBAAmBC,SAASA,QAAQ,IAAIjB,GAAGgB,EAAE,OAAOA,EAAED,GAAE,GAAI,GAAGG,EAAE,OAAOA,EAAEH,GAAE,GAAI,IAAII,EAAE,IAAIC,MAAM,uBAAuBL,EAAE,KAAK,MAAMI,EAAEE,KAAK,mBAAmBF,EAAE,IAAIG,EAAEV,EAAEG,GAAG,CAACd,QAAQ,IAAIU,EAAEI,GAAG,GAAGQ,KAAKD,EAAErB,QAAQ,SAASS,GAAoB,OAAOI,EAAlBH,EAAEI,GAAG,GAAGL,IAAeA,IAAIY,EAAEA,EAAErB,QAAQS,EAAEC,EAAEC,EAAEC,GAAG,OAAOD,EAAEG,GAAGd,QAAQ,IAAI,IAAIiB,EAAE,mBAAmBD,SAASA,QAAQF,EAAE,EAAEA,EAAEF,EAAEW,OAAOT,IAAID,EAAED,EAAEE,IAAI,OAAOD,EAA7b,CAA4c,CAACW,EAAE,CAAC,SAASR,EAAQf,EAAOD,GACn1B,aAGA,IAAIyB,EAAQxB,EAAOD,QAAU,WAC3BO,KAAKmB,OAAS,IAIhBD,EAAME,UAAUC,IAAM,SAAmBC,EAAKC,GAC5CvB,KAAKmB,OAAOG,GAAOC,GAIrBL,EAAME,UAAUI,IAAM,SAAmBF,GACvC,OAAOtB,KAAKmB,OAAOG,IAIrBJ,EAAME,UAAUK,IAAM,SAAmBH,UAChCtB,KAAKmB,OAAOG,IAIrBJ,EAAME,UAAUM,MAAQ,WACtB1B,KAAKmB,OAAS,KAGd,IAAIQ,EAAE,CAAC,SAASlB,EAAQf,EAAOD,GACjC,aAEA,IAAImC,EAAkBnB,EAAQ,mBAAmBoB,WAEjDnC,EAAOD,QAYP,SAASqC,EAAaC,EAAQC,EAAMC,GAIlC,IAAIlC,EAAOC,KACX,GAAoC,mBAAzBA,KAAKkC,MAAMC,WACpB,MAAM,IAAIvB,MAAM,2CAEC,mBAARoB,IACTC,EAAWD,EACXA,OAAOI,GAGT,IAAItB,EAAIuB,EAAiBN,GAAQO,KAAK,WACpC,IAAIC,EAAYxC,EAAKyC,WAAWT,OAAQK,EAAWJ,GACnD,OAAOO,EAAUE,UAAYC,EAAcH,KAGzCN,GACFnB,EAAEwB,KACA,SAASK,GAAKV,EAAS,KAAMU,IAC7BV,GAIJ,OAAOnB,EAGP,SAASuB,EAAiBO,GACxB,IAAIC,EAAUD,EAAIC,QAClB,OAAOA,IAAY9C,EAAK+C,UAAUD,GACxBf,EAAaf,KAAKhB,EAAM,CAAEgD,KAAMF,IAAW,GAC3CG,QAAQC,UAIpB,SAASP,EAAcH,GACrB,IAAM,OAAOxC,EAAKmD,SAASX,GAC3B,MAAMpC,GACJ,GAAIA,aAAayB,EAAiB,OAAOuB,EAAkBhD,GAC3D,MAAMA,EAIR,SAASgD,EAAkBhD,GACzB,IAAIiD,EAAMjD,EAAEkD,cACZ,GAAIC,EAAMF,GAAM,MAAM,IAAIxC,MAAM,UAAYwC,EAAM,kBAAoBjD,EAAEoD,WAAa,uBAErF,IAAIC,EAAgBzD,EAAK0D,gBAAgBL,GAMzC,OALKI,IACHA,EAAgBzD,EAAK0D,gBAAgBL,GAAOrD,EAAKmC,MAAMC,WAAWiB,IACpDd,KAAKoB,EAAeA,GAG7BF,EAAclB,KAAK,SAAUM,GAClC,IAAKU,EAAMF,GACT,OAAOf,EAAiBO,GAAKN,KAAK,WAC3BgB,EAAMF,IAAMrD,EAAK4D,UAAUf,EAAKQ,OAAKhB,EAAWJ,OAGxDM,KAAK,WACN,OAAOI,EAAcH,KAGvB,SAASmB,WACA3D,EAAK0D,gBAAgBL,GAG9B,SAASE,EAAMF,GACb,OAAOrD,EAAK6D,MAAMR,IAAQrD,EAAK8D,SAAST,QAM9C,CAACU,kBAAkB,IAAIC,EAAE,CAAC,SAAStD,EAAQf,EAAOD,GACpD,aAEA,IAAIwD,EAAUxC,EAAQ,aAoBtB,SAASmB,EAAgBoC,EAAQZ,EAAKa,GACpCjE,KAAKiE,QAAUA,GAAWrC,EAAgBqC,QAAQD,EAAQZ,GAC1DpD,KAAKuD,WAAaN,EAAQiB,IAAIF,EAAQZ,GACtCpD,KAAKqD,cAAgBJ,EAAQkB,YAAYlB,EAAQmB,SAASpE,KAAKuD,aAIjE,SAASc,EAAcC,GAGrB,OAFAA,EAASlD,UAAYmD,OAAOC,OAAO5D,MAAMQ,WACzCkD,EAASlD,UAAUqD,YAAcH,EA3BnC5E,EAAOD,QAAU,CACfiF,WAAYL,EAKd,SAAyBM,GACvB3E,KAAKiE,QAAU,oBACfjE,KAAK2E,OAASA,EACd3E,KAAK4E,IAAM5E,KAAK6E,YAAa,IAP7BhD,WAAYwC,EAAczC,IAW5BA,EAAgBqC,QAAU,SAAUD,EAAQZ,GAC1C,MAAO,2BAA8BA,EAAM,YAAcY,IAiBzD,CAACc,YAAY,IAAIC,EAAE,CAAC,SAAStE,EAAQf,EAAOD,GAC9C,aAEA,IAAIuF,EAAOvE,EAAQ,UAEfwE,EAAO,6BACPC,EAAO,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAC3CC,EAAO,oDACPC,EAAW,qFACXC,EAAM,+nCAGNC,EAAc,oLAKdC,EAAM,4rDACNC,EAAO,+DACPC,EAAe,4BACfC,EAA4B,+DAC5BC,EAAwB,mDAK5B,SAASC,EAAQC,GAEf,OAAOb,EAAKc,KAAKF,EADjBC,EAAe,QAARA,EAAiB,OAAS,SA+DnC,SAASE,EAAKC,GAEZ,IAAIC,EAAUD,EAAIE,MAAMjB,GACxB,IAAKgB,EAAS,OAAO,EAErB,IAXkBE,EAYdC,GAASH,EAAQ,GACjBI,GAAOJ,EAAQ,GAEnB,OAAgB,GAATG,GAAcA,GAAS,IAAa,GAAPC,GAC5BA,IAAiB,GAATD,KAhBED,GAWNF,EAAQ,IATN,GAAM,GAAME,EAAO,KAAQ,GAAKA,EAAO,KAAQ,GAcPjB,EAAKkB,GAAV,IAInD,SAASE,EAAKN,EAAKO,GACjB,IAAIN,EAAUD,EAAIE,MAAMf,GACxB,IAAKc,EAAS,OAAO,EAErB,IAAIO,EAAOP,EAAQ,GACfQ,EAASR,EAAQ,GACjBS,EAAST,EAAQ,GAErB,OAASO,GAAQ,IAAMC,GAAU,IAAMC,GAAU,IAChC,IAARF,GAAwB,IAAVC,GAA0B,IAAVC,MAC9BH,GAHMN,EAAQ,KAvFzBvG,EAAOD,QAAUmG,GAQTe,KAAO,CAEbZ,KAAM,6BAENO,KAAM,wEACNM,YAAa,oGAEbC,IAAK,4CACLC,gBAAiB,yEACjBC,eAAgBzB,EAChBpB,IAAKqB,EAILyB,MAAO,mHACPC,SAAU7B,EAEV8B,KAAM,4EAENC,KAAM,qpCACNC,MAAOA,EAEPC,KAAM7B,EAGN8B,eAAgB7B,EAChB8B,4BAA6B7B,EAE7B8B,wBAAyB7B,GAI3BC,EAAQW,KAAO,CACbR,KAAMA,EACNO,KAAMA,EACNM,YAoDF,SAAmBZ,GAEjB,IAAIyB,EAAWzB,EAAI0B,MAAMC,GACzB,OAA0B,GAAnBF,EAASzG,QAAe+E,EAAK0B,EAAS,KAAOnB,EAAKmB,EAAS,IAAI,IAtDtEZ,IAkEF,SAAab,GAEX,OAAO4B,EAAiBC,KAAK7B,IAAQX,EAAIwC,KAAK7B,IAnE9Cc,gBA3DW,yoCA4DXC,eAAgBzB,EAChBpB,IAAKqB,EACLyB,MAAO,2IACPC,SAqDF,SAAkBjB,GAGhB,OAAOA,EAAIhF,QAAU,KAAOoE,EAASyC,KAAK7B,IAvD1CkB,KAAM,4EACNC,KAAM,qpCACNC,MAAOA,EACPC,KAAM7B,EACN8B,eAAgB7B,EAChB8B,4BAA6B7B,EAC7B8B,wBAAyB7B,GAsC3B,IAAIgC,EAAsB,QAe1B,IAAIC,EAAmB,OAOvB,IAAIE,EAAW,WACf,SAASV,EAAMpB,GACb,GAAI8B,EAASD,KAAK7B,GAAM,OAAO,EAC/B,IAEE,OADA,IAAI+B,OAAO/B,IACJ,EACP,MAAM7F,GACN,OAAO,KAIT,CAAC6H,SAAS,KAAKC,EAAE,CAAC,SAASxH,EAAQf,EAAOD,GAC5C,aAEA,IAAIwD,EAAUxC,EAAQ,aAClBuE,EAAOvE,EAAQ,UACfyH,EAAezH,EAAQ,mBACvB0H,EAAkB1H,EAAQ,8BAE1B2H,EAAoB3H,EAAQ,qBAM5B4H,EAAarD,EAAKqD,WAClBC,EAAQ7H,EAAQ,mBAGhB8H,EAAkBL,EAAaxD,WAySnC,SAAS8D,EAAezG,EAAQ0G,EAAMzE,GAEpC,IAAI0E,EAAQC,EAAU5H,KAAKf,KAAM+B,EAAQ0G,EAAMzE,GAC/C,OAAa,GAAT0E,EAAmB,CAAEA,MAAOA,EAAOE,WAAW,GAO3C,CAAEF,MANTA,EAAQ1I,KAAK6I,cAAc7H,OAMJ4H,YALvB5I,KAAK6I,cAAcH,GAAS,CAC1B3G,OAAQA,EACR0G,KAAMA,EACNzE,OAAQA,KAaZ,SAAS8E,EAAa/G,EAAQ0G,EAAMzE,GAElC,IAAIzD,EAAIoI,EAAU5H,KAAKf,KAAM+B,EAAQ0G,EAAMzE,GAClC,GAALzD,GAAQP,KAAK6I,cAAcE,OAAOxI,EAAG,GAY3C,SAASoI,EAAU5G,EAAQ0G,EAAMzE,GAE/B,IAAK,IAAIzD,EAAE,EAAGA,EAAEP,KAAK6I,cAAc7H,OAAQT,IAAK,CAC9C,IAAIC,EAAIR,KAAK6I,cAActI,GAC3B,GAAIC,EAAEuB,QAAUA,GAAUvB,EAAEiI,MAAQA,GAAQjI,EAAEwD,QAAUA,EAAQ,OAAOzD,EAEzE,OAAQ,EAIV,SAASyI,EAAYzI,EAAG0I,GACtB,MAAO,cAAgB1I,EAAI,iBAAmByE,EAAKkE,eAAeD,EAAS1I,IAAM,KAInF,SAAS4I,EAAY5I,GACnB,MAAO,cAAgBA,EAAI,eAAiBA,EAAI,KAIlD,SAAS6I,EAAW7I,EAAG8I,GACrB,YAAqBjH,IAAdiH,EAAO9I,GAAmB,GAAK,aAAeA,EAAI,aAAeA,EAAI,KAI9E,SAAS+I,EAAe/I,GACtB,MAAO,iBAAmBA,EAAI,kBAAoBA,EAAI,KAIxD,SAASgJ,EAAKC,EAAKC,GACjB,IAAKD,EAAIxI,OAAQ,MAAO,GAExB,IADA,IAAIH,EAAO,GACFN,EAAE,EAAGA,EAAEiJ,EAAIxI,OAAQT,IAC1BM,GAAQ4I,EAAUlJ,EAAGiJ,GACvB,OAAO3I,EA9WTnB,EAAOD,QAYP,SAASiK,EAAQ3H,EAAQ0G,EAAMkB,EAAW3F,GAGxC,IAAIjE,EAAOC,KACP4J,EAAO5J,KAAKkC,MACZmH,EAAS,MAAEjH,GACXyH,EAAO,GACPZ,EAAW,GACXa,EAAe,GACfC,EAAW,GACXC,EAAe,GACfC,EAAc,GAElBxB,EAAOA,GAAQ,CAAE1G,OAAQA,EAAQsH,OAAQA,EAAQQ,KAAMA,GAEvD,IAAIrJ,EAAIgI,EAAezH,KAAKf,KAAM+B,EAAQ0G,EAAMzE,GAChD,IAAIkG,EAAclK,KAAK6I,cAAcrI,EAAEkI,OACvC,GAAIlI,EAAEoI,UAAW,OAAQsB,EAAYC,aAAeA,EAEpD,IAAIvE,EAAU5F,KAAKoK,SACnB,IAAIC,EAAQrK,KAAKqK,MAEjB,IACE,IAAI1H,EAAI2H,EAAavI,EAAQ0G,EAAMkB,EAAW3F,GAC9CkG,EAAYzH,SAAWE,EACvB,IAAI4H,EAAKL,EAAYC,aAUrB,OATII,IACFA,EAAGxI,OAASY,EAAEZ,OACdwI,EAAG5F,OAAS,KACZ4F,EAAGV,KAAOlH,EAAEkH,KACZU,EAAGlB,OAAS1G,EAAE0G,OACdkB,EAAG9B,KAAO9F,EAAE8F,KACZ8B,EAAGC,OAAS7H,EAAE6H,OACVZ,EAAKa,aAAYF,EAAGG,OAAS/H,EAAE+H,SAE9B/H,EACP,QACAmG,EAAa/H,KAAKf,KAAM+B,EAAQ0G,EAAMzE,GAIxC,SAASmG,IAEP,IAAI1H,EAAWyH,EAAYzH,SACvBkI,EAASlI,EAASmI,MAAM5K,KAAM6K,WAElC,OADAV,EAAaxF,OAASlC,EAASkC,OACxBgG,EAGT,SAASL,EAAaQ,EAASC,EAAOpB,EAAW3F,GAC/C,IAAIgH,GAAUD,GAAUA,GAASA,EAAMhJ,QAAU+I,EACjD,GAAIC,EAAMhJ,QAAU0G,EAAK1G,OACvB,OAAO2H,EAAQ3I,KAAKhB,EAAM+K,EAASC,EAAOpB,EAAW3F,GAEvD,IAgCIvB,EAhCA+H,GAA4B,IAAnBM,EAAQN,OAEjBC,EAAarC,EAAkB,CACjC6C,OAAO,EACPlJ,OAAQ+I,EACRE,OAAQA,EACRhH,OAAQA,EACRyE,KAAMsC,EACNG,WAAY,GACZC,cAAe,IACfC,UAAW,KACXxJ,gBAAiBsG,EAAarG,WAC9BwI,MAAOA,EACP5H,SAAU2F,EACVpD,KAAMA,EACN/B,QAASA,EACToI,WAAYA,EACZC,WAAYA,EACZC,WAAYA,EACZC,cAAeA,EACf5B,KAAMA,EACNhE,QAASA,EACT6F,OAAQ1L,EAAK0L,OACb1L,KAAMA,IAGR0K,EAAalB,EAAKF,EAAQD,GAAcG,EAAKN,EAAUD,GACtCO,EAAKQ,EAAUZ,GAAeI,EAAKU,EAAaX,GAChDmB,EAEbb,EAAK8B,cAAajB,EAAab,EAAK8B,YAAYjB,IAGpD,IACE,IAAIkB,EAAe,IAAIC,SACrB,OACA,QACA,UACA,OACA,SACA,WACA,cACA,QACA,aACA,kBACAnB,GAGFhI,EAAWkJ,EACT5L,EACAsK,EACAzE,EACA6C,EACAY,EACAU,EACAE,EACA3B,EACAD,EACAE,GAGFc,EAAO,GAAK5G,EACZ,MAAMtC,GAEN,MADAJ,EAAK0L,OAAOI,MAAM,yCAA0CpB,GACtDtK,EAiBR,OAdAsC,EAASV,OAAS+I,EAClBrI,EAASkC,OAAS,KAClBlC,EAASoH,KAAOA,EAChBpH,EAAS4G,OAASA,EAClB5G,EAASgG,KAAOuC,EAASvI,EAAWsI,EAChCP,IAAQ/H,EAAS+H,QAAS,IACN,IAApBZ,EAAKa,aACPhI,EAASiI,OAAS,CAChB7J,KAAM4J,EACNxB,SAAUA,EACVc,SAAUA,IAIPtH,EAGT,SAAS4I,EAAWrH,EAAQZ,EAAK4H,GAC/B5H,EAAMH,EAAQiB,IAAIF,EAAQZ,GAC1B,IACI0I,EAASC,EADTC,EAAWnC,EAAKzG,GAEpB,QAAiBhB,IAAb4J,EAGF,OAAOC,EAFPH,EAAUzC,EAAO2C,GACjBD,EAAU,UAAYC,EAAW,KAGnC,IAAKhB,GAAUvC,EAAKoB,KAAM,CACxB,IAAIqC,EAAYzD,EAAKoB,KAAKzG,GAC1B,QAAkBhB,IAAd8J,EAGF,OADAH,EAAUI,EAAY/I,EADtB0I,EAAUrD,EAAKY,OAAO6C,IAEfD,EAAYH,EAASC,GAIhCA,EAAUI,EAAY/I,GACtB,IAAIT,EAAIM,EAAQlC,KAAKhB,EAAMuK,EAAc7B,EAAMrF,GAC/C,QAAUhB,IAANO,EAAiB,CACnB,IAAIyJ,EAAczC,GAAaA,EAAUvG,GACrCgJ,IACFzJ,EAAIM,EAAQoJ,UAAUD,EAAaxC,EAAK0C,YAClCF,EACA1C,EAAQ3I,KAAKhB,EAAMqM,EAAa3D,EAAMkB,EAAW3F,IAI3D,QAAU5B,IAANO,EAIF,OAiBF0G,EADYQ,EAjBMzG,IAAKT,EACdsJ,EAAYtJ,EAAGoJ,UAYjBlC,EAfUzG,GAOnB,SAAS+I,EAAY/I,EAAKT,GACxB,IAAI4J,EAAQlD,EAAOrI,OAGnB,OAFAqI,EAAOkD,GAAS5J,EAET,UADPkH,EAAKzG,GAAOmJ,GAad,SAASN,EAAY5C,EAAQxI,GAC3B,MAAwB,iBAAVwI,GAAuC,kBAAVA,EACjC,CAAExI,KAAMA,EAAMkB,OAAQsH,EAAQmD,QAAQ,GACtC,CAAE3L,KAAMA,EAAM2J,OAAQnB,KAAYA,EAAOmB,QAGrD,SAASc,EAAWmB,GAClB,IAAI/D,EAAQoB,EAAa2C,GAKzB,YAJcrK,IAAVsG,IACFA,EAAQoB,EAAa2C,GAAYxD,EAASjI,OAC1CiI,EAASP,GAAS+D,GAEb,UAAY/D,EAGrB,SAAS6C,EAAWhK,GAClB,cAAeA,GACb,IAAK,UACL,IAAK,SACH,MAAO,GAAKA,EACd,IAAK,SACH,OAAOyD,EAAKkE,eAAe3H,GAC7B,IAAK,SACH,GAAc,OAAVA,EAAgB,MAAO,OAC3B,IAAImL,EAAWvE,EAAgB5G,GAC3BmH,EAAQsB,EAAa0C,GAKzB,YAJctK,IAAVsG,IACFA,EAAQsB,EAAa0C,GAAY3C,EAAS/I,OAC1C+I,EAASrB,GAASnH,GAEb,UAAYmH,GAIzB,SAAS8C,EAAcmB,EAAM5K,EAAQ6K,EAAcC,GACjD,IAAkC,IAA9B9M,EAAKmC,MAAM4K,eAA0B,CACvC,IAAIC,EAAOJ,EAAKK,WAAWC,aAC3B,GAAIF,IAASA,EAAKG,MAAM,SAASC,GAC/B,OAAO5I,OAAOnD,UAAUgM,eAAerM,KAAK6L,EAAcO,KAE1D,MAAM,IAAIvM,MAAM,kDAAoDmM,EAAKM,KAAK,MAEhF,IAAIP,EAAiBH,EAAKK,WAAWF,eACrC,GAAIA,EAAgB,CAClB,IAAIQ,EAAQR,EAAe/K,GAC3B,IAAKuL,EAAO,CACV,IAAIrJ,EAAU,8BAAgClE,EAAKwN,WAAWT,EAAenI,QAC7E,GAAiC,OAA7B5E,EAAKmC,MAAM4K,eACV,MAAM,IAAIlM,MAAMqD,GADmBlE,EAAK0L,OAAOI,MAAM5H,KAMhE,IAIIxB,EAJAiH,EAAUiD,EAAKK,WAAWtD,QAC1B8C,EAASG,EAAKK,WAAWR,OACzBgB,EAAQb,EAAKK,WAAWQ,MAG5B,GAAI9D,EACFjH,EAAWiH,EAAQ3I,KAAKhB,EAAMgC,EAAQ6K,EAAcC,QAC/C,GAAIW,EACT/K,EAAW+K,EAAMzM,KAAKhB,EAAMgC,EAAQ6K,EAAcC,IACtB,IAAxBjD,EAAKkD,gBAA0B/M,EAAK+M,eAAerK,GAAU,QAC5D,GAAI+J,EACT/J,EAAW+J,EAAOzL,KAAKhB,EAAM8M,EAAIF,EAAKQ,QAASpL,EAAQ6K,QAGvD,KADAnK,EAAWkK,EAAKK,WAAWvK,UACZ,OAGjB,QAAiBL,IAAbK,EACF,MAAM,IAAI7B,MAAM,mBAAqB+L,EAAKQ,QAAU,sBAEtD,IAAIzE,EAAQuB,EAAYjJ,OAGxB,MAAO,CACLH,KAAM,aAAe6H,EACrBjG,SAJFwH,EAAYvB,GAASjG,MA4FvB,CAACgL,oBAAoB,GAAG3J,kBAAkB,EAAEgB,YAAY,EAAEkD,SAAS,GAAG0F,kBAAkB,GAAGC,6BAA6B,KAAKC,EAAE,CAAC,SAASnN,EAAQf,EAAOD,GAC1J,aAEA,IAAI4F,EAAM5E,EAAQ,UACd6H,EAAQ7H,EAAQ,mBAChBuE,EAAOvE,EAAQ,UACfoN,EAAepN,EAAQ,gBACvBqN,EAAWrN,EAAQ,wBAmBvB,SAASwC,EAAQyG,EAASjB,EAAMrF,GAE9B,IAAIiG,EAASrJ,KAAK4D,MAAMR,GACxB,GAAqB,iBAAViG,EAAoB,CAC7B,IAAIrJ,KAAK4D,MAAMyF,GACV,OAAOpG,EAAQlC,KAAKf,KAAM0J,EAASjB,EAAMY,GADtBA,EAASrJ,KAAK4D,MAAMyF,GAK9C,IADAA,EAASA,GAAUrJ,KAAK6D,SAAST,cACXyK,EACpB,OAAOxB,EAAUhD,EAAOtH,OAAQ/B,KAAKkC,MAAMoK,YACjCjD,EAAOtH,OACPsH,EAAO5G,UAAYzC,KAAKkD,SAASmG,GAG7C,IACItH,EAAQY,EAAGqB,EADX+J,EAAMC,EAAcjN,KAAKf,KAAMyI,EAAMrF,GAgBzC,OAdI2K,IACFhM,EAASgM,EAAIhM,OACb0G,EAAOsF,EAAItF,KACXzE,EAAS+J,EAAI/J,QAGXjC,aAAkB8L,EACpBlL,EAAIZ,EAAOU,UAAYiH,EAAQ3I,KAAKf,KAAM+B,EAAOA,OAAQ0G,OAAMrG,EAAW4B,QACtD5B,IAAXL,IACTY,EAAI0J,EAAUtK,EAAQ/B,KAAKkC,MAAMoK,YAC3BvK,EACA2H,EAAQ3I,KAAKf,KAAM+B,EAAQ0G,OAAMrG,EAAW4B,IAG7CrB,EAWT,SAASqL,EAAcvF,EAAMrF,GAE3B,IAAItC,EAAIuE,EAAI4I,MAAM7K,GACd8K,EAAUC,EAAarN,GACvBkD,EAASoK,EAAYpO,KAAKqO,OAAO5F,EAAK1G,SAC1C,GAAwC,IAApCwC,OAAO+J,KAAK7F,EAAK1G,QAAQf,QAAgBkN,IAAYlK,EAAQ,CAC/D,IAAIuK,EAAKpK,EAAY+J,GACjB7E,EAASrJ,KAAK4D,MAAM2K,GACxB,GAAqB,iBAAVlF,EACT,OAuBN,SAA0BZ,EAAMrF,EAAKoL,GAEnC,IAAIT,EAAMC,EAAcjN,KAAKf,KAAMyI,EAAMrF,GACzC,GAAI2K,EAAK,CACP,IAAIhM,EAASgM,EAAIhM,OACbiC,EAAS+J,EAAI/J,OACjByE,EAAOsF,EAAItF,KACX,IAAI8F,EAAKvO,KAAKqO,OAAOtM,GAErB,OADIwM,IAAIvK,EAASyK,EAAWzK,EAAQuK,IAC7BG,EAAe3N,KAAKf,KAAMwO,EAAWxK,EAAQjC,EAAQ0G,KAhClC1H,KAAKf,KAAMyI,EAAMY,EAAQvI,GAC5C,GAAIuI,aAAkBwE,EACtBxE,EAAO5G,UAAUzC,KAAKkD,SAASmG,GACpCZ,EAAOY,MACF,CAEL,MADAA,EAASrJ,KAAK6D,SAAS0K,cACDV,GAMpB,OAJA,GADKxE,EAAO5G,UAAUzC,KAAKkD,SAASmG,GAChCkF,GAAMpK,EAAYf,GACpB,MAAO,CAAErB,OAAQsH,EAAQZ,KAAMA,EAAMzE,OAAQA,GAC/CyE,EAAOY,EAKX,IAAKZ,EAAK1G,OAAQ,OAClBiC,EAASoK,EAAYpO,KAAKqO,OAAO5F,EAAK1G,SAExC,OAAO2M,EAAe3N,KAAKf,KAAMc,EAAGkD,EAAQyE,EAAK1G,OAAQ0G,IAtF3D/I,EAAOD,QAAUwD,GAETkB,YAAcA,EACtBlB,EAAQmB,SAAWgK,EACnBnL,EAAQiB,IAAMuK,EACdxL,EAAQ0L,IA0NR,SAAoB5M,GAClB,IAAI6M,EAAWzK,EAAYnE,KAAKqO,OAAOtM,IACnC8M,EAAU,CAACC,GAAIF,GACfG,EAAY,CAACD,GAAIV,EAAYQ,GAAU,IACvCjF,EAAY,GACZ5J,EAAOC,KAgCX,OA9BA8N,EAAS/L,EAAQ,CAACiN,SAAS,GAAO,SAASpM,EAAKqM,EAASC,EAAYC,EAAeC,EAAexC,EAAcyC,GAC/G,GAAgB,KAAZJ,EAAJ,CACA,IAAIV,EAAKxO,EAAKsO,OAAOzL,GACjBoB,EAAS6K,EAAQM,GACjB/K,EAAW2K,EAAUI,GAAiB,IAAMC,EAIhD,QAHiBhN,IAAbiN,IACFjL,GAAY,KAA0B,iBAAZiL,EAAuBA,EAAWrK,EAAKsK,eAAeD,KAEjE,iBAANd,EAAgB,CACzBA,EAAKvK,EAASG,EAAYH,EAASqB,EAAIpC,QAAQe,EAAQuK,GAAMA,GAE7D,IAAIlF,EAAStJ,EAAK6D,MAAM2K,GAExB,GADqB,iBAAVlF,IAAoBA,EAAStJ,EAAK6D,MAAMyF,IAC/CA,GAAUA,EAAOtH,QACnB,IAAKuG,EAAM1F,EAAKyG,EAAOtH,QACrB,MAAM,IAAInB,MAAM,OAAS2N,EAAK,2CAC3B,GAAIA,GAAMpK,EAAYC,GAC3B,GAAa,KAATmK,EAAG,GAAW,CAChB,GAAI5E,EAAU4E,KAAQjG,EAAM1F,EAAK+G,EAAU4E,IACzC,MAAM,IAAI3N,MAAM,OAAS2N,EAAK,sCAChC5E,EAAU4E,GAAM3L,OAEhB7C,EAAK6D,MAAM2K,GAAMnK,EAIvByK,EAAQI,GAAWjL,EACnB+K,EAAUE,GAAW7K,KAGhBuF,GA9PT1G,EAAQoJ,UAAYA,EACpBpJ,EAAQlB,OAASiM,EAkGjB,IAAIuB,EAAuBvK,EAAKwK,OAAO,CAAC,aAAc,oBAAqB,OAAQ,eAAgB,gBAEnG,SAASd,EAAeF,EAAWxK,EAAQjC,EAAQ0G,GAGjD,GADA+F,EAAUiB,SAAWjB,EAAUiB,UAAY,GACN,KAAjCjB,EAAUiB,SAASC,MAAM,EAAE,GAA/B,CAGA,IAFA,IAAIC,EAAQnB,EAAUiB,SAAS/H,MAAM,KAE5BnH,EAAI,EAAGA,EAAIoP,EAAM3O,OAAQT,IAAK,CACrC,IAAIqP,EAAOD,EAAMpP,GACjB,GAAIqP,EAAM,CAGR,QAAexN,KADfL,EAASA,EADT6N,EAAO5K,EAAK6K,iBAAiBD,KAEH,MAC1B,IAAIrB,EACJ,IAAKgB,EAAqBK,MACxBrB,EAAKvO,KAAKqO,OAAOtM,MACTiC,EAASyK,EAAWzK,EAAQuK,IAChCxM,EAAOgB,MAAM,CACf,IAAIA,EAAO0L,EAAWzK,EAAQjC,EAAOgB,MACjCgL,EAAMC,EAAcjN,KAAKf,KAAMyI,EAAM1F,GACrCgL,IACFhM,EAASgM,EAAIhM,OACb0G,EAAOsF,EAAItF,KACXzE,EAAS+J,EAAI/J,UAMvB,YAAe5B,IAAXL,GAAwBA,IAAW0G,EAAK1G,OACnC,CAAEA,OAAQA,EAAQ0G,KAAMA,EAAMzE,OAAQA,QAD/C,GAKF,IAAI8L,EAAiB9K,EAAKwK,OAAO,CAC/B,OAAQ,SAAU,UAClB,YAAa,YACb,gBAAiB,gBACjB,WAAY,WACZ,UAAW,UACX,cAAe,aACf,WAAY,SAEd,SAASnD,EAAUtK,EAAQgO,GACzB,OAAc,IAAVA,SACU3N,IAAV2N,IAAiC,IAAVA,EAK7B,SAASC,EAAWjO,GAClB,IAAIkO,EACJ,GAAIC,MAAMC,QAAQpO,IAChB,IAAK,IAAIxB,EAAE,EAAGA,EAAEwB,EAAOf,OAAQT,IAE7B,GAAmB,iBADnB0P,EAAOlO,EAAOxB,MACkByP,EAAWC,GAAO,OAAO,OAG3D,IAAK,IAAI3O,KAAOS,EAAQ,CACtB,GAAW,QAAPT,EAAe,OAAO,EAE1B,GAAmB,iBADnB2O,EAAOlO,EAAOT,MACkB0O,EAAWC,GAAO,OAAO,EAG7D,OAAO,EAnB2CD,CAAWjO,GACpDgO,EAsBX,SAASK,EAAUrO,GACjB,IAAekO,EAAXI,EAAQ,EACZ,GAAIH,MAAMC,QAAQpO,IAChB,IAAK,IAAIxB,EAAE,EAAGA,EAAEwB,EAAOf,OAAQT,IAG7B,GADmB,iBADnB0P,EAAOlO,EAAOxB,MACe8P,GAASD,EAAUH,IAC5CI,GAASC,EAAAA,EAAU,OAAOA,EAAAA,OAGhC,IAAK,IAAIhP,KAAOS,EAAQ,CACtB,GAAW,QAAPT,EAAe,OAAOgP,EAAAA,EAC1B,GAAIR,EAAexO,GACjB+O,SAIA,GADmB,iBADnBJ,EAAOlO,EAAOT,MACe+O,GAASD,EAAUH,GAAQ,GACpDI,GAASC,EAAAA,EAAU,OAAOA,EAAAA,EAIpC,OAAOD,EA1CgBD,CAAUrO,IAAWgO,OAAvC,GA8CP,SAAS3B,EAAYG,EAAIgC,GAGvB,OAFkB,IAAdA,IAAqBhC,EAAKpK,EAAYoK,IAEnCJ,EADC9I,EAAI4I,MAAMM,IAKpB,SAASJ,EAAarN,GACpB,OAAOuE,EAAImL,UAAU1P,GAAG4G,MAAM,KAAK,GAAK,IAI1C,IAAI+I,EAAsB,QAC1B,SAAStM,EAAYoK,GACnB,OAAOA,EAAKA,EAAGmC,QAAQD,EAAqB,IAAM,GAIpD,SAAShC,EAAWzK,EAAQuK,GAE1B,OADAA,EAAKpK,EAAYoK,GACVlJ,EAAIpC,QAAQe,EAAQuK,KA6C3B,CAACoC,eAAe,EAAE3I,SAAS,GAAG0F,kBAAkB,GAAGkD,uBAAuB,GAAGC,SAAS,KAAKC,EAAE,CAAC,SAASrQ,EAAQf,EAAOD,GACxH,aAEA,IAAIsR,EAActQ,EAAQ,YACtB+O,EAAS/O,EAAQ,UAAU+O,OAE/B9P,EAAOD,QAAU,WACf,IAAI4K,EAAQ,CACV,CAAE2G,KAAM,SACNC,MAAO,CAAE,CAAEC,QAAW,CAAC,qBACd,CAAEC,QAAW,CAAC,qBAAuB,aAAc,WAC9D,CAAEH,KAAM,SACNC,MAAO,CAAE,YAAa,YAAa,UAAW,WAChD,CAAED,KAAM,QACNC,MAAO,CAAE,WAAY,WAAY,QAAS,WAAY,gBACxD,CAAED,KAAM,SACNC,MAAO,CAAE,gBAAiB,gBAAiB,WAAY,eAAgB,gBAC9D,CAAEG,WAAc,CAAC,uBAAwB,wBACpD,CAAEH,MAAO,CAAE,OAAQ,QAAS,OAAQ,MAAO,QAAS,QAAS,QAAS,QAGpEI,EAAM,CAAE,OAAQ,YA4CpB,OAnCAhH,EAAMiH,IAAM9B,EAAO6B,GACnBhH,EAAMkH,MAAQ/B,EAFF,CAAE,SAAU,UAAW,SAAU,QAAS,SAAU,UAAW,SAI3EnF,EAAMmH,QAAQ,SAAUC,GACtBA,EAAMR,MAAQQ,EAAMR,MAAMS,IAAI,SAAUvE,GACtC,IAAIwE,EACJ,GAAsB,iBAAXxE,EAAqB,CAC9B,IAAI7L,EAAMiD,OAAO+J,KAAKnB,GAAS,GAC/BwE,EAAexE,EAAQ7L,GACvB6L,EAAU7L,EACVqQ,EAAaH,QAAQ,SAAUI,GAC7BP,EAAIQ,KAAKD,GACTvH,EAAMiH,IAAIM,IAAK,IASnB,OANAP,EAAIQ,KAAK1E,GACE9C,EAAMiH,IAAInE,GAAW,CAC9BA,QAASA,EACTtM,KAAMkQ,EAAY5D,GAClB2E,WAAYH,KAKhBtH,EAAMiH,IAAIS,SAAW,CACnB5E,QAAS,WACTtM,KAAMkQ,EAAYgB,UAGhBN,EAAMT,OAAM3G,EAAMkH,MAAME,EAAMT,MAAQS,KAG5CpH,EAAM2H,SAAWxC,EAAO6B,EAAIY,OAxCb,CACb,UAAW,MAAO,KAAM,QAAS,SAAU,QAC3C,cAAe,UAAW,cAC1B,WAAY,WAAY,YACxB,mBAAoB,kBACpB,kBAAmB,OAAQ,UAoC7B5H,EAAM6H,OAAS,GAER7H,IAGP,CAAC8H,WAAW,GAAGnK,SAAS,KAAKoK,EAAE,CAAC,SAAS3R,EAAQf,EAAOD,GAC1D,aAEA,IAAIuF,EAAOvE,EAAQ,UAEnBf,EAAOD,QAEP,SAAsB4S,GACpBrN,EAAKc,KAAKuM,EAAKrS,QAGf,CAACgI,SAAS,KAAKsK,EAAE,CAAC,SAAS7R,EAAQf,EAAOD,GAC5C,aAIAC,EAAOD,QAAU,SAAoBuG,GAKnC,IAJA,IAGIzE,EAHAP,EAAS,EACTuR,EAAMvM,EAAIhF,OACVwR,EAAM,EAEHA,EAAMD,GACXvR,IAEa,QADbO,EAAQyE,EAAIyM,WAAWD,OACAjR,GAAS,OAAUiR,EAAMD,GAGtB,QAAX,OADbhR,EAAQyE,EAAIyM,WAAWD,MACSA,IAGpC,OAAOxR,IAGP,IAAI0R,GAAG,CAAC,SAASjS,EAAQf,EAAOD,GAClC,aAsCA,SAASkT,EAAcC,EAAUC,EAAMC,GACrC,IAAIC,EAAQD,EAAS,QAAU,QAC3BE,EAAMF,EAAS,OAAS,OACxBG,EAAKH,EAAS,IAAM,GACpBI,EAAMJ,EAAS,GAAK,IACxB,OAAQF,GACN,IAAK,OAAQ,OAAOC,EAAOE,EAAQ,OACnC,IAAK,QAAS,OAAOE,EAAK,iBAAmBJ,EAAO,IACpD,IAAK,SAAU,MAAO,IAAMI,EAAKJ,EAAOG,EAClB,UAAYH,EAAOE,EAAQ,WAAaC,EACxCE,EAAM,iBAAmBL,EAAO,KACtD,IAAK,UAAW,MAAO,WAAaA,EAAOE,EAAQ,WAAaC,EACzCE,EAAM,IAAML,EAAO,QACnBG,EAAMH,EAAOE,EAAQF,EAAO,IACnD,QAAS,MAAO,UAAYA,EAAOE,EAAQ,IAAMH,EAAW,KAjDhElT,EAAOD,QAAU,CACfqG,KA2BF,SAAcxF,EAAG6S,GAEf,IAAK,IAAI7R,KADT6R,EAAKA,GAAM,GACK7S,EAAG6S,EAAG7R,GAAOhB,EAAEgB,GAC/B,OAAO6R,GA7BPR,cAAeA,EACfS,eAmDF,SAAwBC,EAAWR,GACjC,OAAQQ,EAAUrS,QAChB,KAAK,EAAG,OAAO2R,EAAcU,EAAU,GAAIR,GAAM,GACjD,QACE,IAAIhS,EAAO,GACP0Q,EAAQ/B,EAAO6D,GASnB,IAAK,IAAIhT,KARLkR,EAAM+B,OAAS/B,EAAMgC,SACvB1S,EAAO0Q,EAAMiC,KAAO,IAAK,KAAOX,EAAO,OACvChS,GAAQ,UAAYgS,EAAO,wBACpBtB,EAAMiC,YACNjC,EAAM+B,aACN/B,EAAMgC,QAEXhC,EAAMkC,eAAelC,EAAMmC,QACjBnC,EACZ1Q,IAASA,EAAO,OAAS,IAAO8R,EAActS,EAAGwS,GAAM,GAEzD,OAAOhS,IAnEX8S,cAyEF,SAAuBC,EAAmBP,GACxC,GAAInD,MAAMC,QAAQkD,GAAY,CAE5B,IADA,IAAI9B,EAAQ,GACHhR,EAAE,EAAGA,EAAE8S,EAAUrS,OAAQT,IAAK,CACrC,IAAIF,EAAIgT,EAAU9S,GACdsT,EAAgBxT,GAAIkR,EAAMA,EAAMvQ,QAAUX,EACf,UAAtBuT,GAAuC,UAANvT,IAAekR,EAAMA,EAAMvQ,QAAUX,GAEjF,GAAIkR,EAAMvQ,OAAQ,OAAOuQ,MACpB,CAAA,GAAIsC,EAAgBR,GACzB,MAAO,CAACA,GACH,GAA0B,UAAtBO,GAA+C,UAAdP,EAC1C,MAAO,CAAC,WApFV7D,OAAQA,EACRsE,YAAaA,EACbC,aAAcA,EACdzL,MAAO7H,EAAQ,mBACf4H,WAAY5H,EAAQ,gBACpBuT,cA+GF,SAAuBhO,EAAKiO,GAE1B,IAAIhO,EAAUD,EAAIE,MAAM,IAAI6B,OAD5BkM,GAAW,SACiC,MAC5C,OAAOhO,EAAUA,EAAQjF,OAAS,GAjHlCkT,WAqHF,SAAoBlO,EAAKiO,EAASE,GAGhC,OAFAF,GAAW,WACXE,EAAOA,EAAKzD,QAAQ,MAAO,QACpB1K,EAAI0K,QAAQ,IAAI3I,OAAOkM,EAAS,KAAME,EAAO,OAvHpDC,YA8HF,SAAqBC,GACnB,OAAOA,EAAI3D,QAAQ4D,EAAY,IACpB5D,QAAQ6D,EAAkB,IAC1B7D,QAAQ8D,EAAoB,eAhIvCC,iBA8IF,SAA0BJ,EAAKK,GAC7B,IAAIzO,EAAUoO,EAAInO,MAAMyO,GACpB1O,GAA6B,GAAlBA,EAAQjF,SACrBqT,EAAMK,EACEL,EAAI3D,QAAQkE,EAAqB,IAC7BlE,QAAQmE,EAAcC,GAC1BT,EAAI3D,QAAQqE,EAAe,IACvBrE,QAAQsE,EAAcC,IAIpC,OADAhP,EAAUoO,EAAInO,MAAMgP,KACe,IAAnBjP,EAAQjF,OACjBqT,EAAI3D,QAAQyE,EAAiB,IADSd,GAxJ7Ce,eA6JF,SAAwBrT,EAAQkP,GAC9B,GAAqB,kBAAVlP,EAAqB,OAAQA,EACxC,IAAK,IAAIT,KAAOS,EAAQ,GAAIkP,EAAM3P,GAAM,OAAO,GA9J/C+T,qBAkKF,SAA8BtT,EAAQkP,EAAOqE,GAC3C,GAAqB,kBAAVvT,EAAqB,OAAQA,GAA2B,OAAjBuT,EAClD,IAAK,IAAIhU,KAAOS,EAAQ,GAAIT,GAAOgU,GAAiBrE,EAAM3P,GAAM,OAAO,GAnKvEiU,mBAuKF,SAA4BxT,EAAQkP,GAClC,GAAqB,kBAAVlP,EAAqB,OAChC,IAAK,IAAIT,KAAOS,EAAQ,IAAKkP,EAAM3P,GAAM,OAAOA,GAxKhD4H,eAAgBA,EAChBsM,YAgLF,SAAqBC,EAAatB,EAAMuB,EAAcC,GAIpD,OAAOC,EAAUH,EAHNC,EACG,SAAavB,GAAQwB,EAAW,GAAK,8CACpCA,EAAW,SAAaxB,EAAO,SAAa,YAAiBA,EAAO,cAlLnF0B,QAuLF,SAAiBJ,EAAaK,EAAMJ,GAClC,IAAIK,EACU7M,EADHwM,EACkB,IAAMM,EAAkBF,GACxBhC,EAAYgC,IACzC,OAAOF,EAAUH,EAAaM,IA1L9BE,QAgMF,SAAiBC,EAAOC,EAAKC,GAC3B,IAAIC,EAAIC,EAAazD,EAAM5M,EAC3B,GAAc,KAAViQ,EAAc,MAAO,WACzB,GAAgB,KAAZA,EAAM,GAAW,CACnB,IAAKzQ,EAAaoC,KAAKqO,GAAQ,MAAM,IAAItV,MAAM,yBAA2BsV,GAC1EI,EAAcJ,EACdrD,EAAO,eACF,CAEL,KADA5M,EAAUiQ,EAAMhQ,MAAMP,IACR,MAAM,IAAI/E,MAAM,yBAA2BsV,GAGzD,GAFAG,GAAMpQ,EAAQ,GAEK,MADnBqQ,EAAcrQ,EAAQ,IACE,CACtB,GAAUkQ,GAANE,EAAW,MAAM,IAAIzV,MAAM,gCAAkCyV,EAAK,gCAAkCF,GACxG,OAAOC,EAAMD,EAAME,GAGrB,GAASF,EAALE,EAAU,MAAM,IAAIzV,MAAM,sBAAwByV,EAAK,gCAAkCF,GAE7F,GADAtD,EAAO,QAAWsD,EAAME,GAAO,KAC1BC,EAAa,OAAOzD,EAK3B,IAFA,IAAIsB,EAAOtB,EACP0D,EAAWD,EAAY5O,MAAM,KACxBnH,EAAE,EAAGA,EAAEgW,EAASvV,OAAQT,IAAK,CACpC,IAAIiW,EAAUD,EAAShW,GACnBiW,IACF3D,GAAQiB,EAAY2C,EAAoBD,IACxCrC,GAAQ,OAAStB,GAGrB,OAAOsB,GA9NPtE,iBAwOF,SAA0B7J,GACxB,OAAOyQ,EAAoBC,mBAAmB1Q,KAxO9CyQ,oBAAqBA,EACrBnH,eA2OF,SAAwBtJ,GACtB,OAAO2Q,mBAAmBX,EAAkBhQ,KA3O5CgQ,kBAAmBA,GAoDrB,IAAInC,EAAkBrE,EAAO,CAAE,SAAU,SAAU,UAAW,UAAW,SAkBzE,SAASA,EAAOhG,GAEd,IADA,IAAIoN,EAAO,GACFrW,EAAE,EAAGA,EAAEiJ,EAAIxI,OAAQT,IAAKqW,EAAKpN,EAAIjJ,KAAM,EAChD,OAAOqW,EAIT,IAAIC,EAAa,wBACbC,EAAe,QACnB,SAAShD,EAAYxS,GACnB,MAAqB,iBAAPA,EACJ,IAAMA,EAAM,IACZuV,EAAWhP,KAAKvG,GACd,IAAMA,EACN,KAAOyS,EAAazS,GAAO,KAIzC,SAASyS,EAAa/N,GACpB,OAAOA,EAAI0K,QAAQoG,EAAc,QACtBpG,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OAkB5B,IAAI4D,EAAa,gBACbC,EAAmB,uCACnBC,EAAqB,8CAQzB,IAAIG,EAAgB,eAChBI,EAAgB,kEAChBH,EAAsB,uCACtBI,EAAe,uBACfC,EAAc,uCACdJ,EAAe,gFACfC,EAAoB,eACpBI,EAAkB,qCAClBC,EAAkB,iDAoCtB,SAASjM,EAAelD,GACtB,MAAO,IAAO+N,EAAa/N,GAAO,IAoBpC,IAAIP,EAAe,sBACfE,EAAwB,mCAoC5B,SAASiQ,EAAWjV,EAAGoW,GACrB,MAAS,MAALpW,EAAkBoW,GACdpW,EAAI,MAAQoW,GAAGrG,QAAQ,UAAW,IAc5C,SAASsF,EAAkBhQ,GACzB,OAAOA,EAAI0K,QAAQ,KAAM,MAAMA,QAAQ,MAAO,MAIhD,SAAS+F,EAAoBzQ,GAC3B,OAAOA,EAAI0K,QAAQ,MAAO,KAAKA,QAAQ,MAAO,OAG9C,CAACsG,eAAe,EAAEtJ,kBAAkB,KAAKuJ,GAAG,CAAC,SAASxW,EAAQf,EAAOD,GACvE,aAEA,IAAIyX,EAAW,CACb,aACA,UACA,mBACA,UACA,mBACA,YACA,YACA,UACA,kBACA,WACA,WACA,cACA,gBACA,gBACA,WACA,uBACA,OACA,SACA,SAGFxX,EAAOD,QAAU,SAAU0X,EAAYC,GACrC,IAAK,IAAI7W,EAAE,EAAGA,EAAE6W,EAAqBpW,OAAQT,IAAK,CAChD4W,EAAaE,KAAKpJ,MAAMoJ,KAAKC,UAAUH,IACvC,IAEII,EAFAhB,EAAWa,EAAqB7W,GAAGmH,MAAM,KACzCsK,EAAWmF,EAEf,IAAKI,EAAE,EAAGA,EAAEhB,EAASvV,OAAQuW,IAC3BvF,EAAWA,EAASuE,EAASgB,IAE/B,IAAKA,EAAE,EAAGA,EAAEL,EAASlW,OAAQuW,IAAK,CAChC,IAAIjW,EAAM4V,EAASK,GACfxV,EAASiQ,EAAS1Q,GAClBS,IACFiQ,EAAS1Q,GAAO,CACdkW,MAAO,CACLzV,EACA,CAAEgB,KAAM,oFAOlB,OAAOoU,IAGP,IAAIM,GAAG,CAAC,SAAShX,EAAQf,EAAOD,GAClC,aAEA,IAAI0X,EAAa1W,EAAQ,oCAEzBf,EAAOD,QAAU,CACfiY,IAAK,0EACLC,YAAa,CACXC,YAAaT,EAAWQ,YAAYC,aAEtC5G,KAAM,SACN/D,aAAc,CACZlL,OAAQ,CAAC,YACTmU,MAAO,CAAC,YACR2B,WAAY,CAAC,UACbvK,MAAO,CAACwK,IAAK,CAACC,SAAU,CAAC,YAE3B3G,WAAY,CACVJ,KAAMmG,EAAW/F,WAAWJ,KAC5BjP,OAAQ,CAACiP,KAAM,WACf6G,WAAY,CAAC7G,KAAM,WACnB/D,aAAc,CACZ+D,KAAM,QACNgH,MAAO,CAAChH,KAAM,WAEhBmG,WAAY,CAACnG,KAAM,UACnBiH,UAAW,CAACjH,KAAM,WAClB1D,MAAO,CAAC0D,KAAM,WACdkF,MAAO,CAAClF,KAAM,WACd0D,MAAO,CAAC1D,KAAM,WACdrM,OAAQ,CACN6S,MAAO,CACL,CAACxG,KAAM,WACP,CAACkH,MAAO,aAMd,CAACC,mCAAmC,KAAKC,GAAG,CAAC,SAAS3X,EAAQf,EAAOD,GACvE,aACAC,EAAOD,QAAU,SAAyBoN,EAAIwL,EAAUC,GACtD,IAUEC,EAVElE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UAEzB7C,EAAQ,QAAUwC,GAAY,IAC9BM,EAAUnM,EAAGjD,KAAKsM,OAASrT,GAAWA,EAAQqT,MAIhDqC,EAFES,GACF3E,GAAO,cAAgB,EAAS,MAASxH,EAAG7H,KAAKiR,QAAQpT,EAAQqT,MAAOwC,EAAU7L,EAAGoM,aAAgB,KACtF,SAAWT,GAEX3V,EAEjB,IAAIqW,EAAqB,WAAZb,EACXc,EAAoBD,EAAS,mBAAqB,mBAClDE,EAAcvM,EAAG9K,OAAOoX,GACxBE,EAAcxM,EAAGjD,KAAKsM,OAASkD,GAAeA,EAAYlD,MAC1DoD,EAAMJ,EAAS,IAAM,IACrBK,EAASL,EAAS,IAAM,IACxBM,OAAgBpX,EAClB,GAAIiX,EAAa,CACf,IAAII,EAAmB5M,EAAG7H,KAAKiR,QAAQmD,EAAYlD,MAAOwC,EAAU7L,EAAGoM,aACrES,EAAa,YAAclB,EAC3BmB,EAAY,WAAanB,EACzBoB,EAAgB,eAAiBpB,EAEjCqB,EAAS,QADTC,EAAU,KAAOtB,GACY,OAC/BnE,GAAO,kBAAoB,EAAS,MAAQ,EAAqB,KAGjE,IACI0F,EADAP,EAAgBL,GAChBY,EAAaA,GAAc,IACpBlI,KAHXwC,GAAO,QAAU,EAAe,SAAW,EAAc,cADzDoF,EAAmB,aAAejB,GAC2D,SAAW,EAAc,oBAAwB,EAAc,sBAA0B,EAAc,oBAIpMnE,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,iBAAoBmF,GAAiB,mBAAqB,oCAA0C3M,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,kBACjK,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,gBAAmB,EAAsB,wBAE9CxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EACZA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,gBACH2E,IACF3E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAEhFA,GAAO,IAAM,EAAc,qBAAyB,EAAe,MAAQ,EAAiB,qBAAuB,EAAqB,IAAM,EAAQ,KAAO,EAAiB,OAAS,EAAU,IAAM,EAAW,KAAO,EAAqB,MAAQ,EAAU,IAAM,EAAW,IAAM,EAAiB,WAAa,EAAe,MAAQ,EAAqB,gBAAkB,EAAU,IAAM,EAAW,KAAO,EAAiB,MAAQ,EAAU,IAAM,EAAW,IAAM,EAAiB,SAAW,EAAU,QAAU,EAAU,aAAe,EAAS,MAAQ,EAAe,OAAU,EAAQ,QAAY,EAAQ,YAC9kBjS,IAAZS,IAEFgW,EAAiBhM,EAAG1B,cAAgB,KADpCqO,EAAgBL,GAEhBZ,EAAekB,EACfT,EAAUK,OAEP,CAEHQ,EAASP,EACX,IAFIM,EAAsC,iBAAfR,IAENJ,EAAS,CAC5B,IAAIc,EAAU,IAAOD,EAAS,IAC9BxF,GAAO,SACH2E,IACF3E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAEhFA,GAAO,MAAQ,EAAiB,qBAAuB,EAAgB,IAAM,EAAQ,KAAO,EAAiB,MAAQ,EAAU,IAAM,EAAW,KAAO,EAAgB,MAAQ,EAAU,IAAM,EAAW,IAAM,EAAiB,SAAW,EAAU,QAAU,EAAU,WACrQ,CACDuF,QAA6BxX,IAAZS,GACnB6W,GAAa,EAEbb,EAAiBhM,EAAG1B,cAAgB,KADpCqO,EAAgBL,GAEhBZ,EAAea,EACfG,GAAU,MAENK,IAAerB,EAAe+B,KAAKpB,EAAS,MAAQ,OAAOE,EAAavW,IACxEuW,MAAiBQ,GAAgBrB,IACnCmB,GAAa,EAEbb,EAAiBhM,EAAG1B,cAAgB,KADpCqO,EAAgBL,GAEhBI,GAAU,MAEVG,GAAa,EACbG,GAAU,MAGVC,EAAU,IAAOD,EAAS,IAC9BxF,GAAO,SACH2E,IACF3E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAEhFA,GAAO,IAAM,EAAU,IAAM,EAAW,IAAM,EAAiB,OAAS,EAAU,QAAU,EAAU,QAG1GmF,EAAgBA,GAAiBnB,GAC7B0B,EAAaA,GAAc,IACpBlI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,iBAAoBmF,GAAiB,UAAY,oCAA0C3M,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,4BAA8B,EAAY,YAAc,EAAiB,gBAAkB,EAAe,OAClQ,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,0BAA6B,EAAW,IAE7CA,GADE2E,EACK,OAAU,EAEL,EAAiB,KAG7BnM,EAAGjD,KAAKsQ,UACV7F,GAAO,eAELA,GADE2E,EACK,kBAAoB,EAEpB,GAAK,EAEd3E,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAEL8F,EAAQ9F,EAgBZ,OAfAA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,MACHyE,IACFzE,GAAO,YAEFA,IAGP,IAAIkG,GAAG,CAAC,SAAS9Z,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA8BoN,EAAIwL,EAAUC,GAC3D,IAUEC,EAVElE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UAEzB7C,EAAQ,QAAUwC,GAAY,IAC9BM,EAAUnM,EAAGjD,KAAKsM,OAASrT,GAAWA,EAAQqT,MAIhDqC,EAFES,GACF3E,GAAO,cAAgB,EAAS,MAASxH,EAAG7H,KAAKiR,QAAQpT,EAAQqT,MAAOwC,EAAU7L,EAAGoM,aAAgB,KACtF,SAAWT,GAEX3V,EAGjBwR,GAAO,QACH2E,IACF3E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAGhF,IAAImF,EAAgBnB,EAChB0B,EAAaA,GAAc,GAC/BA,EAAWlI,KAHXwC,GAAO,IAAM,EAAU,YALD,YAAZgE,EAAyB,IAAM,KAKG,IAAM,EAAiB,QAInEhE,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,iBAAoBmF,GAAiB,eAAiB,oCAA0C3M,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,uBAAyB,EAAiB,OACvM,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,gCAELA,GADc,YAAZgE,EACK,OAEA,QAEThE,GAAO,SAELA,GADE2E,EACK,OAAU,EAAiB,OAE3B,GAAK,EAEd3E,GAAO,YAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,eAELA,GADE2E,EACK,kBAAoB,EAEpB,GAAK,EAEd3E,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EAgBZ,OAfAA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,KACHyE,IACFzE,GAAO,YAEFA,IAGP,IAAImG,GAAG,CAAC,SAAS/Z,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA+BoN,EAAIwL,EAAUC,GAC5D,IAUEC,EAVElE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UAEzB7C,EAAQ,QAAUwC,GAAY,IAC9BM,EAAUnM,EAAGjD,KAAKsM,OAASrT,GAAWA,EAAQqT,MAIhDqC,EAFES,GACF3E,GAAO,cAAgB,EAAS,MAASxH,EAAG7H,KAAKiR,QAAQpT,EAAQqT,MAAOwC,EAAU7L,EAAGoM,aAAgB,KACtF,SAAWT,GAEX3V,EAGjBwR,GAAO,QACH2E,IACF3E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAG9EA,IADsB,IAApBxH,EAAGjD,KAAK6Q,QACH,IAAM,EAAU,WAEhB,eAAiB,EAAU,KAGpC,IAAIjB,EAAgBnB,EAChB0B,EAAaA,GAAc,GAC/BA,EAAWlI,KAHXwC,GAAO,KAVe,aAAZgE,EAA0B,IAAM,KAUrB,IAAM,EAAiB,QAI5ChE,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,iBAAoBmF,GAAiB,gBAAkB,oCAA0C3M,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,uBAAyB,EAAiB,OACxM,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,8BAELA,GADc,aAAZgE,EACK,SAEA,UAEThE,GAAO,SAELA,GADE2E,EACK,OAAU,EAAiB,OAE3B,GAAK,EAEd3E,GAAO,iBAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,eAELA,GADE2E,EACK,kBAAoB,EAEpB,GAAK,EAEd3E,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EAgBZ,OAfAA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,KACHyE,IACFzE,GAAO,YAEFA,IAGP,IAAIqG,GAAG,CAAC,SAASja,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAmCoN,EAAIwL,EAAUC,GAChE,IAUEC,EAVElE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UAEzB7C,EAAQ,QAAUwC,GAAY,IAC9BM,EAAUnM,EAAGjD,KAAKsM,OAASrT,GAAWA,EAAQqT,MAIhDqC,EAFES,GACF3E,GAAO,cAAgB,EAAS,MAASxH,EAAG7H,KAAKiR,QAAQpT,EAAQqT,MAAOwC,EAAU7L,EAAGoM,aAAgB,KACtF,SAAWT,GAEX3V,EAGjBwR,GAAO,QACH2E,IACF3E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAGhF,IAAImF,EAAgBnB,EAChB0B,EAAaA,GAAc,GAC/BA,EAAWlI,KAHXwC,GAAO,gBAAkB,EAAU,aALb,iBAAZgE,EAA8B,IAAM,KAKW,IAAM,EAAiB,QAIhFhE,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,iBAAoBmF,GAAiB,oBAAsB,oCAA0C3M,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,uBAAyB,EAAiB,OAC5M,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,gCAELA,GADc,iBAAZgE,EACK,OAEA,QAEThE,GAAO,SAELA,GADE2E,EACK,OAAU,EAAiB,OAE3B,GAAK,EAEd3E,GAAO,iBAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,eAELA,GADE2E,EACK,kBAAoB,EAEpB,GAAK,EAEd3E,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EAgBZ,OAfAA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,KACHyE,IACFzE,GAAO,YAEFA,IAGP,IAAIsG,GAAG,CAAC,SAASla,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAwBoN,EAAIwL,EAAUC,GACrD,IAAIjE,EAAM,IACNxR,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB6B,EAAM/N,EAAG7H,KAAKc,KAAK+G,GACnBgO,EAAiB,GACrBD,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC3BsC,EAAiBH,EAAI5W,OACvBgX,GAAmB,EACjBC,EAAOpY,EACX,GAAIoY,EAGF,IAFA,IAAIC,EAAMC,GAAM,EACdC,EAAKH,EAAKja,OAAS,EACdma,EAAKC,GACVF,EAAOD,EAAKE,GAAM,IACbtO,EAAGjD,KAAKyR,eAAgC,iBAARH,GAA+C,EAA3B3W,OAAO+J,KAAK4M,GAAMla,OAAa6L,EAAG7H,KAAKoQ,eAAe8F,EAAMrO,EAAGxC,MAAMiH,QAC5H0J,GAAmB,EACnBJ,EAAI7Y,OAASmZ,EACbN,EAAI1P,WAAa0N,EAAc,IAAMuC,EAAK,IAC1CP,EAAIzP,cAAgB0N,EAAiB,IAAMsC,EAC3C9G,GAAO,KAAQxH,EAAGpK,SAASmY,GAAQ,IACnCA,EAAI5W,OAAS+W,EACTjC,IACFzE,GAAO,QAAU,EAAe,OAChCwG,GAAkB,MAa1B,OARI/B,IAEAzE,GADE2G,EACK,gBAEA,IAAOH,EAAenL,MAAM,GAAI,GAAM,KAGjD2E,EAAMxH,EAAG7H,KAAKoP,YAAYC,KAI1B,IAAIiH,GAAG,CAAC,SAAS7a,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAwBoN,EAAIwL,EAAUC,GACrD,IAAIjE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBgD,EAAQ,SAAWhD,EACnBoC,EAAM/N,EAAG7H,KAAKc,KAAK+G,GACnBgO,EAAiB,GACrBD,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAI/B,GAHqB5V,EAAQqK,MAAM,SAASgO,GAC1C,OAAQrO,EAAGjD,KAAKyR,eAAgC,iBAARH,GAA+C,EAA3B3W,OAAO+J,KAAK4M,GAAMla,OAAa6L,EAAG7H,KAAKoQ,eAAe8F,EAAMrO,EAAGxC,MAAMiH,OAE/G,CAClB,IAAIyJ,EAAiBH,EAAI5W,OACzBqQ,GAAO,QAAU,EAAU,kBAAoB,EAAW,cAC1D,IAAIoH,EAAgB5O,EAAGwN,cACvBxN,EAAGwN,cAAgBO,EAAIP,eAAgB,EACvC,IAAIY,EAAOpY,EACX,GAAIoY,EAGF,IAFA,IAAIC,EAAMC,GAAM,EACdC,EAAKH,EAAKja,OAAS,EACdma,EAAKC,GACVF,EAAOD,EAAKE,GAAM,GAClBP,EAAI7Y,OAASmZ,EACbN,EAAI1P,WAAa0N,EAAc,IAAMuC,EAAK,IAC1CP,EAAIzP,cAAgB0N,EAAiB,IAAMsC,EAC3C9G,GAAO,KAAQxH,EAAGpK,SAASmY,GAAQ,IACnCA,EAAI5W,OAAS+W,EACb1G,GAAO,IAAM,EAAW,MAAQ,EAAW,OAAS,EAAe,UAAY,EAAW,OAC1FwG,GAAkB,IAGtBhO,EAAGwN,cAAgBO,EAAIP,cAAgBoB,EACvCpH,GAAO,IAAM,EAAmB,SAAW,EAAW,sBAC9B,IAApBxH,EAAGmN,cACL3F,GAAO,sDAAyExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,kBACtI,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,oDAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACFxH,EAAGwN,eAAiBvB,IAGrBzE,GADExH,EAAG6H,MACE,wCAEA,8CAGXL,GAAO,uBAAyB,EAAU,iCAAmC,EAAU,sBAAwB,EAAU,4BACrHxH,EAAGjD,KAAKmP,YACV1E,GAAO,OAETA,EAAMxH,EAAG7H,KAAKoP,YAAYC,QAEtByE,IACFzE,GAAO,iBAGX,OAAOA,IAGP,IAAIqH,GAAG,CAAC,SAASjb,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA0BoN,EAAIwL,EAAUC,GACvD,IAAIjE,EAAM,IAENwE,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAE1CtG,EAAWlF,EAAG7H,KAAKkE,eAHT2D,EAAG9K,OAAOsW,IASxB,OALyB,IAArBxL,EAAGjD,KAAKmI,SACVsC,GAAO,gBAAkB,EAAa,KACF,mBAApBxH,EAAGjD,KAAKmI,WACxBsC,GAAO,wBAA0B,EAAa,KAAQxH,EAAG7H,KAAKkE,eAAe2P,GAAmB,4BAE3FxE,IAGP,IAAIsH,GAAG,CAAC,SAASlb,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAwBoN,EAAIwL,EAAUC,GACrD,IAAIjE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBQ,EAAUnM,EAAGjD,KAAKsM,OAASrT,GAAWA,EAAQqT,MAE9C8C,IACF3E,GAAO,cAAgB,EAAS,MAASxH,EAAG7H,KAAKiR,QAAQpT,EAAQqT,MAAOwC,EAAU7L,EAAGoM,aAAgB,MAKlGD,IACH3E,GAAO,cAAgB,EAAS,qBAAuB,EAAgB,KAGzE,IAAI0F,EAAaA,GAAc,GAC/BA,EAAWlI,KAFXwC,GAAO,OAAS,EAAW,YAAc,EAAU,WAAa,EAAS,WAAa,EAAW,UAGjGA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,sDAAyExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,oCAAsC,EAAS,OACrL,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,8CAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EAgBZ,OAfAA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,KACHyE,IACFzE,GAAO,YAEFA,IAGP,IAAIuH,GAAG,CAAC,SAASnb,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA2BoN,EAAIwL,EAAUC,GACxD,IAAIjE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBgD,EAAQ,SAAWhD,EACnBoC,EAAM/N,EAAG7H,KAAKc,KAAK+G,GAEvB+N,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC3BoD,EAAO,IAAMrD,EACfsD,EAAWlB,EAAIjC,UAAY9L,EAAG8L,UAAY,EAC1CoD,EAAY,OAASD,EACrBf,EAAiBlO,EAAG7I,OACpBgY,EAAmBnP,EAAGjD,KAAKyR,eAAmC,iBAAXxY,GAAqD,EAA9B0B,OAAO+J,KAAKzL,GAAS7B,OAAa6L,EAAG7H,KAAKoQ,eAAevS,EAASgK,EAAGxC,MAAMiH,KAEvJ,GADA+C,GAAO,OAAS,EAAU,iBAAmB,EAAW,IACpD2H,EAAiB,CACnB,IAAIP,EAAgB5O,EAAGwN,cACvBxN,EAAGwN,cAAgBO,EAAIP,eAAgB,EACvCO,EAAI7Y,OAASc,EACb+X,EAAI1P,WAAa0N,EACjBgC,EAAIzP,cAAgB0N,EACpBxE,GAAO,QAAU,EAAe,sBAAwB,EAAS,SAAW,EAAS,MAAQ,EAAU,YAAc,EAAS,SAC9HuG,EAAIxP,UAAYyB,EAAG7H,KAAKwQ,YAAY3I,EAAGzB,UAAWyQ,EAAMhP,EAAGjD,KAAK8L,cAAc,GAC9E,IAAIuG,EAAY/F,EAAQ,IAAM2F,EAAO,IACrCjB,EAAI3B,YAAY6C,GAAYD,EAC5B,IAAIK,EAAQrP,EAAGpK,SAASmY,GACxBA,EAAI5W,OAAS+W,EACTlO,EAAG7H,KAAKgP,cAAckI,EAAOH,GAAa,EAC5C1H,GAAO,IAAOxH,EAAG7H,KAAKkP,WAAWgI,EAAOH,EAAWE,GAAc,IAEjE5H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAExEA,GAAO,QAAU,EAAe,eAChCxH,EAAGwN,cAAgBO,EAAIP,cAAgBoB,EACvCpH,GAAO,UAAoC,EAAe,WAE1DA,GAAO,QAAU,EAAU,kBAE7B,IAAI0F,EAAaA,GAAc,GAC/BA,EAAWlI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,yDAA4ExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,kBACzI,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,8CAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EAoBZ,OAnBAA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,aACH2H,IACF3H,GAAO,cAAgB,EAAU,iCAAmC,EAAU,sBAAwB,EAAU,6BAE9GxH,EAAGjD,KAAKmP,YACV1E,GAAO,OAETA,EAAMxH,EAAG7H,KAAKoP,YAAYC,KAI1B,IAAI8H,GAAG,CAAC,SAAS1b,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAyBoN,EAAIwL,EAAUC,GACtD,IAOIkB,EAKFjB,EAZElE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UAEzB7C,EAAQ,QAAUwC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBgD,EAAQ,SAAWhD,EACnBQ,EAAUnM,EAAGjD,KAAKsM,OAASrT,GAAWA,EAAQqT,MAIhDqC,EAFES,GACF3E,GAAO,cAAgB,EAAS,MAASxH,EAAG7H,KAAKiR,QAAQpT,EAAQqT,MAAOwC,EAAU7L,EAAGoM,aAAgB,KACtF,SAAWT,GAEX3V,EAEjB,IAIIuZ,EAAUC,EAASC,EAAQC,EAAeC,EAJ1CC,EAAQzc,KACV0c,EAAc,aAAelE,EAC7BmE,EAAQF,EAAMzP,WACd6N,EAAiB,GAEnB,GAAI7B,GAAW2D,EAAMzG,MAAO,CAE1B,IAAI0G,EAAkBD,EAAM7P,eAC5BuH,GAAO,QAAU,EAAgB,oBAAuB,EAAa,uBAFrEmI,EAAgB,kBAAoBhE,GAE4E,MAAQ,EAAgB,iBACnI,CAEL,KADA+D,EAAgB1P,EAAGrB,cAAciR,EAAO5Z,EAASgK,EAAG9K,OAAQ8K,IACxC,OACpB0L,EAAe,kBAAoBK,EACnC4D,EAAgBD,EAAc1b,KAC9Bub,EAAWO,EAAMjT,QACjB2S,EAAUM,EAAMnQ,OAChB8P,EAASK,EAAMnP,MAEjB,IAAIqP,EAAYL,EAAgB,UAC9BrB,EAAK,IAAM3C,EACXsE,EAAW,UAAYtE,EACvBuE,EAAgBJ,EAAMjI,MACxB,GAAIqI,IAAkBlQ,EAAG6H,MAAO,MAAM,IAAI9T,MAAM,gCAahD,GAZMyb,GAAWC,IACfjI,GAAY,EAAc,YAE5BA,GAAO,OAAS,EAAU,iBAAmB,EAAW,IACpD2E,GAAW2D,EAAMzG,QACnB2E,GAAkB,IAClBxG,GAAO,QAAU,EAAiB,qBAAuB,EAAW,qBAChEuI,IACF/B,GAAkB,IAClBxG,GAAO,IAAM,EAAW,MAAQ,EAAgB,mBAAqB,EAAiB,UAAY,EAAW,SAG7GgI,EAEAhI,GADEsI,EAAM9E,WACD,IAAO0E,EAAsB,SAAI,IAEjC,IAAM,EAAW,MAASA,EAAsB,SAAI,UAExD,GAAID,EAAQ,CACjB,IAAI1B,EAAM/N,EAAG7H,KAAKc,KAAK+G,GACnBgO,EAAiB,GACrBD,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC/BmC,EAAI7Y,OAASwa,EAAc9Z,SAC3BmY,EAAI1P,WAAa,GACjB,IAAIuQ,EAAgB5O,EAAGwN,cACvBxN,EAAGwN,cAAgBO,EAAIP,eAAgB,EACvC,IAAI6B,EAAQrP,EAAGpK,SAASmY,GAAKlK,QAAQ,oBAAqB8L,GAC1D3P,EAAGwN,cAAgBO,EAAIP,cAAgBoB,EACvCpH,GAAO,IAAM,MACR,EACD0F,EAAaA,GAAc,IACpBlI,KAAKwC,GAChBA,EAAM,GACNA,GAAO,KAAO,EAAkB,UAE9BA,GADExH,EAAGjD,KAAKoT,YACH,OAEA,OAGP3I,GADE+H,IAA6B,IAAjBO,EAAM5a,OACb,MAAQ,EAAU,IAElB,MAAQ,EAAiB,MAAQ,EAAU,qBAAwB8K,EAAa,WAAI,IAE7FwH,GAAO,sBACa,MAAhBxH,EAAGzB,YACLiJ,GAAO,MAASxH,EAAY,WAE9B,IAAIoQ,EAAcvE,EAAW,QAAWA,EAAW,GAAM,IAAM,aAC7DwE,EAAsBxE,EAAW7L,EAAGoM,YAAYP,GAAY,qBAE1DyE,EADJ9I,GAAO,MAAQ,EAAgB,MAAQ,EAAwB,kBAE/DA,EAAM0F,EAAWK,OACI,IAAjBuC,EAAMhY,QACR0P,GAAO,IAAM,EAAW,MACpB0I,IACF1I,GAAO,UAETA,GAAY,EAAyB,MAInCA,GAFE0I,EAEK,SADPF,EAAY,eAAiBrE,GACE,kBAAoB,EAAW,YAAc,EAAyB,mBAAqB,EAAW,+CAAiD,EAAc,gCAE7L,IAAM,EAAc,YAAc,EAAW,MAAQ,EAAyB,KAQ3F,GAJImE,EAAM1E,YACR5D,GAAO,QAAU,EAAgB,KAAO,EAAU,MAAQ,EAAgB,IAAM,EAAwB,MAE1GA,GAAO,GAAK,EACRsI,EAAMrP,MACJwL,IACFzE,GAAO,qBAEJ,CAcL,IAGI0F,EAhBJ1F,GAAO,cACajS,IAAhBua,EAAMrP,OACR+G,GAAO,KAELA,GADEiI,EACK,GAAK,EAEL,GAAK,GAGdjI,GAAO,KAAQsI,EAAMrP,MAAS,IAGhCkM,EAAgBiD,EAAMtP,SAClB4M,EAAaA,GAAc,IACpBlI,KAHXwC,GAAO,SAKH0F,EAAaA,GAAc,IACpBlI,KAFXwC,EAAM,IAGNA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,iBAAoBmF,GAAiB,UAAY,oCAA0C3M,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,0BAA8B4D,EAAa,QAAI,QACvM,IAArB5P,EAAGjD,KAAKqQ,WACV5F,GAAO,8BAAiCoI,EAAa,QAAI,2BAEvD5P,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EACZA,EAAM0F,EAAWK,MAWjB,IAAIgD,EAPA/I,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAGnCL,EAAM0F,EAAWK,MACbiC,EACEM,EAAMhY,OACY,QAAhBgY,EAAMhY,SACR0P,GAAO,cAAgB,EAAO,IAAM,EAAU,KAAO,EAAO,YAAc,EAAO,aAAe,EAAa,cAAgB,EAAO,UAAY,EAAa,4BAA8B,EAAa,kCAAuCxH,EAAY,UAAI,SAAW,EAAa,gCAAkC,EAAa,kBAAoB,EAAmB,QACzWA,EAAGjD,KAAKsQ,UACV7F,GAAO,IAAM,EAAa,aAAe,EAAiB,KAAO,EAAa,WAAa,EAAU,MAEvGA,GAAO,QAGY,IAAjBsI,EAAMhY,OACR0P,GAAO,IAAM,EAAoB,KAEjCA,GAAO,QAAU,EAAU,iBAAmB,EAAoB,uBAAyB,EAAO,IAAM,EAAU,KAAO,EAAO,YAAc,EAAO,aAAe,EAAa,cAAgB,EAAO,UAAY,EAAa,4BAA8B,EAAa,kCAAuCxH,EAAY,UAAI,SAAW,EAAa,gCAAkC,EAAa,kBAAoB,EAAmB,QAC7aA,EAAGjD,KAAKsQ,UACV7F,GAAO,IAAM,EAAa,aAAe,EAAiB,KAAO,EAAa,WAAa,EAAU,MAEvGA,GAAO,SAGFiI,GACTjI,GAAO,mBACiB,IAApBxH,EAAGmN,cACL3F,GAAO,iBAAoBmF,GAAiB,UAAY,oCAA0C3M,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,0BAA8B4D,EAAa,QAAI,QACvM,IAArB5P,EAAGjD,KAAKqQ,WACV5F,GAAO,8BAAiCoI,EAAa,QAAI,2BAEvD5P,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACFxH,EAAGwN,eAAiBvB,IAGrBzE,GADExH,EAAG6H,MACE,wCAEA,gDAIU,IAAjBiI,EAAMhY,OACR0P,GAAO,IAAM,EAAoB,KAEjCA,GAAO,sBAAwB,EAAc,wCAA0C,EAAc,mCAAqC,EAAc,yCAA2C,EAAO,IAAM,EAAU,KAAO,EAAO,YAAc,EAAO,aAAe,EAAa,cAAgB,EAAO,UAAY,EAAa,4BAA8B,EAAa,kCAAuCxH,EAAY,UAAI,MAAQ,EAAa,kBAAoB,EAAmB,OACneA,EAAGjD,KAAKsQ,UACV7F,GAAO,IAAM,EAAa,aAAe,EAAiB,KAAO,EAAa,WAAa,EAAU,MAEvGA,GAAO,eAAiB,EAAoB,OAGhDA,GAAO,MACHyE,IACFzE,GAAO,YAGX,OAAOA,IAGP,IAAIgJ,GAAG,CAAC,SAAS5c,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA+BoN,EAAIwL,EAAUC,GAC5D,IAAIjE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9B8C,EAAQ,SAAWhD,EACnBoC,EAAM/N,EAAG7H,KAAKc,KAAK+G,GACnBgO,EAAiB,GACrBD,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC3B6E,EAAc,GAChBC,EAAgB,GAChBC,EAAiB3Q,EAAGjD,KAAK6T,cAC3B,IAAKC,KAAa7a,EAAS,CACzB,IAAIqY,EAAOrY,EAAQ6a,GACfC,EAAQzN,MAAMC,QAAQ+K,GAAQqC,EAAgBD,EAClDK,EAAMD,GAAaxC,EAErB7G,GAAO,OAAS,EAAU,aAC1B,IAAIuJ,EAAoB/Q,EAAGzB,UAE3B,IAAK,IAAIsS,KADTrJ,GAAO,cAAgB,EAAS,IACVkJ,EAEpB,IADAI,EAAQJ,EAAcG,IACZ1c,OAAQ,CAKhB,GAJAqT,GAAO,SAAW,EAAWxH,EAAG7H,KAAK8O,YAAY4J,GAAc,kBAC3DF,IACFnJ,GAAO,4CAA8C,EAAU,MAAUxH,EAAG7H,KAAK+O,aAAa2J,GAAc,OAE1G5E,EAAe,CACjBzE,GAAO,SACP,IAAI4G,EAAO0C,EACX,GAAI1C,EAGF,IAFA,IAAkBE,GAAM,EACtBC,EAAKH,EAAKja,OAAS,EACdma,EAAKC,GAAI,CACdyC,EAAe5C,EAAKE,GAAM,GACtBA,IACF9G,GAAO,QAITA,GAAO,SADLyJ,EAAW5H,GADT6H,EAAQlR,EAAG7H,KAAK8O,YAAY+J,KAEF,kBAC1BL,IACFnJ,GAAO,8CAAgD,EAAU,MAAUxH,EAAG7H,KAAK+O,aAAa8J,GAAiB,OAEnHxJ,GAAO,gBAAkB,EAAS,MAASxH,EAAG7H,KAAKkE,eAAe2D,EAAGjD,KAAK8L,aAAemI,EAAeE,GAAU,OAGtH1J,GAAO,SACP,IAAI2J,EAAgB,UAAYxF,EAC9ByF,EAAmB,OAAUD,EAAgB,OAC3CnR,EAAGjD,KAAKsU,yBACVrR,EAAGzB,UAAYyB,EAAGjD,KAAK8L,aAAe7I,EAAG7H,KAAKwQ,YAAYoI,EAAmBI,GAAe,GAAQJ,EAAoB,MAAQI,GAElI,IAAIjE,EAAaA,GAAc,GAC/BA,EAAWlI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,6DAAgFxH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,2BAA+BhM,EAAG7H,KAAK+O,aAAa2J,GAAc,wBAA4B,EAAqB,iBAAqBC,EAAY,OAAI,YAAgB9Q,EAAG7H,KAAK+O,aAA6B,GAAhB4J,EAAM3c,OAAc2c,EAAM,GAAKA,EAAMtQ,KAAK,OAAU,QAC9X,IAArBR,EAAGjD,KAAKqQ,WACV5F,GAAO,4BAELA,GADkB,GAAhBsJ,EAAM3c,OACD,YAAe6L,EAAG7H,KAAK+O,aAAa4J,EAAM,IAE1C,cAAiB9Q,EAAG7H,KAAK+O,aAAa4J,EAAMtQ,KAAK,OAE1DgH,GAAO,kBAAqBxH,EAAG7H,KAAK+O,aAAa2J,GAAc,iBAE7D7Q,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EACZA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,mFAE9B,CACLL,GAAO,QACP,IAAI8J,EAAOR,EACX,GAAIQ,EAGF,IAFA,IAAIN,EAAcO,GAAM,EACtBC,EAAKF,EAAKnd,OAAS,EACdod,EAAKC,GAAI,CACdR,EAAeM,EAAKC,GAAM,GAC1B,IAAIL,EAAQlR,EAAG7H,KAAK8O,YAAY+J,GAE9BC,GADAG,EAAmBpR,EAAG7H,KAAK+O,aAAa8J,GAC7B3H,EAAQ6H,GACjBlR,EAAGjD,KAAKsU,yBACVrR,EAAGzB,UAAYyB,EAAG7H,KAAK6Q,QAAQ+H,EAAmBC,EAAchR,EAAGjD,KAAK8L,eAE1ErB,GAAO,SAAW,EAAa,kBAC3BmJ,IACFnJ,GAAO,8CAAgD,EAAU,MAAUxH,EAAG7H,KAAK+O,aAAa8J,GAAiB,OAEnHxJ,GAAO,qBACiB,IAApBxH,EAAGmN,cACL3F,GAAO,6DAAgFxH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,2BAA+BhM,EAAG7H,KAAK+O,aAAa2J,GAAc,wBAA4B,EAAqB,iBAAqBC,EAAY,OAAI,YAAgB9Q,EAAG7H,KAAK+O,aAA6B,GAAhB4J,EAAM3c,OAAc2c,EAAM,GAAKA,EAAMtQ,KAAK,OAAU,QAC9X,IAArBR,EAAGjD,KAAKqQ,WACV5F,GAAO,4BAELA,GADkB,GAAhBsJ,EAAM3c,OACD,YAAe6L,EAAG7H,KAAK+O,aAAa4J,EAAM,IAE1C,cAAiB9Q,EAAG7H,KAAK+O,aAAa4J,EAAMtQ,KAAK,OAE1DgH,GAAO,kBAAqBxH,EAAG7H,KAAK+O,aAAa2J,GAAc,iBAE7D7Q,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,kFAIbA,GAAO,QACHyE,IACF+B,GAAkB,IAClBxG,GAAO,YAIbxH,EAAGzB,UAAYwS,EACf,IAAI7C,EAAiBH,EAAI5W,OACzB,IAAK,IAAI0Z,KAAaJ,EAAa,CAC7BpC,EAAOoC,EAAYI,IAClB7Q,EAAGjD,KAAKyR,eAAgC,iBAARH,GAA+C,EAA3B3W,OAAO+J,KAAK4M,GAAMla,OAAa6L,EAAG7H,KAAKoQ,eAAe8F,EAAMrO,EAAGxC,MAAMiH,QAC5H+C,GAAO,IAAM,EAAe,iBAAmB,EAAWxH,EAAG7H,KAAK8O,YAAY4J,GAAc,kBACxFF,IACFnJ,GAAO,4CAA8C,EAAU,MAAUxH,EAAG7H,KAAK+O,aAAa2J,GAAc,OAE9GrJ,GAAO,OACPuG,EAAI7Y,OAASmZ,EACbN,EAAI1P,WAAa0N,EAAc/L,EAAG7H,KAAK8O,YAAY4J,GACnD9C,EAAIzP,cAAgB0N,EAAiB,IAAMhM,EAAG7H,KAAKsK,eAAeoO,GAClErJ,GAAO,KAAQxH,EAAGpK,SAASmY,GAAQ,IACnCA,EAAI5W,OAAS+W,EACb1G,GAAO,OACHyE,IACFzE,GAAO,QAAU,EAAe,OAChCwG,GAAkB,MAQxB,OAJI/B,IACFzE,GAAO,MAAQ,EAAmB,QAAU,EAAU,iBAExDA,EAAMxH,EAAG7H,KAAKoP,YAAYC,KAI1B,IAAIiK,GAAG,CAAC,SAAS7d,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAuBoN,EAAIwL,EAAUC,GACpD,IAAIjE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBQ,EAAUnM,EAAGjD,KAAKsM,OAASrT,GAAWA,EAAQqT,MAE9C8C,IACF3E,GAAO,cAAgB,EAAS,MAASxH,EAAG7H,KAAKiR,QAAQpT,EAAQqT,MAAOwC,EAAU7L,EAAGoM,aAAgB,MAKvG,IAAIkC,EAAK,IAAM3C,EACb+F,EAAW,SAAW/F,EACnBQ,IACH3E,GAAO,QAAU,EAAa,qBAAuB,EAAgB,KAEvEA,GAAO,OAAS,EAAW,IACvB2E,IACF3E,GAAO,cAAgB,EAAS,mBAAqB,EAAW,0CAA4C,EAAS,MAAQ,EAAW,oBAE1IA,GAAY,EAAW,qBAAuB,EAAO,OAAS,EAAO,IAAM,EAAa,YAAc,EAAO,iBAAmB,EAAU,KAAO,EAAa,IAAM,EAAO,SAAW,EAAW,oBAC7L2E,IACF3E,GAAO,SAGT,IAAI0F,EAAaA,GAAc,GAC/BA,EAAWlI,KAFXwC,GAAO,SAAW,EAAW,UAG7BA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,qDAAwExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,qCAAuC,EAAS,OACrL,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,+DAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EAgBZ,OAfAA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,KACHyE,IACFzE,GAAO,YAEFA,IAGP,IAAImK,GAAG,CAAC,SAAS/d,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAyBoN,EAAIwL,EAAUC,GACtD,IAAIjE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAClC,IAAuB,IAAnB7L,EAAGjD,KAAK6U,OAIV,OAHI3F,IACFzE,GAAO,iBAEFA,EAET,IACEkE,EADES,EAAUnM,EAAGjD,KAAKsM,OAASrT,GAAWA,EAAQqT,MAIhDqC,EAFES,GACF3E,GAAO,cAAgB,EAAS,MAASxH,EAAG7H,KAAKiR,QAAQpT,EAAQqT,MAAOwC,EAAU7L,EAAGoM,aAAgB,KACtF,SAAWT,GAEX3V,EAEjB,IAAI6b,EAAkB7R,EAAGjD,KAAK+U,eAC5BC,EAAgB1O,MAAMC,QAAQuO,GAChC,GAAI1F,EAAS,CAIX3E,GAAO,SAHHwK,EAAU,SAAWrG,GAGI,cAAgB,EAAiB,WAF5DsG,EAAY,WAAatG,GAE6D,aAAe,EAAY,qBAAyB,EAAY,0BAA4B,EAAY,mBAD9LuG,EAAc,aAAevG,GACqM,MAAQ,EAAc,OAAS,EAAY,0BAA8B,EAAc,OACvT3L,EAAG6H,QACLL,GAAO,aAAe,EAAS,MAAQ,EAAY,YAErDA,GAAO,IAAM,EAAY,MAAQ,EAAY,sBACzC2E,IACF3E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAEhFA,GAAO,KACgB,UAAnBqK,IACFrK,GAAO,KAAO,EAAiB,QAAU,EAAY,IACjDuK,IACFvK,GAAO,yCAA2C,EAAiB,YAErEA,GAAO,SAETA,GAAO,KAAO,EAAY,OAAS,EAAgB,QAAW,EAAc,iBAAoB,EAAY,oBAE1GA,GADExH,EAAG6H,MACE,UAAY,EAAS,YAAc,EAAY,IAAM,EAAU,OAAS,EAAY,IAAM,EAAU,MAEpG,IAAM,EAAY,IAAM,EAAU,KAE3CL,GAAO,MAAQ,EAAY,SAAW,EAAU,cAC3C,CACL,IAAIwK,EACJ,KADIA,EAAUhS,EAAGjH,QAAQ/C,IACX,CACZ,GAAuB,UAAnB6b,EAKF,OAJA7R,EAAGpB,OAAOuT,KAAK,mBAAqBnc,EAAU,gCAAkCgK,EAAG1B,cAAgB,KAC/F2N,IACFzE,GAAO,iBAEFA,EACF,GAAIuK,GAAqD,GAApCF,EAAgBO,QAAQpc,GAIlD,OAHIiW,IACFzE,GAAO,iBAEFA,EAEP,MAAM,IAAIzT,MAAM,mBAAqBiC,EAAU,gCAAkCgK,EAAG1B,cAAgB,KAGxG,IAAI2T,EACAC,GADAD,EAA8B,iBAAXD,KAAyBA,aAAmB9W,SAAW8W,EAAQpc,WACvDoc,EAAQ7N,MAAQ,SAC/C,GAAI8N,EAAW,CACb,IAAItU,GAA2B,IAAlBqU,EAAQnK,MACrBmK,EAAUA,EAAQpc,SAEpB,GAAIsc,GAAezG,EAIjB,OAHIQ,IACFzE,GAAO,iBAEFA,EAET,GAAI7J,EAAQ,CACV,IAAKqC,EAAG6H,MAAO,MAAM,IAAI9T,MAAM,+BAE/ByT,GAAO,iBADH6K,EAAa,UAAYrS,EAAG7H,KAAK8O,YAAYjR,GAAW,aACpB,IAAM,EAAU,aACnD,CACLwR,GAAO,UACP,IAAI6K,EAAa,UAAYrS,EAAG7H,KAAK8O,YAAYjR,GAC7Cic,IAAWI,GAAc,aAE3B7K,GADoB,mBAAXwK,EACF,IAAM,EAAe,IAAM,EAAU,KAErC,IAAM,EAAe,SAAW,EAAU,KAEnDxK,GAAO,QAGX,IAAI0F,EAAaA,GAAc,GAC/BA,EAAWlI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,uDAA0ExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,yBAE9JxE,GADE2E,EACK,GAAK,EAEL,GAAMnM,EAAG7H,KAAKkE,eAAerG,GAEtCwR,GAAO,QACkB,IAArBxH,EAAGjD,KAAKqQ,WACV5F,GAAO,sCAELA,GADE2E,EACK,OAAU,EAAiB,OAE3B,GAAMnM,EAAG7H,KAAK+O,aAAalR,GAEpCwR,GAAO,QAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,eAELA,GADE2E,EACK,kBAAoB,EAEpB,GAAMnM,EAAG7H,KAAKkE,eAAerG,GAEtCwR,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EAgBZ,OAfAA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,MACHyE,IACFzE,GAAO,YAEFA,IAGP,IAAI8K,GAAG,CAAC,SAAS1e,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAqBoN,EAAIwL,EAAUC,GAClD,IAAIjE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBgD,EAAQ,SAAWhD,EACnBoC,EAAM/N,EAAG7H,KAAKc,KAAK+G,GACvB+N,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC3B2G,EAAWvS,EAAG9K,OAAa,KAC7Bsd,EAAWxS,EAAG9K,OAAa,KAC3Bud,OAA4Bld,IAAbgd,IAA2BvS,EAAGjD,KAAKyR,eAAoC,iBAAZ+D,GAAuD,EAA/B7a,OAAO+J,KAAK8Q,GAAUpe,OAAa6L,EAAG7H,KAAKoQ,eAAegK,EAAUvS,EAAGxC,MAAMiH,MAC/KiO,OAA4Bnd,IAAbid,IAA2BxS,EAAGjD,KAAKyR,eAAoC,iBAAZgE,GAAuD,EAA/B9a,OAAO+J,KAAK+Q,GAAUre,OAAa6L,EAAG7H,KAAKoQ,eAAeiK,EAAUxS,EAAGxC,MAAMiH,MAC/KyJ,EAAiBH,EAAI5W,OACvB,GAAIsb,GAAgBC,EAAc,CAChC,IAAIC,EACJ5E,EAAIZ,cAAe,EACnBY,EAAI7Y,OAASc,EACb+X,EAAI1P,WAAa0N,EACjBgC,EAAIzP,cAAgB0N,EACpBxE,GAAO,QAAU,EAAU,kBAAoB,EAAW,aAC1D,IAAIoH,EAAgB5O,EAAGwN,cACvBxN,EAAGwN,cAAgBO,EAAIP,eAAgB,EACvChG,GAAO,KAAQxH,EAAGpK,SAASmY,GAAQ,IACnCA,EAAI5W,OAAS+W,EACbH,EAAIZ,cAAe,EACnB3F,GAAO,cAAgB,EAAU,iCAAmC,EAAU,sBAAwB,EAAU,6BAChHxH,EAAGwN,cAAgBO,EAAIP,cAAgBoB,EACnC6D,GACFjL,GAAO,QAAU,EAAe,QAChCuG,EAAI7Y,OAAS8K,EAAG9K,OAAa,KAC7B6Y,EAAI1P,WAAa2B,EAAG3B,WAAa,QACjC0P,EAAIzP,cAAgB0B,EAAG1B,cAAgB,QACvCkJ,GAAO,KAAQxH,EAAGpK,SAASmY,GAAQ,IACnCA,EAAI5W,OAAS+W,EACb1G,GAAO,IAAM,EAAW,MAAQ,EAAe,KAC3CiL,GAAgBC,EAElBlL,GAAO,SADPmL,EAAY,WAAahH,GACM,cAE/BgH,EAAY,SAEdnL,GAAO,MACHkL,IACFlL,GAAO,aAGTA,GAAO,SAAW,EAAe,OAE/BkL,IACF3E,EAAI7Y,OAAS8K,EAAG9K,OAAa,KAC7B6Y,EAAI1P,WAAa2B,EAAG3B,WAAa,QACjC0P,EAAIzP,cAAgB0B,EAAG1B,cAAgB,QACvCkJ,GAAO,KAAQxH,EAAGpK,SAASmY,GAAQ,IACnCA,EAAI5W,OAAS+W,EACb1G,GAAO,IAAM,EAAW,MAAQ,EAAe,KAC3CiL,GAAgBC,EAElBlL,GAAO,SADPmL,EAAY,WAAahH,GACM,cAE/BgH,EAAY,SAEdnL,GAAO,OAETA,GAAO,SAAW,EAAW,sBACL,IAApBxH,EAAGmN,cACL3F,GAAO,mDAAsExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,gCAAkC,EAAc,OACnL,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,mCAAsC,EAAc,mBAEzDxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACFxH,EAAGwN,eAAiBvB,IAGrBzE,GADExH,EAAG6H,MACE,wCAEA,8CAGXL,GAAO,QACHyE,IACFzE,GAAO,YAETA,EAAMxH,EAAG7H,KAAKoP,YAAYC,QAEtByE,IACFzE,GAAO,iBAGX,OAAOA,IAGP,IAAIoL,GAAG,CAAC,SAAShf,EAAQf,EAAOD,GAClC,aAGAC,EAAOD,QAAU,CACfsD,KAAQtC,EAAQ,SAChBif,MAAOjf,EAAQ,WACf+W,MAAO/W,EAAQ,WACfsR,SAAYtR,EAAQ,aACpByX,MAAOzX,EAAQ,WACfkf,SAAUlf,EAAQ,cAClBwM,aAAcxM,EAAQ,kBACtBmf,KAAQnf,EAAQ,UAChBge,OAAQhe,EAAQ,YAChBof,GAAMpf,EAAQ,QACduX,MAAOvX,EAAQ,WACfyQ,QAASzQ,EAAQ,YACjB0Q,QAAS1Q,EAAQ,YACjBqf,SAAUrf,EAAQ,iBAClBsf,SAAUtf,EAAQ,iBAClBuf,UAAWvf,EAAQ,kBACnBwf,UAAWxf,EAAQ,kBACnByf,cAAezf,EAAQ,sBACvB0f,cAAe1f,EAAQ,sBACvB2f,WAAY3f,EAAQ,gBACpBqX,IAAKrX,EAAQ,SACb4f,MAAO5f,EAAQ,WACf6f,QAAS7f,EAAQ,aACjB2Q,WAAY3Q,EAAQ,gBACpB8f,cAAe9f,EAAQ,mBACvBsX,SAAUtX,EAAQ,cAClB+f,YAAa/f,EAAQ,iBACrBgC,SAAUhC,EAAQ,gBAGlB,CAACggB,WAAW,GAAGC,gBAAgB,GAAGC,iBAAiB,GAAGC,qBAAqB,GAAGC,UAAU,GAAGC,UAAU,GAAGC,YAAY,GAAGC,UAAU,GAAGC,aAAa,GAAGC,iBAAiB,GAAGC,SAAS,GAAGC,WAAW,GAAGC,OAAO,GAAGC,UAAU,GAAGC,eAAe,GAAGC,QAAQ,GAAGC,UAAU,GAAGC,YAAY,GAAGC,eAAe,GAAGC,kBAAkB,GAAGC,QAAQ,GAAGC,aAAa,GAAGC,gBAAgB,GAAGC,aAAa,KAAKC,GAAG,CAAC,SAASxhB,EAAQf,EAAOD,GACvZ,aACAC,EAAOD,QAAU,SAAwBoN,EAAIwL,EAAUC,GACrD,IAAIjE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBgD,EAAQ,SAAWhD,EACnBoC,EAAM/N,EAAG7H,KAAKc,KAAK+G,GACnBgO,EAAiB,GACrBD,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC3BoD,EAAO,IAAMrD,EACfsD,EAAWlB,EAAIjC,UAAY9L,EAAG8L,UAAY,EAC1CoD,EAAY,OAASD,EACrBf,EAAiBlO,EAAG7I,OAEtB,GADAqQ,GAAO,OAAS,EAAU,iBAAmB,EAAW,IACpDnE,MAAMC,QAAQtN,GAAU,CAC1B,IAAIqf,EAAmBrV,EAAG9K,OAAOogB,gBACjC,IAAyB,IAArBD,EAA4B,CAC9B7N,GAAO,IAAM,EAAW,MAAQ,EAAU,cAAiBxR,EAAc,OAAI,KAC7E,IAAIuf,EAAqBvJ,EACzBA,EAAiBhM,EAAG1B,cAAgB,mBAEpC,IAAI4O,EAAaA,GAAc,GAC/BA,EAAWlI,KAFXwC,GAAO,UAAY,EAAW,UAG9BA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,gEAAmFxH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,uBAA0BhW,EAAc,OAAI,OAC5L,IAArBgK,EAAGjD,KAAKqQ,WACV5F,GAAO,0CAA8CxR,EAAc,OAAI,YAErEgK,EAAGjD,KAAKsQ,UACV7F,GAAO,mDAAsDxH,EAAa,WAAI,YAAc,EAAU,KAExGwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EACZA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,MACPwE,EAAiBuJ,EACbtJ,IACF+B,GAAkB,IAClBxG,GAAO,YAGX,IAAI4G,EAAOpY,EACX,GAAIoY,EAGF,IAFA,IAAIC,EAAMC,GAAM,EACdC,EAAKH,EAAKja,OAAS,EACdma,EAAKC,GAEV,GADAF,EAAOD,EAAKE,GAAM,GACbtO,EAAGjD,KAAKyR,eAAgC,iBAARH,GAA+C,EAA3B3W,OAAO+J,KAAK4M,GAAMla,OAAa6L,EAAG7H,KAAKoQ,eAAe8F,EAAMrO,EAAGxC,MAAMiH,KAAO,CACnI+C,GAAO,IAAM,EAAe,gBAAkB,EAAU,aAAe,EAAO,OAC9E,IAAI4H,EAAY/F,EAAQ,IAAMiF,EAAK,IACnCP,EAAI7Y,OAASmZ,EACbN,EAAI1P,WAAa0N,EAAc,IAAMuC,EAAK,IAC1CP,EAAIzP,cAAgB0N,EAAiB,IAAMsC,EAC3CP,EAAIxP,UAAYyB,EAAG7H,KAAKwQ,YAAY3I,EAAGzB,UAAW+P,EAAItO,EAAGjD,KAAK8L,cAAc,GAC5EkF,EAAI3B,YAAY6C,GAAYX,EAC5B,IAAIe,EAAQrP,EAAGpK,SAASmY,GACxBA,EAAI5W,OAAS+W,EACTlO,EAAG7H,KAAKgP,cAAckI,EAAOH,GAAa,EAC5C1H,GAAO,IAAOxH,EAAG7H,KAAKkP,WAAWgI,EAAOH,EAAWE,GAAc,IAEjE5H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAExEA,GAAO,OACHyE,IACFzE,GAAO,QAAU,EAAe,OAChCwG,GAAkB,KAK1B,GAA+B,iBAApBqH,IAAiCrV,EAAGjD,KAAKyR,eAA4C,iBAApB6G,GAAuE,EAAvC3d,OAAO+J,KAAK4T,GAAkBlhB,OAAa6L,EAAG7H,KAAKoQ,eAAe8M,EAAkBrV,EAAGxC,MAAMiH,MAAO,CAC9MsJ,EAAI7Y,OAASmgB,EACbtH,EAAI1P,WAAa2B,EAAG3B,WAAa,mBACjC0P,EAAIzP,cAAgB0B,EAAG1B,cAAgB,mBACvCkJ,GAAO,IAAM,EAAe,gBAAkB,EAAU,aAAgBxR,EAAc,OAAI,iBAAmB,EAAS,MAASA,EAAc,OAAI,KAAO,EAAS,MAAQ,EAAU,YAAc,EAAS,SAC1M+X,EAAIxP,UAAYyB,EAAG7H,KAAKwQ,YAAY3I,EAAGzB,UAAWyQ,EAAMhP,EAAGjD,KAAK8L,cAAc,GAC1EuG,EAAY/F,EAAQ,IAAM2F,EAAO,IACrCjB,EAAI3B,YAAY6C,GAAYD,EACxBK,EAAQrP,EAAGpK,SAASmY,GACxBA,EAAI5W,OAAS+W,EACTlO,EAAG7H,KAAKgP,cAAckI,EAAOH,GAAa,EAC5C1H,GAAO,IAAOxH,EAAG7H,KAAKkP,WAAWgI,EAAOH,EAAWE,GAAc,IAEjE5H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAEpEyE,IACFzE,GAAO,SAAW,EAAe,aAEnCA,GAAO,SACHyE,IACFzE,GAAO,QAAU,EAAe,OAChCwG,GAAkB,WAGjB,GAAKhO,EAAGjD,KAAKyR,eAAmC,iBAAXxY,GAAqD,EAA9B0B,OAAO+J,KAAKzL,GAAS7B,OAAa6L,EAAG7H,KAAKoQ,eAAevS,EAASgK,EAAGxC,MAAMiH,KAAO,CACnJsJ,EAAI7Y,OAASc,EACb+X,EAAI1P,WAAa0N,EACjBgC,EAAIzP,cAAgB0N,EACpBxE,GAAO,cAAgB,EAAS,SAAqB,EAAS,MAAQ,EAAU,YAAc,EAAS,SACvGuG,EAAIxP,UAAYyB,EAAG7H,KAAKwQ,YAAY3I,EAAGzB,UAAWyQ,EAAMhP,EAAGjD,KAAK8L,cAAc,GAC1EuG,EAAY/F,EAAQ,IAAM2F,EAAO,IACrCjB,EAAI3B,YAAY6C,GAAYD,EACxBK,EAAQrP,EAAGpK,SAASmY,GACxBA,EAAI5W,OAAS+W,EACTlO,EAAG7H,KAAKgP,cAAckI,EAAOH,GAAa,EAC5C1H,GAAO,IAAOxH,EAAG7H,KAAKkP,WAAWgI,EAAOH,EAAWE,GAAc,IAEjE5H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAEpEyE,IACFzE,GAAO,SAAW,EAAe,aAEnCA,GAAO,KAMT,OAJIyE,IACFzE,GAAO,IAAM,EAAmB,QAAU,EAAU,iBAEtDA,EAAMxH,EAAG7H,KAAKoP,YAAYC,KAI1B,IAAIgO,GAAG,CAAC,SAAS5hB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA6BoN,EAAIwL,EAAUC,GAC1D,IASEC,EATElE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9BM,EAAUnM,EAAGjD,KAAKsM,OAASrT,GAAWA,EAAQqT,MAIhDqC,EAFES,GACF3E,GAAO,cAAgB,EAAS,MAASxH,EAAG7H,KAAKiR,QAAQpT,EAAQqT,MAAOwC,EAAU7L,EAAGoM,aAAgB,KACtF,SAAWT,GAEX3V,EAEjBwR,GAAO,eAAiB,EAAS,QAC7B2E,IACF3E,GAAO,IAAM,EAAiB,8BAAgC,EAAiB,oBAEjFA,GAAO,aAAe,EAAS,MAAQ,EAAU,MAAQ,EAAiB,KAExEA,GADExH,EAAGjD,KAAK0Y,oBACH,gCAAkC,EAAS,eAAiB,EAAS,UAAazV,EAAGjD,KAAwB,oBAAI,IAEjH,YAAc,EAAS,yBAA2B,EAAS,KAEpEyK,GAAO,MACH2E,IACF3E,GAAO,SAGT,IAAI0F,EAAaA,GAAc,GAC/BA,EAAWlI,KAFXwC,GAAO,WAGPA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,2DAA8ExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,4BAA8B,EAAiB,OAC1L,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,sCAELA,GADE2E,EACK,OAAU,EAEL,EAAiB,KAG7BnM,EAAGjD,KAAKsQ,UACV7F,GAAO,eAELA,GADE2E,EACK,kBAAoB,EAEpB,GAAK,EAEd3E,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EAgBZ,OAfAA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,KACHyE,IACFzE,GAAO,YAEFA,IAGP,IAAIkO,GAAG,CAAC,SAAS9hB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAsBoN,EAAIwL,EAAUC,GACnD,IAAIjE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9B8C,EAAQ,SAAWhD,EACnBoC,EAAM/N,EAAG7H,KAAKc,KAAK+G,GACvB+N,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC/B,GAAK5L,EAAGjD,KAAKyR,eAAmC,iBAAXxY,GAAqD,EAA9B0B,OAAO+J,KAAKzL,GAAS7B,OAAa6L,EAAG7H,KAAKoQ,eAAevS,EAASgK,EAAGxC,MAAMiH,KAAO,CAC5IsJ,EAAI7Y,OAASc,EACb+X,EAAI1P,WAAa0N,EACjBgC,EAAIzP,cAAgB0N,EACpBxE,GAAO,QAAU,EAAU,eAC3B,IAGImO,EAHA/G,EAAgB5O,EAAGwN,cACvBxN,EAAGwN,cAAgBO,EAAIP,eAAgB,EACvCO,EAAIZ,cAAe,EAEfY,EAAIhR,KAAKmP,YACXyJ,EAAmB5H,EAAIhR,KAAKmP,UAC5B6B,EAAIhR,KAAKmP,WAAY,GAEvB1E,GAAO,IAAOxH,EAAGpK,SAASmY,GAAQ,IAClCA,EAAIZ,cAAe,EACfwI,IAAkB5H,EAAIhR,KAAKmP,UAAYyJ,GAC3C3V,EAAGwN,cAAgBO,EAAIP,cAAgBoB,EAEvC,IAAI1B,EAAaA,GAAc,GAC/BA,EAAWlI,KAFXwC,GAAO,QAAU,EAAe,UAGhCA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,oDAAuExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,kBACpI,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,sCAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EACZA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,uBAAyB,EAAU,iCAAmC,EAAU,sBAAwB,EAAU,4BACrHxH,EAAGjD,KAAKmP,YACV1E,GAAO,YAGTA,GAAO,kBACiB,IAApBxH,EAAGmN,cACL3F,GAAO,oDAAuExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,kBACpI,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,sCAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,+EACHyE,IACFzE,GAAO,kBAGX,OAAOA,IAGP,IAAIoO,GAAG,CAAC,SAAShiB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAwBoN,EAAIwL,EAAUC,GACrD,IAAIjE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBgD,EAAQ,SAAWhD,EACnBoC,EAAM/N,EAAG7H,KAAKc,KAAK+G,GACnBgO,EAAiB,GACrBD,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC3BsC,EAAiBH,EAAI5W,OACvB0e,EAAa,YAAclK,EAC3BmK,EAAkB,iBAAmBnK,EACvCnE,GAAO,OAAS,EAAU,eAAiB,EAAe,cAAgB,EAAW,cAAgB,EAAoB,YACzH,IAAIoH,EAAgB5O,EAAGwN,cACvBxN,EAAGwN,cAAgBO,EAAIP,eAAgB,EACvC,IAAIY,EAAOpY,EACX,GAAIoY,EAGF,IAFA,IAAIC,EAAMC,GAAM,EACdC,EAAKH,EAAKja,OAAS,EACdma,EAAKC,GACVF,EAAOD,EAAKE,GAAM,IACbtO,EAAGjD,KAAKyR,eAAgC,iBAARH,GAA+C,EAA3B3W,OAAO+J,KAAK4M,GAAMla,OAAa6L,EAAG7H,KAAKoQ,eAAe8F,EAAMrO,EAAGxC,MAAMiH,OAC5HsJ,EAAI7Y,OAASmZ,EACbN,EAAI1P,WAAa0N,EAAc,IAAMuC,EAAK,IAC1CP,EAAIzP,cAAgB0N,EAAiB,IAAMsC,EAC3C9G,GAAO,KAAQxH,EAAGpK,SAASmY,GAAQ,IACnCA,EAAI5W,OAAS+W,GAEb1G,GAAO,QAAU,EAAe,YAE9B8G,IACF9G,GAAO,QAAU,EAAe,OAAS,EAAe,OAAS,EAAW,aAAe,EAAoB,OAAS,EAAoB,KAAO,EAAO,eAC1JwG,GAAkB,KAEpBxG,GAAO,QAAU,EAAe,OAAS,EAAW,MAAQ,EAAe,YAAc,EAAoB,MAAQ,EAAO,MA8BhI,OA3BAxH,EAAGwN,cAAgBO,EAAIP,cAAgBoB,EACvCpH,GAAY,EAAmB,QAAU,EAAW,sBAC5B,IAApBxH,EAAGmN,cACL3F,GAAO,sDAAyExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,gCAAkC,EAAoB,OAC5L,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,2DAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACFxH,EAAGwN,eAAiBvB,IAGrBzE,GADExH,EAAG6H,MACE,wCAEA,8CAGXL,GAAO,sBAAwB,EAAU,iCAAmC,EAAU,sBAAwB,EAAU,2BACpHxH,EAAGjD,KAAKmP,YACV1E,GAAO,OAEFA,IAGP,IAAIuO,GAAG,CAAC,SAASniB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA0BoN,EAAIwL,EAAUC,GACvD,IASEC,EATElE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9BM,EAAUnM,EAAGjD,KAAKsM,OAASrT,GAAWA,EAAQqT,MAIhDqC,EAFES,GACF3E,GAAO,cAAgB,EAAS,MAASxH,EAAG7H,KAAKiR,QAAQpT,EAAQqT,MAAOwC,EAAU7L,EAAGoM,aAAgB,KACtF,SAAWT,GAEX3V,EAEjB,IAAIggB,EAAU7J,EAAU,eAAiBT,EAAe,KAAO1L,EAAGvB,WAAWzI,GAC7EwR,GAAO,QACH2E,IACF3E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAGhF,IAAI0F,EAAaA,GAAc,GAC/BA,EAAWlI,KAFXwC,GAAO,KAAO,EAAY,SAAW,EAAU,YAG/CA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,wDAA2ExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,0BAE/JxE,GADE2E,EACK,GAAK,EAEL,GAAMnM,EAAG7H,KAAKkE,eAAerG,GAEtCwR,GAAO,QACkB,IAArBxH,EAAGjD,KAAKqQ,WACV5F,GAAO,uCAELA,GADE2E,EACK,OAAU,EAAiB,OAE3B,GAAMnM,EAAG7H,KAAK+O,aAAalR,GAEpCwR,GAAO,QAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,eAELA,GADE2E,EACK,kBAAoB,EAEpB,GAAMnM,EAAG7H,KAAKkE,eAAerG,GAEtCwR,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EAgBZ,OAfAA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,KACHyE,IACFzE,GAAO,YAEFA,IAGP,IAAIyO,GAAG,CAAC,SAASriB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA6BoN,EAAIwL,EAAUC,GAC1D,IAAIjE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9B8C,EAAQ,SAAWhD,EACnBoC,EAAM/N,EAAG7H,KAAKc,KAAK+G,GACnBgO,EAAiB,GACrBD,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC3BsK,EAAO,MAAQvK,EACjBqD,EAAO,MAAQrD,EACfsD,EAAWlB,EAAIjC,UAAY9L,EAAG8L,UAAY,EAC1CoD,EAAY,OAASD,EACrBkH,EAAkB,iBAAmBxK,EACnCyK,EAAc1e,OAAO+J,KAAKzL,GAAW,IACvCqgB,EAAerW,EAAG9K,OAAOohB,mBAAqB,GAC9CC,EAAiB7e,OAAO+J,KAAK4U,GAC7BG,EAAexW,EAAG9K,OAAOuhB,qBACzBC,EAAkBN,EAAYjiB,QAAUoiB,EAAepiB,OACvDwiB,GAAiC,IAAjBH,EAChBI,EAA6C,iBAAhBJ,GAA4B9e,OAAO+J,KAAK+U,GAAcriB,OACnF0iB,EAAoB7W,EAAGjD,KAAK+Z,iBAC5BC,EAAmBJ,GAAiBC,GAAuBC,EAC3DlG,EAAiB3Q,EAAGjD,KAAK6T,cACzB1C,EAAiBlO,EAAG7I,OAClB6f,EAAYhX,EAAG9K,OAAOgW,SAC1B,GAAI8L,KAAehX,EAAGjD,KAAKsM,QAAS2N,EAAU3N,QAAU2N,EAAU7iB,OAAS6L,EAAGjD,KAAKka,aAAc,IAAIC,EAAgBlX,EAAG7H,KAAKwK,OAAOqU,GAKpI,GAJAxP,GAAO,OAAS,EAAU,iBAAmB,EAAe,WACxDmJ,IACFnJ,GAAO,QAAU,EAAoB,iBAEnCuP,EAAkB,CAMpB,GAJEvP,GADEmJ,EACK,IAAM,EAAoB,MAAQ,EAAoB,mBAAqB,EAAU,eAAiB,EAAS,OAAS,EAAS,IAAM,EAAoB,YAAc,EAAS,aAAe,EAAS,MAAQ,EAAoB,IAAM,EAAS,MAErP,aAAe,EAAS,OAAS,EAAU,OAEhD+F,EAAiB,CAEnB,GADAlP,GAAO,oBAAsB,EAAS,cAClC4O,EAAYjiB,OACd,GAAyB,EAArBiiB,EAAYjiB,OACdqT,GAAO,sBAAwB,EAAgB,mBAAqB,EAAS,SACxE,CACL,IAAI4G,EAAOgI,EACX,GAAIhI,EAGF,IAFA,IAAkB+I,GAAM,EACtB5I,EAAKH,EAAKja,OAAS,EACdgjB,EAAK5I,GACVyC,EAAe5C,EAAK+I,GAAM,GAC1B3P,GAAO,OAAS,EAAS,OAAUxH,EAAG7H,KAAKkE,eAAe2U,GAAiB,IAKnF,GAAIuF,EAAepiB,OAAQ,CACzB,IAAImd,EAAOiF,EACX,GAAIjF,EAGF,IAFA,IAAgBhD,GAAM,EACpBkD,EAAKF,EAAKnd,OAAS,EACdma,EAAKkD,GACV4F,GAAa9F,EAAKhD,GAAM,GACxB9G,GAAO,OAAUxH,EAAGvB,WAAW2Y,IAAe,SAAW,EAAS,KAIxE5P,GAAO,uBAAyB,EAAS,OAE3C,GAAyB,OAArBqP,EACFrP,GAAO,WAAa,EAAU,IAAM,EAAS,UACxC,CACL,IAAIuJ,EAAoB/Q,EAAGzB,UACvB8Y,EAAsB,OAAUnB,EAAO,OAI3C,GAHIlW,EAAGjD,KAAKsU,yBACVrR,EAAGzB,UAAYyB,EAAG7H,KAAKwQ,YAAY3I,EAAGzB,UAAW2X,EAAMlW,EAAGjD,KAAK8L,eAE7D8N,EACF,GAAIE,EACFrP,GAAO,WAAa,EAAU,IAAM,EAAS,UACxC,CAEL,IAAI+N,EAAqBvJ,EACzBA,EAAiBhM,EAAG1B,cAAgB,yBAChC4O,GAAaA,IAAc,IACpBlI,KAJXwC,GAAO,IAAM,EAAe,cAK5BA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,qEAAwFxH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,qCAAwC,EAAwB,QACrN,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,gBAELA,GADExH,EAAGjD,KAAKsU,uBACH,oCAEA,wCAET7J,GAAO,MAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,mDAAsDxH,EAAa,WAAI,YAAc,EAAU,KAExGwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EACZA,EAAM0F,GAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCmE,EAAiBuJ,EACbtJ,IACFzE,GAAO,iBAGN,GAAIoP,EACT,GAAyB,WAArBC,EAAgC,CAClCrP,GAAO,QAAU,EAAU,eAC3B,IAAIoH,EAAgB5O,EAAGwN,cACvBxN,EAAGwN,cAAgBO,EAAIP,eAAgB,EACvCO,EAAI7Y,OAASshB,EACbzI,EAAI1P,WAAa2B,EAAG3B,WAAa,wBACjC0P,EAAIzP,cAAgB0B,EAAG1B,cAAgB,wBACvCyP,EAAIxP,UAAYyB,EAAGjD,KAAKsU,uBAAyBrR,EAAGzB,UAAYyB,EAAG7H,KAAKwQ,YAAY3I,EAAGzB,UAAW2X,EAAMlW,EAAGjD,KAAK8L,cAChH,IAAIuG,EAAY/F,EAAQ,IAAM6M,EAAO,IACrCnI,EAAI3B,YAAY6C,GAAYiH,EAC5B,IAAI7G,EAAQrP,EAAGpK,SAASmY,GACxBA,EAAI5W,OAAS+W,EACTlO,EAAG7H,KAAKgP,cAAckI,EAAOH,GAAa,EAC5C1H,GAAO,IAAOxH,EAAG7H,KAAKkP,WAAWgI,EAAOH,EAAWE,GAAc,IAEjE5H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAExEA,GAAO,SAAW,EAAe,gBAAkB,EAAU,wHAA0H,EAAU,IAAM,EAAS,SAChNxH,EAAGwN,cAAgBO,EAAIP,cAAgBoB,MAClC,CACLb,EAAI7Y,OAASshB,EACbzI,EAAI1P,WAAa2B,EAAG3B,WAAa,wBACjC0P,EAAIzP,cAAgB0B,EAAG1B,cAAgB,wBACvCyP,EAAIxP,UAAYyB,EAAGjD,KAAKsU,uBAAyBrR,EAAGzB,UAAYyB,EAAG7H,KAAKwQ,YAAY3I,EAAGzB,UAAW2X,EAAMlW,EAAGjD,KAAK8L,cAC5GuG,EAAY/F,EAAQ,IAAM6M,EAAO,IACrCnI,EAAI3B,YAAY6C,GAAYiH,EACxB7G,EAAQrP,EAAGpK,SAASmY,GACxBA,EAAI5W,OAAS+W,EACTlO,EAAG7H,KAAKgP,cAAckI,EAAOH,GAAa,EAC5C1H,GAAO,IAAOxH,EAAG7H,KAAKkP,WAAWgI,EAAOH,EAAWE,GAAc,IAEjE5H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAEpEyE,IACFzE,GAAO,SAAW,EAAe,aAIvCxH,EAAGzB,UAAYwS,EAEb2F,IACFlP,GAAO,OAETA,GAAO,OACHyE,IACFzE,GAAO,QAAU,EAAe,OAChCwG,GAAkB,KAGtB,IAAIsJ,EAAetX,EAAGjD,KAAKwa,cAAgBvX,EAAGwN,cAC9C,GAAI4I,EAAYjiB,OAAQ,CACtB,IAAIqjB,EAAOpB,EACX,GAAIoB,EAGF,IAFA,IAAIxG,EAAcyG,GAAM,EACtBC,EAAKF,EAAKrjB,OAAS,EACdsjB,EAAKC,GAAI,CAEd,IAAIrJ,EAAOrY,EADXgb,EAAewG,EAAKC,GAAM,IAE1B,GAAKzX,EAAGjD,KAAKyR,eAAgC,iBAARH,GAA+C,EAA3B3W,OAAO+J,KAAK4M,GAAMla,OAAa6L,EAAG7H,KAAKoQ,eAAe8F,EAAMrO,EAAGxC,MAAMiH,KAAO,CACnI,IAAIyM,EAAQlR,EAAG7H,KAAK8O,YAAY+J,GAE9B2G,GADAvI,EAAY/F,EAAQ6H,EACNoG,QAAiC/hB,IAAjB8Y,EAAKuJ,SACrC7J,EAAI7Y,OAASmZ,EACbN,EAAI1P,WAAa0N,EAAcmF,EAC/BnD,EAAIzP,cAAgB0N,EAAiB,IAAMhM,EAAG7H,KAAKsK,eAAeuO,GAClEjD,EAAIxP,UAAYyB,EAAG7H,KAAK6Q,QAAQhJ,EAAGzB,UAAWyS,EAAchR,EAAGjD,KAAK8L,cACpEkF,EAAI3B,YAAY6C,GAAYjP,EAAG7H,KAAKkE,eAAe2U,GAC/C3B,EAAQrP,EAAGpK,SAASmY,GAExB,GADAA,EAAI5W,OAAS+W,EACTlO,EAAG7H,KAAKgP,cAAckI,EAAOH,GAAa,EAAG,CAC/CG,EAAQrP,EAAG7H,KAAKkP,WAAWgI,EAAOH,EAAWE,GAC7C,IAAI6B,GAAW7B,MACV,CACD6B,GAAW/B,EACf1H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAEvD,GAAImQ,EACFnQ,GAAO,IAAM,EAAU,QAClB,CACL,GAAI0P,GAAiBA,EAAclG,GAAe,CAChDxJ,GAAO,SAAW,GAAa,kBAC3BmJ,IACFnJ,GAAO,8CAAgD,EAAU,MAAUxH,EAAG7H,KAAK+O,aAAa8J,GAAiB,OAEnHxJ,GAAO,OAAS,EAAe,aAC3BuJ,EAAoB/Q,EAAGzB,UACzBgX,EAAqBvJ,EADvB,IAOIkB,GALFkE,GAAmBpR,EAAG7H,KAAK+O,aAAa8J,GACtChR,EAAGjD,KAAKsU,yBACVrR,EAAGzB,UAAYyB,EAAG7H,KAAK6Q,QAAQ+H,EAAmBC,EAAchR,EAAGjD,KAAK8L,eAE1EmD,EAAiBhM,EAAG1B,cAAgB,aAChC4O,GAAaA,IAAc,IACpBlI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,yDAA4ExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,kCAAqC,GAAqB,QACnM,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,gBAELA,GADExH,EAAGjD,KAAKsU,uBACH,yBAEA,oCAAuC,GAAqB,MAErE7J,GAAO,MAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAEL8F,EAAQ9F,EACZA,EAAM0F,GAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCmE,EAAiBuJ,EACjBvV,EAAGzB,UAAYwS,EACfvJ,GAAO,kBAEHyE,GACFzE,GAAO,SAAW,GAAa,kBAC3BmJ,IACFnJ,GAAO,8CAAgD,EAAU,MAAUxH,EAAG7H,KAAK+O,aAAa8J,GAAiB,OAEnHxJ,GAAO,OAAS,EAAe,uBAE/BA,GAAO,QAAU,GAAa,kBAC1BmJ,IACFnJ,GAAO,8CAAgD,EAAU,MAAUxH,EAAG7H,KAAK+O,aAAa8J,GAAiB,OAEnHxJ,GAAO,SAGXA,GAAO,IAAM,EAAU,OAGvByE,IACFzE,GAAO,QAAU,EAAe,OAChCwG,GAAkB,MAK1B,GAAIuI,EAAepiB,OAAQ,CACzB,IAAI0jB,GAAOtB,EACX,GAAIsB,GAGF,IAFA,IAAIT,GAAYU,IAAM,EACpBC,GAAKF,GAAK1jB,OAAS,EACd2jB,GAAKC,IAAI,CAEV1J,EAAOgI,EADXe,GAAaS,GAAKC,IAAM,IAExB,GAAK9X,EAAGjD,KAAKyR,eAAgC,iBAARH,GAA+C,EAA3B3W,OAAO+J,KAAK4M,GAAMla,OAAa6L,EAAG7H,KAAKoQ,eAAe8F,EAAMrO,EAAGxC,MAAMiH,KAAO,CACnIsJ,EAAI7Y,OAASmZ,EACbN,EAAI1P,WAAa2B,EAAG3B,WAAa,qBAAuB2B,EAAG7H,KAAK8O,YAAYmQ,IAC5ErJ,EAAIzP,cAAgB0B,EAAG1B,cAAgB,sBAAwB0B,EAAG7H,KAAKsK,eAAe2U,IAEpF5P,GADEmJ,EACK,IAAM,EAAoB,MAAQ,EAAoB,mBAAqB,EAAU,eAAiB,EAAS,OAAS,EAAS,IAAM,EAAoB,YAAc,EAAS,aAAe,EAAS,MAAQ,EAAoB,IAAM,EAAS,MAErP,aAAe,EAAS,OAAS,EAAU,OAEpDnJ,GAAO,QAAWxH,EAAGvB,WAAW2Y,IAAe,SAAW,EAAS,QACnErJ,EAAIxP,UAAYyB,EAAG7H,KAAKwQ,YAAY3I,EAAGzB,UAAW2X,EAAMlW,EAAGjD,KAAK8L,cAC5DuG,EAAY/F,EAAQ,IAAM6M,EAAO,IACrCnI,EAAI3B,YAAY6C,GAAYiH,EACxB7G,EAAQrP,EAAGpK,SAASmY,GACxBA,EAAI5W,OAAS+W,EACTlO,EAAG7H,KAAKgP,cAAckI,EAAOH,GAAa,EAC5C1H,GAAO,IAAOxH,EAAG7H,KAAKkP,WAAWgI,EAAOH,EAAWE,GAAc,IAEjE5H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAEpEyE,IACFzE,GAAO,SAAW,EAAe,aAEnCA,GAAO,MACHyE,IACFzE,GAAO,SAAW,EAAe,aAEnCA,GAAO,OACHyE,IACFzE,GAAO,QAAU,EAAe,OAChCwG,GAAkB,OAU5B,OAJI/B,IACFzE,GAAO,IAAM,EAAmB,QAAU,EAAU,iBAEtDA,EAAMxH,EAAG7H,KAAKoP,YAAYC,KAI1B,IAAIwQ,GAAG,CAAC,SAASpkB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAgCoN,EAAIwL,EAAUC,GAC7D,IAAIjE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9B8C,EAAQ,SAAWhD,EACnBoC,EAAM/N,EAAG7H,KAAKc,KAAK+G,GAEvB+N,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAE/B,GADApE,GAAO,OAAS,EAAU,aACrBxH,EAAGjD,KAAKyR,eAAmC,iBAAXxY,GAAqD,EAA9B0B,OAAO+J,KAAKzL,GAAS7B,OAAa6L,EAAG7H,KAAKoQ,eAAevS,EAASgK,EAAGxC,MAAMiH,KAAO,CAC5IsJ,EAAI7Y,OAASc,EACb+X,EAAI1P,WAAa0N,EACjBgC,EAAIzP,cAAgB0N,EACpB,IAAIkK,EAAO,MAAQvK,EACjBqD,EAAO,MAAQrD,EACf2C,EAAK,IAAM3C,EACXsM,EAAe,OAAU/B,EAAO,OAEhChH,EAAY,QADDnB,EAAIjC,UAAY9L,EAAG8L,UAAY,GAE1CqK,EAAkB,iBAAmBxK,EACrCgF,EAAiB3Q,EAAGjD,KAAK6T,cACzB1C,EAAiBlO,EAAG7I,OAClBwZ,IACFnJ,GAAO,QAAU,EAAoB,kBAGrCA,GADEmJ,EACK,IAAM,EAAoB,MAAQ,EAAoB,mBAAqB,EAAU,eAAiB,EAAS,OAAS,EAAS,IAAM,EAAoB,YAAc,EAAS,aAAe,EAAS,MAAQ,EAAoB,IAAM,EAAS,MAErP,aAAe,EAAS,OAAS,EAAU,OAEpDnJ,GAAO,iBAAmB,EAAS,cACnC,IAAI4H,EAAY8G,EACZtH,EAAgB5O,EAAGwN,cACvBxN,EAAGwN,cAAgBO,EAAIP,eAAgB,EACvC,IAAI6B,EAAQrP,EAAGpK,SAASmY,GACxBA,EAAI5W,OAAS+W,EACTlO,EAAG7H,KAAKgP,cAAckI,EAAOH,GAAa,EAC5C1H,GAAO,IAAOxH,EAAG7H,KAAKkP,WAAWgI,EAAOH,EAAWE,GAAc,IAEjE5H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAExExH,EAAGwN,cAAgBO,EAAIP,cAAgBoB,EACvCpH,GAAO,SAAW,EAAe,gBAAkB,EAAO,aAAe,EAAS,KAAO,EAAO,YAAc,EAAO,iBAAmB,EAAO,oBAAsB,EAAS,sBACtJ,IAApBxH,EAAGmN,cACL3F,GAAO,8DAAiFxH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,+BAAkC,EAAiB,QACjM,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,iCAAqC,EAAiB,oBAE3DxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACFxH,EAAGwN,eAAiBvB,IAGrBzE,GADExH,EAAG6H,MACE,wCAEA,8CAGPoE,IACFzE,GAAO,YAETA,GAAO,OAMT,OAJIyE,IACFzE,GAAO,SAAmC,EAAU,iBAEtDA,EAAMxH,EAAG7H,KAAKoP,YAAYC,KAI1B,IAAI0Q,GAAG,CAAC,SAAStkB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAsBoN,EAAIwL,EAAUC,GACnD,IAQI9N,EAAQwa,EARR3Q,EAAM,IAENqE,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9B6C,EAAS,QANF1O,EAAG4L,MAQd,GAAe,KAAX5V,GAA6B,MAAXA,EAGlBmiB,EAFEnY,EAAG7B,QACLR,EAASqC,EAAG6H,MACD,aAEXlK,GAAmC,IAA1BqC,EAAGpE,KAAK1G,OAAOyI,OACb,sBAER,CACL,IAAIya,EAAUpY,EAAGxB,WAAWwB,EAAG7I,OAAQnB,EAASgK,EAAG7B,QACnD,QAAgB5I,IAAZ6iB,EAAuB,CACzB,IAAIC,EAAWrY,EAAGjL,gBAAgBqC,QAAQ4I,EAAG7I,OAAQnB,GACrD,GAA2B,QAAvBgK,EAAGjD,KAAKub,YAAuB,CACjCtY,EAAGpB,OAAOI,MAAMqZ,IACZnL,EAAaA,GAAc,IACpBlI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,qDAAwExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,sBAA0BhM,EAAG7H,KAAK+O,aAAalR,GAAY,QAChM,IAArBgK,EAAGjD,KAAKqQ,WACV5F,GAAO,0CAA+CxH,EAAG7H,KAAK+O,aAAalR,GAAY,MAErFgK,EAAGjD,KAAKsQ,UACV7F,GAAO,cAAiBxH,EAAG7H,KAAKkE,eAAerG,GAAY,mCAAsCgK,EAAa,WAAI,YAAc,EAAU,KAE5IwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EACZA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAE/BoE,IACFzE,GAAO,sBAEJ,CAAA,GAA2B,UAAvBxH,EAAGjD,KAAKub,YAMjB,MAAM,IAAItY,EAAGjL,gBAAgBiL,EAAG7I,OAAQnB,EAASqiB,GALjDrY,EAAGpB,OAAOuT,KAAKkG,GACXpM,IACFzE,GAAO,uBAKN,GAAI4Q,EAAQzY,OAAQ,CACzB,IAAIoO,EAAM/N,EAAG7H,KAAKc,KAAK+G,GACvB+N,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC/BmC,EAAI7Y,OAASkjB,EAAQljB,OACrB6Y,EAAI1P,WAAa,GACjB0P,EAAIzP,cAAgBtI,EAEpBwR,GAAO,IADKxH,EAAGpK,SAASmY,GAAKlK,QAAQ,oBAAqBuU,EAAQpkB,MAC3C,IACnBiY,IACFzE,GAAO,QAAU,EAAe,aAGlC7J,GAA4B,IAAnBya,EAAQza,QAAoBqC,EAAG6H,QAA4B,IAAnBuQ,EAAQza,OACzDwa,EAAWC,EAAQpkB,KAGvB,GAAImkB,EAAU,CACZ,IAAIjL,GAAAA,EAAaA,GAAc,IACpBlI,KAAKwC,GAChBA,EAAM,GAEJA,GADExH,EAAGjD,KAAKoT,YACH,IAAM,EAAa,eAEnB,IAAM,EAAa,KAE5B3I,GAAO,IAAM,EAAU,qBACH,MAAhBxH,EAAGzB,YACLiJ,GAAO,MAASxH,EAAY,WAK9B,IAAIuY,EADJ/Q,GAAO,OAFWqE,EAAW,QAAWA,EAAW,GAAM,IAAM,cAEhC,OADPA,EAAW7L,EAAGoM,YAAYP,GAAY,sBACC,gBAG/D,GADArE,EAAM0F,EAAWK,MACb5P,EAAQ,CACV,IAAKqC,EAAG6H,MAAO,MAAM,IAAI9T,MAAM,0CAC3BkY,IACFzE,GAAO,QAAU,EAAW,MAE9BA,GAAO,gBAAkB,EAAmB,KACxCyE,IACFzE,GAAO,IAAM,EAAW,aAE1BA,GAAO,4KACHyE,IACFzE,GAAO,IAAM,EAAW,cAE1BA,GAAO,MACHyE,IACFzE,GAAO,QAAU,EAAW,aAG9BA,GAAO,SAAW,EAAmB,uCAAyC,EAAa,0CAA4C,EAAa,wCAChJyE,IACFzE,GAAO,YAIb,OAAOA,IAGP,IAAIgR,GAAG,CAAC,SAAS5kB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA2BoN,EAAIwL,EAAUC,GACxD,IAAIjE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBQ,EAAUnM,EAAGjD,KAAKsM,OAASrT,GAAWA,EAAQqT,MAE9C8C,IACF3E,GAAO,cAAgB,EAAS,MAASxH,EAAG7H,KAAKiR,QAAQpT,EAAQqT,MAAOwC,EAAU7L,EAAGoM,aAAgB,MAKvG,IAAIsF,EAAW,SAAW/F,EAC1B,IAAKQ,EACH,GAAInW,EAAQ7B,OAAS6L,EAAGjD,KAAKka,cAAgBjX,EAAG9K,OAAOqP,YAAc7M,OAAO+J,KAAKzB,EAAG9K,OAAOqP,YAAYpQ,OAAQ,CAC7G,IAAI6iB,EAAY,GACZ5I,EAAOpY,EACX,GAAIoY,EAGF,IAFA,IAAIyC,EAAWsG,GAAM,EACnB5I,EAAKH,EAAKja,OAAS,EACdgjB,EAAK5I,GAAI,CACdsC,EAAYzC,EAAK+I,GAAM,GACvB,IAAIsB,EAAezY,EAAG9K,OAAOqP,WAAWsM,GAClC4H,IAAiBzY,EAAGjD,KAAKyR,eAAwC,iBAAhBiK,GAA+D,EAAnC/gB,OAAO+J,KAAKgX,GAActkB,OAAa6L,EAAG7H,KAAKoQ,eAAekQ,EAAczY,EAAGxC,MAAMiH,QACtKuS,EAAUA,EAAU7iB,QAAU0c,SAKhCmG,EAAYhhB,EAGpB,GAAImW,GAAW6K,EAAU7iB,OAAQ,CAC/B,IAAI4c,EAAoB/Q,EAAGzB,UACzBma,EAAgBvM,GAA+BnM,EAAGjD,KAAKka,cAA5BD,EAAU7iB,OACrCwc,EAAiB3Q,EAAGjD,KAAK6T,cAC3B,GAAI3E,EAEF,GADAzE,GAAO,eAAiB,EAAS,KAC7BkR,EAAe,CACZvM,IACH3E,GAAO,QAAU,EAAa,qBAAuB,EAAgB,MAEvE,IAEE4J,EAAmB,QADnBD,EAAgB,SAAWxF,EAAO,KADhC2C,EAAK,IAAM3C,GACgC,KACA,OAC3C3L,EAAGjD,KAAKsU,yBACVrR,EAAGzB,UAAYyB,EAAG7H,KAAKwQ,YAAYoI,EAAmBI,EAAenR,EAAGjD,KAAK8L,eAE/ErB,GAAO,QAAU,EAAW,YACxB2E,IACF3E,GAAO,cAAgB,EAAS,mBAAqB,EAAW,0CAA4C,EAAS,MAAQ,EAAW,oBAE1IA,GAAO,aAAe,EAAO,SAAW,EAAO,MAAQ,EAAa,YAAc,EAAO,SAAW,EAAW,MAAQ,EAAU,IAAM,EAAa,IAAM,EAAO,oBAC7JmJ,IACFnJ,GAAO,8CAAgD,EAAU,KAAO,EAAa,IAAM,EAAO,OAEpGA,GAAO,UAAY,EAAW,cAC1B2E,IACF3E,GAAO,UAGL0F,EAAaA,GAAc,IACpBlI,KAFXwC,GAAO,UAAY,EAAW,UAG9BA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,yDAA4ExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,kCAAqC,EAAqB,QACnM,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,gBAELA,GADExH,EAAGjD,KAAKsU,uBACH,yBAEA,oCAAuC,EAAqB,MAErE7J,GAAO,MAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EACZA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,iBACF,CACLA,GAAO,SACP,IAAI8J,EAAO0F,EACX,GAAI1F,EAGF,IAFA,IAAkBhD,GAAM,EACtBkD,EAAKF,EAAKnd,OAAS,EACdma,EAAKkD,GAAI,CACdR,EAAeM,EAAKhD,GAAM,GACtBA,IACF9G,GAAO,QAITA,GAAO,SADLyJ,EAAW5H,GADT6H,EAAQlR,EAAG7H,KAAK8O,YAAY+J,KAEF,kBAC1BL,IACFnJ,GAAO,8CAAgD,EAAU,MAAUxH,EAAG7H,KAAK+O,aAAa8J,GAAiB,OAEnHxJ,GAAO,gBAAkB,EAAS,MAASxH,EAAG7H,KAAKkE,eAAe2D,EAAGjD,KAAK8L,aAAemI,EAAeE,GAAU,OAGtH1J,GAAO,QACP,IAKI0F,EAJFkE,EAAmB,QADjBD,EAAgB,UAAYxF,GACe,OAC3C3L,EAAGjD,KAAKsU,yBACVrR,EAAGzB,UAAYyB,EAAGjD,KAAK8L,aAAe7I,EAAG7H,KAAKwQ,YAAYoI,EAAmBI,GAAe,GAAQJ,EAAoB,MAAQI,IAE9HjE,EAAaA,GAAc,IACpBlI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,yDAA4ExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,kCAAqC,EAAqB,QACnM,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,gBAELA,GADExH,EAAGjD,KAAKsU,uBACH,yBAEA,oCAAuC,EAAqB,MAErE7J,GAAO,MAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAEL8F,EAAQ9F,EACZA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,kBAGT,GAAIkR,EAAe,CACZvM,IACH3E,GAAO,QAAU,EAAa,qBAAuB,EAAgB,MAEvE,IACE2J,EACAC,EAAmB,QADnBD,EAAgB,SAAWxF,EAAO,KADhC2C,EAAK,IAAM3C,GACgC,KACA,OAC3C3L,EAAGjD,KAAKsU,yBACVrR,EAAGzB,UAAYyB,EAAG7H,KAAKwQ,YAAYoI,EAAmBI,EAAenR,EAAGjD,KAAK8L,eAE3EsD,IACF3E,GAAO,QAAU,EAAa,sBAAwB,EAAa,sBAC3C,IAApBxH,EAAGmN,cACL3F,GAAO,yDAA4ExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,kCAAqC,EAAqB,QACnM,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,gBAELA,GADExH,EAAGjD,KAAKsU,uBACH,yBAEA,oCAAuC,EAAqB,MAErE7J,GAAO,MAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,0FAA4F,EAAa,sBAElHA,GAAO,aAAe,EAAO,SAAW,EAAO,MAAQ,EAAa,YAAc,EAAO,aAAe,EAAU,IAAM,EAAa,IAAM,EAAO,oBAC9ImJ,IACFnJ,GAAO,8CAAgD,EAAU,KAAO,EAAa,IAAM,EAAO,OAEpGA,GAAO,qBACiB,IAApBxH,EAAGmN,cACL3F,GAAO,yDAA4ExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,kCAAqC,EAAqB,QACnM,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,gBAELA,GADExH,EAAGjD,KAAKsU,uBACH,yBAEA,oCAAuC,EAAqB,MAErE7J,GAAO,MAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,mFACH2E,IACF3E,GAAO,aAEJ,CACL,IAAIgQ,EAAOR,EACX,GAAIQ,EAGF,IAFA,IAAIxG,EAAcyG,GAAM,EACtBC,EAAKF,EAAKrjB,OAAS,EACdsjB,EAAKC,GAAI,CACd1G,EAAewG,EAAKC,GAAM,GAC1B,IAAIvG,EAAQlR,EAAG7H,KAAK8O,YAAY+J,GAE9BC,GADAG,EAAmBpR,EAAG7H,KAAK+O,aAAa8J,GAC7B3H,EAAQ6H,GACjBlR,EAAGjD,KAAKsU,yBACVrR,EAAGzB,UAAYyB,EAAG7H,KAAK6Q,QAAQ+H,EAAmBC,EAAchR,EAAGjD,KAAK8L,eAE1ErB,GAAO,SAAW,EAAa,kBAC3BmJ,IACFnJ,GAAO,8CAAgD,EAAU,MAAUxH,EAAG7H,KAAK+O,aAAa8J,GAAiB,OAEnHxJ,GAAO,qBACiB,IAApBxH,EAAGmN,cACL3F,GAAO,yDAA4ExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,kCAAqC,EAAqB,QACnM,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,gBAELA,GADExH,EAAGjD,KAAKsU,uBACH,yBAEA,oCAAuC,EAAqB,MAErE7J,GAAO,MAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,kFAKfxH,EAAGzB,UAAYwS,OACN9E,IACTzE,GAAO,gBAET,OAAOA,IAGP,IAAImR,GAAG,CAAC,SAAS/kB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA8BoN,EAAIwL,EAAUC,GAC3D,IAUEC,EAVElE,EAAM,IACNmE,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAAOsW,GACpBO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UACzB7C,EAAQ,QAAUwC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBQ,EAAUnM,EAAGjD,KAAKsM,OAASrT,GAAWA,EAAQqT,MAQlD,GAJEqC,EAFES,GACF3E,GAAO,cAAgB,EAAS,MAASxH,EAAG7H,KAAKiR,QAAQpT,EAAQqT,MAAOwC,EAAU7L,EAAGoM,aAAgB,KACtF,SAAWT,GAEX3V,GAEZA,GAAWmW,KAAoC,IAAxBnM,EAAGjD,KAAK4W,YAAuB,CACrDxH,IACF3E,GAAO,QAAU,EAAW,SAAW,EAAiB,iBAAmB,EAAiB,mBAAqB,EAAW,4BAA8B,EAAiB,kBAAsB,EAAW,qBAE9MA,GAAO,YAAc,EAAU,aAAe,EAAW,6BACzD,IAAIoR,EAAY5Y,EAAG9K,OAAOiW,OAASnL,EAAG9K,OAAOiW,MAAMhH,KACjD0U,EAAexV,MAAMC,QAAQsV,GAC/B,IAAKA,GAA0B,UAAbA,GAAsC,SAAbA,GAAyBC,IAAgD,GAA/BD,EAAUxG,QAAQ,WAAgD,GAA9BwG,EAAUxG,QAAQ,UACzI5K,GAAO,uDAAyD,EAAU,QAAU,EAAU,WAAa,EAAW,qCAEtHA,GAAO,yDAA2D,EAAU,QAE5EA,GAAO,QAAWxH,EAAG7H,KADP,iBAAmB0gB,EAAe,IAAM,KACnBD,EAAW,QAAQ,GAAS,eAC3DC,IACFrR,GAAO,sDAETA,GAAO,gDAAoD,EAAW,sEAExEA,GAAO,MACH2E,IACF3E,GAAO,SAGT,IAAI0F,EAAaA,GAAc,GAC/BA,EAAWlI,KAFXwC,GAAO,SAAW,EAAW,UAG7BA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,4DAA+ExH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,8BAC5I,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,mGAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,eAELA,GADE2E,EACK,kBAAoB,EAEpB,GAAK,EAEd3E,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EACZA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,MACHyE,IACFzE,GAAO,iBAGLyE,IACFzE,GAAO,iBAGX,OAAOA,IAGP,IAAIsR,GAAG,CAAC,SAASllB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA2BoN,EAAIwL,EAAUC,GACxD,IAAIjE,EAAM,GACN7J,GAA8B,IAArBqC,EAAG9K,OAAOyI,OACrBob,EAAe/Y,EAAG7H,KAAKqQ,qBAAqBxI,EAAG9K,OAAQ8K,EAAGxC,MAAMiH,IAAK,QACrEoG,EAAM7K,EAAG9M,KAAKsO,OAAOxB,EAAG9K,QAC1B,GAAI8K,EAAGjD,KAAKyR,eAAgB,CAC1B,IAAIwK,EAAchZ,EAAG7H,KAAKuQ,mBAAmB1I,EAAG9K,OAAQ8K,EAAGxC,MAAM2H,UACjE,GAAI6T,EAAa,CACf,IAAIC,EAAe,oBAAsBD,EACzC,GAA+B,QAA3BhZ,EAAGjD,KAAKyR,eACP,MAAM,IAAIza,MAAMklB,GADiBjZ,EAAGpB,OAAOuT,KAAK8G,IAezD,GAXIjZ,EAAG5B,QACLoJ,GAAO,mBACH7J,IACFqC,EAAG6H,OAAQ,EACXL,GAAO,UAETA,GAAO,sFACHqD,IAAQ7K,EAAGjD,KAAKa,YAAcoC,EAAGjD,KAAK8B,eACxC2I,GAAO,kBAA2BqD,EAAM,SAGpB,kBAAb7K,EAAG9K,SAAyB6jB,IAAgB/Y,EAAG9K,OAAOgB,KAAO,CACtE,IACIyV,EAAO3L,EAAG4L,MACVC,EAAW7L,EAAG8L,UACd9V,EAAUgK,EAAG9K,OAHbsW,EAAW,gBAIXO,EAAc/L,EAAG3B,WAAa2B,EAAG7H,KAAK8O,YAAYuE,GAClDQ,EAAiBhM,EAAG1B,cAAgB,IAAMkN,EAC1CS,GAAiBjM,EAAGjD,KAAKmP,UAEzB7C,EAAQ,QAAUwC,GAAY,IAC9B6C,EAAS,QAAU/C,EACvB,IAAkB,IAAd3L,EAAG9K,OAAkB,CACnB8K,EAAG5B,MACL6N,GAAgB,EAEhBzE,GAAO,QAAU,EAAW,cAE1B0F,EAAaA,GAAc,IACpBlI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,6DAAiGxH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,kBAC9J,IAArBhM,EAAGjD,KAAKqQ,WACV5F,GAAO,0CAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,mDAAsDxH,EAAa,WAAI,YAAc,EAAU,KAExGwH,GAAO,OAEPA,GAAO,OAET,IAAI8F,EAAQ9F,EACZA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,oFAK/BL,GAFAxH,EAAG5B,MACDT,EACK,iBAEA,yCAGF,QAAU,EAAW,YAMhC,OAHIqC,EAAG5B,QACLoJ,GAAO,yBAEFA,EAET,GAAIxH,EAAG5B,MAAO,CACZ,IAAI8a,EAAOlZ,EAAG5B,MACZuN,EAAO3L,EAAG4L,MAAQ,EAClBC,EAAW7L,EAAG8L,UAAY,EAC1BzC,EAAQ,OAKV,GAJArJ,EAAGmZ,OAASnZ,EAAG5J,QAAQmB,SAASyI,EAAG9M,KAAKsO,OAAOxB,EAAGpE,KAAK1G,SACvD8K,EAAG7I,OAAS6I,EAAG7I,QAAU6I,EAAGmZ,cACrBnZ,EAAG5B,MACV4B,EAAGoM,YAAc,MAAC7W,QACQA,IAAtByK,EAAG9K,OAAO0iB,SAAyB5X,EAAGjD,KAAKwa,aAAevX,EAAGjD,KAAKqc,eAAgB,CACpF,IAAIC,EAAc,wCAClB,GAA+B,QAA3BrZ,EAAGjD,KAAKqc,eACP,MAAM,IAAIrlB,MAAMslB,GADiBrZ,EAAGpB,OAAOuT,KAAKkH,GAGvD7R,GAAO,wBACPA,GAAO,wBACPA,GAAO,qDACF,CACDmE,EAAO3L,EAAG4L,MAEZvC,EAAQ,SADRwC,EAAW7L,EAAG8L,YACgB,IAEhC,GADIjB,IAAK7K,EAAG7I,OAAS6I,EAAG5J,QAAQiB,IAAI2I,EAAG7I,OAAQ0T,IAC3ClN,IAAWqC,EAAG6H,MAAO,MAAM,IAAI9T,MAAM,+BACzCyT,GAAO,aAAe,EAAS,aAE7BkH,EAAS,QAAU/C,EACrBM,GAAiBjM,EAAGjD,KAAKmP,UAD3B,IAEEoN,EAAkB,GAClBC,EAAkB,GAEhBC,EAAcxZ,EAAG9K,OAAOiP,KAC1B0U,EAAexV,MAAMC,QAAQkW,GAa/B,GAZIA,GAAexZ,EAAGjD,KAAK0c,WAAmC,IAAvBzZ,EAAG9K,OAAOukB,WAC3CZ,GACkC,GAAhCW,EAAYpH,QAAQ,UAAeoH,EAAcA,EAAYpU,OAAO,SAChD,QAAfoU,IACTA,EAAc,CAACA,EAAa,QAC5BX,GAAe,IAGfA,GAAsC,GAAtBW,EAAYrlB,SAC9BqlB,EAAcA,EAAY,GAC1BX,GAAe,GAEb7Y,EAAG9K,OAAOgB,MAAQ6iB,EAAc,CAClC,GAA0B,QAAtB/Y,EAAGjD,KAAK2c,WACV,MAAM,IAAI3lB,MAAM,qDAAuDiM,EAAG1B,cAAgB,8BAC1D,IAAvB0B,EAAGjD,KAAK2c,aACjBX,GAAe,EACf/Y,EAAGpB,OAAOuT,KAAK,6CAA+CnS,EAAG1B,cAAgB,MAMrF,GAHI0B,EAAG9K,OAAOgQ,UAAYlF,EAAGjD,KAAKmI,WAChCsC,GAAO,IAAOxH,EAAGxC,MAAMiH,IAAIS,SAASlR,KAAKgM,EAAI,aAE3CwZ,EAAa,CACf,GAAIxZ,EAAGjD,KAAK4c,YACV,IAAIC,EAAiB5Z,EAAG7H,KAAK2O,cAAc9G,EAAGjD,KAAK4c,YAAaH,GAElE,IAAIK,EAAc7Z,EAAGxC,MAAMkH,MAAM8U,GACjC,GAAII,GAAkBf,IAAgC,IAAhBgB,GAAyBA,IAAgBC,EAAgBD,GAAe,CACxG9N,EAAc/L,EAAG3B,WAAa,QAChC2N,EAAiBhM,EAAG1B,cAAgB,QAClCyN,EAAc/L,EAAG3B,WAAa,QAChC2N,EAAiBhM,EAAG1B,cAAgB,QAGtC,GADAkJ,GAAO,QAAWxH,EAAG7H,KADT0gB,EAAe,iBAAmB,iBACXW,EAAanQ,GAAO,GAAS,OAC5DuQ,EAAgB,CAClB,IAAIG,EAAY,WAAapO,EAC3BqO,EAAW,UAAYrO,EACzBnE,GAAO,QAAU,EAAc,aAAe,EAAU,KAC7B,SAAvBxH,EAAGjD,KAAK4c,cACVnS,GAAO,QAAU,EAAc,iCAAqC,EAAU,MAAQ,EAAc,gBAEtGA,GAAO,QAAU,EAAa,iBAC9B,IAAIyS,EAAkB,GAClB7L,EAAOwL,EACX,GAAIxL,EAGF,IAFA,IAAI8L,EAAO5L,GAAM,EACfC,EAAKH,EAAKja,OAAS,EACdma,EAAKC,GACV2L,EAAQ9L,EAAKE,GAAM,GACfA,IACF9G,GAAO,QAAU,EAAa,qBAC9ByS,GAAmB,KAEM,SAAvBja,EAAGjD,KAAK4c,aAAmC,SAATO,IACpC1S,GAAO,QAAU,EAAc,kBAAsB,EAAU,mBAAqB,EAAa,MAAQ,EAAU,MAAQ,EAAU,QAAU,EAAc,aAAe,EAAU,SAE3K,UAAT0S,EACF1S,GAAO,QAAU,EAAc,mBAAuB,EAAc,kBAAsB,EAAa,WAAe,EAAU,cAAgB,EAAU,cAAgB,EAAa,UACrK,UAAT0S,GAA8B,WAATA,GAC9B1S,GAAO,QAAU,EAAc,oBAAwB,EAAU,iBAAmB,EAAc,mBAAuB,EAAU,OAAS,EAAU,QAAU,EAAU,IAC7J,WAAT0S,IACF1S,GAAO,SAAW,EAAU,SAE9BA,GAAO,MAAQ,EAAa,OAAS,EAAU,MAC7B,WAAT0S,EACT1S,GAAO,QAAU,EAAU,mBAAuB,EAAU,aAAe,EAAU,cAAgB,EAAa,sBAAwB,EAAU,kBAAsB,EAAU,WAAa,EAAa,YAC5L,QAAT0S,EACT1S,GAAO,QAAU,EAAU,cAAkB,EAAU,aAAe,EAAU,eAAiB,EAAa,YAC9E,SAAvBxH,EAAGjD,KAAK4c,aAAmC,SAATO,IAC3C1S,GAAO,QAAU,EAAc,mBAAuB,EAAc,mBAAuB,EAAc,oBAAwB,EAAU,aAAe,EAAa,OAAS,EAAU,QAK5L0F,EAAaA,GAAc,IACpBlI,KAFXwC,GAAO,IAAM,EAAoB,QAAU,EAAa,wBAGxDA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,qDAAyFxH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,uBAE7KxE,GADEqR,EACK,GAAMW,EAAYhZ,KAAK,KAEvB,GAAK,EAEdgH,GAAO,QACkB,IAArBxH,EAAGjD,KAAKqQ,WACV5F,GAAO,0BAELA,GADEqR,EACK,GAAMW,EAAYhZ,KAAK,KAEvB,GAAK,EAEdgH,GAAO,MAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAEL8F,EAAQ9F,EACZA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,cACP,IAAI4I,EAAcvE,EAAW,QAAWA,EAAW,GAAM,IAAM,aAE/DrE,GAAO,IAAM,EAAU,MAAQ,EAAa,KACvCqE,IACHrE,GAAO,OAAS,EAAgB,mBAElCA,GAAO,IAAM,EAAgB,KALLqE,EAAW7L,EAAGoM,YAAYP,GAAY,sBAKH,OAAS,EAAa,WAC5E,EACDqB,EAAaA,GAAc,IACpBlI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,qDAAyFxH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,uBAE7KxE,GADEqR,EACK,GAAMW,EAAYhZ,KAAK,KAEvB,GAAK,EAEdgH,GAAO,QACkB,IAArBxH,EAAGjD,KAAKqQ,WACV5F,GAAO,0BAELA,GADEqR,EACK,GAAMW,EAAYhZ,KAAK,KAEvB,GAAK,EAEdgH,GAAO,MAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAEL8F,EAAQ9F,EACZA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAGrCL,GAAO,OAGX,GAAIxH,EAAG9K,OAAOgB,OAAS6iB,EACrBvR,GAAO,IAAOxH,EAAGxC,MAAMiH,IAAIvO,KAAKlC,KAAKgM,EAAI,QAAW,IAChDiM,IACFzE,GAAO,qBAELA,GADE0R,EACK,IAEA,QAAU,EAEnB1R,GAAO,OACP+R,GAAmB,SAEhB,CACL,IAAIjI,EAAOtR,EAAGxC,MACd,GAAI8T,EAGF,IAFA,IAAiBC,GAAM,EACrBC,EAAKF,EAAKnd,OAAS,EACdod,EAAKC,GAEV,GAAIsI,EADJD,EAAcvI,EAAKC,GAAM,IACS,CAIhC,GAHIsI,EAAY1V,OACdqD,GAAO,QAAWxH,EAAG7H,KAAK2N,cAAc+T,EAAY1V,KAAMkF,GAAU,QAElErJ,EAAGjD,KAAKwa,YACV,GAAwB,UAApBsC,EAAY1V,MAAoBnE,EAAG9K,OAAOqP,WAAY,CACpDvO,EAAUgK,EAAG9K,OAAOqP,WAAxB,IAEIiT,EADY9f,OAAO+J,KAAKzL,GAE5B,GAAIwhB,EAGF,IAFA,IAAIxG,EAAcyG,GAAM,EACtBC,EAAKF,EAAKrjB,OAAS,EACdsjB,EAAKC,GAAI,CAGd,QAAqBniB,KADjB8Y,EAAOrY,EADXgb,EAAewG,EAAKC,GAAM,KAEjBG,QAAuB,CAC9B,IAAIxI,EAAY/F,EAAQrJ,EAAG7H,KAAK8O,YAAY+J,GAC5C,GAAIhR,EAAGwN,eACL,GAAIxN,EAAGjD,KAAKqc,eAAgB,CACtBC,EAAc,2BAA6BjK,EAC/C,GAA+B,QAA3BpP,EAAGjD,KAAKqc,eACP,MAAM,IAAIrlB,MAAMslB,GADiBrZ,EAAGpB,OAAOuT,KAAKkH,SAIvD7R,GAAO,QAAU,EAAc,kBACJ,SAAvBxH,EAAGjD,KAAKwa,cACV/P,GAAO,OAAS,EAAc,gBAAkB,EAAc,YAEhEA,GAAO,MAAQ,EAAc,MAE3BA,GADyB,UAAvBxH,EAAGjD,KAAKwa,YACH,IAAOvX,EAAGtB,WAAW2P,EAAKuJ,SAAY,IAEtC,IAAOpN,KAAKC,UAAU4D,EAAKuJ,SAAY,IAEhDpQ,GAAO,YAKV,GAAwB,SAApBqS,EAAY1V,MAAmBd,MAAMC,QAAQtD,EAAG9K,OAAOiW,OAAQ,CACxE,IAAI0M,EAAO7X,EAAG9K,OAAOiW,MACrB,GAAI0M,EACF,CAAUvJ,GAAM,EAEhB,IAFA,IAAID,EACF0J,EAAKF,EAAK1jB,OAAS,EACdma,EAAKyJ,GAEV,QAAqBxiB,KADrB8Y,EAAOwJ,EAAKvJ,GAAM,IACTsJ,QAAuB,CAC1BxI,EAAY/F,EAAQ,IAAMiF,EAAK,IACnC,GAAItO,EAAGwN,eACL,GAAIxN,EAAGjD,KAAKqc,eAAgB,CACtBC,EAAc,2BAA6BjK,EAC/C,GAA+B,QAA3BpP,EAAGjD,KAAKqc,eACP,MAAM,IAAIrlB,MAAMslB,GADiBrZ,EAAGpB,OAAOuT,KAAKkH,SAIvD7R,GAAO,QAAU,EAAc,kBACJ,SAAvBxH,EAAGjD,KAAKwa,cACV/P,GAAO,OAAS,EAAc,gBAAkB,EAAc,YAEhEA,GAAO,MAAQ,EAAc,MAE3BA,GADyB,UAAvBxH,EAAGjD,KAAKwa,YACH,IAAOvX,EAAGtB,WAAW2P,EAAKuJ,SAAY,IAEtC,IAAOpN,KAAKC,UAAU4D,EAAKuJ,SAAY,IAEhDpQ,GAAO,OAOnB,IAAI2S,EAAON,EAAYzV,MACvB,GAAI+V,EAGF,IAFA,IAAIvK,EAAOwK,GAAM,EACfC,EAAKF,EAAKhmB,OAAS,EACdimB,EAAKC,GAEV,GAAIC,EADJ1K,EAAQuK,EAAKC,GAAM,IACQ,CACzB,IAAI/K,EAAQO,EAAM5b,KAAKgM,EAAI4P,EAAMtP,QAASuZ,EAAY1V,MAClDkL,IACF7H,GAAO,IAAM,EAAU,IACnByE,IACFqN,GAAmB,MAU7B,GAJIrN,IACFzE,GAAO,IAAM,EAAoB,IACjC8R,EAAkB,IAEhBO,EAAY1V,OACdqD,GAAO,MACHgS,GAAeA,IAAgBK,EAAY1V,OAASyV,GAAgB,CAEtE,IAEI1M,EAFAnB,EAAc/L,EAAG3B,WAAa,QAChC2N,EAAiBhM,EAAG1B,cAAgB,SAClC4O,EAAaA,GAAc,IACpBlI,KAJXwC,GAAO,YAKPA,EAAM,IACkB,IAApBxH,EAAGmN,cACL3F,GAAO,qDAAyFxH,EAAY,UAAI,kBAAqBA,EAAG7H,KAAKkE,eAAe2P,GAAmB,uBAE7KxE,GADEqR,EACK,GAAMW,EAAYhZ,KAAK,KAEvB,GAAK,EAEdgH,GAAO,QACkB,IAArBxH,EAAGjD,KAAKqQ,WACV5F,GAAO,0BAELA,GADEqR,EACK,GAAMW,EAAYhZ,KAAK,KAEvB,GAAK,EAEdgH,GAAO,MAELxH,EAAGjD,KAAKsQ,UACV7F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAEL8F,EAAQ9F,EACZA,EAAM0F,EAAWK,MAIb/F,IAHCxH,EAAGwN,eAAiBvB,EAEnBjM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,MAGPyE,IACFzE,GAAO,mBAELA,GADE0R,EACK,IAEA,QAAU,EAEnB1R,GAAO,OACP+R,GAAmB,MA0B7B,SAASO,EAAgBD,GAEvB,IADA,IAAIzV,EAAQyV,EAAYzV,MACf1Q,EAAI,EAAGA,EAAI0Q,EAAMjQ,OAAQT,IAChC,GAAI4mB,EAAelW,EAAM1Q,IAAK,OAAO,EAGzC,SAAS4mB,EAAe1K,GACtB,YAAoCra,IAA7ByK,EAAG9K,OAAO0a,EAAMtP,UAA2BsP,EAAM3K,YAG1D,SAAoC2K,GAElC,IADA,IAAI2K,EAAO3K,EAAM3K,WACRvR,EAAI,EAAGA,EAAI6mB,EAAKpmB,OAAQT,IAC/B,QAA2B6B,IAAvByK,EAAG9K,OAAOqlB,EAAK7mB,IAAmB,OAAO,EANuB8mB,CAA2B5K,GAQnG,OAnCI3D,IACFzE,GAAO,IAAM,EAAoB,KAE/B0R,GACEvb,GACF6J,GAAO,6CACPA,GAAO,+CAEPA,GAAO,+BACPA,GAAO,gCAETA,GAAO,wBAEPA,GAAO,QAAU,EAAW,sBAAwB,EAAS,IAE/DA,EAAMxH,EAAG7H,KAAKoP,YAAYC,GACtB0R,IACF1R,EAAMxH,EAAG7H,KAAKyP,iBAAiBJ,EAAK7J,IAkB/B6J,IAGP,IAAIiT,GAAG,CAAC,SAAS7mB,EAAQf,EAAOD,GAClC,aAEA,IAAIoX,EAAa,yBACbvN,EAAiB7I,EAAQ,kBACzB8mB,EAAmB9mB,EAAQ,uBAE/Bf,EAAOD,QAAU,CACf+nB,IAcF,SAAoBra,EAASH,GAG3B,IAAI3C,EAAQrK,KAAKqK,MACjB,GAAIA,EAAM2H,SAAS7E,GACjB,MAAM,IAAIvM,MAAM,WAAauM,EAAU,uBAEzC,IAAK0J,EAAWhP,KAAKsF,GACnB,MAAM,IAAIvM,MAAM,WAAauM,EAAU,8BAEzC,GAAIH,EAAY,CACdhN,KAAKynB,gBAAgBza,GAAY,GAEjC,IAAI4F,EAAW5F,EAAWgE,KAC1B,GAAId,MAAMC,QAAQyC,GAChB,IAAK,IAAIrS,EAAE,EAAGA,EAAEqS,EAAS5R,OAAQT,IAC/BmnB,EAASva,EAASyF,EAASrS,GAAIyM,QAEjC0a,EAASva,EAASyF,EAAU5F,GAG9B,IAAImK,EAAanK,EAAWmK,WACxBA,IACEnK,EAAWkJ,OAASlW,KAAKkC,MAAMgU,QACjCiB,EAAa,CACXK,MAAO,CACLL,EACA,CAAEpU,KAAQ,mFAIhBiK,EAAWF,eAAiB9M,KAAK0J,QAAQyN,GAAY,IAOzD,SAASuQ,EAASva,EAASyF,EAAU5F,GAEnC,IADA,IAAI2a,EACKpnB,EAAE,EAAGA,EAAE8J,EAAMrJ,OAAQT,IAAK,CACjC,IAAIqnB,EAAKvd,EAAM9J,GACf,GAAIqnB,EAAG5W,MAAQ4B,EAAU,CACvB+U,EAAYC,EACZ,OAICD,GAEHtd,EAAMwH,KADN8V,EAAY,CAAE3W,KAAM4B,EAAU3B,MAAO,KAIvC,IAAItE,EAAO,CACTQ,QAASA,EACTH,WAAYA,EACZkF,QAAQ,EACRrR,KAAMyI,EACNwI,WAAY9E,EAAW8E,YAEzB6V,EAAU1W,MAAMY,KAAKlF,GACrBtC,EAAM6H,OAAO/E,GAAWR,EAG1B,OA7BAtC,EAAM2H,SAAS7E,GAAW9C,EAAMiH,IAAInE,IAAW,EA6BxCnN,MA7EPwB,IAuFF,SAAoB2L,GAElB,IAAIR,EAAO3M,KAAKqK,MAAM6H,OAAO/E,GAC7B,OAAOR,EAAOA,EAAKK,WAAahN,KAAKqK,MAAM2H,SAAS7E,KAAY,GAzFhE0a,OAmGF,SAAuB1a,GAErB,IAAI9C,EAAQrK,KAAKqK,aACVA,EAAM2H,SAAS7E,UACf9C,EAAMiH,IAAInE,UACV9C,EAAM6H,OAAO/E,GACpB,IAAK,IAAI5M,EAAE,EAAGA,EAAE8J,EAAMrJ,OAAQT,IAE5B,IADA,IAAI0Q,EAAQ5G,EAAM9J,GAAG0Q,MACZsG,EAAE,EAAGA,EAAEtG,EAAMjQ,OAAQuW,IAC5B,GAAItG,EAAMsG,GAAGpK,SAAWA,EAAS,CAC/B8D,EAAMlI,OAAOwO,EAAG,GAChB,MAIN,OAAOvX,MAjHPyC,SA4HF,SAASglB,EAAgBza,EAAY8a,GACnCL,EAAgB9iB,OAAS,KACzB,IAAIhC,EAAI3C,KAAK+nB,iBAAmB/nB,KAAK+nB,kBACF/nB,KAAK0J,QAAQ6d,GAAkB,GAElE,GAAI5kB,EAAEqK,GAAa,OAAO,EAC1Bya,EAAgB9iB,OAAShC,EAAEgC,OAC3B,CAAA,GAAImjB,EACF,MAAM,IAAIlnB,MAAM,yCAA4CZ,KAAKuN,WAAW5K,EAAEgC,SAE9E,OAAO,MAGT,CAACqjB,sBAAsB,GAAGC,iBAAiB,KAAKC,GAAG,CAAC,SAASznB,EAAQf,EAAOD,GAC9EC,EAAOD,QAAQ,CACXoD,QAAW,0CACX6U,IAAO,+EACPyQ,YAAe,mEACfnX,KAAQ,SACR+G,SAAY,CAAE,SACd3G,WAAc,CACV8E,MAAS,CACLlF,KAAQ,SACRwG,MAAS,CACL,CAAEiH,OAAU,yBACZ,CAAEA,OAAU,mBAIxB6E,sBAAwB,IAG1B,IAAI8E,GAAG,CAAC,SAAS3nB,EAAQf,EAAOD,GAClCC,EAAOD,QAAQ,CACXoD,QAAW,0CACX6U,IAAO,0CACP2Q,MAAS,0BACT1Q,YAAe,CACX2Q,YAAe,CACXtX,KAAQ,QACR+O,SAAY,EACZ/H,MAAS,CAAEjV,KAAQ,MAEvBwlB,mBAAsB,CAClBvX,KAAQ,UACRG,QAAW,GAEfqX,2BAA8B,CAC1B9I,MAAS,CACL,CAAE3c,KAAQ,oCACV,CAAE0hB,QAAW,KAGrB7M,YAAe,CACXgI,KAAQ,CACJ,QACA,UACA,UACA,OACA,SACA,SACA,WAGR6I,YAAe,CACXzX,KAAQ,QACRgH,MAAS,CAAEhH,KAAQ,UACnBwP,aAAe,EACfiE,QAAW,KAGnBzT,KAAQ,CAAC,SAAU,WACnBI,WAAc,CACVsG,IAAO,CACH1G,KAAQ,SACRyN,OAAU,iBAEd5b,QAAW,CACPmO,KAAQ,SACRyN,OAAU,OAEd1b,KAAQ,CACJiO,KAAQ,SACRyN,OAAU,iBAEd1M,SAAY,CACRf,KAAQ,UAEZqX,MAAS,CACLrX,KAAQ,UAEZmX,YAAe,CACXnX,KAAQ,UAEZyT,SAAW,EACXiE,SAAY,CACR1X,KAAQ,UACRyT,SAAW,GAEfkE,SAAY,CACR3X,KAAQ,QACRgH,OAAS,GAEboI,WAAc,CACVpP,KAAQ,SACR4X,iBAAoB,GAExB1X,QAAW,CACPF,KAAQ,UAEZ6X,iBAAoB,CAChB7X,KAAQ,UAEZG,QAAW,CACPH,KAAQ,UAEZ4X,iBAAoB,CAChB5X,KAAQ,UAEZgP,UAAa,CAAEjd,KAAQ,oCACvBkd,UAAa,CAAEld,KAAQ,4CACvBud,QAAW,CACPtP,KAAQ,SACRyN,OAAU,SAEd0D,gBAAmB,CAAEpf,KAAQ,KAC7BiV,MAAS,CACLR,MAAS,CACL,CAAEzU,KAAQ,KACV,CAAEA,KAAQ,8BAEd0hB,SAAW,GAEf3E,SAAY,CAAE/c,KAAQ,oCACtBgd,SAAY,CAAEhd,KAAQ,4CACtByd,YAAe,CACXxP,KAAQ,UACRyT,SAAW,GAEf9E,SAAY,CAAE5c,KAAQ,KACtBmd,cAAiB,CAAEnd,KAAQ,oCAC3Bod,cAAiB,CAAEpd,KAAQ,4CAC3BgV,SAAY,CAAEhV,KAAQ,6BACtBugB,qBAAwB,CAAEvgB,KAAQ,KAClC4U,YAAe,CACX3G,KAAQ,SACRsS,qBAAwB,CAAEvgB,KAAQ,KAClC0hB,QAAW,IAEfrT,WAAc,CACVJ,KAAQ,SACRsS,qBAAwB,CAAEvgB,KAAQ,KAClC0hB,QAAW,IAEftB,kBAAqB,CACjBnS,KAAQ,SACRsS,qBAAwB,CAAEvgB,KAAQ,KAClCwd,cAAiB,CAAE9B,OAAU,SAC7BgG,QAAW,IAEfxX,aAAgB,CACZ+D,KAAQ,SACRsS,qBAAwB,CACpB9L,MAAS,CACL,CAAEzU,KAAQ,KACV,CAAEA,KAAQ,gCAItBwd,cAAiB,CAAExd,KAAQ,KAC3BmV,OAAS,EACT0H,KAAQ,CACJ5O,KAAQ,QACRgH,OAAS,EACT+H,SAAY,EACZS,aAAe,GAEnBxP,KAAQ,CACJwG,MAAS,CACL,CAAEzU,KAAQ,6BACV,CACIiO,KAAQ,QACRgH,MAAS,CAAEjV,KAAQ,6BACnBgd,SAAY,EACZS,aAAe,KAI3B/B,OAAU,CAAEzN,KAAQ,UACpB8X,iBAAoB,CAAE9X,KAAQ,UAC9B+X,gBAAmB,CAAE/X,KAAQ,UAC7B6O,GAAM,CAAC9c,KAAQ,KACfT,KAAQ,CAACS,KAAQ,KACjBimB,KAAQ,CAACjmB,KAAQ,KACjB2c,MAAS,CAAE3c,KAAQ,6BACnByU,MAAS,CAAEzU,KAAQ,6BACnBsd,MAAS,CAAEtd,KAAQ,6BACnB+U,IAAO,CAAE/U,KAAQ,MAErB0hB,SAAW,IAGb,IAAIwE,GAAG,CAAC,SAASxoB,EAAQf,EAAOD,GAClC,aAEA,IAAI0Q,EAAUD,MAAMC,QAChB+Y,EAAU3kB,OAAO+J,KACjB6a,EAAU5kB,OAAOnD,UAAUgM,eAE/B1N,EAAOD,QAAU,SAAS6I,EAAM3H,EAAGoW,GACjC,GAAIpW,IAAMoW,EAAG,OAAO,EAEpB,GAAIpW,GAAKoW,GAAiB,iBAALpW,GAA6B,iBAALoW,EAAe,CAC1D,IAEIxW,EACAS,EACAM,EAJA8nB,EAAOjZ,EAAQxP,GACf0oB,EAAOlZ,EAAQ4G,GAKnB,GAAIqS,GAAQC,EAAM,CAEhB,IADAroB,EAASL,EAAEK,SACG+V,EAAE/V,OAAQ,OAAO,EAC/B,IAAKT,EAAIS,EAAgB,GAART,KACf,IAAK+H,EAAM3H,EAAEJ,GAAIwW,EAAExW,IAAK,OAAO,EACjC,OAAO,EAGT,GAAI6oB,GAAQC,EAAM,OAAO,EAEzB,IAAIC,EAAQ3oB,aAAa4oB,KACrBC,EAAQzS,aAAawS,KACzB,GAAID,GAASE,EAAO,OAAO,EAC3B,GAAIF,GAASE,EAAO,OAAO7oB,EAAE8oB,WAAa1S,EAAE0S,UAE5C,IAAIC,EAAU/oB,aAAaoH,OACvB4hB,EAAU5S,aAAahP,OAC3B,GAAI2hB,GAAWC,EAAS,OAAO,EAC/B,GAAID,GAAWC,EAAS,OAAOhpB,EAAEipB,YAAc7S,EAAE6S,WAEjD,IAAItb,EAAO4a,EAAQvoB,GAGnB,IAFAK,EAASsN,EAAKtN,UAECkoB,EAAQnS,GAAG/V,OACxB,OAAO,EAET,IAAKT,EAAIS,EAAgB,GAART,KACf,IAAK4oB,EAAQpoB,KAAKgW,EAAGzI,EAAK/N,IAAK,OAAO,EAExC,IAAKA,EAAIS,EAAgB,GAART,KAEf,IAAK+H,EAAM3H,EADXW,EAAMgN,EAAK/N,IACQwW,EAAEzV,IAAO,OAAO,EAGrC,OAAO,EAGT,OAAOX,GAAIA,GAAKoW,GAAIA,IAGpB,IAAI8S,GAAG,CAAC,SAASppB,EAAQf,EAAOD,GAClC,aAEAC,EAAOD,QAAU,SAAUoT,EAAMjJ,GACxBA,IAAMA,EAAO,IACE,mBAATA,IAAqBA,EAAO,CAAEkgB,IAAKlgB,IAC9C,IAEiCpK,EAF7BuqB,EAAiC,kBAAhBngB,EAAKmgB,QAAwBngB,EAAKmgB,OAEnDD,EAAMlgB,EAAKkgB,MAAkBtqB,EAQ9BoK,EAAKkgB,IAPG,SAAUE,GACb,OAAO,SAAUrpB,EAAGoW,GAGhB,OAAOvX,EAFI,CAAE8B,IAAKX,EAAGY,MAAOyoB,EAAKrpB,IACtB,CAAEW,IAAKyV,EAAGxV,MAAOyoB,EAAKjT,QAMzCkT,EAAO,GACX,OAAO,SAAU3S,EAAW0S,GAKxB,GAJIA,GAAQA,EAAKE,QAAiC,mBAAhBF,EAAKE,SACnCF,EAAOA,EAAKE,eAGH9nB,IAAT4nB,EAAJ,CACA,GAAmB,iBAARA,EAAkB,OAAOG,SAASH,GAAQ,GAAKA,EAAO,OACjE,GAAoB,iBAATA,EAAmB,OAAO3S,KAAKC,UAAU0S,GAEpD,IAAIzpB,EAAG8T,EACP,GAAInE,MAAMC,QAAQ6Z,GAAO,CAErB,IADA3V,EAAM,IACD9T,EAAI,EAAGA,EAAIypB,EAAKhpB,OAAQT,IACrBA,IAAG8T,GAAO,KACdA,GAAOiD,EAAU0S,EAAKzpB,KAAO,OAEjC,OAAO8T,EAAM,IAGjB,GAAa,OAAT2V,EAAe,MAAO,OAE1B,IAA4B,IAAxBC,EAAKhL,QAAQ+K,GAAc,CAC3B,GAAID,EAAQ,OAAO1S,KAAKC,UAAU,aAClC,MAAM,IAAI8S,UAAU,yCAGxB,IAAIC,EAAYJ,EAAKpY,KAAKmY,GAAQ,EAC9B1b,EAAO/J,OAAO+J,KAAK0b,GAAMM,KAAKR,GAAOA,EAAIE,IAE7C,IADA3V,EAAM,GACD9T,EAAI,EAAGA,EAAI+N,EAAKtN,OAAQT,IAAK,CAC9B,IAAIe,EAAMgN,EAAK/N,GACXgB,EAAQ+V,EAAU0S,EAAK1oB,IAEtBC,IACD8S,IAAKA,GAAO,KAChBA,GAAOgD,KAAKC,UAAUhW,GAAO,IAAMC,GAGvC,OADA0oB,EAAKlhB,OAAOshB,EAAW,GAChB,IAAMhW,EAAM,KAtChB,CAuCJxB,KAGL,IAAI0X,GAAG,CAAC,SAAS9pB,EAAQf,EAAOD,GAClC,aAEA,IAAIqO,EAAWpO,EAAOD,QAAU,SAAUsC,EAAQ6H,EAAM4gB,GAEnC,mBAAR5gB,IACT4gB,EAAK5gB,EACLA,EAAO,IAwDX,SAAS6gB,EAAU7gB,EAAM8gB,EAAKC,EAAM5oB,EAAQkN,EAASC,EAAYC,EAAeC,EAAexC,EAAcyC,GAC3G,GAAItN,GAA2B,iBAAVA,IAAuBmO,MAAMC,QAAQpO,GAAS,CAEjE,IAAK,IAAIT,KADTopB,EAAI3oB,EAAQkN,EAASC,EAAYC,EAAeC,EAAexC,EAAcyC,GAC7DtN,EAAQ,CACtB,IAAIa,EAAMb,EAAOT,GACjB,GAAI4O,MAAMC,QAAQvN,IAChB,GAAItB,KAAOwM,EAAS8c,cAClB,IAAK,IAAIrqB,EAAE,EAAGA,EAAEqC,EAAI5B,OAAQT,IAC1BkqB,EAAU7gB,EAAM8gB,EAAKC,EAAM/nB,EAAIrC,GAAI0O,EAAU,IAAM3N,EAAM,IAAMf,EAAG2O,EAAYD,EAAS3N,EAAKS,EAAQxB,QAEnG,GAAIe,KAAOwM,EAAS+c,eACzB,GAAIjoB,GAAqB,iBAAPA,EAChB,IAAK,IAAIkT,KAAQlT,EACf6nB,EAAU7gB,EAAM8gB,EAAKC,EAAM/nB,EAAIkT,GAAO7G,EAAU,IAAM3N,EAAM,IAAoBwU,EAY/EpF,QAAQ,KAAM,MAAMA,QAAQ,MAAO,MAZmDxB,EAAYD,EAAS3N,EAAKS,EAAQ+T,QAEpHxU,KAAOwM,EAASkE,UAAapI,EAAKoF,WAAa1N,KAAOwM,EAASgd,gBACxEL,EAAU7gB,EAAM8gB,EAAKC,EAAM/nB,EAAKqM,EAAU,IAAM3N,EAAK4N,EAAYD,EAAS3N,EAAKS,GAGnF4oB,EAAK5oB,EAAQkN,EAASC,EAAYC,EAAeC,EAAexC,EAAcyC,IApEhFob,CAAU7gB,EAHc,mBADxB4gB,EAAK5gB,EAAK4gB,IAAMA,GACsBA,EAAKA,EAAGE,KAAO,aAC1CF,EAAGG,MAAQ,aAEK5oB,EAAQ,GAAIA,IAIzC+L,EAASkE,SAAW,CAClBmQ,iBAAiB,EACjBnK,OAAO,EACP2H,UAAU,EACV2D,sBAAsB,EACtB/C,eAAe,EACfzI,KAAK,GAGPhK,EAAS8c,cAAgB,CACvB5S,OAAO,EACP0H,OAAO,EACPlI,OAAO,EACP6I,OAAO,GAGTvS,EAAS+c,cAAgB,CACvBlT,aAAa,EACbvG,YAAY,EACZ+R,mBAAmB,EACnBlW,cAAc,GAGhBa,EAASgd,aAAe,CACtBrG,SAAS,EACT7E,MAAM,EACN1H,OAAO,EACPH,UAAU,EACV7G,SAAS,EACTC,SAAS,EACT0X,kBAAkB,EAClBD,kBAAkB,EAClBxI,YAAY,EACZJ,WAAW,EACXC,WAAW,EACXK,SAAS,EACT7B,QAAQ,EACRqB,UAAU,EACVC,UAAU,EACVS,aAAa,EACbN,eAAe,EACfC,eAAe,IAgCf,IAAI4K,GAAG,CAAC,SAAStqB,EAAQf,EAAOD,GAEjC,IAAUK,EAAAA,EAITE,KAAM,SAAWP,GAAW,aAE9B,SAASurB,IACL,IAAK,IAAIC,EAAOpgB,UAAU7J,OAAQkqB,EAAOhb,MAAM+a,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IACzED,EAAKC,GAAQtgB,UAAUsgB,GAG3B,GAAkB,EAAdD,EAAKlqB,OAAY,CACjBkqB,EAAK,GAAKA,EAAK,GAAGxb,MAAM,GAAI,GAE5B,IADA,IAAI0b,EAAKF,EAAKlqB,OAAS,EACdqqB,EAAI,EAAGA,EAAID,IAAMC,EACtBH,EAAKG,GAAKH,EAAKG,GAAG3b,MAAM,GAAI,GAGhC,OADAwb,EAAKE,GAAMF,EAAKE,GAAI1b,MAAM,GACnBwb,EAAK7d,KAAK,IAEjB,OAAO6d,EAAK,GAGpB,SAASI,EAAOtlB,GACZ,MAAO,MAAQA,EAAM,IAEzB,SAASulB,EAAOjrB,GACZ,YAAa8B,IAAN9B,EAAkB,YAAoB,OAANA,EAAa,OAASiE,OAAOnD,UAAUwoB,SAAS7oB,KAAKT,GAAGoH,MAAM,KAAK0S,MAAM1S,MAAM,KAAK8jB,QAAQC,cAEvI,SAASC,EAAY1lB,GACjB,OAAOA,EAAI0lB,cAef,SAASC,EAAUC,GACf,IAAIC,EAAU,WAEVC,EAAU,QAEVC,EAAWf,EAAMc,EAAS,YAI1BE,EAAeV,EAAOA,EAAO,UAAYS,EAAW,IAAMA,EAAWA,EAAW,IAAMA,EAAWA,GAAY,IAAMT,EAAO,cAAgBS,EAAW,IAAMA,EAAWA,GAAY,IAAMT,EAAO,IAAMS,EAAWA,IAGhNE,EAAe,sCACfC,EAAalB,EAFF,0BAEsBiB,GAGrCE,EAAaP,EAAQ,oBAAsB,KAE3CQ,EAAepB,EAAMa,EAASC,EAAS,iBAJvBF,EAAQ,8EAAgF,MAKpGS,EAAUf,EAAOO,EAAUb,EAAMa,EAASC,EAAS,eAAiB,KACpEQ,EAAYhB,EAAOA,EAAOU,EAAe,IAAMhB,EAAMoB,EAAcH,EAAc,UAAY,KAE7FM,GADajB,EAAOA,EAAO,WAAa,IAAMA,EAAO,SAAWQ,GAAW,IAAMR,EAAO,IAAMQ,EAAUA,GAAW,IAAMR,EAAO,QAAUQ,GAAW,IAAMA,GACtIR,EAAOA,EAAO,WAAa,IAAMA,EAAO,SAAWQ,GAAW,IAAMR,EAAO,IAAMQ,EAAUA,GAAW,IAAMR,EAAO,UAAYQ,GAAW,QAAUA,IAE7KU,EAAelB,EAAOiB,EAAqB,MAAQA,EAAqB,MAAQA,EAAqB,MAAQA,GACzGE,EAAOnB,EAAOS,EAAW,SACzBW,EAAQpB,EAAOA,EAAOmB,EAAO,MAAQA,GAAQ,IAAMD,GAmBvDG,EAAerB,EAAO,CAlBFA,EAAOA,EAAOmB,EAAO,OAAS,MAAQC,GAE1CpB,EAAO,SAAWA,EAAOmB,EAAO,OAAS,MAAQC,GAEjDpB,EAAOA,EAAOmB,GAAQ,UAAYnB,EAAOmB,EAAO,OAAS,MAAQC,GAEjEpB,EAAOA,EAAOA,EAAOmB,EAAO,OAAS,QAAUA,GAAQ,UAAYnB,EAAOmB,EAAO,OAAS,MAAQC,GAElGpB,EAAOA,EAAOA,EAAOmB,EAAO,OAAS,QAAUA,GAAQ,UAAYnB,EAAOmB,EAAO,OAAS,MAAQC,GAElGpB,EAAOA,EAAOA,EAAOmB,EAAO,OAAS,QAAUA,GAAQ,UAAYA,EAAO,MAAQC,GAElFpB,EAAOA,EAAOA,EAAOmB,EAAO,OAAS,QAAUA,GAAQ,UAAYC,GAEnEpB,EAAOA,EAAOA,EAAOmB,EAAO,OAAS,QAAUA,GAAQ,UAAYA,GAEnEnB,EAAOA,EAAOA,EAAOmB,EAAO,OAAS,QAAUA,GAAQ,YAEuFpf,KAAK,MAC/Juf,EAAUtB,EAAOA,EAAOc,EAAe,IAAMJ,GAAgB,KAO7Da,GALSvB,EAAOqB,EAAe,QAAUC,GAK3BtB,EAAO,MAAQA,EAHZA,EAAOqB,EAAerB,EAAO,eAAiBS,EAAW,QAAUa,GAG3B,IAAMD,EAAe,IADrErB,EAAO,OAASS,EAAW,OAASf,EAAMoB,EAAcH,EAAc,SAAW,MACQ,QAEtGa,EAAYxB,EAAOA,EAAOU,EAAe,IAAMhB,EAAMoB,EAAcH,IAAiB,KAChFc,EAAQzB,EAAOuB,EAAc,IAAML,EAAe,MAAQM,EAAY,KAAYA,GAClFE,EAAQ1B,EAAOQ,EAAU,KACzBmB,EAAa3B,EAAOA,EAAOgB,EAAY,KAAO,IAAMS,EAAQzB,EAAO,MAAQ0B,GAAS,KACpFE,EAAS5B,EAAOU,EAAe,IAAMhB,EAAMoB,EAAcH,EAAc,aACvEkB,EAAW7B,EAAO4B,EAAS,KAC3BE,EAAc9B,EAAO4B,EAAS,KAC9BG,EAAiB/B,EAAOA,EAAOU,EAAe,IAAMhB,EAAMoB,EAAcH,EAAc,UAAY,KAClGqB,EAAgBhC,EAAOA,EAAO,MAAQ6B,GAAY,KAClDI,EAAiBjC,EAAO,MAAQA,EAAO8B,EAAcE,GAAiB,KAE1EE,EAAiBlC,EAAO+B,EAAiBC,GAEzCG,EAAiBnC,EAAO8B,EAAcE,GAEtCI,EAAc,MAAQR,EAAS,IAE3BS,GADQrC,EAAOgC,EAAgB,IAAMC,EAAiB,IAAMC,EAAiB,IAAMC,EAAiB,IAAMC,GACjGpC,EAAOA,EAAO4B,EAAS,IAAMlC,EAAM,WAAYmB,IAAe,MACvEyB,EAAYtC,EAAOA,EAAO4B,EAAS,aAAe,KAClDW,EAAavC,EAAOA,EAAO,SAAW2B,EAAaK,GAAiB,IAAMC,EAAiB,IAAME,EAAiB,IAAMC,GAIvGpC,EAHVA,EAAOe,EAAU,MAAQwB,EAAavC,EAAO,MAAQqC,GAAU,IAAMrC,EAAO,MAAQsC,GAAa,KAGzE,IADnBtC,EADKA,EAAOA,EAAO,SAAW2B,EAAaK,GAAiB,IAAMC,EAAiB,IAAMC,EAAiB,IAAME,GACxFpC,EAAO,MAAQqC,GAAU,IAAMrC,EAAO,MAAQsC,GAAa,MAE/EtC,EAAOe,EAAU,MAAQwB,EAAavC,EAAO,MAAQqC,GAAU,KACtCrC,EAAOA,EAAO,UAAYA,EAAO,IAAMgB,EAAY,MAAQ,KAAOS,EAAQ,IAAMzB,EAAO,OAAS0B,EAAQ,KAAO,MAAQ,KAAOM,EAAgB,IAAMC,EAAiB,IAAME,EAAiB,IAAMC,EAAc,KAAOpC,EAAO,OAASqC,EAAS,KAAarC,EAAO,OAASsC,EAAY,KACvStC,EAAOA,EAAO,UAAYA,EAAO,IAAMgB,EAAY,MAAQ,KAAOS,EAAQ,IAAMzB,EAAO,OAAS0B,EAAQ,KAAO,MAAQ,KAAOM,EAAgB,IAAMC,EAAiB,IAAMC,EAAiB,IAAME,EAAc,KAAOpC,EAAO,OAASqC,EAAS,KAAarC,EAAO,OAASsC,EAAY,KAC1QtC,EAAOA,EAAO,UAAYA,EAAO,IAAMgB,EAAY,MAAQ,KAAOS,EAAQ,IAAMzB,EAAO,OAAS0B,EAAQ,KAAO,MAAQ,KAAOM,EAAgB,IAAMC,EAAiB,IAAME,EAAiB,IAAMC,EAAc,KAAOpC,EAAO,OAASqC,EAAS,KACrQrC,EAAO,OAASsC,EAAY,KAC1BtC,EAAO,IAAMgB,EAAY,MAA6BhB,EAAO,OAAS0B,EAAQ,KACzG,MAAO,CACHc,WAAY,IAAI/lB,OAAOijB,EAAM,MAAOa,EAASC,EAAS,eAAgB,KACtEiC,aAAc,IAAIhmB,OAAOijB,EAAM,YAAaoB,EAAcH,GAAe,KACzE+B,SAAU,IAAIjmB,OAAOijB,EAAM,kBAAmBoB,EAAcH,GAAe,KAC3EgC,SAAU,IAAIlmB,OAAOijB,EAAM,kBAAmBoB,EAAcH,GAAe,KAC3EiC,kBAAmB,IAAInmB,OAAOijB,EAAM,eAAgBoB,EAAcH,GAAe,KACjFkC,UAAW,IAAIpmB,OAAOijB,EAAM,SAAUoB,EAAcH,EAAc,iBAAkBE,GAAa,KACjGiC,aAAc,IAAIrmB,OAAOijB,EAAM,SAAUoB,EAAcH,EAAc,kBAAmB,KACxFoC,OAAQ,IAAItmB,OAAOijB,EAAM,MAAOoB,EAAcH,GAAe,KAC7DqC,WAAY,IAAIvmB,OAAOqkB,EAAc,KACrCmC,YAAa,IAAIxmB,OAAOijB,EAAM,SAAUoB,EAAcF,GAAa,KACnEsC,YAAa,IAAIzmB,OAAOikB,EAAc,KACtCyC,YAAa,IAAI1mB,OAAO,KAAOykB,EAAe,MAC9CkC,YAAa,IAAI3mB,OAAO,SAAW4kB,EAAe,IAAMrB,EAAOA,EAAO,eAAiBS,EAAW,QAAU,IAAMa,EAAU,KAAO,WAG3I,IAAI+B,EAAehD,GAAU,GAEzBiD,EAAejD,GAAU,GAEzBkD,EA2BK,SAAUrlB,EAAKjJ,GACpB,GAAI2P,MAAMC,QAAQ3G,GAChB,OAAOA,EACF,GAAIslB,OAAOC,YAAYxqB,OAAOiF,GACnC,OA9BJ,SAAuBA,EAAKjJ,GAC1B,IAAIyuB,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAK/sB,EAET,IACE,IAAK,IAAiCgtB,EAA7BC,EAAK7lB,EAAIslB,OAAOC,cAAmBE,GAAMG,EAAKC,EAAGC,QAAQC,QAChEP,EAAKnd,KAAKud,EAAG7tB,QAEThB,GAAKyuB,EAAKhuB,SAAWT,GAH8C0uB,GAAK,IAK9E,MAAOO,GACPN,GAAK,EACLC,EAAKK,EACL,QACA,KACOP,GAAMI,EAAW,QAAGA,EAAW,SACpC,QACA,GAAIH,EAAI,MAAMC,GAIlB,OAAOH,EAOES,CAAcjmB,EAAKjJ,GAE1B,MAAM,IAAI6pB,UAAU,yDA6BtBsF,EAAS,WAaTC,EAAgB,QAChBC,EAAgB,aAChBC,EAAkB,4BAGlBlrB,EAAS,CACZmrB,SAAY,kDACZC,YAAa,iDACbC,gBAAiB,iBAKdC,EAAQ3V,KAAK2V,MACbC,EAAqBC,OAAOC,aAUhC,SAASC,EAAQrf,GAChB,MAAM,IAAIsf,WAAW3rB,EAAOqM,IA8B7B,SAASuf,EAAUC,EAAQC,GAC1B,IAAI9gB,EAAQ6gB,EAAO9oB,MAAM,KACrBiD,EAAS,GAWb,OAVmB,EAAfgF,EAAM3O,SAGT2J,EAASgF,EAAM,GAAK,IACpB6gB,EAAS7gB,EAAM,IAMThF,EAhCR,SAAa2I,EAAOmd,GAGnB,IAFA,IAAI9lB,EAAS,GACT3J,EAASsS,EAAMtS,OACZA,KACN2J,EAAO3J,GAAUyvB,EAAGnd,EAAMtS,IAE3B,OAAO2J,EAyBO+G,EAFd8e,EAASA,EAAO9f,QAAQmf,EAAiB,MACrBnoB,MAAM,KACA+oB,GAAIpjB,KAAK,KAiBpC,SAASqjB,EAAWF,GAInB,IAHA,IAAIG,EAAS,GACTC,EAAU,EACV5vB,EAASwvB,EAAOxvB,OACb4vB,EAAU5vB,GAAQ,CACxB,IAAIO,EAAQivB,EAAO/d,WAAWme,KAC9B,GAAa,OAATrvB,GAAmBA,GAAS,OAAUqvB,EAAU5vB,EAAQ,CAE3D,IAAI6vB,EAAQL,EAAO/d,WAAWme,KACN,QAAX,MAARC,GAEJF,EAAO9e,OAAe,KAARtQ,IAAkB,KAAe,KAARsvB,GAAiB,QAIxDF,EAAO9e,KAAKtQ,GACZqvB,UAGDD,EAAO9e,KAAKtQ,GAGd,OAAOovB,EAWR,IAqCIG,EAAe,SAAsBC,EAAOC,GAG/C,OAAOD,EAAQ,GAAK,IAAMA,EAAQ,MAAgB,GAARC,IAAc,IAQrDC,EAAQ,SAAeC,EAAOC,EAAWC,GAC5C,IAAIxf,EAAI,EAGR,IAFAsf,EAAQE,EAAYnB,EAAMiB,EA7KhB,KA6KgCA,GAAS,EACnDA,GAASjB,EAAMiB,EAAQC,GACeE,IAARH,EAAmCtf,GAnLvD,GAoLTsf,EAAQjB,EAAMiB,EA9JII,IAgKnB,OAAOrB,EAAMre,EAAI,GAAsBsf,GAASA,EAnLtC,MA6LPK,EAAS,SAAgBC,GAE5B,IAtDwCC,EAsDpCd,EAAS,GACTe,EAAcF,EAAMxwB,OACpBT,EAAI,EACJH,EA/LU,IAgMVuxB,EAjMa,GAuMbC,EAAQJ,EAAMK,YArMH,KAsMXD,EAAQ,IACXA,EAAQ,GAGT,IAAK,IAAIra,EAAI,EAAGA,EAAIqa,IAASra,EAED,KAAvBia,EAAM/e,WAAW8E,IACpB8Y,EAAQ,aAETM,EAAO9e,KAAK2f,EAAM/e,WAAW8E,IAM9B,IAAK,IAAI7O,EAAgB,EAARkpB,EAAYA,EAAQ,EAAI,EAAGlpB,EAAQgpB,GAAuC,CAQ1F,IADA,IAAII,EAAOvxB,EACFwxB,EAAI,EAAGngB,EApOP,IAoOoCA,GApOpC,GAoO+C,CAE1C8f,GAAThpB,GACH2nB,EAAQ,iBAGT,IAAIU,GA9FkCU,EA8FbD,EAAM/e,WAAW/J,MA7F5B,GAAO,GACf+oB,EAAY,GAEhBA,EAAY,GAAO,GACfA,EAAY,GAEhBA,EAAY,GAAO,GACfA,EAAY,GApJV,IAAA,IA4OJV,GAAiBA,EAAQd,GAAOP,EAASnvB,GAAKwxB,KACjD1B,EAAQ,YAGT9vB,GAAKwwB,EAAQgB,EACb,IAAI1xB,EAAIuR,GAAK+f,EAhPL,EAgPwBA,EA/OxB,IA+OmB/f,EA/OnB,GA+O6CA,EAAI+f,EAEzD,GAAIZ,EAAQ1wB,EACX,MAGD,IAAI2xB,EAvPI,GAuPgB3xB,EACpB0xB,EAAI9B,EAAMP,EAASsC,IACtB3B,EAAQ,YAGT0B,GAAKC,EAGN,IAAI3d,EAAMsc,EAAO3vB,OAAS,EAC1B2wB,EAAOV,EAAM1wB,EAAIuxB,EAAMzd,EAAa,GAARyd,GAIxB7B,EAAM1vB,EAAI8T,GAAOqb,EAAStvB,GAC7BiwB,EAAQ,YAGTjwB,GAAK6vB,EAAM1vB,EAAI8T,GACf9T,GAAK8T,EAGLsc,EAAO5nB,OAAOxI,IAAK,EAAGH,GAGvB,OAAO+vB,OAAO8B,cAAcrnB,MAAMulB,OAAQQ,IAUvCuB,EAAS,SAAgBV,GAC5B,IAAIb,EAAS,GAMTe,GAHJF,EAAQd,EAAWc,IAGKxwB,OAGpBZ,EA7RU,IA8RV8wB,EAAQ,EACRS,EAhSa,GAmSbQ,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiBjwB,EAErB,IACC,IAAK,IAA0CkwB,EAAtCC,EAAYf,EAAM1C,OAAOC,cAAsBoD,GAA6BG,EAAQC,EAAUjD,QAAQC,MAAO4C,GAA4B,EAAM,CACvJ,IAAIK,EAAiBF,EAAM/wB,MAEvBixB,EAAiB,KACpB7B,EAAO9e,KAAKqe,EAAmBsC,KAGhC,MAAOhD,GACR4C,GAAoB,EACpBC,EAAiB7C,EAChB,QACD,KACM2C,GAA6BI,EAAUE,QAC3CF,EAAUE,SAEV,QACD,GAAIL,EACH,MAAMC,GAKT,IAAIK,EAAc/B,EAAO3vB,OACrB2xB,EAAiBD,EAWrB,IALIA,GACH/B,EAAO9e,KApUO,KAwUR8gB,EAAiBjB,GAAa,CAIpC,IAAIkB,EAAIlD,EACJmD,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkB3wB,EAEtB,IACC,IAAK,IAA2C4wB,EAAvCC,EAAazB,EAAM1C,OAAOC,cAAuB8D,GAA8BG,EAASC,EAAW3D,QAAQC,MAAOsD,GAA6B,EAAM,CAC7J,IAAIK,EAAeF,EAAOzxB,MAENnB,GAAhB8yB,GAAqBA,EAAeN,IACvCA,EAAIM,IAML,MAAO1D,GACRsD,GAAqB,EACrBC,EAAkBvD,EACjB,QACD,KACMqD,GAA8BI,EAAWR,QAC7CQ,EAAWR,SAEX,QACD,GAAIK,EACH,MAAMC,GAKT,IAAII,EAAwBR,EAAiB,EACzCC,EAAIxyB,EAAI6vB,GAAOP,EAASwB,GAASiC,IACpC9C,EAAQ,YAGTa,IAAU0B,EAAIxyB,GAAK+yB,EACnB/yB,EAAIwyB,EAEJ,IAAIQ,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBlxB,EAEtB,IACC,IAAK,IAA2CmxB,EAAvCC,EAAahC,EAAM1C,OAAOC,cAAuBqE,GAA8BG,EAASC,EAAWlE,QAAQC,MAAO6D,GAA6B,EAAM,CAC7J,IAAIK,EAAgBF,EAAOhyB,MAK3B,GAHIkyB,EAAgBrzB,KAAO8wB,EAAQxB,GAClCW,EAAQ,YAELoD,GAAiBrzB,EAAG,CAGvB,IADA,IAAIszB,EAAIxC,EACCtf,EAxYH,IAwYgCA,GAxYhC,GAwY2C,CAChD,IAAIvR,EAAIuR,GAAK+f,EAxYR,EAwY2BA,EAvY3B,IAuYsB/f,EAvYtB,GAuYgDA,EAAI+f,EACzD,GAAI+B,EAAIrzB,EACP,MAED,IAAIszB,EAAUD,EAAIrzB,EACd2xB,EA9YC,GA8YmB3xB,EACxBswB,EAAO9e,KAAKqe,EAAmBY,EAAazwB,EAAIszB,EAAU3B,EAAY,KACtE0B,EAAIzD,EAAM0D,EAAU3B,GAGrBrB,EAAO9e,KAAKqe,EAAmBY,EAAa4C,EAAG,KAC/C/B,EAAOV,EAAMC,EAAOiC,EAAuBR,GAAkBD,GAC7DxB,EAAQ,IACNyB,IAGH,MAAOnD,GACR6D,GAAqB,EACrBC,EAAkB9D,EACjB,QACD,KACM4D,GAA8BI,EAAWf,QAC7Ce,EAAWf,SAEX,QACD,GAAIY,EACH,MAAMC,KAKPpC,IACA9wB,EAEH,OAAOuwB,EAAOtjB,KAAK,KAwChBumB,EAAW,CAMdC,QAAW,QAQXC,KAAQ,CACPvC,OAAUb,EACVwB,OApWe,SAAoB5e,GACpC,OAAO6c,OAAO8B,cAAcrnB,MAAMulB,OA/IX,SAAU3mB,GAChC,GAAI0G,MAAMC,QAAQ3G,GAAM,CACtB,IAAK,IAAIjJ,EAAI,EAAG4d,EAAOjO,MAAM1G,EAAIxI,QAAST,EAAIiJ,EAAIxI,OAAQT,IAAK4d,EAAK5d,GAAKiJ,EAAIjJ,GAE7E,OAAO4d,EAEP,OAAOjO,MAAM6jB,KAAKvqB,GAyIqBwqB,CAAkB1gB,MAqW5Die,OAAUA,EACVW,OAAUA,EACV+B,QA7Ba,SAAiBzC,GAC9B,OAAOjB,EAAUiB,EAAO,SAAUhB,GACjC,OAAOZ,EAAc/nB,KAAK2oB,GAAU,OAAS0B,EAAO1B,GAAUA,KA4B/D0D,UA/Ce,SAAmB1C,GAClC,OAAOjB,EAAUiB,EAAO,SAAUhB,GACjC,OAAOb,EAAc9nB,KAAK2oB,GAAUe,EAAOf,EAAO9gB,MAAM,GAAG+b,eAAiB+E,MAkF1E2D,EAAU,GACd,SAASC,EAAWC,GAChB,IAAI7zB,EAAI6zB,EAAI5hB,WAAW,GAGvB,OADIjS,EAAI,GAAQ,KAAOA,EAAEopB,SAAS,IAAI8B,cAAuBlrB,EAAI,IAAS,IAAMA,EAAEopB,SAAS,IAAI8B,cAAuBlrB,EAAI,KAAU,KAAOA,GAAK,EAAI,KAAKopB,SAAS,IAAI8B,cAAgB,KAAW,GAAJlrB,EAAS,KAAKopB,SAAS,IAAI8B,cAAuB,KAAOlrB,GAAK,GAAK,KAAKopB,SAAS,IAAI8B,cAAgB,KAAOlrB,GAAK,EAAI,GAAK,KAAKopB,SAAS,IAAI8B,cAAgB,KAAW,GAAJlrB,EAAS,KAAKopB,SAAS,IAAI8B,cAG/X,SAAS4I,EAAYtuB,GAIjB,IAHA,IAAIuuB,EAAS,GACTh0B,EAAI,EACJi0B,EAAKxuB,EAAIhF,OACNT,EAAIi0B,GAAI,CACX,IAAIh0B,EAAIi0B,SAASzuB,EAAI0uB,OAAOn0B,EAAI,EAAG,GAAI,IACvC,GAAIC,EAAI,IACJ+zB,GAAUpE,OAAOC,aAAa5vB,GAC9BD,GAAK,OACF,GAAS,KAALC,GAAYA,EAAI,IAAK,CAC5B,GAAc,GAAVg0B,EAAKj0B,EAAQ,CACb,IAAIo0B,EAAKF,SAASzuB,EAAI0uB,OAAOn0B,EAAI,EAAG,GAAI,IACxCg0B,GAAUpE,OAAOC,cAAkB,GAAJ5vB,IAAW,EAAS,GAALm0B,QAE9CJ,GAAUvuB,EAAI0uB,OAAOn0B,EAAG,GAE5BA,GAAK,OACF,GAAS,KAALC,EAAU,CACjB,GAAc,GAAVg0B,EAAKj0B,EAAQ,CACb,IAAIq0B,EAAKH,SAASzuB,EAAI0uB,OAAOn0B,EAAI,EAAG,GAAI,IACpCs0B,EAAKJ,SAASzuB,EAAI0uB,OAAOn0B,EAAI,EAAG,GAAI,IACxCg0B,GAAUpE,OAAOC,cAAkB,GAAJ5vB,IAAW,IAAW,GAALo0B,IAAY,EAAS,GAALC,QAEhEN,GAAUvuB,EAAI0uB,OAAOn0B,EAAG,GAE5BA,GAAK,OAELg0B,GAAUvuB,EAAI0uB,OAAOn0B,EAAG,GACxBA,GAAK,EAGb,OAAOg0B,EAEX,SAASO,EAA4BC,EAAYC,GAC7C,SAASC,EAAiBjvB,GACtB,IAAIkvB,EAASZ,EAAYtuB,GACzB,OAAQkvB,EAAOhvB,MAAM8uB,EAAS1G,YAAoB4G,EAANlvB,EAQhD,OANI+uB,EAAWI,SAAQJ,EAAWI,OAAShF,OAAO4E,EAAWI,QAAQzkB,QAAQskB,EAASxG,YAAayG,GAAkBxJ,cAAc/a,QAAQskB,EAASlH,WAAY,UACpI1rB,IAAxB2yB,EAAWK,WAAwBL,EAAWK,SAAWjF,OAAO4E,EAAWK,UAAU1kB,QAAQskB,EAASxG,YAAayG,GAAkBvkB,QAAQskB,EAASjH,aAAcqG,GAAY1jB,QAAQskB,EAASxG,YAAa9C,SAC1LtpB,IAApB2yB,EAAWM,OAAoBN,EAAWM,KAAOlF,OAAO4E,EAAWM,MAAM3kB,QAAQskB,EAASxG,YAAayG,GAAkBxJ,cAAc/a,QAAQskB,EAAShH,SAAUoG,GAAY1jB,QAAQskB,EAASxG,YAAa9C,SACxLtpB,IAApB2yB,EAAWhf,OAAoBgf,EAAWhf,KAAOoa,OAAO4E,EAAWhf,MAAMrF,QAAQskB,EAASxG,YAAayG,GAAkBvkB,QAAQqkB,EAAWI,OAASH,EAAS/G,SAAW+G,EAAS9G,kBAAmBkG,GAAY1jB,QAAQskB,EAASxG,YAAa9C,SAC1NtpB,IAArB2yB,EAAWO,QAAqBP,EAAWO,MAAQnF,OAAO4E,EAAWO,OAAO5kB,QAAQskB,EAASxG,YAAayG,GAAkBvkB,QAAQskB,EAAS7G,UAAWiG,GAAY1jB,QAAQskB,EAASxG,YAAa9C,SAC1KtpB,IAAxB2yB,EAAWtlB,WAAwBslB,EAAWtlB,SAAW0gB,OAAO4E,EAAWtlB,UAAUiB,QAAQskB,EAASxG,YAAayG,GAAkBvkB,QAAQskB,EAAS5G,aAAcgG,GAAY1jB,QAAQskB,EAASxG,YAAa9C,IAC3MqJ,EAGX,SAASQ,EAAmBvvB,GACxB,OAAOA,EAAI0K,QAAQ,UAAW,OAAS,IAE3C,SAAS8kB,EAAeH,EAAML,GAC1B,IAAI/uB,EAAUovB,EAAKnvB,MAAM8uB,EAASvG,cAAgB,GAG9CgH,EADW5G,EAAc5oB,EAAS,GACf,GAEvB,OAAIwvB,EACOA,EAAQ/tB,MAAM,KAAKgK,IAAI6jB,GAAoBloB,KAAK,KAEhDgoB,EAGf,SAASK,EAAeL,EAAML,GAC1B,IAAI/uB,EAAUovB,EAAKnvB,MAAM8uB,EAAStG,cAAgB,GAE9CiH,EAAY9G,EAAc5oB,EAAS,GACnCwvB,EAAUE,EAAU,GACpBC,EAAOD,EAAU,GAErB,GAAIF,EAAS,CAYT,IAXA,IAAII,EAAwBJ,EAAQhK,cAAc/jB,MAAM,MAAMouB,UAC1DC,EAAyBlH,EAAcgH,EAAuB,GAC9DG,EAAOD,EAAuB,GAC9BE,EAAQF,EAAuB,GAE/BG,EAAcD,EAAQA,EAAMvuB,MAAM,KAAKgK,IAAI6jB,GAAsB,GACjEY,EAAaH,EAAKtuB,MAAM,KAAKgK,IAAI6jB,GACjCa,EAAyBpB,EAASvG,YAAY5mB,KAAKsuB,EAAWA,EAAWn1B,OAAS,IAClFq1B,EAAaD,EAAyB,EAAI,EAC1CE,EAAkBH,EAAWn1B,OAASq1B,EACtCE,EAASrmB,MAAMmmB,GACVhL,EAAI,EAAGA,EAAIgL,IAAchL,EAC9BkL,EAAOlL,GAAK6K,EAAY7K,IAAM8K,EAAWG,EAAkBjL,IAAM,GAEjE+K,IACAG,EAAOF,EAAa,GAAKb,EAAee,EAAOF,EAAa,GAAIrB,IAEpE,IAWIwB,EAXgBD,EAAOE,OAAO,SAAUC,EAAKC,EAAOjuB,GACpD,IAAKiuB,GAAmB,MAAVA,EAAe,CACzB,IAAIC,EAAcF,EAAIA,EAAI11B,OAAS,GAC/B41B,GAAeA,EAAYluB,MAAQkuB,EAAY51B,SAAW0H,EAC1DkuB,EAAY51B,SAEZ01B,EAAI7kB,KAAK,CAAEnJ,MAAOA,EAAO1H,OAAQ,IAGzC,OAAO01B,GACR,IACmCpM,KAAK,SAAU3pB,EAAGoW,GACpD,OAAOA,EAAE/V,OAASL,EAAEK,SACrB,GACC61B,OAAU,EACd,GAAIL,GAAgD,EAA3BA,EAAkBx1B,OAAY,CACnD,IAAI81B,EAAWP,EAAO7mB,MAAM,EAAG8mB,EAAkB9tB,OAC7CquB,EAAUR,EAAO7mB,MAAM8mB,EAAkB9tB,MAAQ8tB,EAAkBx1B,QACvE61B,EAAUC,EAASzpB,KAAK,KAAO,KAAO0pB,EAAQ1pB,KAAK,UAEnDwpB,EAAUN,EAAOlpB,KAAK,KAK1B,OAHIuoB,IACAiB,GAAW,IAAMjB,GAEdiB,EAEP,OAAOxB,EAGf,IAAI2B,EAAY,kIACZC,OAAiD70B,IAAzB,GAAG8D,MAAM,SAAS,GAC9C,SAAS+H,EAAMipB,GACX,IAAIC,EAA6B,EAAnBtsB,UAAU7J,aAA+BoB,IAAjByI,UAAU,GAAmBA,UAAU,GAAK,GAE9EkqB,EAAa,GACbC,GAA2B,IAAhBmC,EAAQC,IAAgBxI,EAAeD,EAC5B,WAAtBwI,EAAQE,YAAwBH,GAAaC,EAAQhC,OAASgC,EAAQhC,OAAS,IAAM,IAAM,KAAO+B,GACtG,IAAIjxB,EAAUixB,EAAUhxB,MAAM8wB,GAC9B,GAAI/wB,EAAS,CACLgxB,GAEAlC,EAAWI,OAASlvB,EAAQ,GAC5B8uB,EAAWK,SAAWnvB,EAAQ,GAC9B8uB,EAAWM,KAAOpvB,EAAQ,GAC1B8uB,EAAWuC,KAAO7C,SAASxuB,EAAQ,GAAI,IACvC8uB,EAAWhf,KAAO9P,EAAQ,IAAM,GAChC8uB,EAAWO,MAAQrvB,EAAQ,GAC3B8uB,EAAWtlB,SAAWxJ,EAAQ,GAE1BsxB,MAAMxC,EAAWuC,QACjBvC,EAAWuC,KAAOrxB,EAAQ,MAK9B8uB,EAAWI,OAASlvB,EAAQ,SAAM7D,EAClC2yB,EAAWK,UAAuC,IAA5B8B,EAAUjY,QAAQ,KAAchZ,EAAQ,QAAK7D,EACnE2yB,EAAWM,MAAoC,IAA7B6B,EAAUjY,QAAQ,MAAehZ,EAAQ,QAAK7D,EAChE2yB,EAAWuC,KAAO7C,SAASxuB,EAAQ,GAAI,IACvC8uB,EAAWhf,KAAO9P,EAAQ,IAAM,GAChC8uB,EAAWO,OAAoC,IAA5B4B,EAAUjY,QAAQ,KAAchZ,EAAQ,QAAK7D,EAChE2yB,EAAWtlB,UAAuC,IAA5BynB,EAAUjY,QAAQ,KAAchZ,EAAQ,QAAK7D,EAE/Dm1B,MAAMxC,EAAWuC,QACjBvC,EAAWuC,KAAOJ,EAAUhxB,MAAM,iCAAmCD,EAAQ,QAAK7D,IAGtF2yB,EAAWM,OAEXN,EAAWM,KAAOK,EAAeF,EAAeT,EAAWM,KAAML,GAAWA,IAM5ED,EAAWsC,eAHWj1B,IAAtB2yB,EAAWI,aAAgD/yB,IAAxB2yB,EAAWK,eAA8ChzB,IAApB2yB,EAAWM,WAA0CjzB,IAApB2yB,EAAWuC,MAAuBvC,EAAWhf,WAA6B3T,IAArB2yB,EAAWO,WAE5IlzB,IAAtB2yB,EAAWI,OACK,gBACQ/yB,IAAxB2yB,EAAWtlB,SACK,WAEA,MANA,gBASvB0nB,EAAQE,WAAmC,WAAtBF,EAAQE,WAA0BF,EAAQE,YAActC,EAAWsC,YACxFtC,EAAWlpB,MAAQkpB,EAAWlpB,OAAS,gBAAkBsrB,EAAQE,UAAY,eAGjF,IAAIG,EAAgBrD,GAASgD,EAAQhC,QAAUJ,EAAWI,QAAU,IAAI1J,eAExE,GAAK0L,EAAQM,gBAAoBD,GAAkBA,EAAcC,eAc7D3C,EAA4BC,EAAYC,OAdsC,CAE9E,GAAID,EAAWM,OAAS8B,EAAQO,YAAcF,GAAiBA,EAAcE,YAEzE,IACI3C,EAAWM,KAAOzB,EAASK,QAAQc,EAAWM,KAAK3kB,QAAQskB,EAASxG,YAAa8F,GAAa7I,eAChG,MAAOtrB,GACL40B,EAAWlpB,MAAQkpB,EAAWlpB,OAAS,kEAAoE1L,EAInH20B,EAA4BC,EAAYpG,GAMxC6I,GAAiBA,EAAcvpB,OAC/BupB,EAAcvpB,MAAM8mB,EAAYoC,QAGpCpC,EAAWlpB,MAAQkpB,EAAWlpB,OAAS,yBAE3C,OAAOkpB,EAuBX,IAAI4C,EAAO,WACPC,EAAO,cACPC,EAAO,gBACPC,EAAO,yBACX,SAASC,EAAkBvG,GAEvB,IADA,IAAIb,EAAS,GACNa,EAAMxwB,QACT,GAAIwwB,EAAMtrB,MAAMyxB,GACZnG,EAAQA,EAAM9gB,QAAQinB,EAAM,SACzB,GAAInG,EAAMtrB,MAAM0xB,GACnBpG,EAAQA,EAAM9gB,QAAQknB,EAAM,UACzB,GAAIpG,EAAMtrB,MAAM2xB,GACnBrG,EAAQA,EAAM9gB,QAAQmnB,EAAM,KAC5BlH,EAAOvW,WACJ,GAAc,MAAVoX,GAA2B,OAAVA,EACxBA,EAAQ,OACL,CACH,IAAIwG,EAAKxG,EAAMtrB,MAAM4xB,GACrB,IAAIE,EAKA,MAAM,IAAIp3B,MAAM,oCAJhB,IAAIq3B,EAAID,EAAG,GACXxG,EAAQA,EAAM9hB,MAAMuoB,EAAEj3B,QACtB2vB,EAAO9e,KAAKomB,GAMxB,OAAOtH,EAAOtjB,KAAK,IAGvB,SAASmD,EAAUukB,GACf,IAAIoC,EAA6B,EAAnBtsB,UAAU7J,aAA+BoB,IAAjByI,UAAU,GAAmBA,UAAU,GAAK,GAE9EmqB,EAAWmC,EAAQC,IAAMxI,EAAeD,EACxCuJ,EAAY,GAEZV,EAAgBrD,GAASgD,EAAQhC,QAAUJ,EAAWI,QAAU,IAAI1J,eAGxE,GADI+L,GAAiBA,EAAchnB,WAAWgnB,EAAchnB,UAAUukB,EAAYoC,GAC9EpC,EAAWM,KAEX,GAAIL,EAAStG,YAAY7mB,KAAKktB,EAAWM,YAIpC,GAAI8B,EAAQO,YAAcF,GAAiBA,EAAcE,WAEtD,IACI3C,EAAWM,KAAQ8B,EAAQC,IAAmGxD,EAASM,UAAUa,EAAWM,MAA3HzB,EAASK,QAAQc,EAAWM,KAAK3kB,QAAQskB,EAASxG,YAAa8F,GAAa7I,eAC/G,MAAOtrB,GACL40B,EAAWlpB,MAAQkpB,EAAWlpB,OAAS,+CAAkDsrB,EAAQC,IAAgB,UAAV,SAAuB,kBAAoBj3B,EAKlK20B,EAA4BC,EAAYC,GACd,WAAtBmC,EAAQE,WAA0BtC,EAAWI,SAC7C+C,EAAUrmB,KAAKkjB,EAAWI,QAC1B+C,EAAUrmB,KAAK,MAEnB,IAhFyBkjB,EACrBC,EACAkD,EA8EAC,GA/EAnD,GAA2B,IA+EiBmC,EA/EzBC,IAAgBxI,EAAeD,EAClDuJ,EAAY,QACY91B,KAHH2yB,EAgFWA,GA7ErBK,WACX8C,EAAUrmB,KAAKkjB,EAAWK,UAC1B8C,EAAUrmB,KAAK,WAEKzP,IAApB2yB,EAAWM,MAEX6C,EAAUrmB,KAAK6jB,EAAeF,EAAerF,OAAO4E,EAAWM,MAAOL,GAAWA,GAAUtkB,QAAQskB,EAAStG,YAAa,SAAU0J,EAAGC,EAAIC,GACtI,MAAO,IAAMD,GAAMC,EAAK,MAAQA,EAAK,IAAM,OAGpB,iBAApBvD,EAAWuC,OAClBY,EAAUrmB,KAAK,KACfqmB,EAAUrmB,KAAKkjB,EAAWuC,KAAK1N,SAAS,MAErCsO,EAAUl3B,OAASk3B,EAAU7qB,KAAK,SAAMjL,GAyE/C,QATkBA,IAAd+1B,IAC0B,WAAtBhB,EAAQE,WACRa,EAAUrmB,KAAK,MAEnBqmB,EAAUrmB,KAAKsmB,GACXpD,EAAWhf,MAAsC,MAA9Bgf,EAAWhf,KAAKwiB,OAAO,IAC1CL,EAAUrmB,KAAK,WAGCzP,IAApB2yB,EAAWhf,KAAoB,CAC/B,IAAIkiB,EAAIlD,EAAWhf,KACdohB,EAAQqB,cAAkBhB,GAAkBA,EAAcgB,eAC3DP,EAAIF,EAAkBE,SAER71B,IAAd+1B,IACAF,EAAIA,EAAEvnB,QAAQ,QAAS,SAE3BwnB,EAAUrmB,KAAKomB,GAUnB,YARyB71B,IAArB2yB,EAAWO,QACX4C,EAAUrmB,KAAK,KACfqmB,EAAUrmB,KAAKkjB,EAAWO,aAEFlzB,IAAxB2yB,EAAWtlB,WACXyoB,EAAUrmB,KAAK,KACfqmB,EAAUrmB,KAAKkjB,EAAWtlB,WAEvByoB,EAAU7qB,KAAK,IAG1B,SAASorB,EAAkBnH,EAAMoH,GAC7B,IAAIvB,EAA6B,EAAnBtsB,UAAU7J,aAA+BoB,IAAjByI,UAAU,GAAmBA,UAAU,GAAK,GAG9E8tB,EAAS,GAqDb,OAvDwB9tB,UAAU,KAI9BymB,EAAOrjB,EAAMuC,EAAU8gB,EAAM6F,GAAUA,GACvCuB,EAAWzqB,EAAMuC,EAAUkoB,EAAUvB,GAAUA,MAEnDA,EAAUA,GAAW,IACRyB,UAAYF,EAASvD,QAC9BwD,EAAOxD,OAASuD,EAASvD,OAEzBwD,EAAOvD,SAAWsD,EAAStD,SAC3BuD,EAAOtD,KAAOqD,EAASrD,KACvBsD,EAAOrB,KAAOoB,EAASpB,KACvBqB,EAAO5iB,KAAOgiB,EAAkBW,EAAS3iB,MAAQ,IACjD4iB,EAAOrD,MAAQoD,EAASpD,aAEElzB,IAAtBs2B,EAAStD,eAA4ChzB,IAAlBs2B,EAASrD,WAAwCjzB,IAAlBs2B,EAASpB,MAE3EqB,EAAOvD,SAAWsD,EAAStD,SAC3BuD,EAAOtD,KAAOqD,EAASrD,KACvBsD,EAAOrB,KAAOoB,EAASpB,KACvBqB,EAAO5iB,KAAOgiB,EAAkBW,EAAS3iB,MAAQ,IACjD4iB,EAAOrD,MAAQoD,EAASpD,QAsBpBqD,EAAOrD,MApBNoD,EAAS3iB,MASN4iB,EAAO5iB,KADqB,MAA5B2iB,EAAS3iB,KAAKwiB,OAAO,GACPR,EAAkBW,EAAS3iB,OAOrC4iB,EAAO5iB,UALY3T,IAAlBkvB,EAAK8D,eAAwChzB,IAAdkvB,EAAK+D,WAAoCjzB,IAAdkvB,EAAKgG,MAAwBhG,EAAKvb,KAErFub,EAAKvb,KAGCub,EAAKvb,KAAKrG,MAAM,EAAG4hB,EAAKvb,KAAK8b,YAAY,KAAO,GAAK6G,EAAS3iB,KAF9D2iB,EAAS3iB,KAFT,IAAM2iB,EAAS3iB,KAMnBgiB,EAAkBY,EAAO5iB,OAE5B2iB,EAASpD,QAnBxBqD,EAAO5iB,KAAOub,EAAKvb,UACI3T,IAAnBs2B,EAASpD,MACMoD,EAASpD,MAEThE,EAAKgE,OAkB5BqD,EAAOvD,SAAW9D,EAAK8D,SACvBuD,EAAOtD,KAAO/D,EAAK+D,KACnBsD,EAAOrB,KAAOhG,EAAKgG,MAEvBqB,EAAOxD,OAAS7D,EAAK6D,QAEzBwD,EAAOlpB,SAAWipB,EAASjpB,SACpBkpB,EAmCX,SAASE,EAAkB7yB,EAAKmxB,GAC5B,OAAOnxB,GAAOA,EAAI4jB,WAAWlZ,QAASymB,GAAYA,EAAQC,IAAiCxI,EAAaJ,YAAxCG,EAAaH,YAAwC8F,GAGzH,IAAIwE,EAAU,CACV3D,OAAQ,OACRuC,YAAY,EACZzpB,MAAO,SAAe8mB,EAAYoC,GAK9B,OAHKpC,EAAWM,OACZN,EAAWlpB,MAAQkpB,EAAWlpB,OAAS,+BAEpCkpB,GAEXvkB,UAAW,SAAmBukB,EAAYoC,GAYtC,OAVIpC,EAAWuC,QAAsD,UAA5CnH,OAAO4E,EAAWI,QAAQ1J,cAA4B,GAAK,MAA4B,KAApBsJ,EAAWuC,OACnGvC,EAAWuC,UAAOl1B,GAGjB2yB,EAAWhf,OACZgf,EAAWhf,KAAO,KAKfgf,IAIXgE,EAAY,CACZ5D,OAAQ,QACRuC,WAAYoB,EAAQpB,WACpBzpB,MAAO6qB,EAAQ7qB,MACfuC,UAAWsoB,EAAQtoB,WAGnBwoB,EAAI,GAGJ5M,EAAe,mGACfL,EAAW,cACXC,EAAeV,EAAOA,EAAO,UAAYS,EAAW,IAAMA,EAAWA,EAAW,IAAMA,EAAWA,GAAY,IAAMT,EAAO,cAAgBS,EAAW,IAAMA,EAAWA,GAAY,IAAMT,EAAO,IAAMS,EAAWA,IAchNkN,EAAUjO,EADA,6DACe,aAEzBsD,EAAa,IAAIvmB,OAAOqkB,EAAc,KACtCoC,EAAc,IAAIzmB,OAAOikB,EAAc,KACvCkN,EAAiB,IAAInxB,OAAOijB,EAAM,MANxB,wDAMwC,QAAS,QAASiO,GAAU,KAC9EE,EAAa,IAAIpxB,OAAOijB,EAAM,MAAOoB,EAJrB,uCAImD,KACnEgN,EAAcD,EAClB,SAASlE,GAAiBjvB,GACtB,IAAIkvB,EAASZ,EAAYtuB,GACzB,OAAQkvB,EAAOhvB,MAAMooB,GAAoB4G,EAANlvB,EAEvC,IAAIqzB,GAAY,CACZlE,OAAQ,SACRlnB,MAAO,SAAkB8mB,EAAYoC,GACjC,IAAImC,EAAmBvE,EACnB5hB,EAAKmmB,EAAiBnmB,GAAKmmB,EAAiBvjB,KAAOujB,EAAiBvjB,KAAKrO,MAAM,KAAO,GAE1F,GADA4xB,EAAiBvjB,UAAO3T,EACpBk3B,EAAiBhE,MAAO,CAIxB,IAHA,IAAIiE,GAAiB,EACjBC,EAAU,GACVC,EAAUH,EAAiBhE,MAAM5tB,MAAM,KAClC2jB,EAAI,EAAGD,EAAKqO,EAAQz4B,OAAQqqB,EAAID,IAAMC,EAAG,CAC9C,IAAIqO,EAASD,EAAQpO,GAAG3jB,MAAM,KAC9B,OAAQgyB,EAAO,IACX,IAAK,KAED,IADA,IAAIC,EAAUD,EAAO,GAAGhyB,MAAM,KACrBkyB,EAAK,EAAGC,EAAMF,EAAQ34B,OAAQ44B,EAAKC,IAAOD,EAC/CzmB,EAAGtB,KAAK8nB,EAAQC,IAEpB,MACJ,IAAK,UACDN,EAAiBQ,QAAUjB,EAAkBa,EAAO,GAAIvC,GACxD,MACJ,IAAK,OACDmC,EAAiBS,KAAOlB,EAAkBa,EAAO,GAAIvC,GACrD,MACJ,QACIoC,GAAiB,EACjBC,EAAQX,EAAkBa,EAAO,GAAIvC,IAAY0B,EAAkBa,EAAO,GAAIvC,IAItFoC,IAAgBD,EAAiBE,QAAUA,GAEnDF,EAAiBhE,WAAQlzB,EACzB,IAAK,IAAI43B,EAAM,EAAGC,EAAO9mB,EAAGnS,OAAQg5B,EAAMC,IAAQD,EAAK,CACnD,IAAIE,EAAO/mB,EAAG6mB,GAAKtyB,MAAM,KAEzB,GADAwyB,EAAK,GAAKrB,EAAkBqB,EAAK,IAC5B/C,EAAQM,eAQTyC,EAAK,GAAKrB,EAAkBqB,EAAK,GAAI/C,GAAS1L,mBAN9C,IACIyO,EAAK,GAAKtG,EAASK,QAAQ4E,EAAkBqB,EAAK,GAAI/C,GAAS1L,eACjE,MAAOtrB,GACLm5B,EAAiBztB,MAAQytB,EAAiBztB,OAAS,2EAA6E1L,EAKxIgT,EAAG6mB,GAAOE,EAAK7sB,KAAK,KAExB,OAAOisB,GAEX9oB,UAAW,SAAsB8oB,EAAkBnC,GAC/C,IAvtCS9kB,EAutCL0iB,EAAauE,EACbnmB,EAvtCDd,OADMA,EAwtCQinB,EAAiBnmB,IAvtCKd,aAAenC,MAAQmC,EAA4B,iBAAfA,EAAIrR,QAAuBqR,EAAI3K,OAAS2K,EAAI8nB,aAAe9nB,EAAItR,KAAO,CAACsR,GAAOnC,MAAM9O,UAAUsO,MAAM3O,KAAKsR,GAAO,GAwtC3L,GAAIc,EAAI,CACJ,IAAK,IAAIkY,EAAI,EAAGD,EAAKjY,EAAGnS,OAAQqqB,EAAID,IAAMC,EAAG,CACzC,IAAI+O,EAASjK,OAAOhd,EAAGkY,IACnBgP,EAAQD,EAAOvI,YAAY,KAC3ByI,EAAYF,EAAO1qB,MAAM,EAAG2qB,GAAO3pB,QAAQ8d,EAAayG,IAAkBvkB,QAAQ8d,EAAa9C,GAAahb,QAAQwoB,EAAgB9E,GACpImG,EAASH,EAAO1qB,MAAM2qB,EAAQ,GAElC,IACIE,EAAUpD,EAAQC,IAA2ExD,EAASM,UAAUqG,GAAxF3G,EAASK,QAAQ4E,EAAkB0B,EAAQpD,GAAS1L,eAC9E,MAAOtrB,GACL40B,EAAWlpB,MAAQkpB,EAAWlpB,OAAS,wDAA2DsrB,EAAQC,IAAgB,UAAV,SAAuB,kBAAoBj3B,EAE/JgT,EAAGkY,GAAKiP,EAAY,IAAMC,EAE9BxF,EAAWhf,KAAO5C,EAAG9F,KAAK,KAE9B,IAAImsB,EAAUF,EAAiBE,QAAUF,EAAiBE,SAAW,GACjEF,EAAiBQ,UAASN,EAAiB,QAAIF,EAAiBQ,SAChER,EAAiBS,OAAMP,EAAc,KAAIF,EAAiBS,MAC9D,IAAIxD,EAAS,GACb,IAAK,IAAIiE,KAAQhB,EACTA,EAAQgB,KAAUxB,EAAEwB,IACpBjE,EAAO1kB,KAAK2oB,EAAK9pB,QAAQ8d,EAAayG,IAAkBvkB,QAAQ8d,EAAa9C,GAAahb,QAAQyoB,EAAY/E,GAAc,IAAMoF,EAAQgB,GAAM9pB,QAAQ8d,EAAayG,IAAkBvkB,QAAQ8d,EAAa9C,GAAahb,QAAQ0oB,EAAahF,IAMtP,OAHImC,EAAOv1B,SACP+zB,EAAWO,MAAQiB,EAAOlpB,KAAK,MAE5B0nB,IAIX0F,GAAY,kBAEZC,GAAY,CACZvF,OAAQ,MACRlnB,MAAO,SAAkB8mB,EAAYoC,GACjC,IAAIlxB,EAAU8uB,EAAWhf,MAAQgf,EAAWhf,KAAK7P,MAAMu0B,IACnDE,EAAgB5F,EACpB,GAAI9uB,EAAS,CACT,IAAIkvB,EAASgC,EAAQhC,QAAUwF,EAAcxF,QAAU,MACnDyF,EAAM30B,EAAQ,GAAGwlB,cACjBoP,EAAM50B,EAAQ,GAEduxB,EAAgBrD,EADJgB,EAAS,KAAOgC,EAAQyD,KAAOA,IAE/CD,EAAcC,IAAMA,EACpBD,EAAcE,IAAMA,EACpBF,EAAc5kB,UAAO3T,EACjBo1B,IACAmD,EAAgBnD,EAAcvpB,MAAM0sB,EAAexD,SAGvDwD,EAAc9uB,MAAQ8uB,EAAc9uB,OAAS,yBAEjD,OAAO8uB,GAEXnqB,UAAW,SAAsBmqB,EAAexD,GAC5C,IACIyD,EAAMD,EAAcC,IAEpBpD,EAAgBrD,GAHPgD,EAAQhC,QAAUwF,EAAcxF,QAAU,OAE9B,KAAOgC,EAAQyD,KAAOA,IAE3CpD,IACAmD,EAAgBnD,EAAchnB,UAAUmqB,EAAexD,IAE3D,IAAI2D,EAAgBH,EAGpB,OADAG,EAAc/kB,MAAQ6kB,GAAOzD,EAAQyD,KAAO,IADlCD,EAAcE,IAEjBC,IAIXt1B,GAAO,2DAEPu1B,GAAY,CACZ5F,OAAQ,WACRlnB,MAAO,SAAe0sB,EAAexD,GACjC,IAAI6D,EAAiBL,EAMrB,OALAK,EAAe3zB,KAAO2zB,EAAeH,IACrCG,EAAeH,SAAMz4B,EAChB+0B,EAAQyB,UAAcoC,EAAe3zB,MAAS2zB,EAAe3zB,KAAKnB,MAAMV,MACzEw1B,EAAenvB,MAAQmvB,EAAenvB,OAAS,sBAE5CmvB,GAEXxqB,UAAW,SAAmBwqB,EAAgB7D,GAC1C,IAAIwD,EAAgBK,EAGpB,OADAL,EAAcE,KAAOG,EAAe3zB,MAAQ,IAAIokB,cACzCkP,IAIfxG,EAAQ2E,EAAQ3D,QAAU2D,EAC1B3E,EAAQ4E,EAAU5D,QAAU4D,EAC5B5E,EAAQkF,GAAUlE,QAAUkE,GAC5BlF,EAAQuG,GAAUvF,QAAUuF,GAC5BvG,EAAQ4G,GAAU5F,QAAU4F,GAE5Bt7B,EAAQ00B,QAAUA,EAClB10B,EAAQ20B,WAAaA,EACrB30B,EAAQ60B,YAAcA,EACtB70B,EAAQwO,MAAQA,EAChBxO,EAAQs4B,kBAAoBA,EAC5Bt4B,EAAQ+Q,UAAYA,EACpB/Q,EAAQg5B,kBAAoBA,EAC5Bh5B,EAAQwD,QAlQR,SAAiBg4B,EAASC,EAAa/D,GACnC,IAAIgE,EA9jCR,SAAgBxC,EAAQjuB,GACpB,IAAI2H,EAAMsmB,EACV,GAAIjuB,EACA,IAAK,IAAIpJ,KAAOoJ,EACZ2H,EAAI/Q,GAAOoJ,EAAOpJ,GAG1B,OAAO+Q,EAujCiB+oB,CAAO,CAAEjG,OAAQ,QAAUgC,GACnD,OAAO3mB,EAAUioB,EAAkBxqB,EAAMgtB,EAASE,GAAoBltB,EAAMitB,EAAaC,GAAoBA,GAAmB,GAAOA,IAiQ3I17B,EAAQ8Q,UA9PR,SAAmB1J,EAAKswB,GAMpB,MALmB,iBAARtwB,EACPA,EAAM2J,EAAUvC,EAAMpH,EAAKswB,GAAUA,GACd,WAAhB5L,EAAO1kB,KACdA,EAAMoH,EAAMuC,EAAU3J,EAAKswB,GAAUA,IAElCtwB,GAyPXpH,EAAQ6I,MAtPR,SAAe+yB,EAAMC,EAAMnE,GAWvB,MAVoB,iBAATkE,EACPA,EAAO7qB,EAAUvC,EAAMotB,EAAMlE,GAAUA,GACf,WAAjB5L,EAAO8P,KACdA,EAAO7qB,EAAU6qB,EAAMlE,IAEP,iBAATmE,EACPA,EAAO9qB,EAAUvC,EAAMqtB,EAAMnE,GAAUA,GACf,WAAjB5L,EAAO+P,KACdA,EAAO9qB,EAAU8qB,EAAMnE,IAEpBkE,IAASC,GA4OpB77B,EAAQ87B,gBAzOR,SAAyBv1B,EAAKmxB,GAC1B,OAAOnxB,GAAOA,EAAI4jB,WAAWlZ,QAASymB,GAAYA,EAAQC,IAA4BxI,EAAaP,OAAnCM,EAAaN,OAA8B+F,IAyO/G30B,EAAQo5B,kBAAoBA,EAE5Bt0B,OAAOi3B,eAAe/7B,EAAS,aAAc,CAAE8B,OAAO,IAv2CUk6B,CAA5C,iBAAZh8B,QAA0C,IAAXC,EAAiCD,EAE7DK,EAAOuF,IAAMvF,EAAOuF,KAAO,KA02CpC,IAAIT,IAAM,CAAC,SAASnE,EAAQf,EAAOD,GACrC,aAEA,IAAIi8B,EAAgBj7B,EAAQ,aACxBwC,EAAUxC,EAAQ,qBAClBS,EAAQT,EAAQ,WAChBoN,EAAepN,EAAQ,wBACvB0H,EAAkB1H,EAAQ,8BAC1BmF,EAAUnF,EAAQ,qBAClBwQ,EAAQxQ,EAAQ,mBAChBk7B,EAAkBl7B,EAAQ,UAC1BuE,EAAOvE,EAAQ,mBAEnBf,EAAOD,QAAUQ,GAEbmB,UAAUqB,SAyEd,SAAkBm5B,EAAc/oB,GAC9B,IAAIlQ,EACJ,GAA2B,iBAAhBi5B,GAET,KADAj5B,EAAI3C,KAAK8C,UAAU84B,IACX,MAAM,IAAIh7B,MAAM,8BAAgCg7B,EAAe,SAClE,CACL,IAAIr5B,EAAYvC,KAAKwC,WAAWo5B,GAChCj5B,EAAIJ,EAAUE,UAAYzC,KAAKkD,SAASX,GAG1C,IAAI+K,EAAQ3K,EAAEkQ,IACG,IAAblQ,EAAE6H,SAAiBxK,KAAK2E,OAAShC,EAAEgC,QACvC,OAAO2I,GApFTrN,EAAImB,UAAUsI,QA+Fd,SAAiB3H,EAAQ85B,GACvB,IAAIt5B,EAAYvC,KAAKwC,WAAWT,OAAQK,EAAWy5B,GACnD,OAAOt5B,EAAUE,UAAYzC,KAAKkD,SAASX,IAhG7CtC,EAAImB,UAAUuC,UA6Gd,SAAmB5B,EAAQT,EAAKw6B,EAAiBD,GAC/C,GAAI3rB,MAAMC,QAAQpO,GAAQ,CACxB,IAAK,IAAIxB,EAAE,EAAGA,EAAEwB,EAAOf,OAAQT,IAAKP,KAAK2D,UAAU5B,EAAOxB,QAAI6B,EAAW05B,EAAiBD,GAC1F,OAAO77B,KAET,IAAIuO,EAAKvO,KAAKqO,OAAOtM,GACrB,QAAWK,IAAPmM,GAAiC,iBAANA,EAC7B,MAAM,IAAI3N,MAAM,4BAIlB,OAFAm7B,EAAY/7B,KADZsB,EAAM2B,EAAQkB,YAAY7C,GAAOiN,IAEjCvO,KAAK6D,SAASvC,GAAOtB,KAAKwC,WAAWT,EAAQ+5B,EAAiBD,GAAO,GAC9D77B,MAvHTC,EAAImB,UAAU46B,cAoId,SAAuBj6B,EAAQT,EAAK26B,GAElC,OADAj8B,KAAK2D,UAAU5B,EAAQT,EAAK26B,GAAgB,GACrCj8B,MArITC,EAAImB,UAAU0L,eAgJd,SAAwB/K,EAAQm6B,GAC9B,IAAIr5B,EAAUd,EAAOc,QACrB,QAAgBT,IAAZS,GAA2C,iBAAXA,EAClC,MAAM,IAAIjC,MAAM,4BAElB,KADAiC,EAAUA,GAAW7C,KAAKkC,MAAMi6B,cAgBbp8B,EAhBwCC,KAiBvDgC,EAAOjC,EAAKmC,MAAMF,KACtBjC,EAAKmC,MAAMi6B,YAA6B,iBAARn6B,EACJjC,EAAKsO,OAAOrM,IAASA,EACrBjC,EAAK+C,UAAUs5B,GACbA,OACAh6B,EACvBrC,EAAKmC,MAAMi6B,cAnBhB,OAFAn8B,KAAKyL,OAAOuT,KAAK,+BACjBhf,KAAK2E,OAAS,MAalB,IAAqB5E,EACfiC,EAXJ,IAAIsL,EAAQtN,KAAKyC,SAASI,EAASd,GACnC,IAAKuL,GAAS4uB,EAAiB,CAC7B,IAAIj4B,EAAU,sBAAwBjE,KAAKuN,aAC3C,GAAiC,OAA7BvN,KAAKkC,MAAM4K,eACV,MAAM,IAAIlM,MAAMqD,GADmBjE,KAAKyL,OAAOI,MAAM5H,GAG5D,OAAOqJ,GA/JTrN,EAAImB,UAAU0B,UAoLd,SAAmBu5B,GACjB,IAAI95B,EAAY+5B,EAAct8B,KAAMq8B,GACpC,cAAe95B,GACb,IAAK,SAAU,OAAOA,EAAUE,UAAYzC,KAAKkD,SAASX,GAC1D,IAAK,SAAU,OAAOvC,KAAK8C,UAAUP,GACrC,IAAK,YAAa,OAKtB,SAA4BxC,EAAMqD,GAChC,IAAI2K,EAAM9K,EAAQlB,OAAOhB,KAAKhB,EAAM,CAAEgC,OAAQ,IAAMqB,GACpD,GAAI2K,EAAK,CACP,IAAIhM,EAASgM,EAAIhM,OACb0G,EAAOsF,EAAItF,KACXzE,EAAS+J,EAAI/J,OACbrB,EAAI+4B,EAAc36B,KAAKhB,EAAMgC,EAAQ0G,OAAMrG,EAAW4B,GAS1D,OARAjE,EAAKw8B,WAAWn5B,GAAO,IAAIyK,EAAa,CACtCzK,IAAKA,EACLqM,UAAU,EACV1N,OAAQA,EACR0G,KAAMA,EACNzE,OAAQA,EACRvB,SAAUE,IAELA,GApBkB65B,CAAmBx8B,KAAMq8B,KAxLtDp8B,EAAImB,UAAUq7B,aAgOd,SAAsBb,GACpB,GAAIA,aAAwB7zB,OAG1B,OAFA20B,EAAkB18B,KAAMA,KAAK6D,SAAU+3B,GACvCc,EAAkB18B,KAAMA,KAAK4D,MAAOg4B,GAC7B57B,KAET,cAAe47B,GACb,IAAK,YAIH,OAHAc,EAAkB18B,KAAMA,KAAK6D,UAC7B64B,EAAkB18B,KAAMA,KAAK4D,OAC7B5D,KAAKmB,OAAOO,QACL1B,KACT,IAAK,SACH,IAAIuC,EAAY+5B,EAAct8B,KAAM47B,GAIpC,OAHIr5B,GAAWvC,KAAKmB,OAAOM,IAAIc,EAAUo6B,iBAClC38B,KAAK6D,SAAS+3B,UACd57B,KAAK4D,MAAMg4B,GACX57B,KACT,IAAK,SACH,IAAIwQ,EAAYxQ,KAAKkC,MAAMsO,UACvBmsB,EAAWnsB,EAAYA,EAAUorB,GAAgBA,EACrD57B,KAAKmB,OAAOM,IAAIk7B,GAChB,IAAIpuB,EAAKvO,KAAKqO,OAAOutB,GACjBrtB,IACFA,EAAKtL,EAAQkB,YAAYoK,UAClBvO,KAAK6D,SAAS0K,UACdvO,KAAK4D,MAAM2K,IAGxB,OAAOvO,MA5PTC,EAAImB,UAAUw7B,UA2Zd,SAAmBpC,EAAM/b,GACF,iBAAVA,IAAoBA,EAAS,IAAI1W,OAAO0W,IAEnD,OADAze,KAAKoK,SAASowB,GAAQ/b,EACfze,MA7ZTC,EAAImB,UAAUmM,WAmYd,SAAoB5I,EAAQwyB,GAE1B,KADAxyB,EAASA,GAAU3E,KAAK2E,QACX,MAAO,YAMpB,IAJA,IAAIk4B,OAAkCz6B,KADtC+0B,EAAUA,GAAW,IACG0F,UAA0B,KAAO1F,EAAQ0F,UAC7D5oB,OAA8B7R,IAApB+0B,EAAQljB,QAAwB,OAASkjB,EAAQljB,QAE3D6oB,EAAO,GACFv8B,EAAE,EAAGA,EAAEoE,EAAO3D,OAAQT,IAAK,CAClC,IAAIJ,EAAIwE,EAAOpE,GACXJ,IAAG28B,GAAQ7oB,EAAU9T,EAAE48B,SAAW,IAAM58B,EAAE8D,QAAU44B,GAE1D,OAAOC,EAAKptB,MAAM,GAAImtB,EAAU77B,SA7YlCf,EAAImB,UAAUoB,WAyQd,SAAoBT,EAAQk6B,EAAgBj6B,EAAMg7B,GAChD,GAAqB,iBAAVj7B,GAAuC,kBAAVA,EACtC,MAAM,IAAInB,MAAM,sCAClB,IAAI4P,EAAYxQ,KAAKkC,MAAMsO,UACvBmsB,EAAWnsB,EAAYA,EAAUzO,GAAUA,EAC3Ck7B,EAASj9B,KAAKmB,OAAOK,IAAIm7B,GAC7B,GAAIM,EAAQ,OAAOA,EAEnBD,EAAkBA,IAAgD,IAA7Bh9B,KAAKkC,MAAMg7B,cAEhD,IAAI3uB,EAAKtL,EAAQkB,YAAYnE,KAAKqO,OAAOtM,IACrCwM,GAAMyuB,GAAiBjB,EAAY/7B,KAAMuO,GAE7C,IACI4uB,EADAC,GAA6C,IAA9Bp9B,KAAKkC,MAAM4K,iBAA6BmvB,EAEvDmB,KAAkBD,EAAgB5uB,GAAMA,GAAMtL,EAAQkB,YAAYpC,EAAOc,WAC3E7C,KAAK8M,eAAe/K,GAAQ,GAE9B,IAAI4H,EAAY1G,EAAQ0L,IAAI5N,KAAKf,KAAM+B,GAEnCQ,EAAY,IAAIsL,EAAa,CAC/BU,GAAIA,EACJxM,OAAQA,EACR4H,UAAWA,EACXgzB,SAAUA,EACV36B,KAAMA,IAGK,KAATuM,EAAG,IAAayuB,IAAiBh9B,KAAK4D,MAAM2K,GAAMhM,GACtDvC,KAAKmB,OAAOE,IAAIs7B,EAAUp6B,GAEtB66B,GAAgBD,GAAen9B,KAAK8M,eAAe/K,GAAQ,GAE/D,OAAOQ,GAzSTtC,EAAImB,UAAU8B,SA8Sd,SAAkBX,EAAWkG,GAC3B,GAAIlG,EAAUqG,UAOZ,OANArG,EAAUE,SAAW0H,GACRpI,OAASQ,EAAUR,OAChCoI,EAAaxF,OAAS,KACtBwF,EAAa1B,KAAOA,GAAc0B,GACF,IAA5B5H,EAAUR,OAAOyI,SACnBL,EAAaK,QAAS,GACjBL,EAIT,IAAIkzB,EAMA16B,EARJJ,EAAUqG,WAAY,EAGlBrG,EAAUP,OACZq7B,EAAcr9B,KAAKkC,MACnBlC,KAAKkC,MAAQlC,KAAKs9B,WAIpB,IAAM36B,EAAI+4B,EAAc36B,KAAKf,KAAMuC,EAAUR,OAAQ0G,EAAMlG,EAAUoH,WACrE,MAAMxJ,GAEJ,aADOoC,EAAUE,SACXtC,EAER,QACEoC,EAAUqG,WAAY,EAClBrG,EAAUP,OAAMhC,KAAKkC,MAAQm7B,GAOnC,OAJA96B,EAAUE,SAAWE,EACrBJ,EAAUsH,KAAOlH,EAAEkH,KACnBtH,EAAU8G,OAAS1G,EAAE0G,OACrB9G,EAAUkG,KAAO9F,EAAE8F,KACZ9F,EAIP,SAASwH,IAEP,IAAIozB,EAAYh7B,EAAUE,SACtBkI,EAAS4yB,EAAU3yB,MAAM5K,KAAM6K,WAEnC,OADAV,EAAaxF,OAAS44B,EAAU54B,OACzBgG,IAtVX1K,EAAImB,UAAUU,aAAerB,EAAQ,mBACrC,IAAI+8B,EAAgB/8B,EAAQ,aAC5BR,EAAImB,UAAUq8B,WAAaD,EAAchW,IACzCvnB,EAAImB,UAAUs8B,WAAaF,EAAch8B,IACzCvB,EAAImB,UAAUu8B,cAAgBH,EAAc3V,OAC5C5nB,EAAImB,UAAUqmB,gBAAkB+V,EAAc/6B,SAE9C,IAAIyF,EAAezH,EAAQ,2BAC3BR,EAAIsI,gBAAkBL,EAAaxD,WACnCzE,EAAI2B,gBAAkBsG,EAAarG,WACnC5B,EAAI07B,gBAAkBA,EAEtB,IAAIS,EAAiB,yCAEjBwB,EAAsB,CAAE,mBAAoB,cAAe,cAAe,kBAC1EC,EAAoB,CAAC,eAQzB,SAAS59B,EAAI2J,GACX,KAAM5J,gBAAgBC,GAAM,OAAO,IAAIA,EAAI2J,GAC3CA,EAAO5J,KAAKkC,MAAQ8C,EAAKc,KAAK8D,IAAS,GA+azC,SAAmB7J,GACjB,IAAI0L,EAAS1L,EAAKmC,MAAMuJ,OACxB,IAAe,IAAXA,EACF1L,EAAK0L,OAAS,CAACqyB,IAAKC,EAAM/e,KAAM+e,EAAMlyB,MAAOkyB,OACxC,CAEL,QADe37B,IAAXqJ,IAAsBA,EAASuyB,WACZ,iBAAVvyB,GAAsBA,EAAOqyB,KAAOryB,EAAOuT,MAAQvT,EAAOI,OACrE,MAAM,IAAIjL,MAAM,qDAClBb,EAAK0L,OAASA,GAtbhBwyB,CAAUj+B,MACVA,KAAK6D,SAAW,GAChB7D,KAAK4D,MAAQ,GACb5D,KAAKu8B,WAAa,GAClBv8B,KAAKoK,SAAWxE,EAAQgE,EAAK6U,QAE7Bze,KAAKmB,OAASyI,EAAKs0B,OAAS,IAAIh9B,EAChClB,KAAKyD,gBAAkB,GACvBzD,KAAK6I,cAAgB,GACrB7I,KAAKqK,MAAQ4G,IACbjR,KAAKqO,OAuTP,SAAqBzE,GACnB,OAAQA,EAAKgF,UACX,IAAK,OAAQ,OAAOuvB,EACpB,IAAK,KAAM,OAAO9vB,EAClB,QAAS,OAAO+vB,GA3TJC,CAAYz0B,GAE1BA,EAAKka,aAAela,EAAKka,cAAgBxT,EAAAA,EACf,YAAtB1G,EAAK00B,gBAA6B10B,EAAKsU,wBAAyB,QAC7C9b,IAAnBwH,EAAK4G,YAAyB5G,EAAK4G,UAAYrI,GACnDnI,KAAKs9B,UAuZP,SAA8Bv9B,GAE5B,IADA,IAAIw+B,EAAWv5B,EAAKc,KAAK/F,EAAKmC,OACrB3B,EAAE,EAAGA,EAAEq9B,EAAoB58B,OAAQT,WACnCg+B,EAASX,EAAoBr9B,IACtC,OAAOg+B,EA3ZUC,CAAqBx+B,MAElC4J,EAAKhE,SAuYX,SAA2B7F,GACzB,IAAK,IAAIy6B,KAAQz6B,EAAKmC,MAAM0D,QAAS,CACnC,IAAI6Y,EAAS1e,EAAKmC,MAAM0D,QAAQ40B,GAChCz6B,EAAK68B,UAAUpC,EAAM/b,IA1YLggB,CAAkBz+B,MAiXtC,SAA8BD,GAC5B,IAAI2+B,EACA3+B,EAAKmC,MAAMgU,QACbwoB,EAAcj+B,EAAQ,oBACtBV,EAAKi8B,cAAc0C,EAAaA,EAAYhnB,KAAK,IAEnD,IAAwB,IAApB3X,EAAKmC,MAAMF,KAAgB,OAC/B,IAAImV,EAAa1W,EAAQ,oCACrBV,EAAKmC,MAAMgU,QAAOiB,EAAawkB,EAAgBxkB,EAAY0mB,IAC/D99B,EAAKi8B,cAAc7kB,EAAYilB,GAAgB,GAC/Cr8B,EAAK6D,MAAM,iCAAmCw4B,EA1X9CuC,CAAqB3+B,MACG,iBAAb4J,EAAK5H,MAAkBhC,KAAKg8B,cAAcpyB,EAAK5H,MACtD4H,EAAK0c,UAAUtmB,KAAKy9B,WAAW,WAAY,CAACtmB,WAAY,CAACnG,KAAM,aA4XrE,SAA2BjR,GACzB,IAAI6+B,EAAc7+B,EAAKmC,MAAM28B,QAC7B,IAAKD,EAAa,OAClB,GAAI1uB,MAAMC,QAAQyuB,GAAc7+B,EAAK4D,UAAUi7B,QAC1C,IAAK,IAAIt9B,KAAOs9B,EAAa7+B,EAAK4D,UAAUi7B,EAAYt9B,GAAMA,GA/XnEw9B,CAAkB9+B,MA2JpB,SAASs8B,EAAcv8B,EAAMs8B,GAE3B,OADAA,EAASp5B,EAAQkB,YAAYk4B,GACtBt8B,EAAK8D,SAASw4B,IAAWt8B,EAAK6D,MAAMy4B,IAAWt8B,EAAKw8B,WAAWF,GA8CxE,SAASK,EAAkB38B,EAAM8+B,EAASz3B,GACxC,IAAK,IAAIi1B,KAAUwC,EAAS,CAC1B,IAAIt8B,EAAYs8B,EAAQxC,GACnB95B,EAAUP,MAAUoF,IAASA,EAAMS,KAAKw0B,KAC3Ct8B,EAAKoB,OAAOM,IAAIc,EAAUo6B,iBACnBkC,EAAQxC,KAqGrB,SAAShuB,EAAOtM,GAEd,OADIA,EAAO2V,KAAK1X,KAAKyL,OAAOuT,KAAK,qBAAsBjd,EAAO2V,KACvD3V,EAAOwM,GAIhB,SAAS6vB,EAAQr8B,GAEf,OADIA,EAAOwM,IAAIvO,KAAKyL,OAAOuT,KAAK,oBAAqBjd,EAAOwM,IACrDxM,EAAO2V,IAIhB,SAASymB,EAAYp8B,GACnB,GAAIA,EAAO2V,KAAO3V,EAAOwM,IAAMxM,EAAO2V,KAAO3V,EAAOwM,GAClD,MAAM,IAAI3N,MAAM,mCAClB,OAAOmB,EAAO2V,KAAO3V,EAAOwM,GAuE9B,SAASwtB,EAAYh8B,EAAMwO,GACzB,GAAIxO,EAAK8D,SAAS0K,IAAOxO,EAAK6D,MAAM2K,GAClC,MAAM,IAAI3N,MAAM,0BAA4B2N,EAAK,oBAyBrD,SAASwvB,OAEP,CAACgB,UAAU,EAAEC,YAAY,EAAEC,kBAAkB,EAAEC,0BAA0B,EAAEC,oBAAoB,EAAEC,oBAAoB,EAAEC,kBAAkB,EAAEC,uBAAuB,EAAEC,iBAAiB,GAAGC,SAAS,GAAGC,YAAY,GAAGC,mBAAmB,GAAGvnB,mCAAmC,GAAGxK,6BAA6B,MAAM,GAAG,GAlgOoD,CAkgOhD","file":"ajv.min.js"}
\ No newline at end of file +{"version":3,"sources":["0"],"names":["f","exports","module","define","amd","window","global","self","this","Ajv","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","1","Cache","_cache","prototype","put","key","value","get","del","clear","2","MissingRefError","MissingRef","compileAsync","schema","meta","callback","_opts","loadSchema","undefined","loadMetaSchemaOf","then","schemaObj","_addSchema","validate","_compileAsync","v","sch","$schema","getSchema","$ref","Promise","resolve","_compile","loadMissingSchema","ref","missingSchema","added","missingRef","schemaPromise","_loadingSchemas","removePromise","addSchema","_refs","_schemas","./error_classes","3","baseId","message","url","normalizeId","fullPath","errorSubclass","Subclass","Object","create","constructor","Validation","errors","ajv","validation","./resolve","4","util","DATE","DAYS","TIME","HOSTNAME","URI","URITEMPLATE","URL","UUID","JSON_POINTER","JSON_POINTER_URI_FRAGMENT","RELATIVE_JSON_POINTER","formats","mode","copy","date","str","matches","match","year","month","day","time","full","hour","minute","second","fast","date-time","uri","uri-reference","uri-template","email","hostname","ipv4","ipv6","regex","uuid","json-pointer","json-pointer-uri-fragment","relative-json-pointer","dateTime","split","DATE_TIME_SEPARATOR","NOT_URI_FRAGMENT","test","Z_ANCHOR","RegExp","./util","5","errorClasses","stableStringify","validateGenerator","ucs2length","equal","ValidationError","checkCompiling","root","index","compIndex","compiling","_compilations","endCompiling","splice","patternCode","patterns","toQuotedString","defaultCode","refValCode","refVal","customRuleCode","vars","arr","statement","compile","localRefs","opts","refs","patternsHash","defaults","defaultsHash","customRules","compilation","callValidate","_formats","RULES","localCompile","cv","$async","sourceCode","source","result","apply","arguments","_schema","_root","isRoot","isTop","schemaPath","errSchemaPath","errorPath","resolveRef","usePattern","useDefault","useCustomRule","logger","processCode","makeValidate","Function","error","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","replaceLocalRef","removeLocalRef","refId","inline","regexStr","valueStr","rule","parentSchema","it","validateSchema","deps","definition","dependencies","every","keyword","hasOwnProperty","join","valid","errorsText","macro","../dotjs/validate","fast-deep-equal","fast-json-stable-stringify","6","SchemaObject","traverse","res","resolveSchema","parse","refPath","_getFullPath","getFullPath","_getId","keys","id","parsedRef","resolveUrl","getJsonPointer","ids","schemaId","baseIds","","fullPaths","allKeys","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","escapeFragment","PREVENT_SCOPE_CHANGE","toHash","fragment","slice","parts","part","unescapeFragment","SIMPLE_INLINED","limit","checkNoRef","item","Array","isArray","countKeys","count","Infinity","normalize","serialize","TRAILING_SLASH_HASH","replace","./schema_obj","json-schema-traverse","uri-js","7","ruleModules","type","rules","maximum","minimum","properties","ALL","all","types","forEach","group","map","implKeywords","k","push","implements","$comment","keywords","concat","custom","../dotjs","8","obj","9","len","pos","charCodeAt","10","checkDataType","dataType","data","negate","EQUAL","AND","OK","NOT","to","checkDataTypes","dataTypes","array","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","escapeQuotes","varOccurences","dataVar","varReplace","expr","cleanUpCode","out","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","finalCleanUpCode","async","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_DATA_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","ROOTDATA_REGEXP","REMOVE_ROOTDATA","schemaHasRules","schemaHasRulesExcept","exceptKeyword","schemaUnknownRules","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","path","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","segments","segment","unescapeJsonPointer","decodeURIComponent","encodeURIComponent","hash","IDENTIFIER","SINGLE_QUOTE","b","./ucs2length","11","KEYWORDS","metaSchema","keywordsJsonPointers","JSON","stringify","j","anyOf","12","$id","definitions","simpleTypes","statements","not","required","items","modifying","const","./refs/json-schema-draft-07.json","13","$keyword","$schemaValue","$lvl","level","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","allErrors","$isData","dataPathArr","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$errorKeyword","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opStr","$opExpr","$$outStack","createErrors","messages","verbose","__err","pop","compositeRule","Math","14","15","unicode","16","17","$it","$closingBraces","$nextValid","$currentBaseId","$allSchemasEmpty","arr1","$sch","$i","l1","strictKeywords","18","$valid","$errs","$wasComposite","19","20","21","$idx","$dataNxt","$nextData","$nonEmptySchema","$passData","$code","22","$compile","$inline","$macro","$ruleValidate","$validateCode","$rule","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","passContext","$parentData","$parentDataProperty","def_callRuleValidate","def_customError","23","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$propertyKey","$useData","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","arr2","i2","l2","24","$vSchema","25","$ruleType","format","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","warn","indexOf","$formatRef","26","$thenSch","$elseSch","$thenPresent","$elsePresent","$ifClause","27","allOf","contains","enum","if","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","oneOf","pattern","propertyNames","uniqueItems","./_limit","./_limitItems","./_limitLength","./_limitProperties","./allOf","./anyOf","./comment","./const","./contains","./dependencies","./enum","./format","./if","./items","./multipleOf","./not","./oneOf","./pattern","./properties","./propertyNames","./ref","./required","./uniqueItems","./validate","28","$additionalItems","additionalItems","$currErrSchemaPath","29","multipleOfPrecision","30","$allErrorsOption","31","$prevValid","$passingSchemas","32","$regexp","33","$key","$dataProperties","$schemaKeys","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","loopRequired","$requiredHash","i1","$pProperty","$additionalProperty","$useDefaults","useDefaults","arr3","i3","l3","$hasDefault","default","arr4","i4","l4","34","$invalidName","35","$refCode","$refVal","$message","missingRefs","__callValidate","36","$propertySch","$loopRequired","37","$itemType","$typeIsArray","38","$refKeywords","$unknownKwd","$keywordsMsg","$top","rootId","strictDefaults","$defaultMsg","$closingBraces1","$closingBraces2","$typeSchema","nullable","extendRefs","coerceTypes","$coerceToTypes","$rulesGroup","$shouldUseGroup","$dataType","$coerced","$bracesCoercion","$type","arr5","i5","l5","$shouldUseRule","impl","$ruleImplementsSomeKeyword","39","definitionSchema","add","validateKeyword","_addRule","ruleGroup","rg","remove","throwError","_validateKeyword","./definition_schema","./dotjs/custom","40","description","41","title","schemaArray","nonNegativeInteger","nonNegativeIntegerDefault0","stringArray","readOnly","examples","exclusiveMinimum","exclusiveMaximum","contentMediaType","contentEncoding","else","42","flags","valueOf","toString","43","cmp","cycles","node","seen","toJSON","isFinite","TypeError","seenIndex","sort","44","cb","_traverse","pre","post","arrayKeywords","propsKeywords","skipKeywords","45","merge","_len","sets","_key","xl","x","subexp","typeOf","shift","toLowerCase","toUpperCase","buildExps","isIRI","ALPHA$$","DIGIT$$","HEXDIG$$","PCT_ENCODED$","SUB_DELIMS$$","RESERVED$$","IPRIVATE$$","UNRESERVED$$","SCHEME$","USERINFO$","DEC_OCTET_RELAXED$","IPV4ADDRESS$","H16$","LS32$","IPV6ADDRESS1$","IPV6ADDRESS2$","IPV6ADDRESS3$","IPV6ADDRESS4$","IPV6ADDRESS5$","IPV6ADDRESS6$","IPV6ADDRESS7$","IPV6ADDRESS8$","IPV6ADDRESS9$","IPV6ADDRESS$","ZONEID$","IPV6ADDRZ_RELAXED$","IPVFUTURE$","IP_LITERAL$","REG_NAME$","HOST$","PORT$","AUTHORITY$","PCHAR$","SEGMENT$","SEGMENT_NZ$","SEGMENT_NZ_NC$","PATH_ABEMPTY$","PATH_ABSOLUTE$","PATH_NOSCHEME$","PATH_ROOTLESS$","PATH_EMPTY$","QUERY$","FRAGMENT$","HIER_PART$","URI$","RELATIVE_PART$","RELATIVE$","NOT_SCHEME","NOT_USERINFO","NOT_HOST","NOT_PATH","NOT_PATH_NOSCHEME","NOT_QUERY","NOT_FRAGMENT","ESCAPE","UNRESERVED","OTHER_CHARS","PCT_ENCODED","IPV4ADDRESS","IPV6ADDRESS","URI_PROTOCOL","IRI_PROTOCOL","slicedToArray","Symbol","iterator","_arr","_n","_d","_e","_s","_i","next","done","err","sliceIterator","maxInt","regexPunycode","regexNonASCII","regexSeparators","overflow","not-basic","invalid-input","floor","stringFromCharCode","String","fromCharCode","error$1","RangeError","mapDomain","string","fn","ucs2decode","output","counter","extra","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","baseMinusTMin","base","decode","input","codePoint","inputLength","bias","basic","lastIndexOf","oldi","w","baseMinusT","fromCodePoint","encode","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_currentValue2","return","basicLength","handledCPCount","m","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","currentValue","handledCPCountPlusOne","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_currentValue","q","qMinusT","punycode","version","ucs2","from","toConsumableArray","toASCII","toUnicode","SCHEMES","pctEncChar","chr","pctDecChars","newStr","il","parseInt","substr","c2","_c","c3","_normalizeComponentEncoding","components","protocol","decodeUnreserved","decStr","scheme","userinfo","host","query","_stripLeadingZeros","_normalizeIPv4","address","_normalizeIPv6","_matches2","zone","_address$toLowerCase$","reverse","_address$toLowerCase$2","last","first","firstFields","lastFields","isLastFieldIPv4Address","fieldCount","lastFieldsStart","fields","longestZeroFields","reduce","acc","field","lastLongest","newHost","newFirst","newLast","URI_PARSE","NO_MATCH_IS_UNDEFINED","uriString","options","iri","reference","port","isNaN","schemeHandler","unicodeSupport","domainHost","RDS1","RDS2","RDS3","RDS5","removeDotSegments","im","s","uriTokens","authority","_","$1","$2","charAt","absolutePath","resolveComponents","relative","target","tolerant","unescapeComponent","handler","handler$1","O","VCHAR$$","NOT_LOCAL_PART","NOT_HFNAME","NOT_HFVALUE","handler$2","mailtoComponents","unknownHeaders","headers","hfields","hfield","toAddrs","_x","_xl","subject","body","_x2","_xl2","addr","setInterval","toAddr","atIdx","localPart","domain","name","URN_PARSE","handler$3","urnComponents","nid","nss","uriComponents","handler$4","uuidComponents","baseURI","relativeURI","schemelessOptions","assign","uriA","uriB","escapeComponent","defineProperty","factory","compileSchema","$dataMetaSchema","schemaKeyRef","_meta","_skipValidation","checkUnique","addMetaSchema","skipValidation","throwOrLogError","defaultMeta","META_SCHEMA_ID","keyRef","_getSchemaObj","_fragments","_getSchemaFragment","removeSchema","_removeAllSchemas","cacheKey","addFormat","separator","text","dataPath","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","currentOpts","_metaOpts","_validate","customKeyword","addKeyword","getKeyword","removeKeyword","META_IGNORE_OPTIONS","META_SUPPORT_DATA","log","noop","console","setLogger","cache","_get$IdOrId","_get$Id","chooseGetId","errorDataPath","metaOpts","getMetaSchemaOptions","addInitialFormats","addInitialKeywords","$dataSchema","addDefaultMetaSchema","optsSchemas","schemas","addInitialSchemas","./cache","./compile","./compile/async","./compile/error_classes","./compile/formats","./compile/resolve","./compile/rules","./compile/schema_obj","./compile/util","./data","./keyword","./refs/data.json"],"mappings":";CAAA,SAAUA,GAAG,GAAoB,iBAAVC,SAAoC,oBAATC,OAAsBA,OAAOD,QAAQD,SAAS,GAAmB,mBAATG,QAAqBA,OAAOC,IAAKD,OAAO,GAAGH,OAAO,EAA0B,oBAATK,OAAwBA,OAA+B,oBAATC,OAAwBA,OAA6B,oBAAPC,KAAsBA,KAAYC,MAAOC,IAAMT,KAAxT,CAA+T,WAAqC,OAAmB,SAASU,EAAEC,EAAEC,EAAEC,GAAG,SAASC,EAAEC,EAAEf,GAAG,IAAIY,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,IAAIC,EAAE,mBAAmBC,SAASA,QAAQ,IAAIjB,GAAGgB,EAAE,OAAOA,EAAED,GAAE,GAAI,GAAGG,EAAE,OAAOA,EAAEH,GAAE,GAAI,IAAII,EAAE,IAAIC,MAAM,uBAAuBL,EAAE,KAAK,MAAMI,EAAEE,KAAK,mBAAmBF,EAAE,IAAIG,EAAEV,EAAEG,GAAG,CAACd,QAAQ,IAAIU,EAAEI,GAAG,GAAGQ,KAAKD,EAAErB,QAAQ,SAASS,GAAoB,OAAOI,EAAlBH,EAAEI,GAAG,GAAGL,IAAeA,IAAIY,EAAEA,EAAErB,QAAQS,EAAEC,EAAEC,EAAEC,GAAG,OAAOD,EAAEG,GAAGd,QAAQ,IAAI,IAAIiB,EAAE,mBAAmBD,SAASA,QAAQF,EAAE,EAAEA,EAAEF,EAAEW,OAAOT,IAAID,EAAED,EAAEE,IAAI,OAAOD,EAA7b,CAA4c,CAACW,EAAE,CAAC,SAASR,EAAQf,EAAOD,GACn1B,aAGA,IAAIyB,EAAQxB,EAAOD,QAAU,WAC3BO,KAAKmB,OAAS,IAIhBD,EAAME,UAAUC,IAAM,SAAmBC,EAAKC,GAC5CvB,KAAKmB,OAAOG,GAAOC,GAIrBL,EAAME,UAAUI,IAAM,SAAmBF,GACvC,OAAOtB,KAAKmB,OAAOG,IAIrBJ,EAAME,UAAUK,IAAM,SAAmBH,UAChCtB,KAAKmB,OAAOG,IAIrBJ,EAAME,UAAUM,MAAQ,WACtB1B,KAAKmB,OAAS,KAGd,IAAIQ,EAAE,CAAC,SAASlB,EAAQf,EAAOD,GACjC,aAEA,IAAImC,EAAkBnB,EAAQ,mBAAmBoB,WAEjDnC,EAAOD,QAYP,SAASqC,EAAaC,EAAQC,EAAMC,GAIlC,IAAIlC,EAAOC,KACX,GAAoC,mBAAzBA,KAAKkC,MAAMC,WACpB,MAAM,IAAIvB,MAAM,2CAEC,mBAARoB,IACTC,EAAWD,EACXA,OAAOI,GAGT,IAAItB,EAAIuB,EAAiBN,GAAQO,KAAK,WACpC,IAAIC,EAAYxC,EAAKyC,WAAWT,OAAQK,EAAWJ,GACnD,OAAOO,EAAUE,UAAYC,EAAcH,KAGzCN,GACFnB,EAAEwB,KACA,SAASK,GAAKV,EAAS,KAAMU,IAC7BV,GAIJ,OAAOnB,EAGP,SAASuB,EAAiBO,GACxB,IAAIC,EAAUD,EAAIC,QAClB,OAAOA,IAAY9C,EAAK+C,UAAUD,GACxBf,EAAaf,KAAKhB,EAAM,CAAEgD,KAAMF,IAAW,GAC3CG,QAAQC,UAIpB,SAASP,EAAcH,GACrB,IAAM,OAAOxC,EAAKmD,SAASX,GAC3B,MAAMpC,GACJ,GAAIA,aAAayB,EAAiB,OAAOuB,EAAkBhD,GAC3D,MAAMA,EAIR,SAASgD,EAAkBhD,GACzB,IAAIiD,EAAMjD,EAAEkD,cACZ,GAAIC,EAAMF,GAAM,MAAM,IAAIxC,MAAM,UAAYwC,EAAM,kBAAoBjD,EAAEoD,WAAa,uBAErF,IAAIC,EAAgBzD,EAAK0D,gBAAgBL,GAMzC,OALKI,IACHA,EAAgBzD,EAAK0D,gBAAgBL,GAAOrD,EAAKmC,MAAMC,WAAWiB,IACpDd,KAAKoB,EAAeA,GAG7BF,EAAclB,KAAK,SAAUM,GAClC,IAAKU,EAAMF,GACT,OAAOf,EAAiBO,GAAKN,KAAK,WAC3BgB,EAAMF,IAAMrD,EAAK4D,UAAUf,EAAKQ,OAAKhB,EAAWJ,OAGxDM,KAAK,WACN,OAAOI,EAAcH,KAGvB,SAASmB,WACA3D,EAAK0D,gBAAgBL,GAG9B,SAASE,EAAMF,GACb,OAAOrD,EAAK6D,MAAMR,IAAQrD,EAAK8D,SAAST,QAM9C,CAACU,kBAAkB,IAAIC,EAAE,CAAC,SAAStD,EAAQf,EAAOD,GACpD,aAEA,IAAIwD,EAAUxC,EAAQ,aAoBtB,SAASmB,EAAgBoC,EAAQZ,EAAKa,GACpCjE,KAAKiE,QAAUA,GAAWrC,EAAgBqC,QAAQD,EAAQZ,GAC1DpD,KAAKuD,WAAaN,EAAQiB,IAAIF,EAAQZ,GACtCpD,KAAKqD,cAAgBJ,EAAQkB,YAAYlB,EAAQmB,SAASpE,KAAKuD,aAIjE,SAASc,EAAcC,GAGrB,OAFAA,EAASlD,UAAYmD,OAAOC,OAAO5D,MAAMQ,WACzCkD,EAASlD,UAAUqD,YAAcH,EA3BnC5E,EAAOD,QAAU,CACfiF,WAAYL,EAKd,SAAyBM,GACvB3E,KAAKiE,QAAU,oBACfjE,KAAK2E,OAASA,EACd3E,KAAK4E,IAAM5E,KAAK6E,YAAa,IAP7BhD,WAAYwC,EAAczC,IAW5BA,EAAgBqC,QAAU,SAAUD,EAAQZ,GAC1C,MAAO,2BAA8BA,EAAM,YAAcY,IAiBzD,CAACc,YAAY,IAAIC,EAAE,CAAC,SAAStE,EAAQf,EAAOD,GAC9C,aAEA,IAAIuF,EAAOvE,EAAQ,UAEfwE,EAAO,6BACPC,EAAO,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAC3CC,EAAO,0DACPC,EAAW,wGACXC,EAAM,+nCAGNC,EAAc,oLAKdC,EAAM,4rDACNC,EAAO,+DACPC,EAAe,4BACfC,EAA4B,+DAC5BC,EAAwB,mDAK5B,SAASC,EAAQC,GAEf,OAAOb,EAAKc,KAAKF,EADjBC,EAAe,QAARA,EAAiB,OAAS,SA+DnC,SAASE,EAAKC,GAEZ,IAAIC,EAAUD,EAAIE,MAAMjB,GACxB,IAAKgB,EAAS,OAAO,EAErB,IAXkBE,EAYdC,GAASH,EAAQ,GACjBI,GAAOJ,EAAQ,GAEnB,OAAgB,GAATG,GAAcA,GAAS,IAAa,GAAPC,GAC5BA,IAAiB,GAATD,KAhBED,GAWNF,EAAQ,IATN,GAAM,GAAME,EAAO,KAAQ,GAAKA,EAAO,KAAQ,GAcPjB,EAAKkB,GAAV,IAInD,SAASE,EAAKN,EAAKO,GACjB,IAAIN,EAAUD,EAAIE,MAAMf,GACxB,IAAKc,EAAS,OAAO,EAErB,IAAIO,EAAOP,EAAQ,GACfQ,EAASR,EAAQ,GACjBS,EAAST,EAAQ,GAErB,OAASO,GAAQ,IAAMC,GAAU,IAAMC,GAAU,IAChC,IAARF,GAAwB,IAAVC,GAA0B,IAAVC,MAC9BH,GAHMN,EAAQ,KAvFzBvG,EAAOD,QAAUmG,GAQTe,KAAO,CAEbZ,KAAM,6BAENO,KAAM,8EACNM,YAAa,0GAEbC,IAAK,4CACLC,gBAAiB,yEACjBC,eAAgBzB,EAChBpB,IAAKqB,EAILyB,MAAO,mHACPC,SAAU7B,EAEV8B,KAAM,4EAENC,KAAM,qpCACNC,MAAOA,EAEPC,KAAM7B,EAGN8B,eAAgB7B,EAChB8B,4BAA6B7B,EAE7B8B,wBAAyB7B,GAI3BC,EAAQW,KAAO,CACbR,KAAMA,EACNO,KAAMA,EACNM,YAoDF,SAAmBZ,GAEjB,IAAIyB,EAAWzB,EAAI0B,MAAMC,GACzB,OAA0B,GAAnBF,EAASzG,QAAe+E,EAAK0B,EAAS,KAAOnB,EAAKmB,EAAS,IAAI,IAtDtEZ,IA2DF,SAAab,GAEX,OAAO4B,EAAiBC,KAAK7B,IAAQX,EAAIwC,KAAK7B,IA5D9Cc,gBA3DW,yoCA4DXC,eAAgBzB,EAChBpB,IAAKqB,EACLyB,MAAO,2IACPC,SAAU7B,EACV8B,KAAM,4EACNC,KAAM,qpCACNC,MAAOA,EACPC,KAAM7B,EACN8B,eAAgB7B,EAChB8B,4BAA6B7B,EAC7B8B,wBAAyB7B,GAsC3B,IAAIgC,EAAsB,QAQ1B,IAAIC,EAAmB,OAOvB,IAAIE,EAAW,WACf,SAASV,EAAMpB,GACb,GAAI8B,EAASD,KAAK7B,GAAM,OAAO,EAC/B,IAEE,OADA,IAAI+B,OAAO/B,IACJ,EACP,MAAM7F,GACN,OAAO,KAIT,CAAC6H,SAAS,KAAKC,EAAE,CAAC,SAASxH,EAAQf,EAAOD,GAC5C,aAEA,IAAIwD,EAAUxC,EAAQ,aAClBuE,EAAOvE,EAAQ,UACfyH,EAAezH,EAAQ,mBACvB0H,EAAkB1H,EAAQ,8BAE1B2H,EAAoB3H,EAAQ,qBAM5B4H,EAAarD,EAAKqD,WAClBC,EAAQ7H,EAAQ,mBAGhB8H,EAAkBL,EAAaxD,WAySnC,SAAS8D,EAAezG,EAAQ0G,EAAMzE,GAEpC,IAAI0E,EAAQC,EAAU5H,KAAKf,KAAM+B,EAAQ0G,EAAMzE,GAC/C,OAAa,GAAT0E,EAAmB,CAAEA,MAAOA,EAAOE,WAAW,GAO3C,CAAEF,MANTA,EAAQ1I,KAAK6I,cAAc7H,OAMJ4H,YALvB5I,KAAK6I,cAAcH,GAAS,CAC1B3G,OAAQA,EACR0G,KAAMA,EACNzE,OAAQA,KAaZ,SAAS8E,EAAa/G,EAAQ0G,EAAMzE,GAElC,IAAIzD,EAAIoI,EAAU5H,KAAKf,KAAM+B,EAAQ0G,EAAMzE,GAClC,GAALzD,GAAQP,KAAK6I,cAAcE,OAAOxI,EAAG,GAY3C,SAASoI,EAAU5G,EAAQ0G,EAAMzE,GAE/B,IAAK,IAAIzD,EAAE,EAAGA,EAAEP,KAAK6I,cAAc7H,OAAQT,IAAK,CAC9C,IAAIC,EAAIR,KAAK6I,cAActI,GAC3B,GAAIC,EAAEuB,QAAUA,GAAUvB,EAAEiI,MAAQA,GAAQjI,EAAEwD,QAAUA,EAAQ,OAAOzD,EAEzE,OAAQ,EAIV,SAASyI,EAAYzI,EAAG0I,GACtB,MAAO,cAAgB1I,EAAI,iBAAmByE,EAAKkE,eAAeD,EAAS1I,IAAM,KAInF,SAAS4I,EAAY5I,GACnB,MAAO,cAAgBA,EAAI,eAAiBA,EAAI,KAIlD,SAAS6I,EAAW7I,EAAG8I,GACrB,YAAqBjH,IAAdiH,EAAO9I,GAAmB,GAAK,aAAeA,EAAI,aAAeA,EAAI,KAI9E,SAAS+I,EAAe/I,GACtB,MAAO,iBAAmBA,EAAI,kBAAoBA,EAAI,KAIxD,SAASgJ,EAAKC,EAAKC,GACjB,IAAKD,EAAIxI,OAAQ,MAAO,GAExB,IADA,IAAIH,EAAO,GACFN,EAAE,EAAGA,EAAEiJ,EAAIxI,OAAQT,IAC1BM,GAAQ4I,EAAUlJ,EAAGiJ,GACvB,OAAO3I,EA9WTnB,EAAOD,QAYP,SAASiK,EAAQ3H,EAAQ0G,EAAMkB,EAAW3F,GAGxC,IAAIjE,EAAOC,KACP4J,EAAO5J,KAAKkC,MACZmH,EAAS,MAAEjH,GACXyH,EAAO,GACPZ,EAAW,GACXa,EAAe,GACfC,EAAW,GACXC,EAAe,GACfC,EAAc,GAElBxB,EAAOA,GAAQ,CAAE1G,OAAQA,EAAQsH,OAAQA,EAAQQ,KAAMA,GAEvD,IAAIrJ,EAAIgI,EAAezH,KAAKf,KAAM+B,EAAQ0G,EAAMzE,GAChD,IAAIkG,EAAclK,KAAK6I,cAAcrI,EAAEkI,OACvC,GAAIlI,EAAEoI,UAAW,OAAQsB,EAAYC,aAAeA,EAEpD,IAAIvE,EAAU5F,KAAKoK,SACnB,IAAIC,EAAQrK,KAAKqK,MAEjB,IACE,IAAI1H,EAAI2H,EAAavI,EAAQ0G,EAAMkB,EAAW3F,GAC9CkG,EAAYzH,SAAWE,EACvB,IAAI4H,EAAKL,EAAYC,aAUrB,OATII,IACFA,EAAGxI,OAASY,EAAEZ,OACdwI,EAAG5F,OAAS,KACZ4F,EAAGV,KAAOlH,EAAEkH,KACZU,EAAGlB,OAAS1G,EAAE0G,OACdkB,EAAG9B,KAAO9F,EAAE8F,KACZ8B,EAAGC,OAAS7H,EAAE6H,OACVZ,EAAKa,aAAYF,EAAGG,OAAS/H,EAAE+H,SAE9B/H,EACP,QACAmG,EAAa/H,KAAKf,KAAM+B,EAAQ0G,EAAMzE,GAIxC,SAASmG,IAEP,IAAI1H,EAAWyH,EAAYzH,SACvBkI,EAASlI,EAASmI,MAAM5K,KAAM6K,WAElC,OADAV,EAAaxF,OAASlC,EAASkC,OACxBgG,EAGT,SAASL,EAAaQ,EAASC,EAAOpB,EAAW3F,GAC/C,IAAIgH,GAAUD,GAAUA,GAASA,EAAMhJ,QAAU+I,EACjD,GAAIC,EAAMhJ,QAAU0G,EAAK1G,OACvB,OAAO2H,EAAQ3I,KAAKhB,EAAM+K,EAASC,EAAOpB,EAAW3F,GAEvD,IAgCIvB,EAhCA+H,GAA4B,IAAnBM,EAAQN,OAEjBC,EAAarC,EAAkB,CACjC6C,OAAO,EACPlJ,OAAQ+I,EACRE,OAAQA,EACRhH,OAAQA,EACRyE,KAAMsC,EACNG,WAAY,GACZC,cAAe,IACfC,UAAW,KACXxJ,gBAAiBsG,EAAarG,WAC9BwI,MAAOA,EACP5H,SAAU2F,EACVpD,KAAMA,EACN/B,QAASA,EACToI,WAAYA,EACZC,WAAYA,EACZC,WAAYA,EACZC,cAAeA,EACf5B,KAAMA,EACNhE,QAASA,EACT6F,OAAQ1L,EAAK0L,OACb1L,KAAMA,IAGR0K,EAAalB,EAAKF,EAAQD,GAAcG,EAAKN,EAAUD,GACtCO,EAAKQ,EAAUZ,GAAeI,EAAKU,EAAaX,GAChDmB,EAEbb,EAAK8B,cAAajB,EAAab,EAAK8B,YAAYjB,IAGpD,IACE,IAAIkB,EAAe,IAAIC,SACrB,OACA,QACA,UACA,OACA,SACA,WACA,cACA,QACA,aACA,kBACAnB,GAGFhI,EAAWkJ,EACT5L,EACAsK,EACAzE,EACA6C,EACAY,EACAU,EACAE,EACA3B,EACAD,EACAE,GAGFc,EAAO,GAAK5G,EACZ,MAAMtC,GAEN,MADAJ,EAAK0L,OAAOI,MAAM,yCAA0CpB,GACtDtK,EAiBR,OAdAsC,EAASV,OAAS+I,EAClBrI,EAASkC,OAAS,KAClBlC,EAASoH,KAAOA,EAChBpH,EAAS4G,OAASA,EAClB5G,EAASgG,KAAOuC,EAASvI,EAAWsI,EAChCP,IAAQ/H,EAAS+H,QAAS,IACN,IAApBZ,EAAKa,aACPhI,EAASiI,OAAS,CAChB7J,KAAM4J,EACNxB,SAAUA,EACVc,SAAUA,IAIPtH,EAGT,SAAS4I,EAAWrH,EAAQZ,EAAK4H,GAC/B5H,EAAMH,EAAQiB,IAAIF,EAAQZ,GAC1B,IACI0I,EAASC,EADTC,EAAWnC,EAAKzG,GAEpB,QAAiBhB,IAAb4J,EAGF,OAAOC,EAFPH,EAAUzC,EAAO2C,GACjBD,EAAU,UAAYC,EAAW,KAGnC,IAAKhB,GAAUvC,EAAKoB,KAAM,CACxB,IAAIqC,EAAYzD,EAAKoB,KAAKzG,GAC1B,QAAkBhB,IAAd8J,EAGF,OADAH,EAAUI,EAAY/I,EADtB0I,EAAUrD,EAAKY,OAAO6C,IAEfD,EAAYH,EAASC,GAIhCA,EAAUI,EAAY/I,GACtB,IAAIT,EAAIM,EAAQlC,KAAKhB,EAAMuK,EAAc7B,EAAMrF,GAC/C,QAAUhB,IAANO,EAAiB,CACnB,IAAIyJ,EAAczC,GAAaA,EAAUvG,GACrCgJ,IACFzJ,EAAIM,EAAQoJ,UAAUD,EAAaxC,EAAK0C,YAClCF,EACA1C,EAAQ3I,KAAKhB,EAAMqM,EAAa3D,EAAMkB,EAAW3F,IAI3D,QAAU5B,IAANO,EAIF,OADA4J,EAAgBnJ,EAAKT,GACdsJ,EAAYtJ,EAAGoJ,GAHtBS,EAAepJ,GAOnB,SAAS+I,EAAY/I,EAAKT,GACxB,IAAI8J,EAAQpD,EAAOrI,OAGnB,OAFAqI,EAAOoD,GAAS9J,EAET,UADPkH,EAAKzG,GAAOqJ,GAId,SAASD,EAAepJ,UACfyG,EAAKzG,GAGd,SAASmJ,EAAgBnJ,EAAKT,GAC5B,IAAI8J,EAAQ5C,EAAKzG,GACjBiG,EAAOoD,GAAS9J,EAGlB,SAASsJ,EAAY5C,EAAQxI,GAC3B,MAAwB,iBAAVwI,GAAuC,kBAAVA,EACjC,CAAExI,KAAMA,EAAMkB,OAAQsH,EAAQqD,QAAQ,GACtC,CAAE7L,KAAMA,EAAM2J,OAAQnB,KAAYA,EAAOmB,QAGrD,SAASc,EAAWqB,GAClB,IAAIjE,EAAQoB,EAAa6C,GAKzB,YAJcvK,IAAVsG,IACFA,EAAQoB,EAAa6C,GAAY1D,EAASjI,OAC1CiI,EAASP,GAASiE,GAEb,UAAYjE,EAGrB,SAAS6C,EAAWhK,GAClB,cAAeA,GACb,IAAK,UACL,IAAK,SACH,MAAO,GAAKA,EACd,IAAK,SACH,OAAOyD,EAAKkE,eAAe3H,GAC7B,IAAK,SACH,GAAc,OAAVA,EAAgB,MAAO,OAC3B,IAAIqL,EAAWzE,EAAgB5G,GAC3BmH,EAAQsB,EAAa4C,GAKzB,YAJcxK,IAAVsG,IACFA,EAAQsB,EAAa4C,GAAY7C,EAAS/I,OAC1C+I,EAASrB,GAASnH,GAEb,UAAYmH,GAIzB,SAAS8C,EAAcqB,EAAM9K,EAAQ+K,EAAcC,GACjD,IAAkC,IAA9BhN,EAAKmC,MAAM8K,eAA0B,CACvC,IAAIC,EAAOJ,EAAKK,WAAWC,aAC3B,GAAIF,IAASA,EAAKG,MAAM,SAASC,GAC/B,OAAO9I,OAAOnD,UAAUkM,eAAevM,KAAK+L,EAAcO,KAE1D,MAAM,IAAIzM,MAAM,kDAAoDqM,EAAKM,KAAK,MAEhF,IAAIP,EAAiBH,EAAKK,WAAWF,eACrC,GAAIA,EAAgB,CAClB,IAAIQ,EAAQR,EAAejL,GAC3B,IAAKyL,EAAO,CACV,IAAIvJ,EAAU,8BAAgClE,EAAK0N,WAAWT,EAAerI,QAC7E,GAAiC,OAA7B5E,EAAKmC,MAAM8K,eACV,MAAM,IAAIpM,MAAMqD,GADmBlE,EAAK0L,OAAOI,MAAM5H,KAMhE,IAIIxB,EAJAiH,EAAUmD,EAAKK,WAAWxD,QAC1BgD,EAASG,EAAKK,WAAWR,OACzBgB,EAAQb,EAAKK,WAAWQ,MAG5B,GAAIhE,EACFjH,EAAWiH,EAAQ3I,KAAKhB,EAAMgC,EAAQ+K,EAAcC,QAC/C,GAAIW,EACTjL,EAAWiL,EAAM3M,KAAKhB,EAAMgC,EAAQ+K,EAAcC,IACtB,IAAxBnD,EAAKoD,gBAA0BjN,EAAKiN,eAAevK,GAAU,QAC5D,GAAIiK,EACTjK,EAAWiK,EAAO3L,KAAKhB,EAAMgN,EAAIF,EAAKQ,QAAStL,EAAQ+K,QAGvD,KADArK,EAAWoK,EAAKK,WAAWzK,UACZ,OAGjB,QAAiBL,IAAbK,EACF,MAAM,IAAI7B,MAAM,mBAAqBiM,EAAKQ,QAAU,sBAEtD,IAAI3E,EAAQuB,EAAYjJ,OAGxB,MAAO,CACLH,KAAM,aAAe6H,EACrBjG,SAJFwH,EAAYvB,GAASjG,MA4FvB,CAACkL,oBAAoB,GAAG7J,kBAAkB,EAAEgB,YAAY,EAAEkD,SAAS,GAAG4F,kBAAkB,GAAGC,6BAA6B,KAAKC,EAAE,CAAC,SAASrN,EAAQf,EAAOD,GAC1J,aAEA,IAAI4F,EAAM5E,EAAQ,UACd6H,EAAQ7H,EAAQ,mBAChBuE,EAAOvE,EAAQ,UACfsN,EAAetN,EAAQ,gBACvBuN,EAAWvN,EAAQ,wBAmBvB,SAASwC,EAAQyG,EAASjB,EAAMrF,GAE9B,IAAIiG,EAASrJ,KAAK4D,MAAMR,GACxB,GAAqB,iBAAViG,EAAoB,CAC7B,IAAIrJ,KAAK4D,MAAMyF,GACV,OAAOpG,EAAQlC,KAAKf,KAAM0J,EAASjB,EAAMY,GADtBA,EAASrJ,KAAK4D,MAAMyF,GAK9C,IADAA,EAASA,GAAUrJ,KAAK6D,SAAST,cACX2K,EACpB,OAAO1B,EAAUhD,EAAOtH,OAAQ/B,KAAKkC,MAAMoK,YACjCjD,EAAOtH,OACPsH,EAAO5G,UAAYzC,KAAKkD,SAASmG,GAG7C,IACItH,EAAQY,EAAGqB,EADXiK,EAAMC,EAAcnN,KAAKf,KAAMyI,EAAMrF,GAgBzC,OAdI6K,IACFlM,EAASkM,EAAIlM,OACb0G,EAAOwF,EAAIxF,KACXzE,EAASiK,EAAIjK,QAGXjC,aAAkBgM,EACpBpL,EAAIZ,EAAOU,UAAYiH,EAAQ3I,KAAKf,KAAM+B,EAAOA,OAAQ0G,OAAMrG,EAAW4B,QACtD5B,IAAXL,IACTY,EAAI0J,EAAUtK,EAAQ/B,KAAKkC,MAAMoK,YAC3BvK,EACA2H,EAAQ3I,KAAKf,KAAM+B,EAAQ0G,OAAMrG,EAAW4B,IAG7CrB,EAWT,SAASuL,EAAczF,EAAMrF,GAE3B,IAAItC,EAAIuE,EAAI8I,MAAM/K,GACdgL,EAAUC,EAAavN,GACvBkD,EAASsK,EAAYtO,KAAKuO,OAAO9F,EAAK1G,SAC1C,GAAwC,IAApCwC,OAAOiK,KAAK/F,EAAK1G,QAAQf,QAAgBoN,IAAYpK,EAAQ,CAC/D,IAAIyK,EAAKtK,EAAYiK,GACjB/E,EAASrJ,KAAK4D,MAAM6K,GACxB,GAAqB,iBAAVpF,EACT,OAuBN,SAA0BZ,EAAMrF,EAAKsL,GAEnC,IAAIT,EAAMC,EAAcnN,KAAKf,KAAMyI,EAAMrF,GACzC,GAAI6K,EAAK,CACP,IAAIlM,EAASkM,EAAIlM,OACbiC,EAASiK,EAAIjK,OACjByE,EAAOwF,EAAIxF,KACX,IAAIgG,EAAKzO,KAAKuO,OAAOxM,GAErB,OADI0M,IAAIzK,EAAS2K,EAAW3K,EAAQyK,IAC7BG,EAAe7N,KAAKf,KAAM0O,EAAW1K,EAAQjC,EAAQ0G,KAhClC1H,KAAKf,KAAMyI,EAAMY,EAAQvI,GAC5C,GAAIuI,aAAkB0E,EACtB1E,EAAO5G,UAAUzC,KAAKkD,SAASmG,GACpCZ,EAAOY,MACF,CAEL,MADAA,EAASrJ,KAAK6D,SAAS4K,cACDV,GAMpB,OAJA,GADK1E,EAAO5G,UAAUzC,KAAKkD,SAASmG,GAChCoF,GAAMtK,EAAYf,GACpB,MAAO,CAAErB,OAAQsH,EAAQZ,KAAMA,EAAMzE,OAAQA,GAC/CyE,EAAOY,EAKX,IAAKZ,EAAK1G,OAAQ,OAClBiC,EAASsK,EAAYtO,KAAKuO,OAAO9F,EAAK1G,SAExC,OAAO6M,EAAe7N,KAAKf,KAAMc,EAAGkD,EAAQyE,EAAK1G,OAAQ0G,IAtF3D/I,EAAOD,QAAUwD,GAETkB,YAAcA,EACtBlB,EAAQmB,SAAWkK,EACnBrL,EAAQiB,IAAMyK,EACd1L,EAAQ4L,IA0NR,SAAoB9M,GAClB,IAAI+M,EAAW3K,EAAYnE,KAAKuO,OAAOxM,IACnCgN,EAAU,CAACC,GAAIF,GACfG,EAAY,CAACD,GAAIV,EAAYQ,GAAU,IACvCnF,EAAY,GACZ5J,EAAOC,KAgCX,OA9BAgO,EAASjM,EAAQ,CAACmN,SAAS,GAAO,SAAStM,EAAKuM,EAASC,EAAYC,EAAeC,EAAexC,EAAcyC,GAC/G,GAAgB,KAAZJ,EAAJ,CACA,IAAIV,EAAK1O,EAAKwO,OAAO3L,GACjBoB,EAAS+K,EAAQM,GACjBjL,EAAW6K,EAAUI,GAAiB,IAAMC,EAIhD,QAHiBlN,IAAbmN,IACFnL,GAAY,KAA0B,iBAAZmL,EAAuBA,EAAWvK,EAAKwK,eAAeD,KAEjE,iBAANd,EAAgB,CACzBA,EAAKzK,EAASG,EAAYH,EAASqB,EAAIpC,QAAQe,EAAQyK,GAAMA,GAE7D,IAAIpF,EAAStJ,EAAK6D,MAAM6K,GAExB,GADqB,iBAAVpF,IAAoBA,EAAStJ,EAAK6D,MAAMyF,IAC/CA,GAAUA,EAAOtH,QACnB,IAAKuG,EAAM1F,EAAKyG,EAAOtH,QACrB,MAAM,IAAInB,MAAM,OAAS6N,EAAK,2CAC3B,GAAIA,GAAMtK,EAAYC,GAC3B,GAAa,KAATqK,EAAG,GAAW,CAChB,GAAI9E,EAAU8E,KAAQnG,EAAM1F,EAAK+G,EAAU8E,IACzC,MAAM,IAAI7N,MAAM,OAAS6N,EAAK,sCAChC9E,EAAU8E,GAAM7L,OAEhB7C,EAAK6D,MAAM6K,GAAMrK,EAIvB2K,EAAQI,GAAWnL,EACnBiL,EAAUE,GAAW/K,KAGhBuF,GA9PT1G,EAAQoJ,UAAYA,EACpBpJ,EAAQlB,OAASmM,EAkGjB,IAAIuB,EAAuBzK,EAAK0K,OAAO,CAAC,aAAc,oBAAqB,OAAQ,eAAgB,gBAEnG,SAASd,EAAeF,EAAW1K,EAAQjC,EAAQ0G,GAGjD,GADAiG,EAAUiB,SAAWjB,EAAUiB,UAAY,GACN,KAAjCjB,EAAUiB,SAASC,MAAM,EAAE,GAA/B,CAGA,IAFA,IAAIC,EAAQnB,EAAUiB,SAASjI,MAAM,KAE5BnH,EAAI,EAAGA,EAAIsP,EAAM7O,OAAQT,IAAK,CACrC,IAAIuP,EAAOD,EAAMtP,GACjB,GAAIuP,EAAM,CAGR,QAAe1N,KADfL,EAASA,EADT+N,EAAO9K,EAAK+K,iBAAiBD,KAEH,MAC1B,IAAIrB,EACJ,IAAKgB,EAAqBK,MACxBrB,EAAKzO,KAAKuO,OAAOxM,MACTiC,EAAS2K,EAAW3K,EAAQyK,IAChC1M,EAAOgB,MAAM,CACf,IAAIA,EAAO4L,EAAW3K,EAAQjC,EAAOgB,MACjCkL,EAAMC,EAAcnN,KAAKf,KAAMyI,EAAM1F,GACrCkL,IACFlM,EAASkM,EAAIlM,OACb0G,EAAOwF,EAAIxF,KACXzE,EAASiK,EAAIjK,UAMvB,YAAe5B,IAAXL,GAAwBA,IAAW0G,EAAK1G,OACnC,CAAEA,OAAQA,EAAQ0G,KAAMA,EAAMzE,OAAQA,QAD/C,GAKF,IAAIgM,EAAiBhL,EAAK0K,OAAO,CAC/B,OAAQ,SAAU,UAClB,YAAa,YACb,gBAAiB,gBACjB,WAAY,WACZ,UAAW,UACX,cAAe,aACf,WAAY,SAEd,SAASrD,EAAUtK,EAAQkO,GACzB,OAAc,IAAVA,SACU7N,IAAV6N,IAAiC,IAAVA,EAK7B,SAASC,EAAWnO,GAClB,IAAIoO,EACJ,GAAIC,MAAMC,QAAQtO,IAChB,IAAK,IAAIxB,EAAE,EAAGA,EAAEwB,EAAOf,OAAQT,IAE7B,GAAmB,iBADnB4P,EAAOpO,EAAOxB,MACkB2P,EAAWC,GAAO,OAAO,OAG3D,IAAK,IAAI7O,KAAOS,EAAQ,CACtB,GAAW,QAAPT,EAAe,OAAO,EAE1B,GAAmB,iBADnB6O,EAAOpO,EAAOT,MACkB4O,EAAWC,GAAO,OAAO,EAG7D,OAAO,EAnB2CD,CAAWnO,GACpDkO,EAsBX,SAASK,EAAUvO,GACjB,IAAeoO,EAAXI,EAAQ,EACZ,GAAIH,MAAMC,QAAQtO,IAChB,IAAK,IAAIxB,EAAE,EAAGA,EAAEwB,EAAOf,OAAQT,IAG7B,GADmB,iBADnB4P,EAAOpO,EAAOxB,MACegQ,GAASD,EAAUH,IAC5CI,GAASC,EAAAA,EAAU,OAAOA,EAAAA,OAGhC,IAAK,IAAIlP,KAAOS,EAAQ,CACtB,GAAW,QAAPT,EAAe,OAAOkP,EAAAA,EAC1B,GAAIR,EAAe1O,GACjBiP,SAIA,GADmB,iBADnBJ,EAAOpO,EAAOT,MACeiP,GAASD,EAAUH,GAAQ,GACpDI,GAASC,EAAAA,EAAU,OAAOA,EAAAA,EAIpC,OAAOD,EA1CgBD,CAAUvO,IAAWkO,OAAvC,GA8CP,SAAS3B,EAAYG,EAAIgC,GAGvB,OAFkB,IAAdA,IAAqBhC,EAAKtK,EAAYsK,IAEnCJ,EADChJ,EAAI8I,MAAMM,IAKpB,SAASJ,EAAavN,GACpB,OAAOuE,EAAIqL,UAAU5P,GAAG4G,MAAM,KAAK,GAAK,IAI1C,IAAIiJ,EAAsB,QAC1B,SAASxM,EAAYsK,GACnB,OAAOA,EAAKA,EAAGmC,QAAQD,EAAqB,IAAM,GAIpD,SAAShC,EAAW3K,EAAQyK,GAE1B,OADAA,EAAKtK,EAAYsK,GACVpJ,EAAIpC,QAAQe,EAAQyK,KA6C3B,CAACoC,eAAe,EAAE7I,SAAS,GAAG4F,kBAAkB,GAAGkD,uBAAuB,GAAGC,SAAS,KAAKC,EAAE,CAAC,SAASvQ,EAAQf,EAAOD,GACxH,aAEA,IAAIwR,EAAcxQ,EAAQ,YACtBiP,EAASjP,EAAQ,UAAUiP,OAE/BhQ,EAAOD,QAAU,WACf,IAAI4K,EAAQ,CACV,CAAE6G,KAAM,SACNC,MAAO,CAAE,CAAEC,QAAW,CAAC,qBACd,CAAEC,QAAW,CAAC,qBAAuB,aAAc,WAC9D,CAAEH,KAAM,SACNC,MAAO,CAAE,YAAa,YAAa,UAAW,WAChD,CAAED,KAAM,QACNC,MAAO,CAAE,WAAY,WAAY,QAAS,WAAY,gBACxD,CAAED,KAAM,SACNC,MAAO,CAAE,gBAAiB,gBAAiB,WAAY,eAAgB,gBAC9D,CAAEG,WAAc,CAAC,uBAAwB,wBACpD,CAAEH,MAAO,CAAE,OAAQ,QAAS,OAAQ,MAAO,QAAS,QAAS,QAAS,QAGpEI,EAAM,CAAE,OAAQ,YA4CpB,OAnCAlH,EAAMmH,IAAM9B,EAAO6B,GACnBlH,EAAMoH,MAAQ/B,EAFF,CAAE,SAAU,UAAW,SAAU,QAAS,SAAU,UAAW,SAI3ErF,EAAMqH,QAAQ,SAAUC,GACtBA,EAAMR,MAAQQ,EAAMR,MAAMS,IAAI,SAAUvE,GACtC,IAAIwE,EACJ,GAAsB,iBAAXxE,EAAqB,CAC9B,IAAI/L,EAAMiD,OAAOiK,KAAKnB,GAAS,GAC/BwE,EAAexE,EAAQ/L,GACvB+L,EAAU/L,EACVuQ,EAAaH,QAAQ,SAAUI,GAC7BP,EAAIQ,KAAKD,GACTzH,EAAMmH,IAAIM,IAAK,IASnB,OANAP,EAAIQ,KAAK1E,GACEhD,EAAMmH,IAAInE,GAAW,CAC9BA,QAASA,EACTxM,KAAMoQ,EAAY5D,GAClB2E,WAAYH,KAKhBxH,EAAMmH,IAAIS,SAAW,CACnB5E,QAAS,WACTxM,KAAMoQ,EAAYgB,UAGhBN,EAAMT,OAAM7G,EAAMoH,MAAME,EAAMT,MAAQS,KAG5CtH,EAAM6H,SAAWxC,EAAO6B,EAAIY,OAxCb,CACb,UAAW,MAAO,KAAM,QAAS,SAAU,QAC3C,cAAe,UAAW,cAC1B,WAAY,WAAY,YACxB,mBAAoB,kBACpB,kBAAmB,OAAQ,UAoC7B9H,EAAM+H,OAAS,GAER/H,IAGP,CAACgI,WAAW,GAAGrK,SAAS,KAAKsK,EAAE,CAAC,SAAS7R,EAAQf,EAAOD,GAC1D,aAEA,IAAIuF,EAAOvE,EAAQ,UAEnBf,EAAOD,QAEP,SAAsB8S,GACpBvN,EAAKc,KAAKyM,EAAKvS,QAGf,CAACgI,SAAS,KAAKwK,EAAE,CAAC,SAAS/R,EAAQf,EAAOD,GAC5C,aAIAC,EAAOD,QAAU,SAAoBuG,GAKnC,IAJA,IAGIzE,EAHAP,EAAS,EACTyR,EAAMzM,EAAIhF,OACV0R,EAAM,EAEHA,EAAMD,GACXzR,IAEa,QADbO,EAAQyE,EAAI2M,WAAWD,OACAnR,GAAS,OAAUmR,EAAMD,GAGtB,QAAX,OADblR,EAAQyE,EAAI2M,WAAWD,MACSA,IAGpC,OAAO1R,IAGP,IAAI4R,GAAG,CAAC,SAASnS,EAAQf,EAAOD,GAClC,aAsCA,SAASoT,EAAcC,EAAUC,EAAMC,GACrC,IAAIC,EAAQD,EAAS,QAAU,QAC3BE,EAAMF,EAAS,OAAS,OACxBG,EAAKH,EAAS,IAAM,GACpBI,EAAMJ,EAAS,GAAK,IACxB,OAAQF,GACN,IAAK,OAAQ,OAAOC,EAAOE,EAAQ,OACnC,IAAK,QAAS,OAAOE,EAAK,iBAAmBJ,EAAO,IACpD,IAAK,SAAU,MAAO,IAAMI,EAAKJ,EAAOG,EAClB,UAAYH,EAAOE,EAAQ,WAAaC,EACxCE,EAAM,iBAAmBL,EAAO,KACtD,IAAK,UAAW,MAAO,WAAaA,EAAOE,EAAQ,WAAaC,EACzCE,EAAM,IAAML,EAAO,QACnBG,EAAMH,EAAOE,EAAQF,EAAO,IACnD,QAAS,MAAO,UAAYA,EAAOE,EAAQ,IAAMH,EAAW,KAjDhEpT,EAAOD,QAAU,CACfqG,KA2BF,SAAcxF,EAAG+S,GAEf,IAAK,IAAI/R,KADT+R,EAAKA,GAAM,GACK/S,EAAG+S,EAAG/R,GAAOhB,EAAEgB,GAC/B,OAAO+R,GA7BPR,cAAeA,EACfS,eAmDF,SAAwBC,EAAWR,GACjC,OAAQQ,EAAUvS,QAChB,KAAK,EAAG,OAAO6R,EAAcU,EAAU,GAAIR,GAAM,GACjD,QACE,IAAIlS,EAAO,GACP4Q,EAAQ/B,EAAO6D,GASnB,IAAK,IAAIlT,KARLoR,EAAM+B,OAAS/B,EAAMgC,SACvB5S,EAAO4Q,EAAMiC,KAAO,IAAK,KAAOX,EAAO,OACvClS,GAAQ,UAAYkS,EAAO,wBACpBtB,EAAMiC,YACNjC,EAAM+B,aACN/B,EAAMgC,QAEXhC,EAAMkC,eAAelC,EAAMmC,QACjBnC,EACZ5Q,IAASA,EAAO,OAAS,IAAOgS,EAAcxS,EAAG0S,GAAM,GAEzD,OAAOlS,IAnEXgT,cAyEF,SAAuBC,EAAmBP,GACxC,GAAInD,MAAMC,QAAQkD,GAAY,CAE5B,IADA,IAAI9B,EAAQ,GACHlR,EAAE,EAAGA,EAAEgT,EAAUvS,OAAQT,IAAK,CACrC,IAAIF,EAAIkT,EAAUhT,GACdwT,EAAgB1T,GAAIoR,EAAMA,EAAMzQ,QAAUX,EACf,UAAtByT,GAAuC,UAANzT,IAAeoR,EAAMA,EAAMzQ,QAAUX,GAEjF,GAAIoR,EAAMzQ,OAAQ,OAAOyQ,MACpB,CAAA,GAAIsC,EAAgBR,GACzB,MAAO,CAACA,GACH,GAA0B,UAAtBO,GAA+C,UAAdP,EAC1C,MAAO,CAAC,WApFV7D,OAAQA,EACRsE,YAAaA,EACbC,aAAcA,EACd3L,MAAO7H,EAAQ,mBACf4H,WAAY5H,EAAQ,gBACpByT,cA+GF,SAAuBlO,EAAKmO,GAC1BA,GAAW,SACX,IAAIlO,EAAUD,EAAIE,MAAM,IAAI6B,OAAOoM,EAAS,MAC5C,OAAOlO,EAAUA,EAAQjF,OAAS,GAjHlCoT,WAqHF,SAAoBpO,EAAKmO,EAASE,GAGhC,OAFAF,GAAW,WACXE,EAAOA,EAAKzD,QAAQ,MAAO,QACpB5K,EAAI4K,QAAQ,IAAI7I,OAAOoM,EAAS,KAAME,EAAO,OAvHpDC,YA8HF,SAAqBC,GACnB,OAAOA,EAAI3D,QAAQ4D,EAAY,IACpB5D,QAAQ6D,EAAkB,IAC1B7D,QAAQ8D,EAAoB,eAhIvCC,iBA8IF,SAA0BJ,EAAKK,GAC7B,IAAI3O,EAAUsO,EAAIrO,MAAM2O,GACpB5O,GAA6B,GAAlBA,EAAQjF,SACrBuT,EAAMK,EACEL,EAAI3D,QAAQkE,EAAqB,IAC7BlE,QAAQmE,EAAcC,GAC1BT,EAAI3D,QAAQqE,EAAe,IACvBrE,QAAQsE,EAAcC,IAIpC,OADAlP,EAAUsO,EAAIrO,MAAMkP,KACe,IAAnBnP,EAAQjF,OACjBuT,EAAI3D,QAAQyE,EAAiB,IADSd,GAxJ7Ce,eA6JF,SAAwBvT,EAAQoP,GAC9B,GAAqB,kBAAVpP,EAAqB,OAAQA,EACxC,IAAK,IAAIT,KAAOS,EAAQ,GAAIoP,EAAM7P,GAAM,OAAO,GA9J/CiU,qBAkKF,SAA8BxT,EAAQoP,EAAOqE,GAC3C,GAAqB,kBAAVzT,EAAqB,OAAQA,GAA2B,OAAjByT,EAClD,IAAK,IAAIlU,KAAOS,EAAQ,GAAIT,GAAOkU,GAAiBrE,EAAM7P,GAAM,OAAO,GAnKvEmU,mBAuKF,SAA4B1T,EAAQoP,GAClC,GAAqB,kBAAVpP,EAAqB,OAChC,IAAK,IAAIT,KAAOS,EAAQ,IAAKoP,EAAM7P,GAAM,OAAOA,GAxKhD4H,eAAgBA,EAChBwM,YAgLF,SAAqBC,EAAatB,EAAMuB,EAAcC,GAIpD,OAAOC,EAAUH,EAHNC,EACG,SAAavB,GAAQwB,EAAW,GAAK,8CACpCA,EAAW,SAAaxB,EAAO,SAAa,YAAiBA,EAAO,cAlLnF0B,QAuLF,SAAiBJ,EAAaK,EAAMJ,GAClC,IAAIK,EACU/M,EADH0M,EACkB,IAAMM,EAAkBF,GACxBhC,EAAYgC,IACzC,OAAOF,EAAUH,EAAaM,IA1L9BE,QAgMF,SAAiBC,EAAOC,EAAKC,GAC3B,IAAIC,EAAIC,EAAazD,EAAM9M,EAC3B,GAAc,KAAVmQ,EAAc,MAAO,WACzB,GAAgB,KAAZA,EAAM,GAAW,CACnB,IAAK3Q,EAAaoC,KAAKuO,GAAQ,MAAM,IAAIxV,MAAM,yBAA2BwV,GAC1EI,EAAcJ,EACdrD,EAAO,eACF,CAEL,KADA9M,EAAUmQ,EAAMlQ,MAAMP,IACR,MAAM,IAAI/E,MAAM,yBAA2BwV,GAGzD,GAFAG,GAAMtQ,EAAQ,GAEK,MADnBuQ,EAAcvQ,EAAQ,IACE,CACtB,GAAUoQ,GAANE,EAAW,MAAM,IAAI3V,MAAM,gCAAkC2V,EAAK,gCAAkCF,GACxG,OAAOC,EAAMD,EAAME,GAGrB,GAASF,EAALE,EAAU,MAAM,IAAI3V,MAAM,sBAAwB2V,EAAK,gCAAkCF,GAE7F,GADAtD,EAAO,QAAWsD,EAAME,GAAO,KAC1BC,EAAa,OAAOzD,EAK3B,IAFA,IAAIsB,EAAOtB,EACP0D,EAAWD,EAAY9O,MAAM,KACxBnH,EAAE,EAAGA,EAAEkW,EAASzV,OAAQT,IAAK,CACpC,IAAImW,EAAUD,EAASlW,GACnBmW,IACF3D,GAAQiB,EAAY2C,EAAoBD,IACxCrC,GAAQ,OAAStB,GAGrB,OAAOsB,GA9NPtE,iBAwOF,SAA0B/J,GACxB,OAAO2Q,EAAoBC,mBAAmB5Q,KAxO9C2Q,oBAAqBA,EACrBnH,eA2OF,SAAwBxJ,GACtB,OAAO6Q,mBAAmBX,EAAkBlQ,KA3O5CkQ,kBAAmBA,GAoDrB,IAAInC,EAAkBrE,EAAO,CAAE,SAAU,SAAU,UAAW,UAAW,SAkBzE,SAASA,EAAOlG,GAEd,IADA,IAAIsN,EAAO,GACFvW,EAAE,EAAGA,EAAEiJ,EAAIxI,OAAQT,IAAKuW,EAAKtN,EAAIjJ,KAAM,EAChD,OAAOuW,EAIT,IAAIC,EAAa,wBACbC,EAAe,QACnB,SAAShD,EAAY1S,GACnB,MAAqB,iBAAPA,EACJ,IAAMA,EAAM,IACZyV,EAAWlP,KAAKvG,GACd,IAAMA,EACN,KAAO2S,EAAa3S,GAAO,KAIzC,SAAS2S,EAAajO,GACpB,OAAOA,EAAI4K,QAAQoG,EAAc,QACtBpG,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OACfA,QAAQ,MAAO,OAkB5B,IAAI4D,EAAa,gBACbC,EAAmB,uCACnBC,EAAqB,8CAQzB,IAAIG,EAAgB,eAChBI,EAAgB,kEAChBH,EAAsB,uCACtBI,EAAe,uBACfC,EAAc,uCACdJ,EAAe,gFACfC,EAAoB,eACpBI,EAAkB,qCAClBC,EAAkB,iDAoCtB,SAASnM,EAAelD,GACtB,MAAO,IAAOiO,EAAajO,GAAO,IAoBpC,IAAIP,EAAe,sBACfE,EAAwB,mCAoC5B,SAASmQ,EAAWnV,EAAGsW,GACrB,MAAS,MAALtW,EAAkBsW,GACdtW,EAAI,MAAQsW,GAAGrG,QAAQ,UAAW,IAc5C,SAASsF,EAAkBlQ,GACzB,OAAOA,EAAI4K,QAAQ,KAAM,MAAMA,QAAQ,MAAO,MAIhD,SAAS+F,EAAoB3Q,GAC3B,OAAOA,EAAI4K,QAAQ,MAAO,KAAKA,QAAQ,MAAO,OAG9C,CAACsG,eAAe,EAAEtJ,kBAAkB,KAAKuJ,GAAG,CAAC,SAAS1W,EAAQf,EAAOD,GACvE,aAEA,IAAI2X,EAAW,CACb,aACA,UACA,mBACA,UACA,mBACA,YACA,YACA,UACA,kBACA,WACA,WACA,cACA,gBACA,gBACA,WACA,uBACA,OACA,SACA,SAGF1X,EAAOD,QAAU,SAAU4X,EAAYC,GACrC,IAAK,IAAI/W,EAAE,EAAGA,EAAE+W,EAAqBtW,OAAQT,IAAK,CAChD8W,EAAaE,KAAKpJ,MAAMoJ,KAAKC,UAAUH,IACvC,IAEII,EAFAhB,EAAWa,EAAqB/W,GAAGmH,MAAM,KACzCwK,EAAWmF,EAEf,IAAKI,EAAE,EAAGA,EAAEhB,EAASzV,OAAQyW,IAC3BvF,EAAWA,EAASuE,EAASgB,IAE/B,IAAKA,EAAE,EAAGA,EAAEL,EAASpW,OAAQyW,IAAK,CAChC,IAAInW,EAAM8V,EAASK,GACf1V,EAASmQ,EAAS5Q,GAClBS,IACFmQ,EAAS5Q,GAAO,CACdoW,MAAO,CACL3V,EACA,CAAEgB,KAAM,oFAOlB,OAAOsU,IAGP,IAAIM,GAAG,CAAC,SAASlX,EAAQf,EAAOD,GAClC,aAEA,IAAI4X,EAAa5W,EAAQ,oCAEzBf,EAAOD,QAAU,CACfmY,IAAK,0EACLC,YAAa,CACXC,YAAaT,EAAWQ,YAAYC,aAEtC5G,KAAM,SACN/D,aAAc,CACZpL,OAAQ,CAAC,YACTqU,MAAO,CAAC,YACR2B,WAAY,CAAC,UACbvK,MAAO,CAACwK,IAAK,CAACC,SAAU,CAAC,YAE3B3G,WAAY,CACVJ,KAAMmG,EAAW/F,WAAWJ,KAC5BnP,OAAQ,CAACmP,KAAM,WACf6G,WAAY,CAAC7G,KAAM,WACnB/D,aAAc,CACZ+D,KAAM,QACNgH,MAAO,CAAChH,KAAM,WAEhBmG,WAAY,CAACnG,KAAM,UACnBiH,UAAW,CAACjH,KAAM,WAClB1D,MAAO,CAAC0D,KAAM,WACdkF,MAAO,CAAClF,KAAM,WACd0D,MAAO,CAAC1D,KAAM,WACdvM,OAAQ,CACN+S,MAAO,CACL,CAACxG,KAAM,WACP,CAACkH,MAAO,aAMd,CAACC,mCAAmC,KAAKC,GAAG,CAAC,SAAS7X,EAAQf,EAAOD,GACvE,aACAC,EAAOD,QAAU,SAAyBsN,EAAIwL,GAC5C,IAUEC,EAVEjE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UAEzB5C,EAAQ,QAAUuC,GAAY,IAC9BM,EAAUlM,EAAGnD,KAAKwM,OAASvT,GAAWA,EAAQuT,MAIhDoC,EAFES,GACF1E,GAAO,cAAgB,EAAS,MAASxH,EAAG/H,KAAKmR,QAAQtT,EAAQuT,MAAOuC,EAAU5L,EAAGmM,aAAgB,KACtF,SAAWT,GAEX5V,EAEjB,IAAIsW,EAAqB,WAAZZ,EACXa,EAAoBD,EAAS,mBAAqB,mBAClDE,EAActM,EAAGhL,OAAOqX,GACxBE,EAAcvM,EAAGnD,KAAKwM,OAASiD,GAAeA,EAAYjD,MAC1DmD,EAAMJ,EAAS,IAAM,IACrBK,EAASL,EAAS,IAAM,IACxBM,OAAgBrX,EAClB,GAAIkX,EAAa,CACf,IAAII,EAAmB3M,EAAG/H,KAAKmR,QAAQkD,EAAYjD,MAAOuC,EAAU5L,EAAGmM,aACrES,EAAa,YAAclB,EAC3BmB,EAAY,WAAanB,EACzBoB,EAAgB,eAAiBpB,EAEjCqB,EAAS,QADTC,EAAU,KAAOtB,GACY,OAC/BlE,GAAO,kBAAoB,EAAS,MAAQ,EAAqB,KAGjE,IACIyF,EADAP,EAAgBL,GAChBY,EAAaA,GAAc,IACpBjI,KAHXwC,GAAO,QAAU,EAAe,SAAW,EAAc,cADzDmF,EAAmB,aAAejB,GAC2D,SAAW,EAAc,oBAAwB,EAAc,sBAA0B,EAAc,oBAIpMlE,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,iBAAoBkF,GAAiB,mBAAqB,oCAA0C1M,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,kBACjK,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,gBAAmB,EAAsB,wBAE9CxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EACZA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,gBACH0E,IACF1E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAEhFA,GAAO,IAAM,EAAc,qBAAyB,EAAe,MAAQ,EAAiB,qBAAuB,EAAqB,IAAM,EAAQ,KAAO,EAAiB,OAAS,EAAU,IAAM,EAAW,KAAO,EAAqB,MAAQ,EAAU,IAAM,EAAW,IAAM,EAAiB,WAAa,EAAe,MAAQ,EAAqB,gBAAkB,EAAU,IAAM,EAAW,KAAO,EAAiB,MAAQ,EAAU,IAAM,EAAW,IAAM,EAAiB,SAAW,EAAU,QAAU,EAAU,aAAe,EAAS,MAAQ,EAAe,OAAU,EAAQ,QAAY,EAAQ,YAC9kBnS,IAAZS,IAEFiW,EAAiB/L,EAAG5B,cAAgB,KADpCsO,EAAgBL,GAEhBZ,EAAekB,EACfT,EAAUK,OAEP,CAEHQ,EAASP,EACX,IAFIM,EAAsC,iBAAfR,IAENJ,EAAS,CAC5B,IAAIc,EAAU,IAAOD,EAAS,IAC9BvF,GAAO,SACH0E,IACF1E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAEhFA,GAAO,MAAQ,EAAiB,qBAAuB,EAAgB,IAAM,EAAQ,KAAO,EAAiB,MAAQ,EAAU,IAAM,EAAW,KAAO,EAAgB,MAAQ,EAAU,IAAM,EAAW,IAAM,EAAiB,SAAW,EAAU,QAAU,EAAU,WACrQ,CACDsF,QAA6BzX,IAAZS,GACnB8W,GAAa,EAEbb,EAAiB/L,EAAG5B,cAAgB,KADpCsO,EAAgBL,GAEhBZ,EAAea,EACfG,GAAU,MAENK,IAAerB,EAAe+B,KAAKpB,EAAS,MAAQ,OAAOE,EAAaxW,IACxEwW,MAAiBQ,GAAgBrB,IACnCmB,GAAa,EAEbb,EAAiB/L,EAAG5B,cAAgB,KADpCsO,EAAgBL,GAEhBI,GAAU,MAEVG,GAAa,EACbG,GAAU,MAGVC,EAAU,IAAOD,EAAS,IAC9BvF,GAAO,SACH0E,IACF1E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAEhFA,GAAO,IAAM,EAAU,IAAM,EAAW,IAAM,EAAiB,OAAS,EAAU,QAAU,EAAU,QAG1GkF,EAAgBA,GAAiBlB,GAC7ByB,EAAaA,GAAc,IACpBjI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,iBAAoBkF,GAAiB,UAAY,oCAA0C1M,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,4BAA8B,EAAY,YAAc,EAAiB,gBAAkB,EAAe,OAClQ,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,0BAA6B,EAAW,IAE7CA,GADE0E,EACK,OAAU,EAEL,EAAiB,KAG7BlM,EAAGnD,KAAKuQ,UACV5F,GAAO,eAELA,GADE0E,EACK,kBAAoB,EAEpB,GAAK,EAEd1E,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAEL6F,EAAQ7F,EAgBZ,OAfAA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,MACHwE,IACFxE,GAAO,YAEFA,IAGP,IAAIiG,GAAG,CAAC,SAAS/Z,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA8BsN,EAAIwL,GACjD,IAUEC,EAVEjE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UAEzB5C,EAAQ,QAAUuC,GAAY,IAC9BM,EAAUlM,EAAGnD,KAAKwM,OAASvT,GAAWA,EAAQuT,MAIhDoC,EAFES,GACF1E,GAAO,cAAgB,EAAS,MAASxH,EAAG/H,KAAKmR,QAAQtT,EAAQuT,MAAOuC,EAAU5L,EAAGmM,aAAgB,KACtF,SAAWT,GAEX5V,EAGjB0R,GAAO,QACH0E,IACF1E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAGhF,IAAIkF,EAAgBlB,EAChByB,EAAaA,GAAc,GAC/BA,EAAWjI,KAHXwC,GAAO,IAAM,EAAU,YALD,YAAZgE,EAAyB,IAAM,KAKG,IAAM,EAAiB,QAInEhE,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,iBAAoBkF,GAAiB,eAAiB,oCAA0C1M,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,uBAAyB,EAAiB,OACvM,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,gCAELA,GADc,YAAZgE,EACK,OAEA,QAEThE,GAAO,SAELA,GADE0E,EACK,OAAU,EAAiB,OAE3B,GAAK,EAEd1E,GAAO,YAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,eAELA,GADE0E,EACK,kBAAoB,EAEpB,GAAK,EAEd1E,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EAgBZ,OAfAA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,KACHwE,IACFxE,GAAO,YAEFA,IAGP,IAAIkG,GAAG,CAAC,SAASha,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA+BsN,EAAIwL,GAClD,IAUEC,EAVEjE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UAEzB5C,EAAQ,QAAUuC,GAAY,IAC9BM,EAAUlM,EAAGnD,KAAKwM,OAASvT,GAAWA,EAAQuT,MAIhDoC,EAFES,GACF1E,GAAO,cAAgB,EAAS,MAASxH,EAAG/H,KAAKmR,QAAQtT,EAAQuT,MAAOuC,EAAU5L,EAAGmM,aAAgB,KACtF,SAAWT,GAEX5V,EAGjB0R,GAAO,QACH0E,IACF1E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAG9EA,IADsB,IAApBxH,EAAGnD,KAAK8Q,QACH,IAAM,EAAU,WAEhB,eAAiB,EAAU,KAGpC,IAAIjB,EAAgBlB,EAChByB,EAAaA,GAAc,GAC/BA,EAAWjI,KAHXwC,GAAO,KAVe,aAAZgE,EAA0B,IAAM,KAUrB,IAAM,EAAiB,QAI5ChE,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,iBAAoBkF,GAAiB,gBAAkB,oCAA0C1M,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,uBAAyB,EAAiB,OACxM,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,8BAELA,GADc,aAAZgE,EACK,SAEA,UAEThE,GAAO,SAELA,GADE0E,EACK,OAAU,EAAiB,OAE3B,GAAK,EAEd1E,GAAO,iBAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,eAELA,GADE0E,EACK,kBAAoB,EAEpB,GAAK,EAEd1E,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EAgBZ,OAfAA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,KACHwE,IACFxE,GAAO,YAEFA,IAGP,IAAIoG,GAAG,CAAC,SAASla,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAmCsN,EAAIwL,GACtD,IAUEC,EAVEjE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UAEzB5C,EAAQ,QAAUuC,GAAY,IAC9BM,EAAUlM,EAAGnD,KAAKwM,OAASvT,GAAWA,EAAQuT,MAIhDoC,EAFES,GACF1E,GAAO,cAAgB,EAAS,MAASxH,EAAG/H,KAAKmR,QAAQtT,EAAQuT,MAAOuC,EAAU5L,EAAGmM,aAAgB,KACtF,SAAWT,GAEX5V,EAGjB0R,GAAO,QACH0E,IACF1E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAGhF,IAAIkF,EAAgBlB,EAChByB,EAAaA,GAAc,GAC/BA,EAAWjI,KAHXwC,GAAO,gBAAkB,EAAU,aALb,iBAAZgE,EAA8B,IAAM,KAKW,IAAM,EAAiB,QAIhFhE,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,iBAAoBkF,GAAiB,oBAAsB,oCAA0C1M,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,uBAAyB,EAAiB,OAC5M,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,gCAELA,GADc,iBAAZgE,EACK,OAEA,QAEThE,GAAO,SAELA,GADE0E,EACK,OAAU,EAAiB,OAE3B,GAAK,EAEd1E,GAAO,iBAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,eAELA,GADE0E,EACK,kBAAoB,EAEpB,GAAK,EAEd1E,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EAgBZ,OAfAA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,KACHwE,IACFxE,GAAO,YAEFA,IAGP,IAAIqG,GAAG,CAAC,SAASna,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAwBsN,EAAIwL,GAC3C,IAAIhE,EAAM,IACN1R,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB6B,EAAM9N,EAAG/H,KAAKc,KAAKiH,GACnB+N,EAAiB,GACrBD,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC3BsC,EAAiBH,EAAI7W,OACvBiX,GAAmB,EACjBC,EAAOrY,EACX,GAAIqY,EAGF,IAFA,IAAIC,EAAMC,GAAM,EACdC,EAAKH,EAAKla,OAAS,EACdoa,EAAKC,GACVF,EAAOD,EAAKE,GAAM,IACbrO,EAAGnD,KAAK0R,eAAgC,iBAARH,GAA+C,EAA3B5W,OAAOiK,KAAK2M,GAAMna,OAAa+L,EAAG/H,KAAKsQ,eAAe6F,EAAMpO,EAAG1C,MAAMmH,QAC5HyJ,GAAmB,EACnBJ,EAAI9Y,OAASoZ,EACbN,EAAI3P,WAAa2N,EAAc,IAAMuC,EAAK,IAC1CP,EAAI1P,cAAgB2N,EAAiB,IAAMsC,EAC3C7G,GAAO,KAAQxH,EAAGtK,SAASoY,GAAQ,IACnCA,EAAI7W,OAASgX,EACTjC,IACFxE,GAAO,QAAU,EAAe,OAChCuG,GAAkB,MAa1B,OARI/B,IAEAxE,GADE0G,EACK,gBAEA,IAAOH,EAAelL,MAAM,GAAI,GAAM,KAGjD2E,EAAMxH,EAAG/H,KAAKsP,YAAYC,KAI1B,IAAIgH,GAAG,CAAC,SAAS9a,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAwBsN,EAAIwL,GAC3C,IAAIhE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBgD,EAAQ,SAAWhD,EACnBoC,EAAM9N,EAAG/H,KAAKc,KAAKiH,GACnB+N,EAAiB,GACrBD,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAI/B,GAHqB7V,EAAQuK,MAAM,SAAS+N,GAC1C,OAAQpO,EAAGnD,KAAK0R,eAAgC,iBAARH,GAA+C,EAA3B5W,OAAOiK,KAAK2M,GAAMna,OAAa+L,EAAG/H,KAAKsQ,eAAe6F,EAAMpO,EAAG1C,MAAMmH,OAE/G,CAClB,IAAIwJ,EAAiBH,EAAI7W,OACzBuQ,GAAO,QAAU,EAAU,kBAAoB,EAAW,cAC1D,IAAImH,EAAgB3O,EAAGuN,cACvBvN,EAAGuN,cAAgBO,EAAIP,eAAgB,EACvC,IAAIY,EAAOrY,EACX,GAAIqY,EAGF,IAFA,IAAIC,EAAMC,GAAM,EACdC,EAAKH,EAAKla,OAAS,EACdoa,EAAKC,GACVF,EAAOD,EAAKE,GAAM,GAClBP,EAAI9Y,OAASoZ,EACbN,EAAI3P,WAAa2N,EAAc,IAAMuC,EAAK,IAC1CP,EAAI1P,cAAgB2N,EAAiB,IAAMsC,EAC3C7G,GAAO,KAAQxH,EAAGtK,SAASoY,GAAQ,IACnCA,EAAI7W,OAASgX,EACbzG,GAAO,IAAM,EAAW,MAAQ,EAAW,OAAS,EAAe,UAAY,EAAW,OAC1FuG,GAAkB,IAGtB/N,EAAGuN,cAAgBO,EAAIP,cAAgBoB,EACvCnH,GAAO,IAAM,EAAmB,SAAW,EAAW,sBAC9B,IAApBxH,EAAGkN,cACL1F,GAAO,sDAAyExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,kBACtI,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,oDAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACFxH,EAAGuN,eAAiBvB,IAGrBxE,GADExH,EAAG6H,MACE,wCAEA,8CAGXL,GAAO,uBAAyB,EAAU,iCAAmC,EAAU,sBAAwB,EAAU,4BACrHxH,EAAGnD,KAAKoP,YACVzE,GAAO,OAETA,EAAMxH,EAAG/H,KAAKsP,YAAYC,QAEtBwE,IACFxE,GAAO,iBAGX,OAAOA,IAGP,IAAIoH,GAAG,CAAC,SAASlb,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA0BsN,EAAIwL,GAC7C,IAAIhE,EAAM,IAENuE,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAE1CtG,EAAWlF,EAAG/H,KAAKkE,eAHT6D,EAAGhL,OAAOwW,IASxB,OALyB,IAArBxL,EAAGnD,KAAKqI,SACVsC,GAAO,gBAAkB,EAAa,KACF,mBAApBxH,EAAGnD,KAAKqI,WACxBsC,GAAO,wBAA0B,EAAa,KAAQxH,EAAG/H,KAAKkE,eAAe4P,GAAmB,4BAE3FvE,IAGP,IAAIqH,GAAG,CAAC,SAASnb,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAwBsN,EAAIwL,GAC3C,IAAIhE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBQ,EAAUlM,EAAGnD,KAAKwM,OAASvT,GAAWA,EAAQuT,MAE9C6C,IACF1E,GAAO,cAAgB,EAAS,MAASxH,EAAG/H,KAAKmR,QAAQtT,EAAQuT,MAAOuC,EAAU5L,EAAGmM,aAAgB,MAKlGD,IACH1E,GAAO,cAAgB,EAAS,qBAAuB,EAAgB,KAGzE,IAAIyF,EAAaA,GAAc,GAC/BA,EAAWjI,KAFXwC,GAAO,OAAS,EAAW,YAAc,EAAU,WAAa,EAAS,WAAa,EAAW,UAGjGA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,sDAAyExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,oCAAsC,EAAS,OACrL,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,8CAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EAgBZ,OAfAA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,KACHwE,IACFxE,GAAO,YAEFA,IAGP,IAAIsH,GAAG,CAAC,SAASpb,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA2BsN,EAAIwL,GAC9C,IAAIhE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBgD,EAAQ,SAAWhD,EACnBoC,EAAM9N,EAAG/H,KAAKc,KAAKiH,GAEvB8N,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC3BoD,EAAO,IAAMrD,EACfsD,EAAWlB,EAAIjC,UAAY7L,EAAG6L,UAAY,EAC1CoD,EAAY,OAASD,EACrBf,EAAiBjO,EAAG/I,OACpBiY,EAAmBlP,EAAGnD,KAAK0R,eAAmC,iBAAXzY,GAAqD,EAA9B0B,OAAOiK,KAAK3L,GAAS7B,OAAa+L,EAAG/H,KAAKsQ,eAAezS,EAASkK,EAAG1C,MAAMmH,KAEvJ,GADA+C,GAAO,OAAS,EAAU,iBAAmB,EAAW,IACpD0H,EAAiB,CACnB,IAAIP,EAAgB3O,EAAGuN,cACvBvN,EAAGuN,cAAgBO,EAAIP,eAAgB,EACvCO,EAAI9Y,OAASc,EACbgY,EAAI3P,WAAa2N,EACjBgC,EAAI1P,cAAgB2N,EACpBvE,GAAO,QAAU,EAAe,sBAAwB,EAAS,SAAW,EAAS,MAAQ,EAAU,YAAc,EAAS,SAC9HsG,EAAIzP,UAAY2B,EAAG/H,KAAK0Q,YAAY3I,EAAG3B,UAAW0Q,EAAM/O,EAAGnD,KAAKgM,cAAc,GAC9E,IAAIsG,EAAY9F,EAAQ,IAAM0F,EAAO,IACrCjB,EAAI3B,YAAY6C,GAAYD,EAC5B,IAAIK,EAAQpP,EAAGtK,SAASoY,GACxBA,EAAI7W,OAASgX,EACTjO,EAAG/H,KAAKkP,cAAciI,EAAOH,GAAa,EAC5CzH,GAAO,IAAOxH,EAAG/H,KAAKoP,WAAW+H,EAAOH,EAAWE,GAAc,IAEjE3H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAExEA,GAAO,QAAU,EAAe,eAChCxH,EAAGuN,cAAgBO,EAAIP,cAAgBoB,EACvCnH,GAAO,UAAoC,EAAe,WAE1DA,GAAO,QAAU,EAAU,kBAE7B,IAAIyF,EAAaA,GAAc,GAC/BA,EAAWjI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,yDAA4ExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,kBACzI,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,8CAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EAoBZ,OAnBAA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,aACH0H,IACF1H,GAAO,cAAgB,EAAU,iCAAmC,EAAU,sBAAwB,EAAU,6BAE9GxH,EAAGnD,KAAKoP,YACVzE,GAAO,OAETA,EAAMxH,EAAG/H,KAAKsP,YAAYC,KAI1B,IAAI6H,GAAG,CAAC,SAAS3b,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAyBsN,EAAIwL,GAC5C,IAOIkB,EAKFjB,EAZEjE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UAEzB5C,EAAQ,QAAUuC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBgD,EAAQ,SAAWhD,EACnBQ,EAAUlM,EAAGnD,KAAKwM,OAASvT,GAAWA,EAAQuT,MAIhDoC,EAFES,GACF1E,GAAO,cAAgB,EAAS,MAASxH,EAAG/H,KAAKmR,QAAQtT,EAAQuT,MAAOuC,EAAU5L,EAAGmM,aAAgB,KACtF,SAAWT,GAEX5V,EAEjB,IAIIwZ,EAAUC,EAASC,EAAQC,EAAeC,EAJ1CC,EAAQ1c,KACV2c,EAAc,aAAelE,EAC7BmE,EAAQF,EAAMxP,WACd4N,EAAiB,GAEnB,GAAI7B,GAAW2D,EAAMxG,MAAO,CAE1B,IAAIyG,EAAkBD,EAAM5P,eAC5BuH,GAAO,QAAU,EAAgB,oBAAuB,EAAa,uBAFrEkI,EAAgB,kBAAoBhE,GAE4E,MAAQ,EAAgB,iBACnI,CAEL,KADA+D,EAAgBzP,EAAGvB,cAAckR,EAAO7Z,EAASkK,EAAGhL,OAAQgL,IACxC,OACpByL,EAAe,kBAAoBK,EACnC4D,EAAgBD,EAAc3b,KAC9Bwb,EAAWO,EAAMlT,QACjB4S,EAAUM,EAAMlQ,OAChB6P,EAASK,EAAMlP,MAEjB,IAAIoP,EAAYL,EAAgB,UAC9BrB,EAAK,IAAM3C,EACXsE,EAAW,UAAYtE,EACvBuE,EAAgBJ,EAAMhI,MACxB,GAAIoI,IAAkBjQ,EAAG6H,MAAO,MAAM,IAAIhU,MAAM,gCAahD,GAZM0b,GAAWC,IACfhI,GAAY,EAAc,YAE5BA,GAAO,OAAS,EAAU,iBAAmB,EAAW,IACpD0E,GAAW2D,EAAMxG,QACnB0E,GAAkB,IAClBvG,GAAO,QAAU,EAAiB,qBAAuB,EAAW,qBAChEsI,IACF/B,GAAkB,IAClBvG,GAAO,IAAM,EAAW,MAAQ,EAAgB,mBAAqB,EAAiB,UAAY,EAAW,SAG7G+H,EAEA/H,GADEqI,EAAM7E,WACD,IAAOyE,EAAsB,SAAI,IAEjC,IAAM,EAAW,MAASA,EAAsB,SAAI,UAExD,GAAID,EAAQ,CACjB,IAAI1B,EAAM9N,EAAG/H,KAAKc,KAAKiH,GACnB+N,EAAiB,GACrBD,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC/BmC,EAAI9Y,OAASya,EAAc/Z,SAC3BoY,EAAI3P,WAAa,GACjB,IAAIwQ,EAAgB3O,EAAGuN,cACvBvN,EAAGuN,cAAgBO,EAAIP,eAAgB,EACvC,IAAI6B,EAAQpP,EAAGtK,SAASoY,GAAKjK,QAAQ,oBAAqB6L,GAC1D1P,EAAGuN,cAAgBO,EAAIP,cAAgBoB,EACvCnH,GAAO,IAAM,MACR,EACDyF,EAAaA,GAAc,IACpBjI,KAAKwC,GAChBA,EAAM,GACNA,GAAO,KAAO,EAAkB,UAE9BA,GADExH,EAAGnD,KAAKqT,YACH,OAEA,OAGP1I,GADE8H,IAA6B,IAAjBO,EAAM7a,OACb,MAAQ,EAAU,IAElB,MAAQ,EAAiB,MAAQ,EAAU,qBAAwBgL,EAAa,WAAI,IAE7FwH,GAAO,sBACa,MAAhBxH,EAAG3B,YACLmJ,GAAO,MAASxH,EAAY,WAE9B,IAAImQ,EAAcvE,EAAW,QAAWA,EAAW,GAAM,IAAM,aAC7DwE,EAAsBxE,EAAW5L,EAAGmM,YAAYP,GAAY,qBAE1DyE,EADJ7I,GAAO,MAAQ,EAAgB,MAAQ,EAAwB,kBAE/DA,EAAMyF,EAAWK,OACI,IAAjBuC,EAAMjY,QACR4P,GAAO,IAAM,EAAW,MACpByI,IACFzI,GAAO,UAETA,GAAY,EAAyB,MAInCA,GAFEyI,EAEK,SADPF,EAAY,eAAiBrE,GACE,kBAAoB,EAAW,YAAc,EAAyB,mBAAqB,EAAW,+CAAiD,EAAc,gCAE7L,IAAM,EAAc,YAAc,EAAW,MAAQ,EAAyB,KAQ3F,GAJImE,EAAMzE,YACR5D,GAAO,QAAU,EAAgB,KAAO,EAAU,MAAQ,EAAgB,IAAM,EAAwB,MAE1GA,GAAO,GAAK,EACRqI,EAAMpP,MACJuL,IACFxE,GAAO,qBAEJ,CAcL,IAGIyF,EAhBJzF,GAAO,cACanS,IAAhBwa,EAAMpP,OACR+G,GAAO,KAELA,GADEgI,EACK,GAAK,EAEA,GAGdhI,GAAO,KAAQqI,EAAMpP,MAAS,IAGhCiM,EAAgBiD,EAAMrP,SAClB2M,EAAaA,GAAc,IACpBjI,KAHXwC,GAAO,SAKHyF,EAAaA,GAAc,IACpBjI,KAFXwC,EAAM,IAGNA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,iBAAoBkF,GAAiB,UAAY,oCAA0C1M,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,0BAA8B4D,EAAa,QAAI,QACvM,IAArB3P,EAAGnD,KAAKsQ,WACV3F,GAAO,8BAAiCmI,EAAa,QAAI,2BAEvD3P,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EACZA,EAAMyF,EAAWK,MAWjB,IAAIgD,EAPA9I,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAGnCL,EAAMyF,EAAWK,MACbiC,EACEM,EAAMjY,OACY,QAAhBiY,EAAMjY,SACR4P,GAAO,cAAgB,EAAO,IAAM,EAAU,KAAO,EAAO,YAAc,EAAO,aAAe,EAAa,cAAgB,EAAO,UAAY,EAAa,4BAA8B,EAAa,kCAAuCxH,EAAY,UAAI,SAAW,EAAa,gCAAkC,EAAa,kBAAoB,EAAmB,QACzWA,EAAGnD,KAAKuQ,UACV5F,GAAO,IAAM,EAAa,aAAe,EAAiB,KAAO,EAAa,WAAa,EAAU,MAEvGA,GAAO,QAGY,IAAjBqI,EAAMjY,OACR4P,GAAO,IAAM,EAAoB,KAEjCA,GAAO,QAAU,EAAU,iBAAmB,EAAoB,uBAAyB,EAAO,IAAM,EAAU,KAAO,EAAO,YAAc,EAAO,aAAe,EAAa,cAAgB,EAAO,UAAY,EAAa,4BAA8B,EAAa,kCAAuCxH,EAAY,UAAI,SAAW,EAAa,gCAAkC,EAAa,kBAAoB,EAAmB,QAC7aA,EAAGnD,KAAKuQ,UACV5F,GAAO,IAAM,EAAa,aAAe,EAAiB,KAAO,EAAa,WAAa,EAAU,MAEvGA,GAAO,SAGFgI,GACThI,GAAO,mBACiB,IAApBxH,EAAGkN,cACL1F,GAAO,iBAAoBkF,GAAiB,UAAY,oCAA0C1M,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,0BAA8B4D,EAAa,QAAI,QACvM,IAArB3P,EAAGnD,KAAKsQ,WACV3F,GAAO,8BAAiCmI,EAAa,QAAI,2BAEvD3P,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACFxH,EAAGuN,eAAiBvB,IAGrBxE,GADExH,EAAG6H,MACE,wCAEA,gDAIU,IAAjBgI,EAAMjY,OACR4P,GAAO,IAAM,EAAoB,KAEjCA,GAAO,sBAAwB,EAAc,wCAA0C,EAAc,mCAAqC,EAAc,yCAA2C,EAAO,IAAM,EAAU,KAAO,EAAO,YAAc,EAAO,aAAe,EAAa,cAAgB,EAAO,UAAY,EAAa,4BAA8B,EAAa,kCAAuCxH,EAAY,UAAI,MAAQ,EAAa,kBAAoB,EAAmB,OACneA,EAAGnD,KAAKuQ,UACV5F,GAAO,IAAM,EAAa,aAAe,EAAiB,KAAO,EAAa,WAAa,EAAU,MAEvGA,GAAO,eAAiB,EAAoB,OAGhDA,GAAO,MACHwE,IACFxE,GAAO,YAGX,OAAOA,IAGP,IAAI+I,GAAG,CAAC,SAAS7c,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA+BsN,EAAIwL,GAClD,IAAIhE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9B8C,EAAQ,SAAWhD,EACnBoC,EAAM9N,EAAG/H,KAAKc,KAAKiH,GACnB+N,EAAiB,GACrBD,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC3B6E,EAAc,GAChBC,EAAgB,GAChBC,EAAiB1Q,EAAGnD,KAAK8T,cAC3B,IAAKC,KAAa9a,EAAS,CACzB,IAAIsY,EAAOtY,EAAQ8a,GACfC,EAAQxN,MAAMC,QAAQ8K,GAAQqC,EAAgBD,EAClDK,EAAMD,GAAaxC,EAErB5G,GAAO,OAAS,EAAU,aAC1B,IAAIsJ,EAAoB9Q,EAAG3B,UAE3B,IAAK,IAAIuS,KADTpJ,GAAO,cAAgB,EAAS,IACViJ,EAEpB,IADAI,EAAQJ,EAAcG,IACZ3c,OAAQ,CAKhB,GAJAuT,GAAO,SAAW,EAAWxH,EAAG/H,KAAKgP,YAAY2J,GAAc,kBAC3DF,IACFlJ,GAAO,4CAA8C,EAAU,MAAUxH,EAAG/H,KAAKiP,aAAa0J,GAAc,OAE1G5E,EAAe,CACjBxE,GAAO,SACP,IAAI2G,EAAO0C,EACX,GAAI1C,EAGF,IAFA,IAAkBE,GAAM,EACtBC,EAAKH,EAAKla,OAAS,EACdoa,EAAKC,GAAI,CACdyC,EAAe5C,EAAKE,GAAM,GACtBA,IACF7G,GAAO,QAITA,GAAO,SADLwJ,EAAW3H,GADT4H,EAAQjR,EAAG/H,KAAKgP,YAAY8J,KAEF,kBAC1BL,IACFlJ,GAAO,8CAAgD,EAAU,MAAUxH,EAAG/H,KAAKiP,aAAa6J,GAAiB,OAEnHvJ,GAAO,gBAAkB,EAAS,MAASxH,EAAG/H,KAAKkE,eAAe6D,EAAGnD,KAAKgM,aAAekI,EAAeE,GAAU,OAGtHzJ,GAAO,SACP,IAAI0J,EAAgB,UAAYxF,EAC9ByF,EAAmB,OAAUD,EAAgB,OAC3ClR,EAAGnD,KAAKuU,yBACVpR,EAAG3B,UAAY2B,EAAGnD,KAAKgM,aAAe7I,EAAG/H,KAAK0Q,YAAYmI,EAAmBI,GAAe,GAAQJ,EAAoB,MAAQI,GAElI,IAAIjE,EAAaA,GAAc,GAC/BA,EAAWjI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,6DAAgFxH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,2BAA+B/L,EAAG/H,KAAKiP,aAAa0J,GAAc,wBAA4B,EAAqB,iBAAqBC,EAAY,OAAI,YAAgB7Q,EAAG/H,KAAKiP,aAA6B,GAAhB2J,EAAM5c,OAAc4c,EAAM,GAAKA,EAAMrQ,KAAK,OAAU,QAC9X,IAArBR,EAAGnD,KAAKsQ,WACV3F,GAAO,4BAELA,GADkB,GAAhBqJ,EAAM5c,OACD,YAAe+L,EAAG/H,KAAKiP,aAAa2J,EAAM,IAE1C,cAAiB7Q,EAAG/H,KAAKiP,aAAa2J,EAAMrQ,KAAK,OAE1DgH,GAAO,kBAAqBxH,EAAG/H,KAAKiP,aAAa0J,GAAc,iBAE7D5Q,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EACZA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,mFAE9B,CACLL,GAAO,QACP,IAAI6J,EAAOR,EACX,GAAIQ,EAGF,IAFA,IAAIN,EAAcO,GAAM,EACtBC,EAAKF,EAAKpd,OAAS,EACdqd,EAAKC,GAAI,CACdR,EAAeM,EAAKC,GAAM,GAC1B,IAAIL,EAAQjR,EAAG/H,KAAKgP,YAAY8J,GAE9BC,GADAG,EAAmBnR,EAAG/H,KAAKiP,aAAa6J,GAC7B1H,EAAQ4H,GACjBjR,EAAGnD,KAAKuU,yBACVpR,EAAG3B,UAAY2B,EAAG/H,KAAK+Q,QAAQ8H,EAAmBC,EAAc/Q,EAAGnD,KAAKgM,eAE1ErB,GAAO,SAAW,EAAa,kBAC3BkJ,IACFlJ,GAAO,8CAAgD,EAAU,MAAUxH,EAAG/H,KAAKiP,aAAa6J,GAAiB,OAEnHvJ,GAAO,qBACiB,IAApBxH,EAAGkN,cACL1F,GAAO,6DAAgFxH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,2BAA+B/L,EAAG/H,KAAKiP,aAAa0J,GAAc,wBAA4B,EAAqB,iBAAqBC,EAAY,OAAI,YAAgB7Q,EAAG/H,KAAKiP,aAA6B,GAAhB2J,EAAM5c,OAAc4c,EAAM,GAAKA,EAAMrQ,KAAK,OAAU,QAC9X,IAArBR,EAAGnD,KAAKsQ,WACV3F,GAAO,4BAELA,GADkB,GAAhBqJ,EAAM5c,OACD,YAAe+L,EAAG/H,KAAKiP,aAAa2J,EAAM,IAE1C,cAAiB7Q,EAAG/H,KAAKiP,aAAa2J,EAAMrQ,KAAK,OAE1DgH,GAAO,kBAAqBxH,EAAG/H,KAAKiP,aAAa0J,GAAc,iBAE7D5Q,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,kFAIbA,GAAO,QACHwE,IACF+B,GAAkB,IAClBvG,GAAO,YAIbxH,EAAG3B,UAAYyS,EACf,IAAI7C,EAAiBH,EAAI7W,OACzB,IAAK,IAAI2Z,KAAaJ,EAAa,CAC7BpC,EAAOoC,EAAYI,IAClB5Q,EAAGnD,KAAK0R,eAAgC,iBAARH,GAA+C,EAA3B5W,OAAOiK,KAAK2M,GAAMna,OAAa+L,EAAG/H,KAAKsQ,eAAe6F,EAAMpO,EAAG1C,MAAMmH,QAC5H+C,GAAO,IAAM,EAAe,iBAAmB,EAAWxH,EAAG/H,KAAKgP,YAAY2J,GAAc,kBACxFF,IACFlJ,GAAO,4CAA8C,EAAU,MAAUxH,EAAG/H,KAAKiP,aAAa0J,GAAc,OAE9GpJ,GAAO,OACPsG,EAAI9Y,OAASoZ,EACbN,EAAI3P,WAAa2N,EAAc9L,EAAG/H,KAAKgP,YAAY2J,GACnD9C,EAAI1P,cAAgB2N,EAAiB,IAAM/L,EAAG/H,KAAKwK,eAAemO,GAClEpJ,GAAO,KAAQxH,EAAGtK,SAASoY,GAAQ,IACnCA,EAAI7W,OAASgX,EACbzG,GAAO,OACHwE,IACFxE,GAAO,QAAU,EAAe,OAChCuG,GAAkB,MAQxB,OAJI/B,IACFxE,GAAO,MAAQ,EAAmB,QAAU,EAAU,iBAExDA,EAAMxH,EAAG/H,KAAKsP,YAAYC,KAI1B,IAAIgK,GAAG,CAAC,SAAS9d,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAuBsN,EAAIwL,GAC1C,IAAIhE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBQ,EAAUlM,EAAGnD,KAAKwM,OAASvT,GAAWA,EAAQuT,MAE9C6C,IACF1E,GAAO,cAAgB,EAAS,MAASxH,EAAG/H,KAAKmR,QAAQtT,EAAQuT,MAAOuC,EAAU5L,EAAGmM,aAAgB,MAKvG,IAAIkC,EAAK,IAAM3C,EACb+F,EAAW,SAAW/F,EACnBQ,IACH1E,GAAO,QAAU,EAAa,qBAAuB,EAAgB,KAEvEA,GAAO,OAAS,EAAW,IACvB0E,IACF1E,GAAO,cAAgB,EAAS,mBAAqB,EAAW,0CAA4C,EAAS,MAAQ,EAAW,oBAE1IA,GAAY,EAAW,qBAAuB,EAAO,OAAS,EAAO,IAAM,EAAa,YAAc,EAAO,iBAAmB,EAAU,KAAO,EAAa,IAAM,EAAO,SAAW,EAAW,oBAC7L0E,IACF1E,GAAO,SAGT,IAAIyF,EAAaA,GAAc,GAC/BA,EAAWjI,KAFXwC,GAAO,SAAW,EAAW,UAG7BA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,qDAAwExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,qCAAuC,EAAS,OACrL,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,+DAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EAgBZ,OAfAA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,KACHwE,IACFxE,GAAO,YAEFA,IAGP,IAAIkK,GAAG,CAAC,SAAShe,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAyBsN,EAAIwL,EAAUmG,GACtD,IAAInK,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAClC,IAAuB,IAAnB5L,EAAGnD,KAAK+U,OAIV,OAHI5F,IACFxE,GAAO,iBAEFA,EAET,IACEiE,EADES,EAAUlM,EAAGnD,KAAKwM,OAASvT,GAAWA,EAAQuT,MAIhDoC,EAFES,GACF1E,GAAO,cAAgB,EAAS,MAASxH,EAAG/H,KAAKmR,QAAQtT,EAAQuT,MAAOuC,EAAU5L,EAAGmM,aAAgB,KACtF,SAAWT,GAEX5V,EAEjB,IAAI+b,EAAkB7R,EAAGnD,KAAKiV,eAC5BC,EAAgB1O,MAAMC,QAAQuO,GAChC,GAAI3F,EAAS,CAIX1E,GAAO,SAHHwK,EAAU,SAAWtG,GAGI,cAAgB,EAAiB,WAF5DuG,EAAY,WAAavG,GAE6D,aAAe,EAAY,qBAAyB,EAAY,0BAA4B,EAAY,mBAD9LwG,EAAc,aAAexG,GACqM,MAAQ,EAAc,OAAS,EAAY,0BAA8B,EAAc,OACvT1L,EAAG6H,QACLL,GAAO,aAAe,EAAS,MAAQ,EAAY,YAErDA,GAAO,IAAM,EAAY,MAAQ,EAAY,sBACzC0E,IACF1E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAEhFA,GAAO,KACgB,UAAnBqK,IACFrK,GAAO,KAAO,EAAiB,QAAU,EAAY,IACjDuK,IACFvK,GAAO,yCAA2C,EAAiB,YAErEA,GAAO,SAETA,GAAO,KAAO,EAAY,OAAS,EAAgB,QAAW,EAAc,iBAAoB,EAAY,oBAE1GA,GADExH,EAAG6H,MACE,UAAY,EAAS,YAAc,EAAY,IAAM,EAAU,OAAS,EAAY,IAAM,EAAU,MAEpG,IAAM,EAAY,IAAM,EAAU,KAE3CL,GAAO,MAAQ,EAAY,SAAW,EAAU,cAC3C,CACL,IAAIwK,EACJ,KADIA,EAAUhS,EAAGnH,QAAQ/C,IACX,CACZ,GAAuB,UAAnB+b,EAKF,OAJA7R,EAAGtB,OAAOyT,KAAK,mBAAqBrc,EAAU,gCAAkCkK,EAAG5B,cAAgB,KAC/F4N,IACFxE,GAAO,iBAEFA,EACF,GAAIuK,GAAqD,GAApCF,EAAgBO,QAAQtc,GAIlD,OAHIkW,IACFxE,GAAO,iBAEFA,EAEP,MAAM,IAAI3T,MAAM,mBAAqBiC,EAAU,gCAAkCkK,EAAG5B,cAAgB,KAGxG,IAAI6T,EACAC,GADAD,EAA8B,iBAAXD,KAAyBA,aAAmBhX,SAAWgX,EAAQtc,WACvDsc,EAAQ7N,MAAQ,SAC/C,GAAI8N,EAAW,CACb,IAAIxU,GAA2B,IAAlBuU,EAAQnK,MACrBmK,EAAUA,EAAQtc,SAEpB,GAAIwc,GAAeP,EAIjB,OAHI3F,IACFxE,GAAO,iBAEFA,EAET,GAAI/J,EAAQ,CACV,IAAKuC,EAAG6H,MAAO,MAAM,IAAIhU,MAAM,+BAE/B2T,GAAO,iBADH6K,EAAa,UAAYrS,EAAG/H,KAAKgP,YAAYnR,GAAW,aACpB,IAAM,EAAU,aACnD,CACL0R,GAAO,UACP,IAAI6K,EAAa,UAAYrS,EAAG/H,KAAKgP,YAAYnR,GAC7Cmc,IAAWI,GAAc,aAE3B7K,GADoB,mBAAXwK,EACF,IAAM,EAAe,IAAM,EAAU,KAErC,IAAM,EAAe,SAAW,EAAU,KAEnDxK,GAAO,QAGX,IAAIyF,EAAaA,GAAc,GAC/BA,EAAWjI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,uDAA0ExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,yBAE9JvE,GADE0E,EACK,GAAK,EAEL,GAAMlM,EAAG/H,KAAKkE,eAAerG,GAEtC0R,GAAO,QACkB,IAArBxH,EAAGnD,KAAKsQ,WACV3F,GAAO,sCAELA,GADE0E,EACK,OAAU,EAAiB,OAE3B,GAAMlM,EAAG/H,KAAKiP,aAAapR,GAEpC0R,GAAO,QAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,eAELA,GADE0E,EACK,kBAAoB,EAEpB,GAAMlM,EAAG/H,KAAKkE,eAAerG,GAEtC0R,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EAgBZ,OAfAA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,MACHwE,IACFxE,GAAO,YAEFA,IAGP,IAAI8K,GAAG,CAAC,SAAS5e,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAqBsN,EAAIwL,GACxC,IAAIhE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBgD,EAAQ,SAAWhD,EACnBoC,EAAM9N,EAAG/H,KAAKc,KAAKiH,GACvB8N,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC3B4G,EAAWvS,EAAGhL,OAAa,KAC7Bwd,EAAWxS,EAAGhL,OAAa,KAC3Byd,OAA4Bpd,IAAbkd,IAA2BvS,EAAGnD,KAAK0R,eAAoC,iBAAZgE,GAAuD,EAA/B/a,OAAOiK,KAAK8Q,GAAUte,OAAa+L,EAAG/H,KAAKsQ,eAAegK,EAAUvS,EAAG1C,MAAMmH,MAC/KiO,OAA4Brd,IAAbmd,IAA2BxS,EAAGnD,KAAK0R,eAAoC,iBAAZiE,GAAuD,EAA/Bhb,OAAOiK,KAAK+Q,GAAUve,OAAa+L,EAAG/H,KAAKsQ,eAAeiK,EAAUxS,EAAG1C,MAAMmH,MAC/KwJ,EAAiBH,EAAI7W,OACvB,GAAIwb,GAAgBC,EAAc,CAChC,IAAIC,EACJ7E,EAAIZ,cAAe,EACnBY,EAAI9Y,OAASc,EACbgY,EAAI3P,WAAa2N,EACjBgC,EAAI1P,cAAgB2N,EACpBvE,GAAO,QAAU,EAAU,kBAAoB,EAAW,aAC1D,IAAImH,EAAgB3O,EAAGuN,cACvBvN,EAAGuN,cAAgBO,EAAIP,eAAgB,EACvC/F,GAAO,KAAQxH,EAAGtK,SAASoY,GAAQ,IACnCA,EAAI7W,OAASgX,EACbH,EAAIZ,cAAe,EACnB1F,GAAO,cAAgB,EAAU,iCAAmC,EAAU,sBAAwB,EAAU,6BAChHxH,EAAGuN,cAAgBO,EAAIP,cAAgBoB,EACnC8D,GACFjL,GAAO,QAAU,EAAe,QAChCsG,EAAI9Y,OAASgL,EAAGhL,OAAa,KAC7B8Y,EAAI3P,WAAa6B,EAAG7B,WAAa,QACjC2P,EAAI1P,cAAgB4B,EAAG5B,cAAgB,QACvCoJ,GAAO,KAAQxH,EAAGtK,SAASoY,GAAQ,IACnCA,EAAI7W,OAASgX,EACbzG,GAAO,IAAM,EAAW,MAAQ,EAAe,KAC3CiL,GAAgBC,EAElBlL,GAAO,SADPmL,EAAY,WAAajH,GACM,cAE/BiH,EAAY,SAEdnL,GAAO,MACHkL,IACFlL,GAAO,aAGTA,GAAO,SAAW,EAAe,OAE/BkL,IACF5E,EAAI9Y,OAASgL,EAAGhL,OAAa,KAC7B8Y,EAAI3P,WAAa6B,EAAG7B,WAAa,QACjC2P,EAAI1P,cAAgB4B,EAAG5B,cAAgB,QACvCoJ,GAAO,KAAQxH,EAAGtK,SAASoY,GAAQ,IACnCA,EAAI7W,OAASgX,EACbzG,GAAO,IAAM,EAAW,MAAQ,EAAe,KAC3CiL,GAAgBC,EAElBlL,GAAO,SADPmL,EAAY,WAAajH,GACM,cAE/BiH,EAAY,SAEdnL,GAAO,OAETA,GAAO,SAAW,EAAW,sBACL,IAApBxH,EAAGkN,cACL1F,GAAO,mDAAsExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,gCAAkC,EAAc,OACnL,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,mCAAsC,EAAc,mBAEzDxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACFxH,EAAGuN,eAAiBvB,IAGrBxE,GADExH,EAAG6H,MACE,wCAEA,8CAGXL,GAAO,QACHwE,IACFxE,GAAO,YAETA,EAAMxH,EAAG/H,KAAKsP,YAAYC,QAEtBwE,IACFxE,GAAO,iBAGX,OAAOA,IAGP,IAAIoL,GAAG,CAAC,SAASlf,EAAQf,EAAOD,GAClC,aAGAC,EAAOD,QAAU,CACfsD,KAAQtC,EAAQ,SAChBmf,MAAOnf,EAAQ,WACfiX,MAAOjX,EAAQ,WACfwR,SAAYxR,EAAQ,aACpB2X,MAAO3X,EAAQ,WACfof,SAAUpf,EAAQ,cAClB0M,aAAc1M,EAAQ,kBACtBqf,KAAQrf,EAAQ,UAChBke,OAAQle,EAAQ,YAChBsf,GAAMtf,EAAQ,QACdyX,MAAOzX,EAAQ,WACf2Q,QAAS3Q,EAAQ,YACjB4Q,QAAS5Q,EAAQ,YACjBuf,SAAUvf,EAAQ,iBAClBwf,SAAUxf,EAAQ,iBAClByf,UAAWzf,EAAQ,kBACnB0f,UAAW1f,EAAQ,kBACnB2f,cAAe3f,EAAQ,sBACvB4f,cAAe5f,EAAQ,sBACvB6f,WAAY7f,EAAQ,gBACpBuX,IAAKvX,EAAQ,SACb8f,MAAO9f,EAAQ,WACf+f,QAAS/f,EAAQ,aACjB6Q,WAAY7Q,EAAQ,gBACpBggB,cAAehgB,EAAQ,mBACvBwX,SAAUxX,EAAQ,cAClBigB,YAAajgB,EAAQ,iBACrBgC,SAAUhC,EAAQ,gBAGlB,CAACkgB,WAAW,GAAGC,gBAAgB,GAAGC,iBAAiB,GAAGC,qBAAqB,GAAGC,UAAU,GAAGC,UAAU,GAAGC,YAAY,GAAGC,UAAU,GAAGC,aAAa,GAAGC,iBAAiB,GAAGC,SAAS,GAAGC,WAAW,GAAGC,OAAO,GAAGC,UAAU,GAAGC,eAAe,GAAGC,QAAQ,GAAGC,UAAU,GAAGC,YAAY,GAAGC,eAAe,GAAGC,kBAAkB,GAAGC,QAAQ,GAAGC,aAAa,GAAGC,gBAAgB,GAAGC,aAAa,KAAKC,GAAG,CAAC,SAAS1hB,EAAQf,EAAOD,GACvZ,aACAC,EAAOD,QAAU,SAAwBsN,EAAIwL,GAC3C,IAAIhE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBgD,EAAQ,SAAWhD,EACnBoC,EAAM9N,EAAG/H,KAAKc,KAAKiH,GACnB+N,EAAiB,GACrBD,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC3BoD,EAAO,IAAMrD,EACfsD,EAAWlB,EAAIjC,UAAY7L,EAAG6L,UAAY,EAC1CoD,EAAY,OAASD,EACrBf,EAAiBjO,EAAG/I,OAEtB,GADAuQ,GAAO,OAAS,EAAU,iBAAmB,EAAW,IACpDnE,MAAMC,QAAQxN,GAAU,CAC1B,IAAIuf,EAAmBrV,EAAGhL,OAAOsgB,gBACjC,IAAyB,IAArBD,EAA4B,CAC9B7N,GAAO,IAAM,EAAW,MAAQ,EAAU,cAAiB1R,EAAc,OAAI,KAC7E,IAAIyf,EAAqBxJ,EACzBA,EAAiB/L,EAAG5B,cAAgB,mBAEpC,IAAI6O,EAAaA,GAAc,GAC/BA,EAAWjI,KAFXwC,GAAO,UAAY,EAAW,UAG9BA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,gEAAmFxH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,uBAA0BjW,EAAc,OAAI,OAC5L,IAArBkK,EAAGnD,KAAKsQ,WACV3F,GAAO,0CAA8C1R,EAAc,OAAI,YAErEkK,EAAGnD,KAAKuQ,UACV5F,GAAO,mDAAsDxH,EAAa,WAAI,YAAc,EAAU,KAExGwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EACZA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,MACPuE,EAAiBwJ,EACbvJ,IACF+B,GAAkB,IAClBvG,GAAO,YAGX,IAAI2G,EAAOrY,EACX,GAAIqY,EAGF,IAFA,IAAIC,EAAMC,GAAM,EACdC,EAAKH,EAAKla,OAAS,EACdoa,EAAKC,GAEV,GADAF,EAAOD,EAAKE,GAAM,GACbrO,EAAGnD,KAAK0R,eAAgC,iBAARH,GAA+C,EAA3B5W,OAAOiK,KAAK2M,GAAMna,OAAa+L,EAAG/H,KAAKsQ,eAAe6F,EAAMpO,EAAG1C,MAAMmH,KAAO,CACnI+C,GAAO,IAAM,EAAe,gBAAkB,EAAU,aAAe,EAAO,OAC9E,IAAI2H,EAAY9F,EAAQ,IAAMgF,EAAK,IACnCP,EAAI9Y,OAASoZ,EACbN,EAAI3P,WAAa2N,EAAc,IAAMuC,EAAK,IAC1CP,EAAI1P,cAAgB2N,EAAiB,IAAMsC,EAC3CP,EAAIzP,UAAY2B,EAAG/H,KAAK0Q,YAAY3I,EAAG3B,UAAWgQ,EAAIrO,EAAGnD,KAAKgM,cAAc,GAC5EiF,EAAI3B,YAAY6C,GAAYX,EAC5B,IAAIe,EAAQpP,EAAGtK,SAASoY,GACxBA,EAAI7W,OAASgX,EACTjO,EAAG/H,KAAKkP,cAAciI,EAAOH,GAAa,EAC5CzH,GAAO,IAAOxH,EAAG/H,KAAKoP,WAAW+H,EAAOH,EAAWE,GAAc,IAEjE3H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAExEA,GAAO,OACHwE,IACFxE,GAAO,QAAU,EAAe,OAChCuG,GAAkB,KAK1B,GAA+B,iBAApBsH,IAAiCrV,EAAGnD,KAAK0R,eAA4C,iBAApB8G,GAAuE,EAAvC7d,OAAOiK,KAAK4T,GAAkBphB,OAAa+L,EAAG/H,KAAKsQ,eAAe8M,EAAkBrV,EAAG1C,MAAMmH,MAAO,CAC9MqJ,EAAI9Y,OAASqgB,EACbvH,EAAI3P,WAAa6B,EAAG7B,WAAa,mBACjC2P,EAAI1P,cAAgB4B,EAAG5B,cAAgB,mBACvCoJ,GAAO,IAAM,EAAe,gBAAkB,EAAU,aAAgB1R,EAAc,OAAI,iBAAmB,EAAS,MAASA,EAAc,OAAI,KAAO,EAAS,MAAQ,EAAU,YAAc,EAAS,SAC1MgY,EAAIzP,UAAY2B,EAAG/H,KAAK0Q,YAAY3I,EAAG3B,UAAW0Q,EAAM/O,EAAGnD,KAAKgM,cAAc,GAC1EsG,EAAY9F,EAAQ,IAAM0F,EAAO,IACrCjB,EAAI3B,YAAY6C,GAAYD,EACxBK,EAAQpP,EAAGtK,SAASoY,GACxBA,EAAI7W,OAASgX,EACTjO,EAAG/H,KAAKkP,cAAciI,EAAOH,GAAa,EAC5CzH,GAAO,IAAOxH,EAAG/H,KAAKoP,WAAW+H,EAAOH,EAAWE,GAAc,IAEjE3H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAEpEwE,IACFxE,GAAO,SAAW,EAAe,aAEnCA,GAAO,SACHwE,IACFxE,GAAO,QAAU,EAAe,OAChCuG,GAAkB,WAGjB,GAAK/N,EAAGnD,KAAK0R,eAAmC,iBAAXzY,GAAqD,EAA9B0B,OAAOiK,KAAK3L,GAAS7B,OAAa+L,EAAG/H,KAAKsQ,eAAezS,EAASkK,EAAG1C,MAAMmH,KAAO,CACnJqJ,EAAI9Y,OAASc,EACbgY,EAAI3P,WAAa2N,EACjBgC,EAAI1P,cAAgB2N,EACpBvE,GAAO,cAAgB,EAAS,SAAqB,EAAS,MAAQ,EAAU,YAAc,EAAS,SACvGsG,EAAIzP,UAAY2B,EAAG/H,KAAK0Q,YAAY3I,EAAG3B,UAAW0Q,EAAM/O,EAAGnD,KAAKgM,cAAc,GAC1EsG,EAAY9F,EAAQ,IAAM0F,EAAO,IACrCjB,EAAI3B,YAAY6C,GAAYD,EACxBK,EAAQpP,EAAGtK,SAASoY,GACxBA,EAAI7W,OAASgX,EACTjO,EAAG/H,KAAKkP,cAAciI,EAAOH,GAAa,EAC5CzH,GAAO,IAAOxH,EAAG/H,KAAKoP,WAAW+H,EAAOH,EAAWE,GAAc,IAEjE3H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAEpEwE,IACFxE,GAAO,SAAW,EAAe,aAEnCA,GAAO,KAMT,OAJIwE,IACFxE,GAAO,IAAM,EAAmB,QAAU,EAAU,iBAEtDA,EAAMxH,EAAG/H,KAAKsP,YAAYC,KAI1B,IAAIgO,GAAG,CAAC,SAAS9hB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA6BsN,EAAIwL,GAChD,IASEC,EATEjE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9BM,EAAUlM,EAAGnD,KAAKwM,OAASvT,GAAWA,EAAQuT,MAIhDoC,EAFES,GACF1E,GAAO,cAAgB,EAAS,MAASxH,EAAG/H,KAAKmR,QAAQtT,EAAQuT,MAAOuC,EAAU5L,EAAGmM,aAAgB,KACtF,SAAWT,GAEX5V,EAEjB0R,GAAO,eAAiB,EAAS,QAC7B0E,IACF1E,GAAO,IAAM,EAAiB,8BAAgC,EAAiB,oBAEjFA,GAAO,aAAe,EAAS,MAAQ,EAAU,MAAQ,EAAiB,KAExEA,GADExH,EAAGnD,KAAK4Y,oBACH,gCAAkC,EAAS,eAAiB,EAAS,UAAazV,EAAGnD,KAAwB,oBAAI,IAEjH,YAAc,EAAS,yBAA2B,EAAS,KAEpE2K,GAAO,MACH0E,IACF1E,GAAO,SAGT,IAAIyF,EAAaA,GAAc,GAC/BA,EAAWjI,KAFXwC,GAAO,WAGPA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,2DAA8ExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,4BAA8B,EAAiB,OAC1L,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,sCAELA,GADE0E,EACK,OAAU,EAEL,EAAiB,KAG7BlM,EAAGnD,KAAKuQ,UACV5F,GAAO,eAELA,GADE0E,EACK,kBAAoB,EAEpB,GAAK,EAEd1E,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EAgBZ,OAfAA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,KACHwE,IACFxE,GAAO,YAEFA,IAGP,IAAIkO,GAAG,CAAC,SAAShiB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAsBsN,EAAIwL,GACzC,IAAIhE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9B8C,EAAQ,SAAWhD,EACnBoC,EAAM9N,EAAG/H,KAAKc,KAAKiH,GACvB8N,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC/B,GAAK3L,EAAGnD,KAAK0R,eAAmC,iBAAXzY,GAAqD,EAA9B0B,OAAOiK,KAAK3L,GAAS7B,OAAa+L,EAAG/H,KAAKsQ,eAAezS,EAASkK,EAAG1C,MAAMmH,KAAO,CAC5IqJ,EAAI9Y,OAASc,EACbgY,EAAI3P,WAAa2N,EACjBgC,EAAI1P,cAAgB2N,EACpBvE,GAAO,QAAU,EAAU,eAC3B,IAGImO,EAHAhH,EAAgB3O,EAAGuN,cACvBvN,EAAGuN,cAAgBO,EAAIP,eAAgB,EACvCO,EAAIZ,cAAe,EAEfY,EAAIjR,KAAKoP,YACX0J,EAAmB7H,EAAIjR,KAAKoP,UAC5B6B,EAAIjR,KAAKoP,WAAY,GAEvBzE,GAAO,IAAOxH,EAAGtK,SAASoY,GAAQ,IAClCA,EAAIZ,cAAe,EACfyI,IAAkB7H,EAAIjR,KAAKoP,UAAY0J,GAC3C3V,EAAGuN,cAAgBO,EAAIP,cAAgBoB,EAEvC,IAAI1B,EAAaA,GAAc,GAC/BA,EAAWjI,KAFXwC,GAAO,QAAU,EAAe,UAGhCA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,oDAAuExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,kBACpI,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,sCAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EACZA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,uBAAyB,EAAU,iCAAmC,EAAU,sBAAwB,EAAU,4BACrHxH,EAAGnD,KAAKoP,YACVzE,GAAO,YAGTA,GAAO,kBACiB,IAApBxH,EAAGkN,cACL1F,GAAO,oDAAuExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,kBACpI,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,sCAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,+EACHwE,IACFxE,GAAO,kBAGX,OAAOA,IAGP,IAAIoO,GAAG,CAAC,SAASliB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAwBsN,EAAIwL,GAC3C,IAAIhE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBgD,EAAQ,SAAWhD,EACnBoC,EAAM9N,EAAG/H,KAAKc,KAAKiH,GACnB+N,EAAiB,GACrBD,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC3BsC,EAAiBH,EAAI7W,OACvB4e,EAAa,YAAcnK,EAC3BoK,EAAkB,iBAAmBpK,EACvClE,GAAO,OAAS,EAAU,eAAiB,EAAe,cAAgB,EAAW,cAAgB,EAAoB,YACzH,IAAImH,EAAgB3O,EAAGuN,cACvBvN,EAAGuN,cAAgBO,EAAIP,eAAgB,EACvC,IAAIY,EAAOrY,EACX,GAAIqY,EAGF,IAFA,IAAIC,EAAMC,GAAM,EACdC,EAAKH,EAAKla,OAAS,EACdoa,EAAKC,GACVF,EAAOD,EAAKE,GAAM,IACbrO,EAAGnD,KAAK0R,eAAgC,iBAARH,GAA+C,EAA3B5W,OAAOiK,KAAK2M,GAAMna,OAAa+L,EAAG/H,KAAKsQ,eAAe6F,EAAMpO,EAAG1C,MAAMmH,OAC5HqJ,EAAI9Y,OAASoZ,EACbN,EAAI3P,WAAa2N,EAAc,IAAMuC,EAAK,IAC1CP,EAAI1P,cAAgB2N,EAAiB,IAAMsC,EAC3C7G,GAAO,KAAQxH,EAAGtK,SAASoY,GAAQ,IACnCA,EAAI7W,OAASgX,GAEbzG,GAAO,QAAU,EAAe,YAE9B6G,IACF7G,GAAO,QAAU,EAAe,OAAS,EAAe,OAAS,EAAW,aAAe,EAAoB,OAAS,EAAoB,KAAO,EAAO,eAC1JuG,GAAkB,KAEpBvG,GAAO,QAAU,EAAe,OAAS,EAAW,MAAQ,EAAe,YAAc,EAAoB,MAAQ,EAAO,MA8BhI,OA3BAxH,EAAGuN,cAAgBO,EAAIP,cAAgBoB,EACvCnH,GAAY,EAAmB,QAAU,EAAW,sBAC5B,IAApBxH,EAAGkN,cACL1F,GAAO,sDAAyExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,gCAAkC,EAAoB,OAC5L,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,2DAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACFxH,EAAGuN,eAAiBvB,IAGrBxE,GADExH,EAAG6H,MACE,wCAEA,8CAGXL,GAAO,sBAAwB,EAAU,iCAAmC,EAAU,sBAAwB,EAAU,2BACpHxH,EAAGnD,KAAKoP,YACVzE,GAAO,OAEFA,IAGP,IAAIuO,GAAG,CAAC,SAASriB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA0BsN,EAAIwL,GAC7C,IASEC,EATEjE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9BM,EAAUlM,EAAGnD,KAAKwM,OAASvT,GAAWA,EAAQuT,MAIhDoC,EAFES,GACF1E,GAAO,cAAgB,EAAS,MAASxH,EAAG/H,KAAKmR,QAAQtT,EAAQuT,MAAOuC,EAAU5L,EAAGmM,aAAgB,KACtF,SAAWT,GAEX5V,EAEjB,IAAIkgB,EAAU9J,EAAU,eAAiBT,EAAe,KAAOzL,EAAGzB,WAAWzI,GAC7E0R,GAAO,QACH0E,IACF1E,GAAO,KAAO,EAAiB,4BAA8B,EAAiB,qBAGhF,IAAIyF,EAAaA,GAAc,GAC/BA,EAAWjI,KAFXwC,GAAO,KAAO,EAAY,SAAW,EAAU,YAG/CA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,wDAA2ExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,0BAE/JvE,GADE0E,EACK,GAAK,EAEL,GAAMlM,EAAG/H,KAAKkE,eAAerG,GAEtC0R,GAAO,QACkB,IAArBxH,EAAGnD,KAAKsQ,WACV3F,GAAO,uCAELA,GADE0E,EACK,OAAU,EAAiB,OAE3B,GAAMlM,EAAG/H,KAAKiP,aAAapR,GAEpC0R,GAAO,QAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,eAELA,GADE0E,EACK,kBAAoB,EAEpB,GAAMlM,EAAG/H,KAAKkE,eAAerG,GAEtC0R,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EAgBZ,OAfAA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,KACHwE,IACFxE,GAAO,YAEFA,IAGP,IAAIyO,GAAG,CAAC,SAASviB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA6BsN,EAAIwL,GAChD,IAAIhE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9B8C,EAAQ,SAAWhD,EACnBoC,EAAM9N,EAAG/H,KAAKc,KAAKiH,GACnB+N,EAAiB,GACrBD,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC3BuK,EAAO,MAAQxK,EACjBqD,EAAO,MAAQrD,EACfsD,EAAWlB,EAAIjC,UAAY7L,EAAG6L,UAAY,EAC1CoD,EAAY,OAASD,EACrBmH,EAAkB,iBAAmBzK,EACnC0K,EAAc5e,OAAOiK,KAAK3L,GAAW,IACvCugB,EAAerW,EAAGhL,OAAOshB,mBAAqB,GAC9CC,EAAiB/e,OAAOiK,KAAK4U,GAC7BG,EAAexW,EAAGhL,OAAOyhB,qBACzBC,EAAkBN,EAAYniB,QAAUsiB,EAAetiB,OACvD0iB,GAAiC,IAAjBH,EAChBI,EAA6C,iBAAhBJ,GAA4Bhf,OAAOiK,KAAK+U,GAAcviB,OACnF4iB,EAAoB7W,EAAGnD,KAAKia,iBAC5BC,EAAmBJ,GAAiBC,GAAuBC,EAC3DnG,EAAiB1Q,EAAGnD,KAAK8T,cACzB1C,EAAiBjO,EAAG/I,OAClB+f,EAAYhX,EAAGhL,OAAOkW,SAC1B,GAAI8L,KAAehX,EAAGnD,KAAKwM,QAAS2N,EAAU3N,QAAU2N,EAAU/iB,OAAS+L,EAAGnD,KAAKoa,aAAc,IAAIC,EAAgBlX,EAAG/H,KAAK0K,OAAOqU,GAKpI,GAJAxP,GAAO,OAAS,EAAU,iBAAmB,EAAe,WACxDkJ,IACFlJ,GAAO,QAAU,EAAoB,iBAEnCuP,EAAkB,CAMpB,GAJEvP,GADEkJ,EACK,IAAM,EAAoB,MAAQ,EAAoB,mBAAqB,EAAU,eAAiB,EAAS,OAAS,EAAS,IAAM,EAAoB,YAAc,EAAS,aAAe,EAAS,MAAQ,EAAoB,IAAM,EAAS,MAErP,aAAe,EAAS,OAAS,EAAU,OAEhDgG,EAAiB,CAEnB,GADAlP,GAAO,oBAAsB,EAAS,cAClC4O,EAAYniB,OACd,GAAyB,EAArBmiB,EAAYniB,OACduT,GAAO,sBAAwB,EAAgB,mBAAqB,EAAS,SACxE,CACL,IAAI2G,EAAOiI,EACX,GAAIjI,EAGF,IAFA,IAAkBgJ,GAAM,EACtB7I,EAAKH,EAAKla,OAAS,EACdkjB,EAAK7I,GACVyC,EAAe5C,EAAKgJ,GAAM,GAC1B3P,GAAO,OAAS,EAAS,OAAUxH,EAAG/H,KAAKkE,eAAe4U,GAAiB,IAKnF,GAAIwF,EAAetiB,OAAQ,CACzB,IAAIod,EAAOkF,EACX,GAAIlF,EAGF,IAFA,IAAgBhD,GAAM,EACpBkD,EAAKF,EAAKpd,OAAS,EACdoa,EAAKkD,GACV6F,GAAa/F,EAAKhD,GAAM,GACxB7G,GAAO,OAAUxH,EAAGzB,WAAW6Y,IAAe,SAAW,EAAS,KAIxE5P,GAAO,uBAAyB,EAAS,OAE3C,GAAyB,OAArBqP,EACFrP,GAAO,WAAa,EAAU,IAAM,EAAS,UACxC,CACL,IAAIsJ,EAAoB9Q,EAAG3B,UACvBgZ,EAAsB,OAAUnB,EAAO,OAI3C,GAHIlW,EAAGnD,KAAKuU,yBACVpR,EAAG3B,UAAY2B,EAAG/H,KAAK0Q,YAAY3I,EAAG3B,UAAW6X,EAAMlW,EAAGnD,KAAKgM,eAE7D8N,EACF,GAAIE,EACFrP,GAAO,WAAa,EAAU,IAAM,EAAS,UACxC,CAEL,IAAI+N,EAAqBxJ,EACzBA,EAAiB/L,EAAG5B,cAAgB,yBAChC6O,GAAaA,IAAc,IACpBjI,KAJXwC,GAAO,IAAM,EAAe,cAK5BA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,qEAAwFxH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,qCAAwC,EAAwB,QACrN,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,gBAELA,GADExH,EAAGnD,KAAKuU,uBACH,oCAEA,wCAET5J,GAAO,MAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,mDAAsDxH,EAAa,WAAI,YAAc,EAAU,KAExGwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EACZA,EAAMyF,GAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCkE,EAAiBwJ,EACbvJ,IACFxE,GAAO,iBAGN,GAAIoP,EACT,GAAyB,WAArBC,EAAgC,CAClCrP,GAAO,QAAU,EAAU,eAC3B,IAAImH,EAAgB3O,EAAGuN,cACvBvN,EAAGuN,cAAgBO,EAAIP,eAAgB,EACvCO,EAAI9Y,OAASwhB,EACb1I,EAAI3P,WAAa6B,EAAG7B,WAAa,wBACjC2P,EAAI1P,cAAgB4B,EAAG5B,cAAgB,wBACvC0P,EAAIzP,UAAY2B,EAAGnD,KAAKuU,uBAAyBpR,EAAG3B,UAAY2B,EAAG/H,KAAK0Q,YAAY3I,EAAG3B,UAAW6X,EAAMlW,EAAGnD,KAAKgM,cAChH,IAAIsG,EAAY9F,EAAQ,IAAM6M,EAAO,IACrCpI,EAAI3B,YAAY6C,GAAYkH,EAC5B,IAAI9G,EAAQpP,EAAGtK,SAASoY,GACxBA,EAAI7W,OAASgX,EACTjO,EAAG/H,KAAKkP,cAAciI,EAAOH,GAAa,EAC5CzH,GAAO,IAAOxH,EAAG/H,KAAKoP,WAAW+H,EAAOH,EAAWE,GAAc,IAEjE3H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAExEA,GAAO,SAAW,EAAe,gBAAkB,EAAU,wHAA0H,EAAU,IAAM,EAAS,SAChNxH,EAAGuN,cAAgBO,EAAIP,cAAgBoB,MAClC,CACLb,EAAI9Y,OAASwhB,EACb1I,EAAI3P,WAAa6B,EAAG7B,WAAa,wBACjC2P,EAAI1P,cAAgB4B,EAAG5B,cAAgB,wBACvC0P,EAAIzP,UAAY2B,EAAGnD,KAAKuU,uBAAyBpR,EAAG3B,UAAY2B,EAAG/H,KAAK0Q,YAAY3I,EAAG3B,UAAW6X,EAAMlW,EAAGnD,KAAKgM,cAC5GsG,EAAY9F,EAAQ,IAAM6M,EAAO,IACrCpI,EAAI3B,YAAY6C,GAAYkH,EACxB9G,EAAQpP,EAAGtK,SAASoY,GACxBA,EAAI7W,OAASgX,EACTjO,EAAG/H,KAAKkP,cAAciI,EAAOH,GAAa,EAC5CzH,GAAO,IAAOxH,EAAG/H,KAAKoP,WAAW+H,EAAOH,EAAWE,GAAc,IAEjE3H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAEpEwE,IACFxE,GAAO,SAAW,EAAe,aAIvCxH,EAAG3B,UAAYyS,EAEb4F,IACFlP,GAAO,OAETA,GAAO,OACHwE,IACFxE,GAAO,QAAU,EAAe,OAChCuG,GAAkB,KAGtB,IAAIuJ,EAAetX,EAAGnD,KAAK0a,cAAgBvX,EAAGuN,cAC9C,GAAI6I,EAAYniB,OAAQ,CACtB,IAAIujB,EAAOpB,EACX,GAAIoB,EAGF,IAFA,IAAIzG,EAAc0G,GAAM,EACtBC,EAAKF,EAAKvjB,OAAS,EACdwjB,EAAKC,GAAI,CAEd,IAAItJ,EAAOtY,EADXib,EAAeyG,EAAKC,GAAM,IAE1B,GAAKzX,EAAGnD,KAAK0R,eAAgC,iBAARH,GAA+C,EAA3B5W,OAAOiK,KAAK2M,GAAMna,OAAa+L,EAAG/H,KAAKsQ,eAAe6F,EAAMpO,EAAG1C,MAAMmH,KAAO,CACnI,IAAIwM,EAAQjR,EAAG/H,KAAKgP,YAAY8J,GAE9B4G,GADAxI,EAAY9F,EAAQ4H,EACNqG,QAAiCjiB,IAAjB+Y,EAAKwJ,SACrC9J,EAAI9Y,OAASoZ,EACbN,EAAI3P,WAAa2N,EAAcmF,EAC/BnD,EAAI1P,cAAgB2N,EAAiB,IAAM/L,EAAG/H,KAAKwK,eAAesO,GAClEjD,EAAIzP,UAAY2B,EAAG/H,KAAK+Q,QAAQhJ,EAAG3B,UAAW0S,EAAc/Q,EAAGnD,KAAKgM,cACpEiF,EAAI3B,YAAY6C,GAAYhP,EAAG/H,KAAKkE,eAAe4U,GAC/C3B,EAAQpP,EAAGtK,SAASoY,GAExB,GADAA,EAAI7W,OAASgX,EACTjO,EAAG/H,KAAKkP,cAAciI,EAAOH,GAAa,EAAG,CAC/CG,EAAQpP,EAAG/H,KAAKoP,WAAW+H,EAAOH,EAAWE,GAC7C,IAAI6B,EAAW7B,MACV,CACD6B,EAAW/B,EACfzH,GAAO,QAAU,EAAc,MAAQ,EAAc,KAEvD,GAAImQ,EACFnQ,GAAO,IAAM,EAAU,QAClB,CACL,GAAI0P,GAAiBA,EAAcnG,GAAe,CAChDvJ,GAAO,SAAW,EAAa,kBAC3BkJ,IACFlJ,GAAO,8CAAgD,EAAU,MAAUxH,EAAG/H,KAAKiP,aAAa6J,GAAiB,OAEnHvJ,GAAO,OAAS,EAAe,aAC3BsJ,EAAoB9Q,EAAG3B,UACzBkX,EAAqBxJ,EADvB,IAOIkB,GALFkE,GAAmBnR,EAAG/H,KAAKiP,aAAa6J,GACtC/Q,EAAGnD,KAAKuU,yBACVpR,EAAG3B,UAAY2B,EAAG/H,KAAK+Q,QAAQ8H,EAAmBC,EAAc/Q,EAAGnD,KAAKgM,eAE1EkD,EAAiB/L,EAAG5B,cAAgB,aAChC6O,GAAaA,IAAc,IACpBjI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,yDAA4ExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,kCAAqC,GAAqB,QACnM,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,gBAELA,GADExH,EAAGnD,KAAKuU,uBACH,yBAEA,oCAAuC,GAAqB,MAErE5J,GAAO,MAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAEL6F,EAAQ7F,EACZA,EAAMyF,GAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCkE,EAAiBwJ,EACjBvV,EAAG3B,UAAYyS,EACftJ,GAAO,kBAEHwE,GACFxE,GAAO,SAAW,EAAa,kBAC3BkJ,IACFlJ,GAAO,8CAAgD,EAAU,MAAUxH,EAAG/H,KAAKiP,aAAa6J,GAAiB,OAEnHvJ,GAAO,OAAS,EAAe,uBAE/BA,GAAO,QAAU,EAAa,kBAC1BkJ,IACFlJ,GAAO,8CAAgD,EAAU,MAAUxH,EAAG/H,KAAKiP,aAAa6J,GAAiB,OAEnHvJ,GAAO,SAGXA,GAAO,IAAM,EAAU,OAGvBwE,IACFxE,GAAO,QAAU,EAAe,OAChCuG,GAAkB,MAK1B,GAAIwI,EAAetiB,OAAQ,CACzB,IAAI4jB,GAAOtB,EACX,GAAIsB,GAGF,IAFA,IAAIT,GAAYU,IAAM,EACpBC,GAAKF,GAAK5jB,OAAS,EACd6jB,GAAKC,IAAI,CAEV3J,EAAOiI,EADXe,GAAaS,GAAKC,IAAM,IAExB,GAAK9X,EAAGnD,KAAK0R,eAAgC,iBAARH,GAA+C,EAA3B5W,OAAOiK,KAAK2M,GAAMna,OAAa+L,EAAG/H,KAAKsQ,eAAe6F,EAAMpO,EAAG1C,MAAMmH,KAAO,CACnIqJ,EAAI9Y,OAASoZ,EACbN,EAAI3P,WAAa6B,EAAG7B,WAAa,qBAAuB6B,EAAG/H,KAAKgP,YAAYmQ,IAC5EtJ,EAAI1P,cAAgB4B,EAAG5B,cAAgB,sBAAwB4B,EAAG/H,KAAKwK,eAAe2U,IAEpF5P,GADEkJ,EACK,IAAM,EAAoB,MAAQ,EAAoB,mBAAqB,EAAU,eAAiB,EAAS,OAAS,EAAS,IAAM,EAAoB,YAAc,EAAS,aAAe,EAAS,MAAQ,EAAoB,IAAM,EAAS,MAErP,aAAe,EAAS,OAAS,EAAU,OAEpDlJ,GAAO,QAAWxH,EAAGzB,WAAW6Y,IAAe,SAAW,EAAS,QACnEtJ,EAAIzP,UAAY2B,EAAG/H,KAAK0Q,YAAY3I,EAAG3B,UAAW6X,EAAMlW,EAAGnD,KAAKgM,cAC5DsG,EAAY9F,EAAQ,IAAM6M,EAAO,IACrCpI,EAAI3B,YAAY6C,GAAYkH,EACxB9G,EAAQpP,EAAGtK,SAASoY,GACxBA,EAAI7W,OAASgX,EACTjO,EAAG/H,KAAKkP,cAAciI,EAAOH,GAAa,EAC5CzH,GAAO,IAAOxH,EAAG/H,KAAKoP,WAAW+H,EAAOH,EAAWE,GAAc,IAEjE3H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAEpEwE,IACFxE,GAAO,SAAW,EAAe,aAEnCA,GAAO,MACHwE,IACFxE,GAAO,SAAW,EAAe,aAEnCA,GAAO,OACHwE,IACFxE,GAAO,QAAU,EAAe,OAChCuG,GAAkB,OAU5B,OAJI/B,IACFxE,GAAO,IAAM,EAAmB,QAAU,EAAU,iBAEtDA,EAAMxH,EAAG/H,KAAKsP,YAAYC,KAI1B,IAAIwQ,GAAG,CAAC,SAAStkB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAgCsN,EAAIwL,GACnD,IAAIhE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9B8C,EAAQ,SAAWhD,EACnBoC,EAAM9N,EAAG/H,KAAKc,KAAKiH,GAEvB8N,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAE/B,GADAnE,GAAO,OAAS,EAAU,aACrBxH,EAAGnD,KAAK0R,eAAmC,iBAAXzY,GAAqD,EAA9B0B,OAAOiK,KAAK3L,GAAS7B,OAAa+L,EAAG/H,KAAKsQ,eAAezS,EAASkK,EAAG1C,MAAMmH,KAAO,CAC5IqJ,EAAI9Y,OAASc,EACbgY,EAAI3P,WAAa2N,EACjBgC,EAAI1P,cAAgB2N,EACpB,IAAImK,EAAO,MAAQxK,EACjBqD,EAAO,MAAQrD,EACf2C,EAAK,IAAM3C,EACXuM,EAAe,OAAU/B,EAAO,OAEhCjH,EAAY,QADDnB,EAAIjC,UAAY7L,EAAG6L,UAAY,GAE1CsK,EAAkB,iBAAmBzK,EACrCgF,EAAiB1Q,EAAGnD,KAAK8T,cACzB1C,EAAiBjO,EAAG/I,OAClByZ,IACFlJ,GAAO,QAAU,EAAoB,kBAGrCA,GADEkJ,EACK,IAAM,EAAoB,MAAQ,EAAoB,mBAAqB,EAAU,eAAiB,EAAS,OAAS,EAAS,IAAM,EAAoB,YAAc,EAAS,aAAe,EAAS,MAAQ,EAAoB,IAAM,EAAS,MAErP,aAAe,EAAS,OAAS,EAAU,OAEpDlJ,GAAO,iBAAmB,EAAS,cACnC,IAAI2H,EAAY+G,EACZvH,EAAgB3O,EAAGuN,cACvBvN,EAAGuN,cAAgBO,EAAIP,eAAgB,EACvC,IAAI6B,EAAQpP,EAAGtK,SAASoY,GACxBA,EAAI7W,OAASgX,EACTjO,EAAG/H,KAAKkP,cAAciI,EAAOH,GAAa,EAC5CzH,GAAO,IAAOxH,EAAG/H,KAAKoP,WAAW+H,EAAOH,EAAWE,GAAc,IAEjE3H,GAAO,QAAU,EAAc,MAAQ,EAAc,KAAO,EAAU,IAExExH,EAAGuN,cAAgBO,EAAIP,cAAgBoB,EACvCnH,GAAO,SAAW,EAAe,gBAAkB,EAAO,aAAe,EAAS,KAAO,EAAO,YAAc,EAAO,iBAAmB,EAAO,oBAAsB,EAAS,sBACtJ,IAApBxH,EAAGkN,cACL1F,GAAO,8DAAiFxH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,+BAAkC,EAAiB,QACjM,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,iCAAqC,EAAiB,oBAE3DxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,gFACFxH,EAAGuN,eAAiBvB,IAGrBxE,GADExH,EAAG6H,MACE,wCAEA,8CAGPmE,IACFxE,GAAO,YAETA,GAAO,OAMT,OAJIwE,IACFxE,GAAO,SAAmC,EAAU,iBAEtDA,EAAMxH,EAAG/H,KAAKsP,YAAYC,KAI1B,IAAI0Q,GAAG,CAAC,SAASxkB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAAsBsN,EAAIwL,GACzC,IAQI/N,EAAQ0a,EARR3Q,EAAM,IAENoE,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9B6C,EAAS,QANFzO,EAAG2L,MAQd,GAAe,KAAX7V,GAA6B,MAAXA,EAGlBqiB,EAFEnY,EAAG/B,QACLR,EAASuC,EAAG6H,MACD,aAEXpK,GAAmC,IAA1BuC,EAAGtE,KAAK1G,OAAOyI,OACb,sBAER,CACL,IAAI2a,EAAUpY,EAAG1B,WAAW0B,EAAG/I,OAAQnB,EAASkK,EAAG/B,QACnD,QAAgB5I,IAAZ+iB,EAAuB,CACzB,IAAIC,EAAWrY,EAAGnL,gBAAgBqC,QAAQ8I,EAAG/I,OAAQnB,GACrD,GAA2B,QAAvBkK,EAAGnD,KAAKyb,YAAuB,CACjCtY,EAAGtB,OAAOI,MAAMuZ,IACZpL,EAAaA,GAAc,IACpBjI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,qDAAwExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,sBAA0B/L,EAAG/H,KAAKiP,aAAapR,GAAY,QAChM,IAArBkK,EAAGnD,KAAKsQ,WACV3F,GAAO,0CAA+CxH,EAAG/H,KAAKiP,aAAapR,GAAY,MAErFkK,EAAGnD,KAAKuQ,UACV5F,GAAO,cAAiBxH,EAAG/H,KAAKkE,eAAerG,GAAY,mCAAsCkK,EAAa,WAAI,YAAc,EAAU,KAE5IwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EACZA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAE/BmE,IACFxE,GAAO,sBAEJ,CAAA,GAA2B,UAAvBxH,EAAGnD,KAAKyb,YAMjB,MAAM,IAAItY,EAAGnL,gBAAgBmL,EAAG/I,OAAQnB,EAASuiB,GALjDrY,EAAGtB,OAAOyT,KAAKkG,GACXrM,IACFxE,GAAO,uBAKN,GAAI4Q,EAAQzY,OAAQ,CACzB,IAAImO,EAAM9N,EAAG/H,KAAKc,KAAKiH,GACvB8N,EAAInC,QACJ,IAAIqC,EAAa,QAAUF,EAAInC,MAC/BmC,EAAI9Y,OAASojB,EAAQpjB,OACrB8Y,EAAI3P,WAAa,GACjB2P,EAAI1P,cAAgBtI,EAEpB0R,GAAO,IADKxH,EAAGtK,SAASoY,GAAKjK,QAAQ,oBAAqBuU,EAAQtkB,MAC3C,IACnBkY,IACFxE,GAAO,QAAU,EAAe,aAGlC/J,GAA4B,IAAnB2a,EAAQ3a,QAAoBuC,EAAG6H,QAA4B,IAAnBuQ,EAAQ3a,OACzD0a,EAAWC,EAAQtkB,KAGvB,GAAIqkB,EAAU,CACZ,IAAIlL,GAAAA,EAAaA,GAAc,IACpBjI,KAAKwC,GAChBA,EAAM,GAEJA,GADExH,EAAGnD,KAAKqT,YACH,IAAM,EAAa,eAEnB,IAAM,EAAa,KAE5B1I,GAAO,IAAM,EAAU,qBACH,MAAhBxH,EAAG3B,YACLmJ,GAAO,MAASxH,EAAY,WAK9B,IAAIuY,EADJ/Q,GAAO,OAFWoE,EAAW,QAAWA,EAAW,GAAM,IAAM,cAEhC,OADPA,EAAW5L,EAAGmM,YAAYP,GAAY,sBACC,gBAG/D,GADApE,EAAMyF,EAAWK,MACb7P,EAAQ,CACV,IAAKuC,EAAG6H,MAAO,MAAM,IAAIhU,MAAM,0CAC3BmY,IACFxE,GAAO,QAAU,EAAW,MAE9BA,GAAO,gBAAkB,EAAmB,KACxCwE,IACFxE,GAAO,IAAM,EAAW,aAE1BA,GAAO,4KACHwE,IACFxE,GAAO,IAAM,EAAW,cAE1BA,GAAO,MACHwE,IACFxE,GAAO,QAAU,EAAW,aAG9BA,GAAO,SAAW,EAAmB,uCAAyC,EAAa,0CAA4C,EAAa,wCAChJwE,IACFxE,GAAO,YAIb,OAAOA,IAGP,IAAIgR,GAAG,CAAC,SAAS9kB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA2BsN,EAAIwL,GAC9C,IAAIhE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBQ,EAAUlM,EAAGnD,KAAKwM,OAASvT,GAAWA,EAAQuT,MAE9C6C,IACF1E,GAAO,cAAgB,EAAS,MAASxH,EAAG/H,KAAKmR,QAAQtT,EAAQuT,MAAOuC,EAAU5L,EAAGmM,aAAgB,MAKvG,IAAIsF,EAAW,SAAW/F,EAC1B,IAAKQ,EACH,GAAIpW,EAAQ7B,OAAS+L,EAAGnD,KAAKoa,cAAgBjX,EAAGhL,OAAOuP,YAAc/M,OAAOiK,KAAKzB,EAAGhL,OAAOuP,YAAYtQ,OAAQ,CAC7G,IAAI+iB,EAAY,GACZ7I,EAAOrY,EACX,GAAIqY,EAGF,IAFA,IAAIyC,EAAWuG,GAAM,EACnB7I,EAAKH,EAAKla,OAAS,EACdkjB,EAAK7I,GAAI,CACdsC,EAAYzC,EAAKgJ,GAAM,GACvB,IAAIsB,EAAezY,EAAGhL,OAAOuP,WAAWqM,GAClC6H,IAAiBzY,EAAGnD,KAAK0R,eAAwC,iBAAhBkK,GAA+D,EAAnCjhB,OAAOiK,KAAKgX,GAAcxkB,OAAa+L,EAAG/H,KAAKsQ,eAAekQ,EAAczY,EAAG1C,MAAMmH,QACtKuS,EAAUA,EAAU/iB,QAAU2c,SAKhCoG,EAAYlhB,EAGpB,GAAIoW,GAAW8K,EAAU/iB,OAAQ,CAC/B,IAAI6c,EAAoB9Q,EAAG3B,UACzBqa,EAAgBxM,GAA+BlM,EAAGnD,KAAKoa,cAA5BD,EAAU/iB,OACrCyc,EAAiB1Q,EAAGnD,KAAK8T,cAC3B,GAAI3E,EAEF,GADAxE,GAAO,eAAiB,EAAS,KAC7BkR,EAAe,CACZxM,IACH1E,GAAO,QAAU,EAAa,qBAAuB,EAAgB,MAEvE,IAEE2J,EAAmB,QADnBD,EAAgB,SAAWxF,EAAO,KADhC2C,EAAK,IAAM3C,GACgC,KACA,OAC3C1L,EAAGnD,KAAKuU,yBACVpR,EAAG3B,UAAY2B,EAAG/H,KAAK0Q,YAAYmI,EAAmBI,EAAelR,EAAGnD,KAAKgM,eAE/ErB,GAAO,QAAU,EAAW,YACxB0E,IACF1E,GAAO,cAAgB,EAAS,mBAAqB,EAAW,0CAA4C,EAAS,MAAQ,EAAW,oBAE1IA,GAAO,aAAe,EAAO,SAAW,EAAO,MAAQ,EAAa,YAAc,EAAO,SAAW,EAAW,MAAQ,EAAU,IAAM,EAAa,IAAM,EAAO,oBAC7JkJ,IACFlJ,GAAO,8CAAgD,EAAU,KAAO,EAAa,IAAM,EAAO,OAEpGA,GAAO,UAAY,EAAW,cAC1B0E,IACF1E,GAAO,UAGLyF,EAAaA,GAAc,IACpBjI,KAFXwC,GAAO,UAAY,EAAW,UAG9BA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,yDAA4ExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,kCAAqC,EAAqB,QACnM,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,gBAELA,GADExH,EAAGnD,KAAKuU,uBACH,yBAEA,oCAAuC,EAAqB,MAErE5J,GAAO,MAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EACZA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,iBACF,CACLA,GAAO,SACP,IAAI6J,EAAO2F,EACX,GAAI3F,EAGF,IAFA,IAAkBhD,GAAM,EACtBkD,EAAKF,EAAKpd,OAAS,EACdoa,EAAKkD,GAAI,CACdR,EAAeM,EAAKhD,GAAM,GACtBA,IACF7G,GAAO,QAITA,GAAO,SADLwJ,EAAW3H,GADT4H,EAAQjR,EAAG/H,KAAKgP,YAAY8J,KAEF,kBAC1BL,IACFlJ,GAAO,8CAAgD,EAAU,MAAUxH,EAAG/H,KAAKiP,aAAa6J,GAAiB,OAEnHvJ,GAAO,gBAAkB,EAAS,MAASxH,EAAG/H,KAAKkE,eAAe6D,EAAGnD,KAAKgM,aAAekI,EAAeE,GAAU,OAGtHzJ,GAAO,QACP,IAKIyF,EAJFkE,EAAmB,QADjBD,EAAgB,UAAYxF,GACe,OAC3C1L,EAAGnD,KAAKuU,yBACVpR,EAAG3B,UAAY2B,EAAGnD,KAAKgM,aAAe7I,EAAG/H,KAAK0Q,YAAYmI,EAAmBI,GAAe,GAAQJ,EAAoB,MAAQI,IAE9HjE,EAAaA,GAAc,IACpBjI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,yDAA4ExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,kCAAqC,EAAqB,QACnM,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,gBAELA,GADExH,EAAGnD,KAAKuU,uBACH,yBAEA,oCAAuC,EAAqB,MAErE5J,GAAO,MAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAEL6F,EAAQ7F,EACZA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,kBAGT,GAAIkR,EAAe,CACZxM,IACH1E,GAAO,QAAU,EAAa,qBAAuB,EAAgB,MAEvE,IACE0J,EACAC,EAAmB,QADnBD,EAAgB,SAAWxF,EAAO,KADhC2C,EAAK,IAAM3C,GACgC,KACA,OAC3C1L,EAAGnD,KAAKuU,yBACVpR,EAAG3B,UAAY2B,EAAG/H,KAAK0Q,YAAYmI,EAAmBI,EAAelR,EAAGnD,KAAKgM,eAE3EqD,IACF1E,GAAO,QAAU,EAAa,sBAAwB,EAAa,sBAC3C,IAApBxH,EAAGkN,cACL1F,GAAO,yDAA4ExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,kCAAqC,EAAqB,QACnM,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,gBAELA,GADExH,EAAGnD,KAAKuU,uBACH,yBAEA,oCAAuC,EAAqB,MAErE5J,GAAO,MAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,0FAA4F,EAAa,sBAElHA,GAAO,aAAe,EAAO,SAAW,EAAO,MAAQ,EAAa,YAAc,EAAO,aAAe,EAAU,IAAM,EAAa,IAAM,EAAO,oBAC9IkJ,IACFlJ,GAAO,8CAAgD,EAAU,KAAO,EAAa,IAAM,EAAO,OAEpGA,GAAO,qBACiB,IAApBxH,EAAGkN,cACL1F,GAAO,yDAA4ExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,kCAAqC,EAAqB,QACnM,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,gBAELA,GADExH,EAAGnD,KAAKuU,uBACH,yBAEA,oCAAuC,EAAqB,MAErE5J,GAAO,MAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,mFACH0E,IACF1E,GAAO,aAEJ,CACL,IAAIgQ,EAAOR,EACX,GAAIQ,EAGF,IAFA,IAAIzG,EAAc0G,GAAM,EACtBC,EAAKF,EAAKvjB,OAAS,EACdwjB,EAAKC,GAAI,CACd3G,EAAeyG,EAAKC,GAAM,GAC1B,IAAIxG,EAAQjR,EAAG/H,KAAKgP,YAAY8J,GAE9BC,GADAG,EAAmBnR,EAAG/H,KAAKiP,aAAa6J,GAC7B1H,EAAQ4H,GACjBjR,EAAGnD,KAAKuU,yBACVpR,EAAG3B,UAAY2B,EAAG/H,KAAK+Q,QAAQ8H,EAAmBC,EAAc/Q,EAAGnD,KAAKgM,eAE1ErB,GAAO,SAAW,EAAa,kBAC3BkJ,IACFlJ,GAAO,8CAAgD,EAAU,MAAUxH,EAAG/H,KAAKiP,aAAa6J,GAAiB,OAEnHvJ,GAAO,qBACiB,IAApBxH,EAAGkN,cACL1F,GAAO,yDAA4ExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,kCAAqC,EAAqB,QACnM,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,gBAELA,GADExH,EAAGnD,KAAKuU,uBACH,yBAEA,oCAAuC,EAAqB,MAErE5J,GAAO,MAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAETA,GAAO,kFAKfxH,EAAG3B,UAAYyS,OACN9E,IACTxE,GAAO,gBAET,OAAOA,IAGP,IAAImR,GAAG,CAAC,SAASjlB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA8BsN,EAAIwL,GACjD,IAUEC,EAVEjE,EAAM,IACNkE,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAAOwW,GACpBM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UACzB5C,EAAQ,QAAUuC,GAAY,IAC9B6C,EAAS,QAAU/C,EACnBQ,EAAUlM,EAAGnD,KAAKwM,OAASvT,GAAWA,EAAQuT,MAQlD,GAJEoC,EAFES,GACF1E,GAAO,cAAgB,EAAS,MAASxH,EAAG/H,KAAKmR,QAAQtT,EAAQuT,MAAOuC,EAAU5L,EAAGmM,aAAgB,KACtF,SAAWT,GAEX5V,GAEZA,GAAWoW,KAAoC,IAAxBlM,EAAGnD,KAAK8W,YAAuB,CACrDzH,IACF1E,GAAO,QAAU,EAAW,SAAW,EAAiB,iBAAmB,EAAiB,mBAAqB,EAAW,4BAA8B,EAAiB,kBAAsB,EAAW,qBAE9MA,GAAO,YAAc,EAAU,aAAe,EAAW,6BACzD,IAAIoR,EAAY5Y,EAAGhL,OAAOmW,OAASnL,EAAGhL,OAAOmW,MAAMhH,KACjD0U,EAAexV,MAAMC,QAAQsV,GAC/B,IAAKA,GAA0B,UAAbA,GAAsC,SAAbA,GAAyBC,IAAgD,GAA/BD,EAAUxG,QAAQ,WAAgD,GAA9BwG,EAAUxG,QAAQ,UACzI5K,GAAO,uDAAyD,EAAU,QAAU,EAAU,WAAa,EAAW,qCAEtHA,GAAO,yDAA2D,EAAU,QAE5EA,GAAO,QAAWxH,EAAG/H,KADP,iBAAmB4gB,EAAe,IAAM,KACnBD,EAAW,QAAQ,GAAS,eAC3DC,IACFrR,GAAO,sDAETA,GAAO,gDAAoD,EAAW,sEAExEA,GAAO,MACH0E,IACF1E,GAAO,SAGT,IAAIyF,EAAaA,GAAc,GAC/BA,EAAWjI,KAFXwC,GAAO,SAAW,EAAW,UAG7BA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,4DAA+ExH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,8BAC5I,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,mGAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,eAELA,GADE0E,EACK,kBAAoB,EAEpB,GAAK,EAEd1E,GAAO,2CAA8CxH,EAAa,WAAI,YAAc,EAAU,KAEhGwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EACZA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,MACHwE,IACFxE,GAAO,iBAGLwE,IACFxE,GAAO,iBAGX,OAAOA,IAGP,IAAIsR,GAAG,CAAC,SAASplB,EAAQf,EAAOD,GAClC,aACAC,EAAOD,QAAU,SAA2BsN,EAAIwL,GAC9C,IAAIhE,EAAM,GACN/J,GAA8B,IAArBuC,EAAGhL,OAAOyI,OACrBsb,EAAe/Y,EAAG/H,KAAKuQ,qBAAqBxI,EAAGhL,OAAQgL,EAAG1C,MAAMmH,IAAK,QACrEoG,EAAM7K,EAAGhN,KAAKwO,OAAOxB,EAAGhL,QAC1B,GAAIgL,EAAGnD,KAAK0R,eAAgB,CAC1B,IAAIyK,EAAchZ,EAAG/H,KAAKyQ,mBAAmB1I,EAAGhL,OAAQgL,EAAG1C,MAAM6H,UACjE,GAAI6T,EAAa,CACf,IAAIC,EAAe,oBAAsBD,EACzC,GAA+B,QAA3BhZ,EAAGnD,KAAK0R,eACP,MAAM,IAAI1a,MAAMolB,GADiBjZ,EAAGtB,OAAOyT,KAAK8G,IAezD,GAXIjZ,EAAG9B,QACLsJ,GAAO,mBACH/J,IACFuC,EAAG6H,OAAQ,EACXL,GAAO,UAETA,GAAO,sFACHqD,IAAQ7K,EAAGnD,KAAKa,YAAcsC,EAAGnD,KAAK8B,eACxC6I,GAAO,kBAA2BqD,EAAM,SAGpB,kBAAb7K,EAAGhL,SAAyB+jB,IAAgB/Y,EAAGhL,OAAOgB,KAAO,CACtE,IACI0V,EAAO1L,EAAG2L,MACVC,EAAW5L,EAAG6L,UACd/V,EAAUkK,EAAGhL,OAHbwW,EAAW,gBAIXM,EAAc9L,EAAG7B,WAAa6B,EAAG/H,KAAKgP,YAAYuE,GAClDO,EAAiB/L,EAAG5B,cAAgB,IAAMoN,EAC1CQ,GAAiBhM,EAAGnD,KAAKoP,UAEzB5C,EAAQ,QAAUuC,GAAY,IAC9B6C,EAAS,QAAU/C,EACvB,IAAkB,IAAd1L,EAAGhL,OAAkB,CACnBgL,EAAG9B,MACL8N,GAAgB,EAEhBxE,GAAO,QAAU,EAAW,cAE1ByF,EAAaA,GAAc,IACpBjI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,6DAAiGxH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,kBAC9J,IAArB/L,EAAGnD,KAAKsQ,WACV3F,GAAO,0CAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,mDAAsDxH,EAAa,WAAI,YAAc,EAAU,KAExGwH,GAAO,OAEPA,GAAO,OAET,IAAI6F,EAAQ7F,EACZA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,oFAK/BL,GAFAxH,EAAG9B,MACDT,EACK,iBAEA,yCAGF,QAAU,EAAW,YAMhC,OAHIuC,EAAG9B,QACLsJ,GAAO,yBAEFA,EAET,GAAIxH,EAAG9B,MAAO,CACZ,IAAIgb,EAAOlZ,EAAG9B,MACZwN,EAAO1L,EAAG2L,MAAQ,EAClBC,EAAW5L,EAAG6L,UAAY,EAC1BxC,EAAQ,OAKV,GAJArJ,EAAGmZ,OAASnZ,EAAG9J,QAAQmB,SAAS2I,EAAGhN,KAAKwO,OAAOxB,EAAGtE,KAAK1G,SACvDgL,EAAG/I,OAAS+I,EAAG/I,QAAU+I,EAAGmZ,cACrBnZ,EAAG9B,MACV8B,EAAGmM,YAAc,MAAC9W,QACQA,IAAtB2K,EAAGhL,OAAO4iB,SAAyB5X,EAAGnD,KAAK0a,aAAevX,EAAGnD,KAAKuc,eAAgB,CACpF,IAAIC,EAAc,wCAClB,GAA+B,QAA3BrZ,EAAGnD,KAAKuc,eACP,MAAM,IAAIvlB,MAAMwlB,GADiBrZ,EAAGtB,OAAOyT,KAAKkH,GAGvD7R,GAAO,wBACPA,GAAO,wBACPA,GAAO,qDACF,CACDkE,EAAO1L,EAAG2L,MAEZtC,EAAQ,SADRuC,EAAW5L,EAAG6L,YACgB,IAEhC,GADIhB,IAAK7K,EAAG/I,OAAS+I,EAAG9J,QAAQiB,IAAI6I,EAAG/I,OAAQ4T,IAC3CpN,IAAWuC,EAAG6H,MAAO,MAAM,IAAIhU,MAAM,+BACzC2T,GAAO,aAAe,EAAS,aAE7BiH,EAAS,QAAU/C,EACrBM,GAAiBhM,EAAGnD,KAAKoP,UAD3B,IAEEqN,EAAkB,GAClBC,EAAkB,GAEhBC,EAAcxZ,EAAGhL,OAAOmP,KAC1B0U,EAAexV,MAAMC,QAAQkW,GAa/B,GAZIA,GAAexZ,EAAGnD,KAAK4c,WAAmC,IAAvBzZ,EAAGhL,OAAOykB,WAC3CZ,GACkC,GAAhCW,EAAYpH,QAAQ,UAAeoH,EAAcA,EAAYpU,OAAO,SAChD,QAAfoU,IACTA,EAAc,CAACA,EAAa,QAC5BX,GAAe,IAGfA,GAAsC,GAAtBW,EAAYvlB,SAC9BulB,EAAcA,EAAY,GAC1BX,GAAe,GAEb7Y,EAAGhL,OAAOgB,MAAQ+iB,EAAc,CAClC,GAA0B,QAAtB/Y,EAAGnD,KAAK6c,WACV,MAAM,IAAI7lB,MAAM,qDAAuDmM,EAAG5B,cAAgB,8BAC1D,IAAvB4B,EAAGnD,KAAK6c,aACjBX,GAAe,EACf/Y,EAAGtB,OAAOyT,KAAK,6CAA+CnS,EAAG5B,cAAgB,MAMrF,GAHI4B,EAAGhL,OAAOkQ,UAAYlF,EAAGnD,KAAKqI,WAChCsC,GAAO,IAAOxH,EAAG1C,MAAMmH,IAAIS,SAASpR,KAAKkM,EAAI,aAE3CwZ,EAAa,CACf,GAAIxZ,EAAGnD,KAAK8c,YACV,IAAIC,EAAiB5Z,EAAG/H,KAAK6O,cAAc9G,EAAGnD,KAAK8c,YAAaH,GAElE,IAAIK,EAAc7Z,EAAG1C,MAAMoH,MAAM8U,GACjC,GAAII,GAAkBf,IAAgC,IAAhBgB,GAAyBA,IAAgBC,EAAgBD,GAAe,CACxG/N,EAAc9L,EAAG7B,WAAa,QAChC4N,EAAiB/L,EAAG5B,cAAgB,QAClC0N,EAAc9L,EAAG7B,WAAa,QAChC4N,EAAiB/L,EAAG5B,cAAgB,QAGtC,GADAoJ,GAAO,QAAWxH,EAAG/H,KADT4gB,EAAe,iBAAmB,iBACXW,EAAanQ,GAAO,GAAS,OAC5DuQ,EAAgB,CAClB,IAAIG,EAAY,WAAarO,EAC3BsO,EAAW,UAAYtO,EACzBlE,GAAO,QAAU,EAAc,aAAe,EAAU,KAC7B,SAAvBxH,EAAGnD,KAAK8c,cACVnS,GAAO,QAAU,EAAc,iCAAqC,EAAU,MAAQ,EAAc,gBAEtGA,GAAO,QAAU,EAAa,iBAC9B,IAAIyS,EAAkB,GAClB9L,EAAOyL,EACX,GAAIzL,EAGF,IAFA,IAAI+L,EAAO7L,GAAM,EACfC,EAAKH,EAAKla,OAAS,EACdoa,EAAKC,GACV4L,EAAQ/L,EAAKE,GAAM,GACfA,IACF7G,GAAO,QAAU,EAAa,qBAC9ByS,GAAmB,KAEM,SAAvBja,EAAGnD,KAAK8c,aAAmC,SAATO,IACpC1S,GAAO,QAAU,EAAc,kBAAsB,EAAU,mBAAqB,EAAa,MAAQ,EAAU,MAAQ,EAAU,QAAU,EAAc,aAAe,EAAU,SAE3K,UAAT0S,EACF1S,GAAO,QAAU,EAAc,mBAAuB,EAAc,kBAAsB,EAAa,WAAe,EAAU,cAAgB,EAAU,cAAgB,EAAa,UACrK,UAAT0S,GAA8B,WAATA,GAC9B1S,GAAO,QAAU,EAAc,oBAAwB,EAAU,iBAAmB,EAAc,mBAAuB,EAAU,OAAS,EAAU,QAAU,EAAU,IAC7J,WAAT0S,IACF1S,GAAO,SAAW,EAAU,SAE9BA,GAAO,MAAQ,EAAa,OAAS,EAAU,MAC7B,WAAT0S,EACT1S,GAAO,QAAU,EAAU,mBAAuB,EAAU,aAAe,EAAU,cAAgB,EAAa,sBAAwB,EAAU,kBAAsB,EAAU,WAAa,EAAa,YAC5L,QAAT0S,EACT1S,GAAO,QAAU,EAAU,cAAkB,EAAU,aAAe,EAAU,eAAiB,EAAa,YAC9E,SAAvBxH,EAAGnD,KAAK8c,aAAmC,SAATO,IAC3C1S,GAAO,QAAU,EAAc,mBAAuB,EAAc,mBAAuB,EAAc,oBAAwB,EAAU,aAAe,EAAa,OAAS,EAAU,QAK5LyF,EAAaA,GAAc,IACpBjI,KAFXwC,GAAO,IAAM,EAAoB,QAAU,EAAa,wBAGxDA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,qDAAyFxH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,uBAE7KvE,GADEqR,EACK,GAAMW,EAAYhZ,KAAK,KAEvB,GAAK,EAEdgH,GAAO,QACkB,IAArBxH,EAAGnD,KAAKsQ,WACV3F,GAAO,0BAELA,GADEqR,EACK,GAAMW,EAAYhZ,KAAK,KAEvB,GAAK,EAEdgH,GAAO,MAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAEL6F,EAAQ7F,EACZA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,cACP,IAAI2I,EAAcvE,EAAW,QAAWA,EAAW,GAAM,IAAM,aAE/DpE,GAAO,IAAM,EAAU,MAAQ,EAAa,KACvCoE,IACHpE,GAAO,OAAS,EAAgB,mBAElCA,GAAO,IAAM,EAAgB,KALLoE,EAAW5L,EAAGmM,YAAYP,GAAY,sBAKH,OAAS,EAAa,WAC5E,EACDqB,EAAaA,GAAc,IACpBjI,KAAKwC,GAChBA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,qDAAyFxH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,uBAE7KvE,GADEqR,EACK,GAAMW,EAAYhZ,KAAK,KAEvB,GAAK,EAEdgH,GAAO,QACkB,IAArBxH,EAAGnD,KAAKsQ,WACV3F,GAAO,0BAELA,GADEqR,EACK,GAAMW,EAAYhZ,KAAK,KAEvB,GAAK,EAEdgH,GAAO,MAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAEL6F,EAAQ7F,EACZA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAGrCL,GAAO,OAGX,GAAIxH,EAAGhL,OAAOgB,OAAS+iB,EACrBvR,GAAO,IAAOxH,EAAG1C,MAAMmH,IAAIzO,KAAKlC,KAAKkM,EAAI,QAAW,IAChDgM,IACFxE,GAAO,qBAELA,GADE0R,EACK,IAEA,QAAU,EAEnB1R,GAAO,OACP+R,GAAmB,SAEhB,CACL,IAAIlI,EAAOrR,EAAG1C,MACd,GAAI+T,EAGF,IAFA,IAAiBC,GAAM,EACrBC,EAAKF,EAAKpd,OAAS,EACdqd,EAAKC,GAEV,GAAIuI,EADJD,EAAcxI,EAAKC,GAAM,IACS,CAIhC,GAHIuI,EAAY1V,OACdqD,GAAO,QAAWxH,EAAG/H,KAAK6N,cAAc+T,EAAY1V,KAAMkF,GAAU,QAElErJ,EAAGnD,KAAK0a,YACV,GAAwB,UAApBsC,EAAY1V,MAAoBnE,EAAGhL,OAAOuP,WAAY,CACpDzO,EAAUkK,EAAGhL,OAAOuP,WAAxB,IAEIiT,EADYhgB,OAAOiK,KAAK3L,GAE5B,GAAI0hB,EAGF,IAFA,IAAIzG,EAAc0G,GAAM,EACtBC,EAAKF,EAAKvjB,OAAS,EACdwjB,EAAKC,GAAI,CAGd,QAAqBriB,KADjB+Y,EAAOtY,EADXib,EAAeyG,EAAKC,GAAM,KAEjBG,QAAuB,CAC9B,IAAIzI,EAAY9F,EAAQrJ,EAAG/H,KAAKgP,YAAY8J,GAC5C,GAAI/Q,EAAGuN,eACL,GAAIvN,EAAGnD,KAAKuc,eAAgB,CACtBC,EAAc,2BAA6BlK,EAC/C,GAA+B,QAA3BnP,EAAGnD,KAAKuc,eACP,MAAM,IAAIvlB,MAAMwlB,GADiBrZ,EAAGtB,OAAOyT,KAAKkH,SAIvD7R,GAAO,QAAU,EAAc,kBACJ,SAAvBxH,EAAGnD,KAAK0a,cACV/P,GAAO,OAAS,EAAc,gBAAkB,EAAc,YAEhEA,GAAO,MAAQ,EAAc,MAE3BA,GADyB,UAAvBxH,EAAGnD,KAAK0a,YACH,IAAOvX,EAAGxB,WAAW4P,EAAKwJ,SAAY,IAEtC,IAAOpN,KAAKC,UAAU2D,EAAKwJ,SAAY,IAEhDpQ,GAAO,YAKV,GAAwB,SAApBqS,EAAY1V,MAAmBd,MAAMC,QAAQtD,EAAGhL,OAAOmW,OAAQ,CACxE,IAAI0M,EAAO7X,EAAGhL,OAAOmW,MACrB,GAAI0M,EACF,CAAUxJ,GAAM,EAEhB,IAFA,IAAID,EACF2J,EAAKF,EAAK5jB,OAAS,EACdoa,EAAK0J,GAEV,QAAqB1iB,KADrB+Y,EAAOyJ,EAAKxJ,GAAM,IACTuJ,QAAuB,CAC1BzI,EAAY9F,EAAQ,IAAMgF,EAAK,IACnC,GAAIrO,EAAGuN,eACL,GAAIvN,EAAGnD,KAAKuc,eAAgB,CACtBC,EAAc,2BAA6BlK,EAC/C,GAA+B,QAA3BnP,EAAGnD,KAAKuc,eACP,MAAM,IAAIvlB,MAAMwlB,GADiBrZ,EAAGtB,OAAOyT,KAAKkH,SAIvD7R,GAAO,QAAU,EAAc,kBACJ,SAAvBxH,EAAGnD,KAAK0a,cACV/P,GAAO,OAAS,EAAc,gBAAkB,EAAc,YAEhEA,GAAO,MAAQ,EAAc,MAE3BA,GADyB,UAAvBxH,EAAGnD,KAAK0a,YACH,IAAOvX,EAAGxB,WAAW4P,EAAKwJ,SAAY,IAEtC,IAAOpN,KAAKC,UAAU2D,EAAKwJ,SAAY,IAEhDpQ,GAAO,OAOnB,IAAI2S,EAAON,EAAYzV,MACvB,GAAI+V,EAGF,IAFA,IAAIxK,EAAOyK,GAAM,EACfC,EAAKF,EAAKlmB,OAAS,EACdmmB,EAAKC,GAEV,GAAIC,EADJ3K,EAAQwK,EAAKC,GAAM,IACQ,CACzB,IAAIhL,EAAQO,EAAM7b,KAAKkM,EAAI2P,EAAMrP,QAASuZ,EAAY1V,MAClDiL,IACF5H,GAAO,IAAM,EAAU,IACnBwE,IACFsN,GAAmB,MAU7B,GAJItN,IACFxE,GAAO,IAAM,EAAoB,IACjC8R,EAAkB,IAEhBO,EAAY1V,OACdqD,GAAO,MACHgS,GAAeA,IAAgBK,EAAY1V,OAASyV,GAAgB,CAEtE,IAEI3M,EAFAnB,EAAc9L,EAAG7B,WAAa,QAChC4N,EAAiB/L,EAAG5B,cAAgB,SAClC6O,EAAaA,GAAc,IACpBjI,KAJXwC,GAAO,YAKPA,EAAM,IACkB,IAApBxH,EAAGkN,cACL1F,GAAO,qDAAyFxH,EAAY,UAAI,kBAAqBA,EAAG/H,KAAKkE,eAAe4P,GAAmB,uBAE7KvE,GADEqR,EACK,GAAMW,EAAYhZ,KAAK,KAEvB,GAAK,EAEdgH,GAAO,QACkB,IAArBxH,EAAGnD,KAAKsQ,WACV3F,GAAO,0BAELA,GADEqR,EACK,GAAMW,EAAYhZ,KAAK,KAEvB,GAAK,EAEdgH,GAAO,MAELxH,EAAGnD,KAAKuQ,UACV5F,GAAO,6BAA+B,EAAgB,mCAAsCxH,EAAa,WAAI,YAAc,EAAU,KAEvIwH,GAAO,OAEPA,GAAO,OAEL6F,EAAQ7F,EACZA,EAAMyF,EAAWK,MAIb9F,IAHCxH,EAAGuN,eAAiBvB,EAEnBhM,EAAG6H,MACE,+BAAiC,EAAU,OAE3C,uBAAyB,EAAU,oBAGrC,cAAgB,EAAU,+EAEnCL,GAAO,MAGPwE,IACFxE,GAAO,mBAELA,GADE0R,EACK,IAEA,QAAU,EAEnB1R,GAAO,OACP+R,GAAmB,MA0B7B,SAASO,EAAgBD,GAEvB,IADA,IAAIzV,EAAQyV,EAAYzV,MACf5Q,EAAI,EAAGA,EAAI4Q,EAAMnQ,OAAQT,IAChC,GAAI8mB,EAAelW,EAAM5Q,IAAK,OAAO,EAGzC,SAAS8mB,EAAe3K,GACtB,YAAoCta,IAA7B2K,EAAGhL,OAAO2a,EAAMrP,UAA2BqP,EAAM1K,YAG1D,SAAoC0K,GAElC,IADA,IAAI4K,EAAO5K,EAAM1K,WACRzR,EAAI,EAAGA,EAAI+mB,EAAKtmB,OAAQT,IAC/B,QAA2B6B,IAAvB2K,EAAGhL,OAAOulB,EAAK/mB,IAAmB,OAAO,EANuBgnB,CAA2B7K,GAQnG,OAnCI3D,IACFxE,GAAO,IAAM,EAAoB,KAE/B0R,GACEzb,GACF+J,GAAO,6CACPA,GAAO,+CAEPA,GAAO,+BACPA,GAAO,gCAETA,GAAO,wBAEPA,GAAO,QAAU,EAAW,sBAAwB,EAAS,IAE/DA,EAAMxH,EAAG/H,KAAKsP,YAAYC,GACtB0R,IACF1R,EAAMxH,EAAG/H,KAAK2P,iBAAiBJ,EAAK/J,IAkB/B+J,IAGP,IAAIiT,GAAG,CAAC,SAAS/mB,EAAQf,EAAOD,GAClC,aAEA,IAAIsX,EAAa,yBACbzN,EAAiB7I,EAAQ,kBACzBgnB,EAAmBhnB,EAAQ,uBAE/Bf,EAAOD,QAAU,CACfioB,IAcF,SAAoBra,EAASH,GAG3B,IAAI7C,EAAQrK,KAAKqK,MACjB,GAAIA,EAAM6H,SAAS7E,GACjB,MAAM,IAAIzM,MAAM,WAAayM,EAAU,uBAEzC,IAAK0J,EAAWlP,KAAKwF,GACnB,MAAM,IAAIzM,MAAM,WAAayM,EAAU,8BAEzC,GAAIH,EAAY,CACdlN,KAAK2nB,gBAAgBza,GAAY,GAEjC,IAAI4F,EAAW5F,EAAWgE,KAC1B,GAAId,MAAMC,QAAQyC,GAChB,IAAK,IAAIvS,EAAE,EAAGA,EAAEuS,EAAS9R,OAAQT,IAC/BqnB,EAASva,EAASyF,EAASvS,GAAI2M,QAEjC0a,EAASva,EAASyF,EAAU5F,GAG9B,IAAImK,EAAanK,EAAWmK,WACxBA,IACEnK,EAAWkJ,OAASpW,KAAKkC,MAAMkU,QACjCiB,EAAa,CACXK,MAAO,CACLL,EACA,CAAEtU,KAAQ,mFAIhBmK,EAAWF,eAAiBhN,KAAK0J,QAAQ2N,GAAY,IAOzD,SAASuQ,EAASva,EAASyF,EAAU5F,GAEnC,IADA,IAAI2a,EACKtnB,EAAE,EAAGA,EAAE8J,EAAMrJ,OAAQT,IAAK,CACjC,IAAIunB,EAAKzd,EAAM9J,GACf,GAAIunB,EAAG5W,MAAQ4B,EAAU,CACvB+U,EAAYC,EACZ,OAICD,GAEHxd,EAAM0H,KADN8V,EAAY,CAAE3W,KAAM4B,EAAU3B,MAAO,KAIvC,IAAItE,EAAO,CACTQ,QAASA,EACTH,WAAYA,EACZkF,QAAQ,EACRvR,KAAMyI,EACN0I,WAAY9E,EAAW8E,YAEzB6V,EAAU1W,MAAMY,KAAKlF,GACrBxC,EAAM+H,OAAO/E,GAAWR,EAG1B,OA7BAxC,EAAM6H,SAAS7E,GAAWhD,EAAMmH,IAAInE,IAAW,EA6BxCrN,MA7EPwB,IAuFF,SAAoB6L,GAElB,IAAIR,EAAO7M,KAAKqK,MAAM+H,OAAO/E,GAC7B,OAAOR,EAAOA,EAAKK,WAAalN,KAAKqK,MAAM6H,SAAS7E,KAAY,GAzFhE0a,OAmGF,SAAuB1a,GAErB,IAAIhD,EAAQrK,KAAKqK,aACVA,EAAM6H,SAAS7E,UACfhD,EAAMmH,IAAInE,UACVhD,EAAM+H,OAAO/E,GACpB,IAAK,IAAI9M,EAAE,EAAGA,EAAE8J,EAAMrJ,OAAQT,IAE5B,IADA,IAAI4Q,EAAQ9G,EAAM9J,GAAG4Q,MACZsG,EAAE,EAAGA,EAAEtG,EAAMnQ,OAAQyW,IAC5B,GAAItG,EAAMsG,GAAGpK,SAAWA,EAAS,CAC/B8D,EAAMpI,OAAO0O,EAAG,GAChB,MAIN,OAAOzX,MAjHPyC,SA4HF,SAASklB,EAAgBza,EAAY8a,GACnCL,EAAgBhjB,OAAS,KACzB,IAAIhC,EAAI3C,KAAKioB,iBAAmBjoB,KAAKioB,kBACFjoB,KAAK0J,QAAQ+d,GAAkB,GAElE,GAAI9kB,EAAEuK,GAAa,OAAO,EAC1Bya,EAAgBhjB,OAAShC,EAAEgC,OAC3B,CAAA,GAAIqjB,EACF,MAAM,IAAIpnB,MAAM,yCAA4CZ,KAAKyN,WAAW9K,EAAEgC,SAE9E,OAAO,MAGT,CAACujB,sBAAsB,GAAGC,iBAAiB,KAAKC,GAAG,CAAC,SAAS3nB,EAAQf,EAAOD,GAC9EC,EAAOD,QAAQ,CACXoD,QAAW,0CACX+U,IAAO,+EACPyQ,YAAe,mEACfnX,KAAQ,SACR+G,SAAY,CAAE,SACd3G,WAAc,CACV8E,MAAS,CACLlF,KAAQ,SACRwG,MAAS,CACL,CAAEiH,OAAU,yBACZ,CAAEA,OAAU,mBAIxB6E,sBAAwB,IAG1B,IAAI8E,GAAG,CAAC,SAAS7nB,EAAQf,EAAOD,GAClCC,EAAOD,QAAQ,CACXoD,QAAW,0CACX+U,IAAO,0CACP2Q,MAAS,0BACT1Q,YAAe,CACX2Q,YAAe,CACXtX,KAAQ,QACR+O,SAAY,EACZ/H,MAAS,CAAEnV,KAAQ,MAEvB0lB,mBAAsB,CAClBvX,KAAQ,UACRG,QAAW,GAEfqX,2BAA8B,CAC1B9I,MAAS,CACL,CAAE7c,KAAQ,oCACV,CAAE4hB,QAAW,KAGrB7M,YAAe,CACXgI,KAAQ,CACJ,QACA,UACA,UACA,OACA,SACA,SACA,WAGR6I,YAAe,CACXzX,KAAQ,QACRgH,MAAS,CAAEhH,KAAQ,UACnBwP,aAAe,EACfiE,QAAW,KAGnBzT,KAAQ,CAAC,SAAU,WACnBI,WAAc,CACVsG,IAAO,CACH1G,KAAQ,SACRyN,OAAU,iBAEd9b,QAAW,CACPqO,KAAQ,SACRyN,OAAU,OAEd5b,KAAQ,CACJmO,KAAQ,SACRyN,OAAU,iBAEd1M,SAAY,CACRf,KAAQ,UAEZqX,MAAS,CACLrX,KAAQ,UAEZmX,YAAe,CACXnX,KAAQ,UAEZyT,SAAW,EACXiE,SAAY,CACR1X,KAAQ,UACRyT,SAAW,GAEfkE,SAAY,CACR3X,KAAQ,QACRgH,OAAS,GAEboI,WAAc,CACVpP,KAAQ,SACR4X,iBAAoB,GAExB1X,QAAW,CACPF,KAAQ,UAEZ6X,iBAAoB,CAChB7X,KAAQ,UAEZG,QAAW,CACPH,KAAQ,UAEZ4X,iBAAoB,CAChB5X,KAAQ,UAEZgP,UAAa,CAAEnd,KAAQ,oCACvBod,UAAa,CAAEpd,KAAQ,4CACvByd,QAAW,CACPtP,KAAQ,SACRyN,OAAU,SAEd0D,gBAAmB,CAAEtf,KAAQ,KAC7BmV,MAAS,CACLR,MAAS,CACL,CAAE3U,KAAQ,KACV,CAAEA,KAAQ,8BAEd4hB,SAAW,GAEf3E,SAAY,CAAEjd,KAAQ,oCACtBkd,SAAY,CAAEld,KAAQ,4CACtB2d,YAAe,CACXxP,KAAQ,UACRyT,SAAW,GAEf9E,SAAY,CAAE9c,KAAQ,KACtBqd,cAAiB,CAAErd,KAAQ,oCAC3Bsd,cAAiB,CAAEtd,KAAQ,4CAC3BkV,SAAY,CAAElV,KAAQ,6BACtBygB,qBAAwB,CAAEzgB,KAAQ,KAClC8U,YAAe,CACX3G,KAAQ,SACRsS,qBAAwB,CAAEzgB,KAAQ,KAClC4hB,QAAW,IAEfrT,WAAc,CACVJ,KAAQ,SACRsS,qBAAwB,CAAEzgB,KAAQ,KAClC4hB,QAAW,IAEftB,kBAAqB,CACjBnS,KAAQ,SACRsS,qBAAwB,CAAEzgB,KAAQ,KAClC0d,cAAiB,CAAE9B,OAAU,SAC7BgG,QAAW,IAEfxX,aAAgB,CACZ+D,KAAQ,SACRsS,qBAAwB,CACpB9L,MAAS,CACL,CAAE3U,KAAQ,KACV,CAAEA,KAAQ,gCAItB0d,cAAiB,CAAE1d,KAAQ,KAC3BqV,OAAS,EACT0H,KAAQ,CACJ5O,KAAQ,QACRgH,OAAS,EACT+H,SAAY,EACZS,aAAe,GAEnBxP,KAAQ,CACJwG,MAAS,CACL,CAAE3U,KAAQ,6BACV,CACImO,KAAQ,QACRgH,MAAS,CAAEnV,KAAQ,6BACnBkd,SAAY,EACZS,aAAe,KAI3B/B,OAAU,CAAEzN,KAAQ,UACpB8X,iBAAoB,CAAE9X,KAAQ,UAC9B+X,gBAAmB,CAAE/X,KAAQ,UAC7B6O,GAAM,CAAChd,KAAQ,KACfT,KAAQ,CAACS,KAAQ,KACjBmmB,KAAQ,CAACnmB,KAAQ,KACjB6c,MAAS,CAAE7c,KAAQ,6BACnB2U,MAAS,CAAE3U,KAAQ,6BACnBwd,MAAS,CAAExd,KAAQ,6BACnBiV,IAAO,CAAEjV,KAAQ,MAErB4hB,SAAW,IAGb,IAAIwE,GAAG,CAAC,SAAS1oB,EAAQf,EAAOD,GAClC,aAMAC,EAAOD,QAAU,SAAS6I,EAAM3H,EAAGsW,GACjC,GAAItW,IAAMsW,EAAG,OAAO,EAEpB,GAAItW,GAAKsW,GAAiB,iBAALtW,GAA6B,iBAALsW,EAAe,CAC1D,GAAItW,EAAE8D,cAAgBwS,EAAExS,YAAa,OAAO,EAE5C,IAAIzD,EAAQT,EAAGiO,EACf,GAAI4B,MAAMC,QAAQ1P,GAAI,CAEpB,IADAK,EAASL,EAAEK,SACGiW,EAAEjW,OAAQ,OAAO,EAC/B,IAAKT,EAAIS,EAAgB,GAART,KACf,IAAK+H,EAAM3H,EAAEJ,GAAI0W,EAAE1W,IAAK,OAAO,EACjC,OAAO,EAKT,GAAII,EAAE8D,cAAgBsD,OAAQ,OAAOpH,EAAE+J,SAAWuM,EAAEvM,QAAU/J,EAAEyoB,QAAUnS,EAAEmS,MAC5E,GAAIzoB,EAAE0oB,UAAY9kB,OAAOnD,UAAUioB,QAAS,OAAO1oB,EAAE0oB,YAAcpS,EAAEoS,UACrE,GAAI1oB,EAAE2oB,WAAa/kB,OAAOnD,UAAUkoB,SAAU,OAAO3oB,EAAE2oB,aAAerS,EAAEqS,WAIxE,IADAtoB,GADAwN,EAAOjK,OAAOiK,KAAK7N,IACLK,UACCuD,OAAOiK,KAAKyI,GAAGjW,OAAQ,OAAO,EAE7C,IAAKT,EAAIS,EAAgB,GAART,KACf,IAAKgE,OAAOnD,UAAUkM,eAAevM,KAAKkW,EAAGzI,EAAKjO,IAAK,OAAO,EAEhE,IAAKA,EAAIS,EAAgB,GAART,KAAY,CAC3B,IAAIe,EAAMkN,EAAKjO,GAEf,IAAK+H,EAAM3H,EAAEW,GAAM2V,EAAE3V,IAAO,OAAO,EAGrC,OAAO,EAIT,OAAOX,GAAIA,GAAKsW,GAAIA,IAGpB,IAAIsS,GAAG,CAAC,SAAS9oB,EAAQf,EAAOD,GAClC,aAEAC,EAAOD,QAAU,SAAUsT,EAAMnJ,GAET,mBADTA,EAANA,GAAa,MACcA,EAAO,CAAE4f,IAAK5f,IAC9C,IAEiCpK,EAF7BiqB,EAAiC,kBAAhB7f,EAAK6f,QAAwB7f,EAAK6f,OAEnDD,EAAM5f,EAAK4f,MAAkBhqB,EAQ9BoK,EAAK4f,IAPG,SAAUE,GACb,OAAO,SAAU/oB,EAAGsW,GAGhB,OAAOzX,EAFI,CAAE8B,IAAKX,EAAGY,MAAOmoB,EAAK/oB,IACtB,CAAEW,IAAK2V,EAAG1V,MAAOmoB,EAAKzS,QAMzC0S,EAAO,GACX,OAAO,SAAUnS,EAAWkS,GAKxB,GAJIA,GAAQA,EAAKE,QAAiC,mBAAhBF,EAAKE,SACnCF,EAAOA,EAAKE,eAGHxnB,IAATsnB,EAAJ,CACA,GAAmB,iBAARA,EAAkB,OAAOG,SAASH,GAAQ,GAAKA,EAAO,OACjE,GAAoB,iBAATA,EAAmB,OAAOnS,KAAKC,UAAUkS,GAEpD,IAAInpB,EAAGgU,EACP,GAAInE,MAAMC,QAAQqZ,GAAO,CAErB,IADAnV,EAAM,IACDhU,EAAI,EAAGA,EAAImpB,EAAK1oB,OAAQT,IACrBA,IAAGgU,GAAO,KACdA,GAAOiD,EAAUkS,EAAKnpB,KAAO,OAEjC,OAAOgU,EAAM,IAGjB,GAAa,OAATmV,EAAe,MAAO,OAE1B,IAA4B,IAAxBC,EAAKxK,QAAQuK,GAAc,CAC3B,GAAID,EAAQ,OAAOlS,KAAKC,UAAU,aAClC,MAAM,IAAIsS,UAAU,yCAGxB,IAAIC,EAAYJ,EAAK5X,KAAK2X,GAAQ,EAC9Blb,EAAOjK,OAAOiK,KAAKkb,GAAMM,KAAKR,GAAOA,EAAIE,IAE7C,IADAnV,EAAM,GACDhU,EAAI,EAAGA,EAAIiO,EAAKxN,OAAQT,IAAK,CAC9B,IAAIe,EAAMkN,EAAKjO,GACXgB,EAAQiW,EAAUkS,EAAKpoB,IAEtBC,IACDgT,IAAKA,GAAO,KAChBA,GAAOgD,KAAKC,UAAUlW,GAAO,IAAMC,GAGvC,OADAooB,EAAK5gB,OAAOghB,EAAW,GAChB,IAAMxV,EAAM,KAtChB,CAuCJxB,KAGL,IAAIkX,GAAG,CAAC,SAASxpB,EAAQf,EAAOD,GAClC,aAEA,IAAIuO,EAAWtO,EAAOD,QAAU,SAAUsC,EAAQ6H,EAAMsgB,GAEnC,mBAARtgB,IACTsgB,EAAKtgB,EACLA,EAAO,IAwDX,SAASugB,EAAUvgB,EAAMwgB,EAAKC,EAAMtoB,EAAQoN,EAASC,EAAYC,EAAeC,EAAexC,EAAcyC,GAC3G,GAAIxN,GAA2B,iBAAVA,IAAuBqO,MAAMC,QAAQtO,GAAS,CAEjE,IAAK,IAAIT,KADT8oB,EAAIroB,EAAQoN,EAASC,EAAYC,EAAeC,EAAexC,EAAcyC,GAC7DxN,EAAQ,CACtB,IAAIa,EAAMb,EAAOT,GACjB,GAAI8O,MAAMC,QAAQzN,IAChB,GAAItB,KAAO0M,EAASsc,cAClB,IAAK,IAAI/pB,EAAE,EAAGA,EAAEqC,EAAI5B,OAAQT,IAC1B4pB,EAAUvgB,EAAMwgB,EAAKC,EAAMznB,EAAIrC,GAAI4O,EAAU,IAAM7N,EAAM,IAAMf,EAAG6O,EAAYD,EAAS7N,EAAKS,EAAQxB,QAEnG,GAAIe,KAAO0M,EAASuc,eACzB,GAAI3nB,GAAqB,iBAAPA,EAChB,IAAK,IAAIoT,KAAQpT,EACfunB,EAAUvgB,EAAMwgB,EAAKC,EAAMznB,EAAIoT,GAAO7G,EAAU,IAAM7N,EAAM,IAAoB0U,EAY/EpF,QAAQ,KAAM,MAAMA,QAAQ,MAAO,MAZmDxB,EAAYD,EAAS7N,EAAKS,EAAQiU,QAEpH1U,KAAO0M,EAASkE,UAAatI,EAAKsF,WAAa5N,KAAO0M,EAASwc,gBACxEL,EAAUvgB,EAAMwgB,EAAKC,EAAMznB,EAAKuM,EAAU,IAAM7N,EAAK8N,EAAYD,EAAS7N,EAAKS,GAGnFsoB,EAAKtoB,EAAQoN,EAASC,EAAYC,EAAeC,EAAexC,EAAcyC,IApEhF4a,CAAUvgB,EAHc,mBADxBsgB,EAAKtgB,EAAKsgB,IAAMA,GACsBA,EAAKA,EAAGE,KAAO,aAC1CF,EAAGG,MAAQ,aAEKtoB,EAAQ,GAAIA,IAIzCiM,EAASkE,SAAW,CAClBmQ,iBAAiB,EACjBnK,OAAO,EACP2H,UAAU,EACV2D,sBAAsB,EACtB/C,eAAe,EACfzI,KAAK,GAGPhK,EAASsc,cAAgB,CACvBpS,OAAO,EACP0H,OAAO,EACPlI,OAAO,EACP6I,OAAO,GAGTvS,EAASuc,cAAgB,CACvB1S,aAAa,EACbvG,YAAY,EACZ+R,mBAAmB,EACnBlW,cAAc,GAGhBa,EAASwc,aAAe,CACtB7F,SAAS,EACT7E,MAAM,EACN1H,OAAO,EACPH,UAAU,EACV7G,SAAS,EACTC,SAAS,EACT0X,kBAAkB,EAClBD,kBAAkB,EAClBxI,YAAY,EACZJ,WAAW,EACXC,WAAW,EACXK,SAAS,EACT7B,QAAQ,EACRqB,UAAU,EACVC,UAAU,EACVS,aAAa,EACbN,eAAe,EACfC,eAAe,IAgCf,IAAIoK,GAAG,CAAC,SAAShqB,EAAQf,EAAOD,GAEjC,IAAUK,EAAAA,EAITE,KAAM,SAAWP,GAAW,aAE9B,SAASirB,IACL,IAAK,IAAIC,EAAO9f,UAAU7J,OAAQ4pB,EAAOxa,MAAMua,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IACzED,EAAKC,GAAQhgB,UAAUggB,GAG3B,GAAkB,EAAdD,EAAK5pB,OAAY,CACjB4pB,EAAK,GAAKA,EAAK,GAAGhb,MAAM,GAAI,GAE5B,IADA,IAAIkb,EAAKF,EAAK5pB,OAAS,EACd+pB,EAAI,EAAGA,EAAID,IAAMC,EACtBH,EAAKG,GAAKH,EAAKG,GAAGnb,MAAM,GAAI,GAGhC,OADAgb,EAAKE,GAAMF,EAAKE,GAAIlb,MAAM,GACnBgb,EAAKrd,KAAK,IAEjB,OAAOqd,EAAK,GAGpB,SAASI,EAAOhlB,GACZ,MAAO,MAAQA,EAAM,IAEzB,SAASilB,EAAO3qB,GACZ,YAAa8B,IAAN9B,EAAkB,YAAoB,OAANA,EAAa,OAASiE,OAAOnD,UAAUkoB,SAASvoB,KAAKT,GAAGoH,MAAM,KAAK2S,MAAM3S,MAAM,KAAKwjB,QAAQC,cAEvI,SAASC,EAAYplB,GACjB,OAAOA,EAAIolB,cAef,SAASC,EAAUC,GACf,IAAIC,EAAU,WAEVC,EAAU,QAEVC,EAAWf,EAAMc,EAAS,YAI1BE,EAAeV,EAAOA,EAAO,UAAYS,EAAW,IAAMA,EAAWA,EAAW,IAAMA,EAAWA,GAAY,IAAMT,EAAO,cAAgBS,EAAW,IAAMA,EAAWA,GAAY,IAAMT,EAAO,IAAMS,EAAWA,IAGhNE,EAAe,sCACfC,EAAalB,EAFF,0BAEsBiB,GAGrCE,EAAaP,EAAQ,oBAAsB,KAE3CQ,EAAepB,EAAMa,EAASC,EAAS,iBAJvBF,EAAQ,8EAAgF,MAKpGS,EAAUf,EAAOO,EAAUb,EAAMa,EAASC,EAAS,eAAiB,KACpEQ,EAAYhB,EAAOA,EAAOU,EAAe,IAAMhB,EAAMoB,EAAcH,EAAc,UAAY,KAE7FM,GADajB,EAAOA,8DAAuIQ,GACtIR,EAAOA,oEAA6IQ,IAE7KU,EAAelB,EAAOiB,EAAqB,MAAQA,EAAqB,MAAQA,EAAqB,MAAQA,GACzGE,EAAOnB,EAAOS,EAAW,SACzBW,EAAQpB,EAAOA,EAAOmB,EAAO,MAAQA,GAAQ,IAAMD,GACnDG,EAAgBrB,EAAOA,EAAOmB,EAAO,OAAS,MAAQC,GAE1DE,EAAgBtB,EAAO,SAAWA,EAAOmB,EAAO,OAAS,MAAQC,GAEjEG,EAAgBvB,EAAOA,EAAOmB,GAAQ,UAAYnB,EAAOmB,EAAO,OAAS,MAAQC,GAEjFI,EAAgBxB,EAAOA,EAAOA,EAAOmB,EAAO,OAAS,QAAUA,GAAQ,UAAYnB,EAAOmB,EAAO,OAAS,MAAQC,GAElHK,EAAgBzB,EAAOA,EAAOA,EAAOmB,EAAO,OAAS,QAAUA,GAAQ,UAAYnB,EAAOmB,EAAO,OAAS,MAAQC,GAElHM,EAAgB1B,EAAOA,EAAOA,EAAOmB,EAAO,OAAS,QAAUA,GAAQ,UAAYA,EAAO,MAAQC,GAElGO,EAAgB3B,EAAOA,EAAOA,EAAOmB,EAAO,OAAS,QAAUA,GAAQ,UAAYC,GAEnFQ,EAAgB5B,EAAOA,EAAOA,EAAOmB,EAAO,OAAS,QAAUA,GAAQ,UAAYA,GAEnFU,EAAgB7B,EAAOA,EAAOA,EAAOmB,EAAO,OAAS,QAAUA,GAAQ,WAEvEW,EAAe9B,EAAO,CAACqB,EAAeC,EAAeC,EAAeC,EAAeC,EAAeC,EAAeC,EAAeC,EAAeC,GAAetf,KAAK,MAC/Jwf,EAAU/B,EAAOA,EAAOc,EAAe,IAAMJ,GAAgB,KAIjEsB,GAFahC,EAAO8B,EAAe,QAAUC,GAExB/B,EAAO8B,EAAe9B,EAAO,eAAiBS,EAAW,QAAUsB,IAExFE,EAAajC,EAAO,OAASS,EAAW,OAASf,EAAMoB,EAAcH,EAAc,SAAW,KAC1FuB,EAAclC,EAAO,MAAQA,EAAOgC,EAAqB,IAAMF,EAAe,IAAMG,GAAc,OAEtGE,EAAYnC,EAAOA,EAAOU,EAAe,IAAMhB,EAAMoB,EAAcH,IAAiB,KAChFyB,EAAQpC,EAAOkC,EAAc,IAAMhB,EAAe,MAAQiB,EAAY,KAAYA,GAClFE,EAAQrC,EAAOQ,EAAU,KACzB8B,EAAatC,EAAOA,EAAOgB,EAAY,KAAO,IAAMoB,EAAQpC,EAAO,MAAQqC,GAAS,KACpFE,EAASvC,EAAOU,EAAe,IAAMhB,EAAMoB,EAAcH,EAAc,aACvE6B,EAAWxC,EAAOuC,EAAS,KAC3BE,EAAczC,EAAOuC,EAAS,KAC9BG,EAAiB1C,EAAOA,EAAOU,EAAe,IAAMhB,EAAMoB,EAAcH,EAAc,UAAY,KAClGgC,EAAgB3C,EAAOA,EAAO,MAAQwC,GAAY,KAClDI,EAAiB5C,EAAO,MAAQA,EAAOyC,EAAcE,GAAiB,KAE1EE,EAAiB7C,EAAO0C,EAAiBC,GAEzCG,EAAiB9C,EAAOyC,EAAcE,GAEtCI,EAAc,MAAQR,EAAS,IAE3BS,GADQhD,EAAO2C,EAAgB,IAAMC,EAAiB,IAAMC,EAAiB,IAAMC,EAAiB,IAAMC,GACjG/C,EAAOA,EAAOuC,EAAS,IAAM7C,EAAM,WAAYmB,IAAe,MACvEoC,EAAYjD,EAAOA,EAAOuC,EAAS,aAAe,KAClDW,EAAalD,EAAOA,EAAO,SAAWsC,EAAaK,GAAiB,IAAMC,EAAiB,IAAME,EAAiB,IAAMC,GACxHI,EAAOnD,EAAOe,EAAU,MAAQmC,EAAalD,EAAO,MAAQgD,GAAU,IAAMhD,EAAO,MAAQiD,GAAa,KACxGG,EAAiBpD,EAAOA,EAAO,SAAWsC,EAAaK,GAAiB,IAAMC,EAAiB,IAAMC,EAAiB,IAAME,GAC5HM,EAAYrD,EAAOoD,EAAiBpD,EAAO,MAAQgD,GAAU,IAAMhD,EAAO,MAAQiD,GAAa,KAC9EjD,EAAOmD,EAAO,IAAME,GACrBrD,EAAOe,EAAU,MAAQmC,EAAalD,EAAO,MAAQgD,GAAU,KACtChD,EAAOA,EAAO,UAAYA,EAAO,IAAMgB,EAAY,MAAQ,KAAOoB,EAAQ,IAAMpC,EAAO,OAASqC,EAAQ,KAAO,MAAQ,KAAOM,EAAgB,IAAMC,EAAiB,IAAME,EAAiB,IAAMC,EAAc,KAAO/C,EAAO,OAASgD,EAAS,KAAahD,EAAO,OAASiD,EAAY,KACvSjD,EAAOA,EAAO,UAAYA,EAAO,IAAMgB,EAAY,MAAQ,KAAOoB,EAAQ,IAAMpC,EAAO,OAASqC,EAAQ,KAAO,MAAQ,KAAOM,EAAgB,IAAMC,EAAiB,IAAMC,EAAiB,IAAME,EAAc,KAAO/C,EAAO,OAASgD,EAAS,KAAahD,EAAO,OAASiD,EAAY,KAC1QjD,EAAOA,EAAO,UAAYA,EAAO,IAAMgB,EAAY,MAAQ,KAAOoB,EAAQ,IAAMpC,EAAO,OAASqC,EAAQ,KAAO,MAAQ,KAAOM,EAAgB,IAAMC,EAAiB,IAAME,EAAiB,IAAMC,EAAc,KAAO/C,EAAO,OAASgD,EAAS,KACrQhD,EAAO,OAASiD,EAAY,KAC1BjD,EAAO,IAAMgB,EAAY,MAA6BhB,EAAO,OAASqC,EAAQ,KACzG,MAAO,CACHiB,WAAY,IAAIvmB,OAAO2iB,EAAM,MAAOa,EAASC,EAAS,eAAgB,KACtE+C,aAAc,IAAIxmB,OAAO2iB,EAAM,YAAaoB,EAAcH,GAAe,KACzE6C,SAAU,IAAIzmB,OAAO2iB,EAAM,kBAAmBoB,EAAcH,GAAe,KAC3E8C,SAAU,IAAI1mB,OAAO2iB,EAAM,kBAAmBoB,EAAcH,GAAe,KAC3E+C,kBAAmB,IAAI3mB,OAAO2iB,EAAM,eAAgBoB,EAAcH,GAAe,KACjFgD,UAAW,IAAI5mB,OAAO2iB,EAAM,SAAUoB,EAAcH,EAAc,iBAAkBE,GAAa,KACjG+C,aAAc,IAAI7mB,OAAO2iB,EAAM,SAAUoB,EAAcH,EAAc,kBAAmB,KACxFkD,OAAQ,IAAI9mB,OAAO2iB,EAAM,MAAOoB,EAAcH,GAAe,KAC7DmD,WAAY,IAAI/mB,OAAO+jB,EAAc,KACrCiD,YAAa,IAAIhnB,OAAO2iB,EAAM,SAAUoB,EAAcF,GAAa,KACnEoD,YAAa,IAAIjnB,OAAO2jB,EAAc,KACtCuD,YAAa,IAAIlnB,OAAO,KAAOmkB,EAAe,MAC9CgD,YAAa,IAAInnB,OAAO,SAAW+kB,EAAe,IAAM9B,EAAOA,EAAO,eAAiBS,EAAW,QAAU,IAAMsB,EAAU,KAAO,WAG3I,IAAIoC,EAAe9D,GAAU,GAEzB+D,EAAe/D,GAAU,GAEzBgE,EA2BK,SAAU7lB,EAAKjJ,GACpB,GAAI6P,MAAMC,QAAQ7G,GAChB,OAAOA,EACF,GAAI8lB,OAAOC,YAAYhrB,OAAOiF,GACnC,OA9BJ,SAAuBA,EAAKjJ,GAC1B,IAAIivB,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAKvtB,EAET,IACE,IAAK,IAAiCwtB,EAA7BC,EAAKrmB,EAAI8lB,OAAOC,cAAmBE,GAAMG,EAAKC,EAAGC,QAAQC,QAChEP,EAAKzd,KAAK6d,EAAGruB,QAEThB,GAAKivB,EAAKxuB,SAAWT,GAH8CkvB,GAAK,IAK9E,MAAOO,GACPN,GAAK,EACLC,EAAKK,EACL,QACA,KACOP,GAAMI,EAAW,QAAGA,EAAW,SACpC,QACA,GAAIH,EAAI,MAAMC,GAIlB,OAAOH,EAOES,CAAczmB,EAAKjJ,GAE1B,MAAM,IAAIupB,UAAU,yDA6BtBoG,EAAS,WAaTC,EAAgB,QAChBC,EAAgB,aAChBC,EAAkB,4BAGlB1rB,EAAS,CACZ2rB,SAAY,kDACZC,YAAa,iDACbC,gBAAiB,iBAKdC,EAAQlW,KAAKkW,MACbC,EAAqBC,OAAOC,aAUhC,SAASC,EAAQ3f,GAChB,MAAM,IAAI4f,WAAWnsB,EAAOuM,IA8B7B,SAAS6f,EAAUC,EAAQC,GAC1B,IAAIphB,EAAQmhB,EAAOtpB,MAAM,KACrBiD,EAAS,GAWb,OAVmB,EAAfkF,EAAM7O,SAGT2J,EAASkF,EAAM,GAAK,IACpBmhB,EAASnhB,EAAM,IAMTlF,EAhCR,SAAa6I,EAAOyd,GAGnB,IAFA,IAAItmB,EAAS,GACT3J,EAASwS,EAAMxS,OACZA,KACN2J,EAAO3J,GAAUiwB,EAAGzd,EAAMxS,IAE3B,OAAO2J,EAyBOiH,EAFdof,EAASA,EAAOpgB,QAAQyf,EAAiB,MACrB3oB,MAAM,KACAupB,GAAI1jB,KAAK,KAiBpC,SAAS2jB,EAAWF,GAInB,IAHA,IAAIG,EAAS,GACTC,EAAU,EACVpwB,EAASgwB,EAAOhwB,OACbowB,EAAUpwB,GAAQ,CACxB,IAAIO,EAAQyvB,EAAOre,WAAWye,KAC9B,GAAa,OAAT7vB,GAAmBA,GAAS,OAAU6vB,EAAUpwB,EAAQ,CAE3D,IAAIqwB,EAAQL,EAAOre,WAAWye,KACN,QAAX,MAARC,GAEJF,EAAOpf,OAAe,KAARxQ,IAAkB,KAAe,KAAR8vB,GAAiB,QAIxDF,EAAOpf,KAAKxQ,GACZ6vB,UAGDD,EAAOpf,KAAKxQ,GAGd,OAAO4vB,EAgDW,SAAfG,EAAqCC,EAAOC,GAG/C,OAAOD,EAAQ,GAAK,IAAMA,EAAQ,MAAgB,GAARC,IAAc,GAQ7C,SAARC,EAAuBC,EAAOC,EAAWC,GAC5C,IAAI9f,EAAI,EAGR,IAFA4f,EAAQE,EAAYnB,EAAMiB,EA7KhB,KA6KgCA,GAAS,EACnDA,GAASjB,EAAMiB,EAAQC,GACeE,IAARH,EAAmC5f,GAnLvD,GAoLT4f,EAAQjB,EAAMiB,EA9JII,IAgKnB,OAAOrB,EAAM3e,EAAI,GAAsB4f,GAASA,EAnLtC,KA6LE,SAATK,EAAyBC,GAE5B,IAtDwCC,EAsDpCd,EAAS,GACTe,EAAcF,EAAMhxB,OACpBT,EAAI,EACJH,EA/LU,IAgMV+xB,EAjMa,GAuMbC,EAAQJ,EAAMK,YArMH,KAsMXD,EAAQ,IACXA,EAAQ,GAGT,IAAK,IAAI3a,EAAI,EAAGA,EAAI2a,IAAS3a,EAED,KAAvBua,EAAMrf,WAAW8E,IACpBoZ,EAAQ,aAETM,EAAOpf,KAAKigB,EAAMrf,WAAW8E,IAM9B,IAAK,IAAI/O,EAAgB,EAAR0pB,EAAYA,EAAQ,EAAI,EAAG1pB,EAAQwpB,GAAuC,CAQ1F,IADA,IAAII,EAAO/xB,EACFgyB,EAAI,EAAGzgB,EApOP,IAoOoCA,GApOpC,GAoO+C,CAE1CogB,GAATxpB,GACHmoB,EAAQ,iBAGT,IAAIU,GA9FkCU,EA8FbD,EAAMrf,WAAWjK,MA7F5B,GAAO,GACfupB,EAAY,GAEhBA,EAAY,GAAO,GACfA,EAAY,GAEhBA,EAAY,GAAO,GACfA,EAAY,GApJV,IAAA,IA4OJV,GAAiBA,EAAQd,GAAOP,EAAS3vB,GAAKgyB,KACjD1B,EAAQ,YAGTtwB,GAAKgxB,EAAQgB,EACb,IAAIlyB,EAAIyR,GAAKqgB,EAhPL,EAgPwBA,EA/OxB,IA+OmBrgB,EA/OnB,GA+O6CA,EAAIqgB,EAEzD,GAAIZ,EAAQlxB,EACX,MAGD,IAAImyB,EAvPI,GAuPgBnyB,EACpBkyB,EAAI9B,EAAMP,EAASsC,IACtB3B,EAAQ,YAGT0B,GAAKC,EAGN,IAAIje,EAAM4c,EAAOnwB,OAAS,EAC1BmxB,EAAOV,EAAMlxB,EAAI+xB,EAAM/d,EAAa,GAAR+d,GAIxB7B,EAAMlwB,EAAIgU,GAAO2b,EAAS9vB,GAC7BywB,EAAQ,YAGTzwB,GAAKqwB,EAAMlwB,EAAIgU,GACfhU,GAAKgU,EAGL4c,EAAOpoB,OAAOxI,IAAK,EAAGH,GAGvB,OAAOuwB,OAAO8B,cAAc7nB,MAAM+lB,OAAQQ,GAU9B,SAATuB,EAAyBV,GAC5B,IAAIb,EAAS,GAMTe,GAHJF,EAAQd,EAAWc,IAGKhxB,OAGpBZ,EA7RU,IA8RVsxB,EAAQ,EACRS,EAhSa,GAmSbQ,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiBzwB,EAErB,IACC,IAAK,IAA0C0wB,EAAtCC,EAAYf,EAAM1C,OAAOC,cAAsBoD,GAA6BG,EAAQC,EAAUjD,QAAQC,MAAO4C,GAA4B,EAAM,CACvJ,IAAIK,EAAiBF,EAAMvxB,MAEvByxB,EAAiB,KACpB7B,EAAOpf,KAAK2e,EAAmBsC,KAGhC,MAAOhD,GACR4C,GAAoB,EACpBC,EAAiB7C,EAChB,QACD,KACM2C,GAA6BI,EAAUE,QAC3CF,EAAUE,SAEV,QACD,GAAIL,EACH,MAAMC,GAKT,IAAIK,EAAc/B,EAAOnwB,OACrBmyB,EAAiBD,EAWrB,IALIA,GACH/B,EAAOpf,KApUO,KAwURohB,EAAiBjB,GAAa,CAIpC,IAAIkB,EAAIlD,EACJmD,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBnxB,EAEtB,IACC,IAAK,IAA2CoxB,EAAvCC,EAAazB,EAAM1C,OAAOC,cAAuB8D,GAA8BG,EAASC,EAAW3D,QAAQC,MAAOsD,GAA6B,EAAM,CAC7J,IAAIK,EAAeF,EAAOjyB,MAENnB,GAAhBszB,GAAqBA,EAAeN,IACvCA,EAAIM,IAML,MAAO1D,GACRsD,GAAqB,EACrBC,EAAkBvD,EACjB,QACD,KACMqD,GAA8BI,EAAWR,QAC7CQ,EAAWR,SAEX,QACD,GAAIK,EACH,MAAMC,GAKT,IAAII,EAAwBR,EAAiB,EACzCC,EAAIhzB,EAAIqwB,GAAOP,EAASwB,GAASiC,IACpC9C,EAAQ,YAGTa,IAAU0B,EAAIhzB,GAAKuzB,EACnBvzB,EAAIgzB,EAEJ,IAAIQ,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkB1xB,EAEtB,IACC,IAAK,IAA2C2xB,EAAvCC,EAAahC,EAAM1C,OAAOC,cAAuBqE,GAA8BG,EAASC,EAAWlE,QAAQC,MAAO6D,GAA6B,EAAM,CAC7J,IAAIK,EAAgBF,EAAOxyB,MAK3B,GAHI0yB,EAAgB7zB,KAAOsxB,EAAQxB,GAClCW,EAAQ,YAELoD,GAAiB7zB,EAAG,CAGvB,IADA,IAAI8zB,EAAIxC,EACC5f,EAxYH,IAwYgCA,GAxYhC,GAwY2C,CAChD,IAAIzR,EAAIyR,GAAKqgB,EAxYR,EAwY2BA,EAvY3B,IAuYsBrgB,EAvYtB,GAuYgDA,EAAIqgB,EACzD,GAAI+B,EAAI7zB,EACP,MAED,IAAI8zB,EAAUD,EAAI7zB,EACdmyB,EA9YC,GA8YmBnyB,EACxB8wB,EAAOpf,KAAK2e,EAAmBY,EAAajxB,EAAI8zB,EAAU3B,EAAY,KACtE0B,EAAIzD,EAAM0D,EAAU3B,GAGrBrB,EAAOpf,KAAK2e,EAAmBY,EAAa4C,EAAG,KAC/C/B,EAAOV,EAAMC,EAAOiC,EAAuBR,GAAkBD,GAC7DxB,EAAQ,IACNyB,IAGH,MAAOnD,GACR6D,GAAqB,EACrBC,EAAkB9D,EACjB,QACD,KACM4D,GAA8BI,EAAWf,QAC7Ce,EAAWf,SAEX,QACD,GAAIY,EACH,MAAMC,KAKPpC,IACAtxB,EAEH,OAAO+wB,EAAO5jB,KAAK,IA5SpB,IAoVI6mB,EAAW,CAMdC,QAAW,QAQXC,KAAQ,CACPvC,OAAUb,EACVwB,OApWe,SAAoBlf,GACpC,OAAOmd,OAAO8B,cAAc7nB,MAAM+lB,OA/IX,SAAUnnB,GAChC,GAAI4G,MAAMC,QAAQ7G,GAAM,CACtB,IAAK,IAAIjJ,EAAI,EAAG6d,EAAOhO,MAAM5G,EAAIxI,QAAST,EAAIiJ,EAAIxI,OAAQT,IAAK6d,EAAK7d,GAAKiJ,EAAIjJ,GAE7E,OAAO6d,EAEP,OAAOhO,MAAMmkB,KAAK/qB,GAyIqBgrB,CAAkBhhB,MAqW5Due,OAAUA,EACVW,OAAUA,EACV+B,QA7Ba,SAAiBzC,GAC9B,OAAOjB,EAAUiB,EAAO,SAAUhB,GACjC,OAAOZ,EAAcvoB,KAAKmpB,GAAU,OAAS0B,EAAO1B,GAAUA,KA4B/D0D,UA/Ce,SAAmB1C,GAClC,OAAOjB,EAAUiB,EAAO,SAAUhB,GACjC,OAAOb,EAActoB,KAAKmpB,GAAUe,EAAOf,EAAOphB,MAAM,GAAGub,eAAiB6F,MAkF1E2D,EAAU,GACd,SAASC,EAAWC,GAChB,IAAIr0B,EAAIq0B,EAAIliB,WAAW,GAGvB,OADInS,EAAI,GAAQ,KAAOA,EAAE8oB,SAAS,IAAI8B,cAAuB5qB,EAAI,IAAS,IAAMA,EAAE8oB,SAAS,IAAI8B,cAAuB5qB,EAAI,KAAU,KAAOA,GAAK,EAAI,KAAK8oB,SAAS,IAAI8B,cAAgB,KAAW,GAAJ5qB,EAAS,KAAK8oB,SAAS,IAAI8B,cAAuB,KAAO5qB,GAAK,GAAK,KAAK8oB,SAAS,IAAI8B,cAAgB,KAAO5qB,GAAK,EAAI,GAAK,KAAK8oB,SAAS,IAAI8B,cAAgB,KAAW,GAAJ5qB,EAAS,KAAK8oB,SAAS,IAAI8B,cAG/X,SAAS0J,EAAY9uB,GAIjB,IAHA,IAAI+uB,EAAS,GACTx0B,EAAI,EACJy0B,EAAKhvB,EAAIhF,OACNT,EAAIy0B,GAAI,CACX,IAAIx0B,EAAIy0B,SAASjvB,EAAIkvB,OAAO30B,EAAI,EAAG,GAAI,IACvC,GAAIC,EAAI,IACJu0B,GAAUpE,OAAOC,aAAapwB,GAC9BD,GAAK,OACF,GAAS,KAALC,GAAYA,EAAI,IAAK,CAC5B,GAAc,GAAVw0B,EAAKz0B,EAAQ,CACb,IAAI40B,EAAKF,SAASjvB,EAAIkvB,OAAO30B,EAAI,EAAG,GAAI,IACxCw0B,GAAUpE,OAAOC,cAAkB,GAAJpwB,IAAW,EAAS,GAAL20B,QAE9CJ,GAAU/uB,EAAIkvB,OAAO30B,EAAG,GAE5BA,GAAK,OACF,GAAS,KAALC,EAAU,CACjB,GAAc,GAAVw0B,EAAKz0B,EAAQ,CACb,IAAI60B,EAAKH,SAASjvB,EAAIkvB,OAAO30B,EAAI,EAAG,GAAI,IACpC80B,EAAKJ,SAASjvB,EAAIkvB,OAAO30B,EAAI,EAAG,GAAI,IACxCw0B,GAAUpE,OAAOC,cAAkB,GAAJpwB,IAAW,IAAW,GAAL40B,IAAY,EAAS,GAALC,QAEhEN,GAAU/uB,EAAIkvB,OAAO30B,EAAG,GAE5BA,GAAK,OAELw0B,GAAU/uB,EAAIkvB,OAAO30B,EAAG,GACxBA,GAAK,EAGb,OAAOw0B,EAEX,SAASO,EAA4BC,EAAYC,GAC7C,SAASC,EAAiBzvB,GACtB,IAAI0vB,EAASZ,EAAY9uB,GACzB,OAAQ0vB,EAAOxvB,MAAMsvB,EAAS1G,YAAoB4G,EAAN1vB,EAQhD,OANIuvB,EAAWI,SAAQJ,EAAWI,OAAShF,OAAO4E,EAAWI,QAAQ/kB,QAAQ4kB,EAASxG,YAAayG,GAAkBtK,cAAcva,QAAQ4kB,EAASlH,WAAY,UACpIlsB,IAAxBmzB,EAAWK,WAAwBL,EAAWK,SAAWjF,OAAO4E,EAAWK,UAAUhlB,QAAQ4kB,EAASxG,YAAayG,GAAkB7kB,QAAQ4kB,EAASjH,aAAcqG,GAAYhkB,QAAQ4kB,EAASxG,YAAa5D,SAC1LhpB,IAApBmzB,EAAWM,OAAoBN,EAAWM,KAAOlF,OAAO4E,EAAWM,MAAMjlB,QAAQ4kB,EAASxG,YAAayG,GAAkBtK,cAAcva,QAAQ4kB,EAAShH,SAAUoG,GAAYhkB,QAAQ4kB,EAASxG,YAAa5D,SACxLhpB,IAApBmzB,EAAWtf,OAAoBsf,EAAWtf,KAAO0a,OAAO4E,EAAWtf,MAAMrF,QAAQ4kB,EAASxG,YAAayG,GAAkB7kB,QAAQ2kB,EAAWI,OAASH,EAAS/G,SAAW+G,EAAS9G,kBAAmBkG,GAAYhkB,QAAQ4kB,EAASxG,YAAa5D,SAC1NhpB,IAArBmzB,EAAWO,QAAqBP,EAAWO,MAAQnF,OAAO4E,EAAWO,OAAOllB,QAAQ4kB,EAASxG,YAAayG,GAAkB7kB,QAAQ4kB,EAAS7G,UAAWiG,GAAYhkB,QAAQ4kB,EAASxG,YAAa5D,SAC1KhpB,IAAxBmzB,EAAW5lB,WAAwB4lB,EAAW5lB,SAAWghB,OAAO4E,EAAW5lB,UAAUiB,QAAQ4kB,EAASxG,YAAayG,GAAkB7kB,QAAQ4kB,EAAS5G,aAAcgG,GAAYhkB,QAAQ4kB,EAASxG,YAAa5D,IAC3MmK,EAGX,SAASQ,EAAmB/vB,GACxB,OAAOA,EAAI4K,QAAQ,UAAW,OAAS,IAE3C,SAASolB,EAAeH,EAAML,GAC1B,IAAIvvB,EAAU4vB,EAAK3vB,MAAMsvB,EAASvG,cAAgB,GAG9CgH,EADW5G,EAAcppB,EAAS,GACf,GAEvB,OAAIgwB,EACOA,EAAQvuB,MAAM,KAAKkK,IAAImkB,GAAoBxoB,KAAK,KAEhDsoB,EAGf,SAASK,EAAeL,EAAML,GAC1B,IAAIvvB,EAAU4vB,EAAK3vB,MAAMsvB,EAAStG,cAAgB,GAE9CiH,EAAY9G,EAAcppB,EAAS,GACnCgwB,EAAUE,EAAU,GACpBC,EAAOD,EAAU,GAErB,GAAIF,EAAS,CAYT,IAXA,IAAII,EAAwBJ,EAAQ9K,cAAczjB,MAAM,MAAM4uB,UAC1DC,EAAyBlH,EAAcgH,EAAuB,GAC9DG,EAAOD,EAAuB,GAC9BE,EAAQF,EAAuB,GAE/BG,EAAcD,EAAQA,EAAM/uB,MAAM,KAAKkK,IAAImkB,GAAsB,GACjEY,EAAaH,EAAK9uB,MAAM,KAAKkK,IAAImkB,GACjCa,EAAyBpB,EAASvG,YAAYpnB,KAAK8uB,EAAWA,EAAW31B,OAAS,IAClF61B,EAAaD,EAAyB,EAAI,EAC1CE,EAAkBH,EAAW31B,OAAS61B,EACtCE,EAAS3mB,MAAMymB,GACV9L,EAAI,EAAGA,EAAI8L,IAAc9L,EAC9BgM,EAAOhM,GAAK2L,EAAY3L,IAAM4L,EAAWG,EAAkB/L,IAAM,GAEjE6L,IACAG,EAAOF,EAAa,GAAKb,EAAee,EAAOF,EAAa,GAAIrB,IAEpE,IAWIwB,EAXgBD,EAAOE,OAAO,SAAUC,EAAKC,EAAOzuB,GACpD,IAAKyuB,GAAmB,MAAVA,EAAe,CACzB,IAAIC,EAAcF,EAAIA,EAAIl2B,OAAS,GAC/Bo2B,GAAeA,EAAY1uB,MAAQ0uB,EAAYp2B,SAAW0H,EAC1D0uB,EAAYp2B,SAEZk2B,EAAInlB,KAAK,CAAErJ,MAAOA,EAAO1H,OAAQ,IAGzC,OAAOk2B,GACR,IACmClN,KAAK,SAAUrpB,EAAGsW,GACpD,OAAOA,EAAEjW,OAASL,EAAEK,SACrB,GACCq2B,OAAU,EACd,GAAIL,GAAgD,EAA3BA,EAAkBh2B,OAAY,CACnD,IAAIs2B,EAAWP,EAAOnnB,MAAM,EAAGonB,EAAkBtuB,OAC7C6uB,EAAUR,EAAOnnB,MAAMonB,EAAkBtuB,MAAQsuB,EAAkBh2B,QACvEq2B,EAAUC,EAAS/pB,KAAK,KAAO,KAAOgqB,EAAQhqB,KAAK,UAEnD8pB,EAAUN,EAAOxpB,KAAK,KAK1B,OAHI6oB,IACAiB,GAAW,IAAMjB,GAEdiB,EAEP,OAAOxB,EAGf,IAAI2B,EAAY,kIACZC,OAAiDr1B,IAAzB,GAAG8D,MAAM,SAAS,GAC9C,SAASiI,EAAMupB,GACX,IAAIC,EAA6B,EAAnB9sB,UAAU7J,aAA+BoB,IAAjByI,UAAU,GAAmBA,UAAU,GAAK,GAE9E0qB,EAAa,GACbC,GAA2B,IAAhBmC,EAAQC,IAAgBxI,EAAeD,EAC5B,WAAtBwI,EAAQE,YAAwBH,GAAaC,EAAQhC,OAASgC,EAAQhC,OAAS,IAAM,IAAM,KAAO+B,GACtG,IAAIzxB,EAAUyxB,EAAUxxB,MAAMsxB,GAC9B,GAAIvxB,EAAS,CACLwxB,GAEAlC,EAAWI,OAAS1vB,EAAQ,GAC5BsvB,EAAWK,SAAW3vB,EAAQ,GAC9BsvB,EAAWM,KAAO5vB,EAAQ,GAC1BsvB,EAAWuC,KAAO7C,SAAShvB,EAAQ,GAAI,IACvCsvB,EAAWtf,KAAOhQ,EAAQ,IAAM,GAChCsvB,EAAWO,MAAQ7vB,EAAQ,GAC3BsvB,EAAW5lB,SAAW1J,EAAQ,GAE1B8xB,MAAMxC,EAAWuC,QACjBvC,EAAWuC,KAAO7xB,EAAQ,MAK9BsvB,EAAWI,OAAS1vB,EAAQ,SAAM7D,EAClCmzB,EAAWK,UAAuC,IAA5B8B,EAAUvY,QAAQ,KAAclZ,EAAQ,QAAK7D,EACnEmzB,EAAWM,MAAoC,IAA7B6B,EAAUvY,QAAQ,MAAelZ,EAAQ,QAAK7D,EAChEmzB,EAAWuC,KAAO7C,SAAShvB,EAAQ,GAAI,IACvCsvB,EAAWtf,KAAOhQ,EAAQ,IAAM,GAChCsvB,EAAWO,OAAoC,IAA5B4B,EAAUvY,QAAQ,KAAclZ,EAAQ,QAAK7D,EAChEmzB,EAAW5lB,UAAuC,IAA5B+nB,EAAUvY,QAAQ,KAAclZ,EAAQ,QAAK7D,EAE/D21B,MAAMxC,EAAWuC,QACjBvC,EAAWuC,KAAOJ,EAAUxxB,MAAM,iCAAmCD,EAAQ,QAAK7D,IAGtFmzB,EAAWM,OAEXN,EAAWM,KAAOK,EAAeF,EAAeT,EAAWM,KAAML,GAAWA,IAM5ED,EAAWsC,eAHWz1B,IAAtBmzB,EAAWI,aAAgDvzB,IAAxBmzB,EAAWK,eAA8CxzB,IAApBmzB,EAAWM,WAA0CzzB,IAApBmzB,EAAWuC,MAAuBvC,EAAWtf,WAA6B7T,IAArBmzB,EAAWO,WAE5I1zB,IAAtBmzB,EAAWI,OACK,gBACQvzB,IAAxBmzB,EAAW5lB,SACK,WAEA,MANA,gBASvBgoB,EAAQE,WAAmC,WAAtBF,EAAQE,WAA0BF,EAAQE,YAActC,EAAWsC,YACxFtC,EAAW1pB,MAAQ0pB,EAAW1pB,OAAS,gBAAkB8rB,EAAQE,UAAY,eAGjF,IAAIG,EAAgBrD,GAASgD,EAAQhC,QAAUJ,EAAWI,QAAU,IAAIxK,eAExE,GAAKwM,EAAQM,gBAAoBD,GAAkBA,EAAcC,eAc7D3C,EAA4BC,EAAYC,OAdsC,CAE9E,GAAID,EAAWM,OAAS8B,EAAQO,YAAcF,GAAiBA,EAAcE,YAEzE,IACI3C,EAAWM,KAAOzB,EAASK,QAAQc,EAAWM,KAAKjlB,QAAQ4kB,EAASxG,YAAa8F,GAAa3J,eAChG,MAAOhrB,GACLo1B,EAAW1pB,MAAQ0pB,EAAW1pB,OAAS,kEAAoE1L,EAInHm1B,EAA4BC,EAAYpG,GAMxC6I,GAAiBA,EAAc7pB,OAC/B6pB,EAAc7pB,MAAMonB,EAAYoC,QAGpCpC,EAAW1pB,MAAQ0pB,EAAW1pB,OAAS,yBAE3C,OAAO0pB,EAuBX,IAAI4C,EAAO,WACPC,EAAO,cACPC,EAAO,gBACPC,EAAO,yBACX,SAASC,EAAkBvG,GAEvB,IADA,IAAIb,EAAS,GACNa,EAAMhxB,QACT,GAAIgxB,EAAM9rB,MAAMiyB,GACZnG,EAAQA,EAAMphB,QAAQunB,EAAM,SACzB,GAAInG,EAAM9rB,MAAMkyB,GACnBpG,EAAQA,EAAMphB,QAAQwnB,EAAM,UACzB,GAAIpG,EAAM9rB,MAAMmyB,GACnBrG,EAAQA,EAAMphB,QAAQynB,EAAM,KAC5BlH,EAAO9W,WACJ,GAAc,MAAV2X,GAA2B,OAAVA,EACxBA,EAAQ,OACL,CACH,IAAIwG,EAAKxG,EAAM9rB,MAAMoyB,GACrB,IAAIE,EAKA,MAAM,IAAI53B,MAAM,oCAJhB,IAAI63B,EAAID,EAAG,GACXxG,EAAQA,EAAMpiB,MAAM6oB,EAAEz3B,QACtBmwB,EAAOpf,KAAK0mB,GAMxB,OAAOtH,EAAO5jB,KAAK,IAGvB,SAASmD,EAAU6kB,GACf,IAAIoC,EAA6B,EAAnB9sB,UAAU7J,aAA+BoB,IAAjByI,UAAU,GAAmBA,UAAU,GAAK,GAE9E2qB,EAAWmC,EAAQC,IAAMxI,EAAeD,EACxCuJ,EAAY,GAEZV,EAAgBrD,GAASgD,EAAQhC,QAAUJ,EAAWI,QAAU,IAAIxK,eAGxE,GADI6M,GAAiBA,EAActnB,WAAWsnB,EAActnB,UAAU6kB,EAAYoC,GAC9EpC,EAAWM,OAEPL,EAAStG,YAAYrnB,KAAK0tB,EAAWM,QAIhC8B,EAAQO,YAAcF,GAAiBA,EAAcE,YAEtD,IACI3C,EAAWM,KAAQ8B,EAAQC,IAAmGxD,EAASM,UAAUa,EAAWM,MAA3HzB,EAASK,QAAQc,EAAWM,KAAKjlB,QAAQ4kB,EAASxG,YAAa8F,GAAa3J,eAC/G,MAAOhrB,GACLo1B,EAAW1pB,MAAQ0pB,EAAW1pB,OAAS,+CAAkD8rB,EAAQC,IAAgB,UAAV,SAAuB,kBAAoBz3B,EAKlKm1B,EAA4BC,EAAYC,GACd,WAAtBmC,EAAQE,WAA0BtC,EAAWI,SAC7C+C,EAAU3mB,KAAKwjB,EAAWI,QAC1B+C,EAAU3mB,KAAK,MAEnB,IAhFyBwjB,EACrBC,EACAkD,EA8EAC,GA/EAnD,GAA2B,IA+EiBmC,EA/EzBC,IAAgBxI,EAAeD,EAClDuJ,EAAY,QACYt2B,KAHHmzB,EAgFWA,GA7ErBK,WACX8C,EAAU3mB,KAAKwjB,EAAWK,UAC1B8C,EAAU3mB,KAAK,WAEK3P,IAApBmzB,EAAWM,MAEX6C,EAAU3mB,KAAKmkB,EAAeF,EAAerF,OAAO4E,EAAWM,MAAOL,GAAWA,GAAU5kB,QAAQ4kB,EAAStG,YAAa,SAAU0J,EAAGC,EAAIC,GACtI,MAAO,IAAMD,GAAMC,EAAK,MAAQA,EAAK,IAAM,OAGpB,iBAApBvD,EAAWuC,OAClBY,EAAU3mB,KAAK,KACf2mB,EAAU3mB,KAAKwjB,EAAWuC,KAAKxO,SAAS,MAErCoP,EAAU13B,OAAS03B,EAAUnrB,KAAK,SAAMnL,GAyE/C,QATkBA,IAAdu2B,IAC0B,WAAtBhB,EAAQE,WACRa,EAAU3mB,KAAK,MAEnB2mB,EAAU3mB,KAAK4mB,GACXpD,EAAWtf,MAAsC,MAA9Bsf,EAAWtf,KAAK8iB,OAAO,IAC1CL,EAAU3mB,KAAK,WAGC3P,IAApBmzB,EAAWtf,KAAoB,CAC/B,IAAIwiB,EAAIlD,EAAWtf,KACd0hB,EAAQqB,cAAkBhB,GAAkBA,EAAcgB,eAC3DP,EAAIF,EAAkBE,SAERr2B,IAAdu2B,IACAF,EAAIA,EAAE7nB,QAAQ,QAAS,SAE3B8nB,EAAU3mB,KAAK0mB,GAUnB,YARyBr2B,IAArBmzB,EAAWO,QACX4C,EAAU3mB,KAAK,KACf2mB,EAAU3mB,KAAKwjB,EAAWO,aAEF1zB,IAAxBmzB,EAAW5lB,WACX+oB,EAAU3mB,KAAK,KACf2mB,EAAU3mB,KAAKwjB,EAAW5lB,WAEvB+oB,EAAUnrB,KAAK,IAG1B,SAAS0rB,EAAkBnH,EAAMoH,GAC7B,IAAIvB,EAA6B,EAAnB9sB,UAAU7J,aAA+BoB,IAAjByI,UAAU,GAAmBA,UAAU,GAAK,GAG9EsuB,EAAS,GAqDb,OAvDwBtuB,UAAU,KAI9BinB,EAAO3jB,EAAMuC,EAAUohB,EAAM6F,GAAUA,GACvCuB,EAAW/qB,EAAMuC,EAAUwoB,EAAUvB,GAAUA,MAEnDA,EAAUA,GAAW,IACRyB,UAAYF,EAASvD,QAC9BwD,EAAOxD,OAASuD,EAASvD,OAEzBwD,EAAOvD,SAAWsD,EAAStD,SAC3BuD,EAAOtD,KAAOqD,EAASrD,KACvBsD,EAAOrB,KAAOoB,EAASpB,KACvBqB,EAAOljB,KAAOsiB,EAAkBW,EAASjjB,MAAQ,IACjDkjB,EAAOrD,MAAQoD,EAASpD,aAEE1zB,IAAtB82B,EAAStD,eAA4CxzB,IAAlB82B,EAASrD,WAAwCzzB,IAAlB82B,EAASpB,MAE3EqB,EAAOvD,SAAWsD,EAAStD,SAC3BuD,EAAOtD,KAAOqD,EAASrD,KACvBsD,EAAOrB,KAAOoB,EAASpB,KACvBqB,EAAOljB,KAAOsiB,EAAkBW,EAASjjB,MAAQ,IACjDkjB,EAAOrD,MAAQoD,EAASpD,QAEnBoD,EAASjjB,MAQsB,MAA5BijB,EAASjjB,KAAK8iB,OAAO,GACrBI,EAAOljB,KAAOsiB,EAAkBW,EAASjjB,OAOrCkjB,EAAOljB,UALY7T,IAAlB0vB,EAAK8D,eAAwCxzB,IAAd0vB,EAAK+D,WAAoCzzB,IAAd0vB,EAAKgG,MAAwBhG,EAAK7b,KAErF6b,EAAK7b,KAGC6b,EAAK7b,KAAKrG,MAAM,EAAGkiB,EAAK7b,KAAKoc,YAAY,KAAO,GAAK6G,EAASjjB,KAF9DijB,EAASjjB,KAFT,IAAMijB,EAASjjB,KAMjCkjB,EAAOljB,KAAOsiB,EAAkBY,EAAOljB,OAE3CkjB,EAAOrD,MAAQoD,EAASpD,QAnBxBqD,EAAOljB,KAAO6b,EAAK7b,KAEfkjB,EAAOrD,WADY1zB,IAAnB82B,EAASpD,MACMoD,EAASpD,MAEThE,EAAKgE,OAkB5BqD,EAAOvD,SAAW9D,EAAK8D,SACvBuD,EAAOtD,KAAO/D,EAAK+D,KACnBsD,EAAOrB,KAAOhG,EAAKgG,MAEvBqB,EAAOxD,OAAS7D,EAAK6D,QAEzBwD,EAAOxpB,SAAWupB,EAASvpB,SACpBwpB,EAmCX,SAASE,EAAkBrzB,EAAK2xB,GAC5B,OAAO3xB,GAAOA,EAAIsjB,WAAW1Y,QAAS+mB,GAAYA,EAAQC,IAAiCxI,EAAaJ,YAAxCG,EAAaH,YAAwC8F,GAGzH,IAAIwE,EAAU,CACV3D,OAAQ,OACRuC,YAAY,EACZ/pB,MAAO,SAAeonB,GAKlB,OAHKA,EAAWM,OACZN,EAAW1pB,MAAQ0pB,EAAW1pB,OAAS,+BAEpC0pB,GAEX7kB,UAAW,SAAmB6kB,GAY1B,OAVIA,EAAWuC,QAAsD,UAA5CnH,OAAO4E,EAAWI,QAAQxK,cAA4B,GAAK,MAA4B,KAApBoK,EAAWuC,OACnGvC,EAAWuC,UAAO11B,GAGjBmzB,EAAWtf,OACZsf,EAAWtf,KAAO,KAKfsf,IAIXgE,EAAY,CACZ5D,OAAQ,QACRuC,WAAYoB,EAAQpB,WACpB/pB,MAAOmrB,EAAQnrB,MACfuC,UAAW4oB,EAAQ5oB,WAGnB8oB,EAAI,GAGJ1N,EAAe,mGACfL,EAAW,cAeXgO,GAdezO,EAAOA,EAAO,UAAYS,EAAW,IAAMA,EAAWA,EAAW,IAAMA,EAAWA,GAAY,IAAMT,EAAO,cAAgBS,EAAW,IAAMA,EAAWA,GAAY,IAAMT,EAAO,IAAMS,EAAWA,IActMf,EADA,6DACe,cAEzBoE,EAAa,IAAI/mB,OAAO+jB,EAAc,KACtCkD,EAAc,IAAIjnB,OAjBHijB,yJAiBwB,KACvC0O,EAAiB,IAAI3xB,OAAO2iB,EAAM,MANxB,wDAMwC,QAAS,QAAS+O,GAAU,KAC9EE,EAAa,IAAI5xB,OAAO2iB,EAAM,MAAOoB,EAJrB,uCAImD,KACnE8N,EAAcD,EAClB,SAASlE,EAAiBzvB,GACtB,IAAI0vB,EAASZ,EAAY9uB,GACzB,OAAQ0vB,EAAOxvB,MAAM4oB,GAAoB4G,EAAN1vB,EAEvC,IAAI6zB,GAAY,CACZlE,OAAQ,SACRxnB,MAAO,SAAkBonB,EAAYoC,GACjC,IAAImC,EAAmBvE,EACnBliB,EAAKymB,EAAiBzmB,GAAKymB,EAAiB7jB,KAAO6jB,EAAiB7jB,KAAKvO,MAAM,KAAO,GAE1F,GADAoyB,EAAiB7jB,UAAO7T,EACpB03B,EAAiBhE,MAAO,CAIxB,IAHA,IAAIiE,GAAiB,EACjBC,EAAU,GACVC,EAAUH,EAAiBhE,MAAMpuB,MAAM,KAClCqjB,EAAI,EAAGD,EAAKmP,EAAQj5B,OAAQ+pB,EAAID,IAAMC,EAAG,CAC9C,IAAImP,EAASD,EAAQlP,GAAGrjB,MAAM,KAC9B,OAAQwyB,EAAO,IACX,IAAK,KAED,IADA,IAAIC,EAAUD,EAAO,GAAGxyB,MAAM,KACrB0yB,EAAK,EAAGC,EAAMF,EAAQn5B,OAAQo5B,EAAKC,IAAOD,EAC/C/mB,EAAGtB,KAAKooB,EAAQC,IAEpB,MACJ,IAAK,UACDN,EAAiBQ,QAAUjB,EAAkBa,EAAO,GAAIvC,GACxD,MACJ,IAAK,OACDmC,EAAiBS,KAAOlB,EAAkBa,EAAO,GAAIvC,GACrD,MACJ,QACIoC,GAAiB,EACjBC,EAAQX,EAAkBa,EAAO,GAAIvC,IAAY0B,EAAkBa,EAAO,GAAIvC,IAItFoC,IAAgBD,EAAiBE,QAAUA,GAEnDF,EAAiBhE,WAAQ1zB,EACzB,IAAK,IAAIo4B,EAAM,EAAGC,EAAOpnB,EAAGrS,OAAQw5B,EAAMC,IAAQD,EAAK,CACnD,IAAIE,EAAOrnB,EAAGmnB,GAAK9yB,MAAM,KAEzB,GADAgzB,EAAK,GAAKrB,EAAkBqB,EAAK,IAC5B/C,EAAQM,eAQTyC,EAAK,GAAKrB,EAAkBqB,EAAK,GAAI/C,GAASxM,mBAN9C,IACIuP,EAAK,GAAKtG,EAASK,QAAQ4E,EAAkBqB,EAAK,GAAI/C,GAASxM,eACjE,MAAOhrB,GACL25B,EAAiBjuB,MAAQiuB,EAAiBjuB,OAAS,2EAA6E1L,EAKxIkT,EAAGmnB,GAAOE,EAAKntB,KAAK,KAExB,OAAOusB,GAEXppB,UAAW,SAAsBopB,EAAkBnC,GAC/C,IAvtCSplB,EAutCLgjB,EAAauE,EACbzmB,EAvtCDd,OADMA,EAwtCQunB,EAAiBzmB,IAvtCKd,aAAenC,MAAQmC,EAA4B,iBAAfA,EAAIvR,QAAuBuR,EAAI7K,OAAS6K,EAAIooB,aAAepoB,EAAIxR,KAAO,CAACwR,GAAOnC,MAAMhP,UAAUwO,MAAM7O,KAAKwR,GAAO,GAwtC3L,GAAIc,EAAI,CACJ,IAAK,IAAI0X,EAAI,EAAGD,EAAKzX,EAAGrS,OAAQ+pB,EAAID,IAAMC,EAAG,CACzC,IAAI6P,EAASjK,OAAOtd,EAAG0X,IACnB8P,EAAQD,EAAOvI,YAAY,KAC3ByI,EAAYF,EAAOhrB,MAAM,EAAGirB,GAAOjqB,QAAQoe,EAAayG,GAAkB7kB,QAAQoe,EAAa5D,GAAaxa,QAAQ8oB,EAAgB9E,GACpImG,EAASH,EAAOhrB,MAAMirB,EAAQ,GAElC,IACIE,EAAUpD,EAAQC,IAA2ExD,EAASM,UAAUqG,GAAxF3G,EAASK,QAAQ4E,EAAkB0B,EAAQpD,GAASxM,eAC9E,MAAOhrB,GACLo1B,EAAW1pB,MAAQ0pB,EAAW1pB,OAAS,wDAA2D8rB,EAAQC,IAAgB,UAAV,SAAuB,kBAAoBz3B,EAE/JkT,EAAG0X,GAAK+P,EAAY,IAAMC,EAE9BxF,EAAWtf,KAAO5C,EAAG9F,KAAK,KAE9B,IAAIysB,EAAUF,EAAiBE,QAAUF,EAAiBE,SAAW,GACjEF,EAAiBQ,UAASN,EAAiB,QAAIF,EAAiBQ,SAChER,EAAiBS,OAAMP,EAAc,KAAIF,EAAiBS,MAC9D,IAAIxD,EAAS,GACb,IAAK,IAAIiE,KAAQhB,EACTA,EAAQgB,KAAUxB,EAAEwB,IACpBjE,EAAOhlB,KAAKipB,EAAKpqB,QAAQoe,EAAayG,GAAkB7kB,QAAQoe,EAAa5D,GAAaxa,QAAQ+oB,EAAY/E,GAAc,IAAMoF,EAAQgB,GAAMpqB,QAAQoe,EAAayG,GAAkB7kB,QAAQoe,EAAa5D,GAAaxa,QAAQgpB,EAAahF,IAMtP,OAHImC,EAAO/1B,SACPu0B,EAAWO,MAAQiB,EAAOxpB,KAAK,MAE5BgoB,IAIX0F,GAAY,kBAEZC,GAAY,CACZvF,OAAQ,MACRxnB,MAAO,SAAkBonB,EAAYoC,GACjC,IAAI1xB,EAAUsvB,EAAWtf,MAAQsf,EAAWtf,KAAK/P,MAAM+0B,IACnDE,EAAgB5F,EACpB,GAAItvB,EAAS,CACT,IAAI0vB,EAASgC,EAAQhC,QAAUwF,EAAcxF,QAAU,MACnDyF,EAAMn1B,EAAQ,GAAGklB,cACjBkQ,EAAMp1B,EAAQ,GAEd+xB,EAAgBrD,EADJgB,EAAS,KAAOgC,EAAQyD,KAAOA,IAE/CD,EAAcC,IAAMA,EACpBD,EAAcE,IAAMA,EACpBF,EAAcllB,UAAO7T,EACjB41B,IACAmD,EAAgBnD,EAAc7pB,MAAMgtB,EAAexD,SAGvDwD,EAActvB,MAAQsvB,EAActvB,OAAS,yBAEjD,OAAOsvB,GAEXzqB,UAAW,SAAsByqB,EAAexD,GAC5C,IACIyD,EAAMD,EAAcC,IAEpBpD,EAAgBrD,GAHPgD,EAAQhC,QAAUwF,EAAcxF,QAAU,OAE9B,KAAOgC,EAAQyD,KAAOA,IAE3CpD,IACAmD,EAAgBnD,EAActnB,UAAUyqB,EAAexD,IAE3D,IAAI2D,EAAgBH,EAGpB,OADAG,EAAcrlB,MAAQmlB,GAAOzD,EAAQyD,KAAO,IADlCD,EAAcE,IAEjBC,IAIX91B,GAAO,2DAEP+1B,GAAY,CACZ5F,OAAQ,WACRxnB,MAAO,SAAegtB,EAAexD,GACjC,IAAI6D,EAAiBL,EAMrB,OALAK,EAAen0B,KAAOm0B,EAAeH,IACrCG,EAAeH,SAAMj5B,EAChBu1B,EAAQyB,UAAcoC,EAAen0B,MAASm0B,EAAen0B,KAAKnB,MAAMV,MACzEg2B,EAAe3vB,MAAQ2vB,EAAe3vB,OAAS,sBAE5C2vB,GAEX9qB,UAAW,SAAmB8qB,GAC1B,IAAIL,EAAgBK,EAGpB,OADAL,EAAcE,KAAOG,EAAen0B,MAAQ,IAAI8jB,cACzCgQ,IAIfxG,EAAQ2E,EAAQ3D,QAAU2D,EAC1B3E,EAAQ4E,EAAU5D,QAAU4D,EAC5B5E,EAAQkF,GAAUlE,QAAUkE,GAC5BlF,EAAQuG,GAAUvF,QAAUuF,GAC5BvG,EAAQ4G,GAAU5F,QAAU4F,GAE5B97B,EAAQk1B,QAAUA,EAClBl1B,EAAQm1B,WAAaA,EACrBn1B,EAAQq1B,YAAcA,EACtBr1B,EAAQ0O,MAAQA,EAChB1O,EAAQ84B,kBAAoBA,EAC5B94B,EAAQiR,UAAYA,EACpBjR,EAAQw5B,kBAAoBA,EAC5Bx5B,EAAQwD,QAlQR,SAAiBw4B,EAASC,EAAa/D,GACnC,IAAIgE,EA9jCR,SAAgBxC,EAAQzuB,GACpB,IAAI6H,EAAM4mB,EACV,GAAIzuB,EACA,IAAK,IAAIpJ,KAAOoJ,EACZ6H,EAAIjR,GAAOoJ,EAAOpJ,GAG1B,OAAOiR,EAujCiBqpB,CAAO,CAAEjG,OAAQ,QAAUgC,GACnD,OAAOjnB,EAAUuoB,EAAkB9qB,EAAMstB,EAASE,GAAoBxtB,EAAMutB,EAAaC,GAAoBA,GAAmB,GAAOA,IAiQ3Il8B,EAAQgR,UA9PR,SAAmB5J,EAAK8wB,GAMpB,MALmB,iBAAR9wB,EACPA,EAAM6J,EAAUvC,EAAMtH,EAAK8wB,GAAUA,GACd,WAAhB1M,EAAOpkB,KACdA,EAAMsH,EAAMuC,EAAU7J,EAAK8wB,GAAUA,IAElC9wB,GAyPXpH,EAAQ6I,MAtPR,SAAeuzB,EAAMC,EAAMnE,GAWvB,MAVoB,iBAATkE,EACPA,EAAOnrB,EAAUvC,EAAM0tB,EAAMlE,GAAUA,GACf,WAAjB1M,EAAO4Q,KACdA,EAAOnrB,EAAUmrB,EAAMlE,IAEP,iBAATmE,EACPA,EAAOprB,EAAUvC,EAAM2tB,EAAMnE,GAAUA,GACf,WAAjB1M,EAAO6Q,KACdA,EAAOprB,EAAUorB,EAAMnE,IAEpBkE,IAASC,GA4OpBr8B,EAAQs8B,gBAzOR,SAAyB/1B,EAAK2xB,GAC1B,OAAO3xB,GAAOA,EAAIsjB,WAAW1Y,QAAS+mB,GAAYA,EAAQC,IAA4BxI,EAAaP,OAAnCM,EAAaN,OAA8B+F,IAyO/Gn1B,EAAQ45B,kBAAoBA,EAE5B90B,OAAOy3B,eAAev8B,EAAS,aAAc,CAAE8B,OAAO,IAv2CU06B,CAA5C,iBAAZx8B,QAA0C,IAAXC,EAAiCD,EAE7DK,EAAOuF,IAAMvF,EAAOuF,KAAO,KA02CpC,IAAIT,IAAM,CAAC,SAASnE,EAAQf,EAAOD,GACrC,aAEA,IAAIy8B,EAAgBz7B,EAAQ,aACxBwC,EAAUxC,EAAQ,qBAClBS,EAAQT,EAAQ,WAChBsN,EAAetN,EAAQ,wBACvB0H,EAAkB1H,EAAQ,8BAC1BmF,EAAUnF,EAAQ,qBAClB0Q,EAAQ1Q,EAAQ,mBAChB07B,EAAkB17B,EAAQ,UAC1BuE,EAAOvE,EAAQ,mBAEnBf,EAAOD,QAAUQ,GAEbmB,UAAUqB,SA0Ed,SAAkB25B,EAAcrpB,GAC9B,IAAIpQ,EACJ,GAA2B,iBAAhBy5B,GAET,KADAz5B,EAAI3C,KAAK8C,UAAUs5B,IACX,MAAM,IAAIx7B,MAAM,8BAAgCw7B,EAAe,SAClE,CACL,IAAI75B,EAAYvC,KAAKwC,WAAW45B,GAChCz5B,EAAIJ,EAAUE,UAAYzC,KAAKkD,SAASX,GAG1C,IAAIiL,EAAQ7K,EAAEoQ,IACG,IAAbpQ,EAAE6H,SAAiBxK,KAAK2E,OAAShC,EAAEgC,QACvC,OAAO6I,GArFTvN,EAAImB,UAAUsI,QAgGd,SAAiB3H,EAAQs6B,GACvB,IAAI95B,EAAYvC,KAAKwC,WAAWT,OAAQK,EAAWi6B,GACnD,OAAO95B,EAAUE,UAAYzC,KAAKkD,SAASX,IAjG7CtC,EAAImB,UAAUuC,UA8Gd,SAAmB5B,EAAQT,EAAKg7B,EAAiBD,GAC/C,GAAIjsB,MAAMC,QAAQtO,GAAQ,CACxB,IAAK,IAAIxB,EAAE,EAAGA,EAAEwB,EAAOf,OAAQT,IAAKP,KAAK2D,UAAU5B,EAAOxB,QAAI6B,EAAWk6B,EAAiBD,GAC1F,OAAOr8B,KAET,IAAIyO,EAAKzO,KAAKuO,OAAOxM,GACrB,QAAWK,IAAPqM,GAAiC,iBAANA,EAC7B,MAAM,IAAI7N,MAAM,4BAIlB,OAFA27B,EAAYv8B,KADZsB,EAAM2B,EAAQkB,YAAY7C,GAAOmN,IAEjCzO,KAAK6D,SAASvC,GAAOtB,KAAKwC,WAAWT,EAAQu6B,EAAiBD,GAAO,GAC9Dr8B,MAxHTC,EAAImB,UAAUo7B,cAqId,SAAuBz6B,EAAQT,EAAKm7B,GAElC,OADAz8B,KAAK2D,UAAU5B,EAAQT,EAAKm7B,GAAgB,GACrCz8B,MAtITC,EAAImB,UAAU4L,eAiJd,SAAwBjL,EAAQ26B,GAC9B,IAAI75B,EAAUd,EAAOc,QACrB,QAAgBT,IAAZS,GAA2C,iBAAXA,EAClC,MAAM,IAAIjC,MAAM,4BAElB,KADAiC,EAAUA,GAAW7C,KAAKkC,MAAMy6B,aAgBlC,SAAqB58B,GACnB,IAAIiC,EAAOjC,EAAKmC,MAAMF,KAMtB,OALAjC,EAAKmC,MAAMy6B,YAA6B,iBAAR36B,EACJjC,EAAKwO,OAAOvM,IAASA,EACrBjC,EAAK+C,UAAU85B,GACbA,OACAx6B,EACvBrC,EAAKmC,MAAMy6B,YAvB6BA,CAAY38B,OAIzD,OAFAA,KAAKyL,OAAOyT,KAAK,+BACjBlf,KAAK2E,OAAS,MAGhB,IAAI6I,EAAQxN,KAAKyC,SAASI,EAASd,GACnC,IAAKyL,GAASkvB,EAAiB,CAC7B,IAAIz4B,EAAU,sBAAwBjE,KAAKyN,aAC3C,GAAiC,OAA7BzN,KAAKkC,MAAM8K,eACV,MAAM,IAAIpM,MAAMqD,GADmBjE,KAAKyL,OAAOI,MAAM5H,GAG5D,OAAOuJ,GAhKTvN,EAAImB,UAAU0B,UAqLd,SAAmB+5B,GACjB,IAAIt6B,EAAYu6B,EAAc98B,KAAM68B,GACpC,cAAet6B,GACb,IAAK,SAAU,OAAOA,EAAUE,UAAYzC,KAAKkD,SAASX,GAC1D,IAAK,SAAU,OAAOvC,KAAK8C,UAAUP,GACrC,IAAK,YAAa,OAKtB,SAA4BxC,EAAMqD,GAChC,IAAI6K,EAAMhL,EAAQlB,OAAOhB,KAAKhB,EAAM,CAAEgC,OAAQ,IAAMqB,GACpD,GAAI6K,EAAK,CACP,IAAIlM,EAASkM,EAAIlM,OACb0G,EAAOwF,EAAIxF,KACXzE,EAASiK,EAAIjK,OACbrB,EAAIu5B,EAAcn7B,KAAKhB,EAAMgC,EAAQ0G,OAAMrG,EAAW4B,GAS1D,OARAjE,EAAKg9B,WAAW35B,GAAO,IAAI2K,EAAa,CACtC3K,IAAKA,EACLuM,UAAU,EACV5N,OAAQA,EACR0G,KAAMA,EACNzE,OAAQA,EACRvB,SAAUE,IAELA,GApBkBq6B,CAAmBh9B,KAAM68B,KAzLtD58B,EAAImB,UAAU67B,aAiOd,SAAsBb,GACpB,GAAIA,aAAwBr0B,OAG1B,OAFAm1B,EAAkBl9B,KAAMA,KAAK6D,SAAUu4B,GACvCc,EAAkBl9B,KAAMA,KAAK4D,MAAOw4B,GAC7Bp8B,KAET,cAAeo8B,GACb,IAAK,YAIH,OAHAc,EAAkBl9B,KAAMA,KAAK6D,UAC7Bq5B,EAAkBl9B,KAAMA,KAAK4D,OAC7B5D,KAAKmB,OAAOO,QACL1B,KACT,IAAK,SACH,IAAIuC,EAAYu6B,EAAc98B,KAAMo8B,GAIpC,OAHI75B,GAAWvC,KAAKmB,OAAOM,IAAIc,EAAU46B,iBAClCn9B,KAAK6D,SAASu4B,UACdp8B,KAAK4D,MAAMw4B,GACXp8B,KACT,IAAK,SACH,IAAI0Q,EAAY1Q,KAAKkC,MAAMwO,UACvBysB,EAAWzsB,EAAYA,EAAU0rB,GAAgBA,EACrDp8B,KAAKmB,OAAOM,IAAI07B,GAChB,IAAI1uB,EAAKzO,KAAKuO,OAAO6tB,GACjB3tB,IACFA,EAAKxL,EAAQkB,YAAYsK,UAClBzO,KAAK6D,SAAS4K,UACdzO,KAAK4D,MAAM6K,IAGxB,OAAOzO,MA7PTC,EAAImB,UAAUg8B,UA4Zd,SAAmBpC,EAAMrc,GACF,iBAAVA,IAAoBA,EAAS,IAAI5W,OAAO4W,IAEnD,OADA3e,KAAKoK,SAAS4wB,GAAQrc,EACf3e,MA9ZTC,EAAImB,UAAUqM,WAoYd,SAAoB9I,EAAQgzB,GAE1B,KADAhzB,EAASA,GAAU3E,KAAK2E,QACX,MAAO,YAMpB,IAJA,IAAI04B,OAAkCj7B,KADtCu1B,EAAUA,GAAW,IACG0F,UAA0B,KAAO1F,EAAQ0F,UAC7DlpB,OAA8B/R,IAApBu1B,EAAQxjB,QAAwB,OAASwjB,EAAQxjB,QAE3DmpB,EAAO,GACF/8B,EAAE,EAAGA,EAAEoE,EAAO3D,OAAQT,IAAK,CAClC,IAAIJ,EAAIwE,EAAOpE,GACXJ,IAAGm9B,GAAQnpB,EAAUhU,EAAEo9B,SAAW,IAAMp9B,EAAE8D,QAAUo5B,GAE1D,OAAOC,EAAK1tB,MAAM,GAAIytB,EAAUr8B,SA9YlCf,EAAImB,UAAUoB,WA0Qd,SAAoBT,EAAQ06B,EAAgBz6B,EAAMw7B,GAChD,GAAqB,iBAAVz7B,GAAuC,kBAAVA,EACtC,MAAM,IAAInB,MAAM,sCAClB,IAAI8P,EAAY1Q,KAAKkC,MAAMwO,UACvBysB,EAAWzsB,EAAYA,EAAU3O,GAAUA,EAC3C07B,EAASz9B,KAAKmB,OAAOK,IAAI27B,GAC7B,GAAIM,EAAQ,OAAOA,EAEnBD,EAAkBA,IAAgD,IAA7Bx9B,KAAKkC,MAAMw7B,cAEhD,IAAIjvB,EAAKxL,EAAQkB,YAAYnE,KAAKuO,OAAOxM,IACrC0M,GAAM+uB,GAAiBjB,EAAYv8B,KAAMyO,GAE7C,IACIkvB,EADAC,GAA6C,IAA9B59B,KAAKkC,MAAM8K,iBAA6ByvB,EAEvDmB,KAAkBD,EAAgBlvB,GAAMA,GAAMxL,EAAQkB,YAAYpC,EAAOc,WAC3E7C,KAAKgN,eAAejL,GAAQ,GAE9B,IAAI4H,EAAY1G,EAAQ4L,IAAI9N,KAAKf,KAAM+B,GAEnCQ,EAAY,IAAIwL,EAAa,CAC/BU,GAAIA,EACJ1M,OAAQA,EACR4H,UAAWA,EACXwzB,SAAUA,EACVn7B,KAAMA,IAGK,KAATyM,EAAG,IAAa+uB,IAAiBx9B,KAAK4D,MAAM6K,GAAMlM,GACtDvC,KAAKmB,OAAOE,IAAI87B,EAAU56B,GAEtBq7B,GAAgBD,GAAe39B,KAAKgN,eAAejL,GAAQ,GAE/D,OAAOQ,GA1STtC,EAAImB,UAAU8B,SA+Sd,SAAkBX,EAAWkG,GAC3B,GAAIlG,EAAUqG,UAOZ,OANArG,EAAUE,SAAW0H,GACRpI,OAASQ,EAAUR,OAChCoI,EAAaxF,OAAS,KACtBwF,EAAa1B,KAAOA,GAAc0B,GACF,IAA5B5H,EAAUR,OAAOyI,SACnBL,EAAaK,QAAS,GACjBL,EAIT,IAAI0zB,EAMAl7B,EARJJ,EAAUqG,WAAY,EAGlBrG,EAAUP,OACZ67B,EAAc79B,KAAKkC,MACnBlC,KAAKkC,MAAQlC,KAAK89B,WAIpB,IAAMn7B,EAAIu5B,EAAcn7B,KAAKf,KAAMuC,EAAUR,OAAQ0G,EAAMlG,EAAUoH,WACrE,MAAMxJ,GAEJ,aADOoC,EAAUE,SACXtC,EAER,QACEoC,EAAUqG,WAAY,EAClBrG,EAAUP,OAAMhC,KAAKkC,MAAQ27B,GAOnC,OAJAt7B,EAAUE,SAAWE,EACrBJ,EAAUsH,KAAOlH,EAAEkH,KACnBtH,EAAU8G,OAAS1G,EAAE0G,OACrB9G,EAAUkG,KAAO9F,EAAE8F,KACZ9F,EAIP,SAASwH,IAEP,IAAI4zB,EAAYx7B,EAAUE,SACtBkI,EAASozB,EAAUnzB,MAAM5K,KAAM6K,WAEnC,OADAV,EAAaxF,OAASo5B,EAAUp5B,OACzBgG,IAvVX1K,EAAImB,UAAUU,aAAerB,EAAQ,mBACrC,IAAIu9B,EAAgBv9B,EAAQ,aAC5BR,EAAImB,UAAU68B,WAAaD,EAActW,IACzCznB,EAAImB,UAAU88B,WAAaF,EAAcx8B,IACzCvB,EAAImB,UAAU+8B,cAAgBH,EAAcjW,OAC5C9nB,EAAImB,UAAUumB,gBAAkBqW,EAAcv7B,SAE9C,IAAIyF,EAAezH,EAAQ,2BAC3BR,EAAIsI,gBAAkBL,EAAaxD,WACnCzE,EAAI2B,gBAAkBsG,EAAarG,WACnC5B,EAAIk8B,gBAAkBA,EAEtB,IAAIS,EAAiB,yCAEjBwB,EAAsB,CAAE,mBAAoB,cAAe,cAAe,kBAC1EC,EAAoB,CAAC,eAQzB,SAASp+B,EAAI2J,GACX,KAAM5J,gBAAgBC,GAAM,OAAO,IAAIA,EAAI2J,GAC3CA,EAAO5J,KAAKkC,MAAQ8C,EAAKc,KAAK8D,IAAS,GAwbzC,SAAmB7J,GACjB,IAAI0L,EAAS1L,EAAKmC,MAAMuJ,OACxB,IAAe,IAAXA,EACF1L,EAAK0L,OAAS,CAAC6yB,IAAKC,EAAMrf,KAAMqf,EAAM1yB,MAAO0yB,OACxC,CAEL,QADen8B,IAAXqJ,IAAsBA,EAAS+yB,WACZ,iBAAV/yB,GAAsBA,EAAO6yB,KAAO7yB,EAAOyT,MAAQzT,EAAOI,OACrE,MAAM,IAAIjL,MAAM,qDAClBb,EAAK0L,OAASA,GA/bhBgzB,CAAUz+B,MACVA,KAAK6D,SAAW,GAChB7D,KAAK4D,MAAQ,GACb5D,KAAK+8B,WAAa,GAClB/8B,KAAKoK,SAAWxE,EAAQgE,EAAK+U,QAE7B3e,KAAKmB,OAASyI,EAAK80B,OAAS,IAAIx9B,EAChClB,KAAKyD,gBAAkB,GACvBzD,KAAK6I,cAAgB,GACrB7I,KAAKqK,MAAQ8G,IACbnR,KAAKuO,OAwTP,SAAqB3E,GACnB,OAAQA,EAAKkF,UACX,IAAK,OAAQ,OAAO6vB,EACpB,IAAK,KAAM,OAAOpwB,EAClB,QAAS,OAAOqwB,GA5TJC,CAAYj1B,GAE1BA,EAAKoa,aAAepa,EAAKoa,cAAgBxT,EAAAA,EACf,YAAtB5G,EAAKk1B,gBAA6Bl1B,EAAKuU,wBAAyB,QAC7C/b,IAAnBwH,EAAK8G,YAAyB9G,EAAK8G,UAAYvI,GACnDnI,KAAK89B,UAgaP,SAA8B/9B,GAE5B,IADA,IAAIg/B,EAAW/5B,EAAKc,KAAK/F,EAAKmC,OACrB3B,EAAE,EAAGA,EAAE69B,EAAoBp9B,OAAQT,WACnCw+B,EAASX,EAAoB79B,IACtC,OAAOw+B,EApaUC,CAAqBh/B,MAElC4J,EAAKhE,SAwYX,SAA2B7F,GACzB,IAAK,IAAIi7B,KAAQj7B,EAAKmC,MAAM0D,QAAS,CAEnC7F,EAAKq9B,UAAUpC,EADFj7B,EAAKmC,MAAM0D,QAAQo1B,KA1YhBiE,CAAkBj/B,MAChC4J,EAAKsI,UA+YX,SAA4BnS,GAC1B,IAAK,IAAIi7B,KAAQj7B,EAAKmC,MAAMgQ,SAAU,CAEpCnS,EAAKk+B,WAAWjD,EADFj7B,EAAKmC,MAAMgQ,SAAS8oB,KAjZjBkE,CAAmBl/B,MAiXxC,SAA8BD,GAC5B,IAAIo/B,EACAp/B,EAAKmC,MAAMkU,QACb+oB,EAAc1+B,EAAQ,oBACtBV,EAAKy8B,cAAc2C,EAAaA,EAAYvnB,KAAK,IAEnD,IAAwB,IAApB7X,EAAKmC,MAAMF,KAAgB,OAC/B,IAAIqV,EAAa5W,EAAQ,oCACrBV,EAAKmC,MAAMkU,QAAOiB,EAAa8kB,EAAgB9kB,EAAYgnB,IAC/Dt+B,EAAKy8B,cAAcnlB,EAAYulB,GAAgB,GAC/C78B,EAAK6D,MAAM,iCAAmCg5B,EA1X9CwC,CAAqBp/B,MACG,iBAAb4J,EAAK5H,MAAkBhC,KAAKw8B,cAAc5yB,EAAK5H,MACtD4H,EAAK4c,UAAUxmB,KAAKi+B,WAAW,WAAY,CAAC5mB,WAAY,CAACnG,KAAM,aA4XrE,SAA2BnR,GACzB,IAAIs/B,EAAct/B,EAAKmC,MAAMo9B,QAC7B,IAAKD,EAAa,OAClB,GAAIjvB,MAAMC,QAAQgvB,GAAct/B,EAAK4D,UAAU07B,QAC1C,IAAK,IAAI/9B,KAAO+9B,EAAat/B,EAAK4D,UAAU07B,EAAY/9B,GAAMA,GA/XnEi+B,CAAkBv/B,MA2JpB,SAAS88B,EAAc/8B,EAAM88B,GAE3B,OADAA,EAAS55B,EAAQkB,YAAY04B,GACtB98B,EAAK8D,SAASg5B,IAAW98B,EAAK6D,MAAMi5B,IAAW98B,EAAKg9B,WAAWF,GA8CxE,SAASK,EAAkBn9B,EAAMu/B,EAASl4B,GACxC,IAAK,IAAIy1B,KAAUyC,EAAS,CAC1B,IAAI/8B,EAAY+8B,EAAQzC,GACnBt6B,EAAUP,MAAUoF,IAASA,EAAMS,KAAKg1B,KAC3C98B,EAAKoB,OAAOM,IAAIc,EAAU46B,iBACnBmC,EAAQzC,KAqGrB,SAAStuB,EAAOxM,GAEd,OADIA,EAAO6V,KAAK5X,KAAKyL,OAAOyT,KAAK,qBAAsBnd,EAAO6V,KACvD7V,EAAO0M,GAIhB,SAASmwB,EAAQ78B,GAEf,OADIA,EAAO0M,IAAIzO,KAAKyL,OAAOyT,KAAK,oBAAqBnd,EAAO0M,IACrD1M,EAAO6V,IAIhB,SAAS+mB,EAAY58B,GACnB,GAAIA,EAAO6V,KAAO7V,EAAO0M,IAAM1M,EAAO6V,KAAO7V,EAAO0M,GAClD,MAAM,IAAI7N,MAAM,mCAClB,OAAOmB,EAAO6V,KAAO7V,EAAO0M,GA+E9B,SAAS8tB,EAAYx8B,EAAM0O,GACzB,GAAI1O,EAAK8D,SAAS4K,IAAO1O,EAAK6D,MAAM6K,GAClC,MAAM,IAAI7N,MAAM,0BAA4B6N,EAAK,oBAyBrD,SAAS8vB,OAEP,CAACiB,UAAU,EAAEC,YAAY,EAAEC,kBAAkB,EAAEC,0BAA0B,EAAEC,oBAAoB,EAAEC,oBAAoB,EAAEC,kBAAkB,EAAEC,uBAAuB,EAAEC,iBAAiB,GAAGC,SAAS,GAAGC,YAAY,GAAGC,mBAAmB,GAAG9nB,mCAAmC,GAAGxK,6BAA6B,MAAM,GAAG,GA3/NoD,CA2/NhD","file":"ajv.min.js"}
\ No newline at end of file diff --git a/node_modules/ajv/lib/ajv.d.ts b/node_modules/ajv/lib/ajv.d.ts index 5e7cfa7..cb600e1 100644 --- a/node_modules/ajv/lib/ajv.d.ts +++ b/node_modules/ajv/lib/ajv.d.ts @@ -80,9 +80,9 @@ declare namespace ajv { /** * Get compiled schema from the instance by `key` or `ref`. * @param {string} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id). - * @return {Function} schema validating function (with property `schema`). + * @return {Function} schema validating function (with property `schema`). Returns undefined if keyRef can't be resolved to an existing schema. */ - getSchema(keyRef: string): ValidateFunction; + getSchema(keyRef: string): ValidateFunction | undefined; /** * Remove cached schema(s). * If no parameter is passed all schemas but meta-schemas are removed. @@ -169,8 +169,9 @@ declare namespace ajv { jsonPointers?: boolean; uniqueItems?: boolean; unicode?: boolean; - format?: string; + format?: false | string; formats?: object; + keywords?: object; unknownFormats?: true | string[] | 'ignore'; schemas?: Array<object> | object; schemaId?: '$id' | 'id' | 'auto'; @@ -243,6 +244,7 @@ declare namespace ajv { interface CompilationContext { level: number; dataLevel: number; + dataPathArr: string[]; schema: any; schemaPath: string; baseId: string; @@ -251,6 +253,9 @@ declare namespace ajv { formats: { [index: string]: FormatDefinition | undefined; }; + keywords: { + [index: string]: KeywordDefinition | undefined; + }; compositeRule: boolean; validate: (schema: object) => boolean; util: { diff --git a/node_modules/ajv/lib/ajv.js b/node_modules/ajv/lib/ajv.js index 611b938..06a45b6 100644 --- a/node_modules/ajv/lib/ajv.js +++ b/node_modules/ajv/lib/ajv.js @@ -69,6 +69,7 @@ function Ajv(opts) { this._metaOpts = getMetaSchemaOptions(this); if (opts.formats) addInitialFormats(this); + if (opts.keywords) addInitialKeywords(this); addDefaultMetaSchema(this); if (typeof opts.meta == 'object') this.addMetaSchema(opts.meta); if (opts.nullable) this.addKeyword('nullable', {metaSchema: {type: 'boolean'}}); @@ -467,6 +468,14 @@ function addInitialFormats(self) { } +function addInitialKeywords(self) { + for (var name in self._opts.keywords) { + var keyword = self._opts.keywords[name]; + self.addKeyword(name, keyword); + } +} + + function checkUnique(self, id) { if (self._schemas[id] || self._refs[id]) throw new Error('schema with key or id "' + id + '" already exists'); diff --git a/node_modules/ajv/lib/compile/formats.js b/node_modules/ajv/lib/compile/formats.js index 5c0fb9e..44895b0 100644 --- a/node_modules/ajv/lib/compile/formats.js +++ b/node_modules/ajv/lib/compile/formats.js @@ -4,8 +4,8 @@ var util = require('./util'); var DATE = /^(\d\d\d\d)-(\d\d)-(\d\d)$/; var DAYS = [0,31,28,31,30,31,30,31,31,30,31,30,31]; -var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i; -var HOSTNAME = /^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i; +var TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i; +var HOSTNAME = /^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i; var URI = /^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i; var URIREF = /^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i; // uri-template: https://tools.ietf.org/html/rfc6570 @@ -33,8 +33,8 @@ formats.fast = { // date: http://tools.ietf.org/html/rfc3339#section-5.6 date: /^\d\d\d\d-[0-1]\d-[0-3]\d$/, // date-time: http://tools.ietf.org/html/rfc3339#section-5.6 - time: /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d:\d\d)?$/i, - 'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d:\d\d)$/i, + time: /^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i, + 'date-time': /^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i, // uri: https://github.com/mafintosh/is-my-json-valid/blob/master/formats.js uri: /^(?:[a-z][a-z0-9+-.]*:)(?:\/?\/)?[^\s]*$/i, 'uri-reference': /^(?:(?:[a-z][a-z0-9+-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i, @@ -70,7 +70,7 @@ formats.full = { 'uri-template': URITEMPLATE, url: URL, email: /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i, - hostname: hostname, + hostname: HOSTNAME, ipv4: /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/, ipv6: /^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i, regex: regex, @@ -123,13 +123,6 @@ function date_time(str) { } -function hostname(str) { - // https://tools.ietf.org/html/rfc1034#section-3.5 - // https://tools.ietf.org/html/rfc1123#section-2 - return str.length <= 255 && HOSTNAME.test(str); -} - - var NOT_URI_FRAGMENT = /\/|:/; function uri(str) { // http://jmrware.com/articles/2009/uri_regexp/URI_regex.html + optional protocol + required "." diff --git a/node_modules/ajv/package.json b/node_modules/ajv/package.json index a728b90..faae6bc 100644 --- a/node_modules/ajv/package.json +++ b/node_modules/ajv/package.json @@ -1,8 +1,8 @@ { "_from": "ajv@^6.5.5", - "_id": "ajv@6.10.2", + "_id": "ajv@6.12.0", "_inBundle": false, - "_integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "_integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "_location": "/ajv", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/har-validator" ], - "_resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "_shasum": "d3cea04d6b017b2894ad69040fec8b623eb4bd52", + "_resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "_shasum": "06d60b96d87b8454a5adaba86e7854da629db4b7", "_spec": "ajv@^6.5.5", - "_where": "/Users/gebauer/Workspace/hugo-dev-theme/themes/ag/node_modules/har-validator", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/har-validator", "author": { "name": "Evgeny Poberezkin" }, @@ -30,7 +30,7 @@ }, "bundleDependencies": false, "dependencies": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -44,7 +44,7 @@ "browserify": "^16.2.0", "chai": "^4.0.1", "coveralls": "^3.0.1", - "del-cli": "^2.0.0", + "del-cli": "^3.0.0", "dot": "^1.0.3", "eslint": "^6.0.0", "gh-pages-generator": "^0.2.3", @@ -54,15 +54,15 @@ "jshint": "^2.10.2", "json-schema-test": "^2.0.0", "karma": "^4.0.1", - "karma-chrome-launcher": "^2.2.0", + "karma-chrome-launcher": "^3.0.0", "karma-mocha": "^1.1.1", "karma-sauce-launcher": "^2.0.0", - "mocha": "^6.0.0", - "nyc": "^14.0.0", + "mocha": "^7.0.1", + "nyc": "^15.0.0", "pre-commit": "^1.1.1", "require-globify": "^1.3.0", "typescript": "^2.8.3", - "uglify-js": "^3.3.24", + "uglify-js": "^3.6.9", "watch": "^1.0.0" }, "files": [ @@ -109,7 +109,7 @@ "lint": "npm run jshint && npm run eslint", "prepublish": "npm run build && npm run bundle", "test": "npm run lint && npm run build && npm run test-all", - "test-all": "npm run test-ts && npm run test-cov && if-node-version 10 npm run test-browser", + "test-all": "npm run test-cov && if-node-version 10 npm run test-browser", "test-browser": "del-cli .browser && npm run bundle && scripts/prepare-tests && npm run test-karma", "test-cov": "nyc npm run test-spec", "test-debug": "npm run test-spec -- --inspect-brk", @@ -121,5 +121,5 @@ }, "tonicExampleFilename": ".tonic_example.js", "typings": "lib/ajv.d.ts", - "version": "6.10.2" + "version": "6.12.0" } diff --git a/node_modules/aws4/.travis.yml b/node_modules/aws4/.travis.yml index 61d0634..178bf31 100644 --- a/node_modules/aws4/.travis.yml +++ b/node_modules/aws4/.travis.yml @@ -2,4 +2,8 @@ language: node_js node_js: - "0.10" - "0.12" - - "4.2" + - "4" + - "6" + - "8" + - "10" + - "12" diff --git a/node_modules/aws4/README.md b/node_modules/aws4/README.md index 6b002d0..1e9d61b 100644 --- a/node_modules/aws4/README.md +++ b/node_modules/aws4/README.md @@ -3,10 +3,10 @@ aws4 [![Build Status](https://secure.travis-ci.org/mhart/aws4.png?branch=master)](http://travis-ci.org/mhart/aws4) -A small utility to sign vanilla node.js http(s) request options using Amazon's +A small utility to sign vanilla Node.js http(s) request options using Amazon's [AWS Signature Version 4](http://docs.amazonwebservices.com/general/latest/gr/signature-version-4.html). -Can also be used [in the browser](./browser). +If you want to sign and send AWS requests in a modern browser, or an environment like [Cloudflare Workers](https://developers.cloudflare.com/workers/), then check out [aws4fetch](https://github.com/mhart/aws4fetch) – otherwise you can also bundle this library for use [in the browser](./browser). This signature is supported by nearly all Amazon services, including [S3](http://docs.aws.amazon.com/AmazonS3/latest/API/), diff --git a/node_modules/aws4/aws4.js b/node_modules/aws4/aws4.js index 124cd7a..9014894 100644 --- a/node_modules/aws4/aws4.js +++ b/node_modules/aws4/aws4.js @@ -22,6 +22,10 @@ function encodeRfc3986(urlEncodedString) { }) } +function encodeRfc3986Full(str) { + return encodeRfc3986(encodeURIComponent(str)) +} + // request: { path | body, [host], [method], [headers], [service], [region] } // credentials: { accessKeyId, secretAccessKey, [sessionToken] } function RequestSigner(request, credentials) { @@ -220,12 +224,22 @@ RequestSigner.prototype.canonicalString = function() { } if (query) { - queryStr = encodeRfc3986(querystring.stringify(Object.keys(query).sort().reduce(function(obj, key) { + var reducedQuery = Object.keys(query).reduce(function(obj, key) { if (!key) return obj - obj[key] = !Array.isArray(query[key]) ? query[key] : - (firstValOnly ? query[key][0] : query[key].slice().sort()) + obj[encodeRfc3986Full(key)] = !Array.isArray(query[key]) ? query[key] : + (firstValOnly ? query[key][0] : query[key]) return obj - }, {}))) + }, {}) + var encodedQueryPieces = [] + Object.keys(reducedQuery).sort().forEach(function(key) { + if (!Array.isArray(reducedQuery[key])) { + encodedQueryPieces.push(key + '=' + encodeRfc3986Full(reducedQuery[key])) + } else { + reducedQuery[key].map(encodeRfc3986Full).sort() + .forEach(function(val) { encodedQueryPieces.push(key + '=' + val) }) + } + }) + queryStr = encodedQueryPieces.join('&') } if (pathStr !== '/') { if (normalizePath) pathStr = pathStr.replace(/\/{2,}/g, '/') @@ -233,8 +247,8 @@ RequestSigner.prototype.canonicalString = function() { if (normalizePath && piece === '..') { path.pop() } else if (!normalizePath || piece !== '.') { - if (decodePath) piece = decodeURIComponent(piece) - path.push(encodeRfc3986(encodeURIComponent(piece))) + if (decodePath) piece = decodeURIComponent(piece).replace(/\+/g, ' ') + path.push(encodeRfc3986Full(piece)) } return path }, []).join('/') @@ -289,8 +303,16 @@ RequestSigner.prototype.defaultCredentials = function() { } RequestSigner.prototype.parsePath = function() { - var path = this.request.path || '/', - queryIx = path.indexOf('?'), + var path = this.request.path || '/' + + // S3 doesn't always encode characters > 127 correctly and + // all services don't encode characters > 255 correctly + // So if there are non-reserved chars (and it's not already all % encoded), just encode them all + if (/[^0-9A-Za-z;,/?:@&=+$\-_.!~*'()#%]/.test(path)) { + path = encodeURI(decodeURI(path)) + } + + var queryIx = path.indexOf('?'), query = null if (queryIx >= 0) { @@ -298,15 +320,6 @@ RequestSigner.prototype.parsePath = function() { path = path.slice(0, queryIx) } - // S3 doesn't always encode characters > 127 correctly and - // all services don't encode characters > 255 correctly - // So if there are non-reserved chars (and it's not already all % encoded), just encode them all - if (/[^0-9A-Za-z!'()*\-._~%/]/.test(path)) { - path = path.split('/').map(function(piece) { - return encodeURIComponent(decodeURIComponent(piece)) - }).join('/') - } - this.parsedPath = { path: path, query: query, diff --git a/node_modules/aws4/package.json b/node_modules/aws4/package.json index d8f33bd..27f0cc0 100644 --- a/node_modules/aws4/package.json +++ b/node_modules/aws4/package.json @@ -1,8 +1,8 @@ { "_from": "aws4@^1.8.0", - "_id": "aws4@1.8.0", + "_id": "aws4@1.9.1", "_inBundle": false, - "_integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "_integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", "_location": "/aws4", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/request" ], - "_resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "_shasum": "f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f", + "_resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "_shasum": "7e33d8f7d449b3f673cd72deb9abdc552dbe528e", "_spec": "aws4@^1.8.0", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/request", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/request", "author": { "name": "Michael Hart", "email": "michael.hart.au@gmail.com", @@ -98,7 +98,8 @@ "url": "git+https://github.com/mhart/aws4.git" }, "scripts": { - "test": "mocha ./test/fast.js ./test/slow.js -b -t 100s -R list" + "integration": "node ./test/slow.js", + "test": "mocha ./test/fast.js -b -t 100s -R list" }, - "version": "1.8.0" + "version": "1.9.1" } diff --git a/node_modules/fast-deep-equal/README.md b/node_modules/fast-deep-equal/README.md index 326bb2a..d3f4ffc 100644 --- a/node_modules/fast-deep-equal/README.md +++ b/node_modules/fast-deep-equal/README.md @@ -1,8 +1,8 @@ # fast-deep-equal -The fastest deep equal +The fastest deep equal with ES6 Map, Set and Typed arrays support. [![Build Status](https://travis-ci.org/epoberezkin/fast-deep-equal.svg?branch=master)](https://travis-ci.org/epoberezkin/fast-deep-equal) -[![npm version](https://badge.fury.io/js/fast-deep-equal.svg)](http://badge.fury.io/js/fast-deep-equal) +[![npm](https://img.shields.io/npm/v/fast-deep-equal.svg)](https://www.npmjs.com/package/fast-deep-equal) [![Coverage Status](https://coveralls.io/repos/github/epoberezkin/fast-deep-equal/badge.svg?branch=master)](https://coveralls.io/github/epoberezkin/fast-deep-equal?branch=master) @@ -16,9 +16,14 @@ npm install fast-deep-equal ## Features - ES5 compatible -- works in node.js (0.10+) and browsers (IE9+) +- works in node.js (8+) and browsers (IE9+) - checks equality of Date and RegExp objects by value. +ES6 equal (`require('fast-deep-equal/es6')`) also supports: +- Maps +- Sets +- Typed arrays + ## Usage @@ -27,31 +32,64 @@ var equal = require('fast-deep-equal'); console.log(equal({foo: 'bar'}, {foo: 'bar'})); // true ``` +To support ES6 Maps, Sets and Typed arrays equality use: + +```javascript +var equal = require('fast-deep-equal/es6'); +console.log(equal(Int16Array([1, 2]), Int16Array([1, 2]))); // true +``` + +To use with React (avoiding the traversal of React elements' _owner +property that contains circular references and is not needed when +comparing the elements - borrowed from [react-fast-compare](https://github.com/FormidableLabs/react-fast-compare)): + +```javascript +var equal = require('fast-deep-equal/react'); +var equal = require('fast-deep-equal/es6/react'); +``` + ## Performance benchmark -Node.js v9.11.1: +Node.js v12.6.0: ``` -fast-deep-equal x 226,960 ops/sec ±1.55% (86 runs sampled) -nano-equal x 218,210 ops/sec ±0.79% (89 runs sampled) -shallow-equal-fuzzy x 206,762 ops/sec ±0.84% (88 runs sampled) -underscore.isEqual x 128,668 ops/sec ±0.75% (91 runs sampled) -lodash.isEqual x 44,895 ops/sec ±0.67% (85 runs sampled) -deep-equal x 51,616 ops/sec ±0.96% (90 runs sampled) -deep-eql x 28,218 ops/sec ±0.42% (85 runs sampled) -assert.deepStrictEqual x 1,777 ops/sec ±1.05% (86 runs sampled) -ramda.equals x 13,466 ops/sec ±0.82% (86 runs sampled) +fast-deep-equal x 261,950 ops/sec ±0.52% (89 runs sampled) +fast-deep-equal/es6 x 212,991 ops/sec ±0.34% (92 runs sampled) +fast-equals x 230,957 ops/sec ±0.83% (85 runs sampled) +nano-equal x 187,995 ops/sec ±0.53% (88 runs sampled) +shallow-equal-fuzzy x 138,302 ops/sec ±0.49% (90 runs sampled) +underscore.isEqual x 74,423 ops/sec ±0.38% (89 runs sampled) +lodash.isEqual x 36,637 ops/sec ±0.72% (90 runs sampled) +deep-equal x 2,310 ops/sec ±0.37% (90 runs sampled) +deep-eql x 35,312 ops/sec ±0.67% (91 runs sampled) +ramda.equals x 12,054 ops/sec ±0.40% (91 runs sampled) +util.isDeepStrictEqual x 46,440 ops/sec ±0.43% (90 runs sampled) +assert.deepStrictEqual x 456 ops/sec ±0.71% (88 runs sampled) + The fastest is fast-deep-equal ``` To run benchmark (requires node.js 6+): ```bash -npm install -node benchmark +npm run benchmark ``` +__Please note__: this benchmark runs against the available test cases. To choose the most performant library for your application, it is recommended to benchmark against your data and to NOT expect this benchmark to reflect the performance difference in your application. + + +## Enterprise support + +fast-deep-equal package is a part of [Tidelift enterprise subscription](https://tidelift.com/subscription/pkg/npm-fast-deep-equal?utm_source=npm-fast-deep-equal&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) - it provides a centralised commercial support to open-source software users, in addition to the support provided by software maintainers. + + +## Security contact + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). +Tidelift will coordinate the fix and disclosure. Please do NOT report security vulnerability via GitHub issues. + ## License diff --git a/node_modules/fast-deep-equal/es6/index.d.ts b/node_modules/fast-deep-equal/es6/index.d.ts new file mode 100644 index 0000000..0fc8d3b --- /dev/null +++ b/node_modules/fast-deep-equal/es6/index.d.ts @@ -0,0 +1,2 @@ +const equal: (a: any, b: any) => boolean; +export = equal; diff --git a/node_modules/fast-deep-equal/es6/index.js b/node_modules/fast-deep-equal/es6/index.js new file mode 100644 index 0000000..d980be2 --- /dev/null +++ b/node_modules/fast-deep-equal/es6/index.js @@ -0,0 +1,72 @@ +'use strict'; + +// do not edit .js files directly - edit src/index.jst + + + var envHasBigInt64Array = typeof BigInt64Array !== 'undefined'; + + +module.exports = function equal(a, b) { + if (a === b) return true; + + if (a && b && typeof a == 'object' && typeof b == 'object') { + if (a.constructor !== b.constructor) return false; + + var length, i, keys; + if (Array.isArray(a)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (!equal(a[i], b[i])) return false; + return true; + } + + + if ((a instanceof Map) && (b instanceof Map)) { + if (a.size !== b.size) return false; + for (i of a.entries()) + if (!b.has(i[0])) return false; + for (i of a.entries()) + if (!equal(i[1], b.get(i[0]))) return false; + return true; + } + + if ((a instanceof Set) && (b instanceof Set)) { + if (a.size !== b.size) return false; + for (i of a.entries()) + if (!b.has(i[0])) return false; + return true; + } + + if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (a[i] !== b[i]) return false; + return true; + } + + + if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; + if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); + if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); + + keys = Object.keys(a); + length = keys.length; + if (length !== Object.keys(b).length) return false; + + for (i = length; i-- !== 0;) + if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + + for (i = length; i-- !== 0;) { + var key = keys[i]; + + if (!equal(a[key], b[key])) return false; + } + + return true; + } + + // true if both NaN, false otherwise + return a!==a && b!==b; +}; diff --git a/node_modules/fast-deep-equal/es6/react.d.ts b/node_modules/fast-deep-equal/es6/react.d.ts new file mode 100644 index 0000000..0fc8d3b --- /dev/null +++ b/node_modules/fast-deep-equal/es6/react.d.ts @@ -0,0 +1,2 @@ +const equal: (a: any, b: any) => boolean; +export = equal; diff --git a/node_modules/fast-deep-equal/es6/react.js b/node_modules/fast-deep-equal/es6/react.js new file mode 100644 index 0000000..98e2f9b --- /dev/null +++ b/node_modules/fast-deep-equal/es6/react.js @@ -0,0 +1,79 @@ +'use strict'; + +// do not edit .js files directly - edit src/index.jst + + + var envHasBigInt64Array = typeof BigInt64Array !== 'undefined'; + + +module.exports = function equal(a, b) { + if (a === b) return true; + + if (a && b && typeof a == 'object' && typeof b == 'object') { + if (a.constructor !== b.constructor) return false; + + var length, i, keys; + if (Array.isArray(a)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (!equal(a[i], b[i])) return false; + return true; + } + + + if ((a instanceof Map) && (b instanceof Map)) { + if (a.size !== b.size) return false; + for (i of a.entries()) + if (!b.has(i[0])) return false; + for (i of a.entries()) + if (!equal(i[1], b.get(i[0]))) return false; + return true; + } + + if ((a instanceof Set) && (b instanceof Set)) { + if (a.size !== b.size) return false; + for (i of a.entries()) + if (!b.has(i[0])) return false; + return true; + } + + if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (a[i] !== b[i]) return false; + return true; + } + + + if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; + if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); + if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); + + keys = Object.keys(a); + length = keys.length; + if (length !== Object.keys(b).length) return false; + + for (i = length; i-- !== 0;) + if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + + for (i = length; i-- !== 0;) { + var key = keys[i]; + + if (key === '_owner' && a.$$typeof) { + // React-specific: avoid traversing React elements' _owner. + // _owner contains circular references + // and is not needed when comparing the actual elements (and not their owners) + continue; + } + + if (!equal(a[key], b[key])) return false; + } + + return true; + } + + // true if both NaN, false otherwise + return a!==a && b!==b; +}; diff --git a/node_modules/fast-deep-equal/index.js b/node_modules/fast-deep-equal/index.js index 27264f5..30dd1ba 100644 --- a/node_modules/fast-deep-equal/index.js +++ b/node_modules/fast-deep-equal/index.js @@ -1,20 +1,17 @@ 'use strict'; -var isArray = Array.isArray; -var keyList = Object.keys; -var hasProp = Object.prototype.hasOwnProperty; +// do not edit .js files directly - edit src/index.jst + + module.exports = function equal(a, b) { if (a === b) return true; if (a && b && typeof a == 'object' && typeof b == 'object') { - var arrA = isArray(a) - , arrB = isArray(b) - , i - , length - , key; + if (a.constructor !== b.constructor) return false; - if (arrA && arrB) { + var length, i, keys; + if (Array.isArray(a)) { length = a.length; if (length != b.length) return false; for (i = length; i-- !== 0;) @@ -22,34 +19,28 @@ module.exports = function equal(a, b) { return true; } - if (arrA != arrB) return false; - var dateA = a instanceof Date - , dateB = b instanceof Date; - if (dateA != dateB) return false; - if (dateA && dateB) return a.getTime() == b.getTime(); - var regexpA = a instanceof RegExp - , regexpB = b instanceof RegExp; - if (regexpA != regexpB) return false; - if (regexpA && regexpB) return a.toString() == b.toString(); + if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; + if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); + if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); - var keys = keyList(a); + keys = Object.keys(a); length = keys.length; - - if (length !== keyList(b).length) - return false; + if (length !== Object.keys(b).length) return false; for (i = length; i-- !== 0;) - if (!hasProp.call(b, keys[i])) return false; + if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; for (i = length; i-- !== 0;) { - key = keys[i]; + var key = keys[i]; + if (!equal(a[key], b[key])) return false; } return true; } + // true if both NaN, false otherwise return a!==a && b!==b; }; diff --git a/node_modules/fast-deep-equal/package.json b/node_modules/fast-deep-equal/package.json index e0a5314..1829852 100644 --- a/node_modules/fast-deep-equal/package.json +++ b/node_modules/fast-deep-equal/package.json @@ -1,27 +1,27 @@ { - "_from": "fast-deep-equal@^2.0.1", - "_id": "fast-deep-equal@2.0.1", + "_from": "fast-deep-equal@^3.1.1", + "_id": "fast-deep-equal@3.1.1", "_inBundle": false, - "_integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "_integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", "_location": "/fast-deep-equal", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "fast-deep-equal@^2.0.1", + "raw": "fast-deep-equal@^3.1.1", "name": "fast-deep-equal", "escapedName": "fast-deep-equal", - "rawSpec": "^2.0.1", + "rawSpec": "^3.1.1", "saveSpec": null, - "fetchSpec": "^2.0.1" + "fetchSpec": "^3.1.1" }, "_requiredBy": [ "/ajv" ], - "_resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "_shasum": "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49", - "_spec": "fast-deep-equal@^2.0.1", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/ajv", + "_resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "_shasum": "545145077c501491e33b15ec408c294376e94ae4", + "_spec": "fast-deep-equal@^3.1.1", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/ajv", "author": { "name": "Evgeny Poberezkin" }, @@ -32,24 +32,23 @@ "deprecated": false, "description": "Fast deep equal", "devDependencies": { - "benchmark": "^2.1.4", "coveralls": "^2.13.1", - "deep-eql": "latest", - "deep-equal": "latest", + "dot": "^1.1.2", "eslint": "^4.0.0", - "lodash": "latest", "mocha": "^3.4.2", - "nano-equal": "latest", "nyc": "^11.0.2", "pre-commit": "^1.2.2", - "ramda": "latest", - "shallow-equal-fuzzy": "latest", - "typescript": "^2.6.1", - "underscore": "latest" + "react": "^16.12.0", + "react-test-renderer": "^16.12.0", + "sinon": "^7.5.0", + "typescript": "^2.6.1" }, "files": [ "index.js", - "index.d.ts" + "index.d.ts", + "react.js", + "react.d.ts", + "es6/" ], "homepage": "https://github.com/epoberezkin/fast-deep-equal#readme", "keywords": [ @@ -75,12 +74,15 @@ "url": "git+https://github.com/epoberezkin/fast-deep-equal.git" }, "scripts": { - "eslint": "eslint *.js benchmark spec", - "test": "npm run eslint && npm run test-ts && npm run test-cov", + "benchmark": "npm i && npm run build && cd ./benchmark && npm i && node ./", + "build": "node build", + "eslint": "eslint *.js benchmark/*.js spec/*.js", + "prepublish": "npm run build", + "test": "npm run build && npm run eslint && npm run test-ts && npm run test-cov", "test-cov": "nyc npm run test-spec", "test-spec": "mocha spec/*.spec.js -R spec", "test-ts": "tsc --target ES5 --noImplicitAny index.d.ts" }, "types": "index.d.ts", - "version": "2.0.1" + "version": "3.1.1" } diff --git a/node_modules/fast-deep-equal/react.d.ts b/node_modules/fast-deep-equal/react.d.ts new file mode 100644 index 0000000..0fc8d3b --- /dev/null +++ b/node_modules/fast-deep-equal/react.d.ts @@ -0,0 +1,2 @@ +const equal: (a: any, b: any) => boolean; +export = equal; diff --git a/node_modules/fast-deep-equal/react.js b/node_modules/fast-deep-equal/react.js new file mode 100644 index 0000000..3489b98 --- /dev/null +++ b/node_modules/fast-deep-equal/react.js @@ -0,0 +1,53 @@ +'use strict'; + +// do not edit .js files directly - edit src/index.jst + + + +module.exports = function equal(a, b) { + if (a === b) return true; + + if (a && b && typeof a == 'object' && typeof b == 'object') { + if (a.constructor !== b.constructor) return false; + + var length, i, keys; + if (Array.isArray(a)) { + length = a.length; + if (length != b.length) return false; + for (i = length; i-- !== 0;) + if (!equal(a[i], b[i])) return false; + return true; + } + + + + if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags; + if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf(); + if (a.toString !== Object.prototype.toString) return a.toString() === b.toString(); + + keys = Object.keys(a); + length = keys.length; + if (length !== Object.keys(b).length) return false; + + for (i = length; i-- !== 0;) + if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false; + + for (i = length; i-- !== 0;) { + var key = keys[i]; + + if (key === '_owner' && a.$$typeof) { + // React-specific: avoid traversing React elements' _owner. + // _owner contains circular references + // and is not needed when comparing the actual elements (and not their owners) + continue; + } + + if (!equal(a[key], b[key])) return false; + } + + return true; + } + + // true if both NaN, false otherwise + return a!==a && b!==b; +}; diff --git a/node_modules/fast-json-stable-stringify/.github/FUNDING.yml b/node_modules/fast-json-stable-stringify/.github/FUNDING.yml new file mode 100644 index 0000000..61f9daa --- /dev/null +++ b/node_modules/fast-json-stable-stringify/.github/FUNDING.yml @@ -0,0 +1 @@ +tidelift: "npm/fast-json-stable-stringify" diff --git a/node_modules/fast-json-stable-stringify/.npmignore b/node_modules/fast-json-stable-stringify/.npmignore deleted file mode 100644 index 899d736..0000000 --- a/node_modules/fast-json-stable-stringify/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -.nyc_output/ -coverage/ -.DS_Store diff --git a/node_modules/fast-json-stable-stringify/.travis.yml b/node_modules/fast-json-stable-stringify/.travis.yml index 7ddce74..b61e8f0 100644 --- a/node_modules/fast-json-stable-stringify/.travis.yml +++ b/node_modules/fast-json-stable-stringify/.travis.yml @@ -1,8 +1,8 @@ language: node_js node_js: - - "4" - - "6" - - "7" - "8" + - "10" + - "12" + - "13" after_script: - coveralls < coverage/lcov.info diff --git a/node_modules/fast-json-stable-stringify/LICENSE b/node_modules/fast-json-stable-stringify/LICENSE index ee27ba4..c932223 100644 --- a/node_modules/fast-json-stable-stringify/LICENSE +++ b/node_modules/fast-json-stable-stringify/LICENSE @@ -1,5 +1,8 @@ This software is released under the MIT license: +Copyright (c) 2017 Evgeny Poberezkin +Copyright (c) 2013 James Halliday + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to diff --git a/node_modules/fast-json-stable-stringify/README.md b/node_modules/fast-json-stable-stringify/README.md index 0f43b4a..02cf49f 100644 --- a/node_modules/fast-json-stable-stringify/README.md +++ b/node_modules/fast-json-stable-stringify/README.md @@ -114,6 +114,18 @@ The fastest is fast-stable-stringify ``` +## Enterprise support + +fast-json-stable-stringify package is a part of [Tidelift enterprise subscription](https://tidelift.com/subscription/pkg/npm-fast-json-stable-stringify?utm_source=npm-fast-json-stable-stringify&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) - it provides a centralised commercial support to open-source software users, in addition to the support provided by software maintainers. + + +## Security contact + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). +Tidelift will coordinate the fix and disclosure. Please do NOT report security vulnerability via GitHub issues. + + # license [MIT](https://github.com/epoberezkin/fast-json-stable-stringify/blob/master/LICENSE) diff --git a/node_modules/fast-json-stable-stringify/index.d.ts b/node_modules/fast-json-stable-stringify/index.d.ts new file mode 100644 index 0000000..23e46ca --- /dev/null +++ b/node_modules/fast-json-stable-stringify/index.d.ts @@ -0,0 +1,4 @@ +declare module 'fast-json-stable-stringify' { + function stringify(obj: any): string; + export = stringify; +} diff --git a/node_modules/fast-json-stable-stringify/package.json b/node_modules/fast-json-stable-stringify/package.json index 2887d50..45ab357 100644 --- a/node_modules/fast-json-stable-stringify/package.json +++ b/node_modules/fast-json-stable-stringify/package.json @@ -1,8 +1,8 @@ { "_from": "fast-json-stable-stringify@^2.0.0", - "_id": "fast-json-stable-stringify@2.0.0", + "_id": "fast-json-stable-stringify@2.1.0", "_inBundle": false, - "_integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "_integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "_location": "/fast-json-stable-stringify", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/ajv" ], - "_resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "_shasum": "d5142c0caee6b1189f87d3a76111064f86c8bbf2", + "_resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "_shasum": "874bf69c6f404c2b5d99c481341399fd55892633", "_spec": "fast-json-stable-stringify@^2.0.0", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/ajv", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/ajv", "author": { "name": "James Halliday", "email": "mail@substack.net", @@ -31,18 +31,19 @@ "url": "https://github.com/epoberezkin/fast-json-stable-stringify/issues" }, "bundleDependencies": false, + "dependencies": {}, "deprecated": false, "description": "deterministic `JSON.stringify()` - a faster version of substack's json-stable-strigify without jsonify", "devDependencies": { "benchmark": "^2.1.4", "coveralls": "^3.0.0", - "eslint": "^4.9.0", + "eslint": "^6.7.0", "fast-stable-stringify": "latest", "faster-stable-stringify": "latest", "json-stable-stringify": "latest", - "nyc": "^11.2.1", + "nyc": "^14.1.0", "pre-commit": "^1.2.2", - "tape": "~1.0.4" + "tape": "^4.11.0" }, "homepage": "https://github.com/epoberezkin/fast-json-stable-stringify", "keywords": [ @@ -74,5 +75,6 @@ "test": "npm run eslint && nyc npm run test-spec", "test-spec": "tape test/*.js" }, - "version": "2.0.0" + "types": "index.d.ts", + "version": "2.1.0" } diff --git a/node_modules/glob/README.md b/node_modules/glob/README.md index e71b967..0916a48 100644 --- a/node_modules/glob/README.md +++ b/node_modules/glob/README.md @@ -371,3 +371,5 @@ npm run bench # to profile javascript npm run prof ``` + +![](oh-my-glob.gif) diff --git a/node_modules/glob/package.json b/node_modules/glob/package.json index 410a954..cdab324 100644 --- a/node_modules/glob/package.json +++ b/node_modules/glob/package.json @@ -1,8 +1,8 @@ { "_from": "glob@^7.0.3", - "_id": "glob@7.1.4", + "_id": "glob@7.1.6", "_inBundle": false, - "_integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "_integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "_location": "/glob", "_phantomChildren": {}, "_requested": { @@ -23,10 +23,10 @@ "/sass-graph", "/true-case-path" ], - "_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "_shasum": "aa608a2f6c577ad357e1ae5a5c26d9a8d1969255", + "_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "_shasum": "141f33b81a7c2492e125594307480c46679278a6", "_spec": "glob@^7.0.3", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/node-sass", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/node-sass", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", @@ -60,6 +60,9 @@ "sync.js", "common.js" ], + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, "homepage": "https://github.com/isaacs/node-glob#readme", "license": "ISC", "main": "glob.js", @@ -77,5 +80,5 @@ "test": "tap test/*.js --cov", "test-regen": "npm run profclean && TEST_REGEN=1 node test/00-setup.js" }, - "version": "7.1.4" + "version": "7.1.6" } diff --git a/node_modules/globule/README.md b/node_modules/globule/README.md index fe87e3b..d50f8c5 100644 --- a/node_modules/globule/README.md +++ b/node_modules/globule/README.md @@ -119,6 +119,7 @@ globule.mapping({src: ["a.js", "b.js"], srcBase: "foo", destBase: "bar"}) In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/). ## Release History +2020-02-12 - v1.3.1 - Update dependencies. 2018-05-29 - v1.2.1 - Update dependencies, lodash@4.17.10 to avoid errant security warnings. 2017-06-10 - v1.2.0 - Update dependencies, lodash@4.17. 2016-10-23 - v1.1.0 - Update dependencies, lodash@4.16, glob@7.1. diff --git a/node_modules/globule/package.json b/node_modules/globule/package.json index d7ad26f..6552a98 100644 --- a/node_modules/globule/package.json +++ b/node_modules/globule/package.json @@ -1,8 +1,8 @@ { "_from": "globule@^1.0.0", - "_id": "globule@1.2.1", + "_id": "globule@1.3.1", "_inBundle": false, - "_integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "_integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==", "_location": "/globule", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/gaze" ], - "_resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "_shasum": "5dffb1b191f22d20797a9369b49eab4e9839696d", + "_resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz", + "_shasum": "90a25338f22b7fbeb527cee63c629aea754d33b9", "_spec": "globule@^1.0.0", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/gaze", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/gaze", "author": { "name": "\"Cowboy\" Ben Alman", "url": "http://benalman.com/" @@ -32,7 +32,7 @@ "bundleDependencies": false, "dependencies": { "glob": "~7.1.1", - "lodash": "~4.17.10", + "lodash": "~4.17.12", "minimatch": "~3.0.2" }, "deprecated": false, @@ -71,5 +71,5 @@ "scripts": { "test": "grunt" }, - "version": "1.2.1" + "version": "1.3.1" } diff --git a/node_modules/graceful-fs/graceful-fs.js b/node_modules/graceful-fs/graceful-fs.js index ac20675..8c75ee2 100644 --- a/node_modules/graceful-fs/graceful-fs.js +++ b/node_modules/graceful-fs/graceful-fs.js @@ -3,10 +3,22 @@ var polyfills = require('./polyfills.js') var legacy = require('./legacy-streams.js') var clone = require('./clone.js') -var queue = [] - var util = require('util') +/* istanbul ignore next - node 0.x polyfill */ +var gracefulQueue +var previousSymbol + +/* istanbul ignore else - node 0.x polyfill */ +if (typeof Symbol === 'function' && typeof Symbol.for === 'function') { + gracefulQueue = Symbol.for('graceful-fs.queue') + // This is used in testing by future versions + previousSymbol = Symbol.for('graceful-fs.previous') +} else { + gracefulQueue = '___graceful-fs.queue' + previousSymbol = '___graceful-fs.previous' +} + function noop () {} var debug = noop @@ -19,11 +31,58 @@ else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) console.error(m) } -if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { - process.on('exit', function() { - debug(queue) - require('assert').equal(queue.length, 0) +// Once time initialization +if (!global[gracefulQueue]) { + // This queue can be shared by multiple loaded instances + var queue = [] + Object.defineProperty(global, gracefulQueue, { + get: function() { + return queue + } }) + + // Patch fs.close/closeSync to shared queue version, because we need + // to retry() whenever a close happens *anywhere* in the program. + // This is essential when multiple graceful-fs instances are + // in play at the same time. + fs.close = (function (fs$close) { + function close (fd, cb) { + return fs$close.call(fs, fd, function (err) { + // This function uses the graceful-fs shared queue + if (!err) { + retry() + } + + if (typeof cb === 'function') + cb.apply(this, arguments) + }) + } + + Object.defineProperty(close, previousSymbol, { + value: fs$close + }) + return close + })(fs.close) + + fs.closeSync = (function (fs$closeSync) { + function closeSync (fd) { + // This function uses the graceful-fs shared queue + fs$closeSync.apply(fs, arguments) + retry() + } + + Object.defineProperty(closeSync, previousSymbol, { + value: fs$closeSync + }) + return closeSync + })(fs.closeSync) + + if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || '')) { + process.on('exit', function() { + debug(global[gracefulQueue]) + require('assert').equal(global[gracefulQueue].length, 0) + }) + } } module.exports = patch(clone(fs)) @@ -32,45 +91,11 @@ if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs.__patched) { fs.__patched = true; } -// Always patch fs.close/closeSync, because we want to -// retry() whenever a close happens *anywhere* in the program. -// This is essential when multiple graceful-fs instances are -// in play at the same time. -module.exports.close = (function (fs$close) { return function (fd, cb) { - return fs$close.call(fs, fd, function (err) { - if (!err) - retry() - - if (typeof cb === 'function') - cb.apply(this, arguments) - }) -}})(fs.close) - -module.exports.closeSync = (function (fs$closeSync) { return function (fd) { - // Note that graceful-fs also retries when fs.closeSync() fails. - // Looks like a bug to me, although it's probably a harmless one. - var rval = fs$closeSync.apply(fs, arguments) - retry() - return rval -}})(fs.closeSync) - -// Only patch fs once, otherwise we'll run into a memory leak if -// graceful-fs is loaded multiple times, such as in test environments that -// reset the loaded modules between tests. -// We look for the string `graceful-fs` from the comment above. This -// way we are not adding any extra properties and it will detect if older -// versions of graceful-fs are installed. -if (!/\bgraceful-fs\b/.test(fs.closeSync.toString())) { - fs.closeSync = module.exports.closeSync; - fs.close = module.exports.close; -} - function patch (fs) { // Everything that references the open() function needs to be in here polyfills(fs) fs.gracefulify = patch - fs.FileReadStream = ReadStream; // Legacy name. - fs.FileWriteStream = WriteStream; // Legacy name. + fs.createReadStream = createReadStream fs.createWriteStream = createWriteStream var fs$readFile = fs.readFile @@ -187,8 +212,50 @@ function patch (fs) { WriteStream.prototype.open = WriteStream$open } - fs.ReadStream = ReadStream - fs.WriteStream = WriteStream + Object.defineProperty(fs, 'ReadStream', { + get: function () { + return ReadStream + }, + set: function (val) { + ReadStream = val + }, + enumerable: true, + configurable: true + }) + Object.defineProperty(fs, 'WriteStream', { + get: function () { + return WriteStream + }, + set: function (val) { + WriteStream = val + }, + enumerable: true, + configurable: true + }) + + // legacy names + var FileReadStream = ReadStream + Object.defineProperty(fs, 'FileReadStream', { + get: function () { + return FileReadStream + }, + set: function (val) { + FileReadStream = val + }, + enumerable: true, + configurable: true + }) + var FileWriteStream = WriteStream + Object.defineProperty(fs, 'FileWriteStream', { + get: function () { + return FileWriteStream + }, + set: function (val) { + FileWriteStream = val + }, + enumerable: true, + configurable: true + }) function ReadStream (path, options) { if (this instanceof ReadStream) @@ -234,11 +301,11 @@ function patch (fs) { } function createReadStream (path, options) { - return new ReadStream(path, options) + return new fs.ReadStream(path, options) } function createWriteStream (path, options) { - return new WriteStream(path, options) + return new fs.WriteStream(path, options) } var fs$open = fs.open @@ -267,11 +334,11 @@ function patch (fs) { function enqueue (elem) { debug('ENQUEUE', elem[0].name, elem[1]) - queue.push(elem) + global[gracefulQueue].push(elem) } function retry () { - var elem = queue.shift() + var elem = global[gracefulQueue].shift() if (elem) { debug('RETRY', elem[0].name, elem[1]) elem[0].apply(null, elem[1]) diff --git a/node_modules/graceful-fs/package.json b/node_modules/graceful-fs/package.json index 95525f5..b177889 100644 --- a/node_modules/graceful-fs/package.json +++ b/node_modules/graceful-fs/package.json @@ -1,8 +1,8 @@ { "_from": "graceful-fs@^4.1.2", - "_id": "graceful-fs@4.2.1", + "_id": "graceful-fs@4.2.3", "_inBundle": false, - "_integrity": "sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==", + "_integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "_location": "/graceful-fs", "_phantomChildren": {}, "_requested": { @@ -21,10 +21,10 @@ "/node-gyp", "/path-type" ], - "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz", - "_shasum": "1c1f0c364882c868f5bff6512146328336a11b1d", + "_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "_shasum": "4a12ff1b60376ef09862c2093edd908328be8423", "_spec": "graceful-fs@^4.1.2", - "_where": "/Users/gebauer/Workspace/hugo-dev-theme/themes/ag/node_modules/load-json-file", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/load-json-file", "bugs": { "url": "https://github.com/isaacs/node-graceful-fs/issues" }, @@ -78,5 +78,5 @@ "preversion": "npm test", "test": "node test.js | tap -" }, - "version": "4.2.1" + "version": "4.2.3" } diff --git a/node_modules/hosted-git-info/CHANGELOG.md b/node_modules/hosted-git-info/CHANGELOG.md index 9eedbb8..4f86601 100644 --- a/node_modules/hosted-git-info/CHANGELOG.md +++ b/node_modules/hosted-git-info/CHANGELOG.md @@ -2,6 +2,53 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +<a name="2.8.8"></a> +## [2.8.8](https://github.com/npm/hosted-git-info/compare/v2.8.7...v2.8.8) (2020-02-29) + + +### Bug Fixes + +* [#61](https://github.com/npm/hosted-git-info/issues/61) & [#65](https://github.com/npm/hosted-git-info/issues/65) addressing issues w/ url.URL implmentation which regressed node 6 support ([5038b18](https://github.com/npm/hosted-git-info/commit/5038b18)), closes [#66](https://github.com/npm/hosted-git-info/issues/66) + + + +<a name="2.8.7"></a> +## [2.8.7](https://github.com/npm/hosted-git-info/compare/v2.8.6...v2.8.7) (2020-02-26) + + +### Bug Fixes + +* Do not attempt to use url.URL when unavailable ([2d0bb66](https://github.com/npm/hosted-git-info/commit/2d0bb66)), closes [#61](https://github.com/npm/hosted-git-info/issues/61) [#62](https://github.com/npm/hosted-git-info/issues/62) +* Do not pass scp-style URLs to the WhatWG url.URL ([f2cdfcf](https://github.com/npm/hosted-git-info/commit/f2cdfcf)), closes [#60](https://github.com/npm/hosted-git-info/issues/60) + + + +<a name="2.8.6"></a> +## [2.8.6](https://github.com/npm/hosted-git-info/compare/v2.8.5...v2.8.6) (2020-02-25) + + + +<a name="2.8.5"></a> +## [2.8.5](https://github.com/npm/hosted-git-info/compare/v2.8.4...v2.8.5) (2019-10-07) + + +### Bug Fixes + +* updated pathmatch for gitlab ([e8325b5](https://github.com/npm/hosted-git-info/commit/e8325b5)), closes [#51](https://github.com/npm/hosted-git-info/issues/51) +* updated pathmatch for gitlab ([ffe056f](https://github.com/npm/hosted-git-info/commit/ffe056f)) + + + +<a name="2.8.4"></a> +## [2.8.4](https://github.com/npm/hosted-git-info/compare/v2.8.3...v2.8.4) (2019-08-12) + + + +<a name="2.8.3"></a> +## [2.8.3](https://github.com/npm/hosted-git-info/compare/v2.8.2...v2.8.3) (2019-08-12) + + + <a name="2.8.2"></a> ## [2.8.2](https://github.com/npm/hosted-git-info/compare/v2.8.1...v2.8.2) (2019-08-05) diff --git a/node_modules/hosted-git-info/git-host-info.js b/node_modules/hosted-git-info/git-host-info.js index d81be20..8147e33 100644 --- a/node_modules/hosted-git-info/git-host-info.js +++ b/node_modules/hosted-git-info/git-host-info.js @@ -25,7 +25,7 @@ var gitHosts = module.exports = { 'bugstemplate': 'https://{domain}/{user}/{project}/issues', 'httpstemplate': 'git+https://{auth@}{domain}/{user}/{projectPath}.git{#committish}', 'tarballtemplate': 'https://{domain}/{user}/{project}/repository/archive.tar.gz?ref={committish}', - 'pathmatch': /^[/]([^/]+)[/](.+?)(?:[.]git|[/])?$/ + 'pathmatch': /^[/]([^/]+)[/]((?!.*(\/-\/|\/repository\/archive\.tar\.gz\?=.*|\/repository\/[^/]+\/archive.tar.gz$)).*?)(?:[.]git|[/])?$/ }, gist: { 'protocols': [ 'git', 'git+ssh', 'git+https', 'ssh', 'https' ], diff --git a/node_modules/hosted-git-info/git-host.js b/node_modules/hosted-git-info/git-host.js index ee5bb1a..9616fba 100644 --- a/node_modules/hosted-git-info/git-host.js +++ b/node_modules/hosted-git-info/git-host.js @@ -9,8 +9,8 @@ var extend = Object.assign || function _extend (target, source) { // Don't do anything if source isn't an object if (source === null || typeof source !== 'object') return target - const keys = Object.keys(source) - let i = keys.length + var keys = Object.keys(source) + var i = keys.length while (i--) { target[keys[i]] = source[keys[i]] } diff --git a/node_modules/hosted-git-info/index.js b/node_modules/hosted-git-info/index.js index adae460..21e53fe 100644 --- a/node_modules/hosted-git-info/index.js +++ b/node_modules/hosted-git-info/index.js @@ -2,8 +2,6 @@ var url = require('url') var gitHosts = require('./git-host-info.js') var GitHost = module.exports = require('./git-host.js') -var LRU = require('lru-cache') -var cache = new LRU({max: 1000}) var protocolToRepresentationMap = { 'git+ssh:': 'sshurl', @@ -24,15 +22,17 @@ var authProtocols = { 'git+http:': true } +var cache = {} + module.exports.fromUrl = function (giturl, opts) { if (typeof giturl !== 'string') return var key = giturl + JSON.stringify(opts || {}) - if (!cache.has(key)) { - cache.set(key, fromUrl(giturl, opts)) + if (!(key in cache)) { + cache[key] = fromUrl(giturl, opts) } - return cache.get(key) + return cache[key] } function fromUrl (giturl, opts) { @@ -47,7 +47,7 @@ function fromUrl (giturl, opts) { var gitHostInfo = gitHosts[gitHostName] var auth = null if (parsed.auth && authProtocols[parsed.protocol]) { - auth = decodeURIComponent(parsed.auth) + auth = parsed.auth } var committish = parsed.hash ? decodeURIComponent(parsed.hash.substr(1)) : null var user = null @@ -64,6 +64,7 @@ function fromUrl (giturl, opts) { var pathmatch = gitHostInfo.pathmatch var matched = parsed.path.match(pathmatch) if (!matched) return + /* istanbul ignore else */ if (matched[1] !== null && matched[1] !== undefined) { user = decodeURIComponent(matched[1].replace(/^:/, '')) } @@ -105,7 +106,30 @@ function fixupUnqualifiedGist (giturl) { function parseGitUrl (giturl) { var matched = giturl.match(/^([^@]+)@([^:/]+):[/]?((?:[^/]+[/])?[^/]+?)(?:[.]git)?(#.*)?$/) - if (!matched) return url.parse(giturl) + if (!matched) { + var legacy = url.parse(giturl) + // If we don't have url.URL, then sorry, this is just not fixable. + // This affects Node <= 6.12. + if (legacy.auth && typeof url.URL === 'function') { + // git urls can be in the form of scp-style/ssh-connect strings, like + // git+ssh://user@host.com:some/path, which the legacy url parser + // supports, but WhatWG url.URL class does not. However, the legacy + // parser de-urlencodes the username and password, so something like + // https://user%3An%40me:p%40ss%3Aword@x.com/ becomes + // https://user:n@me:p@ss:word@x.com/ which is all kinds of wrong. + // Pull off just the auth and host, so we dont' get the confusing + // scp-style URL, then pass that to the WhatWG parser to get the + // auth properly escaped. + var authmatch = giturl.match(/[^@]+@[^:/]+/) + /* istanbul ignore else - this should be impossible */ + if (authmatch) { + var whatwg = new url.URL(authmatch[0]) + legacy.auth = whatwg.username || '' + if (whatwg.password) legacy.auth += ':' + whatwg.password + } + } + return legacy + } return { protocol: 'git+ssh:', slashes: true, diff --git a/node_modules/hosted-git-info/node_modules/lru-cache/LICENSE b/node_modules/hosted-git-info/node_modules/lru-cache/LICENSE deleted file mode 100644 index 19129e3..0000000 --- a/node_modules/hosted-git-info/node_modules/lru-cache/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/hosted-git-info/node_modules/lru-cache/README.md b/node_modules/hosted-git-info/node_modules/lru-cache/README.md deleted file mode 100644 index 435dfeb..0000000 --- a/node_modules/hosted-git-info/node_modules/lru-cache/README.md +++ /dev/null @@ -1,166 +0,0 @@ -# lru cache - -A cache object that deletes the least-recently-used items. - -[![Build Status](https://travis-ci.org/isaacs/node-lru-cache.svg?branch=master)](https://travis-ci.org/isaacs/node-lru-cache) [![Coverage Status](https://coveralls.io/repos/isaacs/node-lru-cache/badge.svg?service=github)](https://coveralls.io/github/isaacs/node-lru-cache) - -## Installation: - -```javascript -npm install lru-cache --save -``` - -## Usage: - -```javascript -var LRU = require("lru-cache") - , options = { max: 500 - , length: function (n, key) { return n * 2 + key.length } - , dispose: function (key, n) { n.close() } - , maxAge: 1000 * 60 * 60 } - , cache = new LRU(options) - , otherCache = new LRU(50) // sets just the max size - -cache.set("key", "value") -cache.get("key") // "value" - -// non-string keys ARE fully supported -// but note that it must be THE SAME object, not -// just a JSON-equivalent object. -var someObject = { a: 1 } -cache.set(someObject, 'a value') -// Object keys are not toString()-ed -cache.set('[object Object]', 'a different value') -assert.equal(cache.get(someObject), 'a value') -// A similar object with same keys/values won't work, -// because it's a different object identity -assert.equal(cache.get({ a: 1 }), undefined) - -cache.reset() // empty the cache -``` - -If you put more stuff in it, then items will fall out. - -If you try to put an oversized thing in it, then it'll fall out right -away. - -## Options - -* `max` The maximum size of the cache, checked by applying the length - function to all values in the cache. Not setting this is kind of - silly, since that's the whole purpose of this lib, but it defaults - to `Infinity`. Setting it to a non-number or negative number will - throw a `TypeError`. Setting it to 0 makes it be `Infinity`. -* `maxAge` Maximum age in ms. Items are not pro-actively pruned out - as they age, but if you try to get an item that is too old, it'll - drop it and return undefined instead of giving it to you. - Setting this to a negative value will make everything seem old! - Setting it to a non-number will throw a `TypeError`. -* `length` Function that is used to calculate the length of stored - items. If you're storing strings or buffers, then you probably want - to do something like `function(n, key){return n.length}`. The default is - `function(){return 1}`, which is fine if you want to store `max` - like-sized things. The item is passed as the first argument, and - the key is passed as the second argumnet. -* `dispose` Function that is called on items when they are dropped - from the cache. This can be handy if you want to close file - descriptors or do other cleanup tasks when items are no longer - accessible. Called with `key, value`. It's called *before* - actually removing the item from the internal cache, so if you want - to immediately put it back in, you'll have to do that in a - `nextTick` or `setTimeout` callback or it won't do anything. -* `stale` By default, if you set a `maxAge`, it'll only actually pull - stale items out of the cache when you `get(key)`. (That is, it's - not pre-emptively doing a `setTimeout` or anything.) If you set - `stale:true`, it'll return the stale value before deleting it. If - you don't set this, then it'll return `undefined` when you try to - get a stale entry, as if it had already been deleted. -* `noDisposeOnSet` By default, if you set a `dispose()` method, then - it'll be called whenever a `set()` operation overwrites an existing - key. If you set this option, `dispose()` will only be called when a - key falls out of the cache, not when it is overwritten. -* `updateAgeOnGet` When using time-expiring entries with `maxAge`, - setting this to `true` will make each item's effective time update - to the current time whenever it is retrieved from cache, causing it - to not expire. (It can still fall out of cache based on recency of - use, of course.) - -## API - -* `set(key, value, maxAge)` -* `get(key) => value` - - Both of these will update the "recently used"-ness of the key. - They do what you think. `maxAge` is optional and overrides the - cache `maxAge` option if provided. - - If the key is not found, `get()` will return `undefined`. - - The key and val can be any value. - -* `peek(key)` - - Returns the key value (or `undefined` if not found) without - updating the "recently used"-ness of the key. - - (If you find yourself using this a lot, you *might* be using the - wrong sort of data structure, but there are some use cases where - it's handy.) - -* `del(key)` - - Deletes a key out of the cache. - -* `reset()` - - Clear the cache entirely, throwing away all values. - -* `has(key)` - - Check if a key is in the cache, without updating the recent-ness - or deleting it for being stale. - -* `forEach(function(value,key,cache), [thisp])` - - Just like `Array.prototype.forEach`. Iterates over all the keys - in the cache, in order of recent-ness. (Ie, more recently used - items are iterated over first.) - -* `rforEach(function(value,key,cache), [thisp])` - - The same as `cache.forEach(...)` but items are iterated over in - reverse order. (ie, less recently used items are iterated over - first.) - -* `keys()` - - Return an array of the keys in the cache. - -* `values()` - - Return an array of the values in the cache. - -* `length` - - Return total length of objects in cache taking into account - `length` options function. - -* `itemCount` - - Return total quantity of objects currently in cache. Note, that - `stale` (see options) items are returned as part of this item - count. - -* `dump()` - - Return an array of the cache entries ready for serialization and usage - with 'destinationCache.load(arr)`. - -* `load(cacheEntriesArray)` - - Loads another cache entries array, obtained with `sourceCache.dump()`, - into the cache. The destination cache is reset before loading new entries - -* `prune()` - - Manually iterates over the entire cache proactively pruning old entries diff --git a/node_modules/hosted-git-info/node_modules/lru-cache/index.js b/node_modules/hosted-git-info/node_modules/lru-cache/index.js deleted file mode 100644 index 573b6b8..0000000 --- a/node_modules/hosted-git-info/node_modules/lru-cache/index.js +++ /dev/null @@ -1,334 +0,0 @@ -'use strict' - -// A linked list to keep track of recently-used-ness -const Yallist = require('yallist') - -const MAX = Symbol('max') -const LENGTH = Symbol('length') -const LENGTH_CALCULATOR = Symbol('lengthCalculator') -const ALLOW_STALE = Symbol('allowStale') -const MAX_AGE = Symbol('maxAge') -const DISPOSE = Symbol('dispose') -const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet') -const LRU_LIST = Symbol('lruList') -const CACHE = Symbol('cache') -const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet') - -const naiveLength = () => 1 - -// lruList is a yallist where the head is the youngest -// item, and the tail is the oldest. the list contains the Hit -// objects as the entries. -// Each Hit object has a reference to its Yallist.Node. This -// never changes. -// -// cache is a Map (or PseudoMap) that matches the keys to -// the Yallist.Node object. -class LRUCache { - constructor (options) { - if (typeof options === 'number') - options = { max: options } - - if (!options) - options = {} - - if (options.max && (typeof options.max !== 'number' || options.max < 0)) - throw new TypeError('max must be a non-negative number') - // Kind of weird to have a default max of Infinity, but oh well. - const max = this[MAX] = options.max || Infinity - - const lc = options.length || naiveLength - this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc - this[ALLOW_STALE] = options.stale || false - if (options.maxAge && typeof options.maxAge !== 'number') - throw new TypeError('maxAge must be a number') - this[MAX_AGE] = options.maxAge || 0 - this[DISPOSE] = options.dispose - this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false - this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false - this.reset() - } - - // resize the cache when the max changes. - set max (mL) { - if (typeof mL !== 'number' || mL < 0) - throw new TypeError('max must be a non-negative number') - - this[MAX] = mL || Infinity - trim(this) - } - get max () { - return this[MAX] - } - - set allowStale (allowStale) { - this[ALLOW_STALE] = !!allowStale - } - get allowStale () { - return this[ALLOW_STALE] - } - - set maxAge (mA) { - if (typeof mA !== 'number') - throw new TypeError('maxAge must be a non-negative number') - - this[MAX_AGE] = mA - trim(this) - } - get maxAge () { - return this[MAX_AGE] - } - - // resize the cache when the lengthCalculator changes. - set lengthCalculator (lC) { - if (typeof lC !== 'function') - lC = naiveLength - - if (lC !== this[LENGTH_CALCULATOR]) { - this[LENGTH_CALCULATOR] = lC - this[LENGTH] = 0 - this[LRU_LIST].forEach(hit => { - hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key) - this[LENGTH] += hit.length - }) - } - trim(this) - } - get lengthCalculator () { return this[LENGTH_CALCULATOR] } - - get length () { return this[LENGTH] } - get itemCount () { return this[LRU_LIST].length } - - rforEach (fn, thisp) { - thisp = thisp || this - for (let walker = this[LRU_LIST].tail; walker !== null;) { - const prev = walker.prev - forEachStep(this, fn, walker, thisp) - walker = prev - } - } - - forEach (fn, thisp) { - thisp = thisp || this - for (let walker = this[LRU_LIST].head; walker !== null;) { - const next = walker.next - forEachStep(this, fn, walker, thisp) - walker = next - } - } - - keys () { - return this[LRU_LIST].toArray().map(k => k.key) - } - - values () { - return this[LRU_LIST].toArray().map(k => k.value) - } - - reset () { - if (this[DISPOSE] && - this[LRU_LIST] && - this[LRU_LIST].length) { - this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)) - } - - this[CACHE] = new Map() // hash of items by key - this[LRU_LIST] = new Yallist() // list of items in order of use recency - this[LENGTH] = 0 // length of items in the list - } - - dump () { - return this[LRU_LIST].map(hit => - isStale(this, hit) ? false : { - k: hit.key, - v: hit.value, - e: hit.now + (hit.maxAge || 0) - }).toArray().filter(h => h) - } - - dumpLru () { - return this[LRU_LIST] - } - - set (key, value, maxAge) { - maxAge = maxAge || this[MAX_AGE] - - if (maxAge && typeof maxAge !== 'number') - throw new TypeError('maxAge must be a number') - - const now = maxAge ? Date.now() : 0 - const len = this[LENGTH_CALCULATOR](value, key) - - if (this[CACHE].has(key)) { - if (len > this[MAX]) { - del(this, this[CACHE].get(key)) - return false - } - - const node = this[CACHE].get(key) - const item = node.value - - // dispose of the old one before overwriting - // split out into 2 ifs for better coverage tracking - if (this[DISPOSE]) { - if (!this[NO_DISPOSE_ON_SET]) - this[DISPOSE](key, item.value) - } - - item.now = now - item.maxAge = maxAge - item.value = value - this[LENGTH] += len - item.length - item.length = len - this.get(key) - trim(this) - return true - } - - const hit = new Entry(key, value, len, now, maxAge) - - // oversized objects fall out of cache automatically. - if (hit.length > this[MAX]) { - if (this[DISPOSE]) - this[DISPOSE](key, value) - - return false - } - - this[LENGTH] += hit.length - this[LRU_LIST].unshift(hit) - this[CACHE].set(key, this[LRU_LIST].head) - trim(this) - return true - } - - has (key) { - if (!this[CACHE].has(key)) return false - const hit = this[CACHE].get(key).value - return !isStale(this, hit) - } - - get (key) { - return get(this, key, true) - } - - peek (key) { - return get(this, key, false) - } - - pop () { - const node = this[LRU_LIST].tail - if (!node) - return null - - del(this, node) - return node.value - } - - del (key) { - del(this, this[CACHE].get(key)) - } - - load (arr) { - // reset the cache - this.reset() - - const now = Date.now() - // A previous serialized cache has the most recent items first - for (let l = arr.length - 1; l >= 0; l--) { - const hit = arr[l] - const expiresAt = hit.e || 0 - if (expiresAt === 0) - // the item was created without expiration in a non aged cache - this.set(hit.k, hit.v) - else { - const maxAge = expiresAt - now - // dont add already expired items - if (maxAge > 0) { - this.set(hit.k, hit.v, maxAge) - } - } - } - } - - prune () { - this[CACHE].forEach((value, key) => get(this, key, false)) - } -} - -const get = (self, key, doUse) => { - const node = self[CACHE].get(key) - if (node) { - const hit = node.value - if (isStale(self, hit)) { - del(self, node) - if (!self[ALLOW_STALE]) - return undefined - } else { - if (doUse) { - if (self[UPDATE_AGE_ON_GET]) - node.value.now = Date.now() - self[LRU_LIST].unshiftNode(node) - } - } - return hit.value - } -} - -const isStale = (self, hit) => { - if (!hit || (!hit.maxAge && !self[MAX_AGE])) - return false - - const diff = Date.now() - hit.now - return hit.maxAge ? diff > hit.maxAge - : self[MAX_AGE] && (diff > self[MAX_AGE]) -} - -const trim = self => { - if (self[LENGTH] > self[MAX]) { - for (let walker = self[LRU_LIST].tail; - self[LENGTH] > self[MAX] && walker !== null;) { - // We know that we're about to delete this one, and also - // what the next least recently used key will be, so just - // go ahead and set it now. - const prev = walker.prev - del(self, walker) - walker = prev - } - } -} - -const del = (self, node) => { - if (node) { - const hit = node.value - if (self[DISPOSE]) - self[DISPOSE](hit.key, hit.value) - - self[LENGTH] -= hit.length - self[CACHE].delete(hit.key) - self[LRU_LIST].removeNode(node) - } -} - -class Entry { - constructor (key, value, length, now, maxAge) { - this.key = key - this.value = value - this.length = length - this.now = now - this.maxAge = maxAge || 0 - } -} - -const forEachStep = (self, fn, node, thisp) => { - let hit = node.value - if (isStale(self, hit)) { - del(self, node) - if (!self[ALLOW_STALE]) - hit = undefined - } - if (hit) - fn.call(thisp, hit.value, hit.key, self) -} - -module.exports = LRUCache diff --git a/node_modules/hosted-git-info/node_modules/lru-cache/package.json b/node_modules/hosted-git-info/node_modules/lru-cache/package.json deleted file mode 100644 index 308b771..0000000 --- a/node_modules/hosted-git-info/node_modules/lru-cache/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "_from": "lru-cache@^5.1.1", - "_id": "lru-cache@5.1.1", - "_inBundle": false, - "_integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "_location": "/hosted-git-info/lru-cache", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "lru-cache@^5.1.1", - "name": "lru-cache", - "escapedName": "lru-cache", - "rawSpec": "^5.1.1", - "saveSpec": null, - "fetchSpec": "^5.1.1" - }, - "_requiredBy": [ - "/hosted-git-info" - ], - "_resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "_shasum": "1da27e6710271947695daf6848e847f01d84b920", - "_spec": "lru-cache@^5.1.1", - "_where": "/Users/gebauer/Workspace/hugo-dev-theme/themes/ag/node_modules/hosted-git-info", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me" - }, - "bugs": { - "url": "https://github.com/isaacs/node-lru-cache/issues" - }, - "bundleDependencies": false, - "dependencies": { - "yallist": "^3.0.2" - }, - "deprecated": false, - "description": "A cache object that deletes the least-recently-used items.", - "devDependencies": { - "benchmark": "^2.1.4", - "tap": "^12.1.0" - }, - "files": [ - "index.js" - ], - "homepage": "https://github.com/isaacs/node-lru-cache#readme", - "keywords": [ - "mru", - "lru", - "cache" - ], - "license": "ISC", - "main": "index.js", - "name": "lru-cache", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/node-lru-cache.git" - }, - "scripts": { - "coveragerport": "tap --coverage-report=html", - "postpublish": "git push origin --all; git push origin --tags", - "postversion": "npm publish", - "preversion": "npm test", - "snap": "TAP_SNAPSHOT=1 tap test/*.js -J", - "test": "tap test/*.js --100 -J" - }, - "version": "5.1.1" -} diff --git a/node_modules/hosted-git-info/node_modules/yallist/LICENSE b/node_modules/hosted-git-info/node_modules/yallist/LICENSE deleted file mode 100644 index 19129e3..0000000 --- a/node_modules/hosted-git-info/node_modules/yallist/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -The ISC License - -Copyright (c) Isaac Z. Schlueter and Contributors - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR -IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/node_modules/hosted-git-info/node_modules/yallist/README.md b/node_modules/hosted-git-info/node_modules/yallist/README.md deleted file mode 100644 index f586101..0000000 --- a/node_modules/hosted-git-info/node_modules/yallist/README.md +++ /dev/null @@ -1,204 +0,0 @@ -# yallist - -Yet Another Linked List - -There are many doubly-linked list implementations like it, but this -one is mine. - -For when an array would be too big, and a Map can't be iterated in -reverse order. - - -[![Build Status](https://travis-ci.org/isaacs/yallist.svg?branch=master)](https://travis-ci.org/isaacs/yallist) [![Coverage Status](https://coveralls.io/repos/isaacs/yallist/badge.svg?service=github)](https://coveralls.io/github/isaacs/yallist) - -## basic usage - -```javascript -var yallist = require('yallist') -var myList = yallist.create([1, 2, 3]) -myList.push('foo') -myList.unshift('bar') -// of course pop() and shift() are there, too -console.log(myList.toArray()) // ['bar', 1, 2, 3, 'foo'] -myList.forEach(function (k) { - // walk the list head to tail -}) -myList.forEachReverse(function (k, index, list) { - // walk the list tail to head -}) -var myDoubledList = myList.map(function (k) { - return k + k -}) -// now myDoubledList contains ['barbar', 2, 4, 6, 'foofoo'] -// mapReverse is also a thing -var myDoubledListReverse = myList.mapReverse(function (k) { - return k + k -}) // ['foofoo', 6, 4, 2, 'barbar'] - -var reduced = myList.reduce(function (set, entry) { - set += entry - return set -}, 'start') -console.log(reduced) // 'startfoo123bar' -``` - -## api - -The whole API is considered "public". - -Functions with the same name as an Array method work more or less the -same way. - -There's reverse versions of most things because that's the point. - -### Yallist - -Default export, the class that holds and manages a list. - -Call it with either a forEach-able (like an array) or a set of -arguments, to initialize the list. - -The Array-ish methods all act like you'd expect. No magic length, -though, so if you change that it won't automatically prune or add -empty spots. - -### Yallist.create(..) - -Alias for Yallist function. Some people like factories. - -#### yallist.head - -The first node in the list - -#### yallist.tail - -The last node in the list - -#### yallist.length - -The number of nodes in the list. (Change this at your peril. It is -not magic like Array length.) - -#### yallist.toArray() - -Convert the list to an array. - -#### yallist.forEach(fn, [thisp]) - -Call a function on each item in the list. - -#### yallist.forEachReverse(fn, [thisp]) - -Call a function on each item in the list, in reverse order. - -#### yallist.get(n) - -Get the data at position `n` in the list. If you use this a lot, -probably better off just using an Array. - -#### yallist.getReverse(n) - -Get the data at position `n`, counting from the tail. - -#### yallist.map(fn, thisp) - -Create a new Yallist with the result of calling the function on each -item. - -#### yallist.mapReverse(fn, thisp) - -Same as `map`, but in reverse. - -#### yallist.pop() - -Get the data from the list tail, and remove the tail from the list. - -#### yallist.push(item, ...) - -Insert one or more items to the tail of the list. - -#### yallist.reduce(fn, initialValue) - -Like Array.reduce. - -#### yallist.reduceReverse - -Like Array.reduce, but in reverse. - -#### yallist.reverse - -Reverse the list in place. - -#### yallist.shift() - -Get the data from the list head, and remove the head from the list. - -#### yallist.slice([from], [to]) - -Just like Array.slice, but returns a new Yallist. - -#### yallist.sliceReverse([from], [to]) - -Just like yallist.slice, but the result is returned in reverse. - -#### yallist.toArray() - -Create an array representation of the list. - -#### yallist.toArrayReverse() - -Create a reversed array representation of the list. - -#### yallist.unshift(item, ...) - -Insert one or more items to the head of the list. - -#### yallist.unshiftNode(node) - -Move a Node object to the front of the list. (That is, pull it out of -wherever it lives, and make it the new head.) - -If the node belongs to a different list, then that list will remove it -first. - -#### yallist.pushNode(node) - -Move a Node object to the end of the list. (That is, pull it out of -wherever it lives, and make it the new tail.) - -If the node belongs to a list already, then that list will remove it -first. - -#### yallist.removeNode(node) - -Remove a node from the list, preserving referential integrity of head -and tail and other nodes. - -Will throw an error if you try to have a list remove a node that -doesn't belong to it. - -### Yallist.Node - -The class that holds the data and is actually the list. - -Call with `var n = new Node(value, previousNode, nextNode)` - -Note that if you do direct operations on Nodes themselves, it's very -easy to get into weird states where the list is broken. Be careful :) - -#### node.next - -The next node in the list. - -#### node.prev - -The previous node in the list. - -#### node.value - -The data the node contains. - -#### node.list - -The list to which this node belongs. (Null if it does not belong to -any list.) diff --git a/node_modules/hosted-git-info/node_modules/yallist/iterator.js b/node_modules/hosted-git-info/node_modules/yallist/iterator.js deleted file mode 100644 index d41c97a..0000000 --- a/node_modules/hosted-git-info/node_modules/yallist/iterator.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' -module.exports = function (Yallist) { - Yallist.prototype[Symbol.iterator] = function* () { - for (let walker = this.head; walker; walker = walker.next) { - yield walker.value - } - } -} diff --git a/node_modules/hosted-git-info/node_modules/yallist/package.json b/node_modules/hosted-git-info/node_modules/yallist/package.json deleted file mode 100644 index b75ddd7..0000000 --- a/node_modules/hosted-git-info/node_modules/yallist/package.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "_from": "yallist@^3.0.2", - "_id": "yallist@3.0.3", - "_inBundle": false, - "_integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "_location": "/hosted-git-info/yallist", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "yallist@^3.0.2", - "name": "yallist", - "escapedName": "yallist", - "rawSpec": "^3.0.2", - "saveSpec": null, - "fetchSpec": "^3.0.2" - }, - "_requiredBy": [ - "/hosted-git-info/lru-cache" - ], - "_resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "_shasum": "b4b049e314be545e3ce802236d6cd22cd91c3de9", - "_spec": "yallist@^3.0.2", - "_where": "/Users/gebauer/Workspace/hugo-dev-theme/themes/ag/node_modules/hosted-git-info/node_modules/lru-cache", - "author": { - "name": "Isaac Z. Schlueter", - "email": "i@izs.me", - "url": "http://blog.izs.me/" - }, - "bugs": { - "url": "https://github.com/isaacs/yallist/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "Yet Another Linked List", - "devDependencies": { - "tap": "^12.1.0" - }, - "directories": { - "test": "test" - }, - "files": [ - "yallist.js", - "iterator.js" - ], - "homepage": "https://github.com/isaacs/yallist#readme", - "license": "ISC", - "main": "yallist.js", - "name": "yallist", - "repository": { - "type": "git", - "url": "git+https://github.com/isaacs/yallist.git" - }, - "scripts": { - "postpublish": "git push origin --all; git push origin --tags", - "postversion": "npm publish", - "preversion": "npm test", - "test": "tap test/*.js --100" - }, - "version": "3.0.3" -} diff --git a/node_modules/hosted-git-info/node_modules/yallist/yallist.js b/node_modules/hosted-git-info/node_modules/yallist/yallist.js deleted file mode 100644 index b0ab36c..0000000 --- a/node_modules/hosted-git-info/node_modules/yallist/yallist.js +++ /dev/null @@ -1,376 +0,0 @@ -'use strict' -module.exports = Yallist - -Yallist.Node = Node -Yallist.create = Yallist - -function Yallist (list) { - var self = this - if (!(self instanceof Yallist)) { - self = new Yallist() - } - - self.tail = null - self.head = null - self.length = 0 - - if (list && typeof list.forEach === 'function') { - list.forEach(function (item) { - self.push(item) - }) - } else if (arguments.length > 0) { - for (var i = 0, l = arguments.length; i < l; i++) { - self.push(arguments[i]) - } - } - - return self -} - -Yallist.prototype.removeNode = function (node) { - if (node.list !== this) { - throw new Error('removing node which does not belong to this list') - } - - var next = node.next - var prev = node.prev - - if (next) { - next.prev = prev - } - - if (prev) { - prev.next = next - } - - if (node === this.head) { - this.head = next - } - if (node === this.tail) { - this.tail = prev - } - - node.list.length-- - node.next = null - node.prev = null - node.list = null -} - -Yallist.prototype.unshiftNode = function (node) { - if (node === this.head) { - return - } - - if (node.list) { - node.list.removeNode(node) - } - - var head = this.head - node.list = this - node.next = head - if (head) { - head.prev = node - } - - this.head = node - if (!this.tail) { - this.tail = node - } - this.length++ -} - -Yallist.prototype.pushNode = function (node) { - if (node === this.tail) { - return - } - - if (node.list) { - node.list.removeNode(node) - } - - var tail = this.tail - node.list = this - node.prev = tail - if (tail) { - tail.next = node - } - - this.tail = node - if (!this.head) { - this.head = node - } - this.length++ -} - -Yallist.prototype.push = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - push(this, arguments[i]) - } - return this.length -} - -Yallist.prototype.unshift = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - unshift(this, arguments[i]) - } - return this.length -} - -Yallist.prototype.pop = function () { - if (!this.tail) { - return undefined - } - - var res = this.tail.value - this.tail = this.tail.prev - if (this.tail) { - this.tail.next = null - } else { - this.head = null - } - this.length-- - return res -} - -Yallist.prototype.shift = function () { - if (!this.head) { - return undefined - } - - var res = this.head.value - this.head = this.head.next - if (this.head) { - this.head.prev = null - } else { - this.tail = null - } - this.length-- - return res -} - -Yallist.prototype.forEach = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.head, i = 0; walker !== null; i++) { - fn.call(thisp, walker.value, i, this) - walker = walker.next - } -} - -Yallist.prototype.forEachReverse = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { - fn.call(thisp, walker.value, i, this) - walker = walker.prev - } -} - -Yallist.prototype.get = function (n) { - for (var i = 0, walker = this.head; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.next - } - if (i === n && walker !== null) { - return walker.value - } -} - -Yallist.prototype.getReverse = function (n) { - for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.prev - } - if (i === n && walker !== null) { - return walker.value - } -} - -Yallist.prototype.map = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.head; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.next - } - return res -} - -Yallist.prototype.mapReverse = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.tail; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.prev - } - return res -} - -Yallist.prototype.reduce = function (fn, initial) { - var acc - var walker = this.head - if (arguments.length > 1) { - acc = initial - } else if (this.head) { - walker = this.head.next - acc = this.head.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } - - for (var i = 0; walker !== null; i++) { - acc = fn(acc, walker.value, i) - walker = walker.next - } - - return acc -} - -Yallist.prototype.reduceReverse = function (fn, initial) { - var acc - var walker = this.tail - if (arguments.length > 1) { - acc = initial - } else if (this.tail) { - walker = this.tail.prev - acc = this.tail.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } - - for (var i = this.length - 1; walker !== null; i--) { - acc = fn(acc, walker.value, i) - walker = walker.prev - } - - return acc -} - -Yallist.prototype.toArray = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.head; walker !== null; i++) { - arr[i] = walker.value - walker = walker.next - } - return arr -} - -Yallist.prototype.toArrayReverse = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.tail; walker !== null; i++) { - arr[i] = walker.value - walker = walker.prev - } - return arr -} - -Yallist.prototype.slice = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = 0, walker = this.head; walker !== null && i < from; i++) { - walker = walker.next - } - for (; walker !== null && i < to; i++, walker = walker.next) { - ret.push(walker.value) - } - return ret -} - -Yallist.prototype.sliceReverse = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { - walker = walker.prev - } - for (; walker !== null && i > from; i--, walker = walker.prev) { - ret.push(walker.value) - } - return ret -} - -Yallist.prototype.reverse = function () { - var head = this.head - var tail = this.tail - for (var walker = head; walker !== null; walker = walker.prev) { - var p = walker.prev - walker.prev = walker.next - walker.next = p - } - this.head = tail - this.tail = head - return this -} - -function push (self, item) { - self.tail = new Node(item, self.tail, null, self) - if (!self.head) { - self.head = self.tail - } - self.length++ -} - -function unshift (self, item) { - self.head = new Node(item, null, self.head, self) - if (!self.tail) { - self.tail = self.head - } - self.length++ -} - -function Node (value, prev, next, list) { - if (!(this instanceof Node)) { - return new Node(value, prev, next, list) - } - - this.list = list - this.value = value - - if (prev) { - prev.next = this - this.prev = prev - } else { - this.prev = null - } - - if (next) { - next.prev = this - this.next = next - } else { - this.next = null - } -} - -try { - // add if support for Symbol.iterator is present - require('./iterator.js')(Yallist) -} catch (er) {} diff --git a/node_modules/hosted-git-info/package.json b/node_modules/hosted-git-info/package.json index 20f0b3c..f7bd38e 100644 --- a/node_modules/hosted-git-info/package.json +++ b/node_modules/hosted-git-info/package.json @@ -1,8 +1,8 @@ { "_from": "hosted-git-info@^2.1.4", - "_id": "hosted-git-info@2.8.2", + "_id": "hosted-git-info@2.8.8", "_inBundle": false, - "_integrity": "sha512-CyjlXII6LMsPMyUzxpTt8fzh5QwzGqPmQXgY/Jyf4Zfp27t/FvfhwoE/8laaMUcMy816CkWF20I7NeQhwwY88w==", + "_integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", "_location": "/hosted-git-info", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/normalize-package-data" ], - "_resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.2.tgz", - "_shasum": "a35c3f355ac1249f1093c0c2a542ace8818c171a", + "_resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "_shasum": "7539bd4bc1e0e0a895815a2e0262420b12858488", "_spec": "hosted-git-info@^2.1.4", - "_where": "/Users/gebauer/Workspace/hugo-dev-theme/themes/ag/node_modules/normalize-package-data", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/normalize-package-data", "author": { "name": "Rebecca Turner", "email": "me@re-becca.org", @@ -31,9 +31,6 @@ "url": "https://github.com/npm/hosted-git-info/issues" }, "bundleDependencies": false, - "dependencies": { - "lru-cache": "^5.1.1" - }, "deprecated": false, "description": "Provides metadata and conversions from repository urls for Github, Bitbucket and Gitlab", "devDependencies": { @@ -61,11 +58,12 @@ "url": "git+https://github.com/npm/hosted-git-info.git" }, "scripts": { - "postrelease": "npm publish && git push --follow-tags", + "postrelease": "npm publish --tag=ancient-legacy-fixes && git push --follow-tags", + "posttest": "standard", "prerelease": "npm t", - "pretest": "standard", "release": "standard-version -s", - "test": "tap -J --100 --no-esm test/*.js" + "test": "tap -J --coverage=90 --no-esm test/*.js", + "test:coverage": "tap --coverage-report=html -J --coverage=90 --no-esm test/*.js" }, - "version": "2.8.2" + "version": "2.8.8" } diff --git a/node_modules/is-finite/index.js b/node_modules/is-finite/index.js index 8067387..421dd39 100644 --- a/node_modules/is-finite/index.js +++ b/node_modules/is-finite/index.js @@ -1,6 +1,5 @@ 'use strict'; -var numberIsNan = require('number-is-nan'); -module.exports = Number.isFinite || function (val) { - return !(typeof val !== 'number' || numberIsNan(val) || val === Infinity || val === -Infinity); +module.exports = Number.isFinite || function (value) { + return !(typeof value !== 'number' || value !== value || value === Infinity || value === -Infinity); }; diff --git a/node_modules/is-finite/license b/node_modules/is-finite/license index 654d0bf..e7af2f7 100644 --- a/node_modules/is-finite/license +++ b/node_modules/is-finite/license @@ -1,21 +1,9 @@ -The MIT License (MIT) +MIT License Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com) -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/is-finite/package.json b/node_modules/is-finite/package.json index b50dda4..4a14484 100644 --- a/node_modules/is-finite/package.json +++ b/node_modules/is-finite/package.json @@ -1,8 +1,8 @@ { "_from": "is-finite@^1.0.0", - "_id": "is-finite@1.0.2", + "_id": "is-finite@1.1.0", "_inBundle": false, - "_integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "_integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", "_location": "/is-finite", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/repeating" ], - "_resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "_shasum": "cc6677695602be550ef11e8b4aa6305342b6d0aa", + "_resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "_shasum": "904135c77fb42c0641d6aa1bcdbc4daa8da082f3", "_spec": "is-finite@^1.0.0", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/repeating", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/repeating", "author": { "name": "Sindre Sorhus", "email": "sindresorhus@gmail.com", @@ -31,13 +31,10 @@ "url": "https://github.com/sindresorhus/is-finite/issues" }, "bundleDependencies": false, - "dependencies": { - "number-is-nan": "^1.0.0" - }, "deprecated": false, "description": "ES2015 Number.isFinite() ponyfill", "devDependencies": { - "ava": "*" + "ava": "^3.2.0" }, "engines": { "node": ">=0.10.0" @@ -45,6 +42,7 @@ "files": [ "index.js" ], + "funding": "https://github.com/sponsors/sindresorhus", "homepage": "https://github.com/sindresorhus/is-finite#readme", "keywords": [ "es2015", @@ -64,5 +62,5 @@ "scripts": { "test": "ava" }, - "version": "1.0.2" + "version": "1.1.0" } diff --git a/node_modules/is-finite/readme.md b/node_modules/is-finite/readme.md index 567710c..c5ca7ef 100644 --- a/node_modules/is-finite/readme.md +++ b/node_modules/is-finite/readme.md @@ -2,13 +2,11 @@ > ES2015 [`Number.isFinite()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isFinite) [ponyfill](https://ponyfill.com) - ## Install -```sh -$ npm install --save is-finite ``` - +$ npm install is-finite +``` ## Usage @@ -22,7 +20,14 @@ numIsFinite(Infinity); //=> false ``` - -## License - -MIT © [Sindre Sorhus](http://sindresorhus.com) +--- + +<div align="center"> + <b> + <a href="https://tidelift.com/subscription/pkg/npm-is-finite?utm_source=npm-is-finite&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a> + </b> + <br> + <sub> + Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies. + </sub> +</div> diff --git a/node_modules/js-base64/base64.html b/node_modules/js-base64/base64.html index dd18305..aca61ae 100644 --- a/node_modules/js-base64/base64.html +++ b/node_modules/js-base64/base64.html @@ -22,7 +22,7 @@ </tr> <tr><th width="50%">Roundtrip</th><th>iframe w/ data: (no IE)</th></tr> <tr> -<th><textarea id="roundtrip" cols=32" rows="4" disabled></textarea></th> +<th><textarea id="roundtrip" cols="32" rows="4" disabled></textarea></th> <th><iframe id="data" width="80%" height="64"></iframe></th> </tr> </tbody></table> diff --git a/node_modules/js-base64/base64.js b/node_modules/js-base64/base64.js index f8200ec..f310b1f 100644 --- a/node_modules/js-base64/base64.js +++ b/node_modules/js-base64/base64.js @@ -22,7 +22,7 @@ // existing version for noConflict() global = global || {}; var _Base64 = global.Base64; - var version = "2.5.1"; + var version = "2.5.2"; // if node.js and NOT React Native, we use Buffer var buffer; if (typeof module !== 'undefined' && module.exports) { @@ -49,8 +49,8 @@ : cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6)) + fromCharCode(0x80 | (cc & 0x3f))) : (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f)) - + fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) - + fromCharCode(0x80 | ( cc & 0x3f))); + + fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) + + fromCharCode(0x80 | ( cc & 0x3f))); } else { var cc = 0x10000 + (c.charCodeAt(0) - 0xD800) * 0x400 @@ -83,32 +83,21 @@ } : function(b) { return b.replace(/[\s\S]{1,3}/g, cb_encode); }; - var _encode = buffer ? - buffer.from && Uint8Array && buffer.from !== Uint8Array.from - ? function (u) { - return (u.constructor === buffer.constructor ? u : buffer.from(u)) - .toString('base64') - } - : function (u) { - return (u.constructor === buffer.constructor ? u : new buffer(u)) - .toString('base64') - } - : function (u) { return btoa(utob(u)) } - ; + var _encode = function(u) { + var isUint8Array = Object.prototype.toString.call(u) === '[object Uint8Array]'; + return isUint8Array ? u.toString('base64') + : btoa(utob(String(u))); + } var encode = function(u, urisafe) { return !urisafe - ? _encode(String(u)) + ? _encode(u) : _encode(String(u)).replace(/[+\/]/g, function(m0) { return m0 == '+' ? '-' : '_'; }).replace(/=/g, ''); }; var encodeURI = function(u) { return encode(u, true) }; // decoder stuff - var re_btou = new RegExp([ - '[\xC0-\xDF][\x80-\xBF]', - '[\xE0-\xEF][\x80-\xBF]{2}', - '[\xF0-\xF7][\x80-\xBF]{3}' - ].join('|'), 'g'); + var re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g; var cb_btou = function(cccc) { switch(cccc.length) { case 4: @@ -233,3 +222,4 @@ // that's it! return {Base64: global.Base64} })); + diff --git a/node_modules/js-base64/base64.min.js b/node_modules/js-base64/base64.min.js index 77105df..177008c 100644 --- a/node_modules/js-base64/base64.min.js +++ b/node_modules/js-base64/base64.min.js @@ -1 +1 @@ -(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory(global):typeof define==="function"&&define.amd?define(factory):factory(global)})(typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:this,function(global){"use strict";global=global||{};var _Base64=global.Base64;var version="2.5.1";var buffer;if(typeof module!=="undefined"&&module.exports){try{buffer=eval("require('buffer').Buffer")}catch(err){buffer=undefined}}var b64chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var b64tab=function(bin){var t={};for(var i=0,l=bin.length;i<l;i++)t[bin.charAt(i)]=i;return t}(b64chars);var fromCharCode=String.fromCharCode;var cb_utob=function(c){if(c.length<2){var cc=c.charCodeAt(0);return cc<128?c:cc<2048?fromCharCode(192|cc>>>6)+fromCharCode(128|cc&63):fromCharCode(224|cc>>>12&15)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}else{var cc=65536+(c.charCodeAt(0)-55296)*1024+(c.charCodeAt(1)-56320);return fromCharCode(240|cc>>>18&7)+fromCharCode(128|cc>>>12&63)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}};var re_utob=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;var utob=function(u){return u.replace(re_utob,cb_utob)};var cb_encode=function(ccc){var padlen=[0,2,1][ccc.length%3],ord=ccc.charCodeAt(0)<<16|(ccc.length>1?ccc.charCodeAt(1):0)<<8|(ccc.length>2?ccc.charCodeAt(2):0),chars=[b64chars.charAt(ord>>>18),b64chars.charAt(ord>>>12&63),padlen>=2?"=":b64chars.charAt(ord>>>6&63),padlen>=1?"=":b64chars.charAt(ord&63)];return chars.join("")};var btoa=global.btoa?function(b){return global.btoa(b)}:function(b){return b.replace(/[\s\S]{1,3}/g,cb_encode)};var _encode=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(u){return(u.constructor===buffer.constructor?u:buffer.from(u)).toString("base64")}:function(u){return(u.constructor===buffer.constructor?u:new buffer(u)).toString("base64")}:function(u){return btoa(utob(u))};var encode=function(u,urisafe){return!urisafe?_encode(String(u)):_encode(String(u)).replace(/[+\/]/g,function(m0){return m0=="+"?"-":"_"}).replace(/=/g,"")};var encodeURI=function(u){return encode(u,true)};var re_btou=new RegExp(["[À-ß][-¿]","[à-ï][-¿]{2}","[ð-÷][-¿]{3}"].join("|"),"g");var cb_btou=function(cccc){switch(cccc.length){case 4:var cp=(7&cccc.charCodeAt(0))<<18|(63&cccc.charCodeAt(1))<<12|(63&cccc.charCodeAt(2))<<6|63&cccc.charCodeAt(3),offset=cp-65536;return fromCharCode((offset>>>10)+55296)+fromCharCode((offset&1023)+56320);case 3:return fromCharCode((15&cccc.charCodeAt(0))<<12|(63&cccc.charCodeAt(1))<<6|63&cccc.charCodeAt(2));default:return fromCharCode((31&cccc.charCodeAt(0))<<6|63&cccc.charCodeAt(1))}};var btou=function(b){return b.replace(re_btou,cb_btou)};var cb_decode=function(cccc){var len=cccc.length,padlen=len%4,n=(len>0?b64tab[cccc.charAt(0)]<<18:0)|(len>1?b64tab[cccc.charAt(1)]<<12:0)|(len>2?b64tab[cccc.charAt(2)]<<6:0)|(len>3?b64tab[cccc.charAt(3)]:0),chars=[fromCharCode(n>>>16),fromCharCode(n>>>8&255),fromCharCode(n&255)];chars.length-=[0,0,2,1][padlen];return chars.join("")};var _atob=global.atob?function(a){return global.atob(a)}:function(a){return a.replace(/\S{1,4}/g,cb_decode)};var atob=function(a){return _atob(String(a).replace(/[^A-Za-z0-9\+\/]/g,""))};var _decode=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(a){return(a.constructor===buffer.constructor?a:buffer.from(a,"base64")).toString()}:function(a){return(a.constructor===buffer.constructor?a:new buffer(a,"base64")).toString()}:function(a){return btou(_atob(a))};var decode=function(a){return _decode(String(a).replace(/[-_]/g,function(m0){return m0=="-"?"+":"/"}).replace(/[^A-Za-z0-9\+\/]/g,""))};var noConflict=function(){var Base64=global.Base64;global.Base64=_Base64;return Base64};global.Base64={VERSION:version,atob:atob,btoa:btoa,fromBase64:decode,toBase64:encode,utob:utob,encode:encode,encodeURI:encodeURI,btou:btou,decode:decode,noConflict:noConflict,__buffer__:buffer};if(typeof Object.defineProperty==="function"){var noEnum=function(v){return{value:v,enumerable:false,writable:true,configurable:true}};global.Base64.extendString=function(){Object.defineProperty(String.prototype,"fromBase64",noEnum(function(){return decode(this)}));Object.defineProperty(String.prototype,"toBase64",noEnum(function(urisafe){return encode(this,urisafe)}));Object.defineProperty(String.prototype,"toBase64URI",noEnum(function(){return encode(this,true)}))}}if(global["Meteor"]){Base64=global.Base64}if(typeof module!=="undefined"&&module.exports){module.exports.Base64=global.Base64}else if(typeof define==="function"&&define.amd){define([],function(){return global.Base64})}return{Base64:global.Base64}});
\ No newline at end of file +(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory(global):typeof define==="function"&&define.amd?define(factory):factory(global)})(typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:this,function(global){"use strict";global=global||{};var _Base64=global.Base64;var version="2.5.2";var buffer;if(typeof module!=="undefined"&&module.exports){try{buffer=eval("require('buffer').Buffer")}catch(err){buffer=undefined}}var b64chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var b64tab=function(bin){var t={};for(var i=0,l=bin.length;i<l;i++)t[bin.charAt(i)]=i;return t}(b64chars);var fromCharCode=String.fromCharCode;var cb_utob=function(c){if(c.length<2){var cc=c.charCodeAt(0);return cc<128?c:cc<2048?fromCharCode(192|cc>>>6)+fromCharCode(128|cc&63):fromCharCode(224|cc>>>12&15)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}else{var cc=65536+(c.charCodeAt(0)-55296)*1024+(c.charCodeAt(1)-56320);return fromCharCode(240|cc>>>18&7)+fromCharCode(128|cc>>>12&63)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}};var re_utob=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;var utob=function(u){return u.replace(re_utob,cb_utob)};var cb_encode=function(ccc){var padlen=[0,2,1][ccc.length%3],ord=ccc.charCodeAt(0)<<16|(ccc.length>1?ccc.charCodeAt(1):0)<<8|(ccc.length>2?ccc.charCodeAt(2):0),chars=[b64chars.charAt(ord>>>18),b64chars.charAt(ord>>>12&63),padlen>=2?"=":b64chars.charAt(ord>>>6&63),padlen>=1?"=":b64chars.charAt(ord&63)];return chars.join("")};var btoa=global.btoa?function(b){return global.btoa(b)}:function(b){return b.replace(/[\s\S]{1,3}/g,cb_encode)};var _encode=function(u){var isUint8Array=Object.prototype.toString.call(u)==="[object Uint8Array]";return isUint8Array?u.toString("base64"):btoa(utob(String(u)))};var encode=function(u,urisafe){return!urisafe?_encode(u):_encode(String(u)).replace(/[+\/]/g,function(m0){return m0=="+"?"-":"_"}).replace(/=/g,"")};var encodeURI=function(u){return encode(u,true)};var re_btou=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g;var cb_btou=function(cccc){switch(cccc.length){case 4:var cp=(7&cccc.charCodeAt(0))<<18|(63&cccc.charCodeAt(1))<<12|(63&cccc.charCodeAt(2))<<6|63&cccc.charCodeAt(3),offset=cp-65536;return fromCharCode((offset>>>10)+55296)+fromCharCode((offset&1023)+56320);case 3:return fromCharCode((15&cccc.charCodeAt(0))<<12|(63&cccc.charCodeAt(1))<<6|63&cccc.charCodeAt(2));default:return fromCharCode((31&cccc.charCodeAt(0))<<6|63&cccc.charCodeAt(1))}};var btou=function(b){return b.replace(re_btou,cb_btou)};var cb_decode=function(cccc){var len=cccc.length,padlen=len%4,n=(len>0?b64tab[cccc.charAt(0)]<<18:0)|(len>1?b64tab[cccc.charAt(1)]<<12:0)|(len>2?b64tab[cccc.charAt(2)]<<6:0)|(len>3?b64tab[cccc.charAt(3)]:0),chars=[fromCharCode(n>>>16),fromCharCode(n>>>8&255),fromCharCode(n&255)];chars.length-=[0,0,2,1][padlen];return chars.join("")};var _atob=global.atob?function(a){return global.atob(a)}:function(a){return a.replace(/\S{1,4}/g,cb_decode)};var atob=function(a){return _atob(String(a).replace(/[^A-Za-z0-9\+\/]/g,""))};var _decode=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(a){return(a.constructor===buffer.constructor?a:buffer.from(a,"base64")).toString()}:function(a){return(a.constructor===buffer.constructor?a:new buffer(a,"base64")).toString()}:function(a){return btou(_atob(a))};var decode=function(a){return _decode(String(a).replace(/[-_]/g,function(m0){return m0=="-"?"+":"/"}).replace(/[^A-Za-z0-9\+\/]/g,""))};var noConflict=function(){var Base64=global.Base64;global.Base64=_Base64;return Base64};global.Base64={VERSION:version,atob:atob,btoa:btoa,fromBase64:decode,toBase64:encode,utob:utob,encode:encode,encodeURI:encodeURI,btou:btou,decode:decode,noConflict:noConflict,__buffer__:buffer};if(typeof Object.defineProperty==="function"){var noEnum=function(v){return{value:v,enumerable:false,writable:true,configurable:true}};global.Base64.extendString=function(){Object.defineProperty(String.prototype,"fromBase64",noEnum(function(){return decode(this)}));Object.defineProperty(String.prototype,"toBase64",noEnum(function(urisafe){return encode(this,urisafe)}));Object.defineProperty(String.prototype,"toBase64URI",noEnum(function(){return encode(this,true)}))}}if(global["Meteor"]){Base64=global.Base64}if(typeof module!=="undefined"&&module.exports){module.exports.Base64=global.Base64}else if(typeof define==="function"&&define.amd){define([],function(){return global.Base64})}return{Base64:global.Base64}});
\ No newline at end of file diff --git a/node_modules/js-base64/bower.json b/node_modules/js-base64/bower.json index f4e9fd0..287903e 100644 --- a/node_modules/js-base64/bower.json +++ b/node_modules/js-base64/bower.json @@ -1,6 +1,6 @@ { "name": "js-base64", - "version": "2.5.1", + "version": "2.5.2", "license": "BSD-3-Clause", "main": [ "./base64.js" diff --git a/node_modules/js-base64/package.json b/node_modules/js-base64/package.json index d47bdc1..0caf63b 100644 --- a/node_modules/js-base64/package.json +++ b/node_modules/js-base64/package.json @@ -1,8 +1,8 @@ { "_from": "js-base64@^2.1.8", - "_id": "js-base64@2.5.1", + "_id": "js-base64@2.5.2", "_inBundle": false, - "_integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", + "_integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==", "_location": "/js-base64", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/scss-tokenizer" ], - "_resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", - "_shasum": "1efa39ef2c5f7980bb1784ade4a8af2de3291121", + "_resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", + "_shasum": "313b6274dda718f714d00b3330bbae6e38e90209", "_spec": "js-base64@^2.1.8", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/scss-tokenizer", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/scss-tokenizer", "author": { "name": "Dan Kogai" }, @@ -34,7 +34,7 @@ "devDependencies": { "babel-preset-env": "^1.7.0", "babel-register": "^6.26.0", - "mocha": "*" + "mocha": "5.x.x" }, "directories": { "test": "test" @@ -54,5 +54,5 @@ "scripts": { "test": "mocha --compilers js:babel-register" }, - "version": "2.5.1" + "version": "2.5.2" } diff --git a/node_modules/js-base64/test/index.html b/node_modules/js-base64/test/index.html index 1d91d09..5066bcc 100644 --- a/node_modules/js-base64/test/index.html +++ b/node_modules/js-base64/test/index.html @@ -7,7 +7,7 @@ <body> <div id="mocha"></div> - <script src="https://cdn.rawgit.com/jquery/jquery/2.1.4/dist/jquery.min.js"></script> + <script src="https://cdn.rawgit.com/jquery/jquery/3.4.0/dist/jquery.min.js"></script> <script src="https://cdn.rawgit.com/Automattic/expect.js/0.3.1/index.js"></script> <script src="https://cdn.rawgit.com/mochajs/mocha/2.2.5/mocha.js"></script> <script> diff --git a/node_modules/mime-db/HISTORY.md b/node_modules/mime-db/HISTORY.md index 0907d62..8afff37 100644 --- a/node_modules/mime-db/HISTORY.md +++ b/node_modules/mime-db/HISTORY.md @@ -1,3 +1,25 @@ +1.43.0 / 2020-01-05 +=================== + + * Add `application/x-keepass2` with extension `.kdbx` + * Add extension `.mxmf` to `audio/mobile-xmf` + * Add extensions from IANA for `application/*+xml` types + * Add new upstream MIME types + +1.42.0 / 2019-09-25 +=================== + + * Add `image/vnd.ms-dds` with extension `.dds` + * Add new upstream MIME types + * Remove compressible from `multipart/mixed` + +1.41.0 / 2019-08-30 +=================== + + * Add new upstream MIME types + * Add `application/toml` with extension `.toml` + * Mark `font/ttf` as compressible + 1.40.0 / 2019-04-20 =================== diff --git a/node_modules/mime-db/README.md b/node_modules/mime-db/README.md index dcc9d09..68e3a1a 100644 --- a/node_modules/mime-db/README.md +++ b/node_modules/mime-db/README.md @@ -76,13 +76,19 @@ and the values being an object with the following keys: To update the build, run `npm run build`. -## Adding Custom Media Types +### Adding Custom Media Types The best way to get new media types included in this library is to register them with the IANA. The community registration procedure is outlined in [RFC 6838 section 5](http://tools.ietf.org/html/rfc6838#section-5). Types registered with the IANA are automatically pulled into this library. +If that is not possible / feasible, they can be added directly here as a +"custom" type. To do this, it is required to have a primary source that +definitively lists the media type. If an extension is going to be listed as +associateed with this media type, the source must definitively link the +media type and extension as well. + [coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/mime-db/master [coveralls-url]: https://coveralls.io/r/jshttp/mime-db?branch=master [node-image]: https://badgen.net/npm/node/mime-db diff --git a/node_modules/mime-db/db.json b/node_modules/mime-db/db.json index a5fc987..cfa3c63 100644 --- a/node_modules/mime-db/db.json +++ b/node_modules/mime-db/db.json @@ -92,7 +92,8 @@ }, "application/atomdeleted+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["atomdeleted"] }, "application/atomicmail": { "source": "iana" @@ -104,15 +105,22 @@ }, "application/atsc-dwd+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["dwd"] }, "application/atsc-held+xml": { "source": "iana", + "compressible": true, + "extensions": ["held"] + }, + "application/atsc-rdt+json": { + "source": "iana", "compressible": true }, "application/atsc-rsat+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["rsat"] }, "application/atxml": { "source": "iana" @@ -142,7 +150,8 @@ }, "application/calendar+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["xcs"] }, "application/call-completion": { "source": "iana" @@ -153,6 +162,9 @@ "application/cbor": { "source": "iana" }, + "application/cbor-seq": { + "source": "iana" + }, "application/cccex": { "source": "iana" }, @@ -167,7 +179,8 @@ }, "application/cdfx+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["cdfx"] }, "application/cdmi-capability": { "source": "iana", @@ -206,6 +219,10 @@ "application/cfw": { "source": "iana" }, + "application/clue+xml": { + "source": "iana", + "compressible": true + }, "application/clue_info+xml": { "source": "iana", "compressible": true @@ -403,7 +420,8 @@ }, "application/emotionml+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["emotionml"] }, "application/encaprtp": { "source": "iana" @@ -436,7 +454,8 @@ }, "application/fdt+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["fdt"] }, "application/fhir+json": { "source": "iana", @@ -452,6 +471,9 @@ "application/fits": { "source": "iana" }, + "application/flexfec": { + "source": "iana" + }, "application/font-sfnt": { "source": "iana" }, @@ -574,7 +596,8 @@ }, "application/its+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["its"] }, "application/java-archive": { "source": "apache", @@ -659,7 +682,8 @@ }, "application/lgr+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["lgr"] }, "application/link-format": { "source": "iana" @@ -813,13 +837,18 @@ "application/mikey": { "source": "iana" }, + "application/mipc": { + "source": "iana" + }, "application/mmt-aei+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["maei"] }, "application/mmt-usd+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["musd"] }, "application/mods+xml": { "source": "iana", @@ -857,11 +886,13 @@ }, "application/mrb-consumer+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["xdf"] }, "application/mrb-publish+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["xdf"] }, "application/msc-ivr+xml": { "source": "iana", @@ -880,6 +911,9 @@ "source": "iana", "compressible": true }, + "application/multipart-core": { + "source": "iana" + }, "application/mxf": { "source": "iana", "extensions": ["mxf"] @@ -964,7 +998,8 @@ }, "application/p2p-overlay+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["relo"] }, "application/parityfec": { "source": "iana" @@ -1082,7 +1117,8 @@ }, "application/provenance+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["provx"] }, "application/prs.alvestrand.titrax-sheet": { "source": "iana" @@ -1176,15 +1212,18 @@ }, "application/route-apd+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["rapd"] }, "application/route-s-tsid+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["sls"] }, "application/route-usd+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["rusd"] }, "application/rpki-ghostbusters": { "source": "iana", @@ -1278,7 +1317,8 @@ }, "application/senml+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["senmlx"] }, "application/senml-exi": { "source": "iana" @@ -1292,7 +1332,8 @@ }, "application/sensml+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["sensmlx"] }, "application/sensml-exi": { "source": "iana" @@ -1346,6 +1387,9 @@ "application/simplesymbolcontainer": { "source": "iana" }, + "application/sipc": { + "source": "iana" + }, "application/slate": { "source": "iana" }, @@ -1411,6 +1455,11 @@ "source": "iana", "compressible": true }, + "application/swid+xml": { + "source": "iana", + "compressible": true, + "extensions": ["swidtag"] + }, "application/tamp-apex-update": { "source": "iana" }, @@ -1484,6 +1533,10 @@ "application/tnauthlist": { "source": "iana" }, + "application/toml": { + "compressible": true, + "extensions": ["toml"] + }, "application/trickle-ice-sdpfrag": { "source": "iana" }, @@ -1492,7 +1545,8 @@ }, "application/ttml+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["ttml"] }, "application/tve-trigger": { "source": "iana" @@ -1512,7 +1566,8 @@ }, "application/urc-ressheet+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["rsheet"] }, "application/urc-targetdesc+xml": { "source": "iana", @@ -1538,7 +1593,8 @@ }, "application/vnd.1000minds.decision-model+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["1km"] }, "application/vnd.3gpp-prose+xml": { "source": "iana", @@ -1640,6 +1696,10 @@ "source": "iana", "compressible": true }, + "application/vnd.3gpp.mcvideo-info+xml": { + "source": "iana", + "compressible": true + }, "application/vnd.3gpp.mcvideo-location-info+xml": { "source": "iana", "compressible": true @@ -1771,9 +1831,36 @@ "application/vnd.afpc.afplinedata": { "source": "iana" }, + "application/vnd.afpc.afplinedata-pagedef": { + "source": "iana" + }, + "application/vnd.afpc.foca-charset": { + "source": "iana" + }, + "application/vnd.afpc.foca-codedfont": { + "source": "iana" + }, + "application/vnd.afpc.foca-codepage": { + "source": "iana" + }, "application/vnd.afpc.modca": { "source": "iana" }, + "application/vnd.afpc.modca-formdef": { + "source": "iana" + }, + "application/vnd.afpc.modca-mediummap": { + "source": "iana" + }, + "application/vnd.afpc.modca-objectcontainer": { + "source": "iana" + }, + "application/vnd.afpc.modca-overlay": { + "source": "iana" + }, + "application/vnd.afpc.modca-pagesegment": { + "source": "iana" + }, "application/vnd.ah-barcode": { "source": "iana" }, @@ -1812,6 +1899,9 @@ "source": "iana", "compressible": true }, + "application/vnd.android.ota": { + "source": "iana" + }, "application/vnd.android.package-archive": { "source": "apache", "compressible": false, @@ -1845,6 +1935,10 @@ "source": "iana", "compressible": true }, + "application/vnd.aplextor.warrp+json": { + "source": "iana", + "compressible": true + }, "application/vnd.apothekende.reservation+json": { "source": "iana", "compressible": true @@ -1909,7 +2003,8 @@ }, "application/vnd.balsamiq.bmml+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["bmml"] }, "application/vnd.balsamiq.bmpr": { "source": "iana" @@ -1917,6 +2012,9 @@ "application/vnd.banana-accounting": { "source": "iana" }, + "application/vnd.bbf.usp.error": { + "source": "iana" + }, "application/vnd.bbf.usp.msg": { "source": "iana" }, @@ -1952,6 +2050,12 @@ "source": "iana", "extensions": ["bmi"] }, + "application/vnd.bpf": { + "source": "iana" + }, + "application/vnd.bpf3": { + "source": "iana" + }, "application/vnd.businessobjects": { "source": "iana", "extensions": ["rep"] @@ -1991,6 +2095,9 @@ "source": "iana", "extensions": ["mmd"] }, + "application/vnd.ciedi": { + "source": "iana" + }, "application/vnd.cinderella": { "source": "iana", "extensions": ["cdy"] @@ -2107,6 +2214,13 @@ "compressible": true, "extensions": ["wbs"] }, + "application/vnd.cryptii.pipe+json": { + "source": "iana", + "compressible": true + }, + "application/vnd.crypto-shade-file": { + "source": "iana" + }, "application/vnd.ctc-posml": { "source": "iana", "extensions": ["pml"] @@ -2540,6 +2654,10 @@ "application/vnd.ffsns": { "source": "iana" }, + "application/vnd.ficlab.flb+zip": { + "source": "iana", + "compressible": false + }, "application/vnd.filmit.zfc": { "source": "iana" }, @@ -2638,6 +2756,10 @@ "source": "iana", "extensions": ["txd"] }, + "application/vnd.gentics.grd+json": { + "source": "iana", + "compressible": true + }, "application/vnd.geo+json": { "source": "iana", "compressible": true @@ -3004,6 +3126,10 @@ "source": "iana", "extensions": ["fcs"] }, + "application/vnd.iso11783-10+zip": { + "source": "iana", + "compressible": false + }, "application/vnd.jam": { "source": "iana", "extensions": ["jam"] @@ -3103,6 +3229,9 @@ "source": "iana", "extensions": ["sse"] }, + "application/vnd.las": { + "source": "iana" + }, "application/vnd.las.las+json": { "source": "iana", "compressible": true @@ -3112,6 +3241,9 @@ "compressible": true, "extensions": ["lasxml"] }, + "application/vnd.laszip": { + "source": "iana" + }, "application/vnd.leap+json": { "source": "iana", "compressible": true @@ -3129,6 +3261,13 @@ "compressible": true, "extensions": ["lbe"] }, + "application/vnd.logipipe.circuit+zip": { + "source": "iana", + "compressible": false + }, + "application/vnd.loom": { + "source": "iana" + }, "application/vnd.lotus-1-2-3": { "source": "iana", "extensions": ["123"] @@ -3587,7 +3726,8 @@ }, "application/vnd.nokia.n-gage.ac+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["ac"] }, "application/vnd.nokia.n-gage.data": { "source": "iana", @@ -3941,7 +4081,8 @@ }, "application/vnd.openblox.game+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["obgx"] }, "application/vnd.openblox.game-binary": { "source": "iana" @@ -3955,7 +4096,8 @@ }, "application/vnd.openstreetmap.data+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["osm"] }, "application/vnd.openxmlformats-officedocument.custom-properties+xml": { "source": "iana", @@ -4583,6 +4725,9 @@ "source": "iana", "extensions": ["semf"] }, + "application/vnd.shade-save-file": { + "source": "iana" + }, "application/vnd.shana.informed.formdata": { "source": "iana", "extensions": ["ifm"] @@ -4603,6 +4748,10 @@ "source": "iana", "compressible": true }, + "application/vnd.shopkick+json": { + "source": "iana", + "compressible": true + }, "application/vnd.sigrok.session": { "source": "iana" }, @@ -4627,7 +4776,8 @@ }, "application/vnd.software602.filler.form+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["fo"] }, "application/vnd.software602.filler.form-xml-zip": { "source": "iana" @@ -4774,7 +4924,8 @@ }, "application/vnd.syncml.dmddf+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["ddf"] }, "application/vnd.syncml.dmtnds+wbxml": { "source": "iana" @@ -4920,6 +5071,9 @@ "application/vnd.veryant.thin": { "source": "iana" }, + "application/vnd.ves.encrypted": { + "source": "iana" + }, "application/vnd.vidsoft.vidconference": { "source": "iana" }, @@ -5408,6 +5562,9 @@ "application/x-javascript": { "compressible": true }, + "application/x-keepass2": { + "extensions": ["kdbx"] + }, "application/x-latex": { "source": "apache", "compressible": false, @@ -5720,11 +5877,13 @@ }, "application/xcap-att+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["xav"] }, "application/xcap-caps+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["xca"] }, "application/xcap-diff+xml": { "source": "iana", @@ -5733,15 +5892,18 @@ }, "application/xcap-el+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["xel"] }, "application/xcap-error+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["xer"] }, "application/xcap-ns+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["xns"] }, "application/xcon-conference-info+xml": { "source": "iana", @@ -5767,7 +5929,8 @@ }, "application/xliff+xml": { "source": "iana", - "compressible": true + "compressible": true, + "extensions": ["xlf"] }, "application/xml": { "source": "iana", @@ -5988,6 +6151,9 @@ "audio/evs": { "source": "iana" }, + "audio/flexfec": { + "source": "iana" + }, "audio/fwdred": { "source": "iana" }, @@ -6084,7 +6250,8 @@ "extensions": ["mid","midi","kar","rmi"] }, "audio/mobile-xmf": { - "source": "iana" + "source": "iana", + "extensions": ["mxmf"] }, "audio/mp3": { "compressible": false, @@ -6474,6 +6641,7 @@ }, "font/ttf": { "source": "iana", + "compressible": true, "extensions": ["ttf"] }, "font/woff": { @@ -6544,6 +6712,14 @@ "source": "iana", "extensions": ["heifs"] }, + "image/hej2k": { + "source": "iana", + "extensions": ["hej2"] + }, + "image/hsj2": { + "source": "iana", + "extensions": ["hsj2"] + }, "image/ief": { "source": "iana", "extensions": ["ief"] @@ -6562,6 +6738,14 @@ "compressible": false, "extensions": ["jpeg","jpg","jpe"] }, + "image/jph": { + "source": "iana", + "extensions": ["jph"] + }, + "image/jphc": { + "source": "iana", + "extensions": ["jhc"] + }, "image/jpm": { "source": "iana", "compressible": false, @@ -6576,6 +6760,30 @@ "source": "iana", "extensions": ["jxr"] }, + "image/jxra": { + "source": "iana", + "extensions": ["jxra"] + }, + "image/jxrs": { + "source": "iana", + "extensions": ["jxrs"] + }, + "image/jxs": { + "source": "iana", + "extensions": ["jxs"] + }, + "image/jxsc": { + "source": "iana", + "extensions": ["jxsc"] + }, + "image/jxsi": { + "source": "iana", + "extensions": ["jxsi"] + }, + "image/jxss": { + "source": "iana", + "extensions": ["jxss"] + }, "image/ktx": { "source": "iana", "extensions": ["ktx"] @@ -6689,6 +6897,9 @@ "image/vnd.mozilla.apng": { "source": "iana" }, + "image/vnd.ms-dds": { + "extensions": ["dds"] + }, "image/vnd.ms-modi": { "source": "iana", "extensions": ["mdi"] @@ -7041,8 +7252,7 @@ "source": "iana" }, "multipart/mixed": { - "source": "iana", - "compressible": false + "source": "iana" }, "multipart/multilingual": { "source": "iana" @@ -7120,6 +7330,9 @@ "text/enriched": { "source": "iana" }, + "text/flexfec": { + "source": "iana" + }, "text/fwdred": { "source": "iana" }, @@ -7306,6 +7519,9 @@ "text/vnd.esmertec.theme-descriptor": { "source": "iana" }, + "text/vnd.ficlab.flt": { + "source": "iana" + }, "text/vnd.fly": { "source": "iana", "extensions": ["fly"] @@ -7359,6 +7575,9 @@ "text/vnd.si.uricatalogue": { "source": "iana" }, + "text/vnd.sosi": { + "source": "iana" + }, "text/vnd.sun.j2me.app-descriptor": { "source": "iana", "extensions": ["jad"] @@ -7381,6 +7600,7 @@ "extensions": ["wmls"] }, "text/vtt": { + "source": "iana", "charset": "UTF-8", "compressible": true, "extensions": ["vtt"] @@ -7511,6 +7731,9 @@ "video/encaprtp": { "source": "iana" }, + "video/flexfec": { + "source": "iana" + }, "video/h261": { "source": "iana", "extensions": ["h261"] @@ -7750,6 +7973,9 @@ "source": "iana", "extensions": ["viv"] }, + "video/vnd.youtube.yt": { + "source": "iana" + }, "video/vp8": { "source": "iana" }, diff --git a/node_modules/mime-db/package.json b/node_modules/mime-db/package.json index 885dca7..4631570 100644 --- a/node_modules/mime-db/package.json +++ b/node_modules/mime-db/package.json @@ -1,27 +1,27 @@ { - "_from": "mime-db@1.40.0", - "_id": "mime-db@1.40.0", + "_from": "mime-db@1.43.0", + "_id": "mime-db@1.43.0", "_inBundle": false, - "_integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "_integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==", "_location": "/mime-db", "_phantomChildren": {}, "_requested": { "type": "version", "registry": true, - "raw": "mime-db@1.40.0", + "raw": "mime-db@1.43.0", "name": "mime-db", "escapedName": "mime-db", - "rawSpec": "1.40.0", + "rawSpec": "1.43.0", "saveSpec": null, - "fetchSpec": "1.40.0" + "fetchSpec": "1.43.0" }, "_requiredBy": [ "/mime-types" ], - "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "_shasum": "a65057e998db090f732a68f6c276d387d4126c32", - "_spec": "mime-db@1.40.0", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/mime-types", + "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "_shasum": "0a12e0502650e473d735535050e7c8f4eb4fae58", + "_spec": "mime-db@1.43.0", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/mime-types", "bugs": { "url": "https://github.com/jshttp/mime-db/issues" }, @@ -45,20 +45,20 @@ "deprecated": false, "description": "Media Type Database", "devDependencies": { - "bluebird": "3.5.4", + "bluebird": "3.7.2", "co": "4.6.0", "cogent": "1.0.1", - "csv-parse": "4.3.4", - "eslint": "5.16.0", - "eslint-config-standard": "12.0.0", - "eslint-plugin-import": "2.16.0", - "eslint-plugin-node": "8.0.1", - "eslint-plugin-promise": "4.1.1", - "eslint-plugin-standard": "4.0.0", + "csv-parse": "4.8.3", + "eslint": "6.8.0", + "eslint-config-standard": "14.1.0", + "eslint-plugin-import": "2.19.1", + "eslint-plugin-node": "11.0.0", + "eslint-plugin-promise": "4.2.1", + "eslint-plugin-standard": "4.0.1", "gnode": "0.1.2", - "mocha": "6.1.4", - "nyc": "14.0.0", - "raw-body": "2.3.3", + "mocha": "7.0.0", + "nyc": "15.0.0", + "raw-body": "2.4.1", "stream-to-array": "2.3.0" }, "engines": { @@ -97,5 +97,5 @@ "update": "npm run fetch && npm run build", "version": "node scripts/version-history.js && git add HISTORY.md" }, - "version": "1.40.0" + "version": "1.43.0" } diff --git a/node_modules/mime-types/HISTORY.md b/node_modules/mime-types/HISTORY.md index aef15bb..db3b311 100644 --- a/node_modules/mime-types/HISTORY.md +++ b/node_modules/mime-types/HISTORY.md @@ -1,3 +1,20 @@ +2.1.26 / 2020-01-05 +=================== + + * deps: mime-db@1.43.0 + - Add `application/x-keepass2` with extension `.kdbx` + - Add extension `.mxmf` to `audio/mobile-xmf` + - Add extensions from IANA for `application/*+xml` types + - Add new upstream MIME types + +2.1.25 / 2019-11-12 +=================== + + * deps: mime-db@1.42.0 + - Add new upstream MIME types + - Add `application/toml` with extension `.toml` + - Add `image/vnd.ms-dds` with extension `.dds` + 2.1.24 / 2019-04-20 =================== diff --git a/node_modules/mime-types/package.json b/node_modules/mime-types/package.json index c69e791..486ad52 100644 --- a/node_modules/mime-types/package.json +++ b/node_modules/mime-types/package.json @@ -1,8 +1,8 @@ { "_from": "mime-types@~2.1.19", - "_id": "mime-types@2.1.24", + "_id": "mime-types@2.1.26", "_inBundle": false, - "_integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "_integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", "_location": "/mime-types", "_phantomChildren": {}, "_requested": { @@ -19,10 +19,10 @@ "/form-data", "/request" ], - "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "_shasum": "b6f8d0b3e951efb77dedeca194cff6d16f676f81", + "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "_shasum": "9c921fc09b7e149a65dfdc0da4d20997200b0a06", "_spec": "mime-types@~2.1.19", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/request", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/request", "bugs": { "url": "https://github.com/jshttp/mime-types/issues" }, @@ -44,19 +44,19 @@ } ], "dependencies": { - "mime-db": "1.40.0" + "mime-db": "1.43.0" }, "deprecated": false, "description": "The ultimate javascript content-type utility.", "devDependencies": { - "eslint": "5.16.0", - "eslint-config-standard": "12.0.0", - "eslint-plugin-import": "2.17.2", - "eslint-plugin-node": "8.0.1", - "eslint-plugin-promise": "4.1.1", - "eslint-plugin-standard": "4.0.0", - "mocha": "6.1.4", - "nyc": "14.0.0" + "eslint": "6.8.0", + "eslint-config-standard": "14.1.0", + "eslint-plugin-import": "2.19.1", + "eslint-plugin-node": "11.0.0", + "eslint-plugin-promise": "4.2.1", + "eslint-plugin-standard": "4.0.1", + "mocha": "7.0.0", + "nyc": "15.0.0" }, "engines": { "node": ">= 0.6" @@ -83,5 +83,5 @@ "test-cov": "nyc --reporter=html --reporter=text npm test", "test-travis": "nyc --reporter=text npm test" }, - "version": "2.1.24" + "version": "2.1.26" } diff --git a/node_modules/minimist/example/parse.js b/node_modules/minimist/example/parse.js index abff3e8..f7c8d49 100644 --- a/node_modules/minimist/example/parse.js +++ b/node_modules/minimist/example/parse.js @@ -1,2 +1,2 @@ var argv = require('../')(process.argv.slice(2)); -console.dir(argv); +console.log(argv); diff --git a/node_modules/minimist/index.js b/node_modules/minimist/index.js index 6a0559d..d2afe5e 100644 --- a/node_modules/minimist/index.js +++ b/node_modules/minimist/index.js @@ -68,12 +68,21 @@ module.exports = function (args, opts) { function setKey (obj, keys, value) { var o = obj; - keys.slice(0,-1).forEach(function (key) { + for (var i = 0; i < keys.length-1; i++) { + var key = keys[i]; + if (key === '__proto__') return; if (o[key] === undefined) o[key] = {}; + if (o[key] === Object.prototype || o[key] === Number.prototype + || o[key] === String.prototype) o[key] = {}; + if (o[key] === Array.prototype) o[key] = []; o = o[key]; - }); + } var key = keys[keys.length - 1]; + if (key === '__proto__') return; + if (o === Object.prototype || o === Number.prototype + || o === String.prototype) o = {}; + if (o === Array.prototype) o = []; if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') { o[key] = value; } @@ -171,7 +180,7 @@ module.exports = function (args, opts) { setArg(key, args[i+1], arg); i++; } - else if (args[i+1] && /true|false/.test(args[i+1])) { + else if (args[i+1] && /^(true|false)$/.test(args[i+1])) { setArg(key, args[i+1] === 'true', arg); i++; } diff --git a/node_modules/minimist/package.json b/node_modules/minimist/package.json index 9d0ab15..d9b3252 100644 --- a/node_modules/minimist/package.json +++ b/node_modules/minimist/package.json @@ -1,8 +1,8 @@ { "_from": "minimist@^1.1.3", - "_id": "minimist@1.2.0", + "_id": "minimist@1.2.5", "_inBundle": false, - "_integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "_integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "_location": "/minimist", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/meow" ], - "_resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "_shasum": "a35008b20f41383eec1fb914f4cd5df79a264284", + "_resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "_shasum": "67d66014b66a6a8aaa0c083c5fd58df4e4e97602", "_spec": "minimist@^1.1.3", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/meow", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/meow", "author": { "name": "James Halliday", "email": "mail@substack.net", @@ -69,5 +69,5 @@ "opera/12" ] }, - "version": "1.2.0" + "version": "1.2.5" } diff --git a/node_modules/minimist/readme.markdown b/node_modules/minimist/readme.markdown index 30a74cf..5fd97ab 100644 --- a/node_modules/minimist/readme.markdown +++ b/node_modules/minimist/readme.markdown @@ -5,15 +5,11 @@ parse argument options This module is the guts of optimist's argument parser without all the fanciful decoration. -[![browser support](https://ci.testling.com/substack/minimist.png)](http://ci.testling.com/substack/minimist) - -[![build status](https://secure.travis-ci.org/substack/minimist.png)](http://travis-ci.org/substack/minimist) - # example ``` js var argv = require('minimist')(process.argv.slice(2)); -console.dir(argv); +console.log(argv); ``` ``` @@ -33,6 +29,13 @@ $ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz beep: 'boop' } ``` +# security + +Previous versions had a prototype pollution bug that could cause privilege +escalation in some circumstances when handling untrusted user input. + +Please use version 1.2.3 or later: https://snyk.io/vuln/SNYK-JS-MINIMIST-559764 + # methods ``` js @@ -65,19 +68,20 @@ argument names to use as aliases first non-option * `opts['--']` - when true, populate `argv._` with everything before the `--` and `argv['--']` with everything after the `--`. Here's an example: + + ``` + > require('./')('one two three -- four five --six'.split(' '), { '--': true }) + { _: [ 'one', 'two', 'three' ], + '--': [ 'four', 'five', '--six' ] } + ``` + + Note that with `opts['--']` set, parsing for arguments still stops after the + `--`. + * `opts.unknown` - a function which is invoked with a command line parameter not defined in the `opts` configuration object. If the function returns `false`, the unknown option is not added to `argv`. -``` -> require('./')('one two three -- four five --six'.split(' '), { '--': true }) -{ _: [ 'one', 'two', 'three' ], - '--': [ 'four', 'five', '--six' ] } -``` - -Note that with `opts['--']` set, parsing for arguments still stops after the -`--`. - # install With [npm](https://npmjs.org) do: diff --git a/node_modules/minimist/test/bool.js b/node_modules/minimist/test/bool.js index 14b0717..5f7dbde 100644 --- a/node_modules/minimist/test/bool.js +++ b/node_modules/minimist/test/bool.js @@ -164,3 +164,15 @@ test('boolean --boool=false', function (t) { t.same(parsed.boool, false); t.end(); }); + +test('boolean using something similar to true', function (t) { + var opts = { boolean: 'h' }; + var result = parse(['-h', 'true.txt'], opts); + var expected = { + h: true, + '_': ['true.txt'] + }; + + t.same(result, expected); + t.end(); +});
\ No newline at end of file diff --git a/node_modules/minimist/test/proto.js b/node_modules/minimist/test/proto.js new file mode 100644 index 0000000..8649107 --- /dev/null +++ b/node_modules/minimist/test/proto.js @@ -0,0 +1,44 @@ +var parse = require('../'); +var test = require('tape'); + +test('proto pollution', function (t) { + var argv = parse(['--__proto__.x','123']); + t.equal({}.x, undefined); + t.equal(argv.__proto__.x, undefined); + t.equal(argv.x, undefined); + t.end(); +}); + +test('proto pollution (array)', function (t) { + var argv = parse(['--x','4','--x','5','--x.__proto__.z','789']); + t.equal({}.z, undefined); + t.deepEqual(argv.x, [4,5]); + t.equal(argv.x.z, undefined); + t.equal(argv.x.__proto__.z, undefined); + t.end(); +}); + +test('proto pollution (number)', function (t) { + var argv = parse(['--x','5','--x.__proto__.z','100']); + t.equal({}.z, undefined); + t.equal((4).z, undefined); + t.equal(argv.x, 5); + t.equal(argv.x.z, undefined); + t.end(); +}); + +test('proto pollution (string)', function (t) { + var argv = parse(['--x','abc','--x.__proto__.z','def']); + t.equal({}.z, undefined); + t.equal('...'.z, undefined); + t.equal(argv.x, 'abc'); + t.equal(argv.x.z, undefined); + t.end(); +}); + +test('proto pollution (constructor)', function (t) { + var argv = parse(['--constructor.prototype.y','123']); + t.equal({}.y, undefined); + t.equal(argv.y, undefined); + t.end(); +}); diff --git a/node_modules/node-sass/CHANGELOG.md b/node_modules/node-sass/CHANGELOG.md index 4590a80..f4c666c 100644 --- a/node_modules/node-sass/CHANGELOG.md +++ b/node_modules/node-sass/CHANGELOG.md @@ -1,3 +1,11 @@ +## v4.13.1 + +https://github.com/sass/node-sass/releases/tag/v4.13.1 + +## v4.13.0 + +https://github.com/sass/node-sass/releases/tag/v4.13.0 + ## v4.12.0 https://github.com/sass/node-sass/releases/tag/v4.12.0 diff --git a/node_modules/node-sass/README.md b/node_modules/node-sass/README.md index 4aa1cba..1fbea16 100644 --- a/node_modules/node-sass/README.md +++ b/node_modules/node-sass/README.md @@ -1,9 +1,10 @@ # node-sass -#### Supported Node.js versions vary by release, please consult the [releases page](https://github.com/sass/node-sass/releases). Below is a quick guide for minimium support: +#### Supported Node.js versions vary by release, please consult the [releases page](https://github.com/sass/node-sass/releases). Below is a quick guide for minimum support: NodeJS | Minimum node-sass version | Node Module --------|--------------------------|------------ +Node 13 | 4.13+ | 79 Node 12 | 4.12+ | 72 Node 11 | 4.10+ | 67 Node 10 | 4.9+ | 64 @@ -45,7 +46,7 @@ Follow @nodesass on twitter for release updates: <https://twitter.com/nodesass> npm install node-sass ``` -Some users have reported issues installing on Ubuntu due to `node` being registered to another package. [Follow the official NodeJS docs](https://github.com/nodejs/node-v0.x-archive/wiki/Installing-Node.js-via-package-manager) to install NodeJS so that `#!/usr/bin/env node` correctly resolves. +Some users have reported issues installing on Ubuntu due to `node` being registered to another package. [Follow the official NodeJS docs](https://github.com/nodesource/distributions/blob/master/README.md#debinstall) to install NodeJS so that `#!/usr/bin/env node` correctly resolves. Compiling on Windows machines requires the [node-gyp prerequisites](https://github.com/nodejs/node-gyp#on-windows). @@ -310,9 +311,11 @@ Used to determine how many digits after the decimal will be allowed. For instanc * Type: `Boolean | String | undefined` * Default: `undefined` -**Special:** Setting the `sourceMap` option requires also setting the `outFile` option +Enables source map generation during `render` and `renderSync`. -Enables the outputting of a source map during `render` and `renderSync`. When `sourceMap === true`, the value of `outFile` is used as the target output location for the source map. When `typeof sourceMap === "string"`, the value of `sourceMap` will be used as the writing location for the file. +When `sourceMap === true`, the value of `outFile` is used as the target output location for the source map with the suffix `.map` appended. If no `outFile` is set, `sourceMap` parameter is ignored. + +When `typeof sourceMap === "string"`, the value of `sourceMap` will be used as the writing location for the file. ### sourceMapContents @@ -421,7 +424,7 @@ var result = sass.renderSync({ var result = someSyncFunction(url, prev); return {file: result.path, contents: result.data}; } -})); +}); console.log(result.css); console.log(result.map); diff --git a/node_modules/node-sass/lib/extensions.js b/node_modules/node-sass/lib/extensions.js index 8d365b4..1e344c4 100644 --- a/node_modules/node-sass/lib/extensions.js +++ b/node_modules/node-sass/lib/extensions.js @@ -78,6 +78,7 @@ function getHumanNodeVersion(abi) { case 64: return 'Node.js 10.x'; case 67: return 'Node.js 11.x'; case 72: return 'Node.js 12.x'; + case 79: return 'Node.js 13.x'; default: return false; } } @@ -214,7 +215,7 @@ function getBinaryName() { * By default fetch from the node-sass distribution * site on GitHub. * - * The default URL can be overriden using + * The default URL can be overridden using * the environment variable SASS_BINARY_SITE, * .npmrc variable sass_binary_site or * or a command line option --sass-binary-site: diff --git a/node_modules/node-sass/lib/index.js b/node_modules/node-sass/lib/index.js index 1521ec5..3f20708 100644 --- a/node_modules/node-sass/lib/index.js +++ b/node_modules/node-sass/lib/index.js @@ -300,9 +300,11 @@ module.exports.render = function(opts, cb) { var stats = endStats(result.stats); var payload = { css: result.css, - map: result.map, stats: stats }; + if (result.map) { + payload.map = result.map; + } if (cb) { options.context.callback.call(options.context, null, payload); diff --git a/node_modules/node-sass/package.json b/node_modules/node-sass/package.json index 025da85..a427d62 100644 --- a/node_modules/node-sass/package.json +++ b/node_modules/node-sass/package.json @@ -1,28 +1,28 @@ { - "_from": "node-sass@^4.12.0", - "_id": "node-sass@4.12.0", + "_from": "node-sass@4.13.1", + "_id": "node-sass@4.13.1", "_inBundle": false, - "_integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==", + "_integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==", "_location": "/node-sass", "_phantomChildren": {}, "_requested": { - "type": "range", + "type": "version", "registry": true, - "raw": "node-sass@^4.12.0", + "raw": "node-sass@4.13.1", "name": "node-sass", "escapedName": "node-sass", - "rawSpec": "^4.12.0", + "rawSpec": "4.13.1", "saveSpec": null, - "fetchSpec": "^4.12.0" + "fetchSpec": "4.13.1" }, "_requiredBy": [ "#USER", "/" ], - "_resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz", - "_shasum": "0914f531932380114a30cc5fa4fa63233a25f017", - "_spec": "node-sass@^4.12.0", - "_where": "/Users/gebauer/Workspace/hugo-dev-theme/themes/ag", + "_resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz", + "_shasum": "9db5689696bb2eec2c32b98bfea4c7a2e992d0a3", + "_spec": "node-sass@4.13.1", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme", "author": { "name": "Andrew Nesbitt", "email": "andrewnez@gmail.com", @@ -43,7 +43,7 @@ "get-stdin": "^4.0.1", "glob": "^7.0.3", "in-publish": "^2.0.0", - "lodash": "^4.17.11", + "lodash": "^4.17.15", "meow": "^3.7.0", "mkdirp": "^0.5.1", "nan": "^2.13.2", @@ -111,5 +111,5 @@ "prepublish": "not-in-install && node scripts/prepublish.js || in-install", "test": "mocha test/{*,**/**}.js" }, - "version": "4.12.0" + "version": "4.13.1" } diff --git a/node_modules/node-sass/src/custom_importer_bridge.cpp b/node_modules/node-sass/src/custom_importer_bridge.cpp index 38d737c..1ae5ae4 100644 --- a/node_modules/node-sass/src/custom_importer_bridge.cpp +++ b/node_modules/node-sass/src/custom_importer_bridge.cpp @@ -13,11 +13,12 @@ SassImportList CustomImporterBridge::post_process_return_value(v8::Local<v8::Val imports = sass_make_import_list(array->Length()); for (size_t i = 0; i < array->Length(); ++i) { - v8::Local<v8::Value> value = Nan::Get(array, static_cast<uint32_t>(i)).ToLocalChecked(); + v8::Local<v8::Value> value; + Nan::MaybeLocal<v8::Value> unchecked = Nan::Get(array, static_cast<uint32_t>(i)); - if (!value->IsObject()) { - auto entry = sass_make_import_entry(0, 0, 0); - sass_import_set_error(entry, "returned array must only contain object literals", -1, -1); + if (!unchecked.ToLocal(&value) || !value->IsObject()) { + imports[i] = sass_make_import_entry(0, 0, 0); + sass_import_set_error(imports[i], "returned array must only contain object literals", -1, -1); continue; } @@ -71,9 +72,9 @@ err: } Sass_Import* CustomImporterBridge::get_importer_entry(const v8::Local<v8::Object>& object) const { - auto returned_file = Nan::Get(object, Nan::New<v8::String>("file").ToLocalChecked()); - auto returned_contents = Nan::Get(object, Nan::New<v8::String>("contents").ToLocalChecked()).ToLocalChecked(); - auto returned_map = Nan::Get(object, Nan::New<v8::String>("map").ToLocalChecked()); + Nan::MaybeLocal<v8::Value> returned_file = Nan::Get(object, Nan::New<v8::String>("file").ToLocalChecked()); + Nan::MaybeLocal<v8::Value> returned_contents = Nan::Get(object, Nan::New<v8::String>("contents").ToLocalChecked()); + Nan::MaybeLocal<v8::Value> returned_map = Nan::Get(object, Nan::New<v8::String>("map").ToLocalChecked()); Sass_Import *err; if ((err = check_returned_string(returned_file, "returned value of `file` must be a string"))) diff --git a/node_modules/node-sass/test/api.js b/node_modules/node-sass/test/api.js index a26254a..5db3113 100644 --- a/node_modules/node-sass/test/api.js +++ b/node_modules/node-sass/test/api.js @@ -63,6 +63,26 @@ describe('api', function() { }); }); + it('should not generate source map when not requested', function(done) { + sass.render({ + file: fixture('simple/index.scss'), + sourceMap: false + }, function(error, result) { + assert.strictEqual(result.hasOwnProperty('map'), false, 'result has a map property'); + done(); + }); + }); + + it('should not generate source map without outFile and no explicit path given', function(done) { + sass.render({ + file: fixture('simple/index.scss'), + sourceMap: true + }, function(error, result) { + assert.strictEqual(result.hasOwnProperty('map'), false, 'result has a map property'); + done(); + }); + }); + it('should compile generate map with sourceMapRoot pass-through option', function(done) { sass.render({ file: fixture('simple/index.scss'), @@ -1348,6 +1368,26 @@ describe('api', function() { done(); }); + it('should not generate source map when not requested', function(done) { + var result = sass.renderSync({ + file: fixture('simple/index.scss'), + sourceMap: false + }); + + assert.strictEqual(result.hasOwnProperty('map'), false, 'result has a map property'); + done(); + }); + + it('should not generate source map without outFile and no explicit path given', function(done) { + var result = sass.renderSync({ + file: fixture('simple/index.scss'), + sourceMap: true + }); + + assert.strictEqual(result.hasOwnProperty('map'), false, 'result has a map property'); + done(); + }); + it('should compile generate map with sourceMapRoot pass-through option', function(done) { var result = sass.renderSync({ file: fixture('simple/index.scss'), diff --git a/node_modules/node-sass/test/watcher.js b/node_modules/node-sass/test/watcher.js index dca632f..c96d398 100644 --- a/node_modules/node-sass/test/watcher.js +++ b/node_modules/node-sass/test/watcher.js @@ -35,7 +35,7 @@ describe('watcher', function() { ]); }); - it('should record its decendants as added', function() { + it('should record its descendants as added', function() { var file = path.join(main, 'partials', '_one.scss'); var files = watcher.changed(file); assert.deepEqual(files.added, [ @@ -59,7 +59,7 @@ describe('watcher', function() { ]); }); - it('should record its decendants as added', function() { + it('should record its descendants as added', function() { var file = path.join(main, 'one.scss'); var files = watcher.changed(file); assert.deepEqual(files.added, [ @@ -112,7 +112,7 @@ describe('watcher', function() { assert.deepEqual(files.added, []); }); - it('should record its decendants as added', function() { + it('should record its descendants as added', function() { var file = path.join(main, 'partials', '_one.scss'); var files = watcher.added(file); assert.deepEqual(files.added, [ @@ -140,7 +140,7 @@ describe('watcher', function() { assert.deepEqual(files.added, []); }); - it('should record its decendants as added', function() { + it('should record its descendants as added', function() { var file = path.join(main, 'one.scss'); var files = watcher.added(file); assert.deepEqual(files.added, [ @@ -248,7 +248,7 @@ describe('watcher', function() { describe('when a file is changed', function() { describe('and it is in the graph', function() { describe('if it is a partial', function() { - it('should record its decendents as added', function() { + it('should record its descendants as added', function() { var file = path.join(main, 'partials', '_one.scss'); var files = watcher.changed(file); assert.deepEqual(files.added, [ @@ -272,7 +272,7 @@ describe('watcher', function() { }); describe('if it is not a partial', function() { - it('should record its decendents as added', function() { + it('should record its descendants as added', function() { var file = path.join(main, 'one.scss'); var files = watcher.changed(file); assert.deepEqual(files.added, [ @@ -338,7 +338,7 @@ describe('watcher', function() { assert.deepEqual(files.added, []); }); - it('should record its decendants as added', function() { + it('should record its descendants as added', function() { var file = path.join(main, 'partials', '_one.scss'); var files = watcher.added(file); assert.deepEqual(files.added, [ @@ -376,7 +376,7 @@ describe('watcher', function() { ]); }); - it('should not record its decendants as added', function() { + it('should not record its descendants as added', function() { var file = path.join(main, 'partials', '_one.scss'); var files = watcher.added(file); assert.deepEqual(files.added, [ diff --git a/node_modules/node-sass/vendor/darwin-x64-64/binding.node b/node_modules/node-sass/vendor/darwin-x64-64/binding.node Binary files differdeleted file mode 100644 index a0d7f09..0000000 --- a/node_modules/node-sass/vendor/darwin-x64-64/binding.node +++ /dev/null diff --git a/node_modules/node-sass/vendor/darwin-x64-72/binding.node b/node_modules/node-sass/vendor/darwin-x64-72/binding.node Binary files differdeleted file mode 100644 index 6b4a9f9..0000000 --- a/node_modules/node-sass/vendor/darwin-x64-72/binding.node +++ /dev/null diff --git a/node_modules/node-sass/vendor/darwin-x64-79/binding.node b/node_modules/node-sass/vendor/darwin-x64-79/binding.node Binary files differnew file mode 100644 index 0000000..74c1776 --- /dev/null +++ b/node_modules/node-sass/vendor/darwin-x64-79/binding.node diff --git a/node_modules/psl/data/rules.json b/node_modules/psl/data/rules.json index fd98685..0ebfff2 100644 --- a/node_modules/psl/data/rules.json +++ b/node_modules/psl/data/rules.json @@ -189,7 +189,6 @@ "wa.au", "act.edu.au", "catholic.edu.au", -"eq.edu.au", "nsw.edu.au", "nt.edu.au", "qld.edu.au", @@ -3887,8 +3886,6 @@ "norfolk.museum", "north.museum", "nrw.museum", -"nuernberg.museum", -"nuremberg.museum", "nyc.museum", "nyny.museum", "oceanographic.museum", @@ -5323,12 +5320,6 @@ "in.rs", "org.rs", "ru", -"ac.ru", -"edu.ru", -"gov.ru", -"int.ru", -"mil.ru", -"test.ru", "rw", "ac.rw", "co.rw", @@ -5440,9 +5431,19 @@ "univ.sn", "so", "com.so", +"edu.so", +"gov.so", +"me.so", "net.so", "org.so", "sr", +"ss", +"biz.ss", +"com.ss", +"edu.ss", +"gov.ss", +"net.ss", +"org.ss", "st", "co.st", "com.st", @@ -6025,6 +6026,7 @@ "الجزائر", "مصر", "ею", +"موريتانيا", "გე", "ελ", "香港", @@ -6176,6 +6178,7 @@ "ally", "alsace", "alstom", +"amazon", "americanexpress", "americanfamily", "amex", @@ -6257,7 +6260,6 @@ "blue", "bms", "bmw", -"bnl", "bnpparibas", "boats", "boehringer", @@ -6307,7 +6309,6 @@ "career", "careers", "cars", -"cartier", "casa", "case", "caseih", @@ -6334,7 +6335,6 @@ "chintai", "christmas", "chrome", -"chrysler", "church", "cipriani", "circle", @@ -6428,7 +6428,6 @@ "dnp", "docs", "doctor", -"dodge", "dog", "domains", "dot", @@ -6438,7 +6437,6 @@ "dubai", "duck", "dunlop", -"duns", "dupont", "durban", "dvag", @@ -6465,7 +6463,6 @@ "eurovision", "eus", "events", -"everbank", "exchange", "expert", "exposed", @@ -6609,7 +6606,6 @@ "homes", "homesense", "honda", -"honeywell", "horse", "hospital", "host", @@ -6649,7 +6645,6 @@ "investments", "ipiranga", "irish", -"iselect", "ismaili", "ist", "istanbul", @@ -6696,12 +6691,10 @@ "kuokgroup", "kyoto", "lacaixa", -"ladbrokes", "lamborghini", "lamer", "lancaster", "lancia", -"lancome", "land", "landrover", "lanxess", @@ -6737,6 +6730,7 @@ "living", "lixil", "llc", +"llp", "loan", "loans", "locker", @@ -6793,7 +6787,6 @@ "mls", "mma", "mobile", -"mobily", "moda", "moe", "moi", @@ -6801,7 +6794,6 @@ "monash", "money", "monster", -"mopar", "mormon", "mortgage", "moscow", @@ -6809,7 +6801,6 @@ "motorcycles", "mov", "movie", -"movistar", "msd", "mtn", "mtr", @@ -6896,7 +6887,6 @@ "photography", "photos", "physio", -"piaget", "pics", "pictet", "pictures", @@ -7061,16 +7051,15 @@ "song", "sony", "soy", +"spa", "space", "sport", "spot", "spreadbetting", "srl", -"srt", "stada", "staples", "star", -"starhub", "statebank", "statefarm", "stc", @@ -7110,7 +7099,6 @@ "team", "tech", "technology", -"telefonica", "temasek", "tennis", "teva", @@ -7155,7 +7143,6 @@ "tvs", "ubank", "ubs", -"uconnect", "unicom", "university", "uno", @@ -7196,7 +7183,6 @@ "walter", "wang", "wanggou", -"warman", "watch", "watches", "weather", @@ -7260,6 +7246,7 @@ "орг", "नेट", "ストア", +"アマゾン", "삼성", "商标", "商店", @@ -7283,6 +7270,7 @@ "餐厅", "网络", "ком", +"亚马逊", "诺基亚", "食品", "飞利浦", @@ -7292,7 +7280,6 @@ "العليان", "اتصالات", "بازار", -"موبايلي", "ابوظبي", "كاثوليك", "همراه", @@ -7345,10 +7332,14 @@ "cc.ua", "inf.ua", "ltd.ua", +"adobeaemcloud.com", +"adobeaemcloud.net", +"*.dev.adobeaemcloud.com", "beep.pl", "barsy.ca", "*.compute.estate", "*.alces.network", +"altervista.org", "alwaysdata.net", "cloudfront.net", "*.compute.amazonaws.com", @@ -7431,6 +7422,7 @@ "s3-website.eu-west-2.amazonaws.com", "s3-website.eu-west-3.amazonaws.com", "s3-website.us-east-2.amazonaws.com", +"amsw.nl", "t3l3p0rt.net", "tele.amune.org", "apigee.io", @@ -7444,9 +7436,6 @@ "potager.org", "sweetpepper.org", "myasustor.com", -"go-vip.co", -"go-vip.net", -"wpcomstaging.com", "myfritz.net", "*.awdev.ca", "*.advisor.ws", @@ -7552,6 +7541,12 @@ "co.no", "webhosting.be", "hosting-cluster.nl", +"ac.ru", +"edu.ru", +"gov.ru", +"int.ru", +"mil.ru", +"test.ru", "dyn.cosidns.de", "dynamisches-dns.de", "dnsupdater.de", @@ -7564,6 +7559,10 @@ "realm.cz", "*.cryptonomic.net", "cupcake.is", +"*.customer-oci.com", +"*.oci.customer-oci.com", +"*.ocp.customer-oci.com", +"*.ocs.customer-oci.com", "cyon.link", "cyon.site", "daplie.me", @@ -7581,6 +7580,8 @@ "store.dk", "*.dapps.earth", "*.bzz.dapps.earth", +"builtwithdark.com", +"edgestack.me", "debian.net", "dedyn.io", "dnshome.de", @@ -7904,6 +7905,7 @@ "blogsite.xyz", "dynv6.net", "e4.cz", +"en-root.fr", "mytuleap.com", "onred.one", "staging.onred.one", @@ -8081,6 +8083,7 @@ "firebaseapp.com", "flynnhub.com", "flynnhosting.net", +"0e.vc", "freebox-os.com", "freeboxos.com", "fbx-os.fr", @@ -8099,11 +8102,13 @@ "service.gov.uk", "gehirn.ne.jp", "usercontent.jp", +"gentapps.com", "lab.ms", "github.io", "githubusercontent.com", "gitlab.io", "glitch.me", +"lolipop.io", "cloudapps.digital", "london.cloudapps.digital", "homeoffice.gov.uk", @@ -8115,6 +8120,7 @@ "web.app", "*.0emm.com", "appspot.com", +"*.r.appspot.com", "blogspot.ae", "blogspot.al", "blogspot.am", @@ -8198,6 +8204,7 @@ "publishproxy.com", "withgoogle.com", "withyoutube.com", +"awsmppl.com", "fin.ci", "free.hr", "caa.li", @@ -8225,6 +8232,7 @@ "firm.ng", "gen.ng", "ltd.ng", +"ngo.ng", "ng.school", "sch.so", "häkkinen.fi", @@ -8291,6 +8299,7 @@ "kinghost.net", "uni5.net", "knightpoint.systems", +"oya.to", "co.krd", "edu.krd", "git-repos.de", @@ -8561,11 +8570,13 @@ "nom.uy", "nom.vc", "nom.vg", +"static.observableusercontent.com", "cya.gg", "cloudycluster.net", "nid.io", "opencraft.hosting", "operaunite.com", +"skygearapp.com", "outsystemscloud.com", "ownprovider.com", "own.pm", @@ -8582,6 +8593,7 @@ "pantheonsite.io", "gotpantheon.com", "mypep.link", +"perspecta.cloud", "on-web.fr", "*.platform.sh", "*.platformsh.site", @@ -8599,6 +8611,8 @@ "instantcloud.cn", "ras.ru", "qa2.com", +"qcx.io", +"*.sys.qcx.io", "dev-myqnapcloud.com", "alpha-myqnapcloud.com", "myqnapcloud.com", @@ -8607,6 +8621,7 @@ "vaporcloud.io", "rackmaze.com", "rackmaze.net", +"*.on-k3s.io", "*.on-rancher.cloud", "*.on-rio.io", "readthedocs.io", @@ -8626,6 +8641,7 @@ "logoip.de", "logoip.com", "schokokeks.net", +"gov.scot", "scrysec.com", "firewall-gateway.com", "firewall-gateway.de", @@ -8686,6 +8702,7 @@ "myds.me", "synology.me", "vpnplus.to", +"direct.quickconnect.to", "taifun-dns.de", "gda.pl", "gdansk.pl", @@ -8755,6 +8772,7 @@ "router.management", "v-info.info", "voorloper.cloud", +"v.ua", "wafflecell.com", "*.webhare.dev", "wedeploy.io", @@ -8790,6 +8808,5 @@ "basicserver.io", "virtualserver.io", "site.builder.nu", -"enterprisecloud.nu", -"zone.id" +"enterprisecloud.nu" ]
\ No newline at end of file diff --git a/node_modules/psl/dist/psl.js b/node_modules/psl/dist/psl.js index e6a277a..bcbebed 100644 --- a/node_modules/psl/dist/psl.js +++ b/node_modules/psl/dist/psl.js @@ -190,7 +190,6 @@ module.exports=[ "wa.au", "act.edu.au", "catholic.edu.au", -"eq.edu.au", "nsw.edu.au", "nt.edu.au", "qld.edu.au", @@ -3888,8 +3887,6 @@ module.exports=[ "norfolk.museum", "north.museum", "nrw.museum", -"nuernberg.museum", -"nuremberg.museum", "nyc.museum", "nyny.museum", "oceanographic.museum", @@ -5324,12 +5321,6 @@ module.exports=[ "in.rs", "org.rs", "ru", -"ac.ru", -"edu.ru", -"gov.ru", -"int.ru", -"mil.ru", -"test.ru", "rw", "ac.rw", "co.rw", @@ -5441,9 +5432,19 @@ module.exports=[ "univ.sn", "so", "com.so", +"edu.so", +"gov.so", +"me.so", "net.so", "org.so", "sr", +"ss", +"biz.ss", +"com.ss", +"edu.ss", +"gov.ss", +"net.ss", +"org.ss", "st", "co.st", "com.st", @@ -6026,6 +6027,7 @@ module.exports=[ "الجزائر", "مصر", "ею", +"موريتانيا", "გე", "ελ", "香港", @@ -6177,6 +6179,7 @@ module.exports=[ "ally", "alsace", "alstom", +"amazon", "americanexpress", "americanfamily", "amex", @@ -6258,7 +6261,6 @@ module.exports=[ "blue", "bms", "bmw", -"bnl", "bnpparibas", "boats", "boehringer", @@ -6308,7 +6310,6 @@ module.exports=[ "career", "careers", "cars", -"cartier", "casa", "case", "caseih", @@ -6335,7 +6336,6 @@ module.exports=[ "chintai", "christmas", "chrome", -"chrysler", "church", "cipriani", "circle", @@ -6429,7 +6429,6 @@ module.exports=[ "dnp", "docs", "doctor", -"dodge", "dog", "domains", "dot", @@ -6439,7 +6438,6 @@ module.exports=[ "dubai", "duck", "dunlop", -"duns", "dupont", "durban", "dvag", @@ -6466,7 +6464,6 @@ module.exports=[ "eurovision", "eus", "events", -"everbank", "exchange", "expert", "exposed", @@ -6610,7 +6607,6 @@ module.exports=[ "homes", "homesense", "honda", -"honeywell", "horse", "hospital", "host", @@ -6650,7 +6646,6 @@ module.exports=[ "investments", "ipiranga", "irish", -"iselect", "ismaili", "ist", "istanbul", @@ -6697,12 +6692,10 @@ module.exports=[ "kuokgroup", "kyoto", "lacaixa", -"ladbrokes", "lamborghini", "lamer", "lancaster", "lancia", -"lancome", "land", "landrover", "lanxess", @@ -6738,6 +6731,7 @@ module.exports=[ "living", "lixil", "llc", +"llp", "loan", "loans", "locker", @@ -6794,7 +6788,6 @@ module.exports=[ "mls", "mma", "mobile", -"mobily", "moda", "moe", "moi", @@ -6802,7 +6795,6 @@ module.exports=[ "monash", "money", "monster", -"mopar", "mormon", "mortgage", "moscow", @@ -6810,7 +6802,6 @@ module.exports=[ "motorcycles", "mov", "movie", -"movistar", "msd", "mtn", "mtr", @@ -6897,7 +6888,6 @@ module.exports=[ "photography", "photos", "physio", -"piaget", "pics", "pictet", "pictures", @@ -7062,16 +7052,15 @@ module.exports=[ "song", "sony", "soy", +"spa", "space", "sport", "spot", "spreadbetting", "srl", -"srt", "stada", "staples", "star", -"starhub", "statebank", "statefarm", "stc", @@ -7111,7 +7100,6 @@ module.exports=[ "team", "tech", "technology", -"telefonica", "temasek", "tennis", "teva", @@ -7156,7 +7144,6 @@ module.exports=[ "tvs", "ubank", "ubs", -"uconnect", "unicom", "university", "uno", @@ -7197,7 +7184,6 @@ module.exports=[ "walter", "wang", "wanggou", -"warman", "watch", "watches", "weather", @@ -7261,6 +7247,7 @@ module.exports=[ "орг", "नेट", "ストア", +"アマゾン", "삼성", "商标", "商店", @@ -7284,6 +7271,7 @@ module.exports=[ "餐厅", "网络", "ком", +"亚马逊", "诺基亚", "食品", "飞利浦", @@ -7293,7 +7281,6 @@ module.exports=[ "العليان", "اتصالات", "بازار", -"موبايلي", "ابوظبي", "كاثوليك", "همراه", @@ -7346,10 +7333,14 @@ module.exports=[ "cc.ua", "inf.ua", "ltd.ua", +"adobeaemcloud.com", +"adobeaemcloud.net", +"*.dev.adobeaemcloud.com", "beep.pl", "barsy.ca", "*.compute.estate", "*.alces.network", +"altervista.org", "alwaysdata.net", "cloudfront.net", "*.compute.amazonaws.com", @@ -7432,6 +7423,7 @@ module.exports=[ "s3-website.eu-west-2.amazonaws.com", "s3-website.eu-west-3.amazonaws.com", "s3-website.us-east-2.amazonaws.com", +"amsw.nl", "t3l3p0rt.net", "tele.amune.org", "apigee.io", @@ -7445,9 +7437,6 @@ module.exports=[ "potager.org", "sweetpepper.org", "myasustor.com", -"go-vip.co", -"go-vip.net", -"wpcomstaging.com", "myfritz.net", "*.awdev.ca", "*.advisor.ws", @@ -7553,6 +7542,12 @@ module.exports=[ "co.no", "webhosting.be", "hosting-cluster.nl", +"ac.ru", +"edu.ru", +"gov.ru", +"int.ru", +"mil.ru", +"test.ru", "dyn.cosidns.de", "dynamisches-dns.de", "dnsupdater.de", @@ -7565,6 +7560,10 @@ module.exports=[ "realm.cz", "*.cryptonomic.net", "cupcake.is", +"*.customer-oci.com", +"*.oci.customer-oci.com", +"*.ocp.customer-oci.com", +"*.ocs.customer-oci.com", "cyon.link", "cyon.site", "daplie.me", @@ -7582,6 +7581,8 @@ module.exports=[ "store.dk", "*.dapps.earth", "*.bzz.dapps.earth", +"builtwithdark.com", +"edgestack.me", "debian.net", "dedyn.io", "dnshome.de", @@ -7905,6 +7906,7 @@ module.exports=[ "blogsite.xyz", "dynv6.net", "e4.cz", +"en-root.fr", "mytuleap.com", "onred.one", "staging.onred.one", @@ -8082,6 +8084,7 @@ module.exports=[ "firebaseapp.com", "flynnhub.com", "flynnhosting.net", +"0e.vc", "freebox-os.com", "freeboxos.com", "fbx-os.fr", @@ -8100,11 +8103,13 @@ module.exports=[ "service.gov.uk", "gehirn.ne.jp", "usercontent.jp", +"gentapps.com", "lab.ms", "github.io", "githubusercontent.com", "gitlab.io", "glitch.me", +"lolipop.io", "cloudapps.digital", "london.cloudapps.digital", "homeoffice.gov.uk", @@ -8116,6 +8121,7 @@ module.exports=[ "web.app", "*.0emm.com", "appspot.com", +"*.r.appspot.com", "blogspot.ae", "blogspot.al", "blogspot.am", @@ -8199,6 +8205,7 @@ module.exports=[ "publishproxy.com", "withgoogle.com", "withyoutube.com", +"awsmppl.com", "fin.ci", "free.hr", "caa.li", @@ -8226,6 +8233,7 @@ module.exports=[ "firm.ng", "gen.ng", "ltd.ng", +"ngo.ng", "ng.school", "sch.so", "häkkinen.fi", @@ -8292,6 +8300,7 @@ module.exports=[ "kinghost.net", "uni5.net", "knightpoint.systems", +"oya.to", "co.krd", "edu.krd", "git-repos.de", @@ -8562,11 +8571,13 @@ module.exports=[ "nom.uy", "nom.vc", "nom.vg", +"static.observableusercontent.com", "cya.gg", "cloudycluster.net", "nid.io", "opencraft.hosting", "operaunite.com", +"skygearapp.com", "outsystemscloud.com", "ownprovider.com", "own.pm", @@ -8583,6 +8594,7 @@ module.exports=[ "pantheonsite.io", "gotpantheon.com", "mypep.link", +"perspecta.cloud", "on-web.fr", "*.platform.sh", "*.platformsh.site", @@ -8600,6 +8612,8 @@ module.exports=[ "instantcloud.cn", "ras.ru", "qa2.com", +"qcx.io", +"*.sys.qcx.io", "dev-myqnapcloud.com", "alpha-myqnapcloud.com", "myqnapcloud.com", @@ -8608,6 +8622,7 @@ module.exports=[ "vaporcloud.io", "rackmaze.com", "rackmaze.net", +"*.on-k3s.io", "*.on-rancher.cloud", "*.on-rio.io", "readthedocs.io", @@ -8627,6 +8642,7 @@ module.exports=[ "logoip.de", "logoip.com", "schokokeks.net", +"gov.scot", "scrysec.com", "firewall-gateway.com", "firewall-gateway.de", @@ -8687,6 +8703,7 @@ module.exports=[ "myds.me", "synology.me", "vpnplus.to", +"direct.quickconnect.to", "taifun-dns.de", "gda.pl", "gdansk.pl", @@ -8756,6 +8773,7 @@ module.exports=[ "router.management", "v-info.info", "voorloper.cloud", +"v.ua", "wafflecell.com", "*.webhare.dev", "wedeploy.io", @@ -8791,8 +8809,7 @@ module.exports=[ "basicserver.io", "virtualserver.io", "site.builder.nu", -"enterprisecloud.nu", -"zone.id" +"enterprisecloud.nu" ] },{}],2:[function(require,module,exports){ /*eslint no-var:0, prefer-arrow-callback: 0, object-shorthand: 0 */ diff --git a/node_modules/psl/dist/psl.min.js b/node_modules/psl/dist/psl.min.js index 780127e..f294e87 100644 --- a/node_modules/psl/dist/psl.min.js +++ b/node_modules/psl/dist/psl.min.js @@ -1 +1 @@ -!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).psl=a()}}(function(){return function s(m,t,u){function r(o,a){if(!t[o]){if(!m[o]){var i="function"==typeof require&&require;if(!a&&i)return i(o,!0);if(p)return p(o,!0);var e=new Error("Cannot find module '"+o+"'");throw e.code="MODULE_NOT_FOUND",e}var n=t[o]={exports:{}};m[o][0].call(n.exports,function(a){return r(m[o][1][a]||a)},n,n.exports,s,m,t,u)}return t[o].exports}for(var p="function"==typeof require&&require,a=0;a<u.length;a++)r(u[a]);return r}({1:[function(a,o,i){o.exports=["ac","com.ac","edu.ac","gov.ac","net.ac","mil.ac","org.ac","ad","nom.ad","ae","co.ae","net.ae","org.ae","sch.ae","ac.ae","gov.ae","mil.ae","aero","accident-investigation.aero","accident-prevention.aero","aerobatic.aero","aeroclub.aero","aerodrome.aero","agents.aero","aircraft.aero","airline.aero","airport.aero","air-surveillance.aero","airtraffic.aero","air-traffic-control.aero","ambulance.aero","amusement.aero","association.aero","author.aero","ballooning.aero","broker.aero","caa.aero","cargo.aero","catering.aero","certification.aero","championship.aero","charter.aero","civilaviation.aero","club.aero","conference.aero","consultant.aero","consulting.aero","control.aero","council.aero","crew.aero","design.aero","dgca.aero","educator.aero","emergency.aero","engine.aero","engineer.aero","entertainment.aero","equipment.aero","exchange.aero","express.aero","federation.aero","flight.aero","freight.aero","fuel.aero","gliding.aero","government.aero","groundhandling.aero","group.aero","hanggliding.aero","homebuilt.aero","insurance.aero","journal.aero","journalist.aero","leasing.aero","logistics.aero","magazine.aero","maintenance.aero","media.aero","microlight.aero","modelling.aero","navigation.aero","parachuting.aero","paragliding.aero","passenger-association.aero","pilot.aero","press.aero","production.aero","recreation.aero","repbody.aero","res.aero","research.aero","rotorcraft.aero","safety.aero","scientist.aero","services.aero","show.aero","skydiving.aero","software.aero","student.aero","trader.aero","trading.aero","trainer.aero","union.aero","workinggroup.aero","works.aero","af","gov.af","com.af","org.af","net.af","edu.af","ag","com.ag","org.ag","net.ag","co.ag","nom.ag","ai","off.ai","com.ai","net.ai","org.ai","al","com.al","edu.al","gov.al","mil.al","net.al","org.al","am","co.am","com.am","commune.am","net.am","org.am","ao","ed.ao","gv.ao","og.ao","co.ao","pb.ao","it.ao","aq","ar","com.ar","edu.ar","gob.ar","gov.ar","int.ar","mil.ar","musica.ar","net.ar","org.ar","tur.ar","arpa","e164.arpa","in-addr.arpa","ip6.arpa","iris.arpa","uri.arpa","urn.arpa","as","gov.as","asia","at","ac.at","co.at","gv.at","or.at","au","com.au","net.au","org.au","edu.au","gov.au","asn.au","id.au","info.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","act.edu.au","catholic.edu.au","eq.edu.au","nsw.edu.au","nt.edu.au","qld.edu.au","sa.edu.au","tas.edu.au","vic.edu.au","wa.edu.au","qld.gov.au","sa.gov.au","tas.gov.au","vic.gov.au","wa.gov.au","education.tas.edu.au","schools.nsw.edu.au","aw","com.aw","ax","az","com.az","net.az","int.az","gov.az","org.az","edu.az","info.az","pp.az","mil.az","name.az","pro.az","biz.az","ba","com.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","bb","biz.bb","co.bb","com.bb","edu.bb","gov.bb","info.bb","net.bb","org.bb","store.bb","tv.bb","*.bd","be","ac.be","bf","gov.bf","bg","a.bg","b.bg","c.bg","d.bg","e.bg","f.bg","g.bg","h.bg","i.bg","j.bg","k.bg","l.bg","m.bg","n.bg","o.bg","p.bg","q.bg","r.bg","s.bg","t.bg","u.bg","v.bg","w.bg","x.bg","y.bg","z.bg","0.bg","1.bg","2.bg","3.bg","4.bg","5.bg","6.bg","7.bg","8.bg","9.bg","bh","com.bh","edu.bh","net.bh","org.bh","gov.bh","bi","co.bi","com.bi","edu.bi","or.bi","org.bi","biz","bj","asso.bj","barreau.bj","gouv.bj","bm","com.bm","edu.bm","gov.bm","net.bm","org.bm","bn","com.bn","edu.bn","gov.bn","net.bn","org.bn","bo","com.bo","edu.bo","gob.bo","int.bo","org.bo","net.bo","mil.bo","tv.bo","web.bo","academia.bo","agro.bo","arte.bo","blog.bo","bolivia.bo","ciencia.bo","cooperativa.bo","democracia.bo","deporte.bo","ecologia.bo","economia.bo","empresa.bo","indigena.bo","industria.bo","info.bo","medicina.bo","movimiento.bo","musica.bo","natural.bo","nombre.bo","noticias.bo","patria.bo","politica.bo","profesional.bo","plurinacional.bo","pueblo.bo","revista.bo","salud.bo","tecnologia.bo","tksat.bo","transporte.bo","wiki.bo","br","9guacu.br","abc.br","adm.br","adv.br","agr.br","aju.br","am.br","anani.br","aparecida.br","arq.br","art.br","ato.br","b.br","barueri.br","belem.br","bhz.br","bio.br","blog.br","bmd.br","boavista.br","bsb.br","campinagrande.br","campinas.br","caxias.br","cim.br","cng.br","cnt.br","com.br","contagem.br","coop.br","cri.br","cuiaba.br","curitiba.br","def.br","ecn.br","eco.br","edu.br","emp.br","eng.br","esp.br","etc.br","eti.br","far.br","feira.br","flog.br","floripa.br","fm.br","fnd.br","fortal.br","fot.br","foz.br","fst.br","g12.br","ggf.br","goiania.br","gov.br","ac.gov.br","al.gov.br","am.gov.br","ap.gov.br","ba.gov.br","ce.gov.br","df.gov.br","es.gov.br","go.gov.br","ma.gov.br","mg.gov.br","ms.gov.br","mt.gov.br","pa.gov.br","pb.gov.br","pe.gov.br","pi.gov.br","pr.gov.br","rj.gov.br","rn.gov.br","ro.gov.br","rr.gov.br","rs.gov.br","sc.gov.br","se.gov.br","sp.gov.br","to.gov.br","gru.br","imb.br","ind.br","inf.br","jab.br","jampa.br","jdf.br","joinville.br","jor.br","jus.br","leg.br","lel.br","londrina.br","macapa.br","maceio.br","manaus.br","maringa.br","mat.br","med.br","mil.br","morena.br","mp.br","mus.br","natal.br","net.br","niteroi.br","*.nom.br","not.br","ntr.br","odo.br","ong.br","org.br","osasco.br","palmas.br","poa.br","ppg.br","pro.br","psc.br","psi.br","pvh.br","qsl.br","radio.br","rec.br","recife.br","ribeirao.br","rio.br","riobranco.br","riopreto.br","salvador.br","sampa.br","santamaria.br","santoandre.br","saobernardo.br","saogonca.br","sjc.br","slg.br","slz.br","sorocaba.br","srv.br","taxi.br","tc.br","teo.br","the.br","tmp.br","trd.br","tur.br","tv.br","udi.br","vet.br","vix.br","vlog.br","wiki.br","zlg.br","bs","com.bs","net.bs","org.bs","edu.bs","gov.bs","bt","com.bt","edu.bt","gov.bt","net.bt","org.bt","bv","bw","co.bw","org.bw","by","gov.by","mil.by","com.by","of.by","bz","com.bz","net.bz","org.bz","edu.bz","gov.bz","ca","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","gc.ca","cat","cc","cd","gov.cd","cf","cg","ch","ci","org.ci","or.ci","com.ci","co.ci","edu.ci","ed.ci","ac.ci","net.ci","go.ci","asso.ci","aéroport.ci","int.ci","presse.ci","md.ci","gouv.ci","*.ck","!www.ck","cl","gov.cl","gob.cl","co.cl","mil.cl","cm","co.cm","com.cm","gov.cm","net.cm","cn","ac.cn","com.cn","edu.cn","gov.cn","net.cn","org.cn","mil.cn","公司.cn","网络.cn","網絡.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gz.cn","gx.cn","ha.cn","hb.cn","he.cn","hi.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","xj.cn","xz.cn","yn.cn","zj.cn","hk.cn","mo.cn","tw.cn","co","arts.co","com.co","edu.co","firm.co","gov.co","info.co","int.co","mil.co","net.co","nom.co","org.co","rec.co","web.co","com","coop","cr","ac.cr","co.cr","ed.cr","fi.cr","go.cr","or.cr","sa.cr","cu","com.cu","edu.cu","org.cu","net.cu","gov.cu","inf.cu","cv","cw","com.cw","edu.cw","net.cw","org.cw","cx","gov.cx","cy","ac.cy","biz.cy","com.cy","ekloges.cy","gov.cy","ltd.cy","name.cy","net.cy","org.cy","parliament.cy","press.cy","pro.cy","tm.cy","cz","de","dj","dk","dm","com.dm","net.dm","org.dm","edu.dm","gov.dm","do","art.do","com.do","edu.do","gob.do","gov.do","mil.do","net.do","org.do","sld.do","web.do","dz","com.dz","org.dz","net.dz","gov.dz","edu.dz","asso.dz","pol.dz","art.dz","ec","com.ec","info.ec","net.ec","fin.ec","k12.ec","med.ec","pro.ec","org.ec","edu.ec","gov.ec","gob.ec","mil.ec","edu","ee","edu.ee","gov.ee","riik.ee","lib.ee","med.ee","com.ee","pri.ee","aip.ee","org.ee","fie.ee","eg","com.eg","edu.eg","eun.eg","gov.eg","mil.eg","name.eg","net.eg","org.eg","sci.eg","*.er","es","com.es","nom.es","org.es","gob.es","edu.es","et","com.et","gov.et","org.et","edu.et","biz.et","name.et","info.et","net.et","eu","fi","aland.fi","*.fj","*.fk","fm","fo","fr","asso.fr","com.fr","gouv.fr","nom.fr","prd.fr","tm.fr","aeroport.fr","avocat.fr","avoues.fr","cci.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","geometre-expert.fr","greta.fr","huissier-justice.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","ga","gb","gd","ge","com.ge","edu.ge","gov.ge","org.ge","mil.ge","net.ge","pvt.ge","gf","gg","co.gg","net.gg","org.gg","gh","com.gh","edu.gh","gov.gh","org.gh","mil.gh","gi","com.gi","ltd.gi","gov.gi","mod.gi","edu.gi","org.gi","gl","co.gl","com.gl","edu.gl","net.gl","org.gl","gm","gn","ac.gn","com.gn","edu.gn","gov.gn","org.gn","net.gn","gov","gp","com.gp","net.gp","mobi.gp","edu.gp","org.gp","asso.gp","gq","gr","com.gr","edu.gr","net.gr","org.gr","gov.gr","gs","gt","com.gt","edu.gt","gob.gt","ind.gt","mil.gt","net.gt","org.gt","gu","com.gu","edu.gu","gov.gu","guam.gu","info.gu","net.gu","org.gu","web.gu","gw","gy","co.gy","com.gy","edu.gy","gov.gy","net.gy","org.gy","hk","com.hk","edu.hk","gov.hk","idv.hk","net.hk","org.hk","公司.hk","教育.hk","敎育.hk","政府.hk","個人.hk","个人.hk","箇人.hk","網络.hk","网络.hk","组織.hk","網絡.hk","网絡.hk","组织.hk","組織.hk","組织.hk","hm","hn","com.hn","edu.hn","org.hn","net.hn","mil.hn","gob.hn","hr","iz.hr","from.hr","name.hr","com.hr","ht","com.ht","shop.ht","firm.ht","info.ht","adult.ht","net.ht","pro.ht","org.ht","med.ht","art.ht","coop.ht","pol.ht","asso.ht","edu.ht","rel.ht","gouv.ht","perso.ht","hu","co.hu","info.hu","org.hu","priv.hu","sport.hu","tm.hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","erotica.hu","erotika.hu","film.hu","forum.hu","games.hu","hotel.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","reklam.hu","sex.hu","shop.hu","suli.hu","szex.hu","tozsde.hu","utazas.hu","video.hu","id","ac.id","biz.id","co.id","desa.id","go.id","mil.id","my.id","net.id","or.id","ponpes.id","sch.id","web.id","ie","gov.ie","il","ac.il","co.il","gov.il","idf.il","k12.il","muni.il","net.il","org.il","im","ac.im","co.im","com.im","ltd.co.im","net.im","org.im","plc.co.im","tt.im","tv.im","in","co.in","firm.in","net.in","org.in","gen.in","ind.in","nic.in","ac.in","edu.in","res.in","gov.in","mil.in","info","int","eu.int","io","com.io","iq","gov.iq","edu.iq","mil.iq","com.iq","org.iq","net.iq","ir","ac.ir","co.ir","gov.ir","id.ir","net.ir","org.ir","sch.ir","ایران.ir","ايران.ir","is","net.is","com.is","edu.is","gov.is","org.is","int.is","it","gov.it","edu.it","abr.it","abruzzo.it","aosta-valley.it","aostavalley.it","bas.it","basilicata.it","cal.it","calabria.it","cam.it","campania.it","emilia-romagna.it","emiliaromagna.it","emr.it","friuli-v-giulia.it","friuli-ve-giulia.it","friuli-vegiulia.it","friuli-venezia-giulia.it","friuli-veneziagiulia.it","friuli-vgiulia.it","friuliv-giulia.it","friulive-giulia.it","friulivegiulia.it","friulivenezia-giulia.it","friuliveneziagiulia.it","friulivgiulia.it","fvg.it","laz.it","lazio.it","lig.it","liguria.it","lom.it","lombardia.it","lombardy.it","lucania.it","mar.it","marche.it","mol.it","molise.it","piedmont.it","piemonte.it","pmn.it","pug.it","puglia.it","sar.it","sardegna.it","sardinia.it","sic.it","sicilia.it","sicily.it","taa.it","tos.it","toscana.it","trentin-sud-tirol.it","trentin-süd-tirol.it","trentin-sudtirol.it","trentin-südtirol.it","trentin-sued-tirol.it","trentin-suedtirol.it","trentino-a-adige.it","trentino-aadige.it","trentino-alto-adige.it","trentino-altoadige.it","trentino-s-tirol.it","trentino-stirol.it","trentino-sud-tirol.it","trentino-süd-tirol.it","trentino-sudtirol.it","trentino-südtirol.it","trentino-sued-tirol.it","trentino-suedtirol.it","trentino.it","trentinoa-adige.it","trentinoaadige.it","trentinoalto-adige.it","trentinoaltoadige.it","trentinos-tirol.it","trentinostirol.it","trentinosud-tirol.it","trentinosüd-tirol.it","trentinosudtirol.it","trentinosüdtirol.it","trentinosued-tirol.it","trentinosuedtirol.it","trentinsud-tirol.it","trentinsüd-tirol.it","trentinsudtirol.it","trentinsüdtirol.it","trentinsued-tirol.it","trentinsuedtirol.it","tuscany.it","umb.it","umbria.it","val-d-aosta.it","val-daosta.it","vald-aosta.it","valdaosta.it","valle-aosta.it","valle-d-aosta.it","valle-daosta.it","valleaosta.it","valled-aosta.it","valledaosta.it","vallee-aoste.it","vallée-aoste.it","vallee-d-aoste.it","vallée-d-aoste.it","valleeaoste.it","valléeaoste.it","valleedaoste.it","valléedaoste.it","vao.it","vda.it","ven.it","veneto.it","ag.it","agrigento.it","al.it","alessandria.it","alto-adige.it","altoadige.it","an.it","ancona.it","andria-barletta-trani.it","andria-trani-barletta.it","andriabarlettatrani.it","andriatranibarletta.it","ao.it","aosta.it","aoste.it","ap.it","aq.it","aquila.it","ar.it","arezzo.it","ascoli-piceno.it","ascolipiceno.it","asti.it","at.it","av.it","avellino.it","ba.it","balsan-sudtirol.it","balsan-südtirol.it","balsan-suedtirol.it","balsan.it","bari.it","barletta-trani-andria.it","barlettatraniandria.it","belluno.it","benevento.it","bergamo.it","bg.it","bi.it","biella.it","bl.it","bn.it","bo.it","bologna.it","bolzano-altoadige.it","bolzano.it","bozen-sudtirol.it","bozen-südtirol.it","bozen-suedtirol.it","bozen.it","br.it","brescia.it","brindisi.it","bs.it","bt.it","bulsan-sudtirol.it","bulsan-südtirol.it","bulsan-suedtirol.it","bulsan.it","bz.it","ca.it","cagliari.it","caltanissetta.it","campidano-medio.it","campidanomedio.it","campobasso.it","carbonia-iglesias.it","carboniaiglesias.it","carrara-massa.it","carraramassa.it","caserta.it","catania.it","catanzaro.it","cb.it","ce.it","cesena-forli.it","cesena-forlì.it","cesenaforli.it","cesenaforlì.it","ch.it","chieti.it","ci.it","cl.it","cn.it","co.it","como.it","cosenza.it","cr.it","cremona.it","crotone.it","cs.it","ct.it","cuneo.it","cz.it","dell-ogliastra.it","dellogliastra.it","en.it","enna.it","fc.it","fe.it","fermo.it","ferrara.it","fg.it","fi.it","firenze.it","florence.it","fm.it","foggia.it","forli-cesena.it","forlì-cesena.it","forlicesena.it","forlìcesena.it","fr.it","frosinone.it","ge.it","genoa.it","genova.it","go.it","gorizia.it","gr.it","grosseto.it","iglesias-carbonia.it","iglesiascarbonia.it","im.it","imperia.it","is.it","isernia.it","kr.it","la-spezia.it","laquila.it","laspezia.it","latina.it","lc.it","le.it","lecce.it","lecco.it","li.it","livorno.it","lo.it","lodi.it","lt.it","lu.it","lucca.it","macerata.it","mantova.it","massa-carrara.it","massacarrara.it","matera.it","mb.it","mc.it","me.it","medio-campidano.it","mediocampidano.it","messina.it","mi.it","milan.it","milano.it","mn.it","mo.it","modena.it","monza-brianza.it","monza-e-della-brianza.it","monza.it","monzabrianza.it","monzaebrianza.it","monzaedellabrianza.it","ms.it","mt.it","na.it","naples.it","napoli.it","no.it","novara.it","nu.it","nuoro.it","og.it","ogliastra.it","olbia-tempio.it","olbiatempio.it","or.it","oristano.it","ot.it","pa.it","padova.it","padua.it","palermo.it","parma.it","pavia.it","pc.it","pd.it","pe.it","perugia.it","pesaro-urbino.it","pesarourbino.it","pescara.it","pg.it","pi.it","piacenza.it","pisa.it","pistoia.it","pn.it","po.it","pordenone.it","potenza.it","pr.it","prato.it","pt.it","pu.it","pv.it","pz.it","ra.it","ragusa.it","ravenna.it","rc.it","re.it","reggio-calabria.it","reggio-emilia.it","reggiocalabria.it","reggioemilia.it","rg.it","ri.it","rieti.it","rimini.it","rm.it","rn.it","ro.it","roma.it","rome.it","rovigo.it","sa.it","salerno.it","sassari.it","savona.it","si.it","siena.it","siracusa.it","so.it","sondrio.it","sp.it","sr.it","ss.it","suedtirol.it","südtirol.it","sv.it","ta.it","taranto.it","te.it","tempio-olbia.it","tempioolbia.it","teramo.it","terni.it","tn.it","to.it","torino.it","tp.it","tr.it","trani-andria-barletta.it","trani-barletta-andria.it","traniandriabarletta.it","tranibarlettaandria.it","trapani.it","trento.it","treviso.it","trieste.it","ts.it","turin.it","tv.it","ud.it","udine.it","urbino-pesaro.it","urbinopesaro.it","va.it","varese.it","vb.it","vc.it","ve.it","venezia.it","venice.it","verbania.it","vercelli.it","verona.it","vi.it","vibo-valentia.it","vibovalentia.it","vicenza.it","viterbo.it","vr.it","vs.it","vt.it","vv.it","je","co.je","net.je","org.je","*.jm","jo","com.jo","org.jo","net.jo","edu.jo","sch.jo","gov.jo","mil.jo","name.jo","jobs","jp","ac.jp","ad.jp","co.jp","ed.jp","go.jp","gr.jp","lg.jp","ne.jp","or.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","栃木.jp","愛知.jp","愛媛.jp","兵庫.jp","熊本.jp","茨城.jp","北海道.jp","千葉.jp","和歌山.jp","長崎.jp","長野.jp","新潟.jp","青森.jp","静岡.jp","東京.jp","石川.jp","埼玉.jp","三重.jp","京都.jp","佐賀.jp","大分.jp","大阪.jp","奈良.jp","宮城.jp","宮崎.jp","富山.jp","山口.jp","山形.jp","山梨.jp","岩手.jp","岐阜.jp","岡山.jp","島根.jp","広島.jp","徳島.jp","沖縄.jp","滋賀.jp","神奈川.jp","福井.jp","福岡.jp","福島.jp","秋田.jp","群馬.jp","香川.jp","高知.jp","鳥取.jp","鹿児島.jp","*.kawasaki.jp","*.kitakyushu.jp","*.kobe.jp","*.nagoya.jp","*.sapporo.jp","*.sendai.jp","*.yokohama.jp","!city.kawasaki.jp","!city.kitakyushu.jp","!city.kobe.jp","!city.nagoya.jp","!city.sapporo.jp","!city.sendai.jp","!city.yokohama.jp","aisai.aichi.jp","ama.aichi.jp","anjo.aichi.jp","asuke.aichi.jp","chiryu.aichi.jp","chita.aichi.jp","fuso.aichi.jp","gamagori.aichi.jp","handa.aichi.jp","hazu.aichi.jp","hekinan.aichi.jp","higashiura.aichi.jp","ichinomiya.aichi.jp","inazawa.aichi.jp","inuyama.aichi.jp","isshiki.aichi.jp","iwakura.aichi.jp","kanie.aichi.jp","kariya.aichi.jp","kasugai.aichi.jp","kira.aichi.jp","kiyosu.aichi.jp","komaki.aichi.jp","konan.aichi.jp","kota.aichi.jp","mihama.aichi.jp","miyoshi.aichi.jp","nishio.aichi.jp","nisshin.aichi.jp","obu.aichi.jp","oguchi.aichi.jp","oharu.aichi.jp","okazaki.aichi.jp","owariasahi.aichi.jp","seto.aichi.jp","shikatsu.aichi.jp","shinshiro.aichi.jp","shitara.aichi.jp","tahara.aichi.jp","takahama.aichi.jp","tobishima.aichi.jp","toei.aichi.jp","togo.aichi.jp","tokai.aichi.jp","tokoname.aichi.jp","toyoake.aichi.jp","toyohashi.aichi.jp","toyokawa.aichi.jp","toyone.aichi.jp","toyota.aichi.jp","tsushima.aichi.jp","yatomi.aichi.jp","akita.akita.jp","daisen.akita.jp","fujisato.akita.jp","gojome.akita.jp","hachirogata.akita.jp","happou.akita.jp","higashinaruse.akita.jp","honjo.akita.jp","honjyo.akita.jp","ikawa.akita.jp","kamikoani.akita.jp","kamioka.akita.jp","katagami.akita.jp","kazuno.akita.jp","kitaakita.akita.jp","kosaka.akita.jp","kyowa.akita.jp","misato.akita.jp","mitane.akita.jp","moriyoshi.akita.jp","nikaho.akita.jp","noshiro.akita.jp","odate.akita.jp","oga.akita.jp","ogata.akita.jp","semboku.akita.jp","yokote.akita.jp","yurihonjo.akita.jp","aomori.aomori.jp","gonohe.aomori.jp","hachinohe.aomori.jp","hashikami.aomori.jp","hiranai.aomori.jp","hirosaki.aomori.jp","itayanagi.aomori.jp","kuroishi.aomori.jp","misawa.aomori.jp","mutsu.aomori.jp","nakadomari.aomori.jp","noheji.aomori.jp","oirase.aomori.jp","owani.aomori.jp","rokunohe.aomori.jp","sannohe.aomori.jp","shichinohe.aomori.jp","shingo.aomori.jp","takko.aomori.jp","towada.aomori.jp","tsugaru.aomori.jp","tsuruta.aomori.jp","abiko.chiba.jp","asahi.chiba.jp","chonan.chiba.jp","chosei.chiba.jp","choshi.chiba.jp","chuo.chiba.jp","funabashi.chiba.jp","futtsu.chiba.jp","hanamigawa.chiba.jp","ichihara.chiba.jp","ichikawa.chiba.jp","ichinomiya.chiba.jp","inzai.chiba.jp","isumi.chiba.jp","kamagaya.chiba.jp","kamogawa.chiba.jp","kashiwa.chiba.jp","katori.chiba.jp","katsuura.chiba.jp","kimitsu.chiba.jp","kisarazu.chiba.jp","kozaki.chiba.jp","kujukuri.chiba.jp","kyonan.chiba.jp","matsudo.chiba.jp","midori.chiba.jp","mihama.chiba.jp","minamiboso.chiba.jp","mobara.chiba.jp","mutsuzawa.chiba.jp","nagara.chiba.jp","nagareyama.chiba.jp","narashino.chiba.jp","narita.chiba.jp","noda.chiba.jp","oamishirasato.chiba.jp","omigawa.chiba.jp","onjuku.chiba.jp","otaki.chiba.jp","sakae.chiba.jp","sakura.chiba.jp","shimofusa.chiba.jp","shirako.chiba.jp","shiroi.chiba.jp","shisui.chiba.jp","sodegaura.chiba.jp","sosa.chiba.jp","tako.chiba.jp","tateyama.chiba.jp","togane.chiba.jp","tohnosho.chiba.jp","tomisato.chiba.jp","urayasu.chiba.jp","yachimata.chiba.jp","yachiyo.chiba.jp","yokaichiba.chiba.jp","yokoshibahikari.chiba.jp","yotsukaido.chiba.jp","ainan.ehime.jp","honai.ehime.jp","ikata.ehime.jp","imabari.ehime.jp","iyo.ehime.jp","kamijima.ehime.jp","kihoku.ehime.jp","kumakogen.ehime.jp","masaki.ehime.jp","matsuno.ehime.jp","matsuyama.ehime.jp","namikata.ehime.jp","niihama.ehime.jp","ozu.ehime.jp","saijo.ehime.jp","seiyo.ehime.jp","shikokuchuo.ehime.jp","tobe.ehime.jp","toon.ehime.jp","uchiko.ehime.jp","uwajima.ehime.jp","yawatahama.ehime.jp","echizen.fukui.jp","eiheiji.fukui.jp","fukui.fukui.jp","ikeda.fukui.jp","katsuyama.fukui.jp","mihama.fukui.jp","minamiechizen.fukui.jp","obama.fukui.jp","ohi.fukui.jp","ono.fukui.jp","sabae.fukui.jp","sakai.fukui.jp","takahama.fukui.jp","tsuruga.fukui.jp","wakasa.fukui.jp","ashiya.fukuoka.jp","buzen.fukuoka.jp","chikugo.fukuoka.jp","chikuho.fukuoka.jp","chikujo.fukuoka.jp","chikushino.fukuoka.jp","chikuzen.fukuoka.jp","chuo.fukuoka.jp","dazaifu.fukuoka.jp","fukuchi.fukuoka.jp","hakata.fukuoka.jp","higashi.fukuoka.jp","hirokawa.fukuoka.jp","hisayama.fukuoka.jp","iizuka.fukuoka.jp","inatsuki.fukuoka.jp","kaho.fukuoka.jp","kasuga.fukuoka.jp","kasuya.fukuoka.jp","kawara.fukuoka.jp","keisen.fukuoka.jp","koga.fukuoka.jp","kurate.fukuoka.jp","kurogi.fukuoka.jp","kurume.fukuoka.jp","minami.fukuoka.jp","miyako.fukuoka.jp","miyama.fukuoka.jp","miyawaka.fukuoka.jp","mizumaki.fukuoka.jp","munakata.fukuoka.jp","nakagawa.fukuoka.jp","nakama.fukuoka.jp","nishi.fukuoka.jp","nogata.fukuoka.jp","ogori.fukuoka.jp","okagaki.fukuoka.jp","okawa.fukuoka.jp","oki.fukuoka.jp","omuta.fukuoka.jp","onga.fukuoka.jp","onojo.fukuoka.jp","oto.fukuoka.jp","saigawa.fukuoka.jp","sasaguri.fukuoka.jp","shingu.fukuoka.jp","shinyoshitomi.fukuoka.jp","shonai.fukuoka.jp","soeda.fukuoka.jp","sue.fukuoka.jp","tachiarai.fukuoka.jp","tagawa.fukuoka.jp","takata.fukuoka.jp","toho.fukuoka.jp","toyotsu.fukuoka.jp","tsuiki.fukuoka.jp","ukiha.fukuoka.jp","umi.fukuoka.jp","usui.fukuoka.jp","yamada.fukuoka.jp","yame.fukuoka.jp","yanagawa.fukuoka.jp","yukuhashi.fukuoka.jp","aizubange.fukushima.jp","aizumisato.fukushima.jp","aizuwakamatsu.fukushima.jp","asakawa.fukushima.jp","bandai.fukushima.jp","date.fukushima.jp","fukushima.fukushima.jp","furudono.fukushima.jp","futaba.fukushima.jp","hanawa.fukushima.jp","higashi.fukushima.jp","hirata.fukushima.jp","hirono.fukushima.jp","iitate.fukushima.jp","inawashiro.fukushima.jp","ishikawa.fukushima.jp","iwaki.fukushima.jp","izumizaki.fukushima.jp","kagamiishi.fukushima.jp","kaneyama.fukushima.jp","kawamata.fukushima.jp","kitakata.fukushima.jp","kitashiobara.fukushima.jp","koori.fukushima.jp","koriyama.fukushima.jp","kunimi.fukushima.jp","miharu.fukushima.jp","mishima.fukushima.jp","namie.fukushima.jp","nango.fukushima.jp","nishiaizu.fukushima.jp","nishigo.fukushima.jp","okuma.fukushima.jp","omotego.fukushima.jp","ono.fukushima.jp","otama.fukushima.jp","samegawa.fukushima.jp","shimogo.fukushima.jp","shirakawa.fukushima.jp","showa.fukushima.jp","soma.fukushima.jp","sukagawa.fukushima.jp","taishin.fukushima.jp","tamakawa.fukushima.jp","tanagura.fukushima.jp","tenei.fukushima.jp","yabuki.fukushima.jp","yamato.fukushima.jp","yamatsuri.fukushima.jp","yanaizu.fukushima.jp","yugawa.fukushima.jp","anpachi.gifu.jp","ena.gifu.jp","gifu.gifu.jp","ginan.gifu.jp","godo.gifu.jp","gujo.gifu.jp","hashima.gifu.jp","hichiso.gifu.jp","hida.gifu.jp","higashishirakawa.gifu.jp","ibigawa.gifu.jp","ikeda.gifu.jp","kakamigahara.gifu.jp","kani.gifu.jp","kasahara.gifu.jp","kasamatsu.gifu.jp","kawaue.gifu.jp","kitagata.gifu.jp","mino.gifu.jp","minokamo.gifu.jp","mitake.gifu.jp","mizunami.gifu.jp","motosu.gifu.jp","nakatsugawa.gifu.jp","ogaki.gifu.jp","sakahogi.gifu.jp","seki.gifu.jp","sekigahara.gifu.jp","shirakawa.gifu.jp","tajimi.gifu.jp","takayama.gifu.jp","tarui.gifu.jp","toki.gifu.jp","tomika.gifu.jp","wanouchi.gifu.jp","yamagata.gifu.jp","yaotsu.gifu.jp","yoro.gifu.jp","annaka.gunma.jp","chiyoda.gunma.jp","fujioka.gunma.jp","higashiagatsuma.gunma.jp","isesaki.gunma.jp","itakura.gunma.jp","kanna.gunma.jp","kanra.gunma.jp","katashina.gunma.jp","kawaba.gunma.jp","kiryu.gunma.jp","kusatsu.gunma.jp","maebashi.gunma.jp","meiwa.gunma.jp","midori.gunma.jp","minakami.gunma.jp","naganohara.gunma.jp","nakanojo.gunma.jp","nanmoku.gunma.jp","numata.gunma.jp","oizumi.gunma.jp","ora.gunma.jp","ota.gunma.jp","shibukawa.gunma.jp","shimonita.gunma.jp","shinto.gunma.jp","showa.gunma.jp","takasaki.gunma.jp","takayama.gunma.jp","tamamura.gunma.jp","tatebayashi.gunma.jp","tomioka.gunma.jp","tsukiyono.gunma.jp","tsumagoi.gunma.jp","ueno.gunma.jp","yoshioka.gunma.jp","asaminami.hiroshima.jp","daiwa.hiroshima.jp","etajima.hiroshima.jp","fuchu.hiroshima.jp","fukuyama.hiroshima.jp","hatsukaichi.hiroshima.jp","higashihiroshima.hiroshima.jp","hongo.hiroshima.jp","jinsekikogen.hiroshima.jp","kaita.hiroshima.jp","kui.hiroshima.jp","kumano.hiroshima.jp","kure.hiroshima.jp","mihara.hiroshima.jp","miyoshi.hiroshima.jp","naka.hiroshima.jp","onomichi.hiroshima.jp","osakikamijima.hiroshima.jp","otake.hiroshima.jp","saka.hiroshima.jp","sera.hiroshima.jp","seranishi.hiroshima.jp","shinichi.hiroshima.jp","shobara.hiroshima.jp","takehara.hiroshima.jp","abashiri.hokkaido.jp","abira.hokkaido.jp","aibetsu.hokkaido.jp","akabira.hokkaido.jp","akkeshi.hokkaido.jp","asahikawa.hokkaido.jp","ashibetsu.hokkaido.jp","ashoro.hokkaido.jp","assabu.hokkaido.jp","atsuma.hokkaido.jp","bibai.hokkaido.jp","biei.hokkaido.jp","bifuka.hokkaido.jp","bihoro.hokkaido.jp","biratori.hokkaido.jp","chippubetsu.hokkaido.jp","chitose.hokkaido.jp","date.hokkaido.jp","ebetsu.hokkaido.jp","embetsu.hokkaido.jp","eniwa.hokkaido.jp","erimo.hokkaido.jp","esan.hokkaido.jp","esashi.hokkaido.jp","fukagawa.hokkaido.jp","fukushima.hokkaido.jp","furano.hokkaido.jp","furubira.hokkaido.jp","haboro.hokkaido.jp","hakodate.hokkaido.jp","hamatonbetsu.hokkaido.jp","hidaka.hokkaido.jp","higashikagura.hokkaido.jp","higashikawa.hokkaido.jp","hiroo.hokkaido.jp","hokuryu.hokkaido.jp","hokuto.hokkaido.jp","honbetsu.hokkaido.jp","horokanai.hokkaido.jp","horonobe.hokkaido.jp","ikeda.hokkaido.jp","imakane.hokkaido.jp","ishikari.hokkaido.jp","iwamizawa.hokkaido.jp","iwanai.hokkaido.jp","kamifurano.hokkaido.jp","kamikawa.hokkaido.jp","kamishihoro.hokkaido.jp","kamisunagawa.hokkaido.jp","kamoenai.hokkaido.jp","kayabe.hokkaido.jp","kembuchi.hokkaido.jp","kikonai.hokkaido.jp","kimobetsu.hokkaido.jp","kitahiroshima.hokkaido.jp","kitami.hokkaido.jp","kiyosato.hokkaido.jp","koshimizu.hokkaido.jp","kunneppu.hokkaido.jp","kuriyama.hokkaido.jp","kuromatsunai.hokkaido.jp","kushiro.hokkaido.jp","kutchan.hokkaido.jp","kyowa.hokkaido.jp","mashike.hokkaido.jp","matsumae.hokkaido.jp","mikasa.hokkaido.jp","minamifurano.hokkaido.jp","mombetsu.hokkaido.jp","moseushi.hokkaido.jp","mukawa.hokkaido.jp","muroran.hokkaido.jp","naie.hokkaido.jp","nakagawa.hokkaido.jp","nakasatsunai.hokkaido.jp","nakatombetsu.hokkaido.jp","nanae.hokkaido.jp","nanporo.hokkaido.jp","nayoro.hokkaido.jp","nemuro.hokkaido.jp","niikappu.hokkaido.jp","niki.hokkaido.jp","nishiokoppe.hokkaido.jp","noboribetsu.hokkaido.jp","numata.hokkaido.jp","obihiro.hokkaido.jp","obira.hokkaido.jp","oketo.hokkaido.jp","okoppe.hokkaido.jp","otaru.hokkaido.jp","otobe.hokkaido.jp","otofuke.hokkaido.jp","otoineppu.hokkaido.jp","oumu.hokkaido.jp","ozora.hokkaido.jp","pippu.hokkaido.jp","rankoshi.hokkaido.jp","rebun.hokkaido.jp","rikubetsu.hokkaido.jp","rishiri.hokkaido.jp","rishirifuji.hokkaido.jp","saroma.hokkaido.jp","sarufutsu.hokkaido.jp","shakotan.hokkaido.jp","shari.hokkaido.jp","shibecha.hokkaido.jp","shibetsu.hokkaido.jp","shikabe.hokkaido.jp","shikaoi.hokkaido.jp","shimamaki.hokkaido.jp","shimizu.hokkaido.jp","shimokawa.hokkaido.jp","shinshinotsu.hokkaido.jp","shintoku.hokkaido.jp","shiranuka.hokkaido.jp","shiraoi.hokkaido.jp","shiriuchi.hokkaido.jp","sobetsu.hokkaido.jp","sunagawa.hokkaido.jp","taiki.hokkaido.jp","takasu.hokkaido.jp","takikawa.hokkaido.jp","takinoue.hokkaido.jp","teshikaga.hokkaido.jp","tobetsu.hokkaido.jp","tohma.hokkaido.jp","tomakomai.hokkaido.jp","tomari.hokkaido.jp","toya.hokkaido.jp","toyako.hokkaido.jp","toyotomi.hokkaido.jp","toyoura.hokkaido.jp","tsubetsu.hokkaido.jp","tsukigata.hokkaido.jp","urakawa.hokkaido.jp","urausu.hokkaido.jp","uryu.hokkaido.jp","utashinai.hokkaido.jp","wakkanai.hokkaido.jp","wassamu.hokkaido.jp","yakumo.hokkaido.jp","yoichi.hokkaido.jp","aioi.hyogo.jp","akashi.hyogo.jp","ako.hyogo.jp","amagasaki.hyogo.jp","aogaki.hyogo.jp","asago.hyogo.jp","ashiya.hyogo.jp","awaji.hyogo.jp","fukusaki.hyogo.jp","goshiki.hyogo.jp","harima.hyogo.jp","himeji.hyogo.jp","ichikawa.hyogo.jp","inagawa.hyogo.jp","itami.hyogo.jp","kakogawa.hyogo.jp","kamigori.hyogo.jp","kamikawa.hyogo.jp","kasai.hyogo.jp","kasuga.hyogo.jp","kawanishi.hyogo.jp","miki.hyogo.jp","minamiawaji.hyogo.jp","nishinomiya.hyogo.jp","nishiwaki.hyogo.jp","ono.hyogo.jp","sanda.hyogo.jp","sannan.hyogo.jp","sasayama.hyogo.jp","sayo.hyogo.jp","shingu.hyogo.jp","shinonsen.hyogo.jp","shiso.hyogo.jp","sumoto.hyogo.jp","taishi.hyogo.jp","taka.hyogo.jp","takarazuka.hyogo.jp","takasago.hyogo.jp","takino.hyogo.jp","tamba.hyogo.jp","tatsuno.hyogo.jp","toyooka.hyogo.jp","yabu.hyogo.jp","yashiro.hyogo.jp","yoka.hyogo.jp","yokawa.hyogo.jp","ami.ibaraki.jp","asahi.ibaraki.jp","bando.ibaraki.jp","chikusei.ibaraki.jp","daigo.ibaraki.jp","fujishiro.ibaraki.jp","hitachi.ibaraki.jp","hitachinaka.ibaraki.jp","hitachiomiya.ibaraki.jp","hitachiota.ibaraki.jp","ibaraki.ibaraki.jp","ina.ibaraki.jp","inashiki.ibaraki.jp","itako.ibaraki.jp","iwama.ibaraki.jp","joso.ibaraki.jp","kamisu.ibaraki.jp","kasama.ibaraki.jp","kashima.ibaraki.jp","kasumigaura.ibaraki.jp","koga.ibaraki.jp","miho.ibaraki.jp","mito.ibaraki.jp","moriya.ibaraki.jp","naka.ibaraki.jp","namegata.ibaraki.jp","oarai.ibaraki.jp","ogawa.ibaraki.jp","omitama.ibaraki.jp","ryugasaki.ibaraki.jp","sakai.ibaraki.jp","sakuragawa.ibaraki.jp","shimodate.ibaraki.jp","shimotsuma.ibaraki.jp","shirosato.ibaraki.jp","sowa.ibaraki.jp","suifu.ibaraki.jp","takahagi.ibaraki.jp","tamatsukuri.ibaraki.jp","tokai.ibaraki.jp","tomobe.ibaraki.jp","tone.ibaraki.jp","toride.ibaraki.jp","tsuchiura.ibaraki.jp","tsukuba.ibaraki.jp","uchihara.ibaraki.jp","ushiku.ibaraki.jp","yachiyo.ibaraki.jp","yamagata.ibaraki.jp","yawara.ibaraki.jp","yuki.ibaraki.jp","anamizu.ishikawa.jp","hakui.ishikawa.jp","hakusan.ishikawa.jp","kaga.ishikawa.jp","kahoku.ishikawa.jp","kanazawa.ishikawa.jp","kawakita.ishikawa.jp","komatsu.ishikawa.jp","nakanoto.ishikawa.jp","nanao.ishikawa.jp","nomi.ishikawa.jp","nonoichi.ishikawa.jp","noto.ishikawa.jp","shika.ishikawa.jp","suzu.ishikawa.jp","tsubata.ishikawa.jp","tsurugi.ishikawa.jp","uchinada.ishikawa.jp","wajima.ishikawa.jp","fudai.iwate.jp","fujisawa.iwate.jp","hanamaki.iwate.jp","hiraizumi.iwate.jp","hirono.iwate.jp","ichinohe.iwate.jp","ichinoseki.iwate.jp","iwaizumi.iwate.jp","iwate.iwate.jp","joboji.iwate.jp","kamaishi.iwate.jp","kanegasaki.iwate.jp","karumai.iwate.jp","kawai.iwate.jp","kitakami.iwate.jp","kuji.iwate.jp","kunohe.iwate.jp","kuzumaki.iwate.jp","miyako.iwate.jp","mizusawa.iwate.jp","morioka.iwate.jp","ninohe.iwate.jp","noda.iwate.jp","ofunato.iwate.jp","oshu.iwate.jp","otsuchi.iwate.jp","rikuzentakata.iwate.jp","shiwa.iwate.jp","shizukuishi.iwate.jp","sumita.iwate.jp","tanohata.iwate.jp","tono.iwate.jp","yahaba.iwate.jp","yamada.iwate.jp","ayagawa.kagawa.jp","higashikagawa.kagawa.jp","kanonji.kagawa.jp","kotohira.kagawa.jp","manno.kagawa.jp","marugame.kagawa.jp","mitoyo.kagawa.jp","naoshima.kagawa.jp","sanuki.kagawa.jp","tadotsu.kagawa.jp","takamatsu.kagawa.jp","tonosho.kagawa.jp","uchinomi.kagawa.jp","utazu.kagawa.jp","zentsuji.kagawa.jp","akune.kagoshima.jp","amami.kagoshima.jp","hioki.kagoshima.jp","isa.kagoshima.jp","isen.kagoshima.jp","izumi.kagoshima.jp","kagoshima.kagoshima.jp","kanoya.kagoshima.jp","kawanabe.kagoshima.jp","kinko.kagoshima.jp","kouyama.kagoshima.jp","makurazaki.kagoshima.jp","matsumoto.kagoshima.jp","minamitane.kagoshima.jp","nakatane.kagoshima.jp","nishinoomote.kagoshima.jp","satsumasendai.kagoshima.jp","soo.kagoshima.jp","tarumizu.kagoshima.jp","yusui.kagoshima.jp","aikawa.kanagawa.jp","atsugi.kanagawa.jp","ayase.kanagawa.jp","chigasaki.kanagawa.jp","ebina.kanagawa.jp","fujisawa.kanagawa.jp","hadano.kanagawa.jp","hakone.kanagawa.jp","hiratsuka.kanagawa.jp","isehara.kanagawa.jp","kaisei.kanagawa.jp","kamakura.kanagawa.jp","kiyokawa.kanagawa.jp","matsuda.kanagawa.jp","minamiashigara.kanagawa.jp","miura.kanagawa.jp","nakai.kanagawa.jp","ninomiya.kanagawa.jp","odawara.kanagawa.jp","oi.kanagawa.jp","oiso.kanagawa.jp","sagamihara.kanagawa.jp","samukawa.kanagawa.jp","tsukui.kanagawa.jp","yamakita.kanagawa.jp","yamato.kanagawa.jp","yokosuka.kanagawa.jp","yugawara.kanagawa.jp","zama.kanagawa.jp","zushi.kanagawa.jp","aki.kochi.jp","geisei.kochi.jp","hidaka.kochi.jp","higashitsuno.kochi.jp","ino.kochi.jp","kagami.kochi.jp","kami.kochi.jp","kitagawa.kochi.jp","kochi.kochi.jp","mihara.kochi.jp","motoyama.kochi.jp","muroto.kochi.jp","nahari.kochi.jp","nakamura.kochi.jp","nankoku.kochi.jp","nishitosa.kochi.jp","niyodogawa.kochi.jp","ochi.kochi.jp","okawa.kochi.jp","otoyo.kochi.jp","otsuki.kochi.jp","sakawa.kochi.jp","sukumo.kochi.jp","susaki.kochi.jp","tosa.kochi.jp","tosashimizu.kochi.jp","toyo.kochi.jp","tsuno.kochi.jp","umaji.kochi.jp","yasuda.kochi.jp","yusuhara.kochi.jp","amakusa.kumamoto.jp","arao.kumamoto.jp","aso.kumamoto.jp","choyo.kumamoto.jp","gyokuto.kumamoto.jp","kamiamakusa.kumamoto.jp","kikuchi.kumamoto.jp","kumamoto.kumamoto.jp","mashiki.kumamoto.jp","mifune.kumamoto.jp","minamata.kumamoto.jp","minamioguni.kumamoto.jp","nagasu.kumamoto.jp","nishihara.kumamoto.jp","oguni.kumamoto.jp","ozu.kumamoto.jp","sumoto.kumamoto.jp","takamori.kumamoto.jp","uki.kumamoto.jp","uto.kumamoto.jp","yamaga.kumamoto.jp","yamato.kumamoto.jp","yatsushiro.kumamoto.jp","ayabe.kyoto.jp","fukuchiyama.kyoto.jp","higashiyama.kyoto.jp","ide.kyoto.jp","ine.kyoto.jp","joyo.kyoto.jp","kameoka.kyoto.jp","kamo.kyoto.jp","kita.kyoto.jp","kizu.kyoto.jp","kumiyama.kyoto.jp","kyotamba.kyoto.jp","kyotanabe.kyoto.jp","kyotango.kyoto.jp","maizuru.kyoto.jp","minami.kyoto.jp","minamiyamashiro.kyoto.jp","miyazu.kyoto.jp","muko.kyoto.jp","nagaokakyo.kyoto.jp","nakagyo.kyoto.jp","nantan.kyoto.jp","oyamazaki.kyoto.jp","sakyo.kyoto.jp","seika.kyoto.jp","tanabe.kyoto.jp","uji.kyoto.jp","ujitawara.kyoto.jp","wazuka.kyoto.jp","yamashina.kyoto.jp","yawata.kyoto.jp","asahi.mie.jp","inabe.mie.jp","ise.mie.jp","kameyama.mie.jp","kawagoe.mie.jp","kiho.mie.jp","kisosaki.mie.jp","kiwa.mie.jp","komono.mie.jp","kumano.mie.jp","kuwana.mie.jp","matsusaka.mie.jp","meiwa.mie.jp","mihama.mie.jp","minamiise.mie.jp","misugi.mie.jp","miyama.mie.jp","nabari.mie.jp","shima.mie.jp","suzuka.mie.jp","tado.mie.jp","taiki.mie.jp","taki.mie.jp","tamaki.mie.jp","toba.mie.jp","tsu.mie.jp","udono.mie.jp","ureshino.mie.jp","watarai.mie.jp","yokkaichi.mie.jp","furukawa.miyagi.jp","higashimatsushima.miyagi.jp","ishinomaki.miyagi.jp","iwanuma.miyagi.jp","kakuda.miyagi.jp","kami.miyagi.jp","kawasaki.miyagi.jp","marumori.miyagi.jp","matsushima.miyagi.jp","minamisanriku.miyagi.jp","misato.miyagi.jp","murata.miyagi.jp","natori.miyagi.jp","ogawara.miyagi.jp","ohira.miyagi.jp","onagawa.miyagi.jp","osaki.miyagi.jp","rifu.miyagi.jp","semine.miyagi.jp","shibata.miyagi.jp","shichikashuku.miyagi.jp","shikama.miyagi.jp","shiogama.miyagi.jp","shiroishi.miyagi.jp","tagajo.miyagi.jp","taiwa.miyagi.jp","tome.miyagi.jp","tomiya.miyagi.jp","wakuya.miyagi.jp","watari.miyagi.jp","yamamoto.miyagi.jp","zao.miyagi.jp","aya.miyazaki.jp","ebino.miyazaki.jp","gokase.miyazaki.jp","hyuga.miyazaki.jp","kadogawa.miyazaki.jp","kawaminami.miyazaki.jp","kijo.miyazaki.jp","kitagawa.miyazaki.jp","kitakata.miyazaki.jp","kitaura.miyazaki.jp","kobayashi.miyazaki.jp","kunitomi.miyazaki.jp","kushima.miyazaki.jp","mimata.miyazaki.jp","miyakonojo.miyazaki.jp","miyazaki.miyazaki.jp","morotsuka.miyazaki.jp","nichinan.miyazaki.jp","nishimera.miyazaki.jp","nobeoka.miyazaki.jp","saito.miyazaki.jp","shiiba.miyazaki.jp","shintomi.miyazaki.jp","takaharu.miyazaki.jp","takanabe.miyazaki.jp","takazaki.miyazaki.jp","tsuno.miyazaki.jp","achi.nagano.jp","agematsu.nagano.jp","anan.nagano.jp","aoki.nagano.jp","asahi.nagano.jp","azumino.nagano.jp","chikuhoku.nagano.jp","chikuma.nagano.jp","chino.nagano.jp","fujimi.nagano.jp","hakuba.nagano.jp","hara.nagano.jp","hiraya.nagano.jp","iida.nagano.jp","iijima.nagano.jp","iiyama.nagano.jp","iizuna.nagano.jp","ikeda.nagano.jp","ikusaka.nagano.jp","ina.nagano.jp","karuizawa.nagano.jp","kawakami.nagano.jp","kiso.nagano.jp","kisofukushima.nagano.jp","kitaaiki.nagano.jp","komagane.nagano.jp","komoro.nagano.jp","matsukawa.nagano.jp","matsumoto.nagano.jp","miasa.nagano.jp","minamiaiki.nagano.jp","minamimaki.nagano.jp","minamiminowa.nagano.jp","minowa.nagano.jp","miyada.nagano.jp","miyota.nagano.jp","mochizuki.nagano.jp","nagano.nagano.jp","nagawa.nagano.jp","nagiso.nagano.jp","nakagawa.nagano.jp","nakano.nagano.jp","nozawaonsen.nagano.jp","obuse.nagano.jp","ogawa.nagano.jp","okaya.nagano.jp","omachi.nagano.jp","omi.nagano.jp","ookuwa.nagano.jp","ooshika.nagano.jp","otaki.nagano.jp","otari.nagano.jp","sakae.nagano.jp","sakaki.nagano.jp","saku.nagano.jp","sakuho.nagano.jp","shimosuwa.nagano.jp","shinanomachi.nagano.jp","shiojiri.nagano.jp","suwa.nagano.jp","suzaka.nagano.jp","takagi.nagano.jp","takamori.nagano.jp","takayama.nagano.jp","tateshina.nagano.jp","tatsuno.nagano.jp","togakushi.nagano.jp","togura.nagano.jp","tomi.nagano.jp","ueda.nagano.jp","wada.nagano.jp","yamagata.nagano.jp","yamanouchi.nagano.jp","yasaka.nagano.jp","yasuoka.nagano.jp","chijiwa.nagasaki.jp","futsu.nagasaki.jp","goto.nagasaki.jp","hasami.nagasaki.jp","hirado.nagasaki.jp","iki.nagasaki.jp","isahaya.nagasaki.jp","kawatana.nagasaki.jp","kuchinotsu.nagasaki.jp","matsuura.nagasaki.jp","nagasaki.nagasaki.jp","obama.nagasaki.jp","omura.nagasaki.jp","oseto.nagasaki.jp","saikai.nagasaki.jp","sasebo.nagasaki.jp","seihi.nagasaki.jp","shimabara.nagasaki.jp","shinkamigoto.nagasaki.jp","togitsu.nagasaki.jp","tsushima.nagasaki.jp","unzen.nagasaki.jp","ando.nara.jp","gose.nara.jp","heguri.nara.jp","higashiyoshino.nara.jp","ikaruga.nara.jp","ikoma.nara.jp","kamikitayama.nara.jp","kanmaki.nara.jp","kashiba.nara.jp","kashihara.nara.jp","katsuragi.nara.jp","kawai.nara.jp","kawakami.nara.jp","kawanishi.nara.jp","koryo.nara.jp","kurotaki.nara.jp","mitsue.nara.jp","miyake.nara.jp","nara.nara.jp","nosegawa.nara.jp","oji.nara.jp","ouda.nara.jp","oyodo.nara.jp","sakurai.nara.jp","sango.nara.jp","shimoichi.nara.jp","shimokitayama.nara.jp","shinjo.nara.jp","soni.nara.jp","takatori.nara.jp","tawaramoto.nara.jp","tenkawa.nara.jp","tenri.nara.jp","uda.nara.jp","yamatokoriyama.nara.jp","yamatotakada.nara.jp","yamazoe.nara.jp","yoshino.nara.jp","aga.niigata.jp","agano.niigata.jp","gosen.niigata.jp","itoigawa.niigata.jp","izumozaki.niigata.jp","joetsu.niigata.jp","kamo.niigata.jp","kariwa.niigata.jp","kashiwazaki.niigata.jp","minamiuonuma.niigata.jp","mitsuke.niigata.jp","muika.niigata.jp","murakami.niigata.jp","myoko.niigata.jp","nagaoka.niigata.jp","niigata.niigata.jp","ojiya.niigata.jp","omi.niigata.jp","sado.niigata.jp","sanjo.niigata.jp","seiro.niigata.jp","seirou.niigata.jp","sekikawa.niigata.jp","shibata.niigata.jp","tagami.niigata.jp","tainai.niigata.jp","tochio.niigata.jp","tokamachi.niigata.jp","tsubame.niigata.jp","tsunan.niigata.jp","uonuma.niigata.jp","yahiko.niigata.jp","yoita.niigata.jp","yuzawa.niigata.jp","beppu.oita.jp","bungoono.oita.jp","bungotakada.oita.jp","hasama.oita.jp","hiji.oita.jp","himeshima.oita.jp","hita.oita.jp","kamitsue.oita.jp","kokonoe.oita.jp","kuju.oita.jp","kunisaki.oita.jp","kusu.oita.jp","oita.oita.jp","saiki.oita.jp","taketa.oita.jp","tsukumi.oita.jp","usa.oita.jp","usuki.oita.jp","yufu.oita.jp","akaiwa.okayama.jp","asakuchi.okayama.jp","bizen.okayama.jp","hayashima.okayama.jp","ibara.okayama.jp","kagamino.okayama.jp","kasaoka.okayama.jp","kibichuo.okayama.jp","kumenan.okayama.jp","kurashiki.okayama.jp","maniwa.okayama.jp","misaki.okayama.jp","nagi.okayama.jp","niimi.okayama.jp","nishiawakura.okayama.jp","okayama.okayama.jp","satosho.okayama.jp","setouchi.okayama.jp","shinjo.okayama.jp","shoo.okayama.jp","soja.okayama.jp","takahashi.okayama.jp","tamano.okayama.jp","tsuyama.okayama.jp","wake.okayama.jp","yakage.okayama.jp","aguni.okinawa.jp","ginowan.okinawa.jp","ginoza.okinawa.jp","gushikami.okinawa.jp","haebaru.okinawa.jp","higashi.okinawa.jp","hirara.okinawa.jp","iheya.okinawa.jp","ishigaki.okinawa.jp","ishikawa.okinawa.jp","itoman.okinawa.jp","izena.okinawa.jp","kadena.okinawa.jp","kin.okinawa.jp","kitadaito.okinawa.jp","kitanakagusuku.okinawa.jp","kumejima.okinawa.jp","kunigami.okinawa.jp","minamidaito.okinawa.jp","motobu.okinawa.jp","nago.okinawa.jp","naha.okinawa.jp","nakagusuku.okinawa.jp","nakijin.okinawa.jp","nanjo.okinawa.jp","nishihara.okinawa.jp","ogimi.okinawa.jp","okinawa.okinawa.jp","onna.okinawa.jp","shimoji.okinawa.jp","taketomi.okinawa.jp","tarama.okinawa.jp","tokashiki.okinawa.jp","tomigusuku.okinawa.jp","tonaki.okinawa.jp","urasoe.okinawa.jp","uruma.okinawa.jp","yaese.okinawa.jp","yomitan.okinawa.jp","yonabaru.okinawa.jp","yonaguni.okinawa.jp","zamami.okinawa.jp","abeno.osaka.jp","chihayaakasaka.osaka.jp","chuo.osaka.jp","daito.osaka.jp","fujiidera.osaka.jp","habikino.osaka.jp","hannan.osaka.jp","higashiosaka.osaka.jp","higashisumiyoshi.osaka.jp","higashiyodogawa.osaka.jp","hirakata.osaka.jp","ibaraki.osaka.jp","ikeda.osaka.jp","izumi.osaka.jp","izumiotsu.osaka.jp","izumisano.osaka.jp","kadoma.osaka.jp","kaizuka.osaka.jp","kanan.osaka.jp","kashiwara.osaka.jp","katano.osaka.jp","kawachinagano.osaka.jp","kishiwada.osaka.jp","kita.osaka.jp","kumatori.osaka.jp","matsubara.osaka.jp","minato.osaka.jp","minoh.osaka.jp","misaki.osaka.jp","moriguchi.osaka.jp","neyagawa.osaka.jp","nishi.osaka.jp","nose.osaka.jp","osakasayama.osaka.jp","sakai.osaka.jp","sayama.osaka.jp","sennan.osaka.jp","settsu.osaka.jp","shijonawate.osaka.jp","shimamoto.osaka.jp","suita.osaka.jp","tadaoka.osaka.jp","taishi.osaka.jp","tajiri.osaka.jp","takaishi.osaka.jp","takatsuki.osaka.jp","tondabayashi.osaka.jp","toyonaka.osaka.jp","toyono.osaka.jp","yao.osaka.jp","ariake.saga.jp","arita.saga.jp","fukudomi.saga.jp","genkai.saga.jp","hamatama.saga.jp","hizen.saga.jp","imari.saga.jp","kamimine.saga.jp","kanzaki.saga.jp","karatsu.saga.jp","kashima.saga.jp","kitagata.saga.jp","kitahata.saga.jp","kiyama.saga.jp","kouhoku.saga.jp","kyuragi.saga.jp","nishiarita.saga.jp","ogi.saga.jp","omachi.saga.jp","ouchi.saga.jp","saga.saga.jp","shiroishi.saga.jp","taku.saga.jp","tara.saga.jp","tosu.saga.jp","yoshinogari.saga.jp","arakawa.saitama.jp","asaka.saitama.jp","chichibu.saitama.jp","fujimi.saitama.jp","fujimino.saitama.jp","fukaya.saitama.jp","hanno.saitama.jp","hanyu.saitama.jp","hasuda.saitama.jp","hatogaya.saitama.jp","hatoyama.saitama.jp","hidaka.saitama.jp","higashichichibu.saitama.jp","higashimatsuyama.saitama.jp","honjo.saitama.jp","ina.saitama.jp","iruma.saitama.jp","iwatsuki.saitama.jp","kamiizumi.saitama.jp","kamikawa.saitama.jp","kamisato.saitama.jp","kasukabe.saitama.jp","kawagoe.saitama.jp","kawaguchi.saitama.jp","kawajima.saitama.jp","kazo.saitama.jp","kitamoto.saitama.jp","koshigaya.saitama.jp","kounosu.saitama.jp","kuki.saitama.jp","kumagaya.saitama.jp","matsubushi.saitama.jp","minano.saitama.jp","misato.saitama.jp","miyashiro.saitama.jp","miyoshi.saitama.jp","moroyama.saitama.jp","nagatoro.saitama.jp","namegawa.saitama.jp","niiza.saitama.jp","ogano.saitama.jp","ogawa.saitama.jp","ogose.saitama.jp","okegawa.saitama.jp","omiya.saitama.jp","otaki.saitama.jp","ranzan.saitama.jp","ryokami.saitama.jp","saitama.saitama.jp","sakado.saitama.jp","satte.saitama.jp","sayama.saitama.jp","shiki.saitama.jp","shiraoka.saitama.jp","soka.saitama.jp","sugito.saitama.jp","toda.saitama.jp","tokigawa.saitama.jp","tokorozawa.saitama.jp","tsurugashima.saitama.jp","urawa.saitama.jp","warabi.saitama.jp","yashio.saitama.jp","yokoze.saitama.jp","yono.saitama.jp","yorii.saitama.jp","yoshida.saitama.jp","yoshikawa.saitama.jp","yoshimi.saitama.jp","aisho.shiga.jp","gamo.shiga.jp","higashiomi.shiga.jp","hikone.shiga.jp","koka.shiga.jp","konan.shiga.jp","kosei.shiga.jp","koto.shiga.jp","kusatsu.shiga.jp","maibara.shiga.jp","moriyama.shiga.jp","nagahama.shiga.jp","nishiazai.shiga.jp","notogawa.shiga.jp","omihachiman.shiga.jp","otsu.shiga.jp","ritto.shiga.jp","ryuoh.shiga.jp","takashima.shiga.jp","takatsuki.shiga.jp","torahime.shiga.jp","toyosato.shiga.jp","yasu.shiga.jp","akagi.shimane.jp","ama.shimane.jp","gotsu.shimane.jp","hamada.shimane.jp","higashiizumo.shimane.jp","hikawa.shimane.jp","hikimi.shimane.jp","izumo.shimane.jp","kakinoki.shimane.jp","masuda.shimane.jp","matsue.shimane.jp","misato.shimane.jp","nishinoshima.shimane.jp","ohda.shimane.jp","okinoshima.shimane.jp","okuizumo.shimane.jp","shimane.shimane.jp","tamayu.shimane.jp","tsuwano.shimane.jp","unnan.shimane.jp","yakumo.shimane.jp","yasugi.shimane.jp","yatsuka.shimane.jp","arai.shizuoka.jp","atami.shizuoka.jp","fuji.shizuoka.jp","fujieda.shizuoka.jp","fujikawa.shizuoka.jp","fujinomiya.shizuoka.jp","fukuroi.shizuoka.jp","gotemba.shizuoka.jp","haibara.shizuoka.jp","hamamatsu.shizuoka.jp","higashiizu.shizuoka.jp","ito.shizuoka.jp","iwata.shizuoka.jp","izu.shizuoka.jp","izunokuni.shizuoka.jp","kakegawa.shizuoka.jp","kannami.shizuoka.jp","kawanehon.shizuoka.jp","kawazu.shizuoka.jp","kikugawa.shizuoka.jp","kosai.shizuoka.jp","makinohara.shizuoka.jp","matsuzaki.shizuoka.jp","minamiizu.shizuoka.jp","mishima.shizuoka.jp","morimachi.shizuoka.jp","nishiizu.shizuoka.jp","numazu.shizuoka.jp","omaezaki.shizuoka.jp","shimada.shizuoka.jp","shimizu.shizuoka.jp","shimoda.shizuoka.jp","shizuoka.shizuoka.jp","susono.shizuoka.jp","yaizu.shizuoka.jp","yoshida.shizuoka.jp","ashikaga.tochigi.jp","bato.tochigi.jp","haga.tochigi.jp","ichikai.tochigi.jp","iwafune.tochigi.jp","kaminokawa.tochigi.jp","kanuma.tochigi.jp","karasuyama.tochigi.jp","kuroiso.tochigi.jp","mashiko.tochigi.jp","mibu.tochigi.jp","moka.tochigi.jp","motegi.tochigi.jp","nasu.tochigi.jp","nasushiobara.tochigi.jp","nikko.tochigi.jp","nishikata.tochigi.jp","nogi.tochigi.jp","ohira.tochigi.jp","ohtawara.tochigi.jp","oyama.tochigi.jp","sakura.tochigi.jp","sano.tochigi.jp","shimotsuke.tochigi.jp","shioya.tochigi.jp","takanezawa.tochigi.jp","tochigi.tochigi.jp","tsuga.tochigi.jp","ujiie.tochigi.jp","utsunomiya.tochigi.jp","yaita.tochigi.jp","aizumi.tokushima.jp","anan.tokushima.jp","ichiba.tokushima.jp","itano.tokushima.jp","kainan.tokushima.jp","komatsushima.tokushima.jp","matsushige.tokushima.jp","mima.tokushima.jp","minami.tokushima.jp","miyoshi.tokushima.jp","mugi.tokushima.jp","nakagawa.tokushima.jp","naruto.tokushima.jp","sanagochi.tokushima.jp","shishikui.tokushima.jp","tokushima.tokushima.jp","wajiki.tokushima.jp","adachi.tokyo.jp","akiruno.tokyo.jp","akishima.tokyo.jp","aogashima.tokyo.jp","arakawa.tokyo.jp","bunkyo.tokyo.jp","chiyoda.tokyo.jp","chofu.tokyo.jp","chuo.tokyo.jp","edogawa.tokyo.jp","fuchu.tokyo.jp","fussa.tokyo.jp","hachijo.tokyo.jp","hachioji.tokyo.jp","hamura.tokyo.jp","higashikurume.tokyo.jp","higashimurayama.tokyo.jp","higashiyamato.tokyo.jp","hino.tokyo.jp","hinode.tokyo.jp","hinohara.tokyo.jp","inagi.tokyo.jp","itabashi.tokyo.jp","katsushika.tokyo.jp","kita.tokyo.jp","kiyose.tokyo.jp","kodaira.tokyo.jp","koganei.tokyo.jp","kokubunji.tokyo.jp","komae.tokyo.jp","koto.tokyo.jp","kouzushima.tokyo.jp","kunitachi.tokyo.jp","machida.tokyo.jp","meguro.tokyo.jp","minato.tokyo.jp","mitaka.tokyo.jp","mizuho.tokyo.jp","musashimurayama.tokyo.jp","musashino.tokyo.jp","nakano.tokyo.jp","nerima.tokyo.jp","ogasawara.tokyo.jp","okutama.tokyo.jp","ome.tokyo.jp","oshima.tokyo.jp","ota.tokyo.jp","setagaya.tokyo.jp","shibuya.tokyo.jp","shinagawa.tokyo.jp","shinjuku.tokyo.jp","suginami.tokyo.jp","sumida.tokyo.jp","tachikawa.tokyo.jp","taito.tokyo.jp","tama.tokyo.jp","toshima.tokyo.jp","chizu.tottori.jp","hino.tottori.jp","kawahara.tottori.jp","koge.tottori.jp","kotoura.tottori.jp","misasa.tottori.jp","nanbu.tottori.jp","nichinan.tottori.jp","sakaiminato.tottori.jp","tottori.tottori.jp","wakasa.tottori.jp","yazu.tottori.jp","yonago.tottori.jp","asahi.toyama.jp","fuchu.toyama.jp","fukumitsu.toyama.jp","funahashi.toyama.jp","himi.toyama.jp","imizu.toyama.jp","inami.toyama.jp","johana.toyama.jp","kamiichi.toyama.jp","kurobe.toyama.jp","nakaniikawa.toyama.jp","namerikawa.toyama.jp","nanto.toyama.jp","nyuzen.toyama.jp","oyabe.toyama.jp","taira.toyama.jp","takaoka.toyama.jp","tateyama.toyama.jp","toga.toyama.jp","tonami.toyama.jp","toyama.toyama.jp","unazuki.toyama.jp","uozu.toyama.jp","yamada.toyama.jp","arida.wakayama.jp","aridagawa.wakayama.jp","gobo.wakayama.jp","hashimoto.wakayama.jp","hidaka.wakayama.jp","hirogawa.wakayama.jp","inami.wakayama.jp","iwade.wakayama.jp","kainan.wakayama.jp","kamitonda.wakayama.jp","katsuragi.wakayama.jp","kimino.wakayama.jp","kinokawa.wakayama.jp","kitayama.wakayama.jp","koya.wakayama.jp","koza.wakayama.jp","kozagawa.wakayama.jp","kudoyama.wakayama.jp","kushimoto.wakayama.jp","mihama.wakayama.jp","misato.wakayama.jp","nachikatsuura.wakayama.jp","shingu.wakayama.jp","shirahama.wakayama.jp","taiji.wakayama.jp","tanabe.wakayama.jp","wakayama.wakayama.jp","yuasa.wakayama.jp","yura.wakayama.jp","asahi.yamagata.jp","funagata.yamagata.jp","higashine.yamagata.jp","iide.yamagata.jp","kahoku.yamagata.jp","kaminoyama.yamagata.jp","kaneyama.yamagata.jp","kawanishi.yamagata.jp","mamurogawa.yamagata.jp","mikawa.yamagata.jp","murayama.yamagata.jp","nagai.yamagata.jp","nakayama.yamagata.jp","nanyo.yamagata.jp","nishikawa.yamagata.jp","obanazawa.yamagata.jp","oe.yamagata.jp","oguni.yamagata.jp","ohkura.yamagata.jp","oishida.yamagata.jp","sagae.yamagata.jp","sakata.yamagata.jp","sakegawa.yamagata.jp","shinjo.yamagata.jp","shirataka.yamagata.jp","shonai.yamagata.jp","takahata.yamagata.jp","tendo.yamagata.jp","tozawa.yamagata.jp","tsuruoka.yamagata.jp","yamagata.yamagata.jp","yamanobe.yamagata.jp","yonezawa.yamagata.jp","yuza.yamagata.jp","abu.yamaguchi.jp","hagi.yamaguchi.jp","hikari.yamaguchi.jp","hofu.yamaguchi.jp","iwakuni.yamaguchi.jp","kudamatsu.yamaguchi.jp","mitou.yamaguchi.jp","nagato.yamaguchi.jp","oshima.yamaguchi.jp","shimonoseki.yamaguchi.jp","shunan.yamaguchi.jp","tabuse.yamaguchi.jp","tokuyama.yamaguchi.jp","toyota.yamaguchi.jp","ube.yamaguchi.jp","yuu.yamaguchi.jp","chuo.yamanashi.jp","doshi.yamanashi.jp","fuefuki.yamanashi.jp","fujikawa.yamanashi.jp","fujikawaguchiko.yamanashi.jp","fujiyoshida.yamanashi.jp","hayakawa.yamanashi.jp","hokuto.yamanashi.jp","ichikawamisato.yamanashi.jp","kai.yamanashi.jp","kofu.yamanashi.jp","koshu.yamanashi.jp","kosuge.yamanashi.jp","minami-alps.yamanashi.jp","minobu.yamanashi.jp","nakamichi.yamanashi.jp","nanbu.yamanashi.jp","narusawa.yamanashi.jp","nirasaki.yamanashi.jp","nishikatsura.yamanashi.jp","oshino.yamanashi.jp","otsuki.yamanashi.jp","showa.yamanashi.jp","tabayama.yamanashi.jp","tsuru.yamanashi.jp","uenohara.yamanashi.jp","yamanakako.yamanashi.jp","yamanashi.yamanashi.jp","ke","ac.ke","co.ke","go.ke","info.ke","me.ke","mobi.ke","ne.ke","or.ke","sc.ke","kg","org.kg","net.kg","com.kg","edu.kg","gov.kg","mil.kg","*.kh","ki","edu.ki","biz.ki","net.ki","org.ki","gov.ki","info.ki","com.ki","km","org.km","nom.km","gov.km","prd.km","tm.km","edu.km","mil.km","ass.km","com.km","coop.km","asso.km","presse.km","medecin.km","notaires.km","pharmaciens.km","veterinaire.km","gouv.km","kn","net.kn","org.kn","edu.kn","gov.kn","kp","com.kp","edu.kp","gov.kp","org.kp","rep.kp","tra.kp","kr","ac.kr","co.kr","es.kr","go.kr","hs.kr","kg.kr","mil.kr","ms.kr","ne.kr","or.kr","pe.kr","re.kr","sc.kr","busan.kr","chungbuk.kr","chungnam.kr","daegu.kr","daejeon.kr","gangwon.kr","gwangju.kr","gyeongbuk.kr","gyeonggi.kr","gyeongnam.kr","incheon.kr","jeju.kr","jeonbuk.kr","jeonnam.kr","seoul.kr","ulsan.kr","kw","com.kw","edu.kw","emb.kw","gov.kw","ind.kw","net.kw","org.kw","ky","edu.ky","gov.ky","com.ky","org.ky","net.ky","kz","org.kz","edu.kz","net.kz","gov.kz","mil.kz","com.kz","la","int.la","net.la","info.la","edu.la","gov.la","per.la","com.la","org.la","lb","com.lb","edu.lb","gov.lb","net.lb","org.lb","lc","com.lc","net.lc","co.lc","org.lc","edu.lc","gov.lc","li","lk","gov.lk","sch.lk","net.lk","int.lk","com.lk","org.lk","edu.lk","ngo.lk","soc.lk","web.lk","ltd.lk","assn.lk","grp.lk","hotel.lk","ac.lk","lr","com.lr","edu.lr","gov.lr","org.lr","net.lr","ls","ac.ls","biz.ls","co.ls","edu.ls","gov.ls","info.ls","net.ls","org.ls","sc.ls","lt","gov.lt","lu","lv","com.lv","edu.lv","gov.lv","org.lv","mil.lv","id.lv","net.lv","asn.lv","conf.lv","ly","com.ly","net.ly","gov.ly","plc.ly","edu.ly","sch.ly","med.ly","org.ly","id.ly","ma","co.ma","net.ma","gov.ma","org.ma","ac.ma","press.ma","mc","tm.mc","asso.mc","md","me","co.me","net.me","org.me","edu.me","ac.me","gov.me","its.me","priv.me","mg","org.mg","nom.mg","gov.mg","prd.mg","tm.mg","edu.mg","mil.mg","com.mg","co.mg","mh","mil","mk","com.mk","org.mk","net.mk","edu.mk","gov.mk","inf.mk","name.mk","ml","com.ml","edu.ml","gouv.ml","gov.ml","net.ml","org.ml","presse.ml","*.mm","mn","gov.mn","edu.mn","org.mn","mo","com.mo","net.mo","org.mo","edu.mo","gov.mo","mobi","mp","mq","mr","gov.mr","ms","com.ms","edu.ms","gov.ms","net.ms","org.ms","mt","com.mt","edu.mt","net.mt","org.mt","mu","com.mu","net.mu","org.mu","gov.mu","ac.mu","co.mu","or.mu","museum","academy.museum","agriculture.museum","air.museum","airguard.museum","alabama.museum","alaska.museum","amber.museum","ambulance.museum","american.museum","americana.museum","americanantiques.museum","americanart.museum","amsterdam.museum","and.museum","annefrank.museum","anthro.museum","anthropology.museum","antiques.museum","aquarium.museum","arboretum.museum","archaeological.museum","archaeology.museum","architecture.museum","art.museum","artanddesign.museum","artcenter.museum","artdeco.museum","arteducation.museum","artgallery.museum","arts.museum","artsandcrafts.museum","asmatart.museum","assassination.museum","assisi.museum","association.museum","astronomy.museum","atlanta.museum","austin.museum","australia.museum","automotive.museum","aviation.museum","axis.museum","badajoz.museum","baghdad.museum","bahn.museum","bale.museum","baltimore.museum","barcelona.museum","baseball.museum","basel.museum","baths.museum","bauern.museum","beauxarts.museum","beeldengeluid.museum","bellevue.museum","bergbau.museum","berkeley.museum","berlin.museum","bern.museum","bible.museum","bilbao.museum","bill.museum","birdart.museum","birthplace.museum","bonn.museum","boston.museum","botanical.museum","botanicalgarden.museum","botanicgarden.museum","botany.museum","brandywinevalley.museum","brasil.museum","bristol.museum","british.museum","britishcolumbia.museum","broadcast.museum","brunel.museum","brussel.museum","brussels.museum","bruxelles.museum","building.museum","burghof.museum","bus.museum","bushey.museum","cadaques.museum","california.museum","cambridge.museum","can.museum","canada.museum","capebreton.museum","carrier.museum","cartoonart.museum","casadelamoneda.museum","castle.museum","castres.museum","celtic.museum","center.museum","chattanooga.museum","cheltenham.museum","chesapeakebay.museum","chicago.museum","children.museum","childrens.museum","childrensgarden.museum","chiropractic.museum","chocolate.museum","christiansburg.museum","cincinnati.museum","cinema.museum","circus.museum","civilisation.museum","civilization.museum","civilwar.museum","clinton.museum","clock.museum","coal.museum","coastaldefence.museum","cody.museum","coldwar.museum","collection.museum","colonialwilliamsburg.museum","coloradoplateau.museum","columbia.museum","columbus.museum","communication.museum","communications.museum","community.museum","computer.museum","computerhistory.museum","comunicações.museum","contemporary.museum","contemporaryart.museum","convent.museum","copenhagen.museum","corporation.museum","correios-e-telecomunicações.museum","corvette.museum","costume.museum","countryestate.museum","county.museum","crafts.museum","cranbrook.museum","creation.museum","cultural.museum","culturalcenter.museum","culture.museum","cyber.museum","cymru.museum","dali.museum","dallas.museum","database.museum","ddr.museum","decorativearts.museum","delaware.museum","delmenhorst.museum","denmark.museum","depot.museum","design.museum","detroit.museum","dinosaur.museum","discovery.museum","dolls.museum","donostia.museum","durham.museum","eastafrica.museum","eastcoast.museum","education.museum","educational.museum","egyptian.museum","eisenbahn.museum","elburg.museum","elvendrell.museum","embroidery.museum","encyclopedic.museum","england.museum","entomology.museum","environment.museum","environmentalconservation.museum","epilepsy.museum","essex.museum","estate.museum","ethnology.museum","exeter.museum","exhibition.museum","family.museum","farm.museum","farmequipment.museum","farmers.museum","farmstead.museum","field.museum","figueres.museum","filatelia.museum","film.museum","fineart.museum","finearts.museum","finland.museum","flanders.museum","florida.museum","force.museum","fortmissoula.museum","fortworth.museum","foundation.museum","francaise.museum","frankfurt.museum","franziskaner.museum","freemasonry.museum","freiburg.museum","fribourg.museum","frog.museum","fundacio.museum","furniture.museum","gallery.museum","garden.museum","gateway.museum","geelvinck.museum","gemological.museum","geology.museum","georgia.museum","giessen.museum","glas.museum","glass.museum","gorge.museum","grandrapids.museum","graz.museum","guernsey.museum","halloffame.museum","hamburg.museum","handson.museum","harvestcelebration.museum","hawaii.museum","health.museum","heimatunduhren.museum","hellas.museum","helsinki.museum","hembygdsforbund.museum","heritage.museum","histoire.museum","historical.museum","historicalsociety.museum","historichouses.museum","historisch.museum","historisches.museum","history.museum","historyofscience.museum","horology.museum","house.museum","humanities.museum","illustration.museum","imageandsound.museum","indian.museum","indiana.museum","indianapolis.museum","indianmarket.museum","intelligence.museum","interactive.museum","iraq.museum","iron.museum","isleofman.museum","jamison.museum","jefferson.museum","jerusalem.museum","jewelry.museum","jewish.museum","jewishart.museum","jfk.museum","journalism.museum","judaica.museum","judygarland.museum","juedisches.museum","juif.museum","karate.museum","karikatur.museum","kids.museum","koebenhavn.museum","koeln.museum","kunst.museum","kunstsammlung.museum","kunstunddesign.museum","labor.museum","labour.museum","lajolla.museum","lancashire.museum","landes.museum","lans.museum","läns.museum","larsson.museum","lewismiller.museum","lincoln.museum","linz.museum","living.museum","livinghistory.museum","localhistory.museum","london.museum","losangeles.museum","louvre.museum","loyalist.museum","lucerne.museum","luxembourg.museum","luzern.museum","mad.museum","madrid.museum","mallorca.museum","manchester.museum","mansion.museum","mansions.museum","manx.museum","marburg.museum","maritime.museum","maritimo.museum","maryland.museum","marylhurst.museum","media.museum","medical.museum","medizinhistorisches.museum","meeres.museum","memorial.museum","mesaverde.museum","michigan.museum","midatlantic.museum","military.museum","mill.museum","miners.museum","mining.museum","minnesota.museum","missile.museum","missoula.museum","modern.museum","moma.museum","money.museum","monmouth.museum","monticello.museum","montreal.museum","moscow.museum","motorcycle.museum","muenchen.museum","muenster.museum","mulhouse.museum","muncie.museum","museet.museum","museumcenter.museum","museumvereniging.museum","music.museum","national.museum","nationalfirearms.museum","nationalheritage.museum","nativeamerican.museum","naturalhistory.museum","naturalhistorymuseum.museum","naturalsciences.museum","nature.museum","naturhistorisches.museum","natuurwetenschappen.museum","naumburg.museum","naval.museum","nebraska.museum","neues.museum","newhampshire.museum","newjersey.museum","newmexico.museum","newport.museum","newspaper.museum","newyork.museum","niepce.museum","norfolk.museum","north.museum","nrw.museum","nuernberg.museum","nuremberg.museum","nyc.museum","nyny.museum","oceanographic.museum","oceanographique.museum","omaha.museum","online.museum","ontario.museum","openair.museum","oregon.museum","oregontrail.museum","otago.museum","oxford.museum","pacific.museum","paderborn.museum","palace.museum","paleo.museum","palmsprings.museum","panama.museum","paris.museum","pasadena.museum","pharmacy.museum","philadelphia.museum","philadelphiaarea.museum","philately.museum","phoenix.museum","photography.museum","pilots.museum","pittsburgh.museum","planetarium.museum","plantation.museum","plants.museum","plaza.museum","portal.museum","portland.museum","portlligat.museum","posts-and-telecommunications.museum","preservation.museum","presidio.museum","press.museum","project.museum","public.museum","pubol.museum","quebec.museum","railroad.museum","railway.museum","research.museum","resistance.museum","riodejaneiro.museum","rochester.museum","rockart.museum","roma.museum","russia.museum","saintlouis.museum","salem.museum","salvadordali.museum","salzburg.museum","sandiego.museum","sanfrancisco.museum","santabarbara.museum","santacruz.museum","santafe.museum","saskatchewan.museum","satx.museum","savannahga.museum","schlesisches.museum","schoenbrunn.museum","schokoladen.museum","school.museum","schweiz.museum","science.museum","scienceandhistory.museum","scienceandindustry.museum","sciencecenter.museum","sciencecenters.museum","science-fiction.museum","sciencehistory.museum","sciences.museum","sciencesnaturelles.museum","scotland.museum","seaport.museum","settlement.museum","settlers.museum","shell.museum","sherbrooke.museum","sibenik.museum","silk.museum","ski.museum","skole.museum","society.museum","sologne.museum","soundandvision.museum","southcarolina.museum","southwest.museum","space.museum","spy.museum","square.museum","stadt.museum","stalbans.museum","starnberg.museum","state.museum","stateofdelaware.museum","station.museum","steam.museum","steiermark.museum","stjohn.museum","stockholm.museum","stpetersburg.museum","stuttgart.museum","suisse.museum","surgeonshall.museum","surrey.museum","svizzera.museum","sweden.museum","sydney.museum","tank.museum","tcm.museum","technology.museum","telekommunikation.museum","television.museum","texas.museum","textile.museum","theater.museum","time.museum","timekeeping.museum","topology.museum","torino.museum","touch.museum","town.museum","transport.museum","tree.museum","trolley.museum","trust.museum","trustee.museum","uhren.museum","ulm.museum","undersea.museum","university.museum","usa.museum","usantiques.museum","usarts.museum","uscountryestate.museum","usculture.museum","usdecorativearts.museum","usgarden.museum","ushistory.museum","ushuaia.museum","uslivinghistory.museum","utah.museum","uvic.museum","valley.museum","vantaa.museum","versailles.museum","viking.museum","village.museum","virginia.museum","virtual.museum","virtuel.museum","vlaanderen.museum","volkenkunde.museum","wales.museum","wallonie.museum","war.museum","washingtondc.museum","watchandclock.museum","watch-and-clock.museum","western.museum","westfalen.museum","whaling.museum","wildlife.museum","williamsburg.museum","windmill.museum","workshop.museum","york.museum","yorkshire.museum","yosemite.museum","youth.museum","zoological.museum","zoology.museum","ירושלים.museum","иком.museum","mv","aero.mv","biz.mv","com.mv","coop.mv","edu.mv","gov.mv","info.mv","int.mv","mil.mv","museum.mv","name.mv","net.mv","org.mv","pro.mv","mw","ac.mw","biz.mw","co.mw","com.mw","coop.mw","edu.mw","gov.mw","int.mw","museum.mw","net.mw","org.mw","mx","com.mx","org.mx","gob.mx","edu.mx","net.mx","my","com.my","net.my","org.my","gov.my","edu.my","mil.my","name.my","mz","ac.mz","adv.mz","co.mz","edu.mz","gov.mz","mil.mz","net.mz","org.mz","na","info.na","pro.na","name.na","school.na","or.na","dr.na","us.na","mx.na","ca.na","in.na","cc.na","tv.na","ws.na","mobi.na","co.na","com.na","org.na","name","nc","asso.nc","nom.nc","ne","net","nf","com.nf","net.nf","per.nf","rec.nf","web.nf","arts.nf","firm.nf","info.nf","other.nf","store.nf","ng","com.ng","edu.ng","gov.ng","i.ng","mil.ng","mobi.ng","name.ng","net.ng","org.ng","sch.ng","ni","ac.ni","biz.ni","co.ni","com.ni","edu.ni","gob.ni","in.ni","info.ni","int.ni","mil.ni","net.ni","nom.ni","org.ni","web.ni","nl","no","fhs.no","vgs.no","fylkesbibl.no","folkebibl.no","museum.no","idrett.no","priv.no","mil.no","stat.no","dep.no","kommune.no","herad.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","gs.aa.no","gs.ah.no","gs.bu.no","gs.fm.no","gs.hl.no","gs.hm.no","gs.jan-mayen.no","gs.mr.no","gs.nl.no","gs.nt.no","gs.of.no","gs.ol.no","gs.oslo.no","gs.rl.no","gs.sf.no","gs.st.no","gs.svalbard.no","gs.tm.no","gs.tr.no","gs.va.no","gs.vf.no","akrehamn.no","åkrehamn.no","algard.no","ålgård.no","arna.no","brumunddal.no","bryne.no","bronnoysund.no","brønnøysund.no","drobak.no","drøbak.no","egersund.no","fetsund.no","floro.no","florø.no","fredrikstad.no","hokksund.no","honefoss.no","hønefoss.no","jessheim.no","jorpeland.no","jørpeland.no","kirkenes.no","kopervik.no","krokstadelva.no","langevag.no","langevåg.no","leirvik.no","mjondalen.no","mjøndalen.no","mo-i-rana.no","mosjoen.no","mosjøen.no","nesoddtangen.no","orkanger.no","osoyro.no","osøyro.no","raholt.no","råholt.no","sandnessjoen.no","sandnessjøen.no","skedsmokorset.no","slattum.no","spjelkavik.no","stathelle.no","stavern.no","stjordalshalsen.no","stjørdalshalsen.no","tananger.no","tranby.no","vossevangen.no","afjord.no","åfjord.no","agdenes.no","al.no","ål.no","alesund.no","ålesund.no","alstahaug.no","alta.no","áltá.no","alaheadju.no","álaheadju.no","alvdal.no","amli.no","åmli.no","amot.no","åmot.no","andebu.no","andoy.no","andøy.no","andasuolo.no","ardal.no","årdal.no","aremark.no","arendal.no","ås.no","aseral.no","åseral.no","asker.no","askim.no","askvoll.no","askoy.no","askøy.no","asnes.no","åsnes.no","audnedaln.no","aukra.no","aure.no","aurland.no","aurskog-holand.no","aurskog-høland.no","austevoll.no","austrheim.no","averoy.no","averøy.no","balestrand.no","ballangen.no","balat.no","bálát.no","balsfjord.no","bahccavuotna.no","báhccavuotna.no","bamble.no","bardu.no","beardu.no","beiarn.no","bajddar.no","bájddar.no","baidar.no","báidár.no","berg.no","bergen.no","berlevag.no","berlevåg.no","bearalvahki.no","bearalváhki.no","bindal.no","birkenes.no","bjarkoy.no","bjarkøy.no","bjerkreim.no","bjugn.no","bodo.no","bodø.no","badaddja.no","bådåddjå.no","budejju.no","bokn.no","bremanger.no","bronnoy.no","brønnøy.no","bygland.no","bykle.no","barum.no","bærum.no","bo.telemark.no","bø.telemark.no","bo.nordland.no","bø.nordland.no","bievat.no","bievát.no","bomlo.no","bømlo.no","batsfjord.no","båtsfjord.no","bahcavuotna.no","báhcavuotna.no","dovre.no","drammen.no","drangedal.no","dyroy.no","dyrøy.no","donna.no","dønna.no","eid.no","eidfjord.no","eidsberg.no","eidskog.no","eidsvoll.no","eigersund.no","elverum.no","enebakk.no","engerdal.no","etne.no","etnedal.no","evenes.no","evenassi.no","evenášši.no","evje-og-hornnes.no","farsund.no","fauske.no","fuossko.no","fuoisku.no","fedje.no","fet.no","finnoy.no","finnøy.no","fitjar.no","fjaler.no","fjell.no","flakstad.no","flatanger.no","flekkefjord.no","flesberg.no","flora.no","fla.no","flå.no","folldal.no","forsand.no","fosnes.no","frei.no","frogn.no","froland.no","frosta.no","frana.no","fræna.no","froya.no","frøya.no","fusa.no","fyresdal.no","forde.no","førde.no","gamvik.no","gangaviika.no","gáŋgaviika.no","gaular.no","gausdal.no","gildeskal.no","gildeskål.no","giske.no","gjemnes.no","gjerdrum.no","gjerstad.no","gjesdal.no","gjovik.no","gjøvik.no","gloppen.no","gol.no","gran.no","grane.no","granvin.no","gratangen.no","grimstad.no","grong.no","kraanghke.no","kråanghke.no","grue.no","gulen.no","hadsel.no","halden.no","halsa.no","hamar.no","hamaroy.no","habmer.no","hábmer.no","hapmir.no","hápmir.no","hammerfest.no","hammarfeasta.no","hámmárfeasta.no","haram.no","hareid.no","harstad.no","hasvik.no","aknoluokta.no","ákŋoluokta.no","hattfjelldal.no","aarborte.no","haugesund.no","hemne.no","hemnes.no","hemsedal.no","heroy.more-og-romsdal.no","herøy.møre-og-romsdal.no","heroy.nordland.no","herøy.nordland.no","hitra.no","hjartdal.no","hjelmeland.no","hobol.no","hobøl.no","hof.no","hol.no","hole.no","holmestrand.no","holtalen.no","holtålen.no","hornindal.no","horten.no","hurdal.no","hurum.no","hvaler.no","hyllestad.no","hagebostad.no","hægebostad.no","hoyanger.no","høyanger.no","hoylandet.no","høylandet.no","ha.no","hå.no","ibestad.no","inderoy.no","inderøy.no","iveland.no","jevnaker.no","jondal.no","jolster.no","jølster.no","karasjok.no","karasjohka.no","kárášjohka.no","karlsoy.no","galsa.no","gálsá.no","karmoy.no","karmøy.no","kautokeino.no","guovdageaidnu.no","klepp.no","klabu.no","klæbu.no","kongsberg.no","kongsvinger.no","kragero.no","kragerø.no","kristiansand.no","kristiansund.no","krodsherad.no","krødsherad.no","kvalsund.no","rahkkeravju.no","ráhkkerávju.no","kvam.no","kvinesdal.no","kvinnherad.no","kviteseid.no","kvitsoy.no","kvitsøy.no","kvafjord.no","kvæfjord.no","giehtavuoatna.no","kvanangen.no","kvænangen.no","navuotna.no","návuotna.no","kafjord.no","kåfjord.no","gaivuotna.no","gáivuotna.no","larvik.no","lavangen.no","lavagis.no","loabat.no","loabát.no","lebesby.no","davvesiida.no","leikanger.no","leirfjord.no","leka.no","leksvik.no","lenvik.no","leangaviika.no","leaŋgaviika.no","lesja.no","levanger.no","lier.no","lierne.no","lillehammer.no","lillesand.no","lindesnes.no","lindas.no","lindås.no","lom.no","loppa.no","lahppi.no","láhppi.no","lund.no","lunner.no","luroy.no","lurøy.no","luster.no","lyngdal.no","lyngen.no","ivgu.no","lardal.no","lerdal.no","lærdal.no","lodingen.no","lødingen.no","lorenskog.no","lørenskog.no","loten.no","løten.no","malvik.no","masoy.no","måsøy.no","muosat.no","muosát.no","mandal.no","marker.no","marnardal.no","masfjorden.no","meland.no","meldal.no","melhus.no","meloy.no","meløy.no","meraker.no","meråker.no","moareke.no","moåreke.no","midsund.no","midtre-gauldal.no","modalen.no","modum.no","molde.no","moskenes.no","moss.no","mosvik.no","malselv.no","målselv.no","malatvuopmi.no","málatvuopmi.no","namdalseid.no","aejrie.no","namsos.no","namsskogan.no","naamesjevuemie.no","nååmesjevuemie.no","laakesvuemie.no","nannestad.no","narvik.no","narviika.no","naustdal.no","nedre-eiker.no","nes.akershus.no","nes.buskerud.no","nesna.no","nesodden.no","nesseby.no","unjarga.no","unjárga.no","nesset.no","nissedal.no","nittedal.no","nord-aurdal.no","nord-fron.no","nord-odal.no","norddal.no","nordkapp.no","davvenjarga.no","davvenjárga.no","nordre-land.no","nordreisa.no","raisa.no","ráisa.no","nore-og-uvdal.no","notodden.no","naroy.no","nærøy.no","notteroy.no","nøtterøy.no","odda.no","oksnes.no","øksnes.no","oppdal.no","oppegard.no","oppegård.no","orkdal.no","orland.no","ørland.no","orskog.no","ørskog.no","orsta.no","ørsta.no","os.hedmark.no","os.hordaland.no","osen.no","osteroy.no","osterøy.no","ostre-toten.no","østre-toten.no","overhalla.no","ovre-eiker.no","øvre-eiker.no","oyer.no","øyer.no","oygarden.no","øygarden.no","oystre-slidre.no","øystre-slidre.no","porsanger.no","porsangu.no","porsáŋgu.no","porsgrunn.no","radoy.no","radøy.no","rakkestad.no","rana.no","ruovat.no","randaberg.no","rauma.no","rendalen.no","rennebu.no","rennesoy.no","rennesøy.no","rindal.no","ringebu.no","ringerike.no","ringsaker.no","rissa.no","risor.no","risør.no","roan.no","rollag.no","rygge.no","ralingen.no","rælingen.no","rodoy.no","rødøy.no","romskog.no","rømskog.no","roros.no","røros.no","rost.no","røst.no","royken.no","røyken.no","royrvik.no","røyrvik.no","rade.no","råde.no","salangen.no","siellak.no","saltdal.no","salat.no","sálát.no","sálat.no","samnanger.no","sande.more-og-romsdal.no","sande.møre-og-romsdal.no","sande.vestfold.no","sandefjord.no","sandnes.no","sandoy.no","sandøy.no","sarpsborg.no","sauda.no","sauherad.no","sel.no","selbu.no","selje.no","seljord.no","sigdal.no","siljan.no","sirdal.no","skaun.no","skedsmo.no","ski.no","skien.no","skiptvet.no","skjervoy.no","skjervøy.no","skierva.no","skiervá.no","skjak.no","skjåk.no","skodje.no","skanland.no","skånland.no","skanit.no","skánit.no","smola.no","smøla.no","snillfjord.no","snasa.no","snåsa.no","snoasa.no","snaase.no","snåase.no","sogndal.no","sokndal.no","sola.no","solund.no","songdalen.no","sortland.no","spydeberg.no","stange.no","stavanger.no","steigen.no","steinkjer.no","stjordal.no","stjørdal.no","stokke.no","stor-elvdal.no","stord.no","stordal.no","storfjord.no","omasvuotna.no","strand.no","stranda.no","stryn.no","sula.no","suldal.no","sund.no","sunndal.no","surnadal.no","sveio.no","svelvik.no","sykkylven.no","sogne.no","søgne.no","somna.no","sømna.no","sondre-land.no","søndre-land.no","sor-aurdal.no","sør-aurdal.no","sor-fron.no","sør-fron.no","sor-odal.no","sør-odal.no","sor-varanger.no","sør-varanger.no","matta-varjjat.no","mátta-várjjat.no","sorfold.no","sørfold.no","sorreisa.no","sørreisa.no","sorum.no","sørum.no","tana.no","deatnu.no","time.no","tingvoll.no","tinn.no","tjeldsund.no","dielddanuorri.no","tjome.no","tjøme.no","tokke.no","tolga.no","torsken.no","tranoy.no","tranøy.no","tromso.no","tromsø.no","tromsa.no","romsa.no","trondheim.no","troandin.no","trysil.no","trana.no","træna.no","trogstad.no","trøgstad.no","tvedestrand.no","tydal.no","tynset.no","tysfjord.no","divtasvuodna.no","divttasvuotna.no","tysnes.no","tysvar.no","tysvær.no","tonsberg.no","tønsberg.no","ullensaker.no","ullensvang.no","ulvik.no","utsira.no","vadso.no","vadsø.no","cahcesuolo.no","čáhcesuolo.no","vaksdal.no","valle.no","vang.no","vanylven.no","vardo.no","vardø.no","varggat.no","várggát.no","vefsn.no","vaapste.no","vega.no","vegarshei.no","vegårshei.no","vennesla.no","verdal.no","verran.no","vestby.no","vestnes.no","vestre-slidre.no","vestre-toten.no","vestvagoy.no","vestvågøy.no","vevelstad.no","vik.no","vikna.no","vindafjord.no","volda.no","voss.no","varoy.no","værøy.no","vagan.no","vågan.no","voagat.no","vagsoy.no","vågsøy.no","vaga.no","vågå.no","valer.ostfold.no","våler.østfold.no","valer.hedmark.no","våler.hedmark.no","*.np","nr","biz.nr","info.nr","gov.nr","edu.nr","org.nr","net.nr","com.nr","nu","nz","ac.nz","co.nz","cri.nz","geek.nz","gen.nz","govt.nz","health.nz","iwi.nz","kiwi.nz","maori.nz","mil.nz","māori.nz","net.nz","org.nz","parliament.nz","school.nz","om","co.om","com.om","edu.om","gov.om","med.om","museum.om","net.om","org.om","pro.om","onion","org","pa","ac.pa","gob.pa","com.pa","org.pa","sld.pa","edu.pa","net.pa","ing.pa","abo.pa","med.pa","nom.pa","pe","edu.pe","gob.pe","nom.pe","mil.pe","org.pe","com.pe","net.pe","pf","com.pf","org.pf","edu.pf","*.pg","ph","com.ph","net.ph","org.ph","gov.ph","edu.ph","ngo.ph","mil.ph","i.ph","pk","com.pk","net.pk","edu.pk","org.pk","fam.pk","biz.pk","web.pk","gov.pk","gob.pk","gok.pk","gon.pk","gop.pk","gos.pk","info.pk","pl","com.pl","net.pl","org.pl","aid.pl","agro.pl","atm.pl","auto.pl","biz.pl","edu.pl","gmina.pl","gsm.pl","info.pl","mail.pl","miasta.pl","media.pl","mil.pl","nieruchomosci.pl","nom.pl","pc.pl","powiat.pl","priv.pl","realestate.pl","rel.pl","sex.pl","shop.pl","sklep.pl","sos.pl","szkola.pl","targi.pl","tm.pl","tourism.pl","travel.pl","turystyka.pl","gov.pl","ap.gov.pl","ic.gov.pl","is.gov.pl","us.gov.pl","kmpsp.gov.pl","kppsp.gov.pl","kwpsp.gov.pl","psp.gov.pl","wskr.gov.pl","kwp.gov.pl","mw.gov.pl","ug.gov.pl","um.gov.pl","umig.gov.pl","ugim.gov.pl","upow.gov.pl","uw.gov.pl","starostwo.gov.pl","pa.gov.pl","po.gov.pl","psse.gov.pl","pup.gov.pl","rzgw.gov.pl","sa.gov.pl","so.gov.pl","sr.gov.pl","wsa.gov.pl","sko.gov.pl","uzs.gov.pl","wiih.gov.pl","winb.gov.pl","pinb.gov.pl","wios.gov.pl","witd.gov.pl","wzmiuw.gov.pl","piw.gov.pl","wiw.gov.pl","griw.gov.pl","wif.gov.pl","oum.gov.pl","sdn.gov.pl","zp.gov.pl","uppo.gov.pl","mup.gov.pl","wuoz.gov.pl","konsulat.gov.pl","oirm.gov.pl","augustow.pl","babia-gora.pl","bedzin.pl","beskidy.pl","bialowieza.pl","bialystok.pl","bielawa.pl","bieszczady.pl","boleslawiec.pl","bydgoszcz.pl","bytom.pl","cieszyn.pl","czeladz.pl","czest.pl","dlugoleka.pl","elblag.pl","elk.pl","glogow.pl","gniezno.pl","gorlice.pl","grajewo.pl","ilawa.pl","jaworzno.pl","jelenia-gora.pl","jgora.pl","kalisz.pl","kazimierz-dolny.pl","karpacz.pl","kartuzy.pl","kaszuby.pl","katowice.pl","kepno.pl","ketrzyn.pl","klodzko.pl","kobierzyce.pl","kolobrzeg.pl","konin.pl","konskowola.pl","kutno.pl","lapy.pl","lebork.pl","legnica.pl","lezajsk.pl","limanowa.pl","lomza.pl","lowicz.pl","lubin.pl","lukow.pl","malbork.pl","malopolska.pl","mazowsze.pl","mazury.pl","mielec.pl","mielno.pl","mragowo.pl","naklo.pl","nowaruda.pl","nysa.pl","olawa.pl","olecko.pl","olkusz.pl","olsztyn.pl","opoczno.pl","opole.pl","ostroda.pl","ostroleka.pl","ostrowiec.pl","ostrowwlkp.pl","pila.pl","pisz.pl","podhale.pl","podlasie.pl","polkowice.pl","pomorze.pl","pomorskie.pl","prochowice.pl","pruszkow.pl","przeworsk.pl","pulawy.pl","radom.pl","rawa-maz.pl","rybnik.pl","rzeszow.pl","sanok.pl","sejny.pl","slask.pl","slupsk.pl","sosnowiec.pl","stalowa-wola.pl","skoczow.pl","starachowice.pl","stargard.pl","suwalki.pl","swidnica.pl","swiebodzin.pl","swinoujscie.pl","szczecin.pl","szczytno.pl","tarnobrzeg.pl","tgory.pl","turek.pl","tychy.pl","ustka.pl","walbrzych.pl","warmia.pl","warszawa.pl","waw.pl","wegrow.pl","wielun.pl","wlocl.pl","wloclawek.pl","wodzislaw.pl","wolomin.pl","wroclaw.pl","zachpomor.pl","zagan.pl","zarow.pl","zgora.pl","zgorzelec.pl","pm","pn","gov.pn","co.pn","org.pn","edu.pn","net.pn","post","pr","com.pr","net.pr","org.pr","gov.pr","edu.pr","isla.pr","pro.pr","biz.pr","info.pr","name.pr","est.pr","prof.pr","ac.pr","pro","aaa.pro","aca.pro","acct.pro","avocat.pro","bar.pro","cpa.pro","eng.pro","jur.pro","law.pro","med.pro","recht.pro","ps","edu.ps","gov.ps","sec.ps","plo.ps","com.ps","org.ps","net.ps","pt","net.pt","gov.pt","org.pt","edu.pt","int.pt","publ.pt","com.pt","nome.pt","pw","co.pw","ne.pw","or.pw","ed.pw","go.pw","belau.pw","py","com.py","coop.py","edu.py","gov.py","mil.py","net.py","org.py","qa","com.qa","edu.qa","gov.qa","mil.qa","name.qa","net.qa","org.qa","sch.qa","re","asso.re","com.re","nom.re","ro","arts.ro","com.ro","firm.ro","info.ro","nom.ro","nt.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","rs","ac.rs","co.rs","edu.rs","gov.rs","in.rs","org.rs","ru","ac.ru","edu.ru","gov.ru","int.ru","mil.ru","test.ru","rw","ac.rw","co.rw","coop.rw","gov.rw","mil.rw","net.rw","org.rw","sa","com.sa","net.sa","org.sa","gov.sa","med.sa","pub.sa","edu.sa","sch.sa","sb","com.sb","edu.sb","gov.sb","net.sb","org.sb","sc","com.sc","gov.sc","net.sc","org.sc","edu.sc","sd","com.sd","net.sd","org.sd","edu.sd","med.sd","tv.sd","gov.sd","info.sd","se","a.se","ac.se","b.se","bd.se","brand.se","c.se","d.se","e.se","f.se","fh.se","fhsk.se","fhv.se","g.se","h.se","i.se","k.se","komforb.se","kommunalforbund.se","komvux.se","l.se","lanbib.se","m.se","n.se","naturbruksgymn.se","o.se","org.se","p.se","parti.se","pp.se","press.se","r.se","s.se","t.se","tm.se","u.se","w.se","x.se","y.se","z.se","sg","com.sg","net.sg","org.sg","gov.sg","edu.sg","per.sg","sh","com.sh","net.sh","gov.sh","org.sh","mil.sh","si","sj","sk","sl","com.sl","net.sl","edu.sl","gov.sl","org.sl","sm","sn","art.sn","com.sn","edu.sn","gouv.sn","org.sn","perso.sn","univ.sn","so","com.so","net.so","org.so","sr","st","co.st","com.st","consulado.st","edu.st","embaixada.st","gov.st","mil.st","net.st","org.st","principe.st","saotome.st","store.st","su","sv","com.sv","edu.sv","gob.sv","org.sv","red.sv","sx","gov.sx","sy","edu.sy","gov.sy","net.sy","mil.sy","com.sy","org.sy","sz","co.sz","ac.sz","org.sz","tc","td","tel","tf","tg","th","ac.th","co.th","go.th","in.th","mi.th","net.th","or.th","tj","ac.tj","biz.tj","co.tj","com.tj","edu.tj","go.tj","gov.tj","int.tj","mil.tj","name.tj","net.tj","nic.tj","org.tj","test.tj","web.tj","tk","tl","gov.tl","tm","com.tm","co.tm","org.tm","net.tm","nom.tm","gov.tm","mil.tm","edu.tm","tn","com.tn","ens.tn","fin.tn","gov.tn","ind.tn","intl.tn","nat.tn","net.tn","org.tn","info.tn","perso.tn","tourism.tn","edunet.tn","rnrt.tn","rns.tn","rnu.tn","mincom.tn","agrinet.tn","defense.tn","turen.tn","to","com.to","gov.to","net.to","org.to","edu.to","mil.to","tr","av.tr","bbs.tr","bel.tr","biz.tr","com.tr","dr.tr","edu.tr","gen.tr","gov.tr","info.tr","mil.tr","k12.tr","kep.tr","name.tr","net.tr","org.tr","pol.tr","tel.tr","tsk.tr","tv.tr","web.tr","nc.tr","gov.nc.tr","tt","co.tt","com.tt","org.tt","net.tt","biz.tt","info.tt","pro.tt","int.tt","coop.tt","jobs.tt","mobi.tt","travel.tt","museum.tt","aero.tt","name.tt","gov.tt","edu.tt","tv","tw","edu.tw","gov.tw","mil.tw","com.tw","net.tw","org.tw","idv.tw","game.tw","ebiz.tw","club.tw","網路.tw","組織.tw","商業.tw","tz","ac.tz","co.tz","go.tz","hotel.tz","info.tz","me.tz","mil.tz","mobi.tz","ne.tz","or.tz","sc.tz","tv.tz","ua","com.ua","edu.ua","gov.ua","in.ua","net.ua","org.ua","cherkassy.ua","cherkasy.ua","chernigov.ua","chernihiv.ua","chernivtsi.ua","chernovtsy.ua","ck.ua","cn.ua","cr.ua","crimea.ua","cv.ua","dn.ua","dnepropetrovsk.ua","dnipropetrovsk.ua","dominic.ua","donetsk.ua","dp.ua","if.ua","ivano-frankivsk.ua","kh.ua","kharkiv.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","khmelnytskyi.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","krym.ua","ks.ua","kv.ua","kyiv.ua","lg.ua","lt.ua","lugansk.ua","lutsk.ua","lv.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odesa.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sb.ua","sebastopol.ua","sevastopol.ua","sm.ua","sumy.ua","te.ua","ternopil.ua","uz.ua","uzhgorod.ua","vinnica.ua","vinnytsia.ua","vn.ua","volyn.ua","yalta.ua","zaporizhzhe.ua","zaporizhzhia.ua","zhitomir.ua","zhytomyr.ua","zp.ua","zt.ua","ug","co.ug","or.ug","ac.ug","sc.ug","go.ug","ne.ug","com.ug","org.ug","uk","ac.uk","co.uk","gov.uk","ltd.uk","me.uk","net.uk","nhs.uk","org.uk","plc.uk","police.uk","*.sch.uk","us","dni.us","fed.us","isa.us","kids.us","nsn.us","ak.us","al.us","ar.us","as.us","az.us","ca.us","co.us","ct.us","dc.us","de.us","fl.us","ga.us","gu.us","hi.us","ia.us","id.us","il.us","in.us","ks.us","ky.us","la.us","ma.us","md.us","me.us","mi.us","mn.us","mo.us","ms.us","mt.us","nc.us","nd.us","ne.us","nh.us","nj.us","nm.us","nv.us","ny.us","oh.us","ok.us","or.us","pa.us","pr.us","ri.us","sc.us","sd.us","tn.us","tx.us","ut.us","vi.us","vt.us","va.us","wa.us","wi.us","wv.us","wy.us","k12.ak.us","k12.al.us","k12.ar.us","k12.as.us","k12.az.us","k12.ca.us","k12.co.us","k12.ct.us","k12.dc.us","k12.de.us","k12.fl.us","k12.ga.us","k12.gu.us","k12.ia.us","k12.id.us","k12.il.us","k12.in.us","k12.ks.us","k12.ky.us","k12.la.us","k12.ma.us","k12.md.us","k12.me.us","k12.mi.us","k12.mn.us","k12.mo.us","k12.ms.us","k12.mt.us","k12.nc.us","k12.ne.us","k12.nh.us","k12.nj.us","k12.nm.us","k12.nv.us","k12.ny.us","k12.oh.us","k12.ok.us","k12.or.us","k12.pa.us","k12.pr.us","k12.ri.us","k12.sc.us","k12.tn.us","k12.tx.us","k12.ut.us","k12.vi.us","k12.vt.us","k12.va.us","k12.wa.us","k12.wi.us","k12.wy.us","cc.ak.us","cc.al.us","cc.ar.us","cc.as.us","cc.az.us","cc.ca.us","cc.co.us","cc.ct.us","cc.dc.us","cc.de.us","cc.fl.us","cc.ga.us","cc.gu.us","cc.hi.us","cc.ia.us","cc.id.us","cc.il.us","cc.in.us","cc.ks.us","cc.ky.us","cc.la.us","cc.ma.us","cc.md.us","cc.me.us","cc.mi.us","cc.mn.us","cc.mo.us","cc.ms.us","cc.mt.us","cc.nc.us","cc.nd.us","cc.ne.us","cc.nh.us","cc.nj.us","cc.nm.us","cc.nv.us","cc.ny.us","cc.oh.us","cc.ok.us","cc.or.us","cc.pa.us","cc.pr.us","cc.ri.us","cc.sc.us","cc.sd.us","cc.tn.us","cc.tx.us","cc.ut.us","cc.vi.us","cc.vt.us","cc.va.us","cc.wa.us","cc.wi.us","cc.wv.us","cc.wy.us","lib.ak.us","lib.al.us","lib.ar.us","lib.as.us","lib.az.us","lib.ca.us","lib.co.us","lib.ct.us","lib.dc.us","lib.fl.us","lib.ga.us","lib.gu.us","lib.hi.us","lib.ia.us","lib.id.us","lib.il.us","lib.in.us","lib.ks.us","lib.ky.us","lib.la.us","lib.ma.us","lib.md.us","lib.me.us","lib.mi.us","lib.mn.us","lib.mo.us","lib.ms.us","lib.mt.us","lib.nc.us","lib.nd.us","lib.ne.us","lib.nh.us","lib.nj.us","lib.nm.us","lib.nv.us","lib.ny.us","lib.oh.us","lib.ok.us","lib.or.us","lib.pa.us","lib.pr.us","lib.ri.us","lib.sc.us","lib.sd.us","lib.tn.us","lib.tx.us","lib.ut.us","lib.vi.us","lib.vt.us","lib.va.us","lib.wa.us","lib.wi.us","lib.wy.us","pvt.k12.ma.us","chtr.k12.ma.us","paroch.k12.ma.us","ann-arbor.mi.us","cog.mi.us","dst.mi.us","eaton.mi.us","gen.mi.us","mus.mi.us","tec.mi.us","washtenaw.mi.us","uy","com.uy","edu.uy","gub.uy","mil.uy","net.uy","org.uy","uz","co.uz","com.uz","net.uz","org.uz","va","vc","com.vc","net.vc","org.vc","gov.vc","mil.vc","edu.vc","ve","arts.ve","co.ve","com.ve","e12.ve","edu.ve","firm.ve","gob.ve","gov.ve","info.ve","int.ve","mil.ve","net.ve","org.ve","rec.ve","store.ve","tec.ve","web.ve","vg","vi","co.vi","com.vi","k12.vi","net.vi","org.vi","vn","com.vn","net.vn","org.vn","edu.vn","gov.vn","int.vn","ac.vn","biz.vn","info.vn","name.vn","pro.vn","health.vn","vu","com.vu","edu.vu","net.vu","org.vu","wf","ws","com.ws","net.ws","org.ws","gov.ws","edu.ws","yt","امارات","հայ","বাংলা","бг","бел","中国","中國","الجزائر","مصر","ею","გე","ελ","香港","公司.香港","教育.香港","政府.香港","個人.香港","網絡.香港","組織.香港","ಭಾರತ","ଭାରତ","ভাৰত","भारतम्","भारोत","ڀارت","ഭാരതം","भारत","بارت","بھارت","భారత్","ભારત","ਭਾਰਤ","ভারত","இந்தியா","ایران","ايران","عراق","الاردن","한국","қаз","ලංකා","இலங்கை","المغرب","мкд","мон","澳門","澳门","مليسيا","عمان","پاکستان","پاكستان","فلسطين","срб","пр.срб","орг.срб","обр.срб","од.срб","упр.срб","ак.срб","рф","قطر","السعودية","السعودیة","السعودیۃ","السعوديه","سودان","新加坡","சிங்கப்பூர்","سورية","سوريا","ไทย","ศึกษา.ไทย","ธุรกิจ.ไทย","รัฐบาล.ไทย","ทหาร.ไทย","เน็ต.ไทย","องค์กร.ไทย","تونس","台灣","台湾","臺灣","укр","اليمن","xxx","*.ye","ac.za","agric.za","alt.za","co.za","edu.za","gov.za","grondar.za","law.za","mil.za","net.za","ngo.za","nic.za","nis.za","nom.za","org.za","school.za","tm.za","web.za","zm","ac.zm","biz.zm","co.zm","com.zm","edu.zm","gov.zm","info.zm","mil.zm","net.zm","org.zm","sch.zm","zw","ac.zw","co.zw","gov.zw","mil.zw","org.zw","aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","academy","accenture","accountant","accountants","aco","actor","adac","ads","adult","aeg","aetna","afamilycompany","afl","africa","agakhan","agency","aig","aigo","airbus","airforce","airtel","akdn","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","aol","apartments","app","apple","aquarelle","arab","aramco","archi","army","art","arte","asda","associates","athleta","attorney","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aws","axa","azure","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bbc","bbt","bbva","bcg","bcn","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bharti","bible","bid","bike","bing","bingo","bio","black","blackfriday","blockbuster","blog","bloomberg","blue","bms","bmw","bnl","bnpparibas","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","bradesco","bridgestone","broadway","broker","brother","brussels","budapest","bugatti","build","builders","business","buy","buzz","bzh","cab","cafe","cal","call","calvinklein","cam","camera","camp","cancerresearch","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","cartier","casa","case","caseih","cash","casino","catering","catholic","cba","cbn","cbre","cbs","ceb","center","ceo","cern","cfa","cfd","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","chrysler","church","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","coach","codes","coffee","college","cologne","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","corsica","country","coupon","coupons","courses","cpa","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","csc","cuisinella","cymru","cyou","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dnp","docs","doctor","dodge","dog","domains","dot","download","drive","dtv","dubai","duck","dunlop","duns","dupont","durban","dvag","dvr","earth","eat","eco","edeka","education","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","ericsson","erni","esq","estate","esurance","etisalat","eurovision","eus","events","everbank","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","flickr","flights","flir","florist","flowers","fly","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fujixerox","fun","fund","furniture","futbol","fyi","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gbiz","gdn","gea","gent","genting","george","ggee","gift","gifts","gives","giving","glade","glass","gle","global","globo","gmail","gmbh","gmo","gmx","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","grainger","graphics","gratis","green","gripe","grocery","group","guardian","gucci","guge","guide","guitars","guru","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hgtv","hiphop","hisamitsu","hitachi","hiv","hkt","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","honeywell","horse","hospital","host","hosting","hot","hoteles","hotels","hotmail","house","how","hsbc","hughes","hyatt","hyundai","ibm","icbc","ice","icu","ieee","ifm","ikano","imamat","imdb","immo","immobilien","inc","industries","infiniti","ing","ink","institute","insurance","insure","intel","international","intuit","investments","ipiranga","irish","iselect","ismaili","ist","istanbul","itau","itv","iveco","jaguar","java","jcb","jcp","jeep","jetzt","jewelry","jio","jll","jmp","jnj","joburg","jot","joy","jpmorgan","jprs","juegos","juniper","kaufen","kddi","kerryhotels","kerrylogistics","kerryproperties","kfh","kia","kim","kinder","kindle","kitchen","kiwi","koeln","komatsu","kosher","kpmg","kpn","krd","kred","kuokgroup","kyoto","lacaixa","ladbrokes","lamborghini","lamer","lancaster","lancia","lancome","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","liaison","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","linde","link","lipsy","live","living","lixil","llc","loan","loans","locker","locus","loft","lol","london","lotte","lotto","love","lpl","lplfinancial","ltd","ltda","lundbeck","lupin","luxe","luxury","macys","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","maserati","mattel","mba","mckinsey","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","metlife","miami","microsoft","mini","mint","mit","mitsubishi","mlb","mls","mma","mobile","mobily","moda","moe","moi","mom","monash","money","monster","mopar","mormon","mortgage","moscow","moto","motorcycles","mov","movie","movistar","msd","mtn","mtr","mutual","nab","nadex","nagoya","nationwide","natura","navy","nba","nec","netbank","netflix","network","neustar","new","newholland","news","next","nextdirect","nexus","nfl","ngo","nhk","nico","nike","nikon","ninja","nissan","nissay","nokia","northwesternmutual","norton","now","nowruz","nowtv","nra","nrw","ntt","nyc","obi","observer","off","office","okinawa","olayan","olayangroup","oldnavy","ollo","omega","one","ong","onl","online","onyourside","ooo","open","oracle","orange","organic","origins","osaka","otsuka","ott","ovh","page","panasonic","paris","pars","partners","parts","party","passagens","pay","pccw","pet","pfizer","pharmacy","phd","philips","phone","photo","photography","photos","physio","piaget","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","place","play","playstation","plumbing","plus","pnc","pohl","poker","politie","porn","pramerica","praxi","press","prime","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","pub","pwc","qpon","quebec","quest","qvc","racing","radio","raid","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","rightathome","ril","rio","rip","rmit","rocher","rocks","rodeo","rogers","room","rsvp","rugby","ruhr","run","rwe","ryukyu","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sbi","sbs","sca","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scjohnson","scor","scot","search","seat","secure","security","seek","select","sener","services","ses","seven","sew","sex","sexy","sfr","shangrila","sharp","shaw","shell","shia","shiksha","shoes","shop","shopping","shouji","show","showtime","shriram","silk","sina","singles","site","ski","skin","sky","skype","sling","smart","smile","sncf","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","space","sport","spot","spreadbetting","srl","srt","stada","staples","star","starhub","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","sucks","supplies","supply","support","surf","surgery","suzuki","swatch","swiftcover","swiss","sydney","symantec","systems","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tci","tdk","team","tech","technology","telefonica","temasek","tennis","teva","thd","theater","theatre","tiaa","tickets","tienda","tiffany","tips","tires","tirol","tjmaxx","tjx","tkmaxx","tmall","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","trade","trading","training","travel","travelchannel","travelers","travelersinsurance","trust","trv","tube","tui","tunes","tushu","tvs","ubank","ubs","uconnect","unicom","university","uno","uol","ups","vacations","vana","vanguard","vegas","ventures","verisign","versicherung","vet","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","vistaprint","viva","vivo","vlaanderen","vodka","volkswagen","volvo","vote","voting","voto","voyage","vuelos","wales","walmart","walter","wang","wanggou","warman","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","wtc","wtf","xbox","xerox","xfinity","xihuan","xin","कॉम","セール","佛山","慈善","集团","在线","大众汽车","点看","คอม","八卦","موقع","公益","公司","香格里拉","网站","移动","我爱你","москва","католик","онлайн","сайт","联通","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","삼성","商标","商店","商城","дети","ポイント","新闻","工行","家電","كوم","中文网","中信","娱乐","谷歌","電訊盈科","购物","クラウド","通販","网店","संगठन","餐厅","网络","ком","诺基亚","食品","飞利浦","手表","手机","ارامكو","العليان","اتصالات","بازار","موبايلي","ابوظبي","كاثوليك","همراه","닷컴","政府","شبكة","بيتك","عرب","机构","组织机构","健康","招聘","рус","珠宝","大拿","みんな","グーグル","世界","書籍","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","广东","政务","xyz","yachts","yahoo","yamaxun","yandex","yodobashi","yoga","yokohama","you","youtube","yun","zappos","zara","zero","zip","zone","zuerich","cc.ua","inf.ua","ltd.ua","beep.pl","barsy.ca","*.compute.estate","*.alces.network","alwaysdata.net","cloudfront.net","*.compute.amazonaws.com","*.compute-1.amazonaws.com","*.compute.amazonaws.com.cn","us-east-1.amazonaws.com","cn-north-1.eb.amazonaws.com.cn","cn-northwest-1.eb.amazonaws.com.cn","elasticbeanstalk.com","ap-northeast-1.elasticbeanstalk.com","ap-northeast-2.elasticbeanstalk.com","ap-northeast-3.elasticbeanstalk.com","ap-south-1.elasticbeanstalk.com","ap-southeast-1.elasticbeanstalk.com","ap-southeast-2.elasticbeanstalk.com","ca-central-1.elasticbeanstalk.com","eu-central-1.elasticbeanstalk.com","eu-west-1.elasticbeanstalk.com","eu-west-2.elasticbeanstalk.com","eu-west-3.elasticbeanstalk.com","sa-east-1.elasticbeanstalk.com","us-east-1.elasticbeanstalk.com","us-east-2.elasticbeanstalk.com","us-gov-west-1.elasticbeanstalk.com","us-west-1.elasticbeanstalk.com","us-west-2.elasticbeanstalk.com","*.elb.amazonaws.com","*.elb.amazonaws.com.cn","s3.amazonaws.com","s3-ap-northeast-1.amazonaws.com","s3-ap-northeast-2.amazonaws.com","s3-ap-south-1.amazonaws.com","s3-ap-southeast-1.amazonaws.com","s3-ap-southeast-2.amazonaws.com","s3-ca-central-1.amazonaws.com","s3-eu-central-1.amazonaws.com","s3-eu-west-1.amazonaws.com","s3-eu-west-2.amazonaws.com","s3-eu-west-3.amazonaws.com","s3-external-1.amazonaws.com","s3-fips-us-gov-west-1.amazonaws.com","s3-sa-east-1.amazonaws.com","s3-us-gov-west-1.amazonaws.com","s3-us-east-2.amazonaws.com","s3-us-west-1.amazonaws.com","s3-us-west-2.amazonaws.com","s3.ap-northeast-2.amazonaws.com","s3.ap-south-1.amazonaws.com","s3.cn-north-1.amazonaws.com.cn","s3.ca-central-1.amazonaws.com","s3.eu-central-1.amazonaws.com","s3.eu-west-2.amazonaws.com","s3.eu-west-3.amazonaws.com","s3.us-east-2.amazonaws.com","s3.dualstack.ap-northeast-1.amazonaws.com","s3.dualstack.ap-northeast-2.amazonaws.com","s3.dualstack.ap-south-1.amazonaws.com","s3.dualstack.ap-southeast-1.amazonaws.com","s3.dualstack.ap-southeast-2.amazonaws.com","s3.dualstack.ca-central-1.amazonaws.com","s3.dualstack.eu-central-1.amazonaws.com","s3.dualstack.eu-west-1.amazonaws.com","s3.dualstack.eu-west-2.amazonaws.com","s3.dualstack.eu-west-3.amazonaws.com","s3.dualstack.sa-east-1.amazonaws.com","s3.dualstack.us-east-1.amazonaws.com","s3.dualstack.us-east-2.amazonaws.com","s3-website-us-east-1.amazonaws.com","s3-website-us-west-1.amazonaws.com","s3-website-us-west-2.amazonaws.com","s3-website-ap-northeast-1.amazonaws.com","s3-website-ap-southeast-1.amazonaws.com","s3-website-ap-southeast-2.amazonaws.com","s3-website-eu-west-1.amazonaws.com","s3-website-sa-east-1.amazonaws.com","s3-website.ap-northeast-2.amazonaws.com","s3-website.ap-south-1.amazonaws.com","s3-website.ca-central-1.amazonaws.com","s3-website.eu-central-1.amazonaws.com","s3-website.eu-west-2.amazonaws.com","s3-website.eu-west-3.amazonaws.com","s3-website.us-east-2.amazonaws.com","t3l3p0rt.net","tele.amune.org","apigee.io","on-aptible.com","user.aseinet.ne.jp","gv.vc","d.gv.vc","user.party.eus","pimienta.org","poivron.org","potager.org","sweetpepper.org","myasustor.com","go-vip.co","go-vip.net","wpcomstaging.com","myfritz.net","*.awdev.ca","*.advisor.ws","b-data.io","backplaneapp.io","balena-devices.com","app.banzaicloud.io","betainabox.com","bnr.la","blackbaudcdn.net","boomla.net","boxfuse.io","square7.ch","bplaced.com","bplaced.de","square7.de","bplaced.net","square7.net","browsersafetymark.io","uk0.bigv.io","dh.bytemark.co.uk","vm.bytemark.co.uk","mycd.eu","carrd.co","crd.co","uwu.ai","ae.org","ar.com","br.com","cn.com","com.de","com.se","de.com","eu.com","gb.com","gb.net","hu.com","hu.net","jp.net","jpn.com","kr.com","mex.com","no.com","qc.com","ru.com","sa.com","se.net","uk.com","uk.net","us.com","uy.com","za.bz","za.com","africa.com","gr.com","in.net","us.org","co.com","c.la","certmgr.org","xenapponazure.com","discourse.group","virtueeldomein.nl","cleverapps.io","*.lcl.dev","*.stg.dev","c66.me","cloud66.ws","cloud66.zone","jdevcloud.com","wpdevcloud.com","cloudaccess.host","freesite.host","cloudaccess.net","cloudcontrolled.com","cloudcontrolapp.com","cloudera.site","trycloudflare.com","workers.dev","wnext.app","co.ca","*.otap.co","co.cz","c.cdn77.org","cdn77-ssl.net","r.cdn77.net","rsc.cdn77.org","ssl.origin.cdn77-secure.org","cloudns.asia","cloudns.biz","cloudns.club","cloudns.cc","cloudns.eu","cloudns.in","cloudns.info","cloudns.org","cloudns.pro","cloudns.pw","cloudns.us","cloudeity.net","cnpy.gdn","co.nl","co.no","webhosting.be","hosting-cluster.nl","dyn.cosidns.de","dynamisches-dns.de","dnsupdater.de","internet-dns.de","l-o-g-i-n.de","dynamic-dns.info","feste-ip.net","knx-server.net","static-access.net","realm.cz","*.cryptonomic.net","cupcake.is","cyon.link","cyon.site","daplie.me","localhost.daplie.me","dattolocal.com","dattorelay.com","dattoweb.com","mydatto.com","dattolocal.net","mydatto.net","biz.dk","co.dk","firm.dk","reg.dk","store.dk","*.dapps.earth","*.bzz.dapps.earth","debian.net","dedyn.io","dnshome.de","online.th","shop.th","drayddns.com","dreamhosters.com","mydrobo.com","drud.io","drud.us","duckdns.org","dy.fi","tunk.org","dyndns-at-home.com","dyndns-at-work.com","dyndns-blog.com","dyndns-free.com","dyndns-home.com","dyndns-ip.com","dyndns-mail.com","dyndns-office.com","dyndns-pics.com","dyndns-remote.com","dyndns-server.com","dyndns-web.com","dyndns-wiki.com","dyndns-work.com","dyndns.biz","dyndns.info","dyndns.org","dyndns.tv","at-band-camp.net","ath.cx","barrel-of-knowledge.info","barrell-of-knowledge.info","better-than.tv","blogdns.com","blogdns.net","blogdns.org","blogsite.org","boldlygoingnowhere.org","broke-it.net","buyshouses.net","cechire.com","dnsalias.com","dnsalias.net","dnsalias.org","dnsdojo.com","dnsdojo.net","dnsdojo.org","does-it.net","doesntexist.com","doesntexist.org","dontexist.com","dontexist.net","dontexist.org","doomdns.com","doomdns.org","dvrdns.org","dyn-o-saur.com","dynalias.com","dynalias.net","dynalias.org","dynathome.net","dyndns.ws","endofinternet.net","endofinternet.org","endoftheinternet.org","est-a-la-maison.com","est-a-la-masion.com","est-le-patron.com","est-mon-blogueur.com","for-better.biz","for-more.biz","for-our.info","for-some.biz","for-the.biz","forgot.her.name","forgot.his.name","from-ak.com","from-al.com","from-ar.com","from-az.net","from-ca.com","from-co.net","from-ct.com","from-dc.com","from-de.com","from-fl.com","from-ga.com","from-hi.com","from-ia.com","from-id.com","from-il.com","from-in.com","from-ks.com","from-ky.com","from-la.net","from-ma.com","from-md.com","from-me.org","from-mi.com","from-mn.com","from-mo.com","from-ms.com","from-mt.com","from-nc.com","from-nd.com","from-ne.com","from-nh.com","from-nj.com","from-nm.com","from-nv.com","from-ny.net","from-oh.com","from-ok.com","from-or.com","from-pa.com","from-pr.com","from-ri.com","from-sc.com","from-sd.com","from-tn.com","from-tx.com","from-ut.com","from-va.com","from-vt.com","from-wa.com","from-wi.com","from-wv.com","from-wy.com","ftpaccess.cc","fuettertdasnetz.de","game-host.org","game-server.cc","getmyip.com","gets-it.net","go.dyndns.org","gotdns.com","gotdns.org","groks-the.info","groks-this.info","ham-radio-op.net","here-for-more.info","hobby-site.com","hobby-site.org","home.dyndns.org","homedns.org","homeftp.net","homeftp.org","homeip.net","homelinux.com","homelinux.net","homelinux.org","homeunix.com","homeunix.net","homeunix.org","iamallama.com","in-the-band.net","is-a-anarchist.com","is-a-blogger.com","is-a-bookkeeper.com","is-a-bruinsfan.org","is-a-bulls-fan.com","is-a-candidate.org","is-a-caterer.com","is-a-celticsfan.org","is-a-chef.com","is-a-chef.net","is-a-chef.org","is-a-conservative.com","is-a-cpa.com","is-a-cubicle-slave.com","is-a-democrat.com","is-a-designer.com","is-a-doctor.com","is-a-financialadvisor.com","is-a-geek.com","is-a-geek.net","is-a-geek.org","is-a-green.com","is-a-guru.com","is-a-hard-worker.com","is-a-hunter.com","is-a-knight.org","is-a-landscaper.com","is-a-lawyer.com","is-a-liberal.com","is-a-libertarian.com","is-a-linux-user.org","is-a-llama.com","is-a-musician.com","is-a-nascarfan.com","is-a-nurse.com","is-a-painter.com","is-a-patsfan.org","is-a-personaltrainer.com","is-a-photographer.com","is-a-player.com","is-a-republican.com","is-a-rockstar.com","is-a-socialist.com","is-a-soxfan.org","is-a-student.com","is-a-teacher.com","is-a-techie.com","is-a-therapist.com","is-an-accountant.com","is-an-actor.com","is-an-actress.com","is-an-anarchist.com","is-an-artist.com","is-an-engineer.com","is-an-entertainer.com","is-by.us","is-certified.com","is-found.org","is-gone.com","is-into-anime.com","is-into-cars.com","is-into-cartoons.com","is-into-games.com","is-leet.com","is-lost.org","is-not-certified.com","is-saved.org","is-slick.com","is-uberleet.com","is-very-bad.org","is-very-evil.org","is-very-good.org","is-very-nice.org","is-very-sweet.org","is-with-theband.com","isa-geek.com","isa-geek.net","isa-geek.org","isa-hockeynut.com","issmarterthanyou.com","isteingeek.de","istmein.de","kicks-ass.net","kicks-ass.org","knowsitall.info","land-4-sale.us","lebtimnetz.de","leitungsen.de","likes-pie.com","likescandy.com","merseine.nu","mine.nu","misconfused.org","mypets.ws","myphotos.cc","neat-url.com","office-on-the.net","on-the-web.tv","podzone.net","podzone.org","readmyblog.org","saves-the-whales.com","scrapper-site.net","scrapping.cc","selfip.biz","selfip.com","selfip.info","selfip.net","selfip.org","sells-for-less.com","sells-for-u.com","sells-it.net","sellsyourhome.org","servebbs.com","servebbs.net","servebbs.org","serveftp.net","serveftp.org","servegame.org","shacknet.nu","simple-url.com","space-to-rent.com","stuff-4-sale.org","stuff-4-sale.us","teaches-yoga.com","thruhere.net","traeumtgerade.de","webhop.biz","webhop.info","webhop.net","webhop.org","worse-than.tv","writesthisblog.com","ddnss.de","dyn.ddnss.de","dyndns.ddnss.de","dyndns1.de","dyn-ip24.de","home-webserver.de","dyn.home-webserver.de","myhome-server.de","ddnss.org","definima.net","definima.io","bci.dnstrace.pro","ddnsfree.com","ddnsgeek.com","giize.com","gleeze.com","kozow.com","loseyourip.com","ooguy.com","theworkpc.com","casacam.net","dynu.net","accesscam.org","camdvr.org","freeddns.org","mywire.org","webredirect.org","myddns.rocks","blogsite.xyz","dynv6.net","e4.cz","mytuleap.com","onred.one","staging.onred.one","enonic.io","customer.enonic.io","eu.org","al.eu.org","asso.eu.org","at.eu.org","au.eu.org","be.eu.org","bg.eu.org","ca.eu.org","cd.eu.org","ch.eu.org","cn.eu.org","cy.eu.org","cz.eu.org","de.eu.org","dk.eu.org","edu.eu.org","ee.eu.org","es.eu.org","fi.eu.org","fr.eu.org","gr.eu.org","hr.eu.org","hu.eu.org","ie.eu.org","il.eu.org","in.eu.org","int.eu.org","is.eu.org","it.eu.org","jp.eu.org","kr.eu.org","lt.eu.org","lu.eu.org","lv.eu.org","mc.eu.org","me.eu.org","mk.eu.org","mt.eu.org","my.eu.org","net.eu.org","ng.eu.org","nl.eu.org","no.eu.org","nz.eu.org","paris.eu.org","pl.eu.org","pt.eu.org","q-a.eu.org","ro.eu.org","ru.eu.org","se.eu.org","si.eu.org","sk.eu.org","tr.eu.org","uk.eu.org","us.eu.org","eu-1.evennode.com","eu-2.evennode.com","eu-3.evennode.com","eu-4.evennode.com","us-1.evennode.com","us-2.evennode.com","us-3.evennode.com","us-4.evennode.com","twmail.cc","twmail.net","twmail.org","mymailer.com.tw","url.tw","apps.fbsbx.com","ru.net","adygeya.ru","bashkiria.ru","bir.ru","cbg.ru","com.ru","dagestan.ru","grozny.ru","kalmykia.ru","kustanai.ru","marine.ru","mordovia.ru","msk.ru","mytis.ru","nalchik.ru","nov.ru","pyatigorsk.ru","spb.ru","vladikavkaz.ru","vladimir.ru","abkhazia.su","adygeya.su","aktyubinsk.su","arkhangelsk.su","armenia.su","ashgabad.su","azerbaijan.su","balashov.su","bashkiria.su","bryansk.su","bukhara.su","chimkent.su","dagestan.su","east-kazakhstan.su","exnet.su","georgia.su","grozny.su","ivanovo.su","jambyl.su","kalmykia.su","kaluga.su","karacol.su","karaganda.su","karelia.su","khakassia.su","krasnodar.su","kurgan.su","kustanai.su","lenug.su","mangyshlak.su","mordovia.su","msk.su","murmansk.su","nalchik.su","navoi.su","north-kazakhstan.su","nov.su","obninsk.su","penza.su","pokrovsk.su","sochi.su","spb.su","tashkent.su","termez.su","togliatti.su","troitsk.su","tselinograd.su","tula.su","tuva.su","vladikavkaz.su","vladimir.su","vologda.su","channelsdvr.net","fastly-terrarium.com","fastlylb.net","map.fastlylb.net","freetls.fastly.net","map.fastly.net","a.prod.fastly.net","global.prod.fastly.net","a.ssl.fastly.net","b.ssl.fastly.net","global.ssl.fastly.net","fastpanel.direct","fastvps-server.com","fhapp.xyz","fedorainfracloud.org","fedorapeople.org","cloud.fedoraproject.org","app.os.fedoraproject.org","app.os.stg.fedoraproject.org","mydobiss.com","filegear.me","filegear-au.me","filegear-de.me","filegear-gb.me","filegear-ie.me","filegear-jp.me","filegear-sg.me","firebaseapp.com","flynnhub.com","flynnhosting.net","freebox-os.com","freeboxos.com","fbx-os.fr","fbxos.fr","freebox-os.fr","freeboxos.fr","freedesktop.org","*.futurecms.at","*.ex.futurecms.at","*.in.futurecms.at","futurehosting.at","futuremailing.at","*.ex.ortsinfo.at","*.kunden.ortsinfo.at","*.statics.cloud","service.gov.uk","gehirn.ne.jp","usercontent.jp","lab.ms","github.io","githubusercontent.com","gitlab.io","glitch.me","cloudapps.digital","london.cloudapps.digital","homeoffice.gov.uk","ro.im","shop.ro","goip.de","run.app","a.run.app","web.app","*.0emm.com","appspot.com","blogspot.ae","blogspot.al","blogspot.am","blogspot.ba","blogspot.be","blogspot.bg","blogspot.bj","blogspot.ca","blogspot.cf","blogspot.ch","blogspot.cl","blogspot.co.at","blogspot.co.id","blogspot.co.il","blogspot.co.ke","blogspot.co.nz","blogspot.co.uk","blogspot.co.za","blogspot.com","blogspot.com.ar","blogspot.com.au","blogspot.com.br","blogspot.com.by","blogspot.com.co","blogspot.com.cy","blogspot.com.ee","blogspot.com.eg","blogspot.com.es","blogspot.com.mt","blogspot.com.ng","blogspot.com.tr","blogspot.com.uy","blogspot.cv","blogspot.cz","blogspot.de","blogspot.dk","blogspot.fi","blogspot.fr","blogspot.gr","blogspot.hk","blogspot.hr","blogspot.hu","blogspot.ie","blogspot.in","blogspot.is","blogspot.it","blogspot.jp","blogspot.kr","blogspot.li","blogspot.lt","blogspot.lu","blogspot.md","blogspot.mk","blogspot.mr","blogspot.mx","blogspot.my","blogspot.nl","blogspot.no","blogspot.pe","blogspot.pt","blogspot.qa","blogspot.re","blogspot.ro","blogspot.rs","blogspot.ru","blogspot.se","blogspot.sg","blogspot.si","blogspot.sk","blogspot.sn","blogspot.td","blogspot.tw","blogspot.ug","blogspot.vn","cloudfunctions.net","cloud.goog","codespot.com","googleapis.com","googlecode.com","pagespeedmobilizer.com","publishproxy.com","withgoogle.com","withyoutube.com","fin.ci","free.hr","caa.li","ua.rs","conf.se","hs.zone","hs.run","hashbang.sh","hasura.app","hasura-app.io","hepforge.org","herokuapp.com","herokussl.com","myravendb.com","ravendb.community","ravendb.me","development.run","ravendb.run","bpl.biz","orx.biz","ng.city","biz.gl","ng.ink","col.ng","firm.ng","gen.ng","ltd.ng","ng.school","sch.so","häkkinen.fi","*.moonscale.io","moonscale.net","iki.fi","dyn-berlin.de","in-berlin.de","in-brb.de","in-butter.de","in-dsl.de","in-dsl.net","in-dsl.org","in-vpn.de","in-vpn.net","in-vpn.org","biz.at","info.at","info.cx","ac.leg.br","al.leg.br","am.leg.br","ap.leg.br","ba.leg.br","ce.leg.br","df.leg.br","es.leg.br","go.leg.br","ma.leg.br","mg.leg.br","ms.leg.br","mt.leg.br","pa.leg.br","pb.leg.br","pe.leg.br","pi.leg.br","pr.leg.br","rj.leg.br","rn.leg.br","ro.leg.br","rr.leg.br","rs.leg.br","sc.leg.br","se.leg.br","sp.leg.br","to.leg.br","pixolino.com","ipifony.net","mein-iserv.de","test-iserv.de","iserv.dev","iobb.net","myjino.ru","*.hosting.myjino.ru","*.landing.myjino.ru","*.spectrum.myjino.ru","*.vps.myjino.ru","*.triton.zone","*.cns.joyent.com","js.org","kaas.gg","khplay.nl","keymachine.de","kinghost.net","uni5.net","knightpoint.systems","co.krd","edu.krd","git-repos.de","lcube-server.de","svn-repos.de","leadpages.co","lpages.co","lpusercontent.com","lelux.site","co.business","co.education","co.events","co.financial","co.network","co.place","co.technology","app.lmpm.com","linkitools.space","linkyard.cloud","linkyard-cloud.ch","members.linode.com","nodebalancer.linode.com","we.bs","loginline.app","loginline.dev","loginline.io","loginline.services","loginline.site","krasnik.pl","leczna.pl","lubartow.pl","lublin.pl","poniatowa.pl","swidnik.pl","uklugs.org","glug.org.uk","lug.org.uk","lugs.org.uk","barsy.bg","barsy.co.uk","barsyonline.co.uk","barsycenter.com","barsyonline.com","barsy.club","barsy.de","barsy.eu","barsy.in","barsy.info","barsy.io","barsy.me","barsy.menu","barsy.mobi","barsy.net","barsy.online","barsy.org","barsy.pro","barsy.pub","barsy.shop","barsy.site","barsy.support","barsy.uk","*.magentosite.cloud","mayfirst.info","mayfirst.org","hb.cldmail.ru","miniserver.com","memset.net","cloud.metacentrum.cz","custom.metacentrum.cz","flt.cloud.muni.cz","usr.cloud.muni.cz","meteorapp.com","eu.meteorapp.com","co.pl","azurecontainer.io","azurewebsites.net","azure-mobile.net","cloudapp.net","mozilla-iot.org","bmoattachments.org","net.ru","org.ru","pp.ru","ui.nabu.casa","pony.club","of.fashion","on.fashion","of.football","in.london","of.london","for.men","and.mom","for.mom","for.one","for.sale","of.work","to.work","nctu.me","bitballoon.com","netlify.com","4u.com","ngrok.io","nh-serv.co.uk","nfshost.com","dnsking.ch","mypi.co","n4t.co","001www.com","ddnslive.com","myiphost.com","forumz.info","16-b.it","32-b.it","64-b.it","soundcast.me","tcp4.me","dnsup.net","hicam.net","now-dns.net","ownip.net","vpndns.net","dynserv.org","now-dns.org","x443.pw","now-dns.top","ntdll.top","freeddns.us","crafting.xyz","zapto.xyz","nsupdate.info","nerdpol.ovh","blogsyte.com","brasilia.me","cable-modem.org","ciscofreak.com","collegefan.org","couchpotatofries.org","damnserver.com","ddns.me","ditchyourip.com","dnsfor.me","dnsiskinky.com","dvrcam.info","dynns.com","eating-organic.net","fantasyleague.cc","geekgalaxy.com","golffan.us","health-carereform.com","homesecuritymac.com","homesecuritypc.com","hopto.me","ilovecollege.info","loginto.me","mlbfan.org","mmafan.biz","myactivedirectory.com","mydissent.net","myeffect.net","mymediapc.net","mypsx.net","mysecuritycamera.com","mysecuritycamera.net","mysecuritycamera.org","net-freaks.com","nflfan.org","nhlfan.net","no-ip.ca","no-ip.co.uk","no-ip.net","noip.us","onthewifi.com","pgafan.net","point2this.com","pointto.us","privatizehealthinsurance.net","quicksytes.com","read-books.org","securitytactics.com","serveexchange.com","servehumour.com","servep2p.com","servesarcasm.com","stufftoread.com","ufcfan.org","unusualperson.com","workisboring.com","3utilities.com","bounceme.net","ddns.net","ddnsking.com","gotdns.ch","hopto.org","myftp.biz","myftp.org","myvnc.com","no-ip.biz","no-ip.info","no-ip.org","noip.me","redirectme.net","servebeer.com","serveblog.net","servecounterstrike.com","serveftp.com","servegame.com","servehalflife.com","servehttp.com","serveirc.com","serveminecraft.net","servemp3.com","servepics.com","servequake.com","sytes.net","webhop.me","zapto.org","stage.nodeart.io","nodum.co","nodum.io","pcloud.host","nyc.mn","nom.ae","nom.af","nom.ai","nom.al","nym.by","nym.bz","nom.cl","nym.ec","nom.gd","nom.ge","nom.gl","nym.gr","nom.gt","nym.gy","nym.hk","nom.hn","nym.ie","nom.im","nom.ke","nym.kz","nym.la","nym.lc","nom.li","nym.li","nym.lt","nym.lu","nym.me","nom.mk","nym.mn","nym.mx","nom.nu","nym.nz","nym.pe","nym.pt","nom.pw","nom.qa","nym.ro","nom.rs","nom.si","nym.sk","nom.st","nym.su","nym.sx","nom.tj","nym.tw","nom.ug","nom.uy","nom.vc","nom.vg","cya.gg","cloudycluster.net","nid.io","opencraft.hosting","operaunite.com","outsystemscloud.com","ownprovider.com","own.pm","ox.rs","oy.lc","pgfog.com","pagefrontapp.com","art.pl","gliwice.pl","krakow.pl","poznan.pl","wroc.pl","zakopane.pl","pantheonsite.io","gotpantheon.com","mypep.link","on-web.fr","*.platform.sh","*.platformsh.site","dyn53.io","co.bn","xen.prgmr.com","priv.at","prvcy.page","*.dweb.link","protonet.io","chirurgiens-dentistes-en-france.fr","byen.site","pubtls.org","qualifioapp.com","instantcloud.cn","ras.ru","qa2.com","dev-myqnapcloud.com","alpha-myqnapcloud.com","myqnapcloud.com","*.quipelements.com","vapor.cloud","vaporcloud.io","rackmaze.com","rackmaze.net","*.on-rancher.cloud","*.on-rio.io","readthedocs.io","rhcloud.com","app.render.com","onrender.com","repl.co","repl.run","resindevice.io","devices.resinstaging.io","hzc.io","wellbeingzone.eu","ptplus.fit","wellbeingzone.co.uk","git-pages.rit.edu","sandcats.io","logoip.de","logoip.com","schokokeks.net","scrysec.com","firewall-gateway.com","firewall-gateway.de","my-gateway.de","my-router.de","spdns.de","spdns.eu","firewall-gateway.net","my-firewall.org","myfirewall.org","spdns.org","biz.ua","co.ua","pp.ua","shiftedit.io","myshopblocks.com","shopitsite.com","mo-siemens.io","1kapp.com","appchizi.com","applinzi.com","sinaapp.com","vipsinaapp.com","siteleaf.net","bounty-full.com","alpha.bounty-full.com","beta.bounty-full.com","stackhero-network.com","static.land","dev.static.land","sites.static.land","apps.lair.io","*.stolos.io","spacekit.io","customer.speedpartner.de","api.stdlib.com","storj.farm","utwente.io","soc.srcf.net","user.srcf.net","temp-dns.com","applicationcloud.io","scapp.io","*.s5y.io","*.sensiosite.cloud","syncloud.it","diskstation.me","dscloud.biz","dscloud.me","dscloud.mobi","dsmynas.com","dsmynas.net","dsmynas.org","familyds.com","familyds.net","familyds.org","i234.me","myds.me","synology.me","vpnplus.to","taifun-dns.de","gda.pl","gdansk.pl","gdynia.pl","med.pl","sopot.pl","edugit.org","telebit.app","telebit.io","*.telebit.xyz","gwiddle.co.uk","thingdustdata.com","cust.dev.thingdust.io","cust.disrec.thingdust.io","cust.prod.thingdust.io","cust.testing.thingdust.io","arvo.network","azimuth.network","bloxcms.com","townnews-staging.com","12hp.at","2ix.at","4lima.at","lima-city.at","12hp.ch","2ix.ch","4lima.ch","lima-city.ch","trafficplex.cloud","de.cool","12hp.de","2ix.de","4lima.de","lima-city.de","1337.pictures","clan.rip","lima-city.rocks","webspace.rocks","lima.zone","*.transurl.be","*.transurl.eu","*.transurl.nl","tuxfamily.org","dd-dns.de","diskstation.eu","diskstation.org","dray-dns.de","draydns.de","dyn-vpn.de","dynvpn.de","mein-vigor.de","my-vigor.de","my-wan.de","syno-ds.de","synology-diskstation.de","synology-ds.de","uber.space","*.uberspace.de","hk.com","hk.org","ltd.hk","inc.hk","virtualuser.de","virtual-user.de","lib.de.us","2038.io","router.management","v-info.info","voorloper.cloud","wafflecell.com","*.webhare.dev","wedeploy.io","wedeploy.me","wedeploy.sh","remotewd.com","wmflabs.org","half.host","xnbay.com","u2.xnbay.com","u2-local.xnbay.com","cistron.nl","demon.nl","xs4all.space","yandexcloud.net","storage.yandexcloud.net","website.yandexcloud.net","official.academy","yolasite.com","ybo.faith","yombo.me","homelink.one","ybo.party","ybo.review","ybo.science","ybo.trade","nohost.me","noho.st","za.net","za.org","now.sh","bss.design","basicserver.io","virtualserver.io","site.builder.nu","enterprisecloud.nu","zone.id"]},{}],2:[function(a,o,r){"use strict";var p=a("punycode"),k={};k.rules=a("./data/rules.json").map(function(a){return{rule:a,suffix:a.replace(/^(\*\.|\!)/,""),punySuffix:-1,wildcard:"*"===a.charAt(0),exception:"!"===a.charAt(0)}}),k.endsWith=function(a,o){return-1!==a.indexOf(o,a.length-o.length)},k.findRule=function(a){var i=p.toASCII(a);return k.rules.reduce(function(a,o){return-1===o.punySuffix&&(o.punySuffix=p.toASCII(o.suffix)),k.endsWith(i,"."+o.punySuffix)||i===o.punySuffix?o:a},null)},r.errorCodes={DOMAIN_TOO_SHORT:"Domain name too short.",DOMAIN_TOO_LONG:"Domain name too long. It should be no more than 255 chars.",LABEL_STARTS_WITH_DASH:"Domain name label can not start with a dash.",LABEL_ENDS_WITH_DASH:"Domain name label can not end with a dash.",LABEL_TOO_LONG:"Domain name label should be at most 63 chars long.",LABEL_TOO_SHORT:"Domain name label should be at least 1 character long.",LABEL_INVALID_CHARS:"Domain name label can only contain alphanumeric characters or dashes."},k.validate=function(a){var o=p.toASCII(a);if(o.length<1)return"DOMAIN_TOO_SHORT";if(255<o.length)return"DOMAIN_TOO_LONG";for(var i,e=o.split("."),n=0;n<e.length;++n){if(!(i=e[n]).length)return"LABEL_TOO_SHORT";if(63<i.length)return"LABEL_TOO_LONG";if("-"===i.charAt(0))return"LABEL_STARTS_WITH_DASH";if("-"===i.charAt(i.length-1))return"LABEL_ENDS_WITH_DASH";if(!/^[a-z0-9\-]+$/.test(i))return"LABEL_INVALID_CHARS"}},r.parse=function(a){if("string"!=typeof a)throw new TypeError("Domain name must be a string.");var o=a.slice(0).toLowerCase();"."===o.charAt(o.length-1)&&(o=o.slice(0,o.length-1));var i=k.validate(o);if(i)return{input:a,error:{message:r.errorCodes[i],code:i}};var e={input:a,tld:null,sld:null,domain:null,subdomain:null,listed:!1},n=o.split(".");if("local"===n[n.length-1])return e;function s(){return/xn--/.test(o)&&(e.domain&&(e.domain=p.toASCII(e.domain)),e.subdomain&&(e.subdomain=p.toASCII(e.subdomain))),e}var m=k.findRule(o);if(!m)return n.length<2?e:(e.tld=n.pop(),e.sld=n.pop(),e.domain=[e.sld,e.tld].join("."),n.length&&(e.subdomain=n.pop()),s());e.listed=!0;var t=m.suffix.split("."),u=n.slice(0,n.length-t.length);return m.exception&&u.push(t.shift()),e.tld=t.join("."),u.length?(m.wildcard&&(t.unshift(u.pop()),e.tld=t.join(".")),u.length&&(e.sld=u.pop(),e.domain=[e.sld,e.tld].join("."),u.length&&(e.subdomain=u.join("."))),s()):s()},r.get=function(a){return a&&r.parse(a).domain||null},r.isValid=function(a){var o=r.parse(a);return Boolean(o.domain&&o.listed)}},{"./data/rules.json":1,punycode:3}],3:[function(a,T,D){(function(S){!function(a){var o="object"==typeof D&&D&&!D.nodeType&&D,i="object"==typeof T&&T&&!T.nodeType&&T,e="object"==typeof S&&S;e.global!==e&&e.window!==e&&e.self!==e||(a=e);var n,s,d=2147483647,b=36,y=1,f=26,m=38,t=700,v=72,w=128,z="-",u=/^xn--/,r=/[^\x20-\x7E]/,p=/[\x2E\u3002\uFF0E\uFF61]/g,k={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=b-y,x=Math.floor,q=String.fromCharCode;function A(a){throw new RangeError(k[a])}function l(a,o){for(var i=a.length,e=[];i--;)e[i]=o(a[i]);return e}function g(a,o){var i=a.split("@"),e="";return 1<i.length&&(e=i[0]+"@",a=i[1]),e+l((a=a.replace(p,".")).split("."),o).join(".")}function O(a){for(var o,i,e=[],n=0,s=a.length;n<s;)55296<=(o=a.charCodeAt(n++))&&o<=56319&&n<s?56320==(64512&(i=a.charCodeAt(n++)))?e.push(((1023&o)<<10)+(1023&i)+65536):(e.push(o),n--):e.push(o);return e}function _(a){return l(a,function(a){var o="";return 65535<a&&(o+=q((a-=65536)>>>10&1023|55296),a=56320|1023&a),o+=q(a)}).join("")}function L(a,o){return a+22+75*(a<26)-((0!=o)<<5)}function I(a,o,i){var e=0;for(a=i?x(a/t):a>>1,a+=x(a/o);c*f>>1<a;e+=b)a=x(a/c);return x(e+(c+1)*a/(a+m))}function h(a){var o,i,e,n,s,m,t,u,r,p,k,c=[],l=a.length,g=0,h=w,j=v;for((i=a.lastIndexOf(z))<0&&(i=0),e=0;e<i;++e)128<=a.charCodeAt(e)&&A("not-basic"),c.push(a.charCodeAt(e));for(n=0<i?i+1:0;n<l;){for(s=g,m=1,t=b;l<=n&&A("invalid-input"),k=a.charCodeAt(n++),(b<=(u=k-48<10?k-22:k-65<26?k-65:k-97<26?k-97:b)||u>x((d-g)/m))&&A("overflow"),g+=u*m,!(u<(r=t<=j?y:j+f<=t?f:t-j));t+=b)m>x(d/(p=b-r))&&A("overflow"),m*=p;j=I(g-s,o=c.length+1,0==s),x(g/o)>d-h&&A("overflow"),h+=x(g/o),g%=o,c.splice(g++,0,h)}return _(c)}function j(a){var o,i,e,n,s,m,t,u,r,p,k,c,l,g,h,j=[];for(c=(a=O(a)).length,o=w,s=v,m=i=0;m<c;++m)(k=a[m])<128&&j.push(q(k));for(e=n=j.length,n&&j.push(z);e<c;){for(t=d,m=0;m<c;++m)o<=(k=a[m])&&k<t&&(t=k);for(t-o>x((d-i)/(l=e+1))&&A("overflow"),i+=(t-o)*l,o=t,m=0;m<c;++m)if((k=a[m])<o&&++i>d&&A("overflow"),k==o){for(u=i,r=b;!(u<(p=r<=s?y:s+f<=r?f:r-s));r+=b)h=u-p,g=b-p,j.push(q(L(p+h%g,0))),u=x(h/g);j.push(q(L(u,0))),s=I(i,l,e==n),i=0,++e}++i,++o}return j.join("")}if(n={version:"1.4.1",ucs2:{decode:O,encode:_},decode:h,encode:j,toASCII:function(a){return g(a,function(a){return r.test(a)?"xn--"+j(a):a})},toUnicode:function(a){return g(a,function(a){return u.test(a)?h(a.slice(4).toLowerCase()):a})}},o&&i)if(T.exports==o)i.exports=n;else for(s in n)n.hasOwnProperty(s)&&(o[s]=n[s]);else a.punycode=n}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[2])(2)}); +!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).psl=a()}}(function(){return function s(m,t,u){function r(o,a){if(!t[o]){if(!m[o]){var i="function"==typeof require&&require;if(!a&&i)return i(o,!0);if(p)return p(o,!0);var e=new Error("Cannot find module '"+o+"'");throw e.code="MODULE_NOT_FOUND",e}var n=t[o]={exports:{}};m[o][0].call(n.exports,function(a){return r(m[o][1][a]||a)},n,n.exports,s,m,t,u)}return t[o].exports}for(var p="function"==typeof require&&require,a=0;a<u.length;a++)r(u[a]);return r}({1:[function(a,o,i){o.exports=["ac","com.ac","edu.ac","gov.ac","net.ac","mil.ac","org.ac","ad","nom.ad","ae","co.ae","net.ae","org.ae","sch.ae","ac.ae","gov.ae","mil.ae","aero","accident-investigation.aero","accident-prevention.aero","aerobatic.aero","aeroclub.aero","aerodrome.aero","agents.aero","aircraft.aero","airline.aero","airport.aero","air-surveillance.aero","airtraffic.aero","air-traffic-control.aero","ambulance.aero","amusement.aero","association.aero","author.aero","ballooning.aero","broker.aero","caa.aero","cargo.aero","catering.aero","certification.aero","championship.aero","charter.aero","civilaviation.aero","club.aero","conference.aero","consultant.aero","consulting.aero","control.aero","council.aero","crew.aero","design.aero","dgca.aero","educator.aero","emergency.aero","engine.aero","engineer.aero","entertainment.aero","equipment.aero","exchange.aero","express.aero","federation.aero","flight.aero","freight.aero","fuel.aero","gliding.aero","government.aero","groundhandling.aero","group.aero","hanggliding.aero","homebuilt.aero","insurance.aero","journal.aero","journalist.aero","leasing.aero","logistics.aero","magazine.aero","maintenance.aero","media.aero","microlight.aero","modelling.aero","navigation.aero","parachuting.aero","paragliding.aero","passenger-association.aero","pilot.aero","press.aero","production.aero","recreation.aero","repbody.aero","res.aero","research.aero","rotorcraft.aero","safety.aero","scientist.aero","services.aero","show.aero","skydiving.aero","software.aero","student.aero","trader.aero","trading.aero","trainer.aero","union.aero","workinggroup.aero","works.aero","af","gov.af","com.af","org.af","net.af","edu.af","ag","com.ag","org.ag","net.ag","co.ag","nom.ag","ai","off.ai","com.ai","net.ai","org.ai","al","com.al","edu.al","gov.al","mil.al","net.al","org.al","am","co.am","com.am","commune.am","net.am","org.am","ao","ed.ao","gv.ao","og.ao","co.ao","pb.ao","it.ao","aq","ar","com.ar","edu.ar","gob.ar","gov.ar","int.ar","mil.ar","musica.ar","net.ar","org.ar","tur.ar","arpa","e164.arpa","in-addr.arpa","ip6.arpa","iris.arpa","uri.arpa","urn.arpa","as","gov.as","asia","at","ac.at","co.at","gv.at","or.at","au","com.au","net.au","org.au","edu.au","gov.au","asn.au","id.au","info.au","conf.au","oz.au","act.au","nsw.au","nt.au","qld.au","sa.au","tas.au","vic.au","wa.au","act.edu.au","catholic.edu.au","nsw.edu.au","nt.edu.au","qld.edu.au","sa.edu.au","tas.edu.au","vic.edu.au","wa.edu.au","qld.gov.au","sa.gov.au","tas.gov.au","vic.gov.au","wa.gov.au","education.tas.edu.au","schools.nsw.edu.au","aw","com.aw","ax","az","com.az","net.az","int.az","gov.az","org.az","edu.az","info.az","pp.az","mil.az","name.az","pro.az","biz.az","ba","com.ba","edu.ba","gov.ba","mil.ba","net.ba","org.ba","bb","biz.bb","co.bb","com.bb","edu.bb","gov.bb","info.bb","net.bb","org.bb","store.bb","tv.bb","*.bd","be","ac.be","bf","gov.bf","bg","a.bg","b.bg","c.bg","d.bg","e.bg","f.bg","g.bg","h.bg","i.bg","j.bg","k.bg","l.bg","m.bg","n.bg","o.bg","p.bg","q.bg","r.bg","s.bg","t.bg","u.bg","v.bg","w.bg","x.bg","y.bg","z.bg","0.bg","1.bg","2.bg","3.bg","4.bg","5.bg","6.bg","7.bg","8.bg","9.bg","bh","com.bh","edu.bh","net.bh","org.bh","gov.bh","bi","co.bi","com.bi","edu.bi","or.bi","org.bi","biz","bj","asso.bj","barreau.bj","gouv.bj","bm","com.bm","edu.bm","gov.bm","net.bm","org.bm","bn","com.bn","edu.bn","gov.bn","net.bn","org.bn","bo","com.bo","edu.bo","gob.bo","int.bo","org.bo","net.bo","mil.bo","tv.bo","web.bo","academia.bo","agro.bo","arte.bo","blog.bo","bolivia.bo","ciencia.bo","cooperativa.bo","democracia.bo","deporte.bo","ecologia.bo","economia.bo","empresa.bo","indigena.bo","industria.bo","info.bo","medicina.bo","movimiento.bo","musica.bo","natural.bo","nombre.bo","noticias.bo","patria.bo","politica.bo","profesional.bo","plurinacional.bo","pueblo.bo","revista.bo","salud.bo","tecnologia.bo","tksat.bo","transporte.bo","wiki.bo","br","9guacu.br","abc.br","adm.br","adv.br","agr.br","aju.br","am.br","anani.br","aparecida.br","arq.br","art.br","ato.br","b.br","barueri.br","belem.br","bhz.br","bio.br","blog.br","bmd.br","boavista.br","bsb.br","campinagrande.br","campinas.br","caxias.br","cim.br","cng.br","cnt.br","com.br","contagem.br","coop.br","cri.br","cuiaba.br","curitiba.br","def.br","ecn.br","eco.br","edu.br","emp.br","eng.br","esp.br","etc.br","eti.br","far.br","feira.br","flog.br","floripa.br","fm.br","fnd.br","fortal.br","fot.br","foz.br","fst.br","g12.br","ggf.br","goiania.br","gov.br","ac.gov.br","al.gov.br","am.gov.br","ap.gov.br","ba.gov.br","ce.gov.br","df.gov.br","es.gov.br","go.gov.br","ma.gov.br","mg.gov.br","ms.gov.br","mt.gov.br","pa.gov.br","pb.gov.br","pe.gov.br","pi.gov.br","pr.gov.br","rj.gov.br","rn.gov.br","ro.gov.br","rr.gov.br","rs.gov.br","sc.gov.br","se.gov.br","sp.gov.br","to.gov.br","gru.br","imb.br","ind.br","inf.br","jab.br","jampa.br","jdf.br","joinville.br","jor.br","jus.br","leg.br","lel.br","londrina.br","macapa.br","maceio.br","manaus.br","maringa.br","mat.br","med.br","mil.br","morena.br","mp.br","mus.br","natal.br","net.br","niteroi.br","*.nom.br","not.br","ntr.br","odo.br","ong.br","org.br","osasco.br","palmas.br","poa.br","ppg.br","pro.br","psc.br","psi.br","pvh.br","qsl.br","radio.br","rec.br","recife.br","ribeirao.br","rio.br","riobranco.br","riopreto.br","salvador.br","sampa.br","santamaria.br","santoandre.br","saobernardo.br","saogonca.br","sjc.br","slg.br","slz.br","sorocaba.br","srv.br","taxi.br","tc.br","teo.br","the.br","tmp.br","trd.br","tur.br","tv.br","udi.br","vet.br","vix.br","vlog.br","wiki.br","zlg.br","bs","com.bs","net.bs","org.bs","edu.bs","gov.bs","bt","com.bt","edu.bt","gov.bt","net.bt","org.bt","bv","bw","co.bw","org.bw","by","gov.by","mil.by","com.by","of.by","bz","com.bz","net.bz","org.bz","edu.bz","gov.bz","ca","ab.ca","bc.ca","mb.ca","nb.ca","nf.ca","nl.ca","ns.ca","nt.ca","nu.ca","on.ca","pe.ca","qc.ca","sk.ca","yk.ca","gc.ca","cat","cc","cd","gov.cd","cf","cg","ch","ci","org.ci","or.ci","com.ci","co.ci","edu.ci","ed.ci","ac.ci","net.ci","go.ci","asso.ci","aéroport.ci","int.ci","presse.ci","md.ci","gouv.ci","*.ck","!www.ck","cl","gov.cl","gob.cl","co.cl","mil.cl","cm","co.cm","com.cm","gov.cm","net.cm","cn","ac.cn","com.cn","edu.cn","gov.cn","net.cn","org.cn","mil.cn","公司.cn","网络.cn","網絡.cn","ah.cn","bj.cn","cq.cn","fj.cn","gd.cn","gs.cn","gz.cn","gx.cn","ha.cn","hb.cn","he.cn","hi.cn","hl.cn","hn.cn","jl.cn","js.cn","jx.cn","ln.cn","nm.cn","nx.cn","qh.cn","sc.cn","sd.cn","sh.cn","sn.cn","sx.cn","tj.cn","xj.cn","xz.cn","yn.cn","zj.cn","hk.cn","mo.cn","tw.cn","co","arts.co","com.co","edu.co","firm.co","gov.co","info.co","int.co","mil.co","net.co","nom.co","org.co","rec.co","web.co","com","coop","cr","ac.cr","co.cr","ed.cr","fi.cr","go.cr","or.cr","sa.cr","cu","com.cu","edu.cu","org.cu","net.cu","gov.cu","inf.cu","cv","cw","com.cw","edu.cw","net.cw","org.cw","cx","gov.cx","cy","ac.cy","biz.cy","com.cy","ekloges.cy","gov.cy","ltd.cy","name.cy","net.cy","org.cy","parliament.cy","press.cy","pro.cy","tm.cy","cz","de","dj","dk","dm","com.dm","net.dm","org.dm","edu.dm","gov.dm","do","art.do","com.do","edu.do","gob.do","gov.do","mil.do","net.do","org.do","sld.do","web.do","dz","com.dz","org.dz","net.dz","gov.dz","edu.dz","asso.dz","pol.dz","art.dz","ec","com.ec","info.ec","net.ec","fin.ec","k12.ec","med.ec","pro.ec","org.ec","edu.ec","gov.ec","gob.ec","mil.ec","edu","ee","edu.ee","gov.ee","riik.ee","lib.ee","med.ee","com.ee","pri.ee","aip.ee","org.ee","fie.ee","eg","com.eg","edu.eg","eun.eg","gov.eg","mil.eg","name.eg","net.eg","org.eg","sci.eg","*.er","es","com.es","nom.es","org.es","gob.es","edu.es","et","com.et","gov.et","org.et","edu.et","biz.et","name.et","info.et","net.et","eu","fi","aland.fi","*.fj","*.fk","fm","fo","fr","asso.fr","com.fr","gouv.fr","nom.fr","prd.fr","tm.fr","aeroport.fr","avocat.fr","avoues.fr","cci.fr","chambagri.fr","chirurgiens-dentistes.fr","experts-comptables.fr","geometre-expert.fr","greta.fr","huissier-justice.fr","medecin.fr","notaires.fr","pharmacien.fr","port.fr","veterinaire.fr","ga","gb","gd","ge","com.ge","edu.ge","gov.ge","org.ge","mil.ge","net.ge","pvt.ge","gf","gg","co.gg","net.gg","org.gg","gh","com.gh","edu.gh","gov.gh","org.gh","mil.gh","gi","com.gi","ltd.gi","gov.gi","mod.gi","edu.gi","org.gi","gl","co.gl","com.gl","edu.gl","net.gl","org.gl","gm","gn","ac.gn","com.gn","edu.gn","gov.gn","org.gn","net.gn","gov","gp","com.gp","net.gp","mobi.gp","edu.gp","org.gp","asso.gp","gq","gr","com.gr","edu.gr","net.gr","org.gr","gov.gr","gs","gt","com.gt","edu.gt","gob.gt","ind.gt","mil.gt","net.gt","org.gt","gu","com.gu","edu.gu","gov.gu","guam.gu","info.gu","net.gu","org.gu","web.gu","gw","gy","co.gy","com.gy","edu.gy","gov.gy","net.gy","org.gy","hk","com.hk","edu.hk","gov.hk","idv.hk","net.hk","org.hk","公司.hk","教育.hk","敎育.hk","政府.hk","個人.hk","个人.hk","箇人.hk","網络.hk","网络.hk","组織.hk","網絡.hk","网絡.hk","组织.hk","組織.hk","組织.hk","hm","hn","com.hn","edu.hn","org.hn","net.hn","mil.hn","gob.hn","hr","iz.hr","from.hr","name.hr","com.hr","ht","com.ht","shop.ht","firm.ht","info.ht","adult.ht","net.ht","pro.ht","org.ht","med.ht","art.ht","coop.ht","pol.ht","asso.ht","edu.ht","rel.ht","gouv.ht","perso.ht","hu","co.hu","info.hu","org.hu","priv.hu","sport.hu","tm.hu","2000.hu","agrar.hu","bolt.hu","casino.hu","city.hu","erotica.hu","erotika.hu","film.hu","forum.hu","games.hu","hotel.hu","ingatlan.hu","jogasz.hu","konyvelo.hu","lakas.hu","media.hu","news.hu","reklam.hu","sex.hu","shop.hu","suli.hu","szex.hu","tozsde.hu","utazas.hu","video.hu","id","ac.id","biz.id","co.id","desa.id","go.id","mil.id","my.id","net.id","or.id","ponpes.id","sch.id","web.id","ie","gov.ie","il","ac.il","co.il","gov.il","idf.il","k12.il","muni.il","net.il","org.il","im","ac.im","co.im","com.im","ltd.co.im","net.im","org.im","plc.co.im","tt.im","tv.im","in","co.in","firm.in","net.in","org.in","gen.in","ind.in","nic.in","ac.in","edu.in","res.in","gov.in","mil.in","info","int","eu.int","io","com.io","iq","gov.iq","edu.iq","mil.iq","com.iq","org.iq","net.iq","ir","ac.ir","co.ir","gov.ir","id.ir","net.ir","org.ir","sch.ir","ایران.ir","ايران.ir","is","net.is","com.is","edu.is","gov.is","org.is","int.is","it","gov.it","edu.it","abr.it","abruzzo.it","aosta-valley.it","aostavalley.it","bas.it","basilicata.it","cal.it","calabria.it","cam.it","campania.it","emilia-romagna.it","emiliaromagna.it","emr.it","friuli-v-giulia.it","friuli-ve-giulia.it","friuli-vegiulia.it","friuli-venezia-giulia.it","friuli-veneziagiulia.it","friuli-vgiulia.it","friuliv-giulia.it","friulive-giulia.it","friulivegiulia.it","friulivenezia-giulia.it","friuliveneziagiulia.it","friulivgiulia.it","fvg.it","laz.it","lazio.it","lig.it","liguria.it","lom.it","lombardia.it","lombardy.it","lucania.it","mar.it","marche.it","mol.it","molise.it","piedmont.it","piemonte.it","pmn.it","pug.it","puglia.it","sar.it","sardegna.it","sardinia.it","sic.it","sicilia.it","sicily.it","taa.it","tos.it","toscana.it","trentin-sud-tirol.it","trentin-süd-tirol.it","trentin-sudtirol.it","trentin-südtirol.it","trentin-sued-tirol.it","trentin-suedtirol.it","trentino-a-adige.it","trentino-aadige.it","trentino-alto-adige.it","trentino-altoadige.it","trentino-s-tirol.it","trentino-stirol.it","trentino-sud-tirol.it","trentino-süd-tirol.it","trentino-sudtirol.it","trentino-südtirol.it","trentino-sued-tirol.it","trentino-suedtirol.it","trentino.it","trentinoa-adige.it","trentinoaadige.it","trentinoalto-adige.it","trentinoaltoadige.it","trentinos-tirol.it","trentinostirol.it","trentinosud-tirol.it","trentinosüd-tirol.it","trentinosudtirol.it","trentinosüdtirol.it","trentinosued-tirol.it","trentinosuedtirol.it","trentinsud-tirol.it","trentinsüd-tirol.it","trentinsudtirol.it","trentinsüdtirol.it","trentinsued-tirol.it","trentinsuedtirol.it","tuscany.it","umb.it","umbria.it","val-d-aosta.it","val-daosta.it","vald-aosta.it","valdaosta.it","valle-aosta.it","valle-d-aosta.it","valle-daosta.it","valleaosta.it","valled-aosta.it","valledaosta.it","vallee-aoste.it","vallée-aoste.it","vallee-d-aoste.it","vallée-d-aoste.it","valleeaoste.it","valléeaoste.it","valleedaoste.it","valléedaoste.it","vao.it","vda.it","ven.it","veneto.it","ag.it","agrigento.it","al.it","alessandria.it","alto-adige.it","altoadige.it","an.it","ancona.it","andria-barletta-trani.it","andria-trani-barletta.it","andriabarlettatrani.it","andriatranibarletta.it","ao.it","aosta.it","aoste.it","ap.it","aq.it","aquila.it","ar.it","arezzo.it","ascoli-piceno.it","ascolipiceno.it","asti.it","at.it","av.it","avellino.it","ba.it","balsan-sudtirol.it","balsan-südtirol.it","balsan-suedtirol.it","balsan.it","bari.it","barletta-trani-andria.it","barlettatraniandria.it","belluno.it","benevento.it","bergamo.it","bg.it","bi.it","biella.it","bl.it","bn.it","bo.it","bologna.it","bolzano-altoadige.it","bolzano.it","bozen-sudtirol.it","bozen-südtirol.it","bozen-suedtirol.it","bozen.it","br.it","brescia.it","brindisi.it","bs.it","bt.it","bulsan-sudtirol.it","bulsan-südtirol.it","bulsan-suedtirol.it","bulsan.it","bz.it","ca.it","cagliari.it","caltanissetta.it","campidano-medio.it","campidanomedio.it","campobasso.it","carbonia-iglesias.it","carboniaiglesias.it","carrara-massa.it","carraramassa.it","caserta.it","catania.it","catanzaro.it","cb.it","ce.it","cesena-forli.it","cesena-forlì.it","cesenaforli.it","cesenaforlì.it","ch.it","chieti.it","ci.it","cl.it","cn.it","co.it","como.it","cosenza.it","cr.it","cremona.it","crotone.it","cs.it","ct.it","cuneo.it","cz.it","dell-ogliastra.it","dellogliastra.it","en.it","enna.it","fc.it","fe.it","fermo.it","ferrara.it","fg.it","fi.it","firenze.it","florence.it","fm.it","foggia.it","forli-cesena.it","forlì-cesena.it","forlicesena.it","forlìcesena.it","fr.it","frosinone.it","ge.it","genoa.it","genova.it","go.it","gorizia.it","gr.it","grosseto.it","iglesias-carbonia.it","iglesiascarbonia.it","im.it","imperia.it","is.it","isernia.it","kr.it","la-spezia.it","laquila.it","laspezia.it","latina.it","lc.it","le.it","lecce.it","lecco.it","li.it","livorno.it","lo.it","lodi.it","lt.it","lu.it","lucca.it","macerata.it","mantova.it","massa-carrara.it","massacarrara.it","matera.it","mb.it","mc.it","me.it","medio-campidano.it","mediocampidano.it","messina.it","mi.it","milan.it","milano.it","mn.it","mo.it","modena.it","monza-brianza.it","monza-e-della-brianza.it","monza.it","monzabrianza.it","monzaebrianza.it","monzaedellabrianza.it","ms.it","mt.it","na.it","naples.it","napoli.it","no.it","novara.it","nu.it","nuoro.it","og.it","ogliastra.it","olbia-tempio.it","olbiatempio.it","or.it","oristano.it","ot.it","pa.it","padova.it","padua.it","palermo.it","parma.it","pavia.it","pc.it","pd.it","pe.it","perugia.it","pesaro-urbino.it","pesarourbino.it","pescara.it","pg.it","pi.it","piacenza.it","pisa.it","pistoia.it","pn.it","po.it","pordenone.it","potenza.it","pr.it","prato.it","pt.it","pu.it","pv.it","pz.it","ra.it","ragusa.it","ravenna.it","rc.it","re.it","reggio-calabria.it","reggio-emilia.it","reggiocalabria.it","reggioemilia.it","rg.it","ri.it","rieti.it","rimini.it","rm.it","rn.it","ro.it","roma.it","rome.it","rovigo.it","sa.it","salerno.it","sassari.it","savona.it","si.it","siena.it","siracusa.it","so.it","sondrio.it","sp.it","sr.it","ss.it","suedtirol.it","südtirol.it","sv.it","ta.it","taranto.it","te.it","tempio-olbia.it","tempioolbia.it","teramo.it","terni.it","tn.it","to.it","torino.it","tp.it","tr.it","trani-andria-barletta.it","trani-barletta-andria.it","traniandriabarletta.it","tranibarlettaandria.it","trapani.it","trento.it","treviso.it","trieste.it","ts.it","turin.it","tv.it","ud.it","udine.it","urbino-pesaro.it","urbinopesaro.it","va.it","varese.it","vb.it","vc.it","ve.it","venezia.it","venice.it","verbania.it","vercelli.it","verona.it","vi.it","vibo-valentia.it","vibovalentia.it","vicenza.it","viterbo.it","vr.it","vs.it","vt.it","vv.it","je","co.je","net.je","org.je","*.jm","jo","com.jo","org.jo","net.jo","edu.jo","sch.jo","gov.jo","mil.jo","name.jo","jobs","jp","ac.jp","ad.jp","co.jp","ed.jp","go.jp","gr.jp","lg.jp","ne.jp","or.jp","aichi.jp","akita.jp","aomori.jp","chiba.jp","ehime.jp","fukui.jp","fukuoka.jp","fukushima.jp","gifu.jp","gunma.jp","hiroshima.jp","hokkaido.jp","hyogo.jp","ibaraki.jp","ishikawa.jp","iwate.jp","kagawa.jp","kagoshima.jp","kanagawa.jp","kochi.jp","kumamoto.jp","kyoto.jp","mie.jp","miyagi.jp","miyazaki.jp","nagano.jp","nagasaki.jp","nara.jp","niigata.jp","oita.jp","okayama.jp","okinawa.jp","osaka.jp","saga.jp","saitama.jp","shiga.jp","shimane.jp","shizuoka.jp","tochigi.jp","tokushima.jp","tokyo.jp","tottori.jp","toyama.jp","wakayama.jp","yamagata.jp","yamaguchi.jp","yamanashi.jp","栃木.jp","愛知.jp","愛媛.jp","兵庫.jp","熊本.jp","茨城.jp","北海道.jp","千葉.jp","和歌山.jp","長崎.jp","長野.jp","新潟.jp","青森.jp","静岡.jp","東京.jp","石川.jp","埼玉.jp","三重.jp","京都.jp","佐賀.jp","大分.jp","大阪.jp","奈良.jp","宮城.jp","宮崎.jp","富山.jp","山口.jp","山形.jp","山梨.jp","岩手.jp","岐阜.jp","岡山.jp","島根.jp","広島.jp","徳島.jp","沖縄.jp","滋賀.jp","神奈川.jp","福井.jp","福岡.jp","福島.jp","秋田.jp","群馬.jp","香川.jp","高知.jp","鳥取.jp","鹿児島.jp","*.kawasaki.jp","*.kitakyushu.jp","*.kobe.jp","*.nagoya.jp","*.sapporo.jp","*.sendai.jp","*.yokohama.jp","!city.kawasaki.jp","!city.kitakyushu.jp","!city.kobe.jp","!city.nagoya.jp","!city.sapporo.jp","!city.sendai.jp","!city.yokohama.jp","aisai.aichi.jp","ama.aichi.jp","anjo.aichi.jp","asuke.aichi.jp","chiryu.aichi.jp","chita.aichi.jp","fuso.aichi.jp","gamagori.aichi.jp","handa.aichi.jp","hazu.aichi.jp","hekinan.aichi.jp","higashiura.aichi.jp","ichinomiya.aichi.jp","inazawa.aichi.jp","inuyama.aichi.jp","isshiki.aichi.jp","iwakura.aichi.jp","kanie.aichi.jp","kariya.aichi.jp","kasugai.aichi.jp","kira.aichi.jp","kiyosu.aichi.jp","komaki.aichi.jp","konan.aichi.jp","kota.aichi.jp","mihama.aichi.jp","miyoshi.aichi.jp","nishio.aichi.jp","nisshin.aichi.jp","obu.aichi.jp","oguchi.aichi.jp","oharu.aichi.jp","okazaki.aichi.jp","owariasahi.aichi.jp","seto.aichi.jp","shikatsu.aichi.jp","shinshiro.aichi.jp","shitara.aichi.jp","tahara.aichi.jp","takahama.aichi.jp","tobishima.aichi.jp","toei.aichi.jp","togo.aichi.jp","tokai.aichi.jp","tokoname.aichi.jp","toyoake.aichi.jp","toyohashi.aichi.jp","toyokawa.aichi.jp","toyone.aichi.jp","toyota.aichi.jp","tsushima.aichi.jp","yatomi.aichi.jp","akita.akita.jp","daisen.akita.jp","fujisato.akita.jp","gojome.akita.jp","hachirogata.akita.jp","happou.akita.jp","higashinaruse.akita.jp","honjo.akita.jp","honjyo.akita.jp","ikawa.akita.jp","kamikoani.akita.jp","kamioka.akita.jp","katagami.akita.jp","kazuno.akita.jp","kitaakita.akita.jp","kosaka.akita.jp","kyowa.akita.jp","misato.akita.jp","mitane.akita.jp","moriyoshi.akita.jp","nikaho.akita.jp","noshiro.akita.jp","odate.akita.jp","oga.akita.jp","ogata.akita.jp","semboku.akita.jp","yokote.akita.jp","yurihonjo.akita.jp","aomori.aomori.jp","gonohe.aomori.jp","hachinohe.aomori.jp","hashikami.aomori.jp","hiranai.aomori.jp","hirosaki.aomori.jp","itayanagi.aomori.jp","kuroishi.aomori.jp","misawa.aomori.jp","mutsu.aomori.jp","nakadomari.aomori.jp","noheji.aomori.jp","oirase.aomori.jp","owani.aomori.jp","rokunohe.aomori.jp","sannohe.aomori.jp","shichinohe.aomori.jp","shingo.aomori.jp","takko.aomori.jp","towada.aomori.jp","tsugaru.aomori.jp","tsuruta.aomori.jp","abiko.chiba.jp","asahi.chiba.jp","chonan.chiba.jp","chosei.chiba.jp","choshi.chiba.jp","chuo.chiba.jp","funabashi.chiba.jp","futtsu.chiba.jp","hanamigawa.chiba.jp","ichihara.chiba.jp","ichikawa.chiba.jp","ichinomiya.chiba.jp","inzai.chiba.jp","isumi.chiba.jp","kamagaya.chiba.jp","kamogawa.chiba.jp","kashiwa.chiba.jp","katori.chiba.jp","katsuura.chiba.jp","kimitsu.chiba.jp","kisarazu.chiba.jp","kozaki.chiba.jp","kujukuri.chiba.jp","kyonan.chiba.jp","matsudo.chiba.jp","midori.chiba.jp","mihama.chiba.jp","minamiboso.chiba.jp","mobara.chiba.jp","mutsuzawa.chiba.jp","nagara.chiba.jp","nagareyama.chiba.jp","narashino.chiba.jp","narita.chiba.jp","noda.chiba.jp","oamishirasato.chiba.jp","omigawa.chiba.jp","onjuku.chiba.jp","otaki.chiba.jp","sakae.chiba.jp","sakura.chiba.jp","shimofusa.chiba.jp","shirako.chiba.jp","shiroi.chiba.jp","shisui.chiba.jp","sodegaura.chiba.jp","sosa.chiba.jp","tako.chiba.jp","tateyama.chiba.jp","togane.chiba.jp","tohnosho.chiba.jp","tomisato.chiba.jp","urayasu.chiba.jp","yachimata.chiba.jp","yachiyo.chiba.jp","yokaichiba.chiba.jp","yokoshibahikari.chiba.jp","yotsukaido.chiba.jp","ainan.ehime.jp","honai.ehime.jp","ikata.ehime.jp","imabari.ehime.jp","iyo.ehime.jp","kamijima.ehime.jp","kihoku.ehime.jp","kumakogen.ehime.jp","masaki.ehime.jp","matsuno.ehime.jp","matsuyama.ehime.jp","namikata.ehime.jp","niihama.ehime.jp","ozu.ehime.jp","saijo.ehime.jp","seiyo.ehime.jp","shikokuchuo.ehime.jp","tobe.ehime.jp","toon.ehime.jp","uchiko.ehime.jp","uwajima.ehime.jp","yawatahama.ehime.jp","echizen.fukui.jp","eiheiji.fukui.jp","fukui.fukui.jp","ikeda.fukui.jp","katsuyama.fukui.jp","mihama.fukui.jp","minamiechizen.fukui.jp","obama.fukui.jp","ohi.fukui.jp","ono.fukui.jp","sabae.fukui.jp","sakai.fukui.jp","takahama.fukui.jp","tsuruga.fukui.jp","wakasa.fukui.jp","ashiya.fukuoka.jp","buzen.fukuoka.jp","chikugo.fukuoka.jp","chikuho.fukuoka.jp","chikujo.fukuoka.jp","chikushino.fukuoka.jp","chikuzen.fukuoka.jp","chuo.fukuoka.jp","dazaifu.fukuoka.jp","fukuchi.fukuoka.jp","hakata.fukuoka.jp","higashi.fukuoka.jp","hirokawa.fukuoka.jp","hisayama.fukuoka.jp","iizuka.fukuoka.jp","inatsuki.fukuoka.jp","kaho.fukuoka.jp","kasuga.fukuoka.jp","kasuya.fukuoka.jp","kawara.fukuoka.jp","keisen.fukuoka.jp","koga.fukuoka.jp","kurate.fukuoka.jp","kurogi.fukuoka.jp","kurume.fukuoka.jp","minami.fukuoka.jp","miyako.fukuoka.jp","miyama.fukuoka.jp","miyawaka.fukuoka.jp","mizumaki.fukuoka.jp","munakata.fukuoka.jp","nakagawa.fukuoka.jp","nakama.fukuoka.jp","nishi.fukuoka.jp","nogata.fukuoka.jp","ogori.fukuoka.jp","okagaki.fukuoka.jp","okawa.fukuoka.jp","oki.fukuoka.jp","omuta.fukuoka.jp","onga.fukuoka.jp","onojo.fukuoka.jp","oto.fukuoka.jp","saigawa.fukuoka.jp","sasaguri.fukuoka.jp","shingu.fukuoka.jp","shinyoshitomi.fukuoka.jp","shonai.fukuoka.jp","soeda.fukuoka.jp","sue.fukuoka.jp","tachiarai.fukuoka.jp","tagawa.fukuoka.jp","takata.fukuoka.jp","toho.fukuoka.jp","toyotsu.fukuoka.jp","tsuiki.fukuoka.jp","ukiha.fukuoka.jp","umi.fukuoka.jp","usui.fukuoka.jp","yamada.fukuoka.jp","yame.fukuoka.jp","yanagawa.fukuoka.jp","yukuhashi.fukuoka.jp","aizubange.fukushima.jp","aizumisato.fukushima.jp","aizuwakamatsu.fukushima.jp","asakawa.fukushima.jp","bandai.fukushima.jp","date.fukushima.jp","fukushima.fukushima.jp","furudono.fukushima.jp","futaba.fukushima.jp","hanawa.fukushima.jp","higashi.fukushima.jp","hirata.fukushima.jp","hirono.fukushima.jp","iitate.fukushima.jp","inawashiro.fukushima.jp","ishikawa.fukushima.jp","iwaki.fukushima.jp","izumizaki.fukushima.jp","kagamiishi.fukushima.jp","kaneyama.fukushima.jp","kawamata.fukushima.jp","kitakata.fukushima.jp","kitashiobara.fukushima.jp","koori.fukushima.jp","koriyama.fukushima.jp","kunimi.fukushima.jp","miharu.fukushima.jp","mishima.fukushima.jp","namie.fukushima.jp","nango.fukushima.jp","nishiaizu.fukushima.jp","nishigo.fukushima.jp","okuma.fukushima.jp","omotego.fukushima.jp","ono.fukushima.jp","otama.fukushima.jp","samegawa.fukushima.jp","shimogo.fukushima.jp","shirakawa.fukushima.jp","showa.fukushima.jp","soma.fukushima.jp","sukagawa.fukushima.jp","taishin.fukushima.jp","tamakawa.fukushima.jp","tanagura.fukushima.jp","tenei.fukushima.jp","yabuki.fukushima.jp","yamato.fukushima.jp","yamatsuri.fukushima.jp","yanaizu.fukushima.jp","yugawa.fukushima.jp","anpachi.gifu.jp","ena.gifu.jp","gifu.gifu.jp","ginan.gifu.jp","godo.gifu.jp","gujo.gifu.jp","hashima.gifu.jp","hichiso.gifu.jp","hida.gifu.jp","higashishirakawa.gifu.jp","ibigawa.gifu.jp","ikeda.gifu.jp","kakamigahara.gifu.jp","kani.gifu.jp","kasahara.gifu.jp","kasamatsu.gifu.jp","kawaue.gifu.jp","kitagata.gifu.jp","mino.gifu.jp","minokamo.gifu.jp","mitake.gifu.jp","mizunami.gifu.jp","motosu.gifu.jp","nakatsugawa.gifu.jp","ogaki.gifu.jp","sakahogi.gifu.jp","seki.gifu.jp","sekigahara.gifu.jp","shirakawa.gifu.jp","tajimi.gifu.jp","takayama.gifu.jp","tarui.gifu.jp","toki.gifu.jp","tomika.gifu.jp","wanouchi.gifu.jp","yamagata.gifu.jp","yaotsu.gifu.jp","yoro.gifu.jp","annaka.gunma.jp","chiyoda.gunma.jp","fujioka.gunma.jp","higashiagatsuma.gunma.jp","isesaki.gunma.jp","itakura.gunma.jp","kanna.gunma.jp","kanra.gunma.jp","katashina.gunma.jp","kawaba.gunma.jp","kiryu.gunma.jp","kusatsu.gunma.jp","maebashi.gunma.jp","meiwa.gunma.jp","midori.gunma.jp","minakami.gunma.jp","naganohara.gunma.jp","nakanojo.gunma.jp","nanmoku.gunma.jp","numata.gunma.jp","oizumi.gunma.jp","ora.gunma.jp","ota.gunma.jp","shibukawa.gunma.jp","shimonita.gunma.jp","shinto.gunma.jp","showa.gunma.jp","takasaki.gunma.jp","takayama.gunma.jp","tamamura.gunma.jp","tatebayashi.gunma.jp","tomioka.gunma.jp","tsukiyono.gunma.jp","tsumagoi.gunma.jp","ueno.gunma.jp","yoshioka.gunma.jp","asaminami.hiroshima.jp","daiwa.hiroshima.jp","etajima.hiroshima.jp","fuchu.hiroshima.jp","fukuyama.hiroshima.jp","hatsukaichi.hiroshima.jp","higashihiroshima.hiroshima.jp","hongo.hiroshima.jp","jinsekikogen.hiroshima.jp","kaita.hiroshima.jp","kui.hiroshima.jp","kumano.hiroshima.jp","kure.hiroshima.jp","mihara.hiroshima.jp","miyoshi.hiroshima.jp","naka.hiroshima.jp","onomichi.hiroshima.jp","osakikamijima.hiroshima.jp","otake.hiroshima.jp","saka.hiroshima.jp","sera.hiroshima.jp","seranishi.hiroshima.jp","shinichi.hiroshima.jp","shobara.hiroshima.jp","takehara.hiroshima.jp","abashiri.hokkaido.jp","abira.hokkaido.jp","aibetsu.hokkaido.jp","akabira.hokkaido.jp","akkeshi.hokkaido.jp","asahikawa.hokkaido.jp","ashibetsu.hokkaido.jp","ashoro.hokkaido.jp","assabu.hokkaido.jp","atsuma.hokkaido.jp","bibai.hokkaido.jp","biei.hokkaido.jp","bifuka.hokkaido.jp","bihoro.hokkaido.jp","biratori.hokkaido.jp","chippubetsu.hokkaido.jp","chitose.hokkaido.jp","date.hokkaido.jp","ebetsu.hokkaido.jp","embetsu.hokkaido.jp","eniwa.hokkaido.jp","erimo.hokkaido.jp","esan.hokkaido.jp","esashi.hokkaido.jp","fukagawa.hokkaido.jp","fukushima.hokkaido.jp","furano.hokkaido.jp","furubira.hokkaido.jp","haboro.hokkaido.jp","hakodate.hokkaido.jp","hamatonbetsu.hokkaido.jp","hidaka.hokkaido.jp","higashikagura.hokkaido.jp","higashikawa.hokkaido.jp","hiroo.hokkaido.jp","hokuryu.hokkaido.jp","hokuto.hokkaido.jp","honbetsu.hokkaido.jp","horokanai.hokkaido.jp","horonobe.hokkaido.jp","ikeda.hokkaido.jp","imakane.hokkaido.jp","ishikari.hokkaido.jp","iwamizawa.hokkaido.jp","iwanai.hokkaido.jp","kamifurano.hokkaido.jp","kamikawa.hokkaido.jp","kamishihoro.hokkaido.jp","kamisunagawa.hokkaido.jp","kamoenai.hokkaido.jp","kayabe.hokkaido.jp","kembuchi.hokkaido.jp","kikonai.hokkaido.jp","kimobetsu.hokkaido.jp","kitahiroshima.hokkaido.jp","kitami.hokkaido.jp","kiyosato.hokkaido.jp","koshimizu.hokkaido.jp","kunneppu.hokkaido.jp","kuriyama.hokkaido.jp","kuromatsunai.hokkaido.jp","kushiro.hokkaido.jp","kutchan.hokkaido.jp","kyowa.hokkaido.jp","mashike.hokkaido.jp","matsumae.hokkaido.jp","mikasa.hokkaido.jp","minamifurano.hokkaido.jp","mombetsu.hokkaido.jp","moseushi.hokkaido.jp","mukawa.hokkaido.jp","muroran.hokkaido.jp","naie.hokkaido.jp","nakagawa.hokkaido.jp","nakasatsunai.hokkaido.jp","nakatombetsu.hokkaido.jp","nanae.hokkaido.jp","nanporo.hokkaido.jp","nayoro.hokkaido.jp","nemuro.hokkaido.jp","niikappu.hokkaido.jp","niki.hokkaido.jp","nishiokoppe.hokkaido.jp","noboribetsu.hokkaido.jp","numata.hokkaido.jp","obihiro.hokkaido.jp","obira.hokkaido.jp","oketo.hokkaido.jp","okoppe.hokkaido.jp","otaru.hokkaido.jp","otobe.hokkaido.jp","otofuke.hokkaido.jp","otoineppu.hokkaido.jp","oumu.hokkaido.jp","ozora.hokkaido.jp","pippu.hokkaido.jp","rankoshi.hokkaido.jp","rebun.hokkaido.jp","rikubetsu.hokkaido.jp","rishiri.hokkaido.jp","rishirifuji.hokkaido.jp","saroma.hokkaido.jp","sarufutsu.hokkaido.jp","shakotan.hokkaido.jp","shari.hokkaido.jp","shibecha.hokkaido.jp","shibetsu.hokkaido.jp","shikabe.hokkaido.jp","shikaoi.hokkaido.jp","shimamaki.hokkaido.jp","shimizu.hokkaido.jp","shimokawa.hokkaido.jp","shinshinotsu.hokkaido.jp","shintoku.hokkaido.jp","shiranuka.hokkaido.jp","shiraoi.hokkaido.jp","shiriuchi.hokkaido.jp","sobetsu.hokkaido.jp","sunagawa.hokkaido.jp","taiki.hokkaido.jp","takasu.hokkaido.jp","takikawa.hokkaido.jp","takinoue.hokkaido.jp","teshikaga.hokkaido.jp","tobetsu.hokkaido.jp","tohma.hokkaido.jp","tomakomai.hokkaido.jp","tomari.hokkaido.jp","toya.hokkaido.jp","toyako.hokkaido.jp","toyotomi.hokkaido.jp","toyoura.hokkaido.jp","tsubetsu.hokkaido.jp","tsukigata.hokkaido.jp","urakawa.hokkaido.jp","urausu.hokkaido.jp","uryu.hokkaido.jp","utashinai.hokkaido.jp","wakkanai.hokkaido.jp","wassamu.hokkaido.jp","yakumo.hokkaido.jp","yoichi.hokkaido.jp","aioi.hyogo.jp","akashi.hyogo.jp","ako.hyogo.jp","amagasaki.hyogo.jp","aogaki.hyogo.jp","asago.hyogo.jp","ashiya.hyogo.jp","awaji.hyogo.jp","fukusaki.hyogo.jp","goshiki.hyogo.jp","harima.hyogo.jp","himeji.hyogo.jp","ichikawa.hyogo.jp","inagawa.hyogo.jp","itami.hyogo.jp","kakogawa.hyogo.jp","kamigori.hyogo.jp","kamikawa.hyogo.jp","kasai.hyogo.jp","kasuga.hyogo.jp","kawanishi.hyogo.jp","miki.hyogo.jp","minamiawaji.hyogo.jp","nishinomiya.hyogo.jp","nishiwaki.hyogo.jp","ono.hyogo.jp","sanda.hyogo.jp","sannan.hyogo.jp","sasayama.hyogo.jp","sayo.hyogo.jp","shingu.hyogo.jp","shinonsen.hyogo.jp","shiso.hyogo.jp","sumoto.hyogo.jp","taishi.hyogo.jp","taka.hyogo.jp","takarazuka.hyogo.jp","takasago.hyogo.jp","takino.hyogo.jp","tamba.hyogo.jp","tatsuno.hyogo.jp","toyooka.hyogo.jp","yabu.hyogo.jp","yashiro.hyogo.jp","yoka.hyogo.jp","yokawa.hyogo.jp","ami.ibaraki.jp","asahi.ibaraki.jp","bando.ibaraki.jp","chikusei.ibaraki.jp","daigo.ibaraki.jp","fujishiro.ibaraki.jp","hitachi.ibaraki.jp","hitachinaka.ibaraki.jp","hitachiomiya.ibaraki.jp","hitachiota.ibaraki.jp","ibaraki.ibaraki.jp","ina.ibaraki.jp","inashiki.ibaraki.jp","itako.ibaraki.jp","iwama.ibaraki.jp","joso.ibaraki.jp","kamisu.ibaraki.jp","kasama.ibaraki.jp","kashima.ibaraki.jp","kasumigaura.ibaraki.jp","koga.ibaraki.jp","miho.ibaraki.jp","mito.ibaraki.jp","moriya.ibaraki.jp","naka.ibaraki.jp","namegata.ibaraki.jp","oarai.ibaraki.jp","ogawa.ibaraki.jp","omitama.ibaraki.jp","ryugasaki.ibaraki.jp","sakai.ibaraki.jp","sakuragawa.ibaraki.jp","shimodate.ibaraki.jp","shimotsuma.ibaraki.jp","shirosato.ibaraki.jp","sowa.ibaraki.jp","suifu.ibaraki.jp","takahagi.ibaraki.jp","tamatsukuri.ibaraki.jp","tokai.ibaraki.jp","tomobe.ibaraki.jp","tone.ibaraki.jp","toride.ibaraki.jp","tsuchiura.ibaraki.jp","tsukuba.ibaraki.jp","uchihara.ibaraki.jp","ushiku.ibaraki.jp","yachiyo.ibaraki.jp","yamagata.ibaraki.jp","yawara.ibaraki.jp","yuki.ibaraki.jp","anamizu.ishikawa.jp","hakui.ishikawa.jp","hakusan.ishikawa.jp","kaga.ishikawa.jp","kahoku.ishikawa.jp","kanazawa.ishikawa.jp","kawakita.ishikawa.jp","komatsu.ishikawa.jp","nakanoto.ishikawa.jp","nanao.ishikawa.jp","nomi.ishikawa.jp","nonoichi.ishikawa.jp","noto.ishikawa.jp","shika.ishikawa.jp","suzu.ishikawa.jp","tsubata.ishikawa.jp","tsurugi.ishikawa.jp","uchinada.ishikawa.jp","wajima.ishikawa.jp","fudai.iwate.jp","fujisawa.iwate.jp","hanamaki.iwate.jp","hiraizumi.iwate.jp","hirono.iwate.jp","ichinohe.iwate.jp","ichinoseki.iwate.jp","iwaizumi.iwate.jp","iwate.iwate.jp","joboji.iwate.jp","kamaishi.iwate.jp","kanegasaki.iwate.jp","karumai.iwate.jp","kawai.iwate.jp","kitakami.iwate.jp","kuji.iwate.jp","kunohe.iwate.jp","kuzumaki.iwate.jp","miyako.iwate.jp","mizusawa.iwate.jp","morioka.iwate.jp","ninohe.iwate.jp","noda.iwate.jp","ofunato.iwate.jp","oshu.iwate.jp","otsuchi.iwate.jp","rikuzentakata.iwate.jp","shiwa.iwate.jp","shizukuishi.iwate.jp","sumita.iwate.jp","tanohata.iwate.jp","tono.iwate.jp","yahaba.iwate.jp","yamada.iwate.jp","ayagawa.kagawa.jp","higashikagawa.kagawa.jp","kanonji.kagawa.jp","kotohira.kagawa.jp","manno.kagawa.jp","marugame.kagawa.jp","mitoyo.kagawa.jp","naoshima.kagawa.jp","sanuki.kagawa.jp","tadotsu.kagawa.jp","takamatsu.kagawa.jp","tonosho.kagawa.jp","uchinomi.kagawa.jp","utazu.kagawa.jp","zentsuji.kagawa.jp","akune.kagoshima.jp","amami.kagoshima.jp","hioki.kagoshima.jp","isa.kagoshima.jp","isen.kagoshima.jp","izumi.kagoshima.jp","kagoshima.kagoshima.jp","kanoya.kagoshima.jp","kawanabe.kagoshima.jp","kinko.kagoshima.jp","kouyama.kagoshima.jp","makurazaki.kagoshima.jp","matsumoto.kagoshima.jp","minamitane.kagoshima.jp","nakatane.kagoshima.jp","nishinoomote.kagoshima.jp","satsumasendai.kagoshima.jp","soo.kagoshima.jp","tarumizu.kagoshima.jp","yusui.kagoshima.jp","aikawa.kanagawa.jp","atsugi.kanagawa.jp","ayase.kanagawa.jp","chigasaki.kanagawa.jp","ebina.kanagawa.jp","fujisawa.kanagawa.jp","hadano.kanagawa.jp","hakone.kanagawa.jp","hiratsuka.kanagawa.jp","isehara.kanagawa.jp","kaisei.kanagawa.jp","kamakura.kanagawa.jp","kiyokawa.kanagawa.jp","matsuda.kanagawa.jp","minamiashigara.kanagawa.jp","miura.kanagawa.jp","nakai.kanagawa.jp","ninomiya.kanagawa.jp","odawara.kanagawa.jp","oi.kanagawa.jp","oiso.kanagawa.jp","sagamihara.kanagawa.jp","samukawa.kanagawa.jp","tsukui.kanagawa.jp","yamakita.kanagawa.jp","yamato.kanagawa.jp","yokosuka.kanagawa.jp","yugawara.kanagawa.jp","zama.kanagawa.jp","zushi.kanagawa.jp","aki.kochi.jp","geisei.kochi.jp","hidaka.kochi.jp","higashitsuno.kochi.jp","ino.kochi.jp","kagami.kochi.jp","kami.kochi.jp","kitagawa.kochi.jp","kochi.kochi.jp","mihara.kochi.jp","motoyama.kochi.jp","muroto.kochi.jp","nahari.kochi.jp","nakamura.kochi.jp","nankoku.kochi.jp","nishitosa.kochi.jp","niyodogawa.kochi.jp","ochi.kochi.jp","okawa.kochi.jp","otoyo.kochi.jp","otsuki.kochi.jp","sakawa.kochi.jp","sukumo.kochi.jp","susaki.kochi.jp","tosa.kochi.jp","tosashimizu.kochi.jp","toyo.kochi.jp","tsuno.kochi.jp","umaji.kochi.jp","yasuda.kochi.jp","yusuhara.kochi.jp","amakusa.kumamoto.jp","arao.kumamoto.jp","aso.kumamoto.jp","choyo.kumamoto.jp","gyokuto.kumamoto.jp","kamiamakusa.kumamoto.jp","kikuchi.kumamoto.jp","kumamoto.kumamoto.jp","mashiki.kumamoto.jp","mifune.kumamoto.jp","minamata.kumamoto.jp","minamioguni.kumamoto.jp","nagasu.kumamoto.jp","nishihara.kumamoto.jp","oguni.kumamoto.jp","ozu.kumamoto.jp","sumoto.kumamoto.jp","takamori.kumamoto.jp","uki.kumamoto.jp","uto.kumamoto.jp","yamaga.kumamoto.jp","yamato.kumamoto.jp","yatsushiro.kumamoto.jp","ayabe.kyoto.jp","fukuchiyama.kyoto.jp","higashiyama.kyoto.jp","ide.kyoto.jp","ine.kyoto.jp","joyo.kyoto.jp","kameoka.kyoto.jp","kamo.kyoto.jp","kita.kyoto.jp","kizu.kyoto.jp","kumiyama.kyoto.jp","kyotamba.kyoto.jp","kyotanabe.kyoto.jp","kyotango.kyoto.jp","maizuru.kyoto.jp","minami.kyoto.jp","minamiyamashiro.kyoto.jp","miyazu.kyoto.jp","muko.kyoto.jp","nagaokakyo.kyoto.jp","nakagyo.kyoto.jp","nantan.kyoto.jp","oyamazaki.kyoto.jp","sakyo.kyoto.jp","seika.kyoto.jp","tanabe.kyoto.jp","uji.kyoto.jp","ujitawara.kyoto.jp","wazuka.kyoto.jp","yamashina.kyoto.jp","yawata.kyoto.jp","asahi.mie.jp","inabe.mie.jp","ise.mie.jp","kameyama.mie.jp","kawagoe.mie.jp","kiho.mie.jp","kisosaki.mie.jp","kiwa.mie.jp","komono.mie.jp","kumano.mie.jp","kuwana.mie.jp","matsusaka.mie.jp","meiwa.mie.jp","mihama.mie.jp","minamiise.mie.jp","misugi.mie.jp","miyama.mie.jp","nabari.mie.jp","shima.mie.jp","suzuka.mie.jp","tado.mie.jp","taiki.mie.jp","taki.mie.jp","tamaki.mie.jp","toba.mie.jp","tsu.mie.jp","udono.mie.jp","ureshino.mie.jp","watarai.mie.jp","yokkaichi.mie.jp","furukawa.miyagi.jp","higashimatsushima.miyagi.jp","ishinomaki.miyagi.jp","iwanuma.miyagi.jp","kakuda.miyagi.jp","kami.miyagi.jp","kawasaki.miyagi.jp","marumori.miyagi.jp","matsushima.miyagi.jp","minamisanriku.miyagi.jp","misato.miyagi.jp","murata.miyagi.jp","natori.miyagi.jp","ogawara.miyagi.jp","ohira.miyagi.jp","onagawa.miyagi.jp","osaki.miyagi.jp","rifu.miyagi.jp","semine.miyagi.jp","shibata.miyagi.jp","shichikashuku.miyagi.jp","shikama.miyagi.jp","shiogama.miyagi.jp","shiroishi.miyagi.jp","tagajo.miyagi.jp","taiwa.miyagi.jp","tome.miyagi.jp","tomiya.miyagi.jp","wakuya.miyagi.jp","watari.miyagi.jp","yamamoto.miyagi.jp","zao.miyagi.jp","aya.miyazaki.jp","ebino.miyazaki.jp","gokase.miyazaki.jp","hyuga.miyazaki.jp","kadogawa.miyazaki.jp","kawaminami.miyazaki.jp","kijo.miyazaki.jp","kitagawa.miyazaki.jp","kitakata.miyazaki.jp","kitaura.miyazaki.jp","kobayashi.miyazaki.jp","kunitomi.miyazaki.jp","kushima.miyazaki.jp","mimata.miyazaki.jp","miyakonojo.miyazaki.jp","miyazaki.miyazaki.jp","morotsuka.miyazaki.jp","nichinan.miyazaki.jp","nishimera.miyazaki.jp","nobeoka.miyazaki.jp","saito.miyazaki.jp","shiiba.miyazaki.jp","shintomi.miyazaki.jp","takaharu.miyazaki.jp","takanabe.miyazaki.jp","takazaki.miyazaki.jp","tsuno.miyazaki.jp","achi.nagano.jp","agematsu.nagano.jp","anan.nagano.jp","aoki.nagano.jp","asahi.nagano.jp","azumino.nagano.jp","chikuhoku.nagano.jp","chikuma.nagano.jp","chino.nagano.jp","fujimi.nagano.jp","hakuba.nagano.jp","hara.nagano.jp","hiraya.nagano.jp","iida.nagano.jp","iijima.nagano.jp","iiyama.nagano.jp","iizuna.nagano.jp","ikeda.nagano.jp","ikusaka.nagano.jp","ina.nagano.jp","karuizawa.nagano.jp","kawakami.nagano.jp","kiso.nagano.jp","kisofukushima.nagano.jp","kitaaiki.nagano.jp","komagane.nagano.jp","komoro.nagano.jp","matsukawa.nagano.jp","matsumoto.nagano.jp","miasa.nagano.jp","minamiaiki.nagano.jp","minamimaki.nagano.jp","minamiminowa.nagano.jp","minowa.nagano.jp","miyada.nagano.jp","miyota.nagano.jp","mochizuki.nagano.jp","nagano.nagano.jp","nagawa.nagano.jp","nagiso.nagano.jp","nakagawa.nagano.jp","nakano.nagano.jp","nozawaonsen.nagano.jp","obuse.nagano.jp","ogawa.nagano.jp","okaya.nagano.jp","omachi.nagano.jp","omi.nagano.jp","ookuwa.nagano.jp","ooshika.nagano.jp","otaki.nagano.jp","otari.nagano.jp","sakae.nagano.jp","sakaki.nagano.jp","saku.nagano.jp","sakuho.nagano.jp","shimosuwa.nagano.jp","shinanomachi.nagano.jp","shiojiri.nagano.jp","suwa.nagano.jp","suzaka.nagano.jp","takagi.nagano.jp","takamori.nagano.jp","takayama.nagano.jp","tateshina.nagano.jp","tatsuno.nagano.jp","togakushi.nagano.jp","togura.nagano.jp","tomi.nagano.jp","ueda.nagano.jp","wada.nagano.jp","yamagata.nagano.jp","yamanouchi.nagano.jp","yasaka.nagano.jp","yasuoka.nagano.jp","chijiwa.nagasaki.jp","futsu.nagasaki.jp","goto.nagasaki.jp","hasami.nagasaki.jp","hirado.nagasaki.jp","iki.nagasaki.jp","isahaya.nagasaki.jp","kawatana.nagasaki.jp","kuchinotsu.nagasaki.jp","matsuura.nagasaki.jp","nagasaki.nagasaki.jp","obama.nagasaki.jp","omura.nagasaki.jp","oseto.nagasaki.jp","saikai.nagasaki.jp","sasebo.nagasaki.jp","seihi.nagasaki.jp","shimabara.nagasaki.jp","shinkamigoto.nagasaki.jp","togitsu.nagasaki.jp","tsushima.nagasaki.jp","unzen.nagasaki.jp","ando.nara.jp","gose.nara.jp","heguri.nara.jp","higashiyoshino.nara.jp","ikaruga.nara.jp","ikoma.nara.jp","kamikitayama.nara.jp","kanmaki.nara.jp","kashiba.nara.jp","kashihara.nara.jp","katsuragi.nara.jp","kawai.nara.jp","kawakami.nara.jp","kawanishi.nara.jp","koryo.nara.jp","kurotaki.nara.jp","mitsue.nara.jp","miyake.nara.jp","nara.nara.jp","nosegawa.nara.jp","oji.nara.jp","ouda.nara.jp","oyodo.nara.jp","sakurai.nara.jp","sango.nara.jp","shimoichi.nara.jp","shimokitayama.nara.jp","shinjo.nara.jp","soni.nara.jp","takatori.nara.jp","tawaramoto.nara.jp","tenkawa.nara.jp","tenri.nara.jp","uda.nara.jp","yamatokoriyama.nara.jp","yamatotakada.nara.jp","yamazoe.nara.jp","yoshino.nara.jp","aga.niigata.jp","agano.niigata.jp","gosen.niigata.jp","itoigawa.niigata.jp","izumozaki.niigata.jp","joetsu.niigata.jp","kamo.niigata.jp","kariwa.niigata.jp","kashiwazaki.niigata.jp","minamiuonuma.niigata.jp","mitsuke.niigata.jp","muika.niigata.jp","murakami.niigata.jp","myoko.niigata.jp","nagaoka.niigata.jp","niigata.niigata.jp","ojiya.niigata.jp","omi.niigata.jp","sado.niigata.jp","sanjo.niigata.jp","seiro.niigata.jp","seirou.niigata.jp","sekikawa.niigata.jp","shibata.niigata.jp","tagami.niigata.jp","tainai.niigata.jp","tochio.niigata.jp","tokamachi.niigata.jp","tsubame.niigata.jp","tsunan.niigata.jp","uonuma.niigata.jp","yahiko.niigata.jp","yoita.niigata.jp","yuzawa.niigata.jp","beppu.oita.jp","bungoono.oita.jp","bungotakada.oita.jp","hasama.oita.jp","hiji.oita.jp","himeshima.oita.jp","hita.oita.jp","kamitsue.oita.jp","kokonoe.oita.jp","kuju.oita.jp","kunisaki.oita.jp","kusu.oita.jp","oita.oita.jp","saiki.oita.jp","taketa.oita.jp","tsukumi.oita.jp","usa.oita.jp","usuki.oita.jp","yufu.oita.jp","akaiwa.okayama.jp","asakuchi.okayama.jp","bizen.okayama.jp","hayashima.okayama.jp","ibara.okayama.jp","kagamino.okayama.jp","kasaoka.okayama.jp","kibichuo.okayama.jp","kumenan.okayama.jp","kurashiki.okayama.jp","maniwa.okayama.jp","misaki.okayama.jp","nagi.okayama.jp","niimi.okayama.jp","nishiawakura.okayama.jp","okayama.okayama.jp","satosho.okayama.jp","setouchi.okayama.jp","shinjo.okayama.jp","shoo.okayama.jp","soja.okayama.jp","takahashi.okayama.jp","tamano.okayama.jp","tsuyama.okayama.jp","wake.okayama.jp","yakage.okayama.jp","aguni.okinawa.jp","ginowan.okinawa.jp","ginoza.okinawa.jp","gushikami.okinawa.jp","haebaru.okinawa.jp","higashi.okinawa.jp","hirara.okinawa.jp","iheya.okinawa.jp","ishigaki.okinawa.jp","ishikawa.okinawa.jp","itoman.okinawa.jp","izena.okinawa.jp","kadena.okinawa.jp","kin.okinawa.jp","kitadaito.okinawa.jp","kitanakagusuku.okinawa.jp","kumejima.okinawa.jp","kunigami.okinawa.jp","minamidaito.okinawa.jp","motobu.okinawa.jp","nago.okinawa.jp","naha.okinawa.jp","nakagusuku.okinawa.jp","nakijin.okinawa.jp","nanjo.okinawa.jp","nishihara.okinawa.jp","ogimi.okinawa.jp","okinawa.okinawa.jp","onna.okinawa.jp","shimoji.okinawa.jp","taketomi.okinawa.jp","tarama.okinawa.jp","tokashiki.okinawa.jp","tomigusuku.okinawa.jp","tonaki.okinawa.jp","urasoe.okinawa.jp","uruma.okinawa.jp","yaese.okinawa.jp","yomitan.okinawa.jp","yonabaru.okinawa.jp","yonaguni.okinawa.jp","zamami.okinawa.jp","abeno.osaka.jp","chihayaakasaka.osaka.jp","chuo.osaka.jp","daito.osaka.jp","fujiidera.osaka.jp","habikino.osaka.jp","hannan.osaka.jp","higashiosaka.osaka.jp","higashisumiyoshi.osaka.jp","higashiyodogawa.osaka.jp","hirakata.osaka.jp","ibaraki.osaka.jp","ikeda.osaka.jp","izumi.osaka.jp","izumiotsu.osaka.jp","izumisano.osaka.jp","kadoma.osaka.jp","kaizuka.osaka.jp","kanan.osaka.jp","kashiwara.osaka.jp","katano.osaka.jp","kawachinagano.osaka.jp","kishiwada.osaka.jp","kita.osaka.jp","kumatori.osaka.jp","matsubara.osaka.jp","minato.osaka.jp","minoh.osaka.jp","misaki.osaka.jp","moriguchi.osaka.jp","neyagawa.osaka.jp","nishi.osaka.jp","nose.osaka.jp","osakasayama.osaka.jp","sakai.osaka.jp","sayama.osaka.jp","sennan.osaka.jp","settsu.osaka.jp","shijonawate.osaka.jp","shimamoto.osaka.jp","suita.osaka.jp","tadaoka.osaka.jp","taishi.osaka.jp","tajiri.osaka.jp","takaishi.osaka.jp","takatsuki.osaka.jp","tondabayashi.osaka.jp","toyonaka.osaka.jp","toyono.osaka.jp","yao.osaka.jp","ariake.saga.jp","arita.saga.jp","fukudomi.saga.jp","genkai.saga.jp","hamatama.saga.jp","hizen.saga.jp","imari.saga.jp","kamimine.saga.jp","kanzaki.saga.jp","karatsu.saga.jp","kashima.saga.jp","kitagata.saga.jp","kitahata.saga.jp","kiyama.saga.jp","kouhoku.saga.jp","kyuragi.saga.jp","nishiarita.saga.jp","ogi.saga.jp","omachi.saga.jp","ouchi.saga.jp","saga.saga.jp","shiroishi.saga.jp","taku.saga.jp","tara.saga.jp","tosu.saga.jp","yoshinogari.saga.jp","arakawa.saitama.jp","asaka.saitama.jp","chichibu.saitama.jp","fujimi.saitama.jp","fujimino.saitama.jp","fukaya.saitama.jp","hanno.saitama.jp","hanyu.saitama.jp","hasuda.saitama.jp","hatogaya.saitama.jp","hatoyama.saitama.jp","hidaka.saitama.jp","higashichichibu.saitama.jp","higashimatsuyama.saitama.jp","honjo.saitama.jp","ina.saitama.jp","iruma.saitama.jp","iwatsuki.saitama.jp","kamiizumi.saitama.jp","kamikawa.saitama.jp","kamisato.saitama.jp","kasukabe.saitama.jp","kawagoe.saitama.jp","kawaguchi.saitama.jp","kawajima.saitama.jp","kazo.saitama.jp","kitamoto.saitama.jp","koshigaya.saitama.jp","kounosu.saitama.jp","kuki.saitama.jp","kumagaya.saitama.jp","matsubushi.saitama.jp","minano.saitama.jp","misato.saitama.jp","miyashiro.saitama.jp","miyoshi.saitama.jp","moroyama.saitama.jp","nagatoro.saitama.jp","namegawa.saitama.jp","niiza.saitama.jp","ogano.saitama.jp","ogawa.saitama.jp","ogose.saitama.jp","okegawa.saitama.jp","omiya.saitama.jp","otaki.saitama.jp","ranzan.saitama.jp","ryokami.saitama.jp","saitama.saitama.jp","sakado.saitama.jp","satte.saitama.jp","sayama.saitama.jp","shiki.saitama.jp","shiraoka.saitama.jp","soka.saitama.jp","sugito.saitama.jp","toda.saitama.jp","tokigawa.saitama.jp","tokorozawa.saitama.jp","tsurugashima.saitama.jp","urawa.saitama.jp","warabi.saitama.jp","yashio.saitama.jp","yokoze.saitama.jp","yono.saitama.jp","yorii.saitama.jp","yoshida.saitama.jp","yoshikawa.saitama.jp","yoshimi.saitama.jp","aisho.shiga.jp","gamo.shiga.jp","higashiomi.shiga.jp","hikone.shiga.jp","koka.shiga.jp","konan.shiga.jp","kosei.shiga.jp","koto.shiga.jp","kusatsu.shiga.jp","maibara.shiga.jp","moriyama.shiga.jp","nagahama.shiga.jp","nishiazai.shiga.jp","notogawa.shiga.jp","omihachiman.shiga.jp","otsu.shiga.jp","ritto.shiga.jp","ryuoh.shiga.jp","takashima.shiga.jp","takatsuki.shiga.jp","torahime.shiga.jp","toyosato.shiga.jp","yasu.shiga.jp","akagi.shimane.jp","ama.shimane.jp","gotsu.shimane.jp","hamada.shimane.jp","higashiizumo.shimane.jp","hikawa.shimane.jp","hikimi.shimane.jp","izumo.shimane.jp","kakinoki.shimane.jp","masuda.shimane.jp","matsue.shimane.jp","misato.shimane.jp","nishinoshima.shimane.jp","ohda.shimane.jp","okinoshima.shimane.jp","okuizumo.shimane.jp","shimane.shimane.jp","tamayu.shimane.jp","tsuwano.shimane.jp","unnan.shimane.jp","yakumo.shimane.jp","yasugi.shimane.jp","yatsuka.shimane.jp","arai.shizuoka.jp","atami.shizuoka.jp","fuji.shizuoka.jp","fujieda.shizuoka.jp","fujikawa.shizuoka.jp","fujinomiya.shizuoka.jp","fukuroi.shizuoka.jp","gotemba.shizuoka.jp","haibara.shizuoka.jp","hamamatsu.shizuoka.jp","higashiizu.shizuoka.jp","ito.shizuoka.jp","iwata.shizuoka.jp","izu.shizuoka.jp","izunokuni.shizuoka.jp","kakegawa.shizuoka.jp","kannami.shizuoka.jp","kawanehon.shizuoka.jp","kawazu.shizuoka.jp","kikugawa.shizuoka.jp","kosai.shizuoka.jp","makinohara.shizuoka.jp","matsuzaki.shizuoka.jp","minamiizu.shizuoka.jp","mishima.shizuoka.jp","morimachi.shizuoka.jp","nishiizu.shizuoka.jp","numazu.shizuoka.jp","omaezaki.shizuoka.jp","shimada.shizuoka.jp","shimizu.shizuoka.jp","shimoda.shizuoka.jp","shizuoka.shizuoka.jp","susono.shizuoka.jp","yaizu.shizuoka.jp","yoshida.shizuoka.jp","ashikaga.tochigi.jp","bato.tochigi.jp","haga.tochigi.jp","ichikai.tochigi.jp","iwafune.tochigi.jp","kaminokawa.tochigi.jp","kanuma.tochigi.jp","karasuyama.tochigi.jp","kuroiso.tochigi.jp","mashiko.tochigi.jp","mibu.tochigi.jp","moka.tochigi.jp","motegi.tochigi.jp","nasu.tochigi.jp","nasushiobara.tochigi.jp","nikko.tochigi.jp","nishikata.tochigi.jp","nogi.tochigi.jp","ohira.tochigi.jp","ohtawara.tochigi.jp","oyama.tochigi.jp","sakura.tochigi.jp","sano.tochigi.jp","shimotsuke.tochigi.jp","shioya.tochigi.jp","takanezawa.tochigi.jp","tochigi.tochigi.jp","tsuga.tochigi.jp","ujiie.tochigi.jp","utsunomiya.tochigi.jp","yaita.tochigi.jp","aizumi.tokushima.jp","anan.tokushima.jp","ichiba.tokushima.jp","itano.tokushima.jp","kainan.tokushima.jp","komatsushima.tokushima.jp","matsushige.tokushima.jp","mima.tokushima.jp","minami.tokushima.jp","miyoshi.tokushima.jp","mugi.tokushima.jp","nakagawa.tokushima.jp","naruto.tokushima.jp","sanagochi.tokushima.jp","shishikui.tokushima.jp","tokushima.tokushima.jp","wajiki.tokushima.jp","adachi.tokyo.jp","akiruno.tokyo.jp","akishima.tokyo.jp","aogashima.tokyo.jp","arakawa.tokyo.jp","bunkyo.tokyo.jp","chiyoda.tokyo.jp","chofu.tokyo.jp","chuo.tokyo.jp","edogawa.tokyo.jp","fuchu.tokyo.jp","fussa.tokyo.jp","hachijo.tokyo.jp","hachioji.tokyo.jp","hamura.tokyo.jp","higashikurume.tokyo.jp","higashimurayama.tokyo.jp","higashiyamato.tokyo.jp","hino.tokyo.jp","hinode.tokyo.jp","hinohara.tokyo.jp","inagi.tokyo.jp","itabashi.tokyo.jp","katsushika.tokyo.jp","kita.tokyo.jp","kiyose.tokyo.jp","kodaira.tokyo.jp","koganei.tokyo.jp","kokubunji.tokyo.jp","komae.tokyo.jp","koto.tokyo.jp","kouzushima.tokyo.jp","kunitachi.tokyo.jp","machida.tokyo.jp","meguro.tokyo.jp","minato.tokyo.jp","mitaka.tokyo.jp","mizuho.tokyo.jp","musashimurayama.tokyo.jp","musashino.tokyo.jp","nakano.tokyo.jp","nerima.tokyo.jp","ogasawara.tokyo.jp","okutama.tokyo.jp","ome.tokyo.jp","oshima.tokyo.jp","ota.tokyo.jp","setagaya.tokyo.jp","shibuya.tokyo.jp","shinagawa.tokyo.jp","shinjuku.tokyo.jp","suginami.tokyo.jp","sumida.tokyo.jp","tachikawa.tokyo.jp","taito.tokyo.jp","tama.tokyo.jp","toshima.tokyo.jp","chizu.tottori.jp","hino.tottori.jp","kawahara.tottori.jp","koge.tottori.jp","kotoura.tottori.jp","misasa.tottori.jp","nanbu.tottori.jp","nichinan.tottori.jp","sakaiminato.tottori.jp","tottori.tottori.jp","wakasa.tottori.jp","yazu.tottori.jp","yonago.tottori.jp","asahi.toyama.jp","fuchu.toyama.jp","fukumitsu.toyama.jp","funahashi.toyama.jp","himi.toyama.jp","imizu.toyama.jp","inami.toyama.jp","johana.toyama.jp","kamiichi.toyama.jp","kurobe.toyama.jp","nakaniikawa.toyama.jp","namerikawa.toyama.jp","nanto.toyama.jp","nyuzen.toyama.jp","oyabe.toyama.jp","taira.toyama.jp","takaoka.toyama.jp","tateyama.toyama.jp","toga.toyama.jp","tonami.toyama.jp","toyama.toyama.jp","unazuki.toyama.jp","uozu.toyama.jp","yamada.toyama.jp","arida.wakayama.jp","aridagawa.wakayama.jp","gobo.wakayama.jp","hashimoto.wakayama.jp","hidaka.wakayama.jp","hirogawa.wakayama.jp","inami.wakayama.jp","iwade.wakayama.jp","kainan.wakayama.jp","kamitonda.wakayama.jp","katsuragi.wakayama.jp","kimino.wakayama.jp","kinokawa.wakayama.jp","kitayama.wakayama.jp","koya.wakayama.jp","koza.wakayama.jp","kozagawa.wakayama.jp","kudoyama.wakayama.jp","kushimoto.wakayama.jp","mihama.wakayama.jp","misato.wakayama.jp","nachikatsuura.wakayama.jp","shingu.wakayama.jp","shirahama.wakayama.jp","taiji.wakayama.jp","tanabe.wakayama.jp","wakayama.wakayama.jp","yuasa.wakayama.jp","yura.wakayama.jp","asahi.yamagata.jp","funagata.yamagata.jp","higashine.yamagata.jp","iide.yamagata.jp","kahoku.yamagata.jp","kaminoyama.yamagata.jp","kaneyama.yamagata.jp","kawanishi.yamagata.jp","mamurogawa.yamagata.jp","mikawa.yamagata.jp","murayama.yamagata.jp","nagai.yamagata.jp","nakayama.yamagata.jp","nanyo.yamagata.jp","nishikawa.yamagata.jp","obanazawa.yamagata.jp","oe.yamagata.jp","oguni.yamagata.jp","ohkura.yamagata.jp","oishida.yamagata.jp","sagae.yamagata.jp","sakata.yamagata.jp","sakegawa.yamagata.jp","shinjo.yamagata.jp","shirataka.yamagata.jp","shonai.yamagata.jp","takahata.yamagata.jp","tendo.yamagata.jp","tozawa.yamagata.jp","tsuruoka.yamagata.jp","yamagata.yamagata.jp","yamanobe.yamagata.jp","yonezawa.yamagata.jp","yuza.yamagata.jp","abu.yamaguchi.jp","hagi.yamaguchi.jp","hikari.yamaguchi.jp","hofu.yamaguchi.jp","iwakuni.yamaguchi.jp","kudamatsu.yamaguchi.jp","mitou.yamaguchi.jp","nagato.yamaguchi.jp","oshima.yamaguchi.jp","shimonoseki.yamaguchi.jp","shunan.yamaguchi.jp","tabuse.yamaguchi.jp","tokuyama.yamaguchi.jp","toyota.yamaguchi.jp","ube.yamaguchi.jp","yuu.yamaguchi.jp","chuo.yamanashi.jp","doshi.yamanashi.jp","fuefuki.yamanashi.jp","fujikawa.yamanashi.jp","fujikawaguchiko.yamanashi.jp","fujiyoshida.yamanashi.jp","hayakawa.yamanashi.jp","hokuto.yamanashi.jp","ichikawamisato.yamanashi.jp","kai.yamanashi.jp","kofu.yamanashi.jp","koshu.yamanashi.jp","kosuge.yamanashi.jp","minami-alps.yamanashi.jp","minobu.yamanashi.jp","nakamichi.yamanashi.jp","nanbu.yamanashi.jp","narusawa.yamanashi.jp","nirasaki.yamanashi.jp","nishikatsura.yamanashi.jp","oshino.yamanashi.jp","otsuki.yamanashi.jp","showa.yamanashi.jp","tabayama.yamanashi.jp","tsuru.yamanashi.jp","uenohara.yamanashi.jp","yamanakako.yamanashi.jp","yamanashi.yamanashi.jp","ke","ac.ke","co.ke","go.ke","info.ke","me.ke","mobi.ke","ne.ke","or.ke","sc.ke","kg","org.kg","net.kg","com.kg","edu.kg","gov.kg","mil.kg","*.kh","ki","edu.ki","biz.ki","net.ki","org.ki","gov.ki","info.ki","com.ki","km","org.km","nom.km","gov.km","prd.km","tm.km","edu.km","mil.km","ass.km","com.km","coop.km","asso.km","presse.km","medecin.km","notaires.km","pharmaciens.km","veterinaire.km","gouv.km","kn","net.kn","org.kn","edu.kn","gov.kn","kp","com.kp","edu.kp","gov.kp","org.kp","rep.kp","tra.kp","kr","ac.kr","co.kr","es.kr","go.kr","hs.kr","kg.kr","mil.kr","ms.kr","ne.kr","or.kr","pe.kr","re.kr","sc.kr","busan.kr","chungbuk.kr","chungnam.kr","daegu.kr","daejeon.kr","gangwon.kr","gwangju.kr","gyeongbuk.kr","gyeonggi.kr","gyeongnam.kr","incheon.kr","jeju.kr","jeonbuk.kr","jeonnam.kr","seoul.kr","ulsan.kr","kw","com.kw","edu.kw","emb.kw","gov.kw","ind.kw","net.kw","org.kw","ky","edu.ky","gov.ky","com.ky","org.ky","net.ky","kz","org.kz","edu.kz","net.kz","gov.kz","mil.kz","com.kz","la","int.la","net.la","info.la","edu.la","gov.la","per.la","com.la","org.la","lb","com.lb","edu.lb","gov.lb","net.lb","org.lb","lc","com.lc","net.lc","co.lc","org.lc","edu.lc","gov.lc","li","lk","gov.lk","sch.lk","net.lk","int.lk","com.lk","org.lk","edu.lk","ngo.lk","soc.lk","web.lk","ltd.lk","assn.lk","grp.lk","hotel.lk","ac.lk","lr","com.lr","edu.lr","gov.lr","org.lr","net.lr","ls","ac.ls","biz.ls","co.ls","edu.ls","gov.ls","info.ls","net.ls","org.ls","sc.ls","lt","gov.lt","lu","lv","com.lv","edu.lv","gov.lv","org.lv","mil.lv","id.lv","net.lv","asn.lv","conf.lv","ly","com.ly","net.ly","gov.ly","plc.ly","edu.ly","sch.ly","med.ly","org.ly","id.ly","ma","co.ma","net.ma","gov.ma","org.ma","ac.ma","press.ma","mc","tm.mc","asso.mc","md","me","co.me","net.me","org.me","edu.me","ac.me","gov.me","its.me","priv.me","mg","org.mg","nom.mg","gov.mg","prd.mg","tm.mg","edu.mg","mil.mg","com.mg","co.mg","mh","mil","mk","com.mk","org.mk","net.mk","edu.mk","gov.mk","inf.mk","name.mk","ml","com.ml","edu.ml","gouv.ml","gov.ml","net.ml","org.ml","presse.ml","*.mm","mn","gov.mn","edu.mn","org.mn","mo","com.mo","net.mo","org.mo","edu.mo","gov.mo","mobi","mp","mq","mr","gov.mr","ms","com.ms","edu.ms","gov.ms","net.ms","org.ms","mt","com.mt","edu.mt","net.mt","org.mt","mu","com.mu","net.mu","org.mu","gov.mu","ac.mu","co.mu","or.mu","museum","academy.museum","agriculture.museum","air.museum","airguard.museum","alabama.museum","alaska.museum","amber.museum","ambulance.museum","american.museum","americana.museum","americanantiques.museum","americanart.museum","amsterdam.museum","and.museum","annefrank.museum","anthro.museum","anthropology.museum","antiques.museum","aquarium.museum","arboretum.museum","archaeological.museum","archaeology.museum","architecture.museum","art.museum","artanddesign.museum","artcenter.museum","artdeco.museum","arteducation.museum","artgallery.museum","arts.museum","artsandcrafts.museum","asmatart.museum","assassination.museum","assisi.museum","association.museum","astronomy.museum","atlanta.museum","austin.museum","australia.museum","automotive.museum","aviation.museum","axis.museum","badajoz.museum","baghdad.museum","bahn.museum","bale.museum","baltimore.museum","barcelona.museum","baseball.museum","basel.museum","baths.museum","bauern.museum","beauxarts.museum","beeldengeluid.museum","bellevue.museum","bergbau.museum","berkeley.museum","berlin.museum","bern.museum","bible.museum","bilbao.museum","bill.museum","birdart.museum","birthplace.museum","bonn.museum","boston.museum","botanical.museum","botanicalgarden.museum","botanicgarden.museum","botany.museum","brandywinevalley.museum","brasil.museum","bristol.museum","british.museum","britishcolumbia.museum","broadcast.museum","brunel.museum","brussel.museum","brussels.museum","bruxelles.museum","building.museum","burghof.museum","bus.museum","bushey.museum","cadaques.museum","california.museum","cambridge.museum","can.museum","canada.museum","capebreton.museum","carrier.museum","cartoonart.museum","casadelamoneda.museum","castle.museum","castres.museum","celtic.museum","center.museum","chattanooga.museum","cheltenham.museum","chesapeakebay.museum","chicago.museum","children.museum","childrens.museum","childrensgarden.museum","chiropractic.museum","chocolate.museum","christiansburg.museum","cincinnati.museum","cinema.museum","circus.museum","civilisation.museum","civilization.museum","civilwar.museum","clinton.museum","clock.museum","coal.museum","coastaldefence.museum","cody.museum","coldwar.museum","collection.museum","colonialwilliamsburg.museum","coloradoplateau.museum","columbia.museum","columbus.museum","communication.museum","communications.museum","community.museum","computer.museum","computerhistory.museum","comunicações.museum","contemporary.museum","contemporaryart.museum","convent.museum","copenhagen.museum","corporation.museum","correios-e-telecomunicações.museum","corvette.museum","costume.museum","countryestate.museum","county.museum","crafts.museum","cranbrook.museum","creation.museum","cultural.museum","culturalcenter.museum","culture.museum","cyber.museum","cymru.museum","dali.museum","dallas.museum","database.museum","ddr.museum","decorativearts.museum","delaware.museum","delmenhorst.museum","denmark.museum","depot.museum","design.museum","detroit.museum","dinosaur.museum","discovery.museum","dolls.museum","donostia.museum","durham.museum","eastafrica.museum","eastcoast.museum","education.museum","educational.museum","egyptian.museum","eisenbahn.museum","elburg.museum","elvendrell.museum","embroidery.museum","encyclopedic.museum","england.museum","entomology.museum","environment.museum","environmentalconservation.museum","epilepsy.museum","essex.museum","estate.museum","ethnology.museum","exeter.museum","exhibition.museum","family.museum","farm.museum","farmequipment.museum","farmers.museum","farmstead.museum","field.museum","figueres.museum","filatelia.museum","film.museum","fineart.museum","finearts.museum","finland.museum","flanders.museum","florida.museum","force.museum","fortmissoula.museum","fortworth.museum","foundation.museum","francaise.museum","frankfurt.museum","franziskaner.museum","freemasonry.museum","freiburg.museum","fribourg.museum","frog.museum","fundacio.museum","furniture.museum","gallery.museum","garden.museum","gateway.museum","geelvinck.museum","gemological.museum","geology.museum","georgia.museum","giessen.museum","glas.museum","glass.museum","gorge.museum","grandrapids.museum","graz.museum","guernsey.museum","halloffame.museum","hamburg.museum","handson.museum","harvestcelebration.museum","hawaii.museum","health.museum","heimatunduhren.museum","hellas.museum","helsinki.museum","hembygdsforbund.museum","heritage.museum","histoire.museum","historical.museum","historicalsociety.museum","historichouses.museum","historisch.museum","historisches.museum","history.museum","historyofscience.museum","horology.museum","house.museum","humanities.museum","illustration.museum","imageandsound.museum","indian.museum","indiana.museum","indianapolis.museum","indianmarket.museum","intelligence.museum","interactive.museum","iraq.museum","iron.museum","isleofman.museum","jamison.museum","jefferson.museum","jerusalem.museum","jewelry.museum","jewish.museum","jewishart.museum","jfk.museum","journalism.museum","judaica.museum","judygarland.museum","juedisches.museum","juif.museum","karate.museum","karikatur.museum","kids.museum","koebenhavn.museum","koeln.museum","kunst.museum","kunstsammlung.museum","kunstunddesign.museum","labor.museum","labour.museum","lajolla.museum","lancashire.museum","landes.museum","lans.museum","läns.museum","larsson.museum","lewismiller.museum","lincoln.museum","linz.museum","living.museum","livinghistory.museum","localhistory.museum","london.museum","losangeles.museum","louvre.museum","loyalist.museum","lucerne.museum","luxembourg.museum","luzern.museum","mad.museum","madrid.museum","mallorca.museum","manchester.museum","mansion.museum","mansions.museum","manx.museum","marburg.museum","maritime.museum","maritimo.museum","maryland.museum","marylhurst.museum","media.museum","medical.museum","medizinhistorisches.museum","meeres.museum","memorial.museum","mesaverde.museum","michigan.museum","midatlantic.museum","military.museum","mill.museum","miners.museum","mining.museum","minnesota.museum","missile.museum","missoula.museum","modern.museum","moma.museum","money.museum","monmouth.museum","monticello.museum","montreal.museum","moscow.museum","motorcycle.museum","muenchen.museum","muenster.museum","mulhouse.museum","muncie.museum","museet.museum","museumcenter.museum","museumvereniging.museum","music.museum","national.museum","nationalfirearms.museum","nationalheritage.museum","nativeamerican.museum","naturalhistory.museum","naturalhistorymuseum.museum","naturalsciences.museum","nature.museum","naturhistorisches.museum","natuurwetenschappen.museum","naumburg.museum","naval.museum","nebraska.museum","neues.museum","newhampshire.museum","newjersey.museum","newmexico.museum","newport.museum","newspaper.museum","newyork.museum","niepce.museum","norfolk.museum","north.museum","nrw.museum","nyc.museum","nyny.museum","oceanographic.museum","oceanographique.museum","omaha.museum","online.museum","ontario.museum","openair.museum","oregon.museum","oregontrail.museum","otago.museum","oxford.museum","pacific.museum","paderborn.museum","palace.museum","paleo.museum","palmsprings.museum","panama.museum","paris.museum","pasadena.museum","pharmacy.museum","philadelphia.museum","philadelphiaarea.museum","philately.museum","phoenix.museum","photography.museum","pilots.museum","pittsburgh.museum","planetarium.museum","plantation.museum","plants.museum","plaza.museum","portal.museum","portland.museum","portlligat.museum","posts-and-telecommunications.museum","preservation.museum","presidio.museum","press.museum","project.museum","public.museum","pubol.museum","quebec.museum","railroad.museum","railway.museum","research.museum","resistance.museum","riodejaneiro.museum","rochester.museum","rockart.museum","roma.museum","russia.museum","saintlouis.museum","salem.museum","salvadordali.museum","salzburg.museum","sandiego.museum","sanfrancisco.museum","santabarbara.museum","santacruz.museum","santafe.museum","saskatchewan.museum","satx.museum","savannahga.museum","schlesisches.museum","schoenbrunn.museum","schokoladen.museum","school.museum","schweiz.museum","science.museum","scienceandhistory.museum","scienceandindustry.museum","sciencecenter.museum","sciencecenters.museum","science-fiction.museum","sciencehistory.museum","sciences.museum","sciencesnaturelles.museum","scotland.museum","seaport.museum","settlement.museum","settlers.museum","shell.museum","sherbrooke.museum","sibenik.museum","silk.museum","ski.museum","skole.museum","society.museum","sologne.museum","soundandvision.museum","southcarolina.museum","southwest.museum","space.museum","spy.museum","square.museum","stadt.museum","stalbans.museum","starnberg.museum","state.museum","stateofdelaware.museum","station.museum","steam.museum","steiermark.museum","stjohn.museum","stockholm.museum","stpetersburg.museum","stuttgart.museum","suisse.museum","surgeonshall.museum","surrey.museum","svizzera.museum","sweden.museum","sydney.museum","tank.museum","tcm.museum","technology.museum","telekommunikation.museum","television.museum","texas.museum","textile.museum","theater.museum","time.museum","timekeeping.museum","topology.museum","torino.museum","touch.museum","town.museum","transport.museum","tree.museum","trolley.museum","trust.museum","trustee.museum","uhren.museum","ulm.museum","undersea.museum","university.museum","usa.museum","usantiques.museum","usarts.museum","uscountryestate.museum","usculture.museum","usdecorativearts.museum","usgarden.museum","ushistory.museum","ushuaia.museum","uslivinghistory.museum","utah.museum","uvic.museum","valley.museum","vantaa.museum","versailles.museum","viking.museum","village.museum","virginia.museum","virtual.museum","virtuel.museum","vlaanderen.museum","volkenkunde.museum","wales.museum","wallonie.museum","war.museum","washingtondc.museum","watchandclock.museum","watch-and-clock.museum","western.museum","westfalen.museum","whaling.museum","wildlife.museum","williamsburg.museum","windmill.museum","workshop.museum","york.museum","yorkshire.museum","yosemite.museum","youth.museum","zoological.museum","zoology.museum","ירושלים.museum","иком.museum","mv","aero.mv","biz.mv","com.mv","coop.mv","edu.mv","gov.mv","info.mv","int.mv","mil.mv","museum.mv","name.mv","net.mv","org.mv","pro.mv","mw","ac.mw","biz.mw","co.mw","com.mw","coop.mw","edu.mw","gov.mw","int.mw","museum.mw","net.mw","org.mw","mx","com.mx","org.mx","gob.mx","edu.mx","net.mx","my","com.my","net.my","org.my","gov.my","edu.my","mil.my","name.my","mz","ac.mz","adv.mz","co.mz","edu.mz","gov.mz","mil.mz","net.mz","org.mz","na","info.na","pro.na","name.na","school.na","or.na","dr.na","us.na","mx.na","ca.na","in.na","cc.na","tv.na","ws.na","mobi.na","co.na","com.na","org.na","name","nc","asso.nc","nom.nc","ne","net","nf","com.nf","net.nf","per.nf","rec.nf","web.nf","arts.nf","firm.nf","info.nf","other.nf","store.nf","ng","com.ng","edu.ng","gov.ng","i.ng","mil.ng","mobi.ng","name.ng","net.ng","org.ng","sch.ng","ni","ac.ni","biz.ni","co.ni","com.ni","edu.ni","gob.ni","in.ni","info.ni","int.ni","mil.ni","net.ni","nom.ni","org.ni","web.ni","nl","no","fhs.no","vgs.no","fylkesbibl.no","folkebibl.no","museum.no","idrett.no","priv.no","mil.no","stat.no","dep.no","kommune.no","herad.no","aa.no","ah.no","bu.no","fm.no","hl.no","hm.no","jan-mayen.no","mr.no","nl.no","nt.no","of.no","ol.no","oslo.no","rl.no","sf.no","st.no","svalbard.no","tm.no","tr.no","va.no","vf.no","gs.aa.no","gs.ah.no","gs.bu.no","gs.fm.no","gs.hl.no","gs.hm.no","gs.jan-mayen.no","gs.mr.no","gs.nl.no","gs.nt.no","gs.of.no","gs.ol.no","gs.oslo.no","gs.rl.no","gs.sf.no","gs.st.no","gs.svalbard.no","gs.tm.no","gs.tr.no","gs.va.no","gs.vf.no","akrehamn.no","åkrehamn.no","algard.no","ålgård.no","arna.no","brumunddal.no","bryne.no","bronnoysund.no","brønnøysund.no","drobak.no","drøbak.no","egersund.no","fetsund.no","floro.no","florø.no","fredrikstad.no","hokksund.no","honefoss.no","hønefoss.no","jessheim.no","jorpeland.no","jørpeland.no","kirkenes.no","kopervik.no","krokstadelva.no","langevag.no","langevåg.no","leirvik.no","mjondalen.no","mjøndalen.no","mo-i-rana.no","mosjoen.no","mosjøen.no","nesoddtangen.no","orkanger.no","osoyro.no","osøyro.no","raholt.no","råholt.no","sandnessjoen.no","sandnessjøen.no","skedsmokorset.no","slattum.no","spjelkavik.no","stathelle.no","stavern.no","stjordalshalsen.no","stjørdalshalsen.no","tananger.no","tranby.no","vossevangen.no","afjord.no","åfjord.no","agdenes.no","al.no","ål.no","alesund.no","ålesund.no","alstahaug.no","alta.no","áltá.no","alaheadju.no","álaheadju.no","alvdal.no","amli.no","åmli.no","amot.no","åmot.no","andebu.no","andoy.no","andøy.no","andasuolo.no","ardal.no","årdal.no","aremark.no","arendal.no","ås.no","aseral.no","åseral.no","asker.no","askim.no","askvoll.no","askoy.no","askøy.no","asnes.no","åsnes.no","audnedaln.no","aukra.no","aure.no","aurland.no","aurskog-holand.no","aurskog-høland.no","austevoll.no","austrheim.no","averoy.no","averøy.no","balestrand.no","ballangen.no","balat.no","bálát.no","balsfjord.no","bahccavuotna.no","báhccavuotna.no","bamble.no","bardu.no","beardu.no","beiarn.no","bajddar.no","bájddar.no","baidar.no","báidár.no","berg.no","bergen.no","berlevag.no","berlevåg.no","bearalvahki.no","bearalváhki.no","bindal.no","birkenes.no","bjarkoy.no","bjarkøy.no","bjerkreim.no","bjugn.no","bodo.no","bodø.no","badaddja.no","bådåddjå.no","budejju.no","bokn.no","bremanger.no","bronnoy.no","brønnøy.no","bygland.no","bykle.no","barum.no","bærum.no","bo.telemark.no","bø.telemark.no","bo.nordland.no","bø.nordland.no","bievat.no","bievát.no","bomlo.no","bømlo.no","batsfjord.no","båtsfjord.no","bahcavuotna.no","báhcavuotna.no","dovre.no","drammen.no","drangedal.no","dyroy.no","dyrøy.no","donna.no","dønna.no","eid.no","eidfjord.no","eidsberg.no","eidskog.no","eidsvoll.no","eigersund.no","elverum.no","enebakk.no","engerdal.no","etne.no","etnedal.no","evenes.no","evenassi.no","evenášši.no","evje-og-hornnes.no","farsund.no","fauske.no","fuossko.no","fuoisku.no","fedje.no","fet.no","finnoy.no","finnøy.no","fitjar.no","fjaler.no","fjell.no","flakstad.no","flatanger.no","flekkefjord.no","flesberg.no","flora.no","fla.no","flå.no","folldal.no","forsand.no","fosnes.no","frei.no","frogn.no","froland.no","frosta.no","frana.no","fræna.no","froya.no","frøya.no","fusa.no","fyresdal.no","forde.no","førde.no","gamvik.no","gangaviika.no","gáŋgaviika.no","gaular.no","gausdal.no","gildeskal.no","gildeskål.no","giske.no","gjemnes.no","gjerdrum.no","gjerstad.no","gjesdal.no","gjovik.no","gjøvik.no","gloppen.no","gol.no","gran.no","grane.no","granvin.no","gratangen.no","grimstad.no","grong.no","kraanghke.no","kråanghke.no","grue.no","gulen.no","hadsel.no","halden.no","halsa.no","hamar.no","hamaroy.no","habmer.no","hábmer.no","hapmir.no","hápmir.no","hammerfest.no","hammarfeasta.no","hámmárfeasta.no","haram.no","hareid.no","harstad.no","hasvik.no","aknoluokta.no","ákŋoluokta.no","hattfjelldal.no","aarborte.no","haugesund.no","hemne.no","hemnes.no","hemsedal.no","heroy.more-og-romsdal.no","herøy.møre-og-romsdal.no","heroy.nordland.no","herøy.nordland.no","hitra.no","hjartdal.no","hjelmeland.no","hobol.no","hobøl.no","hof.no","hol.no","hole.no","holmestrand.no","holtalen.no","holtålen.no","hornindal.no","horten.no","hurdal.no","hurum.no","hvaler.no","hyllestad.no","hagebostad.no","hægebostad.no","hoyanger.no","høyanger.no","hoylandet.no","høylandet.no","ha.no","hå.no","ibestad.no","inderoy.no","inderøy.no","iveland.no","jevnaker.no","jondal.no","jolster.no","jølster.no","karasjok.no","karasjohka.no","kárášjohka.no","karlsoy.no","galsa.no","gálsá.no","karmoy.no","karmøy.no","kautokeino.no","guovdageaidnu.no","klepp.no","klabu.no","klæbu.no","kongsberg.no","kongsvinger.no","kragero.no","kragerø.no","kristiansand.no","kristiansund.no","krodsherad.no","krødsherad.no","kvalsund.no","rahkkeravju.no","ráhkkerávju.no","kvam.no","kvinesdal.no","kvinnherad.no","kviteseid.no","kvitsoy.no","kvitsøy.no","kvafjord.no","kvæfjord.no","giehtavuoatna.no","kvanangen.no","kvænangen.no","navuotna.no","návuotna.no","kafjord.no","kåfjord.no","gaivuotna.no","gáivuotna.no","larvik.no","lavangen.no","lavagis.no","loabat.no","loabát.no","lebesby.no","davvesiida.no","leikanger.no","leirfjord.no","leka.no","leksvik.no","lenvik.no","leangaviika.no","leaŋgaviika.no","lesja.no","levanger.no","lier.no","lierne.no","lillehammer.no","lillesand.no","lindesnes.no","lindas.no","lindås.no","lom.no","loppa.no","lahppi.no","láhppi.no","lund.no","lunner.no","luroy.no","lurøy.no","luster.no","lyngdal.no","lyngen.no","ivgu.no","lardal.no","lerdal.no","lærdal.no","lodingen.no","lødingen.no","lorenskog.no","lørenskog.no","loten.no","løten.no","malvik.no","masoy.no","måsøy.no","muosat.no","muosát.no","mandal.no","marker.no","marnardal.no","masfjorden.no","meland.no","meldal.no","melhus.no","meloy.no","meløy.no","meraker.no","meråker.no","moareke.no","moåreke.no","midsund.no","midtre-gauldal.no","modalen.no","modum.no","molde.no","moskenes.no","moss.no","mosvik.no","malselv.no","målselv.no","malatvuopmi.no","málatvuopmi.no","namdalseid.no","aejrie.no","namsos.no","namsskogan.no","naamesjevuemie.no","nååmesjevuemie.no","laakesvuemie.no","nannestad.no","narvik.no","narviika.no","naustdal.no","nedre-eiker.no","nes.akershus.no","nes.buskerud.no","nesna.no","nesodden.no","nesseby.no","unjarga.no","unjárga.no","nesset.no","nissedal.no","nittedal.no","nord-aurdal.no","nord-fron.no","nord-odal.no","norddal.no","nordkapp.no","davvenjarga.no","davvenjárga.no","nordre-land.no","nordreisa.no","raisa.no","ráisa.no","nore-og-uvdal.no","notodden.no","naroy.no","nærøy.no","notteroy.no","nøtterøy.no","odda.no","oksnes.no","øksnes.no","oppdal.no","oppegard.no","oppegård.no","orkdal.no","orland.no","ørland.no","orskog.no","ørskog.no","orsta.no","ørsta.no","os.hedmark.no","os.hordaland.no","osen.no","osteroy.no","osterøy.no","ostre-toten.no","østre-toten.no","overhalla.no","ovre-eiker.no","øvre-eiker.no","oyer.no","øyer.no","oygarden.no","øygarden.no","oystre-slidre.no","øystre-slidre.no","porsanger.no","porsangu.no","porsáŋgu.no","porsgrunn.no","radoy.no","radøy.no","rakkestad.no","rana.no","ruovat.no","randaberg.no","rauma.no","rendalen.no","rennebu.no","rennesoy.no","rennesøy.no","rindal.no","ringebu.no","ringerike.no","ringsaker.no","rissa.no","risor.no","risør.no","roan.no","rollag.no","rygge.no","ralingen.no","rælingen.no","rodoy.no","rødøy.no","romskog.no","rømskog.no","roros.no","røros.no","rost.no","røst.no","royken.no","røyken.no","royrvik.no","røyrvik.no","rade.no","råde.no","salangen.no","siellak.no","saltdal.no","salat.no","sálát.no","sálat.no","samnanger.no","sande.more-og-romsdal.no","sande.møre-og-romsdal.no","sande.vestfold.no","sandefjord.no","sandnes.no","sandoy.no","sandøy.no","sarpsborg.no","sauda.no","sauherad.no","sel.no","selbu.no","selje.no","seljord.no","sigdal.no","siljan.no","sirdal.no","skaun.no","skedsmo.no","ski.no","skien.no","skiptvet.no","skjervoy.no","skjervøy.no","skierva.no","skiervá.no","skjak.no","skjåk.no","skodje.no","skanland.no","skånland.no","skanit.no","skánit.no","smola.no","smøla.no","snillfjord.no","snasa.no","snåsa.no","snoasa.no","snaase.no","snåase.no","sogndal.no","sokndal.no","sola.no","solund.no","songdalen.no","sortland.no","spydeberg.no","stange.no","stavanger.no","steigen.no","steinkjer.no","stjordal.no","stjørdal.no","stokke.no","stor-elvdal.no","stord.no","stordal.no","storfjord.no","omasvuotna.no","strand.no","stranda.no","stryn.no","sula.no","suldal.no","sund.no","sunndal.no","surnadal.no","sveio.no","svelvik.no","sykkylven.no","sogne.no","søgne.no","somna.no","sømna.no","sondre-land.no","søndre-land.no","sor-aurdal.no","sør-aurdal.no","sor-fron.no","sør-fron.no","sor-odal.no","sør-odal.no","sor-varanger.no","sør-varanger.no","matta-varjjat.no","mátta-várjjat.no","sorfold.no","sørfold.no","sorreisa.no","sørreisa.no","sorum.no","sørum.no","tana.no","deatnu.no","time.no","tingvoll.no","tinn.no","tjeldsund.no","dielddanuorri.no","tjome.no","tjøme.no","tokke.no","tolga.no","torsken.no","tranoy.no","tranøy.no","tromso.no","tromsø.no","tromsa.no","romsa.no","trondheim.no","troandin.no","trysil.no","trana.no","træna.no","trogstad.no","trøgstad.no","tvedestrand.no","tydal.no","tynset.no","tysfjord.no","divtasvuodna.no","divttasvuotna.no","tysnes.no","tysvar.no","tysvær.no","tonsberg.no","tønsberg.no","ullensaker.no","ullensvang.no","ulvik.no","utsira.no","vadso.no","vadsø.no","cahcesuolo.no","čáhcesuolo.no","vaksdal.no","valle.no","vang.no","vanylven.no","vardo.no","vardø.no","varggat.no","várggát.no","vefsn.no","vaapste.no","vega.no","vegarshei.no","vegårshei.no","vennesla.no","verdal.no","verran.no","vestby.no","vestnes.no","vestre-slidre.no","vestre-toten.no","vestvagoy.no","vestvågøy.no","vevelstad.no","vik.no","vikna.no","vindafjord.no","volda.no","voss.no","varoy.no","værøy.no","vagan.no","vågan.no","voagat.no","vagsoy.no","vågsøy.no","vaga.no","vågå.no","valer.ostfold.no","våler.østfold.no","valer.hedmark.no","våler.hedmark.no","*.np","nr","biz.nr","info.nr","gov.nr","edu.nr","org.nr","net.nr","com.nr","nu","nz","ac.nz","co.nz","cri.nz","geek.nz","gen.nz","govt.nz","health.nz","iwi.nz","kiwi.nz","maori.nz","mil.nz","māori.nz","net.nz","org.nz","parliament.nz","school.nz","om","co.om","com.om","edu.om","gov.om","med.om","museum.om","net.om","org.om","pro.om","onion","org","pa","ac.pa","gob.pa","com.pa","org.pa","sld.pa","edu.pa","net.pa","ing.pa","abo.pa","med.pa","nom.pa","pe","edu.pe","gob.pe","nom.pe","mil.pe","org.pe","com.pe","net.pe","pf","com.pf","org.pf","edu.pf","*.pg","ph","com.ph","net.ph","org.ph","gov.ph","edu.ph","ngo.ph","mil.ph","i.ph","pk","com.pk","net.pk","edu.pk","org.pk","fam.pk","biz.pk","web.pk","gov.pk","gob.pk","gok.pk","gon.pk","gop.pk","gos.pk","info.pk","pl","com.pl","net.pl","org.pl","aid.pl","agro.pl","atm.pl","auto.pl","biz.pl","edu.pl","gmina.pl","gsm.pl","info.pl","mail.pl","miasta.pl","media.pl","mil.pl","nieruchomosci.pl","nom.pl","pc.pl","powiat.pl","priv.pl","realestate.pl","rel.pl","sex.pl","shop.pl","sklep.pl","sos.pl","szkola.pl","targi.pl","tm.pl","tourism.pl","travel.pl","turystyka.pl","gov.pl","ap.gov.pl","ic.gov.pl","is.gov.pl","us.gov.pl","kmpsp.gov.pl","kppsp.gov.pl","kwpsp.gov.pl","psp.gov.pl","wskr.gov.pl","kwp.gov.pl","mw.gov.pl","ug.gov.pl","um.gov.pl","umig.gov.pl","ugim.gov.pl","upow.gov.pl","uw.gov.pl","starostwo.gov.pl","pa.gov.pl","po.gov.pl","psse.gov.pl","pup.gov.pl","rzgw.gov.pl","sa.gov.pl","so.gov.pl","sr.gov.pl","wsa.gov.pl","sko.gov.pl","uzs.gov.pl","wiih.gov.pl","winb.gov.pl","pinb.gov.pl","wios.gov.pl","witd.gov.pl","wzmiuw.gov.pl","piw.gov.pl","wiw.gov.pl","griw.gov.pl","wif.gov.pl","oum.gov.pl","sdn.gov.pl","zp.gov.pl","uppo.gov.pl","mup.gov.pl","wuoz.gov.pl","konsulat.gov.pl","oirm.gov.pl","augustow.pl","babia-gora.pl","bedzin.pl","beskidy.pl","bialowieza.pl","bialystok.pl","bielawa.pl","bieszczady.pl","boleslawiec.pl","bydgoszcz.pl","bytom.pl","cieszyn.pl","czeladz.pl","czest.pl","dlugoleka.pl","elblag.pl","elk.pl","glogow.pl","gniezno.pl","gorlice.pl","grajewo.pl","ilawa.pl","jaworzno.pl","jelenia-gora.pl","jgora.pl","kalisz.pl","kazimierz-dolny.pl","karpacz.pl","kartuzy.pl","kaszuby.pl","katowice.pl","kepno.pl","ketrzyn.pl","klodzko.pl","kobierzyce.pl","kolobrzeg.pl","konin.pl","konskowola.pl","kutno.pl","lapy.pl","lebork.pl","legnica.pl","lezajsk.pl","limanowa.pl","lomza.pl","lowicz.pl","lubin.pl","lukow.pl","malbork.pl","malopolska.pl","mazowsze.pl","mazury.pl","mielec.pl","mielno.pl","mragowo.pl","naklo.pl","nowaruda.pl","nysa.pl","olawa.pl","olecko.pl","olkusz.pl","olsztyn.pl","opoczno.pl","opole.pl","ostroda.pl","ostroleka.pl","ostrowiec.pl","ostrowwlkp.pl","pila.pl","pisz.pl","podhale.pl","podlasie.pl","polkowice.pl","pomorze.pl","pomorskie.pl","prochowice.pl","pruszkow.pl","przeworsk.pl","pulawy.pl","radom.pl","rawa-maz.pl","rybnik.pl","rzeszow.pl","sanok.pl","sejny.pl","slask.pl","slupsk.pl","sosnowiec.pl","stalowa-wola.pl","skoczow.pl","starachowice.pl","stargard.pl","suwalki.pl","swidnica.pl","swiebodzin.pl","swinoujscie.pl","szczecin.pl","szczytno.pl","tarnobrzeg.pl","tgory.pl","turek.pl","tychy.pl","ustka.pl","walbrzych.pl","warmia.pl","warszawa.pl","waw.pl","wegrow.pl","wielun.pl","wlocl.pl","wloclawek.pl","wodzislaw.pl","wolomin.pl","wroclaw.pl","zachpomor.pl","zagan.pl","zarow.pl","zgora.pl","zgorzelec.pl","pm","pn","gov.pn","co.pn","org.pn","edu.pn","net.pn","post","pr","com.pr","net.pr","org.pr","gov.pr","edu.pr","isla.pr","pro.pr","biz.pr","info.pr","name.pr","est.pr","prof.pr","ac.pr","pro","aaa.pro","aca.pro","acct.pro","avocat.pro","bar.pro","cpa.pro","eng.pro","jur.pro","law.pro","med.pro","recht.pro","ps","edu.ps","gov.ps","sec.ps","plo.ps","com.ps","org.ps","net.ps","pt","net.pt","gov.pt","org.pt","edu.pt","int.pt","publ.pt","com.pt","nome.pt","pw","co.pw","ne.pw","or.pw","ed.pw","go.pw","belau.pw","py","com.py","coop.py","edu.py","gov.py","mil.py","net.py","org.py","qa","com.qa","edu.qa","gov.qa","mil.qa","name.qa","net.qa","org.qa","sch.qa","re","asso.re","com.re","nom.re","ro","arts.ro","com.ro","firm.ro","info.ro","nom.ro","nt.ro","org.ro","rec.ro","store.ro","tm.ro","www.ro","rs","ac.rs","co.rs","edu.rs","gov.rs","in.rs","org.rs","ru","rw","ac.rw","co.rw","coop.rw","gov.rw","mil.rw","net.rw","org.rw","sa","com.sa","net.sa","org.sa","gov.sa","med.sa","pub.sa","edu.sa","sch.sa","sb","com.sb","edu.sb","gov.sb","net.sb","org.sb","sc","com.sc","gov.sc","net.sc","org.sc","edu.sc","sd","com.sd","net.sd","org.sd","edu.sd","med.sd","tv.sd","gov.sd","info.sd","se","a.se","ac.se","b.se","bd.se","brand.se","c.se","d.se","e.se","f.se","fh.se","fhsk.se","fhv.se","g.se","h.se","i.se","k.se","komforb.se","kommunalforbund.se","komvux.se","l.se","lanbib.se","m.se","n.se","naturbruksgymn.se","o.se","org.se","p.se","parti.se","pp.se","press.se","r.se","s.se","t.se","tm.se","u.se","w.se","x.se","y.se","z.se","sg","com.sg","net.sg","org.sg","gov.sg","edu.sg","per.sg","sh","com.sh","net.sh","gov.sh","org.sh","mil.sh","si","sj","sk","sl","com.sl","net.sl","edu.sl","gov.sl","org.sl","sm","sn","art.sn","com.sn","edu.sn","gouv.sn","org.sn","perso.sn","univ.sn","so","com.so","edu.so","gov.so","me.so","net.so","org.so","sr","ss","biz.ss","com.ss","edu.ss","gov.ss","net.ss","org.ss","st","co.st","com.st","consulado.st","edu.st","embaixada.st","gov.st","mil.st","net.st","org.st","principe.st","saotome.st","store.st","su","sv","com.sv","edu.sv","gob.sv","org.sv","red.sv","sx","gov.sx","sy","edu.sy","gov.sy","net.sy","mil.sy","com.sy","org.sy","sz","co.sz","ac.sz","org.sz","tc","td","tel","tf","tg","th","ac.th","co.th","go.th","in.th","mi.th","net.th","or.th","tj","ac.tj","biz.tj","co.tj","com.tj","edu.tj","go.tj","gov.tj","int.tj","mil.tj","name.tj","net.tj","nic.tj","org.tj","test.tj","web.tj","tk","tl","gov.tl","tm","com.tm","co.tm","org.tm","net.tm","nom.tm","gov.tm","mil.tm","edu.tm","tn","com.tn","ens.tn","fin.tn","gov.tn","ind.tn","intl.tn","nat.tn","net.tn","org.tn","info.tn","perso.tn","tourism.tn","edunet.tn","rnrt.tn","rns.tn","rnu.tn","mincom.tn","agrinet.tn","defense.tn","turen.tn","to","com.to","gov.to","net.to","org.to","edu.to","mil.to","tr","av.tr","bbs.tr","bel.tr","biz.tr","com.tr","dr.tr","edu.tr","gen.tr","gov.tr","info.tr","mil.tr","k12.tr","kep.tr","name.tr","net.tr","org.tr","pol.tr","tel.tr","tsk.tr","tv.tr","web.tr","nc.tr","gov.nc.tr","tt","co.tt","com.tt","org.tt","net.tt","biz.tt","info.tt","pro.tt","int.tt","coop.tt","jobs.tt","mobi.tt","travel.tt","museum.tt","aero.tt","name.tt","gov.tt","edu.tt","tv","tw","edu.tw","gov.tw","mil.tw","com.tw","net.tw","org.tw","idv.tw","game.tw","ebiz.tw","club.tw","網路.tw","組織.tw","商業.tw","tz","ac.tz","co.tz","go.tz","hotel.tz","info.tz","me.tz","mil.tz","mobi.tz","ne.tz","or.tz","sc.tz","tv.tz","ua","com.ua","edu.ua","gov.ua","in.ua","net.ua","org.ua","cherkassy.ua","cherkasy.ua","chernigov.ua","chernihiv.ua","chernivtsi.ua","chernovtsy.ua","ck.ua","cn.ua","cr.ua","crimea.ua","cv.ua","dn.ua","dnepropetrovsk.ua","dnipropetrovsk.ua","dominic.ua","donetsk.ua","dp.ua","if.ua","ivano-frankivsk.ua","kh.ua","kharkiv.ua","kharkov.ua","kherson.ua","khmelnitskiy.ua","khmelnytskyi.ua","kiev.ua","kirovograd.ua","km.ua","kr.ua","krym.ua","ks.ua","kv.ua","kyiv.ua","lg.ua","lt.ua","lugansk.ua","lutsk.ua","lv.ua","lviv.ua","mk.ua","mykolaiv.ua","nikolaev.ua","od.ua","odesa.ua","odessa.ua","pl.ua","poltava.ua","rivne.ua","rovno.ua","rv.ua","sb.ua","sebastopol.ua","sevastopol.ua","sm.ua","sumy.ua","te.ua","ternopil.ua","uz.ua","uzhgorod.ua","vinnica.ua","vinnytsia.ua","vn.ua","volyn.ua","yalta.ua","zaporizhzhe.ua","zaporizhzhia.ua","zhitomir.ua","zhytomyr.ua","zp.ua","zt.ua","ug","co.ug","or.ug","ac.ug","sc.ug","go.ug","ne.ug","com.ug","org.ug","uk","ac.uk","co.uk","gov.uk","ltd.uk","me.uk","net.uk","nhs.uk","org.uk","plc.uk","police.uk","*.sch.uk","us","dni.us","fed.us","isa.us","kids.us","nsn.us","ak.us","al.us","ar.us","as.us","az.us","ca.us","co.us","ct.us","dc.us","de.us","fl.us","ga.us","gu.us","hi.us","ia.us","id.us","il.us","in.us","ks.us","ky.us","la.us","ma.us","md.us","me.us","mi.us","mn.us","mo.us","ms.us","mt.us","nc.us","nd.us","ne.us","nh.us","nj.us","nm.us","nv.us","ny.us","oh.us","ok.us","or.us","pa.us","pr.us","ri.us","sc.us","sd.us","tn.us","tx.us","ut.us","vi.us","vt.us","va.us","wa.us","wi.us","wv.us","wy.us","k12.ak.us","k12.al.us","k12.ar.us","k12.as.us","k12.az.us","k12.ca.us","k12.co.us","k12.ct.us","k12.dc.us","k12.de.us","k12.fl.us","k12.ga.us","k12.gu.us","k12.ia.us","k12.id.us","k12.il.us","k12.in.us","k12.ks.us","k12.ky.us","k12.la.us","k12.ma.us","k12.md.us","k12.me.us","k12.mi.us","k12.mn.us","k12.mo.us","k12.ms.us","k12.mt.us","k12.nc.us","k12.ne.us","k12.nh.us","k12.nj.us","k12.nm.us","k12.nv.us","k12.ny.us","k12.oh.us","k12.ok.us","k12.or.us","k12.pa.us","k12.pr.us","k12.ri.us","k12.sc.us","k12.tn.us","k12.tx.us","k12.ut.us","k12.vi.us","k12.vt.us","k12.va.us","k12.wa.us","k12.wi.us","k12.wy.us","cc.ak.us","cc.al.us","cc.ar.us","cc.as.us","cc.az.us","cc.ca.us","cc.co.us","cc.ct.us","cc.dc.us","cc.de.us","cc.fl.us","cc.ga.us","cc.gu.us","cc.hi.us","cc.ia.us","cc.id.us","cc.il.us","cc.in.us","cc.ks.us","cc.ky.us","cc.la.us","cc.ma.us","cc.md.us","cc.me.us","cc.mi.us","cc.mn.us","cc.mo.us","cc.ms.us","cc.mt.us","cc.nc.us","cc.nd.us","cc.ne.us","cc.nh.us","cc.nj.us","cc.nm.us","cc.nv.us","cc.ny.us","cc.oh.us","cc.ok.us","cc.or.us","cc.pa.us","cc.pr.us","cc.ri.us","cc.sc.us","cc.sd.us","cc.tn.us","cc.tx.us","cc.ut.us","cc.vi.us","cc.vt.us","cc.va.us","cc.wa.us","cc.wi.us","cc.wv.us","cc.wy.us","lib.ak.us","lib.al.us","lib.ar.us","lib.as.us","lib.az.us","lib.ca.us","lib.co.us","lib.ct.us","lib.dc.us","lib.fl.us","lib.ga.us","lib.gu.us","lib.hi.us","lib.ia.us","lib.id.us","lib.il.us","lib.in.us","lib.ks.us","lib.ky.us","lib.la.us","lib.ma.us","lib.md.us","lib.me.us","lib.mi.us","lib.mn.us","lib.mo.us","lib.ms.us","lib.mt.us","lib.nc.us","lib.nd.us","lib.ne.us","lib.nh.us","lib.nj.us","lib.nm.us","lib.nv.us","lib.ny.us","lib.oh.us","lib.ok.us","lib.or.us","lib.pa.us","lib.pr.us","lib.ri.us","lib.sc.us","lib.sd.us","lib.tn.us","lib.tx.us","lib.ut.us","lib.vi.us","lib.vt.us","lib.va.us","lib.wa.us","lib.wi.us","lib.wy.us","pvt.k12.ma.us","chtr.k12.ma.us","paroch.k12.ma.us","ann-arbor.mi.us","cog.mi.us","dst.mi.us","eaton.mi.us","gen.mi.us","mus.mi.us","tec.mi.us","washtenaw.mi.us","uy","com.uy","edu.uy","gub.uy","mil.uy","net.uy","org.uy","uz","co.uz","com.uz","net.uz","org.uz","va","vc","com.vc","net.vc","org.vc","gov.vc","mil.vc","edu.vc","ve","arts.ve","co.ve","com.ve","e12.ve","edu.ve","firm.ve","gob.ve","gov.ve","info.ve","int.ve","mil.ve","net.ve","org.ve","rec.ve","store.ve","tec.ve","web.ve","vg","vi","co.vi","com.vi","k12.vi","net.vi","org.vi","vn","com.vn","net.vn","org.vn","edu.vn","gov.vn","int.vn","ac.vn","biz.vn","info.vn","name.vn","pro.vn","health.vn","vu","com.vu","edu.vu","net.vu","org.vu","wf","ws","com.ws","net.ws","org.ws","gov.ws","edu.ws","yt","امارات","հայ","বাংলা","бг","бел","中国","中國","الجزائر","مصر","ею","موريتانيا","გე","ελ","香港","公司.香港","教育.香港","政府.香港","個人.香港","網絡.香港","組織.香港","ಭಾರತ","ଭାରତ","ভাৰত","भारतम्","भारोत","ڀارت","ഭാരതം","भारत","بارت","بھارت","భారత్","ભારત","ਭਾਰਤ","ভারত","இந்தியா","ایران","ايران","عراق","الاردن","한국","қаз","ලංකා","இலங்கை","المغرب","мкд","мон","澳門","澳门","مليسيا","عمان","پاکستان","پاكستان","فلسطين","срб","пр.срб","орг.срб","обр.срб","од.срб","упр.срб","ак.срб","рф","قطر","السعودية","السعودیة","السعودیۃ","السعوديه","سودان","新加坡","சிங்கப்பூர்","سورية","سوريا","ไทย","ศึกษา.ไทย","ธุรกิจ.ไทย","รัฐบาล.ไทย","ทหาร.ไทย","เน็ต.ไทย","องค์กร.ไทย","تونس","台灣","台湾","臺灣","укр","اليمن","xxx","*.ye","ac.za","agric.za","alt.za","co.za","edu.za","gov.za","grondar.za","law.za","mil.za","net.za","ngo.za","nic.za","nis.za","nom.za","org.za","school.za","tm.za","web.za","zm","ac.zm","biz.zm","co.zm","com.zm","edu.zm","gov.zm","info.zm","mil.zm","net.zm","org.zm","sch.zm","zw","ac.zw","co.zw","gov.zw","mil.zw","org.zw","aaa","aarp","abarth","abb","abbott","abbvie","abc","able","abogado","abudhabi","academy","accenture","accountant","accountants","aco","actor","adac","ads","adult","aeg","aetna","afamilycompany","afl","africa","agakhan","agency","aig","aigo","airbus","airforce","airtel","akdn","alfaromeo","alibaba","alipay","allfinanz","allstate","ally","alsace","alstom","amazon","americanexpress","americanfamily","amex","amfam","amica","amsterdam","analytics","android","anquan","anz","aol","apartments","app","apple","aquarelle","arab","aramco","archi","army","art","arte","asda","associates","athleta","attorney","auction","audi","audible","audio","auspost","author","auto","autos","avianca","aws","axa","azure","baby","baidu","banamex","bananarepublic","band","bank","bar","barcelona","barclaycard","barclays","barefoot","bargains","baseball","basketball","bauhaus","bayern","bbc","bbt","bbva","bcg","bcn","beats","beauty","beer","bentley","berlin","best","bestbuy","bet","bharti","bible","bid","bike","bing","bingo","bio","black","blackfriday","blockbuster","blog","bloomberg","blue","bms","bmw","bnpparibas","boats","boehringer","bofa","bom","bond","boo","book","booking","bosch","bostik","boston","bot","boutique","box","bradesco","bridgestone","broadway","broker","brother","brussels","budapest","bugatti","build","builders","business","buy","buzz","bzh","cab","cafe","cal","call","calvinklein","cam","camera","camp","cancerresearch","canon","capetown","capital","capitalone","car","caravan","cards","care","career","careers","cars","casa","case","caseih","cash","casino","catering","catholic","cba","cbn","cbre","cbs","ceb","center","ceo","cern","cfa","cfd","chanel","channel","charity","chase","chat","cheap","chintai","christmas","chrome","church","cipriani","circle","cisco","citadel","citi","citic","city","cityeats","claims","cleaning","click","clinic","clinique","clothing","cloud","club","clubmed","coach","codes","coffee","college","cologne","comcast","commbank","community","company","compare","computer","comsec","condos","construction","consulting","contact","contractors","cooking","cookingchannel","cool","corsica","country","coupon","coupons","courses","cpa","credit","creditcard","creditunion","cricket","crown","crs","cruise","cruises","csc","cuisinella","cymru","cyou","dabur","dad","dance","data","date","dating","datsun","day","dclk","dds","deal","dealer","deals","degree","delivery","dell","deloitte","delta","democrat","dental","dentist","desi","design","dev","dhl","diamonds","diet","digital","direct","directory","discount","discover","dish","diy","dnp","docs","doctor","dog","domains","dot","download","drive","dtv","dubai","duck","dunlop","dupont","durban","dvag","dvr","earth","eat","eco","edeka","education","email","emerck","energy","engineer","engineering","enterprises","epson","equipment","ericsson","erni","esq","estate","esurance","etisalat","eurovision","eus","events","exchange","expert","exposed","express","extraspace","fage","fail","fairwinds","faith","family","fan","fans","farm","farmers","fashion","fast","fedex","feedback","ferrari","ferrero","fiat","fidelity","fido","film","final","finance","financial","fire","firestone","firmdale","fish","fishing","fit","fitness","flickr","flights","flir","florist","flowers","fly","foo","food","foodnetwork","football","ford","forex","forsale","forum","foundation","fox","free","fresenius","frl","frogans","frontdoor","frontier","ftr","fujitsu","fujixerox","fun","fund","furniture","futbol","fyi","gal","gallery","gallo","gallup","game","games","gap","garden","gay","gbiz","gdn","gea","gent","genting","george","ggee","gift","gifts","gives","giving","glade","glass","gle","global","globo","gmail","gmbh","gmo","gmx","godaddy","gold","goldpoint","golf","goo","goodyear","goog","google","gop","got","grainger","graphics","gratis","green","gripe","grocery","group","guardian","gucci","guge","guide","guitars","guru","hair","hamburg","hangout","haus","hbo","hdfc","hdfcbank","health","healthcare","help","helsinki","here","hermes","hgtv","hiphop","hisamitsu","hitachi","hiv","hkt","hockey","holdings","holiday","homedepot","homegoods","homes","homesense","honda","horse","hospital","host","hosting","hot","hoteles","hotels","hotmail","house","how","hsbc","hughes","hyatt","hyundai","ibm","icbc","ice","icu","ieee","ifm","ikano","imamat","imdb","immo","immobilien","inc","industries","infiniti","ing","ink","institute","insurance","insure","intel","international","intuit","investments","ipiranga","irish","ismaili","ist","istanbul","itau","itv","iveco","jaguar","java","jcb","jcp","jeep","jetzt","jewelry","jio","jll","jmp","jnj","joburg","jot","joy","jpmorgan","jprs","juegos","juniper","kaufen","kddi","kerryhotels","kerrylogistics","kerryproperties","kfh","kia","kim","kinder","kindle","kitchen","kiwi","koeln","komatsu","kosher","kpmg","kpn","krd","kred","kuokgroup","kyoto","lacaixa","lamborghini","lamer","lancaster","lancia","land","landrover","lanxess","lasalle","lat","latino","latrobe","law","lawyer","lds","lease","leclerc","lefrak","legal","lego","lexus","lgbt","liaison","lidl","life","lifeinsurance","lifestyle","lighting","like","lilly","limited","limo","lincoln","linde","link","lipsy","live","living","lixil","llc","llp","loan","loans","locker","locus","loft","lol","london","lotte","lotto","love","lpl","lplfinancial","ltd","ltda","lundbeck","lupin","luxe","luxury","macys","madrid","maif","maison","makeup","man","management","mango","map","market","marketing","markets","marriott","marshalls","maserati","mattel","mba","mckinsey","med","media","meet","melbourne","meme","memorial","men","menu","merckmsd","metlife","miami","microsoft","mini","mint","mit","mitsubishi","mlb","mls","mma","mobile","moda","moe","moi","mom","monash","money","monster","mormon","mortgage","moscow","moto","motorcycles","mov","movie","msd","mtn","mtr","mutual","nab","nadex","nagoya","nationwide","natura","navy","nba","nec","netbank","netflix","network","neustar","new","newholland","news","next","nextdirect","nexus","nfl","ngo","nhk","nico","nike","nikon","ninja","nissan","nissay","nokia","northwesternmutual","norton","now","nowruz","nowtv","nra","nrw","ntt","nyc","obi","observer","off","office","okinawa","olayan","olayangroup","oldnavy","ollo","omega","one","ong","onl","online","onyourside","ooo","open","oracle","orange","organic","origins","osaka","otsuka","ott","ovh","page","panasonic","paris","pars","partners","parts","party","passagens","pay","pccw","pet","pfizer","pharmacy","phd","philips","phone","photo","photography","photos","physio","pics","pictet","pictures","pid","pin","ping","pink","pioneer","pizza","place","play","playstation","plumbing","plus","pnc","pohl","poker","politie","porn","pramerica","praxi","press","prime","prod","productions","prof","progressive","promo","properties","property","protection","pru","prudential","pub","pwc","qpon","quebec","quest","qvc","racing","radio","raid","read","realestate","realtor","realty","recipes","red","redstone","redumbrella","rehab","reise","reisen","reit","reliance","ren","rent","rentals","repair","report","republican","rest","restaurant","review","reviews","rexroth","rich","richardli","ricoh","rightathome","ril","rio","rip","rmit","rocher","rocks","rodeo","rogers","room","rsvp","rugby","ruhr","run","rwe","ryukyu","saarland","safe","safety","sakura","sale","salon","samsclub","samsung","sandvik","sandvikcoromant","sanofi","sap","sarl","sas","save","saxo","sbi","sbs","sca","scb","schaeffler","schmidt","scholarships","school","schule","schwarz","science","scjohnson","scor","scot","search","seat","secure","security","seek","select","sener","services","ses","seven","sew","sex","sexy","sfr","shangrila","sharp","shaw","shell","shia","shiksha","shoes","shop","shopping","shouji","show","showtime","shriram","silk","sina","singles","site","ski","skin","sky","skype","sling","smart","smile","sncf","soccer","social","softbank","software","sohu","solar","solutions","song","sony","soy","spa","space","sport","spot","spreadbetting","srl","stada","staples","star","statebank","statefarm","stc","stcgroup","stockholm","storage","store","stream","studio","study","style","sucks","supplies","supply","support","surf","surgery","suzuki","swatch","swiftcover","swiss","sydney","symantec","systems","tab","taipei","talk","taobao","target","tatamotors","tatar","tattoo","tax","taxi","tci","tdk","team","tech","technology","temasek","tennis","teva","thd","theater","theatre","tiaa","tickets","tienda","tiffany","tips","tires","tirol","tjmaxx","tjx","tkmaxx","tmall","today","tokyo","tools","top","toray","toshiba","total","tours","town","toyota","toys","trade","trading","training","travel","travelchannel","travelers","travelersinsurance","trust","trv","tube","tui","tunes","tushu","tvs","ubank","ubs","unicom","university","uno","uol","ups","vacations","vana","vanguard","vegas","ventures","verisign","versicherung","vet","viajes","video","vig","viking","villas","vin","vip","virgin","visa","vision","vistaprint","viva","vivo","vlaanderen","vodka","volkswagen","volvo","vote","voting","voto","voyage","vuelos","wales","walmart","walter","wang","wanggou","watch","watches","weather","weatherchannel","webcam","weber","website","wed","wedding","weibo","weir","whoswho","wien","wiki","williamhill","win","windows","wine","winners","wme","wolterskluwer","woodside","work","works","world","wow","wtc","wtf","xbox","xerox","xfinity","xihuan","xin","कॉम","セール","佛山","慈善","集团","在线","大众汽车","点看","คอม","八卦","موقع","公益","公司","香格里拉","网站","移动","我爱你","москва","католик","онлайн","сайт","联通","קום","时尚","微博","淡马锡","ファッション","орг","नेट","ストア","アマゾン","삼성","商标","商店","商城","дети","ポイント","新闻","工行","家電","كوم","中文网","中信","娱乐","谷歌","電訊盈科","购物","クラウド","通販","网店","संगठन","餐厅","网络","ком","亚马逊","诺基亚","食品","飞利浦","手表","手机","ارامكو","العليان","اتصالات","بازار","ابوظبي","كاثوليك","همراه","닷컴","政府","شبكة","بيتك","عرب","机构","组织机构","健康","招聘","рус","珠宝","大拿","みんな","グーグル","世界","書籍","网址","닷넷","コム","天主教","游戏","vermögensberater","vermögensberatung","企业","信息","嘉里大酒店","嘉里","广东","政务","xyz","yachts","yahoo","yamaxun","yandex","yodobashi","yoga","yokohama","you","youtube","yun","zappos","zara","zero","zip","zone","zuerich","cc.ua","inf.ua","ltd.ua","adobeaemcloud.com","adobeaemcloud.net","*.dev.adobeaemcloud.com","beep.pl","barsy.ca","*.compute.estate","*.alces.network","altervista.org","alwaysdata.net","cloudfront.net","*.compute.amazonaws.com","*.compute-1.amazonaws.com","*.compute.amazonaws.com.cn","us-east-1.amazonaws.com","cn-north-1.eb.amazonaws.com.cn","cn-northwest-1.eb.amazonaws.com.cn","elasticbeanstalk.com","ap-northeast-1.elasticbeanstalk.com","ap-northeast-2.elasticbeanstalk.com","ap-northeast-3.elasticbeanstalk.com","ap-south-1.elasticbeanstalk.com","ap-southeast-1.elasticbeanstalk.com","ap-southeast-2.elasticbeanstalk.com","ca-central-1.elasticbeanstalk.com","eu-central-1.elasticbeanstalk.com","eu-west-1.elasticbeanstalk.com","eu-west-2.elasticbeanstalk.com","eu-west-3.elasticbeanstalk.com","sa-east-1.elasticbeanstalk.com","us-east-1.elasticbeanstalk.com","us-east-2.elasticbeanstalk.com","us-gov-west-1.elasticbeanstalk.com","us-west-1.elasticbeanstalk.com","us-west-2.elasticbeanstalk.com","*.elb.amazonaws.com","*.elb.amazonaws.com.cn","s3.amazonaws.com","s3-ap-northeast-1.amazonaws.com","s3-ap-northeast-2.amazonaws.com","s3-ap-south-1.amazonaws.com","s3-ap-southeast-1.amazonaws.com","s3-ap-southeast-2.amazonaws.com","s3-ca-central-1.amazonaws.com","s3-eu-central-1.amazonaws.com","s3-eu-west-1.amazonaws.com","s3-eu-west-2.amazonaws.com","s3-eu-west-3.amazonaws.com","s3-external-1.amazonaws.com","s3-fips-us-gov-west-1.amazonaws.com","s3-sa-east-1.amazonaws.com","s3-us-gov-west-1.amazonaws.com","s3-us-east-2.amazonaws.com","s3-us-west-1.amazonaws.com","s3-us-west-2.amazonaws.com","s3.ap-northeast-2.amazonaws.com","s3.ap-south-1.amazonaws.com","s3.cn-north-1.amazonaws.com.cn","s3.ca-central-1.amazonaws.com","s3.eu-central-1.amazonaws.com","s3.eu-west-2.amazonaws.com","s3.eu-west-3.amazonaws.com","s3.us-east-2.amazonaws.com","s3.dualstack.ap-northeast-1.amazonaws.com","s3.dualstack.ap-northeast-2.amazonaws.com","s3.dualstack.ap-south-1.amazonaws.com","s3.dualstack.ap-southeast-1.amazonaws.com","s3.dualstack.ap-southeast-2.amazonaws.com","s3.dualstack.ca-central-1.amazonaws.com","s3.dualstack.eu-central-1.amazonaws.com","s3.dualstack.eu-west-1.amazonaws.com","s3.dualstack.eu-west-2.amazonaws.com","s3.dualstack.eu-west-3.amazonaws.com","s3.dualstack.sa-east-1.amazonaws.com","s3.dualstack.us-east-1.amazonaws.com","s3.dualstack.us-east-2.amazonaws.com","s3-website-us-east-1.amazonaws.com","s3-website-us-west-1.amazonaws.com","s3-website-us-west-2.amazonaws.com","s3-website-ap-northeast-1.amazonaws.com","s3-website-ap-southeast-1.amazonaws.com","s3-website-ap-southeast-2.amazonaws.com","s3-website-eu-west-1.amazonaws.com","s3-website-sa-east-1.amazonaws.com","s3-website.ap-northeast-2.amazonaws.com","s3-website.ap-south-1.amazonaws.com","s3-website.ca-central-1.amazonaws.com","s3-website.eu-central-1.amazonaws.com","s3-website.eu-west-2.amazonaws.com","s3-website.eu-west-3.amazonaws.com","s3-website.us-east-2.amazonaws.com","amsw.nl","t3l3p0rt.net","tele.amune.org","apigee.io","on-aptible.com","user.aseinet.ne.jp","gv.vc","d.gv.vc","user.party.eus","pimienta.org","poivron.org","potager.org","sweetpepper.org","myasustor.com","myfritz.net","*.awdev.ca","*.advisor.ws","b-data.io","backplaneapp.io","balena-devices.com","app.banzaicloud.io","betainabox.com","bnr.la","blackbaudcdn.net","boomla.net","boxfuse.io","square7.ch","bplaced.com","bplaced.de","square7.de","bplaced.net","square7.net","browsersafetymark.io","uk0.bigv.io","dh.bytemark.co.uk","vm.bytemark.co.uk","mycd.eu","carrd.co","crd.co","uwu.ai","ae.org","ar.com","br.com","cn.com","com.de","com.se","de.com","eu.com","gb.com","gb.net","hu.com","hu.net","jp.net","jpn.com","kr.com","mex.com","no.com","qc.com","ru.com","sa.com","se.net","uk.com","uk.net","us.com","uy.com","za.bz","za.com","africa.com","gr.com","in.net","us.org","co.com","c.la","certmgr.org","xenapponazure.com","discourse.group","virtueeldomein.nl","cleverapps.io","*.lcl.dev","*.stg.dev","c66.me","cloud66.ws","cloud66.zone","jdevcloud.com","wpdevcloud.com","cloudaccess.host","freesite.host","cloudaccess.net","cloudcontrolled.com","cloudcontrolapp.com","cloudera.site","trycloudflare.com","workers.dev","wnext.app","co.ca","*.otap.co","co.cz","c.cdn77.org","cdn77-ssl.net","r.cdn77.net","rsc.cdn77.org","ssl.origin.cdn77-secure.org","cloudns.asia","cloudns.biz","cloudns.club","cloudns.cc","cloudns.eu","cloudns.in","cloudns.info","cloudns.org","cloudns.pro","cloudns.pw","cloudns.us","cloudeity.net","cnpy.gdn","co.nl","co.no","webhosting.be","hosting-cluster.nl","ac.ru","edu.ru","gov.ru","int.ru","mil.ru","test.ru","dyn.cosidns.de","dynamisches-dns.de","dnsupdater.de","internet-dns.de","l-o-g-i-n.de","dynamic-dns.info","feste-ip.net","knx-server.net","static-access.net","realm.cz","*.cryptonomic.net","cupcake.is","*.customer-oci.com","*.oci.customer-oci.com","*.ocp.customer-oci.com","*.ocs.customer-oci.com","cyon.link","cyon.site","daplie.me","localhost.daplie.me","dattolocal.com","dattorelay.com","dattoweb.com","mydatto.com","dattolocal.net","mydatto.net","biz.dk","co.dk","firm.dk","reg.dk","store.dk","*.dapps.earth","*.bzz.dapps.earth","builtwithdark.com","edgestack.me","debian.net","dedyn.io","dnshome.de","online.th","shop.th","drayddns.com","dreamhosters.com","mydrobo.com","drud.io","drud.us","duckdns.org","dy.fi","tunk.org","dyndns-at-home.com","dyndns-at-work.com","dyndns-blog.com","dyndns-free.com","dyndns-home.com","dyndns-ip.com","dyndns-mail.com","dyndns-office.com","dyndns-pics.com","dyndns-remote.com","dyndns-server.com","dyndns-web.com","dyndns-wiki.com","dyndns-work.com","dyndns.biz","dyndns.info","dyndns.org","dyndns.tv","at-band-camp.net","ath.cx","barrel-of-knowledge.info","barrell-of-knowledge.info","better-than.tv","blogdns.com","blogdns.net","blogdns.org","blogsite.org","boldlygoingnowhere.org","broke-it.net","buyshouses.net","cechire.com","dnsalias.com","dnsalias.net","dnsalias.org","dnsdojo.com","dnsdojo.net","dnsdojo.org","does-it.net","doesntexist.com","doesntexist.org","dontexist.com","dontexist.net","dontexist.org","doomdns.com","doomdns.org","dvrdns.org","dyn-o-saur.com","dynalias.com","dynalias.net","dynalias.org","dynathome.net","dyndns.ws","endofinternet.net","endofinternet.org","endoftheinternet.org","est-a-la-maison.com","est-a-la-masion.com","est-le-patron.com","est-mon-blogueur.com","for-better.biz","for-more.biz","for-our.info","for-some.biz","for-the.biz","forgot.her.name","forgot.his.name","from-ak.com","from-al.com","from-ar.com","from-az.net","from-ca.com","from-co.net","from-ct.com","from-dc.com","from-de.com","from-fl.com","from-ga.com","from-hi.com","from-ia.com","from-id.com","from-il.com","from-in.com","from-ks.com","from-ky.com","from-la.net","from-ma.com","from-md.com","from-me.org","from-mi.com","from-mn.com","from-mo.com","from-ms.com","from-mt.com","from-nc.com","from-nd.com","from-ne.com","from-nh.com","from-nj.com","from-nm.com","from-nv.com","from-ny.net","from-oh.com","from-ok.com","from-or.com","from-pa.com","from-pr.com","from-ri.com","from-sc.com","from-sd.com","from-tn.com","from-tx.com","from-ut.com","from-va.com","from-vt.com","from-wa.com","from-wi.com","from-wv.com","from-wy.com","ftpaccess.cc","fuettertdasnetz.de","game-host.org","game-server.cc","getmyip.com","gets-it.net","go.dyndns.org","gotdns.com","gotdns.org","groks-the.info","groks-this.info","ham-radio-op.net","here-for-more.info","hobby-site.com","hobby-site.org","home.dyndns.org","homedns.org","homeftp.net","homeftp.org","homeip.net","homelinux.com","homelinux.net","homelinux.org","homeunix.com","homeunix.net","homeunix.org","iamallama.com","in-the-band.net","is-a-anarchist.com","is-a-blogger.com","is-a-bookkeeper.com","is-a-bruinsfan.org","is-a-bulls-fan.com","is-a-candidate.org","is-a-caterer.com","is-a-celticsfan.org","is-a-chef.com","is-a-chef.net","is-a-chef.org","is-a-conservative.com","is-a-cpa.com","is-a-cubicle-slave.com","is-a-democrat.com","is-a-designer.com","is-a-doctor.com","is-a-financialadvisor.com","is-a-geek.com","is-a-geek.net","is-a-geek.org","is-a-green.com","is-a-guru.com","is-a-hard-worker.com","is-a-hunter.com","is-a-knight.org","is-a-landscaper.com","is-a-lawyer.com","is-a-liberal.com","is-a-libertarian.com","is-a-linux-user.org","is-a-llama.com","is-a-musician.com","is-a-nascarfan.com","is-a-nurse.com","is-a-painter.com","is-a-patsfan.org","is-a-personaltrainer.com","is-a-photographer.com","is-a-player.com","is-a-republican.com","is-a-rockstar.com","is-a-socialist.com","is-a-soxfan.org","is-a-student.com","is-a-teacher.com","is-a-techie.com","is-a-therapist.com","is-an-accountant.com","is-an-actor.com","is-an-actress.com","is-an-anarchist.com","is-an-artist.com","is-an-engineer.com","is-an-entertainer.com","is-by.us","is-certified.com","is-found.org","is-gone.com","is-into-anime.com","is-into-cars.com","is-into-cartoons.com","is-into-games.com","is-leet.com","is-lost.org","is-not-certified.com","is-saved.org","is-slick.com","is-uberleet.com","is-very-bad.org","is-very-evil.org","is-very-good.org","is-very-nice.org","is-very-sweet.org","is-with-theband.com","isa-geek.com","isa-geek.net","isa-geek.org","isa-hockeynut.com","issmarterthanyou.com","isteingeek.de","istmein.de","kicks-ass.net","kicks-ass.org","knowsitall.info","land-4-sale.us","lebtimnetz.de","leitungsen.de","likes-pie.com","likescandy.com","merseine.nu","mine.nu","misconfused.org","mypets.ws","myphotos.cc","neat-url.com","office-on-the.net","on-the-web.tv","podzone.net","podzone.org","readmyblog.org","saves-the-whales.com","scrapper-site.net","scrapping.cc","selfip.biz","selfip.com","selfip.info","selfip.net","selfip.org","sells-for-less.com","sells-for-u.com","sells-it.net","sellsyourhome.org","servebbs.com","servebbs.net","servebbs.org","serveftp.net","serveftp.org","servegame.org","shacknet.nu","simple-url.com","space-to-rent.com","stuff-4-sale.org","stuff-4-sale.us","teaches-yoga.com","thruhere.net","traeumtgerade.de","webhop.biz","webhop.info","webhop.net","webhop.org","worse-than.tv","writesthisblog.com","ddnss.de","dyn.ddnss.de","dyndns.ddnss.de","dyndns1.de","dyn-ip24.de","home-webserver.de","dyn.home-webserver.de","myhome-server.de","ddnss.org","definima.net","definima.io","bci.dnstrace.pro","ddnsfree.com","ddnsgeek.com","giize.com","gleeze.com","kozow.com","loseyourip.com","ooguy.com","theworkpc.com","casacam.net","dynu.net","accesscam.org","camdvr.org","freeddns.org","mywire.org","webredirect.org","myddns.rocks","blogsite.xyz","dynv6.net","e4.cz","en-root.fr","mytuleap.com","onred.one","staging.onred.one","enonic.io","customer.enonic.io","eu.org","al.eu.org","asso.eu.org","at.eu.org","au.eu.org","be.eu.org","bg.eu.org","ca.eu.org","cd.eu.org","ch.eu.org","cn.eu.org","cy.eu.org","cz.eu.org","de.eu.org","dk.eu.org","edu.eu.org","ee.eu.org","es.eu.org","fi.eu.org","fr.eu.org","gr.eu.org","hr.eu.org","hu.eu.org","ie.eu.org","il.eu.org","in.eu.org","int.eu.org","is.eu.org","it.eu.org","jp.eu.org","kr.eu.org","lt.eu.org","lu.eu.org","lv.eu.org","mc.eu.org","me.eu.org","mk.eu.org","mt.eu.org","my.eu.org","net.eu.org","ng.eu.org","nl.eu.org","no.eu.org","nz.eu.org","paris.eu.org","pl.eu.org","pt.eu.org","q-a.eu.org","ro.eu.org","ru.eu.org","se.eu.org","si.eu.org","sk.eu.org","tr.eu.org","uk.eu.org","us.eu.org","eu-1.evennode.com","eu-2.evennode.com","eu-3.evennode.com","eu-4.evennode.com","us-1.evennode.com","us-2.evennode.com","us-3.evennode.com","us-4.evennode.com","twmail.cc","twmail.net","twmail.org","mymailer.com.tw","url.tw","apps.fbsbx.com","ru.net","adygeya.ru","bashkiria.ru","bir.ru","cbg.ru","com.ru","dagestan.ru","grozny.ru","kalmykia.ru","kustanai.ru","marine.ru","mordovia.ru","msk.ru","mytis.ru","nalchik.ru","nov.ru","pyatigorsk.ru","spb.ru","vladikavkaz.ru","vladimir.ru","abkhazia.su","adygeya.su","aktyubinsk.su","arkhangelsk.su","armenia.su","ashgabad.su","azerbaijan.su","balashov.su","bashkiria.su","bryansk.su","bukhara.su","chimkent.su","dagestan.su","east-kazakhstan.su","exnet.su","georgia.su","grozny.su","ivanovo.su","jambyl.su","kalmykia.su","kaluga.su","karacol.su","karaganda.su","karelia.su","khakassia.su","krasnodar.su","kurgan.su","kustanai.su","lenug.su","mangyshlak.su","mordovia.su","msk.su","murmansk.su","nalchik.su","navoi.su","north-kazakhstan.su","nov.su","obninsk.su","penza.su","pokrovsk.su","sochi.su","spb.su","tashkent.su","termez.su","togliatti.su","troitsk.su","tselinograd.su","tula.su","tuva.su","vladikavkaz.su","vladimir.su","vologda.su","channelsdvr.net","fastly-terrarium.com","fastlylb.net","map.fastlylb.net","freetls.fastly.net","map.fastly.net","a.prod.fastly.net","global.prod.fastly.net","a.ssl.fastly.net","b.ssl.fastly.net","global.ssl.fastly.net","fastpanel.direct","fastvps-server.com","fhapp.xyz","fedorainfracloud.org","fedorapeople.org","cloud.fedoraproject.org","app.os.fedoraproject.org","app.os.stg.fedoraproject.org","mydobiss.com","filegear.me","filegear-au.me","filegear-de.me","filegear-gb.me","filegear-ie.me","filegear-jp.me","filegear-sg.me","firebaseapp.com","flynnhub.com","flynnhosting.net","0e.vc","freebox-os.com","freeboxos.com","fbx-os.fr","fbxos.fr","freebox-os.fr","freeboxos.fr","freedesktop.org","*.futurecms.at","*.ex.futurecms.at","*.in.futurecms.at","futurehosting.at","futuremailing.at","*.ex.ortsinfo.at","*.kunden.ortsinfo.at","*.statics.cloud","service.gov.uk","gehirn.ne.jp","usercontent.jp","gentapps.com","lab.ms","github.io","githubusercontent.com","gitlab.io","glitch.me","lolipop.io","cloudapps.digital","london.cloudapps.digital","homeoffice.gov.uk","ro.im","shop.ro","goip.de","run.app","a.run.app","web.app","*.0emm.com","appspot.com","*.r.appspot.com","blogspot.ae","blogspot.al","blogspot.am","blogspot.ba","blogspot.be","blogspot.bg","blogspot.bj","blogspot.ca","blogspot.cf","blogspot.ch","blogspot.cl","blogspot.co.at","blogspot.co.id","blogspot.co.il","blogspot.co.ke","blogspot.co.nz","blogspot.co.uk","blogspot.co.za","blogspot.com","blogspot.com.ar","blogspot.com.au","blogspot.com.br","blogspot.com.by","blogspot.com.co","blogspot.com.cy","blogspot.com.ee","blogspot.com.eg","blogspot.com.es","blogspot.com.mt","blogspot.com.ng","blogspot.com.tr","blogspot.com.uy","blogspot.cv","blogspot.cz","blogspot.de","blogspot.dk","blogspot.fi","blogspot.fr","blogspot.gr","blogspot.hk","blogspot.hr","blogspot.hu","blogspot.ie","blogspot.in","blogspot.is","blogspot.it","blogspot.jp","blogspot.kr","blogspot.li","blogspot.lt","blogspot.lu","blogspot.md","blogspot.mk","blogspot.mr","blogspot.mx","blogspot.my","blogspot.nl","blogspot.no","blogspot.pe","blogspot.pt","blogspot.qa","blogspot.re","blogspot.ro","blogspot.rs","blogspot.ru","blogspot.se","blogspot.sg","blogspot.si","blogspot.sk","blogspot.sn","blogspot.td","blogspot.tw","blogspot.ug","blogspot.vn","cloudfunctions.net","cloud.goog","codespot.com","googleapis.com","googlecode.com","pagespeedmobilizer.com","publishproxy.com","withgoogle.com","withyoutube.com","awsmppl.com","fin.ci","free.hr","caa.li","ua.rs","conf.se","hs.zone","hs.run","hashbang.sh","hasura.app","hasura-app.io","hepforge.org","herokuapp.com","herokussl.com","myravendb.com","ravendb.community","ravendb.me","development.run","ravendb.run","bpl.biz","orx.biz","ng.city","biz.gl","ng.ink","col.ng","firm.ng","gen.ng","ltd.ng","ngo.ng","ng.school","sch.so","häkkinen.fi","*.moonscale.io","moonscale.net","iki.fi","dyn-berlin.de","in-berlin.de","in-brb.de","in-butter.de","in-dsl.de","in-dsl.net","in-dsl.org","in-vpn.de","in-vpn.net","in-vpn.org","biz.at","info.at","info.cx","ac.leg.br","al.leg.br","am.leg.br","ap.leg.br","ba.leg.br","ce.leg.br","df.leg.br","es.leg.br","go.leg.br","ma.leg.br","mg.leg.br","ms.leg.br","mt.leg.br","pa.leg.br","pb.leg.br","pe.leg.br","pi.leg.br","pr.leg.br","rj.leg.br","rn.leg.br","ro.leg.br","rr.leg.br","rs.leg.br","sc.leg.br","se.leg.br","sp.leg.br","to.leg.br","pixolino.com","ipifony.net","mein-iserv.de","test-iserv.de","iserv.dev","iobb.net","myjino.ru","*.hosting.myjino.ru","*.landing.myjino.ru","*.spectrum.myjino.ru","*.vps.myjino.ru","*.triton.zone","*.cns.joyent.com","js.org","kaas.gg","khplay.nl","keymachine.de","kinghost.net","uni5.net","knightpoint.systems","oya.to","co.krd","edu.krd","git-repos.de","lcube-server.de","svn-repos.de","leadpages.co","lpages.co","lpusercontent.com","lelux.site","co.business","co.education","co.events","co.financial","co.network","co.place","co.technology","app.lmpm.com","linkitools.space","linkyard.cloud","linkyard-cloud.ch","members.linode.com","nodebalancer.linode.com","we.bs","loginline.app","loginline.dev","loginline.io","loginline.services","loginline.site","krasnik.pl","leczna.pl","lubartow.pl","lublin.pl","poniatowa.pl","swidnik.pl","uklugs.org","glug.org.uk","lug.org.uk","lugs.org.uk","barsy.bg","barsy.co.uk","barsyonline.co.uk","barsycenter.com","barsyonline.com","barsy.club","barsy.de","barsy.eu","barsy.in","barsy.info","barsy.io","barsy.me","barsy.menu","barsy.mobi","barsy.net","barsy.online","barsy.org","barsy.pro","barsy.pub","barsy.shop","barsy.site","barsy.support","barsy.uk","*.magentosite.cloud","mayfirst.info","mayfirst.org","hb.cldmail.ru","miniserver.com","memset.net","cloud.metacentrum.cz","custom.metacentrum.cz","flt.cloud.muni.cz","usr.cloud.muni.cz","meteorapp.com","eu.meteorapp.com","co.pl","azurecontainer.io","azurewebsites.net","azure-mobile.net","cloudapp.net","mozilla-iot.org","bmoattachments.org","net.ru","org.ru","pp.ru","ui.nabu.casa","pony.club","of.fashion","on.fashion","of.football","in.london","of.london","for.men","and.mom","for.mom","for.one","for.sale","of.work","to.work","nctu.me","bitballoon.com","netlify.com","4u.com","ngrok.io","nh-serv.co.uk","nfshost.com","dnsking.ch","mypi.co","n4t.co","001www.com","ddnslive.com","myiphost.com","forumz.info","16-b.it","32-b.it","64-b.it","soundcast.me","tcp4.me","dnsup.net","hicam.net","now-dns.net","ownip.net","vpndns.net","dynserv.org","now-dns.org","x443.pw","now-dns.top","ntdll.top","freeddns.us","crafting.xyz","zapto.xyz","nsupdate.info","nerdpol.ovh","blogsyte.com","brasilia.me","cable-modem.org","ciscofreak.com","collegefan.org","couchpotatofries.org","damnserver.com","ddns.me","ditchyourip.com","dnsfor.me","dnsiskinky.com","dvrcam.info","dynns.com","eating-organic.net","fantasyleague.cc","geekgalaxy.com","golffan.us","health-carereform.com","homesecuritymac.com","homesecuritypc.com","hopto.me","ilovecollege.info","loginto.me","mlbfan.org","mmafan.biz","myactivedirectory.com","mydissent.net","myeffect.net","mymediapc.net","mypsx.net","mysecuritycamera.com","mysecuritycamera.net","mysecuritycamera.org","net-freaks.com","nflfan.org","nhlfan.net","no-ip.ca","no-ip.co.uk","no-ip.net","noip.us","onthewifi.com","pgafan.net","point2this.com","pointto.us","privatizehealthinsurance.net","quicksytes.com","read-books.org","securitytactics.com","serveexchange.com","servehumour.com","servep2p.com","servesarcasm.com","stufftoread.com","ufcfan.org","unusualperson.com","workisboring.com","3utilities.com","bounceme.net","ddns.net","ddnsking.com","gotdns.ch","hopto.org","myftp.biz","myftp.org","myvnc.com","no-ip.biz","no-ip.info","no-ip.org","noip.me","redirectme.net","servebeer.com","serveblog.net","servecounterstrike.com","serveftp.com","servegame.com","servehalflife.com","servehttp.com","serveirc.com","serveminecraft.net","servemp3.com","servepics.com","servequake.com","sytes.net","webhop.me","zapto.org","stage.nodeart.io","nodum.co","nodum.io","pcloud.host","nyc.mn","nom.ae","nom.af","nom.ai","nom.al","nym.by","nym.bz","nom.cl","nym.ec","nom.gd","nom.ge","nom.gl","nym.gr","nom.gt","nym.gy","nym.hk","nom.hn","nym.ie","nom.im","nom.ke","nym.kz","nym.la","nym.lc","nom.li","nym.li","nym.lt","nym.lu","nym.me","nom.mk","nym.mn","nym.mx","nom.nu","nym.nz","nym.pe","nym.pt","nom.pw","nom.qa","nym.ro","nom.rs","nom.si","nym.sk","nom.st","nym.su","nym.sx","nom.tj","nym.tw","nom.ug","nom.uy","nom.vc","nom.vg","static.observableusercontent.com","cya.gg","cloudycluster.net","nid.io","opencraft.hosting","operaunite.com","skygearapp.com","outsystemscloud.com","ownprovider.com","own.pm","ox.rs","oy.lc","pgfog.com","pagefrontapp.com","art.pl","gliwice.pl","krakow.pl","poznan.pl","wroc.pl","zakopane.pl","pantheonsite.io","gotpantheon.com","mypep.link","perspecta.cloud","on-web.fr","*.platform.sh","*.platformsh.site","dyn53.io","co.bn","xen.prgmr.com","priv.at","prvcy.page","*.dweb.link","protonet.io","chirurgiens-dentistes-en-france.fr","byen.site","pubtls.org","qualifioapp.com","instantcloud.cn","ras.ru","qa2.com","qcx.io","*.sys.qcx.io","dev-myqnapcloud.com","alpha-myqnapcloud.com","myqnapcloud.com","*.quipelements.com","vapor.cloud","vaporcloud.io","rackmaze.com","rackmaze.net","*.on-k3s.io","*.on-rancher.cloud","*.on-rio.io","readthedocs.io","rhcloud.com","app.render.com","onrender.com","repl.co","repl.run","resindevice.io","devices.resinstaging.io","hzc.io","wellbeingzone.eu","ptplus.fit","wellbeingzone.co.uk","git-pages.rit.edu","sandcats.io","logoip.de","logoip.com","schokokeks.net","gov.scot","scrysec.com","firewall-gateway.com","firewall-gateway.de","my-gateway.de","my-router.de","spdns.de","spdns.eu","firewall-gateway.net","my-firewall.org","myfirewall.org","spdns.org","biz.ua","co.ua","pp.ua","shiftedit.io","myshopblocks.com","shopitsite.com","mo-siemens.io","1kapp.com","appchizi.com","applinzi.com","sinaapp.com","vipsinaapp.com","siteleaf.net","bounty-full.com","alpha.bounty-full.com","beta.bounty-full.com","stackhero-network.com","static.land","dev.static.land","sites.static.land","apps.lair.io","*.stolos.io","spacekit.io","customer.speedpartner.de","api.stdlib.com","storj.farm","utwente.io","soc.srcf.net","user.srcf.net","temp-dns.com","applicationcloud.io","scapp.io","*.s5y.io","*.sensiosite.cloud","syncloud.it","diskstation.me","dscloud.biz","dscloud.me","dscloud.mobi","dsmynas.com","dsmynas.net","dsmynas.org","familyds.com","familyds.net","familyds.org","i234.me","myds.me","synology.me","vpnplus.to","direct.quickconnect.to","taifun-dns.de","gda.pl","gdansk.pl","gdynia.pl","med.pl","sopot.pl","edugit.org","telebit.app","telebit.io","*.telebit.xyz","gwiddle.co.uk","thingdustdata.com","cust.dev.thingdust.io","cust.disrec.thingdust.io","cust.prod.thingdust.io","cust.testing.thingdust.io","arvo.network","azimuth.network","bloxcms.com","townnews-staging.com","12hp.at","2ix.at","4lima.at","lima-city.at","12hp.ch","2ix.ch","4lima.ch","lima-city.ch","trafficplex.cloud","de.cool","12hp.de","2ix.de","4lima.de","lima-city.de","1337.pictures","clan.rip","lima-city.rocks","webspace.rocks","lima.zone","*.transurl.be","*.transurl.eu","*.transurl.nl","tuxfamily.org","dd-dns.de","diskstation.eu","diskstation.org","dray-dns.de","draydns.de","dyn-vpn.de","dynvpn.de","mein-vigor.de","my-vigor.de","my-wan.de","syno-ds.de","synology-diskstation.de","synology-ds.de","uber.space","*.uberspace.de","hk.com","hk.org","ltd.hk","inc.hk","virtualuser.de","virtual-user.de","lib.de.us","2038.io","router.management","v-info.info","voorloper.cloud","v.ua","wafflecell.com","*.webhare.dev","wedeploy.io","wedeploy.me","wedeploy.sh","remotewd.com","wmflabs.org","half.host","xnbay.com","u2.xnbay.com","u2-local.xnbay.com","cistron.nl","demon.nl","xs4all.space","yandexcloud.net","storage.yandexcloud.net","website.yandexcloud.net","official.academy","yolasite.com","ybo.faith","yombo.me","homelink.one","ybo.party","ybo.review","ybo.science","ybo.trade","nohost.me","noho.st","za.net","za.org","now.sh","bss.design","basicserver.io","virtualserver.io","site.builder.nu","enterprisecloud.nu"]},{}],2:[function(a,o,r){"use strict";var p=a("punycode"),k={};k.rules=a("./data/rules.json").map(function(a){return{rule:a,suffix:a.replace(/^(\*\.|\!)/,""),punySuffix:-1,wildcard:"*"===a.charAt(0),exception:"!"===a.charAt(0)}}),k.endsWith=function(a,o){return-1!==a.indexOf(o,a.length-o.length)},k.findRule=function(a){var i=p.toASCII(a);return k.rules.reduce(function(a,o){return-1===o.punySuffix&&(o.punySuffix=p.toASCII(o.suffix)),k.endsWith(i,"."+o.punySuffix)||i===o.punySuffix?o:a},null)},r.errorCodes={DOMAIN_TOO_SHORT:"Domain name too short.",DOMAIN_TOO_LONG:"Domain name too long. It should be no more than 255 chars.",LABEL_STARTS_WITH_DASH:"Domain name label can not start with a dash.",LABEL_ENDS_WITH_DASH:"Domain name label can not end with a dash.",LABEL_TOO_LONG:"Domain name label should be at most 63 chars long.",LABEL_TOO_SHORT:"Domain name label should be at least 1 character long.",LABEL_INVALID_CHARS:"Domain name label can only contain alphanumeric characters or dashes."},k.validate=function(a){var o=p.toASCII(a);if(o.length<1)return"DOMAIN_TOO_SHORT";if(255<o.length)return"DOMAIN_TOO_LONG";for(var i,e=o.split("."),n=0;n<e.length;++n){if(!(i=e[n]).length)return"LABEL_TOO_SHORT";if(63<i.length)return"LABEL_TOO_LONG";if("-"===i.charAt(0))return"LABEL_STARTS_WITH_DASH";if("-"===i.charAt(i.length-1))return"LABEL_ENDS_WITH_DASH";if(!/^[a-z0-9\-]+$/.test(i))return"LABEL_INVALID_CHARS"}},r.parse=function(a){if("string"!=typeof a)throw new TypeError("Domain name must be a string.");var o=a.slice(0).toLowerCase();"."===o.charAt(o.length-1)&&(o=o.slice(0,o.length-1));var i=k.validate(o);if(i)return{input:a,error:{message:r.errorCodes[i],code:i}};var e={input:a,tld:null,sld:null,domain:null,subdomain:null,listed:!1},n=o.split(".");if("local"===n[n.length-1])return e;function s(){return/xn--/.test(o)&&(e.domain&&(e.domain=p.toASCII(e.domain)),e.subdomain&&(e.subdomain=p.toASCII(e.subdomain))),e}var m=k.findRule(o);if(!m)return n.length<2?e:(e.tld=n.pop(),e.sld=n.pop(),e.domain=[e.sld,e.tld].join("."),n.length&&(e.subdomain=n.pop()),s());e.listed=!0;var t=m.suffix.split("."),u=n.slice(0,n.length-t.length);return m.exception&&u.push(t.shift()),e.tld=t.join("."),u.length?(m.wildcard&&(t.unshift(u.pop()),e.tld=t.join(".")),u.length&&(e.sld=u.pop(),e.domain=[e.sld,e.tld].join("."),u.length&&(e.subdomain=u.join("."))),s()):s()},r.get=function(a){return a&&r.parse(a).domain||null},r.isValid=function(a){var o=r.parse(a);return Boolean(o.domain&&o.listed)}},{"./data/rules.json":1,punycode:3}],3:[function(a,T,D){(function(S){!function(a){var o="object"==typeof D&&D&&!D.nodeType&&D,i="object"==typeof T&&T&&!T.nodeType&&T,e="object"==typeof S&&S;e.global!==e&&e.window!==e&&e.self!==e||(a=e);var n,s,d=2147483647,b=36,y=1,f=26,m=38,t=700,v=72,w=128,z="-",u=/^xn--/,r=/[^\x20-\x7E]/,p=/[\x2E\u3002\uFF0E\uFF61]/g,k={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=b-y,x=Math.floor,q=String.fromCharCode;function A(a){throw new RangeError(k[a])}function l(a,o){for(var i=a.length,e=[];i--;)e[i]=o(a[i]);return e}function g(a,o){var i=a.split("@"),e="";return 1<i.length&&(e=i[0]+"@",a=i[1]),e+l((a=a.replace(p,".")).split("."),o).join(".")}function O(a){for(var o,i,e=[],n=0,s=a.length;n<s;)55296<=(o=a.charCodeAt(n++))&&o<=56319&&n<s?56320==(64512&(i=a.charCodeAt(n++)))?e.push(((1023&o)<<10)+(1023&i)+65536):(e.push(o),n--):e.push(o);return e}function _(a){return l(a,function(a){var o="";return 65535<a&&(o+=q((a-=65536)>>>10&1023|55296),a=56320|1023&a),o+=q(a)}).join("")}function L(a,o){return a+22+75*(a<26)-((0!=o)<<5)}function I(a,o,i){var e=0;for(a=i?x(a/t):a>>1,a+=x(a/o);c*f>>1<a;e+=b)a=x(a/c);return x(e+(c+1)*a/(a+m))}function h(a){var o,i,e,n,s,m,t,u,r,p,k,c=[],l=a.length,g=0,h=w,j=v;for((i=a.lastIndexOf(z))<0&&(i=0),e=0;e<i;++e)128<=a.charCodeAt(e)&&A("not-basic"),c.push(a.charCodeAt(e));for(n=0<i?i+1:0;n<l;){for(s=g,m=1,t=b;l<=n&&A("invalid-input"),k=a.charCodeAt(n++),(b<=(u=k-48<10?k-22:k-65<26?k-65:k-97<26?k-97:b)||u>x((d-g)/m))&&A("overflow"),g+=u*m,!(u<(r=t<=j?y:j+f<=t?f:t-j));t+=b)m>x(d/(p=b-r))&&A("overflow"),m*=p;j=I(g-s,o=c.length+1,0==s),x(g/o)>d-h&&A("overflow"),h+=x(g/o),g%=o,c.splice(g++,0,h)}return _(c)}function j(a){var o,i,e,n,s,m,t,u,r,p,k,c,l,g,h,j=[];for(c=(a=O(a)).length,o=w,s=v,m=i=0;m<c;++m)(k=a[m])<128&&j.push(q(k));for(e=n=j.length,n&&j.push(z);e<c;){for(t=d,m=0;m<c;++m)o<=(k=a[m])&&k<t&&(t=k);for(t-o>x((d-i)/(l=e+1))&&A("overflow"),i+=(t-o)*l,o=t,m=0;m<c;++m)if((k=a[m])<o&&++i>d&&A("overflow"),k==o){for(u=i,r=b;!(u<(p=r<=s?y:s+f<=r?f:r-s));r+=b)h=u-p,g=b-p,j.push(q(L(p+h%g,0))),u=x(h/g);j.push(q(L(u,0))),s=I(i,l,e==n),i=0,++e}++i,++o}return j.join("")}if(n={version:"1.4.1",ucs2:{decode:O,encode:_},decode:h,encode:j,toASCII:function(a){return g(a,function(a){return r.test(a)?"xn--"+j(a):a})},toUnicode:function(a){return g(a,function(a){return u.test(a)?h(a.slice(4).toLowerCase()):a})}},0,o&&i)if(T.exports==o)i.exports=n;else for(s in n)n.hasOwnProperty(s)&&(o[s]=n[s]);else a.punycode=n}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[2])(2)}); diff --git a/node_modules/psl/package.json b/node_modules/psl/package.json index 80356cc..c627c64 100644 --- a/node_modules/psl/package.json +++ b/node_modules/psl/package.json @@ -1,27 +1,27 @@ { - "_from": "psl@^1.1.24", - "_id": "psl@1.3.0", + "_from": "psl@^1.1.28", + "_id": "psl@1.7.0", "_inBundle": false, - "_integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==", + "_integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", "_location": "/psl", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "psl@^1.1.24", + "raw": "psl@^1.1.28", "name": "psl", "escapedName": "psl", - "rawSpec": "^1.1.24", + "rawSpec": "^1.1.28", "saveSpec": null, - "fetchSpec": "^1.1.24" + "fetchSpec": "^1.1.28" }, "_requiredBy": [ "/tough-cookie" ], - "_resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz", - "_shasum": "e1ebf6a3b5564fa8376f3da2275da76d875ca1bd", - "_spec": "psl@^1.1.24", - "_where": "/Users/gebauer/Workspace/hugo-dev-theme/themes/ag/node_modules/tough-cookie", + "_resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "_shasum": "f1c4c47a8ef97167dea5d6bbf4816d736e884a3c", + "_spec": "psl@^1.1.28", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/tough-cookie", "author": { "name": "Lupo Montero", "email": "lupomontero@gmail.com", @@ -35,20 +35,20 @@ "description": "Domain name parser based on the Public Suffix List", "devDependencies": { "JSONStream": "^1.3.5", - "browserify": "^16.3.0", - "commit-and-pr": "^1.0.3", - "eslint": "^6.1.0", + "browserify": "^16.5.0", + "commit-and-pr": "^1.0.4", + "eslint": "^6.8.0", "eslint-config-hapi": "^12.0.0", "eslint-plugin-hapi": "^4.1.0", - "karma": "^4.2.0", + "karma": "^4.4.1", "karma-browserify": "^6.1.0", "karma-mocha": "^1.3.0", "karma-mocha-reporter": "^2.2.5", "karma-phantomjs-launcher": "^1.0.4", - "mocha": "^6.2.0", + "mocha": "^6.2.2", "phantomjs-prebuilt": "^2.1.16", "request": "^2.88.0", - "uglify-js": "^3.6.0", + "uglify-js": "^3.7.3", "watchify": "^3.11.1" }, "homepage": "https://github.com/lupomontero/psl#readme", @@ -73,5 +73,5 @@ "test": "mocha test && karma start ./karma.conf.js --single-run", "watch": "mocha test --watch" }, - "version": "1.3.0" + "version": "1.7.0" } diff --git a/node_modules/readable-stream/.travis.yml b/node_modules/readable-stream/.travis.yml index 4099255..f62cdac 100644 --- a/node_modules/readable-stream/.travis.yml +++ b/node_modules/readable-stream/.travis.yml @@ -1,54 +1,33 @@ sudo: false language: node_js before_install: - - npm install -g npm@2 - - test $NPM_LEGACY && npm install -g npm@latest-3 || npm install npm -g + - (test $NPM_LEGACY && npm install -g npm@2 && npm install -g npm@3) || true notifications: email: false matrix: fast_finish: true include: - node_js: '0.8' - env: - - TASK=test - - NPM_LEGACY=true + env: NPM_LEGACY=true - node_js: '0.10' - env: - - TASK=test - - NPM_LEGACY=true + env: NPM_LEGACY=true - node_js: '0.11' - env: - - TASK=test - - NPM_LEGACY=true + env: NPM_LEGACY=true - node_js: '0.12' - env: - - TASK=test - - NPM_LEGACY=true + env: NPM_LEGACY=true - node_js: 1 - env: - - TASK=test - - NPM_LEGACY=true + env: NPM_LEGACY=true - node_js: 2 - env: - - TASK=test - - NPM_LEGACY=true + env: NPM_LEGACY=true - node_js: 3 - env: - - TASK=test - - NPM_LEGACY=true + env: NPM_LEGACY=true - node_js: 4 - env: TASK=test - node_js: 5 - env: TASK=test - node_js: 6 - env: TASK=test - node_js: 7 - env: TASK=test - node_js: 8 - env: TASK=test - node_js: 9 - env: TASK=test -script: "npm run $TASK" +script: "npm run test" env: global: - secure: rE2Vvo7vnjabYNULNyLFxOyt98BoJexDqsiOnfiD6kLYYsiQGfr/sbZkPMOFm9qfQG7pjqx+zZWZjGSswhTt+626C0t/njXqug7Yps4c3dFblzGfreQHp7wNX5TFsvrxd6dAowVasMp61sJcRnB2w8cUzoe3RAYUDHyiHktwqMc= diff --git a/node_modules/readable-stream/lib/_stream_duplex.js b/node_modules/readable-stream/lib/_stream_duplex.js index a1ca813..57003c3 100644 --- a/node_modules/readable-stream/lib/_stream_duplex.js +++ b/node_modules/readable-stream/lib/_stream_duplex.js @@ -43,7 +43,7 @@ var objectKeys = Object.keys || function (obj) { module.exports = Duplex; /*<replacement>*/ -var util = require('core-util-is'); +var util = Object.create(require('core-util-is')); util.inherits = require('inherits'); /*</replacement>*/ diff --git a/node_modules/readable-stream/lib/_stream_passthrough.js b/node_modules/readable-stream/lib/_stream_passthrough.js index a9c8358..612edb4 100644 --- a/node_modules/readable-stream/lib/_stream_passthrough.js +++ b/node_modules/readable-stream/lib/_stream_passthrough.js @@ -30,7 +30,7 @@ module.exports = PassThrough; var Transform = require('./_stream_transform'); /*<replacement>*/ -var util = require('core-util-is'); +var util = Object.create(require('core-util-is')); util.inherits = require('inherits'); /*</replacement>*/ diff --git a/node_modules/readable-stream/lib/_stream_readable.js b/node_modules/readable-stream/lib/_stream_readable.js index bf34ac6..0f80764 100644 --- a/node_modules/readable-stream/lib/_stream_readable.js +++ b/node_modules/readable-stream/lib/_stream_readable.js @@ -64,7 +64,7 @@ function _isUint8Array(obj) { /*</replacement>*/ /*<replacement>*/ -var util = require('core-util-is'); +var util = Object.create(require('core-util-is')); util.inherits = require('inherits'); /*</replacement>*/ diff --git a/node_modules/readable-stream/lib/_stream_transform.js b/node_modules/readable-stream/lib/_stream_transform.js index 5d1f8b8..fcfc105 100644 --- a/node_modules/readable-stream/lib/_stream_transform.js +++ b/node_modules/readable-stream/lib/_stream_transform.js @@ -68,7 +68,7 @@ module.exports = Transform; var Duplex = require('./_stream_duplex'); /*<replacement>*/ -var util = require('core-util-is'); +var util = Object.create(require('core-util-is')); util.inherits = require('inherits'); /*</replacement>*/ diff --git a/node_modules/readable-stream/lib/_stream_writable.js b/node_modules/readable-stream/lib/_stream_writable.js index b3f4e85..b0b0220 100644 --- a/node_modules/readable-stream/lib/_stream_writable.js +++ b/node_modules/readable-stream/lib/_stream_writable.js @@ -64,7 +64,7 @@ var Duplex; Writable.WritableState = WritableState; /*<replacement>*/ -var util = require('core-util-is'); +var util = Object.create(require('core-util-is')); util.inherits = require('inherits'); /*</replacement>*/ diff --git a/node_modules/readable-stream/package.json b/node_modules/readable-stream/package.json index ec0a712..184fc03 100644 --- a/node_modules/readable-stream/package.json +++ b/node_modules/readable-stream/package.json @@ -1,8 +1,8 @@ { "_from": "readable-stream@^2.0.6", - "_id": "readable-stream@2.3.6", + "_id": "readable-stream@2.3.7", "_inBundle": false, - "_integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "_integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "_location": "/readable-stream", "_phantomChildren": {}, "_requested": { @@ -19,10 +19,10 @@ "/are-we-there-yet", "/stdout-stream" ], - "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "_shasum": "b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf", + "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "_shasum": "1eca1cf711aef814c04f62252a36a62f6cb23b57", "_spec": "readable-stream@^2.0.6", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/are-we-there-yet", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/are-we-there-yet", "browser": { "util": false, "./readable.js": "./readable-browser.js", @@ -78,5 +78,5 @@ "report": "nyc report --reporter=lcov", "test": "tap test/parallel/*.js test/ours/*.js && node test/verify-dependencies.js" }, - "version": "2.3.6" + "version": "2.3.7" } diff --git a/node_modules/request/CHANGELOG.md b/node_modules/request/CHANGELOG.md index 751514d..d3ffcd0 100644 --- a/node_modules/request/CHANGELOG.md +++ b/node_modules/request/CHANGELOG.md @@ -1,5 +1,13 @@ ## Change Log +### v2.88.0 (2018/08/10) +- [#2996](https://github.com/request/request/pull/2996) fix(uuid): import versioned uuid (@kwonoj) +- [#2994](https://github.com/request/request/pull/2994) Update to oauth-sign 0.9.0 (@dlecocq) +- [#2993](https://github.com/request/request/pull/2993) Fix header tests (@simov) +- [#2904](https://github.com/request/request/pull/2904) #515, #2894 Strip port suffix from Host header if the protocol is known. (#2904) (@paambaati) +- [#2791](https://github.com/request/request/pull/2791) Improve AWS SigV4 support. (#2791) (@vikhyat) +- [#2977](https://github.com/request/request/pull/2977) Update test certificates (@simov) + ### v2.87.0 (2018/05/21) - [#2943](https://github.com/request/request/pull/2943) Replace hawk dependency with a local implemenation (#2943) (@hueniverse) diff --git a/node_modules/request/README.md b/node_modules/request/README.md index b91623d..9da0eb7 100644 --- a/node_modules/request/README.md +++ b/node_modules/request/README.md @@ -1,3 +1,9 @@ +# Deprecated! + +As of Feb 11th 2020, request is fully deprecated. No new changes are expected land. In fact, none have landed for some time. + +For more information about why request is deprecated and possible alternatives refer to +[this issue](https://github.com/request/request/issues/3142). # Request - Simplified HTTP client @@ -16,9 +22,9 @@ Request is designed to be the simplest way possible to make http calls. It supports HTTPS and follows redirects by default. ```js -var request = require('request'); +const request = require('request'); request('http://www.google.com', function (error, response, body) { - console.log('error:', error); // Print the error if one occurred + console.error('error:', error); // Print the error if one occurred console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received console.log('body:', body); // Print the HTML for the Google homepage. }); @@ -86,7 +92,7 @@ To easily handle errors when streaming requests, listen to the `error` event bef request .get('http://mysite.com/doodle.png') .on('error', function(err) { - console.log(err) + console.error(err) }) .pipe(fs.createWriteStream('doodle.png')) ``` @@ -110,7 +116,7 @@ You can also `pipe()` from `http.ServerRequest` instances, as well as to `http.S ```js http.createServer(function (req, resp) { if (req.url === '/doodle.png') { - var x = request('http://mysite.com/doodle.png') + const x = request('http://mysite.com/doodle.png') req.pipe(x) x.pipe(resp) } @@ -126,7 +132,7 @@ req.pipe(request('http://mysite.com/doodle.png')).pipe(resp) Also, none of this new functionality conflicts with requests previous features, it just expands them. ```js -var r = request.defaults({'proxy':'http://localproxy.com'}) +const r = request.defaults({'proxy':'http://localproxy.com'}) http.createServer(function (req, resp) { if (req.url === '/doodle.png') { @@ -152,6 +158,8 @@ Several alternative interfaces are provided by the request team, including: - [`request-promise-native`](https://github.com/request/request-promise-native) (uses native Promises) - [`request-promise-any`](https://github.com/request/request-promise-any) (uses [any-promise](https://www.npmjs.com/package/any-promise) Promises) +Also, [`util.promisify`](https://nodejs.org/api/util.html#util_util_promisify_original), which is available from Node.js v8.0 can be used to convert a regular function that takes a callback to return a promise instead. + [back to top](#table-of-contents) @@ -183,7 +191,7 @@ For `multipart/form-data` we use the [form-data](https://github.com/form-data/fo ```js -var formData = { +const formData = { // Pass a simple key-value pair my_field: 'my_value', // Pass data via Buffers @@ -218,8 +226,8 @@ For advanced cases, you can access the form-data object itself via `r.form()`. T ```js // NOTE: Advanced use-case, for normal use see 'formData' usage above -var r = request.post('http://service.com/upload', function optionalCallback(err, httpResponse, body) {...}) -var form = r.form(); +const r = request.post('http://service.com/upload', function optionalCallback(err, httpResponse, body) {...}) +const form = r.form(); form.append('my_field', 'my_value'); form.append('my_buffer', Buffer.from([1, 2, 3])); form.append('custom_file', fs.createReadStream(__dirname + '/unicycle.jpg'), {filename: 'unicycle.jpg'}); @@ -314,11 +322,11 @@ detailed in [RFC 1738](http://www.ietf.org/rfc/rfc1738.txt). Simply pass the `user:password` before the host with an `@` sign: ```js -var username = 'username', +const username = 'username', password = 'password', url = 'http://' + username + ':' + password + '@some.server.com'; -request({url: url}, function (error, response, body) { +request({url}, function (error, response, body) { // Do more stuff with 'body' here }); ``` @@ -347,9 +355,9 @@ of stars and forks for the request repository. This requires a custom `User-Agent` header as well as https. ```js -var request = require('request'); +const request = require('request'); -var options = { +const options = { url: 'https://api.github.com/repos/request/request', headers: { 'User-Agent': 'request' @@ -358,7 +366,7 @@ var options = { function callback(error, response, body) { if (!error && response.statusCode == 200) { - var info = JSON.parse(body); + const info = JSON.parse(body); console.log(info.stargazers_count + " Stars"); console.log(info.forks_count + " Forks"); } @@ -382,7 +390,7 @@ default signing algorithm is ```js // OAuth1.0 - 3-legged server side flow (Twitter example) // step 1 -var qs = require('querystring') +const qs = require('querystring') , oauth = { callback: 'http://mysite.com/callback/' , consumer_key: CONSUMER_KEY @@ -397,14 +405,14 @@ request.post({url:url, oauth:oauth}, function (e, r, body) { // verified with twitter that they are authorizing your app. // step 2 - var req_data = qs.parse(body) - var uri = 'https://api.twitter.com/oauth/authenticate' + const req_data = qs.parse(body) + const uri = 'https://api.twitter.com/oauth/authenticate' + '?' + qs.stringify({oauth_token: req_data.oauth_token}) // redirect the user to the authorize uri // step 3 // after the user is redirected back to your server - var auth_data = qs.parse(body) + const auth_data = qs.parse(body) , oauth = { consumer_key: CONSUMER_KEY , consumer_secret: CONSUMER_SECRET @@ -416,7 +424,7 @@ request.post({url:url, oauth:oauth}, function (e, r, body) { ; request.post({url:url, oauth:oauth}, function (e, r, body) { // ready to make signed requests on behalf of the user - var perm_data = qs.parse(body) + const perm_data = qs.parse(body) , oauth = { consumer_key: CONSUMER_KEY , consumer_secret: CONSUMER_SECRET @@ -605,14 +613,14 @@ TLS/SSL Protocol options, such as `cert`, `key` and `passphrase`, can be set directly in `options` object, in the `agentOptions` property of the `options` object, or even in `https.globalAgent.options`. Keep in mind that, although `agentOptions` allows for a slightly wider range of configurations, the recommended way is via `options` object directly, as using `agentOptions` or `https.globalAgent.options` would not be applied in the same way in proxied environments (as data travels through a TLS connection instead of an http/https agent). ```js -var fs = require('fs') +const fs = require('fs') , path = require('path') , certFile = path.resolve(__dirname, 'ssl/client.crt') , keyFile = path.resolve(__dirname, 'ssl/client.key') , caFile = path.resolve(__dirname, 'ssl/ca.cert.pem') , request = require('request'); -var options = { +const options = { url: 'https://api.some-server.com/', cert: fs.readFileSync(certFile), key: fs.readFileSync(keyFile), @@ -629,13 +637,13 @@ In the example below, we call an API that requires client side SSL certificate (in PEM format) with passphrase protected private key (in PEM format) and disable the SSLv3 protocol: ```js -var fs = require('fs') +const fs = require('fs') , path = require('path') , certFile = path.resolve(__dirname, 'ssl/client.crt') , keyFile = path.resolve(__dirname, 'ssl/client.key') , request = require('request'); -var options = { +const options = { url: 'https://api.some-server.com/', agentOptions: { cert: fs.readFileSync(certFile), @@ -675,6 +683,25 @@ request.get({ }); ``` +The `ca` value can be an array of certificates, in the event you have a private or internal corporate public-key infrastructure hierarchy. For example, if you want to connect to https://api.some-server.com which presents a key chain consisting of: +1. its own public key, which is signed by: +2. an intermediate "Corp Issuing Server", that is in turn signed by: +3. a root CA "Corp Root CA"; + +you can configure your request as follows: + +```js +request.get({ + url: 'https://api.some-server.com/', + agentOptions: { + ca: [ + fs.readFileSync('Corp Issuing Server.pem'), + fs.readFileSync('Corp Root CA.pem') + ] + } +}); +``` + [back to top](#table-of-contents) @@ -687,7 +714,7 @@ The `options.har` property will override the values: `url`, `method`, `qs`, `hea A validation step will check if the HAR Request format matches the latest spec (v1.2) and will skip parsing if not matching. ```js - var request = require('request') + const request = require('request') request({ // will be ignored method: 'GET', @@ -802,11 +829,9 @@ The first argument can be either a `url` or an `options` object. The only requir work around this, either use [`request.defaults`](#requestdefaultsoptions) with your pool options or create the pool object with the `maxSockets` property outside of the loop. -- `timeout` - integer containing the number of milliseconds to wait for a -server to send response headers (and start the response body) before aborting -the request. Note that if the underlying TCP connection cannot be established, -the OS-wide TCP connection timeout will overrule the `timeout` option ([the -default in Linux can be anywhere from 20-120 seconds][linux-timeout]). +- `timeout` - integer containing number of milliseconds, controls two timeouts. + - **Read timeout**: Time to wait for a server to send response headers (and start the response body) before aborting the request. + - **Connection timeout**: Sets the socket to timeout after `timeout` milliseconds of inactivity. Note that increasing the timeout beyond the OS-wide TCP connection timeout will not have any effect ([the default in Linux can be anywhere from 20-120 seconds][linux-timeout]) [linux-timeout]: http://www.sekuda.com/overriding_the_default_linux_kernel_20_second_tcp_socket_connect_timeout @@ -847,7 +872,7 @@ default in Linux can be anywhere from 20-120 seconds][linux-timeout]). - `download`: Duration of HTTP download (`timings.end` - `timings.response`) - `total`: Duration entire HTTP round-trip (`timings.end`) -- `har` - a [HAR 1.2 Request Object](http://www.softwareishard.com/blog/har-12-spec/#request), will be processed from HAR format into options overwriting matching values *(see the [HAR 1.2 section](#support-for-har-1.2) for details)* +- `har` - a [HAR 1.2 Request Object](http://www.softwareishard.com/blog/har-12-spec/#request), will be processed from HAR format into options overwriting matching values *(see the [HAR 1.2 section](#support-for-har-12) for details)* - `callback` - alternatively pass the request's callback in the options object The callback argument gets 3 arguments: @@ -880,13 +905,13 @@ instead, it **returns a wrapper** that has your default settings applied to it. For example: ```js //requests using baseRequest() will set the 'x-token' header -var baseRequest = request.defaults({ +const baseRequest = request.defaults({ headers: {'x-token': 'my-token'} }) //requests using specialRequest() will include the 'x-token' header set in //baseRequest and will also include the 'special' header -var specialRequest = baseRequest.defaults({ +const specialRequest = baseRequest.defaults({ headers: {special: 'special value'} }) ``` @@ -918,6 +943,17 @@ Function that creates a new cookie jar. request.jar() ``` +### response.caseless.get('header-name') + +Function that returns the specified response header field using a [case-insensitive match](https://tools.ietf.org/html/rfc7230#section-3.2) + +```js +request('http://www.google.com', function (error, response, body) { + // print the Content-Type header even if the server returned it as 'content-type' (lowercase) + console.log('Content-Type is:', response.caseless.get('Content-Type')); +}); +``` + [back to top](#table-of-contents) @@ -975,7 +1011,7 @@ request.get('http://10.255.255.1', {timeout: 1500}, function(err) { ## Examples: ```js - var request = require('request') + const request = require('request') , rand = Math.floor(Math.random()*100000000).toString() ; request( @@ -1006,7 +1042,7 @@ while the response object is unmodified and will contain compressed data if the server sent a compressed response. ```js - var request = require('request') + const request = require('request') request( { method: 'GET' , uri: 'http://www.google.com' @@ -1034,7 +1070,7 @@ the server sent a compressed response. Cookies are disabled by default (else, they would be used in subsequent requests). To enable cookies, set `jar` to `true` (either in `defaults` or `options`). ```js -var request = request.defaults({jar: true}) +const request = request.defaults({jar: true}) request('http://www.google.com', function () { request('http://images.google.com') }) @@ -1043,8 +1079,8 @@ request('http://www.google.com', function () { To use a custom cookie jar (instead of `request`’s global cookie jar), set `jar` to an instance of `request.jar()` (either in `defaults` or `options`) ```js -var j = request.jar() -var request = request.defaults({jar:j}) +const j = request.jar() +const request = request.defaults({jar:j}) request('http://www.google.com', function () { request('http://images.google.com') }) @@ -1053,9 +1089,9 @@ request('http://www.google.com', function () { OR ```js -var j = request.jar(); -var cookie = request.cookie('key1=value1'); -var url = 'http://www.google.com'; +const j = request.jar(); +const cookie = request.cookie('key1=value1'); +const url = 'http://www.google.com'; j.setCookie(cookie, url); request({url: url, jar: j}, function () { request('http://images.google.com') @@ -1068,9 +1104,9 @@ which supports saving to and restoring from JSON files), pass it as a parameter to `request.jar()`: ```js -var FileCookieStore = require('tough-cookie-filestore'); +const FileCookieStore = require('tough-cookie-filestore'); // NOTE - currently the 'cookies.json' file must already exist! -var j = request.jar(new FileCookieStore('cookies.json')); +const j = request.jar(new FileCookieStore('cookies.json')); request = request.defaults({ jar : j }) request('http://www.google.com', function() { request('http://images.google.com') @@ -1080,16 +1116,16 @@ request('http://www.google.com', function() { The cookie store must be a [`tough-cookie`](https://github.com/SalesforceEng/tough-cookie) store and it must support synchronous operations; see the -[`CookieStore` API docs](https://github.com/SalesforceEng/tough-cookie#cookiestore-api) +[`CookieStore` API docs](https://github.com/SalesforceEng/tough-cookie#api) for details. To inspect your cookie jar after a request: ```js -var j = request.jar() +const j = request.jar() request({url: 'http://www.google.com', jar: j}, function () { - var cookie_string = j.getCookieString(url); // "key1=value1; key2=value2; ..." - var cookies = j.getCookies(url); + const cookie_string = j.getCookieString(url); // "key1=value1; key2=value2; ..." + const cookies = j.getCookies(url); // [{key: 'key1', value: 'value1', domain: "www.google.com", ...}, ...] }) ``` diff --git a/node_modules/request/index.js b/node_modules/request/index.js index f9b480a..d50f991 100755 --- a/node_modules/request/index.js +++ b/node_modules/request/index.js @@ -27,7 +27,7 @@ function initParams (uri, options, callback) { } var params = {} - if (typeof options === 'object') { + if (options !== null && typeof options === 'object') { extend(params, options, {uri: uri}) } else if (typeof uri === 'string') { extend(params, {uri: uri}) diff --git a/node_modules/request/lib/auth.js b/node_modules/request/lib/auth.js index f5edf32..02f2038 100644 --- a/node_modules/request/lib/auth.js +++ b/node_modules/request/lib/auth.js @@ -62,7 +62,7 @@ Auth.prototype.digest = function (method, path, authHeader) { var challenge = {} var re = /([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi - for (;;) { + while (true) { var match = re.exec(authHeader) if (!match) { break diff --git a/node_modules/request/lib/getProxyFromURI.js b/node_modules/request/lib/getProxyFromURI.js index 4633ba5..0b9b18e 100644 --- a/node_modules/request/lib/getProxyFromURI.js +++ b/node_modules/request/lib/getProxyFromURI.js @@ -40,7 +40,7 @@ function uriInNoProxy (uri, noProxy) { function getProxyFromURI (uri) { // Decide the proper request proxy to use based on the request URI object and the // environmental variables (NO_PROXY, HTTP_PROXY, etc.) - // respect NO_PROXY environment variables (see: http://lynx.isc.org/current/breakout/lynx_help/keystrokes/environments.html) + // respect NO_PROXY environment variables (see: https://lynx.invisible-island.net/lynx2.8.7/breakout/lynx_help/keystrokes/environments.html) var noProxy = process.env.NO_PROXY || process.env.no_proxy || '' diff --git a/node_modules/request/lib/har.js b/node_modules/request/lib/har.js index 2f66030..0dedee4 100644 --- a/node_modules/request/lib/har.js +++ b/node_modules/request/lib/har.js @@ -172,7 +172,7 @@ Har.prototype.options = function (options) { req.postData.params.forEach(function (param) { var attachment = {} - if (!param.fileName && !param.fileName && !param.contentType) { + if (!param.fileName && !param.contentType) { options.formData[param.name] = param.value return } diff --git a/node_modules/request/package.json b/node_modules/request/package.json index 0976a78..e3c97be 100644 --- a/node_modules/request/package.json +++ b/node_modules/request/package.json @@ -1,8 +1,8 @@ { "_from": "request@^2.88.0", - "_id": "request@2.88.0", + "_id": "request@2.88.2", "_inBundle": false, - "_integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "_integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "_location": "/request", "_phantomChildren": {}, "_requested": { @@ -19,10 +19,10 @@ "/node-gyp", "/node-sass" ], - "_resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "_shasum": "9c2fca4f7d35b592efe57c7f0a55e81052124fef", + "_resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "_shasum": "d73c918731cb5a87da047e207234146f664d12b3", "_spec": "request@^2.88.0", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/node-sass", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/node-sass", "author": { "name": "Mikeal Rogers", "email": "mikeal.rogers@gmail.com" @@ -39,7 +39,7 @@ "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", - "har-validator": "~5.1.0", + "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", @@ -49,11 +49,11 @@ "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", + "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" }, - "deprecated": false, + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "description": "Simplified HTTP request client.", "devDependencies": { "bluebird": "^3.2.1", @@ -63,13 +63,13 @@ "codecov": "^3.0.4", "coveralls": "^3.0.2", "function-bind": "^1.0.2", - "istanbul": "^0.4.0", "karma": "^3.0.0", "karma-browserify": "^5.0.1", "karma-cli": "^1.0.0", "karma-coverage": "^1.0.0", "karma-phantomjs-launcher": "^1.0.0", "karma-tap": "^3.0.1", + "nyc": "^14.1.1", "phantomjs-prebuilt": "^2.1.3", "rimraf": "^2.2.8", "server-destroy": "^1.0.1", @@ -78,7 +78,7 @@ "taper": "^0.5.0" }, "engines": { - "node": ">= 4" + "node": ">= 6" }, "files": [ "lib/", @@ -110,7 +110,7 @@ "test": "npm run lint && npm run test-ci && npm run test-browser", "test-browser": "node tests/browser/start.js", "test-ci": "taper tests/test-*.js", - "test-cov": "istanbul cover tape tests/test-*.js" + "test-cov": "nyc --reporter=lcov tape tests/test-*.js" }, - "version": "2.88.0" + "version": "2.88.2" } diff --git a/node_modules/request/request.js b/node_modules/request/request.js index 90bed4f..198b760 100644 --- a/node_modules/request/request.js +++ b/node_modules/request/request.js @@ -828,8 +828,7 @@ Request.prototype.start = function () { if (isConnecting) { var onReqSockConnect = function () { socket.removeListener('connect', onReqSockConnect) - clearTimeout(self.timeoutTimer) - self.timeoutTimer = null + self.clearTimeout() setReqTimeout() } @@ -874,10 +873,7 @@ Request.prototype.onRequestError = function (error) { self.req.end() return } - if (self.timeout && self.timeoutTimer) { - clearTimeout(self.timeoutTimer) - self.timeoutTimer = null - } + self.clearTimeout() self.emit('error', error) } @@ -964,10 +960,7 @@ Request.prototype.onRequestResponse = function (response) { if (self.setHost) { self.removeHeader('host') } - if (self.timeout && self.timeoutTimer) { - clearTimeout(self.timeoutTimer) - self.timeoutTimer = null - } + self.clearTimeout() var targetCookieJar = (self._jar && self._jar.setCookie) ? self._jar : globalCookieJar var addCookie = function (cookie) { @@ -1172,6 +1165,7 @@ Request.prototype.abort = function () { self.response.destroy() } + self.clearTimeout() self.emit('abort') } @@ -1448,7 +1442,7 @@ Request.prototype.jar = function (jar) { cookies = false self._disableCookies = true } else { - var targetCookieJar = (jar && jar.getCookieString) ? jar : globalCookieJar + var targetCookieJar = jar.getCookieString ? jar : globalCookieJar var urihref = self.uri.href // fetch cookie in the Specified host if (targetCookieJar) { @@ -1532,6 +1526,7 @@ Request.prototype.resume = function () { } Request.prototype.destroy = function () { var self = this + this.clearTimeout() if (!self._ended) { self.end() } else if (self.response) { @@ -1539,6 +1534,13 @@ Request.prototype.destroy = function () { } } +Request.prototype.clearTimeout = function () { + if (this.timeoutTimer) { + clearTimeout(this.timeoutTimer) + this.timeoutTimer = null + } +} + Request.defaultProxyHeaderWhiteList = Tunnel.defaultProxyHeaderWhiteList.slice() diff --git a/node_modules/resolve/.editorconfig b/node_modules/resolve/.editorconfig deleted file mode 100644 index bc228f8..0000000 --- a/node_modules/resolve/.editorconfig +++ /dev/null @@ -1,20 +0,0 @@ -root = true - -[*] -indent_style = tab -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -max_line_length = 150 - -[CHANGELOG.md] -indent_style = space -indent_size = 2 - -[*.json] -max_line_length = off - -[Makefile] -max_line_length = off diff --git a/node_modules/resolve/.travis.yml b/node_modules/resolve/.travis.yml index c3ab9ab..5ed0fa5 100644 --- a/node_modules/resolve/.travis.yml +++ b/node_modules/resolve/.travis.yml @@ -1,308 +1,8 @@ +version: ~> 1.0 language: node_js os: - linux -node_js: - - "12.7" - - "11.15" - - "10.16" - - "9.11" - - "8.16" - - "7.10" - - "6.17" - - "5.12" - - "4.9" - - "iojs-v3.3" - - "iojs-v2.5" - - "iojs-v1.8" - - "0.12" - - "0.10" - - "0.8" - - "0.6" -before_install: - - 'case "${TRAVIS_NODE_VERSION}" in 0.*) export NPM_CONFIG_STRICT_SSL=false ;; esac' - - 'nvm install-latest-npm' -install: - - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ] || [ "${TRAVIS_NODE_VERSION}" = "0.9" ]; then nvm install --latest-npm 0.8 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;' -script: - - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi' - - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi' - - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi' - - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi' -sudo: false -env: - - TEST=true -matrix: - fast_finish: true - include: - - node_js: "lts/*" - env: PRETEST=true - - node_js: "lts/*" - env: POSTTEST=true - - node_js: "12.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "12.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "12.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "12.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "12.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "12.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "12.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.14" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.13" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.12" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.15" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.14" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.13" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.12" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.15" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.14" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.13" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.12" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.16" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.15" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.14" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.13" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.12" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.4" - env: TEST=true ALLOW_FAILURE=true - allow_failures: - - os: osx - - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.6" +import: + - ljharb/travis-ci:node/all.yml + - ljharb/travis-ci:node/pretest.yml + - ljharb/travis-ci:node/posttest.yml diff --git a/node_modules/resolve/appveyor.yml b/node_modules/resolve/appveyor.yml index 729e8ea..9458fb8 100644 --- a/node_modules/resolve/appveyor.yml +++ b/node_modules/resolve/appveyor.yml @@ -23,6 +23,7 @@ environment: matrix: # fast_finish: true allow_failures: + - nodejs_version: "5" # due to windows npm bug, registry-side - nodejs_version: "0.8" - nodejs_version: "0.6" diff --git a/node_modules/resolve/index.js b/node_modules/resolve/index.js index eb6ba89..125d814 100644 --- a/node_modules/resolve/index.js +++ b/node_modules/resolve/index.js @@ -1,8 +1,6 @@ -var core = require('./lib/core'); var async = require('./lib/async'); -async.core = core; -async.isCore = function isCore(x) { return core[x]; }; +async.core = require('./lib/core'); +async.isCore = require('./lib/is-core'); async.sync = require('./lib/sync'); -exports = async; module.exports = async; diff --git a/node_modules/resolve/lib/async.js b/node_modules/resolve/lib/async.js index 004b279..66500c8 100644 --- a/node_modules/resolve/lib/async.js +++ b/node_modules/resolve/lib/async.js @@ -1,9 +1,9 @@ -var core = require('./core'); var fs = require('fs'); var path = require('path'); var caller = require('./caller.js'); var nodeModulesPaths = require('./node-modules-paths.js'); var normalizeOptions = require('./normalize-options.js'); +var isCore = require('./is-core'); var defaultIsFile = function isFile(file, cb) { fs.stat(file, function (err, stat) { @@ -36,6 +36,14 @@ var maybeUnwrapSymlink = function maybeUnwrapSymlink(x, opts, cb) { } }; +var getPackageCandidates = function getPackageCandidates(x, start, opts) { + var dirs = nodeModulesPaths(start, opts, x); + for (var i = 0; i < dirs.length; i++) { + dirs[i] = path.join(dirs[i], x); + } + return dirs; +}; + module.exports = function resolve(x, options, callback) { var cb = callback; var opts = options; @@ -55,6 +63,7 @@ module.exports = function resolve(x, options, callback) { var isFile = opts.isFile || defaultIsFile; var isDirectory = opts.isDirectory || defaultIsDir; var readFile = opts.readFile || fs.readFile; + var packageIterator = opts.packageIterator; var extensions = opts.extensions || ['.js']; var basedir = opts.basedir || path.dirname(caller()); @@ -78,13 +87,14 @@ module.exports = function resolve(x, options, callback) { function init(basedir) { if ((/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/).test(x)) { res = path.resolve(basedir, x); - if (x === '..' || x.slice(-1) === '/') res += '/'; + if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/'; if ((/\/$/).test(x) && res === basedir) { loadAsDirectory(res, opts.package, onfile); } else loadAsFile(res, opts.package, onfile); + } else if (isCore(x)) { + return cb(null, x); } else loadNodeModules(x, basedir, function (err, n, pkg) { if (err) cb(err); - else if (core[x]) return cb(null, x); else if (n) { return maybeUnwrapSymlink(n, opts, function (err, realN) { if (err) { @@ -171,19 +181,22 @@ module.exports = function resolve(x, options, callback) { } if ((/[/\\]node_modules[/\\]*$/).test(dir)) return cb(null); - var pkgfile = path.join(dir, 'package.json'); - isFile(pkgfile, function (err, ex) { - // on err, ex is false - if (!ex) return loadpkg(path.dirname(dir), cb); + maybeUnwrapSymlink(dir, opts, function (unwrapErr, pkgdir) { + if (unwrapErr) return loadpkg(path.dirname(dir), cb); + var pkgfile = path.join(pkgdir, 'package.json'); + isFile(pkgfile, function (err, ex) { + // on err, ex is false + if (!ex) return loadpkg(path.dirname(dir), cb); - readFile(pkgfile, function (err, body) { - if (err) cb(err); - try { var pkg = JSON.parse(body); } catch (jsonErr) {} + readFile(pkgfile, function (err, body) { + if (err) cb(err); + try { var pkg = JSON.parse(body); } catch (jsonErr) {} - if (pkg && opts.packageFilter) { - pkg = opts.packageFilter(pkg, pkgfile); - } - cb(null, pkg, dir); + if (pkg && opts.packageFilter) { + pkg = opts.packageFilter(pkg, pkgfile); + } + cb(null, pkg, dir); + }); }); }); } @@ -196,46 +209,49 @@ module.exports = function resolve(x, options, callback) { fpkg = opts.package; } - var pkgfile = path.join(x, 'package.json'); - isFile(pkgfile, function (err, ex) { - if (err) return cb(err); - if (!ex) return loadAsFile(path.join(x, 'index'), fpkg, cb); - - readFile(pkgfile, function (err, body) { + maybeUnwrapSymlink(x, opts, function (unwrapErr, pkgdir) { + if (unwrapErr) return cb(unwrapErr); + var pkgfile = path.join(pkgdir, 'package.json'); + isFile(pkgfile, function (err, ex) { if (err) return cb(err); - try { - var pkg = JSON.parse(body); - } catch (jsonErr) {} + if (!ex) return loadAsFile(path.join(x, 'index'), fpkg, cb); - if (opts.packageFilter) { - pkg = opts.packageFilter(pkg, pkgfile); - } + readFile(pkgfile, function (err, body) { + if (err) return cb(err); + try { + var pkg = JSON.parse(body); + } catch (jsonErr) {} - if (pkg.main) { - if (typeof pkg.main !== 'string') { - var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string'); - mainError.code = 'INVALID_PACKAGE_MAIN'; - return cb(mainError); - } - if (pkg.main === '.' || pkg.main === './') { - pkg.main = 'index'; + if (pkg && opts.packageFilter) { + pkg = opts.packageFilter(pkg, pkgfile); } - loadAsFile(path.resolve(x, pkg.main), pkg, function (err, m, pkg) { - if (err) return cb(err); - if (m) return cb(null, m, pkg); - if (!pkg) return loadAsFile(path.join(x, 'index'), pkg, cb); - var dir = path.resolve(x, pkg.main); - loadAsDirectory(dir, pkg, function (err, n, pkg) { + if (pkg && pkg.main) { + if (typeof pkg.main !== 'string') { + var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string'); + mainError.code = 'INVALID_PACKAGE_MAIN'; + return cb(mainError); + } + if (pkg.main === '.' || pkg.main === './') { + pkg.main = 'index'; + } + loadAsFile(path.resolve(x, pkg.main), pkg, function (err, m, pkg) { if (err) return cb(err); - if (n) return cb(null, n, pkg); - loadAsFile(path.join(x, 'index'), pkg, cb); + if (m) return cb(null, m, pkg); + if (!pkg) return loadAsFile(path.join(x, 'index'), pkg, cb); + + var dir = path.resolve(x, pkg.main); + loadAsDirectory(dir, pkg, function (err, n, pkg) { + if (err) return cb(err); + if (n) return cb(null, n, pkg); + loadAsFile(path.join(x, 'index'), pkg, cb); + }); }); - }); - return; - } + return; + } - loadAsFile(path.join(x, '/index'), pkg, cb); + loadAsFile(path.join(x, '/index'), pkg, cb); + }); }); }); } @@ -244,19 +260,18 @@ module.exports = function resolve(x, options, callback) { if (dirs.length === 0) return cb(null, undefined); var dir = dirs[0]; - isDirectory(dir, isdir); + isDirectory(path.dirname(dir), isdir); function isdir(err, isdir) { if (err) return cb(err); if (!isdir) return processDirs(cb, dirs.slice(1)); - var file = path.join(dir, x); - loadAsFile(file, opts.package, onfile); + loadAsFile(dir, opts.package, onfile); } function onfile(err, m, pkg) { if (err) return cb(err); if (m) return cb(null, m, pkg); - loadAsDirectory(path.join(dir, x), opts.package, ondir); + loadAsDirectory(dir, opts.package, ondir); } function ondir(err, n, pkg) { @@ -266,6 +281,10 @@ module.exports = function resolve(x, options, callback) { } } function loadNodeModules(x, start, cb) { - processDirs(cb, nodeModulesPaths(start, opts, x)); + var thunk = function () { return getPackageCandidates(x, start, opts); }; + processDirs( + cb, + packageIterator ? packageIterator(x, start, thunk, opts) : thunk() + ); } }; diff --git a/node_modules/resolve/lib/core.json b/node_modules/resolve/lib/core.json index 12a6ac7..d5c85d2 100644 --- a/node_modules/resolve/lib/core.json +++ b/node_modules/resolve/lib/core.json @@ -69,6 +69,7 @@ "v8/tools/splaytree": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], "v8": ">= 1", "vm": true, + "wasi": ">= 13.4 && < 13.5", "worker_threads": ">= 11.7", "zlib": true } diff --git a/node_modules/resolve/lib/is-core.js b/node_modules/resolve/lib/is-core.js new file mode 100644 index 0000000..48bc96c --- /dev/null +++ b/node_modules/resolve/lib/is-core.js @@ -0,0 +1,5 @@ +var core = require('./core'); + +module.exports = function isCore(x) { + return Object.prototype.hasOwnProperty.call(core, x); +}; diff --git a/node_modules/resolve/lib/sync.js b/node_modules/resolve/lib/sync.js index e8d83de..b278837 100644 --- a/node_modules/resolve/lib/sync.js +++ b/node_modules/resolve/lib/sync.js @@ -1,4 +1,4 @@ -var core = require('./core'); +var isCore = require('./is-core'); var fs = require('fs'); var path = require('path'); var caller = require('./caller.js'); @@ -38,7 +38,15 @@ var maybeUnwrapSymlink = function maybeUnwrapSymlink(x, opts) { return x; }; -module.exports = function (x, options) { +var getPackageCandidates = function getPackageCandidates(x, start, opts) { + var dirs = nodeModulesPaths(start, opts, x); + for (var i = 0; i < dirs.length; i++) { + dirs[i] = path.join(dirs[i], x); + } + return dirs; +}; + +module.exports = function resolveSync(x, options) { if (typeof x !== 'string') { throw new TypeError('Path must be a string.'); } @@ -47,6 +55,7 @@ module.exports = function (x, options) { var isFile = opts.isFile || defaultIsFile; var readFileSync = opts.readFileSync || fs.readFileSync; var isDirectory = opts.isDirectory || defaultIsDir; + var packageIterator = opts.packageIterator; var extensions = opts.extensions || ['.js']; var basedir = opts.basedir || path.dirname(caller()); @@ -59,18 +68,16 @@ module.exports = function (x, options) { if ((/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/).test(x)) { var res = path.resolve(absoluteStart, x); - if (x === '..' || x.slice(-1) === '/') res += '/'; + if (x === '.' || x === '..' || x.slice(-1) === '/') res += '/'; var m = loadAsFileSync(res) || loadAsDirectorySync(res); if (m) return maybeUnwrapSymlink(m, opts); - } else if (core[x]) { + } else if (isCore(x)) { return x; } else { var n = loadNodeModulesSync(x, absoluteStart); if (n) return maybeUnwrapSymlink(n, opts); } - if (core[x]) return x; - var err = new Error("Cannot find module '" + x + "' from '" + parent + "'"); err.code = 'MODULE_NOT_FOUND'; throw err; @@ -105,7 +112,7 @@ module.exports = function (x, options) { } if ((/[/\\]node_modules[/\\]*$/).test(dir)) return; - var pkgfile = path.join(dir, 'package.json'); + var pkgfile = path.join(maybeUnwrapSymlink(dir, opts), 'package.json'); if (!isFile(pkgfile)) { return loadpkg(path.dirname(dir)); @@ -118,25 +125,27 @@ module.exports = function (x, options) { } catch (jsonErr) {} if (pkg && opts.packageFilter) { - pkg = opts.packageFilter(pkg, dir); + // v2 will pass pkgfile + pkg = opts.packageFilter(pkg, /*pkgfile,*/ dir); // eslint-disable-line spaced-comment } return { pkg: pkg, dir: dir }; } function loadAsDirectorySync(x) { - var pkgfile = path.join(x, '/package.json'); + var pkgfile = path.join(maybeUnwrapSymlink(x, opts), '/package.json'); if (isFile(pkgfile)) { try { var body = readFileSync(pkgfile, 'UTF8'); var pkg = JSON.parse(body); } catch (e) {} - if (opts.packageFilter) { - pkg = opts.packageFilter(pkg, x); + if (pkg && opts.packageFilter) { + // v2 will pass pkgfile + pkg = opts.packageFilter(pkg, /*pkgfile,*/ x); // eslint-disable-line spaced-comment } - if (pkg.main) { + if (pkg && pkg.main) { if (typeof pkg.main !== 'string') { var mainError = new TypeError('package “' + pkg.name + '” `main` must be a string'); mainError.code = 'INVALID_PACKAGE_MAIN'; @@ -158,13 +167,15 @@ module.exports = function (x, options) { } function loadNodeModulesSync(x, start) { - var dirs = nodeModulesPaths(start, opts, x); + var thunk = function () { return getPackageCandidates(x, start, opts); }; + var dirs = packageIterator ? packageIterator(x, start, thunk, opts) : thunk(); + for (var i = 0; i < dirs.length; i++) { var dir = dirs[i]; - if (isDirectory(dir)) { - var m = loadAsFileSync(path.join(dir, '/', x)); + if (isDirectory(path.dirname(dir))) { + var m = loadAsFileSync(dir); if (m) return m; - var n = loadAsDirectorySync(path.join(dir, '/', x)); + var n = loadAsDirectorySync(dir); if (n) return n; } } diff --git a/node_modules/resolve/package.json b/node_modules/resolve/package.json index fb4099f..7945d90 100644 --- a/node_modules/resolve/package.json +++ b/node_modules/resolve/package.json @@ -1,8 +1,8 @@ { "_from": "resolve@^1.10.0", - "_id": "resolve@1.12.0", + "_id": "resolve@1.15.1", "_inBundle": false, - "_integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "_integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", "_location": "/resolve", "_phantomChildren": {}, "_requested": { @@ -18,10 +18,10 @@ "_requiredBy": [ "/normalize-package-data" ], - "_resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "_shasum": "3fc644a35c84a48554609ff26ec52b66fa577df6", + "_resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "_shasum": "27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8", "_spec": "resolve@^1.10.0", - "_where": "/Users/gebauer/Workspace/hugo-dev-theme/themes/ag/node_modules/normalize-package-data", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/normalize-package-data", "author": { "name": "James Halliday", "email": "mail@substack.net", @@ -37,12 +37,16 @@ "deprecated": false, "description": "resolve like require.resolve() on behalf of files asynchronously and synchronously", "devDependencies": { - "@ljharb/eslint-config": "^13.1.1", - "eslint": "^5.16.0", + "@ljharb/eslint-config": "^16.0.0", + "array.prototype.map": "^1.0.2", + "eslint": "^6.8.0", "object-keys": "^1.1.1", - "safe-publish-latest": "^1.1.2", + "safe-publish-latest": "^1.1.4", "tap": "0.4.13", - "tape": "^4.11.0" + "tape": "^5.0.0-next.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" }, "homepage": "https://github.com/browserify/resolve#readme", "keywords": [ @@ -68,5 +72,5 @@ "test:multirepo": "cd ./test/resolver/multirepo && npm install && npm test", "tests-only": "tape test/*.js" }, - "version": "1.12.0" + "version": "1.15.1" } diff --git a/node_modules/resolve/readme.markdown b/node_modules/resolve/readme.markdown index f1b2706..60c20d9 100644 --- a/node_modules/resolve/readme.markdown +++ b/node_modules/resolve/readme.markdown @@ -5,7 +5,7 @@ algorithm](https://nodejs.org/api/modules.html#modules_all_together) such that you can `require.resolve()` on behalf of a file asynchronously and synchronously -[![build status](https://secure.travis-ci.org/browserify/node-resolve.png)](http://travis-ci.org/browserify/node-resolve) +[![build status](https://secure.travis-ci.org/browserify/resolve.png)](http://travis-ci.org/browserify/resolve) # example @@ -61,9 +61,10 @@ options are: * opts.isDirectory - function to asynchronously test whether a directory exists -* `opts.packageFilter(pkg, pkgfile)` - transform the parsed package.json contents before looking at the "main" field +* `opts.packageFilter(pkg, pkgfile, dir)` - transform the parsed package.json contents before looking at the "main" field * pkg - package data * pkgfile - path to package.json + * dir - directory for package.json * `opts.pathFilter(pkg, path, relativePath)` - transform a path within a package * pkg - package data @@ -79,6 +80,12 @@ options are: * getNodeModulesDirs - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution * opts - the resolution options +* `opts.packageIterator(request, start, opts)` - return the list of candidate paths where the packages sources may be found (probably don't use this) + * request - the import specifier being resolved + * start - lookup path + * getPackageCandidates - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution + * opts - the resolution options + * opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"` * opts.preserveSymlinks - if true, doesn't resolve `basedir` to real path before resolving. @@ -146,6 +153,18 @@ options are: * opts.paths - require.paths array to use if nothing is found on the normal `node_modules` recursive walk (probably don't use this) + For advanced users, `paths` can also be a `opts.paths(request, start, opts)` function + * request - the import specifier being resolved + * start - lookup path + * getNodeModulesDirs - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution + * opts - the resolution options + +* `opts.packageIterator(request, start, opts)` - return the list of candidate paths where the packages sources may be found (probably don't use this) + * request - the import specifier being resolved + * start - lookup path + * getPackageCandidates - a thunk (no-argument function) that returns the paths using standard `node_modules` resolution + * opts - the resolution options + * opts.moduleDirectory - directory (or directories) in which to recursively look for modules. default: `"node_modules"` * opts.preserveSymlinks - if true, doesn't resolve `basedir` to real path before resolving. diff --git a/node_modules/resolve/test/core.js b/node_modules/resolve/test/core.js index 33d9f32..4c111e1 100644 --- a/node_modules/resolve/test/core.js +++ b/node_modules/resolve/test/core.js @@ -10,6 +10,9 @@ test('core modules', function (t) { st.ok(!resolve.isCore('seq')); st.ok(!resolve.isCore('../')); + + st.ok(!resolve.isCore('toString')); + st.end(); }); diff --git a/node_modules/resolve/test/filter.js b/node_modules/resolve/test/filter.js index dfc622a..8f8cccd 100644 --- a/node_modules/resolve/test/filter.js +++ b/node_modules/resolve/test/filter.js @@ -9,7 +9,7 @@ test('filter', function (t) { resolve('./baz', { basedir: dir, packageFilter: function (pkg, pkgfile) { - pkg.main = 'doom'; + pkg.main = 'doom'; // eslint-disable-line no-param-reassign packageFilterArgs = [pkg, pkgfile]; return pkg; } diff --git a/node_modules/resolve/test/filter_sync.js b/node_modules/resolve/test/filter_sync.js index 064052e..8a43b98 100644 --- a/node_modules/resolve/test/filter_sync.js +++ b/node_modules/resolve/test/filter_sync.js @@ -7,9 +7,10 @@ test('filter', function (t) { var packageFilterArgs; var res = resolve.sync('./baz', { basedir: dir, - packageFilter: function (pkg, dir) { - pkg.main = 'doom'; - packageFilterArgs = [pkg, dir]; + // NOTE: in v2.x, this will be `pkg, pkgfile, dir`, but must remain "broken" here in v1.x for compatibility + packageFilter: function (pkg, /*pkgfile,*/ dir) { // eslint-disable-line spaced-comment + pkg.main = 'doom'; // eslint-disable-line no-param-reassign + packageFilterArgs = 'is 1.x' ? [pkg, dir] : [pkg, pkgfile, dir]; // eslint-disable-line no-constant-condition, no-undef return pkg; } }); @@ -19,8 +20,14 @@ test('filter', function (t) { var packageData = packageFilterArgs[0]; t.equal(packageData.main, 'doom', 'package "main" was altered'); - var packageFile = packageFilterArgs[1]; - t.equal(packageFile, path.join(dir, 'baz'), 'second packageFilter argument is "dir"'); + if (!'is 1.x') { // eslint-disable-line no-constant-condition + var packageFile = packageFilterArgs[1]; + t.equal(packageFile, path.join(dir, 'baz', 'package.json'), 'package.json path is correct'); + } + + var packageDir = packageFilterArgs['is 1.x' ? 1 : 2]; // eslint-disable-line no-constant-condition + // eslint-disable-next-line no-constant-condition + t.equal(packageDir, path.join(dir, 'baz'), ('is 1.x' ? 'second' : 'third') + ' packageFilter argument is "dir"'); t.end(); }); diff --git a/node_modules/resolve/test/resolver.js b/node_modules/resolve/test/resolver.js index 4552f4f..aa36ee1 100644 --- a/node_modules/resolve/test/resolver.js +++ b/node_modules/resolve/test/resolver.js @@ -256,6 +256,22 @@ test('other path', function (t) { }); }); +test('path iterator', function (t) { + t.plan(2); + + var resolverDir = path.join(__dirname, 'resolver'); + + var exactIterator = function (x, start, getPackageCandidates, opts) { + return [path.join(resolverDir, x)]; + }; + + resolve('baz', { packageIterator: exactIterator }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(resolverDir, 'baz/quux.js')); + t.equal(pkg && pkg.name, 'baz'); + }); +}); + test('incorrect main', function (t) { t.plan(1); @@ -299,6 +315,22 @@ test('#52 - incorrectly resolves module-paths like "./someFolder/" when there is }); }); +test('#211 - incorrectly resolves module-paths like "." when from inside a folder with a sibling file of the same name', function (t) { + t.plan(2); + + var dir = path.join(__dirname, 'resolver'); + + resolve('./', { basedir: path.join(dir, 'same_names/foo') }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'same_names/foo/index.js')); + }); + + resolve('.', { basedir: path.join(dir, 'same_names/foo') }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal(res, path.join(dir, 'same_names/foo/index.js')); + }); +}); + test('async: #121 - treating an existing file as a dir when no basedir', function (t) { var testFile = path.basename(__filename); @@ -402,8 +434,8 @@ test('browser field in package.json', function (t) { basedir: dir, packageFilter: function packageFilter(pkg) { if (pkg.browser) { - pkg.main = pkg.browser; - delete pkg.browser; + pkg.main = pkg.browser; // eslint-disable-line no-param-reassign + delete pkg.browser; // eslint-disable-line no-param-reassign } return pkg; } diff --git a/node_modules/resolve/test/resolver/baz/package.json b/node_modules/resolve/test/resolver/baz/package.json index c41e4db..2f77720 100644 --- a/node_modules/resolve/test/resolver/baz/package.json +++ b/node_modules/resolve/test/resolver/baz/package.json @@ -1,3 +1,4 @@ { + "name": "baz", "main": "quux.js" } diff --git a/node_modules/resolve/test/resolver_sync.js b/node_modules/resolve/test/resolver_sync.js index 878e589..3082c96 100644 --- a/node_modules/resolve/test/resolver_sync.js +++ b/node_modules/resolve/test/resolver_sync.js @@ -172,6 +172,21 @@ test('other path', function (t) { t.end(); }); +test('path iterator', function (t) { + var resolverDir = path.join(__dirname, 'resolver'); + + var exactIterator = function (x, start, getPackageCandidates, opts) { + return [path.join(resolverDir, x)]; + }; + + t.equal( + resolve.sync('baz', { packageIterator: exactIterator }), + path.join(resolverDir, 'baz/quux.js') + ); + + t.end(); +}); + test('incorrect main', function (t) { var resolverDir = path.join(__dirname, 'resolver'); var dir = path.join(resolverDir, 'incorrect_main'); @@ -223,6 +238,20 @@ test('#52 - incorrectly resolves module-paths like "./someFolder/" when there is t.end(); }); +test('#211 - incorrectly resolves module-paths like "." when from inside a folder with a sibling file of the same name', function (t) { + var dir = path.join(__dirname, 'resolver'); + + t.equal( + resolve.sync('./', { basedir: path.join(dir, 'same_names/foo') }), + path.join(dir, 'same_names/foo/index.js') + ); + t.equal( + resolve.sync('.', { basedir: path.join(dir, 'same_names/foo') }), + path.join(dir, 'same_names/foo/index.js') + ); + t.end(); +}); + test('sync: #121 - treating an existing file as a dir when no basedir', function (t) { var testFile = path.basename(__filename); @@ -318,8 +347,8 @@ test('browser field in package.json', function (t) { basedir: dir, packageFilter: function packageFilter(pkg) { if (pkg.browser) { - pkg.main = pkg.browser; - delete pkg.browser; + pkg.main = pkg.browser; // eslint-disable-line no-param-reassign + delete pkg.browser; // eslint-disable-line no-param-reassign } return pkg; } diff --git a/node_modules/resolve/test/symlinks.js b/node_modules/resolve/test/symlinks.js index 9b5a254..152d14e 100644 --- a/node_modules/resolve/test/symlinks.js +++ b/node_modules/resolve/test/symlinks.js @@ -1,10 +1,13 @@ var path = require('path'); var fs = require('fs'); var test = require('tape'); +var map = require('array.prototype.map'); var resolve = require('../'); var symlinkDir = path.join(__dirname, 'resolver', 'symlinked', 'symlink'); var packageDir = path.join(__dirname, 'resolver', 'symlinked', '_', 'node_modules', 'package'); +var modADir = path.join(__dirname, 'symlinks', 'source', 'node_modules', 'mod-a'); +var symlinkModADir = path.join(__dirname, 'symlinks', 'dest', 'node_modules', 'mod-a'); try { fs.unlinkSync(symlinkDir); } catch (err) {} @@ -12,6 +15,13 @@ try { fs.unlinkSync(packageDir); } catch (err) {} try { + fs.unlinkSync(modADir); +} catch (err) {} +try { + fs.unlinkSync(symlinkModADir); +} catch (err) {} + +try { fs.symlinkSync('./_/symlink_target', symlinkDir, 'dir'); } catch (err) { // if fails then it is probably on Windows and lets try to create a junction @@ -23,6 +33,12 @@ try { // if fails then it is probably on Windows and lets try to create a junction fs.symlinkSync(path.join(__dirname, '..', '..', 'package') + '\\', packageDir, 'junction'); } +try { + fs.symlinkSync('../../source/node_modules/mod-a', symlinkModADir, 'dir'); +} catch (err) { + // if fails then it is probably on Windows and lets try to create a junction + fs.symlinkSync(path.join(__dirname, '..', '..', 'source', 'node_modules', 'mod-a') + '\\', symlinkModADir, 'junction'); +} test('symlink', function (t) { t.plan(2); @@ -79,6 +95,79 @@ test('async symlink from node_modules to other dir when preserveSymlinks = false resolve('package', { basedir: basedir, preserveSymlinks: false }, function (err, result) { t.notOk(err, 'no error'); t.equal(result, path.resolve(__dirname, 'resolver/symlinked/package/bar.js')); - t.end(); }); }); + +test('packageFilter', function (t) { + function relative(x) { + return path.relative(__dirname, x); + } + + function testPackageFilter(preserveSymlinks) { + return function (st) { + st.plan('is 1.x' ? 3 : 5); // eslint-disable-line no-constant-condition + + var destMain = 'symlinks/dest/node_modules/mod-a/index.js'; + var destPkg = 'symlinks/dest/node_modules/mod-a/package.json'; + var sourceMain = 'symlinks/source/node_modules/mod-a/index.js'; + var sourcePkg = 'symlinks/source/node_modules/mod-a/package.json'; + var destDir = path.join(__dirname, 'symlinks', 'dest'); + + /* eslint multiline-comment-style: 0 */ + /* v2.x will restore these tests + var packageFilterPath = []; + var actualPath = resolve.sync('mod-a', { + basedir: destDir, + preserveSymlinks: preserveSymlinks, + packageFilter: function (pkg, pkgfile, dir) { + packageFilterPath.push(pkgfile); + } + }); + st.equal( + relative(actualPath), + path.normalize(preserveSymlinks ? destMain : sourceMain), + 'sync: actual path is correct' + ); + st.deepEqual( + map(packageFilterPath, relative), + map(preserveSymlinks ? [destPkg, destPkg] : [sourcePkg, sourcePkg], path.normalize), + 'sync: packageFilter pkgfile arg is correct' + ); + */ + + var asyncPackageFilterPath = []; + resolve( + 'mod-a', + { + basedir: destDir, + preserveSymlinks: preserveSymlinks, + packageFilter: function (pkg, pkgfile) { + asyncPackageFilterPath.push(pkgfile); + } + }, + function (err, actualPath) { + st.error(err, 'no error'); + st.equal( + relative(actualPath), + path.normalize(preserveSymlinks ? destMain : sourceMain), + 'async: actual path is correct' + ); + st.deepEqual( + map(asyncPackageFilterPath, relative), + map( + preserveSymlinks ? [destPkg, destPkg, destPkg] : [sourcePkg, sourcePkg, sourcePkg], + path.normalize + ), + 'async: packageFilter pkgfile arg is correct' + ); + } + ); + }; + } + + t.test('preserveSymlinks: false', testPackageFilter(false)); + + t.test('preserveSymlinks: true', testPackageFilter(true)); + + t.end(); +}); diff --git a/node_modules/rimraf/package.json b/node_modules/rimraf/package.json index 6fc2b8c..ffd33f6 100644 --- a/node_modules/rimraf/package.json +++ b/node_modules/rimraf/package.json @@ -1,8 +1,8 @@ { "_from": "rimraf@2", - "_id": "rimraf@2.6.3", + "_id": "rimraf@2.7.1", "_inBundle": false, - "_integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "_integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "_location": "/rimraf", "_phantomChildren": {}, "_requested": { @@ -19,17 +19,17 @@ "/fstream", "/node-gyp" ], - "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "_shasum": "b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab", + "_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "_shasum": "35797f13a7fdadc566142c29d4f07ccad483e3ec", "_spec": "rimraf@2", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/node-gyp", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/node-gyp", "author": { "name": "Isaac Z. Schlueter", "email": "i@izs.me", "url": "http://blog.izs.me/" }, "bin": { - "rimraf": "./bin.js" + "rimraf": "bin.js" }, "bugs": { "url": "https://github.com/isaacs/rimraf/issues" @@ -64,5 +64,5 @@ "preversion": "npm test", "test": "tap test/*.js" }, - "version": "2.6.3" + "version": "2.7.1" } diff --git a/node_modules/rimraf/rimraf.js b/node_modules/rimraf/rimraf.js index e80dd10..a90ad02 100644 --- a/node_modules/rimraf/rimraf.js +++ b/node_modules/rimraf/rimraf.js @@ -4,7 +4,12 @@ rimraf.sync = rimrafSync var assert = require("assert") var path = require("path") var fs = require("fs") -var glob = require("glob") +var glob = undefined +try { + glob = require("glob") +} catch (_err) { + // treat glob as optional. +} var _0666 = parseInt('666', 8) var defaultGlobOpts = { @@ -37,6 +42,9 @@ function defaults (options) { if (options.glob === false) { options.disableGlob = true } + if (options.disableGlob !== true && glob === undefined) { + throw Error('glob dependency not found, set `options.disableGlob = true` if intentional') + } options.disableGlob = options.disableGlob || false options.glob = options.glob || defaultGlobOpts } diff --git a/node_modules/semver/README.md b/node_modules/semver/README.md index e5ccece..f8dfa5a 100644 --- a/node_modules/semver/README.md +++ b/node_modules/semver/README.md @@ -398,14 +398,15 @@ range, use the `satisfies(version, range)` function. * `coerce(version)`: Coerces a string to semver if possible -This aims to provide a very forgiving translation of a non-semver -string to semver. It looks for the first digit in a string, and -consumes all remaining characters which satisfy at least a partial semver -(e.g., `1`, `1.2`, `1.2.3`) up to the max permitted length (256 characters). -Longer versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`). -All surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes `3.4.0`). -Only text which lacks digits will fail coercion (`version one` is not valid). -The maximum length for any semver component considered for coercion is 16 characters; -longer components will be ignored (`10000000000000000.4.7.4` becomes `4.7.4`). -The maximum value for any semver component is `Integer.MAX_SAFE_INTEGER || (2**53 - 1)`; -higher value components are invalid (`9999999999999999.4.7.4` is likely invalid). +This aims to provide a very forgiving translation of a non-semver string to +semver. It looks for the first digit in a string, and consumes all +remaining characters which satisfy at least a partial semver (e.g., `1`, +`1.2`, `1.2.3`) up to the max permitted length (256 characters). Longer +versions are simply truncated (`4.6.3.9.2-alpha2` becomes `4.6.3`). All +surrounding text is simply ignored (`v3.4 replaces v3.3.1` becomes +`3.4.0`). Only text which lacks digits will fail coercion (`version one` +is not valid). The maximum length for any semver component considered for +coercion is 16 characters; longer components will be ignored +(`10000000000000000.4.7.4` becomes `4.7.4`). The maximum value for any +semver component is `Number.MAX_SAFE_INTEGER || (2**53 - 1)`; higher value +components are invalid (`9999999999999999.4.7.4` is likely invalid). diff --git a/node_modules/semver/package.json b/node_modules/semver/package.json index 2126c1e..829e8ac 100644 --- a/node_modules/semver/package.json +++ b/node_modules/semver/package.json @@ -1,8 +1,8 @@ { "_from": "semver@2 || 3 || 4 || 5", - "_id": "semver@5.7.0", + "_id": "semver@5.7.1", "_inBundle": false, - "_integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "_integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "_location": "/semver", "_phantomChildren": {}, "_requested": { @@ -18,12 +18,12 @@ "_requiredBy": [ "/normalize-package-data" ], - "_resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "_shasum": "790a7cf6fea5459bac96110b29b60412dc8ff96b", + "_resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "_shasum": "a954f931aeba508d307bbf069eff0c01c96116f7", "_spec": "semver@2 || 3 || 4 || 5", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/normalize-package-data", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/normalize-package-data", "bin": { - "semver": "./bin/semver" + "semver": "bin/semver" }, "bugs": { "url": "https://github.com/npm/node-semver/issues" @@ -56,5 +56,5 @@ "tap": { "check-coverage": true }, - "version": "5.7.0" + "version": "5.7.1" } diff --git a/node_modules/tough-cookie/README.md b/node_modules/tough-cookie/README.md index d28bd46..656a255 100644 --- a/node_modules/tough-cookie/README.md +++ b/node_modules/tough-cookie/README.md @@ -198,7 +198,7 @@ compute the TTL relative to `now` (milliseconds). The same precedence rules as The "number" `Infinity` is returned for cookies without an explicit expiry and `0` is returned if the cookie is expired. Otherwise a time-to-live in milliseconds is returned. -### `.canonicalizedDoman()` +### `.canonicalizedDomain()` ### `.cdomain()` @@ -354,6 +354,16 @@ The `store` argument is optional, but must be a _synchronous_ `Store` instance i The _source_ and _destination_ must both be synchronous `Store`s. If one or both stores are asynchronous, use `.clone` instead. Recall that `MemoryCookieStore` supports both synchronous and asynchronous API calls. +### `.removeAllCookies(cb(err))` + +Removes all cookies from the jar. + +This is a new backwards-compatible feature of `tough-cookie` version 2.5, so not all Stores will implement it efficiently. For Stores that do not implement `removeAllCookies`, the fallback is to call `removeCookie` after `getAllCookies`. If `getAllCookies` fails or isn't implemented in the Store, that error is returned. If one or more of the `removeCookie` calls fail, only the first error is returned. + +### `.removeAllCookiesSync()` + +Sync version of `.removeAllCookies()` + ## Store Base class for CookieJar stores. Available as `tough.Store`. @@ -418,19 +428,29 @@ Removes matching cookies from the store. The `path` parameter is optional, and Pass an error ONLY if removing any existing cookies failed. +### `store.removeAllCookies(cb(err))` + +_Optional_. Removes all cookies from the store. + +Pass an error if one or more cookies can't be removed. + +**Note**: New method as of `tough-cookie` version 2.5, so not all Stores will implement this, plus some stores may choose not to implement this. + ### `store.getAllCookies(cb(err, cookies))` -Produces an `Array` of all cookies during `jar.serialize()`. The items in the array can be true `Cookie` objects or generic `Object`s with the [Serialization Format] data structure. +_Optional_. Produces an `Array` of all cookies during `jar.serialize()`. The items in the array can be true `Cookie` objects or generic `Object`s with the [Serialization Format] data structure. Cookies SHOULD be returned in creation order to preserve sorting via `compareCookies()`. For reference, `MemoryCookieStore` will sort by `.creationIndex` since it uses true `Cookie` objects internally. If you don't return the cookies in creation order, they'll still be sorted by creation time, but this only has a precision of 1ms. See `compareCookies` for more detail. Pass an error if retrieval fails. +**Note**: not all Stores can implement this due to technical limitations, so it is optional. + ## MemoryCookieStore Inherits from `Store`. -A just-in-memory CookieJar synchronous store implementation, used by default. Despite being a synchronous implementation, it's usable with both the synchronous and asynchronous forms of the `CookieJar` API. +A just-in-memory CookieJar synchronous store implementation, used by default. Despite being a synchronous implementation, it's usable with both the synchronous and asynchronous forms of the `CookieJar` API. Supports serialization, `getAllCookies`, and `removeAllCookies`. ## Community Cookie Stores @@ -473,7 +493,7 @@ These are some Store implementations authored and maintained by the community. T # Copyright and License -(tl;dr: BSD-3-Clause with some MPL/2.0) +BSD-3-Clause: ```text Copyright (c) 2015, Salesforce.com, Inc. diff --git a/node_modules/tough-cookie/lib/cookie.js b/node_modules/tough-cookie/lib/cookie.js index 039a0e7..32dc0f8 100644 --- a/node_modules/tough-cookie/lib/cookie.js +++ b/node_modules/tough-cookie/lib/cookie.js @@ -36,7 +36,7 @@ var pubsuffix = require('./pubsuffix-psl'); var Store = require('./store').Store; var MemoryCookieStore = require('./memstore').MemoryCookieStore; var pathMatch = require('./pathMatch').pathMatch; -var VERSION = require('../package.json').version; +var VERSION = require('./version'); var punycode; try { @@ -1371,7 +1371,6 @@ CookieJar.deserializeSync = function(strOrObj, store) { }; CookieJar.fromJSON = CookieJar.deserializeSync; -CAN_BE_SYNC.push('clone'); CookieJar.prototype.clone = function(newStore, cb) { if (arguments.length === 1) { cb = newStore; @@ -1382,10 +1381,61 @@ CookieJar.prototype.clone = function(newStore, cb) { if (err) { return cb(err); } - CookieJar.deserialize(newStore, serialized, cb); + CookieJar.deserialize(serialized, newStore, cb); }); }; +CAN_BE_SYNC.push('removeAllCookies'); +CookieJar.prototype.removeAllCookies = function(cb) { + var store = this.store; + + // Check that the store implements its own removeAllCookies(). The default + // implementation in Store will immediately call the callback with a "not + // implemented" Error. + if (store.removeAllCookies instanceof Function && + store.removeAllCookies !== Store.prototype.removeAllCookies) + { + return store.removeAllCookies(cb); + } + + store.getAllCookies(function(err, cookies) { + if (err) { + return cb(err); + } + + if (cookies.length === 0) { + return cb(null); + } + + var completedCount = 0; + var removeErrors = []; + + function removeCookieCb(removeErr) { + if (removeErr) { + removeErrors.push(removeErr); + } + + completedCount++; + + if (completedCount === cookies.length) { + return cb(removeErrors.length ? removeErrors[0] : null); + } + } + + cookies.forEach(function(cookie) { + store.removeCookie(cookie.domain, cookie.path, cookie.key, removeCookieCb); + }); + }); +}; + +CookieJar.prototype._cloneSync = syncWrap('clone'); +CookieJar.prototype.cloneSync = function(newStore) { + if (!newStore.synchronous) { + throw new Error('CookieJar clone destination store is not synchronous; use async API instead.'); + } + return this._cloneSync(newStore); +}; + // Use a closure to provide a true imperative API for synchronous stores. function syncWrap(method) { return function() { @@ -1413,6 +1463,7 @@ CAN_BE_SYNC.forEach(function(method) { CookieJar.prototype[method+'Sync'] = syncWrap(method); }); +exports.version = VERSION; exports.CookieJar = CookieJar; exports.Cookie = Cookie; exports.Store = Store; diff --git a/node_modules/tough-cookie/lib/memstore.js b/node_modules/tough-cookie/lib/memstore.js index bf306ba..d2b915c 100644 --- a/node_modules/tough-cookie/lib/memstore.js +++ b/node_modules/tough-cookie/lib/memstore.js @@ -149,6 +149,11 @@ MemoryCookieStore.prototype.removeCookies = function(domain, path, cb) { return cb(null); }; +MemoryCookieStore.prototype.removeAllCookies = function(cb) { + this.idx = {}; + return cb(null); +} + MemoryCookieStore.prototype.getAllCookies = function(cb) { var cookies = []; var idx = this.idx; diff --git a/node_modules/tough-cookie/lib/store.js b/node_modules/tough-cookie/lib/store.js index bce5292..859208f 100644 --- a/node_modules/tough-cookie/lib/store.js +++ b/node_modules/tough-cookie/lib/store.js @@ -66,6 +66,10 @@ Store.prototype.removeCookies = function(domain, path, cb) { throw new Error('removeCookies is not implemented'); }; +Store.prototype.removeAllCookies = function(cb) { + throw new Error('removeAllCookies is not implemented'); +} + Store.prototype.getAllCookies = function(cb) { throw new Error('getAllCookies is not implemented (therefore jar cannot be serialized)'); }; diff --git a/node_modules/tough-cookie/lib/version.js b/node_modules/tough-cookie/lib/version.js new file mode 100644 index 0000000..b34c6ae --- /dev/null +++ b/node_modules/tough-cookie/lib/version.js @@ -0,0 +1,2 @@ +// generated by genversion +module.exports = '2.5.0' diff --git a/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt b/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt deleted file mode 100644 index a41e0a7..0000000 --- a/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt +++ /dev/null @@ -1,20 +0,0 @@ -Copyright Mathias Bynens <https://mathiasbynens.be/> - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/tough-cookie/node_modules/punycode/README.md b/node_modules/tough-cookie/node_modules/punycode/README.md deleted file mode 100644 index 7ad7d1f..0000000 --- a/node_modules/tough-cookie/node_modules/punycode/README.md +++ /dev/null @@ -1,176 +0,0 @@ -# Punycode.js [![Build status](https://travis-ci.org/bestiejs/punycode.js.svg?branch=master)](https://travis-ci.org/bestiejs/punycode.js) [![Code coverage status](http://img.shields.io/coveralls/bestiejs/punycode.js/master.svg)](https://coveralls.io/r/bestiejs/punycode.js) [![Dependency status](https://gemnasium.com/bestiejs/punycode.js.svg)](https://gemnasium.com/bestiejs/punycode.js) - -A robust Punycode converter that fully complies to [RFC 3492](https://tools.ietf.org/html/rfc3492) and [RFC 5891](https://tools.ietf.org/html/rfc5891), and works on nearly all JavaScript platforms. - -This JavaScript library is the result of comparing, optimizing and documenting different open-source implementations of the Punycode algorithm: - -* [The C example code from RFC 3492](https://tools.ietf.org/html/rfc3492#appendix-C) -* [`punycode.c` by _Markus W. Scherer_ (IBM)](http://opensource.apple.com/source/ICU/ICU-400.42/icuSources/common/punycode.c) -* [`punycode.c` by _Ben Noordhuis_](https://github.com/bnoordhuis/punycode/blob/master/punycode.c) -* [JavaScript implementation by _some_](http://stackoverflow.com/questions/183485/can-anyone-recommend-a-good-free-javascript-for-punycode-to-unicode-conversion/301287#301287) -* [`punycode.js` by _Ben Noordhuis_](https://github.com/joyent/node/blob/426298c8c1c0d5b5224ac3658c41e7c2a3fe9377/lib/punycode.js) (note: [not fully compliant](https://github.com/joyent/node/issues/2072)) - -This project is [bundled](https://github.com/joyent/node/blob/master/lib/punycode.js) with [Node.js v0.6.2+](https://github.com/joyent/node/compare/975f1930b1...61e796decc) and [io.js v1.0.0+](https://github.com/iojs/io.js/blob/v1.x/lib/punycode.js). - -## Installation - -Via [npm](https://www.npmjs.com/) (only required for Node.js releases older than v0.6.2): - -```bash -npm install punycode -``` - -Via [Bower](http://bower.io/): - -```bash -bower install punycode -``` - -Via [Component](https://github.com/component/component): - -```bash -component install bestiejs/punycode.js -``` - -In a browser: - -```html -<script src="punycode.js"></script> -``` - -In [Node.js](https://nodejs.org/), [io.js](https://iojs.org/), [Narwhal](http://narwhaljs.org/), and [RingoJS](http://ringojs.org/): - -```js -var punycode = require('punycode'); -``` - -In [Rhino](http://www.mozilla.org/rhino/): - -```js -load('punycode.js'); -``` - -Using an AMD loader like [RequireJS](http://requirejs.org/): - -```js -require( - { - 'paths': { - 'punycode': 'path/to/punycode' - } - }, - ['punycode'], - function(punycode) { - console.log(punycode); - } -); -``` - -## API - -### `punycode.decode(string)` - -Converts a Punycode string of ASCII symbols to a string of Unicode symbols. - -```js -// decode domain name parts -punycode.decode('maana-pta'); // 'mañana' -punycode.decode('--dqo34k'); // '☃-⌘' -``` - -### `punycode.encode(string)` - -Converts a string of Unicode symbols to a Punycode string of ASCII symbols. - -```js -// encode domain name parts -punycode.encode('mañana'); // 'maana-pta' -punycode.encode('☃-⌘'); // '--dqo34k' -``` - -### `punycode.toUnicode(input)` - -Converts a Punycode string representing a domain name or an email address to Unicode. Only the Punycoded parts of the input will be converted, i.e. it doesn’t matter if you call it on a string that has already been converted to Unicode. - -```js -// decode domain names -punycode.toUnicode('xn--maana-pta.com'); -// → 'mañana.com' -punycode.toUnicode('xn----dqo34k.com'); -// → '☃-⌘.com' - -// decode email addresses -punycode.toUnicode('джумла@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq'); -// → 'джумла@джpумлатест.bрфa' -``` - -### `punycode.toASCII(input)` - -Converts a lowercased Unicode string representing a domain name or an email address to Punycode. Only the non-ASCII parts of the input will be converted, i.e. it doesn’t matter if you call it with a domain that’s already in ASCII. - -```js -// encode domain names -punycode.toASCII('mañana.com'); -// → 'xn--maana-pta.com' -punycode.toASCII('☃-⌘.com'); -// → 'xn----dqo34k.com' - -// encode email addresses -punycode.toASCII('джумла@джpумлатест.bрфa'); -// → 'джумла@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq' -``` - -### `punycode.ucs2` - -#### `punycode.ucs2.decode(string)` - -Creates an array containing the numeric code point values of each Unicode symbol in the string. While [JavaScript uses UCS-2 internally](https://mathiasbynens.be/notes/javascript-encoding), this function will convert a pair of surrogate halves (each of which UCS-2 exposes as separate characters) into a single code point, matching UTF-16. - -```js -punycode.ucs2.decode('abc'); -// → [0x61, 0x62, 0x63] -// surrogate pair for U+1D306 TETRAGRAM FOR CENTRE: -punycode.ucs2.decode('\uD834\uDF06'); -// → [0x1D306] -``` - -#### `punycode.ucs2.encode(codePoints)` - -Creates a string based on an array of numeric code point values. - -```js -punycode.ucs2.encode([0x61, 0x62, 0x63]); -// → 'abc' -punycode.ucs2.encode([0x1D306]); -// → '\uD834\uDF06' -``` - -### `punycode.version` - -A string representing the current Punycode.js version number. - -## Unit tests & code coverage - -After cloning this repository, run `npm install --dev` to install the dependencies needed for Punycode.js development and testing. You may want to install Istanbul _globally_ using `npm install istanbul -g`. - -Once that’s done, you can run the unit tests in Node using `npm test` or `node tests/tests.js`. To run the tests in Rhino, Ringo, Narwhal, PhantomJS, and web browsers as well, use `grunt test`. - -To generate the code coverage report, use `grunt cover`. - -Feel free to fork if you see possible improvements! - -## Author - -| [![twitter/mathias](https://gravatar.com/avatar/24e08a9ea84deb17ae121074d0f17125?s=70)](https://twitter.com/mathias "Follow @mathias on Twitter") | -|---| -| [Mathias Bynens](https://mathiasbynens.be/) | - -## Contributors - -| [![twitter/jdalton](https://gravatar.com/avatar/299a3d891ff1920b69c364d061007043?s=70)](https://twitter.com/jdalton "Follow @jdalton on Twitter") | -|---| -| [John-David Dalton](http://allyoucanleet.com/) | - -## License - -Punycode.js is available under the [MIT](https://mths.be/mit) license. diff --git a/node_modules/tough-cookie/node_modules/punycode/package.json b/node_modules/tough-cookie/node_modules/punycode/package.json deleted file mode 100644 index 01146b4..0000000 --- a/node_modules/tough-cookie/node_modules/punycode/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "_from": "punycode@^1.4.1", - "_id": "punycode@1.4.1", - "_inBundle": false, - "_integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "_location": "/tough-cookie/punycode", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "punycode@^1.4.1", - "name": "punycode", - "escapedName": "punycode", - "rawSpec": "^1.4.1", - "saveSpec": null, - "fetchSpec": "^1.4.1" - }, - "_requiredBy": [ - "/tough-cookie" - ], - "_resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "_shasum": "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e", - "_spec": "punycode@^1.4.1", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/tough-cookie", - "author": { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - "bugs": { - "url": "https://github.com/bestiejs/punycode.js/issues" - }, - "bundleDependencies": false, - "contributors": [ - { - "name": "Mathias Bynens", - "url": "https://mathiasbynens.be/" - }, - { - "name": "John-David Dalton", - "url": "http://allyoucanleet.com/" - } - ], - "deprecated": false, - "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.", - "devDependencies": { - "coveralls": "^2.11.4", - "grunt": "^0.4.5", - "grunt-contrib-uglify": "^0.11.0", - "grunt-shell": "^1.1.2", - "istanbul": "^0.4.1", - "qunit-extras": "^1.4.4", - "qunitjs": "~1.11.0", - "requirejs": "^2.1.22" - }, - "files": [ - "LICENSE-MIT.txt", - "punycode.js" - ], - "homepage": "https://mths.be/punycode", - "jspm": { - "map": { - "./punycode.js": { - "node": "@node/punycode" - } - } - }, - "keywords": [ - "punycode", - "unicode", - "idn", - "idna", - "dns", - "url", - "domain" - ], - "license": "MIT", - "main": "punycode.js", - "name": "punycode", - "repository": { - "type": "git", - "url": "git+https://github.com/bestiejs/punycode.js.git" - }, - "scripts": { - "test": "node tests/tests.js" - }, - "version": "1.4.1" -} diff --git a/node_modules/tough-cookie/node_modules/punycode/punycode.js b/node_modules/tough-cookie/node_modules/punycode/punycode.js deleted file mode 100644 index 2c87f6c..0000000 --- a/node_modules/tough-cookie/node_modules/punycode/punycode.js +++ /dev/null @@ -1,533 +0,0 @@ -/*! https://mths.be/punycode v1.4.1 by @mathias */ -;(function(root) { - - /** Detect free variables */ - var freeExports = typeof exports == 'object' && exports && - !exports.nodeType && exports; - var freeModule = typeof module == 'object' && module && - !module.nodeType && module; - var freeGlobal = typeof global == 'object' && global; - if ( - freeGlobal.global === freeGlobal || - freeGlobal.window === freeGlobal || - freeGlobal.self === freeGlobal - ) { - root = freeGlobal; - } - - /** - * The `punycode` object. - * @name punycode - * @type Object - */ - var punycode, - - /** Highest positive signed 32-bit float value */ - maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1 - - /** Bootstring parameters */ - base = 36, - tMin = 1, - tMax = 26, - skew = 38, - damp = 700, - initialBias = 72, - initialN = 128, // 0x80 - delimiter = '-', // '\x2D' - - /** Regular expressions */ - regexPunycode = /^xn--/, - regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars - regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators - - /** Error messages */ - errors = { - 'overflow': 'Overflow: input needs wider integers to process', - 'not-basic': 'Illegal input >= 0x80 (not a basic code point)', - 'invalid-input': 'Invalid input' - }, - - /** Convenience shortcuts */ - baseMinusTMin = base - tMin, - floor = Math.floor, - stringFromCharCode = String.fromCharCode, - - /** Temporary variable */ - key; - - /*--------------------------------------------------------------------------*/ - - /** - * A generic error utility function. - * @private - * @param {String} type The error type. - * @returns {Error} Throws a `RangeError` with the applicable error message. - */ - function error(type) { - throw new RangeError(errors[type]); - } - - /** - * A generic `Array#map` utility function. - * @private - * @param {Array} array The array to iterate over. - * @param {Function} callback The function that gets called for every array - * item. - * @returns {Array} A new array of values returned by the callback function. - */ - function map(array, fn) { - var length = array.length; - var result = []; - while (length--) { - result[length] = fn(array[length]); - } - return result; - } - - /** - * A simple `Array#map`-like wrapper to work with domain name strings or email - * addresses. - * @private - * @param {String} domain The domain name or email address. - * @param {Function} callback The function that gets called for every - * character. - * @returns {Array} A new string of characters returned by the callback - * function. - */ - function mapDomain(string, fn) { - var parts = string.split('@'); - var result = ''; - if (parts.length > 1) { - // In email addresses, only the domain name should be punycoded. Leave - // the local part (i.e. everything up to `@`) intact. - result = parts[0] + '@'; - string = parts[1]; - } - // Avoid `split(regex)` for IE8 compatibility. See #17. - string = string.replace(regexSeparators, '\x2E'); - var labels = string.split('.'); - var encoded = map(labels, fn).join('.'); - return result + encoded; - } - - /** - * Creates an array containing the numeric code points of each Unicode - * character in the string. While JavaScript uses UCS-2 internally, - * this function will convert a pair of surrogate halves (each of which - * UCS-2 exposes as separate characters) into a single code point, - * matching UTF-16. - * @see `punycode.ucs2.encode` - * @see <https://mathiasbynens.be/notes/javascript-encoding> - * @memberOf punycode.ucs2 - * @name decode - * @param {String} string The Unicode input string (UCS-2). - * @returns {Array} The new array of code points. - */ - function ucs2decode(string) { - var output = [], - counter = 0, - length = string.length, - value, - extra; - while (counter < length) { - value = string.charCodeAt(counter++); - if (value >= 0xD800 && value <= 0xDBFF && counter < length) { - // high surrogate, and there is a next character - extra = string.charCodeAt(counter++); - if ((extra & 0xFC00) == 0xDC00) { // low surrogate - output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000); - } else { - // unmatched surrogate; only append this code unit, in case the next - // code unit is the high surrogate of a surrogate pair - output.push(value); - counter--; - } - } else { - output.push(value); - } - } - return output; - } - - /** - * Creates a string based on an array of numeric code points. - * @see `punycode.ucs2.decode` - * @memberOf punycode.ucs2 - * @name encode - * @param {Array} codePoints The array of numeric code points. - * @returns {String} The new Unicode string (UCS-2). - */ - function ucs2encode(array) { - return map(array, function(value) { - var output = ''; - if (value > 0xFFFF) { - value -= 0x10000; - output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800); - value = 0xDC00 | value & 0x3FF; - } - output += stringFromCharCode(value); - return output; - }).join(''); - } - - /** - * Converts a basic code point into a digit/integer. - * @see `digitToBasic()` - * @private - * @param {Number} codePoint The basic numeric code point value. - * @returns {Number} The numeric value of a basic code point (for use in - * representing integers) in the range `0` to `base - 1`, or `base` if - * the code point does not represent a value. - */ - function basicToDigit(codePoint) { - if (codePoint - 48 < 10) { - return codePoint - 22; - } - if (codePoint - 65 < 26) { - return codePoint - 65; - } - if (codePoint - 97 < 26) { - return codePoint - 97; - } - return base; - } - - /** - * Converts a digit/integer into a basic code point. - * @see `basicToDigit()` - * @private - * @param {Number} digit The numeric value of a basic code point. - * @returns {Number} The basic code point whose value (when used for - * representing integers) is `digit`, which needs to be in the range - * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is - * used; else, the lowercase form is used. The behavior is undefined - * if `flag` is non-zero and `digit` has no uppercase form. - */ - function digitToBasic(digit, flag) { - // 0..25 map to ASCII a..z or A..Z - // 26..35 map to ASCII 0..9 - return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5); - } - - /** - * Bias adaptation function as per section 3.4 of RFC 3492. - * https://tools.ietf.org/html/rfc3492#section-3.4 - * @private - */ - function adapt(delta, numPoints, firstTime) { - var k = 0; - delta = firstTime ? floor(delta / damp) : delta >> 1; - delta += floor(delta / numPoints); - for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) { - delta = floor(delta / baseMinusTMin); - } - return floor(k + (baseMinusTMin + 1) * delta / (delta + skew)); - } - - /** - * Converts a Punycode string of ASCII-only symbols to a string of Unicode - * symbols. - * @memberOf punycode - * @param {String} input The Punycode string of ASCII-only symbols. - * @returns {String} The resulting string of Unicode symbols. - */ - function decode(input) { - // Don't use UCS-2 - var output = [], - inputLength = input.length, - out, - i = 0, - n = initialN, - bias = initialBias, - basic, - j, - index, - oldi, - w, - k, - digit, - t, - /** Cached calculation results */ - baseMinusT; - - // Handle the basic code points: let `basic` be the number of input code - // points before the last delimiter, or `0` if there is none, then copy - // the first basic code points to the output. - - basic = input.lastIndexOf(delimiter); - if (basic < 0) { - basic = 0; - } - - for (j = 0; j < basic; ++j) { - // if it's not a basic code point - if (input.charCodeAt(j) >= 0x80) { - error('not-basic'); - } - output.push(input.charCodeAt(j)); - } - - // Main decoding loop: start just after the last delimiter if any basic code - // points were copied; start at the beginning otherwise. - - for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) { - - // `index` is the index of the next character to be consumed. - // Decode a generalized variable-length integer into `delta`, - // which gets added to `i`. The overflow checking is easier - // if we increase `i` as we go, then subtract off its starting - // value at the end to obtain `delta`. - for (oldi = i, w = 1, k = base; /* no condition */; k += base) { - - if (index >= inputLength) { - error('invalid-input'); - } - - digit = basicToDigit(input.charCodeAt(index++)); - - if (digit >= base || digit > floor((maxInt - i) / w)) { - error('overflow'); - } - - i += digit * w; - t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - - if (digit < t) { - break; - } - - baseMinusT = base - t; - if (w > floor(maxInt / baseMinusT)) { - error('overflow'); - } - - w *= baseMinusT; - - } - - out = output.length + 1; - bias = adapt(i - oldi, out, oldi == 0); - - // `i` was supposed to wrap around from `out` to `0`, - // incrementing `n` each time, so we'll fix that now: - if (floor(i / out) > maxInt - n) { - error('overflow'); - } - - n += floor(i / out); - i %= out; - - // Insert `n` at position `i` of the output - output.splice(i++, 0, n); - - } - - return ucs2encode(output); - } - - /** - * Converts a string of Unicode symbols (e.g. a domain name label) to a - * Punycode string of ASCII-only symbols. - * @memberOf punycode - * @param {String} input The string of Unicode symbols. - * @returns {String} The resulting Punycode string of ASCII-only symbols. - */ - function encode(input) { - var n, - delta, - handledCPCount, - basicLength, - bias, - j, - m, - q, - k, - t, - currentValue, - output = [], - /** `inputLength` will hold the number of code points in `input`. */ - inputLength, - /** Cached calculation results */ - handledCPCountPlusOne, - baseMinusT, - qMinusT; - - // Convert the input in UCS-2 to Unicode - input = ucs2decode(input); - - // Cache the length - inputLength = input.length; - - // Initialize the state - n = initialN; - delta = 0; - bias = initialBias; - - // Handle the basic code points - for (j = 0; j < inputLength; ++j) { - currentValue = input[j]; - if (currentValue < 0x80) { - output.push(stringFromCharCode(currentValue)); - } - } - - handledCPCount = basicLength = output.length; - - // `handledCPCount` is the number of code points that have been handled; - // `basicLength` is the number of basic code points. - - // Finish the basic string - if it is not empty - with a delimiter - if (basicLength) { - output.push(delimiter); - } - - // Main encoding loop: - while (handledCPCount < inputLength) { - - // All non-basic code points < n have been handled already. Find the next - // larger one: - for (m = maxInt, j = 0; j < inputLength; ++j) { - currentValue = input[j]; - if (currentValue >= n && currentValue < m) { - m = currentValue; - } - } - - // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, - // but guard against overflow - handledCPCountPlusOne = handledCPCount + 1; - if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) { - error('overflow'); - } - - delta += (m - n) * handledCPCountPlusOne; - n = m; - - for (j = 0; j < inputLength; ++j) { - currentValue = input[j]; - - if (currentValue < n && ++delta > maxInt) { - error('overflow'); - } - - if (currentValue == n) { - // Represent delta as a generalized variable-length integer - for (q = delta, k = base; /* no condition */; k += base) { - t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias); - if (q < t) { - break; - } - qMinusT = q - t; - baseMinusT = base - t; - output.push( - stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)) - ); - q = floor(qMinusT / baseMinusT); - } - - output.push(stringFromCharCode(digitToBasic(q, 0))); - bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength); - delta = 0; - ++handledCPCount; - } - } - - ++delta; - ++n; - - } - return output.join(''); - } - - /** - * Converts a Punycode string representing a domain name or an email address - * to Unicode. Only the Punycoded parts of the input will be converted, i.e. - * it doesn't matter if you call it on a string that has already been - * converted to Unicode. - * @memberOf punycode - * @param {String} input The Punycoded domain name or email address to - * convert to Unicode. - * @returns {String} The Unicode representation of the given Punycode - * string. - */ - function toUnicode(input) { - return mapDomain(input, function(string) { - return regexPunycode.test(string) - ? decode(string.slice(4).toLowerCase()) - : string; - }); - } - - /** - * Converts a Unicode string representing a domain name or an email address to - * Punycode. Only the non-ASCII parts of the domain name will be converted, - * i.e. it doesn't matter if you call it with a domain that's already in - * ASCII. - * @memberOf punycode - * @param {String} input The domain name or email address to convert, as a - * Unicode string. - * @returns {String} The Punycode representation of the given domain name or - * email address. - */ - function toASCII(input) { - return mapDomain(input, function(string) { - return regexNonASCII.test(string) - ? 'xn--' + encode(string) - : string; - }); - } - - /*--------------------------------------------------------------------------*/ - - /** Define the public API */ - punycode = { - /** - * A string representing the current Punycode.js version number. - * @memberOf punycode - * @type String - */ - 'version': '1.4.1', - /** - * An object of methods to convert from JavaScript's internal character - * representation (UCS-2) to Unicode code points, and back. - * @see <https://mathiasbynens.be/notes/javascript-encoding> - * @memberOf punycode - * @type Object - */ - 'ucs2': { - 'decode': ucs2decode, - 'encode': ucs2encode - }, - 'decode': decode, - 'encode': encode, - 'toASCII': toASCII, - 'toUnicode': toUnicode - }; - - /** Expose `punycode` */ - // Some AMD build optimizers, like r.js, check for specific condition patterns - // like the following: - if ( - typeof define == 'function' && - typeof define.amd == 'object' && - define.amd - ) { - define('punycode', function() { - return punycode; - }); - } else if (freeExports && freeModule) { - if (module.exports == freeExports) { - // in Node.js, io.js, or RingoJS v0.8.0+ - freeModule.exports = punycode; - } else { - // in Narwhal or RingoJS v0.7.0- - for (key in punycode) { - punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]); - } - } - } else { - // in Rhino or a web browser - root.punycode = punycode; - } - -}(this)); diff --git a/node_modules/tough-cookie/package.json b/node_modules/tough-cookie/package.json index 5020a78..7c954f6 100644 --- a/node_modules/tough-cookie/package.json +++ b/node_modules/tough-cookie/package.json @@ -1,27 +1,27 @@ { - "_from": "tough-cookie@~2.4.3", - "_id": "tough-cookie@2.4.3", + "_from": "tough-cookie@~2.5.0", + "_id": "tough-cookie@2.5.0", "_inBundle": false, - "_integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "_integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "_location": "/tough-cookie", "_phantomChildren": {}, "_requested": { "type": "range", "registry": true, - "raw": "tough-cookie@~2.4.3", + "raw": "tough-cookie@~2.5.0", "name": "tough-cookie", "escapedName": "tough-cookie", - "rawSpec": "~2.4.3", + "rawSpec": "~2.5.0", "saveSpec": null, - "fetchSpec": "~2.4.3" + "fetchSpec": "~2.5.0" }, "_requiredBy": [ "/request" ], - "_resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "_shasum": "53f36da3f47783b0925afa06ff9f3b165280f781", - "_spec": "tough-cookie@~2.4.3", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/request", + "_resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "_shasum": "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2", + "_spec": "tough-cookie@~2.5.0", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/request", "author": { "name": "Jeremy Stashewsky", "email": "jstash@gmail.com" @@ -51,16 +51,17 @@ } ], "dependencies": { - "psl": "^1.1.24", - "punycode": "^1.4.1" + "psl": "^1.1.28", + "punycode": "^2.1.1" }, "deprecated": false, "description": "RFC6265 Cookies and Cookie Jar for node.js", "devDependencies": { "async": "^1.4.2", + "genversion": "^2.1.0", "nyc": "^11.6.0", "string.prototype.repeat": "^0.2.0", - "vows": "^0.8.1" + "vows": "^0.8.2" }, "engines": { "node": ">=0.8" @@ -88,7 +89,8 @@ }, "scripts": { "cover": "nyc --reporter=lcov --reporter=html vows test/*_test.js", - "test": "vows test/*_test.js" + "test": "vows test/*_test.js", + "version": "genversion lib/version.js && git add lib/version.js" }, - "version": "2.4.3" + "version": "2.5.0" } diff --git a/node_modules/uuid/.eslintrc.json b/node_modules/uuid/.eslintrc.json deleted file mode 100644 index 734a8e1..0000000 --- a/node_modules/uuid/.eslintrc.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "root": true, - "env": { - "browser": true, - "commonjs": true, - "node": true, - "mocha": true - }, - "extends": ["eslint:recommended"], - "rules": { - "array-bracket-spacing": ["warn", "never"], - "arrow-body-style": ["warn", "as-needed"], - "arrow-parens": ["warn", "as-needed"], - "arrow-spacing": "warn", - "brace-style": ["warn", "1tbs"], - "camelcase": "warn", - "comma-spacing": ["warn", {"after": true}], - "dot-notation": "warn", - "eqeqeq": ["warn", "smart"], - "indent": ["warn", 2, { - "SwitchCase": 1, - "FunctionDeclaration": {"parameters": 1}, - "MemberExpression": 1, - "CallExpression": {"arguments": 1} - }], - "key-spacing": ["warn", {"beforeColon": false, "afterColon": true, "mode": "minimum"}], - "keyword-spacing": "warn", - "no-console": "off", - "no-empty": "off", - "no-multi-spaces": "warn", - "no-redeclare": "off", - "no-restricted-globals": ["warn", "Promise"], - "no-trailing-spaces": "warn", - "no-undef": "error", - "no-unused-vars": ["warn", {"args": "none"}], - "one-var": ["warn", "never"], - "padded-blocks": ["warn", "never"], - "object-curly-spacing": ["warn", "never"], - "quotes": ["warn", "single"], - "react/prop-types": "off", - "react/jsx-no-bind": "off", - "semi": ["warn", "always"], - "space-before-blocks": ["warn", "always"], - "space-before-function-paren": ["warn", "never"], - "space-in-parens": ["warn", "never"] - } -} diff --git a/node_modules/uuid/CHANGELOG.md b/node_modules/uuid/CHANGELOG.md index f29d399..f811b8a 100644 --- a/node_modules/uuid/CHANGELOG.md +++ b/node_modules/uuid/CHANGELOG.md @@ -1,69 +1,78 @@ -# Change Log +# Changelog All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [3.4.0](https://github.com/uuidjs/uuid/compare/v3.3.3...v3.4.0) (2020-01-16) + + +### Features + +* rename repository to github:uuidjs/uuid ([#351](https://github.com/uuidjs/uuid/issues/351)) ([e2d7314](https://github.com/uuidjs/uuid/commit/e2d7314)), closes [#338](https://github.com/uuidjs/uuid/issues/338) + +### [3.3.3](https://github.com/uuidjs/uuid/compare/v3.3.2...v3.3.3) (2019-08-19) + <a name="3.3.2"></a> -## [3.3.2](https://github.com/kelektiv/node-uuid/compare/v3.3.1...v3.3.2) (2018-06-28) +## [3.3.2](https://github.com/uuidjs/uuid/compare/v3.3.1...v3.3.2) (2018-06-28) ### Bug Fixes -* typo ([305d877](https://github.com/kelektiv/node-uuid/commit/305d877)) +* typo ([305d877](https://github.com/uuidjs/uuid/commit/305d877)) <a name="3.3.1"></a> -## [3.3.1](https://github.com/kelektiv/node-uuid/compare/v3.3.0...v3.3.1) (2018-06-28) +## [3.3.1](https://github.com/uuidjs/uuid/compare/v3.3.0...v3.3.1) (2018-06-28) ### Bug Fixes -* fix [#284](https://github.com/kelektiv/node-uuid/issues/284) by setting function name in try-catch ([f2a60f2](https://github.com/kelektiv/node-uuid/commit/f2a60f2)) +* fix [#284](https://github.com/uuidjs/uuid/issues/284) by setting function name in try-catch ([f2a60f2](https://github.com/uuidjs/uuid/commit/f2a60f2)) <a name="3.3.0"></a> -# [3.3.0](https://github.com/kelektiv/node-uuid/compare/v3.2.1...v3.3.0) (2018-06-22) +# [3.3.0](https://github.com/uuidjs/uuid/compare/v3.2.1...v3.3.0) (2018-06-22) ### Bug Fixes -* assignment to readonly property to allow running in strict mode ([#270](https://github.com/kelektiv/node-uuid/issues/270)) ([d062fdc](https://github.com/kelektiv/node-uuid/commit/d062fdc)) -* fix [#229](https://github.com/kelektiv/node-uuid/issues/229) ([c9684d4](https://github.com/kelektiv/node-uuid/commit/c9684d4)) -* Get correct version of IE11 crypto ([#274](https://github.com/kelektiv/node-uuid/issues/274)) ([153d331](https://github.com/kelektiv/node-uuid/commit/153d331)) -* mem issue when generating uuid ([#267](https://github.com/kelektiv/node-uuid/issues/267)) ([c47702c](https://github.com/kelektiv/node-uuid/commit/c47702c)) +* assignment to readonly property to allow running in strict mode ([#270](https://github.com/uuidjs/uuid/issues/270)) ([d062fdc](https://github.com/uuidjs/uuid/commit/d062fdc)) +* fix [#229](https://github.com/uuidjs/uuid/issues/229) ([c9684d4](https://github.com/uuidjs/uuid/commit/c9684d4)) +* Get correct version of IE11 crypto ([#274](https://github.com/uuidjs/uuid/issues/274)) ([153d331](https://github.com/uuidjs/uuid/commit/153d331)) +* mem issue when generating uuid ([#267](https://github.com/uuidjs/uuid/issues/267)) ([c47702c](https://github.com/uuidjs/uuid/commit/c47702c)) ### Features -* enforce Conventional Commit style commit messages ([#282](https://github.com/kelektiv/node-uuid/issues/282)) ([cc9a182](https://github.com/kelektiv/node-uuid/commit/cc9a182)) +* enforce Conventional Commit style commit messages ([#282](https://github.com/uuidjs/uuid/issues/282)) ([cc9a182](https://github.com/uuidjs/uuid/commit/cc9a182)) <a name="3.2.1"></a> -## [3.2.1](https://github.com/kelektiv/node-uuid/compare/v3.2.0...v3.2.1) (2018-01-16) +## [3.2.1](https://github.com/uuidjs/uuid/compare/v3.2.0...v3.2.1) (2018-01-16) ### Bug Fixes -* use msCrypto if available. Fixes [#241](https://github.com/kelektiv/node-uuid/issues/241) ([#247](https://github.com/kelektiv/node-uuid/issues/247)) ([1fef18b](https://github.com/kelektiv/node-uuid/commit/1fef18b)) +* use msCrypto if available. Fixes [#241](https://github.com/uuidjs/uuid/issues/241) ([#247](https://github.com/uuidjs/uuid/issues/247)) ([1fef18b](https://github.com/uuidjs/uuid/commit/1fef18b)) <a name="3.2.0"></a> -# [3.2.0](https://github.com/kelektiv/node-uuid/compare/v3.1.0...v3.2.0) (2018-01-16) +# [3.2.0](https://github.com/uuidjs/uuid/compare/v3.1.0...v3.2.0) (2018-01-16) ### Bug Fixes -* remove mistakenly added typescript dependency, rollback version (standard-version will auto-increment) ([09fa824](https://github.com/kelektiv/node-uuid/commit/09fa824)) -* use msCrypto if available. Fixes [#241](https://github.com/kelektiv/node-uuid/issues/241) ([#247](https://github.com/kelektiv/node-uuid/issues/247)) ([1fef18b](https://github.com/kelektiv/node-uuid/commit/1fef18b)) +* remove mistakenly added typescript dependency, rollback version (standard-version will auto-increment) ([09fa824](https://github.com/uuidjs/uuid/commit/09fa824)) +* use msCrypto if available. Fixes [#241](https://github.com/uuidjs/uuid/issues/241) ([#247](https://github.com/uuidjs/uuid/issues/247)) ([1fef18b](https://github.com/uuidjs/uuid/commit/1fef18b)) ### Features -* Add v3 Support ([#217](https://github.com/kelektiv/node-uuid/issues/217)) ([d94f726](https://github.com/kelektiv/node-uuid/commit/d94f726)) +* Add v3 Support ([#217](https://github.com/uuidjs/uuid/issues/217)) ([d94f726](https://github.com/uuidjs/uuid/commit/d94f726)) -# [3.1.0](https://github.com/kelektiv/node-uuid/compare/v3.1.0...v3.0.1) (2017-06-17) +# [3.1.0](https://github.com/uuidjs/uuid/compare/v3.1.0...v3.0.1) (2017-06-17) ### Bug Fixes diff --git a/node_modules/uuid/README.md b/node_modules/uuid/README.md index 9cbe1ac..1752e47 100644 --- a/node_modules/uuid/README.md +++ b/node_modules/uuid/README.md @@ -28,7 +28,7 @@ Version 1 (timestamp): ```javascript const uuidv1 = require('uuid/v1'); -uuidv1(); // ⇨ '45745c60-7b1a-11e8-9c9c-2d42b21b1a3e' +uuidv1(); // ⇨ '2c5ea4c0-4067-11e9-8bad-9b1deb4d3b7d' ``` @@ -56,7 +56,7 @@ Version 4 (random): ```javascript const uuidv4 = require('uuid/v4'); -uuidv4(); // ⇨ '10ba038e-48da-487b-96e8-8d3b99b6d18a' +uuidv4(); // ⇨ '1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed' ``` @@ -80,46 +80,6 @@ uuidv5('Hello, World!', MY_NAMESPACE); // ⇨ '630eb68f-e0fa-5ecc-887a-7c7a62614 ``` -## Quickstart - Browser-ready Versions - -Browser-ready versions of this module are available via [wzrd.in](https://github.com/jfhbrook/wzrd.in). - -For version 1 uuids: - -```html -<script src="http://wzrd.in/standalone/uuid%2Fv1@latest"></script> -<script> -uuidv1(); // -> v1 UUID -</script> -``` - -For version 3 uuids: - -```html -<script src="http://wzrd.in/standalone/uuid%2Fv3@latest"></script> -<script> -uuidv3('http://example.com/hello', uuidv3.URL); // -> v3 UUID -</script> -``` - -For version 4 uuids: - -```html -<script src="http://wzrd.in/standalone/uuid%2Fv4@latest"></script> -<script> -uuidv4(); // -> v4 UUID -</script> -``` - -For version 5 uuids: - -```html -<script src="http://wzrd.in/standalone/uuid%2Fv5@latest"></script> -<script> -uuidv5('http://example.com/hello', uuidv5.URL); // -> v5 UUID -</script> -``` - ## API ### Version 1 @@ -147,7 +107,7 @@ Generate and return a RFC4122 v1 (timestamp-based) UUID. Returns `buffer`, if specified, otherwise the string form of the UUID -Note: The <node> id is generated guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.) +Note: The default [node id](https://tools.ietf.org/html/rfc4122#section-4.1.6) (the last 12 digits in the UUID) is generated once, randomly, on process startup, and then remains unchanged for the duration of the process. Example: Generate string UUID with fully-specified options @@ -167,8 +127,19 @@ Example: In-place generation of two binary IDs ```javascript // Generate two ids in an array const arr = new Array(); -uuidv1(null, arr, 0); // ⇨ [ 69, 117, 109, 208, 123, 26, 17, 232, 146, 52, 45, 66, 178, 27, 26, 62 ] -uuidv1(null, arr, 16); // ⇨ [ 69, 117, 109, 208, 123, 26, 17, 232, 146, 52, 45, 66, 178, 27, 26, 62, 69, 117, 109, 209, 123, 26, 17, 232, 146, 52, 45, 66, 178, 27, 26, 62 ] +uuidv1(null, arr, 0); // ⇨ + // [ + // 44, 94, 164, 192, 64, 103, + // 17, 233, 146, 52, 155, 29, + // 235, 77, 59, 125 + // ] +uuidv1(null, arr, 16); // ⇨ + // [ + // 44, 94, 164, 192, 64, 103, 17, 233, + // 146, 52, 155, 29, 235, 77, 59, 125, + // 44, 94, 164, 193, 64, 103, 17, 233, + // 146, 52, 155, 29, 235, 77, 59, 125 + // ] ``` @@ -237,8 +208,20 @@ Example: Generate two IDs in a single buffer ```javascript const buffer = new Array(); -uuidv4(null, buffer, 0); // ⇨ [ 54, 122, 218, 70, 45, 70, 65, 24, 171, 53, 95, 130, 83, 195, 242, 45 ] -uuidv4(null, buffer, 16); // ⇨ [ 54, 122, 218, 70, 45, 70, 65, 24, 171, 53, 95, 130, 83, 195, 242, 45, 108, 204, 255, 103, 171, 86, 76, 94, 178, 225, 188, 236, 150, 20, 151, 87 ] +uuidv4(null, buffer, 0); // ⇨ + // [ + // 155, 29, 235, 77, 59, + // 125, 75, 173, 155, 221, + // 43, 13, 123, 61, 203, + // 109 + // ] +uuidv4(null, buffer, 16); // ⇨ + // [ + // 155, 29, 235, 77, 59, 125, 75, 173, + // 155, 221, 43, 13, 123, 61, 203, 109, + // 27, 157, 107, 205, 187, 253, 75, 45, + // 155, 93, 171, 141, 251, 189, 75, 237 + // ] ``` diff --git a/node_modules/uuid/README_js.md b/node_modules/uuid/README_js.md deleted file mode 100644 index f34453b..0000000 --- a/node_modules/uuid/README_js.md +++ /dev/null @@ -1,280 +0,0 @@ -```javascript --hide -runmd.onRequire = path => path.replace(/^uuid/, './'); -``` - -# uuid [![Build Status](https://secure.travis-ci.org/kelektiv/node-uuid.svg?branch=master)](http://travis-ci.org/kelektiv/node-uuid) # - -Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS. - -Features: - -* Support for version 1, 3, 4 and 5 UUIDs -* Cross-platform -* Uses cryptographically-strong random number APIs (when available) -* Zero-dependency, small footprint (... but not [this small](https://gist.github.com/982883)) - -[**Deprecation warning**: The use of `require('uuid')` is deprecated and will not be -supported after version 3.x of this module. Instead, use `require('uuid/[v1|v3|v4|v5]')` as shown in the examples below.] - -## Quickstart - CommonJS (Recommended) - -```shell -npm install uuid -``` - -Then generate your uuid version of choice ... - -Version 1 (timestamp): - -```javascript --run v1 -const uuidv1 = require('uuid/v1'); -uuidv1(); // RESULT -``` - -Version 3 (namespace): - -```javascript --run v3 -const uuidv3 = require('uuid/v3'); - -// ... using predefined DNS namespace (for domain names) -uuidv3('hello.example.com', uuidv3.DNS); // RESULT - -// ... using predefined URL namespace (for, well, URLs) -uuidv3('http://example.com/hello', uuidv3.URL); // RESULT - -// ... using a custom namespace -// -// Note: Custom namespaces should be a UUID string specific to your application! -// E.g. the one here was generated using this modules `uuid` CLI. -const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341'; -uuidv3('Hello, World!', MY_NAMESPACE); // RESULT -``` - -Version 4 (random): - -```javascript --run v4 -const uuidv4 = require('uuid/v4'); -uuidv4(); // RESULT -``` - -Version 5 (namespace): - -```javascript --run v5 -const uuidv5 = require('uuid/v5'); - -// ... using predefined DNS namespace (for domain names) -uuidv5('hello.example.com', uuidv5.DNS); // RESULT - -// ... using predefined URL namespace (for, well, URLs) -uuidv5('http://example.com/hello', uuidv5.URL); // RESULT - -// ... using a custom namespace -// -// Note: Custom namespaces should be a UUID string specific to your application! -// E.g. the one here was generated using this modules `uuid` CLI. -const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341'; -uuidv5('Hello, World!', MY_NAMESPACE); // RESULT -``` - -## Quickstart - Browser-ready Versions - -Browser-ready versions of this module are available via [wzrd.in](https://github.com/jfhbrook/wzrd.in). - -For version 1 uuids: - -```html -<script src="http://wzrd.in/standalone/uuid%2Fv1@latest"></script> -<script> -uuidv1(); // -> v1 UUID -</script> -``` - -For version 3 uuids: - -```html -<script src="http://wzrd.in/standalone/uuid%2Fv3@latest"></script> -<script> -uuidv3('http://example.com/hello', uuidv3.URL); // -> v3 UUID -</script> -``` - -For version 4 uuids: - -```html -<script src="http://wzrd.in/standalone/uuid%2Fv4@latest"></script> -<script> -uuidv4(); // -> v4 UUID -</script> -``` - -For version 5 uuids: - -```html -<script src="http://wzrd.in/standalone/uuid%2Fv5@latest"></script> -<script> -uuidv5('http://example.com/hello', uuidv5.URL); // -> v5 UUID -</script> -``` - -## API - -### Version 1 - -```javascript -const uuidv1 = require('uuid/v1'); - -// Incantations -uuidv1(); -uuidv1(options); -uuidv1(options, buffer, offset); -``` - -Generate and return a RFC4122 v1 (timestamp-based) UUID. - -* `options` - (Object) Optional uuid state to apply. Properties may include: - - * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1. - * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used. - * `msecs` - (Number) Time in milliseconds since unix Epoch. Default: The current time is used. - * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2. - -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Note: The <node> id is generated guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.) - -Example: Generate string UUID with fully-specified options - -```javascript --run v1 -const v1options = { - node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab], - clockseq: 0x1234, - msecs: new Date('2011-11-01').getTime(), - nsecs: 5678 -}; -uuidv1(v1options); // RESULT -``` - -Example: In-place generation of two binary IDs - -```javascript --run v1 -// Generate two ids in an array -const arr = new Array(); -uuidv1(null, arr, 0); // RESULT -uuidv1(null, arr, 16); // RESULT -``` - -### Version 3 - -```javascript -const uuidv3 = require('uuid/v3'); - -// Incantations -uuidv3(name, namespace); -uuidv3(name, namespace, buffer); -uuidv3(name, namespace, buffer, offset); -``` - -Generate and return a RFC4122 v3 UUID. - -* `name` - (String | Array[]) "name" to create UUID with -* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0 - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Example: - -```javascript --run v3 -uuidv3('hello world', MY_NAMESPACE); // RESULT -``` - -### Version 4 - -```javascript -const uuidv4 = require('uuid/v4') - -// Incantations -uuidv4(); -uuidv4(options); -uuidv4(options, buffer, offset); -``` - -Generate and return a RFC4122 v4 UUID. - -* `options` - (Object) Optional uuid state to apply. Properties may include: - * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values - * `rng` - (Function) Random # generator function that returns an Array[16] of byte values (0-255) -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Example: Generate string UUID with predefined `random` values - -```javascript --run v4 -const v4options = { - random: [ - 0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea, - 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36 - ] -}; -uuidv4(v4options); // RESULT -``` - -Example: Generate two IDs in a single buffer - -```javascript --run v4 -const buffer = new Array(); -uuidv4(null, buffer, 0); // RESULT -uuidv4(null, buffer, 16); // RESULT -``` - -### Version 5 - -```javascript -const uuidv5 = require('uuid/v5'); - -// Incantations -uuidv5(name, namespace); -uuidv5(name, namespace, buffer); -uuidv5(name, namespace, buffer, offset); -``` - -Generate and return a RFC4122 v5 UUID. - -* `name` - (String | Array[]) "name" to create UUID with -* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values -* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written. -* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0 - -Returns `buffer`, if specified, otherwise the string form of the UUID - -Example: - -```javascript --run v5 -uuidv5('hello world', MY_NAMESPACE); // RESULT -``` - -## Command Line - -UUIDs can be generated from the command line with the `uuid` command. - -```shell -$ uuid -ddeb27fb-d9a0-4624-be4d-4615062daed4 - -$ uuid v1 -02d37060-d446-11e7-a9fa-7bdae751ebe1 -``` - -Type `uuid --help` for usage details - -## Testing - -```shell -npm test -``` diff --git a/node_modules/uuid/lib/bytesToUuid.js b/node_modules/uuid/lib/bytesToUuid.js index 847c482..24b6041 100644 --- a/node_modules/uuid/lib/bytesToUuid.js +++ b/node_modules/uuid/lib/bytesToUuid.js @@ -11,14 +11,16 @@ function bytesToUuid(buf, offset) { var i = offset || 0; var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 - return ([bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]]]).join(''); + return ([ + bth[buf[i++]], bth[buf[i++]], + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], + bth[buf[i++]], bth[buf[i++]], + bth[buf[i++]], bth[buf[i++]] + ]).join(''); } module.exports = bytesToUuid; diff --git a/node_modules/uuid/package.json b/node_modules/uuid/package.json index 1271ac5..e26d2c5 100644 --- a/node_modules/uuid/package.json +++ b/node_modules/uuid/package.json @@ -1,8 +1,8 @@ { "_from": "uuid@^3.3.2", - "_id": "uuid@3.3.2", + "_id": "uuid@3.4.0", "_inBundle": false, - "_integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "_integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "_location": "/uuid", "_phantomChildren": {}, "_requested": { @@ -18,12 +18,12 @@ "_requiredBy": [ "/request" ], - "_resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "_shasum": "1b4af4955eb3077c501c23872fc6513811587131", + "_resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "_shasum": "b23e4358afa8a202fe7a100af1f5f883f02007ee", "_spec": "uuid@^3.3.2", - "_where": "/Users/gebauer/ws/themes/ag/node_modules/request", + "_where": "/Users/austingebauer/Workspace/personal-website/themes/hugo-dev-theme/node_modules/request", "bin": { - "uuid": "./bin/uuid" + "uuid": "bin/uuid" }, "browser": { "./lib/rng.js": "./lib/rng-browser.js", @@ -31,7 +31,7 @@ "./lib/md5.js": "./lib/md5-browser.js" }, "bugs": { - "url": "https://github.com/kelektiv/node-uuid/issues" + "url": "https://github.com/uuidjs/uuid/issues" }, "bundleDependencies": false, "commitlint": { @@ -64,15 +64,20 @@ "deprecated": false, "description": "RFC4122 (v1, v4, and v5) UUIDs", "devDependencies": { - "@commitlint/cli": "7.0.0", - "@commitlint/config-conventional": "7.0.1", - "eslint": "4.19.1", - "husky": "0.14.3", - "mocha": "5.2.0", - "runmd": "1.0.1", - "standard-version": "4.4.0" + "@commitlint/cli": "~8.2.0", + "@commitlint/config-conventional": "~8.2.0", + "eslint": "~6.4.0", + "husky": "~3.0.5", + "mocha": "6.2.0", + "runmd": "1.2.1", + "standard-version": "7.0.0" + }, + "homepage": "https://github.com/uuidjs/uuid#readme", + "husky": { + "hooks": { + "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" + } }, - "homepage": "https://github.com/kelektiv/node-uuid#readme", "keywords": [ "uuid", "guid", @@ -82,14 +87,14 @@ "name": "uuid", "repository": { "type": "git", - "url": "git+https://github.com/kelektiv/node-uuid.git" + "url": "git+https://github.com/uuidjs/uuid.git" }, "scripts": { - "commitmsg": "commitlint -E GIT_PARAMS", + "lint": "eslint .", "md": "runmd --watch --output=README.md README_js.md", "prepare": "runmd --output=README.md README_js.md", "release": "standard-version", - "test": "mocha test/test.js" + "test": "npm run lint && mocha test/test.js" }, - "version": "3.3.2" + "version": "3.4.0" } diff --git a/node_modules/uuid/v1.js b/node_modules/uuid/v1.js index d84c0f4..8c245de 100644 --- a/node_modules/uuid/v1.js +++ b/node_modules/uuid/v1.js @@ -13,7 +13,7 @@ var _clockseq; var _lastMSecs = 0; var _lastNSecs = 0; -// See https://github.com/broofa/node-uuid for API details +// See https://github.com/uuidjs/uuid for API details function v1(options, buf, offset) { var i = buf && offset || 0; var b = buf || []; diff --git a/package-lock.json b/package-lock.json index bce02a7..5c7d7f2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,11 +16,11 @@ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "requires": { - "fast-deep-equal": "^2.0.1", + "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" @@ -89,9 +89,9 @@ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==" }, "balanced-match": { "version": "1.0.0", @@ -270,14 +270,14 @@ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "find-up": { "version": "1.1.2", @@ -361,9 +361,9 @@ } }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -374,19 +374,19 @@ } }, "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz", + "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==", "requires": { "glob": "~7.1.1", - "lodash": "~4.17.10", + "lodash": "~4.17.12", "minimatch": "~3.0.2" } }, "graceful-fs": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.1.tgz", - "integrity": "sha512-b9usnbDGnD928gJB3LrCmxoibr3VE4U2SMo5PBuBnokWyDADTqDPXg4YpwKF1trpH+UbGp7QLicO3+aWEy0+mw==" + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==" }, "har-schema": { "version": "2.0.0", @@ -416,27 +416,9 @@ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "hosted-git-info": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.2.tgz", - "integrity": "sha512-CyjlXII6LMsPMyUzxpTt8fzh5QwzGqPmQXgY/Jyf4Zfp27t/FvfhwoE/8laaMUcMy816CkWF20I7NeQhwwY88w==", - "requires": { - "lru-cache": "^5.1.1" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" - } - } + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" }, "http-signature": { "version": "1.2.0", @@ -486,12 +468,9 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "requires": { - "number-is-nan": "^1.0.0" - } + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" }, "is-fullwidth-code-point": { "version": "1.0.0", @@ -527,9 +506,9 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "js-base64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", - "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==" + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", + "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==" }, "jsbn": { "version": "0.1.1", @@ -628,16 +607,16 @@ } }, "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" }, "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", "requires": { - "mime-db": "1.40.0" + "mime-db": "1.43.0" } }, "minimatch": { @@ -649,9 +628,9 @@ } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "mkdirp": { "version": "0.5.1", @@ -700,9 +679,9 @@ } }, "node-sass": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz", - "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==", + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz", + "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==", "requires": { "async-foreach": "^0.1.3", "chalk": "^1.1.1", @@ -711,7 +690,7 @@ "get-stdin": "^4.0.1", "glob": "^7.0.3", "in-publish": "^2.0.0", - "lodash": "^4.17.11", + "lodash": "^4.17.15", "meow": "^3.7.0", "mkdirp": "^0.5.1", "nan": "^2.13.2", @@ -873,9 +852,9 @@ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "psl": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz", - "integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==" + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==" }, "punycode": { "version": "2.1.1", @@ -907,9 +886,9 @@ } }, "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -938,9 +917,9 @@ } }, "request": { - "version": "2.88.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", - "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -949,7 +928,7 @@ "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", - "har-validator": "~5.1.0", + "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", @@ -959,7 +938,7 @@ "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", + "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" } @@ -975,17 +954,17 @@ "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", + "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", "requires": { "path-parse": "^1.0.6" } }, "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { "glob": "^7.1.3" } @@ -1021,9 +1000,9 @@ } }, "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "set-blocking": { "version": "2.0.0", @@ -1153,19 +1132,12 @@ } }, "tough-cookie": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", - "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" - } + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, "trim-newlines": { @@ -1208,9 +1180,9 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" }, "validate-npm-package-license": { "version": "3.0.4", diff --git a/package.json b/package.json index f9be11b..2121215 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ }, "dependencies": { "bootstrap": "^4.3.1", - "node-sass": "^4.12.0" + "node-sass": "^4.13.1" }, "keywords": [ "hugo", |